LVS负载均衡(2020)

上传人:小** 文档编号:77223552 上传时间:2022-04-19 格式:DOC 页数:14 大小:106KB
收藏 版权申诉 举报 下载
LVS负载均衡(2020)_第1页
第1页 / 共14页
LVS负载均衡(2020)_第2页
第2页 / 共14页
LVS负载均衡(2020)_第3页
第3页 / 共14页
资源描述:

《LVS负载均衡(2020)》由会员分享,可在线阅读,更多相关《LVS负载均衡(2020)(14页珍藏版)》请在装配图网上搜索。

1、LVS实现负载均衡原理【实操追-女视频】Q:101.6.x.9526】使用LVS实现负载均衡原理及安装配置详解负载均衡集群是loadbalance集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习LVS并对其进行了详细的总结记录。一、负载均衡LVS基本介绍LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到DirectorServer上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(realserver)上。为了避免不同机器上用户请求得到的数据不一

2、样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。二、LVS的基本工作原理三、LVS的组成LVS由2部分程序组成,包括ipvs和ipvsadm。1. ipvs(ipvirtualserver):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。2.ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(RealServer)四、LVS相关术语Server。后端真实的工作服务器。3.VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。4.DIP:DirectorServerIP,主要用于

3、和内部主机通讯的IP地址。5.RIP:RealServerIP,后端服务器的IP地址。6.CIP:ClientIP,访问客户端的IP地址。下边是三种工作模式的原理和特点总结。五、LVS-NAT原理和特点1. 重点理解NAT方式的实现原理和数据包的改变。(a).当用户请求到达DirectorServer,此时请求的数据报文会先到内核空间的PREROUTIN链。此时报文的源IP为CIP,目标IP为VIP(b).PREROUTIN检查发现数据包的目标IP是本机,将数据包送至INPUT链(c).IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至

4、POSTROUTIN链。此时报文的源IP为CIP,目标IP为RIP(d).POSTROUTIN链通过选路,将数据包发送给RealServer(e).RealServer比对发现目标为自己的IP,幵始构建响应报文发回给DirectorServer。此时报文的源IP为RIP,目标IP为CIP(f).DirectorServer在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。此时报文的源IP为VIP,目标IP为CIP2. LVS-NAT模型的特性RS应该使用私有地址,RS的网关必须指向DIPDIP和RIP必须在同一个网段内请求和响应报文都需要经过DirectorServe

5、r,高负载场景中,DirectorServer易成为性能瓶颈支持端口映射RS可以使用任意操作系统缺陷:对DirectorServer压力会比较大,请求和响应都需经过directorserver六、LVS-DR原理和特点1. 重将请求报文的目标MAC地址设定为挑选出的RS的MAC地址(a)当用户请求到达DirectorServer,此时请求的数据报文会先到内核空间的PREROUTINGS。此时报文的源IP为CIP,目标IP为VIP(b)PREROUTIN检查发现数据包的目标IP是本机,将数据包送至INPUT链(c)IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为

6、DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTIN链。此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址(d)由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至RealServer。(e)RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。此时的源IP地址为VIP,目标IP为CIP(f)响应报文最终送达至客户端2. LVS-DR

7、模型的特性特点1:保证前端路由将目标地址为VIP报文统统发给DirectorServer,而不是RSRS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问RS跟DirectorServer报文必须不能进过DirectorServer不支持地址转换,也不支持端口映射RS可以是大多数常见的操作系统RS的网关绝不允许指向DIP(因为我们不允许他经过director)RS上的Io接口配置VIP的IP地址缺陷:RS和DS必须在同一机房中3. 特点1的解决方案:在前端路由器做静态地址路由绑定,将对于VIP的地址仅路由到DirectorServer存在问题:用户未必

8、有路由操作权限,因为有可能是运营商提供的,所以这个方法未必实用arptabIes:在arp的层次上实现在ARP解析时做防火墙规则,过滤RS响应ARP请求。这是由iptables提供的修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。七、LVS-Tun原理和特点在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP)(a)当用户请求到达DirectorServer,此时请求的数据报文会先到内核空间的PREROUTIN

9、链。此时报文的源IP为CIP,目标IP为VIP。(b)PREROUTIN检查发现数据包的目标IP是本机,将数据包送至INPUT链(c)IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING。此时源IP为DIP,目标IP为RIP(d)POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)0此时源IP为DIP,目标IP为RIP(e)RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还

