负载均衡与高可用概念(转)

负载均衡 建立在现有的网络结构上,提供一种廉价有效透明的方法来扩大网络设置和服务器的带宽、增加吞吐量、加强网络数据处理能力,以及提供网络的灵活性和可用性。

高可用 指整个系统高可用,也指主机的冗余接管。

单台负载均衡器位于网络的最前端,它起着分流客户请求的作用,相当于整个网站或系统的入口,如果它出现故障,这个网站也会出现故障。所以,这时有一种方案,它能在短时间内将崩溃的负载均衡器接管过去,这也可称高可用。至于负载均衡器后端的Web集群、数据库集群、因为有负载均衡器的内部机制,即使其中的某一台或两台发生问题,也不会影响真个系统的使用。

一般说得Linux集群,它指的是大范围内的整套系统架构,相对负载均衡器后端的Web集群或MySQL集群来说,它的覆盖面要广的多,包括了负载均衡器的高可用。

用得较多的负载均衡器硬件有F5 BIG-IP,软件有LVS,Nginx及HA-Proxy。高可用软件有Hearbeat和keepalived。成熟的Linux集群架构有LVX+Keepalived、Nginx+keepalived及DRBD+Hearbeat。

1 以LVS作为负载均衡器 LVS集群

LVS集群体系结构 分三层:负载均衡 应用服务器集群 共享存储集群,如图所示。

位于最前端的调度器是服务器集群系统的唯一入口,它可采用IP负载均衡技术和基于内容的请求分发技术。 >IP负载均衡,要求服务器池中有相同内容,提供相同服务。当用户请求到达,调度器根据调度算法从服务器池中选出一台服务器,将改请求转发到选出的服务器上。

>基于内容的请求分发技术,服务器可以提供不同的服务,当用户请求到达时,调度器可根据请求内容选择执行的服务器。

1)通过NAT实现虚拟服务器(VS/NAT) 用户通过VIP访问网络服务时,请求报文到达调度器,调度器根据算法从一组真实服务器中选出一台服务器,将报文的目标地址(VIP)改写成选定服务器的地址,将报文的目标端口改为选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。同时,调度器在Hash表中记录这个连接,当这个连接的下一个报文到达时,从hash表中可以得到原先选定的服务器的地址和端口,执行同样的改写操作,并将报文传给原先选定的服务器。当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源端口改为VIP和响应的端口,在把报文发给用户。

在连接上引入一个状态机,不同的报文会使用连接处于不同的状态,不同的状态有不同的超时值。默认SYN状态超时时间为1分钟,ESTABLISHED状态的超时时间为15分钟,FIN状态的超时时间为1分钟,UDP状态超时时间为5分钟。当连接终止或超时时,调度器会将这个连接从Hash表中删除。

2)通过IP隧道实现虚拟服务器(VS/TUN) 请求和响应分开处理。IP隧道是将一个IP报文封装到另一个IP报文中的技术,主要应用于移动主机和虚拟私有网络(Virtual Private Network)。利用IP隧道技术将请求报文封装并转发给后端服务器,响应报文能从后端服务器直接返回给客户。

3)通过直接路由实现虚拟服务器(VS/DR) 调度器和服务器组都必须处于同一个局域网中(主要转发是的数据帧非IP包)。VIP地址被调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务器的请求报文。所有服务器把VIP地址配置在各自的Non-ARP网络设备山个,它对外不可见,只是用于处理目标地址为VIP的网络请求。

在DR模式中,调度器动态选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在局域网内发送,目标接收到该数据帧处理后,根据路由表将响应直接返回给客户。

2 以Nginx作为负载均衡器 Nginx既可作为负载均衡器也可以作为反向代理服务器,可以按轮询、IP_hash、URL_hash、权重等多种方法对后端的服务器执行负载均衡操作,同时还支持对后端服务器的健康检查。

3 以HAProxy作为负载均衡器 HAproxy是一款基于Tcp和Http应用的代理软件,也可作为负载均衡器。HAProxy最主要的有点是性能突出。它多用于MySQL集群环境,常用它作为MySQL(读)负载均衡。

高可用软件 1 Keepalived 运行在LVS之上,是LVS的扩展项目,主要功能是实现真实机的故障隔离以及负载均衡器间的失败切换。Keepalived的作用是检测Web服务器的状态,如果有一台Web服务器死机,或者出现故障,Keepalived将检测到,并将有故障的Web服务器从系统中剔除,当Web服务器工作正常后自动将Web服务器加入到服务器群中。

负载均衡器之间的失败切换,是通过VRRPv2 stack实现的。通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。

2 Hearbeat Hearbeat是Linux-HA项目中的一个组件,它提供了所有HA软件所需要的基本功能,比如心跳检查和资源接管、检测集群中的系统服务、在集群中的节点间转移共享IP地址所有者。

3 高可用块设备DRBD DRBD(Distributed Replicated Block Device)是一种块设备。功能类似于网络RAID-1,当数据写入本地文件系统时,数据还将会发送到网络中的另一台主机上,并以相同的形式记录在一个文件系统中。

原文链接:http://www.vfeelit.com/410.html

posted on 2014-02-06 03:43  BuildyMan  阅读(1582)  评论(0编辑  收藏  举报

导航