关于XenServer的高可用,这篇都说清楚了
启用HA
在启用HA之前管理员必须正确配置环境。特别是:
用于网络心跳的NIC绑定应该可用;
存储心跳配置了multipath;
所有主机都在线并完全启动。
XenAPI客户端可以使用特定的共享SR(Storage Repository)用于存储心跳,否则Xapi将使用资源池默认的SR。Xapi将使用VDI_GENERATE_CONFIGAPI确保在加入liveset之前磁盘将自动添加到系统引导。
需要注意的是,为了重用现有心跳VDI,需要一些额外的设置:
如果在某些主机脱机的情况下禁用HA,则在重新启动这些主机时,它们更有机会得到格式正确但是无效状态文件。如果在HA禁用时销毁了VDI,则稍后启动的主机将无法连接磁盘,并且难以区分是临时存储故障还是HA被禁用。
心跳SR可以在昂贵的低延迟高可靠性存储上创建,并尽可能小(以最小化基础设施成本),HA一旦成功启用,它肯定不会耗尽空间并且之后无法启用。
Xapi到Xapi的通信如下:
Xapi Pool master 同时调用资源池中所有的主机的Host.ha_join_liveset。每个主机都运行ha_start_daemon脚本来启动Xhad。每台主机上的Xhad按照xhad.conf中配置网络和存储交换心跳。
加入LiveSet
xhad实例交换心跳并确定哪些主机在“liveset”中以及哪些主机已从“liveset”中被隔离。
如果“liveset”中的某个主机完全关闭服务,就会打上“excluded”标记,当该主机再次加入“liveset”后,该“excluded”标志会被清除掉。仅在一个主机完全关机又重启才会有该标志。
xapi通过ha_query_liveset命令定期查询xhad的状态。在加入“liveset”前xhad状态一直为“Starting”,直至加入“liveset”后,xhad状态才转变成“Online”。
xapi是否参与主节点的选举,依赖于ha-start-daemon脚本的返回。第一次启用HA时,集群已经有一个master。之后当该master节点异常被隔离之后,剩余的主机会选举它们其中的一个节点作为集群新的master。
关闭一个主机
当关闭一个主机时,可以安全地从池中“排除”它,使得存储心跳的故障不会导致资源池的主机自我隔离。当一个主机有“excluded”标记时,其他主机将不会把它当做master并且不会锁定资源,即不会有VM在其上运行。一个被排除在外的主机永远不会成为“裂脑”的一部分。
一旦某个主机放弃其主角色并关闭虚拟机,就可以使用ha_disarm_fencing禁用防护,用ha_stop_daemon停止xhad进程。守护程序停止后,可以在状态文件中设ha_set_excluded为“excluded”,主机就可以安全地重新启动。
启迪云-高级开发工程师 杨俊
最新活动更多
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 2024先进激光技术博览展
-
精彩回顾立即查看>> 全数会2024中国深圳智能制造与机器人展览会
-
精彩回顾立即查看>> 2024(第五届)全球数字经济产业大会暨展览会
-
精彩回顾立即查看>> 维科杯·OFweek2024中国工业自动化及数字化行业年度评选
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论