共享卷的应用一致的快照

申请号 CN201210559724.0 申请日 2012-12-20 公开(公告)号 CN103136073A 公开(公告)日 2013-06-05
申请人 微软公司; 发明人 J·布拉戈海因; V·R·尚卡尔; A·达马托;
摘要 本 发明 涉及共享卷的应用一致的快照。本发明涉及用于创建共享卷的快照的方法、系统和 计算机程序 产品,该快照跨群集的多个 节点 是应用一致的。本发明允许在一个节点上发起卷的快照,这使得群集中使用该卷的所有应用在创建快照之前就将它们的数据持久保存到该卷。因此,该快照对于群集中使用该卷的所有应用来说是应用一致的。本发明还允许在各个节点上的应用在所创建的快照上执行后快照处理。本发明可以用于现有的没有意识到群集的备份系统中,以允许现有的备份系统创建由跨群集的多个节点的应用所共享的卷的应用一致的快照。
权利要求

1.在群集的第一节点处的一种用于创建共享卷的快照的方法,所述第一节点包括备份应用、备份协调器、至少一个应用、存储提供者、群集服务以及群集写入器,所述快照对于在所述群集中超过一个的节点上的使用所述共享卷的应用具有应用一致性,所述方法包括:
在第一节点上的备份协调器处接收来自备份应用的请求,所述请求请求为由所述第一节点上的至少一个应用和所述群集中的至少一个其它节点上的至少一个应用所使用的共享卷创建快照,所述第一节点上的和所述至少一个其它节点上的所述至少一个应用中的每个应用包括一个写入器,并且其中所述第一节点和所述至少一个其它节点中的每个节点还包括一个群集写入器和一个群集服务;
由所述备份协调器将冻结命令发送给所述第一节点上的所述群集写入器和每个写入器,所述冻结命令指令所述第一节点上的所述群集写入器和每个写入器将应用数据持久保存到所述共享卷;
由所述第一节点上的所述群集写入器将所述冻结命令的通知发送给所述第一节点上的所述群集服务;
由所述第一节点上的所述群集服务将所述冻结命令的通知发送给所述至少一个其它节点中的每个节点上的群集服务,所述通知指令所述至少一个其它节点中的每个节点上的所述群集服务以发起在所述至少一个其它节点中的每个节点上的所述共享卷的备份过程;
在从所述冻结命令返回之前,由所述第一节点上的所述群集写入器等待来自所述至少一个其它节点中的每个节点上的群集服务的通知,所述通知指示对应的节点上的每个写入器已经将对应的应用数据持久保存到所述共享卷;
一旦接收到来自所述至少一个其它节点的每个节点上的所述群集服务处的所述通知,由所述第一节点上的所述群集写入器从所述冻结命令返回;以及
一旦所述第一节点上的所述群集写入器从所述冻结命令返回,由所述备份协调器将请求发送给所述存储提供者,所述请求使得所述存储提供者创建所述共享卷的快照,所述快照对于所述第一节点和所述至少一个其它节点上的使用所述共享卷的每个应用具有应用一致性。
2.如权利要求1所述的方法,其特征在于,还包括:
在将使得所述存储提供者创建所述共享卷的快照的所述请求发送给所述存储提供者之前,由所述备份协调器将转储清除且保持命令发送给所述共享卷,这样使得所述共享卷持久保存文件系统的元数据。
3.如权利要求1所述的方法,其特征在于,还包括:
在创建所述快照之后,由所述备份协调器将后快照命令发送给所述第一节点上的所述群集写入器和至少一个所述写入器;以及
由所述第一节点上的所述群集写入器将后快照命令的通知发送给所述第一节点上的所述群集服务;以及
由所述第一节点上的所述群集服务将所述后快照命令的通知发送给所述至少一个其它节点的每个节点上的所述群集服务。
4.如权利要求3所述的方法,其特征在于,所述第一节点上的被发送了所述后快照命令的所述至少一个写入器包括管理程序应用的写入器。
5.如权利要求3所述的方法,其特征在于,还包括:
由所述第一节点上的所述群集写入器等待来自所述至少一个其它节点中的每个节点上的所述群集服务的通知,所述通知指示了所述备份过程已经在所述至少一个其它节点中的每个节点上完成;以及
由所述第一节点上的所述群集写入器从所述至少一个其它节点中的每个节点上的所述群集服务处接收所述备份过程已经完成的所述通知。
6.如权利要求5所述的方法,其特征在于,还包括:
在接收到来自所述至少一个其它节点的每个节点上的所述群集服务处的所述备份过程已经完成的所述通知之后,由所述第一节点上的所述群集写入器从所述后快照命令返回。
7.如权利要求6所述的方法,其特征在于,还包括:
在所述第一节点上的所述群集写入器和所述至少一个写入器从所述后快照命令返回之后,所述备份协调器通知所述备份应用所述快照已经成功完成。
8.在群集的一个节点处的一种用于对共享卷的备份过程已经在所述群集的另一个节点上发起的通知作出响应的方法,所述节点包括备份协调器、至少一个应用、助手提供器、群集服务以及群集写入器,,所述方法包括:
在所述第一节点上的群集服务处接收已经在所述群集中的第二节点上发起共享卷的备份过程的通知,所述共享卷由所述第一和第二节点的每个节点上的至少一个应用来使用,所述通知是从所述第二节点上的群集服务处接收的并且指示了由所述第二节点上的群集写入器接收到冻结命令;
由所述第一节点上的所述群集服务将请求发送给所述第一节点上的备份协调器,所述请求请求了创建所述共享卷的快照;
由所述备份协调器将冻结命令发送给所述第一节点上的群集写入器和所述第一节点上的所述至少一个应用的写入器,所述冻结命令指令所述群集写入器和所述至少一个写入器将应用数据持久保存到所述共享卷;
在所述群集写入器和所述至少一个写入器从冻结命令返回之后,由所述备份协调器将提交命令发送给所述第一节点上的助手提供者;
由所述第一节点上的所述助手提供者将所述提交命令的通知发送给所述第一节点上的所述群集服务,其中所述助手提供者阻塞在所述提交命令上;以及
由所述第一节点上的所述群集服务将通知发送给所述第二节点上的所述群集写入器,所述通知表明已经接收到所述提交命令从而指示了所述第一节点上的每个写入器已经将对应应用的数据持久保存到所述共享卷。
9.如权利要求8所述的方法,其特征在于,由所述第一节点上的所述群集服务所发送的创建所述共享卷的快照的请求指定了所述助手写入器将被用于创建所述快照。
10.如权利要求8所述的方法,其特征在于,还包括:
由所述第一节点上的所述群集服务接收来自所述第二节点上的所述群集服务的通知,该通知指示后快照命令已经被所述第二节点上的所述群集写入器接收。
11.如权利要求10所述的方法,其特征在于,还包括:
由所述第一节点上的所述群集服务将所述后快照命令被所述第二节点上的所述群集写入器接收的通知发送给所述助手提供者。
12.如权利要求11所述的方法,其特征在于,还包括:
由所述助手提供者从所述提交命令返回。
13.如权利要求12所述的方法,其特征在于,还包括:
由所述第一节点上的所述群集写入器和所述至少一个写入器接收后快照命令;以及由所述至少一个写入器在虚拟快照上执行后处理。
14.如权利要求13所述的方法,其特征在于,还包括:
在所述第一节点上的所述群集写入器和所述至少一个写入器从所述后快照命令返回之后,所述备份协调器通知所述第一节点上的所述群集服务已经在所述第一节点上成功创建了所述快照;以及
响应于所述通知,所述第一节点上的所述群集服务通知所述第二节点上的所述群集写入器在所述第一节点上成功创建了所述快照,因而,向所述第二节点上的所述群集写入器指示了所述至少一个写入器的每个写入器处理了所述第一节点上的所述后快照命令。
15.如权利要求14所述的方法,其特征在于,还包括:
所述第一节点上的所述群集写入器删除在所述第一节点上的所述虚拟快照。

