我有一个旧的 reiser 文件系统,我将把它转换为 Ext3。我遇到的问题是确定此分区的正确块大小和 inode 大小。
该分区大小为 44 GB,必须容纳 3,000,000 多个大小在 1 kb 到 10 kb 之间的文件,我如何找出 inode 和块大小的最佳比例?
下面的方法我试过,似乎没问题,但是复制文件的速度非常慢。
mkfs.ext3 \
-t ext3 \
-c \
-c \
-b 1024 \
-i 4096 \
-I 128 \
-v \
-j \
-O sparse_super,filetype,has_journal\
/dev/sdb1
谢谢。
答案1
对于如此有限的问题,没有“正确”的答案。如果您要设置台式机或笔记本电脑,请执行以下操作:
mkfs.ext3 /dev/sda1
该程序可以比没有经验的人更好地选择。如果你要存储一个大型网站,扩展由于可能存在大量的单个小文件,因此可能需要高达 25% 的 inode。
但你实际上只是告诉mkfs
程序“最多 25% 的 inode”。大多数文件系统创建设置都用于专门的应用程序,例如 RAID 条带化,其中文件系统的几何形状必须进行调整,否则速度会非常慢。
我知道每个人都有自己喜欢的文件系统设置。我还没有找到任何人能够证明在 40 GB 的台式机或笔记本电脑分区上偏离默认值的实用性。
和扩展并不是所有东西的最佳文件系统!我的笔记本电脑使用三种不同的分区格式类型,因为某些分区包含许多小的、单独的文件。其他分区则包含数量少得多的较大文件(适合 ext3 系统),例如 /home 分区。
/usr
可以有 500,000 个独立文件,扩展笨重,但是還是苍蝇。另一件事是访问控制列表. 您必须告知mkfs.ext3
您将使用访问控制列表,如果您要使用它们。访问控制列表是对权限的微调,通常在单用户系统上并不重要。但是如果你有一组 20 个普通用户,并且你想对其中一些用户进行不同的访问控制,你必须使用访问控制列表。
我个人喜欢軟體系对于通用文件系统,尽管它不能与 SELinux 一起开箱即用。但它是最复杂和最高效的文件系统。它用于多个品牌的 HPC。如果您愿意,可以谷歌搜索它。扩展浪费了 8% 的分区空间。这太离谱了。
但ext4更好。我不会给你写命令行。你必须确定分区的用途,并据此设计文件系统。扩展很可靠,但坦克也一样。但这并不意味着你想开着它逛街。
希望这会有帮助。
答案2
每个文件都需要一个 inode,inode 的大小将定义在需要另一个 inode 和足够的块来处理文件之前它可以达到的直接块的数量。
因此,就您而言,最小 inode 数量将为 3.000.000+。如果您使用默认值,您将获得 12 个直接块。因此,使用 1kB 的块大小,您将获得所需的数据。
显然,您可以减少 inode 大小并增加块大小以增加 inode 数量。这将减少可用空间,但同一文件系统中可以容纳更多文件。