我们正在使用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? p>
答案 0 :(得分:2)
我很确定在创建卷时使用静态分配inode(在本例中使用mfs.ext3)。无论出于何种原因,mkfs.ext3决定保留13百万个inode,现在你不能再创建任何文件了。
见2001年discussion of inodes
Wikipedia ext3页面有一个脚注,更简洁地解释了这一点:wiki link
此外,每个文件(不是块)分配inode,这就是为什么只有13M inode - mkfs.ext3必须配置为平均文件大小为8 KB,这将解决您所看到的问题。