RAID级别1的2个networking块设备

我目前有2个500 GB HD的RAID级别1。 RAID由服务器1pipe理,驱动器位于两台不同的服务器上。

一旦我设置了RAID,RAID就会很好用,但是随机的时候,连接似乎会丢失,而mdad​​m会将其标记为错误,即使我使用带有-persist选项的nbd-client; mdadm拒绝看到这个驱动器。 将此断开连接重新引入RAIDarrays的唯一方法是:
mdadm -r / dev / md0 / dev / nbd1
mdadm -a / dev / md0 / dev / nbd1

我的问题是,它导致在networking上500GB的完全RESYNC。
我对这个问题有两个问题:

有没有办法告诉mdadm不要完成一个完整的重新同步,因为它在断开连接之前完成一个重新同步,所以我看不到一个完全重新同步的好理由?

我会更好的rsync,因为我需要的只是我写/删除任何数据的备份副本? 我build议这样做,因为据说rsync只能传输delta(或更改)的数据,而不是mdadm似乎在做的事情。

哇,我有一段时间没有听说过任何人使用NBD。

你有没有考虑过使用DRBD ?

它的function包括从networking故障自动恢复和差分再同步。


更好的是,这是主线 !

借用使用DRBD的build议,因为这正是它所devise的场景。 您还可以屏蔽本地磁盘错误 – 如果本地磁盘出现故障,DRBD可以从远程磁盘提供数据块,以便操作系统知道它仍然具有function完整的磁盘。

DRBD还具有必要的基础架构,可以以比使用简单的软件RAID解决scheme更好的方式来pipe理故障转移和一致性。

虽然我决不会考虑在NBD上做networkingRAID 1,而且对于所有“HA存储”都是DRBD的忠实粉丝,但是在您的问题中有一点适用于其他mdadm情况。 你说:

有没有办法告诉mdadm不要完成一个完整的同步

就在这里。 检查mdadm (8)是否为“写入意图位图” – 基本上,这是mdadm记住哪些块同步的方法,只能重新同步那些不知道是最新的块。 在你的情况下,我仍然使用DRBD,但是对于大型的本地RAID组,它也可以在崩溃之后帮助很多。

我会build议除DRBD以外的东西..这就是GlusterFS 。 它有许多不同的存储机制,你可以在多个块设备上模拟RAID,通过分割,镜像或RAID-5类似的arrays结构。

你也可以做很酷的东西,如encryption。 唯一的缺点是它是基于FUSE的,但在最近的RHEL / CentOS内核中,这没什么问题。 Ubuntu / Debian也可以。

(我不为gluster工作,但我在一些大型的安装中使用它,这是一个很好的networking文件系统。)

是的,RAID在这种情况下是错误的技术。 您想要使用rsync或查看正在开发的一些分布式文件系统。