使用网络共享作为驱动器的软件 RAID

使用网络共享作为驱动器的软件 RAID

免责声明:从性能的角度来看,从可靠性的角度来看,这可能是疯狂的,并且可能仅具有学术价值(例如:它会起作用吗?)。话虽如此:

mdadm 是否支持将各个冗余磁盘作为网络驱动器的 RAID 设置?

这是我(疯狂?)想法的背景:我想使用一台 Linux盒子只需一个小磁盘即可容纳系统。另外两个通过以太网连接到此盒子机器,每个都有 RAID-0 系统,以充分利用旧硬盘。两个 RAID-0 卷的大小大致相同。现在,每台计算机都提供 RAID-0 卷作为网络共享,并且盒子将它们分别安装为 /old_drives_0 和 /old_drives_1。

最重要的是,我想告诉盒子上的 mdadm 使用 /old_drives_0 和 /old_drives_1 作为两个镜像“磁盘”构建 RAID-1 系统,并在网络上提供这样创建的 RAID-1 卷作为驱动器。

我可以告诉 mdadm 使用几乎任何安装点(而不是通常的 /dev/sdaX),如下所示:

mdadm /dev/md0 --create --raid-devices=2 --level=1 /old_drives_1 /old_drives_2
mkfs /dev/md0 # optionally specifying -text3 or -text4
mount /dev/md0 /raid

(松散地引用https://unix.stackexchange.com/a/48437/27804

我知道有很多理由不通过网络构建raid,但也可能有支持它的理由:一旦磁盘损坏,我所要做的就是将网线连接到另一台机器......另外,当我将三个 NIC 放入盒子中时,它可以通过专用以太网连接访问自己的两个 RAID“驱动器”,并使用第三个作为上游流量,以便从其客户端访问 RAID-1 卷。

我什至可以保留一个“盒子”和一台“机器”作为直接替换件,这样一旦出现故障就可以快速维护。

答案1

RAID 总是需要一个设备(至少如果您使用 md)。有两种方法。可能更好的一种是使用网络块设备:

https://en.wikipedia.org/wiki/Network_block_device

您可以告诉 md 使用此类设备仅用于写入(因为读取速度太慢)mdadm ... --write-mostly

另一个选项是在网络卷(文件系统级别)上创建文件并将其用于循环设备。

相关内容