【redhat5.5】linux服务器负载均衡LB Cluster的(LVS)技术 实现方案

来源:互联网 发布:sql文件 编辑:程序博客网 时间:2024/05/06 11:42
【1】 LVS简介
           LVS(linux virtual server)在linux内核中实现的基于IP层和基于内容请求分发的负载平衡调度解决方法,工作在传输层


【2】 LVS的三种路由方式
         1】 VS-NAT
                数据包流向: CIP-DGW-VIP-RIP-DIP-DGW-CIP
                VS-NAT 最易于配置
                不适用于大量服务器(20台)及大量数据更新的服务,所有流量都经挂分发器
                可扩展性差
                双向修改数据包的IP和端口
         2】 VS-DR
                 数据包流向: CIP-DGW-VIP-RIP-DGW-CIP
                 能够同时处理大量的客户端请求(出站流量不经过分发器),多用于大量真是服务器或频繁更新的服务(服务器IP为真实IP) 
                 可扩展性好     
                 仅修改请求包的MAC地址
         3】 VS-TUN
                 数据包流向: CIP-DGW-VIP-RIP-DGW-CIP
                 可以夸广播域,即不再同一局域网内    
                 可扩展性好
                 仅修改请求进入IP

【3】 LVS的调度算法(10种)
           1】循环调度(rr)
           2】加权循环调度(wrr)
           3】最少连接(lc)
           4】加权最少连接(wlc)(默认)
           5】基于地区的最少连接调度(lblc)

【4】 安装软件包
           在安装镜像的Cluster文件夹内
           yum -y install ipvsadmin

【5】 ipvsadmin 常用命令
           ipvsadm -Ln                    查看分发规测和分发情况
           ipvsadm -Ln -c                查看连接状态
           ipvsadm -L -n --rate       查看当前连接数
           ipvsadm -L -n --stats     查看总连接数
           ipvsadm -C                      清空规则
  
【6】 LVS的常用架构搭建与配置
           1】 VS-NAT路由方式的搭建与配置
                  a】网络拓扑结构
                                                client  8.8.48.22 (CIP)
                                                        |
                                                        |
                                                        | 8.8.48.1 
                                               DGW
                                                        | 4.4.64.1
                                                        |
                                                        | 4.4.64.66 (VIP)
                                          Director 
                                                        | 10.10.68.1 (DIP)
                                                        |
                                   ------------------------------
                                   |                   |                       |
                                  A                  B                    C   (real http server) (RIP)
                          10.10.68.201   10.10.68.202  10.10.68.203

               b】 real http server (ABC)的配置

                      A(10.10.68.201)的配置
                      ifconfig eth0 10.10.68.201/24   
                      route add default gw 10.10.68.1
                      echo 10.10.68.201 > /var/www/html/index.html

                      service httpd start

                      B(10.10.68.202) C(10.10.68.203)同上配置

   

               c】  DGW 的配置

                       ifconfig eth0 8.8.48.1/24
                       ifconfig eth0:0 4.4.64.1/24
                       echo 1 > /proc/sys/net/ipv4/ip_forward 

            

               d】  Director 分发器的配置

                       ifconfig eth0 4.4.64.66/24
                       ifconfig eth0:0 10.10.68.1/24
                       echo 1 > /proc/sys/net/ipv4/ip_forward
                       route add default gw 4.4.64.1
                       ipvsadm -A -t 4.4.64.66:80 -s rr
                       ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -m
                       ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -m
                       ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -m
               e】 Client 端 测试
                       ifconfig eth0 8.8.48.22/24
                       route add default gw 8.8.48.1
 
                       elinks -dump http://4.4.64.66  

          2】 VS-DR 路由方式搭建配置
               a】 网络拓扑结构
                                        Client  8.8.48.22
                                                  |
                                                  |
                                                  |  8.8.48.1
                                         DGW
                                                  |  4.4.64.1
                                                  |
                                                  |  4.4.64.66 (VIP)
                                    Director
                                                  |  4.4.64.100 (DIP)
                                                  |
                                -----------------------------------
                               |                  |                           |
                              A                 B                         C    (real http  server) (RIP)
                     eth0:4.4.64.201    4.4.64.202        4.4.64.203
                       lo:0 4.4.64.66     4.4.64.66         4.4.64.66
  
                 b】real http server (ABC)的配置
                       A(4.4.64.201)的配置
                       ifconfig lo:0 4.4.64.66/32  (VIP)
                       echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
                       echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  (关闭VIP的arp响应)
                       ifconfig eth0 4.4.64.201/24
                       route add default gw 4.4.64.1
 
                      echo 10.10.68.201 > /var/www/html/index.html
                      service httpd start
       
                      B(10.10.68.202) C(10.10.68.203)同上配置
       
     
                c】DGW 的配置
                     ifconfig eth0 8.8.48.1/24
                     ifconfig eth0:0 4.4.64.1/24
                     echo 1 > /proc/sys/net/ipv4/ip_forward 

               d】 Director 分发器的配置
                      ifconfig eth0 4.4.64.100/24             #(顺序不能和下行颠倒,保证同一广播域数据由eth0 发出)
                      ifconfig eth0:0 4.4.64.66/24
                      echo 1 > /proc/sys/net/ipv4/ip_forward

                      route add default gw 4.4.64.1


                      ipvsadm -A -t 4.4.64.66:80 -s wrr
                      ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -g  -w 10    (权重)
                      ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -g  -w 20
                      ipvsadm -a -t 2.2.2.2:80 -r 10.10.68.201 -g  -w 30

               e】  配置完成 Client 端 测试
                      ifconfig eth0 8.8.48.22/24
                      route add default gw 8.8.48.1
 
                      elinks -dump http://4.4.64.66  

