设为首页 收藏本站
查看: 1484|回复: 0

[经验分享] Keepalived状态切换的条件和因素

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-3 09:58:16 | 显示全部楼层 |阅读模式
                      一、Keepalived 应用场景
  
   keepalived的研发是针对LVS的,特点是轻量级、配置简洁。正因为这个特点,个人认为其适合应用在资源相对少,且无共享存储的环境下,尤其适合在负载均衡器上使用,如LVS、haproxy、nginx等上,也可以用于轻量级的http环境,作为其高可用组件。当然理论上很多高可用的场景其都可以实现,不过基于keepalived本身的资源切换方式功能并不推荐使用。
  二、影响keepalived状态切换的因素
  
   keepalived状态切换主要通过其VRRP协议中的weight值结合健康脚本实现,节点的优先级也会根据脚本的检测状态动态调整。其实keepalived实现根据资源健康情况进行自由切换会根据跑的业务类型会有差别的的,有些情况当master上的资源由于故障切换到backup上时候,那么如果想再切回来就需要关闭keepalived的服务才可以。
   
  
   1.MASTER、BACKUP、priority(优先级)
    设定keepalived的master和backup值主要是在priority(优先级)相同的前提下才有意义,如果优先级不同的话,还是以优先级高的为master,而不管其设定了master还是backup,通常下我们两个节点最好指定不同的优先级。
   
    2.vrrp_script脚本的weight值
    这个weight值必须指定,否则有时候重启服务后该节点被显示为fault 状态。
    weight值分为正值和负值,假定weight值为W,初始的优先级为P,
   
         当weight值<0时:
   
  • 如果检测脚本返回值=0,则节点最终优先级不改变。
  • 如果检测脚本返回值≠0,则节点最终优先级=P-W,优先级会减小
   
         当weight值>0时
   
  • 如果检测脚本返回值=0,则节点最终优先级=P+W,优先级会增加
  • 如果检测脚本返回值≠0,则节点最终优先级不改变。
   
    节点优先级的变化和所在节点的业务状态会有很大关系,看下面两个表格:
   
  • 一,当两个节点上的业务服务都处于启动状态,如httpd,那么优先级变化会如下:
   
节点设定优先级weight值节点正常运行优先级           
(两个节点httpd都启动)
节点A:服务检测失败A恢复,且不抢占
A100-2100100-2=98100
B99-29999 99
状态A为masterA为masterA为master切换到B为master切换到A为master
   
   
  • 二,当master节点业务启动,backup节点业务为停止状态,如,haproxy(因为haproxy没有监听的地址是无法启动的,其实很多业务都是两个节点一启一停的)
   
节点设定优先级weight值节点正常运行时的优先级节点A业务失败时的优先级停止A的keepalived后的优先级重新开启A的keepalived优先级停止B的keepalived后的优先级
A100-2100100-2=98100-2=9898
B99-299-2=97(因为haproxy停止)979799
状态A为masterA为masterA为masterA>B,并不切换切换到B为masterA<B,不切换回去切换回A为master
   
   
  
   由上可以看出,如果是第二种情况,那么只有关闭keepalived服务才能进行切换,这就是很多人做实验发现为什么业务停了却不能切换的原因,这种情况下我们可以改编初始优先级和weight值使 A切换到B,但是如果要切换回去,就手动停止keepalived才可以。这也是为什么keepalived不适合做大业务集群的原因,如果只是针对调度器做高可用的话还比较合适。
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-26897-1-1.html 上篇帖子: keepalived实现nginx的高可用 下篇帖子: Linux系统高可用集群软件之Keepalived
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表