zoukankan      html  css  js  c++  java
  • lvs

    集群:

        1.一组通过高速网络互联的计算组,并以单一系统的模式加以管理

        2.将很多服务器集中在一起,提供同一种服务,在客户端看来就像是只有一个服务器

        3.可以在付出较低成本的情况下获取在性能,可靠性,灵活性方面的相对较高的收益

        4.任务调度是集群系统中的核心技术

    类型:

        1.HPC(高性能计算集群)

              --通过以集群开发的并行应用程序,解决复杂的科学问题。

        2.LB(负载均衡)

               --客户端负载在计算机集群中尽可能平均分摊

        3.HA(高可用)

              --避免单点故障,当一个系统发生故障时,可以快速迁移。

    lvs:

      可以实现高可用的,可伸缩的webmailcachemedia等网络服务

      最终目标是利用linux操作系统和lvs集群软件实现一个高可用、高性能、低成本的服务器应用集群

    LVS集群组成(工作在传输层,基于端口)

      前端:负载均衡层

             --由一台或多台负载调度器构成

      中间:服务器群组层

               --由一组实际运行应用服务的服务器组成

      底端:数据共享存储层

               --提供共享存储空间的存储区域

    LVS术语:

      director  server   调度服务器  

               --将负载分发到real server的服务器

      real server    真实服务器

               --真正提供应用服务的服务器

      VIP    虚拟IP地址

               --公布给用户访问的虚拟IP地址

      RIP   真实IP地址

                --集群节点上使用的IP地址

      DIP   

        --调度器连接节点服务器的IP地址

    LVS工作模式:

      NAT 模式

               -通过网络地址转换实现的虚拟服务器;大并发访问时,调度器的性能成为瓶颈

      DR模式

                -直接使用路由技术实现虚拟服务器;节点服务器需要配置VIP,注意MAC地址广播

      TUN模式

                -通过隧道方式实现虚拟服务器(不常用)

    负载均衡调度算法:

      LVS目前实现了10种调度算法,常用调度算法有4

          rr 轮询 round robin

                   --将客户端请求平均分发到real server

          wrr加权轮询 weighted round robin  

                    --根据real server 权重进行轮询调度

           lc 最少连接 least connections

                    --选择连接数最少的服务器

            wlc加权最少连接Weighted  Least-Connection

                     --根据real server权重值,选择连接数最少的服务器

            sh源地址散列 source hashing  

                      --根据请求的目标,作为散列键(hash key)从静态分配的散列表找出对应的服务器。 

            dh目标地址散列 destination  hashing

            lblc基于局部性的最少链接Locality-Based  Least-Connection

            lblcr带复制的基于局部性最少链接  Locality-Based  Least-Connection   with   Replication

            sed最短的期望的延迟Shortest Expected Delay  

            nq最少队列调度Never Queue

    lvs+net:

    #44,55的网关是33

    B机:

    #sysctl -p(内核路由转发功能)

    #cat /etc/sysctl.conf

    net.ipv4.ip_forword = 1

    #yum -y install ipvsadm

    #ipvsadm -A -t 192.168.2.33:80 -s rr

    #ipvsadm -a -t 192.168.2.33:80 -r 192.168.4.44:80 -m

    #ipvsadm -a -t 192.168.2.33:80 -r 192.168.4.55:80 -m

    #service ipvsadm save

    #cat /etc/sysconfig/ipvsadm(配置文件)

    #chkconfig ipvsadm on

    #ipvsadm -Ln

     

     lvs+dr:

    配置realserver(44,55):

    1.绑定vip

    #ifconfig lo:1 vip/32

    #ifconfig lo:1

    2.修改网卡接口的运行参数,帮助兄弟接口收发ip包

    方法1

    # sysctl -a | grep arp_ig

    # echo 'net.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf

    # echo 'net.ipv4.conf.lo.arp_ignore = 1' >> /etc/sysctl.conf

    # sysctl -a | grep arp_an

    # echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

    # echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

    # sysctl -p

    方法2

    #echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore   (忽略arp广播包)

    #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 

    #echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  (帮助兄弟接口收发ip包)

    #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    配置分发器:

    1.绑定vip

    #ifconfig ens33:1 vip/32

    #ifconfig ens33:1

    2.添加linux虚拟服务,并添加realserver

    #yum -y install ipvsadm

    #ipvsadm -A -t vip:80 -s rr

    #ipvsadm -a -t vip:80 -r 192.168.4.44:80 -m

    #ipvsadm -a -t vip:80 -r 192.168.4.55:80 -m

    #ipvsadm -Ln 

    3.检查

    #ipvsadm -Ln  --stats

    ipvsadm手册

    管理集群服务:

            添加:-A -t|u|f service-address [-s scheduler]

                -tTCP协议的集群

                    service-address:    IP:PORT

                -uUDP协议的集群

                    service-address:    IP:PORT

                -f FireWallMark(FWM),防火墙标记

                    service-address:    Mark Number

                example

                    # ipvsadm -A -t 10.10.10.1:80 -s rr

            修改:-E

                    使用格式跟-A选项相同

            删除:-D -t|u|f service-address

    管理集群服务中的Real Server

            添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]

                -t|u|f service-address:事先定义好的某集群服务

                -r server-addressreal server的地址,在NAT模型中,可以使用IP:PORT实现端口映射

                [-g|i|m]LVS类型

                    -gDR

                    -iTUN

                    -mNAT

                [-w weight]:定义服务器权重

                example

                    # ipvsadm -a -t 10.10.10.1:80 -r 10.10.10.11 -m

                    # ipvsadm -a -t 10.10.10.1:80 -r 10.10.10.12 -m

            修改:-e

                使用格式跟-a选项相同

            删除:-d -t|u|f service-address -r server-address

        查看:

            -L | -l :显示规则

            -n:以数字格式显示主机地址和端口

            -c:显示当前ipvs连接状况

            --stats:显示统计信息

            --rate:显示速率

            --timeout:显示tcptcpfinudp会话超时时长

                # ipvsadm -L -n --timeout

                Timeout (tcp tcpfin udp): 900 120 300

            --daemon:显示进程状态以及多播端口

            --sort:排序显示

        设置tcptcpfinudp会话超时时长:

            # ipvsadm --set tcp tcpfin udp

        删除所有集群服务:

            -C:清空ipvs规则

            # ipvsadm -C

        保存规则:-S

            # ipvsadm -S > /path/to/file

        恢复规则:-R

            # ipvsadm -R < /path/to/file

        清空服务计数器:-Z [-t|u|f service-address]

            # ipvsadm -Z [-t|u|f service-address]

        查看RealServer持久连接:

            # ipvsadm -L -n --persistent-conn

     LVS上新增Service

      [命令]

        ipvsadm -A -t <VIP>:<Port> -s <schedule: rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq>

      [实例]:

        在LVS中为http协议添加一个VIP1.1.1.1service, 并设置调度方式为Round Robin

        ipvsadm -A -t 1.1.1.1:80 -s rr

    新增Real Server

      [命令]

        ipvsadm -a -t <VIP>:<Port> -r <VIP>:<Port> <Forward Mode: -b | -m | -g | -i >

      [实例]:

        以DR方式为VIP1.1.1.1LVS新增Real IP192.168.1.2Real Server

        ipvsadm -a -t 1.1.1.1:80 -r 192.168.1.2:80 -g

    查看所有的LVS以及对应的Real Server(常用)

      [命令]

        ipvsadm -l

      [实例]:

        查看LVS以及对应的Real Server

        ipvsadm -l

        查看LVS以及对应的Real Server (不解析IPPORT)

        ipvsadm -ln

    InActConn 指非活跃连接数,我们将处于 TCP ESTABLISH 状态以外的连接都称为不活跃连接。例如处于 SYN_RECV 状态的连接,处于 TIME_WAIT 状态的连接等。


        ipvsadm -l --rate 

    --rate选项是显示速率信息

      CPS current connection rate) 每秒连接数

      InPPS current in packet rate) 每秒的入包个数

        OutPPS current out packet rate) 每秒的出包个数

        InBPS current in byte rate) 每秒入流量(字节)

        OutBPS current out byte rate) 每秒入流量(字节)

        ipvsadm -l -status

    --stats 选项是统计自该条转发规则生效以来的

    Conns connections scheduled) 已经转发过的连接数

    InPkts incoming packets) 入包个数

    OutPkts outgoing packets) 出包个数

    InBytes incoming bytes) 入流量(字节)

    OutBytes outgoing bytes) 出流量(字节)

    LVS上删除一个Service 

      [命令]

        ipvsadm -D -t <VIP>:<PORT>

      [实例]:

        删除VIP1.1.1.1Service

        ipvsadm -D -t 1.1.1.1:80

    LVS上删除一个Real Server 

      [命令]

         ipvsadm -d -t <VIP>:<PORT> -r <RIP>:<PORT>

      [实例]:

          删除VIP1.1.1.1对应的Real Server 192.168.1.1

        ipvsadm -d -t 1.1.1.2:80 -r 192.168.1.1:80  

    LVS上清空所有的Service以及所有的Real Server 

       [命令]

         ipvsadm -C 

  • 相关阅读:
    [ELK] Elasticsearch 安装/配置、启动/停止、加节点/重启
    [ELK] Elastic Stack 的安全性预览
    [Gin] gin.H{} 与 map[string]interface{}
    [Go] 浅谈 Golang struct 与 PHP class 的相似
    [FAQ] Git 修改最后一次的提交人和提交时间 ?
    [Blockchain] 开发完真实的 DApp 后才能得出的结论与看法
    Android 5.0 Phone初始化分析
    推荐一个Android开发懒人库 -- ButterKnife
    ffmpeg 移植到 android 并使用
    为app录制展示gif
  • 原文地址:https://www.cnblogs.com/wwchihiro/p/9135577.html
Copyright © 2011-2022 走看看