CN106302623B - 承租人控制的云更新 - Google Patents
承租人控制的云更新 Download PDFInfo
- Publication number
- CN106302623B CN106302623B CN201510325802.4A CN201510325802A CN106302623B CN 106302623 B CN106302623 B CN 106302623B CN 201510325802 A CN201510325802 A CN 201510325802A CN 106302623 B CN106302623 B CN 106302623B
- Authority
- CN
- China
- Prior art keywords
- consumer
- preferences
- host
- update
- tenant
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Selective Calling Equipment (AREA)
Abstract
描述了承租人控制的云更新。教导了用于向云计算服务的消费者提供对更新何时影响被提供给消费者的服务的控制的各***和方法。因为多个消费者共享云的基础结构,所以每一消费者可以具有对何时进行更新和相关联的停机时间的冲突偏好。阻止和解决多个消费者的偏好之间的冲突同时向他们提供用于调度计划中的更新的输入可以减少更新带来的不便性。另外,更新的调度可以被传送给消费者,以使得消费者可以对与更新相关联的服务的停机时间有所准备。
Description
技术领域
本申请涉及云更新,尤其涉及承租人控制的云更新。
背景
云计算改进了针对许多实体的信息技术服务的灵活性并且降低了成本。由云服务供应商(CSP)提供的主机使得实体能够在按需的基础上作为该主机的承租人来利用共享基础结构以运行虚拟机(VM)或其他基于云的服务应用或进程容器的实例。
云中的共享基础结构允许数百万计的VM被主存在主机上的数据中心中。然而,为了引入新的功能、改进性能、修复安全漏洞、为漏洞打补丁、或在主机上执行物理维护,通常要求使VM实例或主机的底层操作***(HostOS)离线并且变得不可用,诸如举例来说,在主机的重新引导期间。这一不可用性可能导致被高速缓存的VM状态丢失、在承租人需要服务时被阻止访问服务、服务实例对客户端不可用等,并且造成了严重的不便性。
发明内容
提供本发明内容来以简化形式介绍一些概念,这些概念将在以下详细描述部分中进一步描述。本发明内容并不旨在标识所要求保护的主题的所有特征,也不旨在限制所要求保护的主题的范围。
云服务供应商(CSP)向他们的消费者提供对主机的共享基础结构的访问。共享基础结构使得消费者能够降低资产成本(例如,购买或维护物理计算硬件的成本)、获得对CSP的操作专长的访问、以及随着需求增长快速地扩展或缩减信息技术能力。消费者作为主机的承租人来访问共享基础结构,并且多个消费者可以是一个主机的承租人。主机运行针对他们的承租人的虚拟机(VM)和其他基于云的服务应用或进程容器,这些虚拟机(VM)和其他基于云的服务应用或进程容器向承租人提供***和进程(例如软件)而不要求承租人拥有、控制或维护对应的硬件。如将理解的,主机可以并发地为若干承租人运行若干VM。
主机的停机时间构成了对于消费者而言的一个严重的不便性,但是可能是允许CSP引入新的功能、改进性能、修复安全漏洞、对漏洞打补丁等所必要的。为了减少停机时间给消费者带来的不便性,本文提供了若干***和方法以实现承租人控制的云更新。
一个或多个方面的细节在附图和以下描述中被阐明。通过阅读下面的详细描述并参考相关联的附图,其他特征和优点将变得显而易见。要理解的是下面的详细描述仅仅是解释性的,而不是对本公开的限制。
附图简述
被纳入本公开中并且构成本公开的一部分的所附附图解说了用于提供承租人控制的云更新的***和方法的各个方面和示例。在附图中:
图1A解说了一示例云计算环境;
图1B解说了形成升级域的主机到主存虚拟机的示例指派;
图2是用于降低云服务停机时间对消费者的不便性的承租人控制引擎的框图;
图3是示出一种用于在云更新中提供承租人控制的方法中所涉及的一般阶段的流程图;
图4是示出一种用于实现对更新定时的承租人控制的正时间偏好的方法中所涉及的一般阶段的流程图;
图5是示出一种用于实现对更新定时的承租人控制的负时间偏好的方法中所涉及的一般阶段的流程图;
图6是解说可用来实施各方面和示例的计算设备的物理组件的框图。
具体实施方式
以下详细描述参考各个附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或类似的要素。尽管可能描述了各方面,但修改、改编、以及其他实现是可能的。例如,可对附图中所例示的元素进行替代、添加、或修改,并且可通过对所公开的方法替代、重新排序、或添加阶段来修改本文中所描述的方法。相应地,下文的详细描述不限制本公开的范围,相反,合适范围由所附权利要求来限定。各示例可采用硬件实现形式、全软件实现形式或者组合软件和硬件方面的实现形式。因此,以下详细描述并非是局限性的。
基于云的服务向用户提供了访问各种类型的远程主存的服务的能力。云是用户作为由云服务供应商(CSP)提供的主机的承租人来访问的共享基础结构。共享基础结构使得用户能够降低资产成本(例如,购买或维护物理计算硬件的成本)、获得对CSP的操作专长的访问、以及随着需求增长快速地扩展或缩减信息技术能力。CSP控制硬件,并且取决于所提供的服务,CSP控制为用户访问所提供的各个级别的软件(例如,平台、操作***、应用等)。在更新和维护硬件和软件时,CSP可能需要临时地使共享基础结构的多个部分离线。这一停机时间对于用户而言常常是一个严重的不便性,尽管CSP会尽可能快地试图完成更新或维护并且在任何给定时间仅使提供服务的机器中的一部分离线。本公开描述了通过提供云更新的承租人控制来降低停机时间对于云用户而言的不便性的附加***和方法。
图1A解说了一示例云计算环境100。数据中心110被解说为提供第一主机120A、第二主机120B和第n主机120C(统称为主机120)。每一主机120被解说为提供虚拟机(VM)130A-I(统称为VM 130)的若干实例。在本公开中出于清楚和简明的目的,术语“VM”要被理解为涵盖所有基于云的服务、应用或进程容器。如所解说的,这些VM 130由第一消费者140A、第二消费者140B、和第n消费者140C(统称为消费者140)访问,这些消费者是所解说的主机120的承租人。如将理解的,在云计算的各个示例中可以存在比图1A中所解说的更多或更少的主机120、VM 130和消费者140,并且图1A是作为示例来给出的。
数据中心110由CSP运营以向消费者140提供对主机120的共享基础结构的访问。CSP可以根据若干服务模型向消费者140提供访问,这些服务模型包括但不限于:软件即服务(SaaS),其中CSP提供供消费者140使用的软件和硬件两者;平台即服务(PaaS),其中CSP提供供消费者140在其上运行其应用软件的硬件和操作***(OS);或者基础结构即服务(IaaS),其中CSP提供供消费者140在其上运行其OS和应用软件的硬件。在各个方面,由CSP提供给消费者140的硬件包括但不限于:主机120、服务器、存储网络、交换机、路由器、线缆等。
消费者140可以通过程序接口或瘦客户端接口(例如web浏览器)经由各个客户端设备来访问CSP提供的服务。这些接口可以将客户端设备和相关联的应用连接到数据中心110以在若干合适传输介质(诸如举例来说,光缆、电缆、无线电信号等)上经由若干合适的手段(包括公共网络(例如因特网)和私有网络)来提供服务。
提供给消费者140的服务被主存在主机120上。主机120可以提供要在其上运行VM130的若干分区。如将理解的,作为与CSP的服务级协定(SLA)的一部分,消费者140可以指定由单个VM 130提供的计算资源、所请求的VM 130的数目、以及所请求的服务的工作时间或可用性。如将理解的,SLA影响主机120可以提供给给定消费者140的VM 130的数目、给定主机120可以提供给消费者140的VM 130的数目、以及如何将主机120供应给消费者140。
在一些示例中,主机120可以向作为承租人的单个消费者140提供VM 130的所有主存的实例,诸如关于第一主机120A和第一消费者140A所解说的。在各种其他示例中,给定主机120可以向作为承租人的多个消费者140提供VM 130的主存的实例,诸如关于第二主机120B和第一消费者140A、第二消费者140B和第n消费者140C所解说的。
类似地,给定消费者140可以是多个主机120的承租人,如对于第一消费者140A所解说的。通过跨多个主机120来散布消费者140的承租,可以向消费者140提供更多的更新和容错度。
另外,在一些示例中,消费者140可以共享对VM 130的实例的访问,诸如关于第二消费者140B和第n消费者140C共享对由第二主机120B所主存的VM 130F的访问所解说的。当消费者140共享对VM 130的访问时,VM 130可以被称为具有共享承租并且消费者140可以被称为共享承租人。
数据中心110中的主机120是计算设备。每一主机120可包括用于运行后台任务的操作***(HostOS),以提供主机120的个体内核作为各个分区来提供VM 130等。HostOS或每一VM 130底层的程序可能需要周期性地更新,诸如举例来说,以引入新的功能、改进性能、修复安全漏洞、对漏洞打补丁等。在各个示例中,这些更新要求主机120被关闭和重启以应用更新,这在应用更新时造成了主机120(以及任何主存的VM 130)的停机时间。类似地,对主机120的物理组件的(计划中的或紧急的)维护可能要求主机120被关闭并且在执行维护时造成了主机120的停机时间。在其他示例中,主机120可以继续运行,并且HostOS或任何共享应用、进程、容器、或服务(例如,***管理程序、共享VM 130等)的重置可能造成多个消费者140的停机时间。
取决于SLA以及所提供的服务,只要不影响其他承租人,消费者140对于更新在主机120上运行的他们自己的应用或OS软件可能具有有限的控制,但在多承租人环境中,对何时作出可能影响多个承租人的更新的控制留给了CSP。CSP负责根据若干消费者140的SLA来确保针对他们的服务的可用性,并且在传统上负责确定是否以及何时更新主机120的HostOS或执行可能使服务暂时离线的其他更新或维护。
图1B解说了VM 130到主机120的示例指派101。在数据中心110中,VM 130的各实例被指派给主机120,并且VM 130针对给定消费者140的集合可以被称为针对该消费者140的承租人空间160。承租人空间160可以被进一步划分为更新域(UD)150,更新域(UD)150是VM130中可以同时面临由于计划中的服务断线(例如,以执行维护、应用更新等)的停机时间的集合。
在图1B中,两个承租人空间160被解说为针对两个消费者140;第一承租人空间160A和第二承租人空间160B,各自具有八个VM 130。如将理解的,可以在数据中心110中提供比示例指派101中所解说的更多或更少的承租人空间160,并且与示例指派101中所解说的相比,承租人空间160可以包括更多或更少的VM 130,这些VM 130被编组成被指派给更多或更少主机120的更多或更少UD 150。如所解说的,每一承租人空间160包括八个VM 130;承租人空间160A中的VM 130A-H和承租人空间160B中的VM 130I-P。每一承租人空间160包括按照他们的SLA向给定消费者140提供的VM 130。这些VM 130中的每一者被指派给主机120,并且在各个示例中,来自不同承租人空间160的多个VM 130可以被指派给单个主机120。例如,在图1B中,主机120A主存来自承租人空间160A的VM 130A和来自承租人空间160B的VM130I。
在所解说的示例中,第一承租人空间160A被进一步划分成四个UD 150A-D,每一个UD具有被指派给给定UD 150的不超过两个的VM 130,而第二承租人空间160B被进一步划分成三个UD 150E-G,每一个UD具有被指派给给定UD 150的不超过三个的VM 130。UD 150可用于管制更新如何影响承租人空间160以使得给定主机120仅可以在它所主存的VM 130不与由离线的其他主机120所主存的其他VM 130共享UD 150的情况下离线。换句话说,来自SLA(在一些方面由UD 150表示)的更新约束可以限制来自同一承租人空间160中可以在同时由于它们的主机120离线而不可用的VM 130的数目。在各个方面,更新约束还可要求来自承租人空间160中与它们相关联的主机120同时更新的最小数目的VM 130,并且在一些示例中可以指定要选择哪些VM 130。
在各个方面,UD 150可以根据更新约束针对多个更新和维护事件被指派给具体VM130,以使得指定VM 130一起更新。在其他方面,来自单个承租人空间160中一起更新的VM130群可以在后续的更新和维护事件之间变化,并且相对于更新约束并且在它们的主机120可用于更新时形成。例如,示例UD 150A可以针对每一更新或维护事件被指派给VM 130A和VM 130B的具体实例,或者指派可以是流动的,因为VM 130A和130B仅仅是将主机120可用于更新的前两个VM 130。
承租人空间160可以跨UD 150均匀地或者不均匀地划分。例如,承租人空间160A跨四个US 150A-D均匀地散布,其中每一UD 150被指派两个VM 130,而承租人空间160B跨三个UD 150E-G不均匀地散布,其中UD 150A和150B被指派三个VM 130而UD 150C被指派两个VM130。当VM 130的数目不准许跨给定数目的UD 150的均匀划分、消费者请求不均匀分布等时,VM 130可以被不均匀地指派。在各个方面,消费者140可以指定或调节他们使用的UD150的数目,但如将理解的,在停机时间的情况下,消费者140不具有多于VM 130的UD 150,消费者140也不具有比满足他们的SLA所需更少的UD 150。
除了UD 150之外,CSP可以跨不同的故障域(FD)170来指派VM 130,故障域(FD)170表示不同的(潜在的)故障点并且可包括容易因单个故障而变得离线的主机120的物理编组。在一个简单的示例中,主机120可以是不同的故障点,并且因此是针对其上主存的所有VM 130的不同的FD 170。或者,当服务器机架包含多个主机120时,服务器机架可以是针对所有主机120极其相关联的VM 130的不同FD 170。作为SLA的一部分,CSP可以跨多个FD 170来分布VM 130的实例以避免在提供服务的硬件故障(例如,电源断线、硬件故障等)的情况下违反SLA。如所解说的,FD 170A-D包括提供VM 130的所解说的实例的主机120的编组。如将理解的,FD 170可包括比所解说的更多或更少的主机120,并且VM 130如何被指派给FD170中的主机120可以与所解说的示例不同。
在各个示例中,UD 150与FD 170共享不断变化的对齐级别。在完全对齐时,UD 150的每一主机120被主存在同一FD 170中并且每一FD 170仅主存单个UD 150;在给定UD 150和给定FD 170中的主机120之间存在1:1的相关。所解说的示例显示了完全对齐。完全对齐可能是有用的,例如,以在调度硬件维护时将提供VM 130的实例的主机120进行编组。在未对齐时,只有主存给定UD 150的VM 130的单个主机120属于给定FD 170,并且反之亦然;只有给定FD 170的单个主机120主存给定UD 150的VM 130的实例。例如,如果UD 150D的VM130E由FD 170C的主机120I主存而非由FD 170D的主机120J主存,则UD 150将是未对齐的,因为其VM 130中的每一者由分开的FD 170主存。未对齐可能是有用的,以改善UD 150对故障的弹性以及FD 170对升级的弹性,从而最小化一个域对另一域的影响。在完全对齐和未对齐之间存在各种级别的对齐,本领域技术人员在阅读了上述描述之后将理解完全对齐和未对齐的益处和其间的折衷。
图2是用于降低云服务停机时间对消费者140的不便性的承租人控制引擎200的框图。根据各方面,承租人控制引擎200提供了对何时会在他们的承租人空间160中发生停机时间的承租人控制。消费者140可以向CSP提供他们对于更新何时会影响他们的承租人空间160的偏好,在使对应于UD 150的主机120离线时,承租人控制引擎200用于解读该偏好以在较不干扰消费者140的情况下提供更新。
如所解说的,承租人控制引擎200包括:通信模块210,用于与消费者140发送和接收通信;调度模块220,用于产生何时将使主机120(及其编组)离线的调度;域管理器230,用于控制何时使主机120离线;以及迁移模块240,用于将VM 130的实例迁移到新的主机120。在各方面,迁移模块240可以被略去、禁用、或者不被使用。
通信模块210用于与消费者140发送和接收通信。可以向消费者140警告可能导致VM 130的实例的停机时间的潜在更新或维护。这些更新和维护可包括消费者140可以选择退出(或选择进入)的可任选的更新以及消费者无法选择退出的强制更新和维护。此类警告可以经由电子邮件、短消息服务(SMS)、电话、或被合理地计算以通知消费者140即将发生的停机时间的其他服务被传递给消费者140。通信模块210可以使用不同服务在几乎同一时间向同一消费者140传送多个通信。通信模块还可在其尚未接收到来自给定消费者140的响应的情况下传送多个连续警告或提醒。
通信模块210可以接收消费者响应并且解读该消费者响应以用在承租人控制引擎200中。该响应可以经由SMS、电话、浏览器客户端、或能够传达消费者关于他们被警告的更新或维护事件的偏好的其他服务作为承租人控制通信来接收。
在各个方面,承租人控制引擎200可以在服务的初始设置或部署其间接收消费者偏好,这可以用作初始偏好。在其他方面,承租人控制引擎200可以从先前更新或维护事件中获得消费者偏好,这可以被重用为先前偏好。在消费者140没有及时对来自通信模块210的警告作出响应的情况下,可以使用初始偏好和先前偏好。或者,当消费者140没有对警告作出响应时,承租人控制引擎200可以确定消费者140对于更新何时会影响他们的承租人空间160不具有任何偏好。
通信模块210用于向调度模块220传送消费者偏好,调度模块220用于确定如何实现关于何时使来自给定UD 150的主存VM 130的主机120或遵守更新约束集的主机120离线的消费者偏好。消费者140可以设置时间偏好(以正或负)、迁移偏好(例如,是否允许迁移或者实施原地更新(UIP))、并且用不同的偏好强度级别。
时间偏好允许消费者140选择要执行更新的时间范围(即,正偏好)或者何时不要执行更新(即,负偏好)。正偏好可被比作“现在更新我”命令(UMN命令)以设置用于更新的给定时间。类似地,负偏好可被比作封锁命令,其中承租人阻塞了给定时间以避免用于更新。例如,消费者140可以正地设置希望在给定时间被更新,或者负地设置不希望在给定时间被更新。在一些方面,UMN命令可充当发送UMN命令的承租人的正偏好以及共享主机120的其他承租人的负偏好两者;从而有效地将负偏好置于未被UMN命令指定的任何时间上。在一些方面,UMN命令可以指定要运行更新的将来时间范围,并且在其他方面,可以将当前时间指定为可接受运行更新。
迁移偏好允许消费者140在更新之前选择是否要在更新之后保留同一主机120,即,是否要作为更新的一部分将实例迁移到新的主机120。例如,消费者140可以表明他可以接受将其VM 130移动至不同的主机120(即,不偏好UIP或允许迁移)或者他不接受移动其VM130(即,偏好UIP或不允许迁移)。在各方面,消费者140可以指定他将接受迁移的其VM 130的一部分或子集,或者可以设置允许给定VM 130被迁移的准则(例如,低于给定大小的高速缓存、给定时间内最后一次访问、从给定位置访问、自从上一次更新以来的时间等)。
在各方面,强度(或权重)可以与每一个偏好相关联。这些强度可以由消费者140在他们的通信中指派或者由承租人控制引擎200来指派。强度表示承租人控制引擎200将试图满足消费者偏好的程度,以使得以较弱偏好的代价来满足较强偏好。承租人在他们可以多强烈地表达偏好方面可能受到承租人控制引擎200和SLA的限制,以使得仅一些承租人可具有最高强度的偏好或者一些承租人可被限于最低强度的偏好。类似地,承租人在他们可以表达多少强偏好方面可能受到限制。在一个示例中,消费者140可以在其响应中传达一个强偏好和若干弱偏好,以使得他可以传达在一个给定日子不要更新的一个强偏好以及在若干其他日子不要更新的若干弱偏好。类似地,消费者140可以弱地偏好UIP选项,以使得在冲突的情况下,承租人控制引擎200不会迁移消费者140,除非具有对UIP更强偏好的冲突承租人共享同一主机120。在一些方面,中性强度偏好可以被解读为与没有偏好相同,而在其他方面,它可以作为对更新的给定时间或迁移选项的认可来对待(即,缺少负偏好将作为最低强度的正偏好来对待)。
在各方面,时间偏好可以与完成更新的预期时间或者消费者定义的时间范围有关。例如,当更新预期持续三十五分钟时,消费者偏好可以指定三十五分钟时长的阻塞。在其他方面,消费者140可以知晓其一天、一星期或一个月中对于进行更新最方便或最不方便的时间范围并且相应地设置时间阻塞。调度模块220可用于接受在常规时间(例如,在正点、在半点、在一刻或三刻等)或非常规时间(例如,一小时超过七分钟、一小时之前十一分钟等)开始的时间范围。另外,调度模块220可以将来自消费者140的定时约束考虑在内以尽快地更新提供VM 130的每一主机120(例如,所有主机120或其编组在没有时间间隙或具有很少时间间隙的情况下背靠背地更新)或者在更新之间具有预定义的时段(例如,在第一主机120A离线并且重新在线之后的一个小时第二主机120B才能够离线)。
在一些方面,承租人控制引擎200可以保留更新期间消费者140无法针对其设置偏好的某些时间范围。例如,可以保留开始时间范围、更新期间的重复范围(例如,在更新期间每天从早上8点到晚上9点)、或更新期间的结束时间范围以例如验证更新的稳定性、以执行原本会冲突的任何更新、或者以释放资源来实现迁移。类似地,承租人控制引擎200可以限制在给定时间可以离线的主机120数目,尽管那些主机120不共享承租人。例如,如果承租人控制引擎200仅保留主机120要在周六晚上期间更新的两个时隙,则不共享承租人的第一主机120A和第二主机120B可以根据它们的承租人偏好在周六晚上离线。然而,如果不与第一主机120A或第二主机120B具有公共承租人的第三主机120C具有希望在周六晚上更新的承租人,则该承租人无法将其设置为偏好,因为周六晚上所有可用时隙已被第一主机120A和第二主机120B保留。
因为多个消费者140可以共享给定主机120,所以调度模块220可能需要平衡多个消费者140的偏好。调度模块220可以用各种方式来平衡多个消费者140,包括偏好的确定优先级和遵从以及实例迁移。这些各种方式允许承租人控制引擎200避免、解决、以及缓解在云更新中实现承租人控制时的冲突。
确定优先级方法将一些承租人的偏好置于其他承租人的偏好之前。在一方面,调度模块220仅允许每主机120一个消费者140或有限数目的消费者140陈述他们的偏好,从而避免或最小化冲突的可能性。在另一方面,主机120中的每一消费者140以级联的方式实现其偏好,以使得第一消费者140A在其他消费者140之前应用其偏好,第二消费者140B则将鉴于第一消费者的偏好来应用其偏好(例如,第二消费者140B被阻止阻塞第一消费者140A已经指定作为更新偏好的时间或者被阻止偏好第一消费者140A已经阻塞更新的时间)等。在又一方面,更新偏好可以在先到先服务的基础上来设置,其中任何消费者140可以设置影响其UD 150的偏好,如果其偏好在其他消费者140的偏好之前被通信模块210接收的话。
遵从方法试图从承租人之中形成使主机120离线的一致时间范围以使得可以准予许多但并非所有的期望偏好。遵从方法可用于在不确定偏好或消费者140的优先级的情况下满足主机120上的多个承租人的偏好。在一方面,作为承租人的消费者140可以使其偏好对照彼此作比较以确定调度。例如,当十六个消费者140是给定主机120上的承租人并且十五个消费者设置了给定时隙要更新的偏好而另一消费者设置了与其相反的偏好,则给定时隙将作为偏好更新来对待。当相等数目的承租人支持和反对给定时间时,调度模块220在确定如何调度更新时可以将该时隙作为中性来对待并且将试图寻找承租人更偏好的时间。在其他方面,遵从方法可以使用除了给定主机120上大部分承租人之外的决策点,例如,如果20%的承租人(或80%的承租人、两个承租人、九个承租人等)指定对给定时间范围进行更新(或不更新)的偏好,则该偏好将被实现。
在一些方面,在比较偏好时,每一承租人可以被给予相等的权重,而在其他方面,承租人可以被给予不同权重。承租人可以基于他们具有的在主机120上运行的VM 130的数目或者基于他们的SLA来(例如,优质SLA对基本SLA、高工作时间SLA对低工作时间SLA、大SLA对小SLA等)被赋予权重。在一些方面,完整强度的正偏好或完整强度的负偏好可以覆盖较低强度的偏好。例如,不接受在给定时间的更新的消费者140可以设置完全强度的负偏好以有效地禁止由其他承租人设置的在该给定时间进行更新的任何偏好。
在确定无法解决调度冲突以使消费者140满意时,例如,当消费者140具有针对其时间偏好的低优先级或者在遵从方法中其时间偏好要匹配一致时间范围时,可以使用迁移偏好来满足消费者偏好;消费者140可被迁移或者可被询问其是否希望迁移以保留根据其时间偏好的更新时间。在迁移消费者140时,选择针对VM 130的给定实例的新的主机120,并且在更新时间,该实例将被指派给该新的主机120。
当消费者140初始地被指派给主机120时,该指派可基于避免与当前承租人的冲突的初始偏好,然而,消费者偏好可以随着时间推进而改变。例如,最初决定周末将是允许更新的偏好时间的消费者140可能稍后确定周一和周二晚上将是更新的更好时间,因为其在周末需要对其VM 130的完全访问。迁移使得消费者140能够被重新指派给主机120。在一些方面,由迁移模块240来定位主存与迁移消费者140具有类似偏好的承租人的不同主机120,以使得在将来更新时预期发生较少的冲突。如将理解的,对于要发生的迁移,不同的主机120上必需有足够的资源可用,这可被称为“转弯空间”。
然而,迁移对于CSP而言是资源密集的,并且可能负面地影响正被迁移的消费者140。例如,迁移可能要求消费者将其实例的高速缓存重新构建于新的主机120上,减少承租人空间160跨FD 170的分布,或者消费者140的优先级与新的主机120上的其他消费者140相抵触,这可能导致消费者140相比于迁移选项而偏好UIP选项。或者,当提供更新的更多灵活性或较少停机时间时,例如,当在新的主机120上花费比更新原始主机120更少时间来重新引导VM 130实例时,消费者140可能相比于UIP选项而偏好迁移选项。因此调度模块220在确定是否应当迁移消费者140时使用对于消费者140会否接受迁移的偏好。缺少消费者偏好,调度模块220能够基于云的技术特征、主机120、要被迁移的VM 130的大小来自由确定迁移哪些消费者140以及如何迁移它们。
在各方面,在迁移消费者140时,消费者140可以被迁移至已经被更新的主机120,以使得被迁移的实例不必在迁移之后离线。在一些方面,迁移模块240可以基于由多个经更新的主机120所主存的承租人的偏好来确定要迁移到该多个经更新的主机120中的哪一个经更新的主机120以匹配迁移消费者140的偏好。在其他方面,消费者140可以被迁移至具有类似偏好的其他承租人的未经更新的主机120。迁移至具有类似偏好的承租人的主机120可以降低消费者140在后续更新中可能被迁移的概率。
当两个或更多个承租人设置冲突的时间偏好时,任一个承租人可以被迁移以满足他们的时间偏好,除非承租人之一已经设置了UIP选项,在这种情形中,未设置UIP选项的承租人被迁移。如将领会的,如果同一主机120的两个承租人已经设置了UIP选项并且具有冲突的时间偏好,则必需损害他们的偏好中的至少一者以应用更新。在一些方面,已经设置了与来自另一承租人的现有或更高强度时间偏好冲突的时间偏好的消费者140可以被提示他们是希望修订他们的时间偏好还是迁移至将容适所输入的时间偏好的不同主机120。在各方面,可以向任一个冲突的消费者140通知该冲突并且询问任一个冲突的消费者140替换偏好,而在其他方面,可以仅通知具有较低优先级的消费者140并且询问具有较低优先级的消费者140替换偏好。
调度模块220用于用各种方式来处理迁移偏好中的冲突。例如,UIP选项可以仅对给定主机120上的一个消费者140可用。类似地,给定主机120的每一承租人可以被给予针对他们的UIP偏好的不同强度,以使得如果存在冲突,则可以基于偏好强度在承租人之间建立等级顺序。在另一方面,当消费者140对来自通信模块210的警告作出响应时,UIP选项(或等级顺序中迁移偏好的更高强度)可以在先到先服务的基础上可用。承租人控制引擎200还可允许迁移偏好作为时间偏好的替换,从而允许消费者140要么选择更新的时间要么是否保留原地更新。
在各方面,调度可遵循来自个体消费者140的行进中的更新。这些更新可以在各个阶段根据偏好类型、根据消费者140、或者根据偏好类型以及根据消费者140来进行。例如,在根据偏好阶段构建调度时,可以询问消费者140以获得对给定更新的封锁时间的负定时偏好,该封锁调度随后可被传送给消费者140,并且消费者140可以传递他们遵循现有的负偏好的何时调度更新的正偏好。以此方式,在产生调度时,偏好类型可以被承租人控制引擎200给予较高的强度。类似地,在根据消费者阶段构建调度时,例如,询问具有较高优先级的消费者140的第一子集以获得他们的偏好,他们的偏好被实现在调度中,接着鉴于第一子集的偏好来询问消费者140的第二子集以获得他们的偏好。以此方式,承租人控制引擎200可以给予某些消费者偏好较高的强度而不覆盖其他消费者140的偏好。
当调度模块220已经确定如何鉴于消费者偏好来实现更新并且已经解决了所有冲突时,产生调度并且传递至其他模块。域管理器230将实现调度,从而与主机120通信以在调度中所指定的时间使它们离线以使得可以应用更新,并且在需要任何迁移的情况下迁移模块240将寻找各实例将被迁移至的新的主机120并且在调度所指定的时间执行那些迁移。在一些方面,调度模块220可以将调度传达给通信模块210以供传输给消费者140。即便消费者140的偏好未被实现(或未被询问),消费者140也可受益于知晓停机时间何时将会影响他们的承租人空间160的各部分并且相应地调整他们的活动。
在实现更新并且主机120离线的同时,域管理器230用于确保在给定时间针对任何一个消费者140不超过一个UD 150离线。在一些方面,域管理器230用于将更新的状态传递给调度模块220,以使得如果发生错误或者比预期更快地完成给定UD 150的更新,则可以调节调度。更新的状态也可以被传递至消费者140,例如,以向消费者140建议更新已经完成、遭遇错误、达到完成的百分比。
图3是示出一种用于在云更新中提供承租人控制的方法300中所涉及的一般阶段的流程图。在将对即将到来的停机时间的警告发送给消费者140时,方法300开始。停机时间可能归因于要求应用重新引导的对HostOS的更新、VM 130的操作***或提供给消费者140的应用以及变得暂时不可用的服务(或其一部分)。停机时间也可以归因于会使得服务(或其一部分)变得暂时不可用的硬件的调度维护。警告可以被发送给消费者140的全部或一部分,例如,可以仅警告向其询问他们的偏好的一部分消费者140。在各方面,警告可以在一个时间被发送给目的地消费者140,或者在不同时间(例如以波)发送给目的地消费者140的子集,并且如果在预定时间之后尚未接收到响应则可以向消费者140传送提醒。警告可以经由消费者140能够接收的各种格式来发送,包括但不限于:电子邮件、SMS、电话等。
在操作320接收对于停机时间何时以及如何影响提供给承租人的服务的消费者偏好。偏好可包括用于指示消费者140认为何时停机时间应当影响其服务的时间偏好,以及用于指示移动到新的主机120对于消费者140是否是可接受的迁移偏好。在各方面,偏好可以经由各种格式响应于警告从消费者140传送,该各种格式包括但不限于:电子邮件、web应用、SMS、电话等。示例web应用可包括各种图形用户界面,包括消费者140可用来在其上选择时间范围以反应他们的时间偏好的日历。在其他方面,偏好可以从由CSP存储的数据库中检索,该数据库可包括先前传送的消费者140的偏好或者由SLA或类似协定指定的初始偏好。在一些方面,CSP可以使用检索自数据库的偏好而不向那些消费者140传送警告,而在其他方面,当消费者140在预定义的时间窗口中没有传送他们的偏好时,使用检索自数据库的偏好。
无论偏好是如何被接收的,来自多个消费者的偏好可能冲突,并且在操作330确定这些冲突偏好。例如,第一消费者140A可以传送要在给定时间中进行更新的偏好,第二消费者140B经由检索自数据库的偏好具有要阻塞在该给定时间中进行更新的偏好。在这一示例中,如果第一消费者140A和第二消费者140B是同一主机120的承租人,则他们将具有冲突偏好。
方法300前进至操作340,其中解决任何冲突偏好。在各方面,可以使用各种策略来解决冲突。在一方面,偏好可以具有由消费者140或CSP设置的不同强度。在一些示例中,强度可以建立要被解决的冲突的优先级,藉此具有较高强度的偏好胜出并且覆盖具有较低强度的冲突偏好。在其他示例中,可以收集给定主机120的所有承租人的偏好以确定承租人的平均偏好,这可以包括或者可以不包括每一承租人的偏好的各个强度。在还有一些其他示例中,CSP可以通过将冲突消费者140迁移至不同主机120来解决冲突。取决于哪些消费者140具有对UIP的偏好以及哪些消费者已经允许迁移,CSP将确定要迁移具有冲突偏好的哪些消费者140。
作为操作340的冲突解决的一部分,CSP可参与冲突避免。例如,CSP可以限制作为给定主机120的承租人能够在更新期间断言他们对停机时间的时间偏好的消费者140的数目,限制作为给定主机120的承租人可具有迁移偏好或提供时间偏好并且迁移偏好是替换选项的消费者140的数目;给定消费者140可以断言时间偏好或迁移偏好,但不能断言两者。
另外,CSP可以参与冲突迁移,其中在实现偏好时,可以向其偏好与另一承租人的偏好冲突并且作为冲突的结果不能被实现的消费者140通知错误。可以向消费者140通知其偏好无法被实现,或者向其通知其偏好无法被实现并且询问其次要偏好。次要偏好可包括不同的时间偏好,不同的迁移偏好,或不同的时间和迁移偏好。例如,可以向具有要在给定时间进行更新以及UIP的偏好但与另一承租人的偏好(例如,不在给定时间进行更新以及UIP)冲突的消费者140通知其偏好无法被实现,但该消费者140可以选择是改变其时间偏好以保留其迁移偏好,改变其迁移偏好以保留其时间偏好,还是改变其时间偏好和迁移偏好两者。
在各方面,可以向具有冲突偏好的所有消费者140通知或者通知并询问以获得次要偏好,而在其他方面,仅向其偏好未被实现的那些消费者通知或通知并询问。在其他方面,消费者140可以响应于由CSP发送的警告或者经由存储的偏好向CSP指示多个替换偏好,以使得当无法满足主要偏好集时可以替换次要偏好集。类似地,如果由于冲突无法满足次要偏好集,则可以替换第三或第n偏好集,直到标识出能被满足的偏好集,到达预定义的替换上限,或者达到接收替换偏好的截止时间。当无法满足偏好时,CSP可基于其自己的优化目标或数据中心110的状态来确定如何调度更新,而不管消费者140的偏好或者关于来自消费者140(例如,尽可能多的消费者140,对于某些消费者140子集等)的选择的偏好。
在操作340解决潜在的冲突之后,方法300前进至操作350,其中确定更新调度。在各方面,CSP将确定主机120离线以执行更新的顺序并且将估计每一主机120将离线多长时间。主机120将离线多长时间可包括应用更新/维护所需的时间、恢复服务所需的时间(这可包括重新构建给定VM 130的高速缓存)、以及用于提供错误余量或用于使停机时间结束在常规时间区间(例如,在整点、在半点、在五分钟标记等)的偏移时间。
在其他方面,CSP将确定在更新规程期间主机120将“在进行中”被更新。CSP将选择在当前时间可以离线而不会违背所主存的VM 130的任何偏好或更新约束的主机120并且使其离线以应用更新。CSP可以继续选择和更新主机120以循环通过主机120群直到更新完成。换言之,在“进行中的”更新期间的任何时间,可以从中选择进行更新的主机120集将取决于哪些UD 150当前更新它们相关联的主机120,以使得来自单个承租人空间160的多个UD 150不会同时离线。
作为操作350中确定更新调度的一部分,CSP将确定是否要迁移消费者的VM 130中的任一者,并且如果适用,则确定那些VM 130要迁移到哪些主机120。在更新之前计算更新调度时,更新调度将包括迁移将发生的时间。在各方面,CSP可将消费者140迁移至已经被更新的主机120,但如果没有可用于将消费者140迁移到的经更新的主机120,则消费者140可以被迁移到未经更新的主机120。CSP可以仅仅基于不同主机120的可用性、不同主机120的FD 170的可用性、不同主机120的可用性以及主机120的承租人(更新前和更新后)的偏好、或不同主机120的FD 170的可用性以及不同主机120的承租人(更新前和更新后)的偏好来确定要将消费者140迁移到的不同主机120。在一些方面,CSP可以试图最小化解决冲突所必需的迁移数目。
在可任选的操作360,可以向消费者140提供在操作360中所确定的调度。在各方面,可以向消费者140提供完整调度或者仅影响该消费者140以及他接收的服务的时间和迁移选择。在各方面,调度可以是CSP将用来执行更新的最终调度,而在其他方面,调度可以遭受消费者140的修订和迭代。例如,消费者140可以接收调度并且鉴于调度中实现的偏好来确定不同的偏好集。例如,消费者140的偏好可以以波来接收,以使得消费者140的第一子集能够设置偏好,该偏好对消费者140的后续子集具有约束力,但遵从那些消费者140的后续子集的附加、非冲突的偏好。
在一些示例中,可以根据提供VM 130的主机120将离线的调度来经由VM 130向正在访问VM 130的消费者140提供提前警告。提前警告可以在临近VM 130将离线的时候被传送,从而向用户提供完成会话的短期警告(例如,提前三十分钟、提前十五分钟等)。可以作为提醒向用户传送多个提前警告,例如,以保存VM 130中完成的任何工作。提前警告可包括使主机120离线的预期时间以及基于调度通过主机120的更新/维护的迁移或完成将为VM130恢复服务的预期时间。
在操作380,CSP将根据调度开始更新,主机120离线,VM 130按需被迁移,并且主机120被重新引导以应用更新并完成方法300。
图4是示出一种用于实现对更新定时的承租人控制的正时间偏好的方法400中所涉及的一般阶段的流程图。当在操作410接收到UMN命令时,方法400开始。UMN命令可以经由任何合适的手段(例如,经由web客户端、SMS、电话树等)来接收并且被处理以确定消费者140具有对接受其服务中的停机时间的偏好的时间。UMN命令可以指定承租人认为对于停机时间而言是可接受的若干时间范围(具有各个相关联的强度),并且可包括对于停机时间而言不可接受的时间和迁移偏好。
如将理解的,由于消费者140可以是在不违反SLA或消费者140的更新约束的情况下不能同时离线的多个主机120上的承租人,因此UMN命令可以应用于个体主机120或应用于从给定承租人空间160的给定UD 150提供VM 130的所有主机120。在各方面,CSP可以要求UMN命令中所请求的总时间足以使向消费者140提供VM 130的所有主机120离线并且再次在线。这一时间可以在一个连续范围中或者若干非连续范围中请求,但是当请求非连续范围时,每一个体范围的时间将等于或超过使个体主机120离线并且再次在线以完成更新所需的时间。CSP还可以限制被允许作出UMN命令的消费者140的数目,例如每一主机120不超过一个消费者140,或者限于向其提供给定主机120上的VM 130中的20%的消费者140的数目。
作为UMN命令的一部分,可以封锁其中未被请求执行更新的时间。这些阻塞指定CSP无法使消费者140是其承租人的主机120离线的时间范围。当消费者140没有在UMN命令中指定用于完成消费者140是其承租人的所有主机120的更新的足够时间时,CSP可以封锁UMN命令所指定的时间范围周围的预定时间段(例如,三十分钟、一个小时等)以执行更新,或者可以不封锁任何时间。
在决策操作420,确定UMN命令是否与来自给定主机120的其他承租人的时间偏好冲突。冲突的时间偏好可以与UMN命令的指定时间范围的全部或一部分交叠,然而,如果确定可以在UMN命令的指定时间范围中不与其他承租人的偏好冲突的一部分中完成更新,则UMN命令将作为非冲突来对待。例如,第一消费者140A是第一主机120A和第二主机120B上的承租人,而第二消费者140B是第二主机120B和第三主机120C的承租人。对于每一主机120预期持续一个小时的更新来说,第一消费者140A可以传送针对8:00直到10:00的时间范围的UMN命令,而第二消费者140B可以传送针对7:00直到9:00的时间范围的UMN命令,这与第一消费者140A提交的时间偏好的一部分交叠。然而,因为8:00直到9:00的一个小时满足要更新共享第二主机120B的两个时间偏好集并且足够完成对于至少单个主机120的更新,所以来自第一消费者140A和第二消费者140B的UMN命令将不会作为冲突来对待。
当确定不存在冲突时,方法400前进至操作430以根据UMN命令来调度要在其中执行更新的停机时间。继续以上的示例,用于执行更新的停机时间可以被调度为针对第三主机120C从7:00直到8:00,针对第二主机120B从8:00直到9:00,针对第一主机120A从9:00直到10:00,从而满足第一消费者140A和第二消费者140B两者的偏好而没有冲突。在调度了所有更新之后,方法400可以结束。
当确定在UMN命令与另一偏好之间存在冲突时,方法400前进至决策操作440,其中可以确定UMN命令与任何阻塞之间的冲突偏好之间的优先级。如果例如在遵从方法中不要确定优先级或者作为替换要确定给定主机120上的偏好的优先级,则方法400前进至决策操作460。可以用如上讨论的若干方式来确定优先级,包括消费者140指派的优先级的强度以及CSP基于消费者140SLA指派的强度、接收偏好的时间(例如,较早接收到的偏好被赋予比较晚接收到的偏好或检索自数据库的偏好更高的强度)、时间偏好的类型(例如,正或负)、偏好的时间范围的大小(例如,较小的范围被赋予比较大的范围更高的强度)等。
当在决策操作440确定UMN命令的偏好不具有优先级时,方法400前进至操作450,其中向从其接收该UMN命令的消费者140传送偏好错误消息。在各示例中,偏好错误消息向消费者140通知其偏好由于冲突无法被实现。在一些方面,可以询问消费者140以提供鉴于冲突偏好的次要或替换偏好,而在其他方面,可以简单地通知消费者140。偏好错误消息可以经由电子邮件、SMS、电话、或被合理地通知以向受影响的消费者140提供其提交的偏好将不会被实现的通知的其他方法来传送。在操作450的传送之后,方法400可以结束。
当在决策操作440确定UMN命令的偏好具有优先级时,方法400前进至操作430,其中根据UMN命令来调度停机时间。可以向与被该UMN命令覆盖的任何偏好相关联的消费者140通知他们的偏好不再有效,这与在提交UMN命令的消费者140的偏好无法被实现的情况下在操作450中可以如何通知该消费者140类似。
如果UMN命令与另一偏好冲突,但不针对UMN命令或冲突偏好确定优先级,或者无法建立优先级,则方法400将前进至决策操作460以确定迁移是否可能。该确定可包括分析不同的主机120以确定是否有足够的转弯空间可用以接受来自始发主机120的消费者的VM130。该确定还可包括分析提交该UMN命令的消费者140的迁移偏好。在各示例中,这些确定可以与决策操作440中的优先级确定并发地作出或者在决策操作440中的确定之前作出。
当确定迁移不可能时,方法400将前进至操作450,其中向从其接收该UMN命令的消费者140传送偏好错误消息。方法400随后可以结束。
当确定迁移是可能的时,方法400前进至操作470,其中至不同主机120的迁移被调度。不同主机120可以基于在迁移发生时它是否已经被更新、不同主机120上的其他承租人(更新前和更新后)的偏好、以及不同主机120的FD 170来被选择为用于调度的迁移。在各方面,可以基于特定主机120的FD 170来选择VM 130将迁移至的特定主机120。主机120也可基于其空闲资源来选择,以使得CSP可以均匀地平衡主机120的工作负载或者最大化给定主机120的存储器空间或处理功率的利用。
一旦在操作470中调度了迁移,方法400就前进至操作430,其中作为调度的停机时间的一部分作出调度的迁移,并且由UMN命令指定的时间范围被调度为用于不同主机120的更新。方法400随后可以结束。
图5是示出一种用于实现对更新定时的承租人控制的负时间偏好的方法500中所涉及的一般阶段的流程图。当在操作510接收到封锁命令时,方法500开始。封锁命令可以经由任何合适的手段(例如,经由web客户端、SMS、电话树等)来接收并且被处理以确定消费者140具有对不允许他们的服务在其中的停机时间的偏好的时间。封锁命令可以指定承租人认为对于停机时间而言是不可接受的若干时间范围(具有各个相关联的强度),并且可包括对于停机时间而言可接受的时间和迁移偏好。
方法500前进至决策操作520,其中确定封锁命令中指定的时间范围是否可用。在各方面,该时间范围可能由于要在给定时间更新的冲突UMN命令而不可用,或者由于CSP保留该时间从而该时间无法被消费者140阻塞而不可用。在各示例中,阻塞命令可以具有比冲突偏好更高的优先级,并且因此该时间范围将是可用的,尽管存在冲突。冲突偏好可包括要在给定时间范围中更新的正偏好或者使得封锁命令所指定的时间范围超过CSP对可供封锁的时隙施加的限制的负偏好。
如将理解的,CSP要求在其中执行更新的某一时间量。CSP因此可以限制任何一个消费者140或所有消费者140在更新期间可以封锁的时间量,或者可以保留一些时间范围作为无法封锁来用于更新。消费者140能够封锁的时间量也可以受到该消费者140被指派给的UD 150的数目的影响。尽管CSP可以跨主机120逐渐地推出更新,但CSP可以在同一时间期间使多个主机120离线,只要这些主机120不提供来自同一承租人空间160的不同UD 150的VM130。由于CSP试图同时使更多的主机120离线,因此会涉及来自同一承租人空间160的多个UD的可能性就更高,尤其在消费者140将他们的VM 130散布到较多数目的UD 150中时。CSP因此可以基于VM 130或消费者140所具有的UD 150的数目来向消费者140分配用于封锁的时间范围。例如,具有较多UD 150的消费者140(限制了CSP来调度多个主机120以用于同时停机时间的能力)可以被分配比具有较少UD 150的消费者140更少的用于封锁的时间范围。或者,CSP可以通过消费者140的承租人空间160的大小或者消费者140可以支付的费用来向具有较多UD 150或VM 130的消费者140分配较多的用于封锁的时间范围。在其他示例中,CSP考虑其偏好的消费者140的数目可以跨数据中心110或主机120来限制,例如,数据中心110中不超过50%的消费者140可以设置负时间偏好。在还有一些示例中,CSP限制考虑其偏好的消费者140的数目以及他们能够在给定时间段中封锁的时间量,例如,不超过50%的消费者140可以设置负时间偏好,并且那些消费者140不可以指定一天中超过50%的时间为被阻塞。
当确定封锁命令中指定的时间范围可用时,方法500将前进至操作530,其中包括每一UD 150的停机时间的更新的调度将纳入封锁命令,以使得向发送该封锁命令的消费者140提供VM 130的主机在指定的时间范围期间不被更新。方法500随后可以结束。
当确定封锁命令中指定的时间范围不可用时,方法500将前进至决策操作540,其中确定迁移是否可能。如果提交封锁命令的消费者140或者提交与封锁命令中指定的时间范围冲突的偏好的消费者140中的任一者没有将迁移偏好设置为UIP,则迁移可以是可能的;任一承租人可以被调度以供迁移,以使得封锁命令可以如所提交的被实现。相应地,CSP可以限制可以设置时间偏好以及具有对UIP的偏好两者的消费者140的数目。
对于在实现封锁命令的同时在决策操作540被确定为可能的迁移,目的地主机120必需也不具有对封锁命令中指定的时间范围的冲突,并且必需具有足够的资源可用以主存正被迁移的消费者140的VM 130实例。在各示例中,CSP可以确定迁移经由级联迁移是可能的。例如,如果第一消费者140A是第一主机120A上的承租人并且提交了与第一主机120A的不允许迁移的承租人冲突的封锁命令,则CSP可以将第一消费者140A迁移至第二主机120B。然而,如果第二主机120B不具有足够的计算资源来处理第一消费者140A,或者作为第二主机120B的承租人的第二消费者140B具有将与第一消费者140A在封锁命令中指定的偏好冲突的偏好,则可以确定至第二主机120B的迁移是不可能的。然而,如果CSP允许级联迁移,在第二消费者140B可以被迁移至第三主机120C(或第一主机120A)以增加可用的计算资源或移除来自第二主机120B的冲突偏好的情况下,第一消费者140A至第二主机120B的迁移将是可能的。如将理解的,CSP将偏好将第一消费者140A移至第三主机120C以减少所需的迁移数目,但在第一消费者140A可以移动到第二主机120B中但不可移动到第三主机120C的情况下,也可使用级联迁移。在各方面,CSP在确定迁移是否可能时可以限制级联迁移中可能的级联数目。
当确定迁移是不可能的时,方法500将前进至操作550,其中向从其接收该封锁命令的消费者140传送偏好错误消息。在各示例中,偏好错误消息向消费者140通知其偏好由于冲突无法被实现。在一些方面,可以询问消费者140以提供鉴于冲突偏好的次要或替换偏好,而在其他方面,可以简单地通知消费者140。偏好错误消息可以经由电子邮件、SMS、电话、或被合理地通知以向受影响的消费者140提供其提交的偏好将不会被实现的通知的其他方法来传送。在操作550的传送之后,方法500可以结束。
当确定迁移可能时,方法500前进至操作560,其中至不同主机120的迁移被调度。不同主机120可以基于在迁移发生时它是否已经被更新、不同主机120上的其他承租人(更新前和更新后)的偏好、以及不同主机120的FD 170来被选择为用于调度迁移。在各方面,可以基于特定主机120的FD 170来选择VM 130将迁移至的特定主机120。主机120也可基于其空闲资源来选择,以使得CSP可以均匀地平衡主机120的工作负载或者最大化给定主机120的存储器空间或处理功率的利用。
一旦在操作560中调度了迁移,方法500就前进至操作530,其中作为调度的停机时间的一部分作出调度的迁移,并且由封锁命令指定的时间范围向用于不同主机120的更新封锁。方法500随后可以结束。
尽管已在结合在计算机上的操作***上运行的应用程序执行的程序模块的一般上下文中描述本公开,但本领域的技术人员将认识到,本公开也可结合其他程序模块实现。一般而言,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构以及其他类型的结构。
图6及相关联的描述提供了其中可实施本公开的各示例的各种操作环境的讨论。然而,关于图6所示出和讨论的设备和***是用于示例和说明的目的,而非对可被用于实施本文所述的各方面的大量计算设备配置的限制。
图6是解说可用来实施各示例的计算设备600的物理组件(即硬件)的框图。下文描述的计算设备组件可适于主机120或如上所述提供承租人控制引擎200的设备。在基本配置中,计算设备600可包括至少一个处理单元602和***存储器604。取决于计算设备的配置和类型,***存储器604可包括,但不限于,易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存、或这些存储器的任何组合。***存储器604可包括操作***605和适合于运行软件应用650的一个或多个程序模块606。根据一方面,***存储器604可包括承租人控制引擎200。操作***605例如可适合于控制计算设备600的操作。此外,各方面可结合图形库、其他操作***、或任何其他应用程序来实践,并且不限于任何特定应用或***。该基本配置在图6中由虚线608内的那些组件例示出。计算设备600可具有附加特征或功能。例如,计算设备600还可包括附加数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。这些附加存储在图6中由可移动存储设备609和不可移动存储设备610例示出。
如上所述,可在***存储器604中存储多个程序模块和数据文件。尽管在处理单元602上执行,但是程序模块606(例如承租人控制引擎200)可以执行包括但不限于下列过程:分别在附图3、4和5中所示的方法300、400和500的各阶段中的一个或多个。根据本公开的各示例可使用的其他程序模块可包括应用,诸如电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
计算设备600也可具有一个或多个输入设备612,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备614,如显示器、扬声器、打印机等等。上述设备是示例,并且可使用其他设备。计算设备600可包括允许与其他计算设备616进行通信的一个或多个通信连接618。合适的通信连接616的示例包括但不限于RF发射机、接收机、或收发机电路***;通用串行总线(USB)、并行或串行端口。
如此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质可包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、或程序模块等信息的易失性和非易失性、可移动和不可移动介质。***存储器604、可移动存储设备609和不可移动存储设备610都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可以包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算机设备600访问的任何其他制造品。任何这样的计算机存储介质都可以是计算设备600的一部分。术语“计算机存储介质”不包括载波、传播数据信号或其他传输介质。
传输介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,传输介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
以上参考例如根据各方面的方法、***和计算机程序产品的框图或操作图示描述了本公开的各方面。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。
本申请中提供的一个或多个示例的描述和说明不旨在以任何方式限制或约束本公开的范围。本申请中提供的各方面、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用承租人控制的云更新的最佳模式。本公开不应被理解为限制于本申请中所提供的任何方面、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的特征集的示例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在本申请中具体化的一般发明概念的更宽泛方面的精神内的各种变体、修改和替代示例,这些变体、修改和替代示例并不背离其更宽泛的范围。
Claims (17)
1.一种用于提供云更新中的承租人控制的***,包括:
在云计算服务中运行的一个或多个主机,每一主机主存一个或多个虚拟机,其中所述云计算服务的消费者是所述一个或多个主机的承租人;
处理单元;以及
包括指令的存储器,所述指令在由所述处理单元执行时提供:
承租人控制引擎,包括:
通信模块,用于从消费者接收用于调度所述主机中的一者或多者的云更新的偏好,所述云更新要求根据调度使所述一个或多个主机离线;
调度模块,用于确定主存提供承租人控制的消费者的虚拟机(VM)的主机何时能离线以执行所述云更新,以及使用接收到的偏好来创建所述云更新的调度而不违反更新约束,当承租人具有由第一主机和第二主机两者所主存的虚拟机的实例时,所述更新约束在所述第二主机离线的同时限制所述第一主机离线;
域管理器,用于根据所创建的调度来控制主机何时离线以执行所述云更新;以及
迁移模块,用于将由给定主机所主存的虚拟机的实例迁移至不同的主机以解决在所述给定主机上第一消费者与第二消费者的接收到的偏好之间的冲突。
2.如权利要求1所述的***,其特征在于,给定消费者的偏好指定所述给定消费者偏好要执行所述云更新的时间范围。
3.如权利要求2所述的***,其特征在于,所述偏好指定将来的时间范围。
4.如权利要求1所述的***,其特征在于,给定消费者的偏好指定所述给定消费者偏好不要执行所述云更新的时间范围。
5.如权利要求1所述的***,其特征在于,所述偏好指定给定消费者将接受到不同主机的迁移或者将不接受到不同主机的迁移。
6.如权利要求1所述的***,其特征在于,给定消费者能够经由对时间范围的偏好或对迁移的拒绝来提供控制作为手动排他替换。
7.如权利要求1所述的***,其特征在于,如果给定消费者指定要原地更新的迁移偏好,则作为所述给定消费者的同一主机的承租人的其他消费者不能指定要原地更新的迁移偏好。
8.如权利要求1所述的***,其特征在于,所述承租人控制引擎保留其中消费者无法指定对要执行更新的时间范围的偏好的时隙。
9.如权利要求1所述的***,其特征在于,所述通信模块进一步用于将所述调度传送给所述承租人。
10.如权利要求1所述的***,其特征在于,如果所述迁移模块无法通过迁移第一消费者或第二消费者来解决冲突,则由所述通信模块向所述第一消费者和所述第二消费者通知所述冲突并且询问所述第一消费者和所述第二消费者以获取次要偏好。
11.如权利要求1所述的***,其特征在于,所述迁移模块进一步用于基于不同主机的承租人偏好来选择不同主机以将所述第一消费者和所述第二消费者之一迁移至所述不同主机。
12.一种用于提供云更新中的承租人控制的方法,包括:
从多个消费者接收用于数据中心的云更新的偏好,所述云更新要求根据调度使一个或多个主机离线,其中所述数据中心包括向作为承租人的多个消费者提供虚拟机的实例的多个主机,其中所述多个主机中的给定主机遵守更新约束;
检查来自所述多个消费者的接收到的偏好之间的冲突,其中所述冲突包括以下至少一者:
第一消费者指定对给定时间范围的正时间偏好而第二消费者指定对所述给定时间范围的负时间偏好,以及
所述第一消费者指定对保留时间段的负时间偏好;
通过以下至少一者来解决任何冲突:
将至少一个消费者迁移至不同主机;
从至少一个消费者接收次要偏好以替换所述至少一个消费者的接收到的偏好;以及
将所述至少一个消费者的时间偏好设置为保留时间段;
基于指定在执行所述云更新时所述数据中心中的每一主机将离线的顺序和时间范围的时间偏好来创建调度,其中为与第二更新命令共享至少一个承租人的第一更新命令指定的时间范围不与为所述第二更新命令指定的时间范围交叠;以及
根据所述调度来执行所述云更新。
13.如权利要求12所述的方法,其特征在于,在根据所述调度来执行所述云更新之前将所述调度传送至所述承租人。
14.如权利要求12所述的方法,其特征在于,所有更新被原地执行,其中所述多个消费者中的任何一个消费者不被迁移来解决任何冲突。
15.如权利要求12所述的方法,其特征在于,进一步包括:
从所述多个消费者接收迁移偏好,其中所述迁移偏好指定给定消费者是否会接受迁移至不同主机以解决任何冲突,其中指定不接受迁移至不同主机以解决任何冲突的给定消费者将不会被迁移以解决任何冲突。
16.如权利要求12所述的方法,其特征在于,将至少一个消费者迁移至不同主机进一步包括:
基于不同主机的承租人的时间偏好来选择不同主机,以使得至少一个消费者的时间偏好不与所述不同主机的承租人的时间偏好冲突。
17.一个或多个包括指令的计算机可读介质,所述指令在由计算***执行时,致使所述计算***执行如权利要求12-16中任一项所述的方法。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510325802.4A CN106302623B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
CN202010101762.6A CN111404992B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
US15/578,967 US10459750B2 (en) | 2015-06-12 | 2016-06-10 | Tenant-controlled cloud apparatus |
PCT/US2016/037041 WO2016201340A1 (en) | 2015-06-12 | 2016-06-10 | Tenant-controlled cloud updates |
EP21183682.0A EP3926469A3 (en) | 2015-06-12 | 2016-06-10 | Tenant-controlled cloud updates |
EP16733250.1A EP3308265B1 (en) | 2015-06-12 | 2016-06-10 | Tenant-controlled cloud updates |
US16/665,904 US11175943B2 (en) | 2015-06-12 | 2019-10-28 | Tenant-controlled cloud updates |
US17/526,168 US11868793B2 (en) | 2015-06-12 | 2021-11-15 | Tenant-controlled cloud updates |
US18/521,241 US20240095060A1 (en) | 2015-06-12 | 2023-11-28 | Tenant-controlled cloud updates |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510325802.4A CN106302623B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010101762.6A Division CN111404992B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302623A CN106302623A (zh) | 2017-01-04 |
CN106302623B true CN106302623B (zh) | 2020-03-03 |
Family
ID=56289586
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010101762.6A Active CN111404992B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
CN201510325802.4A Active CN106302623B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010101762.6A Active CN111404992B (zh) | 2015-06-12 | 2015-06-12 | 承租人控制的云更新 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10459750B2 (zh) |
EP (2) | EP3308265B1 (zh) |
CN (2) | CN111404992B (zh) |
WO (1) | WO2016201340A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404992B (zh) * | 2015-06-12 | 2023-06-27 | 微软技术许可有限责任公司 | 承租人控制的云更新 |
US10768920B2 (en) * | 2016-06-15 | 2020-09-08 | Microsoft Technology Licensing, Llc | Update coordination in a multi-tenant cloud computing environment |
US20180241617A1 (en) * | 2017-02-22 | 2018-08-23 | Microsoft Technology Licensing, Llc | System upgrade management in distributed computing systems |
US10691514B2 (en) | 2017-05-08 | 2020-06-23 | Datapipe, Inc. | System and method for integration, testing, deployment, orchestration, and management of applications |
US20180331973A1 (en) * | 2017-05-09 | 2018-11-15 | Microsoft Technology Licensing, Llc | Increasing virtual machine availability during server updates |
US10459758B2 (en) * | 2017-07-20 | 2019-10-29 | Citrix Systems, Inc. | Method to set up and tear down cloud environments based on a schedule obtained from one or more hosted calendars |
US10887198B2 (en) | 2017-09-29 | 2021-01-05 | Nec Corporation | System and method to support network slicing in an MEC system providing automatic conflict resolution arising from multiple tenancy in the MEC environment |
CN109842636A (zh) | 2017-11-24 | 2019-06-04 | 阿里巴巴集团控股有限公司 | 云服务迁移方法、装置以及电子设备 |
US10558454B2 (en) * | 2018-06-04 | 2020-02-11 | Palantir Technologies Inc. | Constraint-based upgrade and deployment |
EP3794802A4 (en) * | 2018-06-06 | 2021-05-19 | Huawei Technologies Co., Ltd. | SYSTEM AND PROCEDURES FOR CONTROLLING ADMINISTRATIVE OPERATIONS AND SHARED STORAGE SPACE FOR A CLOUD COMPUTING CLOUD COMPUTING |
US11782749B1 (en) * | 2019-01-21 | 2023-10-10 | Workday, Inc. | Tenant security control of data for application services |
US11095749B2 (en) * | 2019-01-29 | 2021-08-17 | Walmart Apollo, Llc | Self-service operation for bare-metal servers |
US11616787B1 (en) * | 2019-06-28 | 2023-03-28 | Amazon Technologies, Inc. | Mechanism to manage group of resources using virtual resource containers |
US11281452B2 (en) * | 2020-08-17 | 2022-03-22 | Salesforce.Com, Inc. | Tenant declarative deployments |
US11593095B2 (en) * | 2020-10-30 | 2023-02-28 | Vmware, Inc. | Upgrade of a distributed service in a virtualized computing system |
US11831518B2 (en) * | 2020-11-25 | 2023-11-28 | Cerner Innovation, Inc. | Dashboard interface |
US11379217B1 (en) * | 2021-05-06 | 2022-07-05 | Sap Se | Feature lifecycle management cockpit for hybrid cloud and edge systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571906A (zh) * | 2010-10-20 | 2012-07-11 | 微软公司 | 打补丁期间机器的高可用性 |
CN102750312A (zh) * | 2011-03-31 | 2012-10-24 | 微软公司 | 跨承租人移动的承租人数据的恢复 |
CN103414787A (zh) * | 2013-08-28 | 2013-11-27 | 北京爱工场文化发展有限公司 | 一种基于云服务的内容公播***和方法 |
US8799888B1 (en) * | 2011-05-20 | 2014-08-05 | Amazon Technologies, Inc. | Updating an application |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8271336B2 (en) * | 1999-11-22 | 2012-09-18 | Accenture Global Services Gmbh | Increased visibility during order management in a network-based supply chain environment |
US9061207B2 (en) * | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
US7620948B1 (en) * | 2003-08-29 | 2009-11-17 | Adobe Systems Incorporated | Client side software updating |
US7769874B2 (en) * | 2004-02-20 | 2010-08-03 | Akamai Technologies, Inc. | Highly scalable, fault-tolerant file transport using vector-exchange |
US8181173B2 (en) * | 2007-10-12 | 2012-05-15 | International Business Machines Corporation | Determining priority for installing a patch into multiple patch recipients of a network |
US8868613B2 (en) * | 2007-11-26 | 2014-10-21 | Adobe Systems Incorporated | Updating data on a remote device |
US8346540B2 (en) * | 2008-06-03 | 2013-01-01 | International Business Machines Corporation | Deep tag cloud associated with streaming media |
US8200634B2 (en) | 2008-10-08 | 2012-06-12 | Sap Ag | Zero downtime maintenance using a mirror approach |
US8332848B2 (en) * | 2009-03-12 | 2012-12-11 | Red Hat Israel, Ltd. | Mechanism for staged upgrades of a virtual machine system |
US8359594B1 (en) * | 2009-06-30 | 2013-01-22 | Sychron Advanced Technologies, Inc. | Automated rapid virtual machine provisioning system |
JP4939594B2 (ja) * | 2009-11-30 | 2012-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プライマリクラウドが提供したサービスレベルの実績値又は更新されたプリファレンス情報に基づいて、サービスレベルアグリーメントを動的に決定してサービスを提供することができるクラウドシステムを構成する装置、方法及びコンピュータプログラム |
US8209564B2 (en) * | 2010-02-26 | 2012-06-26 | Red Hat, Inc. | Systems and methods for initiating software repairs in conjunction with software package updates |
CN102236563A (zh) * | 2010-04-28 | 2011-11-09 | 腾讯科技(深圳)有限公司 | 软件升级的方法及*** |
US8407689B2 (en) * | 2010-06-25 | 2013-03-26 | Microsoft Corporation | Updating nodes considering service model constraints |
US20120130725A1 (en) * | 2010-11-22 | 2012-05-24 | Microsoft Corporation | Automatic upgrade scheduling |
US8615579B1 (en) * | 2010-12-28 | 2013-12-24 | Amazon Technologies, Inc. | Managing virtual machine migration |
US9100188B2 (en) * | 2011-04-18 | 2015-08-04 | Bank Of America Corporation | Hardware-based root of trust for cloud environments |
US8954586B2 (en) * | 2011-07-13 | 2015-02-10 | International Business Machines Corporation | Pre-provisioning virtual machines in a networked computing environment |
US9141785B2 (en) * | 2011-08-03 | 2015-09-22 | Cloudbyte, Inc. | Techniques for providing tenant based storage security and service level assurance in cloud storage environment |
US20130097296A1 (en) * | 2011-10-18 | 2013-04-18 | Telefonaktiebolaget L M Ericsson (Publ) | Secure cloud-based virtual machine migration |
US8935375B2 (en) * | 2011-12-12 | 2015-01-13 | Microsoft Corporation | Increasing availability of stateful applications |
WO2013140524A1 (ja) * | 2012-03-19 | 2013-09-26 | 富士通株式会社 | プログラム、管理サーバおよびパッチスケジューリング方法 |
US8972963B2 (en) * | 2012-03-28 | 2015-03-03 | International Business Machines Corporation | End-to-end patch automation and integration |
US8769526B2 (en) * | 2012-06-19 | 2014-07-01 | Google Inc. | Automatic application updates |
US8769520B2 (en) * | 2012-06-21 | 2014-07-01 | International Business Machines Corporation | Calendar aware adaptive patching of a computer program |
US9348652B2 (en) * | 2012-07-02 | 2016-05-24 | Vmware, Inc. | Multi-tenant-cloud-aggregation and application-support system |
US9419859B2 (en) * | 2012-12-04 | 2016-08-16 | Microsoft Technology Licensing, Llc | Service allocation in a distributed computing platform |
US9063905B2 (en) * | 2013-05-22 | 2015-06-23 | Steven Lloyd Baird | System and method for virtualized shared use environment with dynamic IP address injection |
US9705744B2 (en) * | 2013-07-05 | 2017-07-11 | International Business Machines Corporation | Updating hardware and software components of cloud computing environment at optimal times |
US9535924B2 (en) * | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9870268B2 (en) * | 2013-08-05 | 2018-01-16 | Amazon Technologies, Inc. | Virtual computing instance migration |
US10110506B2 (en) * | 2013-09-20 | 2018-10-23 | Oracle International Corporation | System and method for quota management in a cloud platform environment |
US9671945B2 (en) * | 2013-12-17 | 2017-06-06 | American Megatrends, Inc. | Techniques of launching virtual machine from thin client |
US9405573B2 (en) * | 2014-02-17 | 2016-08-02 | Cisco Technology, Inc. | System and method for process run-time prediction |
US9400643B2 (en) * | 2014-03-03 | 2016-07-26 | Google Inc. | Methods and systems for updating components on a computing device |
US9723064B1 (en) * | 2014-09-02 | 2017-08-01 | Amazon Technologies, Inc. | Hybrid quorum policies for durable consensus in distributed systems |
EP3198431A1 (en) * | 2014-09-24 | 2017-08-02 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US10338910B2 (en) * | 2015-01-05 | 2019-07-02 | Entit Software Llc | Multi-tenant upgrading |
US9262152B1 (en) * | 2015-01-22 | 2016-02-16 | Bank Of America Corporation | Modular system including management and deployment of software updates and revisions |
CN111404992B (zh) * | 2015-06-12 | 2023-06-27 | 微软技术许可有限责任公司 | 承租人控制的云更新 |
US9996374B2 (en) * | 2015-06-16 | 2018-06-12 | Assured Information Security, Inc. | Deployment and installation of updates in a virtual environment |
US9792110B2 (en) * | 2015-12-21 | 2017-10-17 | International Business Machines Corporation | Automatic online system upgrade |
US9696985B1 (en) * | 2016-01-06 | 2017-07-04 | International Business Machines Corporation | Patching of virtual machines within sequential time windows |
-
2015
- 2015-06-12 CN CN202010101762.6A patent/CN111404992B/zh active Active
- 2015-06-12 CN CN201510325802.4A patent/CN106302623B/zh active Active
-
2016
- 2016-06-10 EP EP16733250.1A patent/EP3308265B1/en active Active
- 2016-06-10 EP EP21183682.0A patent/EP3926469A3/en active Pending
- 2016-06-10 WO PCT/US2016/037041 patent/WO2016201340A1/en active Application Filing
- 2016-06-10 US US15/578,967 patent/US10459750B2/en active Active
-
2019
- 2019-10-28 US US16/665,904 patent/US11175943B2/en active Active
-
2021
- 2021-11-15 US US17/526,168 patent/US11868793B2/en active Active
-
2023
- 2023-11-28 US US18/521,241 patent/US20240095060A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571906A (zh) * | 2010-10-20 | 2012-07-11 | 微软公司 | 打补丁期间机器的高可用性 |
CN102750312A (zh) * | 2011-03-31 | 2012-10-24 | 微软公司 | 跨承租人移动的承租人数据的恢复 |
US8799888B1 (en) * | 2011-05-20 | 2014-08-05 | Amazon Technologies, Inc. | Updating an application |
CN103414787A (zh) * | 2013-08-28 | 2013-11-27 | 北京爱工场文化发展有限公司 | 一种基于云服务的内容公播***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111404992B (zh) | 2023-06-27 |
CN111404992A (zh) | 2020-07-10 |
EP3926469A2 (en) | 2021-12-22 |
CN106302623A (zh) | 2017-01-04 |
US11175943B2 (en) | 2021-11-16 |
WO2016201340A1 (en) | 2016-12-15 |
US20220075641A1 (en) | 2022-03-10 |
EP3308265B1 (en) | 2021-08-04 |
US20200159561A1 (en) | 2020-05-21 |
EP3308265A1 (en) | 2018-04-18 |
US10459750B2 (en) | 2019-10-29 |
US11868793B2 (en) | 2024-01-09 |
US20180136960A1 (en) | 2018-05-17 |
US20240095060A1 (en) | 2024-03-21 |
EP3926469A3 (en) | 2022-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106302623B (zh) | 承租人控制的云更新 | |
US9846595B2 (en) | Managed services coordinator | |
US11016808B2 (en) | Multi-tenant license enforcement across job requests | |
US9344521B2 (en) | Pluggable infrastructure for cloud provider selection | |
US9104498B2 (en) | Maximizing server utilization within a datacenter | |
US9466036B1 (en) | Automated reconfiguration of shared network resources | |
US20200019841A1 (en) | Neural network model for predicting usage in a hyper-converged infrastructure | |
US9596189B1 (en) | Virtual machine management | |
US9678785B1 (en) | Virtual machine resource allocation based on user feedback | |
CN116450358A (zh) | 云计算***中的用于虚拟机的资源管理 | |
US11507417B2 (en) | Job scheduling based on job execution history | |
US20150199219A1 (en) | Method and apparatus for server cluster management | |
US10356167B1 (en) | Workload profiling | |
WO2019199449A1 (en) | Deployment of services across clusters of nodes | |
US11949737B1 (en) | Allocation of server resources in remote-access computing environments | |
US11831495B2 (en) | Hierarchical cloud computing resource configuration techniques | |
US9471389B2 (en) | Dynamically tuning server placement | |
US20240039808A1 (en) | Context based meta scheduling of containerized workloads across edge devices | |
CN112860421A (zh) | 用于作业处理的方法、设备和计算机程序产品 | |
Cucinotta et al. | Virtual network functions as real-time containers in private clouds | |
US10057327B2 (en) | Controlled transfer of data over an elastic network | |
US20240039804A1 (en) | Automating secured deployment of containerized workloads on edge devices | |
CN117519958A (zh) | 一种应用部署方法、***及设备 | |
KR20170017183A (ko) | 가상 cpu를 제어하는 장치, 방법 및 컴퓨터 프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |