对多个集群部署应用的方法和系统的制作方法

文档序号:7654338阅读:229来源:国知局
专利名称:对多个集群部署应用的方法和系统的制作方法
技术领域
本发明通常涉及数据传送,更具体而言,涉及对于大型集群的同步对等(peer to peer)部署的应用的传播。
技术背景对机器集群(例如,WebSphere集群)部署Java 2平台,企业 版(J2EE)应用(Java和所有基于Java的商标均为在美国、其他国 家等Sun Microsystems公司的商标)的一种方法包括1. 部署管理器对应用运行部署工具,并生成部署的代码;和2. 部署管理器将部署的代码并行传送到集群成员。 由于部署的应用可能相当大,网络带宽(即便在l吉字节(GB)网络上也是如此)将很快变成瓶颈。 一旦耗尽部署管理器的网络带宽, 对集群的应用部署时间将随集群成员数量增加而呈线性增长(或更 糟)。作为示例,对于通过GB网络部署到450个集群成员的1331MB应用1GB网络带宽=125兆字节(MB) /秒;以及 硬盘(HD)有限传送速率-25MB/秒。 在前5个连接之后,带宽随每个附加集群成员呈线性减少 部署速度=(125MB/秒)/ 445集群成员=0.281\18/秒;以及 总部署时间-1331MB /0.28MB/秒-4750秒=79分钟。 从而,为了将应用部署到集群的每个成员要花费79分钟。 客户用来解决该问题一种方法是,投入昂贵资金进行网络升级, 这对他们每天的需求而言通常是不必要的。另一种方法是由基于软件 的解决方案使用对等下栽器。该类程序被设计成用于从对等网络异步
地对文件进行编目、搜索和下载,通常从数个不同的机器下载文件的 各部分以便使下栽速度最大化。该过程是异步进行的,这是由于在从 节点可将文件发送出之前必须将文件彻底下栽到该节点,这限制了下 载速度。

发明内容
本发明提供了一种同步对等传送模型,其使用所有可用网络带 宽,按照向一个机器发送应用代码所能达到的速度,对整个集群部署 应用代码。同步对等传送模型包括两部分。第一部份确定应由部署管 理器打开以便使网络带宽最大的同时连接的数量。这通过使用哑文件
(dummy file)实现。第二部分使用由部署管理器打开的同时连接对 集群同步部署应用。
本发明的第一方面涉及一种用于向集群成员部署应用的方法,包 括确定应向集群成员打开的以便使网络带宽最大的同时连接的数量 N;和使用N个同时连接将应用同步部署到集群成员。
本发明第二方面涉及一种用于向集群成员部署应用的系统,包 括用于确定应向集群成员打开的以便使网络带宽最大的同时连接的 数量N的系统;和用于使用N个同时连接将应用部署到集群成员的系 统。
本发明的第三方面涉及一种存储在计算机可读介质上的程序产 品,所述程序产品用于向集群成员部署应用,所述计算机可读介质包 括的程序代码用于确定应向集群成员打开以便使网络带宽最大的同 时连接的数量N;和使用N个同时连接将应用部署到集群成员。
本发明的第四方面涉及一种用于向集群成员部署用来部署应用 的程序的方法,所述方法包括提供计算机基础结构,所述计算机基础 结构用于确定应向集群成员打开以便使网络带宽最大的同时连接的 数量N;和使用N个同时连接将应用部署到集群成员。
本发明的示例性方面用于解决此处所述的问题以及没有描述的 其他问题。


