LVS配置方法 1.1、服务脚本 将Keepalived做成服务启动(MASTER和BACKUP都是必须的),具体步骤如下: (1)拷贝服务启动脚本 #cp ./keepalived/etc/init.d /etc/init.d (2)拷贝配置文件 #mkdir /etc/keepalived #cp ./keepalived/etc/keepalived/keepalived.conf /etc/keepalived (3)拷贝可执行文件 #cp ./bin/keepalived /usr/bin (4)启动/停止服务 #service keepalived start #service keepalived stop 1.2、配置MASTER 备份并打开配置文件修改部分内容,尤其注意红色部分,具体如下: #cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak #vi /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER # 状态实际MASTER,备份服务器上将 MASTER 改为 BACKUP interface eth0 # 监测网络接口 virtual_router_id 51 #主、备机的 virtual_router_id 必须相同 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 #VRRP Multicast 广播周期秒数 authentication { auth_type PASS #VRRP 认证方式 auth_pass 1111 #VRRP 口令字 } virtual_ipaddress { # 虚拟IP地址列表,即VIP 172.28.19.200 172.28.19.201 172.28.19.202 } } virtual_server 172.28.19.200 8080 { delay_loop 6 # 每隔6 秒查询 realserver 状态 lb_algo wlc #lvs 算法 lb_kind DR # DR模式 persistence_timeout 50 # 同一IP 的连接60 秒内被分配到同一台realserver protocol TCP # 用 TCP 协议检查 realserver状态 real_server 172.28.19.100 8080 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } real_server 172.28.19.101 8080 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } real_server 172.28.19.102 8080 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 8080 } } } virtual_server 172.28.19.201 25 { delay_loop 6 lb_algo wlc lb_kind DR # DR模式 persistence_timeout 50 protocol TCP real_server 172.28.19.103 25 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 25 } } real_server 172.28.19.104 25 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 25 } } real_server 172.28.19.105 25 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 25 } } } virtual_server 172.28.19.202 21 { delay_loop 6 lb_algo wlc lb_kind DR # DR模式 persistence_timeout 50 protocol TCP real_server 172.28.19.106 21 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 21 } } real_server 172.28.19.107 21 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 21 } } real_server 172.28.19.108 21 { weight 1 # 权重(权重越高处理的请求越多) TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 21 } } } 1.3、配置BACKUP BACKUP配置与MASTER基本一致,除了红色部分外,具体如下: #cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak #vi /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state BACKP # 状态实际BACKUP ... priority 99 # 优先级99(比MASTER优先级100低) ... } 1.4、配置Realserver 为Realserver的某块网卡创建启动脚本,脚本内容如下: #vi realserverd #!/bin/bash VIP=172.28.19.200 . /etc/rc.d/init.d/functions case "$1" in start) 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 ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 sysctl -p > /dev/null 2>&1 echo "realserver start OK" ;; stop) 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 ifconfig lo:0 down /sbin/route del $VIP > /dev/null 2>&1 echo "realserver stoped" ;; *) echo "Usage  0 {start|stop}" exit 1 esac exit 0 注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。 启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。 输入ipvsadm -Ln查看LVS工作状态。 停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。
|