第06章lvs负载均衡群集原理_第1页
第06章lvs负载均衡群集原理_第2页
第06章lvs负载均衡群集原理_第3页
第06章lvs负载均衡群集原理_第4页
第06章lvs负载均衡群集原理_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、介绍LVS 是 Linux Virtual Server 的简写,即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。该项目由章件项目之一。博士成立,是中国国内最早出现的软使用 LVS 技术要达到的目标是:通过LVS 提供的负载均衡技术和 Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。负载均衡技术有很多实现方案,如基于 DNS轮流的方法、基于客户端调度的方法、基于应用层系统负载的调度方法,还有基于 IP 地址的调度方法,在这些负载调度算法中,执行效率最高的就是 IP 负载均衡技术。LVS 的 IP 负载均

2、衡技术是通过 ipvs 内核模块来实现的,ipvs 是 LVS 集群系统的,它的主要作用是:安装在 Director Server 上,同时在Director Server 上虚拟出一个 IP 地址,用户必须通过这个虚拟的 IP 地址集群服务。这个虚拟 IP 一般称为 LVS 的 VIP,即 Virtual IP。的请求首先经过 VIP 到达负载调度器,然后由负载调度器从 Real Server 列表中选取一个服务节点响应用户的请求。当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的 Real Server 节点,而 Real Server 节点如何返回数据给用户,是 ipvs 实

3、现的重点技术,ipvs 实现负载均衡机制有四种,分别是 NAT、TUN 和 DR 以及后来经淘宝开发的 FullNat。下面将详细介绍这四种机制的工作模型。二、工作原理这里所谈的工作原理主要是介绍 ipvs 的工作机制,以及用户管理。LVS 分为两个部件:ipvs 和 ipvsadmipvs : 工作于内核空间,主要用于使用户定义的策略生效;ipvsadm : 工作于用户空间,主要用于用户定义和管理集群服务的工具;上图所示,ipvs 工作于内核空间的 INPUT 链上,当收到用户请求某集群服务时,经过 PREROUTING 链,经检查本机路由表,送往 INPUT 链;在进入 netfilter

4、 的 INPUT 链时,ipvs 强行将请求报文通过 ipvsadm 定义的集群服务策略的路径改为 FORWORD 链,将报文转发至后端真实提供服务的主机。而说 LVS 是一个 4 层负载均衡,那它是如何做到的呢,下面就来介绍一下 ipvs 的集群管理和调度算法;三、集群管理与调度算法对 LVS 的管理与 netfilter 极为相似,所以这里也是很好理解的;1、ipvsadm 语法详解:1 ipvsadm -A|E-t|u|fservice-address-sscheduler -ptime2 out -Mnetmask-t|u|fipvsadmipvsadmipvsadmipvsadmip

5、vsadm-D-C-R-Sservice-address-n-a|e-t|u|fservice-address-rRS-address-g|i|m8 -wweight-xupper-ylower9 ipvsadm1 ipvsadmipvsadm注释:112-d-t|u|fservice-address-rRS-address-L|loptions-Z-t|u|fservice-address-A-E-D-a-e-t-u-f添加一个新的集群服务; 修改一个己有的集群服务;删除指定的集群服务;向指定的集群服务中添加 RS 及属性;修改 RS 属性;指定为 tcp 协议;指定为 udp 协议;指定标

6、记码,通常用于将两个或以上的服务绑定为一个服务进行处理时使用;-s-w-p-g-i-m-S调度方法,默认为 wlc;指定权重,默认为 1;timeoutpersistentconnection,持久连接超时时长;Gateway,DR 模型;ipip,TUN 模型;8masquerade,NAT 模型;保存 ipvsadm 设定的规则策略,默认保存在/etc/sysconfig/ipvsadm 中;-R载入己保存的规则策略,默认加载/etc/sysconfig/ipvsadm;-C-Z-L状态信息;清除所有集群服务;清除所有记数器;显示当前己有集群服务,能通过相应的 options 查看不同-n

