it-swarm.cn

在文件系统上为根保留的空间-为什么?

我了解默认情况下,将使用分配给root的5%的空间来创建新创建的文件系统。我也知道您可以使用以下方法更改定义的空间:

tune2fs -m 1 /dev/sdXY

我很好奇的是,这个保留空间的实际用途是什么。它是否有实际用途,在某些情况下会占用5%以上的空间?

我偶然发现这个问题的原因是,我们最近建立了一个1TB的文件存储,却无法弄清楚为什么df -h会使我们丢失5%的容量。

108
suitedupgeek

节省重要根进程(和可能的救援操作)的空间是原因之一。

但是还有另一个。 Ext3可以很好地避免文件系统碎片,但是一旦达到95%的满度,这种行为就会大打折扣,并且文件系统的性能突然变得一团糟。因此,保留5%的预留空间可以避免这种情况。

Ext4应该更好,因为 由Linux文件系统开发人员/专家Theodore Ts'o解释

如果将保留的块计数设置为零,则除非在文件系统几乎已满(例如,高于95%)的情况下长时间运行(创建和删除大量文件),否则不会对性能产生太大影响,这时您将遇到碎片问题。 Ext4的多块分配器具有更强的抗碎片性,因为它会更加努力地寻找连续的块,因此即使您不启用其他ext4功能,只要在文件系统之前使用ext4挂载ext3文件系统,您也会看到更好的结果完全吃饱了。

如果您只是将文件系统用于长期存档,而文件很少更改(例如,巨大的mp3或视频存储),则无所谓。

106
mattdm

例如,如果允许其他人通过ssh登录到系统,则保留这5%的块将确保外部用户无法填充磁盘。即使您不允许其他人登录到系统,保留的块也会阻止未以root用户身份运行的程序填充磁盘。

45
LawrenceC

在保留了块的情况下,您的用户以及以特定用户身份而非以root用户身份运行的服务无法填充filesystsem,并可能破坏其他需要写入该文件系统的内容-尽管以root用户身份运行的服务仍可以使其完全完成当然充满。

当用户抱怨磁盘已满或由于文件系统已满而导致服务开始失败时,它还为您提供了一些可使用的空间。例如,您可以在删除文件之前将一些文件归档到Zip/gz/7Zip归档文件中(尽管如果文件系统已满,则可能还有其他可用的文件系统可用于创建归档文件)。

从(磁盘从小到几兆字节而不是几百兆字节)开始计算(5%=长期)以来,默认值为5%没那么多。幸运的是,如果您使用tune2fs-r选项而不是-m选项,则可以轻松地将其调整为较小的百分比,或者将其设置为特定的块数。在这两种情况下,您都可以将参数0设置为完全关闭预留-我不会对//tmp/var等执行此操作,但是您可能想要适用于仅充当用户存储的文件系统(例如,全局文件共享)或仅包含固定大小的文件(例如固定大小的VM)的文件系统,只有在创建新文件时才会增长。

22
David Spillett

默认值5%用于系统分区。例如,如果磁盘空间已满,则系统日志(/var/log)和根用户的邮箱(/var/mail/root)仍可以接收重要信息。为一个 /home或常规数据存储分区,无需为root保留任何空间。如果有特殊需要,您可以更改获得紧急空间的用户(tune2fs -u 1234)。

还有一个不允许ext [234]文件系统变满的原因是 fragmentation

22