Linux搭建负载均衡集群,使用LVS的DR模式

Linux Cluster
LB(负载均衡集群)

负载均衡集群,通常有两种实现方式,基于硬件或基于软件。
基于硬件:BIP
基于软件:
基于OSI第四层传输层:LVS(Linux Virtual Server)
基于OSI第期层传输层:nginx

1.LVS

1.1认识LVS

LVS,全称Linux Virtual Server,由国人章文嵩博士提出并实现。
LVS有三种工作模式:DR直接路由模式、NAT地址转换模式、TUN隧道模式
在实际环境中若是搭建负载均衡集群直接使用DR模式。

2.基于LVS搭建 LB Linux Cluster

2.1 LVS的DR模式实现

2.1.1 实验拓扑图

这里写图片描述

2.1.2 实验简介

Director有一张网卡,与realserver连接在同一个交换机上,并能相互通信,配置一个网络别名作为VIP,
在每个realserver上绑定一个虚拟网卡ip地址lo:0,该虚拟ip地址为director的ip地址,
用于realserver处理完director分给的用户请求后,直接使用director的ip作为源ip返回给用户。
在绑定虚拟网卡ip前,需要先调整director的arptable(对arp请求的通告级别、回应级别调整)。
arp_ignore:只对什么级别的arp请求进行响应,当arp广播请求的目标ip不在同一个接口上就不予响应。
    默认为0,能通告就通告。
        0:只要本地配置的有相应地址,就给予响应;
        1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应;
arp_announce:向外主动通告自己的通告级别。
    默认为0,能通告就通告。
        0:将本地任何接口上的任何地址向外通告;
        1:试图仅向目标网络通告与其网络匹配的地址;
        2:仅向与本地接口上地址匹配的网络进行通告
在realserver上配置一条独特的路由条目,才能将处理好的用户请求使用director的IP地址返回结果给用户

2.1.3 实验准备

物理机上安装virtualbox软件上创建一台centos5.5,最小化安装即可,作为Director。
桌面可装可不装,使用6.X,7.X也是可以的,这里使用centos5.5是因为my computer才8G内存
virtualbox的虚拟介质管理,复制2台刚才安装好的centos5.5硬盘,明明为realserver1,realserver2
新建虚拟机作为realserver时,选择存储介质选择现有的磁盘,路径指向刚才复制的centos5.5

2.1.4 实验步骤

0).ipvs在2.6.X版本后的内核中默认安装有,我们需要安装ipvsadm进行管理,注意:ipvsadm与iptables不能同时使用,实验前需关闭iptables与selinux
1).Director只需一张网卡选择桥接模式,启动
2).为Director安装ipvsadm
    yum -y install ipvsadm
    检查是否安装成功只需输入ipvsadm,无输出则未安装有,若已安装则输出如下字样
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
       -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
3).配置测试网页
   为每台realserver安装http,并启动httpd服务
   yum install http
   service httpd start
   echo "this is realserver1 test web" > /var/www/html/index.html
   echo "this is realserver2 test web" > /var/www/html/index.html
   echo "this is realserver3 test web" > /var/www/html/index.html
   #分别创建测试页
   curl http://ipaddress    #访问测试页
4).配置director
   配置VIP
   配置网络别名DIP
   ifconfig eth0:0 192.168.8.30/24
5).配置realserver的RIP
   realserver1:192.168.8.32
   realserver2:192.168.8.33
6).分别配置realserver的arp_ignore、arp_announce
    realserver1:
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    realserver2:
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
7).分别在realserver1、2上配置的网络别名VIP与静态路由
    ifconfig lo:0 192.168.8.30 broadcast 192.168.8.30 netmask 255.255.255.255 up
    route add -host 192.168.8.30 dev lo:0
    在director上也需要配置静态路由
    route add -host 192.168.8.30 dev eth0:0
8).在director上测试能否正常访问realserver的测试页
9).配置ipvsadm规则
   在director上配置
    [root@director ~]# ipvsadm -C    #清空之前的ipvsadm规则
    [root@director ~]# ipvsadm -A -t 192.168.8.30:80 -s wlc
    [root@director ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.32 -g -w 2  #-g表示DR模式 -w表示权重
    [root@director ~]# ipvsadm -a -t 192.168.8.30:80 -r 192.168.8.33 -g -w 1
    [root@director ~]# ipvsadm -l -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.8.30:80 wlc
      -> 192.168.8.33:80              Route   1      0          0         
      -> 192.168.8.32:80              Route   2      0          0         

10).测试
使用物理机的浏览器输入http://director的ip地址
不断刷新即可看到效果   

猜你喜欢

转载自blog.csdn.net/archersaber39/article/details/54882036