说明书全文

共享卷的应用一致的快照

技术领域

[0001] 本申请涉及共享卷的快照,特别是共享卷的应用一致的快照。

背景技术

[0002] 1.背景和相关技术
[0003] 计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
[0004] 在分布式环境中主存应用正变得越来越常见。例如,应用通常被主存在节点群集的一个节点(例如服务器)上。在该群集中,不同的应用可以被主存在不同的节点上,但它们各自都可以访问一个或多个公共存储卷。换句话说,一个存储可以由跨群集的各个节点分布的许多不同的应用来访问。
[0005] 图1描述了这种类型的环境。如所示,群集100包括节点101-103。在该示例性群集中,每个节点包括一个协调器、一个备份应用、一个存储提供者和两个应用。然而,节点可以包括任意数目的应用以及多个存储提供者。在该示例中,每个应用使用存储104上的卷104a来存储数据。
[0006] 在图1中描述的组件表示了已被用于执行在群集中以及非群集环境中的备份的现有技术的备份系统。微软的Volume Shadow Copy Service(VSS(卷阴影复制服务))是可以用在该类型的备份系统中的协调器的一个示例。在该备份系统中,协调器110-130被用于协调诸如卷104a的共享卷的备份。该备份可以包括卷104a的时间点图像(即快照)。虽然快照的创建将被描述为在节点101上发生,但是,类似的步骤可以在每个节点上执行以在该节点上创建卷104a的快照。换句话说,节点101-103上的每个协调器都起到类似于创建卷的快照的作用。
[0007] 为了在节点101上创建快照,备份应用114将请求发送给协调器110以创建一个快照。在该请求中,备份应用114指定了应该被用于创建快照的存储提供者(在该示例中,存储提供者113)。协调器110与节点101上的每个应用的写入器(写入器111a和112a)进行通信,以指令它们准备快照。该通信被称为冻结命令。
[0008] 这种准备包括将存储器内的高速缓存转储清除到盘并挂起(即冻结)应用的写入,直到创建了快照。通过这种方式,每个写入器确保了在创建快照之前,所有应用数据都持久保存到卷104a。一旦每个写入器从冻结命令返回,协调器110指令卷104a例如通过将文件系统元数据持久保存到卷104a并挂起对卷104a的写入来准备快照。该通信被称为转储清除且保持命令。
[0009] 一旦卷104a已经从转储清除且保持命令返回,协调器110指令存储提供者113创建卷104a的快照。这被称为提交命令。虽然示出的是一个存储提供者,但一个节点可以使用多个存储提供者,例如用于与存储104的硬件控制器直接对接的硬件存储提供者,或用于与操作系统(例如文件系统)对接的软件存储提供者。对于本发明来说,用于创建快照的存储提供者的类型并不重要。
[0010] 存储提供者113创建卷104a的快照。该快照是如在单个时间点(例如在每个写入器已经将节点101上每个应用的数据持久保存到卷104a并且卷104a已经转储清除了其高速缓存之后的时间点)处存在的卷104a的内容的副本。一旦创建了该快照且存储提供者113从提交命令返回,协调器110指令卷104a它可以重新开始处理(被称为释放命令),并且随后指令每个写入器应用可以重新开始写入到卷104a(被称为解冻命令)。如所见,该备份过程允许应用在快照创建期间继续执行。仅在冻结和解冻命令的接收之间阻止应用向卷
104a写入。然而,在这期间应用可以继续以读取卷104a。
[0011] 该备份过程产生了具有文件系统一致性的卷104a的时间点快照,因为转储清除且保持命令使得所有的文件系统数据在创建该快照之前就被持久保存。时间点快照还具有与在节点(其中在该节点上发起快照且在本示例中是节点101)上运行的每个应用的应用一致性,因为冻结命令使得每个应用将其数据持久保存到卷104a。
[0012] 然而,当该现有技术的备份过程被用在群集环境中时,卷104a的时间点快照对于在节点102或103上运行的每个应用并不具有应用一致性。这是因为协调器110不与群集中的其它节点(例如节点102和103)通信。更具体而言,该现有技术的备份系统没有被配置为允许一个节点上的协调器与另一个节点上的协调器或写入器进行通信。因此,应用121、122、131和132将包含在节点101上创建快照之前并没有被持久保存到卷104a的存储器内的高速缓存(或其它非持久保存的数据),并且因此,该非持久保存的数据将不被包括在快照中。
[0013] 鉴于此,在该现有技术的备份系统中,为了为群集中的每个应用创建时间点快照,用户被迫在群集的每个节点上发起快照。例如,用户将使用每个节点102和103上的备份应用124和134来分别与协调器120和130通信以遵循上述同一过程创建卷104a的个别的时间点快照。这导致在群集的每个节点上都创建了一个个别的快照。

