GaussDB(DWS)LVS问题定位思路及案例分享
1 LVS简介
LVS(Linux Virtual Server)+KeepAlived是一种实现软件负载均衡的开源软件方案。
其典型网络模型如下图所示:
图1 集群负载均衡典型网络模型
客户端在连接服务器时,首先会访问负载均衡服务器LVS,负载均衡服务器将连接按照一定的算法分发到各个CN上,从而实现业务的负载均衡
2 LVS日志路径
lvs安装日志:/var/log/Bigdata/mpp/omm/om/gs_loadbalance-xxxx-xx-xx_xxxxx.log 主备lvs节点
lvs运行日志:安装lvs节点的系统日志/var/log/messsges
3 常见问题处理思路
3.1 安装lvs报错
解决思路:查看报错信息,提示系统版本不支持(如果是suse12.3系统,最新补丁已修改),需要查看产品文档看系统是否支持当前版本。如果所选虚拟ip和主备节点不在同一网段,也会报所选虚拟ip和当前节点不在同一网段,需要重新选择虚拟ip,所选虚拟ip必须和主备节点、cn节点ip在同一网段。
3.2 安装报写入文件权限不足
解决思路:询问现网操作系统是否做过安全加固,如果做过,需要先消除安全加固后再安装LVS。
3.3 ipvsadm -Ln显示没有CN信息
解决思路:
1)查看/etc/keepalived/keepalived.conf中的real_server块,是否包含各节点cn。
2)如果a步骤正常,查看cn的配置文件,conf里是否包含cn的大小网ip(如果现网是双网卡),不包含则需添加大网或者小网ip到listen_addresses里,再killcn进程使其生效。
3)1、2步骤均正常,查看keepalived信息,ps -ef | grep keepalived,如果显示三个keepalived进程号说明keepalived运行正常,如果只有一个或者两个,说明keepalived进程异常,主进程异常退出,只留下子进程,此时需要kill 剩余进程,执行以下命令重启keepalived进程。
/etc/init.d/gs_keepalived stop; /etc/init.d/gs_keepalived start
3.4 客户端连接gsql报错
解决思路:是否将客户端ip加入到白名单,未加入则添加后重试,已加入则先检查3.3步骤并排查,查看客户端ip是否和LVS虚拟ip在同一网段,如果不在同一网段,需找和LVS虚拟ip在同一网段的客户端机器重新连接(客户端机器必须是集群外的一台机器)
3.5 客户端连接lvs不轮询
解决思路:
1)查看系统日志/var/log/messages,查找Keepalived关键字,如果大量刷如下日志:
ip address associated with 51 not present in received packet : 虚ip地址
说明LVS的virtual_router_id冲突,需要修改主备节点/etc/keepalived/keepalived.conf中的virtual_router_id,主备节点取值一样,和之前的值不同,取值0-255.
2)LVS主备节点的iptables是否挂载。执行iptables -t mangle --list查看是否有mac地址,主节点的mac地址必须是备机和LVS同一网段ip网卡的mac地址,备节点的mac地址必须是主节点和LVS同一网段ip网卡的mac地址,如果发现不一致,先执行iptables -t mangle –F清理,再重新执行如下命令:
iptables -t mangle -I PREROUTING -p tcp -m tcp -d $VIP --dport $VPORT -m mac ! --mac-source $MAC_Director_B -j MARK --set-mark 0x1
注意:主机添加备机mac地址,备机添加主机mac地址,网卡地址必须是LVS同一网段的网卡,执行完成后添加到开机启动项。
4 常见案例
案例正在完善中
- 点赞
- 收藏
- 关注作者
评论(0)