LVS的DR模式是三种模式中配置比较简单而且效率也是很快的。如图所示是一个简单的LVS架构图,4台服务器。因为是试验环境,要表示的是能实现功能的最简答配置。红色线条表示报文转发路线,DS接受到客户端的请求后改写请求的MAC地址,在将请求发送给RealServer,然后RealServer将相应直接返回给客户端。
图中可配置的设备就是DS与RealServer
首先我们只需三台先搭建一个简单的负载均衡架构,基本原理就是让客户端浏览程序页面的时候实现自动切换,例如在2台RealServer上开启80端口写个简单的首页,一台是显示1,一台显示2,这样用户在客户端通过刷新页面呈现1,2轮流出现的情况。
第一部分:配置DS设备
DS设备需要安装的是:
(1)主模块-pvsadm yum安装就可以
(2)keepalived,有运行服务器监测以及HA cluster功能,配置文件为/etc/keepalived/keepalived.conf
(3)heartbeat,HA基本功能,心跳监测和资源接管等,需要先安装libnet。
我们就先用一台DS设备,只安装主模块与keepalived就可以实现上述的功能
在DS-master的操作如下:
(1)yum install ipvsadm
(2)下载keepalived源码包安装
(3)管理配置文件以及启动项
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin
#vi /etc/rc.local ---增加一行--- /etc/init.d/keepalived start
(4)编辑keepalived.conf
! Configuration File for keepalived#quan ju dingyiglobal_defs { notification_email {
} notification_email_fromsmtp_server 192.168.0.18 smtp_connect_timeout 30 router_id LVS_MASTER}#shi li dingyivrrp_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.0.252 }}#xuni server dingyivirtual_server 192.168.0.252 80 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0# persistence_timeout 50 protocol TCP
real_server 192.168.0.247 80 { weight 3 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delsy_before_retry 3 } }
real_server 192.168.0.246 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delsy_before_retry 3 } }}
至此,DS部分的配置基本就完成了,启动keepalived即可。
第二部分:RealServer的配置
RealServer的配置也主要两部分
(1)开启虚拟接口,配置VIP,将相应直接返回给客户端
添加vip脚本文件:
vi /etc/init.d/vip252.sh
#!/bin/bashVIP=192.168.0.252. /etc/rc.d/init.d/functionscase "$1" in start) echo "Start LVS of Real Server" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 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 ;;
stop) /sbin/ifconfig lo:0 down echo "close LVS Director server" 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 "Usage: $0 {start|stop}" exit 1esac
chmod a+x /etc/init.d/vip252.sh
/etc/init.d/vip252 start
然后RealServer-2 也一样配置
验证负载均衡:
DS的验证
RealServer的验证:
最后在浏览器浏览测试页面看是否实现自动切换的功能
然后F5刷新
通过192.168.0.252这个虚拟IP,成功实现了访问0.247与0.246这两台真实的WEB,这样就实现了LVS的基本功能,是不是很简单。
最后开启80端口就可以测试了。到此,最简单的LVS就配置完成了。然后在加入一台辅助keepalived,实现主keepalived出现故障时,辅助的keepalived自动启动的高可用功能。
配置服务keepalived:
其实可以把主keepalived的配置文件SCP过来,然后改两个地方就好:
(1)把state 改为BACKUP状态
(2)降低优先级,只要小于100(主的优先级)就可以
然后启动keepalived
这样就完成了。为了更好的观察结果,我们开启keepalived的日志功能.