结合附图,通过后面的详细描述,将更好地理解本发明的这些以
及其他特征,其中
图l的流程图根据本发明的实施例表示部署管理器所执行的示例 性程序,用于确定应打开以使网络带宽最大的同时连接的数量;
图2的流程图根据本发明的实施例表示部署管理器所执行的示例 性程序,用于对集群的每个成员部署应用;
图3根据本发明的实施例表示用于对集群的集群成员设置和传递 部署令牌的示例性过程;以及
图4表示用于实现本发明实施例的示例性计算机系统。
附图仅仅出于示例性表示,并不意在描绘出本发明的具体参数。 附图意在仅表示本发明的典型实施例,因此,不应将其视为对本发明 范围的限制。在附图中,相同的附图标记表示同样的元件。
具体实施例方式
如以上所述,本发明提供了一种同步对等传送模型,其使用所有 可用网络带宽,按照向一个机器发送应用代码所能达到的速度,对整 个集群部署应用代码。同步对等传送模型包括两部分。第一部份确定 应由部署管理器打开以便使网络带宽最大的同时连接的数量。这通过 使用哑文件实现。第二部分使用由部署管理器打开的同时连接对集群 同步部署应用。本发明利用将集群成员互连的交换网络的全双工和专 用带宽能力。
现在参照附图,图1的流程图IO表示由部署管理器所执行的示 例性过程,其用于确定应打开以使网络带宽最大的同时连接的数量。 在步骤S11中,由用户启动过程。作为响应,在步骤S12,部署管理 器在其硬盘上生成哑文件。在步骤S13,部署管理器与集群的一个成 员连接,开始传送哑文件,监视在该连接上的传送速率。在步猓S14 中,部署管理器与集群的另一成员连接,并开始传送哑文件,再次监
视在该连接上的传送速率。重复进行步骤S14,直至在步骤S15中由 部署管理器确定每个集群成员的传送速率已经下降。在步骤S14中由 部署管理器进行的连接的数量是应打开以使网络带宽最大的同时连接 的数量(N)。该数量是硬盘访问和网络带宽的函数,它应保持固定, 并在步骤S16中,将其保存在部署管理器的配置文件中。
图2的流程图20表示部署管理器所执行的示例性过程,用于对 集群的每个成员部署应用。在步骤S21中,部署管理器从其配置文件 检索出应打开的用于使网络带宽最大的同时连接的数量(N)。在步 骤S22,部署管理器为它要连接的每个集群成员准备"部署令牌"。
参看图3,图3表示出部署管理器30和示例性集群32,该集群 具有集群成员34A, 34B, 34C, ..., 34N,按如下步骤准备部署令牌
(A) 将集群成员分成N个部分。在该示例中,N等于2。这意 味着,在耗尽网络带宽之前,能够将数据以最大速度同时传送到2个 集群成员。
(B) 生成N个部署令牌36A, 36B。在各个部署令牌36A, 36B 中封装有值N和每个部分中的集群成员的列表。在该示例中,部署令 牌36A包括值N=2和包括集群成员34A, 34B, 34C, ..., 34G的列 表,而部署令牌36B包括值N-2和包括集群成员34H, 341, 34J,..., 34N的列表。
(C) 部署管理器30分别打开与每个部署令牌36A, 36B中列表 上第一集群成员34A,34H的连接,并通过该连接发送出部署令牌36A, 36B。
(D) 当接收到部署令牌36A, 36B时,集群成员34A, 34H分 别从部署令牌36A, 36B中集群成员列表中将它们自身去除,并将其 余列出的集群成员分成N个部分(如果剩余的集群成员数量小于N, 则跳过(E)和(F),并与N个集群成员进行连接)。
(E) 集群成员34A生成N个部署令牌36C,36D,集群成员34H 生成N个部署令牌36E, 36F。在各个部署令牌中封装有值N和每个 部分中的集群成员的列表。在该示例中,部署令牌36C包括值N=2
和包括集群成员34B, 34C, 34D的列表,部署令牌36D包括值N=2 和包括集群成员34E, 34F, 34G的列表,部署令牌36E包括值N=2 和包括集群成员341, 34J, 34K的列表,部署令牌36F包括值N=2 和包括集群成员34L, 34M, 34N的列表。
(F) 集群成员34A分别打开与部署令牌36C, 36D中列表上第 一集群成员34B, 34E的连接,并分别发送出部署令牌36C, 36D。同 样,集群成员34H分别打开与部署令牌36E, 36F中列表上第一集群 成员341, 34L的连接,并分别发送出部署令牌36E, 36F。
(G) 重复以上处理,直至对全部集群30进行了处理为止。以 此方式,将整个集群30连成树。
现参看图2,在步骤S23中,在使用上述处理成功建立起连接之 后,每个集群成员向部署管理器发送"就绪(ready )"消息。当部署管 理器接收到来自每个集群成员的就绪消息之后(步骤S24),在步骤 S25中,部署管理器准备好部署应用。
在步骤S26中,部署管理器向与其相连的N个集群成员发送出 部署的代码。在图3所示示例中,例如,部署管理器30向集群成员 34A, 34H发送部署的代码。在步骤S27中,当从部署管理器接收到 部署的代码时,每个集群成员进行以下操作
A) 按照存储器到存储器的方式,将数据流传递至与其相连的N 个集群成员,这消除了硬盘延迟。在图3所示示例中,例如,集群成 员34A按照存储器到存储器的方式将数据流传递至集群成员34B, 34E,而集群成员34H按照存储器到存储器的方式将数据流传递至集 群成员341, 34L。
B) 将数据异步存储到其硬盘。就此意义而言,通过在向其他集 群成员回送数据之前等待盘写入,没有浪费时间。
重复该过程,直至部署的代码被所有集群成员接收。在图3所示 示例中,例如,当部署的代码由处在树的底部的集群成员34C, 34D, 34F, 34G, 34J, 34K, 34M, 34N完整接收之后,处理结束。
假定与以上所述相同的情形,其中包括通过GB网络部署到450
个集群成员的1331MB应用,其中,网络带宽为125MB/秒,部署管 理器的HD有限传送速率为25MB/秒,那么,总数据传送速率为
总传送速率=1331 MB/25 MB/秒-53秒(比上述现有技术示例的 情形快89倍)
就此意义而言,总传送速率仅由部署管理器硬盘的HD有限传送 速率进行控制。
根据本发明,以同步方式在集群上传递数据。目前,许多处理是 按照树形方式传递文件,如Internet螺虫、文件镜像服务器、对等文 件共享程序等。然而,这是异步实现的,其迫使一个节点在向另一节
点发送文件之前必须将文件全部接收。通过在启动数据传送之前创建 树,如本发明所提供的,可在将全部文件下载之前从节点传播数据, 并可使网络以最高速度进行传递。此外,通过优化每个节点的输出连 接的数量,对具体集群优化整个树结构。
本发明通过部署令牌形成例如如图3所示的"部署树"。就此而言, 节点可并行传播令牌,从而,为创建到如图3所示集群中每个服务器 的连接,仅进行4次迭代。
在集群成员之间,以存储器到存储器方式传递数据。在不首先建 立整个树的条件下,这是#^难实现的,因为以25兆字节/秒的速率, 连接延迟或失效将可能迫使将数据緩沖在硬盘上。由于这将需要对盘 写入且然后在发送数据前进行读取,从而将会减慢数据传送速度。使 用本发明,将会避免该现象发生。
图4表示用于实现本发明实施例的示例性系统100。系统100包 括计算机基础结构102,计算机基础结构102能够执行此处所述的各 种处理步骤。计算机基础结构102被显示出包括计算机系统104,计 算机系统104作为部署管理器,如以上所述。计算机系统104包括 同时连接确定系统130,用于确定应打开以使网络带宽最大化的同时 连接的最大数量N;部署令牌系统132,用于准备和向集群136的N 个成员134发送部署令牌;和代码部署系统138,用于将应用代码部 署到集群136的N个成员134。
计算机系统104被示出包括处理单元108、存储器IIO、至少一 个输入/输出(1/0)接口 114、和总线112。此外,所示计算机系统 104与至少一个外部设备116和存储系统118进行通信。 一般而言, 处理单元108执行存储在存储器110和/或存储系统118中的计算机程 序代码。当执行计算机程序代码时,处理单元108能够对存储器110、 存储系统118、和/或I/0接口读取和/或写入数据。总线112提供在计 算机系统104中各单元之间的通信链路。外部设备116可包括能够使 用户(未示出)与计算机系统104进行交互的任何设备(例如,显示 器120)或能够使计算机系统104与一个或多个其他计算机系统进行 通信的任何设备。集群136的每个成员134可包括同样的单元配置。 集群136的每个成员134还包括其自己的部署令牌系统和代码部署系 统,并按如上所述操作。
在任何情形中,计算机系统104都可包括能够执行由用户安装的 计算机程序代码的任何通用制造计算产品(例如,个人计算机、服务 器、手持式设备等)。然而,应该理解,计算机系统104仅是可执行 本发明多种处理步骤的多种可能的计算机系统的表示。就此方面而言, 在其他实施例中,计算机系统104能够包括,包括有用于执行特定功 能的硬件和/或计算机程序代码的任何专用制造计算产品,包括有专用 和通用硬件/软件等组合的任何制造计算产品。在每种情形中,可分别 使用标准编程和工程技术创建程序代码和硬件。
同样,计算机基础结构102仅示例性地表示可用于实现本发明的 各种计算机基础结构。例如,在一个实施例中,计算机基础结构102 包括在任何类型的有线和/或无线通信链路(例如,网络、共享存储器 等)上进行通信的两个或多个计算机系统(例如,服务器集群),以 执行本发明的多个处理步骤。当通信链路包括网络时,网络可包括一 种或多种类型的网络的任何组合(例如,Internet,广域网、局域网、 虚拟专用网等)。无论哪种情形,计算机系统之间的通信可使用各种 类型传送技术的组合。
应该理解,如图4所示各种系统的其中某些可单独实现、组合实
现,和/或存储于在网络上进行通信的一个或多个独立计算机系统的存 储器中。
此外,应该理解,其中某些系统和/或功能可不必实现,或可包
括附加系统和/或功能以作为系统100的一部分。
应该理解,本发明还提供各种可选实施例。例如,在一个实施例 中,本发明提供了一种计算机可读介质,其包含有用于使计算机基础 结构执行和/或实现本发明各个处理步骤的计算机程序代码。应该理 解,术语"计算机可读介质"包括程序代码的任何类型的物理实施例的
一个或多个。特别是,所述计算机可读介质包含的程序代码可处在一 个或多个便携式制造存储产品(例如,光盘、磁盘、磁带等)上,处
在计算机系统的一个或多个数据存储部分上,如存储器110和/或存储 系统118(例如,硬盘、只读存储器、随机存取存储器、高速緩存等), 和/或作为在网络上传递的数据信号(例如,在程序代码的有线/无线 电子发布期间)。
在另一实施例中,本发明提供了基于预订、广告,和/或收费方 式执行本发明处理步骤的业务方法。服务供应商可对计算机基础结构 (如计算机基础结构102)进行创建、维护、支持等,其用于为一个 或多个客户执行本发明的处理步骤。进而,服务供应商按照预订和/ 或收费约定向客户收取费用和/或服务供应商能够通过向一个或多个 第三方销售广告空间来收取费用。
在另一实施例中,可获得(例如,创建、维护,使得可用,等) 计算机基础结构(例如,计算机基础结构102),并且可获得(例如, 创建、购买、使用、修改等)用于执行本发明的处理步骤的一个或多 个系统,并将其部署到计算机基础结构。为此,每个系统的部署可包 括以下步骤中的一个或多个(1)从计算机可读介质将程序代码安装 在计算机系统上,例如,计算机系统104; (2)将一个或多个计算机 系统添加到计算机基础结构;和(3)引入和/或修改计算机基础结构 的一个或多个现有系统,以便计算机基础结构执行本发明的处理步骤。
如此处所使用的,应该理解,术语"程序代码"和"计算机程序代
码"是同义的,表示以任何语言、代码或符号形式对用于使具有信息处 理能力的计算机系统直接或在以下情形之一或二者之后执行特定功能
的一组指令的表示(a)转换到另一语言、代码或表示;以及(b) 以不同材料形式重现。为此,程序代码可表现为一种或多种类型的程 序产品,例如,应用/软件程序、组件软件/函数库、操作系统、具体 计算和/或I/O设备的基本I/O系统/驱动器,等等。
出于说明和描述的目的,以上给出了关于本发明优选实施例的描 述。其并不意在列举出全部实施例或将本发明局限于所披露的内容, 显然,本领域技术人员还可想到许多修改例和变型例。
权利要求
1.一种用于向集群成员部署应用的方法,包括确定应向集群成员打开以便使网络带宽最大的同时连接的数量N;和使用所述N个同时连接将应用同步部署到集群成员。
2. 根据权利要求1的方法,其中,确定同时连接的数量N还包括与第一集群成员相连接; 将文件传送到第一集群成员;以及确定对第一集群成员的文件传送速率。
3. 根据权利要求2的方法,其中,确定同时连接的数量N还包括(a) 与另外的集群成员相连接;(b) 将文件传送到另外的集群成员;(c) 确定对另外的集群成员的文件传送速率;(d) 确定到任何连接的集群成员的文件传送速率是否下降;以及(e) 若有必要,重复步骤(a) — (d),直至传送速率出现下降。
4. 根据权利要求3的方法,其中,确定同时连接的数量N还包括在传送速率出现下降之前,将N设置成等于所连接的集群成员的数量。
5. 根据权利要求1的方法,还包括 将集群成员分成N组;以及生成N个部署令牌,其中,每个部署令牌包括在N个组的不同 组中的集群成员的列表。
6. 根据权利要求5的方法,还包括 使用N个部署令牌将集群成员连接成树。
7. 根据权利要求6的方法,还包括 才艮据所述树将应用同步部署到集群成员。
8. 根据权利要求l的方法,其中,按照存储器到存储器的方式, 在集群成员之间部署应用。
9. 一种用于向集群成员部署应用的系统,包括 用于确定应向集群成员打开以便使网络带宽最大的同时连接的数量N的系统;和用于使用N个同时连接将应用同步部署到集群成员的系统。
10. 根据权利要求9的系统,其中,用于确定同时连接的数量N 的系统还用于与第一集群成员相连接; 将文件传送到第一集群成员;以及 确定对第一集群成员的文件传送速率。
11. 根据权利要求10的系统,其中,用于确定同时连接的数量N 的系统还用于(a) 与另外的集群成员相连接;(b) 将文件传送到另外的集群成员;(c) 确定对另外的集群成员的文件传送速率;(d) 确定到任何连接的集群成员的文件传送速率是否下降;以及(e) 若有必要,重复步骤(a) 一 (d),直至传送速率出现下降。
12. 根据权利要求ll的系统,其中,用于确定同时连接的数量N 的系统还包括用于在传送速率出现下降之前,将N设置成等于所连接的集群成 员的数量的系统。
13. 根据权利要求9的系统,还包括 用于将集群成员分成N组的系统;以及 用于生成N个部署令牌的系统,其中,每个部署令牌包括在N 个组的不同组中的集群成员的列表。
14. 根据权利要求13的系统,还包括用于使用N个部署令牌将集群成员连接成树的系统。
15. 根据权利要求14的系统,还包括用于根据所述树将应用同步部署到集群成员的系统。
16. 根据权利要求9的系统,其中,按照存储器到存储器的方式, 在集群成员之间部署应用。
全文摘要
公开了对多个集群部署应用的方法和系统。本发明提供了一种同步对等传送模型,其使用所有可用网络带宽,按照向一个机器发送应用代码所能达到的速度,对整个集群部署应用代码。根据本发明实施例的方法包括确定应向集群成员打开以便使网络带宽最大的同时连接的数量N;和使用N个同时连接将应用同步部署到集群成员。
文档编号H04L12/24GK101119280SQ20071011023
公开日2008年2月6日 申请日期2007年6月5日 优先权日2006年8月4日
发明者史蒂文·J.·勃兰达, 约翰·J.·斯特切, 罗伯特·V.·盖纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1