带有LVM + mdadm的混合RAID

所以我一直在看Synology和他们的混合RAID的想法,使混合驱动器RAIDarrays既容错又高效。

所以,我正在testing一个想法(这里的性能不是一个问题),以及一个混合的数组

  • 2个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 

那么,在由物理卷md0md1md2组成的LVM上创build一个卷组,然后在上面创build逻辑卷。


理论上 – 这是完全正确的 – 我知道这只是性能的影响(这不是一个问题)。

所以下一个发展是能够添加任意大小的磁盘 – 并自动进行math运算。

但是,我碰到一个小墙壁的时候,你会如何继续斩断主要的磁盘分区 – 在运行主动VG的磁盘上

IE浏览器。 如果你在上面的例子中增加了一个500GB的磁盘,那么需要在其他任何磁盘上创build2个250GB的分区(或者是2个125和2个250),但是不要陷入困境

它不像你可以运行一个正在运行的LVM卷组,取一个1875GB的主分区,然后创build一个1625GB和250GB的分区,设置RAIDarrays,然后将它们添加回现有卷组。

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

  • 如果你的时间毫无价值,这是唯一值得的; 否则,只要再购买一块2TB的硬盘,把它们变成3块硬盘的RAID5就可以了。
  • 如果可以在Linux下增加软件RAID 10卷,那么可以解决您的问题,因为您可以添加驱动器并将其整理出来。 不幸的是,这似乎并不是这种情况(至less在我的系统上的mdadm&md版本)。 但是,如果你不关心增长arrays,RAID 10绝对是比你上面的设置更好的答案。
  • 最后,在没有大量手动数据移动的情况下,没有任何方法可以添加您提到的500 GB驱动器。 要做到这一点,你可以(但我不会):
    • 在新驱动器上创build2 x 125和1 x 250(假设他们是sdd1-3)
    • 将sda1移动到sdd1:将sdd1添加到md0; 将副本数量更改为3; 等待重新同步; 从md0中删除sda1; 将副本数量更改为2
    • 重复sda2 – > sdd2(md1)
    • 删除sda2,将sda1的大小调整为250 GB
    • 从sda1和sdd3创buildmd3
    • 将md3添加到您的卷组

希望是有道理的。

边注:

  • 亲爱的惠普,自动RAIDarrays是自切片面包以来最好的事情。 把他们带回来

RAID-1意味着你浪费空间,而md0实际上只有125G(以及md1)。 在你运行的模式中没有什么特别的 – 你可以在sda上安装RAID-5,在sdb上安装sdc(或者使用RAID-10,因为Linux软件RAID可以在奇数个磁盘上为你做这个)。 而其余的sdb,sdc实际上都是作为RAID-1的。