设置 ext4 文件系统以容纳 100,000,000 个文件 iNode 问题

设置 ext4 文件系统以容纳 100,000,000 个文件 iNode 问题

我有一个带 ext4 fs 的 RHEL 9

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdb1        2048 1258291199 1258289152  600G 83 Linux

已要求它是 ext4,带有 Inodes,可容纳 100,000,000 个文件 +

我以为我可以运行 mkfs.ext4 -N 2000000000 /dev/sdb1

但是当我安装分区时获得足够多的索引节点

挂载 /dev/sdb1 /fileshare

/fileshare 显示为只有 92GB

当我运行 mkfs.ext4 /dev/sdb1 然后挂载它时, /fileshare 显示为 560gb,这就是我想要的,如何获得需要容纳大文件数(1 亿到 5 亿)但仍然有的 inode 计数560GB 磁盘大小?

答案1

为什么-N 2000000000?你的问题表明你的目标是大约 1 亿个大关,而不是 20 亿个大关 - 你要求的索引节点比你需要的多 20 倍。解决这个问题,您可能会得到合理的结果。

然而,这里有一个关于文件大小的更大问题。虽然在一个最小 1kB/文件您只需要大约 125GB 的存储空间来保存这么多文件(包括 inode 的近似值,每 kB 4 倍),如果我们使用您的示例的 2x10^9 inode,那么这将是 2.25TB。至少。

答案2

您要求 20 亿个 inode,每个 inode 256 字节,即 476 GB inode。如果要求 5 亿,那么 inode 空间只有 120 GB 会好得多。您甚至可以缩小索引节点的大小-I 128,但这有限制,请参阅mkfs.ext4/手册mke2fs页了解详细信息

我只会使用该-i bytes-per-inode选项,并相信您会获得良好的平衡。

相关内容