我刚刚在Btrfs文件系统上安装了Ubuntu 11.10,我想问一个有关文件碎片整理的问题。
我是否真的需要对文件或整个系统进行碎片整理?
我刚刚在Btrfs文件系统上安装了Ubuntu 11.10,我想问一个有关文件碎片整理的问题。
我是否真的需要对文件或整个系统进行碎片整理?
Answers:
您实际上不需要手动对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
filefrag
显示,日志文件的确确实是碎片化的(每个碎片平均10k扩展区),但是我没有观察到CPU峰值或性能影响。我没有autodefrag
启用,将启用它并在下次重新启动时报告。
autodefrag
确实有帮助,在日常系统上对性能的影响最多是很小的。显然,繁重的服务器可能需要进行测量和调整,但是同样,这是alpha软件,因此无论如何您都希望避免使用它。
find /path -type f -exec filefrag {} + >frag.list
避免了FIBMAP unsupported
目录和其他非常规文件中的所有错误,并且不会在奇怪的文件名上中断。
为了这个话题,我认为最好澄清一下:
任何文件系统!=恢复/管理实用程序
请记住,文件系统是关于如何在物理硬件上组织数据的,所有其他活动都是通过额外的软件和实用程序完成的,尤其是在GNU / linux中,这些操作可能是由与创建者没有严格关系的人们完成的。文件系统。
Btrfs可能不是这种情况,但是有时我们会接近,因为台式机和企业环境可以提供具有不同等级可实现性的不同解决方案。
您问题的答案为“否”,但与通用文件系统的正常行为相关的“否”,因此您可以找到的每个实用程序都只是一个不同的项目。
当需要对文件系统进行碎片整理时,请记住,您将使用与文件系统本身的寿命没有真正关系的外部软件,并且具有所有优点和缺点。