ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:340.80KB ,
资源ID:24291677      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24291677.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运维工程师必备之负载均衡集群及LVS详解.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运维工程师必备之负载均衡集群及LVS详解.docx

1、运维工程师必备之负载均衡集群及LVS详解运维工程师必备之负载均衡集群及LVS详解2013-05-08 00:00:36标签:linuxLB负载均衡HA集群原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。 此博文主要介绍集群和负载均衡的基本理论和类别,内容看着比较枯燥、无味的,但是要想成为一个好的linux运维工程师,这些基本理论是必须理解透彻,才会在后来的系统调优和集群架构中得心应手,所以想成为linux运维工程师的我们必须承受得住寂寞嘿嘿,命苦的我们啊!努力学习吧!今天很残酷,明天更残酷,后天会很美好,但不要死在明天晚上!一、集群简介1.

2、集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要2. 用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的出现,集群的概念才得以广为传播。集群系统主3. 要分为高可用(HighAvailability)集群,简称HA集群,和高性能计算(HighPerfermanceComputing)集群,4. 简称HPC集群。5. 6. 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计7. 算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域

3、网连接,8. 但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个9. 计算机,比如工作站或超级计算机性能价格比要高得多。二、集群分类 集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构可以分成以下几类:1. 负载均衡集群LB:Loadbalancingclusters2. 3. 高可用性集群HA:High-availability(HA)clusters4. 5. 高性能计算集群HP:High-performance(HPC)clusters6. 7. 网格计算Gridcomput

4、ing三、各种集群定义详解、负载均衡集群-LB1. 负载均衡集群运行时,一般通过一个或者多个前端负载均衡器,将工作负载分发到后端的一组服务器上,从而达到整2. 个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(ServerFarm)。一般高可用性集群和负载均3. 衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。linux虚拟服务器(LVS)项目在linux操作系统上4. 提供了最常见的负载均衡软件。5. LB在提供负载均衡的时候,如果提供的是DNS负载均衡,由于DNS缓存服务存在的6. 机制,造成负载均衡的效果会大打折扣。所以在此出现了调度方法,常用的有两个调度7.

5、方法:8. RR:Round Robin 论调9. WRR:Weight Round Robin 加权论调10. 负载均衡:以提高服务的并发能力为集群的重点的集群11. 衡量标准:并发处理能力、高可用性集群-HA1. 一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节2. 点进行离线维护再上线,该过程并不影响整个集群的运行。3. 高可用集群:为了保证服务一直在线的高可用能力的集群4. 衡量标准:可用性=在线时间/(在线时间+故障处理时间)、高性能计算集群-HP1. 高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应

6、用在科学计算领域。比较流2. 行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通3. 常运行特定的程序以发挥HPCcluster的并行能力。这类程序一般应用特定的运行库,比如专为科学计算设计的MPI库。4. 5. HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它6. 节点计算结果的情况。7. 高性能处理集群:利用的是分布式存储:分布式文件系统,分布式文件系统把一个大任务切割为小任务、分别进行处8. 理、网格计算1. 网格计算或网格集群是一种与集群计算非常相关的技术。网格与

7、传统集群的主要差别是网格是连接一组相关并不信任2. 的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。还有,网格通常比集群支持更多不同类型的计算机3. 集合。4. 网格计算是针对有许多独立作业的工作任务作优化,在计算过程中作业间无需共享数据。网格主要服务于管理在独立5. 执行工作的计算机间的作业分配。资源如存储可以被所有结点共享,但作业的中间结果不会影响在其他网格结点上作业的6. 进展。四、LB集群详解1. 1、负载均衡器设备类型:分为硬件和软件两种2. 硬件设备:3. F5的BIG IP负载均衡器4. Citrix的Netscaler负载均衡器5. A106. 软件:分为基于四层

