高性能集群Linux Virtual ServerCL
1,集群概念
2,LVS介绍
3,LVS实现
4,LVS高可用性
Cluster概念:
1,系统扩展方式:
Scale UP : 向上扩展,增强.
Scale Out : 向外扩展,增加设备,调度分配问题,Cluster.
2,Cluster:
集
内容概要: 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模式的) 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包调度过程: 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系统 体系结构: DR模式IP包调度过程: 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体系结构: TUN模式IP包调度过程: 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默认不支持 总结: 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头实现转发 , 支持远距离通信 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |