web-dev-qa-db-ja.com

10億個のファイルをext4に保存する方法は?

作成したファイルは約800万個で、/ dev/sdb1には空きiノードがありませんでした。

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

誰かがパーティションをフォーマットするときにiノード数を指定できると言います。

例えばmkfs.ext4 -N 1000000000。

試しましたが、エラーが発生しました:

「inode_size(256)* inodes_count(1000000000)が大きすぎます...高いinode_ratio(-i)または低いinodeカウント(-N)を指定してください。」.

適切なinode_ratio値は何ですか?

Ext4の最小inode_ratio値は1024であると聞きました。

1つのパーティションに10億個のファイルを保存できますか?方法?そして、誰かがそれは非常に遅いと言います。

25
redice

Ext4ファイルシステムを作成するときに、使用タイプを指定できます。

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

使用可能な使用タイプは/etc/mke2fs.confにリストされています。使用タイプの主な違いは、iノードの比率です。 inode ratioが低いほど、ファイルシステムにファイルを作成できます。

ファイルシステムで最大数のiノードを割り当てるmke2fs.confの使用タイプは「news」です。 1 TBハードドライブのこの使用タイプでは、ext4は2億4400万のiノードを作成します。

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

つまり、10億のiノードを保持できる「-Tnews」を使用してext4ファイルシステムを作成するには、4つ以上のTBが必要です。

37