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


105

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

tune2fs -m 1 /dev/sdXY

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

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


1
好的,现在这是对“不可用”空间的巨大浪费。也许5%应该限制为小于X的驱动器大小(例如5%的磁盘空间,最大为100MB)。
tshepang 2011年

3
在我的8 TB文件系统上,刚刚消失了400 GB-这是真正的空间浪费!:)
Ilia Rostovtsev

Answers:


101

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

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

Linux文件系统开发人员/专家Theodore Ts'o所述,Ext4应该会更好:

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

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


3
superuser.com/a/1257550/38062所述,这些“ 90%”和“ 95%”的数字源自1980年代对伯克利FFS的测量。此后的几十年中,其他人一直在挑战这种屡屡接受的智慧。
JdeBP

1
具有此保留空间的普通用户不会降低性能。他们只会比预期的早一点获得设备上的空间。但是,根目录将有足够的空间来修复磁盘填充问题。
crististm

44

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


谢谢,为此,真正地为将答案标记为正确而苦苦挣扎-答案一经提出即被接受,由于附加的背景和细节,mattdm被标记为正确,这使我更加了解“为什么”。
Suitupgeek 2011年

22

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

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

5%的默认值已经长时间了,从那时开始,磁盘要小得多(几十兆字节而不是几百兆字节),所以5%并不是那么多。幸运的是,您可以轻松地将其调整为较小的百分比,或者,如果使用tune2fs-r选项代替,则可以将其设置为特定的块数-m。在这两种情况下,你可以给0参数来完全关闭开启预订-我不会做到这一点的//tmp/var等等,但你可能要为文件系统,仅作为用户存储(比如一个全球性的文件-共享)或仅包含固定大小文件(例如固定大小的VM)的文件,只有在创建新文件时才会增长。


22

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

还有一个不允许ext [234]文件系统变满的原因,这就是碎片

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.