今日遇到inode耗尽问题:
但实际是有空间的:
实际是inode耗尽:
可以看到2T分区的inode数量明显少,这是由于分区时使用了mkfs.ext4 -T largefile导致,例如:
1 2 |
mkfs.ext4 -T largefile -n /dev/sda1 mkfs.ext4 -T largefile4 -n /dev/sda1 |
largefile和largefile4对应【多大磁盘空间分配一个inode】是在/etc/mke2fs.conf中定义的:
其中:
- blocksize:每个分块的大小
- inode_size:每个inode占用256B磁盘空间
- inode_ratio:每个16KB的磁盘空间会分配一个inode
inode_ratio值越小,硬盘可用的inode就越多,适合存储海量小文件的情景;inode_ratio值越大,硬盘可用的inode就越少,inode占用硬盘空间就会越少,适合存储大文件的情景。因此:
- largefile是每1MB一个inode
- largefile4是每4M一个inode
当然,也可以使用mkfs.ext4的参数-i指定多大磁盘空间分配一个inode(每inode的字节数)。
针对这种情况,我们重新分区(可以不指定分区,直接使用设备名,这是这样在fdisk -l中看不到分区而已):
可以看到inode数量明显多了。