GaussDB iptables策略限制,导致实例升级报错
- 故障现象
客户进行实例升级,任务流报错,升级失败,如下图所示。


- 适用版本
GaussDB全部版本。
- 业务影响
管控任务流报错,无影响。
内核任务流报错,自动回滚成功,无业务影响,运维功能、备份可能会受影响。
内核任务流报错,自动回滚失败,集群状态可能异常,影响业务。
- 故障原因
根据报错任务流时间,147秒报错,说明升级任务流可能还没有下发内核,可能在om_agent前置校验阶段报错。
- 处理方法
步骤 1 根据升级报错任务流,找到命令下发节点。如下图,单击“操作 > 修改context”,找到“NODE_ID”。


步骤 2 根据NODE_ID,找到对应节点,登录到节点后台。
步骤 3 切换到Ruby用户,加载环境变量,执行如下命令,查看升级日志。
ll $GAUSSLOG/om/gs_upgradectl_2025*.log

步骤 4 发现节点上没有产生内核升级日志,说明升级动作还没有到内核侧,返回查看om_agent的日志。
步骤 5 执行如下命令,查看om_agent的升级日志。
vim /home/Ruby/log/om_agent/agent.log
步骤 6 搜索报错时间点前后有没有“ERROR、failed”等报错信息。

步骤 7 根据报错日志分析,检查数据库连接失败:Check database connection failed。根据报错日志“could not connect to server: Operation now in progress Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 8000”分析,怀疑是gsql连接数据库报错。
步骤 8 在数据库节点执行如上命令,指定-h 127.0.0.1不通,不指定可以连上,怀疑是127.0.0.1不通。
指定-h 127.0.0.1

不指定-h 127.0.0.1

步骤 9 执行如下命令,测试127.0.0.1的连通性,连接失败。
curl -kv 127.0.0.1 8000

步骤 10 通过如下命令检查数据库连通性,是,指定-h 127.0.0.1。
gsql -d postgres -p $port -h 127.0.0.1 -U rdsAdmin -W $password -m -c 'select 1;'
步骤 11 127.0.0.1不通,怀疑是设置了iptable策略,root用户下执行如下命令查看iptable策略。
iptables -L

步骤 12 如上图,iptables策略存在一条策略限制了127.0.0.1访问。
步骤 13 执行如下命令删除限制127.0.0.1的策略。
iptables -D INPUT -p all -s 127.0.0.1/24 -j REJECT

步骤 14 执行如下命令,测试127.0.0.1的连通性,连接成功。
curl -kv 127.0.0.1 8000

步骤 15 通过gsql连接,也可以连接成功。

步骤 16 管控界面重试任务流,升级成功。


----结束
- 点赞
- 收藏
- 关注作者
评论(0)