整理一个ext分区?


Answers:


10

现代文件系统,特别是那些设计成在多用户和/或多任务用例中有效的文件系统,做了很好的工作,不会碎片化数据,直到文件系统接近满(没有确切的数字显示“近满”的位置)。标记是因为它取决于文件系统的大小,文件大小的分布以及您的访问模式是什么(通常引用介于85%和95%之间的数字)或文件创建和写入的模式不正常,或者文件系统是很老,所以看到了很多“动作”。这包括ext2 / 3/4,reiser,btrfs,NTFS,ZFS等。

尽管目前还没有计划在ext4上线,但目前尚无内核/文件系统级方法对ext3或4进行碎片整理(有关更多信息,请参见http://en.wikipedia.org/wiki/Ext3#Defragmentation)碎片整理。

有用户界面工具(例如http://vleu.net/shake/以及该Wikipedia文章中列出的其他文件),它们尝试通过复制/重写来对单个文件或文件集进行碎片整理-如果有足够大的可用空间块,通常会导致该文件被赋予连续块。但是,这绝不能保证文件彼此靠近,因此,如果对一对大文件进行摇动,您会发现这两个文件本身会进行碎片整理,但在磁盘上彼此之间不会靠近。在多用户文件系统中,文件彼此之间的位置通常并不重要(当然,不重要的是文件本身的碎片化程度),因为驱动器磁头正在各处翻转以为不同的用户提供服务。

如果您的文件系统随着时间的推移变得碎片化严重,并且当前具有相当大的可用空间,那么shake在其所有文件上运行类似内容可能会达到您想要的效果。另一种方法是将所有数据复制到新文件系统,删除原始文件,然后再次将其复制回。这以几乎相同的方式提供帮助,shake但对于大量数据可能更快。

对于少量碎片,请不要担心。我知道在正常操作的多个生命周期中,花更多时间坐在碎片整理进度栏上的人比他们节省的时间(由于磁盘访问效率更高)所节省的时间多!


是否有任何机制,例如:引导时经常使用的文件彼此靠近放置以获得局部性优势?这么快启动?
uray 2010年

1
从来没听说过。您可以使用ureadahead,就像最近的Ubuntu版本默认情况下一样(有关更多信息,请参见ubuntuforums.org/showthread.php?t=1434502),以达到类似的效果。如果您的disro的启动设置支持此操作(在Debian上的/ etc / defaults / rc中设置CONCURRENCY = shell)和类似的调整,可以通过要求它在可能的情况下同时启动服务来减少Linux启动顺序中的某些延迟。要检查您对所做的更改是否有所不同,请使用bootchart.org来显示在进行调整之前和之后进行的调整。
David Spillett's

@uray,我已经恢复了已久的废弃品,e2defrag并进行了尝试以实现这种包装。您可以在launchpad.net/e2defrag上找到它。
psusi '04

@大卫:我没有/etc/defaults/rc,但确实有/etc/default/rcS在Debian 6
CTRL-ALT-delor

@psusi- e2defrag现在是否比更好地支持Ext3 shake
Alex S

0

只要磁盘没有被填满,就不会有太多碎片(因此,如果可以避免,则不要填满磁盘)。


2
因此,如果磁盘已满,是否需要对其进行碎片整理?
uray 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.