LVS+Keepalived负载均衡集群之DR模式html
1、环境vim
5台虚拟机,分别是:
后端
1台测试机(192.168.3.111);bash
2台DirectorServer(192.168.3.22一、192.168.3.222);服务器
2台RealServer(192.168.3.23一、192.168.3.232);负载均衡
注:VIP本实验设置为:192.168.3.220ide
2、安装配置RealServeroop
yum -y install httpd测试
chkconfig httpd on
router
echo 'R1/R2' /var/www/html/index.html #两台的配置都同样,这步为了区别访问的是哪台的数据,因此分为R1与R2,生产机上通常是统一访问后端的数据层的数据;
service httpd start
#!/bin/bash SNS_VIP=192.168.3.220 . /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_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 $SNS_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 sysctl -p >/dev/null 2>&1 echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
复制以上内容丢到/etc/init.d/ 目录下,命名自定义,我是命名为:realserver.sh
chmod u+x /etc/init.d/realserver.sh
ln -s /etc/init.d/realserver.sh /etc/rc.d/rc3.d/S99realserver.sh #设置开机自启动
/etc/init.d/realserver.sh start
3、安装配置DirectorServer
yum -y install gcc kernel-devel openssl-devel lrzsz vim ipvsadm
wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar xzvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-504.23.4.el6.x86_64/
make
make install
ln -s /usr/local/sbin/keepalived /sbin/
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
编辑keepalived.conf,内容大体以下:
! Configuration File for keepalived global_defs { notification_email { 744120325@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.3.220 } } virtual_server 192.168.3.220 80 { delay_loop 6 lb_algo wlc lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.3.231 80 { weight 2 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.3.232 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
注:第二台DS服务器(备)须要更改以上两处的内容,一是把MASTER更改成BACKUP,二是把优先级由100改成80便可;
4、校验及测试
4.一、ipvsadm -L -n #正常显示VIP及RIP等内容;
4.二、ip addr list #主服务器正常显示VIP,备服务器没有VIP;
4.三、把主服务器关机,看备服务器会不会把服务接管过来;