CN108369544A - 计算系统中延期的服务器恢复 - Google Patents

计算系统中延期的服务器恢复 Download PDF

Info

Publication number
CN108369544A
CN108369544A CN201680072913.1A CN201680072913A CN108369544A CN 108369544 A CN108369544 A CN 108369544A CN 201680072913 A CN201680072913 A CN 201680072913A CN 108369544 A CN108369544 A CN 108369544A
Authority
CN
China
Prior art keywords
host
failure
recovery
notice
response
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.)
Granted
Application number
CN201680072913.1A
Other languages
English (en)
Other versions
CN108369544B (zh
Inventor
N·艾伦
G·贾格蒂亚尼
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 CN202110693615.7A priority Critical patent/CN113391944A/zh
Publication of CN108369544A publication Critical patent/CN108369544A/zh
Application granted granted Critical
Publication of CN108369544B publication Critical patent/CN108369544B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3031Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a motherboard or an expansion card
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在本文中公开了用于延期的服务器恢复的各种技术。在一个实施例中,一种方法包括从计算系统中的主机接收故障的通知。主机正针对一个或多个用户执行一个或多个计算任务。该方法可以包括然后确定接收到的通知中的故障的恢复在主机上是否是可延期的。响应于确定接收到的通知中的故障是可延期的,该方法包括设置时间延迟,以在更晚的时间对主机执行未决的恢复操作,并且禁止计算任务到主机的附加分配。

Description

计算系统中延期的服务器恢复
背景技术
提供云计算服务的数据中心通常包括路由器、交换机、桥接器和其他物理网络设备,其经由有线或无线网络链接将大量的服务器、网络存储设备和其他类型的物理计算设备互连。单独的服务器可以托管云计算客户端可访问的一个或多个虚拟机或者其他类型的虚拟化部件。虚拟机可以根据由物理网络设备支持的一个或多个网络协议经由虚拟网络来交换消息(诸如电子邮件)。
发明内容
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
在云计算中,虚拟机可用性通常指基于请求来创建新虚拟机的能力或者特定服务器上现有虚拟机的不中断的可访问性。然而,服务器停机事件(诸如重新启动、电力周期、系统升级等)可能导致系统停机时间,并且降低虚拟机可用性。例如,用户可能常常经历在服务器重新启动期间五到甚至三十分钟的停机时间。另外,在重新启动的服务器上托管的虚拟机中的状态信息(例如,计算结果、高速缓存临时数据等)还可能在重新启动期间丢失,这导致数据或者工作成果的丢失。
所公开的技术的若干实施例涉及通过延期某些种类的服务器故障、错误或者问题来提高虚拟机可用性,并且改进虚拟机停机时间的可预测性。在某些实施例中,控制器(例如,数据中心管理器)可以使用例如传感器、代理或者其他适合的机构在立即恢复之前监测并且检测硬件和/或软件故障、错误或者问题。控制器可以然后确定单独的硬件/软件故障、错误或者问题是否要求立即恢复或者恢复可以被延期到更晚的日期/时间。可延期的硬件故障的示例可以是关于服务服务器的电源分配单元(PDU)或者架顶(TOR)路由器的控制层问题(例如,不响应于远程控制指令)。这样的控制层问题通常地不阻止PDU或者TOR路由器继续运行,而是可能影响加电/断电或者执行其他操作的以后的尝试。可延期的软件故障的示例可以包括操作系统或者设备驱动中的漏洞,其显示为防止创建和/或删除虚拟机的“使用中的文件”问题。服务器重新启动可以通常减轻或者校正这样的问题。然而,服务器重新启动还将影响不受漏洞影响但是在相同服务器上托管的其他虚拟机。所检测的可延期的故障可以被存储在服务器上的永久计算机可读存储器中,或者存在于另一存储位置并且与特定服务器相关联。
响应于确定检测故障的恢复可以被延期,控制器可以将对应于检测到的故障的特定服务器指定为对于托管附加的虚拟机不可用。在将服务器指定为不可用时,控制器还可以执行操作中的一个或多个操作,为所指定的服务器的最终恢复做准备。例如,在一个实施例中,控制器可以设置所指定的服务器可以执行重新启动、电力周期、硬件替换或者其他类型的恢复操作的时间延迟。控制器还可以继续监测正由指定的服务器执行的若干虚拟机或者其他任务。响应于检测到服务器不再托管虚拟机或者其他任务,控制器可以指示服务器执行事先安排的(多个)恢复操作而不管所设置的时间延迟。在另外的实施例中,控制器还可以指示所指定的服务器存留当前在服务器上托管的所有虚拟机的状态信息。状态信息可以存留在服务器自身上、在网络存储设备上、在控制器上或者在其他适合的存储位置。
当与常规技术相比较时,所公开的技术的若干实施例可以增加服务器的运行时间,并且改善用户体验。例如,如上文所讨论的,替代于在检测到故障、错误或者问题时立即执行服务器的恢复,服务器可以继续操作直到例如所设置的时间延迟期满,或者服务器不再托管虚拟机或者其他任务。由此,防止一个虚拟机的删除的“使用中的文件”问题将不会引起重新启动服务器,并且不会影响由其他用户访问或者使用的其他虚拟机。客户分析已经显示大多数虚拟机具有短寿命。例如,Microsoft 数据中心中超过70%的虚拟机具有24小时或更短的寿命。因此,将服务器重新启动延期甚至24小时可以显著地增加运行时间,并且改善大量的云计算客户端的用户体验。
当与常规技术相比较时,所公开的技术的若干实施例还可以增加服务器停机时间的可预测性。例如,通过延期故障的恢复(例如,使用中的文件问题),经延期的恢复可以在晚些时候与其他(多个)故障或者用户发起的操作(例如,新虚拟机的发起)组合,使得用户仅经历单个停机时间事件而不是多个停机时间事件。在另一示例中,控制器可以将通知(例如,提示、电子邮件等)提供给当前在被指定为不可用的服务器上托管的虚拟机的用户,以通知用户服务器上未决的重新启动。作为响应,用户可以通过例如将本地数据复制到远程位置、将任务移动到其他虚拟机、安排系统/应用升级以符合未决的重新启动或者执行其他适合的操作来管理即将到来的停机时间。由此,管理虚拟机停机时间的可预测性和效率相比于常规技术被改进。
附图说明
图1是图示了根据所公开的技术的实施例的、具有延期的服务器恢复的计算网络的示意图。
图2是图示了根据所公开的技术的实施例的、图1的计算网络的某些硬件/软件部件的示意图。
图3是图示了根据所公开的技术的实施例的、适用于图1的计算网络的控制器的硬件/软件部件的框图。
图4是图示了根据所公开的技术的实施例的、延期服务器恢复的过程的流程图。
图5是图示了根据所公开的技术的实施例的、分析设备故障的过程的流程图。
图6是图示了根据所公开的技术的实施例的、执行延期的恢复的过程的流程图。
图7是图示了根据所公开的技术的实施例的、组合延期的恢复的过程的流程图。
图8是适用于图1中的计算网络的某些部件的计算设备。
具体实施方式
以下描述用于数据中心或者其他适合的计算网络中的延期的服务器恢复的系统、设备、部件、模块、例程、数据结构和过程的某些实施例。在下面的描述中,包括部件的具体细节以提供对所公开的技术的某些实施例的透彻理解。相关领域的技术人员还将理解,该技术可以具有附加实施例。在没有下面参考图1-图8描述的实施例的若干细节的情况下也可以实现该技术。
如本文所使用的,术语“计算网络”通常指互连计算机网络,其具有将多个服务器或者主机连接到彼此或者连接到外部网络(即,因特网)的多个网络节点。术语“网络节点”通常指物理网络设备。示例网络节点包括路由器、交换机、集线器、桥接器、负载均衡器、安全网关或者防火墙。“主机”通常指被配置为实现例如一个或多个可视化计算设备或者部件或者其他适合的功能的物理计算设备。例如,主机可以包括具有管理程序的服务器,该管理程序被配置为支持一个或多个虚拟机或者其他适合的虚拟部件。
计算网络在概念上可以划分为在底层网络上实现的覆盖网络。“覆盖网络”通常指在底层网络之上实现并且操作的抽象网络。底层网络可以包括彼此互连并且与物理端点互连的多个物理网络节点。覆盖网络可以包括一个或多个虚拟网络。“虚拟网络”通常指覆盖网络中的底层网络的一部分的抽象。虚拟网络可以包括被称为“租户站点”的一个或多个虚拟端点,租户站点被用户或“租户”单独地使用以访问虚拟网络和相关联的计算、存储或其他合适资源。租户站点可以托管一个或多个租户端点(“TEP”),例如,虚拟机。虚拟网络可以将不同的主机上的多个TEP互连。覆盖网络中的虚拟网络节点可以通过虚拟链路连接到彼此,虚拟链路单独地对应于沿着底层网络中的一个或多个物理网络节点的一个或多个网络路由。
在云计算中,虚拟机可用性是针对令人满意的用户体验的优先级。服务器重新启动和/或其他修复常常需要从服务器的未预料的故障、错误或者问题恢复。然而,这样的恢复可能对虚拟机可用性产生严重的影响,并且导致大量的停机时间。所公开的技术的若干实施例可以通过延期针对某些类型或者类别的硬件和软件故障、错误或者问题(统称为“可延期的问题”)的服务器恢复来解决前述缺点中的至少一些。
在某些实施例中,与可延期的问题相关联的服务器可以被指定为“等待经延期的恢复”或者“不可用的”,并且到这些服务器的虚拟机的进一步的分配可以被禁止。由此,没有额外的虚拟机可以被部署在这些服务器上。同时,在不可用的服务器上已经托管的任何现有虚拟机可以继续操作,直到由例如对应的用户期满。在其他实施例中,程序化通知可以向现有的虚拟机的受影响的用户给出。通知可以通知受影响的用户例如被延期的问题和用于执行服务器恢复操作的所安排的时间点。与可延期的问题相关联的服务器可以然后通过以下来恢复,例如,在所安排的时间点处重新启动,或者基于来自受影响的用户或管理员经由例如应用程序接口的输入来重新启动。参考图1-图8,下面更详细地描述了所公开的技术的附加实施例。
图1是图示了根据所公开的技术的实施例的、具有延期的服务器恢复的计算网络100的示意图。如图1所示,计算网络100可以包括底层网络108,其将多个主机106、多个租户101和恢复控制器126互连。即使图1示出了计算网络100的特定部件,在其他实施例中,计算网络100也可以包括附加和/或不同的部件。例如,在某些实施例中,计算网络100还可以包括网络存储设备、维护管理器和/或其他适合的部件(未示出)。
如图1所示,底层网络108可以包括一个或多个网络节点112,其将多个主机106、租户101和恢复控制器126互连。在某些实施例中,主机106可以被组织为架、动作区域、组、集或者其他适合的划分。例如,在所图示的实施例中,主机106被分组为单独地被标识为第一、第二和第三主机集107a-107c的三个主机集。在所图示的实施例中,主机集107a-107c中的每一个分别操作性地耦合到对应的网络节点112a-112c,网络节点112a-112c通常被称为“架顶”或者“TOR”网络节点。TOR网络节点112a-112c可以然后操作性地耦合到附加的网络节点112,以形成计算机网络,计算机网络是允许主机106、恢复控制器126与租户101之间的通信的分层、平坦、网状或任何其他适合的类型的拓扑。在其他实施例中,多个主机集107a-107c可以共享单个网络节点112。
主机106可以单独地被配置为将计算、存储和/或其他适合的云计算服务提供到租户101。例如,如下文参考图2更详细地描述的,主机106中的一个可以基于来自租户101的请求,发起并且维护一个或多个虚拟机144(在图2中示出)。租户101可以然后利用发起的虚拟机144来执行计算、通信和/或其他适合的任务。在某些实施例中,主机106中的一个可以为多个租户101提供虚拟机144。例如,主机106'可以托管单独地对应于租户101-101b中的每一个的三个虚拟机144。在操作期间,第一租户101a可能遇到问题(例如,使用中的文件问题),该问题可以在主机106'被重新启动的情况下被恢复。然而,第二租户101b和第三租户101c可能不经历相同的使用中的文件问题。由此,如果主机106'立即重新启动,则所有第一、第二和第三租户101a-101c将经历停机时间事件,并且因此负面地影响用户体验。
根据所公开的技术的若干实施例,恢复控制器126可以被配置为在检测到这样的可延期的问题时,管理主机106的恢复。在某些实施例中,恢复控制器126可以包括操作性地耦合到底层网络108的独立式服务器、台式计算机、膝上型计算机或者其他适合的类型的计算设备。在其他实施例中,恢复控制器126可以被实现为在主机106中的一个或多个或另一服务器(未示出)上执行并且由其提供的一个或多个网络服务。下文参考图3更详细地描述了恢复控制器126的示例部件。
图2是图示了根据所公开的技术的实施例的、被实现在图1的底层网络108上的覆盖网络108'的示意图。在图2中,为了清晰起见,仅示出了图1的底层网络108的某些部件。如图2所示,第一主机106a和第二主机106b可以各自包括操作性地耦合到彼此的处理器132、存储器134和输入/输出部件136。处理器132可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器134可以包括易失性和/或非易失性介质(例如,ROM;RAM、磁盘存储介质;光学存储介质;闪存设备、和/或其他合适的存储介质)和/或被配置为存储从处理器132接收的数据以及用于处理器132的指令(例如,用于执行下面参考图4-图7讨论的方法的指令)的其他类型的计算机可读存储介质。输入/输出部件136可以包括显示器、触摸屏、键盘、鼠标、打印机、和/或被配置为接受来自操作者和/或自动软件控制器(未示出)的输入并且向操作者和/或自动软件控制器(未示出)提供输出的其他合适类型的输入/输出设备。
第一主机106a和第二主机106b可以单独地包含存储器134中由处理器132可执行的指令,使得单独的处理器132提供管理程序140(单独地被标识为第一管理程序140a和第二管理程序140b)和状态代理141(单独地被标识为第一状态代理141a和第二状态代理141b)。即使管理程序140和状态代理141被示出为分离的部件,在其他实施例中,状态代理141也可以是在对应的主机106上执行的管理程序140或者操作系统(未示出)的一部分。在另外的实施例中,状态代理141可以是独立应用。
管理程序140可以单独地被配置为生成、监测、期满和/或以其他方式管理被组织为租户站点142的一个或多个虚拟机144。例如,如图2所示,第一主机106a可以提供第一管理程序140a,其分别地管理第一租户站点142a和第二租户站点142b。第二主机106b可以提供第二管理程序140b,其分别地管理第一租户站点142a'和第二租户站点142b'。管理程序140在图2中单独地被示出为软件部件。然而,在其他实施例中,管理程序140可以是固件和/或硬件部件。租户站点142可以各自包括用于特定租户(未示出)的多个虚拟机144。例如,第一主机106a和第二主机106b可以托管用于第一租户101a(图1)的租户站点142a和142a'二者。第一主机106a和第二主机106b可以托管用于第二租户101b(图1)的租户站点142b和142b'二者。每个虚拟机144可以正在执行对应的操作系统、中间件和/或应用。
还在图2中示出,计算网络100可以包括覆盖网络108',其具有跨多个主机106将租户站点142a和142b互连的一个或多个虚拟网络146。例如,第一虚拟网络142a将第一主机106a和第二主机106b处的第一租户站点142a和142a'互连。第二虚拟网络146b将第一主机106a和第二主机106b处的第二租户站点142b和142b'互连。即使单个虚拟网络146被示出为对应于一个租户站点142,在其他实施例中,多个虚拟网络146(未示出)也可以被配置为对应于单个租户站点146。
即使虚拟机144被定位在不同的主机106上,虚拟网络146上的虚拟机144也可以经由底层网络108(图1)相互通信。虚拟网络146中的每个虚拟机的通信可以与其他虚拟网络146隔离。在某些实施例中,通过安全网关或者其他受控的方式,从一个虚拟网络146跨另一个虚拟网络的通信可以被允许。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144中的一个。因此,不同的虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括IP地址、MAC地址和/或其他适合的地址。
状态代理141可以被配置为将硬件和/或软件错误、故障或者问题的通知提供给恢复控制器126。状态代理141还可以将主机106的操作状态提供给恢复控制器126。例如,在某些实施例中,状态代理141可以将在特定主机106上当前托管的若干活动虚拟机144提供给恢复控制器126。在其他实施例中,状态代理141还可以将主机106的CPU使用率、存储容量和/或其他适合的操作参数提供给恢复控制器126。即使状态代理141在图2中被示出为主机106的部件,在其他实施例中,网络节点112(图1)和/或计算网络100的其他适合的部件也可以单独地包括通常与主机106上的那些状态代理相似的状态代理。
图3是图示了根据所公开的技术的实施例的、适用于图1和图2所示的计算网络100的恢复控制器的某些硬件/软件部件的框图。在图3中并且在本文中的其他附图中,单独的软件部件、对象、类、模块和例程可以是以C、C++、C#、Java和/或其他适合的编程语言被写作源代码的计算机程序、进程或者过程。部件可以包括但不限于:一个或多个模块、对象、类、例程、特性、过程、线程、可执行文件、库或者其他部件。部件可以是源或二进制的形式。部件可以包括在编译之前的源代码(例如,类、特性、程序、例程)、经编译的二进制单元(例如,库、可执行文件)或者在运行时实例化和使用的构件(例如,对象、过程、线程)的各方面。
系统内的部件可以在系统内采取不同的形式。作为一个示例,包括第一部件、第二部件和第三部件的系统可以但不限于包含其中第一部件是源代码的属性、第二部件是二进制编译的库并且第三部件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成对象、中间或机器代码,并且被呈现以由个人计算机、网络服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。同样,部件可能包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是僵化的软件,并且软件可以被认为是液化的硬件。仅作为一个示例,部件中的软件指令可以被烧制到可编程逻辑阵列电路,或者可以被设计为具有适当的集成电路的硬件电路。同样,硬件可以通过软件来模拟。源、中间和/或目标代码和相关联的数据的各种实施方式可以被存储在计算机存储器中,包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备、和/或除了传播信号之外的其他适合的计算机可读存储介质。
如图3所示,主机106(例如,图1的第一主机106a或者第二主机106b)可以包括状态代理141,其操作性地耦合到包含状态信息的记录162和问题记录163的主机数据库160。状态信息162可以包含计算值、操作参数或者与虚拟机144(图2)相关联的其他适合的信息的数据。例如,状态信息162可以包括计数器的累加值,计数器与虚拟机144相关联,并且被配置为对文档中的总字数进行计数。在某些实施例中,状态信息162可以暂时地被存储在主机106上的高速缓存(未示出)中。在其他实施例中,状态信息162可以被存储在主机106上的永久存储器(未示出)中。
问题记录163可以单独地包含关于由状态代理141检测到的主机106的故障、错误或者问题(被统称为“问题”)的数据。例如,在一个实施例中,问题记录163可以包含以下数据,该数据指示当管理程序107(图2)试图删除虚拟机144时,主机106上的虚拟机144遇到使用中的文件的问题。在其他实施例中,问题记录163还可以包含其他适合的硬件/软件问题的数据记录。在某些实施例中,问题记录163可以暂时地被存储在主机106上的高速缓存中。在其他实施例中,问题记录163可以被存储在主机106上的永久存储器(未示出)中。
如图3所示,状态代理141可以包括操作性地耦合到彼此的状态模块154、故障模块156和恢复模块158。即使状态代理141在图3中被示出为具有前述模块,但是在其他实施例中,前述模块中的至少一个可以是主机106的其他硬件/软件部件的一部分。例如,在某些实施例中,恢复模块158可以是主机106上的操作系统(未示出)或者管理程序107(图2)的一部分。在其他实施例中,恢复模块158可以是独立应用。在另外的实施例中,状态代理141还可以包括输入、输出或者其他适合的类型的模块。
状态模块154可以被配置为监测主机106的状态172,并且将状态172经由例如图2的覆盖网络108'和图1的底层网络108传送到恢复控制器126。在某些实施例中,状态模块154可以包括一个或多个硬件部件,诸如例如被配置为测量主机106的操作温度的热耦合。在其他实施例中,状态模块154可以包括一个或多个软件传感器,诸如例如被配置为监测当前由主机106托管的若干虚拟机144。在另外的实施例中,状态模块154可以包括前述硬件和软件部件的组合。
故障模块156可以被配置为监测检测到的问题173,并将其向恢复控制器126传送。在某些实施例中,故障模块156可以包括被动接口,被配置为随着问题出现而接收问题的通知。在其他实施例中,故障模块156还可以包括主动部件,被配置为主动地探查主机106的内部和/或外围部件。例如,故障模块156可以被配置为将探查信号向例如对应的TOR网络节点112传送。如果从TOR网络节点112没有接收到目标响应,则故障模块156可以指示问题关于TOR网络节点112而存在。在另外的实施例中,故障模块156可以包括被动接口和主动部件的组合。
恢复模块158可以被配置为从恢复控制器126接收指令174。在一个实施例中,指令174可以包括表示累加的计时器值的数据,累加的计时器值的期满将导致主机106上重新启动或者其他适合的类型的恢复操作的发起。响应于这样的指令174,恢复模块158可以被配置为利用累加的计时器值将计时器实例化并且发起计时器的递减计数(或者递增计数)。在另一实施例中,指令174可以包括表示立即发起重新启动或者其他适合的类型的恢复操作的执行的命令的数据。作为响应,恢复模块158可以使得主机106通过例如将重新启动命令向主机106的操作系统传送而重新启动。在另外的实施例中,恢复模块158还可以被配置为响应于对应的指令174,执行计时器重置、计时器调节或其他适合的操作。
如图3所示,恢复控制器126可以包括处理器131,其操作性地耦合到包含状态信息记录162、问题记录163和分配记录165的数据库150。状态信息162和问题记录163可以通常与上文参考主机106所描述的那些类似,除了具有相关联的主机106的指示。分配记录165可以包含表示以下各项中的一项或多项的数据:(i)分配给个体主机106的虚拟机144的数目;(ii)被指定为不可用于接受虚拟机144的附加分配的主机106的数目;或者(iii)用于分配计算网络100(或其分部)中的附加的虚拟机144的剩余容量。
还如图3所示,处理器131可以执行指令,以提供接口部件133和处理部件135。接口部件133可以被配置为从主机106接收状态172和问题173,并且向主机106传送指令174。接口部件133还可以被配置为使得接收到的问题173作为数据库150中的问题记录173。在某些实施例中,接口部件133可以包括网络接口驱动。在其他实施例中,接口部件133还可以包括应用编程接口和/或其他适合的部件。
处理部件135可以被配置为基于接收到的状态通知172和/或问题通知173来管理主机106的延期的恢复。如图3所示,处理部件135可以包括操作性地耦合到彼此的分析模块164、分配模块166和控制模块168。分析模块164可以被配置为确定接收到的问题通知173是与可延期的问题有关,还是要求立即恢复操作。在一个实施例中,分析模块164可以基于由例如管理员所提供的规则集来确定问题是可延期的。在其他实施例中,分析模块164可以基于管理员输入或者其他适合的准则来确定问题是否是可延期的。下文参考图5更详细地描述了分析问题的示例实施例。
分配模块166可以被配置为响应于由分析模块164确定问题通知173与可延迟的问题有关,将主机106指定为不可用于虚拟机的进一步的分配。分配模块166还可以被配置为更新关于不可用性指定的分配记录165,和/或基于不可用性指定来更新计算网络100(或其分部)中的当前可用容量。
在某些实施例中,分配模块166可以被配置为确定计算网络100(或其分部)中的当前可用容量是否小于管理员选择的阈值。响应于确定当前可用容量小于阈值,甚至当问题是可延期的问题时,分配模块166可以阻止将主机106指定为不可用。相反,在一个实施例中,分配模块166可以使得控制模块168生成用于对主机106立即执行恢复操作的的命令。在另一实施例中,分配模块166可以将主机106指定为可用,但是仅在计算网络100(或其分部)中的特定容量(例如,85%、90%、95%或其他适合的百分比)已经耗尽时。
控制模块168被配置为生成一个或多个指令174,并且使得接口部件133向主机106传送一个或多个指令174。在将主机106指定为不可用时,控制模块168可以执行以下各项中的一项或多项:
·计算日期/时间,在该日期/时间处,重新启动或者其他适合的类型的恢复操作的执行将在主机106处发起;
·生成在主机106上存留当前状态信息162的命令;
·生成在主机106上将接收到的问题173存留作为问题记录163的命令;或
·生成从主机106检索当前状态信息162并且永久地将检索到的状态信息162存储在恢复控制器上的数据库150中的命令。
在某些实施例中,计算日期/时间可以考虑其他所安排的维护操作,例如,针对主机106上即将到来的硬件和/或软件升级的所安排的日期/时间。
在其他实施例中,计算日期/时间(或者时间延迟)可以考虑先前安排的维护修复、主机106上的意外的停机时间事件或者其他适合的信息。在另外的实施例中,计算日期/时间还可以基于租户101(图1)的相对优先级。例如,当问题与具有比第二租户101b(图1)更高的优先级的第一租户101a(图1)相关联时,相比问题与第二租户101b相关联的情况,所计算的日期/时间可以具有更长的延迟。另一方面,如果第一租户101a具有比第二租户101b更低的优先级,相比问题与第二租户101b相关联的情况,所计算的日期/时间则可以包括相同或者更短的延迟。租户101的优先级可以基于订阅级别或者其他适合的准则。在又一的实施例中,附加于或者替代所安排的维护、意外的停机时间事件、用户优先级或者其他适合的参数,计算日期/时间还可以基于计算系统中的容量、使用率或虚拟机周转率。
另一方面,如果分析模块164确定问题要求立即恢复操作(例如,重新启动),则控制模块168可以生成命令,并且将命令向主机106传送,以立即发起重新启动或其他适合的类型的恢复操作。虽然在图3中未示出,但是接口部件131还可以被配置为从例如管理员接收输入,以手动地使得控制模块168生成并且传送命令,以立即发起重新启动或其他适合的类型的恢复操作。
在操作中,状态代理141的故障模块156可以连续地、周期性地或者以其他适合的方式监测关于主机106的操作的任何问题。响应于检测到的问题,故障模块156可以生成问题通知173,并且将问题通知173向恢复控制器126传送。在接收到时,恢复控制器126的接口部件133将问题通知173传达到处理部件135,并且可选地将接收到的问题通知173存储在数据库150中。
处理部件135的分析模块164可以然后基于例如管理员提供的规则集,确定接收到的问题通知173是否与可延期的问题有关。响应于确定接收到的问题通知173与可延期的问题有关,在某些实施例中,分配模块166可以将主机106指定为不可用于虚拟机144的进一步的分配。分配模块166还可以使得控制模块168生成包含关于延迟的计时器(例如,累加的时间值)的数据的指令174,延迟的计时器的期满将使得主机106执行重新启动或其他适合的类型的恢复操作。
在某些实施例中,状态代理141的状态模块154还可以监测主机106的操作状态,并且向恢复控制器126传送状态通知172。在某些实施例中,状态通知172可以包括指示当前在主机106上托管的虚拟机144的数目。分析模块164可以然后确定当前在主机106上托管的虚拟机144的数目是否小于阈值(例如,二、一或零)。响应于确定当前在主机106上托管的虚拟机144的数目小于阈值,分析模块164可以向分配模块166指示主机106准备好立即执行恢复操作。作为响应,分配模块166可以使得控制模块168生成另一指令174,以命令主机106立即发起重新启动或其他适合的类型的恢复操作的执行。
图4是图示了根据所公开的技术的实施例的、延期服务器恢复的过程200的流程图。尽管过程200关于图1和图2的计算系统100和图3的硬件/软件部件来描述,在其他实施例中,过程200也可以被实现在其他适合的系统中。如图4所示,过程200包括在阶段201从主机106(图1)接收操作问题的通知。过程200还可以包括在阶段202分析操作问题,以确定操作问题是否是可延期的问题。在某些实施例中,分析操作问题可以基于标识哪个问题或者哪个类别的问题可以被延期的规则集。在其他实施例中,前述分析可以基于管理员输入或者其他适合的准则。下文参考图5更详细地描述分析操作问题的示例实施例。
在阶段204,响应于确定操作问题可以被延期,过程200可以包括在阶段206将主机指定为“不可用”,并且在阶段210,执行经延期的恢复。下文参考图6更详细地描述了执行主机的经延期的恢复的示例实施例。否则,过程200可以包括在阶段208发起主机的立即恢复。
图5是图示了根据所公开的技术的实施例的、分析操作问题的过程的流程图。如图5所示,过程202可以包括决策阶段212,以确定操作问题是否是虚拟机级别的问题。响应于确定操作问题是虚拟机级别的问题,过程202可以包括:使得主机执行虚拟机级别的恢复操作,诸如例如结束现有的虚拟机、发起新虚拟机和/或其他适合的操作。响应于确定操作问题不是虚拟机级别的问题,过程202可以包括另一决策阶段216,以确定主机的立即恢复是否被保证。在一个实施例中,当操作问题实质上损害主机的基本功能时,主机的立即恢复被保证。例如,主机已经遭受物理存储故障。在其他实施例中,主机的立即恢复可以基于管理员提供的规则集或者其他适合的准则而被保证。
响应于确定主机的立即恢复被保证,过程202可以包括在阶段218处指示不可延期的问题。响应于确定主机的立即恢复未被保证,过程202可以可选地包括另一决策阶段216,以确定用于指定不可用的主机的限制是否达到。在一个实施例中,用于指定不可用的主机的限制可以基于计算网络100(图1)的可用容量。在其他实施例中,用于指定不可用的主机的限制可以基于使用率的百分比或者计算网络100的其他适合的参数。响应于确定达到用于指定不可用的主机的限制,过程202可以回到阶段218处指示不可延期的问题。否则,过程202可以包括在阶段220处指示可延期的问题。
图6是图示了根据所公开的技术的实施例的、执行延期的恢复的过程210的流程图。如图6所示,过程210可以包括执行以下各项中的一项或多项:在阶段222处调节虚拟机到主机的分配;在阶段224处发起状态信息的存留;或者在阶段226处通知用户主机上的虚拟机。在一个实施例中,调节虚拟机的分配可以包括:防止将虚拟机进一步分配到主机,并且设置用于执行恢复操作的延迟计时器。在其他实施例中,主机可以与低分配类相关联,使得另外的虚拟机不被分配到主机,直到例如计算网络的可用容量低于预设阈值。
在某些实施例中,发起状态信息的存留可以包括使得主机将状态信息永久地存储在主机上。在其他实施例中,发起状态信息的存留可以包括从主机检索状态信息,并且将状态信息永久地存储在恢复控制器126上(图1)或者其他适合的存储位置。在一个实施例中,通知用户可以包括向当前使用在主机上托管的虚拟机的用户发送电子邮件。在其他实施例中,通知用户还可以包括使用桌面通知、简单文本消息或者其他适合的消息技术。
过程210还可以包括在阶段228处监测服务器状态。服务器状态可以包括虚拟机的当前数目、CPU使用率、存储器使用和/或其他适合的参数。过程200可以然后包括决策阶段230,以确定由主机托管的虚拟机的数目是否小于预设阈值(例如,二、一或零)。响应于确定由主机托管的虚拟机的数目小于预设阈值,过程210包括使得主机在阶段232处发起立即恢复,而不管延迟计时器的期满。否则,过程210包括另一决策阶段231,以确定所设置的延迟计时器是否已经期满。响应于确定所设置的延迟计时器已经期满,过程210行进到阶段232处,发起立即恢复;否则,过程210回到阶段228处监测服务器状态。
图7是图示了根据所公开的技术的实施例的、组合经延期的恢复的过程240的流程图。如图7所示,过程240可以包括在阶段241处从主机接收新问题的通知。过程240可以然后包括决策阶段242,以确定主机是否与一个或多个预先存在的问题或所安排的维护操作(统称为“现有问题”)相关联。响应于确定主机与一个或多个现有问题相关联,过程240可以包括另一决策阶段244,以确定新问题是否可以与任何现有问题组合。
在某些实施例中,当单个恢复操作可以减轻或至少部分地解决新问题和现有问题时,新问题可以与现有问题组合。例如,新问题(例如,使用中的文件问题)和现有问题(例如,操作系统升级)二者都可以要求重新启动。可组合的现有问题的其他示例可以包括,特别地,计划的或未计划的硬件维护、硬件故障、电力故障、操作系统崩溃、用户更新(例如,调整大小虚拟机),其导致虚拟机的删除和重新创建。
在其他实施例中,例如,基于对应的恢复操作,新问题和现有问题可以被分配优先级或者优先权。例如,要求侵入性硬件修复和长停机时间的问题(例如,要求操纵主机的存储器、处理器或其他硬件部件的硬件问题)可以被分配比仅要求重新启动的另一问题(例如,软件组织)更高的优先级。因此,在一种情况下,如果新问题具有比现有问题更高的优先级,则新问题可以替换现有问题。在另一情况下,如果新问题具有比现有问题更低的优先级,那么新问题可以被要求更昂贵的恢复操作的现有问题纳入。在另外的实施例中,基于管理员输入或者其他适合的准则,新问题可以与现有问题组合。
响应于确定新问题可以与现有问题组合,过程240包括通过例如设置用于新问题和现有问题二者的延迟计时器,在阶段246处将新问题和现有问题组合。响应于确定新问题不能与现有问题组合,过程240包括在阶段248处对新问题进行处理,其示例实施例在上文中参考图4-图6更详细地描述。
图8是适用于图1中的计算网络100的某些部件的计算设备300。例如,计算设备300可以适用于图1的主机106或者标签服务器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。如图8所示,操作系统320可以包括用于管理一个或多个虚拟机144的管理程序140。所描述的基本配置302在图8中由内部虚线内的那些部件示出。
计算设备300可以具有附加的特征或功能以及附加的接口,以支持在基本配置302和任何其他设备和接口之间的通信。例如,总线/接口控制器330可以用于支持经由存储接口总线334的基本配置302和一个或多个数据存储设备332之间的通信。数据存储设备332可以是可移除存储设备336、不可移除的存储设备338或其组合。可移除存储设备和不可移除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备、诸如压缩盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播的信号和通信介质。
系统存储器306、可移除存储设备336和不可移除存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储所需信息并且可以由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播的信号和通信介质。
计算设备300还可以包括用于支持经由总线/接口控制器330的从各种接口设备(例如,输出设备342、外围设备接口344和通信设备346)到基本配置302的通信的接口总线340。示例输出设备342包括图形处理单元348和音频处理单元350,其可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器的各种外部设备通信。示例性外围设备接口344包括串行接口控制器354或并行接口控制器356,其可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)的外部设备通信。示例通信设备346包括网络控制器360,其可以被布置为支持经由一个或多个通信端口364通过网络通信链路的与一个或多个其他计算设备362的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以通过计算机可读指令、数据结构、程序模块或调制数据信号(例如载波或其他传输机制)中的其他数据来实现,并且可以包括任何信息传递介质。“调制的数据信号”可以是以能够在信号中编码信息的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质以及诸如声学、射频(RF)、微波、红外(IR)和其他无线介质的无线介质。如本文中所使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备300可以被实现为小型便携式(或移动)电子设备的一部分,电子设备诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络手表设备、个人头戴式耳机设备、专用设备、或包括任何上述功能的混合设备。计算设备300还可以被实现为包括膝上型计算机和非膝上型计算机配置二者的个人计算机。
上文已经出于说明的目的描述了本技术的具体实施例。然而,在不脱离前述公开的情况下可以进行各种修改。另外,除了或替代其他实施例的元件,一个实施例的很多元件可以与其他实施例组合。因此,除了所附权利要求之外,本技术不受限制。

