linux丢失的容量
使用fdisk查看分区容量:
[root@xxxxxxx /]# fdisk -l /dev/sdf
Disk /dev/sdf: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
可以看出sdf的容量为1000204886016 bytes,即931G。
[root@xxxxxxx /]# expr 1000204886016 / 1024 / 1024 / 1024
931
使用df再次查看sdf容量:
[root@xxxxxxx /]# df -h | grep sdf
/dev/sdf 917G 49G 822G 6% /mnt/xxxxxxx /cf21a15779c24f62a0343787e113cc35
看到这里会发现这里的size比一开始看到的少了许多,那么这些容量去哪了呢?
以下我们用tune2fs命令来查看 /dev/sdf的superblock信息
根据inode的count与size,可以计算得到inode占用的容量:
[root@xxxxxxx /]# expr 61054976 * 256 / 1048576 / 1024
14
正好是df比fdisk少的那14G,这就是df少的容量的去处。
回过头看df的数据:
/dev/sdf 917G 49G 822G
细心的话,很容易就可以看出来sdf的size是大于used与avail的。
总量大于已用加可也,那还有一部分的容量又去哪了。
通过计算我们可以知道sdf有46G的容量不见了,那么这些容量又在哪呢?
保留空间功能:
1. 减少Linux文件系统碎片;
2. 在磁盘分区没有剩余空间的时候.,root用户也可以登陆维护,或者系统记录日志.
通常情况下,保留空间大小为 (disk size - inode size ) * 5%,也就是df查看到的size的百分之5, 917G*0.05=46G。这就是df总量大于可用加已用的原因。
那么我们可以去修改这个保留空间大小吗?
[root@xxxxxxx /]# tune2fs -m 5 /dev/sdf
tune2fs 1.42.9 (28-Dec-2013)
Setting reserved blocks percentage to 5% (12209532 blocks)
那么如果有人修改了,我们如何去确定就是保留空间占用了这一部分的容量。
通过保留块数量与大小可以求得:
[root@thinstack-FABxrc /]# expr 12209532 * 4 / 1024 / 1024
46
正好是46G。
附加一句话:当存储状态正常,空间未满,但是无法写人时,可以使用df -i查看是否是索引节点已满。