![无需共享存储的 XenServer HA(故障转移虚拟机)](https://linux22.com/image/635582/%E6%97%A0%E9%9C%80%E5%85%B1%E4%BA%AB%E5%AD%98%E5%82%A8%E7%9A%84%20XenServer%20HA%EF%BC%88%E6%95%85%E9%9A%9C%E8%BD%AC%E7%A7%BB%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%89.png)
在我工作的乌拉圭大学,我们有 2 台 IBM BladeCenter S,每台有 4 个服务器刀片。每台刀片都安装并运行 XenServer 6.2。
我们的想法是让每个 BladeCenter 处于不同的构建(连接)中,以实现故障转移。
每个 BladeCenter 机箱都嵌入了光纤通道存储,而且,我不知道如何与其他 BladeCenter 机箱共享该存储。
另外,我知道共享存储方式不是最好的,因为它实现了单点故障......
因此,我需要找到一种方法来实现 XenServer 6.2 的高可用性,而无需共享存储。我发现http://www.halizard.com/但是我想知道没有共享存储的其他高可用性替代方案。
我能想到的另一件事是,我是否可以通过网络镜像存储(使用 iSCSI),并将 iSCSI 目标多路径化为 1,或者有多路径 iSCSI 和光纤通道(但我不知道这是否存在)。如果可能的话,XenServer HA 实现将起作用。
希望我们能够帮助我!
答案1
您好,您可以尝试使用 Xen DRBD 来实现无需共享存储的 HA...
http://www.drbd.org/users-guide/ch-xen.html
https://github.com/locatrix/xs-pacemaker
—阿西特
答案2
如果您连接足够的本地存储,您可以构建自己的 iSCSI HA 解决方案。
目录: - drbd > 8.2.x - tgtd
设置两个本地虚拟机,在 drbd 双主模式下将两个 LV 复制到彼此。使用每个本地 iscsi 目标。在 XEN 服务器中,确保在主动/被动模式下使用每个目标(无 rr!)。
答案3
选择 HA 解决方案时,您需要确定可接受的停机时间(如果有)。这将影响设置的复杂性。
我认为您有两种无需购买额外设备的选择(进一步排列):
- “始终在线”——主-主模式下的 DRBD
- 5-15 分钟的停机时间 - DRBD 处于主从模式
对于没有共享存储的最高可用性设置,您必须在主-主角色中使用 DRBD。这将需要 STONITH 设备来关闭无响应的节点。基于 IP 的电池备份设备通常可以有效地处理此功能。Pacemaker 和 corosync 可以处理启动虚拟机和管理资源。
优点是您可以进行实时迁移并且理论上可以消除停机时间。
这种设置的缺点是,如果发生脑裂(它一定会发生),则很难修复,因为数据可能存在于两个节点上。
或者,如果您可以接受几分钟的停机时间,我们可以运行以下命令:
- DRBD 充当主从角色
- MDADM Raid 1 阵列 -> LVM -> DRBD -> LVM 的存储堆栈
- 在发生故障转移事件时启动资源的脚本(管理员手动运行此脚本)。
基本上,我们在两个 MDADM Raid 1 阵列上有两个存储 LVM 池。它们被导出到 DRBD 以进行块级复制。然后,在 DRBD 上添加 LVM 以启用虚拟机快照和对虚拟机的直接文件系统访问。为什么是两个?
最初的想法是为每个虚拟机创建一个 DRBD 资源,这样机器就可以根据负载在主机之间移动,而不会让一台主机闲置。管理它很麻烦,所以两个 200GB 的 DRBD 资源是一个很好的折衷方案。这样,r0 可以在节点 1 上成为主节点,r1 可以在节点 2 上成为主节点。如果节点 1 发生故障,我们会在节点 2 上运行“make master”脚本,它会处理 LVM 映射,为这些资源设置 DRBD 主节点,并告诉 virsh 启动所有节点。在 SSD 阵列上,我可以在大约 2-3 分钟内关闭十几个虚拟机并在节点 2 上启动它们。