8、和七层的两种类型7. 四层:8. lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立的,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器9. 。10. 七层:反向代理11. Nginx:支持http,pop3,smtp,imap12. haproxy:支持http,tcp(mysql,smtp)13. 五、LVS详解 1. 由于硬件设备价格比较高,动则上万、几十万刀,所以一般的小公司所使用的还是基于软件的架构方式来实现集群的。2. 当然,只要掌握了linux下基于软件的集群架构,其他基于硬件的架

9、构配置也都大同小异,由于硬件的缺乏、嘿嘿-目3. 前还是小菜鸟一个,公司内部的设备还没见过是神马模样!所以在此就着重介绍一下我们linux系统下基于LVS架构的4. 集群的搭建,当然,这也是我们作为linux运维人员必须掌握的重中之重是吧!好了,废话不扯那么多了下面我们进5. 入正题吧!自己理解,如有错误还望各位大神们不吝赐教LVS基本解释1. lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立的,可以实现LINUX平台下的简单负载均2. 衡。LVS是LinuxVirtualServer的缩写,意思是Linux虚拟服务器。3. 4. 这是国人在开源上作出的最大贡献我们

10、为此骄傲、自豪!嘿嘿说多了,中国在开源上面的贡献好像还真是少之5. 又少啊望各位大神们多做贡献,天朝还是可以出现大神的!-唠多了,下面接着咱们的VLS。6. 7. LVS是linux系统上的一种机制,类似于iptables似,其相关属性也是通过与iptables命令类似的方式定义的,8. 等会会详细介绍。LVS是工作于内核上的,通过内核来提供工作,其工作空间在iptables的INPUT链上,当客户端请求到9. 达INPUT链上以后,通过LVS的验证如果是关于lvs的请求,则在此直接修改目标地址,然后通过postrouting链传送给10. 其定义的server!11. 12. 注意:上面提到

11、LVS其实是工作在iptables的INPUT和链上的,所以在此系统上iptables13. 和LVS不能同时存在。LVS的组成: 1. ipvsadm:管理集群服务的命令行工具,工作于用户空间2. 3. ipvs:为lvs提供服务的内核模块,工作于内核空间4. 5. 在linux内核2.4.23之前的内核中模块默认是不存在的,需要自己手动打补丁,然后把此模块编译进内核才可以正常6. 使用。、LVS类型 1. 为了便于表述下面的内容,在此插几句关于相关服务和名词的定义2. 3. Director:复制调度集群的主机4. 5. VIP:VirtualIP,向外提供服务的IP6. 7. RIP:r

12、ealIP,内部真的提供服务的主机IP8. 9. DIP:向内部的IP通信的IP,在Director主机上10. 11. CIP:客户端IP 、 NAT:地址转换类型,主要是做目标地址转换,类似于iptables的DNAT 1. 优点:多目标的NAT转换,能够实现负载均衡,一个Director最多额可以提供10个RealServer主机。2. 3. 特点和要求:4. 5. 1、LVS上面需要双网卡:DIP和VIP6. 7. 2、内网的RealServer主机的IP必须和DIP在同一网络中,并且其网关需要指向DIP的地址8. 9. 3、RIP地址都是私有IP地址,仅用于各个集节点之间通信10.

13、11. 4、Director位于client和RealServer之间,并负责处理所有进站、出战的通信。12. 13. 5、RealServer必须将网关指向DIP14. 15. 6、支持端口映射16. 17. 7、通常应用在较大规模应用场景中,但是Director易成为整个架构的瓶颈。 、 DR:DIRECT ROUTE,直接路由 1. 1、架构组成:2. 3. 每个RealServer上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复4. 的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP5. 6. 2、Di

14、rector在接受到外部主机的请求的时候转发给RealServer的时候并不更改目标地址,只是通过arp解析的7. MAC地址进行封装然后转给RealServer,RealServer在接受到信息以后拆除MAC帧封装,然后直接回复给CIP。8. 9. 3、企业中最常用的就是DR10. 11. 特点和要求:12. 13. 1、各个集群节点必须和Director在同一个物理网络中14. 15. 2、RIP地址不能为私有地址,可以实现便捷的远程管理和监控16. 17. 3、Director仅仅负责处理入站请求,响应报文则由RealServer直接发往客户端18. 19. 4、集群节点RealServ

15、er的网关一定不能指向DIP,而是指向外部路由20. 21. 5、Director不支持端口映射22. 23. 6、Director能够支持比NAT多很多的RealServer 、TUN:隧道 1. 1、架构2. 3. Director必须有两个IP:VIP和DIP,在向外部进行转发的时候CIP和VIP不能更改,而是在数据报文的外面加层4. 封装(S:DIP,D:RIP),然后通过Internet传送给外部的RealServer,RealServer接收到请求以后,先拆除第一5. 层封装后拆除第二层封装,然后把响应数据直接传输给Client6. 7. 2、特性:8. 9. 1、集群节点可以跨越

16、Internet10. 11. 2、Director的VIP和RIP必须为公网IP12. 13. 3、Director仅处理入站请求,响应报文则由RealServer直接发往客户端14. 15. 4、RealServer的网关不能指向Director16. 17. 5、只有支持隧道协议功能的OS才能作为RealServer18. 19. 6、不支持端口映射六、LVS的调度方法:分为静态和动态调度两种1. 静态调度:2. 1、轮叫调度:Round-Robin Scheduling,简称RR,轮叫调度就是以轮叫的方式请求不同的服务器,算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种

17、无状态调度。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器间的负载不平衡。3. 4. 2、加权轮叫调度(Weighted Round-Robin Scheduling),加权轮叫,简称WRR。该算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的

18、服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。5. 6. 3、源地址散列调度(Source Hashing Scheduling),源地址散列,简称SH。源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。7. 通过源地址hash,使来自于同一个客户端的请求,都转发给同一个Real Server,这样来保证cookie与session进行8. 会话绑定。9. 4、目标地址

19、散列调度(Destination Hashing Scheduling),目标地址散列,简称DH。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空,主要应用于缓存服务器。10. 动态调度11. 1、最小连接调度(Least-Connection Scheduling),最少链接,简称LC。该调度是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个

20、请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减1。12. 计算当前RealServer 的负载情况计算方法:active*256+inactive,谁的数值小就选择谁!13. 14. 2、加权最小连接调度(Weighted Least-Connection Scheduling),加权最少链接,简称WLC。加权最小连接调度是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。计算当前Real Server 的负载情况计算方法:(acti

21、ve*256+inactive)/weight,谁小选择谁来响应服务。15. 3、基于局部性的最少链接(Locality-Based Least Connections Scheduling),简称LBLC,基于局部性的最少链接 调度算法是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。该算法根据请求的目标IP 地址找出该目标IP 地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用最少链接的原则选出一个可用的服务器,将请求发送到该服务器。 16. 4、带复制的基于局部性最少链接(Local

22、ity-Based Least Connections with Replication Scheduling),简称LBLCR。带复制的基于局部性最少链接调度算法也是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。它与LBLC 算法的不同之处是它要维护从一个目标IP 地址到一组服务器的映射,而LBLC 算法维护从一个目标IP 地址到一台服务器的映射。该算法根据请求的目标IP 地址找出该目标IP 地址对应的服务器组,按最小连接原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按最小连接原则从这个集群中选出一台服务器,将该服务器加入到服务器组

23、中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。17. 5、最短期望延迟(Shortest Expected Delay Scheduling),简称SED,分配一个接踵而来的请求以最短的期望的延迟方式到服务器,18. 计算当前realserver 的负载情况计算方法:(active+1)*256/weight=overhead。19. 6、永不排队(Never Queue),又称最小队列调度,简称NQ。分配一个接踵而来的请求到一台空闲的服务器,此服务器不一定是最快的那台,如果所有服务器都是繁忙的,它采取最短的期望延迟分配请求

