我们有一个存储文件的应用程序,并为用户提供“磁盘填充级别”。
为了实现这一点,我们使用disk_total_space
和disk_free_space
组合,在开发机器上运行得很好(mac os,250Gb左右的本地硬盘)。
在使用20Tb SAN托架存储的生产计算机上,结果是(方式)关闭:
df -h
输出:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG1-lv_foo01 20T 141M 19T 1% /foo01
df -hi
输出(inode):
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG1-lv_foo01 320M 30 320M 1% /foo01
disk_total_space("/foo01")
返回21902586179584
,大约是19.92Tb,看起来是正确的。
但disk_free_space("/foo01")
返回20802911117312
,大约是18.92Tb,这意味着在磁盘上使用大约1Tb,但实际上只使用了大约140Mb!
差异来自哪里?由于只使用了少数几个节点,因此节点不应占用大量空间......
我很困惑,任何想法?
答案 0 :(得分:4)
EXT系统为root保留一些空间,默认情况下我认为它是5%。 这就是为什么你看到使用1TB的原因。
您可以使用tune2fs减少该份额或禁用它:
#Set it to 1%
tune2fs -m 1 /dev/mapper/VG1-lv_foo01