用于配置云计算系统的系统和方法.pdf

上传人:e2 文档编号:4045072 上传时间:2018-08-12 格式:PDF 页数:81 大小:6.86MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380042312.2

申请日:

2013.07.31

公开号:

CN104520814A

公开日:

2015.04.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20130731|||公开

IPC分类号:

G06F9/50

主分类号:

G06F9/50

申请人:

超威半导体公司

发明人:

毛里西奥·布莱特尼特斯; 基思·A·洛韦里; 帕特里克·卡名斯基; 安东·切诺夫

地址:

美国加利福尼亚州

优先权:

13/568,368 2012.08.07 US

专利代理机构:

上海胜康律师事务所31263

代理人:

樊英如; 李献忠

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书
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所述的系统,还包括:
至少一个处理器;以及
包含可执行指令的存储器,当由所述至少一个处理器执行时,所述可执 行指令使所述至少一个处理器在显示器上提供图形用户界面,所述图形用户 界面包括表征所述节点配置器、所述工作负载容器配置器和所述工作负载配 置器的数据。

16.   17.一种配置由一个或多个计算设备执行的计算系统的方法,所述方法 包括:
基于经由用户界面接收的用户选择从多个可用工作负载容器模块中选择 工作负载容器模块以工作在所述计算系统的节点簇的每个节点上,所述选择 的工作负载容器模块包括可选择代码模块,当由每个节点执行时,所述可选 择代码模块作用以协调工作负载在所述节点簇上的执行;以及
用所述选择的工作负载容器模块配置所述节点簇的每个节点以执行所述 工作负载,以使所述工作负载的处理跨所述节点簇分布。

17.   18.如权利要求17所述的方法,其中,所述一个或多个计算设备包括所 述计算系统的控制服务器,所述多个可用工作负载容器模块包括被存储到远 离所述计算系统的存储器上的定制工作负载容器模块,并且所述定制工作负 载容器模块包括用于协调所述工作负载的执行的多个用户定义指令。

18.   19.如权利要求17所述的方法,还包括提供用户界面,所述用户界面包 括可选择工作负载容器数据,其中选择所述工作负载容器模块基于对所述可 选择工作负载容器数据的用户选择。

19.   20.如权利要求17所述的方法,还包括基于经由所述用户界面接收的用 户输入修正每个节点的所选择工作负载容器模块的工作参数,所述工作参数 关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的至少一者。

20.   21.如权利要求17所述的方法,其中,所述配置包括将所述选择的工作 负载容器模块安装到所述节点簇的每个节点上并在所述节点簇上通过所述选 择的工作负载容器模块发起所述工作负载的执行,以使所述节点簇的每个节 点处理所述工作负载的至少一个处理线程。

21.   22.一种计算配置系统,包括:
工作负载容器配置器,其作用以接收用户输入并基于所述用户输入从多 个可用工作负载容器模块中选择一工作负载容器模块,所述选择的工作负载 容器模块包括可选择代码模块,当由计算系统的节点簇执行时,所述可选择 代码模块作用以协调工作负载的执行;以及
节点配置器,其作用以通过所述选择的工作负载容器模块配置所述计算 系统的所述节点簇的每个节点以执行所述工作负载,以使所述工作负载的处 理跨所述节点簇分布。

22.   23.如权利要求22所述的系统,其中所述多个可用工作负载容器模块包 括被存储在远离所述计算配置系统的存储器上的定制工作负载容器模块,并 且所述定制工作负载容器模块包括配置文件,所述配置文件包括作用以协调 所述工作负载的执行的多个用户定义指令。

23.   24.如权利要求22所述的系统,还包括:
至少一个处理器;以及
包含可执行指令的存储器,当由所述至少一个处理器执行时,所述可执 行指令使所述至少一个处理器在显示器上提供图形用户界面,所述图形用户 界面包括表征所述工作负载容器配置器和所述节点配置器的数据。

24.   25.如权利要求22所述的系统,其中,所述工作负载容器配置器进一步 作用以基于经由用户界面接收的用户输入而修正所述选择的工作负载容器模 块的工作参数,所述工作参数关联于读/写操作、文件系统操作、网络嵌套操 作和归类操作中的至少一者。

25.   26.如权利要求22所述的系统,其中,所述节点配置器进一步作用以将 所述选择的工作负载容器模块安装到所述节点簇的每个节点上并在所述节点 簇上通过所述选择的工作负载容器模块发起所述工作负载的执行,以使所述 节点簇的每个节点处理所述工作负载的至少一个处理线程。