Claims (10)

1.一种由计算系统中的计算设备执行的方法,所述计算系统具有由计算机网络互连的多个主机,所述方法包括:
从所述计算系统中的主机接收故障的通知,所述主机针对一个或多个用户执行一个或多个计算任务;
确定接收到的所述通知中的所述故障的恢复在所述主机上是否是可延期的;以及
响应于确定接收到的所述通知中的所述故障是可延期的,
设置在更晚的时间对所述主机执行恢复操作的时间延迟;以及
禁止计算任务到所述主机的附加分配。
2.根据权利要求1所述的方法,还包括响应于确定接收到的所述通知中的所述故障是可延期的,将指令传送到所述主机,以永久地存储与当前由所述主机执行的所述一个或多个计算任务有关的状态信息。
3.根据权利要求1所述的方法,还包括响应于确定接收到的所述通知中的所述故障不是可延期的,将指令传送到所述主机,以用于立即对所述主机执行恢复操作。
4.根据权利要求1所述的方法,还包括在设置所述时间延迟之后,通知所述一个或多个用户未决的所述恢复操作和所设置的所述时间延迟,从所述一个或多个用户接收输入,并且当所设置的所述时间延迟未期满时,基于接收到的所述输入而发起所述主机的立即恢复。
5.根据权利要求1所述的方法,还包括:
确定在所述更晚的时间对所述主机执行未决的所述恢复操作的所设置的所述时间延迟是否期满;以及
响应于确定所设置的所述时间延迟期满,将指令传送到所述主机,以用于对所述主机执行未决的所述恢复操作。
6.根据权利要求1所述的方法,还包括:
监测所述主机当前执行的所述计算任务的数目;以及
响应于确定所述主机当前未执行任何计算任务,即使所设置的所述时间延迟未期满,也传送用于对所述主机执行未决的所述恢复操作的指令。
7.根据权利要求1所述的方法,还包括:
响应于确定接收到的所述通知中的所述故障是可延期的,
确定具有未决的恢复操作的主机的总数目是否超过阈值;以及
响应于具有未决的恢复操作的主机的所述总数目不超过所述阈值,
设置在更晚的时间对所述主机执行未决的所述恢复操作的所述时间延迟;以及
禁止计算任务到所述主机的附加分配。
8.根据权利要求1所述的方法,还包括:
响应于确定接收到的所述通知中的所述故障是可延期的,
确定具有未决的恢复操作的主机的总数目是否超过阈值;以及
响应于具有未决的恢复操作的主机的所述总数目超过所述阈值,将指令传送到所述主机以用于立即对所述主机执行恢复操作。
9.根据权利要求7或8所述的方法,还包括:
通过以下来确定所述阈值:
基于用户输入,利用静态值设置所述阈值,或者
基于所述计算系统的容量或使用率中的一项或多项,动态地计算所述阈值。
10.根据权利要求1所述的方法,其中:
所述故障的所述通知是第一故障的第一通知;
所述方法还包括:
从所述计算系统中的所述主机接收第二故障的第二通知、意外的停机时间事件的通知或者计划的维护事件;
确定所述第一故障的恢复与所述第二故障的恢复、所述意外的停机时间事件或者所述计划的维护事件是否是可组合的;以及
响应于确定所述第一故障的恢复与所述第二故障的恢复、所述意外的停机时间事件或者所述计划的维护事件是可组合的,连同所述第二故障的恢复、所述意外的停机时间事件或者所述计划的维护事件一起执行所述第一故障的恢复。
CN201680072913.1A 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备 Active CN108369544B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110693615.7A CN113391944A (zh) 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662276312P 2016-01-08 2016-01-08
US62/276,312 2016-01-08
US15/067,156 2016-03-10
US15/067,156 US10007586B2 (en) 2016-01-08 2016-03-10 Deferred server recovery in computing systems
PCT/US2016/069357 WO2017120106A1 (en) 2016-01-08 2016-12-29 Deferred server recovery in computing systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110693615.7A Division CN113391944A (zh) 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备

