ext4 和 XFS 分区中为 inode 保留的空间差异

ext4 和 XFS 分区中为 inode 保留的空间差异

我正在我们的一台服务器中格式化几个 60G 逻辑卷 (vg01-logs和)。vg01-monitoring这些分区将保存大量小文件,因此我希望它们的索引节点数量超过默认数量。

root@mercury20:/root : lvs /dev/mapper/vg01-logs /dev/mapper/vg01-monitoring
  LV         VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  logs       vg01 -wi-ao---- 60.00g
  monitoring vg01 -wi-ao---- 60.00g

vg01-logs安装在 上/logs。我使用 (bytes-per-inode) 选项对其进行格式化ext4-i 1024创建最大数量的 inode,正如预期的那样,分区在格式化后有 62914560 个 inode。

mkfs.ext4 -i 1024 /dev/vg01/logs

后期格式化和安装:

root@mercury20:/root : tune2fs -l /dev/mapper/vg01-logs | egrep 'Inode count|Inode size'
Inode count:              62914560
Inode size:               256

root@mercury20:/root : df -h /logs
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/vg01-logs   45G   61M   42G   1% /logs

现在,挂载分区后,df -h输出这个60G逻辑卷分区的大小为45G。 IE。 15G没了。由于 inode 的大小为 256 字节,而 15G 为62914560*256字节,那么该空间 (15G) 是否是为 inode 创建保留的,因此在df输出中丢失了?

vg01-monitoring要安装的另一个逻辑卷/monitoringXFS使用mkfs.xfs默认选项进行格式化。创建的分区具有与分区相同数量的 inode (62914560) ext4 ,但在这里,格式化和安装后,df -h显示的驱动器大小为原始 60G。没有丢失15G。xfs_info显示该 XFS 分区中 inode 的大小为 256 字节,与 中的相同ext4

root@mercury20:/root : mkfs.xfs -f /dev/mapper/vg01-monitoring

root@mercury20:/root : df -h /monitoring
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg01-monitoring   60G   33M   60G   1% /monitoring

root@mercury20:/root : xfs_info /dev/mapper/vg01-monitoring
meta-data=/dev/mapper/vg01-monitoring isize=256    agcount=4, agsize=3932160 blks

这是我的问题:

1)在第一种情况下,即分区情况ext4,我的假设是否df -h显示可用空间仅为 45G,因为 60G 中的 15G 是为 inode 保留的,正确吗?

2)如果我的上述假设是正确的,那么为什么XFS分区显示60G而不是45G?这是否意味着仅当创建 inode 时,XFS 才会将 inode 消耗的大小显示为“已使用”?这意味着,尽管 XFS 显示 60G 可用,但两个驱动器上用户数据的有效空间将为 45G?

操作系统是 SUSE Linux Enterprise Server 12 (x86_64)。

root@mercury20:/root : cat /etc/os-release
NAME="SLES"
VERSION="12-SP1"
VERSION_ID="12.1"

相关内容