我想到了以下几种可能性:
>使用iSCSI导出远程磁盘,并在本地机箱的ZFS磁盘和远程iSCSI磁盘之间建立镜像.这个解决方案更大的吸引力在于它的简单性,因为它使用ZFS自己的镜像.另一方面,ZFS不会优先考虑远程本地磁盘上的本地磁盘,这会导致性能下降(我认为这几乎与10 GbE网络无关).而且,引起更大关注的原因是ZFS在两个盒子之间网络链路丢失的情况下将如何表现.当远程机器可用时,它是否会重新同步阵列,还是需要手动干预?
>使用DRBD同步两个ZVOLS并在DRBD设备之上放置ZFS.换句话说,我说的是堆叠的ZVOL DRBD ZFS解决方案.这似乎是我的首选方法,因为DRBD 8.4非常稳定且经过验证.但是,许多I / O层在这里发挥作用并且性能可能受损.
>在顶部使用普通的ZFS GlusterFS.从ZFS的角度来看,这是更简单/更好的解决方案,因为所有复制流量都委托给GlusterFS.你发现GlusterFS足够稳定吗?
你觉得更好的方法是什么?谢谢.
解决方法
但是,如果要进行实验,可以使用Infiniband SRP或100GbE RDMA在两个节点之间创建ZFS镜像.
例如,node1和node2各自具有本地磁盘(假设为硬件RAID)并通过SRP呈现该本地存储.一个节点一次控制zpool,该池由node1的本地磁盘和node2的远程磁盘组成.
您的镜像是同步的,因为它是ZFS镜像.故障转移和一致性由正常的重新同步行为处理. Zpool导入/所有权/导出由Pacemaker和标准集群实用程序处理……
或者你可以使用同样的commercial solution.看到:
http://www.zeta.systems/blog/2016/10/11/High-Availability-Storage-On-Dell-PowerEdge-&-HP-ProLiant/