目录
问题背景
由于服务器硬件问题,需要对该独立的网络节点进行关机更换硬件操作,该网络节点上运行着服务 neutron-l3-agent、neutron-openvswitch-agent、neutron-dhcp-agent 和 neutron-metadata-agent,负责部分弹性网卡的路由、虚拟机元数据、和虚拟机网络 dhcp 工作,由于 dhcp 和元数据服务是多点提供服务的,所以仅需要对该节点上的虚拟分布式路由进行主备切换
操作范围
需要更换硬件的独立网络节点
适用版本
TStack-X86-版本通用
影响范围
在对每个虚拟路由主备进行切换时,位于该路由上的弹性网卡的网络会中断 2-3 秒
操作时段
由于每个主路由位于该节点的路由在进行主备切换时,会有 2-3 秒的网络中断,所以建议在业务低峰期或晚上进行操作
操作步骤
1. 查找所有位于该节点的主路由 ID
for i in $(find /var/lib/neutron/ha_confs/ -type d)
do
if [ ${i} == '/var/lib/neutron/ha_confs/' ];
then continue
fi
cat ${i}/state | grep master
if [ ${?} == 0 ]
then echo ${i}
fi
done
# 输出示例,该路由 ID 为 c487f803-82dc-4293-9b21-c8bcc6243901:
master
/var/lib/neutron/ha_confs/c487f803-82dc-4293-9b21-c8bcc6243901
2. 切换所有主路由到其它网络节点
2.1 切换每个路由时,对该路由上的其中一个浮动 IP 进行持续 ping 检测,确认切换之后网络恢复再进行下一个路由的切换
# 查看该路由的弹性 IP 地址
ip netns exec qrouter-[路由 ID] ip addr
# 示例:
ip netns exec qrouter-c487f803-82dc-4293-9b21-c8bcc6243901 ip addr
# 对其其中一个弹性 IP 地址进行持续 ping 检测
# windows 客户端
ping -t [弹性IP]
# linux 客户端
ping [弹性IP]
2.2 找路由 ha 网卡
ip netns exec qrouter-[路由 ID] ip addr \
| grep -v inet | grep ha | awk '{print $2}' | cut -d: -f1
# 示例:
ip netns exec qrouter-c487f803-82dc-4293-9b21-c8bcc6243901 ip addr \
| grep -v inet | grep ha | awk '{print $2}' | cut -d: -f1
# 输出示例:
ha-2f415d56-cb
2.3 切换路由
ip netns exec qrouter-[路由 ID] \
ifconfig [ha 网卡] down
# 示例:
ip netns exec qrouter-qrouter-c487f803-82dc-4293-9b21-c8bcc6243901 \
ifconfig ha-2f415d56-cb down
如果该路由的网络未在 3 秒内恢复,请执行回滚操作
2.4 回滚
ip netns exec qrouter-qrouter-c487f803-82dc-4293-9b21-c8bcc6243901 \
ifconfig ha-2f415d56-cb up
3. 路由切换验证
对所有位于该节点的主路由切换工作完成之后,再次检测该节点主路由,确认切换无遗漏
for i in $(find /var/lib/neutron/ha_confs/ -type d)
do
if [ ${i} == '/var/lib/neutron/ha_confs/' ]
then continue
fi
cat ${i}/state | grep master
if [ ${?} == 0 ]
then echo ${i}
fi
done
4. 关闭网络服务
systemctl stop neutron-l3-agent \
neutron-openvswitch-agent \
neutron-dhcp-agent \
neutron-metadata-agent
5. 关机
init 0
6. 硬件更换
该工作由硬件厂商操作
7. 开机并检查服务
# 在该网络节点检查服务状态是否为 running
systemctl status neutron-l3-agent \
neutron-openvswitch-agent \
neutron-dhcp-agent \
neutron-metadata-agent
# 检查之前手动 down 掉的 ha 网卡是否状态恢复
for ns in $(ip netns list)
do
net_if=$(ip netns exec ${ns} ip addr \
| grep DOWN | awk '{print $2}' | cut -d: -f1)
if [ "${net_if}" != '' ]
then echo ${ns} ${net_if}
fi
done
# 未恢复网卡输出格式如下:
[namespace] [ha 网卡]
# 例如:
qrouter-00973857-4cbd-4eb4-beb4-6aadc7c68f44 ha-313225de-dd
# 如果有未恢复的情况,手动进行 up
ip netns exec [namespace] ifconfig [ha 网卡] up
# 在控制节点检查服务状态是否全为 alive
source keystonerc_admin
neutron agent-list --host [网络节点]
# 示例:
neutron agent-list --host TX-REGION2-MANAGE-04
# 输出示例:
+--------------------------------------+--------------------+----------------------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+----------------------+-------+----------------+---------------------------+
| 091cc6ee-7471-4a51-88ee-480e4026285b | Metadata agent | TX-REGION2-MANAGE-04 | :-) | True | neutron-metadata-agent |
| 0cc4cdda-51d6-4013-b648-af4f301a6c58 | DHCP agent | TX-REGION2-MANAGE-04 | :-) | True | neutron-dhcp-agent |
| 4455ce85-1333-4130-803e-04fb6d170d41 | Open vSwitch agent | TX-REGION2-MANAGE-04 | :-) | True | neutron-openvswitch-agent |
| 7b17322c-27c3-4ff1-bfb7-8feaf0b01609 | L3 agent | TX-REGION2-MANAGE-04 | :-) | True | neutron-l3-agent |
+--------------------------------------+--------------------+----------------------+-------+----------------+---------------------------+
标签:指南,ip,agent,neutron,TStack,ha,节点,路由
From: https://www.cnblogs.com/xuning-xuning/p/17351869.html