Ubuntu 16.04 创建 ext4:500 TB 文件系统

Ubuntu 16.04 创建 ext4:500 TB 文件系统

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自动限制的,因此其他答案中表达的担忧不是问题。

此外,x86 不支持使用大于 4k 的块大小,因为 Linux 限制要求块大小不能大于 VM 页面大小。因此,您可以在 PowerPC 上使用最大 64k 的块大小,因为它的页面大小为 64k。

我还要说的是,如果您使用的是非常大的文件系统,我强烈建议您使用最新版本的e2fsprogs,而不是 Ubuntu 16.04 中附带的过时版本。过去 3 年中已经修复了很多错误,包括一些与非常大的文件系统相关的错误。

答案2

根据我的研究,ext4 可能不支持 500 TB 的 4K 块。

EXT3/EXT4 的默认分区的字节数/inode 比率为每 16384 字节 (16 Kb) 一个 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 个 inode。

由于 33 554 432 000 比 4,294,967,295 大得多,因此不可能分配那么多的 inode。您需要的 inode 数量是最大数量的 8 倍。

我认为您的选择是:

  • 尝试强制 inode 限制:-N 4294967295
  • 使用 8x4 = 32 KB 的块,如果你的文件很小,这会很浪费
  • 使用 ext4 以外的其他文件系统。我看到过一些报告说 XFS 可以支持这样的文件系统,但我无法从个人经验中得出这样的结论。

相关内容