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 dingyi
global_defs {
   notification_email {
   }
   notification_email_from   

   smtp_server 192.168.0.18

   smtp_connect_timeout 30
   router_id LVS_MASTER
}
#shi li dingyi
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.0.252 
    }
}
#xuni server dingyi
virtual_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/bash

VIP=192.168.0.252
. /etc/rc.d/init.d/functions
case "$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 1
esac

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的日志功能.