用于管理云调度环境中的服务器硬件资源的方法、系统和设备的制作方法
【专利摘要】用于管理云调度环境中的硬件资源的方法、系统和设备包括分区控制器。分区控制器可以使用签入服务来管理云数据中心中的节点服务器的分组。基于节点服务器的一个或多个硬件特性、服务器健康信息、工作量调度或者设施管理参数、和/或其它标准,签入服务允许服务器分组自动地被创建。
【专利说明】用于管理云调度环境中的服务器硬件资源的方法、系统和设备
【背景技术】
[0001]“云”计算常常是指作为服务的计算资源的提供,其通常通过在与请求服务的位置远离的位置处联网在一起的数个计算机服务器实现。云数据中心是指组成云或者云的特定部分的服务器的物理布置。例如,服务器可以在数据中心中物理地布置成房室、分组、行和机架(crack)。数据中心可以具有一个或多个分区,其可以包括服务器的一个或多个房室。每一个房室可以具有服务器的一个或多个行,并且每一行可以包括一个或多个机架。每一个机架可以包括一个或多个单独的服务器节点。分区、房室、机架和/或行中的服务器可以基于数据中心设施的物理基础设施要求而被布置成分组,所述要求可以包括功率、能量、热学、热量、和/或其它要求。
[0002]虽然其物理位置在数据中心内,但是服务器或者它的资源的部分可以根据实际的或者预期的使用要求进行分配(例如,以用于由数据中心的不同客户来使用),所述使用要求诸如安全性、服务质量、吞吐量、处理性能和/或其它标准。作为示例,可以使用虚拟化将一个客户的计算工作量在多个物理服务器(其可以位于数据中心的不同行、机架、分组或房室中)之间进行分担,或者在同一服务器上的多个进程上进行分担。因而,在虚拟化的上下文中,服务器可以逻辑地分组以满足工作量要求。
[0003]云调度系统是指被用来管理云数据中心中的服务器资源的计算机软件。云调度系统试图利用设施管理标准和/或其它要求来调解客户的工作量要求,并且相应地分配云的服务器资源。在一些情形中,调度可以是复杂的,其通过包含服务器的异构分组的物理配置来实现,例如其中各个服务器具有不同的硬件配置的分区、房室、分组、行或机架。这可以是常见状况,因为出于成本原因或者其它原因,许多数据中心仅在需要的时候更换或升级服务器(例如,而不是一次升级整个分组)。
【专利附图】
【附图说明】
[0004]通过示例的方式而不是限制的方式在附图中对本公开中所描述的概念进行说明。出于说明的简便和清楚的目的,在图中所示的元素未必按照比例绘制。例如,某些元素的尺寸出于清楚的目的而相对于其它元素进行夸大。此外当适合的时候,参考标号在各图当中已经进行重复以指示对应的或者类似的元素。
[0005]图1是用于管理云数据中心环境中的服务器硬件资源的系统的至少一个实施例的简化框图;
图2是图1的系统的可执行模块的至少一个实施例的简化模块图;
图3是用于向图1的系统中的分区添加服务器的分组的方法的至少一个实施例的简化流程图;
图4是用于向图1的系统中的分组添加服务器节点的方法的至少一个实施例的简化流程图;
图5是用于向图1的系统中的分组添加服务器节点的方法的至少一个附加实施例的简化流程图;以及
图6是用于使得服务器节点能够订阅图1的系统中的一个或多个分组的方法的至少一个实施例的简化流程图。
【具体实施方式】
[0006]尽管本公开的概念易受各种变型和替代形式的影响,但是已经通过示例的方式在附图中示出了它的具体实施例并且将在本文中对其进行详细地描述。然而应理解,并不旨在将本公开的概念限制于所公开的特定形式,而是相反地,意图覆盖与本公开和所附权利要求相一致的所有变型、等价替换以及替代形式。
[0007]在以下描述中,阐述了诸如逻辑实现、操作码、指定运算对象的装置、资源划分/共享/复制实现、系统组件的类型和相互关系、以及逻辑划分/集成选择的众多具体细节以便提供对本公开的更全面理解。然而本领域技术人员将了解,本公开的实施例可以在没有这些具体细节的情况下实践。在其它实例中,控制结构、门级电路和完整的软件指令序列并未被详细地示出以便不混淆本文中所描述的概念的描述。本领域技术人员利用所包括的描述将能够在没有过度实验的情况下实现适当的功能性。
[0008]在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每一个实施例可能并不必需包括所述特定的特征、结构或特性。此外,这样的短语未必是指同一个实施例。另外,当关于实施例描述特定的特征、结构或特性时,应提出,结合不管是否明确地描述的其它实施例实现这样的特征、结构或特性是在本领域技术人员的知识范围内的。
[0009]本文所描述的概念的实施例可以在硬件、固件、软件或其任何组合中实现。在计算机系统中实现的实施例可以包括组件之间的一个或多个点对点或者基于总线的互连。本文中所描述的概念的实施例还可以被实现为由一个或多个机器可读的或者计算机可读的存储介质承载的或者存储于其上的指令,该指令可以由一个或多个处理器读取和执行。机器可读的或者计算机可读的存储介质可以体现为用于以机器(例如,计算设备)可读的形式存储或传送信息的任何设备、机制或者物理结构。例如,机器可读的或者计算机可读的存储介质可以体现为(多个)只读存储器(ROM)设备;(多个)随机存取存储器(RAM)设备;磁盘存储介质;光学存储介质;闪速存储器设备;迷你或者微型SD卡、存储器棒以及其它。
[0010]在附图中,出于描述的简便性,可以示出示意性元素的具体布置或排序,诸如代表设备、模块、指令块和数据元素的那些。然而本领域技术人员应理解,附图中的示意性元素的具体排序或布置并不意味暗示着要求过程的特定顺序或序列,或者过程的分离。此外,附图中的示意性元素的包括并不意味暗示着在所有实施例中都要求这样的元素,或者由这样的元素所代表的特征在一些实施例中可能未被包括或者与其它元素相组合。
[0011]一般地,被用来代表指令块的示意性元素可以使用任何适当形式的机器可读指令来实现,诸如软件或固件应用、程序、功能、模块、例程、进程、过程、插件、小应用程序、微件、代码片段和/或其它,并且每一个这样的指令可以使用任何适当的编程语言、库、应用编程接口(API)、和/或其它软件开发工具来实现。例如,一些实施例可以使用Java、C++和/或其它编程语言来实现。类似地,被用来代表数据或者信息的示意性元素可以使用任何适当的电子布置或结构来实现,诸如寄存器、数据存储、表格、记录、阵列、索引、散列、映射、数、列表、图、文件(具有任何文件类型)、文件夹、目录、数据库和/或其它。
[0012]另外在其中诸如实线或虚线或箭头的连接元素被用来说明两个或更多个其它示意性元素之间或者它们当中的连接、关系或关联的附图中,任何这样的连接元素的缺失并不意味暗示着没有连接、关系或关联可以存在。换言之,元素之间的一些连接、关系或关联可能在图中并未示出以便不混淆本公开。此外出于说明的便利性,单个连接元素可以被用来代表元素之间的多个连接、关系或者关联。例如,在其中连接元素代表信号、数据或指令的通信的情况下,本领域技术人员应理解,这样的元素可以代表一个或多个信号路径(例如,总线)以实现通信,如可能需要的那样。
[0013]常规地,云调度系统依赖于集中式的工作量管理软件来初始地标识数据中心中的所有服务器并且通过周期性地轮询网络来确定何时添加新的服务器。管理软件典型地创建并维护云中的所有IP地址的列表。这种由上及下的服务器管理方案在云数据中心环境中并不是那么有用,在云数据中心环境中,硬件配置、工作量要求、各个服务器的健康状态、和/或设施管理策略可能频繁地变化,或者可能期望允许使用个体服务器来满足多个不同的或者重叠的要求。
[0014]现在参照图1,在一个实施例中,用于管理云数据中心环境102(其可以包括多个分区)的分区104中的服务器硬件的系统100包括分区管理器服务器110。说明性的分区管理器服务器I1操作分区控制器126和签入服务134。如以下详细描述的,分区控制器126和签入服务134使得个体节点服务器114能够发起加入分区104的过程。系统100还包括一个或多个分组管理器服务器112,它们中的每一个管理一个或多个节点服务器114的分组。每一个分组管理器服务器112可以发起将它的分组添加到分区104的过程。基于处理器硬件的能力,包括在每一个节点服务器114处可用的实时的“服务器健康”数据和/或其它标准,说明性的分区控制器126可以创建分组并且向分组指派节点。说明性的分组控制器142可以从它的分组中的节点服务器114收集各种数据,其可以被用来创建或者修正分组,以用于监控、生成警报,和/或用于其它目的。这样,云数据中心环境中的服务器硬件资源可以响应于处理器能力、服务器健康问题和/或各种其它参数的变化而被动态地分配和管理,而不会引起由上及下的方案的负担。
[0015]说明性的分区管理器服务器110包括至少一个处理器118、存储器122、输入/输出(I/O)子系统124、至少一个数据存储设备128、以及通信电路136。分区管理器服务器110可以体现为任何适当类型的服务器计算机或者其它计算设备,其能够在由分区管理器服务器110或者其任何组件施行的时候施行本文所描述的功能和特征。例如,分区管理器服务器110可以体现为计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、服务器、服务器阵列或者服务器农场、网站服务器、网络服务器、企业服务器、因特网服务器、工作站、迷你计算机、主机计算机、超级计算机、网络器件、网站器件、分布式计算系统、多处理器系统、基于处理器的系统、或者以上的任何组合。
[0016]说明性的处理器118包括至少一个处理器核120。除多个高速缓冲存储器之外,处理器118还包括或者以其它方式通信耦合到存储器122。存储器122可以体现为任何类型的适当存储器设备,诸如动态随机存取存储器设备(DRAM)、同步动态随机存取存储器设备(SDRAM)、双数据速率动态随机存取存储器设备(DDR SDRAM)、和/或其它易失性存储器设备。
[0017]处理器118还通信耦合到I/O子系统124。尽管并未具体地示出,但是说明性的I/o子系统124可以包括存储器控制器(例如,存储器控制器子系统或北桥)、输入/输出控制器(例如,输入/输出控制器子系统或南桥)、以及固件设备。当然在其它实施例中,可以使用具有其它配置的I/O子系统。例如在一些实施例中,I/O子系统124可以形成片上系统(SoC)的一部分,并且连同处理器118和分区管理器服务器110的其它组件一起并入在单个集成电路芯片上。因此将了解,在一些实施例中,I/O子系统124的每一个组件可以位于公共的集成电路芯片上。
[0018]I/O子系统124通信耦合到分区控制器126、签入服务134、数据存储设备128、通信电路136、以及一个或多个通信端口 138。分区控制器126体现为一个或多个计算机化的程序、逻辑和/或指令(例如,软件和/或固件),其被配置成管理分区104中的服务器计算机的布置。在下文参照图2和3描述涉及分区控制器126的操作的细节。签入服务134体现为一个或多个计算机化的程序、逻辑和/或指令(例如,软件和/或固件),其被配置成管理来自各种计算机服务器(例如,分组管理器服务器112和/或节点服务器114)的加入分区104的请求。涉及签入服务134的操作的细节在下文参照图2和4进行描述。
[0019]数据存储设备128的部分可以体现为用于存储数据和/或计算机指令的任何适当设备,诸如存储盘(例如,硬盘)、物理和/或逻辑存储设备的网络、和/或其它。在说明性的实施例中,分区标识符130和分区拓扑数据132驻留在数据存储设备128中。此外,分区控制器126和/或签入服务134的部分可以驻留在数据存储128中。分区标识符130、分区拓扑数据132、分区控制器126和/或签入服务134的部分可以在操作期间被拷贝到存储器122,以用于更快速的处理或其它原因。
[0020]通信电路136可以体现为一个或多个设备和/或电路,其被配置成使得分区管理器服务器110、(多个)分组管理器服务器112、和/或(多个)服务器节点之间或者它们当中能够经由通信网络116进行通信。通信电路136可以包括一个或多个有线和/或无线网络接口或“卡”以促进网络116的有线和/或无线部分之上的通信。如以下所描述的,(多个)通信端口 138被分区控制器126所使用以便与(多个)分组管理器服务器112和/或(多个)节点服务器114交换通信。根据系统100的特定设计或实现的要求,可以提供任何适当数目的通信端口 I到N,其中N为正整数。
[0021 ] 尽管并未具体地示出,但是I/O子系统124可以通信耦合到一个或多个外围设备,诸如显示器、触摸板、键盘、麦克风、扬声器、和/或其它,这例如取决于分区管理器服务器110的意图用途。此外应了解,分区管理器服务器110可以包括出于描述的清楚的目的而在图1中未示出的其它组件、子组件和设备。
[0022](多个)分组管理器服务器112可以体现为任何适当类型的服务器计算机或者其它计算设备,其在由(多个)分组管理器服务器112或其任何组件可施行时能够施行本文所描述的功能和特征。例如,(多个)分组管理器服务器112可以体现为以上在分组管理器服务器110的描述中所提及的计算设备的类型中的任一个。一般地,(多个)分组管理器服务器112包括与以上关于分组管理器服务器110描述的那些类似或相似的硬件组件(例如,处理器、存储器、I/O子系统、数据存储、通信电路);因此,在此不再重复那些描述。根据系统100的特定设计或实现的要求,在分区104中可以包括任何适当数目(I到Y)的分组管理器服务器112,其中Y为正整数。
[0023]分组控制器142体现为一个或多个计算机化的程序、逻辑和/或指令(例如,软件和/或固件),其被配置成使用分组标识符140、分组服务器数据144和消息队列或通道148来管理由分组管理器服务器112所管理的服务器的分组中的节点服务器114的布置。分组控制器142能够使用它的分组标识符140来发起加入分区104和/或数据中心环境102的任何其它分区的过程。可以在分组管理器服务器112处提供任何适当数目(I到M)的消息队列148,其中M为正整数,这取决于系统100的特定设计或实现的要求。一般地,消息队列148被配置成从分组中的节点服务器114接收状态消息。涉及分组控制器142的操作的细节在下文参照图2和5进行描述。
[0024](多个)节点服务器114可以体现为任何适当类型的服务器计算机或者其它计算设备,其在由(多个)节点服务器114或其任何组件可施行时能够施行本文所描述的功能和特征。例如,(多个)节点服务器114可以体现为以上关于分区管理器服务器110的描述中所提及的计算设备的类型中的任一个。一般地,(多个)节点服务器114包括与以上关于分区管理器服务器110所描述的那些相似或类似的硬件组件(例如,处理器、存储器、I/O子系统、数据存储、通信电路)。说明性的(多个)节点服务器114包括至少一个处理器160。说明性的处理器160包括至少一个处理器核162。除多个高速缓冲存储器之外,处理器160还包括或者以其它方式通信耦合到存储器164。处理器160还通信耦合到I/O子系统166。I/O子系统166通信耦合到节点标识符150、节点控制器152、通信电路154、通信端口 156、以及数据存储设备168。数据存储设备168的部分可以体现为用于存储数据和/或计算机指令的任何适当的设备,诸如存储盘(例如硬盘)、物理和/或逻辑存储设备的网络、和/或其它。根据系统100的特定设计或实现的要求,可以在分区104中包括任何适当数目(I至Z)的节点服务器114,其中Z为正整数。
[0025]节点控制器152体现为一个或多个计算机化的程序、逻辑和/或指令(例如,软件和/或固件),其被配置成使用(除其它之外)通信电路154和通信端口 156来管理节点服务器114与系统100的其它组件的通信。节点控制器152和/或节点标识符150的部分可以驻留在数据存储设备168中。在一些实施例中,节点标识符150可以存储在与处理器160或处理器核162相关联的非易失性存储器中(例如,在闪存中)。涉及节点控制器152的操作的细节在下文参照图2和6进行描述。
[0026]网络116可以体现为任何类型的有线和/或无线电信网络。例如,网络116可以体现为或者以其它方式包括一个或多个公共或专用蜂窝网络、电话、数字用户专线(DSL)或者线缆网络、局域或广域网络、公共可用的全球网络(例如因特网)、或者其任何组合。例如在一些实施例中,网络116可以体现为或者以其它方式包括全球移动通信系统(GSM)蜂窝网络。附加地,网络116可以包括促进分区管理器服务器110、节点服务器114和分组管理器服务器112之间或者它们当中的通信的任何数目的附加设备(如果需要的话),诸如路由器、交换机、中间计算机和/或其它。可以使用任何适当的通信协议(例如,TCP/IP)以实行网络116之上的通信,这取决于例如网络116的特定类型或配置。在一些实施例中,可以使用广播消息传送框架和/或“发布和订阅”通信环境。例如在一些实施例中,可以与先进的消息队列协议(AMQP)、主动消息队列(“主动MQ”)或者类似的消息传送框架相组合地使用零配置联网(Zeroconf )或者类似的网络通信环境。
[0027]—般地,分区管理器服务器110、(多个)分组管理器服务器112、以及(多个)节点服务器114的组件通过一个或多个信号路径通信耦合,如图1中所示。这样的信号路径可以体现为能够促进相应设备之间的通信的任何类型的有线或者无线信号路径。例如,信号路径可以体现为任何数目的电线、印刷电路板迹线、通路、总线、点对点互连、中间设备、和/或类似物。此外,一般来说,以上所述计算设备的一些组件可以并入在主板上,而其它组件可以经由例如外围端口通信耦合到主板。
[0028]现在参照图2,在系统100的实施例200中,说明性的分区控制器126、签入服务134、分组控制器140以及节点控制器152中的每一个体现为一个或多个计算机化的模块(例如,软件和/或固件)。说明性的分区控制器126包括广播模块210、监听器模块212、通道创建器模块214、以及消息通信模块216。如以下参照图3所描述的,在操作中,广播和监听器模块210,212使得分组管理器服务器112和/或节点服务器114能够“发现”分区管理器服务器110的存在并且订阅它的分区104。通道创建器模块214创建一个或多个通信通道,其被配置成从已经订阅分区104的分组管理器服务器112接收数据包以用于警报、监控、分析或者其它目的。消息通信模块216配置通信电路136和通信端口 138以实现消息传送框架,其能够处理本文所描述的通信特征。例如,在一些实施例中,消息通信模块216使用Ze1conf或者类似的服务以及诸如AMQP或者类似的协议的代理消息传送框架来配置分区控制器126以用于通信。
[0029]说明性的签入服务134包括节点发现模块220、分组映射模块222、逻辑分组创建器模块224以及消息通信模块226。如以下参照图4所描述的,在操作中,模块220,222,224,226允许节点服务器114发现分区104、订阅它、并且被指派给分区104的一个或多个分组(例如,与一个或多个分组管理器服务器112相关联)。消息通信模块226使得签入服务134能够监听来自节点服务器114的消息,并且以类似于消息通信模块216的方式进行配置。
[0030]说明性的分组控制器142包括物理分组创建器模块230、消息队列模块232、以及消息通信模块234。如以下参照图5所描述的,在操作中,物理分组创建器模块230通过以下来使新的节点服务器114与它们在数据中心102 (例如机架)中的相应物理位置相关联,使节点服务器114与所述物理位置或者机架的分组管理器服务器112的分组标识符140相关联。换言之,分组控制器142管理分组管理器服务器112所属的节点服务器114的物理分组。消息队列模块232创建并管理分离的消息队列148中的一个或多个,订阅分组的节点服务器114可以将状态数据包发送给所述消息队列以用于例如监控和/或数据收集的目的。在一些实施例中,可以使用基于“话题”的路由架构(诸如AMQP话题路由过程)以用于这些数据通信。
[0031]消息通信模块234在分组管理器服务器112处配置消息传送框架以检测被添加到与分组管理器服务器112相关联或者分组管理器服务器112所位于的物理位置或机架的新的节点服务器114。在一些实施例中,消息通信模块234可以被配置成使用“扇出”或者“广播”消息路由方案(例如AMQP扇出或者广播路由过程)。应了解,被添加到由分组管理器服务器112所管理的分组的节点服务器114可以具有与该分组、物理位置或机架、并且实际上分区104中的其它节点服务器相同的硬件配置,或者不同的硬件配置。换言之,分区104中的服务器的任何分组、机架或其它物理位置可以是异构的,在这种意义下,它可以包含具有不同硬件配置的服务器,例如具有一个或多个不同能力的不同处理器。如以下所解释的,每一个节点服务器114的处理器配置和能力对于系统100是已知的,使得节点服务器114可以基于它们的处理器配置、能力、健康数据和/或其它因素而被指派给分区内的(多个)分组。
[0032]说明性的节点控制器152包括节点订阅数据包创建器模块240、节点状态数据包创建器模块242和消息通信模块244。如以下参照图6所描述的,节点订阅数据包创建器模块240创建包含关于节点服务器114的硬件拓扑的信息的数据包,其可以被签入服务134使用以将节点服务器114指派给分区104中的分组。节点状态数据包创建器模块242创建包含关于布置在特殊压缩数据格式中的节点服务器114的当前状态或“健康”的信息的数据包,其可以被分组管理器服务器112的消息队列148中的一个或多个接收以用于数据收集和/或监控的目的。消息通信模块244以类似于以上所述的消息通信模块216的方式进行配置。如以下参照图6所描述的,消息通信模块244使用所实现的消息传送框架的适当路由过程来发布包括节点标识符150的节点订阅数据包和节点状态数据包以用于由签入服务134接收。例如在一些实施例中,诸如AMQP直接协议或者类似的机制的直接路由过程可以被用于这样的通信。
[0033]现在参照图3,示出了说明性的方法300,其可作为计算机化的逻辑和/或指令由分区控制器126的各种模块执行以便将分区管理器服务器110的存在广播给网络116上的其它服务器。在块310处,方法300创建“问候”数据包,即被配置成将分区管理器服务器110标识给系统100中的其它服务器的数据包。问候数据包(或者“分区数据包”)包括(例如作为包头的一部分)分区标识符130,其相对于系统100中的其它服务器唯一地标识分区管理器服务器110。在一些实施例中,分区标识符130可以由例如分区104的管理员或者数据中心102的管理员通过使用与分区管理器服务器110的处理器或中央处理单元(CPU)相关联的唯一标识符或者由管理员所提供的散列值来创建。说明性的问候数据包还包括标签或者标记(例如,包括词语“分区”的文本标签),其将分区管理器服务器110标识为被配置成管理特定分区104的服务器(换言之,具有安装在其上的分区控制器126的服务器)。说明性的问候数据包还包括分区管理器服务器110的IP地址。
[0034]在块312处,方法300打开通信端口 138 (例如Zeroconf或者类似的端口)并且将问候数据包广播给网络116。在块314处,方法300 “监听”(使用例如Ze1conf或者类似的监听器)确认(ACK)消息,其可以由一个或多个分组管理器服务器112响应于问候数据包而发出。方法300将ACK消息解译为进行发出的分组管理器服务器112加入分区104的请求。由分组管理器服务器112所生成的ACK数据包包括发出ACK消息的分组管理器服务器112的IP地址以及将分组管理器服务器112标识为被配置成管理节点服务器114的分组的服务器(换言之,具有安装在其上的分组控制器146的服务器)的标签或者标记(例如,包括词语“分组”的文本标签)。这样,响应于它们经由分组控制器126进行的问候数据包的广播来发现分区,分组管理器服务器112能够发起加入分区104 (或者另一分区)的过程。因而,在一些实施例中,如果它们位于分区的广播范围内,那么分组管理器服务器112可以与多个不同分区相关联。
[0035]在块316处,方法300确定已经在块314处(例如,由监听器模块212)接收到的给定ACK消息的发送方是否为分组管理器服务器112 (例如,基于ACK包头中的文本标签“分组”的存在)。如果方法300在块316处确定ACK消息不是由分组管理器服务器112发送的,那么方法300忽略ACK消息,返回到块314,并且继续监听来自分组管理器服务器112的ACK消息。如果方法300在块316处确定ACK消息是来自分组管理器服务器112的,那么方法300在块318处更新所述分区拓扑数据132以反映发送ACK消息的分组管理器服务器112已经加入分区104。例如在一些实施例中,方法300可以从ACK数据包的头部解析IP地址和分组信息并且将它存储在分区拓扑数据132的一个或多个数据表中。
[0036]在块320处,方法300创建用于从分组管理器服务器112周期性地接收信息的一个或多个通信通道,并且为每一个这样的通道指定通信端口 138。在一些实施例中,创建用于“警报”、“策略”和“分析”的分离的通信通道(例如,AMQP通道),使得由分区控制器126接收的通信可以基于通信类型而被分配到不同的通道。类似地,可以创建其它通道以用于“安全性”、“功率”和/或可能期望监控关于分区104中的服务器的信息的任何其它类别。方法300将包含每一个通信通道及其相应的通信端口 138的信息的“分区用户”数据包发送到(多个)分组管理器服务器112,其已经响应于问候数据包而将ACK消息发送到分区控制器126。换言之,当分区管理器服务器112加入分区104时,它被提供有通信通道信息使得它可以在适当通道上将某些类型的信息周期性地报告给分区控制器126。在一些实施例中,分区用户数据包包括分区标识符130以及与由分区控制器126创建的每一个分离的通信通道(例如,警报、策略、分析)相关联的通信端口 138的端口数目。在任何事件中,分区用户数据包使得进行响应的分组管理器服务器112能够订阅分区104以用于调度、监控、工作量和/或设施管理、和/或其它目的。通信通道的建立潜在地允许分区控制器126在分区104中的新分组的形成时以及在做出调度和工作量分配的决定时考虑到关于分组管理器服务器112和/或其分组中的节点服务器114的各种各样的信息。
[0037]在块322处,方法300在数据中心102的不同物理位置中(例如,在其它服务器节点处)安装签入服务134的一个或多个实例,使得节点服务器114可以被发现并且被添加到由响应于问候数据包的分组管理器服务器112管理的分组(并且由此已经被添加到分区104)。在每一个签入服务134可以安装在不同于分区控制器126的物理位置处的情况下,签入服务134可以被视为类似于客户端/服务器计算机应用的“客户端”件。
[0038]每一个签入服务134被配置有预指定的通信端口 138和命名空间,其指示作为签入服务134的主机的服务器的IP地址以及将它标识为签入服务的标签或者标记(例如,包含词语“签入”的文本标签)。在一些实施例中,签入服务134可以被实现为Ze1conf或者类似的服务。签入服务134在数据中心102中的物理位置可以例如由系统管理员预先确定。如以下进一步描述的,签入服务134允许节点服务器114被发现并且被添加到由分区104中的各个分组管理器服务器112所管理的分组。
[0039]现在参照图4,示出了说明性的方法400,其可作为计算机化的逻辑和/或指令由签入服务134执行以将节点服务器114添加到服务器的逻辑分组(例如,基于与物理位置不同的功能性、硬件拓扑、服务器健康和/或其它参数而形成的分组)。签入服务134被配置成对来自IP地址的限定范围内的节点服务器114的节点订阅数据包的通信进行监控,IP地址的限定范围可以由通信管理员指定,或者可以简单地包括签入服务134的广播范围内的所有节点服务器114的IP地址。签入服务134维持分组管理器数据135,其包括含有所有分组管理器服务器112及其相应的通信通道信息(例如端口数目、通道类型)的IP地址的数据表或者其它适当的数据结构,如由分区控制器126所指派的。在块410处,方法400打开通信端口 156以监听来自节点服务器114的节点订阅数据包(例如在包头中具有“节点”标记的消息)。当接收到具有“节点”标记的包时,方法400在块412处确定节点标识符150 (其可能需要使用密码技术进行解码,如本领域技术人员应当了解到的),并且基于节点标识符150中所包含的信息来创建节点硬件拓扑映射。使用节点拓扑映射,方法400制订节点能力标识符,其包括关于节点的硬件能力的信息,诸如它的CPU系列、存储器技术、网络接口的类型、和/或服务器硬件的其它特性。换言之,节点能力标识符可以从节点标识符150导出。
[0040]在块414处,方法400使用分组管理器数据135存取分区拓扑数据132的相关部分以取得与签入服务134所管理的一个或多个分组相关联的硬件拓扑信息。更具体而言,在一些实施例中,硬件拓扑信息(例如,CPU系列、存储器技术、网络接口的类型等等)的每一种唯一组合与预生成的唯一分组标识符140相关联。例如在一些实施例中,分区拓扑数据132包括表条目,其将相关硬件特性的级联(例如,“CPU系列+存储器技术+网络接口的类型”)和唯一分组标识符相映射。在块416处,方法400将节点的能力标识符(例如,CPU系列+存储器技术+网络接口的类型的级联)与从分区拓扑数据132获取的信息相比较,以获得与节点服务器114关联的分组标识符140。在块416处,方法400继续比较节点的能力标识符与分区拓扑数据132中的信息直到找到适当的匹配。基于节点的能力标识符和分区拓扑数据132,节点服务器114被指派给分区104内的分组。在块418处,方法400将分组标识符140及其相关联的消息通道148发送到节点服务器114(使用例如AMQP直接地址协议或者类似的机制)和分区控制器126以更新分区拓扑数据132。
[0041]现在参照图5,示出了说明性的方法500,其可作为计算机化的逻辑和/或指令由分组控制器142执行以将服务器的新物理分组限定给系统100或者将新的节点服务器114添加到物理分组。在块510处,系统管理员(即人)将服务器的物理分组(例如机架)中的一个服务器指定为分组管理器服务器112 ;也就是说,将作为分组控制器142的主机的服务器。以虚线示出块510以便说明它典型地是由人施行的步骤,尽管在一些实施例中它也可以是自动化的。在块512处,方法500生成用于由分组管理器服务器112所管理的分组的分组标识符140。在一些实施例中,分组标识符140可以使用随机的唯一标识符来生成。在其它实施例中,分组标识符140可以使用分组中的所有服务器将共同具有的分组管理器服务器112的IP地址的一部分(例如前24位)来生成。
[0042]在块514处,方法500 (例如经由AMQP代理或者类似的机制)检测被添加到与分组管理器服务器112相关联的物理位置(例如其中分组管理器服务器112所位于的机架)的新的节点服务器114。当方法500检测到被添加的节点服务器114时,方法在块516处将包含分组标识符140的数据包发送到节点服务器114的IP地址。在一些实施例中,AMQP代理或者类似的机制可以被用作中介以促进该通信。
[0043]如以上所指出的,分组控制器142管理它所使用的多个消息队列或者通道148以从已经订阅它的分组的节点服务器114收集数据。这些消息队列148可以通过命名空间进行引用,所述命名空间包括分组标识符140和指示特定数据收集目的的描述符。例如,分离的消息队列可以以分组控制器142为主机以用于(除其它之外)性能度量、健康警报(例如,涉及特定服务器的健康的警报,就吞吐量、服务质量、和/或其它因素而言)、健康动作(例如,响应于健康警报而采取的动作)、和/或其它目的。在块518处,方法500可以以类似于以上所述的块418的方式使新添加的节点服务器114订阅消息队列148。
[0044]现在参照图6,示出了说明性的方法600,其可作为计算机化的逻辑和/或指令由节点控制器152执行以与系统100进行通信。在块610处,方法600确定用于节点服务器114的唯一节点标识符150 (例如,从服务器的芯片集获取节点标识符)。在块612处,方法600制订并且发布节点状态数据包,除节点标识符150和加密标记(其可以包含以上所述的节点能力标识符)之外,节点状态数据包还包括涉及相关联的分组控制器142可以经由消息队列148进行监控的节点的其它各种特性的数据。节点状态数据包被发送到签入服务134,其具有在已经被配置成进行监控(例如使用AMQP直接协议或者类似的机制)的IP地址范围中的节点的IP地址。
[0045]在一些实施例中,在块614处,方法600可以制订节点状态数据包以使用特殊压缩的数据格式来存储节点健康的指示符。在一些实施例中,节点健康的指示符(例如CPU温度、可用存储器、错误等)、服务的节点质量、或者其它受监控的参数在例如24位的固定长度位字段中进行表示。在检测到节点健康的指示符(例如以本领域技术人员所理解的方式使用耦合到节点服务器114的各种传感器)的情况下,预先设置阈值以指示每一个特定指示符何时超出可接受的范围或者以其它方式需要注意。在说明性的位字段中,每一位代表受监控的参数或者健康分量中的一个,并且位变化(例如从O到I或者反之亦然)指示参数已经超出它的预限定的阈值。作为一个示例,如果“节点健康”位字段具有值“10110101”,这可以指示8个受监控的参数中的5个当前操作在可接受的范围之外。这样,可以将关于特定节点服务器114如何施行的实时信息作为因素计入到分组指派决定和/或调度决定中。
[0046]在块616处,方法600接收与分组管理器服务器112相关联的分组标识符140,分组管理器服务器112管理节点服务器114从签入服务134或者从分组控制器142订阅的分组。在块618处,方法600可以确定节点服务器114是否为被添加到分区104(例如由分组管理器服务器112所管理的机架)中的物理位置的新节点,并且如果是,则在块620处使节点服务器114订阅分组管理器服务器112的消息队列148以出于数据收集的目的而推送节点数据包。如果节点服务器114不是新添加到物理位置而是涉及到自动分组信息中(经由签入服务134),则跳过块620。
[0047]这样,分区104中的服务器的逻辑分组可以在运行时自动地形成,例如随着功能性要求和/或处理器能力或者其它参数在系统100的操作期间的改变而形成,而与数据中心102中的服务器的物理位置无关。
[0048]示例
以下提供本文所公开的设备、系统和方法的说明性示例。设备、系统和方法的实施例可以包括以下所描述的示例中的任何一个或多个以及其任何组合。
[0049]在一个示例中,用于在包括通信网络和至少一个分组服务器的云数据中心环境中使用的分区服务器包括分区控制器,其被配置成将标识分区服务器的分区数据包广播到网络、监听由一个或多个分组服务器响应于分区数据包而发出的确认数据包、并且响应于从分组服务器接收到确认数据包而使分组服务器订阅由分区服务器所管理的分区。在示例中,分区控制器可以包括将分区数据包广播到网络的广播模块,其中分区数据包包括从数据中心环境中的其它服务器唯一地区分分区服务器的分区标识符以及将分区服务器标识为分区的管理器的标记。在示例中,分区控制器可以包括监听器模块,其响应于分区数据包而接收多个数据包并且确定多个数据包中的任一个是否是由分组服务器发出的。在示例中,分区控制器可以包括通道创建器模块,其创建被配置用于与分组服务器的数据通信的至少一个通信通道。在示例中,所述至少一个通信通道可以包括被配置成从对应于第一通信类型的分组服务器接收数据通信的第一通信通道、被配置成从对应于第二通信类型的分组服务器接收数据通信的第二通信通道、以及被配置成从对应于第三通信类型的分组服务器接收数据通信的第三通信通道。在示例中,第一通信类型可以包括警报,第二通信类型可以包括策略,并且第三通信类型可以包括分析。在示例中,分区服务器可以包括签入服务以使至少一个节点服务器订阅由分组服务器所管理的分组。
[0050]在另一示例中,用于将分组服务器与和云数据中心环境的分区相关联的分区服务器相关联的方法包括:将包括标识分区服务器的数据的分区数据包广播到云数据中心环境;监听由云数据中心环境中的一个或多个服务器响应于分区数据包而发出的确认数据包;确定任何确认数据包是否是由分组服务器发出的;以及响应于确定确认数据包是由分组服务器所发出的而使分组服务器订阅与分区服务器相关联的分区。在示例中,方法可以包括响应于确定确认数据包是由分组服务器所发出的而将包括多个通信通道信息的数据包发送到分组服务器。在示例中,方法可以包括响应于确定确认数据包是由分组服务器发出的而发起签入服务以使节点服务器订阅由分组服务器所管理的分组。在另一示例中,计算设备可以包括至少一个处理器;以及耦合到所述至少一个处理器的计算机电路,所述计算机电路被布置成使所述至少一个处理器施行上述方法。在另一示例中,至少一个计算机可存取的存储介质包括多个指令,所述指令响应于被执行而导致计算设备施行上述方法。
[0051]在示例中,用于在包括通信网络、分组服务器和至少一个节点服务器的云数据中心环境中使用的服务器包括签入服务,其被配置成打开通信端口以监听由节点服务器所发出的节点订阅消息、从节点服务器所发出的节点订阅消息确定关于节点服务器的硬件拓扑信息、以及基于硬件拓扑信息而将节点服务器指派给分组服务器所管理的分组。在示例中,硬件拓扑信息可以包括中央处理单元系列数据、存储器技术数据、和/或网络接口类型数据。在示例中,签入服务可以被配置成存取将分组标识符与硬件拓扑信息相关联的分组数据表并且将节点服务器的硬件拓扑信息与分组数据表中的硬件拓扑信息进行比较。
[0052]在另一示例中,用于将节点服务器与和云数据中心环境的分区相关联的分组服务器相关联的方法包括:从节点服务器接收数据包;从数据包确定关于节点服务器的硬件配置信息;将用于节点服务器的硬件配置信息与和一个或多个分组服务器相关联的硬件配置相比较;以及响应于将用于节点服务器的硬件配置信息与和分组服务器相关联的硬件配置的比较而使节点服务器订阅由分组服务器所管理的分组。在示例中,方法可以包括将与分组服务器相关联的分组标识符发送到节点服务器。在示例中,方法可以包括将中央处理单元系列数据、存储器技术数据和节点服务器的网络接口类型数据中的至少一个与中央处理单元系列数据、存储器技术数据和与一个或多个分组服务器相关联的网络接口类型数据中的至少一个进行比较。
[0053]在另一示例中,计算设备可以包括至少一个处理器;以及耦合到所述至少一个处理器的计算机电路,其中所述计算机电路可以被布置成使所述至少一个处理器施行上述方法。在另一示例中,至少一个计算机可存取的存储介质包括多个指令,所述指令响应于被执行而导致计算设备施行上述方法。
[0054]在示例中,用于在包括通信网络的云数据中心环境中使用的、与云数据中心环境中的物理位置相关联的分组服务器包括分组控制器,其被配置成在物理位置处检测新的节点服务器、将分组标识符发送到新的节点服务器以使新的节点服务器与分组服务器所管理的分组相关联、以及使新的节点服务器订阅多个消息通道以用于数据通信,其中每一个消息通道出于监控的目的而对应于由分组控制器所收集的不同类型的数据。在示例中,所述多个消息通道可以包括用来从节点服务器接收涉及度量的数据的第一消息通道、用来从节点服务器接收涉及服务器健康的数据的第二消息通道、以及用来从节点服务器接收涉及警报的数据的第三消息通道。
[0055]在另一示例中,用于使节点服务器与和云数据中心环境中的物理位置相关联的分组服务器相关联的方法包括:检测作为新添加到物理位置的节点服务器;生成与分组服务器相关联的分组标识符;响应于在物理位置处检测到节点服务器而将分组标识符发送到节点服务器;以及在分组服务器处配置多个消息队列,每一个消息队列用来从节点服务器接收不同类型的数据包。在示例中,方法可以包括通过代理中间设备将分组标识符发送到节点服务器。
[0056]在另一示例中,计算设备可以包括至少一个处理器;以及耦合到所述至少一个处理器的计算机电路,其中所述计算机电路可以被布置成使所述至少一个处理器施行上述方法。在另一示例中,至少一个计算机可存取的存储介质包括多个指令,所述指令响应于被执行而导致计算设备施行上述方法。
[0057]在另一示例中,用于在包括通信网络和分组服务器的云数据中心环境中使用的节点服务器包括节点控制器,其被配置成向网络发布节点数据包,所述节点数据包包括从网络上的其它服务器唯一地区分节点服务器的节点标识符、节点能力信息以及节点状态信息,其中所述节点能力信息包括涉及节点服务器的一个或多个硬件能力的数据,其中所述节点状态信息可以包括涉及服务器健康、功率能力和服务质量中的至少一个的数据。在示例中,节点控制器可以被配置成响应于节点数据包而接收与分组服务器相关联的分组标识符。在示例中,节点控制器可以被配置成使用固定长度位字段来制订节点状态信息,其中位字段中的每一位指示节点健康的指示符是否已经超出阈值。在示例中,位字段可以包括在约24位的范围中的最大长度。
[0058]在另一示例中,用于使节点服务器订阅包括通信网络的云数据中心环境中的分组的方法包括:将关于节点服务器的硬件能力和健康状态中的至少一个的信息发布到网络;以及响应于将关于节点服务器的硬件能力和/或健康状态的信息发布到网络,而接收将节点服务器与云数据中心环境中的分组相关联的分组标识符。在示例中,所述方法可以包括使用包括固定长度位字段的压缩数据格式来制订关于节点服务器的健康状态的信息,其中每一位指示健康状态指示符是否超出阈值。在另一示例中,计算设备可以包括至少一个处理器;并且耦合到所述至少一个处理器的计算机电路可以被布置成使所述至少一个处理器施行上述方法。在示例中,至少一个计算机可存取的存储介质可以包括多个指令,所述指令可以响应于被执行而导致计算设备施行上述方法。
[0059]在示例中,用于管理云数据中心环境的分区中的服务器的方法包括:从节点服务器接收涉及分区中的节点服务器的一个或多个硬件能力的数据;响应于所述一个或多个硬件能力而将节点服务器指派到分区中的服务器的第一分组;接收涉及节点服务器的一个或多个服务器健康参数的数据;以及响应于所述一个或多个服务器健康参数而将节点服务器指派到分区中的服务器的第二分组。在示例中,所述方法可以包括将涉及分区的信息广播到云数据中心环境以及响应于所述广播而从节点服务器接收数据。在示例中,计算设备可以包括至少一个处理器;以及耦合到所述至少一个处理器的计算机电路,其中所述计算机电路可以被布置成使所述至少一个处理器施行上述方法。在示例中,至少一个计算机可存取的存储介质可以包括多个指令,所述指令可以响应于被执行而导致计算设备施行上述方法。
[0060]在示例中,至少一个机器可存取的存储介质包括多个指令,所述指令响应于被执行而导致计算设备施行以下过程:将包括标识分区服务器的数据的分区数据包广播到云数据中心环境;响应于分区数据包而监听由云数据中心环境中的一个或多个服务器所发出的确认数据包;确定任何确认数据包是否是由分组服务器发出的;以及响应于确定确认数据包是由分组服务器发出的而使分组服务器订阅与分区服务器相关联的分区。
[0061]在示例中,所述至少一个机器可存取的存储介质可以包括:响应于确定确认数据包是由分组服务器发出的而将包括多个通信通道信息的数据包发送到分组服务器。在示例中,所述至少一个机器可存取的存储介质可以包括:响应于确定确认数据包是由分组服务器发出的而发起签入服务以使节点服务器订阅由分组服务器所管理的分组。
[0062]尽管已经在附图和以上描述中详细地说明并描述了本公开的概念,但是这样的说明和描述相应地应视为是示例性而非限制性的,应理解,仅示出和描述了说明性的实施例,并且期望保护与本公开和所记载的权利要求相一致的所有变化和修改。
【权利要求】
1.一种用于在包括通信网络和至少一个分组服务器的云数据中心环境中使用的分区服务器,所述分区服务器包括: 分区控制器,其被配置成将标识所述分区服务器的分区数据包广播到网络,响应于所述分区数据包而监听由一个或多个分组服务器所发出的确认数据包,以及响应于从分组服务器接收到确认数据包而使分组服务器订阅由所述分区服务器所管理的分区。
2.如权利要求1所述的分区服务器,其中所述分区控制器包括将分区数据包广播到网络的广播模块,并且所述分区数据包包括从数据中心环境中的其它服务器唯一地区分所述分区服务器的分区标识符以及将所述分区服务器标识为分区的管理器的标记。
3.如权利要求1所述的分区服务器,其中所述分区控制器包括监听器模块,其用来响应于分区数据包而接收多个数据包并且确定所述多个数据包中的任一个是否是由分组服务器发出的。
4.如权利要求1所述的分区服务器,其中所述分区控制器包括通道创建器模块,其用来创建被配置用于与分组服务器的数据通信的至少一个通信通道。
5.如权利要求4所述的分区服务器,其中所述至少一个通信通道包括被配置成从对应于第一通信类型的分组服务器接收数据通信的第一通信通道、被配置成从对应于第二通信类型的分组服务器接收数据通信的第二通信通道、以及被配置成从对应于第三通信类型的分组服务器接收数据通信的第三通信通道。
6.如权利要求5所述的分区服务器,其中所述第一通信类型包括警报,所述第二通信类型包括策略,并且所述第三通信类型包括分析。
7.如权利要求1所述的分区服务器,包括使至少一个节点服务器订阅由分组服务器所管理的分组的签入服务。
8.一种用于使分组服务器与和云数据中心环境的分区相关联的分区服务器相关联的方法,所述方法包括: 将包括标识所述分区服务器的数据的分区数据包广播到所述云数据中心环境; 响应于所述分区数据包而监听由所述云数据中心环境中的一个或多个服务器所发出的确认数据包; 确定任何确认数据包是否是由所述分组服务器发出的;以及 响应于确定确认数据包是由所述分组服务器发出的而使所述分组服务器订阅与所述分区服务器相关联的分区。
9.如权利要求8所述的方法,包括响应于确定确认数据包是由所述分组服务器发出的而将包括多个通信通道信息的数据包发送到所述分组服务器。
10.如权利要求8所述的方法,包括响应于确定确认数据包是由所述分组服务器发出的而发起签入服务以使节点服务器订阅由所述分组服务器所管理的分组。
11.如权利要求8所述的方法,包括打开通信端口以监听由节点服务器所发出的节点订阅消息,从节点服务器所发出的节点订阅消息确定关于所述节点服务器的硬件拓扑信息,以及基于所述硬件拓扑信息而将所述节点服务器指派给所述分组服务器所管理的分组。
12.如权利要求11所述的方法,其中所述硬件拓扑信息包括中央处理单元系列数据、存储器技术数据、以及网络接口类型数据。
13.如权利要求11所述的方法,包括对使分组标识符与硬件拓扑信息相关联的分组数据表进行存取,以及将所述节点服务器的硬件拓扑信息与所述分组数据表中的硬件拓扑信息进行比较。
14.如权利要求8所述的方法,包括在物理位置处检测新的节点服务器,将分组标识符发送到所述新的节点服务器以使所述新的节点服务器与所述分组服务器所管理的分组相关联,以及使所述新的节点服务器订阅多个消息通道以用于数据通信,其中每一个消息通道出于监控的目的而对应于由分组控制器所收集的不同类型的数据。
15.如权利要求14所述的方法,其中所述多个消息通道包括用来从节点服务器接收涉及度量的数据的第一消息通道、用来从节点服务器接收涉及服务器健康的数据的第二消息通道、以及用来从节点服务器接收涉及警报的数据的第三消息通道。
16.如权利要求8所述的方法,包括向网络发布包括节点标识符、节点能力信息和节点状态信息的节点数据包,其中所述节点标识符从所述网络上的其它服务器唯一地区分节点服务器,其中所述节点能力信息包括涉及节点服务器的一个或多个硬件能力的数据,其中所述节点状态信息包括涉及服务器健康、功率能力和服务质量中的至少一个的数据。
17.如权利要求16所述的方法,包括响应于所述节点数据包而接收与所述分组服务器相关联的分组标识符。
18.如权利要求16所述的方法,包括使用固定长度位字段来制订所述节点状态信息,其中所述位字段中的每一位指示节点健康的指示符是否已经超出阈值。
19.如权利要求18所述的方法,其中所述位字段包括在约24位的范围中的最大长度。
20.包括多个指令的至少一个机器可存取的存储介质,所述指令响应于被执行而导致计算设备: 将包括标识分区服务器的数据的分区数据包广播到云数据中心环境; 响应于所述分区数据包而监听由所述云数据中心环境中的一个或多个服务器所发出的确认数据包; 确定任何确认数据包是否是由分组服务器发出的;以及 响应于确定确认数据包是由所述分组服务器发出的而使所述分组服务器订阅与所述分区服务器相关联的分区。
21.如权利要求20所述的至少一个机器可存取的存储介质,包括响应于确定确认数据包是由所述分组服务器发出的而将包括多个通信通道信息的数据包发送到所述分组服务器。
22.如权利要求20所述的至少一个机器可存取的存储介质,包括响应于确定确认数据包是由所述分组服务器发出的而发起签入服务以使节点服务器订阅由所述分组服务器所管理的分组。
23.一种用于管理云数据中心环境的分区中的服务器的方法,所述方法包括: 从节点服务器接收涉及所述分区中的所述节点服务器的一个或多个硬件能力的数据; 响应于所述一个或多个硬件能力而将所述节点服务器指派到所述分区中的服务器的第一分组; 接收涉及所述节点服务器的一个或多个服务器健康参数的数据;以及 响应于所述一个或多个服务器健康参数而将所述节点服务器指派到所述分区中的服务器的第二分组。
24.如权利要求23所述的方法,包括将涉及所述分区的信息广播到所述云数据中心环境以及响应于所述广播而从所述节点服务器接收数据。
【文档编号】G06F15/16GK104380277SQ201380027938
【公开日】2015年2月25日 申请日期:2013年6月21日 优先权日:2012年6月29日
【发明者】M.甘古利, M.J.库马, D.斯, J.J.约翰 申请人:英特尔公司