CN111801654A - 高可用性的多单租户服务 - Google Patents

高可用性的多单租户服务 Download PDF

Info

Publication number
CN111801654A
CN111801654A CN201880090608.4A CN201880090608A CN111801654A CN 111801654 A CN111801654 A CN 111801654A CN 201880090608 A CN201880090608 A CN 201880090608A CN 111801654 A CN111801654 A CN 111801654A
Authority
CN
China
Prior art keywords
instances
instance
host
pool
primary
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.)
Pending
Application number
CN201880090608.4A
Other languages
English (en)
Inventor
格里戈里·阿瓦吉扬
迪安·希尔德布兰德
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN111801654A publication Critical patent/CN111801654A/zh
Pending legal-status Critical Current

Links

Images

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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Abstract

维护服务实例(362)在分布式系统(200)上的可用性的方法(400)包括执行主虚拟机(VM)实例(350P)的池,每个主VM实例执行相应的单个服务实例并且包括不可用率。该方法还包括基于主VM实例的池中的主VM实例的数量和不可用率来确定用于当一个或多个主VM实例不可用时维持单个服务实例的可用性所需的辅VM实例(350S)的数量。该方法还包括基于用于维持单个服务实例的可用性所需的辅VM实例的数量来实例化辅VM实例的池。

Description

