采用 LVM + mdadm 的混合 RAID

采用 LVM + mdadm 的混合 RAID

所以我一直在研究 Synology 和他们的想法混合 RAID使混合驱动器 RAID 阵列既具有容错能力又高效。

因此,我正在测试一个想法(这里不需要考虑性能),使用混合阵列

  • 2x 2TB
  • 1x 250GB

我在想,如果将它们分成最低面额的一半大小 - 那么将 RAID 与 LVM 结合起来可以有效地产生跨越 3 个磁盘(或更多)的冗余 FS。

|     250GB     |   |       2TB      |   |       2TB      |
|---------------|   |----------------|   |----------------|
| 125GB | 125GB |   | 1.87TB | 125GB |   | 1.87TB | 125GB |
| sda1  | sda2  |   | sdb1   | sdb2  |   | sdc1   | sdc2  |
    |       |           |       |            |        |
    |       |           |       |            |        |
    |-------|-----------|-------|            |        |
            |    0      |                    |        |
            |----0------|--------------------|--------|
                 0      |       1            |
                 0      |-------1------------| 
                 0              1  2
                md0           md1  md2


md0 = 125GB  + 125GB
md1 = 125GB  + 125GB
md2 = 1875GB + 1875GB

    = 2125GB Spanned RAID1 storage

那么,在 LVM 上创建一个由物理卷组成的卷组md0md1然后md2在其上创建逻辑卷。


从理论上讲 - 这是完全没问题的 - 而且我知道这会对性能产生影响(这不是一个问题)。

因此,下一步的发展是能够添加任意大小的磁盘 - 并让其自动进行数学运算。

但我遇到的一个小问题是如何继续分割主磁盘分区——在运行活动 VG 的磁盘上

即,如果您在上面的示例中添加了一个 500GB 的磁盘 - 则需要在其他任何磁盘上创建 2x 250GB 的分区(或 2x 125 和 2x 250 - 但不要陷入复杂情况),

这不像您可以fdisk运行 LVM 卷组,采用 1875GB 的主分区,然后创建 1625GB 和 250GB 的分区,设置 RAID 阵列,然后将它们添加回现有卷组。

答案1

似乎没有真正的问题,但是这里有一些想法:

  • 只有当你的时间不值钱时这才值得;否则,只需再买一个 2 TB 的硬盘,将它们组成 3 驱动器 RAID 5 组,然后就别再乱搞了。
  • 如果可以在 Linux 下扩展软件 RAID 10 卷,那么这将解决您的问题,因为您只需添加驱动器,它就会解决问题。不幸的是,情况似乎并非如此(至少在我的系统上的 mdadm 和 md 版本上)。但如果您不关心扩展阵列,RAID 10 肯定比上面的设置更好。
  • 最后,如果不进行大量手动数据移动,实际上没有任何方法可以添加您提到的 500 GB 驱动器。要实现这一点,您可以(但我不会):
    • 在新驱动器上创建 2 x 125 和 1 x 250(假设它们是 sdd1-3)
    • 将 sda1 移动到 sdd1:将 sdd1 添加到 md0;将副本数更改为 3;等待重新同步;从 md0 中删除 sda1;将副本数更改为 2
    • 对 sda2 -> sdd2 (md1) 重复上述操作
    • 删除 sda2,将 sda1 调整为 250 GB
    • 从 sda1 和 sdd3 创建 md3
    • 将 md3 添加到卷组

希望这是有意义的。

边注:

  • 亲爱的 HP,AutoRAID 阵列是自切片面包以来最棒的东西。把它们带回来吧。

答案2

RAID-1 意味着您浪费了空间,而 md0 实际上只有 125G(md1 也是如此)。您运行的模式没有什么特别之处 — 您可以在 sda 和 sdb、sdc 的部分上使用 RAID-5(或者在其上使用 RAID-10,因为 Linux 软件 RAID 可以在奇数个磁盘上为您执行此操作);而 sdb、sdc 的其余部分实际上具有 RAID-1。

相关内容