混合驱动器上的软件 RAID 10 + LVM,扇区对齐?

bat*_*tad 4 software-raid partition mdadm lvm fdisk

我有 4 个 2.5" 7.2k 驱动器,我想在我的 KVM 实验室盒上构建一些 RAID 阵列,用于一些 VM 存储。

有 2 个 320GB 驱动器和 2 个 500GB 驱动器。我正在寻找使用 4x 320GB 分区创建 RAID 10 阵列。然后我将把 500GB 驱动器上剩余的 180GB 用另一个备用驱动器构建到 RAID 5 分区中。我意识到性能会受到影响,因为 RAID 10 阵列中的 2 个驱动器会发生争用,并且使用不匹配的驱动器也不是最佳的,但这仅适用于实验室/测试环境。

最初我以为我只会创建 4 个匹配的分区,创建 RAID 10 阵列,在此基础上创建 LVM 并完成。但是一旦我开始研究 RAID 和 4k 磁盘上的 LVM,扇区/块对齐的主题就出现了,现在我不知道从哪里开始。

320GB 驱动器报告扇区大小(逻辑/物理):512 字节/512 字节 500GB 驱动器报告扇区大小(逻辑/物理):512 字节/4096 字节

因此,从一些阅读中,我需要考虑以下变量:

  • 分区开始/对齐
  • RAID 条带大小
  • RAID 超级块位置 (?)
  • LVM PV --数据对齐
  • 然后对齐 LV 中的任何文件系统

以下是我基于此的资源:https : //askubuntu.com/a/19572http://tytso.livejournal.com/2009/02/20

在一些关于 IRC 的简短交流中,我也收到了相互矛盾的建议,mdadm、LVM 工具甚至 fdisk 现在都足够聪明,可以考虑到这一点,我不应该担心。是这样吗?

有没有人能够完成在这种特定情况下我需要做的事情以获得最佳对齐/扇区/条带大小?

请尝试忽略这样一个事实,即混合驱动器意味着整个事情开始时并不是最佳的,正如我所说,这是一个测试/实验室环境。

fro*_*utz 6

  • 分区开始/对齐

使它们从 1 MiB 边界开始,例如使用partedunit mib。这样您就不会遇到今天的 4k 扇区磁盘的问题,而明天的 8k 或 16k 磁盘也不会出现问题……而且每个磁盘只会浪费 1MiB。

您可以使用 验证任何给定磁盘的分区对齐方式parted /dev/disk unit b print free。它以字节为单位打印单位,因此您可以查看 a startof1250249670656是否真的是 4096 (4k) 或 1048576 (1MiB) 的倍数。

请注意,在 msdos 分区方案中,只有主分区和逻辑分区必须对齐。扩展分区(逻辑容器)无关紧要。

  • RAID 条带大小

通常是 64k 或 512k,所以它已经是 4k 的倍数,这不是问题。

  • RAID 超级块位置

没关系。如果超级块在最后,对齐就是分区本身。如果超级块位于开头,则mdadm使用将是 MiB 倍数的数据偏移量(最多 128 MiB)。使用 来检查数据偏移量mdadm --examine /dev/sda1

  • LVM PV --数据对齐

LVM 偏移量通常也是 1 MiB,请使用pvs -o +pe_start.

  • 然后对齐 LV 中的任何文件系统

一旦 PV 本身对齐,所有 LV 也会自动对齐,因为 PE 大小(通常)也是 1 MiB 的倍数。(4 MiB 或更大)

文件系统使用 4k 块大小已经很长时间了。至少对于标准的 Linux 文件系统,此时你真的不能做任何错事。

甚至 fdisk

虽然fdisk最近有一些发展,但我会选择partedor gdisk

我也不担心混合驱动器。这就是您从 Linux 软件 RAID 中获得的那种灵活性,这是一件好事。我自己混合了磁盘大小,因此从未注意到任何问题。