技术实践|高斯集群服务器双缺省网关故障分析
导语:当前国产化数据库使用范围越来越广泛,在GaussDB数据库的使用过程中难免会遇到一些问题,有的问题是由于在安装过程中没有注意细节而产生的,多数隐患问题都是在特定场景下才会暴露出来,且暴露的时间未知,这就给数据库的运维工作带来极大的挑战。
本文就是基于一次数据库安装过程中出现的故障而形成的,文中主要阐述了网络基础知识、数据库环境、故障分析、问题解决、总结等内容,供各位同僚在日后的服务器安装过程中参考借鉴。
网络基础知识介绍
■路由(Routing):是指IP数据包从源到目的地时,端到端路径的网络范围,通俗解释:数据包由源地址到目的地址所经过的所有路径的集合。
■ 网关(Gateway):可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的网络设备。要实现这两个网络之间的通信(跨网段访问),则必须通过网关。
■ 缺省网关(Default Gateway):是一台主机如果想和其他网段的主机通信,但找不到可用的路由,就把数据包发给缺省网关。
■ 默认路由(Default route):是对IP数据包中的目的地址找不到存在的其他路由时,所选择的最后的路由。
■ 三层交换机(L3 Switch):具有部分路由器功能的交换机,工作于OSI网络标准模型的第3层(网络层)。三层交换机最重要的目的是加快局域网内部的数据交换,所具有的路由功能也是为这一目的服务的,能够做到一次路由,多次转发。在局域网中一般三层交换机充当网关。
■ 二层交换机(L2 Switch):工作于OSI网络标准模型的第2层(数据链路层),故而称为二层交换机。二层交换机属数据链路层设备,可以识别数据帧中的MAC地址信息,并根据MAC地址进行转发,同时将这些MAC地址与对应的端口记录在自己内部的一个地址表中。局域网内部(相同网段)主机相互访问需要经过二层交换机。
■ 双(多)网关主机:一台服务器存在多个网关,访问不同的网段经过不同的网关。
网络基本示例图
基于上面的拓扑图,当网段A的服务器A要访问网段B的服务器B时,就需要经过网关D,如图中的红色虚线所示,这个虚线就是路由,因为服务器A连接2个网关,如果服务器A把IP数据包发送给网关C,那么服务器A和服务器B之间肯定是无法通信的。
以上内容为对于网络基础知识的介绍,接下来将进入本文的重点——高斯集群服务器的双缺省网关故障分析。
数据库集群环境描述
高斯数据库版本A8.0.0.5,共2(管理节点)+21(数据节点)台物理节点,7个安全环,每个安全环3台数据节点。
CN节点4个,每个数据节点有2个主DN节点、2个备DN节点、2个从DN节点。
每台物理机有96核心CPU,1TB内存。
管理面和业务面的网络都为双万兆网口,管理面网段:172.18.10.0/24,业务面网段:172.18.20.0/24,数据库服务器双网口,Bond1:业务面,Bond0:管理面。
集群简单拓扑图
问题描述
某日重启高斯集群的CN1服务器(一台CN节点)后,当执行跑批作业时收到告警,ETL服务器上跑批作业部分失败,报错中发现ETL服务器在CN1节点执行的作业都失败了,但在其他三个CN节点执行的作业都正常,登录ETL服务器后,手动Telnet CN1节点的25308端口不通,Telnet其他3个CN节点正常。
问题检查
根据问题描述,初步判断只有CN1节点出现问题。
■ 在ETL服务器上抓取数据包,发现数据包可以正常发送,但ETL服务器没有收到CN1节点的回包
■ 在CN1节点抓取数据包,可以接收到ETL主机的数据包,也可以正常发送回包
■ 查看其他CN服务器路由
■ 查看CN1服务器路由
问题分析
检查主机路由发现CN1服务器的默认路由和其他3台CN服务器不同,CN1服务器bond1的Metric值为301,而其他CN服务器bond1的Metric值为300,根据路由选择的优先级规则,Metric值越小优先级越高,所以CN1服务器的缺省网关为bond0,其他CN服务器的缺省网关为bond1。
分析到此故障原因已经发现,CN1的缺省网关是bond0,默认路由指向管理面的三层交换机,所以返回ETL服务器的IP数据包都发送到管理面网段,导致ETL服务器不能收到回包。
实际ETL服务器和CN1数据包的路由如下图的红色虚线所示:
问题总结
服务器的缺省网关一般情况下只有一个,当服务器的缺省网关有多个时,就会根据Metric值来进行优先级选择,优先级高(Metric值最小)的即为此时的缺省网关。
此案例中的解决方法有多种,其中的两种方案如下:
■ 管理面网段取消默认网关配置,业务面网段配置默认网关,FI控制台网段(10.10.10.0/24)的主机在高斯集群服务器中,均配置静态路由。
■ 管理面网段取消默认网关配置,业务面网段配置默认网关,管理面三层交换机中做双向NAT转换,把FI控制台主机的IP地址(10.10.10.100)映射为管理面网段(172.18.10.0/24)的IP地址。
相关文章:

技术实践|高斯集群服务器双缺省网关故障分析
导语:当前国产化数据库使用范围越来越广泛,在GaussDB数据库的使用过程中难免会遇到一些问题,有的问题是由于在安装过程中没有注意细节而产生的,多数隐患问题都是在特定场景下才会暴露出来,且暴露的时间未知,…...

