Ext4 文件系统上的碎片整理选项

Ext4 文件系统上的碎片整理选项

我有以下设备Linux 薄荷 18.1在笔记本电脑上和GNU/Linux Debian 9在服务器上。

(全部都是 64 位且带有 Cinnamon 桌面。)

所有驱动器设备均已格式化ext4 文件系统;磁盘阵列1是利用完成的mdadm

  1. 笔记本电脑 1固态硬盘(不要与 HDD 混淆)。

  2. 配备 3 个驱动器的笔记本电脑:2 个消费级 HDD磁盘阵列1和 1 个 SSD。

  3. 具有 5 个驱动器的服务器:两次 4 个企业 HDD磁盘阵列1和 1 个 SSD。

我的系统位于这些 SSD 上,我永远不会对 SSD 进行碎片整理。

问题是关于 HHD 和 SSHD。

我发现旧的 PDF概述了更多功能e4defrag

  1. 当尝试对未挂载的文件系统进行碎片整理时,为什么必须按照此错误消息挂载文件系统?我想了解这是为什么:

    Filesystem is not mounted
    
  2. 我想实施可用空间碎片整理。 AFAIK 现在正在审查中。我是否可以使用e4defrag这些可用选项或无论如何从源代码进行编译?

    e4defrag -f /deviceOrDirectory
    
  3. 我还想使用相关数据功能:

    e4defrag -r /deviceOrDirectory
    

我有很多相关的理由相信这些机器上的碎片正在减慢读取速度,例如:

  1. 从服务器获取磁盘阵列1硬盘:

    [2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100%  extents: 16 -> 1  [ OK ]
    
  2. 从笔记本电脑中获取磁盘阵列1硬盘:

    [29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4:  100%  extents: 31 -> 6  [ OK ]
    

正如您所看到的,碎片整理甚至无法将 31 个块的文件整理成 1 个块。当然,您可能会说这是一个电影文件,所以这并不重要。确实如此,但仅限于这种情况。

我用来启动碎片整理的命令:

  1. 在服务器上:

    sudo e4defrag -v /dev/md1
    
  2. 在笔记本电脑上:

    sudo e4defrag -v /raid1/
    

我是否使用设备名称或目录调用命令似乎并不重要。

你能指出我正确的方向吗?

答案1

e4defrag需要挂载文件系统,因为它要求内核的文件系统驱动程序执行碎片整理,但它本身并不执行此操作。

至于可用空间碎片整理和相关文件碎片整理,补丁从未完成;相关邮件列表中的最后一次提及可以追溯到2014年

e4defrag在 中e2fsprogs,代码仍在维护和改进中。 Dmitry Monakhov 特别添加了大量“酷刑测试”,并在底层内核代码中发现了许多竞争条件。他最近还发送了内核代码的代码重构,显着改进了它并且(将 ext4 的大小缩小了 550 行代码)。

e4defrag话虽如此,相当长一段时间以来没有任何真正的功能开发 。关于什么内核 API 可能支持此功能已经有一些讨论,但从未有最终确定的 API 提案,更不用说实现了。

所以我怀疑目前有什么值得测试的。

相关内容