您实际上不需要手动对Btrfs文件系统进行碎片整理。
是的,Btrfs是COW(写时复制),这意味着它对文件的碎片要比Ext多得多,但这在设计的几个方面得到了解决,包括在文件系统联机时可以轻松对其进行碎片整理的能力。此摘录提供了更多详细信息(重点是我的):
自动整理碎片
COW(写时复制)文件系统具有许多优点,但也有一些缺点,例如碎片。第一次将文件写入磁盘时,Btrfs会按顺序对数据进行布局,但是COW设计意味着对文件的任何后续修改都不得写入旧数据的顶部,而应放在空闲块中,这将导致碎片(RPM数据库是此问题的常见情况)。另外,它还遭受了所有文件系统共同的碎片问题。
Btrfs已经提供了解决此问题的替代方法:首先,它使用命令支持联机碎片整理
btrfs filesystem defragment
。其次,它具有挂载选项-o nodatacow
,用于禁用数据的COW。现在,btrfs添加了第三个选项,即-o autodefrag
mount选项。该机制检测对文件的少量随机写入,并将它们排入队列以进行自动碎片整理过程,因此文件系统在使用时会对其自身进行碎片整理。它尚不适合虚拟化或大型数据库工作负载,但适用于较小的文件,例如rpm,SQLite或bdb数据库。
因此,只要您不打算在大量负载下运行像数据库一样的IO密集型软件,只要您使用该autodefrag
选项挂载文件系统,就应该一切都很好。
要检查文件的碎片,可以使用filefrag实用程序:
$ find /path -type f -exec filefrag {} + >frag.list
# Now you can use your favourite tools to sort the data
在Systemd系统上,/var/log/journal/
可能是最零散的。您还可以查看~/.mozilla
和其他浏览器数据库。
要进行碎片整理,请使用:
$ sudo btrfs fi defrag -r /path
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句