zoukankan      html  css  js  c++  java
  • keepalive

    一,Keepalived高可用软件

      1,Keepalived介绍

      1.1 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。

      1.2 Keepalived软件主要是通过VRRP协议实现高可用功能的。

      2,Keepalived服务三个重要功能

        2.1 管理LVS负载均衡软件

        2.2 实现对LVS集群节点健康检查功能(healthcheck)

        2.3 作为系统网络服务的高可用功能(failover)

      3,Keepalived高可用故障切换原理

        3.1 Keepalived高可用服务之间的故障切换转移,是通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现的。

        3.2 在Keepalived服务正常工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的IP资源及服务。而当主Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

        bond0是网卡绑定高可用 

    二,Keepalived高可用服务搭建准备

      2.1 环境准备

      

    HOSTNAME

    IP

    说明

    lb01

    192.168.200.138

    Keepalived主服务器(Nginx主负载均衡器)

    lb02

    192.168.200.130

    Keepalived备服务器(Nginx备负载均衡器)

    web01

    192.168.200.136

    web01服务器

    web02

    192.168.200.137

    web02服务器

      2.2 安装Keepalived软件

        [root@lb01 ~]# yum -y install keepalived

        [root@lb01 ~]# rpm -qa keepalived

          keepalived-1.2.7-3.el6.x86_64

        注:上述安装过程需要在lb01和lb02两台服务器上同时安装。

      2.3 启动Keepalived服务并检查

        [root@lb01 ~]# /etc/init.d/keepalived start

        Starting keepalived:                                       [  OK  ]

        [root@lb01 ~]# ps -ef | grep keep | grep -v grep

        root       7111      1  0 11:18 ?        00:00:00 /usr/sbin/keepalived -D

        root       7114   7111  0 11:18 ?        00:00:00 /usr/sbin/keepalived -D

        root       7117   7111  0 11:18 ?        00:00:00 /usr/sbin/keepalived -D

     

        注:启动后有3个Keepalived进程表示安装正确

     

        [root@lb01 ~]# ip add | grep 192.168

            inet 192.168.0.221/24 brd 192.168.0.255 scope global eth0

            inet 192.168.200.16/32 scope global eth0

            inet 192.168.200.17/32 scope global eth0

            inet 192.168.200.18/32 scope global eth0

          注:默认情况会启动三个VIP地址

        

          [root@lb01 ~]# /etc/init.d/keepalived stop

          Stopping keepalived:                                       [  OK  ]

          注:测试完毕后关闭服务,上述测试需要同时在lb01和lb02两台服务器上进行

      2.4 Keepalived配置文件说明

      2.4.1 全局定义(Global Definitions)部分

        [root@lb02 ~]# head -13 /etc/keepalived/keepalived.conf | cat -n

            1  ! Configuration File for keepalived

            2  

         3  global_defs {

            4     notification_email {

                   5       acassen@firewall.loc

                   6       failover@firewall.loc

                   7       sysadmin@firewall.loc

                   8     }

                   9     notification_email_from Alexandre.Cassen@firewall.loc

                  10     smtp_server 192.168.200.1

                  11     smtp_connect_timeout 30

                  12     router_id LVS_DEVEL

                  13  }

          基础参数说明:

          第1行是注释,!开头和#号开发一样,都是注释。
          第2行是空行。
          第3~8行是定义服务故障报警的Email地址。作用是当服务发生切换或RS节点等有故障时,发报警邮件。这几行是可选配置,notification_email指定在Keepalived发生事件时,需要发送的Email地址,可以有多个,每行一个。
          第9行是指定发送邮件的发送人,即发件人地址,也是可选的配置。
          第10行smtp_server指定发送邮件的smtp服务器,如果本机开启了sendmail或postfix,就可以使用上面默认配置实现邮件发送,也是可选配置。
          第11行smtp_connect_timeout是连接smtp的超时时间,也是可选配置。

          注意:
          第4~11行所有和邮件报警相关的参数均可以不配,在实际工作中会将监控的任务交给更加擅长监控报警的Nagios或Zabbix软件。

          第12行是Keepalived服务器的路由标识(router_id).在一个局域网内,这个标识(router_id)应该是唯一的。

       2.4.2 VRRP实例定义区块(VRRP instance(s))部分

        [root@lb02 ~]# sed -n '15,30{=;p}' /etc/keepalived/keepalived.conf | xargs -L2

        15 vrrp_instance VI_1 {

        16 state MASTER

        17 interface eth0

        18 virtual_router_id 51

        19 priority 100

        20 advert_int 1

        21 authentication {

        22 auth_type PASS

        23 auth_pass 1111

        24 }

        25 virtual_ipaddress {

        26 192.168.200.16

        27 192.168.200.17

        28 192.168.200.18

        29 }

        30 }

        

    参数说明:

    第15行表示定义一个vrrp_instance实例,名字是VI_1,每个vrrp_instance实例可以认为是Keepalived服务的一个实例或者作为一个业务服务,在Keepalived服务配置中,这样的vrrp_instance实例可以有多个。注意,存在于主节点中的vrrp_instance实例在备节点中也要存在,这样才能实现故障切换接管。

    第16行state MASTER表示当前实例VI_1的角色状态,当前角色为MASTER,这个状态只能有MASTER和BACKUP两种状态,并且需要大写这些字符。其中MASTER为正式工作的状态,BACKUP为备用的状态。当MASTER所在的服务器故障或失效时,BACKUP所在的服务器会接管故障的MASTER继续提供服务。

    第17行interface为网络通信接口。为对外提供服务的网络接口,如eth0,eth1。当前主流的服务器都有2~4个网络接口,在选择服务接口时,要搞清楚了。

    第18行virtual_router_id为虚拟路由ID标识,这个标识最好是一个数字,并且要在一个keepalived.conf配置中是唯一的。但是MASTER和BACKUP配置中相同实例的virtual_router_id又必须是一致的,否则将出现脑裂问题。

    第19行priority为优先级,其后面的数值也是一个数字,数字越大,表示实例优先级越高。在同一个vrrp_instance实例里,MASTER的优先级配置要高于BACKUP的。若MASTER的priority值为150,那么BACKUP的priority必须小于150,一般建议间隔50以上为佳,例如:设置BACKUP的priority为100或更小的数值。

    第20行advert_int为同步通知间隔。MASTER与BACKUP之间通信检查的时间间隔,单位为秒,默认为1.

    第21~24行authentication为权限认证配置。包含认证类型(auth_type)和认证密码(auth_pass)。认证类型有PASS(Simple Passwd(suggested)),AH(IPSEC(not recommended))两种,官方推荐使用的类型为PASS。验证密码为明文方式,最好长度不要超过8个字符,建议用4位数字,同一vrrp实例的MASTER与BACKUP使用相同的密码才能正常通信。

    第25 ~ 29 行virtual_ipaddress为虚拟IP地址。可以配置多个IP地址,每个地址占一行,配置时最好明确指定子网掩码以及虚拟IP绑定的网络接口。否则,子网掩码默认是32位,绑定的接口和前面的interface参数配置的一致。注意,这里的虚拟IP就是在工作中需要和域名绑定的IP,即和配置的高可用服务监听的IP要保持一致!

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/xuruqing/p/9995413.html
Copyright © 2011-2022 走看看