运维工程师必备之负载均衡集群及LVS详解_第1页
运维工程师必备之负载均衡集群及LVS详解_第2页
运维工程师必备之负载均衡集群及LVS详解_第3页
运维工程师必备之负载均衡集群及LVS详解_第4页
运维工程师必备之负载均衡集群及LVS详解_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

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

2、酷,后天会很美好,但不要死在明天晚上!一、集群简介  1. 集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要2. 用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的出现,集群的概念才得以广为传播。集群系统主3. 要分为高可用(High Availability)集群,简称 HA 集群,和高性能计算(High Perfermance Computing)集群,4. 简称 HPC 集群。    &#

3、160;5.  6. 计算机集群简称集群是一种计算机系统, 它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计7. 算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,8. 但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个9. 计算机,比如工作站或超级计算机性能价格比要高得多。 二、集群分类     集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构可以

4、分成以下几类:1. 负载均衡集群LB: Load balancing clusters 2.  3. 高可用性集群HA: High-availability (HA) clusters 4.  5. 高性能计算集群HP: High-performance (HPC) clusters 6.  7. 网格计算 Grid computing 三、各种集群定义详解 、负载均衡集群-LB1. 负载均衡集群运行时,一

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

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

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

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

9、scaler负载均衡器5. A106. 软件:分为基于四层和七层的两种类型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. 由于硬件设备价格比较高,动则

10、上万、几十万刀,所以一般的小公司所使用的还是基于软件的架构方式来实现集群的。2. 当然,只要掌握了linux下基于软件的集群架构,其他基于硬件的架构配置也都大同小异,由于硬件的缺乏、嘿嘿-目3. 前还是小菜鸟一个,公司内部的设备还没见过是神马模样!所以在此就着重介绍一下我们linux系统下基于LVS架构的4. 集群的搭建,当然,这也是我们作为linux运维人员必须掌握的重中之重是吧!好了,废话不扯那么多了下面我们进5. 入正题吧!自己理解,如有错误还望各位大神们不吝赐教 LVS基本解释 1. lvs是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立的,可以实现LI

11、NUX平台下的简单负载均2. 衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。 3.  4.     这是国人在开源上作出的最大贡献我们为此骄傲、自豪!嘿嘿说多了,中国在开源上面的贡献好像还真是少之5. 又少啊望各位大神们多做贡献,天朝还是可以出现大神的!-唠多了,下面接着咱们的VLS。 6.  7.     LVS是linux系统上的一种机制,类似于iptables似,其相关属性也是通过与iptables命令类似的

12、方式定义的,8. 等会会详细介绍。LVS是工作于内核上的,通过内核来提供工作,其工作空间在iptables的INPUT链上,当客户端请求到9. 达INPUT链上以后,通过LVS的验证如果是关于lvs的请求,则在此直接修改目标地址,然后通过postrouting链传送给10. 其定义的server! 11.  12.     注意:上面提到LVS其实是工作在iptables的INPUT和链上的,所以在此系统上iptables13. 和LVS不能同时存在。 LVS的组成:   1. ipvsadm:管理集群服

13、务的命令行工具,工作于用户空间 2.  3.    ipvs:为lvs提供服务的内核模块,工作于内核空间 4.  5. 在linux内核2.4.23之前的内核中模块默认是不存在的,需要自己手动打补丁,然后把此模块编译进内核才可以正常6. 使用。 、LVS类型   1. 为了便于表述下面的内容,在此插几句关于相关服务和名词的定义 2.  3.    Director:复制调度集群的主机 4.  5.   &#

14、160;VIP:Virtual IP,向外提供服务的IP 6.  7.    RIP:real IP,内部真的提供服务的主机IP 8.  9.    DIP:向内部的IP通信的IP,在Director主机上 10.  11.    CIP:客户端IP    、 NAT:地址转换类型,主要是做目标地址转换,类似于iptables的DNAT   1. 优点:多目标的NAT转换,能够

15、实现负载均衡,一个Director最多额可以提供10个Real Server主机。 2.  3.    特点和要求: 4.  5.     1、LVS上面需要双网卡:DIP和VIP 6.  7.     2、内网的Real Server主机的IP必须和DIP在同一网络中,并且其网关需要指向DIP的地址    8.  9.    

16、 3、RIP地址都是私有IP地址,仅用于各个集节点之间通信 10.  11.     4、Director位于client和Real Server之间,并负责处理所有进站、出战的通信。 12.  13.     5、Real Server必须将网关指向DIP 14.  15.     6、支持端口映射 16.  17.     

17、7、通常应用在较大规模应用场景中,但是Director易成为整个架构的瓶颈。     、 DR:DIRECT ROUTE,直接路由   1. 1、架构组成: 2.  3.    每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复4. 的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP 5.  6.    2、Director在接受

