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

我只创build了大约8百万个文件,然后在/ dev / sdb1中没有空闲的inode。

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

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

例如mkfs.ext4 -N 1000000000。

我试过,但得到一个错误:

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

什么是合适的inode_ratio值? 我听说ext4的最小inode_ratio值是1024。

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

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

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

可用的使用类型在/etc/mke2fs.conf中列出。 使用类型的主要区别是inode比率。 inode比率越低,您可以在文件系统中创建文件的次数越多。

mke2fs.conf中分配文件系统中最多的inode的使用类型是“news”。 在1TB硬盘上使用这种使用类型,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 

这意味着需要超过4TB才能创建一个带有“-Tnews”的ext4文件系统,这个文件系统可能容纳10亿个节点。