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

[经验分享] Keepalived详解(三)

[复制链接]

尚未签到

发表于 2018-12-29 06:07:50 | 显示全部楼层 |阅读模式
  Keepalived基础功能应用实例:

      1.Keepalived基础HA功能演示:

              在默认情况下,Keepalived可以实现对系统死机、网络异常及Keepalived本身进行监控,也就是说当系统出现死机、网络出现故障或Keepalived进程异常时,Keepalived会进行主备节点的切换。但这些还是不够的,因为集群中运行的服务也随时可能出现问题,因此,还需要对集群中运行服务的状态进行监控,当服务出现问题时也进行主备切换。Keepalived作为一个优秀的高可用集群软件,也考虑到了这一点,它提供了一个vrrp_script模块专门用来对集群中服务资源进行监控。

           1. 配置Keepalived:
  操作系统:CentOS release 6.7   版本:keepalived-1.2.12
  主机名主机IP地址集群角色集群服务虚拟IP地址
  keepalived-master  10.0.0.35            MASTER(主节点)          HTTPD        10.0.0.40
  keepalived-backup10.0.0.36           BACKUP(备用节点)         HTTPD
  keepalived-master节点的keepalived.conf文件的内容:
  ! Configuration File for keepalived
  

  global_defs {
  notification_email {
  *********@qq.com
  }
  notification_email_from *********@163.com
  smtp_server smtp.163.com
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  

  vrrp_script check_httpd {
  script "killall -0 httpd"
  interval 2
  }
  

  vrrp_instance HA_1 {
  state MASTER
  interface eth0
  virtual_router_id 80
  priority 100
  advert_int 2
  authentication {
  auth_type PASS
  auth_pass qwaszx
  }
  notify_master "/etc/keepalived/master.sh"
  notify_backup "/etc/keepalived/backup.sh"
  notify_fault "/etc/keepalived/fault.sh"
  

  track_script {
  check_httpd
  }
  

  virtual_ipaddress {
  10.0.0.40/24 dev eth0
  }
  }
  master.sh文件内容为:
  #!/bin/bash
  LOGFILE=/var/log/keepalived-mysql-state.log
  echo "[Master]" >> $LOGFILE
  date >> $LOGFILE
  backup.sh文件内容为:
  #!/bin/bash
  LOGFILE=/var/log/keepalived-mysql-state.log
  echo "[Backup]" >> $LOGFILE
  date >> $LOGFILE
  fault.sh文件内容为:

  #!/bin/bash
  LOGFILE=/var/log/keepalived-mysql-state.log
  echo "[Fault]" >> $LOGFILE
  date >> $LOGFILE
  keepalived-backup节点上的keepalived.conf配置文件内容与keepalived-master节点上的基本相同,需要修改的地方有两个:

  □ 将“state MASTER” 更改为 “state BACKUP”。
  ■ 将priority 100 更改为一个较小的值,这里改为“priority 80”
  2.Keepalived启动过程分析:
  keepalived-master节点启动keepalived服务,操作如下:

  [root@keepalived-master ~]# /etc/init.d/httpd start
  [root@keepalived-master ~]# /etc/init.d/keepalived start
  keepalived-backup节点启动keepalived服务,操作如下:
  [root@keepalived-backup ~]# /etc/init.d/httpd start
  [root@keepalived-backup ~]# /etc/init.d/keepalived start
  3.keepalived的故障切换过程分析:

  在keepalived-master节点出现故障后,备用节点keepalived-backup立刻检测到,此时备用机变成MASTER角色,并且接管了keepalived-master主机的虚拟IP资源,最后将虚拟IP绑定在eth0设备上。

  4.故障恢复切换分析:

  keepalived-master节点通过vrrp_script模块检测到httpd服务已经恢复正常,然后自动切换到MASTER状态,同时也夺回了集群资源,将虚拟IP地址再次绑定在eth0设备上。

  纵观Keepalived的整个运行过程和切换过程,看似合理,事实上并非如此:在一个高负载、高并发、追求稳定的业务系统中,执行一次主、备切换对业务系统影响很大,因此,不到万不得已,尽量不要进行主、备角色的切换,也就是说,在主节点发生故障后,必须切换到备用节点,而在主节点故障恢复后,不希望再次切回主节点,直到备用节点发生故障时才进行切换,这就是前面介绍的不抢占功能,可以通过Keepalived的nopreempt选项来实现。

  配置:

  master:
  ! Configuration File for keepalived
  

  global_defs {
  notification_email {
  **********@qq.com
  }
  notification_email_from *******@163.com
  smtp_server smtp.163.com
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  

  vrrp_script check_httpd {
  script "killall -0 httpd"
  interval 2
  }
  

  vrrp_instance HA_1 {
  state BACKUP
  interface eth0
  virtual_router_id 80
  priority 100
   nopreempt
  advert_int 2
  authentication {
  auth_type PASS
  auth_pass qwaszx
  }
  

  notify_master "/etc/keepalived/master.sh"
  notify_backup "/etc/keepalived/backup.sh"
  notify_fault "/etc/keepalived/fault.sh"
  

  track_script {
  check_httpd
  }
  

  virtual_ipaddress {
  10.0.0.40/24 dev eth0
  }
  }
  backup:

  ! Configuration File for keepalived
  

  global_defs {
  notification_email {
  ********@qq.com
  }
  notification_email_from *******@163.com
  smtp_server smtp.163.com
  smtp_connect_timeout 30
  router_id LVS_DEVEL
  }
  

  vrrp_script check_httpd {
  script "killall -0 httpd"
  interval 2
  }
  

  vrrp_instance HA_1 {
  state BACKUP
  interface eth0
  virtual_router_id 80
  priority 80
  #nopreempt
  advert_int 2
  authentication {
  auth_type PASS
  auth_pass qwaszx
  }
  notify_master "/etc/keepalived/master.sh"
  notify_backup "/etc/keepalived/backup.sh"
  notify_fault "/etc/keepalived/fault.sh"
  

  track_script {
  check_httpd
  }
  

  virtual_ipaddress {
  10.0.0.40/24 dev eth0
  }
  }
  

  





运维网声明 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-656956-1-1.html 上篇帖子: Gentoo下keepalived+LVS实验 下篇帖子: Keepalived高可用服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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