26.   27.一种配置由一个或多个计算设备执行的计算系统的方法,所述方法 包括:
从所述计算系统的多个可用节点中选择一节点簇,所述节点簇作用以共 享工作负载的处理;以及
基于经由用户界面接收的用户输入修正所述节点簇的每个节点的相同工 作负载容器模块的工作参数,所述工作负载容器模块包括代码模块,当由所 述节点簇的每个节点执行时,所述代码模块作用以基于所述工作参数协调通 过所述节点簇的工作负载的执行,所述工作参数关联于读/写操作、文件系统 操作、网络嵌套操作和归类操作中的至少一者。

27.   28.如权利要求27所述的方法,还包括提供所述用户界面,所述用户界 面包括可选择工作负载容器数据,其中修正所述工作负载容器模块的所述工 作参数基于对所述可选择工作负载容器数据的用户选择。

28.   29.如权利要求27所述的方法,其中,与所述读/写操作关联的所述工 作参数包括用于读/写操作的存储器缓存大小和读/写操作期间传递的数据块的 大小中的至少一者。

29.   30.如权利要求27所述的方法,其中,与所述文件系统操作关联的工作 参数包括被存储在每个节点的存储器中的文件系统记录数和分配以处理所述 文件系统的请求的每个节点的处理线程数中的至少一者。

30.   31.如权利要求27所述的方法,其中,与所述归类操作关联的工作参数 包括当执行归类操作时合并的数据流的数目。

31.   32.如权利要求27所述的方法,其中,所述节点簇连接至通信网络,并 且其中所述方法还包括在所述工作负载执行期间基于经由所述用户界面接收 的用户输入而调整至少一个通信网络参数以限制所述通信网络的性能。

32.   33.一种计算配置系统,包括:
节点配置器,其作用以从计算系统的多个可用节点中选择节点簇,所述 节点簇作用以共享所述工作负载的处理;以及
工作负载容器配置器,其作用以基于经由用户界面接收的用户输入而修 正所述节点簇的每个节点的相同工作负载容器模块的工作参数,所述工作负 载容器模块包括代码模块,当由所述节点簇的每个节点执行时,所述代码模 块作用以基于所述工作参数协调通过所述节点簇对所述工作负载的执行,所 述工作参数关联于读/写操作、文件系统操作、网络嵌套操作和归类操作中的 至少一者。

33.   34.如权利要求33所述的系统,其中,与所述读/写操作关联的工作参 数包括用于读/写操作的存储器缓存大小和读/写操作期间传递的数据块的大小 中的至少一者。

34.   35.如权利要求33所述的系统,其中,与所述文件系统操作关联的工作 参数包括被存储在每个节点的存储器中的文件系统记录数和分配以处理所述 文件系统的请求的每个节点的处理线程数中的至少一者。

35.   36.如权利要求33所述的系统,其中,与所述归类操作关联的工作参数 包括当执行归类操作时合并的数据流的数目。

36.   37.如权利要求33所述的系统,其中,所述节点簇连接至通信网络,并 且其中所述系统还包括网络配置器,其在所述工作负载执行期间基于经由所 述用户界面接收的用户输入而调整至少一个通信网络参数以限制所述通信网 络的性能。

37.   38.如权利要求33所述的系统,其中,所述用户界面包括图形用户界 面,所述系统还包括至少一个处理器和包含可执行指令的存储器,当由所述 至少一个处理器执行时,所述可执行指令使所述至少一个处理器在显示器上 提供图形用户界面,所述图形用户界面包括表征所述节点配置器和所述工作 负载容器配置器的数据。

说明书

