keepalived已经接触了一段时间,它的配置文件格式熟记于心,但不了解配置中每一行参数的意义,至于其代码架构,完全是一窍不通。

编译keepalived的时候,需要注意,如果需要支持lvs的,一定要在./configure上加上参数"–with-kernel-dir=/usr/src/kernels/2.6.18-238.19.1.el5-x86_64"(不同系统内核不同)。

keepalived.conf文件是keepalived的唯一一份配置文件,结构清晰,现在自己注释一遍,加深自己的理解。

! Configuration File for keepalived
global_defs {					#全局配置 
   notification_email {					#指定keepalived故障时发送Email 
     xxxxxx@xxx.com					#Email地址 
    # failover@firewall.loc 
    # sysadmin@firewall.loc 
   } 
   notification_email_from chaichuan@139.com					#发送邮箱 
   smtp_server 127.0.0.1					#SMTP服务器,本地开启sendmail无需改动配置 
   smtp_connect_timeout 30 
   router_id LVS_DEVEL					#运行keepalived机器的一个标识 
}

vrrp_instance VI_1 {					#VRRP实例VI_1 
    state MASTER					#初始值MASTER/SLAVE
    interface eth0					#所绑定的网卡 
    virtual_router_id 51					#VRID标记(0~255) 
    priority 100					#优先级 
    advert_int 1					#检查间隔
    #nopreempt					#不抢占
    authentication {					#认证设置,只能在state为backup,且优先级高的主机上 
        auth_type PASS					#认证方式PASS(另外一种HA) 
        auth_pass 1111 
    } 
    virtual_ipaddress {					#虚拟ip 
        192.168.68.222 
        
    } 
}
virtual_server 192.168.68.222 80 {					#虚拟主机 
    delay_loop 6 
    lb_algo wrr					#LVS调度算法(rr|wrr|lc|wlc|lblc|sh|dh) 
    lb_kind DR					#LVS群集模式(NAT|DR|TUN) 
   # nat_mask 255.255.255.0   					#mask 
    persistence_timeout 50					#会话保持时间 
    protocol TCP					#使用协议

    real_server 192.168.68.225 80 {					#真实服务器 
        weight 10					#默认为1,0为不工作
      	inhibit_on_failure          #服务器健康失败,将weight设置为0,而不删除
      # notify_up    #检测到服务器开启执行的脚本
      # notify_down    #检查服务器宕机执行的脚本


      # SSL_GET {      #SSL检查方式 
      #     url { 
      #        path / 
      #        digest ff20ad2481f97b1754ef3e12ecd3a9cc 
      #      } 
      #     url {     
      #        path /mrtg/ 
      #        digest 9b3a0c85a887a256d6939da88aabd8cd 
      #      } 
      #      connect_timeout 13 
      #      nb_get_retry 3 
      #      delay_before_retry 3 
      #  }


        TCP_CHECK{					#TCP方式健康检测
               connect_timeout 4
        	   nb_get_retry 3
               delay_before_retry 3
         } 
    }
    real_server 192.168.68.226 80 {
        weight 10
      	inhibit_on_failure
      # notify_up
      # notify_down


      # SSL_GET {
      #     url { 
      #        path / 
      #        digest ff20ad2481f97b1754ef3e12ecd3a9cc 
      #      } 
      #     url {     
      #        path /mrtg/ 
      #        digest 9b3a0c85a887a256d6939da88aabd8cd 
      #      } 
      #      connect_timeout 13 
      #      nb_get_retry 3 
      #      delay_before_retry 3 
      #  }


        TCP_CHECK{
               connect_timeout 4
        	   nb_get_retry 3
               delay_before_retry 3
         } 
    }
}