CN107743618A - 用于数据中心环境检查点设置的技术 - Google Patents
用于数据中心环境检查点设置的技术 Download PDFInfo
- Publication number
- CN107743618A CN107743618A CN201680036762.4A CN201680036762A CN107743618A CN 107743618 A CN107743618 A CN 107743618A CN 201680036762 A CN201680036762 A CN 201680036762A CN 107743618 A CN107743618 A CN 107743618A
- Authority
- CN
- China
- Prior art keywords
- calculate node
- node
- data
- checkpoint
- checkpointing
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于环境检查点设置的技术包括通信耦合到一个或多个工作计算节点的统筹节点。统筹节点配置成通过向已经向统筹节点登记的一个或多个工作计算节点中的每一个传输检查点初始化信号来管控环境检查点设置事件。每一个工作计算节点配置成暂停和缓冲任何目前执行的应用,保存检查点设置数据(一个或多个应用中的每一个的执行状态)并且向统筹节点传输检查点设置数据。描述和要求保护其它实施例。
Description
相关美国专利申请的交叉引用
本申请要求享有对2015年6月24日提交的题为“TECHNOLOGIES FOR DATA CENTERENVIRONMENT CHECKPOINTING”的美国实用新型专利申请序列号14/748,650的优先权。
背景技术
诸如高性能计算(HPC)和云计算环境之类的许多大规模计算环境可以合并分布式或多层级应用和工作载荷。换言之,工作载荷的多于一个实例可以同时跨多个应用和/或计算设备(例如服务器)执行。崩溃或在处理这样的分布式工作载荷的进程中发生的其它错误可能导致应用状态的丢失并且因而可能要求重复大量的计算工作。因此,大规模计算环境中的崩溃可能代价相当高和耗时。
一些HPC和云计算环境支持基于软件的应用检查点设置。典型的应用检查点设置解决方案纯粹是基于软件的,并且允许计算环境存储运行应用、虚拟机或非分布式或单层级计算环境中的工作载荷的状态的周期性快照(即检查点)。基于所保存的检查点,可以从所保存的检查点的状态开始重播或继续进行被暂停或中断的应用,这可以允许更快或不太昂贵的崩溃回复。然而,软件检查点设置支持可能要求针对每一个所支持的应用和/或操作系统而再加工检查点设置软件。另外,这样的基于软件的检查点设置解决方案(例如超级监督器、虚拟机监视器等)典型地取决于单层级或非分布式环境的各种因素,诸如厂商、操作系统、虚拟机类型、应用等。
附图说明
通过示例的方式而不是通过限制的方式在附图中图示本文所描述的概念。为了图示的简单和清楚,在图中图示的元件未必按照比例绘制。在被视为适当的情况下,已经在各图之中重复参考标记以指示对应或类似的元件。
图1是用于支持数据中心环境检查点设置的系统的至少一个实施例的简化框图,所述系统包括统筹节点和工作计算节点;
图2是图1的系统的计算节点的至少一个实施例的简化框图;
图3是可以由图1的统筹节点建立的环境的至少一个实施例的简化框图;
图4是可以由图2的附加计算节点中的至少一个建立的环境的至少一个环境的简化框图;
图5是可以由图4的工作计算节点中的一个或多个执行的用于初始化分布式应用的方法的至少一个实施例的简化流程图;
图6是可以由图3的统筹节点执行的用于管控环境检查点设置事件的方法的至少一个实施例的简化流程图;
图7是可以由图4的工作计算节点中的一个或多个执行的用于执行检查点设置事件的方法的至少一个实施例的简化流程图;以及
图8是可以由图4的工作计算节点中的一个或多个执行的用于执行环境恢复事件的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念容许各种修改和替换形式,但是已经通过示例的方式在附图中示出其具体实施例,并且将在本文中对其进行详细描述。然而,应当理解到,不存在将本公开的概念限制到所公开的特定形式的意图,而是相反,意图是覆盖与本公开和随附权利要求一致的所有修改、等同物和替换物。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以或可以不必包括该特定特征、结构或特性。而且,这样的短语未必都是指相同的实施例。另外,当结合实施例描述特定特征、结构或特性时,主张结合其它实施例实现这样的特征、结构或特性在本领域技术人员的知识内,无论是否进行明确描述。此外,应当领会到,以“A、B和C中的至少一个”的形式的列表中所包括的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。
在一些情况下,可以在硬件、固件、软件或其任何组合中实现所公开的实施例。所公开的实施例还可以实现为由一个或多个暂时性或非暂时性机器可读(例如计算机可读)存储介质承载或存储在其上的指令,所述指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为任何存储设备、机构或用于以由机器可读的形式存储或传输信息的其它物理结构(例如易失性或非易失性存储器、介质盘或其它介质设备)。
在图中,可能以特定布置和/或次序示出一些结构或方法特征。然而,应当领会到,这样的特定布置和/或次序可能不是必需的。而是,在一些实施例中,这样的特征可以以与说明性图中所示出的不同的方式和/或次序布置。此外,结构或方法特征在特定图中的包括不意在暗示这样的特征在所有的实施例中都是必需的,并且在一些实施例中可以不被包括或可以与其它特征组合。
现在参照图1,在说明性实施例中,用于数据中心环境检查点设置的系统100包括经由计算环境114中的背板管理控制器112通信耦合的多个计算节点102。所述多个计算节点102中的每一个能够执行一个或多个应用或服务并且对检查点设置事件进行响应。说明性计算节点102包括用于管理资源(例如中央处理单元(CPU)资源、存储资源、网络资源)和/或跨向统筹节点104登记的工作计算节点110(例如,说明性地,计算节点106、108)分布工作载荷的统筹节点104。说明性工作计算节点110包括第一计算节点(其被指派为计算节点(1)106)和第二计算节点(其被指派为计算节点(N)108)(即工作计算节点110中的“第N”计算节点,其中“N”是正整数并且指派向统筹节点104登记的一个或多个附加计算节点110)。
所述多个计算节点102中的每一个能够执行一个或多个应用,并且包括能够支持检查点设置的硬件(即硬件辅助的检查点设置支持)。硬件检查点设置支持可以允许相比于仅软件实现方式的改进的检查点设置性能、可靠性和可缩放性。此外,由于硬件检查点设置可以对执行应用是透明的,因此可以为现有应用提供检查点设置支持而不要求底层软件的再加工(例如修改代码、重编译代码等)。
统筹节点104附加地配置成管控环境检查点设置事件。为此,在使用中,统筹节点104向工作计算节点110提供经由背板管理控制器112分布的检查点初始化信号。接收检查点初始化信号的工作计算节点110中的每一个暂停目前在对应的工作计算节点110上运行的本地应用(即处理进程、线程、虚拟机等的工作载荷)的执行,使用硬件检查点支持来原子形式地(atomically)保存被暂停的应用的状态(即应用检查点设置数据),并且向统筹节点104传输回应用检查点设置数据。统筹节点104然后整合从工作计算节点110中的每一个接收的应用检查点设置数据,并且当已经从所有工作计算节点110接收到应用检查点设置数据后,向工作计算节点110提供检查点完成信号以向工作计算节点110指示它们可以继续进行之前暂停的应用的执行。
虽然将计算节点102中的一个指派为统筹节点104,但是应当领会到,计算环境114的工作计算节点110中的任何一个(即说明性地,计算节点106或计算节点108)可以能够作为统筹节点104来执行,诸如在所指派的统筹节点104故障的情况下。照此,计算环境114的任何计算节点102可以被指派为“统筹”节点,并且在随后描述中这样称谓。
在一些实施例中,所述多个计算节点102和背板管理控制器112(即计算环境114)可以配置在物理外壳中,所述物理外壳促进计算节点102与背板管理控制器112之间的通信使能连接。例如,物理外壳可以是机架安装配置中的机架(即计算节点102是机架安装的服务器)、刀片式服务器配置中的刀片式服务器底盘(即计算节点102是刀片式服务器),或者能够促进计算节点102与背板管理控制器112之间的通信使能连接的任何其它类型的物理外壳。因此,计算环境114可以附加地包括各种其它的组件,诸如电源、风扇等,本文为了描述的清楚而未图示这些其它的组件。然而,应当领会到,在一些实施例中,进程和/或工作载荷分布可以不被自包含到仅机架上或底盘中的计算节点102,诸如例如在交叉机架统筹或交叉云统筹中。在这样的实施例中,计算环境114可以涵盖与交叉机架统筹或交叉云统筹相关联的各种网络设备和计算节点102。
背板管理控制器112可以体现为能够执行本文所描述的功能的任何类型的电路和/或组件,诸如壳体管理控制器(EMC)、基板管理控制器(BMC)、底盘管理控制器(CMC)或能够促进跨计算节点102(诸如在统筹节点104与工作计算节点110之间)的通信传输和后端连接性的任何类型的背板管理控制器。
计算节点102可以体现为能够执行本文所描述的功能的任何类型的计算或计算机设备,包括而没有限制,计算机、多处理器系统、服务器、机架安装的服务器、刀片式服务器、智能电话、平板计算机、膝上型计算机、笔记本计算机、移动计算设备、可穿戴计算设备、网络器具、web器具、分布式计算系统、基于处理器的系统和/或消费电子设备。如图2中所示,计算节点102中的一个说明性地包括处理器202、输入/输出(I/O)子系统208、存储器212、数据存储设备214和通信电路216。当然,在其它实施例中,计算节点102可以包括其它或附加的组件,诸如在计算机中经常发现的那些(例如各种输入/输出设备)。此外,在一些实施例中,说明性组件中的一个或多个可以合并在另一组件中或以其它方式形成其部分。例如,在一些实施例中,可以在处理器202中合并存储器212或其部分。
处理器202可以体现为能够执行本文所描述的功能的任何类型的处理器。例如,处理器202可以体现为(一个或多个)单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。处理器202说明性地包括硬件检查点支持204和硬件事件监视器206。硬件检查点支持204可以体现为任何硬件组件、微代码、固件或能够保存当前执行的应用的执行状态(例如虚拟存储器状态)的处理器202的其它组件。例如,硬件检查点支持204可以体现为一个或多个专用处理器指令和使得将当前应用的虚拟存储器空间的全部或部分保存到非易失性储存部的处理器202的相关联的存储器管理功能。在一些实施例中,硬件检查点支持204或其部分可以体现为可由处理器202或计算节点102的其它组件执行的固件或软件。在这样的实施例中,硬件检查点支持204(或其指令)可以存储在存储器(例如存储器212)中。
硬件事件监视器206可以体现为任何硬件组件、微代码、固件或能够通知由系统的处理器202执行的软件在处理器202内发生的事件的处理器202的其它组件,所述事件诸如存储器访问事件、高速缓存访问事件和/或检查点设置事件。例如,硬件事件监视器206可以体现为一个或多个性能计数器、性能监视单元、高速缓存监视单元或处理器202的其它硬件计数器。在一些实施例中,计算节点102可以促进检查点设置事件通过主平台固件或预引导固件的统筹,诸如英特尔平台芯片组或基于统一可扩展固件接口(“UEFI”)规范的平台基本输入/输出系统(BIOS)的扩展,UEFI规范具有由统一EFI论坛公布的若干版本。在这样的实施例中,BIOS可以驻留在存储器212中,并且包括在引导进程期间初始化计算节点102的指令。在一些实施例中,硬件事件监视器206或其部分可以体现为可由处理器202或计算节点102的其它组件执行的固件或软件。在这样的实施例中,硬件事件监视器206(或其指令)可以存储在存储器(例如存储器212)中。
存储器212可以体现为能够执行本文所描述的功能的任何类型的易失性或非易失性存储器或数据储存部。在操作中,存储器212可以存储在计算节点102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。存储器212经由I/O子系统208通信耦合到处理器202,所述I/O子系统208可以体现为促进关于处理器202、存储器212和计算节点102的其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统208可以体现为或以其它方式包括存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即点对点链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其它组件和子系统。I/O子系统208还包括I/O缓冲设备210。I/O缓冲设备210可以体现为能够在检查点设置事件期间缓冲I/O信号并且通知由系统的处理器202执行的软件在计算节点102内发生的事件的任何硬件组件、微代码、固件或I/O子系统208的其它组件,所述事件诸如盘访问事件、存储器访问事件、网络访问事件、检查点设置事件或其它系统事件。例如,I/O缓冲设备210可以体现为一个或多个比特标识器、性能计数器、性能监视单元或I/O子系统208的其它硬件计数器。在一些实施例中,I/O子系统208可以形成片上系统(SoC)的部分,并且连同处理器202、存储器212和计算节点102的其它组件一起合并在单个集成电路芯片上。
数据存储设备214可以体现为配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其它数据存储设备。在使用中,如以下所描述的,数据存储设备214可以存储应用检查点设置数据,诸如所保存的执行状态或其它类似数据。计算节点102的通信电路216可以体现为能够使得能够实现通过网络(未示出)在计算节点102与统筹节点104之间以及在计算节点102与远程设备之间的通信的任何通信电路、设备或其集合。通信电路216可以配置成使用任何一种或多种通信技术(例如有线或无线通信)和相关联的协议(例如以太网、Bluetooth®、Wi-Fi®、WiMAX等)以实现这样的通信。
在一些实施例中,计算节点102还可以包括检查点高速缓存218。类似于数据存储设备214,检查点高速缓存218可以体现为配置用于数据的短期或长期存储的任何类型的一个或多个设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其它数据存储设备。例如,在一些实施例中,检查点高速缓存218可以体现为用于存储持久信息的基于闪存的存储器存储设备。检查点高速缓存218可以存储诸如所保存的执行状态或其它类似数据的应用检查点设置数据。
在一些实施例中,计算节点102还可以包括一个或多个外围设备220。外围设备220可以包括任何数目的附加输入/输出设备、接口设备和/或其它外围设备。例如,在一些实施例中,外围设备220可以包括显示器、触摸屏、图形电路、键盘、鼠标、扬声器系统和/或其它输入/输出设备、接口设备和/或外围设备。
如之前所描述的,图1的计算节点102中的每一个能够配置为统筹节点104或工作计算节点110中的一个(即说明性地,计算节点106、108)。因此,可以在计算节点102的操作期间建立的环境,如图3和4中所示,取决于特定计算节点102充当统筹节点104还是工作计算节点110中的一个。现在参照图3,在说明性实施例中,统筹节点104在操作期间建立环境300。说明性环境300包括登记接口模块310、分布式应用协调模块320和环境检查点管控模块330。
环境300的模块、逻辑和其它组件中的每一个可以体现为硬件、软件、固件或其组合。例如,环境300的模块、逻辑和其它组件中的每一个可以形成处理器202或统筹节点104的其它硬件组件的部分,或者以其它方式由其建立。照此,在一些实施例中,环境300的模块中的一个或多个可以体现为电路或电气设备的集合(例如登记接口电路、分布式应用协调电路、环境检查点管控电路等)。在一些实施例中,登记接口模块210、分布式应用协调模块320和/或环境检查点管控模块330可以体现为统筹节点104的虚拟化框架的一个或多个组件,诸如超级监督器或虚拟机监视器(VMM)。应当领会到,统筹节点104可以包括在计算设备中经常发现的其它组件、子组件、模块、子模块和设备,为了描述的清楚而在图3中未对它们进行图示。
在说明性环境300中,统筹节点104附加地包括环境检查点设置数据302和登记数据304,它们中的每一个可以由统筹节点104的各种模块和/或子模块中的一个或多个访问。在一些实施例中,环境检查点设置数据302可以包括与每一个分布式应用相关联的各种连接和进程的状态的散列表(即主机持久性)。在一些实施例中,环境检查点设置数据302可以由统筹节点104传输至工作计算节点110(即环境持久性)。
登记接口模块310配置成从工作计算节点110接收包括涉及工作计算节点110的标识信息(诸如计算节点标识符、进程标识符、虚拟机标识符等)的登记信息。登记接口模块310还配置成基于所接收的登记信息而向统筹节点104登记工作计算节点110。登记信息可以包括计算节点标识数据、应用(参见图4的应用410)相关数据,诸如线程或进程标识符(例如名称、ID等)。登记接口模块310可以在登记数据304中存储所接收的登记信息。
分布式应用协调模块320配置成协调(即繁衍、分布、监视、调节、分配资源、终止等)每一个应用、超级监督器或要在工作计算节点110处执行的分布式应用的主机线程。为此,分布式应用协调模块320配置成发起应用、记录相关性,并且基于由工作计算节点110登记的对象而生成子代线程标识符和/或连接标识符以用于所发起的应用,诸如在登记接口模块310处接收和登记的登记信息。此外,分布式应用协调模块320还可以配置成协调(即追踪)由统筹节点104触发和/或在统筹节点104处接收的各种信号和事件。
环境检查点管控模块330配置成管控原子检查点设置操作并且跨工作计算节点110追踪检查点设置操作。如之前所描述的,计算节点102可以跨越机架、刀片、数据中心或任何数目的云提供者环境。因此,环境检查点管控模块330配置成向目前向统筹节点104登记的计算环境114的工作计算节点110传输包括时间同步信息的检查点初始化信号。环境检查点管控模块330还配置成在每一个其它工作计算节点110处的检查点设置事件的完成后,从向统筹节点104登记的每一个其它工作计算节点110接收检查点设置信息(例如应用状态信息)。当接收后,环境检查点管控模块330存储检查点设置信息,所述检查点设置信息可以利用之前从计算环境114的其它计算节点102接收的检查点设置数据而整合。在一些实施例中,所接收的检查点设置数据可以存储在环境检查点设置数据302中。因此,环境检查点设置数据302可以包括涉及向统筹节点104登记的计算环境114的每一个其它工作计算节点110的检查点设置信息,诸如子代进程(线程)信息、连接信息、虚拟存储器内容、处理器登记状态、处理器旗标、进程表、文件描述符、文件句柄或涉及在工作计算节点110处接收到检查点初始化信号时在工作计算节点110上运行的应用的当前状态的其它数据结构。在一些实施例中,那些功能可以由一个或多个子模块执行,诸如环境检查点设置数据管理模块332。
此外或替换地,在一些实施例中,环境检查点管控模块330还可以配置成基于环境检查点设置数据302而管控恢复事件。在这样的实施例中,环境检查点管控模块330还可以配置成通过使用处理器202的硬件检查点支持204以基于环境检查点设置数据302中的至少一些而恢复执行状态来恢复分布式应用的执行状态(例如虚拟存储器状态)。例如,环境检查点管控模块330可以向工作计算节点110传输检查点恢复信号以向工作计算节点110中的每一个指示暂停执行任何目前执行的应用并且基于检查点恢复信号和/或任何附加的环境检查点设置数据而开始一个或多个应用的执行。应当领会到,作为恢复操作的结果而暂停的目前执行的应用可以是或可以不是相同的应用。
现在参照图4,在说明性实施例中,每一个工作计算节点110(即说明性地,计算节点106或计算节点108)在操作期间建立环境400。说明性环境400包括应用410和检查点管理模块420。环境400的模块、逻辑和其它组件中的每一个可以体现为硬件、软件、固件或其组合。例如,环境400的模块、逻辑和其它组件中的每一个可以形成处理器202或计算节点102的其它硬件组件的部分,或者以其它方式由其建立。照此,在一些实施例中,环境400的模块中的一个或多个可以体现为电路或电气设备的集合(例如检查点管理电路等)。在一些实施例中,检查点管理模块420可以体现为工作计算节点110的虚拟化框架的一个或多个组件,诸如超级监督器或虚拟机监视器(VMM)。应当领会到,计算节点102可以包括在计算设备中经常发现的其它组件、子组件、模块、子模块和设备,为了描述的清楚而在图4中未对它们进行图示。
应用410可以体现为工作计算节点110的任何程序、进程、线程、任务或其它可执行组件。例如,应用410可以体现为进程、线程、本机代码应用、受管理的代码应用、虚拟化的应用、虚拟机或任何其它类似的应用。在一些实施例中。应用410可以编译成特定地以处理器202为目标;也就是说,应用410可以包括诸如经由专门化的处理器指令访问硬件检查点支持204的代码。在执行期间,应用410由主线程初始化,所述主线程维护和修改执行状态,所述执行状态可以包括例如虚拟存储器状态(即虚拟存储器内容)、处理器寄存器状态、处理器旗标、进程表、文件描述符、文件句柄或涉及应用410的当前状态的其它数据结构。尽管被图示为单个应用410,但是应当理解到,环境400可以包括同时执行的一个或多个应用410。应当领会到,在一些实施例中,应用410可以是分布式应用,使得应用处理的至少部分在第一工作计算节点110(例如计算节点106)上执行,并且应用处理的至少另一部分在另一工作计算节点110(例如计算节点108)上执行。还应当领会到,在一些实施例中,应用410可以是多层级应用,通常称为n层级应用,使得多层级应用包括在多于一个层(例如操作层)之中开发和分布的多于一个应用。
检查点管理模块420配置成检测和处置从通信耦合到工作计算节点110的统筹节点104接收的检查点设置事件(例如触发检查点设置操作的任何硬件或软件事件)的发生。响应于检测到检查点设置事件,检查点管理模块420可以调用一个或多个硬件钩子(hook)(例如系统调用、处理器指令等)以使得工作计算节点110保存检查点。为此,检查点管理模块420配置成锁定工作计算节点110的上下文(即暂停目前执行的应用410的进一步执行并且阻止新接收的数据)并且使用I/O缓冲机构缓冲目前执行的任务以确保所有I/O信号(例如存储器、盘、网络等)被缓冲直到工作计算节点110接收到计算节点102可以继续进行所暂停的应用410的指示。例如,I/O缓冲设备210可以缓冲I/O信号直到工作计算节点110向统筹节点104提供所请求的检查点设置事件已经完成(即状态被保存并且传输到统筹节点104)的指示并且从统筹节点104接收到计算节点102可以继续进行操作的指示,诸如经由检查点完成信号。此外,检查点管理模块420配置成在主线程背后缓冲和保存存储器页和状态,并且在主线程之前清除存储器页和状态。
检查点管理模块420还配置成原子形式地保存在接收到检查点设置事件信号时由计算节点102执行的每一个应用410(即检查点设置信息)的执行状态。在说明性环境400中,计算节点102附加地包括检查点设置数据402,其可以由计算节点102的各种模块和/或子模块中的一个或多个访问。在一些实施例中,可以在检查点设置数据402中保存检查点设置信息。相应地,检查点设置数据402可以包括检查点设置相关数据,诸如虚拟存储器内容、处理器寄存器状态、处理器旗标、进程表、文件描述符、文件句柄或涉及检查点设置请求时的应用410的当前状态的其它数据结构。
在一些实施例中,检查点管理模块420的功能可以由一个或多个子模块执行,诸如管理每一个应用410的暂停和重新开始的应用管理模块422、原子形式地保存检查点设置信息的原子性管理模块424和与检查点设置数据402对接以存储所检索的检查点设置信息并且检索检查点设置信息以用于传输至统筹节点104的检查点设置数据管理模块426。此外,在一些实施例中,检查点管理模块420还可以配置成接收和存储可以从统筹节点104接收的环境检查点设置数据302。在这样的实施例中,计算节点102可以配置成在目前配置成充当统筹节点的计算节点102崩溃或以其它方式失效的情况下承担统筹节点104的角色。因此,检查点设置数据402和/或环境检查点设置数据302可以存储在检查点高速缓存218中。
此外或替换地,在一些实施例中,检查点管理模块420还可以配置成基于环境检查点设置数据302而管理恢复事件。在这样的实施例中,检查点管理模块420可以配置成从统筹节点104接收向检查点管理模块420指示恢复分布式应用的执行状态的检查点恢复信号(例如环境300的环境检查点管控模块330(参见图3))。作为响应,检查点管理模块420可以暂停执行任何目前执行的应用并且基于检查点恢复信号和/或任何附加的环境检查点设置数据而开始一个或多个应用的执行。因此,检查点管理模块420可以使用处理器202的硬件检查点支持204以基于检查点设置数据402和/或环境检查点设置数据302而恢复执行状态。应当领会到,作为恢复操作的结果而暂停的目前执行的应用可以是或可以不是相同的应用。
现在参照图5,在使用中,工作计算节点110(即说明性的,计算节点106或计算节点108)可以执行用于初始化分布式应用的方法500。方法500在块502处开始,其中工作计算节点110经由分布式应用接收执行任务的请求,诸如处理工作载荷。在块504处,工作计算节点110经由应用管理模块(例如图4的应用管理模块422)初始化分布式应用以控制分布式应用。因此,在一些实施例中,应用管理模块422可以体现为超级监督器、主进程或主机线程以执行和管理图4的应用410中的一个或多个。如以上所描述的,应用410可以体现为任何进程、线程、受管理代码或由工作计算节点110执行的其它任务。在一些实施例中,应用410可以体现为虚拟化应用,例如作为由超级监督器执行并且在由分布式应用协调器创建的虚拟机中执行的应用或操作系统。在执行期间,应用410可以执行计算、更新存储器212的区域,或执行计算机应用典型的任何其它操作。
在块506处,工作节点110的应用管理模块422经由分布式应用基于要执行的任务而繁衍对象。例如,在一些实施例中,在块508处可以基于分布式应用的要求而繁衍一个或多个子代进程。在这样的实施例中,可以经由虚拟机器实例而运行或直接由工作计算节点110运行每一个所繁衍的子代进程。因此,在这样的实施例中,一个或多个虚拟机可能需要基于所繁衍的子代进程而繁衍。此外或可替换地,在一些实施例中,在块510处可以基于分布式应用的要求而繁衍一个或多个连接。
在块512处,工作计算节点110向统筹节点104登记一个或多个所繁衍的对象。为此,在块514处,在一些实施例中,工作计算节点110可以向统筹节点104登记所繁衍的子代进程中的每一个。如之前所描述的,在一些实施例中,所繁衍的子代进程可以在虚拟机上运行或者直接由工作计算节点110运行。因此,还可以向统筹节点104登记虚拟机实例。此外或替换地,在块516处,在一些实施例中,诸如其中应用是分布式应用的那些实施例,工作计算节点110可以向统筹节点104登记应用之间所繁衍的连接中的每一个,诸如对于多层级应用实施例而言。在块518处,工作计算节点110从统筹节点104接收针对向统筹节点104登记的对象中的每一个的标识符。例如,在块520处,统筹节点104接收针对向统筹节点104登记的每一个子代进程的子代进程标识符。此外或替换地,在一些实施例中,在块522处,统筹节点104接收标识符包括接收针对向统筹节点104登记的连接中的每一个的连接标识符。
现在参照图6,在使用中,统筹节点104可以执行用于执行环境检查点设置事件的方法600。方法600在块602处开始,其中统筹节点104确定是否接收到环境检查点初始化信号。环境检查点初始化信号可以包括时间同步信息,并且可以体现为触发检查点设置操作的任何硬件或软件事件。统筹节点104可以使用任何技术来监视环境检查点初始化信号,包括针对事件轮询、处置中断、登记回呼功能或事件侦听器或其它技术。环境检查点初始化信号可以体现为硬件事件,诸如中断、存储器访问或I/O操作;体现为软件事件,诸如存储器中的数据结构的修改;体现为用户生成的事件,诸如应用编程接口(API)调用或体现为任何其它事件。
如果没有接收到环境检查点初始化信号,方法循环回到块602以继续监视环境检查点初始化信号。如果接收到环境检查点初始化信号,方法600前进到块604,其中统筹节点104将检查点初始化信号传输至(例如经由图1的背板管理控制器112)向统筹节点104登记的工作计算节点110中的一个或多个(例如说明性地,计算节点106或计算节点108)。换言之,统筹节点104可以一次仅向所登记的工作计算节点110的子集传输检查点初始化信号。例如,检查点设置事件可以定向到特定应用,所述特定应用可以在单个工作计算节点110上跨多个虚拟机分布,或者跨数个工作计算节点110分布。因此,可以仅向正在处理分布式应用的那(一个或多个)计算节点发送检查点初始化信号。
在块606处,统筹节点104确定是否已经从工作计算节点110之一(例如说明性地,计算节点106或计算节点108)接收到检查点设置数据。如之前所描述的,检查点设置数据可以包括所保存的执行状态或其它类似数据。如果尚未接收到检查点设置数据,方法600循环回到块606以继续监视检查点设置数据。如果已经接收到检查点设置数据,方法600前进到块608,其中统筹节点104存储所接收的检查点设置数据。在一些实施例中,检查点设置数据可以存储在图2的数据存储设备214或检查点高速缓存218中。
在块610处,统筹节点104确定是否要求向其传输检查点初始化信号的所有工作计算节点110在继续之前完成(即由统筹节点104接收到检查点设置数据)。如果是这样,方法600分支到块616,以下进一步详细地描述块616;否则,方法600前进到块612,其中统筹节点104向从其接收检查点设置数据的工作计算节点110传输检查点完成信号。在一些实施例中,方法600可以前进到块614,其中统筹节点104向所登记的工作计算节点110传输环境检查点设置数据(即针对所有工作计算节点110的检查点设置数据),使得在统筹节点104崩溃的情况下,另一工作计算节点110可以承担统筹节点104的角色,因而避免单个故障点。在一些实施例中,环境检查点设置数据可以包括针对计算环境114的每一个工作计算节点110的与每一个分布式应用相关联的各种连接和进程的状态的散列表。
在块616处,统筹节点104确定是否已经从向其传输检查点初始化信号的所有工作计算节点110接收到检查点设置数据。如果没有,方法600循环回到块602以继续监视在统筹节点104处接收的检查点设置数据;否则,方法600前进到块618。在块618处,统筹节点104将检查点完成信号传输至向其传输检查点初始化信号的所有工作计算节点110。在一些实施例中,方法从块618前进到块614以向所有所登记的工作计算节点110传输环境检查点设置数据。
现在参照图7,在使用中,每一个工作计算节点110(即说明性地,计算节点106或计算节点108)可以执行用于执行检查点设置事件的方法700。方法700在块702处开始,其中工作计算节点110确定是否接收到检查点初始化信号。如之前所描述的,检查点初始化信号可以包括时间同步信息,并且可以体现为触发检查点设置操作的任何硬件或软件事件。
工作计算节点110可以使用任何技术来监视检查点初始化信号,包括针对事件轮询、处置中断、登记回呼功能或事件侦听器,或其它技术。例如,在工作计算节点110的初始化期间,工作计算节点110可以执行激活硬件检查点支持204所要求的任何初始化例程或其它进程,以及任何必需的软件初始化例程。在这样的实施例中,工作计算节点110可以初始化中断向量、定时器或用于调用硬件检查点支持204的其它系统钩子。
如果未接收到检查点初始化信号,方法循环回到块702以继续到监视检查点初始化信号。如果接收到检查点初始化信号,方法700前进到块704,其中工作计算节点110暂停执行在接收到检查点初始化信号时执行的应用。如之前所描述的,在执行期间,应用(例如应用410)由主线程初始化,所述主线程负责执行与应用相关联的任务。
在块706处,工作计算节点110锁定计算节点的上下文。换言之,阻止在工作计算节点110处接收到的任何新数据。在块708处,工作计算节点110缓冲所暂停的应用。为此,计算节点102缓冲和保存滞后于主线程的任何存储器页或状态,并且清除在主线程之前的任何存储器页或状态。
在块710处,工作计算节点110保存检查点设置数据,所述检查点设置数据可以包括在块704处暂停并且在块708处缓冲的应用的所保存的执行状态,以及涉及所暂停的应用的状态的任何其它数据(例如堆栈、堆、所分配的页、进程表、存储器212的其它部分、处理器202旗标、状态或其它处理器202信息等)。在一些实施例中,在工作计算节点110上运行的软件(例如操作系统)可以执行系统钩子(即硬件钩子)以保存在其中接收到检查点初始化信号的时间处执行的应用的执行状态。在这样的实施例中,工作计算节点110可以使用图2的硬件检查点支持204来保存应用的执行状态。硬件钩子可以体现为可用于调用处理器202的硬件检查点支持204的任何技术。应当领会到,在相同工作计算节点110上执行的不同软件可以执行不同的系统钩子。在一些实施例中,在块712中,可以在诸如图2的检查点高速缓存218之类的持久性存储设备中存储检查点设置数据。
在块714处,工作计算节点110向统筹节点104传输所保存的检查点设置数据。为此,工作计算节点110可以经由图1的背板管理控制器112传输所保存的检查点设置数据。在块716处,工作计算节点110响应于已经传输所保存的检查点设置数据而确定是否从统筹节点104接收到检查点完成信号。如之前所描述的,在一些实施例中,统筹节点104可以配置成在统筹节点104可以向适用的工作计算节点110传输检查点完成信号之前,等待直到接收到检查点初始化信号的所有工作计算节点110已经以其相应检查点设置数据做出响应。因此,如果在块716处尚未接收到检查点完成信号,工作计算节点110循环回到块716以继续监视是否接收到检查点完成信号。如果在块716处已经接收到检查点完成信号,方法700前进到块718,其中解锁在块706处锁定的上下文(即新数据再次由工作计算节点110接受)。
在块720处,从缓冲器释放在接收到检查点初始化信号时执行并且随后被暂停和缓冲的应用。在释放后,主线程继续处理应用。如之前所描述的,在一些实施例中,计算环境114中的每一个工作计算节点110可以存储环境检查点设置数据的副本,所述副本可以包括针对计算环境114的所有工作计算节点110的应用状态信息,使得任何工作计算节点110可以能够被配置为统筹节点104。例如,在充当统筹节点104的工作计算节点110崩溃或以其它方式不可用的情况下,环境的任何其它工作计算节点110可以承担统筹节点104的角色。在这样的实施例中,在块722处,工作计算节点110确定是否接收到环境检查点设置数据。如果没有,工作计算节点110循环回到块722以继续监视环境检查点设置数据;否则,计算节点前进到块724。在块724处,工作计算节点110存储环境检查点设置数据。在一些实施例中,在块726处,工作计算节点110将环境检查点设置数据保存到持久性存储设备(例如图2的检查点高速缓存218)。如之前所描述的,在一些实施例中,环境检查点设置数据可以包括针对工作计算节点110连接到其中的计算环境114的每一个工作计算节点110的与每一个分布式应用相关联的各种连接和进程的状态的散列表。
现在参照图8,在使用中,每一个工作计算节点110(即计算节点106或计算节点108)可以执行用于执行环境恢复事件的方法800。方法800在块802处开始,其中计算节点102确定是否接收到检查点恢复信号。如之前所描述的,检查点恢复信号可以包括指示要参考(即使用)以用于恢复的环境检查点设置数据的数据。如果未接收到检查点恢复信号,方法循环回到块802以继续监视检查点初始化信号。如果接收到检查点初始化信号,方法800前进到块804,其中计算节点102暂停执行在接收到检查点初始化信号时正在执行的应用。
在块806处,工作计算节点110执行系统钩子以将一个或多个所请求的应用(例如图4的应用410)的所保存的执行状态加载到存储器(例如图2的存储器212)中。类似于保存执行状态,用于加载执行状态的系统钩子可以体现为可用于调用处理器202的硬件检查点支持204的任何技术。在块808处,工作计算节点110使用硬件检查点支持204加载要恢复到存储器212中的所请求的应用的执行状态。在加载要恢复到存储器212中的所请求的应用的执行状态之后,在块810处,工作计算节点110基于所保存的执行状态而继续进行所恢复的应用的执行。在继续进行所恢复的应用之后,方法800循环回到块802以继续监视检查点恢复信号的存在。
示例
以下提供本文所公开的技术的说明性示例。技术的实施例可以包括以下描述的示例中的任何一个或多个和任何组合。
示例1包括一种用于执行检查点设置事件的计算节点,计算节点:包括从通信耦合到计算节点的统筹节点接收检查点初始化信号的硬件事件监视器;检查点管理模块,用于(i)响应于已经接收到检查点初始化信号而暂停目前在计算节点上执行的一个或多个应用,以及(ii)通过输入/输出(I/O)缓冲设备缓冲一个或多个所暂停的应用的输入/输出(I/O)信号;以及将检查点设置数据保存到计算节点的存储器存储设备的硬件检查点支持,其中检查点设置数据包括所述一个或多个应用中的每一个的执行状态,其中检查点管理模块还向统筹节点传输检查点设置数据。
示例2包括示例1的主题,并且其中检查点管理模块还响应于已经接收到检查点初始化信号而锁定计算节点的上下文以阻止由计算节点接收的任何新数据被计算节点处理。
示例3包括示例1和2中的任何一个的主题,并且其中硬件事件监视器还通过硬件事件监视器从统筹节点接收检查点完成信号,并且其中检查点管理模块还响应于已经接收到检查点完成信号而继续进行一个或多个所暂停的应用。
示例4包括示例1-3中的任何一个的主题,并且其中继续进行一个或多个所暂停的应用包括(i)解锁计算节点的上下文以允许任何新数据由计算节点接收,以及(ii)从输入/输出(I/O)缓冲设备释放所述一个或多个应用的输入/输出(I/O)信号。
示例5包括示例1-4中的任何一个的主题,并且其中检查点管理模块还向统筹节点登记,其中登记包括提供检查点设置事件要由统筹节点发起的指示。
示例6包括示例1-5中的任何一个的主题,并且其中检查点管理模块还(i)从统筹节点接收环境检查点设置数据,其中环境检查点设置数据包括通信耦合到统筹节点的其它计算节点的执行状态数据,以及(ii)在本地储存部中存储环境检查点设置数据。
示例7包括示例1-6中的任何一个的主题,并且其中检查点管理模块还从统筹节点接收检查点恢复信号,其中硬件检查点支持还向计算节点的存储器中加载所述一个或多个应用中的至少一个的所保存的执行状态,并且其中检查点管理模块还从加载到存储器中的所保存的执行状态继续进行所述一个或多个应用中的所述至少一个的执行。
示例8包括示例1-7中的任何一个的主题,并且其中加载所保存的执行状态包括至少部分地基于环境检查点设置数据而加载所保存的执行状态。
示例9包括示例1-8中的任何一个的主题,并且其中检查点管理模块还使用由计算节点发起的主线程执行分布式应用,其中保存检查点设置数据包括保存分布式应用的执行状态,并且其中执行状态指示分布式应用的虚拟存储器状态。
示例10包括示例1-9中的任何一个的主题,并且其中检查点管理模块还(i)响应于所述一个或多个应用中的第一应用滞后于主线程的确定而在计算节点的存储器中保存对应于第一应用的存储器页,以及(ii)响应于所述一个或多个应用中的第二应用在主线程之前工作的确定而清除对应于第二应用的存储器中的存储器页。
示例11包括示例1-10中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲存储器访问事件。
示例12包括示例1-11中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲盘访问事件。
示例13包括示例1-12中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲网络访问事件。
示例14包括一种用于管控环境检查点设置事件的统筹节点,统筹节点包括:环境检查点管控模块,用于(i)响应于指示检查点事件的环境检查点初始化信号而向通信耦合到统筹节点的多个工作计算节点中的每一个传输检查点初始化信号,(ii)响应于检查点初始化信号而从每一个工作计算节点接收检查点设置数据,其中检查点数据包括对应工作计算节点的至少一个应用的执行状态,(iii)存储所接收的检查点设置数据,以及(iv)向所述多个工作计算节点中的每一个传输检查点完成信号。
示例15包括示例14的主题,并且其中向所述多个工作计算节点传输检查点完成信号包括响应于已经从所述多个工作计算节点中的每一个接收到检查点设置数据的确定而向所述多个工作计算节点传输检查点完成信号。
示例16包括示例14和15中的任何一个的主题,并且其中环境检查点管控模块还向通信耦合到统筹节点并且向统筹节点登记的多个工作计算节点中的每一个传输从所述多个工作计算节点中的每一个接收的检查点设置数据。
示例17包括一种用于执行检查点设置事件的方法,所述方法包括通过计算节点的硬件事件监视器从通信耦合到计算节点的统筹节点接收检查点初始化信号;通过计算节点的处理器响应于接收到检查点初始化信号而暂停目前在计算节点上执行的一个或多个应用;通过计算节点的输入/输出(I/O)缓冲设备缓冲一个或多个所暂停的应用的输入/输出(I/O)信号;通过计算节点的硬件检查点支持而将检查点设置数据保存到计算节点的存储器存储设备,其中检查点设置数据包括所述一个或多个应用中的每一个的执行状态;以及通过计算节点向统筹节点传输检查点设置数据。
示例18包括示例17的主题,并且还包括通过计算节点响应于接收到检查点初始化信号而锁定计算节点的上下文以阻止由计算节点接收的任何新数据被计算节点处理。
示例19包括示例17和18中的任何一个的主题,并且还包括通过计算节点的硬件事件监视器从统筹节点接收检查点完成信号;以及响应于接收到检查点完成信号而继续进行一个或多个所暂停的应用。
示例20包括示例17-19中的任何一个的主题,并且其中继续进行一个或多个所暂停的应用包括(i)解锁计算节点的上下文以允许任何新数据由计算节点接收,以及(ii)从计算节点的输入/输出(I/O)缓冲设备释放所述一个或多个应用的输入/输出(I/O)信号。
示例21包括示例17-20中的任何一个的主题,并且还包括通过计算节点向统筹节点登记以提供检查点设置事件要由统筹节点发起的指示。
示例22包括示例17-21中的任何一个的主题,并且还包括通过计算节点从统筹节点接收环境检查点设置数据,其中环境检查点设置数据包括通信耦合到统筹节点的其它计算节点的执行状态数据;以及通过计算节点在本地储存部中存储环境检查点设置数据。
示例23包括示例17-22中的任何一个的主题,并且还包括通过计算节点从统筹节点接收检查点恢复信号;通过硬件检查点支持向计算节点的存储器中加载所述一个或多个应用中的至少一个的所保存的执行状态;以及通过计算节点从加载到存储器中的所保存的执行状态继续进行所述一个或多个应用中的所述至少一个的执行。
示例24包括示例17-23中的任何一个的主题,并且其中加载所保存的执行状态包括至少部分地基于环境检查点设置数据而加载所保存的执行状态。
示例25包括示例17-24中的任何一个的主题,并且还包括通过计算节点使用由计算节点发起的主线程执行分布式应用;其中保存检查点设置数据包括保存分布式应用的执行状态,并且其中执行状态指示分布式应用的虚拟存储器状态。
示例26包括示例17-25中的任何一个的主题,并且还包括响应于所述一个或多个应用中的第一应用滞后于主线程的确定而在计算节点的存储器中保存存储的对应于第一应用的存储器页;以及响应于所述一个或多个应用中的第二应用在主线程之前工作的确定而清除对应于第二应用的存储器中存储的存储器页。
示例27包括示例17-26中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲存储器访问事件。
示例28包括示例17-27中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲盘访问事件。
示例29包括示例17-28中的任何一个的主题,并且其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲网络访问事件。
示例30包括一种计算节点,包括:处理器;以及具有存储在其中的多个指令的存储器,所述多个指令在由处理器执行时使得计算节点执行示例17-29中的任何一个的方法。
示例31包括一个或多个机器可读存储介质,包括:存储在其上的多个指令,所述多个指令响应于被执行而导致计算节点执行示例17-29中的任何一个的方法。
示例32包括一种用于管控环境检查点设置事件的方法,所述方法包括通过统筹节点响应于指示检查点事件的环境检查点初始化信号而向通信耦合到统筹节点的多个工作计算节点中的每一个传输检查点初始化信号;通过统筹节点响应于检查点初始化信号而从每一个工作计算节点接收检查点设置数据,其中检查点数据包括对应工作计算节点的至少一个应用的执行状态;通过统筹节点的存储器存储设备存储所接收的检查点设置数据;通过统筹节点向所述多个工作计算节点中的每一个传输检查点完成信号。
示例33包括示例32的主题,并且其中向所述多个工作计算节点传输检查点完成信号包括响应于已经从所述多个工作计算节点中的每一个接收到检查点设置数据的确定而向所述多个工作计算节点传输检查点完成信号。
示例34包括示例32和33中的任何一个的主题,并且还包括通过统筹节点向通信耦合到统筹节点并且向统筹节点登记的多个工作计算节点中的每一个传输从所述多个工作计算节点中的每一个接收的检查点设置数据。
示例35包括一种计算节点,包括:处理器;以及具有存储在其中的多个指令的存储器,所述多个指令在由处理器执行时使得计算节点执行示例32-34中的任何一个的方法。
示例36包括一个或多个机器可读存储介质,包括存储在其上的多个指令,所述多个指令响应于被执行而导致计算节点执行示例32-34中的任何一个的方法。
示例37包括一种用于执行检查点设置事件的计算节点,计算节点包括:用于从通信耦合到计算节点的统筹节点接收检查点初始化信号的部件;用于响应于接收到检查点初始化信号而暂停目前在计算节点上执行的一个或多个应用的部件;用于缓冲一个或多个所暂停的应用的输入/输出(I/O)信号的部件;用于将检查点设置数据保存到计算节点的存储器存储设备的部件,其中检查点设置数据包括所述一个或多个应用中的每一个的执行状态;以及用于向统筹节点传输检查点设置数据的部件。
示例38包括示例37的主题,并且还包括用于响应于接收到检查点初始化信号而锁定计算节点的上下文以阻止由计算节点接收的任何新数据被计算节点处理的部件。
示例39包括示例37和38中的任何一个的主题,并且还包括用于从统筹节点接收检查点完成信号的部件;以及用于响应于接收到检查点完成信号而继续进行一个或多个所暂停的应用的部件。
示例40包括示例37-39中的任何一个的主题,并且其中用于继续进行一个或多个所暂停的应用的部件包括用于(i)解锁计算节点的上下文以允许任何新数据由计算节点接收,以及(ii)释放所述一个或多个应用的输入/输出(I/O)信号的部件。
示例41包括示例37-40中的任何一个的主题,并且还包括用于向统筹节点登记以提供检查点设置事件要由统筹节点发起的指示的部件。
示例42包括示例37-41中的任何一个的主题,并且还包括用于从统筹节点接收环境检查点设置数据的部件,其中环境检查点设置数据包括通信耦合到统筹节点的其它计算节点的执行状态数据;以及用于在本地储存部中存储环境检查点设置数据的部件。
示例43包括示例37-42中的任何一个的主题,并且还包括用于从统筹节点接收检查点恢复信号的部件;用于向计算节点的存储器中加载所述一个或多个应用中的至少一个的所保存的执行状态的部件;以及用于从加载到存储器中的所保存的执行状态继续进行所述一个或多个应用中的所述至少一个的执行的部件。
示例44包括示例37-43中的任何一个的主题,并且其中用于加载所保存的执行状态的部件包括用于至少部分地基于环境检查点设置数据而加载所保存的执行状态的部件。
示例45包括示例37-44中的任何一个的主题,并且还包括用于使用由计算节点发起的主线程执行分布式应用的部件;其中用于保存检查点设置数据的部件包括用于保存分布式应用的执行状态的部件,并且其中执行状态指示分布式应用的虚拟存储器状态。
示例46包括示例37-45中的任何一个的主题,并且还包括用于响应于所述一个或多个应用中的第一应用滞后于主线程的确定而在计算节点的存储器中保存存储的对应于第一应用的存储器页的部件;以及用于响应于所述一个或多个应用中的第二应用在主线程之前工作的确定而清除对应于第二应用的存储器中存储的存储器页的部件。
示例47包括示例37-46中的任何一个的主题,并且其中用于缓冲一个或多个所暂停的应用的输入/输出(I/O)信号的部件包括用于缓冲存储器访问事件的部件。
示例48包括示例37-47中的任何一个的主题,并且其中用于缓冲一个或多个所暂停的应用的输入/输出(I/O)信号的部件包括用于缓冲盘访问事件的部件。
示例49包括示例37-48中的任何一个的主题,并且其中用于缓冲一个或多个所暂停的应用的输入/输出(I/O)信号的部件包括用于缓冲网络访问事件的部件。
示例50包括一种用于管控环境检查点设置事件的统筹节点,统筹节点包括用于响应于指示检查点事件的环境检查点初始化信号而向通信耦合到统筹节点的多个工作计算节点中的每一个传输检查点初始化信号的部件;用于响应于检查点初始化信号而从每一个工作计算节点接收检查点设置数据的部件,其中检查点数据包括对应工作计算节点的至少一个应用的执行状态;用于存储所接收的检查点设置数据的部件;用于向所述多个工作计算节点中的每一个传输检查点完成信号的部件。
示例51包括示例50的主题,并且其中用于向所述多个工作计算节点传输检查点完成信号的部件包括用于响应于已经从所述多个工作计算节点中的每一个接收到检查点设置数据的确定而向所述多个工作计算节点传输检查点完成信号的部件。
示例52包括示例50和51中的任何一个的主题,并且还包括用于向通信耦合到统筹节点并且向统筹节点登记的多个工作计算节点中的每一个传输从所述多个工作计算节点中的每一个接收的检查点设置数据的部件。
Claims (25)
1.一种用于执行检查点设置事件的计算节点,所述计算节点包括:
从通信耦合到计算节点的统筹节点接收检查点初始化信号的硬件事件监视器;
检查点管理模块,用于(i)响应于已经接收到检查点初始化信号而暂停目前在计算节点上执行的一个或多个应用,以及(ii)通过输入/输出(I/O)缓冲设备缓冲一个或多个所暂停的应用的输入/输出(I/O)信号;以及
将检查点设置数据保存到计算节点的存储器存储设备的硬件检查点支持,其中检查点设置数据包括所述一个或多个应用中的每一个的执行状态,
其中检查点管理模块还向统筹节点传输检查点设置数据。
2.权利要求1所述的计算节点,其中检查点管理模块还响应于已经接收到检查点初始化信号而锁定所述计算节点的上下文以阻止由所述计算节点接收的任何新数据被所述计算节点处理。
3.权利要求2所述的计算节点,其中硬件事件监视器还通过硬件事件监视器从统筹节点接收检查点完成信号,并且其中检查点管理模块还响应于已经接收到检查点完成信号而继续进行一个或多个所暂停的应用。
4.权利要求3所述的计算节点,其中继续进行一个或多个所暂停的应用包括(i)解锁所述计算节点的上下文以允许任何新数据由所述计算节点接收,以及(ii)从输入/输出(I/O)缓冲设备释放所述一个或多个应用的输入/输出(I/O)信号。
5.权利要求1所述的计算节点,其中检查点管理模块还向统筹节点登记,其中登记包括提供检查点设置事件要由统筹节点发起的指示。
6.权利要求5所述的计算节点,其中检查点管理模块还(i)从统筹节点接收环境检查点设置数据,其中环境检查点设置数据包括通信耦合到统筹节点的其它计算节点的执行状态数据,以及(ii)在本地储存部中存储环境检查点设置数据。
7.权利要求6所述的计算节点,其中检查点管理模块还从统筹节点接收检查点恢复信号,
其中硬件检查点支持还向所述计算节点的存储器中加载所述一个或多个应用中的至少一个的所保存的执行状态,并且
其中检查点管理模块还从加载到存储器中的所保存的执行状态继续进行所述一个或多个应用中的所述至少一个的执行。
8.权利要求7所述的计算节点,其中加载所保存的执行状态包括至少部分地基于环境检查点设置数据而加载所保存的执行状态。
9.权利要求1所述的计算节点,其中检查点管理模块还使用由所述计算节点发起的主线程执行分布式应用,其中保存检查点设置数据包括保存分布式应用的执行状态,并且其中执行状态指示分布式应用的虚拟存储器状态。
10.权利要求9所述的计算节点,其中检查点管理模块还(i)响应于所述一个或多个应用中的第一应用滞后于主线程的确定而在所述计算节点的存储器中保存对应于第一应用的存储器页,以及(ii)响应于所述一个或多个应用中的第二应用在主线程之前工作的确定而清除对应于第二应用的存储器中的存储器页。
11.权利要求1所述的计算节点,其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲以下中的至少一个:存储器访问事件、盘访问事件和网络访问事件。
12.一种用于执行检查点设置事件的方法,所述方法包括:
通过计算节点的硬件事件监视器从通信耦合到计算节点的统筹节点接收检查点初始化信号;
通过计算节点的处理器响应于接收到检查点初始化信号而暂停目前在计算节点上执行的一个或多个应用;
通过计算节点的输入/输出(I/O)缓冲设备缓冲一个或多个所暂停的应用的输入/输出(I/O)信号;
通过计算节点的硬件检查点支持而将检查点设置数据保存到计算节点的存储器存储设备,其中检查点设置数据包括所述一个或多个应用中的每一个的执行状态;以及
通过计算节点向统筹节点传输检查点设置数据。
13.权利要求12所述的方法,还包括通过计算节点响应于接收到检查点初始化信号而锁定计算节点的上下文以阻止由计算节点接收的任何新数据被计算节点处理。
14.权利要求13所述的方法,还包括:
通过计算节点的硬件事件监视器从统筹节点接收检查点完成信号;以及
响应于接收到检查点完成信号而继续进行一个或多个所暂停的应用。
15.权利要求14所述的方法,其中继续进行一个或多个所暂停的应用包括(i)解锁计算节点的上下文以允许任何新数据由计算节点接收,以及(ii)从计算节点的输入/输出(I/O)缓冲设备释放所述一个或多个应用的输入/输出(I/O)信号。
16.权利要求12所述的方法,还包括通过计算节点向统筹节点登记以提供检查点设置事件要由统筹节点发起的指示。
17.权利要求16所述的方法,还包括:
通过计算节点从统筹节点接收环境检查点设置数据,其中环境检查点设置数据包括通信耦合到统筹节点的其它计算节点的执行状态数据;以及
通过计算节点在本地储存部中存储环境检查点设置数据。
18.权利要求17所述的方法,还包括:
通过计算节点从统筹节点接收检查点恢复信号;
通过硬件检查点支持向计算节点的存储器中加载所述一个或多个应用中的至少一个的所保存的执行状态;以及
通过计算节点从加载到存储器中的所保存的执行状态继续进行所述一个或多个应用中的所述至少一个的执行。
19.权利要求18所述的方法,其中加载所保存的执行状态包括至少部分地基于环境检查点设置数据而加载所保存的执行状态。
20.权利要求12所述的方法,还包括:
通过计算节点使用由计算节点发起的主线程执行分布式应用;
其中保存检查点设置数据包括保存分布式应用的执行状态,并且其中执行状态指示分布式应用的虚拟存储器状态。
21.权利要求20所述的方法,还包括:
响应于所述一个或多个应用中的第一应用滞后于主线程的确定而在计算节点的存储器中保存存储的对应于第一应用的存储器页;以及
响应于所述一个或多个应用中的第二应用在主线程之前工作的确定而清除对应于第二应用的存储器中存储的存储器页。
22.权利要求12所述的方法,其中缓冲一个或多个所暂停的应用的输入/输出(I/O)信号包括缓冲以下中的至少一个:存储器访问事件、盘访问事件和网络访问事件。
23.一种计算节点,包括:
处理器;以及
具有存储在其中的多个指令的存储器,所述多个指令在由处理器执行时使得计算节点执行权利要求12-22中任何一项所述的方法。
24.一个或多个机器可读存储介质,包括存储在其上的多个指令,所述多个指令响应于被执行而导致计算节点执行权利要求12-22中任何一项所述的方法。
25.一种计算节点,包括用于执行权利要求12-22中任何一项所述的方法的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/748650 | 2015-06-24 | ||
US14/748,650 US9727421B2 (en) | 2015-06-24 | 2015-06-24 | Technologies for data center environment checkpointing |
PCT/US2016/033934 WO2016209471A1 (en) | 2015-06-24 | 2016-05-24 | Technologies for data center environment checkpointing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107743618A true CN107743618A (zh) | 2018-02-27 |
Family
ID=57586179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680036762.4A Pending CN107743618A (zh) | 2015-06-24 | 2016-05-24 | 用于数据中心环境检查点设置的技术 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9727421B2 (zh) |
EP (1) | EP3314436A1 (zh) |
CN (1) | CN107743618A (zh) |
WO (1) | WO2016209471A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076228A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 分布式系统及其管理方法与装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200233677A2 (en) * | 2018-04-11 | 2020-07-23 | Smart Enterprises, Inc. | Dynamically-Updatable Deep Transactional Monitoring Systems and Methods |
US10776208B2 (en) * | 2018-07-18 | 2020-09-15 | EMC IP Holding Company LLC | Distributed memory checkpointing using storage class memory systems |
US10684666B2 (en) * | 2018-09-11 | 2020-06-16 | Dell Products L.P. | Startup orchestration of a chassis system |
US11641395B2 (en) * | 2019-07-31 | 2023-05-02 | Stratus Technologies Ireland Ltd. | Fault tolerant systems and methods incorporating a minimum checkpoint interval |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512374A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 机群中节点负载信息传递及节点存活检测的方法 |
US20080071575A1 (en) * | 2006-09-19 | 2008-03-20 | John Climax | Data management system and method |
US7627728B1 (en) * | 2005-12-29 | 2009-12-01 | Symantec Operating Corporation | System and method for efficient generation of application snapshots |
CN201497981U (zh) * | 2009-04-30 | 2010-06-02 | 升东网络科技发展(上海)有限公司 | 数据库故障自动检测及转移系统 |
CN102317881A (zh) * | 2009-09-25 | 2012-01-11 | 日立建机株式会社 | 机械的异常监视装置 |
CN102915257A (zh) * | 2012-09-28 | 2013-02-06 | 曙光信息产业(北京)有限公司 | 基于torque的并行检查点执行方法 |
CN104272249A (zh) * | 2012-06-08 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 使用fpga设置检查点 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401216B1 (en) * | 1998-10-29 | 2002-06-04 | International Business Machines Corporation | System of performing checkpoint/restart of a parallel program |
US6594779B1 (en) * | 1999-03-30 | 2003-07-15 | International Business Machines Corporation | Method, system and program products for managing the checkpointing/restarting of resources of a computing environment |
US7191292B2 (en) * | 2004-06-04 | 2007-03-13 | Sun Microsystems, Inc. | Logging of level-two cache transactions into banks of the level-two cache for system rollback |
US7478278B2 (en) * | 2005-04-14 | 2009-01-13 | International Business Machines Corporation | Template based parallel checkpointing in a massively parallel computer system |
US7581220B1 (en) * | 2005-11-22 | 2009-08-25 | Symantec Operating Corporation | System and method for modifying user memory from an arbitrary kernel state |
JP2008242744A (ja) * | 2007-03-27 | 2008-10-09 | Hitachi Ltd | Cdpに従うリカバリを実行するストレージ装置の管理装置及び方法 |
US20080244544A1 (en) * | 2007-03-29 | 2008-10-02 | Naveen Neelakantam | Using hardware checkpoints to support software based speculation |
US7856421B2 (en) * | 2007-05-18 | 2010-12-21 | Oracle America, Inc. | Maintaining memory checkpoints across a cluster of computing nodes |
JP2009205614A (ja) * | 2008-02-29 | 2009-09-10 | Fujitsu Ltd | ストレージシステムの制御方法、スイッチ装置およびストレージシステム |
US8381032B2 (en) * | 2008-08-06 | 2013-02-19 | O'shantel Software L.L.C. | System-directed checkpointing implementation using a hypervisor layer |
US8250033B1 (en) * | 2008-09-29 | 2012-08-21 | Emc Corporation | Replication of a data set using differential snapshots |
US10061464B2 (en) * | 2010-03-05 | 2018-08-28 | Oracle International Corporation | Distributed order orchestration system with rollback checkpoints for adjusting long running order management fulfillment processes |
US9495264B2 (en) * | 2010-08-09 | 2016-11-15 | Veritas Technologies Llc | Data replication techniques using incremental checkpoints |
US9507841B2 (en) * | 2011-06-16 | 2016-11-29 | Sap Se | Consistent backup of a distributed database system |
US8732128B2 (en) * | 2011-08-24 | 2014-05-20 | Ca, Inc. | Shadow copy bookmark generation |
US9098439B2 (en) * | 2012-01-05 | 2015-08-04 | International Business Machines Corporation | Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs |
US8832037B2 (en) * | 2012-02-07 | 2014-09-09 | Zerto Ltd. | Adaptive quiesce for efficient cross-host consistent CDP checkpoints |
US9069782B2 (en) * | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US20160179627A1 (en) * | 2013-07-30 | 2016-06-23 | Nec Europe Ltd. | Method and system for checkpointing a global state of a distributed system |
WO2015102873A2 (en) * | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
EP3090345B1 (en) * | 2013-12-30 | 2017-11-08 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
US9507668B2 (en) * | 2014-10-30 | 2016-11-29 | Netapp, Inc. | System and method for implementing a block-based backup restart |
US9411628B2 (en) * | 2014-11-13 | 2016-08-09 | Microsoft Technology Licensing, Llc | Virtual machine cluster backup in a multi-node environment |
-
2015
- 2015-06-24 US US14/748,650 patent/US9727421B2/en active Active
-
2016
- 2016-05-24 EP EP16814933.4A patent/EP3314436A1/en not_active Withdrawn
- 2016-05-24 CN CN201680036762.4A patent/CN107743618A/zh active Pending
- 2016-05-24 WO PCT/US2016/033934 patent/WO2016209471A1/en unknown
-
2017
- 2017-08-07 US US15/670,707 patent/US20170357552A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512374A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 机群中节点负载信息传递及节点存活检测的方法 |
US7627728B1 (en) * | 2005-12-29 | 2009-12-01 | Symantec Operating Corporation | System and method for efficient generation of application snapshots |
US20080071575A1 (en) * | 2006-09-19 | 2008-03-20 | John Climax | Data management system and method |
CN201497981U (zh) * | 2009-04-30 | 2010-06-02 | 升东网络科技发展(上海)有限公司 | 数据库故障自动检测及转移系统 |
CN102317881A (zh) * | 2009-09-25 | 2012-01-11 | 日立建机株式会社 | 机械的异常监视装置 |
CN104272249A (zh) * | 2012-06-08 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 使用fpga设置检查点 |
CN102915257A (zh) * | 2012-09-28 | 2013-02-06 | 曙光信息产业(北京)有限公司 | 基于torque的并行检查点执行方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076228A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 分布式系统及其管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
US20160378611A1 (en) | 2016-12-29 |
US9727421B2 (en) | 2017-08-08 |
US20170357552A1 (en) | 2017-12-14 |
WO2016209471A1 (en) | 2016-12-29 |
EP3314436A1 (en) | 2018-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023589B2 (en) | Secure booting of virtualization managers | |
CN107743618A (zh) | 用于数据中心环境检查点设置的技术 | |
US10318311B2 (en) | Memory allocation techniques at partially-offloaded virtualization managers | |
US11429414B2 (en) | Virtual machine management using partially offloaded virtualization managers | |
CN103827882B (zh) | 用于虚拟分区监视的系统和方法 | |
US7779305B2 (en) | Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions | |
US8904159B2 (en) | Methods and systems for enabling control to a hypervisor in a cloud computing environment | |
CN106030548B (zh) | 用于可信计算的多节点中枢 | |
US20150082309A1 (en) | System and method for providing redundancy for management controller | |
CN102314388A (zh) | 支持智能型平台管理接口的服务器的测试方法 | |
US9032414B1 (en) | Systems and methods for managing system resources allocated for backup validation | |
EP2875431A1 (en) | System and method for operating system agnostic hardware validation | |
KR20140127804A (ko) | 서버 클라우드내의 온 디맨드 용량 관리 | |
US10353786B2 (en) | Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program | |
CN107408016A (zh) | 使用处理器事务性内存支持的内存访问保护 | |
CN105308553A (zh) | 动态提供存储 | |
CN116304233A (zh) | 用于微服务体系结构中的增强的调试的遥测目标查询注入 | |
CN113805907A (zh) | 流水线滚动更新 | |
US11126575B1 (en) | Interrupt recovery management | |
US8972802B2 (en) | Providing high availability to a hybrid application server environment containing non-java containers | |
WO2024087932A1 (zh) | 控制方法、设备及计算设备 | |
US20210374005A1 (en) | Systems and methods for verifying and preserving the integrity of basic input/output system before powering on of host system and management engine | |
CN109408281A (zh) | 用于无头服务器可管理性和自主日志记录的技术 | |
US20230315437A1 (en) | Systems and methods for performing power suppy unit (psu) firmware updates without interrupting a user's datapath | |
CN107885574B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180227 |