确定源服务器在目标服务器中的最佳分布的系统和方法

文档序号:7959797阅读:202来源:国知局
专利名称:确定源服务器在目标服务器中的最佳分布的系统和方法
技术领域
本发明涉及一种用于在服务器虚拟中确定源服务器在目标服务器中的最佳分布的系统和方法。
背景技术
鉴于本发明的技术领域,此时有必要简要地回顾服务器虚拟的方法和在目标服务器中分布源服务器的问题。
按需计算是一种企业级计算模式,它根据需要将计算资源分布给组织及其个体使用者。这种方法使得企业能有效满足波动的计算需求。例如,如果一组使用者正在使用需要许多带宽的应用程序进行工作,按需计算模式可以将另外的带宽特别分布给该组,并将带宽从当时没有需要的用户那里转移出来。用于实现这种按需计算模式的一个主要工具是如下所述的服务器虚拟。
尽管现代操作系统原本就是多任务的,但是在任何给定的操作系统下运行的应用成程序之间,由于操作系统必须在它们之间分布资源,因此这些应用程序之间始终有一些相互作用。结果,有缺陷的或者过载的应用程序会明显使其它在同一个操作系统下运行的应用程序性能下降甚至不能工作。这个问题的理想解决方案是为每个应用程序提供专用的单个服务器,因为这会确保应用程序之间的最小的相互作用。另外,这种安排会允许管理者在给定的网络上运行多个操作系统,每个操作系统被构成为为不同的任务例如研发、部署和控制提供最佳性能。不幸的是,在大多数情况下,这种解决方案过于昂贵而不能实际实现。
克服这个问题的一个办法是在较少的目标服务器上虚拟运行不同操作系统的多个服务器(称之为源服务器)。然后可以根据使用者的需求容易地配置或者重新配置虚拟的服务器。由于不同的目标服务器可以具有不同的可用资源,每个源服务器可以具有不同的资源需求,因此源服务器在目标服务器中的分布方式实际上决定了服务于网络的需求的目标服务器的数量。
但是对源服务器在目标服务器中的分布的任何调查必须基于对网络的详细研究,并且必须考虑大量的参数。迄今为止,需要进行手工计算来确定源服务器在目标服务器中的最佳分布。但是由于这种优化问题的计算时间通常随着要考虑的参数的数量而成指数规律增长,因此在服务器虚拟过程中通常考虑的大量参数使得手工计算方法变得极为冗长和费时。结果,通常仅对相对少量的源服务器(也就是少于25个源服务器)才进行这种手工计算。
类似地,如果改变单个源服务器、目标服务器或者虚拟软件参数,必须对新的参数集重复手工优化的整个过程。因此对于调查各参数对源服务器分布的影响来说,不容易进行试验。
简化这种优化问题的一种方式是减少其中考虑的参数的数量。例如,可以仅关注源服务器和目标服务器的CPU和存储器参数。但是,这种简化导致方案准确性降低或者方案不可靠,利用缩小的参数集所确定的目标服务器的数量通常少于利用更完整的参数集所确定的目标服务器的数量。例如,如果所考虑的唯一参数是源服务器的CPU速度,x个目标服务器可能足以接纳一组源服务器。但是如果也考虑源服务器的存储器要求,可能必须使用多于x个的目标服务器来接纳这些源服务器(取决于目标服务器的存储器资源)。在任何情况下,不可能在少于x个的目标服务器中接纳所述源服务器。
另外,由于利用缩小的参数集获得的结果不可靠,因此在以后更好地理解了网络性能的时候,通常必须改变源服务器的分布。