手把手教你搭建Maven私服
Java全能学习面试指南:https://javaxiaobear.cn 1. Maven私服简介 ①私服简介 Maven 私服是一种特殊的Maven远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。 当然…...
LeetCode 面试题 16.25. LRU 缓存
文章目录 一、题目二、C# 题解 一、题目 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的…...

LaTeX 数学公式常见问题及解决方案
本文汇总了博主在使用 LaTeX 写文档过程中遇到的所有数学公式常见问题及对应的 LaTeX 解决方案 持续更新... 目录 1. 连等式2. 公式重新开始编号2.1 图片/表格重新编号 1. 连等式 在数学公式推导过程中常常会遇到如 Figure 1 所示的连等式,一般需要保证等号或者不等…...

2023最新软件测试20个基础面试题及答案
什么是软件测试? 答案:软件测试是指在预定的环境中运行程序,为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么? 答案:软件测试的主要目的是保证软件的质量,并尽可能大…...

JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用
一、什么是BeanShell? BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,JMeter性能测试工具也充分接纳了BeanShell解释器,封装成了可配置的BeanShell前置和后置处理器,分别是 BeanShell Pre…...
Java声明式事务实战!工作中用这几种就够了!
文章目录 1.几种常用的事务传播行为1.1 REQUIRED1.2 REQUIRES_NEW1.2 NESTED 2. 事务问题2.1 事务不生效?2.2 事务不回滚? 文章会分为两个部分来讲解,第一部分是声明式事务的几种使用场景。第二部分包含事务没有生效,没有回滚的情…...
Abp6.0 使用 appsettings.json配置Serilog.Sinks.MariaDB
Abp6.0中已经启用Serilog,使用Serilog.Sinks.MariaDB包可以保存到MariaDB,mysql中 一种做法是在var loggerConfiguration new LoggerConfiguration( )后使用WriteTo.MariaDB扩展方法来配置,这样在代码中配置不够灵活,修改起来也不方便 其实…...

关于Flume-Kafka-Flume的模式进行数据采集操作
测试是否连接成功: 在主节点flume目录下输入命令: bin/flume-ng agent -n a1 -c conf/ -f job/file_to_kafka.conf -Dflume.root.loggerinfo,console # 这个file_to_kafka.conf文件就是我们的配置文件 然后在另一台节点输入命令进行消费数据: kafka-cons…...

WeTab--颜值与实力并存的浏览器插件
一.前言 现在的浏览器花花绿绿,有大量的广告与信息,令人目不暇接。有没有一款好用的浏览器插件可以解决这个问题呢?我愿称WeTab为版本答案。 WeTab的界面: 干净又整洁。最最关键的是还有智能AI供你服务。 这个WeTabAI就像chatgp…...
【整理】HTTP相关版本对比
1. HTTP/1 超文本传输协议,处于计算机网络中的应用层,HTTP是建立在TCP协议之上,所以HTTP协议的瓶颈及其优化技巧都是基于TCP协议本身的特性。 缺陷: 连接无法复用 ---------- 每次请求经历三次握手和慢启动HOLB(队头…...

spark性能调优 | 默认并行度
Spark Sql默认并行度 看官网,默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数,不要使基数) 拓展 在本地 task需要自己设置&a…...

Python-pptx教程之二操作已有PPT模板文件
文章目录 简单的案例找到要修改的元素修改幻灯片中的文本代码使用示例 修改幻灯片的图片代码使用示例 删除幻灯片代码使用示例 获取PPT中所有的文本内容获取PPT中所有的图片总结 在上一篇中我们已经学会了如何从零开始生成PPT文件,从零开始生成较为复杂的PPT是非常消…...

生活总是自己的,请尽情打扮,尽情可爱,,
同色系拼接羽绒服了解一下 穿上时尚感一下子就突显出来了 90白鸭绒填充,不仅时尚还保暖 设计感满满的羽绒服不考虑一下吗?...

栈和队列的初始化,插入,删除,销毁。
目录 题外话 顺序表和链表优缺点以及特点 一.栈的特点 二. 栈的操作 2.1初始化 2.2 栈的销毁 2.3 栈的插入 2.3 输出top 2.4 栈的删除 2.5 输出栈 题外话 顺序表和链表优缺点以及特点 特点:顺序表,逻辑地址物理地址。可以任意访问,…...
重温《Unix设计哲学》
重温Unix设计哲学 这个世界是复杂的,但往往本质的东西都是简单的。这些原则,不光是用在程序开发,也适用于架构设计,产品设计等等地方。 简洁原则:以简洁为美 不要为了满足自己的虚荣心,企图搞一些花哨的东…...

AIGC创作系统ChatGPT源码,AI绘画源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
Spring条件注解@Conditoinal+ Profile环境切换应用@Profile
Spring条件注解 一、创建一个maven项目 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.5.RELEASE</version></dependency> </dependenc…...

Scrum框架中的Sprint
上图就是sprint里要做的事。Sprint是scrum框架的核心,是所有的想法、主意转换为价值的地方。所有实现产品目标的必要工作都在sprint里完成,这些工作主要包括Sprint 计划(Sprint planning)、每日站会(Daily Scrum&#…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...