Answers:
该-T largefile
标志调整在创建文件系统时分配的inode数量。一旦分配,它们的数量就无法调整(至少对于ext2 / 3,不能完全确定ext4)。默认值为每16K磁盘空间一个索引节点。-T largefile
使它每兆字节一个inode。
每个文件需要一个索引节点。如果没有任何索引节点,则无法创建新文件。但是这些静态分配的inode也会占用空间。通过设置,您可以期望每100 GB的磁盘大约节省1.5 GB-T largefile
。-T largefile4
(每4 MB一个inode)不会产生如此显着的效果。
如果您确定设备上存储的文件的平均大小将超过1兆字节,那么请务必设置-T largefile
。我很乐意在存储分区上使用它,并认为它不太适合设置。
但是,如果将包含许多文件的非常大的源tarball解压缩到该分区(可能成千上万个),则有机会耗尽该分区的inode。在这种情况下,除了选择要解压缩的另一个分区外,您几乎无能为力。
您可以使用以下dumpe2fs
命令检查活动文件系统上可用的索引节点数:
# dumpe2fs /dev/hda5
[...]
Inode count: 98784
Block count: 1574362
Reserved block count: 78718
Free blocks: 395001
Free inodes: 34750
在这里,我仍然可以创建34000个文件。
这是我mkfs.ext3 -T largefile -m 0
在100 GB分区上执行以下操作后得到的:
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/loop1 102369 188 102181 1% /mnt/largefile
/dev/loop2 100794 188 100606 1% /mnt/normal
大文件版本具有102400个inode,而普通文件创建了6553600个inode,并在此过程中节省了1.5 GB。
如果您对将要放置在文件系统上的文件大小有很好的了解,则可以直接使用-i
开关微调索引节点的数量。它设置每个索引节点的字节数。如果您-i 65536
仍然可以创建超过一百万个文件,则可以节省75%的空间。我通常计算出至少要保留10万个索引节点。