ext3 格式选项

ext3 格式选项

我正在软件 raid5(md)上创建一个 ext3 文件系统,我想知道在创建文件系统(使用 mkfs.ext3)和挂载时的最佳参数是什么。

RAID5 块大小为 128k,阵列有 3 个驱动器,总有效容量为 900 GB。ext4 不是一个选项。

编辑:Filesystem 有多个 VPS(虚拟专用机),包括一个 Gentoo VPS,里面有大量小文件。VPS 不使用镜像,它们直接将文件存储在文件系统上。它还有很多 500-1000 MB 的文件。

谢谢你,Matic

答案1

优化条带大小背后的想法是对其进行优化,以便在您的典型工作量大多数读取请求可以通过一次读取(多次)来完成,均匀分布在所有数据磁盘上。对于三磁盘 RAID-5 组,数据磁盘数量为两个。

例如,假设我的典型工作负载产生的 I/O 读取请求平均为 128kB。如果我设置了三磁盘 RAID-5,那么您需要创建 64kB 的块。按如下方式计算:

avg request size / number of data disks = chunk size
128kB / 2 = 64kB

这是你的RAID 組,我们还没有开始做文件系统。

下一步是确保文件系统与 RAID 集的特性一致。因此,我们要确保文件系统知道 RAID 集的块大小。然后它可以将超级块均匀地分布在三个磁盘上。

为此,我们需要告诉 mke2fs 一个块的大小,或者更确切地说,一个块可以容纳多少个文件系统块。这称为文件系统的“步幅”:

chunk size / size of filesystem block = stride size
64kB / 4kB = 16

然后您可以使用 -E stride=16 选项调用 mke2fs。

前面提到的还谈到了 mke2fs 的 -E 条带宽度选项,但我自己从未使用过它,我使用的 mke2fs 版本的手册页也没有提到它。如果我们想使用它,我们会像使用 32 一样使用它:条带宽度是通过将步幅乘以数据磁盘数量(在您的例子中是两个)来计算的。

现在回到问题的核心:最佳块大小是多少?正如我上面所述,您需要 I/O 读取请求的平均大小。您可以通过检查 iostat 或 sar 输出中的相应列来获取此值。您需要在具有与您正在配置的系统相当的工作负载的系统上执行此操作,并且持续很长时间。

确保您知道该值使用的是什么单位:扇区、千字节、字节还是块。

答案2

在不了解您的确切工作量的情况下,我认为默认设置可能是最佳选择。-m 0如果您不担心非 root 用户会填满磁盘,并且/或者dir_index如果您要对目录中的文件数量进行一些愚蠢的设置,那么默认设置可能是最佳选择。

答案3

确保文件系统与 RAID 条带大小一致 -

http://wiki.centos.org/HowTos/Disk_Optimization

总结的很好。

通过确保文件系统正确对齐,您可以避免在 RAID5 上执行 RMW,从而有助于提高性能。

相关内容