负载均衡集群-LVS应用

说明:本篇结合上一篇”Linux集群介绍
http://www.linuxidc.com/Linux/2011-06/37544.htm”而写,当看完上一篇集群介绍后做这个实验思路将会很清晰!!!

原文地址:

分布式,一个任务由多个人协作完成。

 Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务。集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。
   
而负载均衡的任务就是负责多个服务器之间(集群内)实现合理的任务分配,使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。负载均衡有两个方面的含义:首先,把大量的并发访问或数据流量分担到多台节点上分别处理,减少用户等待响应的时间;其次,单个高负载的运算分担到多台节点上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高
   
因此可以看出,集群和负载均衡有本质上的不同,它们是解决两方面问题的不同方案,不要混淆。
   
    集群技术可以分为三大类:
    1、高性能性集群(HPC Cluster)
    2、高可用性集群(HA Cluster)
    3、高可扩展性集群
   
 一、高性能性集群(HPC Cluster)
    
指以提高科学计算能力为目标的集群技术。该集群技术主要用于科学计算,这里不打算介绍,如果感兴趣可以参考相关的资料。
 二、高可用性集群(HA Cluster)
    
指为了使群集的整体服务尽可能可用,减少服务宕机时间为目的的集群技术。如果高可用性集群中的某节点发生了故障,那么这段时间内将由其他节点代替它的工作。当然对于其他节点来讲,负载相应的就增加了。
   
为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用该集群的方案。
    对于该集群方案,一般会有两种工作方式:
     ①主-主(Active-Active)工作方式
      
这是最常用的集群模型,它提供了高可用性,并且在只有一个节点时也能提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。
    

服务器集群:

多个服务器组成一个服务器组,每一组服务器里面只有1台服务器处于激活状态,提供服务。其他服务器处于休眠状态,当提供服务的服务器发生故障,有1台休眠的服务器会被唤醒,接替其工作。即所谓的冗余技术。

负载均衡:LVS-NAT实现:
实验环境:
1
三台RHEL5.4虚拟机,二台作安装好web作为后端Realserver,另一台作为Director,Realserver的网关都指向Director,
2
Director上需要二个网卡,一个公网地址向外提供服务,一个内网地址可以是私有地址与Realserver通信。Director上开启路由转发功能。
3 Realserver ip 192.168.0.55/192.168.0.56,网关192.168.0.100
  Director ip 外网卡:10.0.0.10,内网卡192.168.0.100

1.集群

比如饭馆里有负责点菜的,有负责做菜的,有负责传菜的。比如饭馆里有买菜的,洗菜的,切菜的,炒菜的比如饭馆里有好几个负责做菜的。

图片 1

负载均衡:

打个比方——当有10个人同时访问一个服务器A,服务器A通过一个负载均衡的机制,平均分配其负载。比如A的背后有3台服务器,负载均衡机制把第1个访问请求转到服务器A1,把第2个访问请求转给A2,把第3个访问请求转给A3,把第4个访问请求转给A1….访问者访问的可能是A1,A2,A3服务器。但是他以为他访问的是服务器A。

配置好Realserver上的ip和网关,开启web服务,主要在Director上配置
ipvsadm -A -t 10.0.0.10:80 -s wlc
    ipvsadm -a -t 10.0.0.10:80 -r 192.168.0.55 -m -w 2   
    ipvsadm -a -t 10.0.0.10:80 -r 192.168.0.56 -m -w 5
vim /etc/sysctl
net.ipv4.ip_forward = 1 #开启路由转发
sysctl -p            #重新读取配置文件
用一个客户机直接访问
 
LVM-nat的脚本
#!/bin/bash
# case “$1”in
start)
    ipvsadm -A -t 192.168.0.83:80 -s wlc
    ipvsadm -a -t 192.168.0.83:80 -r 192.168.10.6 -m -w 2   
    ipvsadm -a -t 192.168.0.83:80 -r 192.168.10.7 -m -w 5 ;;
stop)
    ipvsadm –C ;;
status)
    ipvadm -Ln ;;
