LVS-2.体系结构

1. 引言

这里介绍LVS集群的通用体系结构,设计原则和相应特点;LVS集群应用于建立可伸缩的Web,Media,Cache和Mail等网络服务。

2. LVS集群的通用体系结构

LVS集群采用IP负载均衡技术和基于内容请求分发技术。
调度器吞吐率高,均衡转移请求,自动屏蔽故障。无需修改客户端和服务端程序,一组服务器对于客户来说是透明的。


LVS集群体系结构

LVS集群设计需要考虑透明性,可伸缩性,高可用性和易管理性。
一般采用三层结构:

  • 负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
  • 服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
  • 共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

调度器是服务器集群系统的唯一入口点(Single Entry Point),采用IP负载均衡技术,基于内容请求分发技术或者两者相结合。
如果采用IP负载均衡技术,需要服务器池拥有相同的内容提供相同的服务。请求到达时,调度器负载情况和调度算法挑选服务器,转发请求,记录调度;并转发请求的其他报文到选出的服务器。
如果采用基于内容请求分发技术,服务器提供不同的服务,请求到达时,调度器根据请求内容选择服务器执行请求。
调度器开销很小,所以吞吐量可以很大。

服务器池的节点数可变。集群系统的性能可以随着服务器池的节点数目增加而线性增长。

共享存储,通常是数据库,网络文件系统,分布式文件系统。
服务器节点需要动态更新的数据一般存储在数据库系统中,数据库会保证并发访问时数据的一致性。静态数据会放在网络文件系统(如NFS/CIFS)中,但是网络文件系统的伸缩能力是有限的。规模较大的集群系统需要使用分布式文件系统。

负载调度器,服务器池和共享存储系统通过高速网络相连接。

基于浏览器的Graphic Monitor可以为系统管理员提供整个集群系统的监视器。

2.1 为什么使用层次的体系结构

层次的结构体系使层与层之间相互独立,每层提供不同的功能,一个层次可以重用不同的已有软件。
调度器提供了负载平衡,可伸缩性和高可用性。服务器层可以运行不同的网络服务,例如web,Cache,Mail 和Media提供不同的,伸缩的网络服务。
明确的功能划分有利于系统的维护和性能的扩展。

2.2 为什么共享存储

共享存储在LVS集群系统是可选项。
网络服务需要有相同的服务,共享存储是很好的选择,否则各服务器需要将大量相同的内容复制到本地硬盘。

2.3 高可用性

集群系统在软硬件上都是有冗余的,通过检测节点或服务器进程故障,正确重置系统,可以实现系统的高可用性,使系统收到的请求能够倍存活的节点处理。

那么,前端的调度器可能成为系统的单一失效节点(Single Point of Failure)。为了避免调度器失效而导致整个系统不能工作,我们需要设立一个从调度器作为主调度器的备份。两个心跳(Heartbeat)进程分 别在主、从调度器上运行,它们通过串口线和UDP等心跳线来相互定时地汇报各自的健康状况。当从调度器不能听得主调度器的心跳时,从调度器通过ARP欺骗 (Gratuitous ARP)来接管集群对外的Virtual IP Address,同时接管主调度器的工作来提供负载调度服务。当主调度器恢复时,这里有两种方法,一是主调度器自动变成从调度器,二是从调度器释放 Virtual IP Address,主调度器收回Virtual IP Address并提供负载调度服务。这里,多条心跳线可以使得因心跳线故障导致误判(即从调度器认为主调度器已经失效,其实主调度器还在正常工作)的概论 降到最低。
当主调度器失效时,主调度器上所有已建立连接的状态信息将丢失,已有的连接会中断。客户需要向重新连接,从调度器才会将新连接调 度到各个服务器上,这对客户会造成一定的不便。为此,IPVS调度器在Linux 内核中实现一种高效状态同步机制,将主调度器的状态信息及时地同步到从调度器。当从调度器接管时,绝大部分已建立的连接会持续下去。

3. 可伸缩Web服务

基于LVS的Web集群有三层结构,各结点是通过高速网络相连接的:

  • 第一层是负载调度器,一般采用IP负载均衡技术,可以使得整个系统有较高的吞吐率;
  • 第二层是 Web服务器池,在每个结点上可以分别运行HTTP服务或HTTPS服务、或者两者都运行;
  • 第三层是共享存储,它可以是数据库,可以是网络文件系统或分布 式文件系统,或者是三者的混合。

对于动态页面(PHP,JSP,ASP),动态数据一般存储在数据库服务器中。数据库运行在独立服务器上,为所有Web服务器共享。

对于静态页面(HTML文档和图片),存储在网络文件系统或者分布式文件中。对共享存储中页面的修改对所有服务器都有效。
在这种结构下,服务器超载时,管理员可以很快加入新的服务器节点来处理请求,无需复制web文档等到节点的硬盘上。

4. 可伸缩媒体的服务

基于LVS的媒体集群服务结构有三层,各节点通过高速网络连接:
第一层是负载调度器,一般采用IP负载均衡技术,可以使得整个系统有较高的吞吐率;第二层是 Web服务器池,在每个结点上可以运行相应的媒体服务;第三层是共享存储,通过网络文件系统/分布式文件系统存储媒体节目。集群中各结点是通过高速网络相 连接。
IPVS负载调度器一般使用直接路由方法(VS/DR方法)来构建媒体集群系统。调度器将媒体服务请求较为均衡分发到各个路由器上,媒体服务器将响应数据直接返回给客户。
因为媒体文件较大,共享存储是媒体集群服务的关键问题。对于容量较小的媒体集群系统,存储系统可以考虑用千兆网卡的Linux服务器,使用软件RAID和日志型文件系统,再运行内核的NFS服务。
对于规模较大的系统。最好使用对文件分段(File Stripping)存储和文件缓存存储有较好支持的分布式文件系统。

5. 可伸缩Cache服务

基于LVS的Cache集群的结构为:第一层是负载调度器,一般采用IP负载均衡技术,可以使得整个系统具有较高的吞吐率;第二层是Cache服务器池,一般Cache服务器放置在接近主Internet连接处,可以分不在不同的网络中。调度器可以有多个,放在离客户接近的地方。
IPVS负载调度器一般使用IP隧道的方法(VS/TUN方法)来构建Cache集群系统。因为Cache服务器可能被放置在不同的地方(例如在接近Internet连接处)。而调度器和Cache服务器池可能不在同一个物理网络中。采用VS/TUN方法,调度器只调度Web Cache服务器将响应数据直接返回给客户。请求对象不能本地命中的情况下,Cache服务器向源服务器发请求,将结果返回,最后直接将请求返回给客户。

6. 可伸缩邮件服务

LVS框架可以实现高可伸缩、高可用的邮件服务系统:在前端是一个采用IP负载均衡技术的负载调度器;第二层是服务器池,有LDAP(Light-weight Directory Access Protocol)服务器和一组邮件服务器。第三层是数据存储,通过分布式文件系统来存储用户的邮件。集群中各结点是通过高速网络相连接。

你可能感兴趣的:(LVS-2.体系结构)