在Linux实例使用df命令查看磁盘的容量与购买容量不符

概述

在Linux系统的ECS实例使用df -h命令查看磁盘容量,发现与购买时选择的磁盘容量不符。

 

详细信息

本文以购买的200G磁盘为例,说明为何在Linux系统格式化挂载后只显示197G,并说明为何Used参数值加Avail参数值的和与Size参数值不符。

 

Inode节点占用

使用root用户执行如下命令,查看该磁盘对应的分区信息。

tune2fs -l /dev/[$Partition] | grep -E "count|size:"

注:[$Partition]为具体的分区。

系统返回类似如下。

注:

  • Inode节点:记录档案的属性。一个档案占用一个Inode,同时记录此档案的数据所在的Block区块号。
  • Block区块:记录档案的实际内容。

通过如下公式计算Inode节点占用的磁盘空间。

Inode count * Inode size / 1024 / 1024 / 1024

将本例中的参数值代入到公式进行计算,确认Inode节点占有了3.125G磁盘空间。

13107200 * 256 / 1024 / 1024 / 1024 = 3.125G

故说明df -h命令输出结果的Size参数值不包含3.125G的Inode占用。

 

系统保留空间

继续观察df -h命令的输出结果,发现Used参数值加Avail参数值的和小于Size的参数值。其中188M加187G大约是187G多一点,而与197G差10G不到,故说明磁盘存在系统保留空间。

使用root用户执行如下命令,查看该磁盘对应的分区信息。

tune2fs -l /dev/[$Partition] | grep -E "count|size:"

系统返回类似如下。

通过如下公式计算系统保留空间占用的磁盘空间。

Reserved block count * Block size / 1024 / 1024 / 1024

将本例中的参数值代入到公式进行计算,确认系统保留空间大约占有10G磁盘空间。故说明Used参数值加Avail参数值加系统保留空间的总和等于Size的参数值。

2621361 * 4096 / 1024 / 1024 / 1024 ≈ 10G

 

适用于

  • 云服务器 ECS