esac
ipvsadm –Ln 查看所有连接 ipvsadm –E 192.168.0.83::80 –s wrr
(基于权重,权重大的连接将多)
 
负载均衡 LVS-DR server
实验环境:
1
三台RHEL5.4虚拟机,二台作安装好web作为后端Realserver,另一台作为Director
2
Director上需要一个网卡,地址都为公网地址,VIP必须是公网地址,RIP可以是私网地址但要与Director通信时要进行解析。所以这里全部使用公网地址,不需要指定网关
Director上开启路由转发功能。
3 Realserver ip 192.168.0.55/192.168.0.56,
  Director ip 192.168.0.100 VIP 192.168.0.200
当客户端发出请求时reserver都会响应,为避免realserver都响应可以:
1 通过防火墙不让arp数据包进来
2 linux内核有二个参数,配置完后避免arp请求

1.1定义:是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

集群,多个人紧密协作,来完成一个工作,就像一个人似的。

       这是目前运用最为广泛的双节点双应用的Active/Active模式。

拓展阅读

在服务器架构中,集群,负载均衡,分布式的区别

图片 2

是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

比如饭馆里的所有厨师,或者所有工作人员可以看作一个集群集群有很多好处:是做菜的能力比一个人增加了多招一个厨子,就能轻易增加做菜的数量(横向伸缩),如果一个厨子病了,饭馆不至于停业(高可用)

       
支撑用户业务的应用程序在正常状态下分别在两台节点上运行,各自有自己的资源,比如IP地址、磁盘阵列上的卷或者文件系统。当某一方的系统或者资源出现故障时,就会将应用和相关资源切换到对方的节点上。

图片 3

1.2负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。

负载均衡,将一系列任务逐项分发给多个人,完成任务的能力增加,而且让大家都不闲着(提高资源利用率),减少任务等待的时间(降低延迟)。

这种模式的最大优点是不会有服务器的“闲置”,两台服务器在正常情况下都在工作。但如果有故障发生导致切换,应用将放在同一台服务器上运行,由于服务器的处理能力有可能不能同时满足数据库和应用程序的峰值要求,这将会出现处理能力不够的情况,降低业务响应水平。

负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。

比如饭馆厨房里做菜的厨师有多个,新的菜来了让谁做呢?可以像发牌似的,一人一个轮流来(轮流)有人做的快,有人做的慢,可以按照一定的比例轮流(加权轮流)有可能有人累了干慢了,就会积压一堆订单,就根据谁面前的订单最少分给谁(最少积压请求数)

    
     ②主-从(Active-Standby)工作方式
     
为了提供最大的可用性,以及对性能最小的影响,主-从工作方式需要一个在正常工作时处于备用状态的节点,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
  

1.3集群系统主要解决下面几个问题:

图片 4

  • 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
  • 负载均衡:即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求
  • 高性能计算(HP):即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,化学分析等。

       
   
两节点的Active/Standby模式是HA中最简单的一种,两台服务器通过双心跳线路组成一个集群。应用Application联合各个可选的系统组件如:外置共享的磁盘阵列、文件系统和浮动IP地址等组成业务运行环境。

2.负载均衡系统

PCL为此环境提供了完全冗余的服务器配置。这种模式的优缺点:

先从集群讲起

  • 缺点:Node2在Node1正常工作时是处于“闲置”状态,造成服务器资源的浪费。

  • 优点:当Node1发生故障时,Node2能完全接管应用,并且能保证应用运行时的对处理能力要求。

