在 xfs 文件系统上,我的印象是:
# xfs_info /dev/mapper/rootvg-root
meta-data=/dev/sda1 isize=512 agcount=16, agsize=1285043 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=19730834, imaxpct=25
= sunit=64 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5119, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
imaxpct=25
- 是文件系统 inode 可能占用的空间百分比
isize=512
- 每个单个索引节点的字节大小
所以当我查看下面的设置时:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-root 80G 42G 38G 51% /
# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/rootvg-root 1.3M 27K 1.3M 1% /
我的索引节点数量怎么可能最多只有 130 万个?如果每个 inode 为 512 字节,则意味着 inode 可以占用的磁盘空间总量(如果完全使用)仅为 665mb。 80gb 的 25% 是 20gb,所以我预计 inode 会比这个多得多。
我在 mkfs.xfs 中没有看到任何选项来确定 inode 的数字,而只有每个 inode 的大小和文件系统 inode 可以占用的百分比。
我在这里缺少什么有什么想法吗?这是针对 rhel 7、xfs 文件系统的。
答案1
与经典的 Unix 文件系统不同,XFS 不会同时分配所有 inode mkfs
。相反,它会根据需求创建新的 inode,直到达到限制imaxpct
。这使得未使用的索引节点“浪费”的磁盘空间降至最低。
如果默认imaxpct
限制不适合您的使用,您可以在文件系统已安装并处于活动状态时使用实用程序-m
的选项进行调整。xfs_growfs
这样做的副作用是,Inodes
的值df -i
不会反映文件系统上最大可用的 inode 数量,直到文件系统实际上有理由创建足够的 inode 来达到限制imaxpct
。