首页 > 其他分享 >TStack_独立网络节点硬件更换指南

TStack_独立网络节点硬件更换指南

时间:2023-04-25 10:36:06浏览次数:40  
标签:指南 ip agent neutron TStack ha 节点 路由

目录

问题背景

由于服务器硬件问题,需要对该独立的网络节点进行关机更换硬件操作,该网络节点上运行着服务 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

相关文章

  • Frida官方文档-快速入门指南
    对于不耐烦的人,这里是使用Frida进行跟踪的方法~$pipinstallfrida-tools~$frida-trace-i"recv*"-i"read*"*twitter*recv:Auto-generatedhandler:…/recv.js#(snip)recvfrom:Auto-generatedhandler:…/recvfrom.jsStartedtracing21functions.PressC......
  • 界面控件DevExtreme使用指南 - 折叠组件快速入门(二)
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。请注意:在开始本教程之前,请确保DevExtreme已安装在Angula......
  • K8s 集群 etcd节点故障解决方案
    1环境说明k8s版本:v1.20etcd节点(192.168.0.12)故障: 报错详情: 4月2422:47:13k8s-node2etcd[9543]:{"level":"warn","ts":"2023-04-24T22:47:13.571+0800","caller":"etcdserver/server.go:2065","msg":......
  • [Leetcode]返回链表开始入环的第一个节点
    力扣链接思路一:快慢指针法一个指针从相遇点走,一个指针从起始点走,会在入口点相遇.最终代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){......
  • ref用法(获取元素节点)
    importReactfrom'react'exportdefaultclassAppextendsReact.Component{myref=React.createRef()render(){return(<div>{/*获取输入框的内容写法一*/}<inputref=......
  • 带修改树上随机游走到叶节点期望得分
    太菜了,搞了一下午才搞懂。。题意:一棵有\(n\)个节点的树,每个点都有一个权值\(a_i\)。从\(1\)号点开始,每次等概率随机移动到一个相邻节点\(i\),并获得\(a_i\)的得分。(可以重复获得,起点权值也计算)有\(q\)次修改,每次修改一个点的权值。在一开始和每次修改后,求出移动到叶......
  • 使用Plist编辑器——简单入门指南
     本指南将介绍如何使用Plist编辑器。您将学习如何打开、编辑和保存plist文件,并了解plist文件的基本结构和用途。跟随这个简单的入门指南,您将掌握如何使用Plist编辑器轻松管理您的plist文件。plist文件是一种常见的配置文件格式,用于存储应用程序或系统的设置信息,如键值对、......
  • 动力节点老杜Vue框架教程【一】Vue程序初体验
    Vue.js是一个渐进式MVVM框架,目前被广泛使用,也成为前端中最火爆的框架Vue可以按照实际需要逐步进阶使用更多特性,也是前端的必备技能动力节点老杜的Vue2+3全家桶教程已经上线咯!学习地址:https://www.bilibili.com/video/BV17h41137i4/视频将从Vue2开始讲解,一步一个案例,知识点......
  • Apple 的 plist 编辑器入门指南:基础操作与高级功能详解
     PlistEditPro是一款专为macOS编写的最高级属性列表Plist编辑器。对于Mac和IOS开发人员来说,编写应用程序时必须编辑各种列表文件。PlistEditPro通过提供直观且功能强大的界面,使编辑这些文件更加容易。它不仅能够复制和粘贴或拖放属性列表数据,还提供强大的搜索和替换功能,并......
  • k8s 能做到限制pod在节点的指定cpu核心上运行吗?用--cpuset 方式实现,请给出一个具体案
    在Kubernetes中,可以使用--cpuset方式来限制Pod在节点的指定CPU核心上运行。这可以通过在Pod的yaml文件中设置容器启动命令来实现。具体地,我们可以在容器的启动命令中使用--cpuset选项来指定需要运行的CPU核心。下面是一个典型的使用--cpuset选项的Pod的yaml文件示例:apiVersion:......