负载均衡又有DNS负载均衡(比较常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机器宕了,都不会影响其他机器的运行,当用户来一个请求,有负载均衡器的算法决定由哪台机器来处理,假如你的算法是采用round算法,有用户a、b、c,那么分别由服务器A、B、C来处理;

 三、高可扩展性集群
    
这里指带有负载均衡策略(算法)的服务器群集技术。带负载均衡集群为企业需求提供了更实用的方案,它使负载可以在计算机集群中尽可能平均地分摊处理。而需要均衡的可能是应用程序处理负载或是网络流量负载。该方案非常适合于运行同一组应用程序的节点。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,
以实现平衡。对于网络流量也是如此。通常,单个节点对于太大的网络流量无法迅速处理,这就需要将流量发送给在其它节点。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。
 
负载均衡集群在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。

2.1基于DNS的负载均衡

 

通过DNS服务中的随机名字解析来实现负载均衡,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,他们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。

 

2.2反向代理负载均衡 (如Apache+JK2+Tomcat这种组合)

前面已经说过负载均衡的作用是在多个节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡可以采用软件和硬件来实现。一般的框架结构可以参考下图。
  

使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

图片 5

2.3基于NAT(Network Address Translation)的负载均衡技术 (如Linux
Virtual Server,简称LVS)

 后台的多个Web节点上面有相同的Web应用,用户的访问请求首先进入负载均衡分配节点(可能是软件或者硬件),由它根据负载均衡策略(算法)合理地分配给某个Web应用节点。每个Web节点相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。

网络地址转换为在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能访问外部网络,而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转发到一个映射的内部地址上。因此如果地址转换网关能将每个连接均匀转换为不同的内部服务器地址,此后外部网络中的计算机就各自与自己转换得到的地址上服务器进行通信,从而达到负载分担的目的。

 
web负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不同的应用环境(如电子商务网站,它的计
 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。
 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。
  
目前,基于负载均衡的算法主要有三种:轮循(Round-Robin)、最小连接数(Least
Connections First),和快速响应优先(Faster  Response  Precedence)。
  ①轮循算法,就是将来自网络的请求依次分配给集群中的节点进行处理。
 
②最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。
 这要比”轮循算法”好很多,因为在有些场合中,简单的轮循不能判断哪个节点的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。
 
③快速响应优先算法,是根据群集中的节点的状态(CPU、内存等主要处理部分)来分配任务。
 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。

3.分布式是指将不同的业务分布在不同的地方。

 
 上面是负载均衡常用的算法,基于以上负载均衡算法的使用方式上,又分为如下几种:

而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。

  1、DNS轮询
  
 最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。

举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。

  
DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的
客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标志,一旦超过这个时间限制,其他DNS服务器就需要和这个服务器交互,以重新获得地址数
据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使刷新时间尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址,然而将过
期时间设置得过短,将使DNS流量大增,而造成额外的网络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使及时修改了DNS设置,还是
要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器
  2、反向代理服务器
   
使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。

分布式,从窄意上理解,也跟集群差不多,
但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

  
这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是代理多个客户访问内部服务器,因此也被称为反向代理模式。虽然实现这个任务并不算是特别复杂,然而由于要求特别高的效率,实现起来并不简单。

在群集的这三种基本类型之间,经常会发生交叉、混合。比如:在高可用性的群集系统中也可以在其节点之间实现负载均衡,同时仍然维持着其高可用性。还有一种概括性说法:cluster是手段,load
banlance是目标之一。

  
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。

 

  
代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求,
代理服务器的负载也就非常之大。反向代理方式下能应用优化的负载均衡策略,每次访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务
器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。
 
  3、地址转换网关
   
支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多
硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡
策略来分配负载。由于地址转换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。

读后感:

 

集群:

反向代理:

多台机器做相同的业务,对外如一台机器在做事情一样,集群中任意一台机器挂了没有影响,因为其他机器还在工作;

代理就是你的访问通过一台机器来访问网站。。你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。

反向代理就是是网站通过一台机器发布到公网。。你访问的时候是直接访问那台代理机器的,然后通过那台机器才访问到网站。你无法得到网站的真实ip地址。这样的好处是保护了网站服务器,而且可以通过一个被动代理服务器将很多机器解析到同一ip地址。

有点像路由器的端口映射。。

负载均衡:

来自:

是一种优化手段,目的是为了让集群中的每台机器的负载保持均衡,这样就不会出现集群中某台机器挂了的情况;

分布式:

一个业务在不同的物理点上做,比如web服务器、应用服务器、数据库服务器,这三个节点分开部署在不同的机器上,共同完成一个业务;分布式的特点是,每个节点都不能挂,否则这个业务就不能完成了;当然,我们可以给分布式中的每个节点都做集群处理,这样可以降低分布式系统的单节点故障; 

相关文章