fish3129 发表于 2019-1-3 08:37:17

集群:(一)LVS

集群(Cluster): 将多个计算机组合起来一起完成某个特定任务

   LB, load Balancing负载均衡集群   
                         LVS 实现多台主机以特定方式组合起来 分摊大容量的并发请求压力
   HA, Hig Avaliability高可用性
                           时时在线7*24小时在线 服务不中断关键性的业务要求达到5个9 (99.999%)
                           高可用集群要求至少要有两台主机同时在线 ,在某一个时刻只有一台主机在工作,一旦这条主机宕机了 另外的主机马上顶替上来提供同样的服务运行 要保证时时在线可用性
   HP, High Performance 高性能集群 也叫科学计算集群
                                     解决需要用到大量复杂数据      如:天气监控
                                    人口的统计 科学勘探 绘制DNA基因图谱
   
计算机扩展方式
      scal on:向上扩展 用更好的计算机代替原有的性能叫差的计算机
           也能实现高可用性,设计冗余结果,但成本过高
      scal out:向外扩展 组合方式足够先进全球前500强超级计算机其中有90%的计算机大多数是使用 接近于         废弃的PC机组合成的集群照样能排名全球前500强超级计算机   只要组合方式足够先进               
      
1.负载均衡
   主要目的是分摊负载
   要想具有负载均衡的能力 需要一个前端的负载器   //负载均衡调度器
   能够实现将来源于客户端的请求负载到其他节点上去
   F5 : 硬件 实现负载均衡转发
   LVS: (Linux虚拟服务器) 负责分配// 章文嵩开发的一个基于Linux的开源软件
   工作机制: 前端部署一个调度器 监控客户端发来的请求 当用户发来请求的时候 LVS 查找后台真正提供服务的服务器 而基于特定算法进行转发
   基于至少10种算法进行转换分别用于计算不用应用的轮转 请求调度   优化后基本达到硬件速度
   前端调度器 接收请求 转发到后台服务器节点
   缺点:单点故障一个地方出错导致整个集群系统失效
   优点:
      1.也能可提供高可用性 不考虑单点故障 考虑后端提供的真正服务器 一但后台一台服务器出现了故障请求的数据就会自动转向于另外的服务器一个服务器宕机了 只要把请求转发到另外的服务器就0K 了
      2.负载均衡
      3.便于扩展
   
2.高可用性集群
   提供至少两台主机 时时在线的能力 保证时时在线
   Source 资源在个个节点之间流动(float)转移
   保证服务器时时在线但特定时间内只有一个节点在运行
   后台节点之间 探测
   
   解决共享方案:
   NFS共享存储 效率低文件级
          文件同步
          rsync 检测双方节点上是否发生改变 检查文件是否同步
          rsync Server 服务器监控 是否发生改变
   DRBD在内核中基于块实现
   SAN   专业级别的共享存储:输出的是块级别的共享
   
   如何实现双方不抢用共享存储
   A .B 节点通过心跳探测 主动向别的节点通告
   
   3.高性能集群: 云计算(分布式文件系统)
   也需要前端的转发节点 前端主机可以实现把一个复杂的运算任务 解剖成N个小任务然后每一个节点分别计算每一个小任务 每一个节点把小任务完成以后 在把计算的结果返回给转发节点转发节点在整合所有的结果
   框架bowerfullHadoop(java实现)
   
    各种开源集群常见的解决方案:
    LB:
       lvs
       haproxy   
    HA:
       heartbeat
       corosync+openais: RHCS 红帽集群套件    // 可靠性 可部署性优于heartbeat
       ultramokey
       keepalive
      
    HP: boweerful
   
    Linux解决问题的思路:
      
      集合一个个小软件 组合起来实现强大的功能 个个组件套件存在   
   
-------------------------------------------------------------------------------------
   LVS : 开源软件
       lvs 接受用户发来的请求 本身并不响应请求 把接受到的请求转发到后台真正的服务器
       LVS只需要装在调度节点上
       direcor 调度器 叫做四层交换机 默认情况下 判断用户请求端口是那种服务于是
       把用户请求的信息转发到后台真正提供服务的节点上去转发机制在四层实现 客户端上几乎是透明的
      
       真正提供服务的节点叫做 realservers
         
      
   术语:LVS (linux virtual server) 常见缩写地址:
   
      VIP: Vitual IP address并不提供真正的服务 把请求转发到后台上
      RIP: real IP address    真正提供服务的地址
      DIP: Director's IP      调度器 转发请求
      CIP: Client computer's IP   客户端地址
      
   LVS工作模式:
       特点: 高吞吐性 高并发 , 冗余 ,适应性(扩展服务器,缩减服务器)
       1.NAT      LVS-NAT
         集群节点必须在同一个网络中DIP 和 RIP 不能跨越网络
         RIP 通常是私有地址
         调度器要处理所有进出的请求 压力较大
         可以做端口转发
      
       2.直接路由   LVS-DR   出去的请求直接发送至客户端
         进来的请求经过Director出去的请求不经过Drector
          LVS-DR 基本 properties
          必须在同一个物理网络
          RIP 可以使用公网地址
          仅处理请求 不处理响应
          集群节点的网关不能指向DIP
          不支持端口转换
          绝大多数操作系统都支持RealServer
         
          基于二层转发实现响应速度比NAT 速度快N倍以上应用于小型网络            
      
       3.隧道 LVS-TUN
         经过修改过的DR 模型可以跨越网段转发
         
         1.不需要在同一个网段
         2.RIP 必须要使用公网地址
         3.调度器只需要处理进来的请求
         4.
         5.不能做端口映射
         6.只能使用支持IP隧道的 REAL server
         
       LVS Scheduling Methods
      静态调度
          RR : 轮调
          WRR:加权轮调按比例轮调   
          DH 目标地址散列 目标地址的请求做固定地址转发
                        将同一个目标的请求转发到一个目标上
          SH 源地址散列:实现来自于同一个用户的请求 转发到同一个 路由器或者 防火墙上
                        实现平均内网负载 特定防火墙
                        
      静态算法不考虑当前状态的情况
      
      活动状态一直处于 ; ESTABLISHED 状态
      
      优先级 : 活动连接*256+分活动连接
      
      LC :least-connection 最少连接算法
             连接数最少的会接受下一个连接请求 谁最小 谁胜出 接受下一次请求
             同时考虑连接和非连接
             缺陷不能区分服务器响应能力
            
      WLC: 加权最少连接数      // 最好的算法         
            
      SED: shortest expected delay最短期望延迟对WLC 的简单改进
      
      NQ :不用排队 不用考虑非活动连接状态
      
      LBLC: 基于本地算法    基于DH算法动态算法 考虑后台连接数
      
      LBLCR: 基于本地的最少连接数对整个负载均衡上的真正负载均衡



页: [1]
查看完整版本: 集群:(一)LVS