18、到外部主机的请求的时候转发给Real Server的时候并不更改目标地址,只是通过arp解析的7. MAC地址进行封装然后转给Real Server,Real Server在接受到信息以后拆除MAC帧封装,然后直接回复给CIP。 8.  9.    3、企业中最常用的就是DR 10.  11.   特点和要求: 12.  13.     1、各个集群节点必须和Director在同一个物理网络中 14. &#

19、160;15.     2、RIP地址不能为私有地址,可以实现便捷的远程管理和监控 16.  17.     3、Director仅仅负责处理入站请求,响应报文则由Real Server直接发往客户端 18.  19.     4、集群节点Real Server 的网关一定不能指向DIP,而是指向外部路由 20.  21.     5、Direct

20、or不支持端口映射 22.  23.     6、Director能够支持比NAT多很多的Real Server     、TUN:隧道   1. 1、架构 2.  3.     Director必须有两个IP:VIP和DIP,在向外部进行转发的时候CIP和VIP不能更改,而是在数据报文的外面加层4. 封装(S:DIP,D:RIP),然后通过Internet传送给外部的Real Server,Real

21、60;Server接收到请求以后,先拆除第一5. 层封装后拆除第二层封装,然后把响应数据直接传输给Client 6.  7.       2、特性: 8.  9.        1、集群节点可以跨越Internet 10.  11.        2、Director的VIP和RIP必须为公网IP 12.  13. &

22、#160;      3、Director仅处理入站请求,响应报文则由Real Server直接发往客户端 14.  15.        4、Real Server的网关不能指向Director 16.  17.        5、只有支持隧道协议功能的OS才能作为Real Server 18.  19.

23、       6、不支持端口映射 六、LVS的调度方法:分为静态和动态调度两种1. 静态调度:2. 1、轮叫调度: Round-Robin  Scheduling,简称RR,轮叫调度就是以轮叫的方式请求不同的服务器,算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器间的负载不平衡。3. 

24、0;4. 2、加权轮叫调度(Weighted  Round-Robin  Scheduling),加权轮叫,简称WRR。该算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。5.  6. 3、源地址散列调度(Source  Hashing  Scheduling

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

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

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

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

29、 16.     4、带复制的基于局部性最少链接(Locality-Based  Least  Connections  with Replication Scheduling),简称LBLCR。"带复制的基于局部性最少链接"调度算法也是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。它与LBLC 算法的不同之处是它要维护从一个目标IP 地址到一组服务器的映射,而LBLC 算法维护从一个目标IP 地址到一台服务器的映射。该算法根据请求的目标IP 地址找出该目标IP 地址对应的服务器组,按"

30、最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。17.     5、最短期望延迟(Shortest Expected Delay Scheduling),简称SED,分配一个接踵而来的请求以最短的期望的延迟方式到服务器,18. 计算当前realserver 的负载情况计算方法:(active+1)*256/wei

31、ght=overhead。 19.     6、永不排队(Never Queue),又称最小队列调度,简称NQ。分配一个接踵而来的请求到一台空闲的服务器,此服务器不一定是最快的那台,如果所有服务器都是繁忙的,它采取最短的期望延迟分配请求。   七、LVS常用命令介绍   上面我们提到过LVS的相关模块:内核模块ipvs和用户空间命令ipvsadm。下面我们来介绍下常用的命令   在测试之前我们首先确定内核中是否有ipvs模块,grep -i 'ip_vs' /boot/confi

32、g-2.6.18-308.el5 ipvsadm命令ipvsadm的命令与iptables的相关命令及其相似,基本用法也相同。其大致如下:1. 、管理集群服务命令 2. 添加集群:-A3. 格式:ipvsadm -A|E -t|u|f service-address -s scheduler算法4. -t:tcp协议的集群5. -u:udp协议的集群6. -f或-fwmark-service:基于防火墙标记的集群服务7. fg:添加一条基于http的集群8. ipvsadm -A -t :80 -s rr9. 修改集群:-E10. fg:修改上面增加的集

33、群算法为wrr11. ipvsadm -A -t :80 -s wrr 12. 删除集群:-D13. fg:删除上面增加的集群14. ipvsadm -D -t :8015. 清空集群计数器:-Z16. ipvsadm -Z17. 清空所有集群的配置:-C18. ipvsadm -C 、管理集群内RealServer的命令 1. 在集群中添加RS:-a 2. 格式:ipvsadm -a -t|u|f service-address -r server-address -g|i|m(LVS的类型) -w weight3. -t

34、|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:在集群:80上增加RS1:;RS2,并定以为NAT模式,并且定义权重11. ipvsadm -A -t :80 -s wrr12. ipvsadm -a -t :80 -r -m -w 213. ipvsadm -a -t :80 -r -m -w 114. 修改集群中的RS:-e15. 格式:ipvsadm -e -t|u|f service-address -r server-a

温馨提示

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

最新文档

评论

0/150

提交评论