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 的文件系统吗?
根据我的研究,ext4 可能不支持 500 TB 的 4K 块。
EXT3/EXT4 的默认分区具有每 16384 字节 (16 Kb) 一个 inode 的字节/inode 比率。
因此我们有:
inode 的数量是 32 位数字,因此任何 ext2/3/4 文件系统上的最大可能 inode 数量为 2^32-1 或 4,294,967,295 个 inode。
由于 33 554 432 000 远大于 4,294,967,295,因此无法分配该数量的 inode。您将需要超过最大 inode 数量的 8 倍。
如我所见,您的选择是:
-N 4294967295
这应该有效。使用现代版本
mke2fs
:inode 的数量会
(2**32)-1
自动设置上限,因此其他答案中表达的担忧不是问题。此外,x86 不支持使用大于 4k 的块大小,因为 Linux 限制要求块大小不能大于 VM 页面大小。因此,您可以在 PowerPC 上使用高达 64k 的块大小,因为它的页面大小为 64k。
我还要说,如果您使用的是非常大的文件系统,我强烈建议您使用最新版本
e2fsprogs
,而不是 Ubuntu 16.04 中的过时版本。在过去的 3 年中修复了很多错误,包括一些与非常大的文件系统相关的错误。