1

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

~/lists# df -h
已使用的文件系统大小可用使用百分比已安装在
/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
文件系统 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
开发者 186059 824 185235 1% /开发者
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 "块大小"
dumpe2fs 1.41.4(2009 年 1 月 27 日)
块大小:4096

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

4

1 回答 1

2

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

请参阅 2001 年关于 inode 的讨论

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

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

于 2010-01-14T06:57:38.920 回答