因为业务流程的需要,LVSkeepalived部署的时候申请了一个C子网,keepalived关联了254个VIP详细地址。厚以为没问题,却遇到了keepalived限制20个VIP死亡的问题。我一开始不知道该怎么办,但是经过思考和咨询别人,我有了各种各样的想法。虽然有些想法没有解决困难,但是想法本身是很重要的,因为不可避免的是我以后会用同样的想法去处理其他的问题。
这些问题如下:
#tail/var/log/syslog
11月12日18:15:34Telcom-DG-WY-LVS-13-130Keepalived_vrrp[27984]:=>;宣布其他贵宾进入贵宾专属区
11月12日18:15:34Telcom-DG-WY-LVS-13-130Keepalived_vrrp[27984]:VRRP实例(VI_1)中继到前20个VIP。
11月12日18:15:34Telcom-DG-WY-LVS-13-130Keepalived_vrrp[27984]:=>;宣布其他贵宾进入贵宾专属区
11月12日18:15:34Telcom-DG-WY-LVS-13-130Keepalived_vrrp[27984]:VRRP实例(VI_1)中继到前20个VIP。
处理思路如下:
模式1:搜索是否可以放宽限制
百度搜索没有检索到相关内容,谷歌也有类似问题,但也被说keepalived限制了,没办法。如果你想改变它,你必须改变源代码。这条路堵了!
模式2:多进程
一个keepalived关联20个VIP,所以启动7个keepalived进程,不同的进程具体到不同的环境变量,就像mysql多案例一样。实践活动后,几个环境变量不兼容地启动,总结会提醒这个过程已经存在。这条路堵了!
方法3:替换keepalived并应用heartbeat
因为keepalived程序流程的限制,只启动了20个VIP,但是我手动添加新的VIP是可行的。heartbeat的关键功能是心率,VIP还启用了脚本,所以这种方法是可行的。但由于heartbeat本身没有真正的网络服务器体检(必须申请ldirectord),也没有配备VIP,所以设备和维护的难度系数略高。
模式四:自行编写脚本进行高可用转换和体检
在没有keepalived之前,都是自己编写脚本来完成健康体检和高可用性转换。基本分析之后,我需要做以下几件事:1。让真实的网络服务器保持活动状态;2.装备和删除VIP3.对面LVS网络服务器的心率。总的来说难度系数不是很大,但是有很多关键问题,比如上下游监管、重试频率等。,必须改进一段时间,危及工作进度。但是这个方法是可行的。
方法五:使用keepalived(强烈推荐)的脚本制作开场功能
咨询了公司优秀的产品研发,他说LVS最好和keepalived一起用,于是明确提出keepalived的剧本制作起到了开篇的作用。也就是说,虽然keepalived本身只配备了20个VIP,但是它可以在一个案例成为主或者从的时候开始脚本化。因此,当它成为主服务器时,它可以添加VIP脚本,当它成为备份服务器时,它可以删除VIP脚本。经过测试,简单可靠。
启用脚本主要参数:
$cat/etc/keepalived/keepalived.conf|grepnotify
notify_master/scripts/add_IP_1_130.sh#加130VIPs的脚本制作
notify_backup/scripts/del_IP_1_130.sh#删除130VIPs的脚本
剧本准备请参考另一篇博文:http://yangrong.blog.51cto.com/6945369/1579345.
根据这一恶性事件,总结出两条原则:
1.计划越多,越有信心。(因为问题不是不能处理,就选哪一个能处理的更快。)
2.沟通大大提高了工作效率。(如果不沟通咨询,我只想到第一种和第四种方式。只花了两三句话就从咨询得到了一个新的方案,相当便宜。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)