发明内容
根据本发明,提供一种如所附的独立权利要求中所述的确定源服务器在目标服务器中的最佳分布的系统和方法。
本发明的其它方面由所附的从属权利要求中所述的其它实施方案来提供。
本发明提供一种用于确定源服务器在目标服务器中的最佳分布的自动机制,从而在考虑源服务器的硬件要求和功能要求的情况下需要最少数量的目标服务器来虚拟源服务器。
特别是,本发明的系统和方法能够虚拟多达65000个源服务器兵将其分布在多达1000个目标服务器中。另外,在具有1.5GHz处理器和1024GB RAM的P4便携式计算机上进行的试验显示,本发明的系统和方法在Excel 2002 SP-1电子表格中实现的时候,可以在4秒内虚拟500个服务器,在20秒虚拟2000个服务器。
与传统的手工计算技术相比,本发明的一个重要的优点在于,本发明可以适应多参数。这确保能对源服务器分布问题获得一个真正的最佳方案,从而减少了所要求的目标服务器的计算出来的数量。另外,由于本发明的系统和方法提供的解决方案是真正最佳的,因此在以后需要较少的校正(或者虚拟机器的重新定位),因为已经考虑了所有的相关网络/源服务器/目标服务器参数。
由于本发明提供了一种自动优化机制,因此容易(通过改变目标服务器特性(例如通过增加或者减少CPU功率、存储器等))进行试验来确定最佳的整合平台,并调查每个参数对最终的服务器分布解决方案的影响。


