分区中的inode数量与分区应支持的最大inode数不匹配

时间:2010-01-14 06:21:44

标签: linux amazon-ec2 posix inode amazon-ebs

我们正在使用Amazon EBS在3级目录结构中存储大量小文件(<10KB)。

 ~/lists# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  3.9G  5.5G  42% /
tmpfs                 854M     0  854M   0% /lib/init/rw
varrun                854M   64K  854M   1% /var/run
varlock               854M     0  854M   0% /var/lock
udev                  854M   80K  854M   1% /dev
tmpfs                 854M     0  854M   0% /dev/shm
/dev/sda2             147G   80G   60G  58% /mnt
/dev/sdj              197G   60G  128G  32% /vol

有问题的分区是/ vol(大小:200GB)

 ~/lists# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1             655360   26541  628819    5% /
tmpfs                 186059       3  186056    1% /lib/init/rw
varrun                186059      31  186028    1% /var/run
varlock               186059       2  186057    1% /var/lock
udev                  186059     824  185235    1% /dev
tmpfs                 186059       1  186058    1% /dev/shm
/dev/sda2            19546112 17573097 1973015   90% /mnt
/dev/sdj             13107200 13107200       0  100% /vol
 ~/lists# sudo /sbin/dumpe2fs /dev/sdj | grep "Block size"
dumpe2fs 1.41.4 (27-Jan-2009)
Block size:               4096

分区/卷的inode数量为13Million +。块大小为4096.将块大小设置为4096,200GB分区(ext3)应支持的inode数量为5200万+(最大Inode计算:卷大小,以字节为单位/ 2 ^ 12)。那么为什么分区只支持1300万inode?

1 个答案:

答案 0 :(得分:2)

我很确定在创建卷时使用静态分配inode(在本例中使用mfs.ext3)。无论出于何种原因,mkfs.ext3决定保留13百万个inode,现在你不能再创建任何文件了。

见2001年discussion of inodes

Wikipedia ext3页面有一个脚注,更简洁地解释了这一点:wiki link

此外,每个文件(不是块)分配inode,这就是为什么只有13M inode - mkfs.ext3必须配置为平均文件大小为8 KB,这将解决您所看到的问题。