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 

原文地址:https://www.cnblogs.com/wwchihiro/p/9135577.html