keepalived準備モードのテスト

3099 ワード

keepalived準備モードのテスト
 、  :     HA,    vip    ,      。  backup/backup        track       

1)  
 :10.0.200.88,  :backup,   85
 :10.0.200.89,  :backup,   75
vip:10.0.200.90


2)      【 】:
[root@200-80 keepalived]# pwd
/etc/keepalived
[root@200-80 keepalived]# ls
backup  bin  keepalived.conf  old
[root@200-80 keepalived]# cat keepalived.conf 
# Role: master
! Configuration File for keepalived

global_defs {
 router_id LVS_200_88                             # LVS_RealIP 3 _RealIP 4 ,      
}

vrrp_script CHK_REDIS {
  script "/etc/keepalived/bin/chk_redis.sh"
  interval 3
  weight -20
}

vrrp_instance VIP_REDIS_90 {                      # VIP_    _vip  4 
  state BACKUP                                    #    :BACKUP,     BACKUP,       
  interface em2                                   #     
  virtual_router_id 90                            # id  vip  4 
  priority 85                                     #    ,   =85, =75
  nopreempt                                       #          ,     ,   BACKUP 
  advert_int 1                                    #   vrrp     

  authentication {                                #          
    auth_type PASS
    auth_pass 1111
  }

  virtual_ipaddress {                             # vip    ,      
    10.0.200.90
  }

  track_script {
    CHK_REDIS
  }

}

          :
[root@200-80 keepalived]# diff keepalived.conf backup/keepalived.conf 
1c1
< # Role: master
---
> # Role: backup
5c5
<  router_id LVS_200_88                             # LVS_RealIP 3 _RealIP 4 ,      
---
>  router_id LVS_200_89                             # LVS_RealIP 3 _RealIP 4 ,      
18,19c18,19
<   priority 85                                     #    ,   =85, =75
<   nopreempt                                       #          ,     ,   BACKUP 
---
>   priority 75                                     #    ,   =85, =75
>   #nopreempt                                       #           ,     ,   BACKUP 



3)       ,   redis    :
[root@200-80 keepalived]# cat bin/chk_redis.sh 
#!/bin/bash
# 

c=$(ps -ef |grep 'redis-server \*:6379' |wc -l)

echo "`date` ---Check HA: start---" >/tmp/test_redis_ha.log
echo "redis_6379 process count: $c" >>/tmp/test_redis_ha.log

if [ $c -gt 0 ]; then
  retval=0
else
  retval=1
fi
echo "return: $retval" >>/tmp/test_redis_ha.log
echo "`date` ---Check HA: end---" >>/tmp/test_redis_ha.log
exit $retval




 1:virtual_router_id    ,            
tcpdump -i em2 -nn vrrp
 2:       x   ,      ,   script    ,        。



 、     vrrp  
  iptables   vrrp  ,        , icmp  ,      。
-A INPUT -p vrrp -j ACCEPT

  ,         ,   rc.firewall.txt ,icmp     
-A INPUT -p icmp -j ACCEPT
-A INPUT -p vrrp -j ACCEPT   <-           
-A INPUT -i lo -j ACCEPT 

【    】          。
         :
iptables -nL
  :
iptables-save >rc.firewall.txt
  
sed -i '/-A INPUT -p icmp -j ACCEPT /a\-A INPUT -p vrrp -j ACCEPT' rc.firewall.txt
     :
iptables-restore /root/rc.firewall.txt 
         :
iptables -nL
       
service iptables save