【7】 LVS 实现多端口服务的负载均衡集群  ----->如FTP 服务
          1】 网络拓扑结构
                     Client  8.8.48.22
                          |
                          |
                          |  8.8.48.1
                        DGW
                          |  4.4.64.1
                          |
                          |  4.4.64.66 (VIP)
                   Director
                          |  4.4.64.100 (DIP)
                          |
          -----------------------------------
          |               |                    |
          A               B                C             (real ftp server) (RIP)
      eth0:4.4.64.201    4.4.64.202        4.4.64.203
      lo:0 4.4.64.66     4.4.64.66         4.4.64.66

        2】 real ftp server (ABC)的配置
               A(4.4.64.201)的配置
               ifconfig lo:0 4.4.64.66/32  (VIP)
               echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
               echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  (关闭VIP的arp响应)
               ifconfig eth0 4.4.64.201/24
               route add default gw 4.4.64.1
       
               vim /etc/vsftpd/vsftpd.conf
                    pasv_enable=YES
                    pasv_min_port=50000
                    pasv_max_port=60000
       
                touch /var/ftp/4.4.64.201
                service vsftpd start
       
               B(10.10.68.202) C(10.10.68.203)同上配置
       
          3】  DGW 的配置
                  ifconfig eth0 8.8.48.1/24
                  ifconfig eth0:0 4.4.64.1/24
                  echo 1 > /proc/sys/net/ipv4/ip_forward 
   
         4】  Director 分发器的配置
                 ifconfig eth0 4.4.64.100/24  #(顺序不能和下行颠倒,保证同一广播域数据由eth0 发出)
                 ifconfig eth0:0 4.4.64.66/24
                 echo 1 > /proc/sys/net/ipv4/ip_forward
                 route add default gw 4.4.64.1
                 ipvsadm -C
                 iptables -t mangle -A PREROUTING -p tcp -d 4.4.64.66 --dport 21 -j MARK  --set-mark 2100
                 iptables -t mangle -A PREROUTING -p tcp -d 4.4.64.66 --dport  50000:60000 -j MARK --set-mark 2100
       
                 ipvsadm -C
                 ipvsadm -A -f 2100     -s lc  -p  300  (LVS保持持久性连接300秒:同一client 请求发给同一real ftp server)
                 ipvsadm -a -f 2100     -r 4.4.64.201 -g
                 ipvsadm -a -f 2100     -r 4.4.64.202 -g
                 ipvsadm -a -f 2100     -r 4.4.64.203 -g

           5】  配置完成 Client 端 测试
                 ifconfig eth0 8.8.48.22/24
                 route add default gw 8.8.48.1
  
                 ftp 4.4.64.66

