Nova计算节点高可用性故障转移问题咨询
Nova计算节点高可用性故障转移问题咨询
嘿,看起来你在配置Nova计算节点HA时遇到了故障转移的问题——当主计算节点关机时,VM没法自动切换到其他节点。结合你提到的环境(3台带Fencing的虚拟控制器HA、Ceph存储后端),我帮你梳理几个常见的排查方向和实操步骤:
一、先验证Fencing设备本身的可用性
Fencing是HA故障转移的核心前提,如果Fencing动作本身无法执行,后续的VM转移肯定会失败:
- 在任意一台控制器节点上,手动执行Fencing命令测试目标计算节点,比如用IPMI Fencing的话:
如果手动执行失败,先排查Fencing设备的问题:比如IPMI服务是否开启、计算节点的IPMI网络是否通畅、用户名密码权限是否正确。fence_ipmilan -a <故障计算节点IP> -u <IPMI用户名> -p <IPMI密码> -o reboot - 检查集群(Pacemaker/Corosync)中Fencing资源的配置状态,执行
pcs status查看所有stonith资源是否处于Started状态,有没有故障告警。
二、检查Nova计算节点的关键配置
确保Nova计算节点的配置支持故障转移和Ceph存储访问:
- 打开计算节点的
/etc/nova/nova.conf,确认以下关键参数:*migration_support = True*:启用迁移支持*live_migration_uri = qemu+tcp://%s/system*:适配KVM虚拟化的迁移URI(如果是其他虚拟化类型请对应调整)- Ceph相关参数配置正确:
rbd_pool = <你的Ceph存储池名称> rbd_user = <Ceph客户端用户名> rbd_secret_uuid = <对应Ceph Secret的UUID> *resume_guests_state_on_host_boot = false*:避免节点重启时自动恢复VM,交给HA集群统一调度
- 验证计算节点能否正常访问Ceph:执行
rbd ls <你的Ceph池名>,看能否列出VM的镜像文件,如果无法访问,检查Ceph客户端配置、密钥环权限、网络连通性。
三、检查集群与Nova的联动配置
如果控制器是用Pacemaker/Corosync做HA,需要确保Nova服务与集群资源正确关联:
- 确认集群中已启用
*stonith-enabled=true*(执行pcs property show stonith-enabled查看),这是触发Fencing动作的关键开关。 - 检查Nova调度器的配置,确保启用了与HA相关的过滤器,比如
*AggregateInstanceExtraSpecsFilter*、*AvailabilityZoneFilter*,保证调度器能识别可用的计算节点并分配VM。
四、查看日志定位具体故障
如果前面的配置都没问题,从日志里找细节:
- 控制器节点的
/var/log/nova/nova-scheduler.log:搜索down host或migration关键词,看调度器是否检测到计算节点下线,有没有尝试调度VM到其他节点的记录,是否有报错。 - 故障计算节点的
/var/log/nova/nova-compute.log:查看关机前的日志,有没有Ceph连接中断、服务异常退出的信息。 - Pacemaker日志
/var/log/pacemaker/pacemaker.log:搜索stonith或fence关键词,确认是否触发了Fencing动作,有没有执行失败的具体原因(比如网络超时、权限不足)。
五、验证VM的存储属性
确保VM使用的是Ceph共享存储而非本地存储:
- 在控制器节点执行
nova show <VM ID>,查看block_device_mapping字段,确认磁盘类型为rbd;同时检查OS-EXT-SRV-ATTR:host确认VM原来所在的计算节点。
备注:内容来源于stack exchange,提问作者prahin
相关产品推荐
相关产品推荐

