DR模式工作流程图
实验环境:
部署keepalived高可用
[root@LVS-keep-backup ~]# yum install -y openssl-devel kernel-devel
# wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz
# tar zxvf keepalived-1.2.24.tar.gz
# cd keepalived-1.2.24
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-696.10.2.el6.x86_64/
# make
# make install
# chkconfig --add keepalived
[root@LVS-keep-backup keepalived-1.2.24]# chkconfig keepalived on
[root@LVS-keep-backup keepalived-1.2.24]# chmod +x /etc/init.d/keepalived
[root@LVS-keep-backup keepalived-1.2.24]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
[root@LVS-keep-backup keepalived-1.2.24]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from keepalived@localhost
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER [MASTER|BACKUP]
interface eth0
virtual_router_id 51
priority 100 [100|90]
#noreepmpt #不抢占功能,ps:一般配置在BACKUP状态下
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.200 #设置虚拟IP
}
}
virtual_server 192.168.2.200 80 { #设置虚拟服务器,需要指定虚拟IP地址和服务,端口,IP之间要用空格隔开
delay_loop 6 #设置运行检查时间
lb_algo rr #设置负载调度算法,这里设置RR。即轮询算法,
lb_kind DR #设置负载均衡模式,这里是DR模式
persistence_timeout 50 #会话保持时间,单位秒
protocol TCP #指定转发类型,TCP和UDP两种
real_server 192.168.2.138 80 { #配置服务节点,需要指定Real Server的真实IP地址和端口
weight 1 #配置服务节点权重,不同性能服务器分配不同负载,而性能较低的服务器自然分配的权重值要小,这样才能更好的利用和分配系统资源
TCP_GET { #Real Server的状态检测设置部分,
connect_timeout 3 #表示3秒无响应超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #表示重试时间间隔
connect_port 80 # 健康检查的端口,如果不指定,默认是real_server制定的端口
}
}
real_server 192.168.2.139 80 {
weight 1
TCP_GET {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80 # 健康检查的端口,如果不指定,默认是real_server制定的端口
}
}
}
部署LVS
[root@LVS-keep-master ~]# yum install -y ipvsadm
[root@LVS-keep-master ~]# ipvsadm -v
ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
################可省略~~~~~
[root@LVS-keep-master ~]# ipvsadm -A -t 192.168.2.200:80 -s wrr
[root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.138 -g -w 100
[root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.139 -g -w 100
[root@LVS-keep-master ~] ipvsadm-save > /etc/sysconfig/ipvsadm #保存LVS配置信息,以便随时恢复
###############
[root@LVS-keep-master ~]# ipvsadm -Ln
在后端Realserver web上绑定虚拟VIP并且抑制ARP响应(因为用户在请求VIP的同时,默认绑定在 real-server后端真实IP服务器上的VIP也会响应,这样会冲突)
[root@HTTP-web1 ~]# VIP=192.168.2.200
[root@HTTP-web1 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
[root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@HTTP-web2 ~]# VIP=192.168.2.200
[root@HTTP-web2 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
[root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
在后端WEB服务简单配置一下,便于负载区分即可
[root@HTTP-web1 ~]# echo "Server Name WEB 1111" >/var/www/html/index.html
[root@HTTP-web2 ~]# echo "Server Name web 2222" > /var/www/html/index.html
-A 增加一台虚拟服务器VIP地址。
-t 虚拟服务器提供的是tcp服务。
-s 使用的调度算法。
-a 在虚拟服务器中增加一台后端真实服务器。
-r 指定真实服务器地址。
-m 设置当前转发方式为NAT模式;-g为直接路由模式;-i 模式为隧道模式。
-w 后端真实服务器的权重。
查看LVS转发列表命令为:ipvsadm –Ln
实现结果:LVS负载均衡高可用