高可用性的多单租户服务
技术领域
本公开涉及具有高可用性的多单租户服务。
背景技术
多单租户(MST)服务在虚拟机上执行软件/服务实例。在单租户中,每个实例都在单独的虚拟机上执行。当虚拟机发生故障,或在一段时间内无法用于更新或维护时,在该虚拟机上执行的服务可能会转移到辅虚拟机并且在辅虚拟机上执行。当计算环境中缺少容量时,在生成辅虚拟机时可能会出现延迟。结果,已知为每个主虚拟机分配一个辅虚拟机,使得MST服务可以响应性地故障转移到辅虚拟机而不会延迟执行与由于故障、维护/更新或其他原因而变得不可用的主虚拟机相关联的软件实例。但是,使用大量虚拟机的MST服务利用大量资源来分配和维护通常大部分时间闲置的相应虚拟机的可用性。
发明内容
本公开的一个方面提供了一种维护服务实例在分布式系统上的可用性的方法。该方法包括通过分布式系统的数据处理硬件执行主虚拟机(VM)实例的池,每个主VM实例执行相应的单个服务实例并且包括不可用率。该方法还包括,由数据处理硬件基于主VM实例的池中的主VM实例的数量和不可用率确定用于当一个或多个主VM实例不可用时维持单个服务实例的可用性所需的辅VM实例的数量。该方法还包括由数据处理硬件基于维护单个服务实例的可用性所需的辅VM实例的数量来实例化辅VM实例的池。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,该方法还包括由数据处理硬件标识主VM实例的池中的主VM实例之一的不可用性,以及由数据处理硬件使不可用的主VM实例故障转移到辅VM实例池中的辅VM实例之一开始执行与不可用的主VM实例相关联的单个服务实例。在这些实施方式中,该方法还可以包括,由数据处理硬件确定辅VM实例包括相应的资源级,该资源级小于与对应的单个服务实例相关联的目标资源级;以及在辅VM实例执行单个服务实例的期间,由数据处理硬件增长辅VM实例的相应的资源级,直到满足与单个服务实例相关联的目标资源级为止。在一些示例中,辅VM实例的池中的辅VM实例的数量小于主VM实例的池中的主VM实例的数量。可选地,每个主VM实例可以执行多个主容器,并且每个主容器在与其他主容器隔离的安全执行环境中执行相应的单个服务实例。
在一些示例中,该方法还包括:当在池中执行的主VM实例的数量改变时,由数据处理硬件更新用于维持单个服务实例的可用性所需的辅VM实例的数量。主实例的不可用性可以基于主VM实例的故障、重新创建主VM实例的延迟或主VM实例的计划维护时间段中的至少一个。此外,不可用率可以包括不可用频率或不可用时段中的至少之一。
在一些实施方式中,该方法还包括由数据处理硬件基于平均无故障时间(MTTF)和重新创建相应的VM实例的预期时间长度来确定主VM实例的池中的每个主VM实例的不可用率。实例化辅VM实例的池可以包括确定主VM实例的池中的每个主VM实例的相应的VM类型,并且对于主VM实例的池中的每个不同的VM类型,实例化具有相同的VM类型的至少一个辅VM实例。在一些示例中,每个主VM实例的相应的VM类型指示该VM实例的内存资源需求、计算资源需求、网络规范需求或本地存储需求中的至少一个。
在一些示例中,该方法还包括在数据处理硬件处接收计划故障转移消息,该计划故障转移消息指示将在计划维护时间段期间不可用的主VM实例的池中的主VM实例的数量。在这些示例中,实例化辅VM实例的池进一步基于将在计划维护时间段期间不可用的主VM实例的数量。例如,实例化辅VM实例的池可以包括实例化等于下述中的较大的一个的辅VM实例的数量:维持单个服务实例的可用性所需的辅VM实例的数量;或者将在计划维护时间段期间不可用的主VM实例的数量。可以实例化辅VM实例的池,以供分布式系统的单一客户使用。可选地,可以实例化辅VM实例的池,以供分布式系统的多个客户使用。
以上各方面可以应用于上述的多单租户服务。在这种情况下,每个单个服务实例都可以在单独的虚拟机实例上执行。类似地,当每个主服务实例都在容器中运行时,可以应用上述各方面,使得主服务实例故障转移到辅容器而不是整个虚拟机实例。多个容器可以在单一VM中运行。基于该方面的方法可以提供一种维护服务实例在分布式系统上的可用性的方法,该方法包括:由分布式系统的数据处理硬件执行主虚拟机(VM)实例,主VM实例执行主容器的池。每个主容器执行相应的单个服务实例并包括不可用率。该方法还包括:由数据处理硬件基于主容器的池中的主容器的数量和相应的不可用率来确定用于当一个或多个主容器不可用时在辅VM实例中维持单个服务实例的可用性所需的辅容器的数量;以及由数据处理硬件基于所需的辅容器的数量实例化辅VM实例上的辅容器的池。
此外,以上各方面可应用于裸金属机(例如,裸金属服务器)而不是VM实例。例如,单租户、裸金属机服务器可以为一些受法规措施限制的组织提供不同的选项,诸如数据安全性和隐私控制。基于此方面的方法可以提供一种在分布式系统上维护服务实例的方法,该方法包括执行主裸金属机池,每个主裸金属机执行相应的单个服务实例并且包括不可用率。该方法还包括由数据处理硬件基于主裸金属机池中的主裸金属机的数量和不可用率确定用于当一个或多个主裸金属机不可用时维持单个服务实例的可用性所需的次级裸金属机的数量。该方法还包括由数据处理硬件基于维护单个服务实例的可用性所需的辅裸金属机的数量实例化辅裸金属机池。
本公开的另一方面提供一种用于维持服务实例在分布式系统上的可用性的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,这些指令在数据处理硬件上执行时,使数据处理硬件执行包括执行主虚拟机(VM)实例池的操作。每个主VM实例执行相应的单个服务实例并且包括不可用率。这些操作还包括基于主VM实例池中的主VM实例的数量和不可用率,确定用于在一个或多个主VM实例不可用时维护单个服务实例的可用性所需的辅VM实例的数量。这些操作还包括基于维护单个服务实例的可用性所需的辅VM实例的数量实例化辅VM实例的池。
该方面可以包括以下可选特征中的一个或多个。例如,操作可以可选地包括,标识主VM实例的池中的主VM实例之一的不可用性;以及使不可用的主VM实例故障转移到辅VM实例的池中的辅VM实例之一开始执行与不可用的主VM实例相关联的单个服务实例。另外,该操作可以进一步包括,确定辅VM实例包括小于与相应的单个服务实例相关联的目标资源级的相应的资源级;以及在辅虚拟机实例执行单个服务实例期间,增长辅虚拟机实例的相应的资源级,直到满足与单个服务实例相关联的目标资源级为止。在一些示例中,辅VM实例的池中的辅VM实例的数量小于主VM实例的池中的主VM实例的数量。可选地,每个主VM实例可以执行多个主容器,并且每个主容器在与其他主容器隔离的安全执行环境中执行相应的单个服务实例。
在一些示例中,该操作还包括:当池中执行的主VM实例的数量改变时,更新用于维护单个服务实例的可用性所需的辅VM实例的数量。主实例的不可用性可以基于主VM实例的故障、重新创建主VM实例的延迟或主VM实例的计划维护时间段中的至少一个。而且,不可用率可以包括不可用频率或不可用时段中的至少之一。
在一些实施方式中,操作还包括基于平均故障时间(MTTF)和重新创建相应的VM实例的预期时间长度确定主VM实例池中的每个主VM实例的不可用率。实例化辅VM实例的池可以包括确定主VM实例的池中的每个主VM实例的相应的VM类型,以及对于主VM实例的池中的每个不同的VM类型,实例化具有相同的VM类型的至少一个辅VM实例。在一些示例中,每个主VM实例的相应的VM类型指示相应的VM实例的内存资源需求、计算资源需求、网络规范需求或本地存储需求中的至少一个。
在一些示例中,操作还包括接收计划故障转移消息,该消息指示将在计划维护时间段期间不可用的主VM实例的池中的主VM实例的数量。在这些示例中,实例化辅VM实例的池进一步基于将在计划维护时间段期间不可用的主VM实例的数量。例如,实例化辅VM实例的池可以包括实例化等于下述中的较大的一个的多个辅VM实例:维持单个服务实例的可用性所需的辅VM实例的数量;或者在计划维护时间段期间将不可用的主VM实例的数量。可以实例化辅VM实例的池,以供分布式系统的单一客户使用。可选地,可以实例化辅VM实例的池,以供分布式系统的多个客户使用。
在附图和以下描述中阐述了本公开的一种或多种实施方式的细节。根据描述和附图以及根据权利要求书,其他方面、特征和优点将是显而易见的。
附图说明
图1是包括通过网络与分布式系统通信的用户设备的示例系统的示意图。
图2是执行虚拟计算环境的示例分布式系统的示意图。
图3是具有主虚拟机池和辅虚拟机池的示例虚拟计算环境的示意图。
图4是用于维持虚拟机实例的可用性的方法的操作的示例布置的流程图。
图5是示例计算设备。
在各个附图中,相似的附图标记指示相似的元件。
具体实施方式
分布式系统的用户,诸如在分布式系统上开发项目的客户,可以通过创建通常模拟可能涉及专门硬件、软件或其组合的物理计算环境的虚拟计算环境来执行一个或多个虚拟机(VM)实例以执行软件应用或服务。VM实例本身就是在主机机器(例如,计算机服务器)上运行的应用,该主机机器执行用于管理在该主机机器上运行的VM实例的主机操作系统(OS)。主机机器可以同时运行任意数量的VM,诸如一部分VM(例如,分布在多台主机机器上的VM)、一个VM和多个VM。每个VM均可以在与主机机器上运行的其他VM隔离的单独环境中的主机机器上执行。这样的单独的环境可以称为安全沙箱或容器。此外,单一VM可以运行多个容器,每个容器都在与VM上运行的其他容器隔离的单独环境中运行。
分布式系统可以提供在VM上执行软件/服务实例的多单租户(MST)服务。在单租户中,每个实例都在单独的VM实例上执行。示例MST服务可以包括结构化查询语言(SQL)关系数据库。因此,分布式系统可以执行用于MST服务的VM实例池,其中池中的每个VM实例使用由VM实例提供的虚拟化硬件来运行/执行服务(例如,软件应用)的相应的单个服务实例。可选地,分布式系统可以执行用于MST服务的裸金属机器(例如,裸金属机服务器)池,其中在池中执行的每个裸金属机器运行/执行服务的相应的单个服务实例。
本文的实施方式针对一种自适应和动态方法,用于当执行相应的单个服务实例的主虚拟机实例变得不可用时,维持服务实例在计算环境(例如,分布式系统)中的可用性。基于计划外虚拟机故障相对很少(例如,大约每两年一次)且它们之间几乎没有关联或没有关联的了解,本文的实施方式会基于每个主VM实例的不可用率(或计划维护时间段)和主VM实例的数量,动态地调整辅VM的数量以维护可用性。不可用率可以指示故障的统计频率以及重新创建相应的主VM实例的时间长度。结果,与为每个主VM实例分配一个辅VM实例的常规技术相比,显著地减少实例化以维护服务实例的可用性的辅VM实例的总数。通过减少辅VM实例的总数,释放了计算环境(例如,分布式系统)中的其他计算资源需求,否则该需求将被保留用于为每个主VM实例维护单独的辅VM实例。除了消耗较少的计算资源之外,由于减少了创建辅VM实例所需的物理资源的数量,辅VM实例的总数的减少也降低了成本。
要解决的技术问题包括如何在仍然确保故障转移能力的同时,在多单租户(MST)服务环境中更好地使用和分配资源。该技术解决方案包括动态地确定辅虚拟机容量需求,尤其是池化辅VM实例以确保故障转移能力。在此,辅VM实例的池化允许减少为辅VM实例保留的资源(例如,处理时间、存储器等),由此释放额外的资源供计算环境用于其他用途。在主裸金属机池中的每个主裸金属机执行/运行相应服务实例的可选实施方式中,本文的实施方式可以通过当一台或多台主裸金属机发生故障时,基于维护服务实例的可用性所需的辅裸金属机的数量,动态地实例化辅裸金属机池来类似地确保故障转移能力。
实施方式通过可选地运行具有较低资源级的辅VM实例,直到在故障转移时从相应的主VM实例调用为止,然后增加/增长资源以匹配故障/不可用主VM实例的资源需求(目标级),进一步减少了用于辅VM实例的资源。在此,不可用VM实例的目标级对应于故障转移到辅VM实例以在其上执行的相应服务实例指定的目标资源级。另外的实施方式允许使用减少数量的高资源辅VM实例,因为低资源主VM实例可以故障转移到高资源辅VM实例而不会造成负面影响。在此,辅VM实例可以在故障转移后减小到适当的大小。
图1描绘了示例性系统100,该示例性系统100包括分布式系统200,该分布式系统200被配置为在虚拟计算环境300中运行在主VM实例350、350P的池上执行的软件应用360(例如,服务)。与用户130(客户)相关联的用户设备120(例如计算机)经由网络140与分布式系统200通信,以提供用于部署、移除或修改虚拟计算环境300中运行的主VM实例350P的命令150。因此,主VM实例350P的池中的主VM实例350P的数量可以基于从用户设备120接收的命令150而动态地改变。
在一些示例中,软件应用360与MST服务相关联,并且每个主VM实例350P被配置为执行软件应用360的相应的单个服务实例362(例如,MST服务的单租户)。在一个或多个主VM实例350P变得不可用的情况下,分布式系统200执行被配置为实例化辅VM实例350、350S的池的计算设备112,以便维持与不可用主VM实例350P相关联的一个或多个单个服务实例362的可用性。例如,响应于执行相应的单个服务实例362的主VM实例350P变得不可用,计算设备112(例如,数据处理硬件)可以使单个服务实例362故障转移到辅VM实例350S的池中的辅VM实例350S之一,以便单个服务实例362在不定的时间段内不会变得不可用。因此,分布式系统200可以动态地故障转移到实例化的辅VM实例350之一,而不是经历停机时间以重新创建不可用的主VM 350P,从而不会中断用户130的现有单个服务实例362。由于计划外和意外的故障、重新创建主VM实例350P的延迟和/或由于主VM实例350P的计划维护时间段,诸如对主VM实例350P的内核的关键安全补丁的更新,主VM实例350P可能变得不可用。
虽然将单独的辅VM实例350S创建为每个主VM实例350P的备份的技术有利地提供了高可用性,但是这些技术的缺点是,这些被动辅VM实例350S中的大多数会无限期保持空闲,因为主VM实例350P很少发生故障,由此导致大量资源不会被使用。另外,基于为每个主VM实例350P创建一个辅VM实例350S所需的资源需求,产生了不适当的成本。为了当一个或多个主VM实例350P不可用时仍然保持单个服务实例362的可用性,但又不引起与上述高可用性技术相关联的低效率和高成本,本文的实施方式针对通过相对于主VM实例350P的池中的主VM实例350P的数量,减少数量的辅VM实例350S来实例化辅VM实例350S的池。在此,计算设备112可以基于主VM实例350P的池中的主VM实例350P的数量和用于每个主VM实例350P的不可用率,确定当一个或多个主VM实例不可用时,维持可用性所需的辅VM实例的数量。
主VM实例350P的不可用率可以包括不可用频率或不可用时段中的至少一个。例如,每个主VM实例350P可以包括相应的平均故障时间(MTTF),该平均故障时间指示主VM实例350P在发生故障之前预期要运行多长时间(例如,天数)。MTTF值可以是365天(例如1年)或720天(例如2年)。每个主VM实例350P的不可用率可以进一步包括重新创建相应的主VM实例的预期时间长度(例如,缺货值)。例如,当分布式系统200等待资源(即,处理资源和/或内存资源)变得可用于重新创建VM实例350时,VM实例350可以与缺货值相关联。可以通过观察具有相同或相似VM类型(即处理资源、内存资源、存储资源、网络配置)的VM实例350的执行的统计分析和/或机器学习技术,可以获得MTTF和重新创建每个主VM实例350P的预期时间长度。
随着由于用户130添加/移除主VM实例350P和/或主VM实例350变得不可用而导致在虚拟环境300中执行的主VM实例350P的数量连续地变化,分布式系统200(即,经由计算设备112)被配置为动态地更新在辅VM实例350S的池中实例化的辅VM实例350S的数量。在一些示例中,主VM实例350P的池与单个用户/客户130相关联,并且辅VM实例350S的池仅被实例化以供单个用户/客户130使用。在其他示例中,主VM实例350P的池包括主VM实例350P的多个子池,每个子池与不同的用户/客户130相关联并且与其他子池隔离。在这些示例中,在任一子池中的一个或多个主VM实例350P不可用的情况下,在多个不同的用户/客户130之间共享辅VM实例350S的池。
在一些实施方式中,虚拟计算环境300覆盖在分布式系统200的资源110、110a-n上。资源110可以包括硬件资源110和软件资源110。硬件资源110可以包括计算设备112(也被称为数据处理设备和数据处理硬件)或非暂时性存储器114(也被称为存储器硬件)。软件资源110可以包括软件应用、软件服务、应用编程接口(API)等。软件资源110可以驻留在硬件资源110中。例如,软件资源110可以被存储在存储器硬件114中或者硬件资源110(例如,计算设备112)可以执行软件资源110。
网络140可以包括各种类型的网络,诸如局域网(LAN)、广域网(WAN)和/或互联网。尽管网络140可以表示远程网络(例如,互联网或WAN),但是在一些实施方式中,网络140包括短距离网络,诸如局域网(LAN)。在一些实施方式中,网络140使用标准通信技术和/或协议。因此,网络140可以包括使用诸如以太网、无线保真(WiFi)(例如802.11)、全球微波接入互通(WiMAX)、3G、长期演进(LTE)、数字用户线(DSL)、异步传输模式(ATM)、InfiniBand、PCIExpress先进交换、蓝牙、蓝牙低功耗(BLE)等的技术的链路。类似地,网络132上使用的联网协议可以包括多协议标签交换(MPLS)、传输控制协议/网际协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)等。在网络140上交换的数据可以使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来表示。此外,可以使用常规加密技术(诸如安全套接层(SSL)、传输层安全性(TLS)、虚拟专用网(VPN)、网际协议安全性(IPsec)等)加密所有或某些链路。在其他示例中,代替上述技术或除了上述技术之外,网络140还使用自定义和/或专用数据通信技术。
在图2所示的示例中,分布式系统200包括执行虚拟计算环境300的资源110(例如,硬件资源110)的集合210。虚拟计算环境300包括虚拟机管理器(VMM)320和运行一个或多个虚拟机(VM)350、350a-n的虚拟机(VM)层340,一个或多个虚拟机(VM)350、350a-n被配置为执行一个或多个软件应用360的实例362a、362a-n。每个硬件资源110可以包括一个或多个物理中央处理单元(pCPU)112(“数据处理硬件112”)和存储器硬件114。虽然示出的每个硬件资源110具有单个物理处理器112,但是任何硬件资源110可以包括多个物理处理器112。主机操作系统(OS)312可以在资源110的集合220上执行。
在一些示例中,VMM 320对应于包括被配置为创建、实例化/部署和执行VM 350的软件、固件或硬件中的至少一个的虚拟机监视器320(例如,计算引擎)。与执行一个或多个VM 350的VMM 320相关联的计算机(即,数据处理硬件112)可以被称为主机310,而每个VM350可以被称为客户机。在此,VMM 320或虚拟机监视器被配置为向每个VM 350提供具有虚拟操作平台的相应客户操作系统(OS)354、354a-n,并且管理VM 350上的相应客户OS 354的执行。如本文所使用的,每个VM 350可以被称为“实例”或“VM实例”。在一些示例中,各种操作系统的多个实例可以共享虚拟化资源。例如,
Figure BDA0002660579260000111
操作系统的第一VM 350、
Figure BDA0002660579260000112
操作系统的第二VM 350和OS
Figure BDA0002660579260000113
操作系统的第三VM 350都可以在单个物理x86机上运行。
VM层340包括一个或多个虚拟机350。分布式系统200使用户130能够按需启动VM350,即,通过经由网络140向分布式系统200发送命令150(图1)。例如,命令150可以包括与相应的操作系统312相关联的图像或快照,并且分布式系统200可以使用该图像或快照来为相应的VM 350创建根资源110。在此,命令150内的图像或快照可以包括引导加载器、相应的操作系统312和根文件系统。响应于接收到命令150,分布式系统200可以实例化相应的VM350,并且在实例化时自动地启动VM 350。VM 350模拟真实的计算机系统(例如,主机310),并且基于真实的计算机系统或假设的计算机系统的计算机架构和功能进行操作,该计算机架构和功能可能涉及专用硬件、软件或其组合。在一些示例中,分布式系统200在启动一个或多个VM 350之前,对用户130进行授权和认证。软件应用360的实例362,或简称为实例,是指在分布式系统200的处理硬件112上托管(在其上执行)的VM 350。
主机OS 312虚拟化底层主机硬件,并且管理一个或多个VM实例350的并行执行。例如,主机OS 312可以管理VM实例350a-n,并且每个VM实例350可以包括底层主机硬件的模拟版本或不同的计算机架构。与每个VM实例350、350a-n相关联的硬件的模拟版本被称为虚拟硬件352、352a-n。虚拟硬件352可以包括模拟主机310的一个或多个物理处理器112的一个或多个虚拟中央处理单元(vCPU)(“虚拟处理器”)(图3)。虚拟处理器可以可互换地称为与VM实例350相关联的“计算资源”。计算资源可以包括执行相应的单个服务实例362所需的目标计算资源级。
虚拟硬件352可以进一步包括与虚拟处理器通信并且存储可由虚拟处理器执行以执行操作的客户指令(例如,客户软件)的虚拟存储器。例如,虚拟处理器可以执行来自虚拟存储器的指令,该指令使虚拟处理器执行软件应用360的相应的单个服务实例362。在此,单个服务实例362可以被称为无法确定其正由虚拟硬件352还是物理数据处理硬件112执行的客户实例。如果在相应VM实例350上执行的客户服务实例362或VM实例350本身发生故障或中止,则执行相应的单个服务实例362的其他VM实例将不受影响。主机的微处理器可以包括处理器级机制,以使虚拟硬件352通过允许客户软件指令直接在主机的微处理器上执行而无需代码重写、重新编译或指令仿真,有效地执行应用360的软件实例362。虚拟存储器可以可互换地称为与VM实例350相关联的“内存资源”。内存资源可以包括执行相应的单个服务实例362所需的目标内存资源级。
虚拟硬件352可以进一步包括至少一个虚拟存储设备,其为物理存储器硬件114上的服务提供存储容量。该至少一个虚拟存储设备可以被称为与VM实例350相关联的存储资源。存储资源可以包括执行相应的单个服务实例362所需的目标存储资源级。在每个VM实例350上执行的客户软件可以进一步分配网络边界(例如,分配网络地址),各个客户软件可以通过该网络边界与可通过内部网络330(图3)、外部网络140(图1)或两者达到的其他过程通信。网络边界可以被称为与VM实例350相关联的网络资源。
在每个VM 350上执行的客户OS 354包括控制由VM实例350执行应用360的相应单个服务实例362、362a-n的软件。在VM实例350、350a-n上执行的客户OS 354、354a-n可以与在其他VM实例350上执行的其他客户OS 354相同或不同。在一些实施方式中,VM实例350不需要客户OS 354以便执行单个服务实例362。主机OS 312可以进一步包括为主机OS 312的内核316保留的虚拟内存。内核316可以包括内核扩展和设备驱动程序,并且可以执行某些特权操作,对在主机OS312的用户进程空间中运行的过程禁止这些特权操作。特权操作的示例包括对不同地址空间的访问、对主机310中的特殊功能处理器单元(诸如存储器管理单元)的访问等。在主机OS 312上运行的通信过程314可以提供VM网络通信功能的一部分,并且可以在用户进程空间或与内核316相关联的内核进程空间中执行。
参考图3,在一些实施方式中,在分布式系统200上运行的虚拟计算环境300包括可以位于不同的物理位置并且可以具有不同的功能和计算机架构的多个主机310、310a-n(例如,一个或多个数据处理装置,诸如机架式服务器或不同的计算设备)。主机310可以通过内部数据通信网络330(内部网络)彼此通信。内部网络330可以包括例如一个或多个有线(例如,以太网)或无线(例如,Wi-Fi)网络。在一些实施方式中,内部网络330是内联网。可选地,主机310还可以与诸如因特网的外部网络140上的设备通信。其他类型的外部网络也是可能的。
在所示的示例中,每个主机310执行相应的主机操作系统(OS)312、312a-n,该主机操作系统(OS)312、312a-n虚拟化主机310的底层硬件(即数据处理硬件112和存储器硬件114)并且管理多个VM实例350的并行执行。例如,主机操作系统312a-312n-1各自管理多个主VM实例350P的并行执行,以共同地提供主VM 350P的池,而在主机310n上执行的主机操作系统312n管理辅VM实例350S的池的执行。在此,专用主机(例如,主机310n)托管辅VM实例350S的整个池,由此确保在故障转移的情况下,有足够的资源可用于由辅VM实例350S使用(不需要故障转移辅VM实例350S迁移到具有足够资源的不同主机310)。然而,在其他示例中,可以跨也可以执行一个或多个主VM实例350P的多个主机310实例化一个或多个辅VM实例350S。
在一些实施方式中,虚拟机管理器320使用主VM管理器322在主VM实例350的池中创建和部署每个主VM实例350P以在指定的主机310上执行。VMM 320可以通过分配用于执行相应的单个服务实例362所需的计算资源级、内存资源级、网络规范和/或存储资源级,创建每个主VM实例350。因此,主VM实例350P的池中的每个主VM实例350P可以包括相应的VM类型380,其指示用于相应的主VM实例350的内存资源需求、计算资源需求、网络规范需求或存储资源需求中的至少一项。在所示的示例中,主VM实例350P的池中的所有主VM实例350P具有类型A或类型B的VM类型380。因此,类型A的VM类型380可以包括与类型B的VM类型380不同的计算资源级、内存资源级、网络规范或存储资源级中的至少一个。
VMM 320处的主VM管理器322可以维护部署到主VM实例350P的池中的每个VM实例350P的活动日志、每个VM实例350P的VM类型380以及在每个主VM实例350P上执行的相应的单个服务实例362。当主VM实例350P被部署到主VM实例350P的池中或从主VM实例350P的池中移除时,日志可以被更新。另外,可以基于将主VM实例350P分布在诸如建筑物、区域或地区的各种故障域中,将主VM实例350P的池进一步分成子池。在一些实施方式中,单个服务实例362分别在具有多个其他容器的单个主VM实例350P上运行的相应容器中执行。因此,日志可以指示在每个主VM实例350P上运行的容器的列表,以及在每个容器中执行的相应服务实例362。
主VM管理器322进一步获得每个主VM实例350P的不可用率。在一些示例中,主VM实例350P的池中的所有主VM实例350P包括相同的不可用率。在其他示例中,与类型A VM类型380相关联的主VM实例350P的不可用率不同于与类型B VM类型380相关联的主VM实例350P的可用率。如上所述,每个主VM实例350P可以包括指示在发生故障之前,期望主VM实例350P运行多长时间(例如,天数)的相应的MTTF值以及指示重新创建主VM实例350P的预期时间长度的缺货值。可以从所观察的监视数据以及随着时间观察相似VM实例350的执行的机器学习算法中推导MTTF值和缺货值。
例如,每个主VM实例350P可以包括相应的平均故障时间(MTTF),其指示在发生故障之前,预期主VM实例350P运行多长时间(例如,天数)。MTTF值可以是365天(例如1年)或720天(例如2年)。每个主VM实例350P的不可用率可以进一步包括重新创建相应的主VM实例的预期时间长度(例如,缺货值)。例如,当分布式系统200等待资源(即,处理资源和/或内存资源)变得可用于重新创建VM实例350时,VM实例350可以与缺货值相关联。可以通过观察具有相同或相似VM类型(即处理资源、内存资源、存储资源、网络配置)的VM实例350的执行,通过统计分析和/或机器学习技术来获得MTTF和重新创建每个主VM实例350P的预期时间长度。
VMM 320可以进一步维护指示在主VM实例350P的池中的相应的主VM实例350P上执行的软件应用360的每个单个服务实例362的服务实例存储库324以及用于执行相应的单个服务实例362所需的目标资源级。在一些示例中,存储库324中的每个单个服务实例362可以指定相应的服务实例362是否在故障转移之后的临时时间内允许降低的性能需求。在这些示例中,允许降低的性能需求的服务实例362允许服务实例362故障转移到具有小于与相应的单个服务实例362相关联的相应目标资源级的相应资源级(例如,处理器资源级、内存资源级或存储资源级)的辅VM实例362,然后动态地增长/增加辅VM实例的相应的资源级,直到满足目标资源级为止。因此,辅VM实例350S可以以降低的性能初始地执行单个服务实例362,直到相应的资源级增长以满足与单个服务实例362相关联的相应目标资源级为止。在这些示例中,辅VM实例350S可以在空闲时被分配更少资源,并且一旦在故障转移期间被要求执行单个服务实例362,就可以根据需要调整大小/增长。
在一些示例中,VMM 320包括维护调度器326,当主VM实例350P的池中的一个或多个主VM实例350P将不可用于离线执行的维护/更新时,该维护调度器326标识维护时间段。例如,维护调度器326可以指示在执行维护/更新的计划的维护时间段期间将不可用的主VM实例350P的数量。在一个示例中,分布式系统200以百分之二(2%)的部署率(或其他百分比/值),周期性地推出内核更新,使得在完成更新的计划维护时间段期间,主VM实例350P的池中的百分之二的主VM实例350P将不可用。内核更新可以在与VM实例350相关联的内核216中包括修复安全补丁。在一些示例中,VMM 320从计算设备304接收计划故障转移消息302,该消息指示在执行维护/更新的计划维护时间段期间将不可用的主VM实例350P的数量(或百分比)。计算设备304可以属于分布式系统200的管理员。可选地,当用户130想要更新主VM实例350P的池中的一个或多个主VM实例350P时,用户设备120可以经由外部网络140提供计划故障转移消息302。
在一些实施方式中,VMM 320包括与主VM管理器322通信的辅VM实例化器328、服务实例存储库324和用于实例化辅VM实例350S的池的维护调度器326。在这些实施方式中,辅VM实例化器328基于主VM实例350P的池中的主VM实例350P的数量和每个主VM实例350P的不可用率确定用于当一个或多个主VM实例350P不可用时维护单个服务实例362的可用性所需的辅VM实例350S的数量。在一些示例中,辅VM实例化器328通过计算下述公式,确定辅VM实例的数量:
Figure BDA0002660579260000171
其中,VMsecondary_N是维护单个服务实例362的可用性所需的辅VM实例350S的数量,VMPrimary_Pool是主VM实例350P的池中的主VM实例350P的数量,SO是主VM实例350P中的指示重新创建相应的主VM实例350P的天数的最高缺货值,以及MTTF是主VM实例350P中以天为单位的最低平均故障时间值。
在一个示例中,当主VM实例350P的数量等于一千(1,000),并且每个VM实例350P的MTTF值等于一年(365天),而缺货值等于五(5)天时,使用公式1计算的辅VM实例350S的数量(VMsecondary_N)等于十四(14)。除非维护调度器326识别出将在计划维护时间段期间不可用的超过14个的主VM实例,否则辅VM实例化器328将实例化等于用于维护单个服务实例362的可用性所需的辅VM实例350S的数量(例如,14)的辅VM实例350S的数量。否则,当维护调度器326识别出在计划维护时间段期间更多(例如,多于14个)的主VM实例350P不可用时,则辅VM实例化器328将实例化等于在计划维护时间段期间将不可用的主VM实例350P的数量的辅VM实例350S的数量。例如,在上文的示例中,当内核更新以百分之二(2%)的部署速率(或其他部署率)推出时,辅VM实例化器328将需要确保将二十(20)个主VM实例(例如1,000个主VM实例的2%)实例化为辅VM实例350S的池,以为计划故障转移事件提供故障转移覆盖率。
在当内核更新(或在计划时间段期间,使主VM实例350P不可用的其他维护/更新过程)在初始实例化辅VM实例350的池以维护计划外故障转移的可用性(例如,在上述示例中,实例化14个辅VM实例350S)之后发生的情况下,辅VM实例化器328可以简单地实例化其他辅VM实例350S,以在计划维护时间段期间提供故障转移覆盖率。在一些示例中,一旦计划维护时间段终止,辅VM实例350S的池通过移除一个或多个辅VM实例350S(即,解除资源分配)来更新。
实例化比主VM实例350P的池中的主VM实例350P的数量更少的多个辅VM实例350S减轻了为每个主VM实例350P提供一个辅VM实例350S(并使它们处于空闲)的需要。辅VM实例350S的池中的每个辅VM实例350S处于空闲状态并且不执行任何工作负载(例如,服务实例),除非具有相应的VM类型380的主VM实例350P之一变得不可用(例如,故障),由此导致不可用的主VM实例350P故障转移到空闲/被动的辅VM实例350S,以开始执行与其相关联的单个服务实例362。由于在故障转移期间使用辅VM实例350S,因此辅VM实例化器328根据需要动态地调整辅VM实例350S的池,以确保总是存在足够的辅VM实例350S以维持软件应用360的单个服务实例362的可用性。在故障转移期间,辅VM实例350S可以被重新配置有适当的资源(例如,网络配置设置和/或存储器资源)并且执行与不可用的主VM实例350P相关联的启动应用。
在一些实施方式中,当客户/用户130部署大量的主VM实例350P并且具有防止与分布式系统200的其他用户/客户共享辅VM实例350S的池的特定联网或隔离需求时,辅VM实例350S的池是每个客户/用户130的,而不是全局的。在其他实施方式中,辅VM实例350S的池在分布式系统200的所有客户/用户之间的所有单个服务实例362之间共享。
在一些示例中,主VM管理器322为主VM实例350P的池中的每个主VM实例350P确定相应的VM类型380,并且辅VM实例化器328对主VM实例350P的池中的每个不同的VM类型380,实例化具有相同(或相应)的VM类型380的至少一个辅VM实例350S。因此,辅VM实例化器328可以确保对主VM实例350P的池中的每个VM类型380,足够的辅VM实例350S可用。在一些配置(未示出)中,辅VM实例350S的池基于VM类型380被分为多个子池。例如,辅VM实例350S的每个子池将包括具有各自的VM类型380的一个或多个辅VM实例350S。
在一些示例中,辅VM实例化器328实例化辅VM实例350S的池中,具有小于与单个服务实例362相关联的相应目标资源级的相应资源级的一个或多个辅VM实例350S(即,当服务实例存储库324指示单个服务实例362允许降低的性能需求时)。例如,图3示出了具有与主VM实例350P的池中的类型B的VM类型380相关但不相同的类型B'的相应VM类型380的辅VM实例350S。在此,具有类型B'的VM类型380的辅VM实例350S包括小于与类型B的VM类型380相关联的相应资源级的至少一个相应的资源级(诸如,计算资源级和/或内存资源级)。但是,在故障转移到(类型B'的)辅VM实例350S期间,至少一个相应的资源级(例如,计算资源级和/或内存资源级)可以动态增长/增加,直到满足(例如,由类型B定义的)至少一个相应的目标资源级为止。在这些示例中,减少了辅VM实例350S的池的所需资源,而辅VM实例350S是被动的并且处于空闲状态,由此降低了除非发生故障转移否则会产生维护未使用的资源级的成本。
在一些实施方式中,辅VM实例化器328实例化辅VM实例350S的池中的一个或多个辅VM实例350S,该一个或多个辅VM实例350S的相应资源级大于主VM实例350P的池中的主VM实例350P的相应资源级。例如,具有类型B'的相应VM类型380的辅VM实例350S可以反而指示辅VM实例350S与相应的资源级相关联,该相应的资源级大于与类型B的VM类型380相关联的相应资源级,而辅VM实例350S处于空闲状态。然而,在故障转移到(类型B'的)辅VM实例350S期间,相应的资源级(例如,计算资源级、内存资源级和/或存储资源级)可以动态地降低/减少,直到满足(例如,由类型B定义的)相应的目标资源级为止。通过提供比主VM实例350P的池中的主VM实例350P更大的辅VM实例350S(更大的资源级),可以减小辅VM实例350S的池的大小(辅VM实例350S的数量)。
在当主工作负荷(例如,服务实例362)在主容器中执行时的实施方式中,辅VM实例化器328可以在单个辅VM实例中实例化多个辅容器。因此,在变得不可用(例如,故障)的主VM实例350P上运行的主容器可以故障转移到辅VM实例350S的池中的辅容器。在这种情况下,运行辅容器的辅VM实例350S可以取消分配未被辅容器使用的剩余资源,以供虚拟环境300中的其他VM实例350、350P、350S使用。
在一些情况下,VMM 320(或主机310)识别主VM实例350P的池中的主VM实例350P之一的不可用性。例如,每个主VM实例350P可以采用代理来收集操作状态370,该操作状态370指示主VM实例350P是正在操作还是由于故障而不可用。主机310除了彼此之外还可以将VM实例350的操作状态370传达给VMM 320。如本文所使用的,术语“代理”是广义的术语,涵盖其平常和普通的含义,包括但不限于部署在VM实例350内部的一部分代码(作为客户OS 354一部分和/或作为在客户OS 354上运行的应用)以标识VM实例350的操作状态370。因此,VMM320和/或主机310可以接收指示主VM实例350之一的不可用性的操作状态370,并且使不可用的主VM实例350P故障转移到辅VM实例350S之一,以开始执行与不可用的主VM实例350P相关联的单个服务实例362。在图3所示的例子中,操作状态370指示在主机310n-1上执行并且具有类型B的VM类型380的主VM实例350P之一的(例如,由于故障而导致的)不可用性,由此使得主VM实例350P故障转移到具有类型B'的VM类型380的辅VM实例350S以开始执行与具有类型B型的VM类型380的不可用的主VM实例350P相关联的单个服务实例362。
在一些示例中,类型B'的VM类型380指示相应的辅VM实例350S包括至少一个相应的资源级(例如,计算资源级和/或内存资源级),该至少一个相应的资源级小于与(如由类型B的VM类型380定义的)相应的单个服务实例362相关联的目标资源级。在故障转移之后,由相应的辅VM实例350S执行单个服务实例362期间,辅VM实例350S被配置为增长至少一个相应的资源级,直到满足与单个服务实例362相关联的目标资源级为止。在其他示例中,类型B'的VM类型380指示相应的辅VM实例350S大于具有类型B的VM类型380的不可用的主VM实例350P(例如,包括更大的资源级)。在这些示例中,辅VM实例350S可以减少/降低其资源级,以满足与单个服务实例362相关联的目标资源级。
图4提供了用于维护服务实例362在分布式系统200上的可用性的方法400的操作的示例布置。服务实例362可以对应于多单租户服务360中的单个服务实例362。在框402处,方法400包括由分布式系统200的数据处理硬件112执行主虚拟机(VM)实例350P的池。每个主VM实例350P执行(与服务/软件应用360相关联的)对应的单个服务实例362并且包括不可用率。可选地,每个主VM实例350P可以执行多个主容器,并且每个主容器在与其他主容器隔离的安全执行环境中执行对应的单个服务实例362。不可用率可以包括不可用频率或不可用时段中的至少一个。在一些实施方式中,方法400还包括由数据处理硬件112基于平均故障时间(MTTF)和重新创建相应的主VM实例的预期时间长度(例如,缺货值)来确定主VM实例350P的池中的每个主VM实例350P的不可用率。如本文所使用的,MTTF指示在发生故障之前预期主VM实例350P可操作的频率(例如,天数)。可以从观察到的监视数据以及随着时间观察相似VM实例350的执行的机器学习算法中推导MTTF值和缺货值。
在框404处,方法400还包括由数据处理硬件112基于主VM实例350P的池中的主VM实例350P的数量和不可用率确定用于当一个或多个主VM实例350P不可用时维持单个服务实例362的可用性所需的辅VM实例的数量。如本文中所使用的,主VM实例350P的不可用性基于主VM实例350P的故障、重新创建主VM实例350P的延迟或主VM实例350P的计划维护时间段中的至少一个。在一些示例中,该方法使用等式1来计算维持单个服务实例362的可用性所需的辅VM实例的数量。
在框406处,方法400还包括由数据处理硬件112基于维持单个服务实例362的可用性所需的辅VM实例350S的数量实例化辅VM实例350S的池。实例化到池中的辅VM实例的数量可以进一步考虑在计划维护时间段期间可能不可用的主VM实例350的数量。例如,计划故障转移消息302可以指示在计划维护时间段期间主VM实例350P将不可用以执行维护/更新的部署速率。在此,方法400可以包括实例化等于下述中的较大的一个的辅VM实例的数量:维持单个服务实例362的可用性所需的辅VM实例350S的数量;或在计划维护时间段期间将不可用的主VM实例350P的数量。
除非故障转移导致相应的辅VM实例350S开始执行与不可用的主VM实例350P相关联的单个服务实例362,否则辅VM实例的池中的每个辅VM实例350S可以是被动的和空闲的(即,不执行工作负荷)。在一些示例中,方法400进一步为主VM实例350P的池中的每个主VM实例350P确定对应的VM类型380。在这些示例中,实例化辅VM实例350S的池包括实例化针对主VM实例350P的池中的每个不同VM类型380的具有相同VM类型380的至少一个辅VM实例350S。
可选地,当主VM实例350P运行均执行相应的单个服务实例的多个主容器时,该方法可以可选地包括在一个或多个主容器不可用(例如,失败)时实例化多个辅容器以维持单个服务实例的可用性。在此,实例化到辅VM实例350S的池中的每个辅VM实例350S被配置成运行多个辅容器。
软件应用(即,软件资源110)可以指引起计算设备执行任务的计算机软件。在某些示例中,软件应用可以称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息传递应用、媒体流应用、社交网络应用以及游戏应用。
非暂时性存储器(例如,存储器硬件114)可以是用于基于临时或永久存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备(例如,数据处理硬件112)使用的物理设备。非易失性存储器114可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例可以包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,诸如启动程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
图5是可用于实现本文档中所述的系统和方法的示例计算设备500的示意图。计算设备500旨在代表各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其它适当的计算机。本文所示的组件、它们的连接和关系以及它们的功能仅是例证性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
计算设备500包括处理器510、存储器520、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540,以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每个组件使用各种总线互连,并且可以安装在公共主板上或以其它适当的方式安装。处理器510能够处理用于在计算设备500内执行的指令,包括存储在存储器520中或存储在存储设备530上的指令,以在诸如耦合到高速接口540的显示器580之类的外部输入/输出设备上显示用于图形用户界面(GUI)的图形信息。在其它实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,可以连接多个计算设备500,其中每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器系统)。
存储器520在计算设备500内非暂时性地存储信息。存储器520可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器520可以是用于临时或永久地存储程序(例如,指令序列)或数据(例如,程序状态信息)以供计算设备500使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦可编程只读存储器(EPROM)/电子可擦可编程只读存储器(EEPROM)(例如,通常用于固件,诸如启动程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备530能够为计算设备500提供大容量存储。在一些实施方式中,存储设备530是计算机可读介质。在各种不同的实施方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其它类似的固态存储设备,或设备阵列,包括在存储区域网络或其它配置中的设备。在另外的实施方式中,计算机程序产品有形地体现为信息载体。该计算机程序产品包含在被执行时执行一种或多种方法,诸如上述那些方法的指令。信息载体是计算机或机器可读介质,诸如存储器520、存储设备530或处理器510上的存储器。
高速控制器540管理计算设备500的带宽密集型操作,而低速控制器560管理较低带宽密集型操作。这种职责分配仅是例证性的。在一些实施方式中,高速控制器540耦合到存储器520、显示器580(例如,通过图形处理器或加速器)和可以接受各种扩展卡(未示出)的高速扩展端口550。在一些实施方式中,低速控制器560耦合到存储设备530和低速扩展端口590。可能包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口590可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘、定点设备、扫描仪或网络设备,例如交换机或路由器。
如图所示,可以以多种不同形式来实现计算设备500。例如,计算设备500可以被实现为标准服务器500a或在一组这样的服务器500a中多次实现,被实现为膝上型计算机500b或被实现为机架服务器系统500c的一部分。
本文所述的系统和技术的各种实施方式能够以数字电子和/或光学电路、集成电路、专门设计的ASIC(应用专用集成电路)、计算机硬件、固件、软件和/或其组合实现。这些各种实施方式能够包括在一个或多个计算机程序中的实现,该计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用的或通用的,耦合以从存储系统、至少一个输入设备以及至少一个输出设备接收数据和指令,并将数据和指令发送到这些设备。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。本文中使用的术语“机器可读介质”和“计算机可读介质”是指任何计算机程序产品、非暂时性计算机可读介质、用于向可编程处理器提供机器指令和/或数据的装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中所述的过程和逻辑流程能够由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。过程和逻辑流程也能够由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(应用专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备例如磁盘、磁光盘或光盘,或可操作地耦合至大容量存储设备以从中接收数据或对其传输数据,或者两者。然而,计算机不必具有此类设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面能够在具有显示设备和可选的键盘与定点设备的计算机上实现,显示设备例如是CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以向用户显示信息,定点设备例如为鼠标和轨迹球,用户能够通过其向计算机提供输入。其它类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够为任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机能够通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从Web浏览器收到的请求,将网页发送到用户客户端设备上的Web浏览器。
已经描述了许多实施方式。然而,应理解,在不脱离本公开的精神和范围的情况下,可以做出各种修改。因而,其它实施方式也在所附权利要求的范围内。

Claims (30)

1.一种维护分布式系统(200)上的可用性的方法(400),所述方法(400)包括:
由所述分布式系统的数据处理硬件(112)执行主虚拟机(VM)实例(350P)的池,每个主VM实例(350P)执行相应的单个服务实例(362)并且包括不可用率;
由所述数据处理硬件(112)基于所述主VM实例(350P)的池中的主VM实例(350P)的数量以及相应的不可用率确定用于当一个或多个主VM实例(350P)不可用时维持所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量;以及
由所述数据处理硬件(112)基于用于维持所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量来实例化辅VM实例(350S)的池。
2.根据权利要求1所述的方法(400),其中,所述辅VM实例(350S)的池中的辅VM实例(350S)的数量小于所述主VM实例(350P)的池中的主VM实例(350P)的数量。
3.根据权利要求1或2所述的方法(400),进一步包括:
由所述数据处理硬件(112)标识所述主VM实例(350P)的池中的所述主VM实例(350P)中的一个的不可用性;和
由所述数据处理硬件(112)使不可用的主VM实例(350P)故障转移到所述辅VM实例(350S)的池中的所述辅VM实例(350S)中的一个,以开始执行与所述不可用的主VM实例(350P)相关联的所述单个服务实例(362)。
4.根据权利要求3所述的方法(400),进一步包括在所述故障转移到所述辅VM实例(350S)之后:
由所述数据处理硬件(112)确定所述辅VM实例(350S)包括小于与所述相应的单个服务实例(362)相关联的目标资源级的相应资源级;和
在由所述辅VM实例(350S)执行所述单个服务实例(362)期间,由所述数据处理硬件(112)增长所述辅VM实例(350S)的相应资源级,直到满足与所述单个服务实例(362)相关联的所述目标资源级为止。
5.根据权利要求1-4中的任一项所述的方法(400),进一步包括:当所述池中执行的所述主VM实例(350P)的数量改变时由所述数据处理硬件(112)更新用于维持所述单个服务实例(362)的可用性所需的所述辅VM实例(350S)的数量。
6.根据权利要求1-5中的任一项所述的方法(400),其中,主VM实例(350P)的不可用性基于所述主VM实例(350P)的故障、重新创建所述主VM实例(350P)的延迟、或所述主VM实例(350P)的计划维护时间段中的至少一个。
7.根据权利要求1-6中的任一项所述的方法(400),其中,所述不可用率包括不可用频率或不可用时段中的至少一个。
8.根据权利要求1至7中的任一项所述的方法(400),进一步包括:由所述数据处理硬件(112)基于平均故障时间(MTTF)和重新创建所述主VM实例(350P)的池中的每个主VM实例(350P)的预期时间长度来确定相应的主VM实例(350P)的不可用率。
9.根据权利要求1至8所述的方法(400),其中,除非故障转移导致所述辅VM实例(350S)的池中的每个辅VM实例(350S)开始执行与所述主VM实例(350P)的池中的不可用的主VM实例(350P)相关联的单个服务实例(362),否则相应的辅VM实例(350S)是被动的和空闲的。
10.根据权利要求1至9中的任一项所述的方法(400),其中,实例化所述辅VM实例(350S)的池包括:
确定所述主VM实例(350P)的池中的每个主VM实例(350P)的相应的VM类型(380);和
对于所述主VM实例(350P)的池中的每个不同VM类型(380),实例化具有相同VM类型(380)的至少一个辅VM实例(350S)。
11.根据权利要求10所述的方法(400),其中,每个主VM实例(350P)的相应的VM类型(380)指示相应的主VM实例(350P)的内存资源需求、计算资源需求、网络规范需求或存储资源需求中的至少一个。
12.根据权利要求1-11中的任一项所述的方法(400),其中,所述辅VM实例(350S)的池被实例化以供所述分布式系统(200)的单一客户使用。
13.根据权利要求1至12中的任一项所述的方法(400),其中,所述辅VM实例(350S)的池在所述分布式系统(200)的多个客户之间共享。
14.根据权利要求1至13中的任一项所述的方法(400),进一步包括:
在所述数据处理硬件(112)处接收计划故障转移消息(302),所述计划故障转移消息指示在所述主VM实例(350P)的池中的将在计划维护时间段期间不可用的主VM实例(350P)的数量,
其中,实例化所述辅VM实例(350S)的池进一步基于将在所述计划维护时间段期间不可用的主VM实例(350P)的数量。
15.根据权利要求14所述的方法(400),其中,实例化所述辅VM实例(350S)的池包括实例化等于下述中的较大的一个的多个辅VM实例(350S):
维护所述单个服务实例(362)的可用性所需的所述辅VM实例(350S)的数量;或者
将在所述计划维护时间段期间不可用的主VM实例(350P)的数量。
16.一种用于维持服务实例(362)在分布式系统(200)上的可用性的系统(100),所述系统包括:
数据处理硬件(112);
存储硬件(114),存储硬件(114)与所述数据处理硬件(112)通信,所述存储硬件(114)存储指令,所述指令在所述数据处理硬件(112)上执行时使所述数据处理硬件(112)执行包括下述的操作:
执行主虚拟机(VM)实例的池,每个主VM实例(350P)执行相应的单个服务实例(362)并包括不可用率;
基于所述主VM实例(350P)的池中的主VM实例(350P)的数量以及相应的不可用率确定用于当一个或多个主VM实例(350P)不可用时维护所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量;以及
基于维持所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量来实例化辅VM实例(350S)的池。
17.根据权利要求16所述的系统(100),其中,所述辅VM实例(350S)的池中的辅VM实例(350S)的数量小于所述主VM实例(350P)的池中的主VM实例(350P)的数量。
18.根据权利要求16或17所述的系统(100),其中,所述操作进一步包括:
标识主VM实例(350P)的池中的所述主VM实例(350P)中的一个的不可用性;和
使不可用的主VM实例(350P)故障转移到所述辅VM实例(350S)的池中的所述辅VM实例(350S)中的一个,以开始执行与不可用的主VM实例(350P)相关联的所述单个服务实例(362)。
19.根据权利要求18所述的系统(100),其中,所述操作进一步包括在故障转移到所述辅VM实例(350S)之后:
确定所述辅VM实例(350S)包括小于与所述相应的单个服务实例相关联的目标资源级的相应资源级(362);和
在由所述辅VM实例(350S)执行所述单个服务实例(362)期间,增长所述辅VM实例(350S)的相应资源级,直到满足与所述单个服务实例(362)相关联的目标资源级为止。
20.根据权利要求16至19中的任一项所述的系统(100),其中,所述操作进一步包括:当所述池中执行的所述主VM实例(350P)的数量改变时更新用于维持所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量。
21.根据权利要求16至20中的任一项所述的系统(100),其中,所述主VM实例(350P)的不可用性基于所述主VM实例(350P)的故障、重新创建所述主VM实例(350P)的延迟或所述主VM实例(350P)的计划维护时间(350P)中的至少一个。
22.根据权利要求16至21中的任一项所述的系统(100),其中,所述不可用率包括不可用频率或不可用时段中的至少一个。
23.根据权利要求16至22中的任一项所述的系统(100),其中,所述操作进一步包括:基于平均故障时间(MTTF)和重新创建所述主VM实例(350P)的池中的每个主VM实例(350P)的预期时间长度来确定相应的主VM实例(350P)的不可用率。
24.根据权利要求16-23所述的系统(100),其中,除非故障转移导致所述辅VM实例(350S)的池中的每个辅VM实例(350S)开始执行与所述主VM实例(350P)的池中的不可用的主VM实例(350P)相关联的单个服务实例(362),否则相应的辅VM实例(350S)是被动的和空闲的。
25.根据权利要求16-24中的任一项所述的系统(100),其中,实例化所述辅VM实例(350S)的池包括:
确定所述主VM实例(350P)的池中的每个主VM实例(350P)的相应的VM类型(380);和
对于所述主VM实例(350P)的池中的每个不同VM类型(380),实例化具有相同VM类型(380)的至少一个辅VM实例(350S)。
26.根据权利要求25所述的系统(100),其中,每个主VM实例(350P)的相应的VM类型(380)指示相对的主VM实例(350P)的内存资源要求、计算资源要求、网络规范要求或本地存储要求中的至少一个。
27.根据权利要求16至26中的任一项所述的系统(100),其中,所述辅VM实例(350S)的池被实例化以供所述分布式系统(200)的单一客户使用。
28.根据权利要求16至27中的任一项所述的系统(100),其中,所述辅VM实例(350S)的池在所述分布式系统(200)的多个客户之间共享。
29.根据权利要求16至28中的任一项所述的系统(100),其中,所述操作进一步包括:
接收计划故障转移消息(302),所述计划故障转移消息指示在所述主VM实例(350P)的池中的将在计划维护时间段期间不可用的主VM实例(350P)的数量,
其中,实例化所述辅VM实例(350S)的池进一步基于将在所述计划维护时间段期间不可用的主VM实例(350P)的数量。
30.根据权利要求29所述的系统(100),其中,实例化所述辅VM实例(350S)的池包括实例化等于下述中的较大的一个的多个辅VM实例(350S):
维护所述单个服务实例(362)的可用性所需的辅VM实例(350S)的数量;或者
将在所述计划维护时间段期间不可用的主VM实例(350P)的数量。
CN201880090608.4A 2018-03-01 2018-03-01 高可用性的多单租户服务 Pending CN111801654A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/020352 WO2019168532A1 (en) 2018-03-01 2018-03-01 High availability multi-single-tenant services

Publications (1)

Publication Number Publication Date
CN111801654A true CN111801654A (zh) 2020-10-20

Family

ID=61683910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880090608.4A Pending CN111801654A (zh) 2018-03-01 2018-03-01 高可用性的多单租户服务

Country Status (4)

Country Link
US (2) US11720412B2 (zh)
EP (1) EP3759599B1 (zh)
CN (1) CN111801654A (zh)
WO (1) WO2019168532A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9825810B2 (en) 2014-09-30 2017-11-21 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11467861B2 (en) 2019-02-22 2022-10-11 Vmware, Inc. Configuring distributed forwarding for performing service chain operations
US11635980B2 (en) * 2019-09-20 2023-04-25 Fisher-Rosemount Systems, Inc. Modular process control system
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11385975B2 (en) * 2019-11-27 2022-07-12 Amazon Technologies, Inc. Systems and methods for enabling a highly available managed failover service
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11550637B2 (en) * 2020-02-28 2023-01-10 American Megatrends International, Llc Node recovery solution for composable and disaggregated environment
US11397652B2 (en) 2020-03-27 2022-07-26 Amazon Technologies, Inc. Managing primary region availability for implementing a failover from another primary region
US11411808B2 (en) 2020-03-27 2022-08-09 Amazon Technologies, Inc. Managing failover region availability for implementing a failover service
US11397651B2 (en) 2020-03-27 2022-07-26 Amazon Technologies, Inc. Managing failover region availability for implementing a failover service
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
US11281452B2 (en) * 2020-08-17 2022-03-22 Salesforce.Com, Inc. Tenant declarative deployments
US11431780B2 (en) * 2020-10-26 2022-08-30 At&T Intellectual Property I, L.P. Method and apparatus for estimating quality of experience from network data
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) * 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11709741B1 (en) 2021-03-29 2023-07-25 Amazon Technologies, Inc. Systems and methods for enabling a failover service for block-storage volumes

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
US9110693B1 (en) * 2011-02-17 2015-08-18 Emc Corporation VM mobility over distance
US9223623B2 (en) * 2012-03-28 2015-12-29 Bmc Software, Inc. Dynamic service resource control
US20140007097A1 (en) * 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US9268642B2 (en) * 2012-08-24 2016-02-23 Vmware, Inc. Protecting paired virtual machines
US9424152B1 (en) * 2012-10-17 2016-08-23 Veritas Technologies Llc Techniques for managing a disaster recovery failover policy
US9286110B2 (en) * 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall in a data storage system
US9043575B2 (en) * 2013-03-15 2015-05-26 International Business Machines Corporation Managing CPU resources for high availability micro-partitions
WO2015077756A1 (en) 2013-11-25 2015-05-28 Amazon Technologies, Inc. Customer-directed networking limits in distributed systems
JP2015103092A (ja) * 2013-11-26 2015-06-04 株式会社日立製作所 障害回復システム及び障害回復システムの構築方法
WO2015126430A1 (en) * 2014-02-24 2015-08-27 Hewlett-Packard Development Company, L.P. Virtual network function management with deactivated virtual machines
US10142192B2 (en) * 2014-04-09 2018-11-27 International Business Machines Corporation Management of virtual machine resources in computing environments
US9459892B2 (en) * 2014-05-05 2016-10-04 International Business Machines Corporation Optimization of virtual machines
US9594649B2 (en) * 2014-10-13 2017-03-14 At&T Intellectual Property I, L.P. Network virtualization policy management system
US9690613B2 (en) * 2015-04-12 2017-06-27 At&T Intellectual Property I, L.P. Using diversity to provide redundancy of virtual machines
US9448833B1 (en) 2015-04-14 2016-09-20 International Business Machines Corporation Profiling multiple virtual machines in a distributed system
US10628195B2 (en) * 2015-10-22 2020-04-21 Genband Us Llc High availability for virtual network functions
US9798635B2 (en) * 2015-12-11 2017-10-24 International Business Machines Corporation Service level agreement-based resource allocation for failure recovery
CN108139924B (zh) * 2016-05-31 2021-10-08 安华高科技股份有限公司 热插拔硬件及软件实施方案
US9996440B2 (en) * 2016-06-20 2018-06-12 Vmware, Inc. Fault tolerance using shared memory architecture
US10747630B2 (en) * 2016-09-30 2020-08-18 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node
WO2018162970A1 (en) * 2017-03-09 2018-09-13 Telefonaktiebolaget Lm Ericsson (Publ) CONFIGURATION GENERATION FOR VIRTUAL NETWORK FUNCTIONS (VNFs) WITH REQUESTED SERVICE AVAILABILITY
US10417035B2 (en) * 2017-12-20 2019-09-17 At&T Intellectual Property I, L.P. Virtual redundancy for active-standby cloud applications
US10949241B2 (en) * 2019-03-08 2021-03-16 Google Llc Cost-efficient high-availability multi-single-tenant services

Also Published As

Publication number Publication date
US20210004275A1 (en) 2021-01-07
WO2019168532A1 (en) 2019-09-06
US20230342219A1 (en) 2023-10-26
US11720412B2 (en) 2023-08-08
EP3759599A1 (en) 2021-01-06
EP3759599B1 (en) 2023-12-20

Similar Documents

Publication Publication Date Title
US20230342219A1 (en) High Availability Multi-Single-Tenant Services
US20230168946A1 (en) Methods and apparatus to improve workload domain management in virtualized server systems using a free pool of virtualized servers
US11614958B2 (en) Cost-efficient high-availability multi-single-tenant services
US10855537B2 (en) Methods and apparatus for template driven infrastructure in virtualized server systems
US8806015B2 (en) Workload-aware placement in private heterogeneous clouds
US10498664B2 (en) Hybrid cloud resource scheduling
US10198281B2 (en) Hybrid infrastructure provisioning framework tethering remote datacenters
EP3929748A1 (en) Orchestrating configuration of a programmable accelerator
EP2953032A1 (en) Virtual computer management program, virtual computer management method, and virtual computer system
US10979248B1 (en) Onboarding a VNF which includes a VNFC composed of manageable software elements
US11539553B1 (en) Onboarding a VNF which includes a VDU with multiple VNFCs
US11032168B2 (en) Mechanism for performance monitoring, alerting and auto recovery in VDI system
US20200241910A1 (en) Methods and apparatus for rack nesting in virtualized server systems
CN116319240A (zh) 使用用于确定性微服务性能的交互式矩阵的规模化遥测
US11573819B2 (en) Computer-implemented method for reducing service disruption times for a universal customer premise equipment, uCPE, device with resource constraint in a network functions virtualization, NFV, network infrastructure
US11537425B2 (en) Methods for application deployment across multiple computing domains and devices thereof
DE102022108626A1 (de) Ausweitung der aufsichtsdienste auf vertrauenswürdige cloud-betreiber-domänen
Yoshida et al. Service oriented platform
US10341179B2 (en) Management computer and computer system management method
Dasilva et al. Evaluating the use of automation in the virtual datacentre for improved efficiency

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