我有以下设备Linux 薄荷 18.1在笔记本电脑上和GNU/Linux Debian 9在服务器上。
(全部都是 64 位且带有 Cinnamon 桌面。)
所有驱动器设备均已格式化ext4 文件系统;磁盘阵列1是利用完成的mdadm
。
笔记本电脑 1固态硬盘(不要与 HDD 混淆)。
配备 3 个驱动器的笔记本电脑:2 个消费级 HDD磁盘阵列1和 1 个 SSD。
具有 5 个驱动器的服务器:两次 4 个企业 HDD磁盘阵列1和 1 个 SSD。
我的系统位于这些 SSD 上,我永远不会对 SSD 进行碎片整理。
问题是关于 HHD 和 SSHD。
当尝试对未挂载的文件系统进行碎片整理时,为什么必须按照此错误消息挂载文件系统?我想了解这是为什么:
Filesystem is not mounted
我想实施可用空间碎片整理。 AFAIK 现在正在审查中。我是否可以使用
e4defrag
这些可用选项或无论如何从源代码进行编译?e4defrag -f /deviceOrDirectory
我还想使用相关数据功能:
e4defrag -r /deviceOrDirectory
我有很多相关的理由相信这些机器上的碎片正在减慢读取速度,例如:
从服务器获取磁盘阵列1硬盘:
[2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ]
从笔记本电脑中获取磁盘阵列1硬盘:
[29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ]
正如您所看到的,碎片整理甚至无法将 31 个块的文件整理成 1 个块。当然,您可能会说这是一个电影文件,所以这并不重要。确实如此,但仅限于这种情况。
我用来启动碎片整理的命令:
在服务器上:
sudo e4defrag -v /dev/md1
在笔记本电脑上:
sudo e4defrag -v /raid1/
我是否使用设备名称或目录调用命令似乎并不重要。
你能指出我正确的方向吗?
答案1
e4defrag
需要挂载文件系统,因为它要求内核的文件系统驱动程序执行碎片整理,但它本身并不执行此操作。
至于可用空间碎片整理和相关文件碎片整理,补丁从未完成;相关邮件列表中的最后一次提及可以追溯到2014年:
是
e4defrag
在 中e2fsprogs
,代码仍在维护和改进中。 Dmitry Monakhov 特别添加了大量“酷刑测试”,并在底层内核代码中发现了许多竞争条件。他最近还发送了内核代码的代码重构,显着改进了它并且(将 ext4 的大小缩小了 550 行代码)。
e4defrag
话虽如此,相当长一段时间以来没有任何真正的功能开发 。关于什么内核 API 可能支持此功能已经有一些讨论,但从未有最终确定的 API 提案,更不用说实现了。
所以我怀疑目前有什么值得测试的。