10、有一层IP首部,而且目标是自己的Io接口VIP,那么此时RS幵始处理此请求,处理完成之后,通过Io接口送给ethO网卡,然后向外传递。此时的源IP地址为VIP,目标IP为CIP(f)响应报文最终送达至客户端LVS-Tun模型特性RIP、VIP、DIP全是公网地址RS的网关不会也不可能指向DIP所有的请求报文经由DirectorServer,但响应报文必须不能进过DirectorServer不支持端口映射RS的系统必须支持隧道其实企业中最常用的是DR实现方式,而NAT配置上比较简单和方便,后边实践中会总结DR和NAT具体使用配置过程。八、LVS的十种调度算法1. 轮叫调度rr这种算法是最简单的,

11、就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的,调度器会将所有的请求平均分配给每个真实服务器,不管后端RS配置和处理能力,非常均衡地分发下去。2. 加权轮叫wrr这种算法比rr的算法多了一个权重的概念,可以给RS设置权重,权重越高,那么分发的请求数越多,权重的取值范围0-100。主要是对rr算法的一种优化和补充,LVS会考虑每台服务器的性能,并给每台服务器添加要给权值,如果服务器A的权值为1,服务器B的权值为2,则调度到服务器B的请求会是服务器A的2倍。权值越高的服务器,处理的请求越多5. 基于局部性的最少连接调度算法

12、lblc这个算法是请求数据包的目标IP地址的一种调度算法,该算法先根据请求的目标IP地址寻找最近的该目标IP地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器6. 复杂的基于局部性最少的连接算法lblcr记录的不是要给目标IP与一台服务器之间的连接记录,它会维护一个目标IP到一组服务器之间的映射关系,防止单点服务器负载过高。7. 目标地址散列调度算法dh该算法是根据目标IP地址通过散列函数将目标IP与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标IP的请求会固定发给该服务器。8. 源地址散列调度算

13、法sh与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资-源。9. 最短延迟调度SED在WLC基础上改进,Overhead=(ACTIVE+1)*256-加权,不再考虑非活动状态,把当前处于活动状态的数目+1来实现,数目最小的,接受下次请求,+1的目的是为了考虑加权的时候,非活动连接过多缺陷:当权限过大的时候,会倒置空闲服务器一直处于无连接状态。10. 永不排队-最小队列调度NQ九、实践LVS的NAT模式1、实验环境三台服务器,一台作为director,两台作为realserver,director有一个外网网卡(172.16.254.200)和一个内网ip(192

14、.168.0.8),两个realserver上只有内网ip(192.168.0.18)和(192.168.0.28),并且需要把两个realserver的内网网关设置为director的内网ip(192.168.0.8)2、安装和配置两个realserver上都安装nginx服务#yuminstall-ynginxDirector上安装ipvsadm#yuminstall-yipvsadmDirector上编辑nat实现脚本#vim-usr-local-sbin-lvs_nat.sh#编辑写入如下内容:#!-bin-bash#director服务器上开启路由转发功能:echo1-proc-sy

15、s-net-ipv4-ip_forward#关闭icmp的重定向echo0-proc-sys-net-ipv4-conf-all-send_redirectsecho0-proc-sys-net-ipv4-conf-default-send_redirectsecho0-proc-sys-net-ipv4-conf-eth0-send_redirectsecho0-proc-sys-net-ipv4-conf-eth1-send_redirects#director设置nat防火墙iptables-tnat-Fiptables-tnat-Xiptables-tnat-APOSTROUTING-

16、s192.168.0.0-24-jMASQUERADE#director设置ipvsadmIPVSADM=-sbin-ipvsadm$IPVSADM-C$IPVSADM-A-t172.16.254.200:80-swrr$IPVSADM-a-t172.16.254.200:80-r192.168.0.18:80-m-w1$IPVSADM-a-t172.16.254.200:80-r192.168.0.28:80-m-w1保存后,在Director上直接运行这个脚本就可以完成lvs-nat的配置-bin-bash-usr-local-sbin-lvs_nat.sh查看ipvsadm设置的规则ip

17、vsadm-ln3、测试LVS的效果在RS1上执行在RS2上执行注意,切记一定要在两台RS上设置网关的IP为director的内网IP。十、实践LVS的DR模式1、实验环境三台机器:Director节点:?(ethO192.168.0.8?vipeth0:0192.168.0.38)Realserver1:(eth0192.168.0.18viplo:0192.168.0.38)Realserver2(eth0192.168.0.28viplo:0192.168.0.38)两个realserver上都安装nginx服务#yuminstall-ynginxDirector上安装ipvsadm#y

18、uminstall-yipvsadm3、Director上配置脚本#vim-usr-local-sbin-lvs_dr.sh#!-bin-bashecho1-proc-sys-net-ipv4-ip_forwardipv=-sbin-ipvsadmvip=192.168.0.38rs1=192.168.0.18rs2=192.168.0.28ifconfigeth0:0downupifconfigeth0:0$vipbroadcast$vipnetmask255.255.255.255routeadd-host$vipdeveth0:0$ipv-A-t$vip:80-swrr$ipv-a-t$

