OpenStack Rocky版本实例检索失败与VM连接故障排查:系统升级是否为诱因?
首先明确:在OpenStack Rocky版本中执行apt upgrade完全可能导致功能异常。Rocky是2018年发布的老旧OpenStack版本,官方早已停止支持,系统包的升级(尤其是涉及Python、数据库、OVS等核心依赖)很容易打破OpenStack组件间的版本兼容性,引发服务通信失败、资源检索异常等问题——这大概率就是你遇到实例检索失败、VM无法连接的根源。
针对你提供的计算节点neutron-openvswitch-agent日志里的核心错误:
transaction error: {"details":"Transaction causes multiple rows in \"Manager\" table to have identical...
这是因为OVS的Manager表中已经存在重复的ptcp:6640:127.0.0.1条目,neutron agent尝试创建新的Manager记录时触发了唯一性约束错误。以下是具体的修复步骤:
第一步:修复OVS Manager重复条目问题
先查看当前OVS的Manager配置,确认重复条目:
ovs-vsctl list Manager你会看到多条目标为
ptcp:6640:127.0.0.1的记录。清空现有Manager记录并重启agent,让服务重新生成正确配置:
# 删除所有现有Manager条目 ovs-vsctl remove-manager # 重启neutron-openvswitch-agent服务 systemctl restart neutron-openvswitch-agent再次检查服务状态,确认该错误不再出现:
systemctl status neutron-openvswitch-agent
第二步:排查控制节点升级引发的兼容性问题
控制节点的apt upgrade可能导致OpenStack核心组件与计算节点版本不匹配,或者依赖库冲突,需要逐一验证:
检查组件版本一致性:
在控制节点和计算节点分别执行以下命令,对比版本是否一致:# 控制节点 nova-api --version neutron-server --version # 计算节点 nova-compute --version neutron-openvswitch-agent --version如果版本不一致,可尝试将计算节点的对应包升级到控制节点版本(注意Rocky版本的包可能已从官方源移除,建议使用本地备份源),或者回滚控制节点升级的包:
# 查看最近升级的包历史 apt list --upgradable --history # 回滚指定包到旧版本,例如nova-api apt install nova-api=<旧版本号>检查核心服务状态:
在控制节点检查所有OpenStack服务是否正常运行:openstack service list systemctl status nova-api neutron-server mariadb rabbitmq-server查看服务日志排查具体错误:
journalctl -u nova-api -f journalctl -u neutron-server -f验证VM网络连通性:
在计算节点查看OVS网桥和端口状态,确认网络配置正常:ovs-vsctl show检查VM的IP分配情况、安全组规则是否允许访问:
openstack server show <实例ID> openstack security group rule list <安全组ID>
第三步:预防后续问题
对于停止支持的OpenStack版本,强烈建议:
- 不要随意执行
apt upgrade,如需更新,仅针对特定安全补丁,且提前在测试环境验证。 - 考虑升级到受支持的OpenStack版本(如Victoria、Wallaby等),避免因依赖库过期引发更多兼容性问题。
内容的提问来源于stack exchange,提问作者Maneesha Perapalla