以下以举例的方式参考附图。
图1是显示在目标服务器中虚拟4个源服务器时服务器虚拟的实施例的方框图;图2是在4个目标服务器中虚拟12个源服务器时服务器虚拟的实施例的方框图;图3是显示第一实施方案提供的确定源服务器在目标服务器中最佳分布的方法的输入数据和输出数据的方框图;图4是第一实施方案提供的确定源服务器在目标服务器中的最佳分布的方法的流程图;并且图5是图4所示的方法所产生的源服务器分布的实施例的方框图。
具体实施例方式
为了简明起见,以下将确定源服务器在目标服务器中的最佳分布的方法称之为服务器优化方法。类似的,以下将服务器的硬件资源需求、用途和功能特性称之为服务器的操作参数。
参考图1,服务器优化方法5用目标服务器TS代替多个源服务器SS1、SS2、SS3和SS4,所述目标服务器运行能使其处理器在多个独立的操作系统之间切换的软件。这些多个独立的操作系统称之为虚拟服务器VS1、VS2、VS3和VS4。每个虚拟服务器可以作为一个独立服务器操作,其自己的操作系统运行一套应用程序。
因此,服务器虚拟方法有效地将每个源服务器映射给一个虚拟服务器,所述虚拟服务器在软件中模拟源服务器的行为和能力。为了清楚起见,以下将在服务器虚拟过程中采用的映射过程称之为形成源服务器和目标服务器之间的关系。
更详细的说,服务器虚拟系统的软件体系结构可以包括直接安装在目标服务器10上的单一的操作系统12。在操作系统12之上,虚拟层14处理虚拟服务器的重定向和仿真的过程。为了执行这些功能,虚拟层14需要资源(例如CPU、存储器和盘空间)。操作系统12和虚拟层14的结合称之为主机。主机可以大量生产任何数量的独立虚拟服务器(VSi),直至预先限定的最大限度(max_VS)。
顺便指出,某些虚拟层(例如Vmware ESX)不需要下层的操作系统,因为虚拟层自身直接安装在目标服务器硬件上。在这种情况下,主机仅由虚拟层构成。
在使用中,在每个虚拟服务器(VSi)上运行的操作系统和应用程序不直接控制目标服务器10的资源(例如存储器、硬盘驱动器和网络端口)。取而代之的是,虚拟层14从虚拟服务器应用程序14截取硬件需求,并适当地加以处理。
参考图2并从上述原理推而广之,包括多个源服务器SS1至SS12的网络可以映射至在多个目标服务器TS1、TS2、TS3和TS4上运行的多个虚拟服务器VS1至VS12。例如,源服务器SS1至SS4可以映射至在目标服务器TS1上运行的虚拟服务器VS1至VS4。类似的,源服务器SS5和SS6可以映射至在目标服务器TS2上运行的虚拟服务器VS5和VS6,源服务器SS7至SS9可以映射至在目标服务器TS3上运行的虚拟服务器VS7至VS9。最后,源服务器SS10至SS12可以映射至在目标服务器TS4上运行的虚拟服务器VS10至VS12。
应当认识到,上述方案仅作为例子。尤其应当认识到,源服务器不必在目标服务器中按照严格的数字顺序进行虚拟。因此,通过优化源服务器的分布,可以减少服务于网络所需要的目标服务器的数量。
参考图3,并结合前面的讨论,服务器优化方法5采用以下输入数据·源服务器清单和应用16·目标服务器配置和能力18;·虚拟软件限制和要求20;以及·虚拟参数22。
源服务器清单16考虑硬件资源(例如CPU速度、可使用的存储器、盘空间、盘I/O等)和这些资源的利用。源服务器清单16也考虑每个源服务器的功能特性。服务器优化方法所考虑的功能特性包括·源服务器所连接的网络区(例如DMZ和后端)·源服务器的可用性要求(例如24×7或者8×5可用性)·源服务器的分组;·源服务器的环境;以及·源服务器的位置。
上述功能特性可以用于对服务器优化方法5所提供的源服务器的可能分布形成约束条件。例如,由于安全原因,可能不希望连接至不同网络区的源服务器被虚拟到同一个服务器中,因此,源服务器所连接的网络区被包括盗源服务器优化方法5中。类似的,考虑单个源服务器的可用性要求,因为可能希望将具有不同可用性需求的源服务器虚拟到不同的目标服务器中以便于维护。
源服务器的分组被包括在源服务器的优化方法中,因为希望高可用性分组中的服务器被虚拟到不同的目标服务器中,以保持它们的可用性。类似的,考虑源服务器的环境,因为可能不希望属于不同的环境(例如制造、研发、测试等)的源服务器被虚拟到同一个目标服务器中。最后,考虑源服务器的位置,因为可能不希望在不同地点的源服务器被虚拟到同一个位置中的目标服务器中。
为了简短起见,“预先确定的限制”这一术语将用于表示多种不同的限制,包括分组规则、位置规则和虚拟限制。
上述输入数据由服务器优化方法5处理,以产生如下输出数据·所需要的目标服务器24的数量;·在每个目标服务器26上虚拟的源服务器的列表;以及·源服务器的当前分布所消耗的每个目标服务器的能力。
参考图4,在服务器优化方法中的第一个步骤中,从源服务器检索出30第一源服务器的操作参数30。然后第一源服务器的操作参数与第一目标服务器的操作参数进行比较,以确定第一源服务器是否可以在第一目标服务器中虚拟32。
尤其是,如果第一目标服务器的可用硬件资源不被第一源服务器的资源需求超过,就满足了虚拟层的约束条件,没有破坏服务器分组规则;将第一源服务器分配给第一目标服务器,调整第一目标服务器的操作参数来反映第一源服务器所占据的能力34。
但是如果第一源服务器的资源需求超过了第一目标服务器的可用硬件资源(也就是不可能在第一目标服务器中虚拟第一源服务器),将第一源服务器的操作参数与第二目标服务器的操作参数相比较36。
如果第二目标服务器的可用硬件资源没有被第一源服务器的资源需求超过,就满足了虚拟层的约束条件,没有破坏服务器分组规则;将第一源服务器分配给第二目标服务器,调整第二目标服务器的操作参数来反映第一源服务器所占据的能力34。但是如前所述,如果第一源服务器的资源需求超过了第二目标服务器的可用硬件资源,将第一源服务器的操作参数依次与第三目标服务器的操作参数以及剩余的目标服务器的操作参数相比较38。如果源服务器不能被接纳在目标服务器上,则将该事件报告为错误。
一旦第一源服务器已经虚拟到一个目标服务器上,将检索下一个源服务器的操作参数,并如前所述与第一目标服务器的更新后的操作参数相比较。
如果第一目标服务器的更新后的可用硬件资源不被第二源服务器的资源需求超过,就满足了虚拟层的约束条件,没有破坏服务器分组规则;将第二源服务器分配给第一目标服务器,调整第一目标服务器的操作参数来反映第二源服务器所占据的能力34。
但是如果第二源服务器的资源需求超过了第一目标服务器的可用硬件资源(也就是不可能将第二源服务器虚拟到第一目标服务器中),将第二源服务器的操作参数与第二目标服务器的操作参数相比较36以及依次与剩余的目标服务器的操作参数相比较,直至它被接纳在一个目标服务器中。
上述过程持续进行,直至所有的源服务器被虚拟到目标服务器上。在优化过程中维护在试图将源服务器分派给给定的目标服务器的过程中所遇到的问题的日志38。
图5显示了对将12个源服务器SS1至SS12虚拟到6个目标服务器TS1至TS6中的例子采用服务器优化方法所获得的结果。目标服务器分别具有·100速度单位(例如MHz)的CPU速度;·100数据单位(例如Mb)的存储器容量;·100通信量单位(例如Mbps)的盘I/O;以及·100通信量单位(例如Mbps)的网络通信量。
源服务器SS1、SS2、SS4、SS6和SS8-SS11采用Windows(注册商标)操作系统,服务器SS3、SS5、SS7和SS12采用Linux(注册商标)操作系统。源服务器SS1、SS2、SS4、SS5、SS7、SS8、SS10至SS12均具有24×7的可用性要求,而剩余的源服务器具有较小的可用性要求,也就是8×5可用性。另外,源服务器SS4和SS10属于同一个分组(C1)。
源服务器SS1具有20速度单位的CPU速度,40数据单位的存储器容量,10通信量单位的盘I/O和15通信量单位的网络通信量。源服务器SS2具有25速度单位的CPU速度,15数据单位的存储器容量,20通信量单位的盘I/O和20通信量单位的网络通信量。源服务器SS3具有20速度单位的CPU速度,20数据单位的存储器容量,5通信量单位的盘I/O和10通信量单位的网络通信量。
源服务器SS4具有40速度单位的CPU速度,8数据单位的存储器容量,30通信量单位的盘I/O和5通信量单位的网络通信量。源服务器SS5具有10速度单位的CPU速度,30数据单位的存储器容量,10通信量单位的盘I/O和30通信量单位的网络通信量。源服务器SS6具有5速度单位的CPU速度,20数据单位的存储器容量,30通信量单位的盘I/O和10通信量单位的网络通信量。
源服务器SS7具有50速度单位的CPU速度,10数据单位的存储器容量,40通信量单位的盘I/O和10通信量单位的网络通信量。源服务器SS8具有20速度单位的CPU速度,40数据单位的存储器容量,20通信量单位的盘I/O和20通信量单位的网络通信量。源服务器SS9具有25速度单位的CPU速度,25数据单位的存储器容量,40通信量单位的盘I/O和25通信量单位的网络通信量。
源服务器SS10具有30速度单位的CPU速度,50数据单位的存储器容量,10通信量单位的盘I/O和10通信量单位的网络通信量。源服务器SS11具有60速度单位的CPU速度,15数据单位的存储器容量,20通信量单位的盘I/O和5通信量单位的网络通信量。源服务器SS12具有35速度单位的CPU速度,10数据单位的存储器容量,30通信量单位的盘I/O和10通信量单位的网络通信量。
该服务器优化方法5将具有同样的可用性要求的源服务器分派给同一目标服务器。另外,该服务器优化方法将采用同样操作系统的源服务器分派给同样的目标服务器。在该例子中,源服务器SS1、SS2和SS4(都具有24×7的可用性,并运行Windows(注册商标)操作系统)被分派给目标服务器TS1。类似的,源服务器SS5、SS7和SS12(都具有24×7的可用性,并运行Linux(注册商标)操作系统)被分派给目标服务器TS3。最后源服务器SS6和SS9(都具有8×5的可用性,并运行Windows(注册商标)操作系统)被分派给目标服务器TS4,源服务器SS8和SS10(都具有24×7的可用性,并运行Windows(注册商标)操作系统)被分派给目标服务器TS5。
应当指出,根据前述的分组规则,源服务器SS4和SS10(属于同一个分组C1的成员)被分别分派给不同的目标服务器,也就是TS1和TS5。剩余的源服务器,也就是SS3和SS11被分别分派给目标服务器TS2和TS6。
应当认识到,上述分派的方案仅是一个例子,尤其是不应当被解释为是对实施服务器优化方法的限制。另外,应当理解,在该方法中可以采用更复杂的搜索算法,例如遗传算法。最后应当理解,该服务器优化方法可以在原则上集成到一个控制算法中,由此提供动态服务器分派机制。
在不脱离本发明的范围的基础上可以对上述方案作出改进和改变。
权利要求
1.一种对多个源服务器在分别具有资源的多个目标服务器中的分布进行优化的方法,其中每个源服务器具有功能特性,并且两个或者多个源服务器属于一个分组;所述方法包括如下步骤(a)确定目标服务器的可用资源(32);(b)对于源服务器的所述或者每一个功能特性确定与和目标服务器之间的关系有关的预定限制;(c)基于具有足以接纳源服务器的资源的目标服务器以及在源服务器和目标服务器之间满足的所述预定限制,确定源服务器和目标服务器之间的关系;(d)重复步骤(a)至(c),以将每个源服务器关联至适当的目标服务器。
2.如权利要求1所述的方法,其中确定所述预定限制的步骤包括在源服务器和目标服务器之间确定与虚拟规则和分组规则相关的预定限制。
3.如权利要求1或2所述的方法,其中源服务器具有可用性要求,该方法包括下述附加步骤将源服务器的可用性要求与已经分派给目标服务器的源服务器的可用性要求进行匹配。
4.如前面权利要求中任一项所述的方法,其中包括维护在实施该方法的过程中所遇到的错误记录的附加步骤(38)。
5.如前面权利要求中任一项所述的方法,还包括在源服务器和目标服务器之间建立关系。
6.如前面权利要求中任一项所述的方法,包括维护哪些源服务器被分派给哪些目标服务器的记录的附加步骤。
7.一种优化多个源服务器在多个目标服务器中的分布的系统,包括用于执行权利要求1-6的方法的装置。
8.如权利要求7所述的系统,其中所述源服务器或者每个源服务器的功能特性包括用于该源服务器的硬件资源需求。
9.如权利要求7或8所述的系统,其中所述源服务器或者每个源服务器的功能特性包括所述源服务器或者每个源服务器的分组成员资格的细节。
10.如权利要求7至9中任一项所述的系统,其中所述源服务器或者每个源服务器的功能特性包括所述源服务器或者每个源服务器所关联的网络区的细节。
11.如权利要求7至10中任一项所述的系统,其中所述源服务器或者每个源服务器的功能特性包括所述源服务器或者每个源服务器的环境的细节。
12.如权利要求7至11中任一项所述的系统,其中所述源服务器或者每个源服务器的功能特性包括所述源服务器或者每个源服务器的位置的细节。
13.如权利要求7至12中任一项所述的系统,其中该系统包括对所采用的目标服务器的数量、源服务器在其中的分布以及目标服务器的剩余资源进行报告的附加装置。
14.一种计算机程序,包括当所述计算机程序在计算机系统上执行的时候,用于实施如权利要求1-6任一项所述的方法的步骤的指令。
全文摘要
本申请涉及确定源服务器在目标服务器中的最佳分布的系统和方法。其中,每个源服务器具有功能特性,并且两个或者多个源服务器属于一个分组;所述方法包括如下步骤(a)确定目标服务器的可用资源(32);(b)对于源服务器的所述或者每一个功能特性确定与和目标服务器之间的关系有关的预定限制;(c)基于具有足以接纳源服务器的资源的目标服务器以及在源服务器和目标服务器之间满足的所述预定限制,确定源服务器和目标服务器之间的关系;(d)重复步骤(a)至(c),以将每个源服务器关联至适当的目标服务器。
文档编号H04L12/24GK1866217SQ20061007405
公开日2006年11月22日 申请日期2006年4月4日 优先权日2005年5月20日
发明者鲁伊斯·阿吉拉·马特奥 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1