模型一:NAT模型的配置

实验环境:

    采用VMware虚拟机,版本6.0.5

    操作系统:Red Hat Enterprise Linux 5 (2.6.18)

    虚拟机1:充当Director:网卡1(桥接):192.168.0.33(对外),网卡2(Vmnet):10.0.0.1(对内)

    虚拟机2:充当RS1:IP:10.0.0.11

    虚拟机3:充当RS2:IP:10.0.0.12

玩转LVS,快速实现负载均衡_第1张图片

设置工作环境:

   
   
   
   
  1. # 在Director上安装ipvsadm
  2. yum install ipvsadm 
   
   
   
   
  1. # 在RS1和RS2上这样配置
  2. yum install httpd mysql-server php php-mysql php-mbstring 
  3. route add default gw 10.0.0.1 
  4. hostname localhost 
   
   
   
   
  1. # 在RS1上配置网页
  2. echo "

    RealServer1" > /var/www/html/index.html 

   
   
   
   
  1. # 在RS2上配置网页
  2. echo "

    RealServer2" > /var/www/html/index.html 

   
   
   
   
  1. # 分别在RS1和RS2上开启服务
  2. server httpd start 
   
   
   
   
  1. # 在Director上开启路由转发功能
  2. echo 1 > /proc/sys/net/ipv4/ip_forward 
   
   
   
   
  1. # 在Director上配置ipvs的定义:使用模式以及算法 
  2. ipvsadm -A -t 192.168.0.33:80 -s rr 
  3. ipvsadm -a -t 192.168.0.33:80 -r 10.0.0.11 -m 
  4. ipvsadm -a -t 192.168.0.33:80 -r 10.0.0.12 -m 
  5. ipvsadm -L -n 

玩转LVS,快速实现负载均衡_第2张图片

于是我们进入浏览器,进入主机看是否响应

clip_p_w_picpath004

我们发现当我们刷新的时候,的确出现了不同的页面,也就是我们的系统在内部的确实现了调度

玩转LVS,快速实现负载均衡_第3张图片

回到终端,查看我们ipvsadm的状态。发现的确它的InActConn值很平均,的确在按照RR算法进行调度

玩转LVS,快速实现负载均衡_第4张图片

改为WLC算法,查看权重信息:

    
    
    
    
  1. # 在Director上修改算法以及权重信息  
  2. ipvsadm -E -t 192.168.0.33:80 -s wlc  
  3. ipvsadm -e -t 192.168.0.33:80 -r 10.0.0.11 -m -w 3  ## 权重定义为3:1  
   
   
   
   
  1. # 我们在另一台主机上使用Apache自带的ab命令进行压力测试 
  2. ab -c 10 -n 10000 http://192.168.0.33/index.html 

查看检测内容:

玩转LVS,快速实现负载均衡_第5张图片

 

改为sed算法,查看的效果,的确如Sed算法特点的那样加大大权重的使用率,于是……

玩转LVS,快速实现负载均衡_第6张图片

 

同理修改为NQ算法的效果,在权重比相差悬殊的情况下不让权重高的一直响应而导致低权重的完全空闲的机制

玩转LVS,快速实现负载均衡_第7张图片

 


模型二:DR模型的配置

实验环境:

    采用VMware虚拟机,版本6.0.5

    操作系统:Red Hat Enterprise Linux 5 (2.6.18)

玩转LVS,快速实现负载均衡_第8张图片

    虚拟机1:Director:

        DIP配置在接口上 172.16.19.10

        VIP配置在接口别名上:172.16.19.1

    虚拟机1:RS1:RIP配置在接口上:172.16.19.11 ;VIP配置在lo别名上

    虚拟机2:RS2:RIP配置在接口上:172.16.19.12 ;VIP配置在lo别名上

   
   
   
   
  1. # 我们在Director上这样配置
  2. ifconfig eth0 172.16.19.10/16 
  3. ifconfig eth0:0 172.16.19.1 broadcast 172.16.19.1 netmask 255.255.255.255 up 
  4. route add -host 172.16.19.1 dev eth0:0 
  5. echo 1 > /proc/sys/net/ipv4/ip_forward 
   
   
   
   
  1. # RS1和RS2配置属于自己的ip之后都要:定义内核参数,禁止响应对VIP的ARP广播请求 
  2. echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
  3. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
  4. echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
  5. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
   
   
   
   
  1. # 配置VIP 
  2. ifconfig lo:0 172.16.19.1 broadcast 172.16.19.1 netmask 255.255.255.255 up 
  3. # 凡是到172.16.19.1主机的一律使用lo:0响应 
  4. route add -host 172.16.19.1 dev lo:0  
   
   
   
   
  1. # 在Director上配置Ipvs 
  2. ipvsadm -A -t 172.16.19.1:80 -s wlc 
  3. ipvsadm -a -t 172.16.19.1:80 -r 172.16.100.11 -g -w 2 
  4. ipvsadm -a -t 172.16.19.1:80 -r 172.16.100.12 -g -w 4 
  5. ipvsadm -Ln 

玩转LVS,快速实现负载均衡_第9张图片

我们对172.16.19.1访问查看wlc算法的实现结果

玩转LVS,快速实现负载均衡_第10张图片

OK,通过这样的实现,我想已经可以完整的明白LVS的理论实现过程了。

如果还有什么疑问,欢迎提出,我会一一解答,并且补充到博客中去