CN103377091A - 用于资源共享池中的作业的高效执行的方法和系统 - Google Patents
用于资源共享池中的作业的高效执行的方法和系统 Download PDFInfo
- Publication number
- CN103377091A CN103377091A CN201310147025XA CN201310147025A CN103377091A CN 103377091 A CN103377091 A CN 103377091A CN 201310147025X A CN201310147025X A CN 201310147025XA CN 201310147025 A CN201310147025 A CN 201310147025A CN 103377091 A CN103377091 A CN 103377091A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- topology
- virtual
- machine
- information
- 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.)
- Granted
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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种用于资源共享池中的作业的高效执行的方法和系统。本发明的各实施例涉及共享资源组以及所述共享资源组中的一个或多个作业的高效处理。在所述共享资源组中提供工具以便评估和组织所述共享资源的拓扑,包括物理机和虚拟机以及存储设备。所述拓扑被存储在已知位置中,并用于响应于层次结构而高效分配一个或多个作业。
Description
技术领域
本发明涉及用于利用资源共享池中的作业处理的高效方法。更具体地说,本发明涉及评估共享资源的虚拟和物理拓扑,并响应于组合的拓扑而处理作业。
背景技术
MapReduce(映射化简)是一种框架,用于使用大量计算机节点跨庞大的数据集处理高度分布的问题。在所有节点使用相同硬件或网格(如果节点使用不同硬件)的情况下,该框架通常被称为群集。可以针对存储在文件系统或数据库中的数据发生计算处理。具体地说,主节点接收作业输入并将作业划分为更小的子作业,这些子作业被分配给群集或网格中的其它节点。在一个实施方式中,分层布置群集或网格中的节点,并且可以进一步划分和分配子作业。负责处理子作业的节点将处理后的数据返回到主节点。更具体地说,主节点收集和组合处理后的数据以形成输出。因此,MapReduce是一种用于对与作业关联的大量数据进行分布式处理的算法技术。
如上所述,MapReduce使能跨节点网络分配数据处理。尽管使用MapReduce带来方便,但目前使用MapReduce处理作业会产生性能问题。
发明内容
本发明包括一种用于高效处理资源共享池中的作业的方法、系统和制品。
在一个方面,提供了一种用于在资源共享池中实施的计算机实现的方法。更具体地说,所述共享池包括与至少一个物理机通信的物理主机,并且所述物理机支持一个或多个虚拟机。收集与所述虚拟机的操作关联的状态信息。此外,收集与所述资源共享池关联的本地拓扑信息。收集该信息的方面包括定期与所述物理机的嵌入式监视器通信。组织所收集的拓扑信息,并且所述拓扑信息包括作为所述资源虚拟拓扑的基础的存储拓扑和关联的资源利用率信息。组织所述存储拓扑信息之后,可以利用该信息促进一个或多个作业的处理。更具体地说,可以响应性地将作业分配给所述共享池中支持与所述作业关联的I/O的高效执行的选定虚拟机。
在另一个方面,提供了一种系统,所述系统具有工具以便支持资源共享池中的作业的高效处理。所述资源共享池包括与多个物理机通信的物理主机。每个物理机可以支持至少一个虚拟机,并且每个物理机包括嵌入式监视器以便从本地虚拟机收集虚拟机状态。同样,每个虚拟机具备嵌入式代理。提供了与所述物理主机通信的功能单元。所述功能单元包括工具以便响应于所述资源共享池的拓扑体系结构而支持作业的高效处理。更具体地说,所述工具包括与所述主机通信的导向器,以便定期与每个嵌入式监视器通信,并收集和组织作为所述资源共享池的虚拟拓扑的基础的拓扑。所述拓扑包括数据存储的存储拓扑和关联的资源利用率信息。所述导向器利用所组织的拓扑将所述作业分配给一个或多个所述共享资源,以便所述作业支持作业关联的I/O的高效执行。
在另一方面,提供了一种用于资源共享池中的作业的高效处理的计算机程序产品。所述计算机程序产品包括其中包含计算机可读程序代码的计算机可读非瞬时性存储介质。当在计算机上执行时,所述计算机可读程序代码导致所述计算机从所述共享池内的资源收集信息。将所收集的信息传送到与一个或多个物理机通信的物理主机和关联的虚拟机。更具体地说,所收集的信息包括但不限于虚拟机信息和物理信息。提供程序代码以便根据所收集的信息收集所述资源共享池的本地拓扑信息,并定期向所述物理机的嵌入式监视器传送所收集的拓扑信息。此外,提供程序代码以便组织所收集的拓扑信息。所述拓扑信息包括但不限于作为虚拟拓扑的基础的存储拓扑和关联的资源利用率信息。提供程序代码以便利用所组织的存储拓扑信息,并响应性地将作业分配给所述共享池中的选定虚拟机。所述作业分配包括支持作业关联的I/O的高效执行。
在另一方面,提供了一种用于在资源共享池中实施的计算机实现的方法。更具体地说,所述资源共享池包括与支持一个或多个虚拟机的至少一个物理机通信的物理主机。从一个或多个所述虚拟机收集状态信息。定期收集和组织由所述物理机和虚拟机表示的资源共享池的层次结构组织的本地拓扑信息。更具体地说,将所组织的拓扑信息存储在所述资源共享池中。评估在所述拓扑中表示的存储资源和虚拟机的利用率。响应于所述拓扑以及对所述存储资源的评估,将作业分配给一个或多个选定虚拟机。因此,响应于所述拓扑和所述存储资源利用率评估,所述作业分配支持高效执行。
从以下结合附图的对本发明的当前优选实施例的详细描述,本发明的其它特性和优点将变得显而易见。
附图说明
在此参考的附图形成本说明书的一部分。附图中示出的特性旨在只是例示本发明的某些实施例而非本发明的所有实施例,除非明确地另有所指,这些附图是:
图1示出了根据本发明的一个实施例的云计算节点;
图2示出了根据本发明的一个实施例的云计算环境;
图3示出了根据本发明的一个实施例的抽象模型层;
图4是示出用于使用云感知MapReduce的体系结构的方块图;
图5是示出资源分配以及数据和虚拟机放置管理的流程图;
图6是示出数据放置的示例网络拓扑的流图;
图7示出了示例数据放置的流图;
图8示出了虚拟机放置的流图;
图9示出了具有被分配给虚拟机放置和节点分类的流图的值的表;
图10是示出用于在资源共享池中评估和利用物理机和虚拟机拓扑的过程的流程图;
图11是示出用于支持利用资源共享池的存储拓扑的方面的步骤的流程图;
图12是示出嵌入计算机系统中以便支持评估资源利用率以用于在资源共享池中分配作业而采用的技术的工具的方块图;以及
图13是示出用于实现本发明的一个实施例的系统的方块图。
具体实施方式
将很容易地理解,本发明的组件如通常在此处附图中描述和示出的那样,可以以各种不同的配置来布置和设计。因此,以下对本发明的装置、系统和方法的实施例的详细描述如在附图中表示的那样,并非旨在限制要求保护的本发明的范围,而只是表示本发明的选定实施例。
将本说明书中描述的功能单元(多个)标记为管理器(多个)和导向器(多个)形式的工具。管理器或导向器可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件之类的可编程硬件器件中实现。管理器(多个)或导向器(多个)还可以在软件中实现,以便由各种类型的处理器处理。例如,标识的具有可执行代码的管理器或导向器可以包括一个或多个物理或逻辑的计算机指令块,所述块可以例如组织为对象、过程、函数或其它构造。然而,标识的管理器或导向器的可执行代码不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当所述指令被逻辑地结合时,将包括所述管理器和导向器并实现所述管理器和导向器的声称的目的。
实际上,具有可执行代码的管理器或导向器可以是单个指令或多个指令,并且甚至可以分布在数个不同的代码段上、多个不同的应用中,以及跨多个存储设备。同样,操作数据可以在所述管理器或导向器中被标识和在此示出,并且可以包括在任何适当的形式中并组织在任何适当类型的数据结构中。操作数据可以被收集为单个数据集,或可以分布在包括不同存储设备的不同位置上,并且可以至少部分地作为电子信号存在于系统或网络中。
本说明书中对“一个选择实施例”、“一个实施例”或“一实施例”的引用指结合该实施例描述的特定特性、结构或特征被包括在本发明的至少一个实施例中。因此,本说明书的各种位置中出现的短语“一个选择实施例”、“在一个实施例中”或“在一实施例中”并非一定都指同一实施例。
此外,所描述的特性、结构或特征可以以任何适当的方式组合在一个或多个实施例中。在以下描述中,提供了大量特定的详细信息,例如拓扑管理器、钩子管理器、存储拓扑管理器、资源利用率管理器、应用管理器、导向器等的实例,以便彻底理解本发明的实施例。但是,本领域的技术人员将认识到,可以在没有一个或多个特定的细节的情况下实现本发明,或者可以通过其它方法、组件、材料等实现本发明。在其它情况下,未详细示出或描述公知的结构、材料或操作以避免使本发明的各方面变得模糊不清。
通过参考附图最佳地理解本发明的所示实施例,其中在图中由相同标号指定相同部件。以下描述仅旨在作为实例,并且仅示出与在此要求保护的本发明一致的设备、系统和过程的某些选定实施例。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。现在参考图1,示出了云计算节点的实例的示意图。云计算节点(10)仅仅是适合的云计算节点的一个实例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点(10)能够被用来实现和/或执行以上所述的任何功能。云计算节点(10)具有计算机系统/服务器(12),其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器(12)一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统或设备的分布式云计算环境,等等。
计算机系统/服务器(12)可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的作业或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器(12)可以在通过通信网络链接的远程处理设备执行作业的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算机系统存储介质上。
如图1所示,云计算节点(10)中的计算机系统/服务器(12)以通用计算设备的形式表现。计算机系统/服务器(12)的组件可以包括但不限于:一个或者多个处理器或者处理单元(16),系统存储器(28),连接不同系统组件(包括系统存储器(28)和处理器(16))的总线(18)。总线(18)表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。计算机系统/服务器(12)典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器(12)访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器(28)可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)(30)和/或高速缓存存储器(32)。计算机系统/服务器(12)可以还包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统(34)可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线(18)相连。如下面进一步示出和描述的那样,存储器(28)可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块(42)的程序/实用工具(40),可以存储在存储器(28)中,这样的程序模块(42)包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些实例中的每一个或某种组合中可能包括网络环境的实现。程序模块(42)通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器(12)也可以与一个或多个外部设备(14)(例如键盘、指向设备、显示器(24)等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器(12)交互的设备通信,和/或与使得该计算机系统/服务器(12)能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口(22)进行。并且,计算机系统/服务器(12)还可以通过网络适配器(20)与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器(20)通过总线(18)与计算机系统/服务器(12)的其它组件通信。应当明白,尽管图中未示出,其它硬件和/或软件组件可以与计算机系统/服务器(12)一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境(50)。如图所示,云计算环境(50)包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点(10),本地计算设备例如可以是个人数字助理(PDA)或移动电话(54A),台式电脑(54B)、笔记本电脑(54C)和/或汽车计算机系统(54N)。云计算节点(10)之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点(10)进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境(50)提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备(54A)-(54N)仅仅是示意性的,云计算节点(10)以及云计算环境(50)可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境(50)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:硬件和软件层(60)、虚拟层(62)、管理层(64)和工作负载层(66)。硬件和软件层(60)包括硬件和软件组件。硬件组件的例子包括:主机,例如 系统;基于RISC(精简指令集计算机)体系结构的服务器,例如系统;系统;系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如应用服务器软件;数据库软件,例如数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层(62)提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个实例中,管理层(64)可以提供下述功能:资源供应功能、计量和定价功能、用户门户功能、服务水平管理功能以及SLA计划和履行功能。下面将描述这些功能。资源供应功能:提供用于在云计算环境中执行作业的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和作业提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层(66)提供云计算环境可能实现的功能的实例。在该层中,可提供的工作负载或功能的实例包括但不限于:地图绘制与导航、软件开发及生命周期管理、虚拟教室的教学传递、数据分析处理、作业处理,以及响应于所述云计算环境中的虚拟资源层次结构而处理一个或多个作业。
虚拟机是执行程序的计算机的软件和/或硬件实现,其类似于物理机。虚拟机支持操作系统的一个实例以及一个或多个应用在计算机内的隔离分区中运行。在一个实施例中,虚拟机能够使不同的操作系统同时在同一计算机中运行。一个物理机可以支持多个虚拟机。多个操作系统可以在同一物理机中运行,并且每个虚拟机可以使用不同的操作系统处理作业。因此,与单个物理机关联的一个或多个虚拟机的使用支持在处理多个作业时高效使用硬件。
在云计算系统中高效使用虚拟机配置具有挑战性,这是由于物理机(即,节点)的物理拓扑的分布式性质所致。更具体地说,问题涉及评估和公开作为云计算系统虚拟拓扑的基础的物理拓扑,以及响应于物理拓扑和虚拟拓扑而利用作业处理。
提供了云平台(在此称为CAM)以将群集文件系统与资源调度相组合。CAM采用一种三级方法来避免放置异常,这三个级别包括数据放置、虚拟机作业放置和作业放置。对于数据放置,根据最常运行数据的作业的离线简档在群集中放置数据。作业放置受以下操作的影响:CAM选择最佳的可能物理节点(多个)来放置被分配给作业的虚拟机集合。为了进一步最小化放置异常的可能性,CAM向作业调度器公开否则将隐藏的计算、存储和网络拓扑,以便它进行最佳作业分配。CAM通过各种其它竞争性约束来协调资源分配,这些约束例如包括存储利用率、使用基于流网络的算法来更改CPU负载和网络链路容量,该算法能够同时减少初始放置的指定约束,以及根据虚拟机和数据迁移进行重新调整的指定约束。
图4是示出用于使用CAM的整体体系结构的方块图(400)。支持云的物理资源包括物理节点群集以及直接连接到单独节点的本地存储。如图所示,CAM使用文件系统,在一个实施例中可以是通用并行文件系统无共享群集(410),来提供其存储层。GPFS-SNC被设计为是云存储平台,其支持在云中及时、高资源效率地部署虚拟机。GPFS-SNC管理直接连接到商用物理机群集的本地磁盘。如图所示,物理层(420)被示出具有三个商用物理机(430)、(440)和(450)。在此示出的物理机的数量是出于示例性目的。在一个实施例中,该数量可以包括更小或更大数量的商用物理机。这些机器的每一个分别具有本地磁盘(432)、(442)和(452)。文件系统(410)支持文件的所有块共同位于一个位置处,而不是跨网络使该文件条带化。这使能从存储位置本地为虚拟机I/O请求提供服务,而不是跨网络从物理主机远程提供服务。CAM利用该特性确保位于一起的虚拟机映像被存储在一个位置处并可以被高效访问。
文件系统(410)还支持高效的块级流水线复制方案,其通过快速并行读取确保快速分布式恢复和高I/O吞吐量。该特性对于CAM实现高效故障恢复很有用。此外,文件系统(410)指定用户级应用程序接口API,其可以用于查询文件的物理位置。CAM使用该API获得实际块位置信息,以便确定数据和虚拟机放置的存储接近程度。
CAM采用三个组件提供拓扑感知。如图所示,提供了与物理层(420)通信的服务器(460)。服务器(460)在此也称为CAM拓扑服务器,提供所需的拓扑信息以使调度器能够进行最佳作业分配。服务器(460)公开的信息包括网络拓扑和存储拓扑以及其它动态节点级信息,例如CPU负载。进一步如图所示,物理机(430)、(440)和(450)的每一个分别具有代理(434)、(444)和(454)。每个代理在其相应的物理机上运行,并且定期收集有关相应机器的各种数据(例如,出站和入站网络带宽的利用率、I/O利用率、CPU、存储器和存储负载)并将其传送到服务器(460)。服务器(460)整合它从代理(434)、(444)和(454)接收的动态信息,并提供该信息以及有关在群集中运行的每个作业的拓扑信息。从现有虚拟机放置配置得出拓扑信息。作业调度器(470)与服务器(460)通过接口连接以获得准确、最新的拓扑信息。每当观察到配置更改时,调度器(470)相应地重新调整作业放置。因此,作业调度器利用CAM中的存储和物理主机资源利用率。
网络拓扑信息由距离矩阵表示,该矩阵将每对虚拟机之间的距离编码为跨机架、跨节点或跨虚拟机。当两个虚拟机放置在同一节点上时,它们通过虚拟网络连接进行连接。由于所述虚拟机共享同一节点硬件的事实,虚拟网络提供明显快于节点间或机架间链路的高速介质。同一节点上的虚拟机之间的网络业务不必通过硬件链路。网络虚拟设备通过高度优化的环形缓冲区转发存储器中的业务。
作为每个包含数据集的虚拟设备和该虚拟设备所属的本地虚拟机之间的映射而提供存储拓扑信息。在本机硬件上下文中,可以通过PCI总线直接访问附接到节点的磁盘。但是,在云中,属于附接到虚拟机的虚拟机映像的物理块可以位于不同节点上。尽管虚拟设备可能看似直接连接到虚拟机,但是支持该设备的映像文件可能跨网络,并且与群集中的另一个虚拟机的距离可能近于它直接附接到的虚拟机。服务器(460)通过API查询物理映像位置并将该信息提供给调度器(470)。
下面的表1中描述了服务器(460)提供的特定API的实例:
表1
指令get_vm_distance为作业调度器(470)提供作业以及有关两个虚拟机之间网络距离的提示。根据观察到的虚拟机之间的数据传输速率来估计该距离,并且在一个实施例中该距离以带宽单位表示。指令get_block_location支持获得实际块位置而不是虚拟机的位置,从而确保定位。指令get_vm_networkinfo、get_vm_diskinfo和get_vm_cpuinfo促进作业调度器(470)查询与网络和磁盘利用率相关的I/O和CPU争用信息。在一个实施例中,调度器(470)可以利用此额外信息做出更智能的决策,包括在一个实施例中将I/O密集型作业放置在具有空闲I/O资源的物理主机上。
图5是示出资源分配以及数据和虚拟机放置管理的流程图(500)。如所描述的那样,CAM是一种云平台,具有用于运行MapReduce作业的特定接口和支持。要处理的数据集最初放置在通用文件系统(GPFS)上。更具体地说,不分离存储资源和计算资源。通过为应用提供例如相关java类文件(指示先前上载的对应于MapReduce作业的数据集)以及要用于MapReduce作业的虚拟机数量和类型,提交该作业(502)。在一个实施例中,每个虚拟机支持数个MapReduce作业空位(slot),具体取决于虚拟CPU数量以及被分配给虚拟机的虚拟RAM。被分配给作业的虚拟机数量越多,作业的完成速度就越快。
CAM通过考虑多个因素(包括但不限于群集节点之中的当前工作负载分布、作业需要的输入数据集的分布,以及所需的主虚拟机映像的物理位置),确定被请求的一组新虚拟机的最佳放置(504)。从相应的主映像创建在选定节点上引导虚拟机所需的虚拟机映像(506)。在一个实施例中,使用通用文件系统提供的写入时复制机制来创建虚拟机,因为这允许快速提供虚拟机映像实例而不需要主映像的数据副本。在步骤(506)之后,将作业类文件复制到克隆的虚拟机映像中(508)。在一个实施例中,通过将映像安装为回环文件系统,发生步骤(508)处的复制。最后,将数据映像附加到虚拟机并在虚拟机中安装相应的文件(510),因为这能够使作业访问其中包含的数据。
针对图4,每个物理机(430)、(440)和(450)分别配备有本地磁盘(432)、(442)和(452)。将分布式文件系统(410)(在此也称为GPFS-SNC)安装于物理机(430)、(440)和(450)之上。将虚拟机映像(436)、(446)和(456)存储在分布式文件系统(410)中。在一个实施例中,云管理器将资源分配给作业并管理数据放置和虚拟机放置。
数据和虚拟机的放置是针对成本要考虑的方面。具体地说,放置包括根据不同的作业类型确保虚拟机接近程度、避免热点以及平衡物理存储利用率。虚拟机接近程度表示访问数据的成本,并捕获应该如何针对其关联的虚拟机放置数据以最小化访问时间。热点因素表示机器上的预期负载,并标识没有足够的计算资源(多个)来支持被分配的虚拟机的机器。为了避免热点,需要将数据放置在最小负载的机器上。这可以通过以下操作确定:测量目前分配给机器的计算资源,并向该资源中添加将使用要放置在机器上的数据的虚拟机的预期分配要求。最后,存储利用率表示使用中的总物理机存储空间的百分比。
下表(表2)是示出上述影响不同工作负载的性能的三个因素的显著性的表。
表2
对于属于映射和化简密集型的工作负载,相关数据应该在最小负载的机器上接近放置。对于映射密集型工作负载,数据应该放置在最小负载的机器上,但不一定需要接近放置,因为此类工作负载中的扰乱业务(shuffletraffic)很少。对于化简密集型工作负载,唯一的问题是其上放置虚拟机的机器的存储利用率。对于所有类型的工作负载,期望跨机架均匀放置数据,以最小化为了支持迁移虚拟机而随时间重新布置数据的需要。
表2中组织的因素用于构造对所述因素进行编码的最小成本流图。图6是示出数据放置的示例网络拓扑的流图(600)。更具体地说,示例网络拓扑包括六个物理节点(p1、p2、p3、p4、p5、p6),标识为(610)、(612)、(614)、(616)、(618)和(620)。所述物理节点被组织成三个机架(r1、r2、r3),标识为(630)、(632)和(634)。主机架r4(例如,交换机,标识为(650))连接所述机架。在一个实施例中,在此示出的拓扑可以支持任何可以估计网络业务的拓扑。数据放置的单位是虚拟机映像以确保可在一个位置处提供整个映像。
基于图6的流图,图7中示出了示例数据放置的第二流图(700)。将两个数据项d1(702)和d2(704)以及分别对5个和2个虚拟机映像的请求提交到云(例如,资源共享池)。数据项请求的虚拟机映像数量被表示为该数据项对流图的供应。将汇聚节点S(790)添加到图中以支持虚拟机。汇聚节点可以处理的虚拟机数量被指定为需求值。在此处示出的实例中,汇聚节点(790)的需求为七,并且是可以接收所有流的唯一位置。每个流图边缘附加两个参数,包括该边缘的容量以及流通过该边缘的成本。数据节点d1(702)和d2(704)具有到达每个机架的出站链路,并且以虚拟机接近程度作为成本。如图所示,数据节点d1(702)具有到达机架r1(722)的链路(712),数据节点d1(702)具有到达机架r2(724)的链路(714),数据节点d1(702)具有到达机架r3(726)的链路(716),数据节点d1(702)具有到达机架r4(728)的链路(718),数据节点d2(704)具有到达机架r1(722)的链路(732),数据节点d2(704)具有到达机架r2(724)的链路(734),数据节点d2(704)具有到达机架r3(726)的链路(736),以及数据节点d2(704)具有到达机架r4(728)的链路(738)。在此示出了六个物理节点,具体为p1(740)、p2(742)、p3(744)、p4(746)、p5(748)和p6(750)。在从机架到其范围内的每个物理节点p的链路(750)、(752)、(754)、(756)、(758)和(760)中编码热点因素。尽管r4(728)用作机架之间的交换机,但是它被示为直接连接到所有物理节点,以确保可以针对映射密集型作业选择最小负载的机器而不受网络拓扑的约束。
所有物理节点p1(740)、p2(742)、p3(744)、p4(746)、p5(748)和p6(750)都链接到汇聚节点(790),并且以存储利用率作为链路成本。从数据项节点dj到关联的物理主机pi没有直接链路。这是为了支持扩展系统。下表(表3)示出了被分配给数据放置流图的值。
表3
如表所示,Ndj是数据集dj请求的虚拟机映像数量,αjk获得虚拟机接近程度。从数据集dj到机架rk上的物理主机pi(其上放置数据)的出站链路的成本αjk由扰乱阶段中的业务保守地估计如下:
αjk=sizeintermediate-data*num Reducer -1 *dis tan cemax
num
Reducer
其中distancemax是机架rk中的任何两个节点之间的网络距离。
热点因素使用物理节点pi的βi获得,并由当前负载和预期负载估计如下:
βi=a*(loadexp+loadcurr-loadmin)
其中loadcurr和loadmin分别表示当前负载和最小当前负载,a是用作调节器的参数,用于相对于其它成本调整热点因素权重。预期负载loadexp如下所示:
loadexp=∑j(pj/(1-pj)*CRes(dj))
其中pj=λjμj,λj表示在给定时间间隔内到达的dj的关联作业数量,μj表示每个虚拟机处理一个块的平均时间。
物理节点pi的存储利用率通过γi获得,γi由所有pi的当前存储利用率与最小存储利用率的比较来确定,如下所示:
γi=b*(storageUtilizationpi-storageUtilizationmin)
其中b是用于相对于其它因素微调存储利用率权重的参数。最后针对容量,采用以下公式估计每个物理主机的容量:
Capi=freespacepisizeVMImg
为使该图能够捕获用于一个数据请求的虚拟机映像放置之间的关联,提供了拆分因子参数以指定是否允许跨不同链路拆分来自一个节点的流。在一个实施例中,该参数的值被定义为true或false。例如,如果来自d1和d2的所有链路的拆分因子均为true,则来自数据节点的所有流将全部通过r1、r2、r3、r4之一,但不会在机架之间拆分。一旦接收到新的数据上载请求,云服务器就更新该图,并根据新近更新后的数据的所计算解决方案来计算全局最佳解决方案。因此,调度器根据新的解决方案定期更新,并可以适应变化的负载。
虚拟机放置的目标是最大化全局数据本地性(locality)和作业吞吐量。我们的模型将虚拟机迁移和延迟作业调度作为最佳解决方案的一部分加以考虑。延迟作业用于寻求可能在不久将来出现的更好的数据本地性机会,同时最小化等待期间浪费的时间。迁移属于作业的虚拟机能够使调度器为其它适合的作业腾出空间或者寻求更好的本地性机会。
图8示出了虚拟机放置的流图(800)。在源节点处将每个作业vj(802)和(804)提交到系统,并且将所请求虚拟机数量Nvj作为供应值。虚拟机分配器的目标是将所述作业保持为未调度,例如为每个请求分配0个或分配Nvj个虚拟机。存在单个汇聚节点S(890),其需求等于负的供应总和。来自每个作业的请求作为通过机架节点(810)、(812)、(814)和(816)或通过未调度节点(820)、(822)和(824)并最后到达汇聚节点(890)的流。如果作业未调度,则不分配其虚拟机。否则,所述流通过物理节点(830)、(832)、(834)、(836)、(838)和(840)。根据最小成本解决方案,可以获得具有最小成本的分配方案。如果将虚拟机分配给最高级别机架,则意味着可以将所述虚拟机任意分配给该机架下的虚拟机中的任何一组节点。
在基于流的图中,将作业类型信息建模为从每个作业到机架节点的边缘的成本。就化简后的业务而言,较高级机架比较低级机架具有更高的成本。在一个实施例中,通过有关映射和化简后的业务的最差情况虚拟机布置来估计最高级机架的成本。将到未调度节点的边缘的成本设置为随时间而增加,以使延迟后的作业的分配早于最近提交的作业。该成本还控制作业何时停止等待更好的本地性,因而提供一种调节器来调整数据本地性与延迟之间的权衡。聚合的未调度节点将控制多少个虚拟机可以保持未调度,以控制系统资源利用率和数据本地性权衡。用于运行节点集合的边缘的成本随时间而增加,并且是作业进度感知的。
图9是示出具有被分配给虚拟机放置和节点分类的流图的值的表(900)。将该图中的各种节点分类为表中所示的不同类型。优选节点集合(prj)(910)是一组图节点,它们指向具有存储在其上的作业vj关联的数据集的一组物理节点pi。从优选节点到物理节点pi的边缘的成本为0,并且容量为存储在物理节点pi上的虚拟机磁盘映像数。运行中的节点集合(ruj)(920)是指向目前托管作业(vj)虚拟机的物理节点(pis)的一组动态添加的节点。从ruj到pi的边缘的成本为0,并且容量为在物理节点pi上运行的虚拟机数量。未调度节点集合uj(930)是一组提供有关当前未调度作业的信息的节点。未调度节点集合uj具有到未调度聚合器的出站边缘,其容量为Nvj并且代码为0。未调度聚合器节点u(940)具有到汇聚节点的出站边缘,其成本为0并且容量被定义为:
Nunsched=∑(Nvj)-M+Midle
其中M是群集可以支持的虚拟机总数,Midle表示群集中允许的空闲虚拟机空位数量。
机架节点集合rk(950)表示群集拓扑中的机架。它具有到其子机架的成本为0的出站链路,或者如果它在最低级别,则具有到物理节点的出站链路。这些链路具有容量Nrk,其是可以由该集合的底层节点提供服务的虚拟机空位总数。物理主机节点集合pi(960)具有到汇聚节点的出站链路,其容量为物理主机上可以容纳的虚拟机数量Nvm,并且成本为0。该图具有汇聚节点(970),其需求表示为∑(Nvj)。作业节点集合vj(980)表示每个作业节点vj,其供应为Nvj。它具有对应于该作业集合的可能虚拟机分配决策的多个出站边缘。
所述边缘包括机架节点集合、优选节点集合、运行中的节点集合,以及未调度节点集合。机架节点集合rk具有到rk的边缘,其指示rk可以容纳vj。所述边缘的成本为pj,其通过映射和化简业务成本计算。如果边缘的容量大于Nvj,则意味着将在机架上的某些优选节点中分配vj的虚拟机。优选节点集合prj具有从作业vj到作业范围优选节点集合prj的边缘,其具有容量Nvj和成本θ。仅通过化简阶段业务估计该成本,因为在这种情况下,假设映射业务为零。运行中的节点集合ruj具有来自作业vj的链路,容量为Nvj并且成本φ=c*T,其中T是作业已经在机器集合上执行的时间,c是用于相对于其它成本调整该成本的常数。未调度节点集合uj具有到作业范围未调度节点uj的边缘,其容量为Nvj并且成本为∈j,该成本对应于保持作业vj未调度的损失。∈j=d*T,其中T是作业vj保持未调度的时间,c是用于相对于其它成本调整该成本的常数。该链路的拆分因子被标记为true,这意味着所有虚拟机的分配均被满足或延迟,直到下一回合为止。
基于最小成本流解决方案的输出,可以通过针对每个虚拟机请求vj查找关联流导向何处,从该图中获得虚拟机分配。到达未调度节点的流指示在当前回合跳过虚拟机请求。如果该流导向优选节点集合,则在该节点集合上调度虚拟机请求。如果该流导向机架节点,则意味着将来自作业的虚拟机分配给该机架中的任意主机。
通过机架节点或优选节点集合到物理主机的流集合数量低于每个物理主机的可用虚拟机数量。这通过从物理主机到汇聚节点的指定链路容量来保证。因此,被分配的所有虚拟机请求将与对应的物理主机匹配。
图10是示出用于在资源共享池中评估和利用物理机和虚拟机拓扑的过程的流程图(1000)。收集共享池中的虚拟机的状态(1002)。将认识到,可以将一个或多个虚拟机分配给单个物理主机,从而支持底层物理机的虚拟化。根据所收集的数据,收集关联的拓扑信息并将其传送到物理机和虚拟机的层次结构组织的根节点处的服务器(1004)。
每个虚拟机具备嵌入式代理,并且虚拟机所分配到的每个物理机具备嵌入式监视器。提供与每个物理机通信的服务器,其用于定期从底层物理机的嵌入式监视器收集信息。嵌入式监视器用于读出本地拓扑、磁盘和网络信息。在一个实施例中,嵌入式监视器采用在物理机上运行的软件的形式,以便收集相关虚拟机的状态数据。同样,每个虚拟机的嵌入式代理将实际拓扑和系统利用率信息传送到服务器。因此,每个虚拟机和物理机都包括嵌入式工具,以便收集拓扑关联的利用率信息并将所收集的信息传送到服务器。
在步骤(1004)处收集拓扑数据的步骤之后,在单个位置中组织所收集的数据(1006)。在一个实施例中,所述单个位置可以是根节点,其表示与每个虚拟机及其关联的物理机通信的物理服务器。如在步骤(1004)处所示,从虚拟机的嵌入式代理传送的数据包括实际拓扑和系统利用率信息。在步骤(1004)处收集的数据包括作为资源共享池的虚拟拓扑基础的存储拓扑以及关联的资源利用率信息。具备有关所收集的数据的知识之后,将作业分配给共享池中的选定虚拟机,并且所述分配利用所组织的存储拓扑信息(1008)。在一个实施例中,步骤(1008)处的作业分配旨在支持作业关联的I/O的高效执行。因此,收集和组织本地拓扑信息的过程使能将作业智能地分配给选定虚拟机。
在步骤(1008)中可以将作业分配给一个虚拟机或多个虚拟机。同样,所述作业可以是读取作业或写入作业。针对这两种情况,响应于作业分配而返回虚拟拓扑距离(1010)。所述虚拟拓扑距离可以是两个或更多个虚拟机之间的距离(将作业分配给多个机器时),或者所述虚拟拓扑距离可以在虚拟机和数据块之间(作业支持单个虚拟机进行读取或写入作业时)。在步骤(1010)之后,判定所返回的拓扑距离是否在至少两个虚拟机之间(1012)。通过以下操作执行对步骤(1012)中的判定的肯定响应:创建共享存储器通道以便在同一物理机的两个本地虚拟机之间实现虚拟机间数据通信(1014)。创建共享存储器通道支持两个虚拟机之间的高效数据传输。更具体地说,可以采用存储器复制以便在虚拟机之间通信,从而避免跨虚拟网络栈通信(1016)。相反,通过以下操作执行对步骤(1012)中的判定的否定响应:使用虚拟网络栈以便在支持被分配的作业的虚拟机之间通信(1018)。因此,虚拟机的物理接近性可以使它自身高效传输虚拟机间通信。
物理机支持虚拟机并且数据块支持作业。共享池中的数据块的位置影响将作业分配给物理机和关联的虚拟机(多个)。更具体地说,高效使用共享池中的资源确保物理机与数据块的物理接近度。在一个实施例中,将作业分配给与主题数据块在同一物理数据中心内的物理机。因此,步骤(1008)处分配作业的过程的一部分包括确定共享池中支持所述作业的数据块的物理位置。
除了块的位置之外,用于支持作业的底层物理机的带宽也很关键。步骤(1008)处利用存储拓扑信息的步骤可能需要一个或多个附加步骤。图11是示出用于支持利用资源共享池的存储拓扑的方面的附加步骤的流程图(1100)。如上所述,响应于所述存储拓扑,指定虚拟机接收作业以便处理(1102)。在实际作业处理之前,确定虚拟机本地的物理机的利用率信息(1104)。所述利用率信息包括但不限于处理单元和网络利用率信息。判定底层物理机是否具有支持所述作业的带宽和能力(1106)。通过以下操作执行对步骤(1106)处的判定的否定响应:返回到在共享池中选择和分配不同的虚拟机。相反,对步骤(1106)处的判定的肯定响应是指示选定虚拟机具有以下两者:支持所述作业的足够带宽,以及支持所述作业的到数据块(多个)的物理位置的接近拓扑距离(1108)。在一个实施例中,所述接近拓扑距离包括但不限于数据与虚拟机位于同一数据中心内。因此,利用存储拓扑的方面包括连同支持所述作业的数据的位置一起评估机器的操作。
如图10-11中所示,提供了一种方法,其采用机器的拓扑组织以及支持作业的数据块的位置来智能地分配作业。将作业分配给已被评估为可以支持高效处理的机器。图12是示出嵌入在计算机系统中以便支持评估资源利用率以用于在资源共享池中分配作业而采用的技术的工具的方块图(1200)。具体地说,共享的可配置计算机资源池被示出具有第一数据中心(1210)、第二数据中心(1230)和第三数据中心(1250)。尽管在此处实例中示出三个数据中心,但本发明不应限于在计算机系统中具有该数量的数据中心。每个数据中心表示一个计算资源。因此,可以采用一个或多个数据中心以支持根据资源利用率和支持作业(多个)的数据块的接近度来高效和智能地分配作业。
为系统中的每个数据中心提供至少一个与数据存储装置通信的服务器。更具体地说,为第一数据中心(1210)提供第一服务器(1220),其具有跨总线(1226)与存储器(1224)通信并与数据存储装置(1228)通信的处理单元(1222);为第二数据中心(1230)提供第二服务器(1240),其具有跨总线(1246)与存储器(1244)通信并与第二本地存储装置(1248)通信的处理单元(1242);以及为第三数据中心(1250)提供第三服务器(1260),其具有跨总线(1266)与存储器(1264)通信并与第三本地存储装置(1268)通信的处理单元(1262)。第一服务器(1220)在此也称为物理主机。跨一个或多个网络连接(1205)支持数据中心之间的通信。
第二服务器(1240)包括两个虚拟机(1232)和(1236)。第一虚拟机(1232)具有嵌入式代理(1232a),第二虚拟机(1236)具有嵌入式代理(1236a)。此外,第二服务器(1240)包括监视器(1234)以促进分别与第一和第二虚拟机(1232)和(1236)的通信。第三服务器(1260)包括两个虚拟机(1252)和(1256)。第一虚拟机(1252)具有嵌入式代理(1252a),第二虚拟机(1256)具有嵌入式代理(1256a)。此外,第三服务器(1260)包括监视器(1254)以促进分别与第一和第二虚拟机(1252)和(1256)的通信。尽管仅示出两个与第二服务器(1240)通信的虚拟机(1232)和(1236),并且仅示出两个与第三服务器(1260)通信的虚拟机(1252)和(1256),但本发明不应限于这些数量,因为这些数量仅为了示例性目的。可以增加或减少分别与第二和第三服务器(1240)和(1260)通信的虚拟机数量。
如此处所示,第二和第三服务器(1240)和(1260)均分别支持两个虚拟机(1232)、(1236)和(1252)、(1256)。服务器(1240)的监视器(1234)从虚拟机(1232)和(1236)的每一个中收集状态数据。监视器(1234)与嵌入式代理(1232a)和(1236a)通信以便分别从虚拟机(1232)和(1236)收集虚拟机状态。同样,监视器(1254)从虚拟机(1252)和(1256)的每一个中(具体为分别从嵌入式代理(1252a)和(1256a)中)收集状态数据。
第一服务器(1220)具备功能单元(1270),其具有一个或多个工具以便支持在资源共享池中智能地分配一个或多个作业。功能单元(1270)被示出在第一数据中心(1210)的本地,并且专门与存储器(1224)通信。在一个实施例中,功能单元(1270)可以在资源共享池中的任何数据中心的本地。嵌入功能单元(1270)中的工具包括但不限于导向器(1272)、拓扑管理器(1274)、钩子管理器(1276)、存储拓扑管理器(1278)、资源利用率管理器(1280)以及应用管理器(1282)。
在共享池中提供导向器(1272)以便定期与监视器(1234)和(1254)通信,以在单个位置中组织和保留作为资源共享池虚拟拓扑的基础的存储拓扑以及关联的资源利用率信息。更具体地说,导向器(1272)与监视器(1234)和(1254)的通信支持收集和组织资源共享池的拓扑。通过组织和理解拓扑数据,导向器(1272)可以利用所述资源利用率信息来智能地将作业分配给池中的一个或多个共享资源,并且采用的方式支持高效执行作业关联的I/O。因此,导向器(1272)收集和利用拓扑以便支持高效处理资源共享池中的读取和写入作业。
如上所述,提供若干管理器以支持导向器(1272)的功能。与导向器(1272)通信的拓扑管理器(1274)用于将虚拟拓扑距离数据返回到导向器(1272)。虚拟拓扑距离数据包括但不限于两个虚拟机之间的距离或者虚拟机和数据块之间的距离。例如,与同一服务器通信的两个虚拟机被视为相对较近。但是,相比于与同一服务器通信的两个虚拟机,与第二服务器通信的第二虚拟机以及与第三服务器通信的第三虚拟机被视为相对较远。与导向器(1272)通信的存储拓扑管理器(1278)用于返回支持资源共享池中的作业的一个或多个数据块的物理位置。在一个实施例中,存储拓扑管理器(1278)将数据块的物理位置返回到导向器(1272),从而使得导向器能够响应于主题数据块(多个)的位置而智能地将作业分配给虚拟机。因此,拓扑管理器(1274)用于针对高效作业处理而确定层次结构中的距离,并且存储拓扑管理器(1278)用于确定支持作业的数据块的位置。
还提供了三个其它管理器,包括资源利用率管理器(1280)、应用管理器(1282)和钩子管理器(1276)。资源利用率管理器(1280)用于确定一个或多个物理或虚拟资源的利用率。每个资源具有固有的限制。资源利用率管理器(1280)将处理单元的利用率信息以及与底层物理机和虚拟机关联的网络利用率信息返回到导向器(1272)。与资源利用率管理器(1280)通信的应用管理器(1282)响应于资源利用率信息而将作业分配给虚拟机。更具体地说,应用管理器(1282)确保在拓扑中将作业分配给机器将保证机器具有支持作业的足够带宽,以及与支持作业的数据块具有足够接近的拓扑距离。因此,资源利用率管理器(1280)和应用管理器(1282)分别考虑了利用率和带宽。
除了上面详细描述的管理器之外,钩子管理器(1276)用于促进虚拟机之间的通信。更具体地说,提供与导向器(1272)通信的钩子管理器(1276),以便创建用于虚拟机间通信的共享存储器通道。所述共享存储器通道促进位于同一物理机中的两个虚拟机之间的通信,方式为:使两个此类虚拟机之间的数据传输能够在同一存储器栈上(例如,跨所述存储器通道)发生。因此,钩子管理器(1276)创建的共享存储器通道支持在资源共享池的层次结构中高效传送数据。
如上所标识的,导向器(1272)、拓扑管理器(1274)、钩子管理器(1276)、存储拓扑管理器(1278)、资源利用率管理器(1280)以及应用管理器(1282)被示为位于第一数据中心(1210)的本地服务器(1220)的功能单元(1270)中。尽管在一个实施例中,功能单元(1270)以及关联的导向器和管理器可以分别作为硬件工具位于第一数据中心(1210)的服务器(1220)的存储器(1224)的外部,但它们可以被实现为硬件和软件的组合,或者可以位于资源共享池中的第二数据中心(1230)或第三数据中心(1250)的本地。同样,在一个实施例中,导向器和管理器可以被组合成单个功能项,其包括单独项的功能。如此处所示,导向器和管理器(多个)的每一个被示出在一个数据中心的本地。但是,在一个实施例中,它们可以共同或单独跨共享的可配置计算机资源池分布,并且用作一个单元来评估共享池中的处理单元和数据存储装置的拓扑,并响应于层次结构而处理一个或多个作业。因此,所述管理器可以被实现为软件工具、硬件工具或软件和硬件工具的组合。
如本领域的技术人员将理解的,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常可以被称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质(在介质中包含计算机可读程序代码)中的计算机程序产品的形式。
可以使用一个或多个计算机可读介质的任意组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体系统、装置或设备或上述任意适合的组合。所述计算机可读存储介质的更具体的实例(非穷举列表)将包括以下项:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或上述任意适合的组合。在本文档的上下文中,计算机可读存储介质可以是任何能够包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合的程序的有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码(例如,在基带中或作为载波的一部分)的传播数据信号。此类传播信号可以采取各种形式中的任一种,包括但不限于电磁、光或其中任意适合的组合。计算机可读信号介质可以是任何不属于计算机可读存储介质并且能够传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合的程序的计算机可读介质。
可以使用任何适当的介质(包括但不限于无线、线缆、光缆、RF等或上述任意适合的组合)来传输包含在计算机可读介质中的程序代码。
用于执行本发明的各方面的操作的计算机程序代码可以使用包含一种或多种编程语言的任意组合来编写,所述编程语言包括诸如Java、Smalltalk、C++之类的面向对象的编程语言以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。所述程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上并部分地在远程计算机上执行,或者完全地在远程计算机或服务器上执行。在后者的情况中,所述远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型网络与用户的计算机相连,或者可以与外部计算机进行连接(例如,使用因特网服务提供商通过因特网连接)。
上面参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或方块图对本发明的各方面进行了描述。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,以便通过所述计算机或其它可编程数据处理装置的处理器执行的所述指令产生用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的装置。
这些计算机程序指令也可以被存储在能够引导计算机、其它可编程数据处理装置或其它设备以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的所述指令产生一件包括实现在一个或多个流程图和/或方块图方块中指定的功能/操作的指令的制品。
所述计算机程序指令还可被加载到计算机、其它可编程数据处理装置或其它设备,以导致在所述计算机、其它可编程装置或其它设备上执行一系列操作步骤以产生计算机实现的过程,从而在所述计算机或其它可编程装置上执行的所述指令提供用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的过程。
现在参考图13,它是示出用于实现本发明的一个实施例的系统的方块图(1300)。所述计算机系统包括一个或多个处理器,例如处理器(1302)。处理器(1302)连接到通信基础架构(1304)(例如,通信总线、交叉开关或网络)。所述计算机系统可以包括显示接口(1306),其转发来自通信基础架构(1304)(或来自帧缓冲器(未示出))的图形、文本和其它数据以便在显示单元(1308)上显示。所述计算机系统还包括主存储器(1310),优选地为随机存取存储器(RAM),并且还可以包括辅助存储器(1312)。辅助存储器(1312)例如可以包括硬盘驱动器(1314)和/或可移动存储驱动器(1316),例如其表示软盘驱动器、磁带驱动器或光盘驱动器。可移动存储驱动器(1316)以本领域技术人员公知的方式来读写可移动存储单元(1318)和/或向可移动存储单元(1318)写入。可移动存储单元(1318)例如表示软盘、压缩盘、磁带或光盘等,其可由可移动存储驱动器(1316)读写。将理解的,可移动存储单元(1318)包括其中存储计算机软件和/或数据的计算机可读介质。
在备选实施例中,辅助存储器(1312)可以包括其它类似的装置,以便允许将计算机程序或其它指令加载到所述计算机系统。此类装置例如可以包括可移动存储单元(1320)和接口(1322)。此类装置的实例可以包括程序包和包接口(例如在视频游戏设备中)、可移动存储器芯片(例如EPROM或PROM)和关联的插槽,以及允许将软件和数据从可移动存储单元(1320)传输到所述计算机系统的其它可移动存储单元(1320)和接口(1322)。
所述计算机系统还可以包括通信接口(1324)。通信接口(1324)允许在所述计算机系统和外部设备之间传输软件和数据。通信接口(1324)的实例可以包括调制解调器、网络接口(例如以太网卡)、通信端口或PCMCIA插槽和卡等。通过通信接口(1324)传输的软件和数据采用信号形式,所述信号例如可以是电、电磁、光信号或其它能够由通信接口(1324)接收的信号。通过通信路径(即,通道)(1326)将这些信号提供给通信接口(1324)。该通信路径(1326)承载信号,并可以使用电线或电缆、光纤、电话线路、蜂窝电话链路、射频(RF)链路和/或其它通信通道来实现。
在本文档中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用于泛指介质,例如主存储器(1310)和辅助存储器(1312)、可移动存储驱动器(1316)以及安装在硬盘驱动器(1314)中的硬盘。
计算机程序(也称为计算机控制逻辑)被存储在主存储器(1310)和/或辅助存储器(1312)中。还可以通过通信接口(1324)接收计算机程序。当运行时,此类计算机程序使得所述计算机系统能够执行在此讨论的本发明的功能。具体地说,当运行时,所述计算机程序使得处理器(1302)能够执行所述计算机系统的功能。因此,此类计算机程序表示所述计算机系统的控制器。
附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的体系结构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此所使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组的存在或增加。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要将本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。因此,增强的云计算模型支持灵活进行应用处理和灾难恢复,包括但不限于支持将数据位置与应用位置分离以及选择适当的恢复地点。
如在此所描述的,平台具备资源调度器,以便解决MapReduce作业在云环境中运行时的性能下降。云感知MapReduce采用一种三级方法来避免由于低效资源分配而导致的放置异常,包括:将数据放置在运行最常使用该数据的作业的群集中,选择模式适当的物理节点放置被分配给作业的虚拟机集合,以及向调度器公开计算、存储和网络拓扑。CAM使用基于流网络的算法,该算法能够使资源分配符合各种其它竞争性约束(例如存储利用率、变化的处理器负载和网络链路容量)。
备选实施例
将理解,尽管在此出于示例目的描述了本发明的特定实施例,但可以在不偏离本发明的精神和范围的情况下进行各种修改。因此,本发明的保护范围仅由以下权利要求及其等同物来限制。
Claims (19)
1.一种方法,包括:
在资源共享池中包括物理主机,所述物理主机与支持一个或多个虚拟机的至少一个物理机通信,从一个或多个所述虚拟机收集虚拟机状态;
收集所述资源共享池的本地拓扑信息,包括定期与所述物理机的嵌入式监视器通信;
组织所收集的本地拓扑信息,所述本地拓扑信息包括作为虚拟拓扑的基础的存储拓扑和关联的资源利用率信息;
利用所组织的拓扑信息,包括响应性地将作业分配给所述共享池中的选定虚拟机,所述作业分配支持作业关联的I/O的高效执行。
2.根据权利要求1的方法,还包括返回与所述作业关联的虚拟拓扑距离,从包括以下项的组选择所述虚拟拓扑距离:两个虚拟机之间的距离,以及虚拟机与数据块之间的距离。
3.根据权利要求2的方法,还包括创建共享存储器通道以支持所述作业,所述通道支持位于同一物理机中的第一虚拟机与第二虚拟机之间的虚拟机间数据通信。
4.根据权利要求3的方法,其中所述共享存储器通道支持所述第一和第二虚拟机两者的高效数据传输。
5.根据权利要求1的方法,其中利用所组织的存储拓扑信息的步骤包括返回一个或多个数据块的物理位置以支持所述共享池中的所述作业。
6.根据权利要求5的方法,还包括返回处理单元的利用率信息和所述虚拟机本地的所述物理机的网络利用率信息。
7.根据权利要求6的方法,其中将所述作业分配给虚拟机的步骤包括选择如下虚拟机:其具有足够带宽并与所述一个或多个数据块的物理位置具有接近的拓扑距离以支持所述作业。
8.一种系统,包括:
资源共享池,所述共享池包括与多个物理机通信的物理主机,每个物理机支持至少一个虚拟机,每个物理机具有嵌入式监视器以从本地虚拟机收集虚拟机状态,并且每个虚拟机具有嵌入式代理;
与所述物理主机通信的功能单元,所述功能单元具有工具以便响应于所述共享池的拓扑体系结构而支持作业的高效处理,所述工具包括:
与所述主机通信的导向器,所述导向器定期与每个嵌入式监视器通信,并收集和组织作为虚拟拓扑的基础的拓扑,所述拓扑包括所述共享池中的数据存储的存储拓扑和关联的资源利用率信息;以及
所述导向器利用所组织的拓扑将所述作业分配给一个或多个所述共享资源,其中所述作业的分配支持作业关联的I/O的高效执行。
9.根据权利要求8的系统,还包括与所述导向器通信的拓扑管理器,所述拓扑管理器返回虚拟拓扑距离,从包括以下项的组选择所述虚拟拓扑距离:两个虚拟机之间的距离,以及虚拟机与数据块之间的距离。
10.根据权利要求8的系统,还包括与所述虚拟机之一的嵌入式代理通信并与所述导向器通信的钩子管理器,所述钩子管理器创建共享存储器通道以便在位于同一物理机中的第一虚拟机与第二虚拟机之间实现虚拟机间数据通信。
11.根据权利要求10的系统,其中所述共享存储器通道支持所述第一和第二虚拟机两者的高效数据传输。
12.根据权利要求8的系统,还包括与所述导向器通信的存储拓扑管理器,所述存储拓扑管理器返回一个或多个数据块的物理位置以支持所述共享池中的所述作业。
13.根据权利要求12的系统,还包括与所述导向器通信的资源利用率管理器,所述资源利用率管理器返回处理单元的利用率信息和所述虚拟机本地的所述物理机的网络利用率信息。
14.根据权利要求13的系统,还包括与所述导向器通信的应用管理器,所述应用管理器将所述作业分配给如下虚拟机:其具有足够带宽以支持所述作业,并与所述一个或多个数据块的物理位置具有接近的拓扑距离以支持所述作业。
15.一种方法,包括:
从共享池内的资源收集信息,所述信息包括来自资源共享池中的本地虚拟机的虚拟机状态和支持一个或多个虚拟机的至少一个物理机状态;
定期收集所述资源共享池的本地拓扑信息,并向所述物理机的嵌入式监视器传送所收集的信息;
组织所收集的本地拓扑信息,所述本地拓扑信息包括作为虚拟拓扑的基础的存储拓扑和关联的资源利用率信息;以及
利用所组织的存储拓扑信息并响应性地将作业分配给所述共享池中的选定虚拟机,所述分配支持作业关联的I/O的高效执行。
16.一种系统,包括:
适于从共享池内的资源收集信息的模块,所述信息包括来自资源共享池中的本地虚拟机的虚拟机状态和支持一个或多个虚拟机的至少一个物理机状态;
适于定期收集所述资源共享池的本地拓扑信息,并向所述物理机的嵌入式监视器传送所收集的信息的模块;
适于组织所收集的本地拓扑信息的模块,所述本地拓扑信息包括作为虚拟拓扑的基础的存储拓扑和关联的资源利用率信息;以及
适于利用所组织的存储拓扑信息并响应性地将作业分配给所述共享池中的选定虚拟机的模块,所述分配支持作业关联的I/O的高效执行。
17.一种计算机实现的方法,包括:
在资源共享池中包括物理主机,所述物理主机与支持一个或多个虚拟机的至少一个物理机通信,从一个或多个所述虚拟机收集虚拟机状态;
定期收集由所述物理机和虚拟机表示的资源的层次结构组织的本地拓扑信息;
组织所述拓扑信息;
评估在所述拓扑中表示的存储资源和虚拟机的利用率;以及
将作业分配给所述共享池中的一个或多个选定虚拟机,并且响应于所述拓扑和资源利用率评估,所述作业分配支持高效执行。
18.根据权利要求17的方法,还包括确定与所述作业关联的拓扑距离,从包括以下项的组选择所述拓扑距离:两个虚拟机之间的距离,以及虚拟机与数据块之间的距离。
19.根据权利要求18的方法,还包括创建共享存储器通道以便支持位于同一物理机中的第一虚拟机与第二虚拟机之间的作业。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/457,090 US8972983B2 (en) | 2012-04-26 | 2012-04-26 | Efficient execution of jobs in a shared pool of resources |
US13/457,090 | 2012-04-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377091A true CN103377091A (zh) | 2013-10-30 |
CN103377091B CN103377091B (zh) | 2016-10-05 |
Family
ID=49462248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310147025.XA Active CN103377091B (zh) | 2012-04-26 | 2013-04-25 | 用于资源共享池中的作业的高效执行的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8972983B2 (zh) |
CN (1) | CN103377091B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201664A (zh) * | 2014-12-01 | 2016-12-07 | 旺宏电子股份有限公司 | 具应用程序信息感知的数据处理方法以及系统 |
WO2017113278A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和系统 |
WO2017113277A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN107111517A (zh) * | 2014-10-08 | 2017-08-29 | 思科技术公司 | 针对归约器任务的虚拟机优化分配和/或生成 |
CN111182239A (zh) * | 2020-01-12 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种ai视频处理方法与装置 |
CN111193676A (zh) * | 2014-02-05 | 2020-05-22 | 华为技术有限公司 | 一种网络中资源映射的方法和装置 |
CN112035293A (zh) * | 2014-11-13 | 2020-12-04 | 微软技术许可有限责任公司 | 虚拟机集群备份 |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719271B2 (en) * | 2011-10-06 | 2014-05-06 | International Business Machines Corporation | Accelerating data profiling process |
US8843935B2 (en) | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
US8892779B2 (en) | 2012-05-10 | 2014-11-18 | International Business Machines Corporation | Virtual machine allocation at physical resources |
US9052963B2 (en) * | 2012-05-21 | 2015-06-09 | International Business Machines Corporation | Cloud computing data center machine monitor and control |
US8972986B2 (en) * | 2012-05-25 | 2015-03-03 | International Business Machines Corporation | Locality-aware resource allocation for cloud computing |
JP2014059862A (ja) * | 2012-08-22 | 2014-04-03 | Canon Inc | データフローのリソース割り当て装置および方法 |
US10169348B2 (en) * | 2012-08-23 | 2019-01-01 | Red Hat, Inc. | Using a file path to determine file locality for applications |
US9143452B2 (en) * | 2012-08-29 | 2015-09-22 | Nec Laboratories America, Inc. | Data processing |
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
GB2507338A (en) * | 2012-10-26 | 2014-04-30 | Ibm | Determining system topology graph changes in a distributed computing system |
US20140282578A1 (en) * | 2013-03-14 | 2014-09-18 | Justin S. Teller | Locality aware work stealing runtime scheduler |
EP2819012B1 (en) * | 2013-06-24 | 2020-11-11 | Alcatel Lucent | Automated compression of data |
US10055254B2 (en) * | 2013-07-12 | 2018-08-21 | Bluedata Software, Inc. | Accelerated data operations in virtual environments |
US10860352B2 (en) * | 2013-07-25 | 2020-12-08 | Hewlett Packard Enterprise Development Lp | Host system and method for managing data consumption rate in a virtual data processing environment |
US9280422B2 (en) | 2013-09-06 | 2016-03-08 | Seagate Technology Llc | Dynamic distribution of code words among multiple decoders |
US9323584B2 (en) * | 2013-09-06 | 2016-04-26 | Seagate Technology Llc | Load adaptive data recovery pipeline |
JP6191361B2 (ja) * | 2013-09-25 | 2017-09-06 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法及び制御プログラム |
US9430306B2 (en) * | 2013-10-08 | 2016-08-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Anticipatory protection of critical jobs in a computing system |
US10193963B2 (en) * | 2013-10-24 | 2019-01-29 | Vmware, Inc. | Container virtual machines for hadoop |
US20150121376A1 (en) * | 2013-10-25 | 2015-04-30 | Samsung Electronics Co., Ltd. | Managing data transfer |
US9495211B1 (en) | 2014-03-04 | 2016-11-15 | Google Inc. | Allocating computing resources based on user intent |
US9537745B1 (en) * | 2014-03-07 | 2017-01-03 | Google Inc. | Distributed virtual machine disk image deployment |
US9817721B1 (en) * | 2014-03-14 | 2017-11-14 | Sanmina Corporation | High availability management techniques for cluster resources |
US9612878B2 (en) | 2014-03-31 | 2017-04-04 | International Business Machines Corporation | Resource allocation in job scheduling environment |
US10375161B1 (en) * | 2014-04-09 | 2019-08-06 | VCE IP Holding Company LLC | Distributed computing task management system and method |
US9372626B2 (en) | 2014-06-12 | 2016-06-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltg. | Parallel storage system testing wherein I/O test pattern identifies one or more set of jobs to be executed concurrently |
US9832168B2 (en) * | 2014-07-01 | 2017-11-28 | Cable Television Laboratories, Inc. | Service discovery within multi-link networks |
US9563475B2 (en) * | 2014-09-30 | 2017-02-07 | International Business Machines Corporation | Merging connection pools to form a logical pool of connections during a preset period of time thereby more efficiently utilizing connections in connection pools |
KR20160087706A (ko) * | 2015-01-14 | 2016-07-22 | 한국전자통신연구원 | 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법 |
US9430290B1 (en) | 2015-03-31 | 2016-08-30 | International Business Machines Corporation | Determining storage tiers for placement of data sets during execution of tasks in a workflow |
CN106294440B (zh) * | 2015-05-27 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 数据实时迁移的方法和装置 |
US9846589B2 (en) | 2015-06-04 | 2017-12-19 | Cisco Technology, Inc. | Virtual machine placement optimization with generalized organizational scenarios |
US10848574B2 (en) | 2015-06-11 | 2020-11-24 | Microsoft Technology Licensing, Llc | Computing resource management system |
US9762672B2 (en) | 2015-06-15 | 2017-09-12 | International Business Machines Corporation | Dynamic node group allocation |
US9817786B1 (en) | 2015-06-26 | 2017-11-14 | Amazon Technologies, Inc. | Ingress data placement |
CN105138276B (zh) * | 2015-07-14 | 2018-05-18 | 苏州科达科技股份有限公司 | 数据储存方法及数据储存系统 |
CN105184452B (zh) * | 2015-08-14 | 2018-11-13 | 山东大学 | 一种适用于用电信息大数据计算的MapReduce作业依赖控制方法 |
US10225148B2 (en) | 2015-09-23 | 2019-03-05 | International Business Machines Corporation | Social network of virtual machines |
US10171300B2 (en) | 2015-11-02 | 2019-01-01 | International Business Machines Corporation | Automatic redistribution of virtual machines as a growing neural gas |
US9607062B1 (en) * | 2015-11-19 | 2017-03-28 | International Business Machines Corporation | Data locality in data integration applications |
CN105450754B (zh) * | 2015-11-30 | 2019-04-26 | 国云科技股份有限公司 | 一种物理机和虚拟机相互共享云盘的方法 |
US9575749B1 (en) | 2015-12-17 | 2017-02-21 | Kersplody Corporation | Method and apparatus for execution of distributed workflow processes |
US20170222904A1 (en) * | 2016-01-29 | 2017-08-03 | AppDynamics, Inc. | Distributed Business Transaction Specific Network Data Capture |
EP3226133A1 (en) * | 2016-03-31 | 2017-10-04 | Huawei Technologies Co., Ltd. | Task scheduling and resource provisioning system and method |
US10129169B2 (en) * | 2016-04-07 | 2018-11-13 | International Business Machines Corporation | Specifying a highly-resilient system in a disaggregated compute environment |
US10523533B2 (en) | 2016-06-21 | 2019-12-31 | International Business Machines Corporation | Cloud network assessment based on scoring virtual network performance relative to underlying network performance |
US10776356B2 (en) | 2017-04-07 | 2020-09-15 | Micro Focus Llc | Assigning nodes to shards based on a flow graph model |
US10505832B2 (en) * | 2017-05-10 | 2019-12-10 | Sap Se | Resource coordinate system for data centers |
US10318333B2 (en) * | 2017-06-28 | 2019-06-11 | Sap Se | Optimizing allocation of virtual machines in cloud computing environment |
CN107479979B (zh) * | 2017-08-31 | 2020-07-28 | 安徽江淮汽车集团股份有限公司 | 一种变速箱控制单元的cpu负载率优化方法及系统 |
CN109656675B (zh) * | 2017-10-11 | 2023-03-21 | 阿里巴巴集团控股有限公司 | 总线设备、计算机设备及实现物理主机云存储的方法 |
CN107862064B (zh) * | 2017-11-16 | 2021-09-10 | 北京航空航天大学 | 一个基于nvm的高性能、可扩展的轻量级文件系统 |
CN110196750B (zh) * | 2018-02-26 | 2023-02-24 | 华为技术有限公司 | 一种设备的分配方法及其相关设备 |
US10585714B2 (en) | 2018-04-05 | 2020-03-10 | International Business Machines Corporation | Workload management with data access awareness using an ordered list of hosts in a computing cluster |
US10761891B2 (en) | 2018-04-05 | 2020-09-01 | International Business Machines Corporation | Workload management with data access awareness by aggregating file locality information in a computing cluster |
US10768998B2 (en) | 2018-04-05 | 2020-09-08 | International Business Machines Corporation | Workload management with data access awareness in a computing cluster |
JP2021157339A (ja) * | 2020-03-25 | 2021-10-07 | 富士通株式会社 | 情報処理方法、及び情報処理プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228852A1 (en) * | 2004-03-24 | 2005-10-13 | Cipriano Santos | System and method for assigning an application component to a computing resource |
US20070214456A1 (en) * | 2003-04-29 | 2007-09-13 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US20090300605A1 (en) * | 2004-10-29 | 2009-12-03 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
CN101952814A (zh) * | 2008-02-20 | 2011-01-19 | 惠普开发有限公司 | 用于在虚拟环境中实施虚拟存储池的方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558217B2 (en) | 2003-08-15 | 2009-07-07 | Hewlett-Packard Development Company, L.P. | Method and system for initializing host location information across smart bridge topology changes |
US8776050B2 (en) * | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US8145760B2 (en) * | 2006-07-24 | 2012-03-27 | Northwestern University | Methods and systems for automatic inference and adaptation of virtualized computing environments |
US8161475B2 (en) * | 2006-09-29 | 2012-04-17 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
US7921416B2 (en) | 2006-10-20 | 2011-04-05 | Yahoo! Inc. | Formal language and translator for parallel processing of data |
WO2009059377A1 (en) | 2007-11-09 | 2009-05-14 | Manjrosoft Pty Ltd | Software platform and system for grid computing |
US8990397B2 (en) * | 2009-07-31 | 2015-03-24 | Ntt Docomo, Inc. | Resource allocation protocol for a virtualized infrastructure with reliability guarantees |
US8874694B2 (en) | 2009-08-18 | 2014-10-28 | Facebook, Inc. | Adaptive packaging of network resources |
US8332862B2 (en) | 2009-09-16 | 2012-12-11 | Microsoft Corporation | Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution |
KR101285078B1 (ko) | 2009-12-17 | 2013-07-17 | 한국전자통신연구원 | 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법 |
US8539192B2 (en) | 2010-01-08 | 2013-09-17 | International Business Machines Corporation | Execution of dataflow jobs |
-
2012
- 2012-04-26 US US13/457,090 patent/US8972983B2/en active Active
- 2012-08-21 US US13/590,881 patent/US20130290957A1/en not_active Abandoned
-
2013
- 2013-04-25 CN CN201310147025.XA patent/CN103377091B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214456A1 (en) * | 2003-04-29 | 2007-09-13 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US20050228852A1 (en) * | 2004-03-24 | 2005-10-13 | Cipriano Santos | System and method for assigning an application component to a computing resource |
US20090300605A1 (en) * | 2004-10-29 | 2009-12-03 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
CN101952814A (zh) * | 2008-02-20 | 2011-01-19 | 惠普开发有限公司 | 用于在虚拟环境中实施虚拟存储池的方法和系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193676A (zh) * | 2014-02-05 | 2020-05-22 | 华为技术有限公司 | 一种网络中资源映射的方法和装置 |
CN111193676B (zh) * | 2014-02-05 | 2023-03-24 | 华为技术有限公司 | 一种网络中资源映射的方法和装置 |
CN107111517A (zh) * | 2014-10-08 | 2017-08-29 | 思科技术公司 | 针对归约器任务的虚拟机优化分配和/或生成 |
CN107111517B (zh) * | 2014-10-08 | 2020-12-01 | 思科技术公司 | 针对归约器任务的虚拟机优化分配和/或生成 |
CN112035293A (zh) * | 2014-11-13 | 2020-12-04 | 微软技术许可有限责任公司 | 虚拟机集群备份 |
CN106201664A (zh) * | 2014-12-01 | 2016-12-07 | 旺宏电子股份有限公司 | 具应用程序信息感知的数据处理方法以及系统 |
WO2017113278A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和系统 |
WO2017113277A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 数据处理方法、装置和系统 |
US10599436B2 (en) | 2015-12-31 | 2020-03-24 | Huawei Technologies Co., Ltd. | Data processing method and apparatus, and system |
US10915365B2 (en) | 2015-12-31 | 2021-02-09 | Huawei Technologies Co., Ltd. | Determining a quantity of remote shared partitions based on mapper and reducer nodes |
CN111182239A (zh) * | 2020-01-12 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种ai视频处理方法与装置 |
CN111182239B (zh) * | 2020-01-12 | 2021-07-06 | 苏州浪潮智能科技有限公司 | 一种ai视频处理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20130290957A1 (en) | 2013-10-31 |
US8972983B2 (en) | 2015-03-03 |
US20130290953A1 (en) | 2013-10-31 |
CN103377091B (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377091A (zh) | 用于资源共享池中的作业的高效执行的方法和系统 | |
US11265369B2 (en) | Methods and systems for intelligent distribution of workloads to multi-access edge compute nodes on a communication network | |
CN107430528B (zh) | 机会性资源迁移以优化资源放置 | |
Belgacem | Dynamic resource allocation in cloud computing: analysis and taxonomies | |
CN107864211B (zh) | 集群资源调度方法及系统 | |
US10649811B2 (en) | Sunder management for a cluster of disperse nodes | |
CN106020715A (zh) | 存储池容量管理 | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN104040526A (zh) | 对虚拟机池中的资源的分派 | |
CN103299274A (zh) | 确定运行图像的最佳计算环境 | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
US10154091B1 (en) | Deploying infrastructure units according to resource hosting constraints | |
CN105103524A (zh) | Swan:实现网络中的高利用率 | |
CN107678752A (zh) | 一种面向异构集群的任务处理方法及装置 | |
CN104580447A (zh) | 一种基于访问热度的时空数据服务调度方法 | |
CN102937918A (zh) | 一种hdfs运行时数据块平衡方法 | |
CN111443870A (zh) | 一种数据处理的方法、设备及存储介质 | |
US11159449B1 (en) | Dispatching tasks and data using multi-access edge computing | |
US10216441B2 (en) | Dynamic quality of service for storage I/O port allocation | |
Taghizadeh et al. | A metaheuristic‐based data replica placement approach for data‐intensive IoT applications in the fog computing environment | |
CN103270520A (zh) | 基于重要性类的数据管理 | |
KR20190051878A (ko) | 단말 장치의 유휴 컴퓨팅 자원 활용 시스템 및 이를 이용한 유휴 컴퓨팅 자원 활용 방법 | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
Hbaieb et al. | A survey and taxonomy on virtual data center embedding | |
US11064037B2 (en) | Specifying element locations within a swarm |
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 |