【8】 通过Piranha程序实现(VS-DR方式的HTTP LB Cluster)的高可用性
        1】 Piranha简介
               Piranha是一个用来监视、配置、和管理LVS集群的基于WEB的工具。它是维护/etc/sysconfig/ha/lvs.cf 集群配置文件的默认工具。
 
        2】 网络拓扑结构
                     Client  8.8.48.22
                          |
                          |
                          |  8.8.48.1
                        DGW            ----------------------
                          |  4.4.64.1                                |
                          |                                                 |
                          |  4.4.64.66 (VIP)                     |
                   Director(主)                      Director(备)
                          |  4.4.64.100 (DIP)                  |  4.4.64.200(DIP)
                          |                                                 |
          ---------------------------------------------------
          |               |                |
          A               B                C                            (real http  server) (RIP)
      eth0:4.4.64.201    4.4.64.202        4.4.64.203
      lo:0 4.4.64.66        4.4.64.66          4.4.64.66

         3】 DGW ,Director(主) 和 real http server 的配置同上 6 
                Director(备)的配置同Director(主) 然后测试 主备 都正常工作

         4】 在Director(主)和Director(备)上均安装Piranha软件
                 yum install piranha
         5】 Director(主)上的配置

              a】 piranha-passwd                                             #生成网站登录密码

                     依赖此配置文件:

                     /etc/sysconfig/ha/conf/httpd.conf
              b】 /etc/init.d/piranha-gui  start                            #启动服务
              c】 netstat -naltp  | grep :3636                             #查看服务是否启动成功
              d】 firefox http://4.4.64.100:3636/piranha/         #打开登录页面
              e】 根据页面提示进行配置,配置完成后退出 查看生成的配置文件
                      cat /etc/sysconfig/ha/lvs.cf
serial_no = 20primary = 4.4.64.100service = lvsbackup_active = 1backup = 4.4.64.200heartbeat = 1heartbeat_port = 539keepalive = 3deadtime = 10network = directdebug_level = NONEmonitor_links = 1syncdaemon = 0virtual web_lb {     active = 1     address = 4.4.64.66 eth0:0     sorry_server = 127.0.0.1     vip_nmask = 255.255.255.0     port = 80     send = "GET / HTTP/1.0\r\n\r\n"     expect = "HTTP"     use_regex = 0     load_monitor = none     scheduler = rr     protocol = tcp     timeout = 2     reentry = 10     quiesce_server = 0     server RSA {         address = 4.4.64.201         active = 1         port = 80         weight = 1     }     server RSB {         address = 4.4.64.202         active = 1         port = 80         weight = 1     }     server RSC {         address = 4.4.64.203         active = 1         port = 80         weight = 1     }}

               f】 scp     /etc/sysconfig/ha/lvs.cf  4.4.64.200:/etc/sysconfig/ha/       #将配置文件拷贝到Director(备)上
              g】 配置Director(主) 和 Director(备)的Sorry页面,当所有realserver都故障时,请求会被分发给director提供的sorry页面);  
                     echo Sorry,please wait... > /var/www/html/index.html
                     service httpd start
              h】 /etc/init.d/pulse start
                     Director(主) 和 Director(备) 均启动此服务
               i】 ps aux | grep lvs   #查看启动的进程
                     /usr/sbin/lvsd          #此进程用于在主备director间检查心跳,并进行浮动资源部署和故障切换
                     /usr/sbin/nanny      #此进程用于检查realserver健康情况,有几个realserver就有几个nanny进程
               j】 两边都启动pulse服务后,可以看到在主director(2.2.2.100)上能看到浮动资源(VIP和lvs分发策略),而备director上并没有这些资源至此配置完成.
              h】 进行测试
                     Director(主)故障后,自动切到Director(备)上 ,Director 恢复后 自动切回
                     三个realserver 都故障后,显示 Sorry 页面
原创粉丝点击