Publications (2)

Publication Number Publication Date
CN108369544A true CN108369544A (zh) 2018-08-03
CN108369544B CN108369544B (zh) 2021-06-22

Family

ID=57822136

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110693615.7A Pending CN113391944A (zh) 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备
CN201680072913.1A Active CN108369544B (zh) 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110693615.7A Pending CN113391944A (zh) 2016-01-08 2016-12-29 计算系统中延期的服务器恢复方法和设备

Country Status (4)

Country Link
US (2) US10007586B2 (zh)
EP (1) EP3400528B1 (zh)
CN (2) CN113391944A (zh)
WO (1) WO2017120106A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928714A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 一种服务异常处理方法、装置和计算设备
CN113391944A (zh) * 2016-01-08 2021-09-14 微软技术许可有限责任公司 计算系统中延期的服务器恢复方法和设备

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162698B2 (en) 2016-03-25 2018-12-25 Dropbox, Inc. System and method for automated issue remediation for information technology infrastructure
US11010823B2 (en) * 2017-07-28 2021-05-18 Citrix Systems, Inc. Connector leasing for long-running software operations
KR102429433B1 (ko) * 2018-01-18 2022-08-04 삼성전자주식회사 영상 표시 장치 및 그 구동 방법
US11003538B2 (en) * 2019-01-17 2021-05-11 EMC IP Holding Company LLC Automatically configuring boot order in recovery operations
US11962501B2 (en) 2020-02-25 2024-04-16 Sunder Networks Corporation Extensible control plane for network management in a virtual infrastructure environment
CN111641716B (zh) * 2020-06-01 2023-05-02 第四范式(北京)技术有限公司 参数服务器的自愈方法、参数服务器及参数服务系统
KR20220099641A (ko) * 2021-01-07 2022-07-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11582327B1 (en) 2021-10-21 2023-02-14 Citrix Systems, Inc. Dynamically coordinated service maintenance operations and adaptive service polling for microservices

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346460A (zh) * 2011-05-27 2012-02-08 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
US20120331340A1 (en) * 2011-06-27 2012-12-27 Ibm Corporation Method and Arrangement for Fault Handling in a Distributed IT Environment
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
CN103513960A (zh) * 2012-06-15 2014-01-15 国际商业机器公司 促进事务重复中止之后的事务完成的方法和计算机系统
CN103744714A (zh) * 2011-12-31 2014-04-23 华茂云天科技(北京)有限公司 基于云计算的虚拟机管理平台
US20140281700A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Coordinating fault recovery in a distributed system
CN104854563A (zh) * 2012-09-20 2015-08-19 亚马逊技术有限公司 资源使用的自动分析
CN105190622A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 用于分布式数据库系统的快速崩溃恢复
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216258B2 (en) 2002-05-17 2007-05-08 Xiotech Corporation Method and apparatus for recovering from a non-fatal fault during background operations
US7730489B1 (en) 2003-12-10 2010-06-01 Oracle America, Inc. Horizontally scalable and reliable distributed transaction management in a clustered application server environment
CN100464528C (zh) 2006-11-27 2009-02-25 华为技术有限公司 一种避免故障恢复后出现环路的方法和系统
US7631169B2 (en) 2007-02-02 2009-12-08 International Business Machines Corporation Fault recovery on a massively parallel computer system to handle node failures without ending an executing job
US20090193476A1 (en) 2008-01-28 2009-07-30 Thomson Licensing Method for live transmission of content with a view to defered recovery in P2P mode after division, and control device and associated equipment
US8495261B2 (en) * 2008-12-12 2013-07-23 International Business Machines Corporation Redispatching suspended tasks after completion of I/O operations absent I/O interrupts
US8239739B2 (en) 2009-02-03 2012-08-07 Cisco Technology, Inc. Systems and methods of deferred error recovery
JP5672304B2 (ja) 2010-01-04 2015-02-18 日本電気株式会社 障害リカバリのための方法、分散システム、およびコンピュータプログラム
US9170892B2 (en) * 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US8880811B2 (en) * 2011-06-27 2014-11-04 Intel Mobile Communications GmbH Data processing device and data processing arrangement for accelerating buffer synchronization
US8843935B2 (en) 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
CN104937546B (zh) * 2012-10-12 2018-01-23 思杰系统有限公司 用于根据重启调度执行机器重启的方法和装置
US9442793B2 (en) 2013-07-23 2016-09-13 Qualcomm Incorporated Robust hardware/software error recovery system
US9280430B2 (en) 2014-05-13 2016-03-08 Netapp, Inc. Deferred replication of recovery information at site switchover
US10007586B2 (en) * 2016-01-08 2018-06-26 Microsoft Technology Licensing, Llc Deferred server recovery in computing systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
CN102346460A (zh) * 2011-05-27 2012-02-08 运软网络科技(上海)有限公司 一种基于事务的服务控制系统及其控制方法
US20120331340A1 (en) * 2011-06-27 2012-12-27 Ibm Corporation Method and Arrangement for Fault Handling in a Distributed IT Environment
CN103744714A (zh) * 2011-12-31 2014-04-23 华茂云天科技(北京)有限公司 基于云计算的虚拟机管理平台
CN102662751A (zh) * 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种提高基于热迁移虚拟机系统可用性的方法
CN103513960A (zh) * 2012-06-15 2014-01-15 国际商业机器公司 促进事务重复中止之后的事务完成的方法和计算机系统
CN104854563A (zh) * 2012-09-20 2015-08-19 亚马逊技术有限公司 资源使用的自动分析
US20140281700A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Coordinating fault recovery in a distributed system
CN105190622A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 用于分布式数据库系统的快速崩溃恢复
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391944A (zh) * 2016-01-08 2021-09-14 微软技术许可有限责任公司 计算系统中延期的服务器恢复方法和设备
CN110928714A (zh) * 2018-09-19 2020-03-27 阿里巴巴集团控股有限公司 一种服务异常处理方法、装置和计算设备