19、vip:80-r$rs1:80-g-w3$ipv-a-t$vip:80-r$rs2:80-g-w1执行脚本:#bash-usr-local-sbin-lvs_dr.sh4、在2台rs上配置脚本:#vim-usr-local-sbin-lvs_dr_rs.sh#!-bin-bashvip=192.168.0.38ifconfiglo:0$vipbroadcast$vipnetmask255.255.255.255uprouteadd-host$viplo:0echo1-proc-sys-net-ipv4-conf-lo-arp_ignoreecho2-proc-sys-net-ipv4-conf

20、-lo-arp_announceecho1-proc-sys-net-ipv4-conf-all-arp_ignoreecho2-proc-sys-net-ipv4-conf-all-arp_announcers上分别执行脚本:bash-usr-local-sbin-lvs_dr_rs.sh5、实验测试注意:在DR模式下,2台rs节点的gateway不需要设置成dir节点的IP。十一、LVS结合keepaliveLVS可以实现负载均衡,但是不能够进行健康检查,比如一个rs出现故障,LVS仍然会把请求转发给故障的rs服务器,这样就会导致请求的无效性。keepalive软件可以进行健康检查,而且能

21、同时实现LVS的高可用性,解决LVS单点故障的问题,其实keepalive就是为LVS而生的。1、实验环境Keepalived1+lvs1(Director1):192.168.0.48Keepalived2+lvs2(Director2)192.168.0.58Realserver1192.168.0.18Realserver2:192.168.0.28IP:192.168.0.382、安装系统软件Lvs+keepalived的2个节点安装#yuminstallipvsadmkeepalived-yRealserver+nginx服务的2个节点安装#yuminstallepel-releas

22、e-y#yuminstallnginx-y3、设置配置脚本Realserver节点2台配置脚本:#vim-usr-local-sbin-lvs_dr_rs.sh#!-bin-bashvip=192.168.0.38ifconfiglo:0$vipbroadcast$vipnetmask255.255.255.255uprouteadd-host$viplo:0echo1-proc-sys-net-ipv4-conf-lo-arp_ignoreecho2-proc-sys-net-ipv4-conf-lo-arp_announceecho1-proc-sys-net-ipv4-conf-all-

23、arp_ignoreecho2-proc-sys-net-ipv4-conf-all-arp_announce2节点rs上分别执行脚本:bash-usr-local-sbin-lvs_dr_rs.shkeepalived节点配置(2节点):主节点(MASTER)配置文件vim-etc-keepalived-keepalived.confvrrp_instanceVI_1stateMASTERinterfaceeth0virtual_router_id51priority100advert_int1authenticationauth_typePASSauth_pass1111virtual_i

24、paddress192.168.0.38virtual_server192.168.0.3880delay_loop6lb_algorrlb_kindDRpersistence_timeout0protocolTCPreal_server192.168.0.1880TCP_CHECKconnect_timeout10nb_get_retry3delay_before_retry3connect_port80real_server192.168.0.2880TCP_CHECKconnect_timeout10nb_get_retry3delay_before_retry3connect_port

25、80从节点(BACKUP)配置文件拷贝主节点的配置文件keepalived.conf,然后修改如下内容:stateMASTER-stateBACKUPpriority100-priority90keepalived的2个节点执行如下命令,开启转发功能:#echo1-proc-sys-net-ipv4-ip_forward4、启动keepalive先主后从分别启动keepaliveservicekeepalivedstart5、验证结果地址转换(NetworkAddressTranslation):最少连接(LeastConnections)根据真实服务器已经建立的连接数进行分配,将收到的访问请

26、求优先分配给连接数最少的节点。如果所有的服务器节点性能近似,采用这种方式可以更好地均衡负载Lvs负载均衡故障多数是由于负载均衡器发生故障了。但是也不能一概而论,所我们在此为大家总结了一下Lvs负载均衡故障中的几种故障分类,并对其进行了详细的介绍。当然,负载均衡器的检查是一个重点。?(b).PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链LVS是LinuxVirtualServer的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一-E-edit-service编辑内核虚拟服务器表中的一条虚拟服务器记录。ipvsadm-a-t172.25.254.100:80-r172.25.77.2:80-m向较少连接的服务器分配较多的工作(IPVS表存储了所有的活动的连接。用于实际服务主机性能一致。)5.RIP:RealServerIP,后端服务器的IP地址。LVS(LinuxvirtualServer)基于IP地址和内容请求分发的负载均

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!