Linux上的ZFS(ZoL)和实时复制

我想了解什么是通过10 GbE链接连接的Linux(ZoL)盒子上的两个ZFS之间的实时复制的最佳解决scheme。 目标是将其用于虚拟机; 一次只有一个盒子会运行虚拟机和ZFS文件系统本身。 快照需要在第一个(活动)框中可能。 我打算使用企业/近线级别的SATA磁盘,所以双端口SAS磁盘是没有问题的。

我想在以下可能性:

  • 使用iSCSI导出远程磁盘,并在本地盒子的ZFS磁盘和远程iSCSI磁盘之间build立镜像。 这个解决scheme更大的吸引力在于它的简单性,因为它使用ZFS自己的镜像。 另一方面,ZFS不会优先考虑远程磁盘上的本地磁盘,这可能会导致性能下降(我认为这与10 GbEnetworking几乎没有关系)。 而且,引起更大关注的是,在两个盒子之间的networking链路丢失的情况下,ZFS将如何performance。 当远程机器可用时是否会重新同步arrays,还是需要手动干预?
  • 使用DRBD同步两个ZVOLS并在DRBD设备的顶部放置ZFS 。 换句话说,我正在谈论一个堆叠的ZVOL + DRBD + ZFS解决scheme。 这似乎是我的首选方法,因为DRBD 8.4非常稳定并得到证实。 然而,许多I / O层在这里玩,性能可能会受到影响。
  • 顶部使用普通的ZFS + GlusterFS 。 从ZFS的angular度来看,这是更简单/更好的解决scheme,因为所有的复制stream量都被委托给GlusterFS。 你觉得GlusterFS足够稳定吗?

你觉得更好的方法是什么? 谢谢。

我build议以15或30秒为间隔进行群集双节点共享SAS设置或连续asynchronous复制 。 后者有利于连续性,后者则提供了获得地理分离的途径。 他们可以一起使用。

但是,如果您想进行实验,则可以使用Infiniband SRP或100GbE RDMA在两个节点之间创buildZFS镜像。

例如,node1和node2每个都有本地磁盘(假定是硬件RAID),并通过SRP呈现本地存储。 一个节点一次控制zpool,该池由node1的本地磁盘和node2的远程磁盘组成。

你的镜像是同步的,因为它是一个ZFS镜像。 通过正常的重新同步行为来处理故障转移和一致性。 Zpool导入/所有权/导出由Pacemaker和标准集群实用程序处理…

或者你可以使用一个相同的商业解决scheme 。 看到:

http://www.zeta.systems/blog/2016/10/11/High-Availability-Storage-On-Dell-PowerEdge-&-HP-ProLiant/