加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

高性能 集群Linux Virtual ServerCL

发布时间:2022-12-16 12:53:53 所属栏目:Linux 来源:
导读:  内容概要:

  1,集群概念

  2,LVS介绍

  3,LVS实现

  4,LVS高可用性

  Cluster概念:

  1,系统扩展方式:

  Scale UP : 向上扩展,增强.

  Scale Out : 向外扩展,增
  内容概要:
 
  1,集群概念
 
  2,LVS介绍
 
  3,LVS实现
 
  4,LVS高可用性
 
  Cluster概念:
 
  1,系统扩展方式:
 
  Scale UP : 向上扩展,增强.
 
  Scale Out : 向外扩展,增加设备,调度分配问题,Cluster.
 
  2,Cluster:
 
  集群,为解决某个特定问题将多台计算机组合起来形成单个系统.
 
  3,Linux Cluster 类型:
 
  LB : Load Balancing , 负载均衡
 
  HA : High Availiablity ,高可用 , SPOF(single point of failure)
 
  MTBF : Mean Time Between Failure 平均无故障时间
 
  MTTR : Mean Time To Restoration ( repair ) 平均恢复前时间
 
  A = MTBF / (MTBF + MTTR )
 
  HPC : High-performance computing , 高性能 ,排名可参考()
 
  4,分布式系统:
 
  分布式储存 : 云盘
 
  分布式计算 : hadoop , Spark
 
  Cluster分类:
 
  LB Cluster 的实现;
 
  硬件:
 
  F5 Big-IP
 
  Citrix Netscaler
 
  A10 A10
 
  软件:
 
  lvs: Linux Virtual Server
 
  nginx : 支持四层调度
 
  haproxy : 支持四层调度
 
  ats : apache traffic server , 由yahoo!捐助
 
  perlbal : Perl 编写
 
  pound
 
  Cluster分类:
 
  基于工作的协议层次划分 :
 
  传输层(通用):DPORT
 
  LVS:
 
  nginx : stream
 
  haproxy : mode tcp
 
  应用层(专用): 针对特定协议,自定义的请求模型分类
 
  proxy server :
 
  http : nginx , httpd , haproxu(mode http) , ...
 
  fastcgi : nginx , httpd , ...
 
  mysql : mysql-proxy , ...
 
  Cluster相关:
 
  会话保持 : 负载均衡
 
  (1) session sticky : 同一用户调度固定服务器
 
  Source IP : LVS sh算法(对某一特定服务而言)
 
  Cookie
 
  (2)session replication : 每台服务器拥有全部session
 
  session multicast cluster
 
  (3) session server : 专门的session服务器
 
  Memcached , Redis
 
  HA集群实现方案:
 
  keepalived : vrrp 协议
 
  ais : 应用接口规范
 
  heartbeat
 
  cman + rgmanager(RHCS)
 
  coresync_pacemaker
 
  LVS介绍:
 
  LVS: Linux Virtual Server , 负载调度器 , 集成内核
 
  VS : Virtual Server , 负责调度
 
  RS : Real Server , 负责真正提供服务
 
  L4 : 四层路由器或交换机
 
  工作原理: VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS.
 
  iptables/netfilter :
 
  iptables : 用户空间的管理工具
 
  netfilter : 内核空间上的框架
 
  流入: PREROUTING --> INPUT
 
  流出: OUTPUT --> POSTROUTING
 
  转发: PREROUTING --> FORWARD --> POSTROUTING
 
  DNAT: 目标地址转换
 
  LVS集群体系结构:
 
  我自己按照理解画的草图,网上有很多详细的(这是一个VS/NAT模式的)
 
  集群linux_集群linux_linux集群高可用
 
  LVS概念:
 
  lvs集群类型中的术语:
 
  VS : Virtual Server , Director Server(DS)
 
  Dispatcher(调度器) , Load Balancer
 
  RS : Real Server(lvs) , upstream server(nginx)
 
  backend server(haproxy)
 
  CIP : Client IP
 
  VIB : Virtual Server IP
 
  RIP : Real Server IP
 
  访问流程 : CIP VIP == DIP RIP
 
  Lvs集群的类型:
 
  lvs : ipvsadm/ipvs
 
  ipvsadm : 用户空间的命令行工具 , 规则管理器
 
  ipvs : 工作与内核空间的netfilter的INPUT钩子上的框架
 
  lvs集群的类型:
 
  lvs-nat : 修改请求报文的目标IP , 多目标IP的DNAT
 
  lvs-dr : 操纵封装新的MAC地址
 
  lvs-tun : 在原请求IP报文之外新加一个IP首部
 
  lvs-fullnat : 修改请求报文的源IP和目标IP
 
  Lvs-nat模式:
 
  lvs-nat : 本质是多目标IP的DNAT , 通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发.
 
  (1) RIP和DIP必须在同一个IP网络 , 且应该使用私网地址 ; RS的网关要指向DIP
 
  (2) 请求报文和相应报文都必须经由Director转发 , Director易于成为系统瓶颈
 
  (3) 支持端口映射 , 可修改请求报文的目标PORT
 
  (4) VS必须是Linux系统 , RS可以是任意OS系统
 
  NAT模式IP包调度过程:
 
  linux集群高可用_集群linux_集群linux
 
  LVS-DR模式:
 
  LVS-DR : Direct Routing , 直接路由 , LVS默认模式 ,应用最广泛集群linux, 通过为请求报文重新封装一个MAC首部进行转发 , 源MAC是DIP所在的接口的MAC , 目标MAC是某挑选出的RS的RIP所在接口的MAC地址 ; 源IP/PORT , 以及目标IP/PORT均保持不变
 
  Director和各RS都配置有VIP
 
  (1) 确保前端路由器将目标IP为VIP的请求报文发往Director :
 
  在前端网关做静态绑定VIP和Director的MAC地址
 
  在RS上使用arptables工具
 
  arptables -A IN -d $VIP -j DROP
 
  arptables -A OUT -s $VIP -j mangle --mangle -ip-s $RIP
 
  在RS上修改内核参数以限制arp通告及应答级别
 
  arp_announce
 
  arp_ignore
 
  (2) RS的RIP可以使用私网地址 , 也可以是公网地址 ; RIP与DIP在同一IP网络 ; RIP的网关不能指向DIP , 以确保响应报文不会经由Director.
 
  (3) 请求报文要经由Director , 但响应报文不经由Director , 由RS直接发往Client
 
  (5) 不支持端口映射(端口不能修改)
 
  (6) RS可以使用大多数OS系统
 
  体系结构:
 
  集群linux_linux集群高可用_集群linux
 
  DR模式IP包调度过程:
 
  集群linux_集群linux_linux集群高可用
 
  lvs-tun模式:
 
  lvs-tun:
 
  转发方式 : 不修改请求报文的IP首部(源IP为CIP , 目标IP为VIP) , 而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP) , 将报文发往挑选出的目标RS ; RS直接响应给客户端(源IP是VIP , 目标IP是CIP)
 
  (1) DIP , VIP , RIP 都应该是公网地址
 
  (2) RS的网关不能 , 也不可能指向DIP
 
  (3) 请求报文要经由Director , 但响应不能经由Director
 
  (4) 不支持端口映射
 
  (5) RS的OS必须支持隧道功能
 
  vs/tun体系结构:
 
  集群linux_linux集群高可用_集群linux
 
  TUN模式IP包调度过程:
 
  linux集群高可用_集群linux_集群linux
 
  Lvs-fullnat模式:
 
  lvs-fullnat : 通过同时修改请求报文的源IP地址和目标IP地址进行转发 ; CIP --> DIP , VIP --> RIP
 
  (1) VIP是公网地址 , 但RIP和DIO是私网地址 , 且通常不在同一IP网络 ; 因此 , RIP的网关一般不会指向DIP
 
  (2) RS收到的请求报文源地址是DIP , 因此 ,只需响应给DIP ; 但Director还要将其发往Client
 
  (3) 请求和相应报文都经由Director
 
  (4) 支持端口映射;
 
  注意 : 此类型kernel默认不支持
 
  总结:
 
  集群linux_集群linux_linux集群高可用
 
  lvs-nat与lvs-fullnat : 请求和响应报文都经由Director
 
  lvs-nat : RIP的网关要指向DIP
 
  lvs-fullnat : RIP和DIP未必在同一IP网络 , 弹药可以通信
 
  lvs-dr 与 lvs-tun : 请求报文要经由Director , 但响应报文由RS直接发往Client
 
  lvs-dr : 通过封装新的MAC首部实现 , 通过MAC网络转发
 
  lvs-tun : 通过在原IP报文外封装新IP头实现转发 , 支持远距离通信
 

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!