超酷小 发表于 2019-1-5 12:50:47

集群入门简析及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    :源地址hashsource 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 ]
                   -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 每秒连接数
                  --timeouttcp,udp,tcpfin的超时时间显示
                  -c 显示链接状态(有多少客户端链接进来了)         
      4,删除所有集群服务
                  -C: 清除ipvs规则
                  -Z: 清空数据
      5,保存规则servicr ipvsadm save
                  -S   例子;#ipvsadm -S >/path/to/somefile
      6,载入此前的规则
                     -R    例子:#ipvsadm -r
页: [1]
查看完整版本: 集群入门简析及LB下LVS详解