ext4 標準では、最大 1 EB のサイズのファイル システムを作成できることが示されています。
私の目標は、Ubuntu 16.0.4 で 500 TB の ext4 ファイル システムを作成することです。fs 作成コマンドを確認してください:
sudo mkfs.ext4 -m 0 -J device=/dev/md125p1 /dev/md125p2 -b 4096 -E stride=128,stripe-width=6400,lazy_itable_init=0,lazy_journal_init=0
このコマンドを実行すると、次のエラーが発生します。
スーパーブロックの設定中に、要求された数の inode を持つファイルシステムを作成できません
mkfs.ext4 の -i オプションを使用して、inode 値あたりのバイト数を非常に高い数値に設定しようとしましたが、それでもうまくいきませんでした。
RHEL では最大 50 TB の ext4 ファイル システムを推奨していることは承知しています。それでも、ext4 で 500 TB のファイル システムを作成することは可能ですか?
答え1
これで動作するはずです。最新バージョンを使用しますmke2fs
:
% mkfs.ext4 /tmp/test.img 500T
mke2fs 1.45.4 (23-Sep-2019)
Creating regular file /tmp/test.img
Creating filesystem with 134217728000 4k blocks and 4259840000 inodes
Filesystem UUID: 00257d43-0298-4aaf-8cca-37e34f3d1bb8
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
2560000000, 3855122432, 5804752896, 12800000000, 17414258688,
26985857024, 52242776064, 64000000000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
inode の数は(2**32)-1
自動的に制限されるため、他の回答で表明された懸念は問題になりません。
また、ブロック サイズを VM ページ サイズより大きくできないという Linux の制限により、x86 では 4k を超えるブロック サイズの使用はサポートされていません。したがって、PowerPC のページ サイズは 64k なので、最大 64k のブロック サイズを使用できます。
また、非常に大きなファイルシステムを使用している場合は、e2fsprogs
Ubuntu 16.04 に同梱されている古いバージョンではなく、最新バージョンの を使用することを強くお勧めします。過去 3 年間で、非常に大きなファイルシステムに関連するものも含め、多くのバグ修正が行われています。
答え2
私の調査によると、ext4 は 4K のブロックに対して 500 TB をサポートしない可能性があります。
EXT3/EXT4 のデフォルト パーティションでは、バイト/inode 比率は 16384 バイト (16 Kb) ごとに 1 つの inode です。
つまり、次のようになります。
500 GB = 500 * 1024 * 1024 * 1024 * 1024 = 549 755 813 888 000 bytes
549 755 813 888 000 bytes / 16384 = 33 554 432 000 inodes
inode の数は 32 ビット数なので、ext2/3/4 ファイル システムで可能な inode の最大数は 2^32-1 または 4,294,967,295 個になります。
33 554 432 000 は 4,294,967,295 よりはるかに大きいため、その数の inode を割り当てることは不可能です。最大 inode 数の 8 倍が必要になります。
私が考える選択肢は次のとおりです:
- inode制限を強制してみます:
-N 4294967295
- 8x4 = 32 KBのブロックを使用しますが、ファイルが小さい場合は無駄になります。
- ext4 以外のファイルシステムを使用します。XFS がそのようなファイルシステムをサポートできるという報告を見たことがありますが、個人的な経験からは断言できません。