我刚刚在 Btrfs 文件系统上安装了 Ubuntu 11.10。
我真的需要对文件或整个系统进行碎片整理吗?
Fél*_*lli 13
您实际上并不需要手动对 Btrfs 文件系统进行碎片整理。
是的,Btrfs 是 COW(写时复制),这意味着它比 Ext 更能分割文件,但这在设计的几个方面得到了解决,包括在文件系统在线时轻松进行碎片整理的能力。这段摘录提供了更多细节(强调我的):
自动碎片整理
COW(写时复制)文件系统有很多优点,但它们也有一些缺点,例如碎片化。Btrfs 在文件第一次写入磁盘时按顺序排列数据,但是 COW 设计意味着对文件的任何后续修改都不能写在旧数据之上,而是放在一个空闲块中,这将导致碎片化(RPM 数据库是此问题的常见情况)。此外,它会遇到所有文件系统常见的碎片问题。
Btrfs 已经提供了解决这个问题的替代方案:首先,它支持使用命令进行在线碎片整理
btrfs filesystem defragment。其次,它有一个挂载选项-o nodatacow,用于禁用数据的 COW。现在 btrfs 添加了第三个选项,-o autodefrag挂载选项。这种机制检测到文件的小随机写入并将它们排入队列以进行自动碎片整理过程,因此文件系统将在使用时对其进行碎片整理。它尚不适合虚拟化或大型数据库工作负载,但适用于较小的文件,例如 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
Run Code Online (Sandbox Code Playgroud)
在 Systemd 系统上,/var/log/journal/可能是最分散的。您还可以查看~/.mozilla和其他浏览器的数据库。
要进行碎片整理,请使用:
$ sudo btrfs fi defrag -r /path
Run Code Online (Sandbox Code Playgroud)