基于ip的任务自主均衡分配集群系统的制作方法

文档序号:6516179阅读:170来源:国知局
基于ip的任务自主均衡分配集群系统的制作方法
【专利摘要】基于IP的任务自主均衡分配集群系统。本发明属于计算机领域中的分布式计算,可用于多计算机多任务的任务自动均衡分配,增加系统的并行性以提高效率。同时也作为冗余系统,当部分服务器出现故障时,系统仍然工作并能够对外提供稳定的服务,增加了系统的可靠性。通过本发明的算法,网络中的N台服务器向外提供若干个虚拟机组,每个虚拟机组有若干个虚拟机,组内的机器执行相同的任务且对外处理能力基本相同。用户使用方法非常简单。按照本发明的思路,本人使用C++语言编程已实现了其功能,并已经在多家企事业单位使用过,效果良好。
【专利说明】基于IP的任务自主均衡分配集群系统
【技术领域】
[0001]本发明属于计算机领域中的分布式计算,可用于多计算机多任务的任务自动均衡分配,增加系统的并行性以提高效率。同时也作为冗余系统,当部分服务器出现故障时,系统仍然工作并能够对外提供服务,增加了系统的可靠性。
【背景技术】
[0002]随着信息社会的到来,对计算机的需求越来越多,传统的方法难以为继。最近“云计算”、“云存储”模式不断的推出,使人们看到用分布式的多服务器集群的方式来解决计算和存储问题是技术发展的必然方向。多机集群是指使用多台服务器共同承担多个用户多个任务的一种方式;多机集群一般都使用网络来相互通信和接受用户任务。目前,使用集群服务器向用户提供服务有许多方案。这些方案的实现特征(也是不足)主要包括以下:。
[0003]I任务的分配在集群服务器内部,对用户透明。服务器集群对任务进行分解、分配、中间结果的封装和最后结果合成(如专利CN102882973A “一种基于点对点P2P技术的分布式负载均衡系统”)
这样做就要求系统内服务器对用户业务要有足够的了解,并能够提供提交任务和接收结果的标准接口。显然其实现方法必然很复杂;并且由于用户端业务的千差万别,提供一个泛之四海而皆准的统一接口和标准也是不现实的。
[0004]2服务器集群为外部用户提供单纯的一种能力,如计算能力(如专利CN102882973A)
用户的需求往往是多样的,计算能力是一种,存储能力也是一种,还有其它能力如对外通讯能力等;以及这些能力的组合,如计算+存储。
[0005]3为了达到充分的并行性,系统往往要求虚拟机的数量大大多于实际服务器的数量(如专利 CN102882973A)
虚拟机的数量多于实际服务器的数量的好处是所有服务器都同时工作而保证了并行的充分。但有时候人们需要使某些服务器尽可能地工作,而另一些尽可能地“休息”,以便在灾难和故障时有更好的“动力”;这就是常常遇到的“冗余备份”问题。冗余可以使某些机器始终保持良好的初始状态蓄而不发,而另一些机器则物尽其用。
[0006]4任务分配往往需要一个主结点(或中心结点)来主导和调节,其它服务器则作为其从结点
由于这个主结点在宏观控制全局,因此它是系统中最关键的部分,一旦此结点故障或出错则整个系统都会出错甚至瘫痪(这类专利较多)。
[0007]5系统中往往有一个负责通信的部件(或结点)来主导服务器之间的通信和数据传送;
同上面一样,由于有关键部件的存在,此关键点一旦故障或出错则整个系统都会出错甚至瘫痪。
【发明内容】

