CN104520814A - 用于配置云计算系统的系统和方法 - Google Patents

用于配置云计算系统的系统和方法 Download PDF

Info

Publication number
CN104520814A
CN104520814A CN201380042312.2A CN201380042312A CN104520814A CN 104520814 A CN104520814 A CN 104520814A CN 201380042312 A CN201380042312 A CN 201380042312A CN 104520814 A CN104520814 A CN 104520814A
Authority
CN
China
Prior art keywords
node
operating load
configurator
data
user
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
Application number
CN201380042312.2A
Other languages
English (en)
Other versions
CN104520814B (zh
Inventor
毛里西奥·布莱特尼特斯
基思·A·洛韦里
帕特里克·卡名斯基
安东·切诺夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN104520814A publication Critical patent/CN104520814A/zh
Application granted granted Critical
Publication of CN104520814B publication Critical patent/CN104520814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及用于配置计算系统(例如云计算系统)的方法、系统和装置。一种方法包括:基于经由用户界面接收的用户选择,通过从多个可用节点中选择一节点簇而配置该节点簇;从多个可用工作负载容器模块中选择一工作负载容器模块以工作在所选择的节点簇的每个节点上;以及选择工作负载以通过节点簇上的工作负载容器执行。节点簇的每个节点包括至少一个处理设备和存储器,并且节点簇作用以共享工作负载的处理。

Description

用于配置云计算系统的系统和方法
技术领域
本公开总体涉及计算系统领域,且更具体地涉及用于配置云计算系统和分析云计算系统的性能的方法和系统。
背景技术
云计算牵涉到在例如因特网的网络上传递主机的服务。云计算系统允许将计算能力和存储能力作为一种服务传递给终端用户。云计算系统包括工作在分布式通信网络上的多个服务器或“节点”,并且每个节点包括本地处理能力和存储器。例如,云计算系统的每个节点包括用于提供计算能力的至少一个处理设备用于提供存储能力的存储器。用户可在云或节点“簇”上远程地运行应用或存储数据,而不是本地运行一应用或本地存储数据。例如,当软件应用和/或关联于该软件应用的数据被存储和/或执行在远程位置处的云节点时,终端用户可通过本地计算机上的web浏览器或某些其它软件应用访问基于云的应用。云计算资源一般按需被分配给终端用户,其中云计算系统开销对应于由终端用户利用的实际资源量。
计算任务以工作负载的形式跨云计算系统的多个节点分布。这些节点工作以共享工作负载的处理。工作负载(也被称为“内核”)包括在节点云上进行和执行的计算工作或任务。包括软件或固件代码和任何必要数据的集合的工作负载包括在节点簇上执行的任何应用或程序或应用或程序的一部分。例如,一个示例性工作负载是实现一个或多个算法的应用。示例性算法包括例如分簇、归类、分类或过滤一数据集。其它示例性工作负载包括面向服务的应用,所述应用被执行以向终端用户提供计算服务。在一些实施例中,工作负载包括被复制并在多个节点上同时执行的单个应用。负载平衡器跨节点簇分配通过工作负载执行的请求,以使节点共享与工作负载关联的处理负载。节点簇协调工作负载执行的结果以产生最终结果。
工作负载容器工作在每个节点上,该工作负载容器包括执行工作负载容器模块(例如软件或固件代码)的节点的一个或多个处理器。工作负载容器是工作负载的执行框架以提供发起和策划节点簇上的工作负载的执行的软件环境。工作负载容器一般提供针对节点簇上的工作负载的具体类别的执行框架。工作负载容器配置关联的节点以作为云节点工作以使节点执行工作负载,与其它云节点共享工作负载执行的结果,并与其它云节点协作和通信。在一个实施例中,工作负载容器包括应用程序接口(API)或基于XML的接口,以与其它节点和与关联节点的其它应用和硬件形成接口。
一个示例性工作负载容器是基于Java的Apache Hadoop,它为映射-还原工作负载提供映射-还原框架和分布式文件系统(HDFS)。与Hadoop工作负载容器一起工作的节点簇一般包括主节点以及多个工作者节点。Hadoop工作负载容器协调对每个节点的主状态或工作者状态的分配并通知每个节点其正工作在云中。主节点跟踪工作(即工作负载)开始和结束以及文件系统元数据。在映射-还原框架的“映射”阶段,任务或工作负载被分割成多个部分(即一个或多个处理线程中的多个组),并且工作负载的这些部分被分配给工作者节点,所述工作者节点处理这些线程和关联的输入数据。在“还原”阶段,来自每个工作者节点的输出被收集和合并以产生最终结果或答案。Hadoop的分布式文件系统(HDFS)被用于存储数据并在工作者节点之间通信数据。HDFS文件系统支持数据复制以通过存储数据和文件的多个副本而增加数据可靠的可能性。
在现有技术的云计算平台中设置或配置节点簇是需要陡峭学习曲线的复杂过程。云软件和工作负载必须被单独地部署至每个节点,并且任何配置改变也必须被单独地部署至每个节点。分析节点簇的性能并优化云设置牵涉到多个独立变量并经常是耗时的,其需要适于监视和分析具体应用的专门接口。尤其,云操作者或工程师必须创建命令以获得关于工作负载如何运作的数据并获得工作负载的实际结果。另外,这种数据以专门针对手边的系统配置的格式出现,并且数据必须以适于性能分析的形式由云工作者或工程师整合。云操作者或工程师需要了解云机制的具体细节、任何联网问题、与系统监管关联的任务以及可用性能分析工具的部署和数据格式。此外,监视和分析节点簇上的工作负载的性能是复杂的、耗时的,并依赖于具体的云配置。云工作者或工程师不会总是了解具体云系统的所有配置和硬件信息,这使准确的性能分析变得困难。
当今可获得若干云计算平台,例如包括Amazon WebServices(AWS)和OpenStack。包括弹性计算云(EC2)的Amazon AWS将节点簇(服务器)租给终端用户以用作云计算系统。AWS允许用户分配节点簇并在节点簇上执行工作负载。AWS限制用户以使其仅在具有多种约束的Amazon提供的服务器硬件上执行工作负载,所述多种约束例如需要专门硬件配置和软件配置。OpenStack允许用户在用户提供的硬件上建立和管理节点簇。AWS和OpenStack缺乏快速地配置和部署工作负载和工作负载容器软件至每个节点、修正网络参数和集合来自所有簇节点的性能数据的机制。
一种测试具体本地处理器的性能的已知方法包括基于用户特定参数创建可由本地处理器执行的综合的二进制代码。然而,二进制综合代码的产生需要用户对用户特定参数进行硬编码,这需要大量研发时间和对目标处理器的架构的在先了解。这种硬编码的综合代码必须被撰写以面向目标处理器的具体指令集架构(ISA)(例如x86)和具体微架构。指令集架构指标识数据类型/格式、指令、数据块大小、处理寄存器、存储器寻址模式、存储器架构、中断和异常处理、I/O等的计算机架构的组件。微架构指标识数据路径、数据处理元件(例如逻辑门、算术逻辑单元(ALU)等)、数据存储元件(例如寄存器、高速缓冲存储器等)等以及处理器如何履行指令集架构的计算机架构的组件。因而,综合代码必须通过经修正的或新的硬编码参数和指令被重新工程设计以执行其它处理器的指令集架构和不同微架构的变例。因此,这种硬编码的综合代码不适于测试云计算系统的多个节点。
测试本地处理器的性能的另一方法是执行工业标准工作负载或踪迹,例如由标准性能评估公司(SPEC)提供的工作负载,以将处理器的性能与性能基准进行比较。然而,执行整个工业标准工作负载经常需要大量仿真时间。从工作负载中提取相关的较小踪迹以供处理器执行可减少仿真时间但也需要额外的工程设计努力以标识和提取相关踪迹。此外,对于处理器的不同架构配置,必须重复从工作负载中选择工业标准工作负载或提取较小的踪迹。
向终端用户传递计算能力和存储能力作为服务的当前云系统缺乏改变云系统的节点簇的每个节点的引导时间配置的机制。例如,引导时间配置改变必须通过工程师或程序员硬编码到云的每个节点上,以修正节点的引导时间参数,这需要大量的时间并且是麻烦的。此外,工程师在撰写配置代码之前必须对节点簇的硬件和计算机架构有详尽的了解。
向终端用户传递计算能力和存储能力作为服务的典型云系统缺乏允许用户规定和修正所分配的节点簇的网络配置的机制。在许多云系统中,用户只能请求一般类型节点并且对网络拓扑(即节点的物理和逻辑网络连接性)以及所请求的节点的网络性能特性几乎没有或根本没有直接控制。AmazonAWS例如允许用户选择物理地位于国家或世界的相同一般区域内(例如美国东部或美国西部、欧洲等等)的节点,但节点的网络连接性和节点的网络性能特性是不可选择或不可修改的。此外,尽管处于国家的相同一般区域内或甚至在同一数据中心内,所选择节点中的一些可能物理地位于远离其它所选择的节点的位置。例如,由云系统分配的节点可能位于分布式数据中心内物理上远离的不同机架上,由此导致节点之间下降的或不连续的网络性能。
类似地,在典型云系统中,终端用户对节点簇的实际硬件资源具有限制或没有控制权。例如,当分配节点时,用户只能请求一般类型的节点。节点的每种可用类型可通过节点的CPU数量、可用存储器、可用盘空间以及节点所在的国家或世界的一般区域予以分类。然而,分配的节点可能不具有恰好是所选节点类型的硬件特性。可选择的节点类型是粗分类。例如,节点类型可包括小、中等、大和超大,这对应于系统存储器和盘空间的量以及节点的处理核数量。然而,即便所选择的节点具有相同的一般类型,由系统分配的节点的实际计算能力和存储能力可变化。例如,可用的存储器和盘空间以及工作频率和其它特性可变化或落在某一值范围内。例如,“中等”节点可包括具有1500MB-5000MB的系统存储器和200GB-400GB的存储能力的任意节点。因此,用户不会总是了解所分配节点的实际硬件配置。此外,即使在具有相同数量的处理器和存储器/盘空间的节点之中,这些节点的其它硬件特性可能改变。例如,相似的节点基于节点的工作频率、高速缓冲存储器的大小、32位架构相对于64位架构、节点的制造商、指令集架构等而变化,并且用户对于所选择节点的这些特性不具有控制权。
用户经常对他的应用或工作负载所需的特定硬件资源缺乏清楚的了解。设置节点簇以执行工作负载的困难导致用户尝试不同硬件配置的机会有限。再加上用户对所分配节点的实际硬件资源缺乏了解,这经常导致因未能充分利用硬件资源的不必要的用户成本。各种监视工具可供使用,这些监视工具能测量单个物理处理机的CPU、存储器以及盘和网络利用。然而,当前云系统不提供机制以允许用户将这些监视工具部署至簇节点以监视硬件使用。因此,在工作负载执行期间的实际硬件利用对用户而言是未知的。多数公共云服务给予记账机制,它能提供关于在运行工作负载的同时由用户使用的所请求硬件资源的成本的基本信息。然而,这种机制仅提供关于所请求的硬件资源的成本的基本信息,而未标识在工作负载执行期间使用的实际硬件资源。
在许多云系统中,有限数量的配置参数可供用户使用以调整和改进节点簇的配置。例如,用户可能只能选择具有不同的一般节点类型的不同节点以更改云配置。此外,每个配置改变必须由用户通过选择节点簇的不同节点并通过不同节点开始工作负载而手动地实现。这种手动尝试以施加配置改变并测试结果是高成本的并且耗时的。此外,可用于测试节点性能的各种性能监视工具一般适用于单个物理处理机,并且当前云系统缺乏机制以允许用户将这些监视工具部署至簇节点以测试具有不同配置的节点簇的性能。
因此,需要在任意大小的节点簇上自动使工作负载创建、部署、提供、执行和数据汇集的方法和系统。还需要快速地配置和部署工作负载和工作负载容器软件至每个节点并汇集和分析来自所有簇节点的工作负载性能数据的方法和系统。更需要测试云计算系统的多个节点的性能并基于所监测的性能提供云计算系统的自动配置调整的方法和系统。更需要产生可重置目标的综合测试工作负载以在云计算系统上执行以测试具有各种计算机架构的节点处理器的方法和系统。更需要提供对云计算系统的节点的引导时间配置的修正的方法和系统。更需要利于云系统的节点簇的网络配置的修正的方法和系统。更需要允许基于云系统所要求的网络拓扑、所要求的网络性能和/或所要求的硬件性能自动选择节点簇的适当节点的方法和系统。更需要在工作负载执行期间测量节点簇的硬件资源使用并将硬件使用反馈提供给用户和/或基于所监测的硬件资源的使用自动地修正节点簇配置的方法和系统。
发明内容
在本公开的示例性实施例中,提供了由一个或多个计算设备执行的计算配置方法。该方法包括基于经由用户界面接收的多个用户选择而配置计算系统的节点簇以使工作负载的处理跨节点簇分布。该配置包括:从多个可用节点选择计算系统的节点簇;选择工作负载容器模块以工作在节点簇的每个节点上,该工作负载容器模块包括可选择代码模块,当由每个节点执行时,该可选择代码模块作用以协调工作负载的执行;以及选择工作负载以通过节点簇上的工作负载容器模块执行。
除却其它优势,一些实施例可允许经由用户界面对节点簇、工作负载、工作负载容器和网络配置的选择、配置和部署。另外,一些实施例可允许对配置参数的控制和调整,由此实现在节点、网络、工作负载容器和/或工作负载的变化特征下对计算系统的性能分析。其它优势将由本领域内技术人员所了解。
在本公开的另一示例性实施例中,提供一种计算配置系统,其包括作用以从计算系统的多个可用节点中选择节点簇的节点配置器。该节点簇作用以共享工作负载的处理。系统进一步包括工作负载容器配置器,其作用以选择工作负载容器模块以工作在节点簇的每个节点上。该工作负载容器模块包括可选择代码模块,该可选择代码模块当由每个节点执行时作用以协调工作负载的执行。系统进一步包括工作负载配置器,其作用以选择工作负载以通过节点簇上的选定工作负载容器模块来执行。
在本公开的又一示例性实施例中,提供一种配置计算系统的方法,该方法由一个或多个计算设备执行。该方法包括基于经由用户界面接收的用户选择而从多个可用工作负载容器模块中选择工作负载容器模块以工作在计算系统的节点簇的每个节点上。所选择的工作负载容器模块包括可选择的代码模块,当由每个节点执行时,该可选择的代码模块作用以协调节点簇上的工作负载的执行。该方法进一步包括通过选择的工作负载容器模块配置节点簇的每个节点以执行工作负载,以使工作负载的处理跨节点簇分布。
在本公开的又一示例性实施例中,提供一种计算配置系统,该计算配置系统包括工作负载容器配置器,该工作负载容器配置器作用以接收用户输入并基于用户输入从多个可用工作负载容器模块中选择工作负载容器模块。所选择的工作负载容器模块包括可选择的代码模块,当由计算系统的节点簇执行时,该可选择的代码模块作用以协调工作负载的执行。系统进一步包括节点配置器,该节点配置器作用以通过选择的工作负载容器模块配置计算系统的节点簇的每个节点以执行工作负载,以使工作负载的处理跨节点簇分布。
在本公开的又一示例性实施例中,提供一种配置计算系统的方法,该方法由一个或多个计算设备执行。该方法包括从计算系统的多个可用节点中选择节点簇,用以共享工作负载的处理。该方法还包括基于经由用户界面接收的用户输入修正节点簇的每个节点的相同工作负载容器模块的工作参数。该工作负载容器模块包括代码模块,当由节点簇中的每个节点执行时,该代码模块作用以基于工作参数协调工作负载通过节点簇的执行。工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
在本公开的又一示例性实施例中,提供了一种计算配置系统,该计算配置系统包括节点配置器,该节点配置器作用以从计算系统的多个可用节点中选择节点簇。节点簇作用以共享工作负载的处理。系统还包括工作负载容器配置器,其作用以基于经由用户界面接收的用户输入修正节点簇的每个节点的相同工作负载容器模块的工作参数。工作负载容器模块包括代码模块,当由节点簇的每个节点执行时,该代码模块作用以基于工作参数协调工作负载通过节点簇的执行。工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
附图说明
当伴随下面的附图参照下面的描述,本发明将更容易得以理解,在附图中相同的附图标记表示相同的部件:
图1是根据一实施例的云计算系统的方框图,其包括工作在通信网络上的节点簇、与节点簇通信的控制服务器以及控制服务器的配置器;
图2是包括至少一个处理器和存储器的图1的节点簇的示例性节点的方框图;
图3是包括作用以配置图1的云计算系统的配置器的图1的云计算系统的示例性控制服务器的方框图;
图4是配置云计算系统的图3的配置器的操作的示例性方法的流程图;
图5是配置云计算系统的图3的配置器的操作的另一示例性方法的流程图;
图6是配置云计算系统的图3的配置器的操作的另一示例性方法的流程图;
图7示出由图3的配置器提供的示例性用户界面,其包括认证和设置库模块以利于用户访问认证;
图8示出图7的示例性用户界面的实例模块,其包括实例标签以利于选择图1的节点簇;
图9示出图8的实例模块的实例类型标签,以利于选择图1的节点簇的节点的节点类型;
图10示出图8的实例模块的其它实例设置标签,以利于图1的节点簇的一个或多个节点的引导时间参数的配置;
图11示出图7的示例性用户界面的网络配置模块的网络设置向导,其包括延迟标签以利于在图1的通信网络上实现网络延迟;
图12示出图11的网络配置模块的分组丢失标签,以利于调整图1的通信网络上的分组丢失率;
图13示出图11的网络配置模块的分组重复标签,以利于调整图1的通信网络上的分组重复率;
图14示出图11的网络配置模块的分组腐败标签,以利于调整图1的通信网络上的分组腐败率;
图15示出图11的网络配置模块的分组重定序标签,以利于调整图1的通信网络上的分组重定序率;
图16示出图11的网络配置模块的速率控制标签,以利于调整图1的通信网络上的通信速率;
图17示出图11的网络配置模块的定制命令标签,以利于基于定制命令串调整图1的通信网络上的网络参数;
图18示出图7的示例性用户界面的工作负载容器配置模块,其包括利于选择Hadoop工作负载容器的Hadoop标签;
图19示出图18的工作负载容器配置模块的Hadoop标签,其包括利于配置Hadoop工作负载容器的工作参数的配置的扩展标签;
图20示出图18的工作负载容器配置模块的Hadoop标签,其包括利于基于定制命令串配置Hadoop工作负载容器的工作参数的配置的定制标签;
图21示出图18的工作负载容器配置模块的定制标签,以利于选择定制工作负载容器;
图22示出图7的示例性用户界面的工作负载配置模块,其包括利于选择工作负载以在图1的节点簇上执行的工作负载标签;
图23示出图22的工作负载配置模块的综合内核标签,以利于配置综合测试工作负载;
图24示出图22的工作负载配置模块的MC-Blaster标签,以利于内存缓存的工作负载的配置;
图25示出图7的示例性用户界面的批处理模块,以利于批处理序列的选择和配置以在图1的节点簇上执行;
图26示出图7的示例性用户界面的监视模块,其包括Hadoop标签以利于配置Hadoop数据监视工具;
图27示出图26的监视模块的Ganglia标签,以利于配置Ganglia数据监视工具;
图28示出图26的监视模块的系统侦听(System Tap)标签,以利于配置系统侦听数据监视工具;
图29示出图26的监视模块的I/O时间标签,以利于配置虚拟系统统计(VMStat)和输入/输出统计(IOStat)数据监视工具;
图30示出图7的示例性用户界面的控制和状态模块,以利于将系统配置部署至图1的节点簇并利于汇集由图26-29的监视工具监测的数据;
图31是图1的云计算系统的另一方框图,其示出图1的配置器的基于web的数据汇集器;
图32示出一示例性表,该表示出用于产生综合测试工作负载的多个用户定义的工作负载参数;
图33是示例性综合测试工作负载系统的方框图,该综合测试工作负载系统包括作用以产生综合测试工作负载的综合器以及作用以激活和执行综合测试工作负载的至少一部分的节点的综合工作负载引擎;
图34是图3的配置器的操作的示例性方法的流程图,其用实际工作负载和综合测试工作负载中的至少一者来配置云计算系统;
图35是图3的配置器的操作的示例性方法的流程图,其用综合测试工作负载来配置云计算系统;
图36是图3的配置器的操作的示例性方法的流程图,其选择图1的节点簇中的至少一个节点的引导时间配置;
图37是图1的节点簇的节点的操作的示例性方法的流程图,用以修正节点的至少一个引导时间参数;
图38是图1的云计算系统的操作的示例性方法的流程图,用于修正图1的节点簇中的一个或多个节点的引导时间配置;
图39是图3的配置器的操作的示例性方法的流程图,用于修正图1的节点簇中的至少一个节点的通信网络配置;
图40是图3的配置器的操作的示例性方法的流程图,用以基于仿真的节点簇的网络配置选择云计算系统的节点簇;
图41是图3的配置器的操作的另一示例性方法的流程图,用以基于仿真的节点簇的网络配置选择和配置云计算系统的节点簇;
图42示出标识节点簇的多个通信网络特性的示例性数据文件;
图43是图3的配置器的操作的示例性方法的流程图,用以选择图1的节点簇;
图44是图3的配置器的操作的另一示例性方法的流程图,用以选择图1的节点簇;
图45是图3的配置器的操作的示例性方法的流程图,用以选择图1的节点簇的硬件配置;
图46是图3的配置器的操作的另一示例性方法的流程图,用以选择图1的节点簇的硬件配置;
图47是图3的配置器的操作的示例性方法的流程图,用以基于监测的节点簇的性能特性选择图1的节点簇的配置参数;以及
图48是图3的配置器的操作的另一示例性方法的流程图,用以基于监测的节点簇的性能特性选择图1的节点簇的配置参数。
具体实施方式
尽管针对云计算系统描述了本文描述的实施例,本公开的方法和系统可通过包括协作以执行工作负载的多个节点的任意适当计算系统来实现。
如本文中所述,计算系统的节点包括至少一个处理设备和可由至少一个处理设备访问的存储器。节点也可被称为例如服务器、虚拟服务器、虚拟机、实例或处理节点。
图1示出根据各实施例的示例性云计算系统10,该云计算系统10被配置成将计算能力和存储能力作为服务传递给终端用户。云计算系统10包括可操作地耦合至节点簇14的控制服务器12。节点簇14连接至分布式通信网络18,并且每个节点16包括本地处理能力和存储器。尤其,每个节点16包括至少一个处理器40(图2)和可由处理器40访问的至少一个存储器42(图2)。通信网络18包括任何适宜的计算机联网协议,例如网际协议(IP)格式,其包括例如传输控制协议/网际协议(TCP/IP)或用户数据报协议(UDP)、以太网、串行网或其它局域网或广域网(LAN或WAN)。
如本文所述,节点16通过控制服务器12从通信网络18上连接的多个可用节点16的云被选取以指定节点簇14。可用节点16例如被提供在数据中心的一个或多个服务器存储机架上,并包括多种硬件配置。在一个实施例中,来自多个数据中心和/或其它硬件提供商的可用节点16可由控制服务器12访问以供选择和配置为云计算系统10的节点簇14。例如,一个或多个第三方数据中心(例如Amazon Web Service等)和/或用户提供的硬件可被控制服务器12配置成进行云计算。尽管任何数量的节点16可供使用,在一个例子中,几千个节点16可供控制服务器12选择和配置。尽管图1中示出五个节点16,然而对云计算系统10可选择任何适宜数量的节点。控制服务器12包括一个或多个计算设备,解说性地为服务器计算机,其每一个包括一个或多个处理器。在图示实施例中,控制服务器12是物理上与节点簇14分离的专用服务器计算机12。在一个实施例中,控制服务器12物理上远离容纳可用节点16的数据中心。控制服务器12替代地可以是选定的节点簇14中的一个或多个节点16。控制服务器12充当云计算配置系统,该云计算配置系统作用以分配和配置节点16、启动节点16上的工作负载、收集和报告性能数据等,如本文所述。
控制服务器12解说地包括配置器22、负载发生器24以及负载平衡器26。如本文描述的,配置器22、负载发生器24和负载平衡器26包括一个或多个处理器,所述处理器执行存储在可由一个或多个处理器访问的内部或外部存储器中的软件或固件代码。软件/固件代码包含与配置器22、负载发生器24和负载平衡器26的功能对应的指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行本文描述的功能。或者,配置器22、负载发生器24和/或负载平衡器26可包括专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、硬线逻辑或其组合。配置器22可作用以选择和配置一个或多个节点16以将其纳入到节点簇14中、配置通信网络18的参数、选择、配置和部署工作负载容器模块和在节点簇14上执行的工作负载、并收集和分析与工作负载的执行关联的性能数据,如本文所述。配置器22作用以产生:配置文件28,所述配置文件28被提供给节点16并在节点16处理以在节点16上配置软件;以及至少一个配置文件30,该配置文件30被提供给负载发生器24以将工作负载请求参数提供给负载发生器24。
负载发生器24作用以产生请求,所述请求充当由节点簇14使用的输入以实现工作负载执行。换句话说,节点簇14基于请求和伴随该请求提供的输入参数和数据执行工作负载。在一些实施例中,来自负载发生器24的请求由用户发起。例如,用户或客户可分别请求(例如经由用户界面200)对规定搜索项或数据集的搜索或归类操作,负载发生器24产生对应的搜索或归类请求。在一个实施例中,配置器22产生配置文件30,该配置文件30描述经由用户界面200接收的用户请求。节点16使用拟被搜索的标识项或拟被归类的数据集执行工作负载。负载发生器24可根据拟被执行的工作负载的类型产生其它适宜的请求。负载平衡器26作用以在节点16之中分配由负载发生器24提供的请求以指导哪些节点16执行哪些请求。负载平衡器26也作用以将来自负载发生器24的请求分割成多个部分并将这些部分分配至节点16以使多个节点16并行工作以执行请求。
配置器22解说地是基于web的,以使用户能在因特网上访问配置器22,尽管配置器22也可在任意适宜的网络或通信链路上被访问。图1示出一示例性用户计算机20,其包括显示器21、处理器32(例如中央处理单元(CPU))以及可由处理器32访问的存储器34。计算机20可包括任何适宜的计算设备,例如台式计算机、膝上计算机、移动设备、智能电话等。包括软件或固件代码的web浏览器36运行在计算机20上并用来访问由配置器22提供的图形用户界面并在显示器21上显示图形用户界面。例如参见图7-图30所示的图形用户界面200。
作为附图中所示内容的替代,可利用云计算系统10的多种其它组成配置和相应的连接性,并且这些组成配置和相应的连接性根据本文公开的实施例仍然存在。
参见图2,其示出根据一个实施例通过配置器22配置的图1的节点簇14的示例性节点16。节点16包括作用以执行被存储在存储器42中的软件或固件的至少一个处理器40。存储器42包括一个或多个物理存储器位置并可以在处理器40内部或外部。
图2示出被装载到每个节点16上的软件(或固件)代码,所述节点16包括操作系统44、内核模式测量代理46、网络拓扑驱动器48、用户模式测量代理50、web应用服务器52、工作负载容器模块54、面向服务的架构运行时间代理56以及综合工作负载引擎58。在图示实施例中,内核模式测量代理46和网络拓扑驱动器48需要来自操作系统44的特权以访问某一数据,路来自节点16的输入/输出(I/O)设备的数据。类似地,用户模式测量代理50、web应用服务器52、工作负载容器模块54、面向服务的架构运行时间代理56以及综合工作负载引擎58解说上不需要来自操作系统44的特权以访问数据或执行它们相应的功能。
操作系统44管理节点16的总体操作,包括例如管理应用、特权和硬件资源以及分配处理器时间和存储器使用。网络拓扑驱动器48作用以在通信网络18(图1)上控制节点16的网络特性和参数。在一个实施例中,网络拓扑驱动器48作用以基于从配置器22(图1)接收的配置文件28(图1)改变与节点16关联的网络特性。
网络软件堆栈(未示出)也在每个节点16处被存储和执行并包括利于在图1的网络18上通信的网络嵌套。在本文描述的实施例中,网络嵌套包括被赋予网络通信的地址和端口号的TCP嵌套。在一个实施例中,网络软件堆栈利用操作系统44的网络驱动器。
内核模式测量代理46和用户模式测量代理50各自作用以在节点16处采集和分析数据以监视操作和工作负载性能。内核模式测量代理46例如监视处理器指令数、处理器利用、对每个I/O操作发送和接收的字节数以及其它适宜数据或其组合。示例性内核模式测量代理46包括系统侦听软件。用户模式测量代理50采集不需要来自操作系统44的系统特权以访问数据的性能数据。该性能数据的例子包括指示各个子任务的开始时间和结束时间、执行这些任务的速率、由系统利用的虚拟存储器的量、对于任务处理的输入记录的量等专用日志。在一个实施例中,代理46、50和/或其它监视工具被预安装在每个节点16上并基于配置文件28(图1)在每个节点16处通过配置器22配置。替代地,配置器22在工作负载部署期间将配置的代理46、50和/或其它监视工具装载到节点16上。
Web应用服务器52是控制节点16和图1的控制服务器12和节点簇14的其它节点16两者之间的通信的应用。Web应用服务器52实现节点16之间以及控制服务器12和节点16之间的文件转移。示例性web应用服务器52是Apache Tomcat。
工作负载容器模块54也被存储在每个节点16的存储器42中。如本文描述的那样,控制服务器12基于用户的选择和工作负载容器模块54的配置将工作负载容器模块54提供给节点16。示例性工作负载容器模块54包括Apache Hadoop、Memcached、Apache Cassandra或不市售的由用户提供的定制工作负载容器模块。在一个实施例中,工作负载容器模块54包括含代码模块的文件系统55,当由处理器执行时,该文件系统55管理存储器42中的数据存储和节点16之间的数据通信。示例性文件系统55是Apache Hadoop工作负载容器的分布式文件系统(HDFS)。文件系统55通过在节点存储器42中存储数据和文件的多个副本而支持数据复制。
可提供其它适宜的工作负载容器模块,例如可选的面向服务架构(SOA)运行时间代理56和可选的综合工作负载引擎58。SOA运行时间代理56是另一类型的工作负载容器模块,当由处理器执行时,其作用以协调工作负载的执行。SOA运行时间代理56例如执行服务功能,比如对频繁使用的文件(例如图像等)高速缓存和提供服务以加速工作负载操作。示例性SOA运行时间代理56包括Google协议缓冲器。综合工作负载引擎58包括工作负载容器模块,当由处理器执行时,该工作负载容器模块作用以激活和执行经由配置器22(图1)接收的综合测试工作负载,如本文所述的那样。在图示实施例中,综合工作负载引擎58被订制以通过综合测试工作负载而不是实际的非测试工作负载而执行。
参见图3,其示出根据一个实施例的控制服务器12的配置器22。配置器22解说地包括认证器70、节点配置器72、网络配置器74、工作负载容器配置器76、工作负载配置器78、批处理器80、数据监视配置器82、数据汇集器84,其各自包括控制服务器12的一个或多个处理器22,该一个或多个处理器执行被存储在可由控制服务器12的一个或多个处理器22访问的存储器(例如存储器90)中的相应软件或固件代码模块以执行本文所述的功能。认证器70包括执行认证代码模块的处理器22并作用以认证对配置器22的用户访问,如本文针对图7描述的那样。节点配置器72包括执行节点配置代码模块的处理器22并作用以选择和配置节点16以标识具有特定硬件和操作配置的节点簇14,如本文中针对图8-图10描述的那样。网络配置器74包括执行网络配置代码模块的处理器22并作用以调整图1的通信网络18的网络参数。例如用于测试和性能分析和/或用于调整系统功耗,如本文针对图11-图17描述的那样。工作负载容器配置76包括执行工作负载容器配置代码模块的处理器22并作用以选择和配置工作负载容器模块以在节点16上操作,如本文针对图18-图21描述的那样。工作负载配置器78包括执行工作负载配置代码模块的处理器22并作用以选择和配置工作负载以通过由节点16选定的工作负载容器执行。工作负载配置器78解说性地包括代码综合器79,该代码综合器79包括执行综合测试工作负载发生代码模块的处理器22,并且该代码综合器79作用以基于用户定义的工作负载参数产生综合测试工作负载,如本文中针对图23和图32-35描述的那样。批处理器80包括执行批处理器代码模块的处理器22并作用以发起对多个工作负载的批处理,其中多个工作负载在节点簇14上以某一顺序被执行,如本文中针对图25描述的那样。数据监视配置器82包括执行数据监视配置代码模块的处理器22并作用以配置监视工具,该监视工具在工作负载执行期间实时地监视性能数据并采集数据,如本文中针对图26-29描述的那样。数据汇集器84包括执行数据汇集代码模块的处理器22,并作用以从每个节点16采集和汇集性能数据并产生日志、统计、图表和其它数据表征,如本文中针对图30和图31描述的那样。
来自配置器22的输出被解说性地存储在控制服务器12的存储器90中。可以在控制服务器12的处理器内部或外部的存储器90包括一个或多个物理存储器位置。存储器90解说性地存储图1的配置文件28、30,该配置文件28、30由配置器22产生。存储器90也存储日志文件98,该日志文件98由节点16产生并在工作负载执行之后被通信至控制服务器12。如图所示,操作系统的图像文件92、通过工作负载容器配置器76选择的工作负载容器的图像文件94以及通过工作负载配置器78选择或产生的工作负载的图像文件96被存储在存储器90中。在一个实施例中,多个操作系统图像文件92被存储在存储器90中以使用户可经由配置器22选择操作系统以安装在每个节点16上。在一个实施例中,用户可从远程存储器(例如图1的计算机20的存储器34)将操作系统图像文件92上传到控制服务器12上以安装到节点16上。工作负载容器图像文件94基于用户选择和来自多个可用工作负载容器模块的工作负载容器模块的配置通过工作负载容器配置器76产生。在本文描述的实施例中,工作负载容器配置器76基于经由图7-30的用户界面200接收的用户输入配置相应的工作负载容器图像文件94。类似地,工作负载配置器78基于经由控制服务器12的用户界面200对来自一个或多个可用工作负载的工作负载的用户选择而产生和配置工作负载图像文件96。工作负载图像文件96包括基于用户输入由工作负载配置器78选择的预定义的、实际工作负载或基于用户输入由工作负载配置器78产生的综合测试工作负载。
在一个实施例中,存储器90可由节点簇14的每个节点16访问,并且控制服务器12将指针或其它标识符发送给节点簇14的每个节点16,所述指针或其它标识符标识每个图像文件92、94、96在存储器90中的位置。节点16基于指针从存储器90检索相应的图像文件92、94、96。替代地,控制服务器12将图像文件92、94、96和适宜的配置文件28装载到每个节点16上或者通过任何其它适宜机制将图像文件92、94、96和配置文件28提供给节点16。
如本文描述的,配置器22作用以基于用户选择和输入自动地执行下列动作:分配要求的资源(例如节点16);预配置节点16(例如网络拓扑、存储器特性);在每个节点16中安装工作负载容器软件;将用户提供的工作负载软件和数据部署至节点16;启动监视工具(例如Ganglia、系统侦听)和从每个节点收集的性能数据;在工作负载执行期间向用户提供实时状态更新;采集由用户请求的所有数据,包括由监视工具收集的工作负载和信息的结果;处理、概括和显示由用户请求的性能数据;以及执行其它合适功能。此外,用户可使用配置器22以创建和部署顺序地或并行地运行的工作负载序列,如本文描述的那样。用户可反复地执行任何或全部工作负载,同时在执行期间或执行之间对配置或输入参数作出可选择的调整。配置器22也作用以基于由用户作出的请求而将数据存储在节点簇14的指定数据库节点16上。
图4示出由图1和图3的配置器22执行的示例性操作的流程图100,所述操作用于配置云计算系统。贯穿图4的描述参照图1和图3。在所示实施例中,配置器22基于经由用户界面(例如图7-30所示的用户界面200)接收的多个用户选择根据图4的流程图100配置图1的节点簇14。在方框102,配置器22的节点配置器72从多个可用节点16选择节点簇14。节点簇14的每个节点16包括至少一个处理设备40和存储器42(图2)并作用以与簇14的其它节点16共享工作负载处理,如本文描述的那样。在图示实施例中,多个节点16可供配置器22选择,并且配置器22选择可用节点16的一个子集作为节点簇14。在一个实施例中,配置器22基于经由用户界面接收的用户选择从节点簇14的每个节点16选择所采集的至少一种类型数据,并且配置器22的数据汇集器84从节点簇14的每个节点16采集和汇集至少一种类型的数据,如本文中针对图26-30描述的那样。
在方框104,配置器22的工作负载容器配置器76选择工作负载容器模块以工作在选定节点簇14的每个节点16上。工作负载容器模块包括可选择代码模块,当由节点16执行时,该可选择代码模块作用以发起和协调工作负载的执行。在一个实施例中,工作负载容器模块选自多个可用的工作负载容器模块,如本文中针对图18描述的那样。在一个实施例中,配置器22基于经由用户界面接收的用户输入修正每个节点16上的工作负载容器模块的至少一个工作参数。该至少一个工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者,如本文描述的那样。
在一个实施例中,选择的工作负载容器模块是被存储在远离云计算系统10的存储器(例如图1的存储器34)上的定制工作负载容器模块,并且配置器22将存储在远程存储器上的定制工作负载容器模块装载到节点簇14的每个节点16上。例如,定制工作负载容器模块包括由用户提供并且不市售的工作负载容器模块。在一个实施例中,定制工作负载容器模块包括配置文件,该配置文件包含用于执行工作负载的用户定义指令和参数。示例性指令包括测试在典型工作负载中不常见和/或对特定工作负载唯一的工作负载参数的指令。定制工作负载容器模块的其它示例性指令包括将执行的输出或日志文件重引导至不同位置以供进一步分析的指令。替代地,工作负载容器模块包括市售的、第三方工作负载容器模块,例如Apache Hadoop、Memcached、Apache Cassandra等等,它们被存储在计算系统10(例如图3的存储器90)并可供配置器22选择和部署。
在方框106,配置器22的工作负载配置器78选择工作负载以通过节点簇14上的工作负载容器模块执行。所选择工作负载的处理跨节点簇14分布,如本文描述的那样。在一个实施例中,工作负载选自实际工作负载和综合测试工作负载中的至少一者。一个或多个实际的、预编辑的工作负载被存储在可由控制服务器12的处理器访问的存储器(例如图1的存储器34)中,并且配置器22将选择的实际工作负载装载到节点16上。综合测试工作负载基于经由用户界面200接收的用户定义工作负载参数由配置器22产生并被装载到节点16上,如本文中针对图23和图32-35描述的那样。在一个实施例中,配置器22在执行所选工作负载期间基于经由用户界面200接收的用户输入调整至少一个通信网络参数以修正或限制通信网络18的性能,如本文中针对图11-17描述的那样。
在图示实施例中,配置器22提供用户界面200(图7-图30),该用户界面200包括可选择的节点数据(例如图8的表258)、可选择的工作负载容器数据(例如图18的可选择输入352)以及可选择的工作负载数据(例如图22的可选择输入418)。节点簇14基于可选择的节点数据的用户选择而被选择,工作负载容器模块基于可选择的工作负载容器数据的用户选择而被选择,并且工作负载基于可选择的工作负载数据的用户选择而被选择。
图5示出由图1和图3的配置器22执行的另一示例性操作的流程图120,其用以配置云计算系统10。贯穿图5的描述参照图1和图3。在方框122,工作负载容器配置器76基于经由用户界面(例如用户界面200)接收的用户选择而从多个可用工作负载容器模块选择工作负载容器模块以工作在云计算系统10的节点簇14的每个节点16上。在图示实施例中,工作负载容器模块基于可选择工作负载容器数据(例如图18的输入352、360、362以及图21的输入352、401)而被选择。所选择的工作负载容器模块包括可选择代码模块(例如可通过图18的输入360、362和图21的输入401选择),所述可选择代码模块作用以协调工作负载的执行。在一个实施例中,多个可用工作负载容器模块包括定制工作负载容器模块,如本文描述的那样。在方框124,节点配置器72通过所选择的工作负载容器模块配置节点簇14的每个节点16以执行工作负载,以使工作负载的处理跨节点簇分布。如本文描述的那样,每个节点16包括处理设备40和存储器42并作用以与节点簇14的其它节点16共享工作负载的处理。配置器22将选择的工作负载容器模块安装到节点簇14的每个节点16上并通过节点簇14上的选定工作负载容器模块发起工作负载的执行。
图6示出由图1和图3的配置器22执行的另一示例性操作的流程图140,用以配置云计算系统10。贯穿图6的描述参照图1和图3。在方框142,配置器22的节点配置器72从云计算系统10的多个可用节点16选择节点簇14,所述节点簇14作用以共享工作负载的处理。在图示实施例中,基于可选择的节点数据选择节点簇14,如本文描述的那样。
在方框144,工作负载容器配置器76基于经由用户界面接收的用户输入(例如图19的界面200的可选择输入367和域374、378、380)修正每个节点16的相同工作负载容器模块的工作参数。相同的工作负载容器模块包括可选择代码模块,当由节点16执行时,该可选择代码模块作用以基于工作参数协调工作负载的执行。工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者,如本文中针对图19和图20描述的那样。在更新配置时将工作负载容器模块部署到每个节点16之前或在将工作负载容器模块部署至每个节点16之后,配置器22修正工作参数。当由每个节点16执行时,工作负载容器模块作用以基于经修正的工作参数协调节点簇14上的工作负载执行。在一个实施例中,工作参数包括读/写操作的存储器缓存大小、读/写操作期间转移的数据块大小、存储在每个节点16的存储器42中的数据块的数目、被分配以处理文件系统55的请求的每个节点16的处理线程数和/或当归类数据时合并的数据流的数目。其它适宜的工作参数可被修正,如针对图19和图20描述的那样。
示例性用户界面200示出于图7-30,该用户界面给予用户对图3的控制服务器12的访问权。用户界面200解说地是基于web的、图形用户界面200,其包括被配置成显示在显示器上(例如计算机20的显示器21(图1)上)的多个可选择屏。可提供其它适宜的用户界面,例如本地用户界面应用、命令行驱动的界面、可编程API或另一其它类型的界面或界面组合。用户界面200包括可选择数据,例如可选择输入、域、模块、标签、下拉菜单、框以及其它适宜的可选择数据,它们链接至和提供输入至配置器22的组件70-84。在一个实施例中,用户界面200的可选择数据以允许个别选择的方式的呈现。例如,通过接触用户界面200的触摸屏、通过按下键盘的键或通过任何其它适宜的选择机制,可选择数据通过鼠标指针由用户选择。选择的数据可导致数据例如被高亮显示或勾选,并且新的屏幕、菜单或弹出窗可基于某些可选择数据(例如模块、下拉菜单等)的选择而出现。
贯穿用户界面200的描述参照图1-3。如图7所示,用户界面200包括若干可选择模块,当被选择时,这些可选择模块提供对配置器22的访问,由此允许用户选择和其它用户输入至配置器22。具体地说,认证和设置库模块202包括表征并链接至配置器22的认证器70的数据。实例模块204包括表征并链接至配置器22的节点配置器72的数据。网络配置模块206包括表征并链接至配置器22的网络配置器74的数据。工作负载容器配置模块208包括表征并链接至配置器22的工作负载容器配置器76的数据。工作负载配置模块210包括表征并链接至配置器22的工作负载配置器78的数据。批处理模块212包括表征并链接至配置器22的批处理器80的数据。监视模块214包括表征并链接至配置器22的数据监视配置器82的数据。控制和状态模块216包括表征并链接至配置器22的数据汇集器84的数据。配置器22的组件70-84基于用户选择、数据和经由用户界面200的模块202-216提供的其它用户输入而实现它们相应的功能。
参见图7,认证和设置库模块202被选择。基于对模块202的用户输入,认证器70认证对配置器22的用户访问以及加载之前保存的系统配置。认证器70通过确认在相应域220、222、224中以访问钥、密钥和/或EC2钥对形式输入的证书数据来许可对配置器22的用户访问。在图示实施例中,当使用模块202以访问Amazon Web Service云平台时,域224的EC2钥对提供对新选择的节点16的根源或原始访问。认证器70基于输入238的用户选择从系统配置文件(例如存储在图1的用户计算机20或控制服务器12上)装载之前保存的系统配置。系统配置文件包括工作负载和工作负载容器配置、节点16和网络设置信息、云计算系统10的数据监视/采集设置以及与通过配置器22之前保存的系统配置关联的所有其它配置信息。装载之前保存的系统配置文件通过来自系统配置文件的配置信息更新了配置器22。系统配置文件解说地包括JSON文件格式,尽管可提供其它适宜的格式。在装载系统配置文件之后,经装载的系统配置可经由用户界面200的模块被修正。输入240的选择使认证器70将配置器22的当前系统配置保存至文件。认证数据可基于选择框242的选择纳入到所保存的系统配置文件中。
尽管系统配置文件经由基于web的用户界面200被标识并被装载到控制服务器12中,然而可使用其它适宜的远程方法调用(RMI)机制以获得系统配置文件。例如,Apache超文本传输协议(HTTP)服务器、ApacheTomcat服务器、使用RMI机制以传输系统配置文件的Tomcat小服务程序(servlet)或使用RMI机制以将系统配置文件直接地传输至控制服务器12的定制应用(例如命令行实用)。
设置库226提供之前创建的系统配置文件的表或列表,所述系统配置文件可经由可选择输入227供选择和执行。输入228的选择使得认证器70用来自库226内选择的系统配置文件的配置信息更新模块202-216。当前系统配置(例如经由模块202-216配置的)基于输入230的选择被保存至文件并被添加至库226,并基于输入234的选择将系统配置文件从库226中删除。输入232、236的选择使得认证器70将系统配置文件从本地计算机(例如图1的计算机20)上传至库226或将系统配置文件从远程计算机(例如经由因特网)下载至库226。库226允许一个或多个之前使用的系统配置被快速地装载和执行。库226的系统配置文件可在云计算系统10上单独地、并行地或以某一顺序被选择和执行。例如,可在库226中提供多个系统配置文件从而以批处理顺序执行,其中配置器22自动地按顺序部署每个选择的系统配置以通过每个系统配置执行工作负载。在图示实施例中,系统配置经由图30的控制和状态模块216被部署至节点16,如本文描述的那样。系统配置的部署牵涉到配置器22,其通过与系统配置文件关联的设置、软件和工作负载信息配置云计算系统10,如本文中参照图30描述的那样。如本文描述的那样,配置器22解说地产生一个或多个配置文件28,该配置文件28被路由至每个节点16以配置相应节点16。被部署至节点16的配置文件28包括经由模块202装载的系统配置文件中包含的所有配置信息加上在装载该系统配置文件之后经由模块202-216作出的任何额外配置改变。
参见图8,选择实例模块204以配置节点16的数目和特性。基于对模块204的用户输入,节点配置器72标识和选择具有规定的硬件和工作配置的节点簇14。实例模块204包括实例标签250、实例类型标签252和其它实例设置标签254。在图8中选择的实例标签250下,纳入节点簇14的要求的节点16的数目被输入到域256。一旦用户通过域256选择了要求数量的节点16,节点配置器72在表258中产生节点16的默认列表,每个默认列表具有特定的硬件配置。表258提供图1的节点簇14的列表和配置描述。表258包括每个节点16的若干描述性域,包括接点数和名称、实例(节点)类型、存储器容量、核处理器(例如CPU)的数目、存储能力、定额、接收/发送定额以及接收/发送能力(cap)。实例类型总地描述节点的相对大小和计算功率,其解说地选自微、小、中等、大、x-大、2x-大、4x-大等(参见图9)。在图8的示例性表258中,每个节点16是具有7680兆字节(MB)的存储器容量、850MB的存储能力以及4核处理器的大型。节点配置器72基于可选择节点数据的用户选择而选择节点16,所述用户选择解说地为选择框259和可选择输入262。每个节点16的类型可基于表258的节点16的选择(例如使用输入262或通过勾选相应的选择框259)和选择编辑实例类型输入260而改变,这使得实例类型标签252针对所选择的节点16被显示。参见图9,表264包括可供选择的节点16(例如可用服务器硬件)的类型的列表以用于节点簇14。表264的一个或多个节点16通过可选择输入265被选择以替代图8的表258中选定的节点16。在一个实施例中,表264的域(例如存储器、VCPU、存储等)可由用户修正以进一步标识所选择节点16的要求的硬件表现性能。根据可用的服务器硬件,更少或更多类型的节点16可供在表264中选择。在图示实施例中,对于表264中列出的每个节点类型,多个节点16可供添加至节点簇14。
参见图10,节点配置器72基于用户界面200的实例设置标签254中提供的用户输入而调整每个节点16的引导时间配置。引导时间配置包括一个或多个引导时间参数,这些参数被施加至各个节点16或多组节点16或被施加至整个节点簇14。诸如计算能力、系统存储器容量和/或每个节点16的存储能力的引导时间参数基于用户对域268、270、272、274的输入通过节点配置器72受到限制或约束,以使相应节点16工作在低于最大能力。基于输入269的用户选择而选择默认引导时间参数,并基于输入271的用户选择而选择定制引导时间参数。在图示实施例中,每个可调整参数的最大值设置是默认值,但一旦通过输入171选择“定制”选项并将配置设置输入到相应域258、270、272、274中,用户就能调整每个参数。
在图示实施例中,节点16的处理核的数目可通过域268调整。例如,如果在实例标签250的表258中选择的节点16(图8)具有4个处理核,则在工作负载执行期间启用的处理核的数目可经由域268被减小至0、1、2或3个核,由此“隐藏”在工作负载执行期间从操作系统44(图2)选择的节点16的一个或多个处理核。可见系统存储器大小可基于对域270、272的输入而调整,即可由操作系统44访问的系统存储器(图2)。例如,如果在实例标签250的表258中选择的节点16(图8)具有2048MB的存储器容量,则在工作负载执行期间启用的“可见”存储器9(例如随机存取存储器)可能减少至低于2048MB,由此在工作负载执行期间从操作系统44(图2)“隐藏”存储器的一部分。额外的工作负载自变量或指令通过域274被施加以调整额外的引导时间参数。工作负载的自变量数目可基于被输入到域274中的数字而增加或减少。例如,工作负载的指令的子集是可通过域274选择以执行的,由此隐藏来自操作系统44(图2)的其余指令。此外,具有64位架构的节点16可基于对域274的输入而配置以使其工作在32位模式下,其中只有32位对操作系统44是可见的。可将额外的引导时间参数输入到域276中。在一个实施例中,指令或代码通过用户手动地输入到域276中以提供额外的云配置设置。例如,用于映射-还原工作负载的主节点16可经由域276指定以在引导时使特定节点16作为主节点。在一个实施例中,通过节点配置器72限制一个或多个节点16的操作被用来测试云计算系统10的性能,如本文描述的那样。在图示实施例中,图10中指定的引导时间配置设置被提供在引导时间配置文件28(图3)中,该引导时间配置文件28通过节点配置器72被提供给每个节点16以调整相应节点16的引导时间配置,如本文中针对图36-38描述的那样。
配置器22基于图7的网络配置模块206的用户选择而产生图11-17所示的示例性网络设置向导窗280。参照图11,网络设置向导280提供多个全局网络设置标签,每个全局网络设置标签包括可选择数据以调整一个或多个节点16的网络参数。可调整网络参数包括经由标签282的网络延迟、经由标签284的分组丢失、经由标签286的分组重复、经由标签288的分组腐败、经由标签290的分组重定序、经由标签292的分组速率控制以及经由标签294的其它定制命令。基于经由用户界面200的网络设置向导280的用户选择和输入,图3的网络配置器74作用以调整图1的通信网络18的节点16的网络参数,如本文描述的那样。在一个实施例中,使用网络参数的修正以进行网络测试和性能分析和/或调整系统功耗。在图示实施例中,网络配置器74基于对网络设置向导280的用户输入人为地形成网络流量和行为,由此对多种类型的网络拓扑进行建模。例如,根据网络配置,不同的通信网络具有不同的延时、带宽、性能等。因此,网络配置器74允许具有不同配置的网络通过工作负载执行来实现以测试和分析具有所选择工作负载的不同网络的性能。在一个实施例中,测试和分析是结合批处理器80完成的,该批处理器80以不同的网络配置发起工作负载执行。例如,可确定最佳网络拓扑以通过所选择的硬件(节点16)配置来执行特定工作负载。在一个实施例中,网络配置器74作用以将网络设置施加至节点簇14的节点16的某些组或子集。
仍然参见图11,与实现通信网络延迟关联的可选择数据被示出于标签282中。网络配置器74基于输入(解说为框)298-301和域302、304、306、308、310、312的用户选择而选择和修正网络延迟。通信网络18(图1)上每个分组通信(即节点16之间或节点16和控制服务器12之间携带数据或信息的分组)的通信延迟是基于输入298的选择和经由域302输入的延迟值而实现的。规定的通信延迟的变例是基于输入299的选择和经由域304输入的变化值(例如解说地是±10毫秒的变化)而实现的。域310、312包括下拉菜单以选择与域302、304的相应值关联的时间单位(例如毫秒、微秒等)。规定的通信延迟之间的关联是基于输入300的选择和经由域306输入的关联值来实现的,所述关联值解说地是百分比关联值。规定的通信延迟的分布是基于下拉菜单301的选择来实现的。分布包括正态分布或其它适宜的分布类型。
参见图12,标签284中示出与实现网络分组丢失率关联的可选择数据。网络配置器74基于输入(解说地为框)313、314和域315、316的用户选择而选择和修正分组丢失率(即分组不自然地损失的比率)。分组丢失率是基于输入313的选择和经由域315输入的比率值对于网络18上的分组通信而实现的。分组丢失率解说地被输入为百分比,例如0.1%,由此导致在由节点16发送的每1000个分组中有一个分组丢失。分组丢失率的关联是基于输入314的选择和经由域316输入的关联值(解说地为百分比值)来实现的。
参见图13,标签286中示出与实现网络分组重复率关联的可选择数据。网络配置器74基于输入(解说地为框)317、318和域319、320的用户选择而选择并修正分组重复率(即分组不自然地重复的比率)。分组重复率是基于输入317的选择和经由域319输入的比率值对于网络18上的分组通信实现的。分组重复率解说地被输入作为百分比,例如0.1%,由此导致在由节点16发送的每1000个分组中有一个分组是重复的。分组重复率的关联是基于输入318的选择和经由域320输入的关联值(解说地为百分比值)来实现的。
参见图14,标签288中示出与实现网络分组腐败率关联的可选择数据。网络配置器74基于输入(解说地为框)321和域322的用户选择而选择并修正分组腐败率(即分组不自然地腐败的比率)。分组腐败率是基于输入321的选择和经由域322输入的比率值对于网络18上的分组通信实现的。分组腐败率解说地被输入作为百分比,例如0.1%,由此导致在由节点16发送的每1000个分组中有一个分组是腐败的。在一个实施例中,分组腐败率的关联也可被选择和实现。
参见图15,标签290中示出与实现网络分组重定序率关联的可选择数据。网络配置器74基于输入(解说地为框)323、324和域325、326的用户选择而选择并修正分组重定序率(即分组在分组通信期间次序错乱的率)。分组重定序率是基于输入323的选择和经由域325输入的比率值对于网络18上的分组通信实现的。分组重定序率解说地被输入作为百分比,例如0.1%,由此导致在由节点16发送的每1000个分组中有一个分组是重定序的。分组重定序率的关联是基于输入324的选择和经由域326输入的关联值(解说地为百分比值)来实现的。
参见图16,标签292中示出与实现网络通信速率关联的可选择数据。网络配置器74基于输入(解说地为框)327-330和域331-338的用户选择而选择和修正分组通信速率(即,分组在节点16之间通信的速率)。分组通信速率是基于输入327的选择和经由域331输入的速率值对通信网络18实现的,并且分组通信速率的峰顶(最大值)是基于输入328的选择和经由域332输入的峰顶值而实现的。分组猝发是基于输入329的选择和经由域333输入的分组猝发值而实现的,而分组猝发的峰顶(最大值)是基于输入330的选择和经由域334输入的峰顶值而实现的。域335、336提供下拉菜单以选择速率单位(解说地为千字节/秒),而域337、338提供下拉菜单以选择猝发单位(解说地为字节)。
参见图17,标签292中示出与实现网络通信速率关联的可选择数据。网络配置器74提供定制命令以基于输入的用户选择(解说地为框)340和经由域342输入的定制命令而修正与通信网络18上的一个或多个节点16关联的网络参数。
参见图18,工作负载容器配置模块208被选择。基于对模块208的用户输入(例如对可选择工作负载容器数据的用户选择,比如输入352、360、362),工作负载容器配置器76作用以选择和配置工作负载容器模块以在节点簇14上工作。模块208包括与多个可用工作负载容器模块对应的多个可选择标签350。每个可用工作负载容器模块包括可选择代码模块,当被执行时,该可选择代码模块作用以发起和控制节点簇14上的工作负载的执行。图示实施例中经由模块208可得的工作负载容器模块包括若干第三方、市售的工作负载容器模块,例如Apache Hadoop、Memcached、Cassandra和Darwin Streaming。Cassandra是一种开放资源分布式数据块管理系统,它提供钥值存储以提供基本数据块操作。Darwin Streaming是一种媒体流应用的开放资源实现,例如用来将多种电影媒体类型做成媒体流的由Apple公司提供的QuickTime。尽管解说上经由模块208提供开放资源工作负载容器软件,然而也可提供封闭资源工作负载容器软件以供选择。例如,与封闭资源工作负载容器软件关联的许可信息可经由用户界面200被输入或购买。一个或多个定制工作负载容器模块也可经由模块208的“定制”标签被装载和选择。可提供其它工作负载容器模块。也提供“库”标签,该“库”标签提供对可供选择的额外工作负载容器模块的库的访问权,例如之前使用的定制工作负载容器模块。
在图18的“Hadoop”标签下,工作负载容器配置器76基于对输入352的用户选择而选择Apache Hadoop工作负载容器模块。ApacheHadoop的版本和构造变量可分别基于在通用标签354下的下拉菜单360、362而选择。所选择的工作负载容器模块的工作参数可基于经由扩展标签356和定制标签358提供的用户输入通过工作负载容器配置器76调整。可供调整的工作参数解说地依赖于所选择的工作负载容器模块。例如,如果将ApacheHadoop选择作为工作负载容器模块,图19中示出的扩展标签356显示Apache Hadoop工作负载容器模块的示例性可选择工作参数的表366,这些工作参数可由工作负载容器配置器76配置。工作负载容器配置器76基于对相应选择框367的用户选择而选择工作参数以配置。表366为工作负载容器配置器76提供若干域以接收配置数据,包括推翻(override)域374、主值域378以及从值域380。基于推翻域374中的用户选择,选择其工作负载容器被调整以具有相应工作参数的节点16。基于对相应下拉菜单的用户选择或基于对输入384的用户选择,在推翻域374中选择节点16。解说地,对“永不(never)”的选择导致在所有节点16实现的相应工作参数的默认配置,对“主(master)”或“从(slaves)”的选择导致分别在主节点16或在从节点16实现参数调整,而对“总是(always)”的选择导致在节点簇14的所有节点16实现参数调整。替代地,可选择节点簇14的各个节点16以实现调整的工作参数。
在主值域378和从值域380中,约束、数据值或其它用户选择为相应的主节点16或从节点16中的工作负载容器的相应工作参数提供调整值。属性名域376解说地列出所选择的工作负载容器模块的代码模块中引用的关联工作参数的名称。描述域382解说地向用户显示关联工作参数的一般描述。输入386允许用户对表366中列出的所有工作参数进行选择或解除选择。输入388允许用户推翻或“撤销”之前的选择或参数改变,而输入390允许用户将域374、378和380中提供的值重置为默认设置。
可基于表366中的用户选择通过工作负载容器配置器76调整的示例性工作参数包括与节点16的读/写(I/O)操作、归类操作、节点16的网络嵌套操作(例如TCP嵌套链接)的配置以及工作负载容器的文件系统55(例如对Apache Hadoop的HDFS)关联的工作参数。与读/写操作关联的工作参数例如包括节点16的存储器缓存大小以及在读/写操作期间传递的数据块的大小。解说地示出于表366的行368中的存储器缓存大小对应于在节点16的读/写(I/O)操作期间有多少数据被缓存(临时地存储在高速缓冲存储器中)。在图示实施例中,存储器缓存大小是节点硬件的存储器页或数据块大小的倍数。如本文描述的那样,存储器页或数据块指节点16的虚拟存储器的固定长度块,它是用于存储器分配和存储器转移的数据的最小单位。在图19的行368中,主节点值和从节点值被解说地设定至4096位,但这些值可被调整至8192位或节点处理器40(图2)的数据块大小的另一适宜倍数。类似地,在读/写操作期间转移的数据块的大小也可基于对表366的用户输入而调整。
与归类操作关联的工作参数包括例如当归类数据时同时合并的数据流的数目。与工作负载容器的文件系统(例如图2的文件系统55)关联的工作参数包括被存储在每个节点16的存储器42中的系统记录或文件的数目(例如参见行370)以及对文件系统55的处理请求分配的每个节点16的处理线程数。在表366的示例性行370中,对于图2的文件系统55被存储在存储器42中的记录数对于主、从节点16均为100000条记录,虽然也可输入其它适宜的记录限值。在一个实施例中,限制文件系统记录的数目用来限制文件系统55造成的文件重复。
与网络嵌套(例如本文描述的TCP网络嵌套)的配置和操作关联的工作参数牵涉到工作负载容器与网络嵌套的相互影响。例如,可调整网络嵌套的通信延迟或延时以及在网络18(图1)上传输的分组的数目。例如,表366的行372允许经由域378、380激活/禁用一算法,解说地为业内已知的“Nagle算法”,以调整经由网络16的TCP嵌套连接发送的数据分组的延时和数目。也可调整与网络嵌套操作关联的其它适宜工作参数。
可通过工作负载容器配置器76调整的另一示例性工作参数包括由节点16的处理器40同时执行的软件任务数。例如,用户可经由对表366的输入而指定在工作负载执行期间同时运行的任务(例如Java任务)数,并且工作负载容器配置器76相应地调整该任务数。也可调整与工作负载容器关联的其它适宜工作参数。
参见图20的定制标签358,可对所选择的工作负载容器模块(解说地为Hadoop工作负载容器模块)实现额外的配置调整,以允许对所选择的工作负载容器模块作进一步定制。工作容器配置器76进一步基于被输入至域392、394和396的命令串以及对相应可选框398的用户选择而调整所选择的工作负载容器模块的配置。在图示实施例中,这些域392、394、396中的每一个指定分别施加至Hadoop主节点、Hadoop文件系统的配置以及与映射-还原执行关联的参数,例如任务跟踪器中的任务数、在那里放临时数据的本地目录以及其它适当参数。
与其它可用工作负载容器模块(例如Memcached、Cassandra、Darwin Streaming等)关联的工作参数如同结合Hadoop工作负载容器模块描述的相同方式被调整。基于根据输入352选择的工作负载容器模块以及经由模块208的标签354、356、358提供的配置信息,工作负载容器配置器76产生工作负载容器图像文件94(图3)以装载到节点簇14的节点16上。在一个实施例中,工作负载容器图像文件94被保存在控制服务器12的存储器90中或节点16的存储器42中,并且工作负载容器配置器76通过配置信息更新图像文件94。在一个实施例中,工作负载容器模块的多个配置可被保存并随后以一顺序运行,例如用以探索工作负载容器配置改变对工作负载和系统性能的影响。
参照图21,工作负载容器配置器76基于模块208的“定制”标签的输入353、401的用户选择而选择用户定义的定制工作负载容器模块以在节点16上执行。在图示实施例中,定制工作负载容器模块包括工作负载容器模块,该工作负载容器模块由用户提供并可能不是市售的,如本文描述的那样。工作负载容器配置器76解说地装载经压缩的zip文件,该经压缩的zip文件包括工作负载容器代码模块。具体地说,zip文件包括配置文件或脚本,其包含用户定义参数以协调工作负载在节点簇14上的执行。如图21所示,表400提供装载的定制工作负载容器模块的列表,该定制工作负载容器模块被存储在控制服务器12(或在计算机20)并可供用户经由可选择输入401选择。额外的定制工作负载容器模块分别基于对输入402、404的用户选择而被上传或下载并被显示在表400中,并且定制工作负载容器模块基于输入403的用户选择而从表400中被删除。用户可经由相应的域406、408输入zip文件夹路径和/或配置脚本路径。在一个实施例中,定制工作负载容器模块被存储在远离云计算系统10的位置,例如在计算机20的存储器34(图1)上,并基于对输入402的用户选择而上传到控制服务器12的存储器90(图3)上。
参见图22,选择工作负载配置模块210。基于对模块210的用户输入,工作负载配置器78(图3)作用以选择和配置工作负载以通过由节点簇14选择的工作负载容器模块执行。工作负载配置器78也作用以基于用户定义的工作负载参数产生综合测试工作负载,该综合测试工作负载通过选择的工作负载容器模块在节点16上被执行。模块210包括若干可选择标签,所述可选择标签包括工作负载标签410、综合内核标签412、MC-Blaster标签414、设置库标签416以及云套件标签417。在图22的工作负载标签410下,基于对可选择工作负载数据的用户选择通过工作负载配置器78选择拟被执行的工作负载,所述可选择工作负载数据解说地包括可选择输入418、424和428。可用工作负载解说地包括适于在Hadoop工作负载容器上执行的工作负载(输入418)、适于在Memcached工作负载容器上执行的工作负载(输入424)或针对所选择的工作负载容器配置的任何其它适宜工作负载,例如定制工作负载(输入428)。
参见图22,Hadoop工作负载基于对相应输入418中的一个的用户选择而选自实际工作负载和综合测试工作负载。包括适用于Hadoop工作负载容器的映射-还原功能的预定义代码模块的实际工作负载基于域422中对实际工作负载的存储位置的标识而被装载到控制服务器12上。在一个实施例中,实际工作负载被存储在远离云计算系统10的存储器上,例如图1的存储器34,并经由域422被上传至控制服务器12的存储器90。在另一实施例中,实际工作负载是样本Hadoop工作负载,该样本Hadoop工作负载提供有Hadoop工作负载容器模块,或者实际工作负载是被预装载到控制服务器12上的另一工作负载。综合测试工作负载也可基于相应输入418的用户选择而选择以在Hadoop工作负载容器上执行。拟通过综合测试工作负载产生并拟在综合测试工作负载的“映射”阶段中处理的输入记录或指令的数目可经由域420被输入并作为输入提供给工作负载配置器78的综合器79(图3),如本文描述的那样。用于通过综合器79产生综合测试工作负载的其它输入参数经由综合内核标签412被配置,如本文描述的那样。尽管综合测试工作负载解说地适于通过Hadoop工作负载容器执行,然而综合测试工作负载也可针对其它可用工作负载容器被选择和产生。
经由域430并且一旦用户选择了输入428,定制脚本作为预定义的实际工作负载被装载以通过选择的工作负载容器模块执行。定制脚本包括用户提供的代码,该代码包括通过由节点簇14选择的工作负载容器模块执行的一个或多个执行命令。在图示实施例中,定制脚本被用作在系统测试期间通过批处理器80执行的工作负载,其中各种网络、工作负载容器和/或其它系统配置改变在连续工作负载执行期间被作出以监视对系统性能的效果,如本文描述的那样。
预定义工作负载也可基于对输入424的用户选择被装载以通过Memcached工作负载容器执行。在一个实施例中,Memcached工作负载包括存储器内加速结构,该结构经由“设置(set)”命令存储钥值对并经由“取(get)”命令检取钥值对。钥值对是包含钥和值的一组两个有联系的数据项,所述钥是数据项的标识符,所述值是通过钥标识的数据或者是对数据位置的指针。Memcached工作负载解说地通过可选择MC-Blaster工具工作,其运行时间是基于对域426的输入值选择的。MC-Blaster是通过在数个网络(例如TCP)嵌套连接上产生请求以从Memcached读/写记录而模拟测试下的系统的工具。每个请求规定一个钥和一个值。MC-Blaster工具经由图24的MC-Blaster标签414被配置。参见图24,对域460的输入规定每处理线程利用的TCP连接数,对域462的输入规定工作在之上的钥的数目,而对域464、466的输入规定每秒请求发送的“取”和“设置”命令的数目。用户规定的(定制)缓存大小可基于对相应输入469的选择和被输入到域468的值通过工作负载配置器78来实现,并且TCP请求可基于对“on”输入470的选择而被延迟。处理线程开始的数量可基于相应输入473的用户选择和域472中输入的值通过工作负载配置器78被定制。处理线程的默认数目等于节点16的活动处理核的数目。UDP重放端口的数目是基于对域474的输入选择的,而起因于工作负载执行而存储(或返回)的值的大小(以字节计)是基于对域476的输入而选择的。
参照图23,综合测试工作负载基于经由组合内核标签412提供的用户输入通过综合器79产生。具体地说,工作负载配置器78的综合器79(图3)基于代码模块中提供的用户定义参数而产生综合测试工作负载,其解说地为踪迹文件(例如配置文件),该踪迹文件被装载到控制服务器12的存储器90上。踪迹文件包括描述综合测试工作负载的要求计算特性的数据,如本文描述的那样。一旦用户选择图23的“综合”输入434,可基于对域436或域438的用户输入标识所存储的踪迹文件的位置。域436解说地标识含有该踪迹文件的硬盘位置(例如图1的计算机20的存储器34),并且域438解说地标识web地址或URL以检取该踪迹文件。表440显示踪迹文件和之前产生的综合测试工作负载,它们被装载并可供选择。踪迹文件通过对输入442的用户选择被装载和显示在表440中,通过对输入444的用户选择从表440中删除,并基于对输入446的用户选择被下载(即从域438中标识的URL下载)。踪迹文件解说地是JSON文件格式,尽管也可提供其它合适的文件类型。综合测试工作负载中拟产生的指令的最大数目被标识在域448中,并且所产生的综合测试工作负载的迭代的最大数目被标识在域450。替代地,之前产生的综合测试工作负载基于对库输入432的用户选择、通过域436或438对综合测试工作负载的存储位置(本地硬盘驱动器、web站点等)的标识以及与表440中显示的要求的预生成综合测试工作负载对应的输入441的用户选择而通过工作负载配置器78装载。之前生成的综合测试工作负载的指令和迭代的最大数目可通过域448、450调整。
踪迹文件包括可修正的数据结构,其解说地为具有可修正域的表,该数据结构标识工作负载特性和用户定义参数,该工作负载特性和用户定义参数被综合器79用作输入以产生综合测试工作负载。表被显示在用户界面上,例如通过用户界面200或用户计算机20的用户界面,以使表的域可基于对表的用户输入和选择而被修正。例如参见本文描述的图32的表150。踪迹文件进一步标识被综合器79用作输入的目标指令集架构(ISA)的至少一部分。踪迹文件进一步标识与综合工作负载的指令关联的其它特性,包括:指令间依赖性(例如在执行第一指令之前,第一指令依赖于第二指令的结束)、存储器寄存器分配约束(例如约束指令以从特定寄存器取值)以及架构执行约束(例如可供执行特定类型的指令的有限数量的逻辑单元)。因此,配置器22作用以基于踪迹文件中规定的执行特性来预测应当花费多长的工作负载指令来执行。
踪迹文件中描述的示例性用户定义工作负载参数包括下列内容:拟被产生的总指令数;拟被生成的指令类型,例如包括浮点指令、整型指令以及分支指令;指令执行的行为(例如执行流),例如执行流分支岔开的可能性(即在指令执行期间是否可能取分支或者是否执行将沿执行流路径继续而不跳至一分支);指令之中的数据依赖性的分布;被执行和/或转移的基本块的平均大小;以及与指令执行关联的潜伏时间(即执行指令或指令类型所需的时间长度,例如特定指令或指令类型需要多少周期以执行)。在一个实施例中,用户定义的工作负载参数规定哪些特定指令用作整型指令或浮点指令。在一个实施例中,用户定义的工作负载参数规定每个指令类型(例如整形、浮点、分支)的平均数和统计分布。在一个实施例中,每个指令包括一个或多个输入和输出自变量。
在图示实施例中,踪迹文件中描述的工作负载参数和指令集架构数据以表驱动的、可重置目标的方式被提供。基于对表内容的改变,配置器22作用以面向节点16的不同微架构和系统以及不同指令集架构。示例性表150示出于图32,表150包括表征拟被输入至代码综合器79的一组用户定义工作负载参数的数据。参见图32,表150包括描述所生成的综合测试工作负载的指令集合的指令部分152以及描述用于综合测试工作负载的寻址模式的寻址模式部分154。除前面解说之外的其它的指令模式和寻址模式也可被提供在表150中。表150的指令部分152包括若干可修正域158、160、162、164。域158包括标识拟被生成的指令的数据。域160包括标识与指令关联的计算类型的数据,域162包括标识由综合器79分配以协助代码生成的助记符(mnemonic)的数据。域164包括标识不同寻址模式(即从存储器获得指令自变量的方式)的数据。
在图示实施例中,输入命令156(“gen_ops.initialize()”)指示表150的指令部分152正开始,其描述拟被生成的指令。行166示出用于生成一个或多个指令的用户定义工作负载参数的一个例子。参见行166,被输入到域158的“D(IntShortLatencyArith)”规定具有短延时的整型算术指令,而被输入到域160、162的“op_add”和“addq”指示指令是加或“add”指令。在一个实施例中,短延时表示处理器(例如节点处理器40)花费一个周期或几个周期以执行指令。域164的“addr_reg0rw_reg1r”指示第一寄存器0自变量是“rw”(读和写)而第二寄存器1自变量是“r”(读)。类似地,域164的“addr_reg0rw_imm”描述指令的另一变量,其中第一自变量(寄存器0自变量)是“rw”(读和写),而第二自变量是“imm”(立即)值(例如类似123的数字)。
参见表150的寻址模式部分154,示例性行170包括域172的“addr_reg0w_reg1r”,它标识仅工作在寄存器上的指令类。第一寄存器自变量(即寄存器0)是目的地“w”(写)而第二寄存器自变量(即寄存器1)是输入“r”(读)。域175、176中的表项标识自变量并指示“src”作为读自变量、指示“dst”作为写自变量、或指示“rmw”作为读-修正-写自变量。在x86架构中,例如第一寄存器自变量可以是“rmw”(该自变量一旦工作则为读,并随后用结果进行写)或另一适宜的自变量。附加或不同的用户定义工作负载参数可经由表150规定。
在一个实施例中,表150(例如踪迹文件)是(例如通过用户计算机20)离线生成的并被装载到配置器22上。在一个实施例中,表150被存储在或加载到控制服务器12上并通过用户界面200显示以允许用户经由通过用户界面200显示的可选择和可修正数据来修正用户定义工作负载参数。
参见图33,其示出用于生成和执行综合工作负载的示例性过程流。示出了代码综合器79,其生成综合测试工作负载并将配置文件28和综合工作负载图像96输出至每个节点16,并且每个节点16的综合工作负载引擎58执行综合测试工作负载,如本文描述的那样。图32的方框60、62、64提供在踪迹文件中被提供并被输入到综合器79的内容的抽象表征。方框60是一般任务图表,其表示指令集的执行流。方框62表示执行的任务功能,包括输入、输出、开始和结束指令。方框64表示工作负载行为参数,其包括数据块大小、执行持续时间和延时、消息传播和本文描述的其它用户定义参数。
综合器79解说地包括代码发生器66和代码发射机68。其每一个包括控制服务器12的一个或多个处理器22,所述处理器22执行被存储在可由处理器22访问的存储器(例如存储器90)上的软件或固件代码以执行本文描述的功能。代码发生器66工作在踪迹文件的数据结构(例如表)上,所述数据结构描述用户定义工作负载参数和目标指令集架构,并且代码发生器66产生具有规定执行特征的抽象的综合代码。代码发射机68以适合执行环境的格式(例如在执行治理中联系的汇编代码、二进制代码或与模拟基础设施联系的依赖于位置的代码)从抽象的综合代码中创建可执行综合代码(即综合测试工作负载)。在一个实施例中,可执行代码的要求格式被硬编码在综合器79中。在另一实施例中,可执行代码的要求格式可经由用户界面200的可选择数据而选择。在一个实施例中,可执行代码是尺寸紧凑的以使代码可经由周期准确的模拟器执行,该模拟器不适于执行完整大小的工作负载。也可提供综合器79的其它适宜配置。在一个实施例中,综合器79对节点簇14的节点16的计算机架构数据具有访问权。因此,综合器79基于节点簇14的已知计算机架构数据产生面向特定微架构和指令集架构的综合测试工作负载。因此,综合测试工作负载可例如面向训练要求组的架构特性。
由综合器79生成的综合测试工作负载包括代码模块,所述代码模块可通过节点16上的选定工作负载容器模块执行。当综合测试工作负载被生成和选择以供执行时,综合测试工作负载作为图3的工作负载图像文件96被存储在控制服务器12的存储器90中。配置器22随后将工作负载图像文件96装载到每个节点16以供执行,或者节点16捡取工作负载图像文件96。在一个实施例中,通过选择Hadoop工作负载容器模块,综合测试工作负载在映射-还原的“映射”阶段运行。
在图示实施例中,综合测试工作负载被执行以训练计算系统10的硬件以进行测试和性能分析,如本文描述的那样。综合器79经由踪迹文件接收要求的工作负载行为作为输入并产生根据输入作出行为的综合测试工作负载。具体地说,要求的工作负载行为的统计特性是对综合器79的输入,例如拟被执行的指令数和指令类型的统计分布,如本文描述的那样。例如,装载的踪迹文件可包括用户定义参数,该用户定义参数请求包含1000条指令的程序循环,并且踪迹文件可指定其中30%的指令是整型指令、10%是具有特定分支结构的分支指令、40%是浮点指令等等。踪迹文件(或图23的域450)可规定循环拟被执行100次。综合器79随后产生包含请求的参数的程序循环作为综合测试工作负载。
在一个实施例中,所产生的综合测试工作负载用来对实际工作负载的行为作出仿真,例如已知应用或程序的特定专用代码或复杂代码。例如,一些专用代码包含用户不可访问或不可用的指令。类似地,一些复杂代码包含复杂和众多的指令。在一些实例中,基于这种专用或复杂代码创建工作负载可能是不合需的或困难的。因此,不是创建包含专用或复杂代码的所有指令的工作负载代码模块,而是在专用或复杂代码执行期间使用监视工具(与配置器22离线)来监视专用或复杂代码如何训练服务器硬件(节点16或其它服务器硬件)。在专门代码执行期间通过监视工具收集的统计数据被用来标识参数,所述参数表征专门或复杂代码的要求的执行特性。参数集合被提供在踪迹文件中。踪迹文件随后作为输入被装载至综合器79,并且综合器79基于统计输入和其它要求参数生成表现类似于专用代码的综合代码。因此,对云计算系统10上的代码的行为建模不需要该特定代码的复杂或专用指令。
在一个实施例中,综合器79结合批处理器80工作以执行通过综合器79从变化的踪迹文件产生的多个综合测试工作负载。在一个实施例中,综合测试工作负载基于表(例如图32的表150)的经修正用户定义工作负载参数而产生,所述经修正用户定义工作负载参数测试节点16的不同目标处理器,包括CPU和GPU两者。
图34示出通过图1和图3的控制服务器12的配置器22执行的示例性操作的流程图600,用以通过选择的工作负载配置云计算系统10。贯穿图34的描述参照图1和图3。在图示实施例中,配置器22基于经由用户界面200接收的多个用户选择根据图34的流程图600配置图1的节点簇14。在方框602,工作负载配置器78基于经由用户界面200接收的用户选择(例如输入418的选择)而选择工作负载以在云计算系统10的节点簇14上执行。在方框602从包括实际工作负载和综合测试工作负载的多个可用工作负载中选择工作负载。实际工作负载包括存储在可由控制服务器12访问的存储器(例如存储器90或存储器34)中的代码模块,如本文描述的那样。在方框604,配置器22配置云计算系统10的节点簇14以执行所选择的工作负载,以使所选择的工作负载的处理跨节点簇14分布,如本文描述的那样。
在一个实施例中,配置器22提供用户界面200,该用户界面200包括可选择的实际工作负载数据和可选择的综合测试工作负载数据,并且工作负载的选择基于对可选择的实际工作负载数据和可选择的综合测试工作负载数据中的至少一者的用户选择。示例性可选择的实际工作负载数据包括图22的可选择输入418,其对应于“实际工作负载”和图22的可选择输入424、428,并且示例性可选择的综合测试工作负载数据包括图22的可选择输入418,其对应于“综合工作负载”和图23的可选择输入434、436、441。在一个实施例中,工作负载配置器78基于可选择综合测试工作负载数据的用户选择而选择预生成的综合测试工作负载和一组用户定义工作负载参数中的至少一者。预生成的综合测试工作负载包括被存储在可由控制服务器12访问的存储器(例如存储器90或存储器34)中的代码模块(例如经由库输入434装载的)。综合器79作用以基于一组用户定义工作负载参数的选择而生成综合测试工作负载,所述用户定义工作负载参数解说地经由本文描述的踪迹文件提供。踪迹文件的用户定义工作负载参数标识综合测试工作负载的执行特性,如本文描述的那样。
如本文描述的那样,示例性用户定义工作负载参数包括下列至少一个:综合测试工作负载的指令数、综合测试工作负载的指令类型、与综合测试工作负载的至少一个指令的执行关联的延时以及综合测试工作负载的执行迭代的最大次数,并且指令类型包括整型指令、浮点指令和分支指令中的至少一者。在一个实施例中,综合测试工作负载通过节点簇14的执行作用以模拟与通过节点簇14执行实际工作负载相关联的执行特性,所述实际工作负载例如是复杂工作负载或专用工作负载,如本文描述的那样。
图35示出通过图1和图3的控制服务器12的配置器22执行的示例性操作的流程图610,用以通过组合测试工作负载来配置云计算系统10。贯穿图35的描述参照图1和图3。在图示实施例中,配置器22基于经由用户界面200接收的多个用户选择根据图35的流程图610配置图1的节点簇14。在方框612,工作负载配置器78的代码综合器79基于经由用户界面200提供的一组用户定义工作负载参数生成综合测试工作负载以在节点簇14上执行。这组用户定义的工作负载参数(例如通过踪迹文件提供)标识综合测试工作负载的执行特性,如本文描述的那样。在方框614,配置器22通过综合测试工作负载配置节点簇14以执行综合测试工作负载,以使综合测试工作负载的处理跨节点簇分布,如本文描述的那样。
在一个实施例中,综合测试工作负载的生成进一步基于计算机架构数据,所述计算机架构数据标识与节点簇14关联的指令集架构和微架构中的至少一者。如本文描述的,在一个实施例中,配置器22将计算机架构数据存储在存储器(例如存储器90)中,以使配置器22能标识节点簇14的每个节点16的指令集架构和微架构。因此,配置器22生成综合测试工作负载以使其被配置成基于被存储在存储器中的计算机架构数据通过节点簇14的节点16的特定计算机架构执行。在一个实施例中,代码综合器79基于与节点簇14的节点16关联的不同计算机架构生成多个综合测试工作负载,并且每个计算机架构包括指令集架构和微架构中的至少一者。在一个实施例中,配置器22提供用户界面200,该用户界面200包括可选择的综合测试工作负载数据,并且工作负载配置器78基于可选择的综合测试工作负载数据的用户选择而选择一组用户定义工作负载参数以生成综合测试工作负载。示例性可选择综合测试工作负载数据包括与“综合工作负载”对应的图22的可选择输入418以及图23的可选择输入434、436、441。在一个实施例中,这组用户定义的工作负载参数在被显示在用户界面(例如用户界面200或被显示在计算机20的显示器21上的用户界面)上的数据结构(例如图32的表150)中被标识,并且该数据结构包括多个可修正输入域,其每一个域标识至少一个用户定义工作负载参数,如本文中针对图32的表150描述的那样。在一个实施例中,配置器22基于经由用户界面200接收的用户选择(例如通过输入269-276选择引导时间参数)而选择节点簇14的至少一个节点16的经修正硬件配置。在该实施例中,配置器22用综合测试工作负载配置节点簇14以在具有经修正的硬件配置的节点簇14上执行综合测试工作负载,并且经修正的硬件配置导致至少一个节点16的减少计算能力和减少存储器容量中的至少一者,如本文描述的那样。
再次参见图23,之前保存的工作负载可经由设置库标签416从本地存储器(例如图3的存储器90)装载。经由设置库标签416装载的工作负载可包括实际工作负载、综合测试工作负载、定制脚本或适于通过所选择的工作负载容器模块执行的任意其它工作负载。所装载的工作负载配置可基于对用户界面200的模块210的用户输入而被修正。当前工作负载配置也可经由设置库标签416被保存至存储器90。
在图示实施例中,云套件工作负载集合也可经由标签417被装载和配置。云套件是工作负载的集合,其包括被用来表征云系统的典型云工作负载。
参见图25,选择批处理模块212。基于对模块212的用户输入,批处理器80(图3)作用以发起多个工作负载的批处理。批处理器80也作用以发起对具有多个不同配置的一个或多个工作负载的执行,所述不同配置例如为本文所述的不同网络配置、不同工作负载容器配置、不同组合工作负载配置和/或不同节点配置(例如引导时间配置等)。基于用户输入,批处理器80发起在节点簇14上以某一顺序对每个工作负载和/或配置的执行,以使对所有工作负载不需要手动干预而完成运行。此外,批处理器80可基于经由用户界面200的模块212接收的用户设置来配置一个或多个工作负载并可运行多次。批处理器80作用以成批地执行实际工作负载和/或综合测试工作负载。在图示实施例中,从工作负载的批处理中监视和收集性能数据以实现自动系统调节,例如,如本文中参照图47和图48描述的那样。
对成批工作负载和/或配置的执行次数是经由重复计数域480规定的。基于对域480的用户输入,批处理器80对一个或多个工作负载执行规定的迭代次数。批序列表482包括显示数据,该显示数据列出拟由节点簇14执行的成批工作。成批工作包括适于执行规定次数的一个或多个工作负载(例如基于对域480的输入而规定的)。在一个实施例中,成批工作包括一个或多个云系统配置,其适于通过一个或多个工作负载执行规定的次数。尽管表482中仅列出一个成批工作,然而可将多个成批工作添加至表482。批处理器80基于与列出的成批工作对应的对输入483的用户选择而选择列出的成批工作以执行。在一个实施例中,所选择的成批工作以它们在表482中列出的顺序按序执行。成批工作解说地以JSON文件格式出现,尽管也可使用其它适宜的格式。表482中列出的成批工作分别基于对输入484、486、488的用户选择被编辑、添加和删除。批序列的顺序可基于对输入490、492的用户选择而调整以将选定的成批工作移动至表482中显示的序列中的不同位置。与成批工作的执行关联的批序列和其它设置可经由可选择输入494从存储器(例如存储器34或存储器90)被装载,并且当前配置的批序列经由可选择输入496被保存至存储器(例如存储器34或存储器90)。输入484-496解说地是可选择按钮。
参见图26,监视模块214被选择。基于对模块214的用户输入,数据监视配置器82(图3)作用以配置一个或多个数据监视工具,所述数据监视工具用于在节点簇14上执行工作负载期间监视和采集性能数据。数据监视配置器82作用以配置监视工具,所述监视工具监视与节点16的性能、工作负载、工作负载容器和/或网络18关联的数据。在一个实施例中,通过数据监视配置器82配置的监视工具包括市售的监视工具和由用户提供的定制监视工具两者。监视工具从云计算系统10和其它可用节点16中的多个源采集数据。例如,监视工具包括内核模式测量代理46和用户模式测量代理50,它们在每个节点16(图2)采集数据。控制服务器12也包括一个或多个监视工具,所述监视工具作用以监视网络和节点簇14上的计算性能。在一个实施例中,基于用户输入(例如对图27的域530、532的输入),数据监视配置器82规定监视工具监视来自节点16的数据的采样率。数据监视配置器82作用以配置和发起多个数据监视工具的操作,包括在每个节点16上提供的Apache Hadoop监视工具(标签500)、在控制服务器12上提供的Ganglia工具(标签502)、在每个节点16上提供的系统侦听工具(标签504)以及在一个或多个节点16上提供的虚拟存储器统计和I/O统计监视工具(标签506)。
当选择Hadoop工作负载容器模块以在节点16上执行时,Hadoop监视工具监视节点16在工作负载容器层面的性能。Hadoop监视工具通过配置器22被装载到具有Hadoop工作负载容器模块的每个节点16上,以基于图26标识的监视配置监视与Hadoop工作负载容器模块的性能关联的数据。如图26所示,与Hadoop监视工具关联的各种监视参数基于对若干可修正域和下拉菜单的用户输入通过数据监视配置器82被配置。可修正监视参数包括默认日志级别(基于对下拉菜单508的输入而被选择)、采集数据的最大文件大小(基于对域510的输入而被选择)、采集数据的全部文件的总大小(基于对域512的输入而被选择)、Hadoop工作负载容器的工作跟踪工具的日志级别(基于对下拉菜单514的输入而被选择)、Hadoop工作负载容器的任务跟踪工具的日志级别(基于对下拉菜单516的输入而被选择)以及Hadoop工作负载容器的FSNamesystem工具的日志级别(基于对下拉菜单518的输入而被选择)。日志级别标识经由Hadoop监视工具采集的数据的类型,例如信息(INFO)、警告、出错等。Hadoop工作负载容器的工作跟踪器、任务跟踪器和FSNamesystem工具包括由数据监视配置器82跟踪的多个过程和数据,包括例如在主节点16的工作负载的发起和结束、与文件系统55关联的元数据(图2)以及在工作者节点16的映射和还原任务的发起。其它适宜的数据也可通过Hadoop监视工具采集。
参见图27,Ganglia监视工具也作用以基于由数据监视配置器82实现的监视配置而监视和采集云计算系统10的性能数据。“Ganglia”是一种已知的系统监视工具,它提供系统性能的远程实时观察(例如经由控制服务器12)以及表示历史统计的图和表。在图示实施例中,Ganglia监视工具基于通过数据监视配置器82提供的配置数据在控制服务器12上被执行。通过Ganglia监视的示例性数据包括在工作负载执行期间节点处理器40(CPU)的处理负载平均、在工作负载执行期间节点处理器40和网络18的利用(例如停顿或不活动时间、处理花费的时间的百分比、等待花费的时间的百分比)以及其它适宜的数据。Ganglia监视工具基于对可选择输入520的用户选择而通过数据监视配置器82被启用和禁用,并基于可选择输入522的用户选择通过数据监视配置器82选择单播或多播通信模式。与Ganglia关联的其它可配置监视参数包括采集数据所产生的图的数据刷新间隔(基于对域524的输入而被选择)、清理阈值(基于对域526的输入而被选择)以及发送元数据的间隔(基于对域528的输入而被选择)。输入到域524、526和528内的数据解说地以秒为单位。数据监视配置器82作用以在工作负载执行期间基于被输入到相应域530、532中的值(解说地以秒为单位)调整采集(即采样)间隔和发送间隔以采集数据,所述数据关联于节点处理器40(CPU)、节点16上的处理负载(例如与正被执行的工作负载关联)、节点存储器42的使用率、通信网络18上的节点16的网络性能以及每个节点16的硬盘使用率。
系统侦听工具是包括系统侦听监视软件的内核模式测量代理46(图2),该系统侦听监视软件作用以提取、过滤和概括与云计算系统10的节点16关联的数据。在一个实施例中,系统侦听工具在每个节点16上被执行。系统侦听是通过基于Linux的操作系统来实现的。系统侦听允许将定制的监视脚本装载到具有定制的监视配置的每个节点16上,其包括例如采样率和柱状图的生成和显示。如图28所示,如果选择了“脚本”标签,则基于对输入536的用户选择通过数据监视配置器82启用或禁用系统侦听。基于对相应输入(按钮)540的用户选择,通过数据监视配置器82将系统侦听脚本文件下载至控制服务器12,将其添加以显示在表538中,或者从表538的显示中将其移除/删除。基于对相应输入539的用户选择,表538包括显示数据,其表征可供选择的脚本文件。一旦通过配置器22部署云配置,数据监视配置器82将表538的选定脚本文件装载到每个节点16上。基于经由标签534对系统侦听监视工具的用户输入和选择,可获得其它适宜的配置选项,包括例如盘I/O、网络I/O的配置和诊断。
参见图29,I/O时间标签506提供用户访问以配置额外的监视工具,包括虚拟存储器统计(VMStat)和输入/输出统计(IOStat),它们被装载到一个或多个节点16上。VMstat采集与通过操作系统控制的系统存储器和块I/O的可用性和利用、处理性能、中端、分页等关联的数据。例如,VMStat采集与系统存储器的利用关联的数据,例如系统存储器和/或存储器控制器正忙着执行读/写操作或正在等待的时间量或时间百分比。例如,IOStat采集与通过操作系统控制的存储I/O的统计(例如利用、可用性等)关联的数据。例如,IOStat采集与相应节点16的处理器40的处理核正忙着执行指令或等待执行指令的时间百分比关联的数据。VMStat和IOStat基于对各输入546、548的相应用户选择而通过数据监视配置器82被启用/禁用,并且基于被输入到域550、552的值(解说地以秒为单位)通过数据监视配置器82选择采样率(即刷新间隔)。基于对相应“启用”输入546、548的用户选择和被输入到标签506的域550、552的值,数据监视配置器82配置VMStat和IOStat监视工具,并且一旦用户选择相应的“启用”输入546、548,配置器22将工具装载到每个节点16。
用数据监视配置器82配置的监视工具协作以为云计算系统10提供动态仪表(dynamic instrumentation)以监视系统性能。基于经由配置的监视工具采集的数据,配置器22作用以例如诊断系统瓶颈并确定最佳系统配置(例如硬件和网络配置),如本文描述的那样。此外,数据监视配置器82通过在用户界面200上显示监视模块214而提供常见用户界面,以接收用来配置每个监视工具的用户输入并显示来自每个工具的监视数据。
参见图30,控制和状态模块216被选择,其包括可选择数据。基于对模块216的用户输入,配置器22作用以通过产生被装载到每个节点16上的多个配置文件28对节点簇14启动(例如部署)系统配置。配置器22基于可选择输入560的用户输入来发起对当前系统配置(即通过模块202-216当前标识的系统配置)的部署。配置器22的批处理器80基于对可选择输入562的用户输入发起对一个或多个工作负载和/或配置的批处理,即图25的表482中标识的批序列。配置器22的工作负载配置器78基于对可选择输入564的用户输入而发起对定制工作负载的执行,例如图22的域430中标识的定制工作负载。一旦基于对输入560、562或564的用户输入对系统配置作出部署,则配置器22自动地通过所选择的节点和网络设置、工作网络、工作网络容器模块、数据监视工具等配置每个选择的节点16,并且指令节点簇14以基于系统配置信息开始执行所选择的工作负载和/或成批工作。配置器22基于相应可选择输入566、568的用户选择在完成前终止或暂停工作负载执行。配置器22基于对可选择输入570的用户选择而重新开始当前在节点簇14上执行的工作负载。配置器22基于对可选择输入572的用户选择而跳过当前在节点簇14上执行的工作负载,以使例如节点16继续执行批的下一工作负载。基于可选择输入576的选择,配置器22的数据监视配置器82实现经由模块214标识的数据监视工具、设置和配置。在一个实施例中,在节点16上实现数据监视设置包括生成被提供给每个节点16的相应配置文件28(图3)。基于对输入574的用户输入,配置器22在工作负载执行完毕后(即从节点簇14接收到工作负载执行的结果和采集了所有请求的数据之后)终止或切断簇节点14。输入560-572以及输入582-595解说地是可选择按钮。
在工作负载执行期间经由显示578、580来提供系统状态。显示578、580示出与节点簇14的每个活动节点16关联的工作负载执行的进展和状态信息。系统状态的显示基于按钮595的用户选择而被启用或禁用。
在图示实施例中,节点配置器72、网络配置器74、工作负载容器配置器76、工作负载配置器78、批处理器80和数据监视配置器82(图3)在部署发起之后各自自动地经由输入560、562或564产生至少一个相应的配置文件28以实现它们各自的配置功能。配置文件28包含相应的配置数据和指令以配置节点簇14的每个节点16,如本文描述的那样。在一个实施例中,在文件28生成之后,配置器22自动地将每个配置文件28装载到节点簇14的每个节点16上。替代地,生成单个配置文件28,其包含来自配置器22的每个组件70-84的配置数据和指令,并且配置器22在配置文件28生成之后自动地将单个配置文件28装载到节点簇14的每个节点16上。一旦通过输入560、562或564启动配置部署,与相应操作系统、工作负载容器模块和工作负载对应的每个图像文件92、94、96也被装载到每个节点上。替代地,节点16可在通过配置器22生成文件28和图像文件92、94、96之后检取或请求配置文件28和/或图像文件92、94、96。
被部署至节点16的配置文件28以及经由图7的输入240保存的系统配置文件包括所有配置数据和信息,所述配置数据和信息基于模块202-216的用户输入和默认设置而被选择和加载。例如,通过节点配置器72生成的配置文件28包括对节点簇14分配和/或使用的节点16的数目以及每个节点16的硬件需求和引导时间配置,如本文描述的那样。硬件需求例如包括RAM大小、CPU核的数目以及可用的盘空间。通过网络配置器74生成的配置文件28例如包括施加至所有节点16的全局默认设置;包括哪些节点16属于给定组的节点簇14的组设置;节点组内的网络流量的设置和节点簇14的其它节点组的网络流量的设置;任意节点16之间的其它节点组的网路流量的设置;包括任意节点16之间的网络流量的定制设置的特定节点设置;包括延迟、带宽、腐败和丢失的分组率、腐败和丢失的分组关联性和分布以及重定序分组率的网络参数,如本文针对图11-17描述的那样;以及其它适宜的网络参数和网络拓扑配置数据。通过工作负载容器配置器76生成的配置文件28包括例如用于运行工作负载的主要工作负载容器软件的配置设置。通过工作负载配置器78生成的配置文件28包括例如拟运行在节点16上的所选择的预定义或综合工作负载的配置设置。配置设置可包括综合测试工作负载配置数据,其例如包括综合测试工作负载图像文件、最大指令计数、最大迭代计数以及I/O操作之比。
一旦经由输入560(或输入562、564)发起布置,配置器22自动地执行若干操作。根据一个图示实施例,配置器22分配和启动要求的节点16以选择节点簇14。配置器22随后将控制服务器12的地址(例如IP地址)传递至每个节点16并将标识符和/或地址分配和传递至每个节点16。在一个实施例中,每个节点16被配置成在接收到控制服务器12地址之后自动地联系控制服务器12并请求一个或多个配置文件28,所述配置文件28描述工作和其它配置信息。每个节点16使用任何适宜机制与控制服务器12通信,例如包括特定RMI机制(比如基于web的接口)以与控制服务器12直接通信,HTTP请求经由Apache HTTP或Tomacat服务器或远程壳机制与控制服务器12交互。
在一个实施例中,配置器22等待直到从节点簇14的每个节点16接收到请求为止。在一个实施例中,如果节点16未能启动,即基于没有来自节点16的请求或应答,配置器22尝试重启节点16。如果节点16继续未能启动,配置器22标识和请求一开始不包括在节点簇14中的另一可用节点16以取代失效节点16。替代节点16包括与失效节点16相同或相似的硬件规范和处理能力。在一个实施例中,配置器22贯穿工作节点执行地继续监视节点16,并重启停止响应的节点16(和工作负载)。配置器22可基于失效的数据监视或其它失效的通信而检测在工作负载执行期间不作出响应的节点16。
一旦配置器22从节点簇14的每个节点16接收到请求,配置器22确定每个节点16准备继续。在一个实施例中,配置器22随后向每个节点16提供要求的数据,所述数据包括配置文件28、节点簇14中的其它节点16的地址和ID以及图像文件92、94、96。一旦从控制服务器12接收到要求的数据,则节点簇14中的每个节点16的角色被确定。在一个实施例中,通过控制服务器12(例如自动地或基于用户输入地)作出角色确定并将其传达至节点16。替代地,使用分布式仲裁机制通过节点簇14作出角色确定。在一个实施例中,角色确定依赖于工作负载。例如,对于通过Hadoop工作负载容器运作的节点簇14,第一节点16可被指定为主节点16(“名称节点”)而其余节点16可被指定为从属/工作者节点16(“数据节点”)。在一个实施例中,节点16的角色确定进一步依赖于节点16的硬件性质。例如,具有较慢节点处理器40的一组节点16可被指定为用于存储数据的数据库服务器,而具有较快节点处理器40的另一组节点16可被指定为用于处理工作负载的计算节点。在一个实施例中,角色确定基于经由配置文件28提供的用户输入。例如,用户可委派第一节点16以执行第一任务,委派第二节点16执行第二任务,委派第三节点16执行第三任务,以此类推。
每个节点16基于经由配置文件28接收的网络配置数据而继续配置其虚拟网络设置。这例如包括使用网络延迟和/或分组损失仿真器,如本文描述的那样。每个节点16进一步继续以安装和/或配置用户请求软件应用,其包括经由工作负载容器图像文件94接收的工作负载容器代码模块。在一个实施例中,多个工作负载容器模块(例如多个版本/构造)被预安装在每个节点16,并基于配置文件28创建至所选择的工作负载容器模块的位置的软链接。如果在控制服务器12生成和选择综合测试工作负载,则每个节点16继续基于工作负载图像文件96激活合成测试工作负载。每个节点16进一步继续以基于配置信息运行诊断和监视工具(例如Ganglia、系统侦听、VMStat、IOStat等)。最终,每个节点16继续以开始所选择工作负载的执行。
在图示实施例中,在部署启动之后通过配置器22和节点16执行的每个步骤是跨节点簇14的节点16同步的。在一个实施例中,控制服务器12的配置器22协调节点16,尽管节点簇14的一个或多个节点16可替代地管理同步。在一个实施例中,用于协调节点操作的同步机制使得每个节点16以规则基础将状态反馈提供给控制服务器12。因此,未能在规定时间内作出报告的节点16被假设为已崩溃并通过配置器22重新启动。配置器22也可例如经由图30的显示578、580将状态提供给用户以指示工作的进展。
一旦工作完成,数据汇集器84(图3)作用以从每个节点16采集数据。具体地说,通过每个节点16的监视工具采集的数据(例如工作输出、性能统计、应用日志等,见模块214)由控制服务器12(例如图3的存储器90)访问。在一个实施例中,数据汇集器84从每个节点16检取数据。在另一实施例中,每个节点16将数据推向数据汇集器84。在图示实施例中,数据以来自每个节点16的日志文件98的形式被传达至控制服务器12,如图31所示(另见图3)。每个日志文件98包括由每个节点16的多个监视工具中的一个或多个采集的数据。如本文描述的,数据汇集器84作用以操控和分析从日志文件98采集的数据并以图、柱状图、表等形式将汇集数据显示给用户(例如经由图1的显示器21)。数据汇集器84也汇集来自控制服务器12上提供的监视工具的数据,所述监视工具例如为图27中描述的Ganglia监视工具。
再次参见图30,数据汇集器84作用以基于对模块216的响应输入582-594的用户选择从每个节点16采集和汇集性能数据并生成数据的日志、统计、图和其它表征。数据汇集器84基于对输入586的用户选择而采集原始统计数据,该原始统计数据被提供在日志文件98中并通过其它监视工具提供。数据汇集器84基于对输入588的用户选择将所有日志文件98从节点16下载至本地文件系统,在那里日志文件98可被进一步分析或被存储以供历史趋势分析。数据汇集器84基于对输入590的用户输入仅检取与系统侦听监视工具关联的日志文件。数据汇集器84基于对输入582的用户选择而将由节点16提供的一个或多个日志文件98显示在节点16上。数据汇集器84基于对输入584的用户选择而将统计数据以图和表的形式显示在用户界面200上。统计数据包括性能数据,该性能数据例如与网络18和通过节点16的网络通信的性能、节点16的各硬件组件的性能、工作负载执行以及整个节点簇14的性能关联。数据汇集器84基于对输入592的用户选择而生成一个或多个图以显示在用户界面上,所述图示出从节点16和从其它监视工具采集的各种数据。
在一个实施例中,数据汇集器84基于用配置在监视模块214中的监视工具监视而选择的数据选择数据而显示。在另一实施例中,数据汇集器84基于对控制和状态模块216的用户输入而选择所汇集和显示的数据。例如,用户选择一旦选择相应输入582、584和592则显示哪些日志文件98、统计数据和图。在一个实施例中,数据汇集器84基于对用户界面200的用户输入而选择在图中显示哪些数据并选择如何显示数据(例如线图、条形图、柱状图等)。基于输入592的选择所显示的示例性图形数据包括处理器速度相对于增加的网络延迟、工作负载执行速度相对于处理器核数、工作负载执行速度相对于每个核的处理线程数、通过特定节点16随时间发送或接收的数据分组数、随时间通信的某个大小的数据分组的数目、网络堆栈中数据分组所花费的时间等等。
配置云计算系统的节点的引导时间参数
图36示出通过图1和图3的配置器22执行的示例性操作的流程图620,其用于配置云计算系统10的引导时间配置。贯穿图36的描述参照图1和图3。在图示实施例中,配置器22基于经由用户界面200接收的多个用户选择根据图36的流程图620配置图1的节点簇14。在方框622,配置器22提供用户界面200,该用户界面200包括可选择引导时间配置数据。示例性可选择引导时间配置数据包括图10的显示屏的可选择输入269、271和域268、270、272、274、276。在方框264,配置器22的节点配置器72基于对可选择引导时间配置数据的至少一个用户选择而选择云计算系统10的节点簇14的至少一个节点16的引导时间配置。
在方框626,配置器22通过所选择的引导时间配置而配置节点簇14的至少一个节点16,以修正至少一个节点16的至少一个引导时间参数。例如,至少一个引导时间参数包括在工作负载执行期间被启用的至少一个节点16的处理核的数目(基于对域268的输入)和/或可由至少一个节点16的操作系统44(图2)访问的系统存储器的量(基于对域270、272的输入)。此外,修正的引导时间参数可基于输入域274的指令数量和对相应定制输入271的选择而标识拟由至少一个节点16执行的工作负载的多个指令的子集。因此,工作负载基于对至少一个节点16的至少一个引导时间参数的修正而通过节点簇14执行。在一个实施例中,配置器22发起工作负载的执行,并且节点簇14基于对至少一个引导时间参数的修正以降低的计算能力和减少的存储容量中的至少一者来执行工作负载。具体地说,通过域268和相应输入271的选择对处理核的数目的修正用来降低计算能力,而通过域270、272和相应输入271的选择对系统存储器数目的修正则用来减少存储器容量。
在一个实施例中,节点配置器72基于可选择引导时间配置数据的至少一个用户选择而选择节点簇14的第一节点16的第一引导时间配置和节点簇14的第二节点16的第二引导时间配置。在该实施例中,第一引导时间配置包括对第一节点16的至少一个引导时间参数的第一修正,而第二引导时间配置包括对第二节点16的至少一个引导时间参数的第二修正,并且该第一修正不同于第二修正。在一个例子中,第一引导时间配置包括启用第一节点16的两个处理核,而第二引导时间配置包括启用第二节点16的三个处理核。可如前所述地提供对每个节点16的引导时间参数的其它适宜修正。
图37示出由图1的节点簇14的节点16执行的示例性操作的流程图630,其用于节点16的引导时间配置。贯穿图37的描述参照图1和图3。在方框632,节点簇14的节点16基于由云配置服务器12提供的引导时间配置调整请求而修正节点16的至少一个引导时间参数。在图示实施例中,基于经由图10的输入270、271和域268、270、272、274、276作出的用户选择,引导时间配置调整请求在配置文件28(图3)中被提供并标识对节点16的一个或多个引导时间参数的请求修正。在图示实施例中,节点16具有在修正至少一个引导时间参数之前的最初引导时间配置以及在修正至少一个引导时间参数之后的经修正的引导时间配置。经修正的引导时间配置提供节点16的降低的计算能力和减少的存储器容量中的至少一者,如本文描述的那样。
在方框634,在通过节点16重引导节点16之后,一旦在节点16的重引导之后通过节点16确定至少一个引导时间参数已根据引导时间配置调整请求被修正,则节点16执行工作负载的至少一部分。在一个实施例中,节点16从云配置服务器12获得工作负载的至少一部分并基于对至少一个引导时间参数的修正而执行工作负载。在一个实施例中,通过节点16作出的确定基于在对至少一个引导时间参数作修正之后且在重引导节点16之前由节点16设置的标记(例如一个或多个位)。置位标记向节点16指示在节点16重启动之后至少一个引导时间参数已被修正并因此节点16未尝试修正至少一个引导时间参数和再次重引导。在一个实施例中,所述确定基于节点16的引导时间配置和通过引导时间配置调整请求标识的请求引导时间配置的比较。例如,节点16将节点16的当前引导时间参数与通过引导时间配置调整请求标识的请求引导时间参数进行比较,并且如果这些参数是相同的,则不尝试修正至少一个引导时间参数和再次重引导。在一个实施例中,当节点16接收含新引导时间配置调整请求的新配置文件时,节点16根据新引导时间配置调整请求在实现对引导时间参数作修正之前对标记清零。
图38示出通过云计算系统10执行的示例性详细操作的流程图650,其用于配置节点簇14的一个或多个节点16的引导时间配置。贯穿图38的描述参照图1和图3。在图示实施例中,配置器22执行图38的方框652-656,并且每个配置的节点16执行图38的方框658-664。在方框652,配置器22基于经由用户界面200(图10)输入的用户定义引导时间参数创建对应节点16的一个或多个引导时间配置文件28(图3),如本文描述的那样。在一个实施例中,引导时间配置文件28是对于节点16的一个或多个配置文件的补丁或者是任务特定的文件/数据格式。在方框654,配置器22启动节点簇14(例如一旦对图30的输入560或输入562、564作用户选择,如本文所述那样)。在方框656,配置器22将引导时间配置文件分配至节点簇14的适宜节点16。在一个实施例中,每个节点16接收引导时间配置文件,并且每个文件可标识相应节点16的唯一引导时间参数。在一个实施例中,配置文件28例如经由安全壳(SSH)文件传输、经由FTP客户机、经由Amazon AWS中的用户数据串或经由另一适宜的文件传输机制被推向节点。在另一实施例中,节点16各自查询(例如经由HTTP请求)控制服务器12或主节点16以获得引导时间配置信息。在方框658,节点16施加在所接收的引导时间配置文件28中规定的要求引导时间参数变化。在一个例子中,节点16将补丁施加至节点16的引导文件,或者节点16使用实用程序(utility)以基于所接收的引导时间配置文件28中规定的引导时间参数而产生节点16的一组新的引导文件。在一个实施例中,在方框658施加要求的引导时间改变期间或之中,节点16设置一状态标记,该状态标记指示引导时间配置已更新,如本文描述的那样。在方框660,节点16强制使重引导在施加引导时间配置改变之后。一旦重引导,节点16在方框662确定节点16的重引导时间配置已通过所接收的引导时间配置文件28中规定的引导时间参数改变而被更新。在一个实施例中,节点16在方框662基于在方框658设定的状态标记或基于节点16的当前引导时间配置与引导时间配置文件28的比较确定引导时间配置被更新,如本文描述的那样。因此,节点16降低了一次以上地施加引导时间配置改变的可能性。在方框664,节点16继续执行其它任务,包括执行从控制服务器12接收的工作负载或工作负载的一部分。
修正和/或模拟网络配置
图39示出通过图1和图3的配置器22执行的示例性操作的流程图700,其用于修正云计算系统10的分配节点簇14的网络配置。贯穿图39的描述参照图1和图3以及图11-17。在方框702,网络配置器74基于经由用户界面200接收的用户选择而修正云计算系统10的节点簇14的至少一个节点16的网络配置。在方框702修正至少一个节点16的网络配置包括在通信网络18(图1)上修正至少一个节点16的性能。网络性能是通过修正诸如分组通信率、丢失或腐败分组、重定序分布等网络参数而被修正的,如本文描述的那样。在图示实施例中,网络配置器74通过基于经由用户界面200的模块280提供的用户选择和输入生成网络配置文件28(图3)(如本文针对图11-17描述的那样)并通过将该网络配置文件28提供至节点16(或取文件28的节点16)而修正节点16的网络配置。节点16随后对访问的网络配置文件28中规定的节点16的网络配置作出改变。在图示实施例中,至少一个节点16具有在修正前的最初网络配置以及在修正后的经修正网络配置。在一个实施例中,经修正的网络配置在执行所选择的工作负载期间降低通信网络18上的至少一个节点16的网络性能。替代地,经修正的网络配置提高至少一个节点16的网络性能,例如通过减小经由图11的域302中规定的通信延迟值。
在一个实施例中,网络配置器74通过改变至少一个节点16的至少一个网络参数而修正至少一个节点16的网络配置以限制通信网络18上的至少一个节点16在工作负载执行期间的网络性能。在一个实施例中,改变的至少一个网络参数包括分组通信延迟、分组损失率、分组重复率、分组腐败率、分组重定序率以及分组通信速率中的至少一者,这些网络参数可通过用户经由标签282-294选择,如本文描述的那样。因此,网络配置器74通过生成和提供节点16对配置文件28的访问而限制至少一个节点16的网络性能,所述配置文件28标识对网络参数的修正(例如节点16之间增加的通信延迟、增加的分组损失率或腐败率等等)。
在图示实施例中,配置器22提供用户界面200,该用户界面200提供可选择的网络配置数据,并且网络配置器74基于可选择网络配置数据的至少一个用户选择来修正至少一个节点16的网络配置,如本文描述的那样。示例性可选择网络配置数据包括图11的输入298-301和相应域302-312、图12的输入313、314和相应域315、316、图13的输入317、318和相应域319、320、图14的输入321和相应域322、图15的输入323、324和相应域325、326、图16的输入327-330、335-338和相应域331-334以及图17的输入340和相应域342。在一个实施例中,网络配置器74基于可选择网络配置数据的至少一个用户选择通过改变(即经由网络配置文件28)节点簇14的第一节点16的第一网络参数而修正网络性能以限制通信网络18上的第一节点16在工作负载执行期间的网络性能,并通过改变节点簇14的第二节点16的第二网络参数以限制通信网络18上的第二节点16在工作负载执行期间的网络性能。在一个实施例中,第一网络参数不同于第二网络参数。因此,网络配置器74作用以修正节点簇14的不同节点16的不同网络参数以取得节点簇14在工作负载执行期间的要求网络特性。
在图示实施例中,配置器22进一步作用以选择云计算系统0的节点簇14,该节点簇14具有与仿真节点簇的网络配置基本匹配的网络配置,如本文针对图40-42描述的那样。如本文所述,仿真节点簇包括具有已知网络配置的任何组网络节点,所述网络配置通过由控制服务器12选择的节点簇14仿真。仿真节点簇中的每个节点包括一个或多个处理设备和可由处理设备访问的存储器。在一个实施例中,仿真节点簇不包括可由配置器22选择的可用节点16。例如,仿真节点簇包括与容纳在一个或多个数据中心内并可由配置器22访问的可用节点16分离的节点,例如由用户提供的节点。替代地,仿真节点簇可包括一组可用节点16。仿真节点簇的网络拓扑和网络性能特征是使用一个或多个网络性能测试而获得的,如下文描述的那样。参照图40,通过图1和图3的配置器22执行的示例性操作的流程图710被示出以选择网络特性与模拟节点簇的网络特性基本匹配的节点簇14。贯穿图40的描述参照图1和图3。在图示实施例中,配置器22基于经由用户界面200接收的用户选择根据图40的流程图710选择和配置图1的节点簇14,如本文描述的那样。在方框712,节点配置器72将仿真节点簇的通信网络配置与多个可用节点16的实际通信网络配置作比较。在方框714,节点配置器72基于方框712的比较从与通信网络18耦合的多个可用节点16选择云计算系统10的节点簇14。所选择的节点簇14包括多个可用节点16的子集。在方框716,节点配置器72配置所选择的节点簇14以执行工作负载,以使节点簇14的每个节点16作用以与节点簇14的其它节点16共享工作负载处理,如本文描述的那样。在一个实施例中,方框712-716基于图30的模块216的用户输入在部署云配置时发起方框712-716,如本文描述的那样。
在图示实施例中,仿真节点簇的通信网络配置和多个可用节点16的实际通信网络配置各自包括与相应节点关联的通信网络特性。节点配置器72基于仿真节点簇的通信网络特性和多个可用节点16的通信网络特性之间的相似性选择节点簇14。示例性通信网络特性包括网络拓扑和网络参数。示例性网络参数包括节点间的通信速率和延时、节点间的网络带宽、分组出错率。网络拓扑包括节点的物理和逻辑连接性、节点簇中的哪些节点和节点组彼此物理位置接近或彼此远离的标识、节点之间的连接类型(例如光纤链路、卫星连接等)以及其它适宜特性。分组出错率包括丢失或损失的分组、腐败的分组、重定序的分组、重复的分组等。在一个实施例中,节点配置器72确定模拟节点簇的通信网络特性的优先级并基于确定优先级的通信网络特性选择节点簇14,如针对图41描述的那样。
在图示实施例中,节点配置器72在可用节点16上发起网络性能测试以标识可用节点16的实际通信网络配置。可使用任何适宜的网络性能测试。例如,节点配置器72可将请求发送至每个可用节点16以执行计算机网络管理实用程序(例如分组互联网Groper(Ping))以测试和采集与可用节点16之间的网络特性有关的数据。基于由每个节点16提供的Ping测试的结果,节点配置器72确定可用节点16的实际通信网络配置。在一个实施例中,Ping与其它网络性能测试结合实用以获得实际通信网络配置。配置器22汇集从节点16接收的网络性能测试结果以创建网络标识符数据文件或对象(例如参见图42的数据文件750),所述网络标识符数据文件或对象标识可用节点16的实际通信网络配置。在一个实施例中,配置器22基于对用户界面200的用户输入发起网络性能测试并汇集结果。例如,图30的按钮586的用户选择或另一适宜的输入可使得配置器22发起测试并汇集结果。
在图示实施例中,节点配置器72也访问一个或多个数据文件(例如图42的数据文件750),其标识仿真节点簇的通信网络配置。在一个实施例中,数据文件通过在仿真节点簇上执行一个或多个网络性能测试(例如Ping测试等)与控制服务器12离线地获得。在一个实施例中,配置器22将与仿真节点簇关联的数据文件装载到可访问存储器(例如图3的存储器90)中。例如,配置器22可经由用户界面200(例如经由对图7的表226的输入)基于用户标识数据文件的位置而装载数据文件。因此,配置器22通过将与可用节点16关联的生成数据文件中标识的通信网络特性和与仿真节点簇关联的访问数据文件中标识的通信网络特性作比较而执行图40的方框712处的比较。
图42中示出一示例性数据文件750。数据文件750标识任何适宜联网节点的网络配置,例如可由控制服务器12或仿真节点簇的节点访问的可用节点16。如图所示,数据文件750标识解说地包括组A、B……M的若干组节点。每组节点A、B、M包括物理上彼此靠近的节点,例如数据中心的同一物理机架上的节点。行6-11标识通过节点组A与网络通信关联的网络参数,行15-22标识通过节点组B与网络通信关联的网络参数,而行27-34标识通过节点组M与网络通信关联的网络参数。例如,行6和行7标识与节点组A之间的通信关联的延时、带宽和出错率。行8和行9标识与组A节点和组B节点之间的通信关联的延时、带宽和出错率。类似地,行10和行11标识与组A节点和组M节点之间的通信关联的延时、带宽和出错率。与通过组B和组M的节点通信关联的网络参数类似地在数据文件750中被标识。数据文件750可标识额外的网络配置数据,例如网络拓扑数据和其它网络参数,如本文描述的那样。
参见图41,其示出一流程图720,该流程图720的示例性详细操作由一个或多个计算设备执行,所述计算设备包括图1和图3的配置器22,该流程图720用于选择具有基本匹配仿真节点簇的网络特性的网络特性的节点簇14。贯穿图41的描述参照图1和图3。在方框722,从仿真节点簇的每个节点请求网络配置。例如,在每个节点上发起网络性能测试,并通过计算设备接收测试结果,如本文描述的那样。在方框724,基于从仿真节点簇的节点接收的网络配置数据创建网络配置数据文件(例如数据文件750),所述网络配置数据源自性能测试。如本文描述的那样,方框722和724可通过与云计算系统10分离的计算系统(例如图1的计算机20)离线地执行。
在方框726,配置器22从数据中心的每个可用节点16或从一组可用节点16请求网络配置。例如,配置器22发起可用节点16上的网络配置,并且配置器22汇集源自网络性能测试的配置数据,如本文描述的那样。在方框728,配置器22基于从可用节点16接收的网络配置数据创建网络配置数据文件(例如数据文件750)。因此,配置器22对两个配置数据文件具有访问权,包括描述仿真节点簇的数据文件和描述可用节点16的数据文件。配置器22基于两个数据文件中标识的网络性质的比较从可用节点16选择适宜节点16,所述适宜节点16具有与仿真节点簇相同的网络特性,如方框730中表示的那样。在一个实施例中,配置器22进一步基于仿真节点簇和可用节点16的节点硬件特性(例如处理能力、存储器容量等)的比较在方框730选择适宜节点。
在方框732,配置器22基于在与仿真节点簇关联的数据文件中标识的要求网络配置参数而调整所选择的节点16。例如,所选择节点16的网络特性可能不精确地匹配于仿真节点簇的网络特性,并且可能需要或要求进一步的网络调整。因此,每个节点16的操作系统44、网络拓扑驱动器48和/或其它网络组件和网络参数被调整以进一步取得仿真节点簇的要求网络性能。在一个实施例中,配置器22基于数据文件中标识的网络特性自动地调整所选择的节点16。在一个实施例中,进一步基于经由用户界面200的模块206提供的用户输入来调整网络参数,例如,如本文中针对图11-17描述的那样。
在一个示例性实施例中,配置器22在方框730使用下面的“最佳匹配”技术来选择适宜的节点16,尽管也可提供其它适宜的方法和算法。当比较数据文件的网络配置数据(例如延时-p0、带宽-p1、出错率-pz)时,配置器2考虑Z网络性质(即特性),并且节点X1、X2……XQ是仿真节点簇上的节点。配置器22选择可用节点16(例如节点Y1、Y2……YQ)中针对网络性质p0、p1……px最类似于节点X1、X2……XQ的子集。尽管可使用其它算法来执行选择,然而通过配置器22为可用节点16的可寻获适宜子集实现的一个示例性算法包括确定网络性质的优先级。在一示例性优先级确定中,性质p0具有比性质p1更高的优先级,并且性质pk具有比性质pk+1更高的优先级。因此,在所示例子中,在节点选择期间给予延时比带宽更高的优先级,并在节点选择期间给予带宽比出错率更高的优先级。具有输入N(网络性质)、X(节点)和Y(节点)的函数P(N,X,Y)可被配置成返回网络节点X和Y之间的网络性质N的值。这种功能可使用在方框724、728创建的网络描述符数据文件/对象(例如数据文件750)来实现。节点的最初列表L={Y1、Y2、Y3…}包含所有可用节点16。对于云中的每个节点Yg,其中1≤g≤R(R是L中的节点总数,R≥Q),适用下列等式(1):
Sx(g)=∑1≤N≤Z,1≤h≤R,g≠hP(N,Yg,Yh)     (1)
对于仿真节点簇中的每个节点Xi,其中1≤i≤Q(Q是仿真节点簇中的节点数),则适用下列等式(2):
Sy(i)=∑1≤N≤Z,1≤j≤R,i≠jP(N,Yi,Yj)     (2)
算法继续以寻找云计算系统10的可用节点Yw以使Sy(w)-Sx(i)=minv,f(Sy(v)-Sx(f))。因此,节点Yw被用来模拟原始节点Xi,并且节点Yw从列表L中被移除。算法继续,直到选择了全部组的可用节点16为止。可提供在方框730选择节点16的其它适宜方法和算法。
在一示例性实施例中,配置器22在方框732使用下面的方法来调整所选择的节点16,尽管也可提供其它方法和算法。通过这种方法,配置器运行配置应用,该配置应用自动地在每个节点16上创建适宜的网络模拟层。如果使用Netem网络延迟和损失仿真器,则通过配置器22实现下列算法。对于仿真节点簇中的每个节点,Gs是仿真节点所属的节点组(即每个节点组包括物理上彼此接近的节点,例如同一机架)。对于每个组Gi,其中1≤i≤E并且E是与仿真节点簇关联的数据文件中定义的总组数,通过配置器22执行下列操作。配置器22寻找要求的网络性质p0……pN以使流量从节点Gs外出至节点Gi。配置器22创建新的服务类型,例如通过使用命令“tc class adddev”。配置器22创建新的排队原则,例如通过使用命令“tc qdisc adddev”。配置器22对类别设定要求的网络性质或排队原则“qdisc”。在类别处规定带宽和猝发网络性质,并在排队原则处规定所有其它性质(延时、出错率等)。对于每个节点Yn,Gyn是节点Yn所属的组。配置器22基于目的地IP地址(节点Yn的地址)配置过滤器并将其赋予类Gyn。这可例如使用命令“tcfilter add dev”来完成。
结果,如果Netem仿真器被打开,则所选择的节点簇14将相对于至少下列网络性质具有与仿真节点簇相似的网络性能:最小延时、最大带宽、最大猝发率、最小分组腐败率、最小分组损失率以及最小分组重定序率。可提供在方框732调整节点16的其它适宜的方法和算法。
在一个实施例中,图41的方框726-732对不同组可用节点16重复,直到选择了与仿真节点簇对应的整个节点簇14为止。在一个实施例中,仿真节点簇是理论上的,因为物理节点16可能存在或者也可能不存在,但要求的网络配置是已知的并作为输入被提供给配置器22以执行节点选择。在一个实施例中,一旦基于仿真节点簇而选择节点簇14,配置器22作用以通过选定的节点簇14测试各种工作负载,所述选定的节点簇14具有要求的网络配置,例如使用本文描述的批处理器80。
基于硬件特性分配节点簇
图43示出由图1和图3的配置器22执行的示例性操作的流程图760,其用于分配云计算系统10的节点簇14。贯穿图43的描述参照图1-3。在方框762,配置器22(例如数据监视配置器82)在一个或多个数据中心的一组可用节点16上发起硬件性能评价测试以获得这组可用节点16的实际硬件性能特性。在方框764,节点配置器72将这组可用节点16的实际硬件性能特性与基于经由用户界面200的用户选择标识的要求硬件性能特性进行比较。在方框766,节点配置器72基于在方框764的比较从这组可用节点16中选择云计算系统10的节点16的子集。节点16的子集(例如节点簇14或节点簇14的一组节点16)作用以共享工作负载处理,如本文描述的那样。节点16的子集中的节点数目小于或等于由用户针对节点簇14请求的节点16数目,如本文描述的那样。
在一个实施例中,节点配置器72经由用户界面200接收用户请求,该用户请求针对云计算系统10请求具有要求的硬件性能特性的节点簇。用户请求基于例如可选择硬件配置数据(例如图8的选择框259、输入262和域256以及图9的可选择输入265)的用户选择标识所要求的硬件性能特性。在一个实施例中,图9的表264的域是可选择/可修正的,以进一步标识要求的硬件性能特性。节点配置器72可基于用户界面200的其它适宜的可选择输入和域来标识所要求的硬件性能特性。节点配置器72基于节点簇的用户请求和该请求中标识的要求硬件性能特性(例如基于可用节点16和请求的节点簇之间的硬件相似性)选择这组可用节点16以通过硬件性能评价测试进行测试。在图示实施例中,这组可用节点16的节点16的数目大于通过用户请求请求的节点簇的节点16的数目。
示例性硬件性能特性包括节点16的计算机架构,例如节点16具有64位处理器架构还是32位处理器架构以支持需要天生32位和/或64位操作的工作负载。其它示例性硬件性能特性包括节点16的处理器40的制造商(例如AMD、Intel、Nvidia等)、节点16的处理器40的工作频率和/或节点16的读/写性能。又一些其它示例性硬件性能特性包括:系统存储器容量和盘空间(存储容量)、节点16的处理器40的数目和大小、节点16的高速缓冲存储器大小、节点16的可用指令集、盘I/O性能、节点16的硬驱速度、节点16支持仿真软件的能力、芯片集、节点16的存储器的类型、节点16之间的网络通信延时/带宽以及其它适宜的硬件性能特性。在图示实施例中,这些硬件性能特性中的每一个可基于经由用户界面200提供的用户请求而按照用户要求被规定。此外,一个或多个硬件性能评价测试可作用以确定每个选择的可用节点16的这些实际硬件性能特性。
在一个实施例中,节点配置器72通过将一个或多个硬件性能评价工具部署至每个节点16在方框762发起硬件性能评价测试,所述硬件性能评价工具作用以标识或确定节点16的硬件性能特性并产生表征这些特性的硬件配置数据。数据汇集器84随后作用以汇集通过硬件性能评价工具提供的硬件性能数据以使节点配置器72能够基于汇集的数据确定每个节点16的实际硬件性能特性。示例性评价工具包括业内已知的CPU标识工具(“CPUID”),其包括用于标识节点16的处理器类型和处理器的各种特性/特征(例如制造商、处理器速度和能力、可用存储器和盘空间等)的可执行操作代码。另一示例性监视工具包括软件代码模块,当由节点16执行时,该软件代码模块作用以测试指令集扩展或指令类型以确定与节点16和/或处理器的制造商兼容的指令集。另一示例性监视工具包括软件代码模块,当由节点16执行时,该软件代码模块作用以测试节点16具有64位架构还是32位架构。例如,该测试可涉及发布命令或处理请求并测量处理器花多长时间来完成请求。也可提供其它适宜的评价工具。
在一个实施例中,在方框766选择的节点16子集的节点16的数目小于用户请求中标识的节点16的数目。因此,配置器22重复步骤762-766以获得节点16的额外子集,直到所选择的节点16的数目等于通过用户请求请求的节点16的数目为止。在一个实施例中,在方框766选择节点16的第一子集之后,节点配置器72选择第二组可用节点16,该第二组可用节点16不同于一开始在方框762测试的第一组可用节点16。数据监视配置器82在第二组可用节点16上发起硬件性能评价测试以获得第二组可用节点16的实际硬件性能特性,并且节点配置器72基于通过节点配置器72对第二组可用节点的实际硬件性能特性与要求的硬件性能特性的比较而从第二组可用节点16选择云计算系统10的节点16的第二子集。在一个实施例中,一旦节点16的所选择子集的组合节点数目等于通过用户请求请求的节点16的数目,节点配置器72将所选择的节点16的子集配置为云计算系统10的节点簇14(即通过用户指定的配置参数配置节点簇14并在节点簇14上运行工作负载等等)。
参见图44,其示出通过包括图1和图3的配置器22的一个或多个计算设备执行的示例性详细操作的流程图770,用于选择硬件特性基本匹配于由用户规定的要求硬件特性的节点簇14。贯穿图44的描述参照图1-3。在方框772,节点配置器72接收对具有要求硬件性能特性的N个节点16的用户请求,其中N是要求节点16的任意适宜数目。在一个实施例中,用户请求基于对可选择硬件配置数据(例如图8和图9)的用户选择,如本文针对图43描述的那样。在方框774,节点配置器72从访问的数据中心或云的可用节点16请求或预留N+M个节点16。M是任何适宜数,以使预留的可用节点16的数(N+M)超出请求的节点16的数目N。例如,M可以等于N或者可以等于N的两倍。替代地,节点配置器72可在方框774请求N个可用节点16。在一个实施例中,使用专用API(例如Amazon AWS API、OpenStackAPI、定制API等)分配或预留(N+M)个节点16。节点配置器72基于与要求的节点簇具有相同硬件特性的可用节点16在方框774(和方框788)请求可用节点16。例如,节点配置器72可预留具有相同节点类型(例如小、中等、大、x-大,如本文描述的那样)的可用节点16。
在方框776,数据监视配置器82通过部署一个或多个硬件性能评价工具而在每个预留的节点16上发起硬件性能评价测试,并且数据汇集器84汇集(例如采集和存储)硬件性能数据,该硬件性能数据源自在每个节点16上发起的硬件性能评价测试,如本文针对图43描述的那样。在一个实施例中,硬件性能评价工具是被预安装在节点16或使用SSH、HTTP或某些其它适宜的协议/机制被安装到节点16上的软件代码模块。
在方框780,节点配置器72将用户请求的要求硬件性能特性(方框772)与源自硬件性能评价测试的实际硬件性能特性作比较。基于实际和要求硬件性能特性的相似性,节点配置器72在方框782从(N+M)个预留节点16中选择最好地匹配要求硬件特性的X个节点16,其中X是小于或等于请求的节点16的数N的任何数。可基于硬件特性使用任何适宜的算法以比较硬件特性并选择最佳匹配的节点16,例如本文中针对图41描述的“最佳匹配”技术。在方框784,节点配置器72将其余未选择的可用节点16(例如(N+M)-X)例如通过使用专用API释放回数据中心或云,由此使得未选择的可用节点16可供其它云计算系统使用。一旦在方框786所选择的节点16的数目X小于请求的节点16的数目,节点配置器72在方框788从数据中心/云请求或预留额外的节点16。配置器22随后重复步骤776-786,直到所选择的节点16的总数(即源自选择方法的全部迭代的节点16的组合数)等于请求节点16的数目为止。所选择的节点16随后被配置为节点簇14以执行由用户分配的云计算任务。
在一个实施例中,图44的方法结合图41的方法工作以选择具有要求硬件特性和网络特性的节点簇14。在一个实施例中,图44的方法进一步基于具有靠近的网络相邻性的节点16选择节点16。在一个实施例中,在选择节点簇14的节点16之前,通过在方框772的用户请求标识的硬件特性被确定优先级。在一个实施例中,图44(和图43)的方法通过配置器22自动地运动以寻找节点14的实际选择簇与通过用户规定的要求节点簇的适宜匹配。替代地,可通过配置器22给予用户选项以例如基于用户界面200的可选择输入而发起图43和图44的操作。
选择和/或修正云计算系统的硬件配置
图45示出由图1和图3的配置器22执行的示例性操作的流程图800,其用于选择云计算系统10的节点簇14的硬件配置。贯穿图45的描述参照图1和图3。在方框802,节点配置器72基于通过云计算系统10的节点簇14对工作负载的共享执行而确定节点簇14的至少一个节点16在工作负载的共享执行期间工作在阈值工作能力之下。阈值工作能力解说地基于基于至少一个节点16的硬件利用,例如处理器40和/或存储器42在工作负载执行期间的利用。阈值工作能力可以是任何适宜的阈值,例如最大工作能力(100%)或90%工作能力。在方框804,节点配置器72基于在方框802的判断而选择节点簇14的修正硬件配置,以使具有修正硬件配置的节点簇14具有降低的计算能力和减少的存储容量中的至少一者。
在一个实施例中,节点配置器72通过从数据中心的多个可用节点16中选择至少一个不同节点16并用所述至少一个不同节点16取代节点簇14的至少一个节点16而选择修正硬件配置。与节点簇14的取代节点16相比,不同节点16具有降低的计算能力和减少的存储容量中的至少一者。例如,节点配置器72从可用节点16中选择不同节点16,该不同节点16相比被取代的节点16具有较慢的处理器40、较少的处理核、较少的存储器容量或任何其它适宜的降低的硬件特性。例如,被取代的节点16具有比处理工作负载所需的更多的计算能力或存储器容量,由此被取代节点16的硬件部分在工作负载执行期间利用不足。在图示实施例中,选择不同节点16以使其作用以通过与一个或多个被取代的节点16相似性能(例如相似的执行速度等)处理工作负载,但由于不同节点16降低的计算能力和/或减少的存储容量,处理效率也更高。因此,由于不同节点16的降低的计算能力和/或减少的存储容量并同时表现出很少或者没有总性能损失,因此用不同节点16修正的节点簇14更高效地执行工作负载。例如,节点簇14以与被取代节点16不同的节点16基本相同的速度执行工作负载。
在一个实施例中,节点配置器72通过从节点簇14选择和去除一个或多个节点16而不用不同节点16取代被移除的节点16来选择和实现方框804的修正硬件配置。例如,节点配置器72确定节点簇14的一个或多个节点16对于节点簇14的其余节点16以相似执行性能执行工作负载而言是不需要的。节点配置器72由此从节点簇14去除这些一个或多个节点16并将这些节点16释放回数据中心。在一个实施例中,节点配置器72通过减少节点簇14的一个或多个节点16的计算能力和存储器容量中的至少一者(例如通过调整本文描述的引导时间参数)选择和实现方框804的修正硬件配置。
在图示实施例中,配置器22对硬件使用成本数据具有访问权,所述硬件使用成本数据标识与对节点簇14使用各种硬件资源(例如节点16)关联的硬件使用成本。例如,云计算服务(例如Amazon、OpenStack等)基于硬件(例如节点簇14的每个选定节点16的计算能力和存储器容量)计费使用成本。因此,在一个实施例中,节点配置器72进一步基于通过节点配置器72将与使用节点簇14中的至少一个不同节点16关联的使用成本数据和与使用节点簇14中的至少一个被取代节点16关联的使用成本数据的比较而选择至少一个不同节点76以取代节点簇14的一个或多个节点16。在一个实施例中,一旦至少一个不同节点16的使用成本小于被取代节点16的使用成本,节点配置器72选择至少一个不同节点16。例如,节点配置器72计算在节点簇14中使用的硬件资源(例如节点16)的成本并确定与节点簇14的潜在硬件配置变化关联的成本优势。例如,节点配置器72选择一个或多个不同节点16,所述一个或多个不同节点16将导致在较低使用成本下对节点簇14的分配硬件资源的更高效率使用并具有最小性能损失。在一个实施例中,配置器22基于相似成本分析而配置网络配置或其它配置参数。
在图示实施例中,配置器22通过将一个或多个硬件利用监视工具部署至节点簇14的每个节点16而监视每个节点16的硬件利用。通过每个节点16对硬件利用监视工具的执行作用以使每个节点16的至少一个处理器40监视计算机硬件(例如处理器40、存储器42、存储器控制器等)在工作负载执行期间的利用或使用。监视工具随后使节点16提供可由配置器22访问的硬件利用数据,该硬件利用数据关联于每个节点16在工作负载执行期间的硬件利用。配置器22的数据汇集器84作用以汇集由每个节点16提供的硬件利用数据,以使配置器22基于所汇集的硬件利用数据而确定每个节点16的硬件利用。在本文中针对图26-29的监视模块214来描述示例性硬件监视工具。例如,IOStat和VMstat工具包括可由节点处理器40执行的代码模块以监视在工作负载执行期间处理器40、虚拟存储器和/或存储器控制器正忙着执行指令或执行I/O操作的时间百分比、这些组件在工作负载执行期间等待/停止的时间百分比以及其它适宜的利用参数。基于节点16的确定硬件利用,节点配置器72可确定对该节点16相比最初请求和分配的存储器和/或计算功率需要更少的存储器和/或更少的计算功率,并可从簇14取代或去除节点16,如本文描述的那样。
在一个实施例中,节点配置器72在用户界面200上显示可选择硬件配置数据,该可选择硬件配置数据表示在方框804选择的修正硬件配置。基于对可选择硬件配置数据的用户选择,节点配置器72修正节点簇14的硬件配置,例如替代或去除节点簇14的节点16。示例性可选择硬件配置数据被示出于图8的表258中,该表258具有可选择输入259、262。例如,节点配置器72可通过列出节点簇14的推荐节点16(其包括一个或多个不同节点16或去除的节点16)而在表258中显示节点簇14的推荐的修正硬件配置。用户选择与列出的节点16对应的输入259以接受硬件改变,并且节点配置器72一旦发起工作负载部署则基于所接受的改变而配置修正节点簇14,如本文描述的那样。在一个实施例中,也通过用户界面200对于节点簇14的一个或多个推荐硬件配置而显示硬件使用成本,以允许用户基于关联的使用成本来选择实现的配置。可提供其它适宜界面以显示节点簇14的修正硬件配置。在一个实施例中,节点配置器72自动地通过在方框804选择的修正硬件配置来配置节点簇14而不需要用户输入或确认,并通过修正的节点簇14发起工作负载的进一步执行。
参见图46,其示出解说通过包括图1和图3的配置器22的一个或多个计算设备执行的示例性详细操作的流程图810,其用于选择云计算系统10的节点簇14的硬件配置。贯穿图46的描述参照图1-3。在方框812,配置器22提供用户界面200,该用户界面200包括可选择节点数据以在方框814允许用户选择具有要求硬件配置的要求节点簇14,如本文描述的那样。在方框816,配置器22选择和配置所选择的节点簇14并将工作负载部署至该节点簇14,如本文描述的那样。在方框818,配置器22将硬件利用监视工具安装和/或配置到节点簇14的每个节点16上。在一个实施例中,监视工具通过用户经由图26-29的监视模块214选择。替代地,配置器22可基于图46方法的发起而自动地部署一个或多个监视工具,例如IOStat和VMStat工具。在方框820,工作负载配置器78发起节点簇14上的工作负载执行,并在方框822,在执行之后或执行期间,数据汇集器84采集和存储由每个节点16的监视工具提供的硬件利用数据。
一旦完成通过节点簇14的工作负载执行,节点配置器72基于硬件利用数据确定每个节点16的硬件利用,如方框824表示的那样。在方框826,节点配置器72确定每个节点16的硬件利用是否满足或超出利用阈值(例如100%利用、90%利用或任何其它适宜的利用阈值)。在一个实施例中,节点配置器72在方框826将多个利用测量与一个或多个利用阈值作比较,例如处理器利用、存储器利用、存储器控制器利用等等。如果在方框826判定为是,则节点簇14被确定为适于进一步工作负载执行,即配置器22无需对节点簇14的硬件配置作出任何调整。对于在方框826不满足或超出利用阈值的每个节点16,节点配置器72从数据中心的可用节点16标识出不同的、取代节点16,这些节点16具有适于执行工作负载(即与被取代的节点16具有相同的性能)并同时具有比被取代的节点16更少的计算能力或存储器容量的硬件,如本文中针对图45描述的那样。在方框830,节点配置器72通过在用户界面200上显示节点簇14的推荐硬件配置而向用户提供在方框828标识的任何推荐硬件配置改变的反馈,如针对图45描述的那样。在方框832,节点配置器72通过去除和/或用在方框828标识的不同节点16取代原始节点簇14的节点16而施加推荐的硬件配置改变以供对工作负载的将来执行。
在一个实施例中,通过用户界面200的可选择输入的用户选择使得节点配置器72运行通过图45和图46描述的硬件配置方法以寻找节点簇14的适宜配置以执行工作负载。替代地,配置器22可自动地实现图45和图46的方法,例如一旦发起批处理工作例如以寻找节点簇14不显著地限制工作负载性能的适宜替代性配置。
调整云计算系统
图47示出通过图1和图3的配置器22执行的示例性操作的流程图850,用于从多个可用配置中选择云计算系统10的节点簇14的适宜配置。贯穿图47的描述参照图1和图3。在方框852,配置器22(例如批处理器80)基于节点簇14的多个不同组的配置参数在节点簇14上发起多个执行负载的执行。通过配置器22(经由如本文描述的一个或多个配置文件28)作为输入提供给节点16的配置参数可通过配置器22调整以提供不同组的配置文件,并且工作负载通过具有每个不同组的配置参数的节点簇14执行。在一个实施例中,配置器22基于经由用户界面200提供的用户输入调整每个工作负载执行的配置参数,如本文描述的那样。在一个实施例中,配置参数包括下列至少一个:至少一个节点16的工作负载容器的工作参数、至少一个节点16的引导时间参数以及至少一个节点16的硬件配置参数。
在方框854,节点配置器72从多个不同组的配置参数中选择节点簇14的一组配置参数。在方框856,工作负载配置器78提供(例如部署)工作负载至节点簇14以通过配置有选定组的配置参数的节点簇14执行。因此,工作负载的未来执行是通过具有基于所选择组的配置参数的配置的节点簇14来实现的。
在方框854对这组配置参数的选择基于通过节点配置器72将在工作负载每次执行期间(例如通过监视工具)监视的节点簇14的至少一个性能特性与节点簇14的至少一个要求性能特性的比较。例如,在一个实施例中,节点配置器72选择这组配置参数,其导致在工作负载执行期间最佳地匹配由用户规定的要求性能特性的节点簇14的性能特性。在图示实施例中,要求的性能特性由节点配置器72基于经由用户界面200提供的用户输入而被标识。例如,用户界面200包括可选择性能数据,例如可选择输入或可填写域,其当执行所选择的工作负载时允许用户选择节点簇14的要求性能特性。例如,参见图10的可填写域276或被配置成接收用户输入(其标识要求的性能特性)的用户界面200的任何其它适宜的可选择输入或域。在另一例子中,节点配置器72可装载包含标识要求的性能特性的数据的用户提供文件,例如基于图7的输入238、228、230、232和/或图25的批处理器模块212的按钮494的用户选择。
由用户规定并在工作负载执行期间被监视的示例性性能特性包括工作负载执行时间、通过节点16的处理器利用、通过节点16的存储器利用、通过节点16的功耗、通过节点16的硬盘输入/输出(I/O)利用以及通过节点16的网络利用。其它合适的性能特性可由用户监视和/或规定,例如通过本文针对图26-29描述的监视工具监视的性能特性。
在一个实施例中,在方框854对这组配置参数的选择进一步基于由节点配置器72作出的判断,即与工作负载执行期间监视到的一个或多个性能特性关联的值落在与一个或多个相应的要求性能特性关联的可接受值的范围内。例如,与相应要求的性能特性关联的可接受值范围(例如,通过用户或通过节点配置器72设定的输入)可包括85%-100%处理器利用和85%-100%存储器利用。因此,节点配置器72选择一组配置参数,这组配置参数导致95%处理器利用和90%存储器利用,但拒绝另一组配置参数,这组配置参数导致80%处理器利用和75%存储器利用。一旦多组配置参数导致满足可接受值范围的性能特性,节点配置器72基于额外因素选择这组配置参数,所述额外因素例如为最佳性能值、最低使用成本、性能特性的优先级或其它适宜因素。一旦没有导致落在可接受值范围内的性能特性的任何组的配置参数,则节点配置器72选择导致最佳匹配的性能特性的组,自动地进一步调整配置参数直到找到适宜的组为止和/或通知用户没有找到可接受的一组配置参数。
在一个实施例中,节点配置器72基于所监视的性能特性与要求性能特性的相似性将分数值赋予每个不同组的配置参数。因此,在方框854对这组配置参数的选择进一步基于被赋予所选择组的配置参数的分数值。例如,节点配置器72选择导致最高分数值的这组配置参数。分数值基于节点簇14的性能特性多接近地匹配于要求性能特性而对多组配置参数进行评级。
在一个实施例中,在方框854对这组配置参数的选择进一步基于与使用不同可用节点16或网络配置关联的使用成本数据与节点簇14的比较。例如,节点配置器72可选择导致处理器和存储器利用大于阈值利用水平并且使用成本小于阈值成本水平的一组配置参数。在方框854使用成本的任何其它适宜的考虑因素可被应用至选择。
在一个实施例中,配置器22基于由用户(例如经由用户界面200)提供的最初一组配置参数而在节点簇14上发起工作负载的第一执行。在该实施例中,为了寻找导致要求的性能特性的一组配置参数,节点配置器72通过自动地调整最初组的至少一个配置参数并基于修正的最初组发起工作负载的额外执行而遍历不同组的配置参数。可使用任何适宜设计空间探索方法或算法而以这种方式探索不同组的配置参数。
在一个实施例中,数据监视汇集器82将一个或多个节点和网络性能监视工具(例如通过图26-29描述)部署至节点簇14的每个节点16。当通过每个节点16(或通过控制服务器12)执行时,监视工具作用以监视每个节点16在工作负载的每次执行期间的性能特性,如本文描述的那样。所执行的监视工具产生表征相应节点16的性能特性的性能数据,所述性能数据可由配置器22访问。数据汇集器84汇集由每个节点16的性能监视工具提供的性能数据,并且节点配置器72基于汇集的性能数据在方框854选择这组配置参数。
如本文描述的那样,节点簇14的不同组的配置参数包括工作负载容器的工作参数、引导时间参数和硬件配置参数中的至少一者。工作负载容器的示例性工作参数在这里结合图4-6、图19和图20予以描述并包括例如与读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者关联的工作参数。基于图19和图20所示和本文描述的可选择数据(例如输入和域)的用户选择通过工作负载容器配置器76选择和修正工作参数。与读/写操作关联的示例性工作参数包括读/写操作的存储器缓存大小以及在读/写操作期间传递的数据块的大小。与文件系统操作关联的示例性工作参数包括被存储在每个节点16的存储器中的文件系统记录数目和被分配以处理文件系统的请求的每个节点16的处理线程数中的至少一者。与归类操作关联的示例性工作参数包括当执行归类操作时合并的数据流的数目。也可提供工作负载容器的其它适宜工作参数。
示例性引导时间参数在本文中参照图10和图36-38予以描述并包括例如节点16在执行工作负载期间被启用的处理核数目以及节点16可通过节点16的操作系统44访问的系统存储器的量。基于图10示出和本文描述的可选择数据(例如输入和域)的用户选择通过节点配置器72选择和修正引导时间参数。可提供其它适宜的引导时间参数。示例性硬件配置参数在本文中参照图8、图9和图43-46予以描述并包括例如节点16的处理器40的数目、节点16的系统存储器的量以及节点16的硬盘空间量中的至少一者。硬件配置参数基于图8和图9所示和本文描述的可选择数据(例如输入和域)的用户选择而通过节点配置器72被选择和修正。也可提供其它适宜的硬件配置参数。
参见图48,其示出通过包括图1和图3的配置器22的一个或多个计算设备执行的示例性详细操作的流程图860,其用于从多个可用配置中选择云计算系统10的节点簇14的适宜配置。贯穿图48的描述参照图1-3。在图48的图示实施例中,一旦节点簇14的实际性能满足或超出要求性能,配置器22停止搜索适当组的配置参数。在另一实施例中,配置器22在基于要求的性能特性和/或其它适宜因素(例如使用成本)选择最匹配的一组配置参数之前尝试每组标识的配置参数。
在方框862,配置器22基于经由用户界面200接收的用户输入而接收一组或多组配置参数以及与工作负载执行关联的要求性能特性,如本文描述的那样。在方框864,配置器22分配节点簇14并为节点簇14配置在方框862接收的一组配置参数。在一个实施例中,配置器22在方框864将一个或多个配置文件28部署至节点16,所述配置文件28标识配置参数,如本文描述的那样。配置器22在方框866将一个或多个监视工具(例如经由模块214通过用户选择)安装和/或配置到每个节点16上并在方框868通过节点簇14发起对工作负载的执行。一旦执行工作负载或在工作负载执行期间,配置器22在方框870汇集由每个节点16的一个或多个监视工具生成的性能数据。基于汇集的性能数据,配置器22在方框872将在方框862标识的要求性能特性与通过汇集的性能数据标识的簇14的实际性能特性作比较,如本文描述的那样。在方框874,配置器22通过与要求性能特性比较而确定这些性能特性是否合适(例如在可接受范围内、具有适宜分数值等等),如本文描述的那样。如果在方框874判定为是,则配置器保持最后在方框864采用的当前配置参数以供工作负载的未来执行。如果性能特性在方框874不尽如人意并且如果可用的不同族配置参数在方框876并未穷尽,则配置器22在方框878选择一不同组的配置参数并重复方框864-876的功能。例如,配置器22可采用在方框862标识的不同组的配置参数或由配置器22提供的递增调整的一组参数,如前文所述。该过程重复,直到配置器22在方框874找到一组适宜的配置参数或者在方框876配置参数选项已穷尽为止。如果在方框876配置选项已穷尽,则配置器22在方框880选择提供最佳性能特性和其它标识特性(例如使用成本)的一组配置参数。
除了其它优势外,该方法和系统允许经由用户界面选择、配置和部署节点簇、工作负载、工作负载容器和网络配置。另外,该方法和系统允许控制和调整云配置参数,由此在节点、网络、工作负载容器和/或工作负载的变化特性下实现云计算系统的性能分析。其它优势将由本领域内技术人员发觉。
尽管已将本发明描述为具有优选的设计,然而本发明可在本公开的精神和范围内作进一步修正。本申请因此旨在覆盖本发明使用其一般原理的任何变化、使用或调整。此外,本申请旨在覆盖对于本公开的这些背离作为本公开涉及的领域内的已知或惯常实践并落在所附权利要求书的界限内。

Claims (37)

1.通过一个或多个计算设备实现的计算配置方法,所述方法包括:
基于经由用户界面接收的多个用户选择而配置计算系统的节点簇,以使工作负载的处理跨所述节点簇分布,所述配置包括:
从多个可用节点选择所述计算系统的所述节点簇,
选择工作负载容器模块以在所述节点簇的每个节点上工作,所述工作负载容器模块包括可选择代码模块,当由每个节点执行时,所述可选择代码模块作用以协调工作负载的执行,以及
选择工作负载以通过所述工作负载容器模块在所述节点簇上执行。
2.如权利要求1所述的方法,还包括基于经由所述用户界面接收的用户输入修正所述工作负载容器模块的至少一个工作参数,所述至少一个工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
3.如权利要求1所述的方法,其中,所述工作负载容器模块选自多个可用工作负载容器模块。
4.如权利要求1所述的方法,其中,所述选择的工作负载容器模块是定制工作负载容器模块,所述定制工作负载容器模块被存储在远离所述一个或多个计算设备的存储器上并包括作用以协调所述工作负载的执行的多个用户定义指令,所述配置进一步包括将所述定制工作负载容器模块装载到所述节点簇的每个节点上。
5.如权利要求1所述的方法,还包括提供所述用户界面,所述用户界面包括可选择节点数据、可选择工作负载容器数据以及可选择工作负载数据,其中选择所述节点簇基于对所述可选择节点数据的用户选择,选择所述工作负载容器模块基于对所述可选择工作负载容器数据的用户选择,而选择所述工作负载基于对所述可选择工作负载数据的用户选择。
6.如权利要求1所述的方法,其中,所述节点簇连接至通信网络,并且其中所述方法进一步包括在执行所述选择的工作负载期间基于经由所述用户界面接收的用户输入调整至少一个通信网络参数以限制所述通信网络的性能。
7.如权利要求1所述的方法,其中,所述配置包括基于经由所述用户界面接收的用户选择从采集自所述节点簇的每个节点的多种类型的数据中选择至少一种类型的数据,并且其中所述方法进一步包括从所述节点簇的每个节点采集所述至少一种类型的数据。
8.一种计算配置系统,包括:
节点配置器,其作用以从计算系统的多个可用节点中选择一节点簇,所述节点簇作用以共享工作负载的处理;
工作负载容器配置器,其作用以选择工作负载容器模块以工作在所述节点簇的每个节点上,所述工作负载容器模块包括可选择代码模块,当由每个节点执行时,所述可选择代码模块作用以协调所述工作负载的执行;以及
工作负载配置器,其作用以选择工作负载以在所述节点簇上通过所选择的工作负载容器模块执行。
9.如权利要求8所述的系统,其中,所述工作负载容器配置器进一步作用以基于经由所述用户界面接收的用户输入而修正所述工作负载容器模块的至少一个工作参数,所述至少一个工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
10.如权利要求8所述的系统,其中,所述工作负载容器配置器从多个可用工作负载容器模块选择所述工作负载容器模块。
11.如权利要求8所述的系统,其中,所述选择的工作负载容器模块是定制工作负载容器模块,所述定制工作负载容器模块被存储在远离所述计算配置系统的存储器上并包括具有用以协调所述工作负载的执行的多个用户定义指令的配置文件,所述工作负载容器配置器进一步作用以将保存在所述远程存储器上的所述定制工作负载容器模块装载到所述节点簇的每个节点上。
12.如权利要求8所述的系统,其中,所述节点簇经由通信网络互连,并且所述系统还包括网络配置器,所述网络配置器作用以在所述选择的工作负载执行期间调整所述计算系统的至少一个通信网络参数以修正所述通信网络的性能。
13.如权利要求8所述的系统,其中,所述工作负载配置器从实际工作负载和综合测试工作负载中的至少一者中选择工作负载,所述实际工作负载被存储在通过所述计算配置系统可访问的存储器内,而所述综合测试工作负载基于用户定义工作负载参数通过所述计算配置系统生成。
14.如权利要求8所述的系统,还包括数据汇集器,所述数据汇集器作用以从所述节点簇的每个节点采集与所述工作负载的执行关联的性能数据并生成表征从每个节点采集的性能数据的统计图。
15.如权利要求8所述的系统,还包括:
至少一个处理器;以及
包含可执行指令的存储器,当由所述至少一个处理器执行时,所述可执行指令使所述至少一个处理器在显示器上提供图形用户界面,所述图形用户界面包括表征所述节点配置器、所述工作负载容器配置器和所述工作负载配置器的数据。
17.一种配置由一个或多个计算设备执行的计算系统的方法,所述方法包括:
基于经由用户界面接收的用户选择从多个可用工作负载容器模块中选择工作负载容器模块以工作在所述计算系统的节点簇的每个节点上,所述选择的工作负载容器模块包括可选择代码模块,当由每个节点执行时,所述可选择代码模块作用以协调工作负载在所述节点簇上的执行;以及
用所述选择的工作负载容器模块配置所述节点簇的每个节点以执行所述工作负载,以使所述工作负载的处理跨所述节点簇分布。
18.如权利要求17所述的方法,其中,所述一个或多个计算设备包括所述计算系统的控制服务器,所述多个可用工作负载容器模块包括被存储到远离所述计算系统的存储器上的定制工作负载容器模块,并且所述定制工作负载容器模块包括用于协调所述工作负载的执行的多个用户定义指令。
19.如权利要求17所述的方法,还包括提供用户界面,所述用户界面包括可选择工作负载容器数据,其中选择所述工作负载容器模块基于对所述可选择工作负载容器数据的用户选择。
20.如权利要求17所述的方法,还包括基于经由所述用户界面接收的用户输入修正每个节点的所选择工作负载容器模块的工作参数,所述工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
21.如权利要求17所述的方法,其中,所述配置包括将所述选择的工作负载容器模块安装到所述节点簇的每个节点上并在所述节点簇上通过所述选择的工作负载容器模块发起所述工作负载的执行,以使所述节点簇的每个节点处理所述工作负载的至少一个处理线程。
22.一种计算配置系统,包括:
工作负载容器配置器,其作用以接收用户输入并基于所述用户输入从多个可用工作负载容器模块中选择一工作负载容器模块,所述选择的工作负载容器模块包括可选择代码模块,当由计算系统的节点簇执行时,所述可选择代码模块作用以协调工作负载的执行;以及
节点配置器,其作用以通过所述选择的工作负载容器模块配置所述计算系统的所述节点簇的每个节点以执行所述工作负载,以使所述工作负载的处理跨所述节点簇分布。
23.如权利要求22所述的系统,其中所述多个可用工作负载容器模块包括被存储在远离所述计算配置系统的存储器上的定制工作负载容器模块,并且所述定制工作负载容器模块包括配置文件,所述配置文件包括作用以协调所述工作负载的执行的多个用户定义指令。
24.如权利要求22所述的系统,还包括:
至少一个处理器;以及
包含可执行指令的存储器,当由所述至少一个处理器执行时,所述可执行指令使所述至少一个处理器在显示器上提供图形用户界面,所述图形用户界面包括表征所述工作负载容器配置器和所述节点配置器的数据。
25.如权利要求22所述的系统,其中,所述工作负载容器配置器进一步作用以基于经由用户界面接收的用户输入而修正所述选择的工作负载容器模块的工作参数,所述工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
26.如权利要求22所述的系统,其中,所述节点配置器进一步作用以将所述选择的工作负载容器模块安装到所述节点簇的每个节点上并在所述节点簇上通过所述选择的工作负载容器模块发起所述工作负载的执行,以使所述节点簇的每个节点处理所述工作负载的至少一个处理线程。
27.一种配置由一个或多个计算设备执行的计算系统的方法,所述方法包括:
从所述计算系统的多个可用节点中选择一节点簇,所述节点簇作用以共享工作负载的处理;以及
基于经由用户界面接收的用户输入修正所述节点簇的每个节点的相同工作负载容器模块的工作参数,所述工作负载容器模块包括代码模块,当由所述节点簇的每个节点执行时,所述代码模块作用以基于所述工作参数协调通过所述节点簇的工作负载的执行,所述工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
28.如权利要求27所述的方法,还包括提供所述用户界面,所述用户界面包括可选择工作负载容器数据,其中修正所述工作负载容器模块的所述工作参数基于对所述可选择工作负载容器数据的用户选择。
29.如权利要求27所述的方法,其中,与所述读/写操作关联的所述工作参数包括用于读/写操作的存储器缓存大小和读/写操作期间传递的数据块的大小中的至少一者。
30.如权利要求27所述的方法,其中,与所述文件系统操作关联的工作参数包括被存储在每个节点的存储器中的文件系统记录数和分配以处理所述文件系统的请求的每个节点的处理线程数中的至少一者。
31.如权利要求27所述的方法,其中,与所述归类操作关联的工作参数包括当执行归类操作时合并的数据流的数目。
32.如权利要求27所述的方法,其中,所述节点簇连接至通信网络,并且其中所述方法还包括在所述工作负载执行期间基于经由所述用户界面接收的用户输入而调整至少一个通信网络参数以限制所述通信网络的性能。
33.一种计算配置系统,包括:
节点配置器,其作用以从计算系统的多个可用节点中选择节点簇,所述节点簇作用以共享所述工作负载的处理;以及
工作负载容器配置器,其作用以基于经由用户界面接收的用户输入而修正所述节点簇的每个节点的相同工作负载容器模块的工作参数,所述工作负载容器模块包括代码模块,当由所述节点簇的每个节点执行时,所述代码模块作用以基于所述工作参数协调通过所述节点簇对所述工作负载的执行,所述工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。
34.如权利要求33所述的系统,其中,与所述读/写操作关联的工作参数包括用于读/写操作的存储器缓存大小和读/写操作期间传递的数据块的大小中的至少一者。
35.如权利要求33所述的系统,其中,与所述文件系统操作关联的工作参数包括被存储在每个节点的存储器中的文件系统记录数和分配以处理所述文件系统的请求的每个节点的处理线程数中的至少一者。
36.如权利要求33所述的系统,其中,与所述归类操作关联的工作参数包括当执行归类操作时合并的数据流的数目。
37.如权利要求33所述的系统,其中,所述节点簇连接至通信网络,并且其中所述系统还包括网络配置器,其在所述工作负载执行期间基于经由所述用户界面接收的用户输入而调整至少一个通信网络参数以限制所述通信网络的性能。
38.如权利要求33所述的系统,其中,所述用户界面包括图形用户界面,所述系统还包括至少一个处理器和包含可执行指令的存储器,当由所述至少一个处理器执行时,所述可执行指令使所述至少一个处理器在显示器上提供图形用户界面,所述图形用户界面包括表征所述节点配置器和所述工作负载容器配置器的数据。
CN201380042312.2A 2012-08-07 2013-07-31 用于配置云计算系统的系统和方法 Active CN104520814B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/568,368 US8887056B2 (en) 2012-08-07 2012-08-07 System and method for configuring cloud computing systems
US13/568,368 2012-08-07
PCT/US2013/052996 WO2014025585A1 (en) 2012-08-07 2013-07-31 System and method for configuring cloud computing systems

Publications (2)

Publication Number Publication Date
CN104520814A true CN104520814A (zh) 2015-04-15
CN104520814B CN104520814B (zh) 2017-04-19

Family

ID=49001047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380042312.2A Active CN104520814B (zh) 2012-08-07 2013-07-31 用于配置云计算系统的系统和方法

Country Status (6)

Country Link
US (1) US8887056B2 (zh)
EP (1) EP2883139A1 (zh)
JP (1) JP5926864B2 (zh)
KR (1) KR101614052B1 (zh)
CN (1) CN104520814B (zh)
WO (1) WO2014025585A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020251A1 (en) * 2015-08-04 2017-02-09 Hewlett Packard Enterprise Development Lp Load testing based on network virtualization using a container
CN107273178A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 配置虚拟化系统的方法和装置
TWI619026B (zh) * 2016-10-21 2018-03-21 元智大學 解決分散式雲端運算平台於虛擬化下衝突的獨立資源分派系統及雲端服務系統
CN110188022A (zh) * 2019-05-09 2019-08-30 国家计算机网络与信息安全管理中心 一种基于Java的集群性能测试方法及系统
CN111492347A (zh) * 2018-01-30 2020-08-04 华睿泰科技有限责任公司 用于更新容器的系统和方法
CN113220237A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种分布式存储方法、装置、设备及存储介质
CN114253224A (zh) * 2020-09-22 2022-03-29 罗克韦尔自动化技术公司 将容器编排系统与操作技术设备集成
CN115357309A (zh) * 2022-10-24 2022-11-18 深信服科技股份有限公司 一种数据处理方法、装置、系统和计算机可读存储介质

Families Citing this family (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304822B2 (en) 2012-05-30 2016-04-05 International Business Machines Corporation Resource configuration for a network data processing system
US8887056B2 (en) * 2012-08-07 2014-11-11 Advanced Micro Devices, Inc. System and method for configuring cloud computing systems
US10963420B2 (en) * 2012-08-10 2021-03-30 Adobe Inc. Systems and methods for providing hot spare nodes
US20140181176A1 (en) * 2012-12-20 2014-06-26 Unisys Corporation Graphical user interface for hadoop system administration
US9118538B1 (en) * 2013-03-15 2015-08-25 Emc Corporation Method and system for configuring resources to enable resource monitoring
US9274918B2 (en) * 2013-07-25 2016-03-01 International Business Machines Corporation Prediction of impact of workload migration
US10360064B1 (en) * 2013-08-19 2019-07-23 Amazon Technologies, Inc. Task scheduling, execution and monitoring
US20150081880A1 (en) * 2013-09-17 2015-03-19 Stackdriver, Inc. System and method of monitoring and measuring performance relative to expected performance characteristics for applications and software architecture hosted by an iaas provider
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US10250451B1 (en) * 2014-01-13 2019-04-02 Cazena, Inc. Intelligent analytic cloud provisioning
KR20150108230A (ko) * 2014-03-17 2015-09-25 한국전자통신연구원 클러스터 시스템 구축 방법 및 장치
US10332229B2 (en) 2014-05-12 2019-06-25 Palo Alto Research Center Incorporated System and method for high performance k-means clustering on GPU with smart kernels
US9558094B2 (en) * 2014-05-12 2017-01-31 Palo Alto Research Center Incorporated System and method for selecting useful smart kernels for general-purpose GPU computing
US9384027B2 (en) 2014-06-06 2016-07-05 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
US9304805B2 (en) 2014-06-06 2016-04-05 Interinational Business Machines Corporation Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors
US9400672B2 (en) 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
US10346188B1 (en) * 2014-06-13 2019-07-09 Veritas Technologies Llc Booting virtual machine instances in a distributed data processing architecture
US9471383B2 (en) 2014-07-11 2016-10-18 Tata Consultancy Services Limited Task allocation in a computing environment
CN104125288B (zh) * 2014-08-04 2018-02-06 上海斐讯数据通信技术有限公司 一种网络硬盘的满负载测试方法及系统
US9900391B2 (en) * 2014-08-05 2018-02-20 Microsoft Technology Licensing, Llc Automated orchestration of infrastructure service blocks in hosted services
CN105612727B (zh) * 2014-09-19 2019-04-26 华为技术有限公司 一种基于云环境系统的部署方法和装置
CN104702663B (zh) * 2014-12-12 2018-08-28 用友网络科技股份有限公司 云处理装置和方法
CN104504143B (zh) * 2015-01-04 2017-12-29 华为技术有限公司 一种流图优化方法及其装置
US9967197B2 (en) * 2015-01-12 2018-05-08 Citrix Systems, Inc. Large scale bandwidth management of IP flows using a hierarchy of traffic shaping devices
US9444764B2 (en) * 2015-01-20 2016-09-13 State Farm Mutual Automobile Insurance Company Scalable and secure interconnectivity in server cluster environments
US20160246842A1 (en) * 2015-02-25 2016-08-25 Futurewei Technologies, Inc. Query optimization adaptive to system memory load for parallel database systems
US10904091B2 (en) 2015-06-03 2021-01-26 Avago Technologies International Sales Pte. Limited System for network-based reallocation of functions
US9986019B2 (en) 2015-06-24 2018-05-29 At&T Intellectual Property I, L.P. Intelligent route management for diverse ecosystems
US10073880B2 (en) * 2015-08-06 2018-09-11 International Business Machines Corporation Vertical tuning of distributed analytics clusters
CN105095023B (zh) * 2015-08-18 2018-07-06 北京皮尔布莱尼软件有限公司 一种云主机创建装置、方法和计算设备
KR102007673B1 (ko) * 2015-09-11 2019-08-06 주식회사 케이티 유저 인터페이스에 대한 이벤트를 처리하는 클라우드 서버, 미디어 재생 장치 및 컴퓨터 프로그램
US10210220B2 (en) * 2015-09-16 2019-02-19 DataStax System and method for fault tolerant queries
CN106598559A (zh) * 2015-10-19 2017-04-26 中兴通讯股份有限公司 一种云平台的快速部署方法及系统
US11263006B2 (en) * 2015-11-24 2022-03-01 Vmware, Inc. Methods and apparatus to deploy workload domains in virtual server racks
US10162660B2 (en) * 2015-12-03 2018-12-25 International Business Machines Corporation Application-level processor parameter management
CN105607903A (zh) * 2015-12-15 2016-05-25 国云科技股份有限公司 一种部署openstack组件的方法
JP6129290B1 (ja) 2015-12-24 2017-05-17 財團法人工業技術研究院Industrial Technology Research Institute 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
JP2017167763A (ja) * 2016-03-15 2017-09-21 富士通株式会社 情報処理装置、試験実行方法および試験実行プログラム
US10432491B2 (en) 2016-03-22 2019-10-01 Intel Corporation Control device for estimation of power consumption and energy efficiency of application containers
US10599478B1 (en) 2016-03-29 2020-03-24 Amazon Technologies, Inc. Automated reconfiguration of real time data stream processing
WO2017176178A1 (en) * 2016-04-05 2017-10-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and agent for sharing information about cloudlet properties in distributed cloud environments
US10796348B2 (en) 2016-04-22 2020-10-06 International Business Machines Corporation Data resiliency of billing information
EP3465434A1 (en) * 2016-06-16 2019-04-10 Google LLC Secure configuration of cloud computing nodes
US10390114B2 (en) 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US20180150256A1 (en) 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
EP3549350A4 (en) 2016-11-29 2021-03-24 Intel Corporation MILLIMETRIC WAVE CHASSIS INTERCONNECTION TECHNOLOGIES
US10594555B2 (en) 2016-12-16 2020-03-17 Intelligent Platforms, Llc Cloud-enabled testing of control systems
US10169023B2 (en) * 2017-02-06 2019-01-01 International Business Machines Corporation Virtual container deployment
KR101921703B1 (ko) * 2017-02-27 2019-02-14 모젼스랩 (주) 가상화 기반 체험 콘텐츠 제공 클라우드 시스템
US11237872B2 (en) * 2017-05-23 2022-02-01 Kla-Tencor Corporation Semiconductor inspection and metrology systems for distributing job among the CPUs or GPUs based on logical image processing boundaries
US10379908B2 (en) 2017-05-30 2019-08-13 Red Hat, Inc. Merging scaled-down container clusters using vitality metrics
US10353803B2 (en) * 2017-08-21 2019-07-16 Facebook, Inc. Dynamic device clustering
US10877798B2 (en) * 2017-08-31 2020-12-29 Netflix, Inc. Scalable techniques for executing custom algorithms on media items
US11947489B2 (en) 2017-09-05 2024-04-02 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US10452267B2 (en) 2017-09-13 2019-10-22 Robin Systems, Inc. Storage scheme for a distributed storage system
US10430105B2 (en) 2017-09-13 2019-10-01 Robin Systems, Inc. Storage scheme for a distributed storage system
US10579276B2 (en) 2017-09-13 2020-03-03 Robin Systems, Inc. Storage scheme for a distributed storage system
US10423344B2 (en) 2017-09-19 2019-09-24 Robin Systems, Inc. Storage scheme for a distributed storage system
US10534549B2 (en) 2017-09-19 2020-01-14 Robin Systems, Inc. Maintaining consistency among copies of a logical storage volume in a distributed storage system
US10846001B2 (en) 2017-11-08 2020-11-24 Robin Systems, Inc. Allocating storage requirements in a distributed storage system
US10782887B2 (en) 2017-11-08 2020-09-22 Robin Systems, Inc. Window-based prority tagging of IOPs in a distributed storage system
US10430292B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Snapshot deletion in a distributed storage system
US10430110B2 (en) 2017-12-19 2019-10-01 Robin Systems, Inc. Implementing a hybrid storage node in a distributed storage system
US10452308B2 (en) 2017-12-19 2019-10-22 Robin Systems, Inc. Encoding tags for metadata entries in a storage system
KR102617686B1 (ko) * 2017-12-20 2023-12-22 주식회사 케이티 클라우드 컴퓨팅 환경에서 클러스터 구성 및 관리 시스템 및 그 방법
JP6962180B2 (ja) * 2017-12-27 2021-11-05 富士通株式会社 情報処理システム、コンテナ管理装置及びコンテナ管理方法
US11748203B2 (en) 2018-01-11 2023-09-05 Robin Systems, Inc. Multi-role application orchestration in a distributed storage system
US11392363B2 (en) * 2018-01-11 2022-07-19 Robin Systems, Inc. Implementing application entrypoints with containers of a bundled application
US11099937B2 (en) 2018-01-11 2021-08-24 Robin Systems, Inc. Implementing clone snapshots in a distributed storage system
US10642697B2 (en) 2018-01-11 2020-05-05 Robin Systems, Inc. Implementing containers for a stateful application in a distributed computing system
US11582168B2 (en) 2018-01-11 2023-02-14 Robin Systems, Inc. Fenced clone applications
US10628235B2 (en) 2018-01-11 2020-04-21 Robin Systems, Inc. Accessing log files of a distributed computing system using a simulated file system
US10896102B2 (en) 2018-01-11 2021-01-19 Robin Systems, Inc. Implementing secure communication in a distributed computing system
US10642694B2 (en) 2018-01-12 2020-05-05 Robin Systems, Inc. Monitoring containers in a distributed computing system
US10845997B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Job manager for deploying a bundled application
US10579364B2 (en) 2018-01-12 2020-03-03 Robin Systems, Inc. Upgrading bundled applications in a distributed computing system
US10846137B2 (en) 2018-01-12 2020-11-24 Robin Systems, Inc. Dynamic adjustment of application resources in a distributed computing system
US10776148B1 (en) * 2018-02-06 2020-09-15 Parallels International Gmbh System and method for utilizing computational power of a server farm
US10698622B2 (en) * 2018-05-22 2020-06-30 International Business Machines Corporation Maintaining container to storage volume relations
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US11625360B2 (en) * 2018-06-20 2023-04-11 Kyndryl, Inc. Tailoring container images to a specific microarchitecture in virtualized environments
US11232139B2 (en) 2018-06-29 2022-01-25 Lucid Software, Inc. Custom interactions with visualizations
US10976938B2 (en) 2018-07-30 2021-04-13 Robin Systems, Inc. Block map cache
US11023328B2 (en) 2018-07-30 2021-06-01 Robin Systems, Inc. Redo log for append only storage scheme
US10817380B2 (en) 2018-07-31 2020-10-27 Robin Systems, Inc. Implementing affinity and anti-affinity constraints in a bundled application
US10733029B2 (en) * 2018-07-31 2020-08-04 Hewlett Packard Enterprise Development Lp Movement of services across clusters
US10599622B2 (en) 2018-07-31 2020-03-24 Robin Systems, Inc. Implementing storage volumes over multiple tiers
JP7230381B2 (ja) * 2018-09-10 2023-03-01 日本電気株式会社 コンピュータシステム、パラメータ設定装置、方法、及びプログラム
US20200106828A1 (en) * 2018-10-02 2020-04-02 Mellanox Technologies, Ltd. Parallel Computation Network Device
US10908848B2 (en) 2018-10-22 2021-02-02 Robin Systems, Inc. Automated management of bundled applications
US11036439B2 (en) 2018-10-22 2021-06-15 Robin Systems, Inc. Automated management of bundled applications
US11301299B2 (en) * 2018-10-30 2022-04-12 Hewlett Packard Enterprise Development Lp Data based scheduling for horizontally scalable clusters
US10983806B2 (en) * 2018-11-07 2021-04-20 Sap Se User interface for computer system usage types
US11157292B2 (en) * 2018-11-13 2021-10-26 Servicenow, Inc. Instance mapping engine and tools
US10620871B1 (en) 2018-11-15 2020-04-14 Robin Systems, Inc. Storage scheme for a distributed storage system
US10917339B2 (en) * 2018-12-21 2021-02-09 Juniper Networks, Inc. System and method for user customization and automation of operations on a software-defined network
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3915024A4 (en) 2019-02-22 2022-10-26 Lucid Software, Inc. REVERSIBLE DATA TRANSFORMATIONS
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
KR102186009B1 (ko) 2019-03-08 2020-12-04 한국전자통신연구원 컨테이너 인스턴스의 보안 프로파일 생성 시스템 및 방법
US11086725B2 (en) 2019-03-25 2021-08-10 Robin Systems, Inc. Orchestration of heterogeneous multi-role applications
US11256434B2 (en) 2019-04-17 2022-02-22 Robin Systems, Inc. Data de-duplication
US10831387B1 (en) 2019-05-02 2020-11-10 Robin Systems, Inc. Snapshot reservations in a distributed storage system
US10877684B2 (en) 2019-05-15 2020-12-29 Robin Systems, Inc. Changing a distributed storage volume from non-replicated to replicated
US11073888B2 (en) * 2019-05-31 2021-07-27 Advanced Micro Devices, Inc. Platform power manager for rack level power and thermal constraints
US11100173B2 (en) 2019-06-18 2021-08-24 Lucid Software, Inc. Autolayout of visualizations based on graph data
US11226847B2 (en) 2019-08-29 2022-01-18 Robin Systems, Inc. Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US11249851B2 (en) 2019-09-05 2022-02-15 Robin Systems, Inc. Creating snapshots of a storage volume in a distributed storage system
US11520650B2 (en) 2019-09-05 2022-12-06 Robin Systems, Inc. Performing root cause analysis in a multi-role application
US11853806B2 (en) * 2019-09-27 2023-12-26 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
US11113158B2 (en) 2019-10-04 2021-09-07 Robin Systems, Inc. Rolling back kubernetes applications
US11347684B2 (en) 2019-10-04 2022-05-31 Robin Systems, Inc. Rolling back KUBERNETES applications including custom resources
KR102231359B1 (ko) * 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법
KR102231358B1 (ko) * 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템
US11263105B2 (en) * 2019-11-26 2022-03-01 Lucid Software, Inc. Visualization tool for components within a cloud infrastructure
US11169671B2 (en) 2019-11-26 2021-11-09 Lucid Software, Inc. Alteration of a source data visualization based on user input
US11403188B2 (en) 2019-12-04 2022-08-02 Robin Systems, Inc. Operation-level consistency points and rollback
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
WO2021195419A1 (en) * 2020-03-26 2021-09-30 EOS Defense Systems USA, Inc. System for hosting data link layer agent, protocol, and management functions
US10901881B1 (en) 2020-05-12 2021-01-26 Coupang Corp. Systems and methods for test deployment of computational code on virtual servers
CN113742028A (zh) * 2020-05-28 2021-12-03 伊姆西Ip控股有限责任公司 资源使用方法、电子设备和计算机程序产品
US11108638B1 (en) 2020-06-08 2021-08-31 Robin Systems, Inc. Health monitoring of automatically deployed and managed network pipelines
US11528186B2 (en) 2020-06-16 2022-12-13 Robin Systems, Inc. Automated initialization of bare metal servers
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US20220067423A1 (en) * 2020-08-26 2022-03-03 Beijing Didi Infinity Technology And Development Co., Ltd. Method and system for providing and applying a unified decoding efficiency score with focus on environmental impact
US11740980B2 (en) 2020-09-22 2023-08-29 Robin Systems, Inc. Managing snapshot metadata following backup
KR102413922B1 (ko) * 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템
US11307902B1 (en) * 2020-09-30 2022-04-19 Kyndryl, Inc. Preventing deployment failures of information technology workloads
US11743188B2 (en) 2020-10-01 2023-08-29 Robin Systems, Inc. Check-in monitoring for workflows
US11271895B1 (en) 2020-10-07 2022-03-08 Robin Systems, Inc. Implementing advanced networking capabilities using helm charts
US11456914B2 (en) 2020-10-07 2022-09-27 Robin Systems, Inc. Implementing affinity and anti-affinity with KUBERNETES
CN112217676B (zh) * 2020-10-13 2023-01-31 北京工业大学 一种基于混合元启发式算法的Kubernetes容器集群节点选取方法
US11750451B2 (en) 2020-11-04 2023-09-05 Robin Systems, Inc. Batch manager for complex workflows
US20220147378A1 (en) * 2020-11-09 2022-05-12 International Business Machines Corporation Container image creation and deployment
US11762850B2 (en) * 2020-11-09 2023-09-19 International Business Machines Corporation Content-aware node selection for container creation
CN114553688B (zh) * 2020-11-25 2023-07-14 腾讯科技(深圳)有限公司 云计算部署方法、装置、设备及计算机可读存储介质
US11556361B2 (en) 2020-12-09 2023-01-17 Robin Systems, Inc. Monitoring and managing of complex multi-role applications
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
CN112506670B (zh) * 2021-02-02 2021-04-20 上海有孚智数云创数字科技有限公司 一种多节点自动化运维任务处理方法、系统及存储介质
US11876855B2 (en) 2021-02-26 2024-01-16 TurbineOne, Inc. Discoverability and resource management of mesh-networked mobile nodes
US11099819B1 (en) 2021-03-12 2021-08-24 Dovel Technologies, Llc Methods and systems for operationalizing artificial intelligence models using web-based user interfaces
US11704165B2 (en) * 2021-03-16 2023-07-18 International Business Machines Corporation Persistently available container services through resurrection of user jobs in new compute container instances designated as lead instances
US11469944B1 (en) * 2021-06-14 2022-10-11 Oracle International Corporation Techniques for migrating worker nodes to a new manager instance
US11966748B2 (en) * 2021-09-30 2024-04-23 Ati Technologies Ulc Dynamic boot configuration
US11968257B2 (en) 2022-01-14 2024-04-23 TurbineOne, Inc. Pruning a distributed database for an ad-hoc peer-to-peer (P2P) network
DE102022202944A1 (de) * 2022-03-25 2023-09-28 Robert Bosch Gesellschaft mit beschränkter Haftung Gerätesystem, Verfahren zur Konfiguration des Gerätesystems, Computerprogramm sowie Speichermedium
US11943110B2 (en) * 2022-05-13 2024-03-26 Charter Communications Operating, Llc Automated network generation, validation and implementation in a production environment
US11909621B2 (en) * 2022-06-03 2024-02-20 Linquest Corporation Systems and methods for implementing a network resiliency testbed emulator
KR102492409B1 (ko) * 2022-06-22 2023-01-27 (주) 이노트리 멀티/하이브리드 클라우드 실시간 모니터링 시스템
CN115061898B (zh) * 2022-08-17 2022-11-08 杭州安恒信息技术股份有限公司 基于Hadoop分析平台的自适应限速方法、装置、设备及介质
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010039497A1 (en) 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
US7444538B2 (en) * 2004-09-21 2008-10-28 International Business Machines Corporation Fail-over cluster with load-balancing capability
US9501329B2 (en) 2009-05-08 2016-11-22 Rackspace Us, Inc. Methods and systems for cloud computing management
CN102193832B (zh) * 2010-03-11 2013-03-27 精英电脑股份有限公司 云端计算资源排程方法与应用的系统
CN101986272A (zh) * 2010-11-05 2011-03-16 北京大学 一种云计算环境下的任务调度方法
CN102004671B (zh) * 2010-11-15 2013-03-13 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
CN102111337B (zh) * 2011-03-14 2013-05-15 浪潮(北京)电子信息产业有限公司 任务调度方法和系统
US8601000B1 (en) * 2011-06-27 2013-12-03 Amazon Technologies, Inc. System and method for conditionally updating an item with attribute granularity
US8572091B1 (en) * 2011-06-27 2013-10-29 Amazon Technologies, Inc. System and method for partitioning and indexing table data using a composite primary key
CN102325192B (zh) * 2011-09-30 2013-11-13 上海宝信软件股份有限公司 云计算实现方法和系统
US20140047342A1 (en) * 2012-08-07 2014-02-13 Advanced Micro Devices, Inc. System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
US8887056B2 (en) * 2012-08-07 2014-11-11 Advanced Micro Devices, Inc. System and method for configuring cloud computing systems

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017020251A1 (en) * 2015-08-04 2017-02-09 Hewlett Packard Enterprise Development Lp Load testing based on network virtualization using a container
CN107273178A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 配置虚拟化系统的方法和装置
CN107273178B (zh) * 2016-04-06 2021-07-27 阿里巴巴集团控股有限公司 配置虚拟化系统的方法和装置
TWI619026B (zh) * 2016-10-21 2018-03-21 元智大學 解決分散式雲端運算平台於虛擬化下衝突的獨立資源分派系統及雲端服務系統
CN111492347A (zh) * 2018-01-30 2020-08-04 华睿泰科技有限责任公司 用于更新容器的系统和方法
CN111492347B (zh) * 2018-01-30 2023-11-24 华睿泰科技有限责任公司 用于更新容器的系统和方法
CN110188022A (zh) * 2019-05-09 2019-08-30 国家计算机网络与信息安全管理中心 一种基于Java的集群性能测试方法及系统
CN114253224A (zh) * 2020-09-22 2022-03-29 罗克韦尔自动化技术公司 将容器编排系统与操作技术设备集成
CN113220237A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种分布式存储方法、装置、设备及存储介质
CN115357309A (zh) * 2022-10-24 2022-11-18 深信服科技股份有限公司 一种数据处理方法、装置、系统和计算机可读存储介质
CN115357309B (zh) * 2022-10-24 2023-07-14 深信服科技股份有限公司 一种数据处理方法、装置、系统和计算机可读存储介质

Also Published As

Publication number Publication date
EP2883139A1 (en) 2015-06-17
JP2015524596A (ja) 2015-08-24
KR101614052B1 (ko) 2016-04-20
KR20150031502A (ko) 2015-03-24
WO2014025585A1 (en) 2014-02-13
JP5926864B2 (ja) 2016-05-25
US20140047341A1 (en) 2014-02-13
CN104520814B (zh) 2017-04-19
US8887056B2 (en) 2014-11-11

Similar Documents

Publication Publication Date Title
CN104520814A (zh) 用于配置云计算系统的系统和方法
CN104541247A (zh) 用于调整云计算系统的系统和方法
US9152532B2 (en) System and method for configuring a cloud computing system with a synthetic test workload
US9262231B2 (en) System and method for modifying a hardware configuration of a cloud computing system
US9658895B2 (en) System and method for configuring boot-time parameters of nodes of a cloud computing system
US10623269B2 (en) Operator fusion management in a stream computing environment
US20140047095A1 (en) System and method for tuning a cloud computing system
US20140047342A1 (en) System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
US20140047079A1 (en) System and method for emulating a desired network configuration in a cloud computing system
CN104657194B (zh) 用于计算网络中动作的影响的方法和系统
CN103713935A (zh) 一种在线管理Hadoop集群资源的方法和装置
CN110532044A (zh) 一种大数据批处理方法、装置、电子设备及存储介质
Lin et al. Modeling and simulation of spark streaming
Tankovic et al. Transforming vertical web applications into elastic cloud applications
Lebre et al. Vmplaces: A generic tool to investigate and compare vm placement algorithms
Straesser et al. Kubernetes-in-the-Loop: Enriching Microservice Simulation Through Authentic Container Orchestration
Jha et al. A cost-efficient multi-cloud orchestrator for benchmarking containerized web-applications
Alshammari Evaluation of cloud computing modelling tools: simulators and predictive models
Pimenta 5G Network Slicing
van Hoorn et al. Kubernetes-in-the-Loop: Enriching Microservice Simulation Through Authentic Container Orchestration
Cavallo H2F: a hierarchical Hadoop framework to process Big Data in geo-distributed contexts
Zhang Efficient Resource Management of Cloud Native Systems
Camacho Trujillo SCARF: serverless cloud auto resource framework
Griesinger et al. Final System Architecture and Integration
Domaschka et al. Final System Architecture and Integration: RECAP Deliverable 4.4

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant