首页 > 代码库 > 探秘:磁盘可用空间被谁吃掉了?

探秘:磁盘可用空间被谁吃掉了?

可疑:


   分区总容量 7.2T,挂载分区后发现只有6.8T的空间可以使用,400G的空间哪里去了?


 探究:


 1. 文件被删除未释放磁盘空间?


  通过命令 lsof |grep delete 查看确认并未有被进程占用的deleted状态的文件句柄。


 2.文件系统损坏了?


umount 分区后,fsck.ext3 分区 ,挂载后空间依旧显示只有6.8T空间可用。


3.硬件坏了?


先放着硬件的状态,想想还有什么情况会导致这个问题?


到底是谁吃了我的磁盘空间?


在几个小伙伴的一致探寻下,最终谁会是真凶呢?



结论:


原来,ext文件系统会默认预留5%的磁盘空间用于root用户维护系统或者记录系统关键日志。


mkfs.ext3 的man page:

-m reserved-blocks-percentage

Specify the percentage of the filesystem blocks reserved for the

super-user.   This  avoids  fragmentation, and allows root-owned

daemons, such as syslogd(8), to continue to  function  correctly

after non-privileged processes are prevented from writing to the

filesystem.  The default percentage is 5%.

 预留这么大的空间是不是太不把硬盘当硬盘了,能否缩小预留的空间或者去除预留的空间?


那是当然的了。我们可以通过 tune2fs 来改变5%的默认设置,比如只预留1%的空间。可以设成0%,但是不推荐。


 tune2fs -m 1 /dev/sdb 


tune2fs 1.41.12 (17-May-2010)

Setting reserved blocks percentage to 1% (19529728 blocks)

 一下子就释放了很多可用空间。


由于一般磁盘总空间不大,200G左右,预留5%也不是很明显,所以多不被注意到。



本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处http://liuqunying.blog.51cto.com/3984207/1568966

探秘:磁盘可用空间被谁吃掉了?