计算节点服务异常修复
计算节点服务异常修复
二○二壹年十二月七日
目录
概述
问题现象
南网云平台生产Ⅳ区NFDW4-TSTACK-COM-203重启后nova-compute服务无法启动,报Unsupported VIF type binding_failed convert '_nova_to_osvif_vif_binding_failed
原因分析
虚拟机数据库内容丢失(迁移失败后,又执行了疏散失败),重启nova-compute,初始化虚拟机添加网卡报错。
该网络节点没有支持VLAN网络
修复内容
- 底层修改对应虚拟机数据:
nova.instance_info_caches 表network_info字段
neutron.ml2_port_bindings 表vif_type、vif_type字段
neutron.ports表status字段
修改逻辑:标红为需要修改字段,参照同网络同用户虚拟机进行修改
- 计算节点添加VLAN网络
影响范围
配置VLAN网络需要重启节点neutron服务,可能引起节点上的虚拟机丢包。
前期准备
本章节主要对该工作方案进行详细说明、实施前的准备工作和实施过程中的注意事项,规范化操作过程,减少变更时出现的问题,增加操作效率,降低改造对业务带来的影响。
前期准备
- 项目实施负责人,确定实施时间,向受影响客户通告此次实施事宜;
- 在实施前,对涉及系统进行检查,做好备份工作;
- 合理安排实施人员,做好测试和处理问题准备。
现场实施人员
设备清单
南网云-生产-Ⅳ区:
序号 | 主机名 | 管理IP | 用途 |
1 | NFDW4-TSTACK-CON-01 | 10.10.xx.xx | 控制节点 |
2 | NFDW4-TSTACK-COM-203 | 10.10.xx.xx | 计算节点 |
实施步骤
健康检查
所有控制节点依次检查openstack服务状态
. /root/keystonerc_admin nova service-list neutron agent-list cinder service-list openstack-service status rabbitmqctl cluster_status mysql -uroot -pxxxxx -e ”show status like '%wsrep%’;" |
备份文件
备份控制节点openstack数据库
mysqldump -uroot -pXXXXXX >tstack_openstack.sql |
查询当前数据并记录
use nova; select * from instance_info_caches where instance_uuid = '2419a87b-c13e-4dc9-98ce-a2fdcf2a3498'\G; use neutron; select * from ml2_port_bindings where port_id = '81cba393-1a04-45bb-8330-94721ce7ce4f'\G; select * from ports where id='81cba393-1a04-45bb-8330-94721ce7ce4f'\G; |
修复步骤
- 控制节点底层数据库修改数据
附件为sql语句
修改后查看计算节点服务是否恢复正常
- 计算节点NFDW4-TSTACK-COM-203添加VLAN网络
在计算节点NFDW4-TSTACK-COM-203执以下命令,创建vlan网桥,并将数据网卡桥接到vlan网桥中
#创建网桥br-data ovs-vsctl add-br br-data #数据网卡以系统实际vlan租户网络对应的网卡名为主,注意是业务网卡口 ovs-vsctl add-port br-data bond2 |
编辑/etc/neutron/plugin.ini,更新tenant_network_types,加入vlan
#tenant_network_types = vxlan,vlan sed -i "/tenant_network_types/{s/tenant_network_types.*/tenant_network_types = vxlan,vlan/}" /etc/neutron/plugins/ml2/ml2_conf.ini |
[ml2_type_vlan]块中添加physnet2,作为vlan的物理网络
#network_vlan_ranges = physnet2:1:4094 sed -i "/ml2_type_vlan/a network_vlan_ranges = physnet2:1:4094" /etc/neutron/plugins/ml2/ml2_conf.ini |
在 [ovs] 块中新加physnet2和物理网桥的映射
#bridge_mappings = physnet2:br-data sed -i "/integration_bridge/a bridge_mappings = physnet2:br-data" /etc/neutron/plugins/ml2/ml2_conf.ini |
重启neutron服务(重启耗时较长,等待即可)
openstack-service restart neutron #如无openstack-service命令,可通过yum安装 yum -y install openstack-utils 重启后查看如下结果则为正常 ovs-vsctl show | grep br-data Port int-br-data Interface int-br-data options: {peer=phy-br-data} Bridge br-data Port phy-br-data Interface phy-br-data options: {peer=int-br-data} Port br-data Interface br-data |
修复完成检察
按照步骤3.1进行检察。
应急回退
按照3.2记录的该节点数据进行回退修改。