如何在ext4上存储10亿个文件?

时间:2014-01-28 04:53:20

标签: linux inode ext4

我只创建了大约800万个文件,然后/ dev / sdb1中没有免费的inode。

[spider@localhost images]$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            8483456 8483456       0  100% /home

有人说可以在格式化分区时指定inode计数。

e.g。 mkfs.ext4 -N 1000000000.

我尝试了但是收到了错误:

  

“inode_size(256)* inodes_count(1000000000)太大...指定更高的inode_ratio(-i)或更低的inode计数(-N)。”。

适当的inode_ratio值是什么?

我听说ext4的min inode_ratio值是1024。

是否可以在一个分区上存储十亿个文件?如何?有人说它会很慢。

1 个答案:

答案 0 :(得分:37)

创建ext4文件系统时,您可以指定使用类型:

mkfs.ext4 -T usage-type /dev/something

/etc/mke2fs.conf中列出了可用的使用类型。该 使用类型之间的主要区别是inode比率。较低的 inode ratio ,您可以在文件中创建更多文件 系统

mke2fs.conf中的使用类型,它分配最大数量的 文件系统中的inode是“新闻”。使用此用法类型为1 TB硬盘驱动器,ext4创造了2.44亿个inode。

# tune2fs -l /dev/sdb1 | grep -i "inode count"
Inode count:              244219904
# sgdisk --print /dev/sdb
Disk /dev/sdb: 1953525168 sectors, 931.5 GiB

这意味着创建ext4需要4 TB以上 带有“-Tnews”的文件系统,可能容纳10亿 索引节点。