在同一组驱动器上混合使用 RAID0 和 RAID1

在同一组驱动器上混合使用 RAID0 和 RAID1

我很快会在一台作为 VMWare 主机箱(目前运行 VMWare Server)的机器上安装一对新驱动器。它们将用作几个特定 VM 的 RAID0 阵列,当它们被积极使用时,将产生较高的 I/O 负载。该机器托管许多用于测试目的的相当大的 VM。

由于(从成本角度来看)购买小于 500G 的驱动器没有什么意义,因此最终的阵列大小将为 1000G,远的为此目的所需的空间超出了预期,因此我正在考虑使用一部分磁盘作为 RAID1 阵列来存储 VM 备份和参考副本(释放现有 RAID1 阵列上的部分空间)。

以下做法会有什么危害吗:

  1. 将驱动器分成 5 个分区
  2. 将一对分区设置为初始 RAID0 阵列
  3. 使用这个新的物理卷创建 LVM 组
  4. 将一对分区设置为初始 RAID1 阵列
  5. 使用这个新的物理卷创建 LVM 组
  6. 当任一卷组需要扩展时
    1. 在空闲分区对中创建新的 R0/R1 阵列
    2. 扩展相关的 LVM 组以包含这个新的物理卷

我怀疑以上所有方法都能完美运行,但我想知道是否存在一些我不知道的问题。例如,将驱动器拆分为多个阵列是否会影响内核有效缓存 I/O 的能力?

我曾考虑过用单个 RAID10 阵列重建机器,覆盖最终的所有驱动器,但让机器离线这么长时间是不可能的,而且它不允许像使用单独阵列那样分离 I/O 负载。

答案1

我认为这样做没有问题。这样做既经济高效,又能解决您遇到的问题,只要 RAID1 I/O 负载仅在受控维护时段内有效。

但是,根据负载类型,大型 RAID1 可能会为您提供更简单、更高效的设置。

答案2

例如,将驱动器分成多个阵列是否会影响内核有效缓存 I/O 的能力?

由于缓存在块级别运行,因此您会因为不断的搅动而有效地破坏您获得的任何缓存命中。我不建议对任何 RAID 使用同一驱动器分区,除非您只是为了了解如何设置它(即,它是为了实验和学习,并且是临时的)。您会后悔在生产机器上这样做。

我曾考虑过用单个 RAID10 阵列重建机器,最终覆盖所有驱动器......

RAID 10 的优点在 SF 的其他地方有讨论。

...但是,长时间让机器脱机是不可能的,并且它不允许像使用单独阵列那样分离 I/O 负载。

有时,这是“没有付出就没有收获”。坦率地说,这是你最好的选择。确保你的 RAID 安排是可启动的。但在 4 驱动器设置(最低限度)中,你最终会获得不错的保护和不错的性能。否则,如果你只有 2 或 3 个驱动器,只需执行 RAID1(镜像)。如果你有 3 驱动器安排,请考虑将驱动器 3 设为热备用。

答案3

我已经在同一个磁盘上设置了 RAID0 和 RAID1,并设置了单独的分区,运行正常。不过我还没有测量过性能。不知道这是否会导致任何性能问题。

答案4

为什么?

RAID 旨在跨驱动器设置,而不是跨分区设置。使用单个驱动器并创建分区然后对其进行 RAID 毫无用处。如果驱动器坏了,您的所有 RAID“保护”也会坏掉。

即使在 2 个驱动器上进行 RAID 游戏(除非您只是并行使用这两个驱动器)也会浪费时间和精力而没有真正的好处。

驱动器很便宜,所以如果您真的想要/需要突袭,那么请购买更多驱动器并对其进行突袭。

干杯,

-R

相关内容