CN1960287B - 用于在网络上调度作业的方法和设备 - Google Patents
用于在网络上调度作业的方法和设备 Download PDFInfo
- Publication number
- CN1960287B CN1960287B CN2006101418142A CN200610141814A CN1960287B CN 1960287 B CN1960287 B CN 1960287B CN 2006101418142 A CN2006101418142 A CN 2006101418142A CN 200610141814 A CN200610141814 A CN 200610141814A CN 1960287 B CN1960287 B CN 1960287B
- Authority
- CN
- China
- Prior art keywords
- node
- application
- necessary
- cost
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
一种用于在服务器数据处理网络中的至少一个节点上调度作业进程的设备的方法。该调度基于网络中至少两个节点的状态以及在节点网络中的至少一个节点上安装所需应用的成本度量。该设备和方法收集表示与网络上至少两个节点相关联的属性的度量,该度量包括为运行进程所必须的应用的存在。比较用于在网络中具有为运行进程所必须的应用的节点上调度进程的第一成本因子和用于在网络中没有为运行进程所必须的应用的节点上调度进程的第二成本因子。最后,选择网络中的一个节点用于调度该进程。
Description
技术领域
本发明通常涉及计算机网络,并且更准确地说,涉及在不同计算设备的网络上管理软件的方法和设备。
背景技术
分布式系统是高可用性、可扩展的系统,它们被特别用在需要高吞吐量作业和持续或近乎持续的系统可靠性的环境中。
具有共享资源能力的分布式系统被称作群集(cluster)。群集包括操作系统实例,它们共享资源并相互合作以协调并执行系统任务,从而使系统资源最大化。为了便于有效协调,利用调度器来在系统资源之间分布作业。
目前,调度器关于它们能够怎样优化作业只有相当有限的选择。大多数调度器只考虑目前拥有运行期望的进程所需应用的群集中的机器。也就是说,大多数调度器没有被设计成考虑将应用安装在一台机器上然后将作业分配给那台设备的选项。很多情况下,这比将作业分配给预装了应用的过度利用的机器更有利。
另外,大多数调度器已经严格定义了机器组,每组具有运行特定类型作业的能力,或者假定所有作业都能够运行在所有机器上,由此产生了同类的系统。即使一些高级系统,如IBM Tivoli intelligentThinkDynamic Orchestrator(ITITO)或者威斯康星大学的Condor,也没有被设计成考虑并实现在各个机器上供应软件作为调度选项。
管理员被赋予了两种供应系统的选择。第一个是“粒度”配置,系统管理员由此手工将每个所需应用安装到各个计算机上。这种策略显然效率不高。第二种配置模型是“基于角色”或“基于映像(image)”模型,例如用于IBM的Tivoli供应管理器(TPM)中。这种解决方案需要定义完整的软件栈以安装在不同机器上,每个机器被赋予一个或多个角色。这种自动化节省了管理员的时间并且对于现有的可能已经有预定义的软件栈的网格用户表现良好。但是,“基于映射”供应模型对于那些利用不断变化的应用(新版本、新软件)的机器表现不好。“基于映射”供应模型丢失了“粒度供应”模型中固有的精确控制,因此当它被应用于在异类节点的网络上进行调度的问题时表现不好。
因而,需要一种支持供应的调度器,它能够更好地在多个节点之间平衡负载并计算许可成本以优化对昂贵的软件的使用,同时保留现有调度器的所有特性和能力。
简要地说,依照本发明,公开了一种用于在分布式信息处理系统中选择至少一个计算节点用来调度作业进程的设备和方法。该方法在节点管理器上被执行,并且包括下列步骤:接收将要调度来在通过网络可通信地耦合在一起的多个计算节点中的至少一个节点上执行的作业;收集表示与至少两个计算节点相关联的属性的度量,该度量包括为执行该作业所必须的至少一个应用的相关性;产生与至少两个计算节点相关联的成本因子,其中对于每个计算节点的成本因子包括与安装为执行该作业所必须的至少一个应用相关联的成本;以及在该至少两个计算节点间选择具有最低成本因子的计算节点用以执行该作业。
在本发明的一种实施例中,相关性表示所需的第二应用、冲突的第二应用、或者二者皆有。
在本发明的一种实施例中,该方法包括:响应于所选择的节点没有为运行该作业所必须的该至少一个应用,安装为运行该作业所必须的该至少一个应用。
在本发明的另一实施例中,所述度量包括下列度量中的至少一个:输入进程的数量;输入进程的类型;以及目前安装的应用。
在一种实施例中,本发明包括节点管理器,用于接收将要调度的进程;可通信地耦合到所述节点管理器的多个计算节点;以及处理电流。该处理电路用于:收集表示与至少两个计算节点相关联的属性的度量,该度量包括执行该作业所必须的至少一个应用的相关性;以及产生与至少两个计算节点相关联的成本因子,其中对于每个计算节点的成本因子包括与安装为执行该作业所必须的至少一个应用相关联的成本。该设备还包括选择器,该选择器根据成本因子比较,选择该网络中的至少一个节点用以调度该进程。
通过下面对附图中所示本发明的优选实施例的更详细的说明将会明了本发明的前述及其它特性和优点。
附图说明
在说明书结论处的权利要求中特别指出并明确要求保护了被看作本发明的主题。从结合附图所做的下列详细说明中,将会明了本发明的前述及其它特性及优点。
图1是说明可以在其中实现本发明的实施例的分布式数据处理系统的框图;
图2是说明依照本发明的一个方面具有多个群集的计算环境的一个实施例的框图;
图3是说明依照本发明的实施例可以实现为客户机的数据处理系统的框图;
图4是依照本发明的一种实施例的供应框架的框图和流程图;
图5是依照本发明的一种实施例的相关性树的可视化表示;
图6是依照本发明的一种实施例的相关性树的可视化表示;以及
图7是依照本发明的一种实施例的调度器的流程图。
具体实施方式
应该理解这些实施例仅是这里的创新教导的很多有益应用的一些例子。通常,本申请的说明书中所做的陈述没有必要限制多个要求保护的发明中的任何一个。此外,一些陈述可适用于一些本发明的特性而不适用于本发明的其它特性。通常,除非特别说明,不失一般性,单个元素可以是多个,反之亦然。在附图中,相同的数字在若干图中指代相同部分。
依照一种实施例,本发明通过提供用于根据分布式系统中已知机器的当前状态以及安装和配置所需应用的已知成本或估计成本确定在何处执行作业的方法和系统而克服现有技术中的问题。本发明还为在分布式系统中同类或异类计算机的网络上自动安装、配置、卸载和管理软件提供了统一的结构。
分布式数据处理系统
参考图1,示出了可在其中实现本发明的分布式数据处理系统100。分布式数据处理系统是可在其中实现本发明的计算机的网络。分布式数据处理系统100包括网络102,网络102是用来在分布式处理系统100中被连接在一起的节点108a-108n(各种计算机和设备)之间提供通信链路的介质。网络102可以包括有线或无线连接。一些示例性有线连接如电缆、电话线和光纤。示例性无线连接包括射频(RF)和红外线(IR)传输。本领域中已知有很多其它有线和无线连接并且都可与本发明一起使用。
在本发明的一种实施例中,分布式数据处理系统100通过广域网110被连接到其它分布式数据处理系统。广域网110一般包括各种网络设备,如网关、路由器、集线器和一个或多个用各种介质(可以包括铜线、同轴电缆、光纤电缆和无线介质)互连的局域网(LAN)。广域网110可以代表或者包括因特网的一部分。如本领域中所知道的,因特网包括主节点或主计算机之间的高速数据通信线路的骨干网,由成千上万个路由数据和消息的商业、政府、教育和其它计算机系统组成。在本发明的另一种实施例中,分布式数据处理系统100被实现为一个或多个类型的网络,如企业内部网、局域网(LAN)或广域网(WAN)。
如图1所示,节点管理器104与网络102相连。另外,存储单元106和计算节点108a-108n也与网络102相连。在分布式计算系统中,可以使用多个服务器和客户机设备,并且本发明不限于任何特定数量的设备。计算节点108a-108n可以例如是个人计算机或网络计算机。网络计算机是与网络耦合的任何计算机,它永久地或暂时地从与网络相连的另一计算机接收程序或其它应用。
在图1所示系统中,计算节点108a-108n是服务器104的客户机。在其它实施例中,计算节点108a-108n中的一个或多个可以是与网络102相连的其他服务器的客户机。服务器104能够与客户机设备通信以向客户机设备108a-108n提供数据(如操作系统映像和应用)并测量和捕获客户机设备的设备度量。
本发明可以用来与异类或同类系统一起使用。术语“异类”通常用来描述各个设备可以有不同的硬件、应用栈、操作系统等的环境。相反,术语“同类”用来描述各个设备有相似的硬件、应用栈、操作系统等的环境。
群集
具有共享资源能力的分布式计算环境被称为群集。尤其,一个计算环境可以包括一个或多个群集。例如,如图2所示,计算环境200包括两个群集,群集A 202和群集B 204。每个群集包括一个或多个节点206,它们共享资源并且在执行系统任务时相互协调。
节点的每个群集202和204分别由节点管理器208和210管理。其中一个节点管理器208可以通过广域网212可通信地耦合到另一节点管理器210。
节点管理器操作系统
图1中所示与节点相耦合的节点管理器104可以例如是运行AIX(高级交互执行:Advanced Interactive Executive)操作系统的IBMRISC/系统6000系统,即一种位于纽约阿芒克的国际商业机器公司(IBM)的产品。节点管理器还可以运行多种其它计算机操作系统中的任意一种。众所周知的操作系统包括例如Novell Netware、IBM OS/2Warp Server、IBM AS/400、Microsoft WindowsNT以及OSF UNIX的众多变体。服务器系统能够为特定功能(包括但不限于应用的存储、安装和/或执行以及进程的执行)访问客户机系统。
节点
现在参考图3,示出了描述根据本发明的一种实施例的节点信息处理系统的方块图。节点信息处理系统300是采用外设组件互连(PCI)本地总线体系结构的数据处理系统。应该注意,也可使用替代的总线体系结构,如微通道和ISA。处理器302和主存储器304通过PCI桥接器308与PCI本地总线306相连。PCI桥接器308还可以包括集成存储控制器和处理器302的高速缓冲存储器。通过直接组件互连或通过内插板可以进行到PCI本地总线的附加连接。在本发明的一个实施例中,局域网(LAN)适配器310、SCSI主机总线适配器312和扩展总线接口314通过直接组件连接与PCI本地总线306相连。相反,音频适配器316、图形适配器318和音频/视频适配器319通过插在扩展槽中的内插板与PCI本地总线306相连。扩展总线接口314为键盘和鼠标适配器320、调制解调器322和附加存储器324提供连接。SCSI主机总线适配器312为硬盘驱动器326、磁带驱动器328和CD-ROM驱动器330提供连接。也可支持附加的PCI扩展槽和内插连接器。
本领域的技术人员将会理解,图3中所示硬件是示范性的,并且根据实现,其它实施例中所用的硬件可以不同于图3中所示和上述硬件。另外,本发明的过程可以应用到具有两个或更多多处理器的数据处理系统300.
在本发明的一种实施例中,节点信息处理系统300被配置为网络计算机,因而它没有或者不需要SCSI主机总线适配器312、硬盘驱动器326、磁带驱动器328或CD-ROM 330,这些在图3中都以虚线332表示。在这个实施例中,客户计算机包括一些类型的网络通信接口,如LAN适配器310、调制解调器322等。
软件和计算机程序介质
在本发明的一种实施例中,能够读取计算机可读介质336的设备334(如CDROM驱动器)与PCI本地总线306相连。在本文档中,术语“计算机程序介质”、“计算机可用介质”、“机器可读介质”、“计算机程序产品”和“计算机可读介质”通常用来指例如非易失性程序存储器、数据存储器、可移除存储驱动器、安装在硬盘驱动器中的硬盘和信号等介质。这些计算机程序产品是向节点信息处理系统300提供软件的装置。计算机可读介质允许节点信息处理系统300能够从计算机可读介质读取数据、指令、消息或消息包以及其它计算机可读信息。计算机可读介质例如包括例如软盘、ROM、闪存、盘驱动器存储器、CD-ROM和其它永久存储器等的非易失性存储器。例如,它是对于在计算机系统间传输信息(如数据和计算机指令)是有用的。此外,计算机可读介质可以包括在允许计算机读取计算机可读信息的暂态介质中的计算机可读信息,暂态介质例如为网络链路和/或网络接口,包括有线网络或无线网络。
关于这个示范系统,说明了不同的软件实施例。在阅读完这个说明之后,本领域的技术人员将会明了如何用其它计算机系统和/或计算机体系结构实现本发明。
客户机操作系统
处理器302用来运行用于协调并控制图3的数据处理系统300中的各个组件的操作系统。操作系统的一个例子是OS/2,它可以从国际商业机器公司(IBM)商业上获得。“OS/2”是国际商业机器公司(IBM)的一个商标。另外,Java等面向对象的编程系统可以与该操作系统结合来运行并提供从数据处理系统300上执行的Java程序或应用到操作系统的调用。“Java”是太阳微系统公司(Sun)的一个商标。操作系统的指令、面向对象的操作系统以及应用或程序位于存储设备上,如硬盘驱动器326,并且可以被装入主存储器304,用以由处理器302执行。
供应框架
本发明提供了具有用于在异类计算机或“节点”的网络上自动安装、配置、卸载和管理软件的统一基础设施的供应框架。本发明的框架能够安装不同版本的应用、补丁和配置信息,并且可以充分扩展以在任何计算机硬件和操作系统组合上完成这个任务。
现在参考图4,示出了依照本发明的供应框架400的组件。图4中还示出了框架400中组件之间的处理流程。框架400包括节点管理器402,它与框架400中的其它组件通信并协调它们。在步骤404,将所需包和部署范围的列表从前端406传递到节点管理器。在一种实施例中,前端406是典型的客户端设备。在另一实施例中,前端406是“调度器”,下面将有说明。在步骤408,节点管理器402将软件包和部署范围的列表发送到“相关性”检查器410。
“相关性”指的是一个程序模块或软件应用信赖于另一模块的程度。相关性有“低”耦合或“高”耦合。如果是“低”耦合,则另一模块的内部实现就不是问题并且模块能够与稳定的接口交互。在低耦合情况下,对一个模块的改变不需要改变另一模块的实现。但是,用高度耦合的系统可以获得改进的效率。在高耦合情况下,必须仔细注意正在每个机器上添加或升级的应用。
耦合(从最低到最高)的一些示范类型如下:
数据耦合-数据耦合发生在模块例如通过参数等共享数据时。每个数据是一个基本段,并且只有这些是共享的数据(如向计算平方根的函数传递一个整数)。
标记耦合(数据结构耦合)-标记耦合发生在模块共享复合数据结构时,每个模块不知道数据结构的哪部分将为其它模块所用(如传递学生记录给计算学生GPA的函数)。
控制耦合-控制耦合是一个模块通过传递与“做什么”(what-to-do)有关的信息(如传递what-to-do标记)控制另一模块的逻辑。
外部耦合-外部耦合发生在两个模块共享外部设置的数据格式、通信协议或设备接口。
公共耦合-公共耦合发生在两个模块共享相同的全局数据(如全局变量)时。
内容耦合-内容耦合发生在一个模块更改或信赖于另一模块的内部工作(如,访问另一模块的本地数据)时。
在面向对象的编程中,在父类与它的子类相耦合时,子类可以被耦合在一起。
相关性还用来说明软件包管理中的关系。一个软件包可以信赖于其它软件包并且经常信赖于另一软件包的特定版本。Apt包格式以及一些版本的RPM包格式包括了包之间的相关性信息。
相关性检查器410能够识别当前或潜在的相关性,并因此确定相关性引起的当前或潜在的冲突。在步骤412,相关性检查器410确定适合所计划的作业的所有节点。相关性检查器410通过查询节点高速缓存器414获得每个机器的状态信息。节点高速缓存器414存储与节点中每个机器的状态有关的信息。同时,在步骤412,相关性检查器410从包元数据存储库416获取例如相关性和冲突信息等的包数据,以确定需要安装哪些包,以便成功安装在步骤404中接收到的包列表。
例如,假定网络由一台服务器和三台计算机或节点组成。当查询安装了哪些包时,相关性检查器410获取每个节点428a-428n上安装的包的列表。在这个例子中,节点A安装了DB2版本8.1;节点B具有Java版本1.4.2和Websphere版本5;节点C具有Websphere版本5、DB2版本7.1和Modeler版本0.9。查询元数据存储库416,为每个包获得相关性信息、冲突、包大小、许可成本以及其它信息。下面的表1示出了说明这种状况的元数据的一个例子。
表1
包名 | 包版本 | 包大小 (KB) | 许可成本 (USD) | 相关性 | 冲突 |
Modeler | 1.0 | 400 | 4000 | Websphere=>4 DB2=>8.1 | Modeler<1.0 |
Modeler | 0.9 | 380 | 4000 | Web sphere=>4 DB2=>7.0 | |
DB2 | 8.1 | 4000 | 2500 | DB2<8.1 | |
DB2 | 7.1 | 4000 | 2000 | DB2<7.1 | |
Web sphere | 5 | 3000 | 3000 |
图5示出了构造的相关性树500,它示出了围绕Modeler 1.0的相关性。相关性树是上面表1中数据的可视表示。Websphere和DB28.1依赖于Modeler 1.0。但是,Modeler 0.9与Modeler 1.0冲突,因此必须移去Modeler 0.9。另外,DB27.1与DB28.1冲突,也必须移去。
接着,在步骤418,相关性检查器410返回合格的节点的列表给节点管理器402。该列表包括事件的计划成本,如供应延迟、许可成本、盘使用等。表2示出了上述例子的成本列表
表2
节点名 | 要安装的包 的数量 | 要升级的包 的数量 | 许可成本 (USD) | 盘空间 (千比特) |
节点A | 2 | 0 | 7000 | 34000 |
节点B | 2 | 0 | 6500 | 4400 |
节点C | 0 | 2 | 500 | 20 |
随后,在步骤420,节点管理器402根据计划成本和加权度量来确定用于供应的最佳节点。可以利用比较在节点上供应一个新应用的成本的比较器进行上述确定。看表2中所示例子,使用节点A需要安装Websphere和Modeler 1.0;使用节点B需要安装DB2和Modeler1.0;以及使用节点C需要升级DB2和Modeler 0.9。在完全自动化的供应系统的情况下,最佳节点由一组策略确定并利用所需的应用供应。在向导驱动模型的情况下,节点列表通过用户接口(如计算机终端)被提供给系统管理员或其它用户,并且管理员能够提供用户输入以在实现提供计划之前编辑提供计划。系统管理员可以根据网络和用户的知识做出决策。知道金钱是权重高的因素,管理员可以选择使用节点C并通过进行升级降低许可成本。可替换地,知道其中一个用户经常使用Modeler 0.9,管理员可以选择在不同机器上安装Modeler1.0并支付额外的许可费用。策略引擎还可以有自己的规则,以尝试为节省盘空间、节省许可费用或这两个的一些组合进行优化。
在步骤422,向目标节点428a-428n发送要安装的包的列表。接着,在步骤424,包存储库426向节点428a-428n提供要安装在节点上的实际的二进制包。这也包括配置包,配置包是包括了为改变应用的缺省配置而与那些应用一起安装的配置文件的包。
在步骤430,每个目标节点分别报告安装结果。最后,在步骤432,节点管理器402将结果告知节点高速缓存器414。另外,在整个过程中,系统400的状态被传递到利用状态信息更新前端406的节点管理器402。
示范卸载(或升级)如下进行。供应框架决定最佳安装路径涉及升级或者安装现有的包。可以在最初决定是升级还是安装。这个决定涉及递归遍历所述包中的相关性树以确保依赖于该包的任何包和作业不与计划的升级或安装相冲突。节点管理器然后将把要移走的包的完整列表发送到目标节点,目标节点将完成所请求的操作。
作为一个例子,图6示出了一个示例相关性树600。包A需要升级,但包B和包C依赖于包A。递归地通过这些包,确定包B需要A的当前版本,并且有一个正在运行的作业需要包B。包C更灵活,不需要改变。因此,对包B的选择是将它升级到使用A.2的版本或者在作业1完成后将其移走。这个决定是由节点管理器根据包B的实例在该机器上的需要做出的。然后,一旦作业1完成,则将命令列表(如“将A从版本1升级到版本2、卸载B”)发送到该机器。
但是,为了使供应框架在网络上安装、配置、卸载和管理软件,它必须接收指令以完成这些任务。这些指令来自“调度器”。
调度器
任务调度器能够将分布式系统中的CPU的执行分配给多个不同任务。那些任务中的一些是应用,一些是操作系统任务、批处理文件、脚本等。在异类节点的网络上调度需要智能的调度器;调度器要知道机器上软件的状态,并且能够在需要的时候需要的地方通过供应附加的软件来利用这个信息。本发明通过使得能够将作业调度到不支持该作业需求的运行环境上而改进现有的调度器。本发明能够优化异类节点之间的工作流并且能够与供应框架400通信以确定是否供应一个节点以运行作业,并且然后决定最佳策略-在现有的有能力的节点上运行作业或供应新的节点。
参考图7,示出了依照本发明的调度过程的流程图。该流程从步骤700开始,并直接进行到步骤702,在步骤702,要调度来在可通信地耦合在一起的多个计算节点中的至少一个上执行的作业被提交给调度器。在一种实施例中,调度器驻留在服务器中。在步骤704,调度器调用供应框架400,供应框架400调查分布式系统中的多个计算节点并测量一组预定度量。该调查除了别的以外还包括每个设备上每个资源的位置以及可用硬件。该调查允许作业可被调度到其上的可能的节点集合受到能支持该作业需求的已知运行环境的集合的限制。例如,可能需要一些作业在特定的硬件集合或位置需求下运行。
接着,在步骤708,调度器与供应框架通信,供应框架收集表示与系统有关的事实的度量,包括但不限于调度度量,例如CPU负载、CPU容量、存储器负载、存储器容量、盘使用、各个系统的网络速度、作为整体的网络特性以及与输入作业的队列有关的信息,如输入进程的数量和类型。另外,供应框架收集附加的事实,包括但不限于目标系统的软件栈、目前安装的应用集合以及为了支持作业在每个计算环境上需要提供的应用集合。此外,每个所需应用的盘、处理器、存储器需求和许可成本以及它的相关性也被添加到事实集合中。最后,供应每个已知应用所用的历史时间可以提供对将来安装该应用需要多少时间的洞察(insight)。历史时间可以包括以往的安装的平均时间、中值时间或最高时间,并且能够充当在单个或多个节点上的安装时间的因子。
利用收集到的事实,接下来,在步骤710,本发明查看配置并为它们分配预定的权重因子,权重因子可以通过任意数量的方法(HTTP、web服务、命令行等)被周期性地升级。在一种实施例中,权重因子是固定不变的。权重因子允许调度器精确地确定将每个作业调度到何处。每个权重因子表示在特定节点上运行一个进程的成本。例如,如下面的表3所示,配置可以是高优先级的作业不考虑许可成本,由此通过包括那些没有预装(即已经购买许可)应用的机器而扩大可用机器的数量。因此,许可成本被乘以零。在这个例子中,处理器速度对于决定将作业调度到何处是一个重要的因素,因此处理器速度权重为因子4。这可以降低调度作业的潜在设备的数量。最后,可用的存储器是一个应该考虑的因素,因此它被分配了权重因子2.
表3
度量 | 权重因子 |
许可成本 | 0 |
处理器速度 | 4 |
可用存储器 | 2 |
在步骤712,评估和比较因子以及为它们所分配的权重,并选择应该将作业调度到哪个运行环境。做出这个决策的选择器可以是用户、根据预先编入的指令集自动选择的计算机或电路。一旦调度器已经做出应该将作业调度到哪个运行环境上的决策,下一个步骤714就检查是否完全供应了系统以支持该作业。如果没有完全供应,在步骤716,本发明利用供应框架将所需应用供应到目标环境上。一旦成功地供应该环境,或者如果已经供应了它,则在步骤718,调度器将该作业加到该环境的运行队列中。该过程在步骤720结束。
一个示范场景如下:用户向调度器提交了一个需要“应用A”的新作业。调度器检查它管理的系统中节点的状态并确定该作业能够被调度。例如,应用A被安装在一个服务器上,但该服务器被其它作业大量使用。然后,调度器面临着在过度使用的机器上运行该作业或供应应用A的另一实例的选择。这里使用了成本度量。调度器查看在慢机器(完成时间长)运行该作业相对于将该应用安装在一台具有空闲周期的机器上的成本(安装成本)。这种情况下,应用A有很高的许可成本,但是还被标记为高优先级作业。调度器查询不同的机器以关于时间、盘使用等确定安装成本,并且然后针对它已经被配置的度量来检查它已经收集到的事实(作业优先级、时间成本、盘、软件许可等等)。如果最后决定节省许可成本的需要超过作业的急迫性,调度器将简单地将该作业调度到预先供应的机器上。否则,如果作业的急迫性超出节省成本的期望,调度器就根据先前收集的安装成本选择一个节点以在其上安装应用A。调度器然后调用供应框架以在那个节点上供应应用A。一旦供应框架成功返回,调度器就将该作业调度到新供应的机器上。
结论
尽管已经公开了本发明的具体实施例,但本领域的技术人员将会理解,在不偏离本发明的精神和范围的前提下,可对具体的实施例进行修改。因此,本发明的范围不限于具体的实施例。此外,期望覆盖在本发明范围内的所有这种应用、更改和实施例。
Claims (12)
1.一种用于在分布式信息处理系统中选择至少一个计算节点用来调度作业的方法,节点管理器上的该方法包括:
接收将要调度来在通过网络可通信地耦合在一起的多个计算节点中的至少一个节点上执行的作业;
收集表示与至少两个所述计算节点相关联的属性的度量,该度量包括为执行该作业所必须的至少一个应用的相关性;
产生与至少两个所述计算节点相关联的成本因子,其中对于每个计算节点的所述成本因子包括与安装为执行该作业所必须的至少一个应用相关联的成本;以及
在所述至少两个计算节点间选择具有最低成本因子的计算节点用以执行该作业。
2.依照权利要求1的方法,其中该相关性表示下列中的至少一个:
所依赖的第二应用;和
冲突的第二应用。
3.依照权利要求1的方法,还包括:
响应于所选择的节点没有为运行该作业所必须的所述至少一个应用,安装为运行该作业所必须的所述至少一个应用。
4.依照权利要求1的方法,其中所述度量包括下列至少之一:
输入作业的数量;
输入作业的类型;和
当前安装的应用。
5.依照权利要求1的方法,其中所述成本因子包括下列至少之一:
安装必须的应用所需的时间;和
许可成本。
6.依照权利要求5的方法,其中安装所述必须的应用的所需时间由用户指定。
7.依照权利要求5的方法,其中安装所述必须的应用的所需时间基于下列至少之一:
以往安装的平均时间;
以往安装的中值时间;以及
以往安装的最高时间。
8.依照权利要求1的方法,其中给所述成本因子中的元素分配权重。
9.一种用于在分布式信息处理系统中选择至少一个计算节点用来调度作业的设备,该设备包括:
节点管理器,用于接收将要调度的作业;
可通信地耦合到所述节点管理器的多个计算节点;以及
处理电路,用于收集表示与至少两个所述计算节点相关联的属性的度量,该度量包括执行该作业所必须的至少一个应用的相关性;以及用于产生与至少两个所述计算节点相关联的成本因子,其中对于每个计算节点的所述成本因子包括与安装为执行该作业所必须的至少一个应用相关联的成本;以及
选择器,该选择器根据成本因子的比较,选择该系统中的至少一个节点用以调度该作业。
10.依照权利要求9的设备,还包括:
供应系统,用于将为运行该作业所必须的应用供应到所选择的节点上;以及
调度器,用于在所选择的计算节点上调度所述作业。
11.依照权利要求9的设备,其中所述度量包括下列至少之一:
输入作业的数量;
输入作业的类型;和
当前安装的应用。
12.依照权利要求9的设备,其中所述成本因子包括下列至少之一:
安装所述必须的应用所需的时间;
许可成本;和
供应应用所花费的历史时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/266,804 | 2005-11-03 | ||
US11/266,804 US7831972B2 (en) | 2005-11-03 | 2005-11-03 | Method and apparatus for scheduling jobs on a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1960287A CN1960287A (zh) | 2007-05-09 |
CN1960287B true CN1960287B (zh) | 2010-08-25 |
Family
ID=37998130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101418142A Expired - Fee Related CN1960287B (zh) | 2005-11-03 | 2006-09-29 | 用于在网络上调度作业的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7831972B2 (zh) |
CN (1) | CN1960287B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122446B2 (en) * | 2005-11-03 | 2012-02-21 | International Business Machines Corporation | Method and apparatus for provisioning software on a network of computers |
US8214826B2 (en) * | 2007-10-09 | 2012-07-03 | International Business Machines Corporation | Optimized targeting in a large scale system |
US9270783B2 (en) * | 2008-12-06 | 2016-02-23 | International Business Machines Corporation | System and method for photorealistic imaging workload distribution |
EP2462510A4 (en) * | 2009-08-03 | 2013-01-02 | Hewlett Packard Development Co | LINK MODEL INSTANCES FOR PACKAGES |
WO2011061034A1 (en) * | 2009-11-23 | 2011-05-26 | International Business Machines Corporation | A method and system for job scheduling in a data processing system with virtual environment |
KR20120072252A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법 |
US9015708B2 (en) * | 2011-07-28 | 2015-04-21 | International Business Machines Corporation | System for improving the performance of high performance computing applications on cloud using integrated load balancing |
CN103959242A (zh) * | 2011-10-10 | 2014-07-30 | 惠普发展公司,有限责任合伙企业 | 用于在云计算系统中规划应用的执行的方法和系统 |
CN105474177B (zh) * | 2013-05-31 | 2019-06-04 | 日本电气株式会社 | 分布式处理系统、设备、方法和记录介质 |
EP2843548B1 (en) * | 2013-09-03 | 2018-04-04 | Fujitsu Limited | Method, system, and program for scheduling jobs in a computing system |
US9935846B2 (en) | 2013-10-31 | 2018-04-03 | Google Llc | Synchronized distributed networks with frictionless application installation |
US9483247B2 (en) * | 2014-01-27 | 2016-11-01 | Ca, Inc. | Automated software maintenance based on forecast usage |
CN103870991B (zh) | 2014-03-14 | 2018-01-12 | 广州广电运通金融电子股份有限公司 | 自助终端业务应急方法以及网点服务器 |
CN104572306B (zh) * | 2015-01-28 | 2018-03-09 | 中国石油集团东方地球物理勘探有限责任公司 | 计算机集群的资源管理方法、资源管理器 |
US11049025B2 (en) * | 2017-03-15 | 2021-06-29 | Salesforce.Com, Inc. | Systems and methods for compute node management protocols |
US11119751B2 (en) * | 2019-07-16 | 2021-09-14 | International Business Machines Corporation | Self-learning optimized patch orchestration |
CN111381969B (zh) * | 2020-03-16 | 2021-10-26 | 北京康吉森技术有限公司 | 一种分布式软件的管理方法及其系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889989A (en) * | 1996-09-16 | 1999-03-30 | The Research Foundation Of State University Of New York | Load sharing controller for optimizing monetary cost |
US20020144248A1 (en) * | 1998-06-19 | 2002-10-03 | Microsoft Corporation | Software package management |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09167141A (ja) * | 1995-12-18 | 1997-06-24 | Hitachi Ltd | 負荷分散制御方法 |
US6098091A (en) | 1996-12-30 | 2000-08-01 | Intel Corporation | Method and system including a central computer that assigns tasks to idle workstations using availability schedules and computational capabilities |
US6711616B1 (en) * | 2000-05-01 | 2004-03-23 | Xilinx, Inc. | Client-server task distribution system and method |
DE10155752A1 (de) * | 2001-11-14 | 2003-05-22 | Siemens Ag | Lizenzierungsverfahren |
US20030172135A1 (en) * | 2000-09-01 | 2003-09-11 | Mark Bobick | System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks |
JP2002202959A (ja) | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US6993763B2 (en) | 2001-06-26 | 2006-01-31 | International Business Machines Corporation | Technique for scheduling execution of jobs for or by network-connected devices |
US7117500B2 (en) * | 2001-12-20 | 2006-10-03 | Cadence Design Systems, Inc. | Mechanism for managing execution of interdependent aggregated processes |
US7159217B2 (en) * | 2001-12-20 | 2007-01-02 | Cadence Design Systems, Inc. | Mechanism for managing parallel execution of processes in a distributed computing environment |
US7013344B2 (en) * | 2002-01-09 | 2006-03-14 | International Business Machines Corporation | Massively computational parallizable optimization management system and method |
US20030167329A1 (en) | 2002-03-01 | 2003-09-04 | Docomo Communications Laboratories Usa, Inc. | Communication system and method for locating and utilizing distributed resources |
JP4133068B2 (ja) * | 2002-07-23 | 2008-08-13 | 株式会社日立製作所 | 計算機システム |
US20040039815A1 (en) | 2002-08-20 | 2004-02-26 | Compaq Information Technologies Group, L.P. | Dynamic provisioning system for a network of computers |
US7243352B2 (en) | 2002-11-27 | 2007-07-10 | Sun Microsystems, Inc. | Distributed process runner |
US7478385B2 (en) * | 2003-01-17 | 2009-01-13 | National Instruments Corporation | Installing software using programmatic component dependency analysis |
US7441244B2 (en) * | 2003-12-10 | 2008-10-21 | International Business Machines Corporation | Workload scheduler with cumulative weighting indexes |
US7568195B2 (en) * | 2003-12-16 | 2009-07-28 | Microsoft Corporation | Determining a maximal set of dependent software updates valid for installation |
US7814490B2 (en) * | 2004-10-14 | 2010-10-12 | International Business Machines Corporation | Apparatus and methods for performing computer system maintenance and notification activities in an opportunistic manner |
US7606906B2 (en) * | 2005-10-28 | 2009-10-20 | International Business Machines Corporation | Bundling and sending work units to a server based on a weighted cost |
-
2005
- 2005-11-03 US US11/266,804 patent/US7831972B2/en not_active Expired - Fee Related
-
2006
- 2006-09-29 CN CN2006101418142A patent/CN1960287B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889989A (en) * | 1996-09-16 | 1999-03-30 | The Research Foundation Of State University Of New York | Load sharing controller for optimizing monetary cost |
US20020144248A1 (en) * | 1998-06-19 | 2002-10-03 | Microsoft Corporation | Software package management |
Also Published As
Publication number | Publication date |
---|---|
US7831972B2 (en) | 2010-11-09 |
CN1960287A (zh) | 2007-05-09 |
US20070101336A1 (en) | 2007-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1960287B (zh) | 用于在网络上调度作业的方法和设备 | |
US8122446B2 (en) | Method and apparatus for provisioning software on a network of computers | |
US7533170B2 (en) | Coordinating the monitoring, management, and prediction of unintended changes within a grid environment | |
US7743142B2 (en) | Verifying resource functionality before use by a grid job submitted to a grid environment | |
CN100437492C (zh) | 用于分布式构建环境中的软件映像创建的系统和方法 | |
US7707288B2 (en) | Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment | |
US7712100B2 (en) | Determining a capacity of a grid environment to handle a required workload for a virtual grid job request | |
CN100545851C (zh) | 使用命令行环境的远程系统管理 | |
US7065764B1 (en) | Dynamically allocated cluster system | |
US7287179B2 (en) | Autonomic failover of grid-based services | |
US20060149714A1 (en) | Automated management of software images for efficient resource node building within a grid environment | |
US20080071854A1 (en) | Computer system and method for sharing a job with other computers on a computer network using ip multicast | |
US20060149652A1 (en) | Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment | |
WO2005124539A1 (en) | System and method for dynamically building application environments in a computational grid | |
CN1407441A (zh) | 自动管理计算机服务和可编程器件的系统和方法 | |
CN104639594A (zh) | 分配物理资源和虚拟资源的系统和方法 | |
US20230342191A1 (en) | Task Scheduling Method and System | |
US20200167444A1 (en) | Systems and methods for software license management | |
CN113645262A (zh) | 云计算服务系统和方法 | |
CN100489858C (zh) | 用于收集数据处理系统中的清单信息的方法和系统 | |
US20050138625A1 (en) | Configuration management resource specification database design | |
CN107357603A (zh) | 一种软件加载方法、设备及系统 | |
CN111857736B (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
US7568006B2 (en) | e-Business on-demand for design automation tools | |
CN113283742A (zh) | 一种任务分配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100825 Termination date: 20160929 |