发明内容

[0014] 本发明涉及用于创建共享卷的快照的方法、系统和计算机程序产品,该快照跨多个节点是应用一致的。本发明允许在一个节点上发起卷的快照,这使得群集中使用该卷的所有应用在创建快照之前就将它们的数据持久保存到该卷上。因此,该快照对于群集中使用该卷的所有应用来说是应用一致的。本发明还允许在其它节点上的应用在该节点上创建的快照上执行后快照(post snapshot)处理。
[0015] 在一个实施例中,在群集的第一节点上的备份协调器处接收一个请求。该请求从备份应用接收并请求为由第一节点上或在群集的至少一个其它节点上的至少一个应用使用的共享卷创建一个快照。在第一节点上或在至少一个其它节点上的所述至少一个应用的每一个都包括一个写入器。第一节点和所述至少一个其它节点的每个节点还包括一个群集写入器。
[0016] 备份协调器将冻结命令发送给第一节点上的群集写入器和每个写入器。冻结命令指令第一节点上的群集写入器和每个写入器将应用数据持久保存到共享卷。在第一节点上的群集写入器随后将冻结命令的通知发送给第一节点上的群集服务。第一节点上的群集服务将冻结命令的通知发送给至少一个其它节点的每个节点上的群集服务。该通知指令至少一个其它节点的每个节点上的群集服务发起在至少一个其它节点的每个节点上的共享卷的备份过程。
[0017] 在第一节点上的群集写入器在从冻结命令返回之前等待来自至少一个其它节点的每个节点上的群集服务处的通知。该通知指示对应的节点上的每个写入器已经将对应的应用数据持久保存到该共享卷上。一旦接收到来自至少一个其它节点的每个节点上的群集服务处的通知,在第一节点上的群集写入器从冻结命令返回。
[0018] 一旦在第一节点上的群集写入器从冻结命令返回,备份协调器向第一节点上的存储提供者发送一个请求。该请求使得存储提供者创建共享卷的快照。该快照对于使用该共享卷的第一节点上的和至少一个其它节点上的每个应用来说具有应用一致性。
[0019] 在另一个实施例中,在第一节点上的群集服务处接收通知。该通知指示已经在群集的第二节点上发起共享卷的备份过程。该共享卷由第一和第二节点中的每个节点上的至少一个应用来使用。从第二节点上的群集服务处接收该通知并且该通知指示第二节点上的群集写入器接收了冻结命令。
[0020] 第一节点上的群集服务将请求发送给第一节点上的备份协调器。该请求请求创建共享卷的快照。备份协调器将冻结命令发送给第一节点上的群集写入器和第一节点上的至少一个应用的写入器。冻结命令指令群集写入器和至少一个写入器将应用数据持久保存到共享卷。
[0021] 在群集写入器和至少一个写入器从冻结命令返回之后,备份协调器将提交命令发送给第一节点上的助手提供者。在第一节点上的助手提供者将提交命令的通知发送给第一节点上的群集服务。助手提供者阻塞在提交命令上。第一节点上的群集服务随后将通知发送给第二节点上的群集写入器,该通知表明已经接收到提交命令并从而指示了第一节点上的每个写入器已经将对应应用的数据持久保存到共享卷。
[0022] 提供本发明内容以便以简化的形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容既不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于助手确定要求保护的主题的范围。
[0023] 本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本说明书将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获取。本发明的这些以及其他特征将通过以下描述和所附权利要求书变得更加显而易见,或者可通过对下文中所阐述的本发明的实践来获知。
[0024] 附图简述
[0025] 为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。应当理解,这些附图只描述了本发明的典型实施例,并且因此不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
[0026] 图1示出了具有现有技术的备份系统的组件的节点的示例性群集;
[0027] 图2示出具有根据本发明的实施例的备份系统的组件的节点的示例性群集;
[0028] 图3示出一个示例性节点群集,该群集示出了在备份过程期间的通信序列。
[0029] 图4示出一个示例性节点群集,该群集示出了在备份过程期间的另一通信序列。
[0030] 图5示出了一种用于发起共享卷的快照的创建的示例方法的流程图,所述共享卷由群集中的多个节点上的应用使用;以及
[0031] 图6示出一种用于响应于已经在群集的另一个节点上发起共享卷的快照的创建的通知的示例方法的流程图。

具体实施方式

[0032] 本发明的各个实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如举例而言一个或多个处理器以及系统存储器的计算机硬件,如在下文中更详细讨论的。本发明范围内的各个实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理以及其他计算机可读介质。这种计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各个实施例可包括至少两
[0033] 种明显不同的计算机可读介质:计算机存储介质(设备)和传输介质。
[0034] 计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储计算机可执行指令或数据结构形式的期望程序代码装置且可由通用或专用计算机访问的任何其他介质。
[0035] “网络”被定义为允许在计算机系统和/或模和/或其他电子设备之间传送电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应当包括在计算机可读介质的范围内。
[0036] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。由此,应当理解,计算机存储介质(设备)可被包括在还(甚至主要地)利用传输介质的计算机系统组件中。
[0037] 计算机可执行指令包括例如在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或者甚至源代码。虽然用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于以上所述的特征或动作。相反,所述的特征和动作是作为实现权利要求的示例形式而公开的。
[0038] 本领域的技术人员应当理解,本发明可在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板机、寻呼机、路由器、交换机等。本发明也可在其中通过网络(通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)链接的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。
[0039] 图2示出包括与图1中所示的群集100相同的节点的群集200。群集200中的每个节点包括相同的组件,除了出于清楚的目的没有示出备份应用124和134和存储提供者123和133之外(尽管它们还是可以存在于这些节点之上,例如如果在希望从节点102和
103发起备份时可以存在)。而且,每个节点示出为包括群集服务和群集写入器。这些群集服务和群集写入器允许创建对于群集200中使用卷104a的所有应用都应用一致的卷104a的快照。群集服务和群集写入器被配置为在图1所述的现有技术的备份系统内执行以允许现有技术的备份系统创建群集范围的应用一致的快照。
[0040] 如相对于图1所述的,备份应用114可以通过与协调器110通信来发起卷104a的快照的创建。该通信包括指定存储提供者113应该被用于创建快照。响应于来自备份应用114的请求,协调器110将冻结命令发送给写入器111a和112a以及群集写入器201(因为类似于写入器111a和112a,群集写入器201被作为一个写入器注册到协调器110)。
[0041] 写入器111a和112a如上相对于图1所述地响应冻结命令。然而,响应于冻结命令,群集写入器201与节点101上的群集服务204通信,群集服务204随后与群集中其它节点上的群集服务进行通信。因此,冻结命令出现在节点101上的通知由群集服务204广播到群集服务205和206。
[0042] 在通知群集服务204冻结命令之后,群集写入器201一直等待(即不从冻结命令返回),直到它接收到来自群集服务205和206的每一个的响应。通过等待响应冻结命令,群集写入器201阻止协调器110继续备份过程。
[0043] 当群集服务接收到冻结命令在群集中另一个节点上发生的通知时,群集服务可用作备份应用以发起在对应的节点上的快照的创建。例如,当群集服务205接收到来自群集服务204的通知时,群集服务205将与协调器120通信以发起在节点102上的快照的创建。群集服务205指定了助手提供者223应该被用于创建节点102上的快照。类似地,当群集服务206接收到来自群集服务204的通知时,群集服务206将与协调器130通信以发起在节点103上的快照的创建。群集服务206指定了助手提供者233应该被用于创建节点103上的快照。
[0044] 所以,协调器120和130通过将冻结命令发送到节点上的每个写入器来分别开始在节点102和103上的快照的创建。例如,协调器120将冻结命令发送给写入器121a和122a以及群集写入器202,而协调器130将冻结命令发送给写入器131a和132a以及群集写入器203。如相对于图1所述,冻结命令使得每个写入器例如通过持久保存其存储器内的数据来准备快照的创建。群集写入器202和203简单地从冻结命令返回。
[0045] 在节点102和103上的写入器从冻结命令返回之后,协调器120和130向卷104a发送转储清除且保持命令。如何处理这些转储清除且保持命令对于本发明来说并不关键。对于本发明来说,应该理解来自协调器120和130的这些转储清除且保持命令最终不被路由到卷104a(因为转储清除且保持命令将如下所述地由协调器110发送给卷104a)。
[0046] 接着,协调器120和130将提交命令分别发送给助手提供者223和233(因为助手提供者223和233在各自的请求中被指定为发起快照)。助手提供者223和233通过阻塞来响应该提交命令。换句话说,助手提供者223和233最初并不响应协调器120和130。另外,助手提供者223和233不创建卷104a的快照(如果发送了提交命令给存储提供者则将完成创建)。
[0047] 相反,助手提供者223和233将提交命令分别通知群集服务205和206。作为响应,群集服务205和206的每一个通知群集写入器201。这些通知告知群集写入器201冻结命令在每个节点102和103上被成功完成,因而指示了在节点102和103上的应用已经将它们的数据成功地持久保存到卷104a。
[0048] 因为助手提供者223和233阻塞在提交命令上,协调器120和130将不会发送释放或解冻命令给卷104a或各个写入器,这样,阻止了写入器修改卷104a直到已经在节点101上创建了快照。
[0049] 一旦群集写入器201已经接收到来自群集写入器202和203的通知,群集写入器201从冻结命令返回(即告知协调器110它已经完成了响应于冻结命令的处理)。协调器110随后继续进行转储清除且保持命令以及提交命令,如上所述,导致存储提供者113创建卷
104a的快照。该快照对于群集中使用卷104a的所有应用来说是应用一致的,因为在创建快照之前,每个应用已将其数据持久保存到卷104a。
[0050] 图3描述了另一个群集300。群集300是一个简化的群集(即在群集200中示出的组件的子集),这将更好地描述本发明所使用的用于创建群集范围的应用一致的快照的备份过程。下述编号的步骤对应于图3中编号的箭头。
[0051] (1)备份应用314请求协调器310发起使用存储提供者313的卷304a的快照的创建。
[0052] (2)协调器310将冻结命令发送给写入器311a和群集写入器351。写入器311a处理冻结命令并在某个点返回。
[0053] (3)群集写入器351通知群集服务361在节点310上的冻结命令并阻塞。
[0054] (4)群集服务361通知群集服务362该冻结命令。
[0055] (5)群集服务362请求协调器320发起使用存储提供者323的卷304a的快照的创建。
[0056] (6)协调器320将冻结命令发送给写入器321a和群集写入器352。写入器321a处理冻结命令并在某个点返回。群集写入器352从冻结命令简单地返回。
[0057] (7)协调器320将转储清除且保持命令发送给卷304a。在没有将转储清除且保持命令发送给卷304a的情况下处理该命令。
[0058] (8)协调器320将提交命令发送给助手提供者323。
[0059] (9)助手提供者323将提交命令的通知发送给群集服务362并阻塞。
[0060] (10)群集服务362通知群集写入器351该提交命令。
[0061] (11)群集写入器351从冻结命令返回。
[0062] (12)协调器310将转储清除且保持命令发送给卷304a。卷304a处理转储清除且保持命令并返回。
[0063] (13)协调器310将提交命令发送给存储提供者313。
[0064] (14)存储提供者313创建卷304a的快照。
[0065] 再次返回到图2,在已经创建了卷104a的快照之后,执行各种附加的步骤以完成所述备份过程。在创建了快照之后,协调器110将后快照命令发送给至少一些写入器(例如管理程序写入器和群集写入器)以允许写入器在最终完成快照之前在所创建的快照上执行某些最小限度的处理(例如写入到磁带)。这种最小限度的处理通常被局限于对应用本身的数据的修改(例如回退部分提交的事务)。
[0066] 当群集写入器201接收后快照命令时,群集写入器201通知群集服务204,群集服务204随后把后快照命令的通知发送给群集服务205和206。群集写入器201随后等待,直到在从后快照命令返回之前从每个群集服务205和206接收到响应。在这种情况中,群集写入器201以与其处理冻结命令非常相似的方式(即通过阻塞)来处理后快照命令。
[0067] 向其它节点通知后快照命令的原因在于允许其它节点上的写入器在快照上执行后快照处理。因为实际的快照位于节点101上,在每个节点102和103上创建虚拟快照。共同拥有的美国专利申请号为12/971,981,2010年12月17日提交的,名为“BACKUP ANDRESTORE OF DATA FROM ANY CLUSTER NODE(备份和恢复来自任意群集节点的数据)”的申请描述了如何将虚拟快照用于执行后快照处理。
[0068] 一旦接收到后快照命令的通知,群集服务205和206随后分别通知助手提供者223和233。直到这时,助手提供者223和233一直阻塞在提交命令上。节点101上的后快照命令被发送的通知向助手提供者223和233指示它们可以从提交命令返回。
[0069] 一旦助手提供者223和233从提交命令返回,协调器120和130各自将后快照命令发送给各个节点上的至少一些写入器。以这种方式,每个节点上的每个写入器被给予了在所创建的快照上执行附加处理的机会。当在冻结命令情况中,群集写入器202和203还接收后快照命令并简单地返回。
[0070] 一旦节点102和103上的每个写入器已经从后快照命令返回,协调器120和130可以(例如通过发送出释放和解冻命令)完成备份过程,并且随后分别通知群集服务205和206快照完成。群集服务205和206接收该通知,因为它们正作为节点102和103上的备份应用(即它们发起备份过程)。群集服务205和206随后通知群集写入器201在节点102和
103上的备份过程的完成。
[0071] 一旦群集写入器201已经接收到在其它节点的每个节点上的备份过程完成的通知,群集写入器201从后快照命令返回,以便允许协调器110(例如通过发送出释放和解冻命令)完成节点101上的备份过程。协调器110随后通知备份应用114该快照已经被成功创建。备份应用114随后可以对快照做任何想做的事情(例如将其复制到磁带)。
[0072] 图4,类似于图3,描绘了群集300,并且将被用于更好地描述执行后快照处理的步骤。下面编号的步骤可以在已经执行了图3的步骤1-13之后再执行。
[0073] (1)协调器310将后快照命令发送给写入器311a和群集写入器351。写入器311a处理后快照命令并在某个点返回。
[0074] (2)群集写入器351通知群集服务361后快照命令并阻塞。
[0075] (3)群集服务361通知群集服务362后快照命令。
[0076] (4)群集服务362通知助手提供者323由节点301上的群集写入器351接收到该后快照命令。
[0077] (5)助手提供者323从提交命令返回。
[0078] (6)协调器320将后快照命令发送给写入器321a和群集写入器352。写入器321a处理后快照命令并在某个点返回。群集写入器352简单地返回。
[0079] (7)一旦每个写入器已经从后快照命令返回,协调器320通知群集服务362(它请求了在节点302上的备份)该快照完成。
[0080] (8)群集服务362通知群集写入器351在节点302上的备份过程的完成。
[0081] (9)群集写入器351从后快照命令返回。
[0082] (10)协调器310通知备份应用314该快照已经被成功创建。
[0083] 如可以见到的,通过这种使用一个节点上的群集写入器来将冻结和后快照命令通信给其它节点上的群集写入器的过程,在这些其它节点上的写入器能够将对应的应用的数据持久保存在这些其它节点上。该结果是在一个节点上创建的快照不仅对于在其上发起备份的节点上的应用来说,而且对于群集中的使用正被备份的该卷的任意节点来说都具有应用一致性。
[0084] 而且,该过程允许图1中所描述的现有技术的备份系统在不需要修改该备份系统的基本控制流程的情况下被用来创建这些群集范围的应用一致的快照。换句话说,每个节点上的协调器不需要被修改以实现本发明。群集写入器和助手提供者对协调器遮挡了被执行用于创建群集范围的应用一致的快照的附加步骤(即对于协调器,群集写入器作为写入器出现,而助手提供者作为存储提供者出现)。
[0085] 图5示出了一种用于发起共享卷的快照的创建的示例方法500的流程图,所述共享卷由群集中的多个节点上的应用使用。方法500将参照图2的群集200来描述。
[0086] 方法500包括在第一节点上的备份协调器处接收来自备份应用的请求的动作501。该请求请求为由第一节点上的至少一个应用和在群集的至少一个其它节点上的至少一个应用所使用的共享卷创建一个快照。在第一节点上和在至少一个其它节点上的所述至少一个应用的每一个都包括一个写入器。第一节点和所述至少一个其它节点的每个节点还包括一个群集服务和一个群集写入器。例如,协调器110可以接收来自备份应用114的请求创建卷104a的快照的请求。
[0087] 方法500包括由备份协调器将冻结命令发送给第一节点上的群集写入器和每个写入器的动作502。冻结命令指令第一节点上的群集写入器和每个写入器将应用数据持久保存到共享卷。例如,协调器110可以将冻结命令发送给写入器111a和112a以及群集写入器201。
[0088] 方法500包括由第一节点上的群集写入器将冻结命令的通知发送给第一节点上的群集服务的动作503。例如,群集写入器201可以向群集服务204通知冻结命令。
[0089] 方法500包括由第一节点上的群集服务将冻结命令的通知发送给至少一个其它节点的每个节点上的群集服务的动作504。该通知指令至少一个其它节点的每个节点上的群集服务发起在至少一个其它节点的每个节点上的共享卷的备份过程。例如,群集服务204可以将通知发送给群集服务205和206。
[0090] 方法500包括在从冻结命令返回之前由第一节点上的群集写入器等待来自至少一个其它节点的每个节点上的群集服务处的通知的动作505。该通知指示对应的节点上的每个写入器已经将对应的应用数据持久保存到该共享卷。例如,群集写入器201可以阻塞在冻结命令上直到群集服务205和群集服务206通知群集写入器201写入器121a和122a以及写入器131a和132a分别已经将它们对应的应用数据持久保存到卷104a。
[0091] 方法500包括一旦接收到来自至少一个其它节点的每个节点上的群集服务处的通知,在第一节点上的群集写入器就从冻结命令返回的动作506。例如,一旦接收到来自群集服务205和206的通知,群集写入器201可以从冻结命令返回。
[0092] 方法500包括一旦第一节点上的群集写入器从冻结命令返回,由备份协调器将请求发送给存储提供者的动作507。所述请求使得存储提供者创建共享卷的快照,所述快照对于第一节点上的和至少一个其它节点上的使用该共享卷的每个应用具有应用一致性。例如,协调器110可以请求存储提供者113创建卷104a的快照。
[0093] 图6示出一种用于响应于已经在群集的另一个节点上发起共享卷的快照的创建的通知的示例方法600的流程图。方法600将参照图2的群集200来描述。
[0094] 方法600包括在第一节点上的群集服务处接收共享卷的备份过程已经在群集中的第二节点上发起的通知的动作601。该共享卷由第一和第二节点上的每个节点上的至少一个应用来使用。从第二节点上的群集服务处接收该通知并且该通知指示第二节点上的群集写入器接收了冻结命令。例如,群集服务205可以从群集服务204接收指示群集写入器201接收到来自协调器110的备份过程的冻结命令的通知。
[0095] 方法600包括由第一节点上的群集服务将请求发送给第一节点上的备份协调器的动作602。该请求请求创建共享卷的快照。例如,群集服务205可以发送一个请求给协调器120以请求在节点102上创建卷104a的快照。
[0096] 方法600包括由备份协调器将冻结命令发送给第一节点上的群集写入器和第一节点上的至少一个应用的写入器的动作603。冻结命令指令群集写入器和至少一个写入器将应用数据持久保存到共享卷。例如,协调器120可以将冻结命令发送给写入器121a和122a以及群集写入器202。
[0097] 方法600包括在群集写入器和至少一个写入器从冻结命令返回之后,由备份协调器将提交命令发送给第一节点上的助手提供者的动作604。例如,协调器120可以将提交命令发送给助手提供者223。
[0098] 方法600包括由第一节点上的助手提供者将提交命令的通知发送给第一节点上的群集服务的动作605。助手提供者阻塞在提交命令上。例如助手提供者223可以将提交命令通知群集服务205并随后阻塞。
[0099] 方法600包括由第一节点上的群集服务将通知发送给第二节点上的群集写入器的动作606,所述通知表明已经接收到提交命令,从而指示了第一节点上的每个写入器已经将对应应用的数据持久保存到共享卷。例如,群集服务205可以向群集写入器201发送指示写入器121a和写入器122a已经将它们的应用数据持久保存到卷104a的通知。
[0100] 本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为只是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都涵盖在权利要求书的范围内。
QQ群二维码
意见反馈