Also Published As

Publication number Publication date
CN108369544B (zh) 2021-06-22
US10007586B2 (en) 2018-06-26
US10810096B2 (en) 2020-10-20
EP3400528B1 (en) 2019-10-09
US20180267872A1 (en) 2018-09-20
WO2017120106A1 (en) 2017-07-13
US20170199795A1 (en) 2017-07-13
CN113391944A (zh) 2021-09-14
EP3400528A1 (en) 2018-11-14

Similar Documents

Publication Publication Date Title
CN108369544A (zh) 计算系统中延期的服务器恢复
US10044551B2 (en) Secure cloud management agent
US10353790B1 (en) Disaster recovery rehearsals
CN1770707B (zh) 计算机簇中基于法定成员数关无响应服务器的装置和方法
CN110224871A (zh) 一种Redis集群的高可用方法及装置
US11210150B1 (en) Cloud infrastructure backup system
US11995100B2 (en) System and method for highly available database service
US10884845B2 (en) Increasing processing capacity of processor cores during initial program load processing
US20180082066A1 (en) Secure data erasure in hyperscale computing systems
JP5632820B2 (ja) 広域分散構成変更システム
US10884818B2 (en) Increasing processing capacity of virtual machines
US11218378B1 (en) Cluser-aware networking fabric update system
US11734038B1 (en) Multiple simultaneous volume attachments for live migration between cloud regions and edge locations
US11573839B1 (en) Dynamic scheduling for live migration between cloud regions and edge locations
US8819481B2 (en) Managing storage providers in a clustered appliance environment
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US11947431B1 (en) Replication data facility failure detection and failover automation
US10929250B2 (en) Method and system for reliably restoring virtual machines
CN114731326B (zh) 区块链系统、程序及网络连接装置
US20240126632A1 (en) Automated remediation of issues arising in a data management storage solution
US20240126636A1 (en) Auto-healing service for intelligent data infrastructure
JP2022007301A (ja) 復旧制御装置及び復旧制御方法
CN112882771A (zh) 应用系统的服务器切换方法及装置、存储介质及电子设备

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