发生在阿里云 SLB 4 层的一次故障记录

摘要:
阿里云SLB和云服务器之间发生了一个故事。开发人员调试了代码,发现问题是节点未能连接到数据库。具体如下:1、ECS向数据库SLB请求三四次,连接超时。最后一个问题在于数据库的SLB。最后,关闭工单提示。实际处理时间:6小时2分钟#记录:确保将来需要访问数据库SLB的ECS与数据库SLB后端的ECS不在同一内网段。如果是,则删除数据库SLB上后端ECS的重复路由。


阿里云 SLB 与 ECS 之间发生故事。环境如下:

SLB api-node: 该 SLB 后端接着 10 台节点服务器

SLB sql-node: 该 SLB 后端接着 2 台节点服务器

问题描述:

访问 web 站点发现,连续点击几次页面就会有一次请求时间很长 30s 。

这个 30s 是超过了 php.ini 中 max_execution_time = 30 该参数的设置最大值,最终请求失败,返回 400 。

分析故障现象应该是有一台 api-node 有问题,当请求被轮询到该节点时,请求失败。

通过监控服务器观看,各个 api-node 负载都均衡,无法直观的发现是哪台服务器故障。

(如果有每台 api-node 的访问日志,做了日志分析,可以通过统计图直观的反应出来)

最终写脚本拿问题URL去循环请求每台 api-node ,发现了这台问题服务器。

通过开发人员调试代码,发现问题为该节点连接数据库故障。具体情况如下:

1、该 ECS 请求三四次数据库的SLB就会出现连接超时。( 直接使用 mysql 命令连接 )

2、该 ECS 单独去请求数据库SLB后端的服务器,没有任何问题。

通过上面的测试,排除服务器环境、代码、数据库服务器的问题。最终问题定位在数据库的SLB上。

由于是做 mysql 的负载均衡,使用的是 TCP 协议的 4 层负载均衡。

向阿里云发起工单,提交问题,经过一系列排查,最终阿里云给出故障原因及解决方法如下:

"这是由于您使用的slb 4层tcp 协议,由于slb 的一些底层架构原因引起的,这个问题我们也已经向后端反馈过了;
只要客户端ecs 的内网ip 和 slb 后端的ecs 内网ip 有在一个路由段的,就会出现这个问题;
建议您可以手工删除slb 后端ecs 重复的路由条目,或者将您的slb 配置修改成7层http 协议"

解决方法:

1、登录问题 ECS 查看路由表

shell > route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
159.110.44.0     0.0.0.0         255.255.252.0   U     0      0        0 eth1
110.27.240.0     0.0.0.0         255.255.252.0   U     0      0        0 eth0
169.254.0.0      0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0      0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      110.27.243.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      110.27.243.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        110.27.243.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         159.110.47.247   0.0.0.0         UG    0      0        0 eth1

2、登录数据库 SLB 后端 ECS 查看路由表 ( 与问题 ECS 内网同一网段的服务器 )

shell > route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
59.110.20.0     0.0.0.0         255.255.252.0   U     0      0        0 eth1
110.27.240.0    0.0.0.0         255.255.252.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      110.27.243.247  255.240.0.0     UG    0      0        0 eth0
100.64.0.0      110.27.243.247  255.192.0.0     UG    0      0        0 eth0
10.0.0.0        110.27.243.247  255.0.0.0       UG    0      0        0 eth0
0.0.0.0         159.110.23.247  0.0.0.0         UG    0      0        0 eth1

3、删除这台数据库服务器内网地址与问题 ECS 重复的路由 (只删数据库服务器这台就可以)

shell > route del -net 110.27.240.0 netmask 255.255.252.0 dev eth0

shell > route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
159.110.20.0     0.0.0.0         255.255.252.0   U     0      0        0 eth1
169.254.0.0      0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0      0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      110.27.243.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      110.27.243.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        110.27.243.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         159.110.23.247   0.0.0.0         UG    0      0        0 eth1

# 经测试,问题解决。最终关闭工单提示,实际处理时长:6小时2分钟

# 记录:确保以后新买的需要访问数据库 SLB 的 ECS 不与数据库 SLB 后端的 ECS 在同一内网段,如果在,删除数据库 SLB 后端 ECS 重复路由。

免责声明:文章转载自《发生在阿里云 SLB 4 层的一次故障记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringBoot 学习记录 2021.05.13 Started使用JDBC操作SAP云平台上的HANA数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

阿里云ECS专有网络产品三个步骤配置教程

阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买美国硅谷可用区1BECS专有网络产品步骤一:创建专有网络VPC并创建交换机(选择创建美国硅谷专有网络)步骤二:ECS页面创建订单购买(ECS页面选择美国硅谷可用区1B)步骤三:EI...

阿里云服务器远程登录服务器的账号密码在这里看!【亲测有效】

最近购买了一台阿里云服务器,装的centos,阿里云远程登录服务器的时候,账号不知道在哪里看!最后找到了解决办法: 首先远程登录默认的用户是:administrator(windows服务器),root(linux服务器) 密码怎么看? 密码是没有默认的密码的,需要我们先去重置实例登录的密码:  在这里重置实例登录密码后,重启服务器,然后在后台用: l...

云计算之路-阿里云上:RDS数据库连接数过万引发故障,主备库切换后恢复正常团队

非常抱歉!今天 12:03-12:52 ,由于数据库连接数异常突增超过1万,达到了阿里云RDS的最大连接数限制,影响了全站的正常访问。由此给您带来麻烦,请您谅解。 在发现数据库连接数突增的问题后,我们一开始怀疑可能是我们的某些应用中产生太多ADO.NET连接引起的,但是对嫌疑的应用们进行重启后,连接数依然高居不下。 后来,我们回想起去年9月份遇到的一次数...

重磅!阿里云时空数据库正式免费公测

目前随着移动互联网和物联网的广泛应用,90%以上的数据是和时间+空间相关的,而越来越多的数据应用场景与时间和空间信息密不可分。时间+空间维度的数据(我们称之为时空数据)是一种高维数据,需要更为高效的数据处理方式来处理,而普通的关系型数据库更适合于存储数值和字符类型数据,也缺少相关的时空算子。在实际应用场景上例如传感器网络、移动互联网、射频识别、全球定位系统...

阿里云服务器CentOS7怎么分区格式化/挂载硬盘

一、在阿里云上购买了服务器的硬盘后就可以操作了,先看看硬盘情况: 硬盘vda是系统盘;vdb是在阿里云后台购买的另一块硬盘。 第一次使用要分区:fdisk /dev/vdb1 在提示符下依次输入:n+回车/p+回车/1+回车/w+回车  二、格式化分区(mkfs.ext3 /dev/vdb1) 三、把分区挂载到根目录下(可以在根目录下新建立一个文件夹...

阿里云全球加速的跨境加速的网络解决方案

客户都在国内,但是源站服务器在美国 这种情况下, 我带宽包应该买什么样的? 是“基础带宽包”里的“精品加速带宽”? 还是买“跨域加速带宽包”? 如果您的源站服务器是在美国的阿里云上, 推荐使用标准加速包+跨域加速带宽包。 如果您的源站服务器不在美国的阿里云上, 推荐使用增强加速+跨域加速带宽包。 跨域加速带宽包时给源站和加速目标区域 存在跨境的情况使用的一...