調整Linux磁盤保留空間大小(電腦磁盤如何調整空間)

最近GlusterFS磁盤使用率超過警戒值,登錄服務器df -h查看發現實際可用空間遠遠低于Prometheus上記錄的可用空間,同時也會發現df -h獲取到的已使用大小和可用空間大小之和是小于磁盤實際空間大小的。比如如下根分區
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 6.4G 32G 17% /
已使用了6.4GB,可用還有32GB,那么按照我們一般的認知磁盤大小應該是38.4GB,然而實際卻是40GB;或者當前磁盤總共40GB,已使用了6.4GB,那么應該還有33.6GB才對呀。Prometheus監控獲取到可用空間卻是33.6GB(若閾值比較高,很容易導致磁盤實際滿了,告警還沒出來)。
原因
我們使用df -T / 查看下根分區的文件系統類型是什么?
$ df -T /
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/vda1 ext4 41152812 6645344 32603760 17% /
我們發現根分區是ext4文件系統,并且(Used+Available)/Size
(6644508+32604596)/41152812.0=0.9537405123129861
#無限接近95%
原來啊,Linux系統磁盤分區有保留區的概念,會給root或指定用戶預留5%或更大的空間,ext文件系統(包括ext2、ext3、ext4)都會默認預留5%的磁盤空間,使用root用戶維護系統或記錄系統關鍵日志使用。
同時XFS文件系統沒有類似情況。
$ df -Th /var/log
Filesystem Type Size Used Avail Use% Mounted on
/dev/vdb1 xfs 40G 1.1G 39G 3% /var/log
如何調整ext4文件系統保留空間大小
若我們磁盤空間不大,5%的設定浪費不了多少空間,尤其是根分區保護還是相當重要。若我們磁盤達到TB級別,那么每1TB空間我們就會實際損失50GB左右,我當前GlusterFS節點5TB卻有256GB空間是浪費的,并且還是非系統分區,所以我們要根據實際情況調整百分比,那么如何調整呢?
我們需要使用工具tune2fs,tune2fs允許系統管理員在Linux ext2、ext3或ext4文件系統上調整各種可調的文件系統參數。
tune2fs -m 3 /dev/vdb1 #(保留3%,默認5%)
調整之后使用df查看,Available變多了。