首页 文章

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

提问于
浏览
1

我们使用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 回答

  • 2

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

    见2001年discussion of inodes

    维基百科的ext3页面有一个脚注,更简洁地解释了这一点:wiki link

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

相关问题