zoukankan      html  css  js  c++  java
  • 1.大数据之LVS和keepalived

    1.高并发:由于分布式系统的问世,高并发(HighConcurrency)通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API       接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。

    2.高并发负载均衡技术主要有两种技术:一种是基于四层的LVS负载均衡技术,一种是基于七层的Nginx技术的负载均衡技术。

    3.LVS:全称(Linux Virtual Server:Linux虚拟服务器),是一个虚拟的服务器集群系统,目的是使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.

    4.Nginx(一种开源软件)

    5.四层LVS模型

    词汇:
    VIP :虚拟服务器地址
    DIP :转发的网络的地址
    1.和RIP通信:ARP协议,获取真实的Real server的ip地址,MAC 地址
    2.转发client的数据包到RIP上(隐藏的VIP)
    RIP :后端真实服务器的ip地址
    CIP :客户端的IP地址

    注意:1.负载均衡器和客户端不进行三次握手,只负责将收到的数据包进行转发,它是保证客户端和真实服务器端的三次握手和四次分手顺利进行,

    6.上网流程:

      

    隐藏的vip:对外隐藏,对内可见
    1. kernel parameter: 配置文件:/proc/sys/net/ipv4/conf/*IF*/
          - arp_ignore:定义接收到的ARP请求的响应级别
            0:只要本地配置的有相应地址,就给予响应
            1:仅在请求目标(MAC)地址配置请求到达的接口上的时候,才给予响应。

          - arp_announce:定义将自己的地址向外通告时的通告级别
            0:将本地任何接口上的任何地址向外通告
            1:试图仅向目标网络通告与网络匹配的地址
            2:仅向与本地接口上地址匹配的网络进行通告

    7.操作:

     7.1DR模式下的LVS(分如下四步):

        1.要配置一个隐藏的VIP,将它配置到服务器的io接口上面(注意:一个网卡上面可以配置多个ip地址)

        2.LVS意指虚拟器服务器

        3.ipvs:嵌入到Linux内核 ipvsadm:管理应用程序

        4.LVS调度方法:

          4.1 四种静态调用方法: - rr:轮循 - wrr - dh - sh
          4.2 动态调用方法: - lc:最小连接 - wlc:加权最小连接 (默认时的连接)- sed:最短期望延迟 - nq :never queue
                    -LBLC :于本地最小连接 - DH - LBLCR: 基于本地的带复制功能的最少连接

     7.2搭建 

      LVS命令:监控多个端口号

      对监控包的设置(ipvsadm是需要在服务器上安装的准备包):
        1.安装ipvs内核模块: yum -y install ipvsadm
        2.管理集群服务命令:ipvsadm -A -t +ip地址和端口号 -s rr

      对负载包的设置:
        命令格式:-a -t|u|f service-address -r service-address [-g|i|m] [-w weight]
               -t|u|f service-address :事先定义好的某集群服务 

      7.3步骤:
        1.准备好三台虚拟机
        2.先配置三台虚拟机的网络
        3.配置LVS的VIP(在eth0的子接口)
          - ifconfig eth0:8 192.168.9.100/24
          - echo 1 > /proc/sys/net/ipv4/ip_forward :这个是地址转发的配置,目的是将接收到的数据包给转发出去,而不是丢掉,其实就相当于一个路由器
        4.调整RS响应,通告级别(每一台都要配置)
          - echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
          - echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
          - echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
          - echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

        5.配置RS 的VIP (每一台RS都配)
          - ifconfig lo:8 192.168.9.100 netmask 255.255.255.255

        6.启动RS上面的httpd服务 yum -y install httpd /var/www/html vi index.html --from 内容
          启动httpd: service httpd start
          客户端验证:RIP 80 是可以显示的
          -VIP 80 是不能显示的

        7. LVS-ipvsadm
          - yum -y install ipvsadm(在负载均衡的那台服务器上面安装)
          - ipvsadm -A -t 192.168.9.100:80 -s rr 基于192.168.9.100:80这样的数据进行负载
          - ipvsadm -a -t 192.168.9.100:80 -r 192.168.9.12 -g
          - ipvsadm -a -t 192.168.9.100:80 -r 192.168.9.13 -g
          - ipvsadm -ln
          - 浏览器刷新:访问VIP
          - ipvsadm -lnc
          - ipvsadm -natp

          node01 :192.168.9.11 作为LVS负载均衡服务器 也是DIP(eth0),也在这台负载均衡服务器上配置VIP(eth0:8)
          node02 :192.168.9.12 Realserver1 RIP1 调整Rs响应和通告级别,然后在配置VIP(对外隐藏,对内可见)
          node03 :192.168.9.13 Realserver2 RIP2 调整RS响应和通告级别,然后在配置VIP(对外隐藏,对内可见)

    LVS中的DR模式潜在的风险:
    1.当LVS负载均衡服务器挂掉的时候,那么后面的真实服务器就不能被访问了,也就意味着服务器瘫痪了,这样就引发了一个单点故障问题。
    2.当后面的一台Realserver服务器挂掉的时候,这样就会使当客户端访问服务器的时候,一部分客户端是可以访问,另外一部分是不可以访问。

    解决技术:keeplived技术

      简介:Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其   他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

      注意: dr 模型中的LVS 负载均衡一定不要忘记RealServer 中要配置隐藏的VIP 和通告级别 ,千万不要忘记。

    keepalived是集群管理中保证集群高可用的服务软件
      高可用:High Available

      要求:
        1.需要心跳机制探测后端RS是否提供服务。
          a)探测down,需要从lVS中删除该RS
          b)探测发送从down到up,需要从lvs中再次添加RS

        2.LVS DR 需要主备

        keepalived原理: 

          1.VRRP协议(虚拟路由冗余协议)

          2.IP漂移

            安装: yum -y install keepalived
            启动: service keepalived start
            配置文件 /etc/keepalived/keepalived.conf
            日志: /var/log/message 查看日志。

      简单架构图:

          

      

      keepalived配置文件:
        1./etc/keepalived/keepalived.conf
        2.帮助手册 man keepalived.conf
        3.编辑之前需要备份 cp -a keepalived.conf keepalived.conf.backup

      配置文件介绍:  

    !Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc                                        *********
         failover@firewall.loc                                       *       *
         sysadmin@firewall.loc                                       *配置邮箱 *
       }                                                             *       *
       notification_email_from Alexandre.Cassen@firewall.loc         *********
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    
    vrrp_instance VI_1 {
        state MASTER                # 配置主负载均衡器(LVS)
        interface eth0                                         
        virtual_router_id 51
        priority 100                # 权重值 主要是要区别主备LVS的根据
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.56.100/24 dev eth0 label eth0:3        #配置虚拟服务器的IP地址(VIP)
        }
    }
    
    virtual_server 192.168.56.100 80 {                     #配置真实服务器的ip地址
        delay_loop 6
        lb_algo rr
        lb_kind DR
        nat_mask 255.255.255.0
        persistence_timeout 0
        protocol TCP
    
        real_server 192.168.56.102 80 {
            weight 1
            HTTP_GET {                                
                url {
                  path /
                  status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
        real_server 192.168.56.103 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
                  status_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
  • 相关阅读:
    DFS
    离散化
    前缀和&差分
    数组运用_1-15 选择题
    数组运用_1-13 选择题
    数组运用_1-11 选择题
    数组运用_1-9 选择题
    数组运用_1-4 编程练习
    数组初始_2-22编程练习
    poj 3669 bfs(这道题隐藏着一个大坑)
  • 原文地址:https://www.cnblogs.com/zmc60/p/14749222.html
Copyright © 2011-2022 走看看