使用起来很有用-T 大文件为包含 flac 格式的视频和音频等大文件的分区创建文件系统时是否需要标记?
我测试了带有该标志和不带有该标志的同一分区,并使用une2fs -l [分区],我检查了“文件系统功能”,两者都启用了“large_file”。所以,没有必要使用-T 标志大文件?
答案1
该-T largefile
标志调整在创建文件系统时分配的索引节点数量。一旦分配,它们的数量就不能调整(至少对于 ext2/3 来说是这样,对于 ext4 不完全确定)。默认情况下,每 16K 磁盘空间有一个 inode。-T largefile
使其每兆字节有一个索引节点。
每个文件需要一个 inode。如果没有剩余任何 inode,则无法创建新文件。但这些静态分配的索引节点也占用空间。您可以期待每 100 GB 磁盘节省约 1.5 GB通过设置-T largefile
,而不是默认值。-T largefile4
(每 4 MB 一个 inode)不会产生如此显着的效果。
如果您确定设备上存储的文件的平均大小将超过 1 MB,那么请务必设置-T largefile
.我很高兴在我的存储分区上使用它,并且认为它的设置并不太激进。
但是,如果您将包含许多文件(例如数十万个)的非常大的源 tarball 解压到该分区,则有可能会耗尽该分区的 inode。在这种情况下,除了选择另一个分区来解压之外,您无能为力。
您可以使用以下命令检查实时文件系统上有多少可用的 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
大文件版本有 102 400 个 inode,而普通版本创建了 6 553 600 个 inode,并在此过程中节省了 1.5 GB。
如果您很清楚要放入文件系统上的文件大小,则可以直接使用开关微调 inode 的数量-i
。它设置每个索引节点的字节数比率。如果您在使用的-i 65536
同时仍然能够创建超过一百万个文件,您将节省 75% 的空间。我一般计算至少保留10万个inode备用。
答案2
我认为你混淆了两个完全不同且独立的概念。
您可以在 dumpe2fs 的输出中看到的功能large_file
意味着该文件系统可以容纳大于 2 GiB 的文件,我认为它是由现代内核自动设置的。与-T
选项无关mke2fs
。