LVS+keepalived配置备忘


LVS+keepalived配置备忘
 
LVS + keepalived实现负载均衡的文档很多,这里不再重复说明,只记录在配置过程中容易忘记的地方。 
1. 确保IP转发功能开启 
Shell代码  
# sysctl -a | grep ip_forward  
net.ipv4.ip_forward = 1  
 
方法有san种 
  1)sysctl net.ipv4.ip_forward=1 
  2) echo "1" > /proc/sys/net/ipv4/ip_forward 
  3) 修改sysctl.conf, net.ipv4.ip_forward = 1, 执行sysctl -p命令 
 
2. virtual ip的配置 
  keepalived 采用RD转发模式 
  测试拓扑结构 
                 linux director 
                 ip:192.168.1.199 
                vip:192.168.1.210 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
          |                          | 
real server                    real server 
ip: 192.168.1.13               ip: 192.168.1.14 
vip: 192.168.1.210             vip: 192.168.1.210 
 
lvs客户端也就是real server的vip,要和linux director的vip保持一致 
lvs-real.sh 
Shell代码  
#!/bin/bash  
VIP=192.168.1.210  
/etc/rc.d/init.d/functions  
case "$1" in  
start)  
       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP  
       /sbin/route add -host $VIP dev lo:0  
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce  
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  
       sysctl -p >/dev/null 2>&1  
       echo "RealServer Start OK"  
       ;;  
stop)  
       ifconfig lo:0 down  
       route del $VIP >/dev/null 2>&1  
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
       echo "RealServer Stoped"  
       ;;  
*)  
       echo "Usage: $0 {start|stop}"  
       exit 1  
esac  
exit 0  
 
 
linux director上keepalived.conf 
Shell代码  
! Configuration File for keepalived  
  
global_defs {  
   notification_email {  
        #huaying@staff.sina.com.cn  
   }  
   #notification_email_from Alexandre.Cassen@firewall.loc  
   #smtp_server 127.0.0.1  
   #smtp_connect_timeout 30  
   router_id LVS_DEVEL  
}  
  
virtual_server 192.168.1.210 80 {  
   delay_loop 3  
   lb_algo rr  
   lb_kind DR  
   persistence_timeout 120  
   protocol TCP  
  
   real_server 192.168.1.13 80 {  
     weight 100  
     TCP_CHECK {  
        connect_timeout 3  
        nb_get_retry 3  
        delay_before_retry 3  
        connect_port 80  
     }  
   }  
  
   real_server 192.168.1.14 80 {  
     weight 100  
     TCP_CHECK {  
        connect_timeout 3  
        nb_get_retry 3  
        delay_before_retry 3  
        connect_port 80  
     }  
   }  
}  
 
 
说明:由于是测试lvs负责均衡功能,没有配置vrrp_instance,在实际应用中,可以配置双linux director。所以在linux director上手工添加vip:192.168.1.210,可以使用如下方法 
Shell代码  
# ip addr add 192.168.1.210 dev eth0  
 
 
3. keepalived DR转发模式,需要将real server的ip与virtual ip设定在同一个网段 
 
4. linux director 需要安装ipvsadm,当ipvsadm启动后可以查看它是否被加载 
Shell代码  
# lsmod | grep ip_vs  
ip_vs                  94742  5   
  
#lpvsadm -ln  
IP Virtual Server version 1.2.1 (size=4096)  
Prot LocalAddress:Port Scheduler Flags  
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn  
TCP  192.168.1.210:80 rr persistent 120  
  -> 192.168.1.13:80              Route   100    0          0           
  -> 192.168.1.14:80              Route   100    0          0     
 
 
5. 如果配置都正确,需要考虑是否将ipvs框架编译进keepalived 
6. 如还不行,考虑其它原因 
 
XXX TODO:NAT转发模式的配置再测试 

相关内容

    暂无相关文章