[0008]本发明可以克服多机集群系统的上述诸多缺点,其目的就是为用户提供一种简单易用的、高效可靠的并行系统。系统中各个服务器可以是异构的、也可以是同构的,它们通过网络相互连接并与各个用户连接;由于没有中心,集群中的各个服务器完全自治,任何一个或多个服务器出现故障,都不影响其它服务器继续对用户提供服务;当故障产生时,实际服务器会自动减少,反过来当系统性能需要加强时,可以人工加入新的服务器;但无论内部实际服务器如何增减,系统的对外接口始终不变,用户的使用方式始终不变;即系统的功能不会随着内部实际服务器增减而变化,只是其所体会到系统的总体性能有所强弱;当实际服务器的数量大于本系统对外的虚拟服务器时(即冗余系统),内部故障不会导致用户体会到性能有所下降;只要系统中各个独立的服务器按照本发明的协议算法,系统就会达到一种稳态,并在此稳态下向外部用户提供服务;当内部服务器增减时,系统会经过短暂的调整而达到新的稳定状态。
[0009]分布式多机系统中,设计人往往去构造一种任务分解和分配的模式,但用户业务的千差万别使得上述模式往往不能够充分体现用户的需求;根据多年的编程经验,本人认为:用户最了解自己的业务,由用户根据自己的业务情况来分配任务是最合理的;为此集群服务器系统只向外在用户提供稳定可靠的多个虚拟计算机,用户自己把任务提交到虚拟机上执行即可。
[0010]一、系统的结构 (图1系统结构图)
图1中在物理层的N台服务器通过网络向外提供了 3个虚拟机组的IP地址,第I组有Ml个虚拟机,第2组有M2个虚拟机,第3组有M3个虚拟机;每组IP地址代表一种不同的处理能力(或一类服务项目,诸如计算、存储、通信等),用户的不同类型的任务可以分别向不同的虚拟机组发起;每组虚拟机中各个IP地址的虚拟机的处理能力都大致相同,用户随机选择其中的一个或多个虚拟机并向其发起任务;下面我们以一种服务项目(即一组逻辑层的虚拟机)为例进一步介绍如图1所示系统有3层结构。
[0011]应用层
I从M个具有不同IP的逻辑服务器(虚拟机)中随机选择一个或多个,然后按照这些IP地址来传送数据或提交任务
2如何分割任务、把任务分成几份,由用户端根据用户的具体业务来决定。
[0012]逻辑层
I对外提供M个逻辑服务器的IP地址,即M个虚拟机,每个虚拟机的处理能力基本相

