集群入门简析及LB下LVS详解

                        集群入门简析  

 【Cluster : 集群】

        通过调度器 组合了多台主机,完成同一个任务的组合。

         (集群的节点至少要有三个(奇数个))

 

【三种类型的集群】

        LB:load Balancing 负载均衡集群

             目的:提高处理能力(一次能处理多少进程)

               

        HA: high availability 高可用集群

             目的: 增加服务可用性的(在线时长)

             (可用性:在线time/(在线time+故障处理time))

      

         HP: high perfomance  高性能集群(超级计算机)

             目的:  处理复杂问题, 海量数据和大任务

                  并行处理集群

                      分布式文件系统

                      将大任务分隔为小任务,分别进行处理的机制

  

【数据存储方式】

             DAS Direct Attached Storage    直接附加存储

             NAS network Attached Storage)   网络附加存储 

    ##########################   LB  集群  ################################

   概念:

        在多个提供了相同能力的主机前端提供一个分发器接受用户请求,根据某种方式或策

        略将用户请求分发到后端多台主机的集群类型,为了提供完善的工作能力,还为后端

        主机做健康检查机制, 将客户请求转发到后端主机的标准是负载均衡器上的调度算法

   常见的负载均衡器设备

         【硬件负载均衡设备】Hardware

                 F5:  BIG   IP

                 Citrix: Netscaler

                 A10

          【软件负载均衡设备】Software

                  四层: 

                       LVS       工作性能好,    

                  七层:(反向代理)操作性能好,工作性能略低

                          Nginx

                                主要场景:  http, smtp, pop3 imap 

                          Haproxy

                                 主要场景: http, tcp (mysql,smtp)

#############################  LVS  ##################################

【LVS 相关的介绍】

LVS 是个负载均衡设备,它不提供任何服务,用户请求的时候只是将其转发到后端真正提  

了该服务的服务器(这里称之为realserver)

*iptables/netfilter 不能和LVS 同时使用*

     LVS:

              Ipvsadm : 管理集群服务的命令行工具   工作在“用户空间” 

               Ipvs : 内核模块 (工作在内核)

        微观工作剖析:

              在用户空间使用ipvsadm写下规则,直接送给工作在内核的ipvs,ipvs工作在     

              INPUT链上, LVA监听在这个链上,一旦发现是集群请求,强行送到 

              FORWORD上

    

 集群涉及到的IP   

      VIP : Directory用来向客户端提供服务的IP

      RIP :  realserver 的IP

      DIP :  面向其他realserver提供服务的接口的IP

      CIP :客户端的IP

 

-  【LVS  的三种类型】

           LVS-NAT 地址转换    LVS-DR 直接路由        LVS-TUN  隧道

                 

########################  详解LVS的三种类型  ###########################

NAT

工作机制:

     C端请求,交由director,根据请求发送到RS,之后数据又从director返回给C端

   

      核心点:

          1,集群节点和director在同以个IP网络中

          2,RIP是私有地址,只能和DIP通信

      3,director位于S端和C端之间,并负责处理进出的所有数据

      4,RIP必须将网关指向DIP

      5,directory支持端口映射 

      6,realserver任何类型的操作系统

      7,较大规模应用场景中director易成为系统瓶颈

 

DR

 工作机制:

      C端请求,交由director,其通过调度算法得出要交给RS,RS直接将数据响应给C端

   核心点:

      1,各集群节点director必须在同一个物理网络中

  2,RIP地址可以不是私有地址,(使用公有地址,可实现便携远程管理和监控)

      3,director 值提供入站请求,响应报文 则由realserver直接发往客户端

      4,realserver不能将网关指向DIP

      5,director 不支持端口映射

      6,大多数操作系统可以用在realserver (因为要求必须做到能隐藏vip)

      7,DR模型的Director能够处理比NAT模型多的多的请求

 

TUN

  工作机制:

  TUN模型和DR模型相类似,但是TUN中DIP和RIP可以不在同一网络中, DIP-->VIP  基于隧道来传输,在数据包外层额外封装了S:DIP D :RIP 的地址

   核心点: 

  1,各集群节点可以跨越internet

  2,RIP必须是公网地址

  3,directoer 只处理进站请求,响应报文 则由realserver直接发往客户端

  4,响应报文一定不能通过director

  5,只有支持隧道协议的OS才能用于realserver

  6,不支持端口映射

 

####################   LVS调度方法:  ##########################

  静态(固定)调度

        rr     :轮询

        wrr   :加权轮询(weight)--

        sh    :源地址hash  source hsash (用于会话绑定session affinity)

        --

        dh  :目标地址hash (将同一个IP地址的请求发给同一个server)

               调度的时候不考虑后台服务器是空闲的还是繁忙的

            (不考虑后台服务器已经建立的活动链接和非活动链接)     

    链接已经建立数据正在传输:活动链接active)

                  数据输出完毕,链接还没断开:非活动链接inactive)   

动态调度

      lc  :least-connection 最少链接  

           (考虑链接数目的多少,不考虑性能)

               算法:active*256+inactive (谁小选谁)

      wlc: 加权最少链接 (默认方法)                  

              算法: (active*256+inactive)/weight  

     sed:   最少期望延迟

             算法:(active+1)*256)/weight           

     nq:   永不排队              

     LBLC: 基于本地的最少链接

     LBLCR: 基于本地的带复制功能的最少链接

######################  ipvsadm 命令的使用 ################################

ipvsadm

       1,管理集群服务

            添加 -A -t|u|f service-address [-s scheduler调度方法默认wlc] [-p [timeout]]

                   -t TCP协议的集群

                   -u UDP协议的集群

                   service-address: IP:PORT

                   -f firewallmark 防火墙标记(FWM)

                   service-address: Mark Number

           修改 -E

           删除 -D 

                   -D -t|u|f service-address

  

       2,管理集群服务中的RS

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

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

                 r server-add  某RS的地址 在NAT模型中,可使用IP:PORT端口映射

                                            

                  [-g|i|m]  LVS模型

                       -g : DR

                       -i ;TUN

                       -m : NAT  (默认DR)

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

              修改 -e

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

               例子:#ipvsadm -a -t 172.16.21.1:80 -r 192.168.12.2 -m

              

         3, 查看

               -L|l|--list

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

                    --stats  显示统计信息

                    --rate    用来显示速率  CPS 每秒连接数  

                    --timeout  tcp,udp,tcpfin的超时时间显示

                    -c 显示链接状态(有多少客户端链接进来了)           

        4,删除所有集群服务

                  -C: 清除ipvs规则

                  -Z: 清空数据  

        5,保存规则  servicr ipvsadm save

                    -S   例子;#ipvsadm -S >/path/to/somefile

        6,载入此前的规则

                     -R    例子:#ipvsadm -r </path/to/somefile

你可能感兴趣的:(LB下LVS详解,集群入门简析)