如何为 linux 文件系统计算适当数量的 inode/block 大小

5 linux filesystems ext3 inode conversion

我有一个旧的 reiser 文件系统,我要将其转换为 Ext3。我遇到的问题是确定此分区的正确块和 inode 大小。

该分区有 44 GB 大,必须容纳 3,000,000 多个大小在 1 kb 到 10kb 之间的文件,我如何确定 inode 和块大小的最佳比率?

下面是我尝试过的东西,看起来不错,但使复制文件非常慢。

mkfs.ext3 \
 -t ext3 \
 -c \
 -c \
 -b 1024 \
 -i 4096 \
 -I 128 \
 -v \
 -j \
 -O sparse_super,filetype,has_journal\
  /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

谢谢。

jne*_*ves 1

每个文件都需要一个索引节点,索引节点的大小将定义在需要另一个索引节点和足够的块来处理文件之前它可以到达的直接块的数量。

因此,在您的情况下,最小 inode 数量将是 3.000.000+。如果使用默认值,您将获得 12 个直接块。因此,使用 1kB 的块大小即可满足您的需要。

显然你可以减少inode大小并增加块大小来增加inode数量。这将使您的可用空间更少,但同一文件系统中的文件更多。