我們在使用df去查看磁盤信息的時候普遍會發現磁盤大小的“顯示異常”,磁盤的已用空間和可用空間之和要小於磁盤總空間。這部分丟失的容量去哪了呢?
1. 保留空間
保留空間是指Linux的硬盤分區程序自動為root或指定的用戶保留的一定的磁盤空間,默認為5%,這就造成了我們使用df去查看磁盤信息的時候磁盤大小的“顯示異常”,磁盤的總空間不等於已用空間和可用空間之和。
1.1.
[root@RhelTEST2 ~]# df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 6.9G 9.7G 42% /
tmpfs 935M 72K 935M 1% /dev/shm
/dev/sda1 291M 39M 238M 14% /boot
使用df –hl查看磁盤使用空間范例中可以看到/dev/sda2分區當前總大小為18G,而可用空間大小與已用空間之和為16.6G,中間差了1.4G。
1.2. 保留空間
[root@RhelTEST2 ~]# tune2fs -l /dev/sda2 | grep -i block
Block count: 4641536
Reserved block count: 232076
Free blocks: 2762496
First block: 0
Block size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Inode blocks per group: 511
Flex block group size: 16
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Journal backup: inode blocks
ext文件系統,包括ext2、ext3、ext4都會默認預留5%的磁盤空間,留給root用戶維護系統或者記錄系統關鍵日志的時候使用(比如磁盤使用空間已經100%的情況下的處理),這也就是導這1.4G空間不可用的原因。
通過tune2fs –l的命令可以很明確的看到分區配置了232076個塊作為保留空間,正好為總大小的5%。在根分區或者重要的數據分區設置保留空間十分必要,可以確保系統在磁盤空間已滿時不至於立馬宕機。但是對於一般的數據分區,保留空間的配置則顯得資源浪費。
1.3. 調整保留空間
[root@RhelTEST2 ~]# df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 6.9G 11G 40% /
tmpfs 935M 72K 935M 1% /dev/shm
/dev/sda1 291M 39M 238M 14% /boot
[root@RhelTEST2 ~]# tune2fs -m 1 /dev/sda2
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 1% (46415 blocks)
通過tune2fs –m 可以按照百分比來調整保留空間的大小,運行該命令後,可以看到保留空間中縮小的份額會立馬釋放。
我們也可以通過tune2fs –r來設置固定的大小作為保留空間。
[root@RhelTEST2 ~]# tune2fs -r 1000 /dev/sda2
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks count to 1000