首页 > 范文大全 > 正文

集群统一网络接口技术研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇集群统一网络接口技术研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 利用集群构建网络服务器是一种廉价高效的方式,通常集群对外提供统一网络接口,客户端通过该接口获得集群的完整网络服务。详细介绍现有集群统一网络接口技术的两种实现方式,分别是集中调度式与分布广播式,并通过分析两种实现方式的优缺点,提出一种结合两者优点的新的集群统一网络接口实现方式。

关键词: 集群;统一网络接口;集中调度;分布广播

中图分类号:TN929 文献标识码:A 文章编号:1671-7597(2012)1210110-02

0 引言

当今世界,网络已经成为社会必不可少的一部分,web网站浏览、文件上传下载、通信聊天等等,多样化的网络服务为我们提供着各种便利。网络服务器是网络服务最重要的元素之一。不断增长的用户数量、网络带宽以及计算能力,需要性能更加优良的网络服务器。

使用集群构建高性能网络服务器是一种廉价高效的方式。通常它对外提供唯一的网络接口(IP地址),因为大多网络应用程序认为服务器是单一的计算机,或者说使用唯一的IP地址。集群多个节点对外提供唯一的网络接口还有更大的好处,它允许系统将网络服务请求分发到集群的任意节点上,这使得系统可以实现负载均衡,以及系统运行状态下的节点添加与删除。我们将这种对外提供唯一的网络接口、内部可以负载均衡的技术称之为统一网络接口技术。下面详细分析集群统一网络接口技术研究现状。

1 统一网络接口技术分类

通常统一网络接口技术可以按照实现方式分为两大类。一种是集中调度式(图1所示),集群中有一个特殊节点作为中央调度器,它负责将外部客户端处理请求分配到集群各个后端节点上。另一种是分布广播式(图2所示),所有节点使用相同的IP地址对外通信,不过任意客户端通信请求只能被唯一节点处理。

2 集中调度式集群

集中调度式的统一网络接口集群通常有一个中央调度器和多个后台节点(如图1所示),这类方式的有Linux Virturl Server[1],TCP Router[2]等。调度器对外有一个IP地址,它接收来自客户端的所有请求。当调度器接到请求后,会根据负载平衡调度算法来选择一个后台节点,然后将请求转发给后台节点。由于连接的分配由唯一的调度器来控制,请求可以被分配到任意后台节点上执行。

集中调度式的优点是集中调度结构简单方便,调度算法动态灵活,有良好的负载均衡特性。然而缺点也很明显,主要是容错性差,容易存在单点失效,比如中央调度器失效会导致整个集群无法正常工作。

2.1 Linux Virtual Server

Linux Virtual Server[1](简称LVS),是基于Linux系统的服务器集群解决方案,其最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器。

LVS主要是在负载均衡器(也就是中央调度器)上实现的,负载均衡器是一台加了LVS内核补丁的linux系统。负载均衡器可以运行在以下三种模式下:1)VS-NAT:用地址翻译实现虚拟服务器;2)VS-TUN:用IP隧道技术实现虚拟服务器;3)VS-DR:用直接路由技术实现虚拟服务器。第三种模式开销最少,速度最快。

2.2 TCP Router

在TCP Router[2]方法中,节点被分为两种:一种是前端节点,对外提供统一IP地址或统一域名,用于接收客户端请求并将请求转发给后端计算节点;另一种是后端节点,用于处理前端节点转发过来的网络服务请求。所有节点通过一个路由器相连。前端节点作为TCP router(s),如果有多个前端节点,这些前端节点将使用相同的域名和不同的IP,他们通过RR-DNS(对外使用统一域名,轮转选择节点处理请求)算法来被选择接收客户端请求。然后将接收到的客户端请求根据负载均衡算法分配到后端节点处理。这种方法的优点是容错性好,不存在单点失效,以及可扩展性强。缺点也比较明显,包处理延迟较长,TCP router容易本身在沉重负荷下容易成为瓶颈。

3 分布广播式集群

分布广播式的统一网络接口集群并没有一个特殊的节点扮演集中调度器的角色,这一点区别于前述的集中控制式。所有节点使用相同的IP地址,客户端可以访问任意一个节点(图2所示)。每个网络包被广播到所有节点,其中某个节点将处理该网络包并应答给客户端,其它节点则忽略并丢弃这个包。分布广播式主要有Windows NLB[3],Clone Cluster[4]等。

分布广播式的优点是不存在单点失效,另外由于所有节点可以直接与客户端进行通讯,网络延迟相对较低。缺点主要在于静态调度算法难以根据实时的节点负载情况进行负载均衡,对于节点本身负载不平衡的情况,该调度无法达到负载均衡。

3.1 Windows NLB

Windows NLB[3]是Windows Server 2000使用的负载均衡机制。所有节点使用相同的IP地址,但有一个节点作为主节点。各节点可以同时收到传入的IP包,但根据其静态负载平衡算法只有一个节点接收并处理,其它节点将其丢弃。集群可以指定每个网络负载均衡节点的负载百分比,当有节点加入或删除时,负载百分比可以动态的改变。主节点通过发心跳消息到其它节点,探测其它节点的心跳,若有节点失效,可以重新调节其余节点并为其重新分配工作量,从而保持对客户的服务。由于网络负载平衡有没有专有的硬件要求,任何行业标准兼容的计算机都可以使用。与专有的硬件负载均衡解决方案相比,成本显著降低。

3.2 Clone Cluster

Clone Cluster[4]的提出避免了ONE-IP对路由器重新配置的需要。在Clone Cluster中,所有节点使用相同的IP地址与MAC地址,就好像克隆的节点一样。尽管节点的硬件MAC地址是不一样的,但可以通过ifconfig对其重新配置,是所有节点的MAC地址相同。节点的静态负载均衡算法使用hash映射。为了实现后台管理,每个节点还有另外一个网卡,配置不同的网络地址,连接到一个局域网中,叫做后台LAN。后台LAN的作用是管理内部通信、镜像操作传输以及故障处理等。

4 主从广播式集群设计

本文第3和第4部分分别介绍了常见的集中调度式集群和分布广播式集群的特点。它们各有缺点,集中调度式的缺点主要有单点失效以及调度器的处理延迟,分布广播式的缺点主要是调度算法不灵活等,但是,某种方式集群存在的缺点,在另一种身上并不存在。那么,是否可以将两种架构结合起来,取长弃短,设计一种新的集群统一网络接口架构,从而克服这些缺点呢?答案是可以的。接下来我们先将统一网络接口技术进行抽象分析,再基于分析设计出新的架构——“主从广播式”集群。

统一网络接口技术具体内容由两大“流”组成:“控制流”与“数据流”。数据流指网络数据的接收与发送过程中,数据包“流经”的位置;控制流指操作系统控制“数据流”所进行的一系列动作。集中调度式集群由中央调度节点统一控制网络负载的分发,此可谓控制流;其接收数据流必须经过中央调度节点再达到具体处理节点,发送数据流则可能直接由处理节点达到客户端。分布广播式集群并无统一的中央调度节点,也并无清晰的控制流;其接收数据流直接到达唯一的处理节点,到达其它节点的数据流被过滤掉,而发送数据流则由处理节点直达客户端。集中调度式的优点在于灵活的负载均衡(控制流),而分布广播式的优点在于数据直通节点(数据流)。

能否将两者优点结合起来呢?显然是可以的。两种集群存在缺憾的原因主要在于都没有清晰的分离数据流与控制流,可以将数据流与控制流进行分离,两种“流”分别使用最优路径,这是一种全新的架构——“主从广播式”集群。主从广播式集群的具体设计为:控制流使用集中调度方式,保持一个中央调度节点,控制网络负载到节点的分发;而数据流则仿效分布广播式,当连接建立好之后,该连接的所有数据流不再经过中央调度节点转发,而是由节点与客户端直接相连。

通过明确的将控制流与数据流分离,可以结合已有两种统一网络接口实现方式的优点,在不增加数据处理延迟的情况下提高控制能力,达到高效统一网络接口的目的。但该设计相对于已有的两种实现方式更为复杂,并可能需要额外的容错设计。

5 小结

利用集群构建网络服务器是一种廉价高效的方式,通常集群对外提供统一网络接口,客户端通过该接口获得集群的完整网络服务。集群统一网络接口技术目前实现方式有两种,分别是集中调度式与分布广播式。它们各有优缺点。从负载均衡灵活性上看,集中调度式架构相对更加灵活。从系统稳定性上看,分布广播式架构不存在集中调度式架构所存在的单点失效问题。从网络访问速度上看,分布广播式架构由于节点可以与客户端直接连接,访问速度更高。

通过分析看以明确,两种架构的优缺点是互补的,那么,能否将两者的优点结合起来,设计一种新的统一网络接口架构呢?答案是可以的。统一网络接口技术具体内容可抽象为“控制流”和“数据流”,笔者基于对两种流相关性的分析,设计出一种“主从广播式”集群统一网络接口架构。其核心设计思想为“控制流”与“数据流”分离,“控制流”按集中调度式的模式走,而“数据流”则按分布广播式的模式走。如此可以结合已有两种统一网络接口实现方式的优点,在不增加数据处理延迟的情况下提高控制能力,达到高效统一网络接口的目的。

参考文献:

[1]W. Zhang. Linux Virtual Servers for Scalable Network Services. Linux Symposium, 2000.

[2]D. M. Dias, W. Kish, R. Mukherjee, and R. Tewari. A scalable and highly available web server. In COMPCON ’96: Proceedings of the 41st IEEE International Computer Conference, pages 85-92, Washington, DC, USA, 1996. IEEE Computer Society.

[3]Network Load Balancing Technical Overview. Http:///technet/prodtechnol/windows2000serv/deploy/confeat/nlbovw.mspx.

[4]S. Vaidya and K. J. Christensen. A single system image server cluster using duplicated MAC and IP addresses. In Proceedings of the 26th Annual IEEE Conference on Local Computer Networks, pages 206-214,2001.

作者简介:

梁荣晓(1989-),男,山东日照人,江南计算技术研究所在读研究生,研究方向:操作系统。