24、。七、LVS常用命令介绍 上面我们提到过LVS的相关模块:内核模块ipvs和用户空间命令ipvsadm。下面我们来介绍下常用的命令 在测试之前我们首先确定内核中是否有ipvs模块,grep -i ip_vs /boot/config-2.6.18-308.el5ipvsadm命令ipvsadm的命令与iptables的相关命令及其相似,基本用法也相同。其大致如下:1. 、管理集群服务命令2. 添加集群:-A3. 格式:ipvsadm -A|E -t|u|f service-address -s scheduler算法4. -t:tcp协议的集群5. -u:udp协议的集群6. -f或-fwma

25、rk-service:基于防火墙标记的集群服务7. fg:添加一条基于http的集群8. ipvsadm -A -t 172.16.7.1:80 -s rr9. 修改集群:-E10. fg:修改上面增加的集群算法为wrr11. ipvsadm -A -t 172.16.7.1:80 -s wrr12. 删除集群:-D13. fg:删除上面增加的集群14. ipvsadm -D -t 172.16.7.1:8015. 清空集群计数器:-Z16. ipvsadm -Z17. 清空所有集群的配置:-C18. ipvsadm -C、管理集群内RealServer的命令1. 在集群中添加RS:-a2.

26、格式:ipvsadm -a -t|u|f service-address -r server-address -g|i|m(LVS的类型) -w weight3. -t|u|f service-address:事先定义好的某集群服务4. -r service-address:某RS的地址,在模型中,可以使用IP:PORT实现端口映射5. -g|i|m :LVS 类型6. -g:DR类型7. -i:TUN类型8. -m:NAT9. -w weight:定义服务器权重10. fg:在集群172.16.7.1:80上增加RS1:172.16.7.2;RS2172.16.7.3,并定以为NAT模式,并

27、且定义权重11. ipvsadm -A -t 172.17.7.1:80 -s wrr12. ipvsadm -a -t 172.17.7.1:80 -r 172.16.7.2 -m -w 213. ipvsadm -a -t 172.17.7.1:80 -r 172.16.7.3 -m -w 114. 修改集群中的RS:-e15. 格式:ipvsadm -e -t|u|f service-address -r server-address -g|i|m(LVS的类型) -w weight16. fg:修改上面的RS2的权重为317. ipvsadm -e -t 172.17.7.1:80 -

28、r 172.16.7.3 -m -w 318. 删除集群中的RS:-d19. 格式:ipvsadm -d -t|u|f service-address -r server-address20. fg:删除上面的RS221. ipvsadm -d -t 172.17.7.1:80 -r 172.16.7.3、查看集群的命令-L|l1. -n:不反解IP地址,以数字的形式显示主机地址和端口2. 3. -c:显示当前的ipvs连接状态的4. 5. -stats:显示统计信息6. 7. -rate:显示速率信息8. 9. -timeout:显示tcp、tcpfin、udp超时时间长度10. 11. -

29、daemon:显示进程的12. 13. -sort:根据端口排序显示,默认是升序14. 15. -persitent-conn显示持久连接、保存和还原lvs配置规则的命令 保存配置文件: service ipvsadm save-类似于iptables的直接保存配置文件到/etc/sysconfig/ipvsadm -S:手动指定文件保存规则 格式:ipvsadm -S /path/to/somefile 还原配置规则:R 格式:ipvsadm -R /path/from/somefile 至此,关于负载集群的基本结构和类型已经介绍完毕,由于基本理论比较枯燥而且内容比较多,在此不再对基本架构进行实例介绍,由于我也是菜鸟,所以留点时间揣摩揣摩,然后在下篇博文基于LVS实现NAT、DR和高可用集群HA的网络架构内进行详细的探讨、说明,到时还望各位大神们多多指点! 由于是个人总结、亲自码字,中间难免出现错误还望各位大神拍砖指出错误!-chrinux(chris linux

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1