lvs负载均衡

负载均衡可以用LVS方案,但是为了防止单点故障,可以选择lvs+keepalived组合保证高可用性

lvs和nginx的负载均衡区别:

・lvs是4层(传输层)负载均衡,仅作请求分发用,没有流量所以抗负载能力强

  lvs工作在内核空间

・nginx是7层(应用层)负载均衡,可以针对http协议做分流用

     比如后端有两个web服务器,apache(处理动态内容)和nginx(处理静态内容),如果用户想要访      问动态内容nginx就可以分发到apache服务器上

   nginx工作在用户空间

重点:每个节点都同步时间

ntpdate time.windows.com

1.环境简介

操作系统:Centos6.6

DR上装:ipvs管理工具:ipvsadm,keepalived

realserver上装:nginx或者Apache

wKiom1XMHTuy6mSoAAB-rc_cONg598.jpg

一、理论篇

1.lvs集群的组成

 LVS服务器系统由三部分组成

     1)负载均衡层:

         位于整个系统的最前端,避免单点故障一般由2台或2台以上负载调度器组成

     2)服务器群组层

         是一组真正提供服务的机器组成,Real server 可以是:Web、Ftp、mail等。4

     3)共享存储层

         为Real server提供共享存储空间和内容一致性的存储区域

         Directory是整个LVS的核心,只能安装在Linux和FreeBSD上,

         Real server可以是所有系统平台

2.lvs三种模式:

  *NAT:

     原理:DR收到请求数据包后,根据调度算法找到对应的RS,把数据包的目的IP改成RS的IP,并将请求分发给这台RS,RS收到数据包并处理完成后,将数据再发给DR,DR把数据包原地址改成自己的IP,目的IP改成客户端的IP

     优点:节省IP地址,因为只有DR需要一个公网IP地址

     缺点:所有的请求包和应答包都经过DR(负载均衡器),服务器节点过多时,大量数据包都经过负载均衡器处理速度就会变慢

  *直连路由-DR:

     原理:DR收到请求数据包后,根据调度算法找到对应的RS,把数据包的目的MAC改成RS的MAC(因为IP一致),并将请求分发给这台RS,RS收到数据包并处理完成后,由于IP一致,将数据直接返回给客户端

     优点:DR只是分发请求,而且应答包由RS直接返回给客户,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈

     缺点:每台机器都需要一个公网IP,

  *隧道-Tun:

    原理:(将一个IP报文封装在另一个IP报文中,所以可以跨网段。)DR收到请求数据包后,根据调度算法找到对应RS,RS收到后,把报文解封获得目的地址为VIP的报文,如果VIP地址被配置在本地,就会处理这个请求,处理完将数据直接返回给客户端

     优点:如果跑在公网上,就可以对不同的地区分发,可以跨城市。

3.lvs四种调度算法:

轮询(rr):           按照请求顺序轮流分发到后端RS

加权轮询(wrr):      权值高的获得的任务更多

最小连接数(lc):     动态的将请求建立到连接数较少的RS上

加权最小连接数(wlc):调度器自动询问RS的真实负载情况,并动态的调整权

4.ipvsadm参数

  1)添加虚拟服务器语法:

        ipvsadm  -A t|u|f   [vip_addr:port] [-s 指定算法]

        -A:添加

        -t:TCP协议

        -u:UDP协议

        -f:防火墙标记

        -D:删除

        -E:修改

        -L:查看

  2)添加真实服务器语法

       ipvsadm  -a t|u|f   [vip_addr:port] [-r RSip_addr]  [-g|i|m]  [-w weight]

        -a:添加

        -t:TCP协议

        -u:UDP协议

        -f:防火墙标记

        -r:指定真实服务器IP

        -g:DR模式

        -i:TUN模式

        -m:NAT模式

        -w:指定权值

        -d:删除

        -e:修改

        -l:查看

  3)通用:

        ipvsadm  -ln  查看规则

        service ipvsadm save 保存规则

        ipvsadm -R < path/to/somefile   

  4)实例:    

ipvsadm -A -t 192.168.1.10:80 -s wrr 
ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.107 -g -w 4
ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.108 -t -w 3

二、实战篇

1.搭建DR模式的LVS

1)Directory:  
   安装ipvsadm     yum -y install  ipvsadm  
   配置VIP    ifconfig eth0:0 192.168.1.10 broadcast 192.168.1.10 netmask 255.255.255.255 
     添加路由       route add -host 192.168.1.10 dev eth0  
     添加虚拟服务器 ipvsadm -A -t 192.168.1.10:80  -s wrr     
     添加后端RS1    ipvsadm -a -t 192.168.1.10:80  -r  192.168.1.105 -g  -w  2      
     添加后端RS2    ipvsadm -a -t 192.168.1.10:80  -r  192.168.1.106 -g  -w  2  
    保存           service ipvsadm save<pre name="code" class="html">       
    查看           ipvsadm -ln  
 1)RS节点:    
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce    
            echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce  
            echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore  
            echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore    
           上面配置调整Linux内核ARP响应参数,阻止更新VIP的MAC地址,避免冲突  
   配置VIP     ifconfig lo:0  192.168.1.10 braodcast 192.168.1.10 netmask 255.255.255.255  
  添加路由     route add  -host 192.168.1.10 dev lo:0   
  启动服务     service httpd start



你可能感兴趣的:(server,操作系统,web服务器,管理工具,应用层)