7、:-c:-s数字格式显示 IP 地址;显示连接数相关信息; s: 显示统计数据;42526272829303-rate:速率;-exact:显示统计数据的精确值;1323334Director 在接收到来自客户机的请求时,会基于 schedule(调度算法)从 RealServer 中选择一个响应客户机的请求,下面将介绍 10 种调度算法;2、常用调度算法1)RR轮询Round Robin :新的连接请求被轮流分配至各 RealServer,优当前所有连接的状态,效率高;但缺点是在 RealServer 当点是该算法无需中如果有性能不均等的情况下,性能差的主机将负载比较大。该算法容易倒致服务器

8、之间负载不均衡;2)WRR轮询Weighted RR :优点与 RR 一样,无需设定一定的权重值来分配连接请求;所有连接状态;通过3)SH源地址哈希Source Hashing :通过一个散列函数将去往同一个目的 IP 的请求到一台服务器或链。4)DH目标地址哈希Destination Hashing : 通过一个散列函数将来自同一个源 IP的请求到一台服务器或链5)LC最少连接数Least Connection :根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=active*256+inactive,值小的优先分配请求;6)WLC最少连接数Weig

9、hted LC :与 LC 类似,根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=(active*256+inactive)/weight,值小的优先分配请求;7)SED最短期望延迟Shortest Expect Delay :这个算法主要是优化 LC 的,在服务均在请求少的时候避免负载到一台服务器上做的优化;负载率=(active+1)*256/weight,值小的优先分配请求;8)NQ永不排队Nerver Queue :在负载低时,请求直接分配到空闲服务器上,不会产生请求等待;当服务器都很忙时,将轮询;9)LBLC基于本地最少连接Locality

10、-Based Least Connection :根据请求的目标 IP 地址找出该目标 IP 地址最近使用的 RealServer,若该 Real Server 是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少发送到该服务器。”的原则选出一个可用的服务器,将请求10)LBLCR带的基于本地最少连接Replicated and Locality-Based Least Connection :该算法根据请求的目标 IP 地址找出该目标IP 地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发

11、送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。四、工作模型前面己介绍了 LVS,的 IP(VIP),用户知道 ipvs 安装在 DR 上面,在DR 上虚拟一个对VIP,到达 DR,然后 DR 根据调度算法选择一个 RS,外处理完成后返回给客户端数据。但 RS 如何返回给客户端数据呢?ipvs 有以下几种工作模式:1、LVS-NAT此模型中,DR 只需要将 VIP 配置到 DR 上,它的工作机制是,将收到的集群服务请求报文目标地址转换成经调度算法计算得出的后端主机 IP 地址,然后端主机将响应报文发送至 DR,再由

12、DR 将源地址转换成 VIP 的地址;此机制与iptables 中学习的 DNAT 类似;NAT 的特性:1234RS 应该使用私有地址;RS 的网关的必须指向 DIP; RIP 和 DIP 必须在同一网段内;请求和响应的报文都得经过 Director;在高负载场景中,Director 很可能成为系统性能瓶颈;5 支持端口;6 RS 可以使用任意支持集群服务的 OS;2、LVS-DR此处列举出 DR 模型中两种常见的网络模型:关注数据帧格式的变化;1)cnt 向目标 vip 发出请求,Director 接收.此时 IP 包头及数据帧头信息如(1),(2);2)LVS 根据负载均衡算法选择一台

13、active 的 RS,将此 RIP 所在网卡的mac 地址作为目标 mac 地址,发送到局域网里.此时 IP 包头及数据帧头信息如(3);3)RS 在局域网中收到这个帧,拆开后发现目标 IP(VIP)与本地匹配,于是处理这个报文.随后重新封装报文,发送到局域网.此时 IP 包头及数据帧头信息如(4);说明:在现实的环境中,的网络前端都有路由器,无论你的路由是运商提供还是局域网内部;此网络模型下 CIP,DIP,RIP,VIP 均为公网 IP 地址。说明:同样,前端还是会有路由器,当没有足够多的公网 IP 时,可以采用此网络模型;该模型下 DIP,RIP 均为私有 IP,而 VIP 为公网 I

14、P;此时需将其网关地址指向另一下路由器内网 IP,这样才能保证数据正常传送出去。当分析上面两个网络模型的数据报时会发现一些问题:1)由于 vip 需要在每台主机中配置,如何保证 ARP 请求报文不会被交换机或其它网络设备知道?2)如何保证 ARP 通告报文不被交换机或其它网络设备知道?3)由于 RS 只有一个网络接口,而 linux 内核默认情况下包封装时是从哪个网口出去那个网口就是源地址,如何确保 RS 转发出来的报文源 IP是 VIP,而不是 RIP?4)因为 DR 与 RS 都配置有相同的 VIP,如何避免各主机 VIP 广播,造成无法通信?解决办法:1)Linux 内核有两个关于 AR

15、P 对待请回报文与通告报文的参数(arp_announce/arp_ignore),可以设定相应的级别来规避上述问题中的 1、2两点;2)对于问题 3,可以在数据报封装后指定路由经 lo 别名上的接口发送出去然后再通过 eth0 网卡转发出去;3)对于问题 4只需要设定 vip 的广播地址为它自己即可;下面继续来介绍 linux 内核参数 arp_announce 与 arp_ignore:arp_annouce:1Define differentrestriction levelsforannouncingthelocal sent2sourceIPaddressfromIPpacketsi

16、nARPrequestso3nerface;0-(default)4Useanylocaladdress,configuredonanyi5nterface.61-Trytoavoid forlocaladdresses erface.tarenothet7argetbnet Alwaysthis892-usethebestlocaladdressforthis.1arp_ignore: Definedifferentmodesfor tsending resolverep localsinre I0sponse to receivedARPrequests1P address.10-(def

17、ault):replyforanylocalIP address,co1nfigured on anyerface. ifthe21-replyonlyIPaddressislocaladdress configured2-reply s configuredontheingerface.onlyiftheIPaddressis localaddres the s erontheingerface fromsameandbothwith thisenders face.3-host,repd.IP addressarepartsubnetondonotreplyforlocal faddres

18、sconfiguredwithscope areonlyresolutionsolbalandlinkaddresses4-7-8-donotreplyforalllocaladdresses3、LVS-TUN在数据包必须传递到另一个网络或因特网上时,可以使用 ip 隧道,ip隧道能够将数据包从一个子网或虚拟局域网(VLAN)转发到另一个子网或虚拟局域网(VLAN),建立 ip 隧道是 Linux 内核功能的一部分,LVS-TUN 转发方法允许你将集群节点放在与 Director 不同的网络上。请留意 DR 将数据包转发给RS 时的IP 数据报文;由于 DR,RS 都不在同一局域网内,而 DR

19、 要将cnt 请求报文转发给 RS 时,DR 是直接在数据包中直接添加 IP 首部(源 IP:DR 和目标 IP:RS),这样就是隧道技术了。同样,该模型下 RS 都将配置 VIP 地址,且不能被外界所获知 VIP 存在于RS 上;4、LVS-FullNatLVS 当前应用主要采用 DR 和 NAT 模式,但这 2 种模式要求RS 和DR 在同一个 vlan 中,导致部署成本过高;TUN 模式虽然可以跨 vlan,但 RS 上需要部署ipip 模块等,网络拓扑上需要连通,较复杂,不易运维。为了解决上述问题,在 DR 上添加了一种新的转发模式:FullNat,该模式和 NAT 模式的区别是:PacketIN 时,除了做 DNAT,还做 SNAT(用户 ip-内网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论