2把这M个对外IP地址映射到对内的N台服务器上;各个服务器在相互通信后进行计算得到一个映射表,M台虚拟机和N台实际服务器就是通过此表来完成映射
3当某个或某些机器出故障时(或增加服务器时),自动重新计算并映射IP,保证各个机器上任务分配的均衡性。
[0013]物理层
I拥有N台服务器,设其中第i台服务器承担Iii个IP地址,i = 1..N 2用内部的N台服务器来承担外部的M个IP地址,并且 M =所有 Iii 之和(i = 1..N)
这里可以是M = N或或M>N或M〈N 当M = N时,平均每台服务器对外提供一个IP地址;
当M > N时,平均每台服务器对外提供多个IP地址,即一些服务器会承受几个(逻辑上)对外IP服务器的任务压力,这样提供了较好的并行性;
当M < N时,平均每台服务器对外提供不到一个IP地址,这就是典型的冗余服务器系统,这样在故障产生时不仅功能不变,性能也不会下降;
3N台服务器通过某种适当方式P2P全连接,任何2台服务器都可以交换信息
4N台服务器的硬件型号或能力可以不同,甚至操作系统也可以不同,但必须带有网络适配器且支持TCP/IP协议。
[0014]二、系统的物理构成
I配有网络适配器的N台服务器
2服务器之间的网络连接,服务器和外部计算机之间的网络适配器连接,如图2所示 (图2内部连接图)
图2中N台服务器通过点对点全连接的方式交换信息;心跳线可以是任何方式如RS232/RS485等,但常用的方式是以太局域网;所有的心跳线可以在一个物理局域网中,也可以分布在若干不同的网段中(只要这些网段能够连接通信);N台服务器通过统一的网关对外发布IP地址并接收以IP为基础的任务(数据)包;外部用户按照统一的IP地址组向N台服务器组成的M台虚拟机发送任务(数据)包。
[0015]三、系统的平台环境
I服务器上安装有计算机操作系统,能够运行程序 2上述操作系统上含有TCP/IP协议栈和网络适配器驱动程序 3网络上遵守运行TCP/IP协议
4每台服务器上配置一个可执行文件,及其配置文件。可执行文件将根据此配置文件来在服务器间相互传送数据和调整其运行参数。
[0016]四、服务器上的软件算法
I通过读取配置文件知道服务器集群的结构和初始状态,通过P2P的方法定期相互交换最新状态
2根据配置表来计算本机所应该承担的对外IP数量和具体的IP地址。假设服务器的编号从I到N,计算方法如下
(1)计算第i台机器的应该承担数量为
MX第i台机器的负担能力/所有N台机器的负担能力之和 设其商为Y (i)、其余数为X U)
(2)若本机为J则本机至少承担Y(Z)个对外IP地址。在YC/)之外承担的更多对外IP数由下面的计算决定
(3)计算Z= M—全部Y(i)之和。把X(i)按照从大到小排序,依次每机再分配一个IP, Z — Z-1,直到Z=O为止;或者一种简化的版本是把Z个剩余的IP地址直接分配到前(或后)Z台机器上;
3配置文件中的参数包括本台机器的IP号、对外IP的网卡号、内部通信的端口地址、物理机器数量N、逻辑机器数量M、各物理机器的IP地址和各台机器的负载能力、各逻辑机器的IP地址等(详见下面实施部分)
4服务器之间通过网络(逻辑上的心跳线)交换信息,信息包含4个字节分别反映CPU的繁忙程度、内存的使用程度、磁盘的空余程度、网络的空闲程度这4个指标
5若某台服务器在超过一定时间内都联系不上,就认为其发生了严重故障,其负载能力被认为是O
6对于联系的上的服务器,将根据其发送的4个指标来重新计算其负载能力,然后得出其承担的虚拟机的数量和相应的IP地址
7若IP地址因为局域网中各个服务器的能负载力更新的不一致而造成冲突,使用ARP广播是中较好的解决方法。
[0017]四、有益效果
本发明对比已有技术具有以下创新点:。
[0018]I对虚拟机进行分组,使得系统可以(以分组为单位)向外提供多种不同类型的服务;
一个实体服务器有一个系统内部交互的IP和若干组向外提供服务的IP地址,每一组IP提供一类服务。如果某台实体服务器不向外提供某类服务,则其(通过配置文件)在相应的IP地址组中不承担IP地址。
[0019]2集任务分配系统和冗余系统于一体;
如上所述,实体服务器的数量N和对外虚拟机组中的IP地址数量Mi相比,可以比它大、可以比它小、可以一样大;一般的任务分配系统中Mi≥N,而冗余系统中N≥Mi。
[0020]
本发明对比已有技术具有以下显著优点:。
[0021]I容错性高;由于没有任务分配结点和通信控制等“中心结点”,各个服务器完全是独立自治的,既能够避免中心结点(以及其它服务器结点)硬件故障对整个系统造成的破坏,也能够避免某些结点(如遭到病毒攻击而企图控制其它结点)软件出错对整个系统造成的破坏。
[0022]2系统结构的可靠性高;除了定期相互交换少量指标数据,服务器之间没有其它交互,各个服务器独立性高。任务分配和封装完全由用户端控制,不在服务器内部和之间;一个IP地址下的任务完全在一台机器上实现。在这种机制下,由于系统内部服务器之间的交互很少,即系统整体耦合性很低,因此从结构上讲系统的可靠性高(同专利CN102882973A相比)。
[0023]3用户使用方法简单;系统对外提供若干组服务,每组有若干个虚拟机IP地址,每组中各个虚拟机的能力基本相同;由于任务是以虚拟机的形式出现,不需要像许多系统那样对外有复杂的接口、对内有复杂的通信机制和流程;用户根据千差万别的业务,自己把具有原子性的分块任务放到各个虚拟机上去执行,对自身任务和系统的可控度高、用法简单;这样做使得各台机器上任务的内聚性高,再结合上面所述的耦合度低,因此非常符合“软件系统”的设计思维。
[0024]【专利附图】