说明书用于配置云计算系统的系统和方法
技术领域
本公开总体涉及计算系统领域,且更具体地涉及用于配置云计算 系统和分析云计算系统的性能的方法和系统。
背景技术
云计算牵涉到在例如因特网的网络上传递主机的服务。云计算系 统允许将计算能力和存储能力作为一种服务传递给终端用户。云计算系统包 括工作在分布式通信网络上的多个服务器或“节点”,并且每个节点包括本 地处理能力和存储器。例如,云计算系统的每个节点包括用于提供计算能力 的至少一个处理设备用于提供存储能力的存储器。用户可在云或节点“簇” 上远程地运行应用或存储数据,而不是本地运行一应用或本地存储数据。例 如,当软件应用和/或关联于该软件应用的数据被存储和/或执行在远程位置处 的云节点时,终端用户可通过本地计算机上的web浏览器或某些其它软件应 用访问基于云的应用。云计算资源一般按需被分配给终端用户,其中云计算 系统开销对应于由终端用户利用的实际资源量。
计算任务以工作负载的形式跨云计算系统的多个节点分布。这些 节点工作以共享工作负载的处理。工作负载(也被称为“内核”)包括在节点 云上进行和执行的计算工作或任务。包括软件或固件代码和任何必要数据的 集合的工作负载包括在节点簇上执行的任何应用或程序或应用或程序的一部 分。例如,一个示例性工作负载是实现一个或多个算法的应用。示例性算法 包括例如分簇、归类、分类或过滤一数据集。其它示例性工作负载包括面向 服务的应用,所述应用被执行以向终端用户提供计算服务。在一些实施例 中,工作负载包括被复制并在多个节点上同时执行的单个应用。负载平衡器 跨节点簇分配通过工作负载执行的请求,以使节点共享与工作负载关联的处 理负载。节点簇协调工作负载执行的结果以产生最终结果。
工作负载容器工作在每个节点上,该工作负载容器包括执行工作 负载容器模块(例如软件或固件代码)的节点的一个或多个处理器。工作负载 容器是工作负载的执行框架以提供发起和策划节点簇上的工作负载的执行的 软件环境。工作负载容器一般提供针对节点簇上的工作负载的具体类别的执 行框架。工作负载容器配置关联的节点以作为云节点工作以使节点执行工作 负载,与其它云节点共享工作负载执行的结果,并与其它云节点协作和通 信。在一个实施例中,工作负载容器包括应用程序接口(API)或基于XML的 接口,以与其它节点和与关联节点的其它应用和硬件形成接口。
一个示例性工作负载容器是基于Java的Apache Hadoop,它为映 射-还原工作负载提供映射-还原框架和分布式文件系统(HDFS)。与Hadoop工 作负载容器一起工作的节点簇一般包括主节点以及多个工作者节点。Hadoop 工作负载容器协调对每个节点的主状态或工作者状态的分配并通知每个节点 其正工作在云中。主节点跟踪工作(即工作负载)开始和结束以及文件系统元 数据。在映射-还原框架的“映射”阶段,任务或工作负载被分割成多个部分 (即一个或多个处理线程中的多个组),并且工作负载的这些部分被分配给工 作者节点,所述工作者节点处理这些线程和关联的输入数据。在“还原”阶 段,来自每个工作者节点的输出被收集和合并以产生最终结果或答案。 Hadoop的分布式文件系统(HDFS)被用于存储数据并在工作者节点之间通信数 据。HDFS文件系统支持数据复制以通过存储数据和文件的多个副本而增加 数据可靠的可能性。
在现有技术的云计算平台中设置或配置节点簇是需要陡峭学习曲 线的复杂过程。云软件和工作负载必须被单独地部署至每个节点,并且任何 配置改变也必须被单独地部署至每个节点。分析节点簇的性能并优化云设置 牵涉到多个独立变量并经常是耗时的,其需要适于监视和分析具体应用的专 门接口。尤其,云操作者或工程师必须创建命令以获得关于工作负载如何运 作的数据并获得工作负载的实际结果。另外,这种数据以专门针对手边的系 统配置的格式出现,并且数据必须以适于性能分析的形式由云工作者或工程 师整合。云操作者或工程师需要了解云机制的具体细节、任何联网问题、与 系统监管关联的任务以及可用性能分析工具的部署和数据格式。此外,监视 和分析节点簇上的工作负载的性能是复杂的、耗时的,并依赖于具体的云配 置。云工作者或工程师不会总是了解具体云系统的所有配置和硬件信息,这 使准确的性能分析变得困难。
当今可获得若干云计算平台,例如包括Amazon Web  Services(AWS)和OpenStack。包括弹性计算云(EC2)的Amazon AWS将节点 簇(服务器)租给终端用户以用作云计算系统。AWS允许用户分配节点簇并在 节点簇上执行工作负载。AWS限制用户以使其仅在具有多种约束的Amazon 提供的服务器硬件上执行工作负载,所述多种约束例如需要专门硬件配置和 软件配置。OpenStack允许用户在用户提供的硬件上建立和管理节点簇。 AWS和OpenStack缺乏快速地配置和部署工作负载和工作负载容器软件至每 个节点、修正网络参数和集合来自所有簇节点的性能数据的机制。
一种测试具体本地处理器的性能的已知方法包括基于用户特定参 数创建可由本地处理器执行的综合的二进制代码。然而,二进制综合代码的 产生需要用户对用户特定参数进行硬编码,这需要大量研发时间和对目标处 理器的架构的在先了解。这种硬编码的综合代码必须被撰写以面向目标处理 器的具体指令集架构(ISA)(例如x86)和具体微架构。指令集架构指标识数据 类型/格式、指令、数据块大小、处理寄存器、存储器寻址模式、存储器架 构、中断和异常处理、I/O等的计算机架构的组件。微架构指标识数据路径、 数据处理元件(例如逻辑门、算术逻辑单元(ALU)等)、数据存储元件(例如寄 存器、高速缓冲存储器等)等以及处理器如何履行指令集架构的计算机架构的 组件。因而,综合代码必须通过经修正的或新的硬编码参数和指令被重新工 程设计以执行其它处理器的指令集架构和不同微架构的变例。因此,这种硬 编码的综合代码不适于测试云计算系统的多个节点。
测试本地处理器的性能的另一方法是执行工业标准工作负载或踪 迹,例如由标准性能评估公司(SPEC)提供的工作负载,以将处理器的性能与 性能基准进行比较。然而,执行整个工业标准工作负载经常需要大量仿真时 间。从工作负载中提取相关的较小踪迹以供处理器执行可减少仿真时间但也 需要额外的工程设计努力以标识和提取相关踪迹。此外,对于处理器的不同 架构配置,必须重复从工作负载中选择工业标准工作负载或提取较小的踪 迹。
向终端用户传递计算能力和存储能力作为服务的当前云系统缺乏 改变云系统的节点簇的每个节点的引导时间配置的机制。例如,引导时间配 置改变必须通过工程师或程序员硬编码到云的每个节点上,以修正节点的引 导时间参数,这需要大量的时间并且是麻烦的。此外,工程师在撰写配置代 码之前必须对节点簇的硬件和计算机架构有详尽的了解。
向终端用户传递计算能力和存储能力作为服务的典型云系统缺乏 允许用户规定和修正所分配的节点簇的网络配置的机制。在许多云系统中, 用户只能请求一般类型节点并且对网络拓扑(即节点的物理和逻辑网络连接性) 以及所请求的节点的网络性能特性几乎没有或根本没有直接控制。Amazon  AWS例如允许用户选择物理地位于国家或世界的相同一般区域内(例如美国 东部或美国西部、欧洲等等)的节点,但节点的网络连接性和节点的网络性能 特性是不可选择或不可修改的。此外,尽管处于国家的相同一般区域内或甚 至在同一数据中心内,所选择节点中的一些可能物理地位于远离其它所选择 的节点的位置。例如,由云系统分配的节点可能位于分布式数据中心内物理 上远离的不同机架上,由此导致节点之间下降的或不连续的网络性能。
类似地,在典型云系统中,终端用户对节点簇的实际硬件资源具 有限制或没有控制权。例如,当分配节点时,用户只能请求一般类型的节 点。节点的每种可用类型可通过节点的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)服务器、Apache  Tomcat服务器、使用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工作负载容器模块。Apache  Hadoop的版本和构造变量可分别基于在通用标签354下的下拉菜单360、362 而选择。所选择的工作负载容器模块的工作参数可基于经由扩展标签356和 定制标签358提供的用户输入通过工作负载容器配置器76调整。可供调整的 工作参数解说地依赖于所选择的工作负载容器模块。例如,如果将Apache  Hadoop选择作为工作负载容器模块,图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 add  dev”。配置器22创建新的排队原则,例如通过使用命令“tc qdisc add  dev”。配置器22对类别设定要求的网络性质或排队原则“qdisc”。在类别 处规定带宽和猝发网络性质,并在排队原则处规定所有其它性质(延时、出错 率等)。对于每个节点Yn,Gyn是节点Yn所属的组。配置器22基于目的地IP 地址(节点Yn的地址)配置过滤器并将其赋予类Gyn。这可例如使用命令“tc  filter 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、OpenStack  API、定制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选择提供最佳性能特性和其它标识特 性(例如使用成本)的一组配置参数。
除了其它优势外,该方法和系统允许经由用户界面选择、 配置和部署节点簇、工作负载、工作负载容器和网络配置。另外,该方法和 系统允许控制和调整云配置参数,由此在节点、网络、工作负载容器和/或工 作负载的变化特性下实现云计算系统的性能分析。其它优势将由本领域内技 术人员发觉。
尽管已将本发明描述为具有优选的设计,然而本发明可在 本公开的精神和范围内作进一步修正。本申请因此旨在覆盖本发明使用其一 般原理的任何变化、使用或调整。此外,本申请旨在覆盖对于本公开的这些 背离作为本公开涉及的领域内的已知或惯常实践并落在所附权利要求书的界 限内。

用于配置云计算系统的系统和方法.pdf_第1页
第1页 / 共81页
用于配置云计算系统的系统和方法.pdf_第2页
第2页 / 共81页
用于配置云计算系统的系统和方法.pdf_第3页
第3页 / 共81页
点击查看更多>>
资源描述

《用于配置云计算系统的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于配置云计算系统的系统和方法.pdf(81页珍藏版)》请在专利查询网上搜索。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1