导语:当前国产化数据库使用范围越来越广泛,在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地址。