前言
之前在ceph里面就出现过,inode使用完了,但是容量没使用完的问题,当时是因为设置的isize为2048,造成后期的inode的剩余空间比较分散,后面无法分配的情况,本篇讲的是另外一个问题
在使用另外一套文件系统的时候,存储元数据的时候使用的是扩展属性,所以文件并不怎么占用空间,而文件数目很大,后期出现了inode使用完的情况
现象模拟
我们平时在使用一个目录的时候,因为文件都有一定的大小,所以很少出现空间未使用完,而inode使用完的情况,但是这种情况是肯定存在的
- 准备一个10G大小的分区
- 格式化成xfs
- df -i 检查inode的数目,然后使用
seq 4882432 |xargs -i touch {}
持续写入空文件 - 等待一段时间以后,观察容量的使用情况和inode使用情况
实测情况如下:
[root@lab101 ~]# df -i /mnt
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdc1 4882496 4882496 0 100% /mnt
[root@lab101 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/sdc1 9.4G 2.6G 6.8G 28% /mnt
可以看到,inode使用了100%,容量使用了28%,这个时候的写入会提示
[root@lab101 m]# touch testfile
touch: cannot