CN110537169B - 分布式计算系统中的集群资源管理 - Google Patents

分布式计算系统中的集群资源管理 Download PDF

Info

Publication number
CN110537169B
CN110537169B CN201880026681.5A CN201880026681A CN110537169B CN 110537169 B CN110537169 B CN 110537169B CN 201880026681 A CN201880026681 A CN 201880026681A CN 110537169 B CN110537169 B CN 110537169B
Authority
CN
China
Prior art keywords
cluster
server
reassigned
resource
computer network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880026681.5A
Other languages
English (en)
Other versions
CN110537169A (zh
Inventor
M·萨赫
R·苏尔拉
A·斯科乔尔斯沃尔德
季新华
J·德万拉住
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202311459925.8A priority Critical patent/CN117370030A/zh
Priority to CN202311455189.9A priority patent/CN117370029A/zh
Publication of CN110537169A publication Critical patent/CN110537169A/zh
Application granted granted Critical
Publication of CN110537169B publication Critical patent/CN110537169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/254Image signal generators using stereoscopic image cameras in combination with electromagnetic radiation sources for illuminating objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/56Cameras or camera modules comprising electronic image sensors; Control thereof provided with illuminating means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/74Circuitry for compensating brightness variation in the scene by influencing the scene brightness using illuminating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Electromagnetism (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文中描述了用于在计算系统中的计算设备的集群之间管理资源的技术。在一个实施例中,一种方法包括:经由计算机网络接收指示服务器从第一集群被重新分配给第二集群的资源重新分配消息,并且响应于所接收的资源重新分配消息,经由计算机网络与从第一集群重新分配给第二集群的服务器建立通信。该方法还包括在经由计算机网络与服务器建立通信之后,将计算负载分配给从第一集群重新分配给第二集群的服务器,而无需将服务器在物理上从第一集群重新分配给第二集群。

Description

分布式计算系统中的集群资源管理
背景技术
分布式计算系统通常包括多个路由器、交换机、网桥和其他网络设备,这些网络设备经由有线或无线网络链路互连服务器、网络存储设备和其他类型的节点。个体节点可以从用户接收和存储数据,并且可以彼此协作以支持对所存储的用户数据的检索或修改等等。这种数据存储技术通常称为“云存储”。
发明内容
提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
实现云存储通常涉及利用由计算机网络互连的大量节点来提供数据存储、检索、修改、删除或其他合适的数据操作。为了有效地管理如此大量的节点,可以将节点的子集分组为独立管理的计算组或“集群”。例如,可以在逻辑上和/或物理上将云存储系统分组为多个集群,这些集群单独具有由集群控制器共同管理的多个前端服务器、分区服务器和后端存储服务器。前端服务器可以被配置为接收和响应于读取、写入、擦除或对与用户帐户相关联的某些用户数据执行其他合适的数据操作的用户请求。分区服务器可以被配置为确定哪些后端存储服务器包含所请求的用户数据或其部分。后端存储服务器可以被配置为对用户数据的至少一部分执行存储、检索、保持或其他合适的操作。
集群控制器可以被配置为监测前端服务器、分区服务器和/或后端存储服务器的各种数据操作并且支持由这些服务器执行的功能。例如,集群控制器可以监测集群中的个体分区服务器上的计算负载(例如,CPU利用率百分比)。集群控制器还可以通过基于监测到的分区服务器的计算负载将计算负载从一个分区服务器转移到另一分区服务器来在集群中的多个分区服务器之间执行负载平衡。在其他示例中,集群控制器可以监测网络带宽消耗、每秒接收的用户请求或集群中的各个组件的其他合适的操作参数,并且相应地重新分配资源。
然而,前述负载平衡技术在某些情况下可能不足以解决对单个集群中的组件提出的用户需求。例如,由于集群拓扑或其他设计限制,单个集群可以被约束为仅包含最大数目的服务器(例如,一千个服务器)。因此,无法在物理上向集群添加更多服务器以适应放置在集群中的服务器上的大量计算负载。结果,集群中的用户请求(例如,读或写请求)的处理可能具有高等待时间和长延迟,这会对用户体验产生负面影响。解决上述缺点的一种技术是将用户帐户和相关联的用户数据从一个集群手动重新定位到另一集群。但是,这种手动重新定位可能是劳动密集型的、效率低下的并且容易出错。
所公开的技术的几个实施例可以通过实现集群资源管理器以管理分布式计算系统中的集群之间的逻辑资源重新分配来解决前述困难的至少某些方面。例如,集群资源管理器可以被配置为监测和在逻辑上向集群分配分区服务器或其他合适类型的计算、网络或存储资源以适应集群经历的各种类型的负载。在某些实施例中,集群资源管理器可以是分布式计算系统中的一个或多个独立服务器。在其他实施例中,集群资源管理器可以是由分布式计算系统中的一个或多个服务器提供的计算服务。
集群资源管理器可以被配置为与分布式计算系统中的集群控制器进行通信以接收对应集群的网络带宽、CPU利用率、每秒接收的用户请求数或其他操作参数的状态数据。在某些实现中,集群资源管理器可以周期性地向集群控制器查询状态数据。在其他实现中,集群控制器可以被配置为定期或在其他合适的基础上向集群资源管理器报告状态数据。
集群资源管理器还可以被配置为基于所接收的状态数据来确定是否要将资源从一个集群转移到另一集群。这样的资源可以包括例如分布式计算系统中的前端服务器、分区服务器、后端存储服务器或其他合适类型的资产。在一个示例中,当集群资源管理器确定第一集群中的分区服务器以超过90%的平均CPU利用率操作,而第二集群中的其他分区服务器以20%操作时,集群资源管理器可以将一个或多个分区服务器在逻辑上从第二集群转移到第一集群以处理第一集群经历的计算负载的一部分。在其他示例中,集群资源管理器还可以基于其他合适的阈值和/或准则在逻辑上转移一个或多个分区服务器。
为了实现逻辑资源重新分配,集群资源管理器可以被配置为向第二集群的集群控制器传输资源去除消息。资源去除消息向第二集群的集群控制器指示第二集群中的现有分区服务器被重新分配给第一集群。作为响应,第二集群的集群控制器可以(i)将当前由重新分配的分区服务器执行的任何任务转移到第二集群中的一个或多个其他分区服务器;(ii)在配置文件(例如,释放锁定(leaselock)文件)中记录重新分配的分区服务器不再与第二集群在逻辑上关联;以及(iii)终止重新分配的分区服务器与第二集群中的集群控制器之间的通信。
集群资源管理器还可以向第一集群的集群控制器传输资源重新分配消息。关于向第二集群传输资源去除消息,可以同时、顺序、交错或以其他合适的方式来传输资源重新分配消息。资源重新分配消息可以向第一集群的集群控制器指示来自第二集群的重新分配的分区服务器已经在逻辑上重新分配给第一集群。作为响应,第一集群的集群控制器可以(i)与重新分配的分区服务器建立通信;以及(ii)在配置文件(例如,另一释放锁定文件)中记录重新分配的分区服务器在逻辑上是第一集群的组件。然后,第一集群处的集群控制器可以将计算负载分配给重新分配的分区服务器,就好像重新分配的分区服务器在物理上位于第一集群中一样。在其他示例中,集群资源管理器还可以被配置为将前端服务器、后端存储服务器和/或其他合适类型的资源从一个集群重新分配给另一集群。
所公开技术的若干实施例可以有效地解决对分布式计算系统中的个体集群提出的用户需求。通过监测集群的操作参数,集群资源管理器可以在逻辑上将各种类型的资源从一个集群转移到另一集群,而无需在集群中在物理上移动或添加服务器。因此,与其他技术相比,可以避免或至少减少处理读取、写入或执行其他数据操作的用户请求时的延迟。结果,用户可以感知到在分布式计算系统处可用于处理用户请求的资源量是无限的。
附图说明
图1是示出根据所公开的技术的实施例的实现集群资源管理的分布式计算系统的示意图。
图2是示出根据所公开的技术的实施例的图1的分布式计算系统中的集群的某些硬件/软件组件的示意图。
图3A-3D是示出根据所公开的技术的实施例的在第一集群与第二集群之间的资源重新分配的某些阶段期间分布式计算系统中的集群资源管理器以及第一集群和第二集群的某些组件的框图。
图4A和4B是示出根据所公开的技术的实施例的分别适合于图3A-3D中的配置文件和状态数据的示例数据模式的框图。
图5A-7是示出根据所公开的技术的实施例的在分布式计算系统中从一个集群到另一集群的资源重新分配过程的各方面的流程图。
图8是适合于图1中的分布式计算系统的某些组件的计算设备。
具体实施方式
下面描述用于实现数据中心或其他合适的分布式计算系统中的集群之间的资源重新分配的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的某些实施例的透彻理解。相关领域的技术人员还可以理解,该技术可以具有另外的实施例。该技术也可以在没有下面参考图1-8描述的实施例的若干细节的情况下实现。
如本文中使用的,术语“分布式计算系统”通常是指具有多个网络设备的计算系统,这些多个网络设备将多个服务器或节点彼此互连或者与外部网络(例如,因特网)互连以形成互连计算机网络。术语“网络设备”通常是指物理网络设备,其示例包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或防火墙。“节点”通常是指被配置为实现例如一个或多个虚拟机或其他合适的虚拟化组件的物理计算设备。例如,节点可以包括具有管理程序的服务器,该管理程序被配置为支持一个或多个虚拟机或其他合适类型的虚拟组件以提供各种类型的云计算服务。
本文中进一步使用的术语“云计算服务”、“云服务”或“服务”通常是指由远程计算设施通过诸如因特网等计算机网络提供的一个或多个计算资源。示例云服务包括软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。SaaS是一种软件分配技术,其中软件应用由云服务提供商托管在例如数据中心中,并且由用户通过计算机网络访问。PaaS通常是指通过计算机网络传送操作系统和相关联的服务,而无需下载或安装。IaaS通常是指用于支持存储、硬件、服务器、网络设备或其他组件(所有这些都通过计算机网络可访问)的外包设备。
本文中还使用的“计算集群”或“集群”通常是指由一个或多个对应集群控制器单独管理的分布式计算系统中的节点的组、集合或子集。在一个示例中,集群可以包括通过计算机网络彼此可操作地耦合的多个前端服务器、分区服务器和后端存储服务器(统称为“服务器”),如下面参考图2更详细地描述的。服务器可以被配置为向用户提供云存储服务。多个集群可以通过分布式计算系统中的计算机网络可操作地耦合,但是可以由对应集群控制器单独管理。在其他示例中,集群也可以包括多个任何合适类型的服务器、网络存储设备或其他组件。
在某些实现中,由于各种设计限制,每个集群可以被限制为在物理上容纳预定义数目的节点(例如,服务器)。例如,集群中的服务器数目可以限制为一千、一万或其他合适的数目。因此,无法在物理上向集群添加更多服务器以适应放置在集群中的服务器上的大量服务需求(例如,计算负载)。因此,集群中的用户请求(例如,读或写请求)的处理中的高等待时间和长延迟可能会导致对用户体验的负面影响。
所公开的技术的几个实施例可以通过实现集群资源管理器以管理分布式计算系统中的集群之间的资源重新分配来解决前述困难的至少某些方面,而无需将服务器或其他组件在物理上从一个集群移动到另一集群。集群资源管理器可以被配置为监测和在逻辑上向集群分配分区服务器或其他合适类型的计算、网络或存储资源以适应集群经历的各种类型的负载。因此,与其他技术相比,可以避免或至少减少处理读取、写入或执行其他数据操作的用户请求时的延迟,如下面参考图1-8更详细地描述的。
图1是示出根据所公开的技术的实施例的实现集群资源管理的分布式计算系统100的示意图。如图1所示,分布式计算系统100可以包括计算机网络108,该计算机网络108将多个节点106、经由对应客户端设备102的多个用户101、以及集群资源管理器126彼此互连。尽管图1中示出了分布式计算系统100的特定组件,但是在其他实施例中,分布式计算系统100还可以包括网络存储设备、保持管理器和/或除了或代替图1所示的组件的其他合适的组件(未示出)。
如图1所示,计算机网络108可以包括互连多个节点106、客户端设备102和集群资源管理器126的多个网络设备112。在某些实施例中,节点106可以被组织成机架、动作区、组、集合、集群或其他合适的分区。例如,在所示实施例中,节点106被分组为被单独标识为第一、第二和第三集群107a-107c的三个集群107。每个集群107可以包括由集群控制器109管理的多个节点106,集群控制器109被配置为监测集群107中的对应节点106的各种数据操作并且支持由对应节点106执行的功能。
在所示实施例中,每个集群107a-107c分别可操作地耦合到对应的网络设备112a-112c。网络设备112a-112c通常被称为“架顶式”或“TOR”网络设备,其可操作地耦合到附加网络设备112以形成分层、扁平、网状或其他合适拓扑类型的计算机网络108。计算机网络108可以允许根据任何合适的网络协议在节点106、集群资源管理器126和客户端设备102之间进行通信。在其他实施例中,多个节点集107a-107c可以共享单个网络节点112,或者可以具有其他合适的布置。
节点106可以被单独配置为向个体用户101提供计算、存储和/或其他合适的云计算服务。例如,如下面参考图2更详细地描述的,每个集群107中的节点106可以被配置为前端服务器、分区服务器和后端存储服务器106a-106c(如图2所示)以向用户101提供云存储服务。然后,用户101可以利用所提供的云存储服务来对用户数据进行存储、检索、管理或执行其他合适的数据操作。
客户端设备102每个可以包括计算设备,该计算设备支持对应的用户101访问由节点106经由计算机网络108提供的云服务。例如,在所示实施例中,客户端设备102单独包括台式计算机。在其他实施例中,客户端设备102还可以包括膝上型计算机、平板计算机、智能电话或其他合适的计算设备。尽管出于说明目的在图1中示出了两个用户101,但是在其他实施例中,分布式计算系统100可以支持任何合适数目的用户101访问由节点106提供的合适类型的云计算服务。
根据所公开的技术的几个实施例,集群资源管理器126可以被配置为监测和在逻辑上从一个集群向另一集群分配诸如节点106等资源以适应个体集群107经历的各种类型的负载。在某些实施例中,集群资源管理器126可以包括独立服务器、台式计算机、膝上型计算机或可操作地耦合到计算机网络108的其他合适类型的计算设备。在其他实施例中,集群资源管理器126可以包括集群107之一中的节点106之一。在另外的实施例中,集群资源管理器126可以实现为在一个或多个节点106或另一服务器(未示出)上执行并且由其提供的一个或多个计算服务。下面参考图3A-3D更详细地描述集群资源管理器126的示例组件和操作。
图2是根据所公开的技术的实施例的图1的分布式计算系统100中的集群107的某些硬件/软件组件的示意图。在图2和本文中的其他图中,个体软件组件、对象、类、模块和例程可以是用C、C++、C#、Java和/或其他合适的编程语言被编写为源代码的计算机程序、过程或进程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或其他组件。组件可以是源或二进制形式。组件还可以包括编译之前的源代码的各方面(例如,类、属性、过程、例程)、编译的二进制单元(例如,库、可执行文件)、或在运行时实例化和使用的工件(例如,对象、进程、线程)。
系统内的组件可以在系统内采用不同的形式。作为一个示例,系统包括第一组件、第二组件和第三组件。上述组件可以但不限于包括其中第一组件是以源代码表示的属性、第二组件是二进制编译库并且第三组件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成对象、中间或机器代码并且被呈现以用于由个人计算机、平板计算机、网络服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。
同样,组件可以包括硬件电路。在某些示例中,硬件可以被认为是固化软件,并且软件可以被认为是液化硬件。仅作为一个示例,组件中的软件指令可以被刻录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件组件。同样,硬件可以用软件来模拟。源、中间和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,该计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或其他合适的计算机可读存储介质。如本文中使用的,术语“计算机可读存储介质”不包括传播信号。
如图2所示,集群107可以包括由图1中的计算机网络108可操作地耦合的一个或多个前端服务器106a、分区服务器106b和后端存储服务器106c(统称为“服务器”)。在所示实施例中,出于说明的目的,示出了一个前端服务器106a、两个分区服务器106b和两个后端存储服务器106c。在其他实施例中,集群107可以包括任何合适数目的不同类型的服务器,只要不超过预定义服务器数目。
个体服务器每个可以是具有彼此可操作地耦合的处理器、存储器和输入/输出组件(未示出)的计算设备。处理器可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器可以包括易失性和/或非易失性介质(例如,ROM;RAM、磁盘存储介质;光学存储介质;闪存设备和/或其他合适的存储介质)和/或被配置为存储从处理器接收的数据以及用于处理器的指令(例如,用于执行下面参考图5A-7讨论的方法的指令)的其他类型的计算机可读存储介质。输入/输出组件可以包括显示器、触摸屏、键盘、鼠标、打印机和/或被配置为接受来自操作者和/或自动化软件控制器(未示出)的输入并且向其提供输出的其他合适类型的输入/输出设备。下面参考图8更详细地描述适合于前端服务器106a、分区服务器106b和后端服务器106c的示例计算架构。
服务器可以在由处理器可执行的存储器中单独包含引起服务器提供可以支持向用户101提供云存储服务的模块的指令。例如,如图2所示,前端服务器106a可以包括彼此可操作地耦合的输入模块132、分区模块134和输出模块136。输入模块132可以被配置为经由客户端设备102从用户101接收用户请求160。用户请求160可以包括对用户数据144进行存储、检索、擦除或执行其他合适的数据操作的请求。响应于所接收的用户请求160,分区模块134可以被配置为确定哪个分区服务器106b包含与用户101的用户帐户相关联的表分区索引142。例如,如图2所示,第一分区服务器106b被确定为包含用户101的表分区索引142。因此,输出模块136可以基于所接收的用户请求160将查询请求162转发到分区服务器106b。
分区服务器106b可以包括索引模块133、接口模块135和表分区索引142。在集群107中,可以使用具有行和列的索引表来跟踪存储有用户数据144的位置。但是,由于有大量的用户帐户,索引表可能会很大。因此,索引表可以被分区成多个表分区索引142,例如,以包含索引表的行和列的子集。然后,可以由对应的分区服务器106a单独存储和管理多个表分区索引142。例如,如图2所示,第一分区服务器106b可以包含第一表分区索引142,而第二分区服务器106b'可以包含与第一表分区索引142不同的第二表分区索引142'。在其他示例中,索引表可以分区为三个、四个或任何合适的数目。
在某些实施例中,表分区索引142可以包括索引表的包含存储有所请求的用户数据144的位置的一部分或子集。在图2所示的示例中,第一表分区索引142可以包括包含与用户101相对应的用户账户标识符和存储有所请求的用户数据144的位置(例如,第二后端存储服务器106c')的行。因此,索引模块133可以被配置为扫描第一表分区索引142以确定所请求的用户数据144存储在第二后端存储服务器106c'处。基于该确定,接口模块135可以被配置为基于查询请求162生成并且向第二后端存储服务器106c'传输数据请求164。
第二后端存储服务器106c'可以包括可操作地耦合到存储装置110'的数据模块137和响应模块138。数据模块137可以被配置为支持对用户数据144的存储、检索、管理或其他数据操作。例如,数据模块137可以被配置为从对应的存储装置110'中检索所请求的用户数据144。然后,响应模块138可以被配置为生成例如包含所请求的用户数据144的响应,并且将用户数据144提供给前端服务器106a。在所示实施例中,前端服务器106a然后可以将所请求的用户数据144提供给客户端设备102。在其他实施例中,后端存储服务器106c'还可以将所请求的用户数据144直接或经由其他合适的网络通道提供给客户端设备102。
如图2所示,集群107可以包括集群控制器109,该集群控制器109被配置为监测集群107中的服务器的各种数据操作并且支持由其执行的功能。集群控制器109可以包括彼此可操作地耦合的监测器模块152、报告模块154和控制模块156。监测模块152可以被配置为监测集群107中的服务器的一个或多个操作参数。例如,监测模块152可以周期性地轮询或从服务器接收状态数据166。状态数据166可以包括表示以下中的一项或多项的数据:计算负载(例如,CPU利用率百分比)、消耗的网络带宽、每秒接收的用户请求160的数目或与集群107中的服务器的操作相关的其他合适的参数。报告模块154可以被配置为周期性地,根据请求或以其他合适的方式将所收集的表示操作参数的状态数据166传输到集群资源管理器126(图3A)。
控制模块156可以被配置为在集群107中的服务器之间执行负载平衡。例如,控制模块156可以被配置为基于分区服务器106b的CPU使用率百分比将计算负载从第一分区服务器106b转移到第二分区服务器106b'使得两个分区服务器106b上的计算负载可以大致相等。控制模块156还可以被配置为支持一个或多个服务器从集群107到另一集群107的重新分配,而无需在物理上移动一个或多个重新分配的服务器,如参考图3A-3D更详细地描述的。
图3A-3D是示出根据所公开的技术的实施例的在资源重新分配阶段期间的集群资源管理器126以及第一集群107a和第二集群107b的组件的框图。即使出于说明目的而在图3A-3D中仅示出了两个集群107,但是在其他实施例中,可以对三个、四个或任何合适数目的集群107执行类似的操作。
如图3A所示,第一集群107a和第二集群107b每个可以分别包括第一集群控制器109a和第二集群控制器109b。第一集群控制器109a和第二集群控制器109b可以单独包括被配置为监测服务器的一个或多个操作参数的监测器模块152,如上面参考图2所述。在图3A-3D中,出于说明的目的,每个集群107中以不同的背景颜色仅示出了两个分区服务器106b。第一集群控制器109a和第二集群控制器109b还可以单独包括报告模块154,该报告模块154被配置为将所收集的一个或多个操作参数编译、分类、过滤或执行其他合适的处理以使其成为一组状态数据166'并且将状态数据166'提供给集群资源管理器126。
如图3A所示,集群资源管理器126可以包括彼此可操作地耦合的状态模块151和重新分配模块153。状态模块151可以被配置为从第一集群107a和第二集群107b接收状态数据166',并且将所接收的状态数据166'提供给重新分配模块153以进行进一步处理。在某些实施例中,状态模块151还可以被配置为将所接收的状态数据166'存储在例如网络存储装置(未示出)中。
重新分配模块153可以被配置为基于所接收的状态数据166'来确定是否可以将资源(例如,分区服务器106b)从一个集群107重新分配给另一集群107。例如,在一个实施例中,重新分配模块153可以将每个集群107a和107b的分区服务器106b的平均计算负载与第一阈值进行比较。当第二集群107b的平均计算负载超过第一阈值时,重新分配模块153可以被配置为确定第一集群107a的计算负载是否低于第二阈值。当第一集群107a的计算负载低于第二阈值时,重新分配模块153然后可以确定第一集群107a的分区服务器106b之一可以在逻辑上重新分配给第二集群107b。
如图3B所示,基于前述确定,重新分配模块153可以经由图1的计算机网络108生成并且向第一集群控制器109a传输资源去除消息167。资源去除消息167可以向第一集群控制器109a指示第二分区服务器106b'已经被重新分配给第二集群107b。作为响应,第一集群控制器109a的控制模块156可以被配置为确定第二分区服务器106b'当前是否正在处理第一集群107a的计算负载。
如果第二分区服务器106b'当前正在处理第一集群107a的计算负载,则控制模块156可以被配置为指示第二分区服务器106b'将负载169迁移到第一分区服务器106b。如果第二分区服务器106b'当前没有正在处理第一集群107a的计算负载,或者负载169已经迁移,则第一集群控制器109a可以终止与第二分区服务器106b'的通信并且从而允许第二集群控制器109b通过例如传输通信请求170来与第二分区服务器106b'建立通信。
控制模块153还可以被配置为生成或更新配置文件146以记录第二分区服务器106b'已经被重新分配给第二集群107b。在第一集群控制器109a的重新启动或第一集群107a的重新初始化期间,第一集群控制器109a可以基于配置文件146中记录的重新分配而忽略第二分区服务器106b'。
如图3B所示,重新分配模块153还可以被配置为关于向第一集群控制器109a传输资源去除消息167,同时、顺序地或以其他合适的时间顺序向第二集群控制器109b传输资源重新分配消息168。在接收到资源重新分配消息168时,第二集群控制器109b中的控制模块156可以被配置为生成或更新另一配置文件146'以记录来自第一集群107a的第二分区服务器106b'已经被分配给第二集群107b。控制模块156还可以被配置为通过传输例如通信请求170来与第二分区服务器106b'建立通信。在与第二分区服务器106b'建立通信之后,第二集群控制器109b可以将表分区索引142(图2)存储在第二分区服务器106b'中,并且将计算负载169'分配给第二分区服务器106b'以支持对所存储的表分区索引142的访问,如图3C所示。还如图3C所示,第二集群控制器109b的监测模块152还可以通过周期性地或在其他合适的基础上收集状态数据166来监测第二分区服务器106b'的一个或多个操作参数。
如以上参考图3A-3D讨论的,来自第一集群107a的第二分区服务器106b'在逻辑上重新分配或重新分派给第二集群107b,而无需在物理上移动第二分区服务器106b'。因此,所公开的技术的几个实施例可以有效地解决对分布式计算系统100中的个体集群107提出的用户需求。通过监测集群107的操作参数,集群资源管理器126可以将各种类型的资源在逻辑上从一个集群转移到另一集群,而不需要在集群107中在物理上移动或添加服务器。因此,与其他技术相比,可以避免或至少减少处理读取、写入或执行其他数据操作的用户请求160时的延迟。结果,用户101可以感知到在分布式计算系统处可用于处理用户请求的资源量是无限的。
即使在图3A-3D中将分区服务器106b用作要在逻辑上重新分配的示例资源,也可以应用类似的技术以在集群107之间重新分配或重新分派前端服务器106a、后端存储服务器106c或其他合适的资源。另外,集群资源管理器126可以连续地监测来自所有集群107的操作参数,并且相应地调节资源分配。例如,如果集群资源管理器126的重新分配模块153确定第一集群107a现在正在以超过阈值的计算负载进行操作,则重新分配模块153可以被配置为将第二分区服务器106b'重新分配回第一集群107a,如图3A所示,或者将其他分区服务器106b”和106b”'之一从第二集群107b重新分配给第一集群107a,如图3D所示。
图4A和4B是示出根据所公开的技术的实施例的分别适合于图3A-3D中的配置文件和状态数据的示例数据模式的框图。如图4A所示,配置文件146的示例架构可以包括集群ID字段172、服务器去除字段174和服务器添加字段176。集群ID字段172可以被配置为存储集群107(图1)的标识(例如,数值)。服务器去除字段174可以被配置为存储从由集群107的管理中去除的一个或多个服务器的标识(例如,IP地址、MAC地址、序列号等)。服务器添加字段176可以被配置为存储在逻辑上添加到集群107的一个或多个服务器的标识(例如,IP地址、MAC地址、序列号等)。
如图4B所示,状态数据166的示例数据模式可以包括集群ID字段172、带宽消耗字段182、CPU利用率字段184、每秒请求数字段186和时间戳字段188。带宽消耗字段182可以被配置为存储表示集群107消耗的瞬时、平均或其他合适类型的网络带宽的值。CPU利用率字段184可以被配置为存储表示集群107中服务器的瞬时、平均或其他合适类型的CPU利用率值的值。每秒请求字段186可以被配置为存储每秒接收的用户请求160的瞬时、平均或其他合适类型的数目。时间戳字段188可以被配置为存储生成或传输状态数据166的时间戳值(例如,日期/时间)。
图5A-7是示出根据所公开的技术的实施例的在分布式计算系统100中从一个集群到另一集群的资源重新分配过程的各方面的流程图。即使结合图1的分布式计算系统100描述过程,但是在其他实施例中,过程也可以在具有不同和/或附加组件的计算系统中实现。
如图5A所示,过程200可以包括在阶段202接收状态数据。如以上参考图4B所述,状态数据可以包括被配置为包含与集群107(图1)中的组件(例如,服务器)相关的一个或多个操作参数的各种字段。然后,过程200可以包括确定集群107的一个或多个操作参数(例如,CPU利用率)是否超过阈值的判定阶段204。响应于确定一个或多个操作参数超过阈值,过程200可以包括在阶段206将资源从另一集群重新分配给集群。下面参考图5B更详细地描述重新分配资源的示例操作。
响应于确定一个或多个操作参数没有超过阈值,在某些实施例中,过程200可以包括确定集群107是否包括从一个或多个其他集群107重新分配的任何资源的另一判定阶段205。响应于确定集群107包括从一个或多个其他集群107重新分配的资源(例如,服务器),过程200可以包括将重新分配的资源从一个或多个其他集群107返回到一个或多个其他集群107。在其他实施例中,可以省略阶段205的操作。
如图5B所示,重新分配资源的操作可以包括在阶段207向一个集群107传输资源去除消息,并且在阶段208向另一集群107传输资源重新分配消息。即使阶段207和208的操作在图5B中被示出为是为连续的,但是在其他实施例中,阶段207和208的操作可以同时、以交错方式或以其他合适的方式执行。
如图6所示,过程210可以包括在阶段212在集群107(图1)处接收在逻辑上从集群107去除服务器的资源去除消息。然后,过程210可以包括确定服务器当前是否正在为集群107承载负载的判定阶段214。响应于确定服务器当前正在为集群107承载负载,过程210可以包括将负载从服务器迁移到集群107中的一个或多个其他服务器并且随后在阶段219停止管理被去除的服务器。响应于确定服务器当前没有为集群107承载负载,过程210进行到阶段219以停止管理被去除的服务器并且例如在配置文件146(图3A-3D)中记录服务器已经从集群107重新分配给另一集群。
如图7所示,过程230可以包括在阶段232接收资源重新分配消息。资源重新分配消息可以指示来自另一集群的一个或多个服务器已经被重新分配给当前集群。然后,过程230可以包括在阶段234记录来自另一集群的一个或多个服务器已经被重新分配给当前集群,并且在阶段236与一个或多个重新分配的服务器建立通信。随后,过程230可以包括一旦与一个或多个服务器建立通信,就向一个或多个重新分配的服务器分配负载。
图8是适合于图1中的分布式计算系统100的某些组件的计算设备300。例如,计算设备300可以适合于图1的节点106、客户端设备102或集群资源管理器126。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可以用于处理器304与系统存储器306之间的通信。
根据期望的配置,处理器304可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器304可以包括一个或多个级别的高速缓存(诸如一级高速缓存310和二级高速缓存312)、处理器核314和寄存器316。示例处理器核314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。
根据期望的配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。该描述的基本配置302在图8中由内部虚线内的那些组件示出。
计算设备300可以具有附加特征或功能、以及附加接口以支持基本配置302与任何其他设备和接口之间的通信。例如,总线/接口控制器330可以用于支持基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移除存储设备336、不可移除存储设备338或其组合。可移除存储设备和不可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)等磁盘设备、诸如压缩盘(CD)驱动器或数字通用盘(DVD)驱动器等光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。
系统存储器306、可移除存储设备336和不可移除存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储期望的信息并且可以由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播信号和通信介质。
计算设备300还可以包括接口总线340以用于支持经由总线/接口控制器330从各种接口设备(例如,输出设备342、外围接口344和通信设备346)到基本配置302的通信。示例输出设备342包括可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器等各种外部设备通信的图形处理单元348和音频处理单元350。示例外围接口344包括可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)等外部设备通信的串行接口控制器354或并行接口控制器356。示例通信设备346包括可以被布置为支持经由一个或多个通信端口364通过网络通信链路与一个或多个其他计算设备362的通信的网络控制器360。
网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号(诸如载波或其他传输机制)中的其他数据来实施,并且可以包括任何信息传递介质。“调制数据信号”可以是使得能够在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(RF)、微波、红外(IR)和其他无线介质等无线介质。本文中使用的术语计算机可读介质可以包括存储介质和通信介质。
计算设备300可以被实现为小型便携式(或移动)电子设备的一部分,诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络手表设备、个人耳机设备、专用设备、或包括任何上述功能的混合设备。计算设备300还可以实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。
以上已经出于说明的目的描述了该技术的特定实施例。然而,在不脱离上述公开内容的情况下,可以进行各种修改。另外,除了或代替其他实施例的元件,一个实施例的很多元件可以与其他实施例组合。因此,除了所附权利要求之外,本技术不受限制。

Claims (18)

1.一种在分布式计算系统中的集群之间管理资源的方法,所述集群包括第一集群和第二集群,所述第一集群和第二集群单独包含通过计算机网络彼此互连的多个服务器并且分别由第一集群控制器和第二集群控制器管理,所述方法包括:
经由所述计算机网络从所述第一集群和所述第二集群的所述第一集群控制器和所述第二集群控制器接收状态数据,所述状态数据表示所述第一集群和所述第二集群单独经历的计算负载;
确定所述第一集群的所述计算负载是否超过阈值;以及
响应于确定所述第一集群的所述计算负载超过所述阈值,
经由所述计算机网络向所述第二集群传输资源去除消息,所述资源去除消息指示来自所述第二集群的服务器被重新分配给所述第一集群,所述资源去除消息指示所述第二集群控制器创建或更新指示所述服务器已经从所述第二集群被重新分配的配置文件,从而使所述第二集群控制器在所述第二集群控制器的重新启动或所述第二集群的重新初始化期间忽略重新分配的所述服务器;以及
经由所述计算机网络向所述第一集群传输资源重新分配消息,所述资源重新分配消息指示从所述第二集群重新分配的所述服务器到所述第一集群的逻辑添加,所述资源重新分配消息触发所述第一集群以创建或更新指示重新分配的所述服务器在逻辑上被添加到所述第一集群的另一配置文件,并且将所述计算负载的一部分分配给从所述第二集群重新分配的所述服务器,而无需将所述服务器在物理上从所述第二集群移动到所述第一集群。
2.根据权利要求1所述的方法,其中:
所述阈值是第一阈值;以及
所述方法还包括:
确定所述第二集群的所述计算负载是否低于第二阈值;以及
响应于确定所述第二集群的所述计算负载低于所述第二阈值,允许将所述服务器从所述第二集群重新分配给所述第一集群。
3.根据权利要求1所述的方法,还包括:
确定在所述服务器从所述第二集群被重新分配给所述第一集群时,所述第二集群的所述计算负载是否超过所述阈值;以及
响应于确定在所述服务器从所述第二集群被重新分配给所述第一集群时所述第二集群的所述计算负载不会超过所述阈值,允许所述服务器从所述第二集群被重新分配给所述第一集群。
4.根据权利要求1所述的方法,其中从所述第二集群被重新分配给所述第一集群的所述服务器是以下之一:
前端服务器,被配置为接收和响应于对与用户帐户相关联的用户数据进行读取、写入、擦除或执行其他合适的数据操作的用户请求;
分区服务器,被配置为确定存储所请求的所述用户数据或所请求的所述用户数据的部分的位置;或者
后端存储服务器,被配置为对所述用户数据的至少一部分执行存储、检索或保持。
5.根据权利要求1所述的方法,还包括:
经由所述计算机网络从所述第一集群和所述第二集群接收附加状态数据,所述状态数据表示所述第一集群和所述第二集群单独经历的新计算负载;
确定所述第一集群的所述新计算负载是否仍然超过所述阈值;以及
响应于确定所述第一集群的所述新计算负载仍然超过所述阈值,
经由所述计算机网络向所述第二集群传输另一资源去除消息,所述另一资源去除消息指示来自所述第二集群的另一服务器被重新分配给所述第一集群;以及
经由所述计算机网络向所述第一集群传输另一资源重新分配消息,所述另一资源重新分配消息指示从所述第二集群去除的所述另一服务器到所述第一集群的逻辑添加,从而允许所述第一集群将所述计算负载的另一部分分配给从所述第二集群重新分配的所述另一服务器,而无需将所述另一服务器在物理上从所述第二集群移动到所述第一集群。
6.根据权利要求1所述的方法,还包括:
经由所述计算机网络从所述第一集群和所述第二集群接收附加状态数据,所述状态数据表
示所述第一集群和所述第二集群单独经历的新计算负载;
确定所述第一集群的所述新计算负载是否仍然超过所述阈值;以及
响应于确定所述第一集群的所述新计算负载未超过所述阈值,
经由所述计算机网络向所述第一集群传输资源去除消息,所述资源去除消息指示所述服务器被重新分配回所述第二集群;以及
经由所述计算机网络向所述第二集群传输资源重新分配消息,所述资源重新分配消息指示所述服务器从所述第一集群到所述第二集群的逻辑添加。
7.一种具有多个集群的分布式计算系统的集群中的计算设备,所述多个集群单独包含通过计算机网络互连的多个服务器,所述计算设备包括:
处理器;以及
存储器,包含由所述处理器可执行以引起所述处理器执行以下操作的指令:
经由所述计算机网络接收资源去除消息,所述资源去除消息指示所述集群中的所述计算设备对服务器的管理的终止;以及
响应于所接收的所述资源去除消息,
确定所述服务器当前是否正在处理所述集群的计算负载;
响应于确定所述服务器当前正在处理所述集群中的计算负载,将所述计算负载从所述服务器迁移到所述集群中的一个或多个其他服务器,并且随后终止经由所述计算机网络与所述服务器的通信,从而允许所述服务器处理来自另一集群的计算负载,而无需将所述服务器在物理上从所述集群重新定位到所述另一集群;
在配置文件中记录所述服务器从所述集群被重新分配;以及
在所述计算设备的重新启动期间,根据所述配置文件忽略所述服务器。
8.根据权利要求7所述的计算设备,其中所述存储器包含由所述处理器可执行以引起所述处理器执行以下操作的附加指令:
经由所述计算机网络接收资源重新分配消息,所述资源重新分配消息指示所述服务器从所述另一集群被分配回所述集群;以及
响应于所接收的所述资源重新分配消息,
从所述配置文件去除所述服务器从所述集群被重新分配;以及
在所述计算设备的重新启动期间,与所述服务器建立通信。
9.根据权利要求7所述的计算设备,其中所述资源去除消息还指示所述服务器被重新分配给的所述另一集群,并且其中所述存储器包含由所述处理器可执行以引起所述处理器执行以下操作的附加指令:响应于所接收的所述去除消息,在配置文件中记录所述服务器从所述集群被重新分配给所述另一集群。
10.根据权利要求7所述的计算设备,其中所述存储器包含由所述处理器可执行以引起所述处理器执行以下操作的附加指令:
经由所述计算机网络接收资源重新分配消息,所述资源重新分配消息指示另一服务器从另一集群被重新分配给所述集群;以及
响应于所接收的所述资源重新分配消息,
经由所述计算机网络与所述另一服务器建立通信;以及
将计算负载分配给所述另一服务器以进行处理,而无需将所述另一服务器从所述另一集群在物理上重新定位到所述集群。
11.根据权利要求10所述的计算设备,其中所述存储器包含由所述处理器可执行以引起所述处理器执行以下操作的附加指令:
响应于所接收的所述资源重新分配消息,在所述配置文件中记录所述另一服务器被重新分配给所述集群;以及
在所述计算设备的重新启动期间,
经由所述计算机网络与所述另一服务器建立通信;以及
将计算负载分配给所述另一服务器以进行处理,而无需将所述另一服务器从所述另一集群在物理上重新定位到所述集群。
12.根据权利要求10所述的计算设备,其中所述存储器包含由所述处理器可执行以引起所述处理器执行以下操作的附加指令:
响应于所接收的所述资源重新分配消息,在所述配置文件中记录所述另一服务器被重新分配给所述集群;以及
在所述计算设备的重新启动期间,根据所述配置文件,
经由所述计算机网络与所述另一服务器建立通信。
13.一种在分布式计算系统中的集群之间管理资源的方法,所述集群包括第一集群和第二集群,所述第一集群和第二集群单独包含通过计算机网络彼此互连的多个服务器,所述方法包括:
经由所述计算机网络接收资源重新分配消息,所述资源重新分配消息指示服务器从所述第二集群被重新分配给所述第一集群;以及
响应于所接收的所述资源重新分配消息,
经由所述计算机网络与从所述第二集群被重新分配给所述第一集群的所述服务器建立通信;以及
在经由所述计算机网络与所述服务器建立通信之后,将计算负载分配给从所述第二集群被重新分配给所述第一集群的所述服务器,而无需将所述服务器从所述第二集群在物理上重新定位到所述第一集群;
在配置文件中记录所述服务器已经从所述第二集群被重新分配给所述第一集群;以及
在所述第一集群的重新初始化期间,根据所述配置文件与所述第二集群中的所述服务器重新建立通信。
14.根据权利要求13所述的方法,还包括:
经由所述计算机网络接收资源去除消息,所述资源去除消息指示所述服务器从所述第一集群被重新分配回所述第二集群;以及
响应于所接收的所述资源去除消息,
从所述配置文件去除所述服务器从所述第二集群被重新分配给所述第一集群;以及
终止与所述服务器的通信。
15.根据权利要求13所述的方法,还包括:
经由所述计算机网络接收资源去除消息,所述资源去除消息指示所述服务器从所述第一集群被重新分配回所述第二集群;以及
响应于所接收的所述资源去除消息,
从所述配置文件去除所述服务器从所述第二集群被重新分配给所述第一集群;以及
确定所述服务器当前是否正在处理所述第一集群的计算负载;以及
响应于确定所述服务器当前正在处理所述第一集群的计算负载,
将所述计算负载迁移到所述第一集群中的一个或多个其他服务器;以及
随后终止与所述服务器的通信。
16.根据权利要求13所述的方法,还包括:
经由所述计算机网络接收资源去除消息,所述资源去除消息指示另一服务器从所述第一集群被重新分配给所述第二集群;以及
响应于所接收的所述资源去除消息,
在所述配置文件中记录所述另一服务器从所述第一集群被重新分配给所述第二集群。
17.根据权利要求13所述的方法,还包括:
经由所述计算机网络接收资源去除消息,所述资源去除消息指示另一服务器从所述第一集群被重新分配给所述第二集群;以及
响应于所接收的所述资源去除消息,
在所述配置文件中记录所述另一服务器从所述第一集群被重新分配给所述第二集群;以及
确定所述另一服务器当前是否正在处理所述第一集群的计算负载;以及
响应于确定所述服务器当前正在处理所述第一集群的计算负载,
将所述计算负载从所述另一服务器迁移到所述第一集群中的一个或多个其他服务器;以及
随后终止与所述另一服务器的通信。
18.根据权利要求17所述的方法,还包括:
在所述第一集群的重新初始化期间,根据所述配置文件,
忽略被重新分配给所述第二集群的所述另一服务器;
经由所述计算机网络与从所述第二集群被重新分配给所述第一集群的所述服务器建立通信;以及
随后将计算负载分配给从所述第二集群被重新分配给所述第一集群的所述服务器。
CN201880026681.5A 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理 Active CN110537169B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202311459925.8A CN117370030A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理
CN202311455189.9A CN117370029A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/582,038 US10609130B2 (en) 2017-04-28 2017-04-28 Cluster resource management in distributed computing systems
US15/582,038 2017-04-28
PCT/US2018/026628 WO2018200172A1 (en) 2017-04-28 2018-04-07 Cluster resource management in distributed computing systems

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202311459925.8A Division CN117370030A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理
CN202311455189.9A Division CN117370029A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理

Publications (2)

Publication Number Publication Date
CN110537169A CN110537169A (zh) 2019-12-03
CN110537169B true CN110537169B (zh) 2023-10-24

Family

ID=62067853

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202311455189.9A Pending CN117370029A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理
CN201880026681.5A Active CN110537169B (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理
CN202311459925.8A Pending CN117370030A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311455189.9A Pending CN117370029A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311459925.8A Pending CN117370030A (zh) 2017-04-28 2018-04-07 分布式计算系统中的集群资源管理

Country Status (4)

Country Link
US (3) US10609130B2 (zh)
EP (1) EP3616055A1 (zh)
CN (3) CN117370029A (zh)
WO (1) WO2018200172A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138037B2 (en) * 2017-11-02 2021-10-05 Mediatek Inc. Switch policy for hybrid scheduling in multi-processor systems
US11876684B1 (en) * 2018-05-22 2024-01-16 Amazon Technologies, Inc. Controlled cross-cell migration of data in cell-based distributed computing architecture
US11436098B2 (en) * 2018-08-02 2022-09-06 EMC IP Holding Company LLC Crash recovery of vRPA cluster protection engine
US11474915B2 (en) * 2018-08-28 2022-10-18 Hewlett Packard Enterprise Development Lp Cluster recovery manager to remediate failovers
CN110633151B (zh) * 2019-09-20 2022-09-02 北京小米移动软件有限公司 分布式发布消息集群分区平衡的方法、装置及存储介质
CN112860425A (zh) * 2019-11-28 2021-05-28 阿里巴巴集团控股有限公司 负载调度方法、装置、电子设备及计算机可读存储介质
CN110955528A (zh) * 2019-12-31 2020-04-03 智业软件股份有限公司 一种外联业务处理高并发请求的系统和方法
CN113783906B (zh) * 2020-06-10 2024-03-26 戴尔产品有限公司 生命周期管理加速
US11687376B2 (en) * 2020-06-12 2023-06-27 Baidu Usa Llc Method for data protection in a data processing cluster with dynamic partition
CN112181501B (zh) * 2020-09-02 2024-02-23 中国银联股份有限公司 应用的服务框架、服务控制方法、装置及计算机可读存储介质
CN113923216B (zh) * 2021-09-29 2023-12-15 阿里巴巴(中国)有限公司 一种分布式集群限流系统及方法和分布式集群节点
CN116069492A (zh) * 2021-11-02 2023-05-05 华为技术有限公司 一种业务处理的方法、系统以及装置
CN114723045B (zh) * 2022-04-06 2022-12-20 北京百度网讯科技有限公司 模型训练方法、装置、系统、设备、介质及程序产品
US11848847B1 (en) * 2022-10-11 2023-12-19 International Business Machines Corporation Balanced optimization within a broker cluster

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1614928A (zh) * 2003-11-06 2005-05-11 国际商业机器公司 操作服务器群集的方法和系统
CN103441918A (zh) * 2013-08-29 2013-12-11 哈尔滨工程大学 一种自组织集群服务器系统及其自组织方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US6922724B1 (en) * 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US7185076B1 (en) 2000-05-31 2007-02-27 International Business Machines Corporation Method, system and program products for managing a clustered computing environment
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US7693991B2 (en) * 2004-01-16 2010-04-06 International Business Machines Corporation Virtual clustering and load balancing servers
US7257811B2 (en) 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7644137B2 (en) 2004-12-14 2010-01-05 Sap Ag Workload balancing in environments with multiple clusters of application servers
WO2006108187A2 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US7873441B2 (en) * 2006-09-25 2011-01-18 Andreas Joanni Synesiou System for execution of a load operating plan for load control
US8335813B2 (en) 2007-05-01 2012-12-18 Illinois Institute Of Technology Systems, methods, and protocols for process migration and group membership management
WO2009055368A2 (en) * 2007-10-21 2009-04-30 Citrix Systems, Inc. Systems and methods to adaptively load balance user sessions to reduce energy consumption
US8041976B2 (en) 2008-10-01 2011-10-18 International Business Machines Corporation Power management for clusters of computers
US20100293559A1 (en) 2009-05-12 2010-11-18 Samsung Electronics Co., Ltd. Sharing input/output (i/o) resources across multiple computing systems and/or environments
US8458324B2 (en) * 2009-08-25 2013-06-04 International Business Machines Corporation Dynamically balancing resources in a server farm
US8874744B2 (en) * 2010-02-03 2014-10-28 Vmware, Inc. System and method for automatically optimizing capacity between server clusters
US9026630B2 (en) 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
US9471390B2 (en) 2013-01-16 2016-10-18 International Business Machines Corporation Scheduling mapreduce jobs in a cluster of dynamically available servers
US10104166B2 (en) * 2014-05-20 2018-10-16 Citrix Systems, Inc. Systems and methods for providing load balancing as a service
US9848041B2 (en) 2015-05-01 2017-12-19 Amazon Technologies, Inc. Automatic scaling of resource instance groups within compute clusters
JP2017033375A (ja) 2015-08-04 2017-02-09 富士通株式会社 並列計算システム、マイグレーション方法、及びマイグレーションプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1614928A (zh) * 2003-11-06 2005-05-11 国际商业机器公司 操作服务器群集的方法和系统
CN103441918A (zh) * 2013-08-29 2013-12-11 哈尔滨工程大学 一种自组织集群服务器系统及其自组织方法

Also Published As

Publication number Publication date
CN110537169A (zh) 2019-12-03
WO2018200172A1 (en) 2018-11-01
US11700300B2 (en) 2023-07-11
CN117370030A (zh) 2024-01-09
US20200186599A1 (en) 2020-06-11
US20180316749A1 (en) 2018-11-01
US20220272242A1 (en) 2022-08-25
US10609130B2 (en) 2020-03-31
EP3616055A1 (en) 2020-03-04
CN117370029A (zh) 2024-01-09
US11297130B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
CN110537169B (zh) 分布式计算系统中的集群资源管理
US10795905B2 (en) Data stream ingestion and persistence techniques
CN109643251B (zh) 基于计算系统中的利用模式的资源过度订阅
US10691716B2 (en) Dynamic partitioning techniques for data streams
US10656868B2 (en) Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems
US9276959B2 (en) Client-configurable security options for data streams
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US10635644B2 (en) Partition-based data stream processing framework
JP5400482B2 (ja) 管理計算機、リソース管理方法、リソース管理プログラム、記録媒体および情報処理システム
US10305815B2 (en) System and method for distributed resource management
US20200133541A1 (en) Method and apparatus for bottleneck identification in high-performance storage systems
US20140149590A1 (en) Scaling computing clusters in a distributed computing system
US20100217860A1 (en) Systems and methods for single session management in load balanced application server clusters
US10810054B1 (en) Capacity balancing for data storage system
WO2017207049A1 (en) A node of a network and a method of operating the same for resource distribution
US11256440B2 (en) Method and distributed storage system for aggregating statistics
US11016685B2 (en) Method and defragmentation module for defragmenting resources
CN107153513B (zh) 一种分布式系统服务器的存储控制方法及服务器
US11855908B2 (en) Resource allocation in cloud computing systems
JP5580754B2 (ja) 排他制御装置および排他制御方法
KR100847461B1 (ko) 입출력 공유 장치를 이용하여 구축된 서버 시스템 및 상기서버 시스템을 구축하는 방법
KR20090079598A (ko) Ip를 이용한 입출력 공유 장치 및 이를 이용한 시스템콘솔 자동백업 장치 및 자동백업 방법
JP2017182591A (ja) コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant