zoukankan      html  css  js  c++  java
  • LVS简介

    负载均衡LVS(Linux Virtual Server)... 1
    
     第1章 LVS负载均衡集群简介... 1
    
    1.1 为什么要学LVS. 1
    
    1.2 LVS网站资料:... 1
    
    1.3 LVS内核模块ip_vs介绍... 1
    
     第2章 LVS-DR直接路由模式... 2
    
    2.1 DR直接路由模式说明... 2
    
    2.1.1 DR-原理图片:... 2
    
    2.1.2 DR-原理解释... 2
    
    2.1.3 ARP原理... 3
    
    2.2 ipvsadm-检查环境... 3
    
    2.3 lb服务端-搭建lvs. 4
    
    2.4 web服务器配置... 4
    
     第3章 LVS-keepalived高可用lvs. 5
    
    3.1 环境介绍... 5
    
    3.2 部署lvs-keepalived. 6
    
    3.2.1 lb负载均衡操作(Load Balance)... 6
    
    3.2.2 web服务器操作... 9
    
    3.2.3 检测高可用及负载... 9
    
     第4章 LVS集群的工作模式总结... 10
    复制代码

    第1章 LVS负载均衡集群简介

    1.1 为什么要学LVS

    LVS支持比nginx更大的并发量。
    
    当并发超过了Nginx上限,就可以使用LVS了。日1000-2000W PV 或并发请求1万以下都可以考虑用Nginx。

    1.2 LVS网站资料:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    官网:http://www.linuxvirtualserver.org/index.html
     
    中文资料
     
    LVS项目介绍           http://www.linuxvirtualserver.org/zh/lvs1.html
     
    LVS集群的体系结构     http://www.linuxvirtualserver.org/zh/lvs2.html
     
    LVS集群中的IP负载均衡技术  http://www.linuxvirtualserver.org/zh/lvs3.html
     
    LVS集群的负载调度      http://www.linuxvirtualserver.org/zh/lvs4.html

    1.3 LVS内核模块ip_vs介绍

    从2.4.24以后IPVS已经成为Linux官方标准内核的一部分。

     LVS无需安装
     安装的是管理工具,第一种叫ipvsadm,第二种叫keepalive
     ipvsadm是通过命令行管理,而keepalive读取配置文件管理
     后面我们会用Shell脚本实现keepalive的功能

    安装ipvsadm管理工具(只在lb操作)

    第2章 LVS-DR直接路由模式

    2.1 DR直接路由模式说明

    2.1.1 DR-原理图片:

     

    2.1.2 DR-原理解释

    原理:DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器将响应后的处理结果直接返回给客户端用户。

    注意:DR技术可极大地提高集群系统的伸缩性。但要求调度器LB与真实服务器RS都有一块物理网卡连在同一物理网段上,即必须在同一局域网环境。

    2.1.3 ARP原理

    复制代码
    实现局域网内数据传输依据:(1)主机ARP缓存 (2)交换机MAC地址表
    ARP原理:根据IP地址获取物理地址MAC的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,(所有主机会提取发送者的ip 和mac存入自己的ARP缓存中)目标主机接收返回自己mac消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 数据传输过程:(前提已有arp缓存)主机A通过查询ARP缓存,得到mac地址,数据包经过交换机检查mac地址表,到达指定主机B。
    复制代码

    2.2 ipvsadm-检查环境

    复制代码
    系统准备:一台负载均衡服务器lb03(10.0.0.15)
    
              两台web服务器(10.0.0.17-18)
    
    # 查看系统的LVS模块。
    lsmod|grep ip_vs
    
    # 默认没有加载模块,需要安装管理工具才会激活。
    yum -y install ipvsadm
    
    # 查看当前LVS状态,顺便激活LVS内核模块。
    ipvsadm  -ln
    复制代码

    2.3 lb服务端-搭建lvs

    (只在负载服务器-lb操作)

    复制代码
    ip addr add 10.0.0.13/24 dev eth0
    ipvsadm -C
    ipvsadm --set 30 5 60
    ipvsadm -A -t 10.0.0.13:80 -s wrr -p 20
    ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.17:80 -g -w 1
    ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.18:80 -g -w 1
    ipvsadm -ln
    复制代码

    (命令解释)

    复制代码
    #步骤1:在eth0网卡绑定VIP地址(ip)
    
    #步骤2:清除当前所有LVS规则(-C)
    
    #步骤3:设置tcp、tcpfin、udp链接超时时间(--set)
    
    #步骤4:添加虚拟服务(-A),-t指定虚拟服务的IP端口,-s 指定调度算法 调度算法见man ipvsadm, rr wrr 权重轮询 -p 指定超时时间
    
    #步骤5:将虚拟服务关联到真实服务上(-a) -r指定真实服务的IP端口 -g LVS的模式 DR模式 -w 指定权重
    
    #步骤6:查看配置结果(-ln)
    复制代码

    2.4 web服务器配置

    复制代码
    (在web03/web04同时操作下面步骤)
    
    #步骤1:在lo网卡绑定VIP地址(ip)
    ip addr add 10.0.0.13/32 dev lo
    
    #步骤2:修改内核参数抑制ARP响应
    cat >>/etc/sysctl.conf<<EOF
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    EOF
    
    sysctl -p
    复制代码

    ##解释说明

    复制代码
    #随笔--更新全网arp缓存(向全网发送广播)
    arping  -I eth0  -c 1  -U  10.0.0.13
    
    #命令操作解释说明
    1. RealServer为什么要在lo接口上配置VIP?
    答:既然要让RS能够处理目标地址为vip的IP包,首先必须要让RS能接收到这个包(基于二层的,ip不变)。在lo上配置vip能够完成接收包并将结果返回client。
    
    #网卡解释
    eth0,eth1,eth2……代表网卡一,网卡二,网卡三……
    lo代表127.0.0.1,即localhost
    
    2.在eth0网卡上配置VIP可以吗?
    答:不可以,将VIP设置在eth0网卡上,会影响RS的arp请求,造成整体LVS集群arp缓存表紊乱,以至于整个负载均衡集群都不能正常工作。
    
    3.为什么要抑制ARP响应?
    访问网站时,直接访问web服务器,不经过负载均衡服务器。
    复制代码

    第3章 LVS-keepalived高可用lvs

    3.1 环境介绍

    两台负载均衡服务器:lb03   lb04

    两台web服务器:10.0.0.17  10.0.0.18

    复制代码
    (负载均衡器)
    # 查看系统的LVS模块。
    lsmod|grep ip_vs
    # 默认没有加载模块,需要安装管理工具才会激活。 yum -y install ipvsadm
    # 查看当前LVS状态,顺便激活LVS内核模块。 ipvsadm -ln
    复制代码

    3.2 部署lvs-keepalived

    3.2.1 lb负载均衡操作(Load Balance)

    #步骤1:在lb03和lb04安装Keepalive

    yum -y install keepalived

    #只需要在keeplived的配置文件中设置lvs

    #步骤2:配置Keepalive, lb03和lb04的配置文件分成三部分配置

    1.global_defs   全局定义
    
    2.vrrp 实例配置  VIP
    
    3.virtual_server配置  lvs的配置

    # lb03的配置文件

    复制代码
    # vim /etc/keepalived/keepalived.conf
    global_defs {
       router_id LVS_01
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 150
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
         10.0.0.13/24
        }
    }
    #lvs 的配置 
    virtual_server 10.0.0.13 80 {    #虚 ip
        delay_loop 6              
        lb_algo wrr     
        lb_kind DR   
        nat_mask 255.255.255.0
        persistence_timeout 50     
        protocol TCP    
    
        real_server 10.0.0.17 80 {   #真实web  ip
            weight 1      
            TCP_CHECK {
            connect_timeout 8       
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
        }
    
        real_server 10.0.0.18 80 {   #真是web ip
            weight 1              
            TCP_CHECK {
            connect_timeout 8       
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
        }
    }
    复制代码

    lb04的配置文件

    复制代码
    [root@lb04 keepalived]# cat /etc/keepalived/keepalived.conf 
    global_defs {
       router_id LVS_02
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
         10.0.0.13/24
        }
    }
    virtual_server 10.0.0.13 80 {
        delay_loop 6          
        lb_algo wrr                
        lb_kind DR                
        nat_mask 255.255.255.0
        persistence_timeout 50     
        protocol TCP                
    
        real_server 10.0.0.17 80 {
            weight 1              
            TCP_CHECK {
            connect_timeout 8       
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
        }
    
        real_server 10.0.0.18 80 {
            weight 1              
            TCP_CHECK {
            connect_timeout 8       
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
            }
        }
    }
    复制代码

    3.2.2 web服务器操作

     

    复制代码
    (在web03/web04同时操作下面步骤)
    步骤1:在lo网卡绑定VIP地址(ip)
    步骤2:修改内核参数抑制ARP响应
    ip addr add 10.0.0.13/32 dev lo   #临时生效
    
    cat >>/etc/sysctl.conf<<EOF
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    EOF
    sysctl -p
    复制代码

     

    3.2.3 检测高可用及负载

    ip addr show eth0
    
    ipvsadm -ln

    第4章 LVS集群的工作模式总结

    DR(Direct Routing)直接路由模式 (常用)

    NAT(Network Address Translation)

    TUN(Tunneling)隧道模式

    FULLNAT(Full Network Address Translation)

  • 相关阅读:
    POJ 3140 Contestants Division (树dp)
    POJ 3107 Godfather (树重心)
    POJ 1655 Balancing Act (树的重心)
    HDU 3534 Tree (经典树形dp)
    HDU 1561 The more, The Better (树形dp)
    HDU 1011 Starship Troopers (树dp)
    Light oj 1085
    Light oj 1013
    Light oj 1134
    FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869
  • 原文地址:https://www.cnblogs.com/wljsir/p/8527560.html
Copyright © 2011-2022 走看看