【附图说明】
[0025]图1系统结构图 图2内部连接图
图3实施例1图 图4实施例2图。
[0026]五、【具体实施方式】。
[0027]实施例1
2台服务器向外提供5个虚拟机及其IP地址。
[0028]每台服务器上有2个网卡(编号0、1),其中O号网卡在内网,通过以太网构成心跳线网络,内网中IP地址为192.168.1.* ;1号网卡在外网,通过局域网及其网关向外提供虚拟机的IP地址,地址为202.115.1.* 。
[0029]在服务器上配置文件的格式参考如下 :
<注释行:以下为本台机器的IP号、对外IP的网卡号(网卡号从O开始编号)>
192.168.1.101
1
〈注释行:以下为内部通信的端口地址、物理机器数量N、逻辑机器数量M (对外IP数
量)>
16000
2
5
〈注释行:以下为各物理机器的IP地址(服务器相互间的内IP),和各台机器的负载能力。其中必须包括上面的“本台机器的IP号”及其负载能力>
192.168.1.137
10
192.168.1.101
10
〈注释行:以下为各逻辑机器的IP地址(外部用户看到的外IP) >
202.115.1.91
202.115.1.92
202.115.1.93
202.115.1.94
202.115.1.95
(图3实施例1图)
[0030]实施例2
2台服务器向外提供4个虚拟机及其IP地址。
[0031]每台服务器上只有I个网卡(编号0),网卡通过局域网构成心跳线网络,IP地址为192.168.1.* ;网卡同时也通过同样的局域网及其网关向外提供虚拟机的IP地址,地址为202.115.1.*。
[0032]在服务器上配置文件的格式参考如下:<注释行:以下为本台机器的IP号、对外IP的网卡号>
192.168.1.101
O
〈注释行:以下为内部通信的端口地址、物理机器数量N、逻辑机器数量M (对外IP数
量)>
16000
2
4
〈注释行:以下为各物理 机器的IP地址(服务器相互间的内IP),和各台机器的负载能力。其中必须包括上面的“本台机器的IP号”及其负载能力>
192.168.1.137
10
192.168.1.101
10
<注释行:以下为各逻辑机器的IP地址(外部用户看到的外IP) >
202.115.1.91
202.115.1.92
202.115.1.93
202.115.1.94
(图4实施例2图)
[0033]备注:
经查询,在方法上同本发明最相近的专利为CN102882973A,同其它众多相关专利相比本专利和专利CN102882973A具有明显的区别和显著的优越性;本发明与专利CN102882973A在方法上的区别,在说明书中多处已说明。除了方法上的区别而外,本发明与专利CN102882973A的区别还在于本发明同硬件和平台相关联,即如说明书中所述带有网络适配器(网卡)及其驱动程序,且运行于支持TCP/IP协议之网络;故本发明更加符合审查指南第二部分第九章《关于涉及计算机程序的发明专利申请审查的若干规定》中“包含技术特征”,和专利审查中常用的Machine-or-Transformation Test要求。
[0034]本发明使用C++语言编程,并在多家企事业单位使用过,效果良好;本人作为程序的唯一编程者,在本发明申请后将进一步申请软件著作权。
【权利要求】
1.基于IP的任务自主均衡分配集群系统,其特征包括: (1)使用一个或多个计算机服务器通过网络向外部用户提供服务,通过不同虚拟机的IP地址来提供任务的并行性;各个服务器的硬件和操作系统可以是相同的也可以是不同的,但都要配备网络适配器和支持TCP/IP网络协议,同时使用本发明的算法;各个服务器在本发明的算法驱动下,自动均衡分配IP在各个服务器上的数量,对外始终保持IP接口的稳定性; (2)各个服务器高度独立,服务器之间进行P2P的连接,相互传送信息;在本发明算法的控制下,任何服务器产生故障后,其IP地址和相应的虚拟机将自动被其它机器替代;当其恢复之后,IP地址和相应的虚拟机将被其它机器回还; (3)IP地址是系统向外提供服务的唯一接口,任务的切分和封装完全在用户端完成;一个虚拟机有唯一的一个对外服务IP,每个虚拟机的服务能力大致相同; (4)服务器之间只定期相互传递极少量状态信息,如CPU/内存/磁盘/网络使用率;不参与任务的(再)分配或数据的(再)封装; (5)各个服务器上执行的下面算法: A通过读取配置文件知道服务器集群的结构和初始状态,通过P2P的方法定期相互交换最新状态 B根据配置表来计算本机所应该承担的对外IP数量和具体的IP地址;假设服务器的编号从I到N,对外服务的虚拟机的有M个,则计算方法如下 BI)计算第i台机器的应该承担数量为 MX第i台服务器的负载能力/ N台服务器的全部负载能力 设其商为Y(i)、其余数为X(i) B2)若本机为j,则本机至少承担Y(j)个对外IP地址;在¥(」)之外承担的更多对外IP数由下面的计算决定 B3)计算Z = M—全部Y(i)之和^EX(i)按照从大到小排序,依次每机再分配一个IP且Z — Z-1,直到Z=O为止;或者一种简化的版本是把Z个剩余的IP地址直接分配到前(或后)Z台机器上; C配置文件中的参数包括本台机器的IP号、对外IP的网卡号、内部通信的端口地址、物理机器数量N、逻辑机器数量M、各物理机器的IP地址和各台机器的负载能力、各逻辑机器的IP地址等; D服务器之间通过网络交换信息,信息仅仅包含反映CPU的繁忙程度、内存的使用程度、磁盘的空余程度、网络的空闲程度等少量的指标;由这些指标来构成出新的服务器的负载能力; E若某台服务器在超过一定时间内都联系不上,就认为其发生了严重故障,其负载能力被认为是O ;F对于联系的上的服务器,将根据其发送的指标来重新计算其负载能力,然后得出其承担的虚拟机的数量和相应的IP地址; (6)N台服务器提供M个虚拟机的IP地址,在配置时可以是M = N或M>N或M〈N ;当N < M时为典型的并行系统;当N > M为典型的冗余系统,即一定程度的故障不会造成整体系统服务性能的下降。
2.如权利要求1所述的一种基于IP的任务自主均衡分配集群系统,其系统可以以分组为单位向外提供多种不同类型的服务,不同的分组可提供不同类型的服务;一个分组提供一类服务,它有若干虚拟机IP地址,这些虚拟机IP由N台服务器来承担,分配方法同权利要求I中方法一样。
3.如权利要求1所述的一种基于IP的任务自主均衡分配集群系统,其系统构成的一种较好的方式是把各个服务器置于一个局域网内;每个服务器可以有多个网络适配器,但其中一个适配器A应该同其它服务器的适配器处于一个局域网内,负责服务器之间的信息交换;另一个适配器B应该同其它服务器的适配器处于一个局域网内,负责服务器集群的对外服务;当然A、B也可以是同一个网络适配器,同其它服务器的适配器处于一个局域网内,既相互交换信息又负责服务器的对外服务。
4.如权利要求3所述的一种基于IP的任务自主均衡分配集群系统,在局域网中使用ARP广播来预防IP地址变换时可能产生的暂时冲突;即当服务器在删除自己过去承担的IP,或新增自己承担的IP时 ,向局域网中发送ARP广播包,以通知其它服务器即时更新IP。
【文档编号】G06F9/455GK103533068SQ201310497976
【公开日】2014年1月22日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】黎亮 申请人:黎亮
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1