我了解默认情况下,将使用分配给root的5%的空间来创建新创建的文件系统。我也知道您可以使用以下方法更改定义的空间:
tune2fs -m 1 /dev/sdXY
我很好奇的是,这个预留空间的实际用途是什么。它是否有实际用途,在某些情况下会占用5%以上的空间?
我偶然发现这个问题的原因是,我们最近建立了一个1TB的文件存储,却无法弄清楚为什么df -h会导致我们丢失5%的容量。
我了解默认情况下,将使用分配给root的5%的空间来创建新创建的文件系统。我也知道您可以使用以下方法更改定义的空间:
tune2fs -m 1 /dev/sdXY
我很好奇的是,这个预留空间的实际用途是什么。它是否有实际用途,在某些情况下会占用5%以上的空间?
我偶然发现这个问题的原因是,我们最近建立了一个1TB的文件存储,却无法弄清楚为什么df -h会导致我们丢失5%的容量。
Answers:
节省重要根进程(和可能的救援操作)的空间是原因之一。
但是还有另一个。Ext3可以很好地避免文件系统碎片,但是一旦达到95%的满度,这种行为便会一,而就,文件系统的性能突然变得一团糟。因此,保留5%的预留空间可以避免这种情况。
如Linux文件系统开发人员/专家Theodore Ts'o所述,Ext4应该会更好:
如果将保留的块计数设置为零,则除非在文件系统几乎已满(例如,高于95%)的情况下长时间运行(创建和删除大量文件),否则不会对性能产生太大影响,这时您将遇到碎片问题。Ext4的多块分配器具有更强的抗碎片性,因为它会更加努力地寻找连续的块,因此即使您不启用其他ext4功能,只要在文件系统之前使用ext4挂载ext3文件系统,您也会看到更好的结果完全吃饱了。
如果您只是将文件系统用于长期存档,而文件很少更改(例如,巨大的mp3或视频存储),则无所谓。
例如,如果允许其他人通过ssh登录到系统,则保留这5%的块将确保外部用户无法填充磁盘。即使您不允许其他人登录到系统,保留的块也会阻止未以root用户身份运行的程序填充磁盘。
在保留了块的情况下,您的用户以及以特定用户身份而非以root用户身份运行的服务无法填充filesystsem,并可能破坏其他需要写入该文件系统的内容-尽管以root用户身份运行的服务仍可以使其完全完成当然充满。
当用户抱怨磁盘已满,或者由于文件系统已满而导致服务开始失败时,它还为您提供了一些可使用的空间。例如,您可以在删除文件之前将一些文件归档到zip / gz / 7zip归档文件中(尽管如果文件系统已满,则可能还有其他可用的文件系统可用来创建归档文件)。
5%的默认值已经很长时间了,从那时开始,磁盘要小得多(几十兆字节而不是几百兆字节),所以5%并不是那么多。幸运的是,您可以轻松地将其调整为较小的百分比,或者,如果使用tune2fs
的-r
选项代替,则可以将其设置为特定的块数-m
。在这两种情况下,你可以给0参数来完全关闭开启预订-我不会做到这一点的/
,/tmp
,/var
等等,但你可能要为文件系统,仅作为用户存储(比如一个全球性的文件-共享)或仅包含固定大小文件(例如固定大小的VM)的文件,只有在创建新文件时才会增长。