我可以构建 RAID 5+1 系统吗?

Anc*_*ool 8 raid raid5 raid1

我必须说我已经在这个平台上发现了类似的问题,但上下文不同,所以我自己尝试。

我的想法是这样的:
我有4个磁盘,其中3个容量相同,第四个的容量是其他磁盘的两倍。我会在 RAID 5 配置中使用上面的 3 个磁盘,然后在 RAID 1 配置中将它们与第四个磁盘一起使用。\

假设,如果 3 个磁盘都是 250GB,第四个磁盘是 500GB,那么我应该通过镜像获得 500GB 的可用存储空间。

如果这是一个可行的想法,那么实施它是否有意义,或者有什么缺点吗?如果有的话,在 RAID 设置中使用这些磁盘的可能方法是什么?

PS:正如您可能想的那样,我无意使用此设置作为备份系统,我知道 RAID 不是备份解决方案!:)

sho*_*hok 27

对于硬件 RAID - 不,您不能:仅在非常特殊的情况下才支持嵌套 RAID 级别(即:RAID50 或 60)。

如果使用极其灵活的Linux MD,您可以轻松完成。让我们看看我如何使用(小)文件支持的循环设备来模拟它:

# create loopbacks - for testing only, you are going to use real disks
root@localhost:~/raid# truncate --size=250M disk1.img
root@localhost:~/raid# truncate --size=250M disk2.img
root@localhost:~/raid# truncate --size=250M disk3.img
root@localhost:~/raid# truncate --size=500M disk4.img
root@localhost:~/raid# losetup -f /root/raid/disk1.img
root@localhost:~/raid# losetup -f /root/raid/disk2.img
root@localhost:~/raid# losetup -f /root/raid/disk3.img
root@localhost:~/raid# losetup -f /root/raid/disk4.img
root@localhost:~/raid# losetup -a | grep -v snaps
/dev/loop8: [64768]:132175 (/root/raid/disk4.img)
/dev/loop6: [64768]:132150 (/root/raid/disk2.img)
/dev/loop7: [64768]:132173 (/root/raid/disk3.img)
/dev/loop5: [64768]:132147 (/root/raid/disk1.img)

# create first RAID5 device
root@localhost:~/raid# mdadm --create md127 -l 5 -n 3 /dev/loop5 /dev/loop6 /dev/loop7
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/md127 started.
root@localhost:~/raid# mdadm --create md126 -l 1 -n 2 /dev/md127 /dev/loop8
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md/md126 started.

# show arrays
root@localhost:~/raid# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 loop8[1] md127[0]          <--- this is the 2x ~500MB RAID1 one
      506880 blocks super 1.2 [2/2] [UU]

md127 : active raid5 loop7[3] loop6[1] loop5[0] <--- this it the 3x ~250MB RAID5 one
      507904 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
Run Code Online (Sandbox Code Playgroud)

请注意,此嵌套 RAID5+1 阵列最终“仅”有 500 GB 可用空间。我强烈考虑在 4x 250GB 磁盘上使用 RAID6(除了丢失的空间之外,较大的磁盘可以用作较小的磁盘,没有问题),提供相同的可用 500 GB 和更好的可靠性(可能还有另外 250 GB 不受保护的“暂存空间”)在较大磁盘的末尾)。


Zac*_*c67 8

我将在 RAID 5 配置中使用上面的 3 个磁盘,然后在 RAID 1 配置中将它们与第四个磁盘一起使用。

“异国情调”的嵌套 RAID 级别会增加操作风险,并且硬件 RAID 不太可能支持您正在考虑的嵌套。简单的 RAID5 通常可以提供更好的恢复能力。此外,将所有四个磁盘放入 RAID5 阵列可为您提供 3*250=750 GB 的可用存储空间。(我希望您的 3x 250 GB + 1x 500 GB HDD 仅作为示例,我不会再使用那么旧的磁盘。)

一般来说,我建议考虑 RAID6。如今的 HDD 非常大,以至于重建需要相当长的时间才能运行,并且重建期间的任何读取问题都会导致阵列脱机。

此外,请确保您正在配置媒体巡查(也称为数据清理)。定期清理可以防止软错误变硬,也可以防止硬错误在较长时间内未被发现。您当然不希望在重建过程中发现额外的硬错误。