问题描述
我有一个新的 ext4
分区,这意味着我只是用 mkfs.ext4 -m 0.1 /dev/mapper/abak-home
对其进行了格式化,并且已经使用了 27G
空间。将保留的根空间 (-m)
设置为 0
没有任何效果。
我正在使用 LVM,但我认为 LVM 不会对此产生任何影响。 Ubuntu 版本是 12.04 LTS。
# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/abak-home 1.8T 27G 1.8T 2% /home
然后我尝试用 ext3 格式化分区,结果要好得多:
# df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/mapper/abak-home 1.8T 196M 1.8T 1% /home
无论如何,为什么会有差异,我该如何解决这个问题?
最佳回答
没有什么可以解决的,这是完全正常的。
ext4 在创建任何文件之前会产生大量开销。这并不意味着它是 “worse” 而不是 ext3。如果您用文件填充该分区,您会注意到 ext3(和 NTFS)的开销将与文件成比例地增长,与 ext4 一样,它基本上将永远保持不变。
通过 “pre-allocating” 开销,它可以比不断增长的人更好地管理它。所以 ext4 现在只是在做 ext3 以后会做的事情。
此外,27G看起来很多,但仍然只有1.5%的开销。与过去的 FAT 相比,在过去的 FAT 时代,空闲空间可以占用 5% 到 30% 的分区空间,您会注意到从那时起事情的发展有多大。
另外,我强烈建议不要使用 -m 0
。保留空间是有原因的:它降低了碎片的机会并为 fsck
节省了一些空间。它仅供用户使用,但 root(以及您安装的所有软件)可以完全使用它。如果您认为 5% 过多,请至少保留 1% 。
请记住:在 ext
中没有碎片化噩梦。但这种美是有代价的。它需要可用空间作为适当管理的空间。把它交给他,事情就会顺利得多。此外,谁在购买更大的硬盘之前使用了超过 90% 的硬盘?那么 5% 的保留空间有什么问题呢?下次您不小心创建了一个 dozen-GB 文件,该文件填满了整个分区并最终由于其他进程空间不足而导致操作系统崩溃时,它可能会节省您的时间。
如需更详细、更深入的技术阅读,请阅读 here
次佳回答
我怀疑这归结为开销:文件系统需要在某个地方保存有关文件的信息。可能 ext4 是一种较新的文件系统,它的默认设置比 ext3 为文件元数据保留了更多空间,后者是在存储设备较小且易于容纳较少文件的时代开发的。
你说得对,LVM 对此没有影响;这只是提供块设备的另一种方式。
我认为您不一定需要 “fix” 这个 – 我希望您在如此大的驱动器上使用 ext4 的默认选项比使用 ext3 做得更好。如果您想在创建文件系统时调整选项,您可以随时查看 mkfs.ext4
的手册。考虑到卷的预期负载,这样的选择可能是最好的。