Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. CN102597963 - Dynamic replica volume swap in a cluster

Note: Texte fondé sur des processus automatiques de reconnaissance optique de caractères. Seule la version PDF a une valeur juridique

[ ZH ]
集群中的动态副本卷交换


技术领域
本发明涉及与多个存储设备通信的分布式多处理计算机系统。更具体地, 本发明涉及在动态副本卷交换(dynamic replica volume swap,DRVS)操作期 间处理一个或多个节点的故障。
背景技术
在计算机科学中,集群是一起工作以形成单个计算机系统的一组计算机 (也称为节点)。存在不同类别的集群,包括但不限于高可用性集群和网格集 群。采用高可用性集群来改进集群服务的可用性,其中集群的每个成员与多 个存储设备通信。在高可用性集群中,当有时存储设备可能出现故障时,希 望提供跨越存储故障的应用弹性。如果关键数据保持在已经出现故障或正出 现故障的存储设备上,那么存储设备的故障可能导致系统中断,因为即使使 用同步存储复制将最近的数据的副本保持在另一存储系统中,应用也不得不 在它们可以使用副本数据之前停止和重启,并且这样的应用运行中断(outage) 在一些企业环境中可能是不可接受的。
诸如操作的动态副本卷交换操作是一种连续可用性 解决方案,其中访问包含一组存储卷的同步复制存储系统的一组节点从主存 储系统切换到副(副本)存储系统,并且在没有集群中的任何节点的任何应 用运行中断的情况下必须这样做(IBM和HyperSwap是国际商用机器公司在 美国、其他国家或二者的注册商标)。动态副本卷交换操作可能因为存储系统 故障发生(称为非计划的动态副本卷交换),或者在管理控制下发生(称为计 划的动态副本卷交换)。此外,动态副本卷交换操作可能涉及存储系统中的引 导卷和非引导卷两者。
图1是图示可能导致系统错误的、集群环境中现有技术的动态副本卷交 换操作的示例的流程图(100)。该示例集群由与存储子系统通信的至少两个 节点构成,该存储子系统具有主存储系统上的一个或多个存储卷,以及副系 统上相应的副本卷(102)。集群中的每个节点在副本在副存储系统中的情况 下从主存储系统中的(引导)卷引导(104)。集群中的第三节点处于临时离 线状态(106)。调用动态副本卷交换操作(108),其中驻留在主存储系统中 的引导卷对于访问不再有效,并且替代地,副存储系统中的那些卷的副本是 优选的卷。这在第三节点离线的同时出现,作为其结果,第三节点不知道动 态副本卷交换操作。在动态副本卷交换操作已经完成之后的某个时间点,第 三节点变为在线,并且试图从主存储系统本地的引导卷引导(110)。即使在 主存储系统上的引导卷在动态副本卷交换操作之后可访问,该引导卷对于访 问也不是有效的。更具体地,由管理员对于集群中的节点进行的对于引导卷 上的引导映像的所有更新将在副存储系统上进行。因为在集群中(在没有专 门架构的通用计算系统中)不存在中央共享的存储器以引用引导卷的位置, 所以第三节点将从主存储系统中错误的引导卷引导(110)。因此,在集群计 算环境中不存在这样的元件,其将引导卷再定位传递到在动态副本卷交换操 作期间离线或处于变为在线的过程中的节点。
对于图1中所呈现问题的一个解决方案是提供中央共享的存储器设备, 其总是包含要由每个节点使用的、关于重新引导的正确引导卷。然而,这样 的中央存储器不可用于集群环境中的调节(leveraging)。因此,需要一种支 持集群环境中的动态副本卷交换操作的解决方案,其将正确的引导卷传递到 在动态副本卷交换操作期间离线或处于变为在线(即,重新加入集群)的过 程中的任何节点,以便确保在受影响的(各)节点变为在线并且加入集群时, 从正确的引导卷引导。
发明内容
本发明的实施例包括用于支持集群环境中的动态副本卷交换操作的方 法、系统和制品,该集群环境在所有引导阶段适应所有当前和未来的集群成 员节点。
在本发明的一个方面,提供一种用于适应开放系统中的动态副本卷交换 操作的方法,该方法在没有诸如中央共享存储器的专门硬件组件的情况下解 决离线节点的引导卷访问问题。集群中的每个节点配置有两个或更多引导卷 的列表。将用于每个节点的列表存储在每个节点的闪速存储器中,其中引导 卷列表包括节点和主存储子系统之间的第一逻辑路径,以及节点和副存储子 系统之间的第二逻辑路径。第一逻辑路径指向优选引导卷,而第二逻辑路径 指向非优选引导卷。响应于动态副本卷交换操作,对于参与动态副本卷交换 操作的每个节点,改变第一和第二逻辑路径的角色。角色改变包括将第一逻 辑路径指向副存储子系统上的非优选引导卷,并且将第二逻辑路径指向主存 储子系统中的优选引导卷。
在本发明的另一方面中,引入一种计算机系统来管理具有两个或更多节 点的集群上的动态副本卷交换操作。集群中的每个节点与管理节点通信。至 少两个引导卷的列表保持在每个节点上的闪速存储器中。该列表包括节点和 主存储子系统之间的第一逻辑路径,以及节点和副存储子系统之间的第二逻 辑路径。第一逻辑路径指向优选引导卷,并且第二逻辑路径指向非优选引导 卷。管理节点的责任是响应于影响集群中的每个节点(包括离线的节点)的 动态副本卷交换操作,保持跟踪到引导卷的第一和第二逻辑路径的角色。当 动态副本卷交换操作出现,并且假设集群中的所有节点访问副存储系统时, 管理节点的任务是将信息传递到向其询问引导卷信息的每个集群节点。该信 息是到引导卷的第一逻辑路径是副存储子系统上的副本,以及到优选引导卷 的第二逻辑路径在主存储子系统上
在本发明的又一方面中,提供一种具有包括计算机程序指令的计算机可 读载体的制品,该计算机程序指令配置来适应开放系统中的动态副本卷交换 操作。提供指令,以便配置集群中的每个节点有两个引导卷的列表,并且将 用于每个节点的引导卷的列表存储在每个节点的闪速存储器中。该列表定义 引导卷列表为具有节点和主存储子系统之间的第一逻辑路径、以及节点和副 存储子系统之间的第二逻辑路径。第一逻辑路径指向优选引导卷,并且第二 逻辑路径指向非优选引导卷。提供指令,以便响应于动态副本卷交换操作, 对于参与动态副本卷交换操作的每个节点,改变第一和第二逻辑路径的角色。 用于改变逻辑路径的角色的指令包括将第一逻辑路径指向副存储子系统上的 非优选引导卷,并且将第二逻辑路径指向主存储子系统中的优选引导卷。
动态副本卷交换操作支持将到节点的操作系统设备正在使用的卷的路径 从主存储系统改变为一个或多个存储系统,在该一个或多个存储系统中正在 同步并且无缝复制这些卷,使得在那个节点中运行并且执行到那些卷的I/O 的应用感觉不到计划的或非计划的故障切换(failover)。在此示出的动态副本 卷交换操作可以在开放系统中使用,以便支持存在离线节点时跨越集群的动 态副本卷交换操作,而不要求任何定制硬件。在本申请的上下文中,开放系 统是基于其接口公共可用的架构的任何通用计算系统。本发明解决当重新引 导在动态副本卷交换期间离线的节点以重新加入集群时,必须从存储卷中的 适当引导映像引导的问题。每个节点的用户和内核空间每个修改为具有支持 动态副本卷交换操作的管理的工具。此外,提供管理组件,以便与用户空间 中的工具通信,以跟踪存储子系统中引导卷的状态。这些额外的工具支持分 布式系统中的动态副本卷交换操作,其中集群中的每个节点可以在动态副本 卷交换操作期间或之后加入集群或重新引导,并且将从正确的引导映像引导。 因此,支持动态副本卷交换操作,而没有用于保持引导映像的中央共享存储 器。
结合附图,本发明的其他特征和优点将从以下本发明的当前优选实施例 的详细描述变得明显。
附图说明
在此参照的附图形成说明书的一部分。图中所示的特征意味着仅说明本 发明的一些实施例,而不是本发明的所有实施例,除非另外明确指明。另外 不进行相反的暗示。
图1是图示集群环境中动态副本卷交换操作的缺点的现有技术流程图。
图2是具有支持动态副本卷交换操作的组件的计算机集群中的节点的框 图。
图3是驻留在集群中的分离节点中的管理组件的框图,采用该管理组件 来支持跨越集群中的所有节点的动态副本卷交换操作的协调。
图4是图示根据本发明的优选实施例的、用于支持在动态副本卷交换操 作期间或之后的引导过程中对于节点的动态副本卷交换操作的处理的流程 图。
图5是示出支持动态副本卷交换操作的集群节点和管理节点中的组件的 框图。
具体实施方式
将容易理解,如一般地在此附图中描述和图示的,本发明的各组件可以 以广泛的多种不同配置安排和设计。因此,如在附图中呈现的,本发明的装 置、系统和方法的实施例的以下详细描述,不意图如所要求地限制本发明的 范围,而是仅仅代表本发明的选择实施例。
在本说明书中描述的功能单元已经标记为管理器和引擎。管理器或引擎 可以以诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编 程硬件器件实现。管理器或引擎还可以以用于由各种类型的处理器执行的软 件实现。可执行代码的标识管理器或引擎例如可以包括计算机指令的一个或 多个物理或逻辑块,所述计算机指令例如可以组织为目标、过程、功能或其 他结构。然而,标识管理器或引擎的可执行代码不需要物理上位于一起,而 是可以包含存储在不同位置的全异指令,当全异指令逻辑上结合在一起时, 包含管理器或引擎,并且实现管理器或引擎所声明的目的。
实际上,可执行代码的管理器或引擎可以是单个指令或许多指令,并且 甚至可以分布遍及若干不同代码段、在多个不同应用中、以及跨越若干存储 器设备。类似地,在此可以在管理器和/或引擎中识别和说明操作数据,并且 可以以任何合适的形式体现、以及在任何合适类型的数据结构内组织操作数 据。操作数据可以收集为单个数据集,或者可以分布遍及包括跨不同存储设 备上的不同位置,并且可以至少部分地作为系统或网络上的电子信号存在。
贯穿本说明书对于“选择实施例”、“一个实施例”或“实施例”的引用 意味着结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实 施例中。因此,在贯穿本说明书的不同位置的短语“选择实施例”、“一个实 施例”或“实施例”的出现不必指相同的实施例。
此外,描述的特征、结构或特性可以以任何合适的方式组合在一个或多 个实施例中。在以下描述中,提供许多具体细节,诸如在经历计划的或非计 划的动态副本卷交换操作的计算机集群中引导节点的示例,以便提供本发明 实施例的彻底理解。然而,相关领域的技术人员将认识到可以在没有一个或 多个具体细节或者用其他方法、组件、材料等实践本发明。在其他情况下, 已知的结构、材料或操作没有详细示出或描述,以便避免使本发明的各方面 不明显。
参照附图将最好地理解本发明图示的实施例,其中相同的部分始终由相 同的标号指定。以下描述仅通过示例意图,并且简单说明与如在此要求保护 的发明一致的设备、系统和处理的某些选择实施例。
技术细节
在以下实施例的描述中,对于附图进行参照,附图形成实施例的一部分, 并且通过图示的方式示出可以实践本发明的具体实施例。要理解的是,可以 利用其他实施例,因为可以进行结构改变而不背离本发明的精神和范围。
图2是其中具有组件的计算机集群的框图(200),该组件在适应优选引 导卷到有效存储系统的分配的同时支持动态副本卷交换操作。如所示的,集 群中存在至少两个节点(第一节点(210)和第二节点(220))以及至少两个 存储子系统(第一存储子系统(212)和第二子系统(222))。第一和第二存 储子系统(212)和(222)的每个可以分别包括一个或多个存储卷。在一个 实施例中,计算机集群(200)可以扩展为包括额外的节点和存储子系统。第 一存储子系统(212)是所有同步镜像关系的来源,并且第二存储子系统(222) 是所有同步镜像关系的目标。节点(210)和(220)的每个配置为支持动态 副本卷交换操作。因此,每个集群成员具有对于第一存储子系统(212)中的 至少一个存储卷的存储依赖,其中第一存储子系统(212)中的每个卷通过同 步镜像关系链接到第二存储子系统(222)中的同一组卷。
如所示的,第一节点(210)具有操作系统(270),其具有内核空间(272) 和用户空间(276)。类似地,第二节点(220)具有操作系统(280),其具有 内核空间(282)和用户空间(286)。在一个实施例中,集群扩展为包括额外 的节点,其中每个节点配置有具有内核空间和用户空间的操作系统。任何节 点中通过应用对存储的访问通过内核空间中的扩展设备驱动器选通。对于图 2中的元件,节点(210)具有内核空间(272)中的扩展设备驱动器(274), 并且节点(220)具有内核空间(282)中的扩展设备驱动器(284)。在现有 技术中,内核空间中的设备驱动器管理到单个存储系统卷的多条路径,将从 节点的操作系统到该卷的所有路径虚拟化为对于逻辑卷管理器可见的单个设 备。本发明的优选实施例要求的第一和第二节点(210)和(220)中的扩展 设备驱动器(274)和(284)分别处理从集群中的节点(210)和(220)的 每个到两个存储系统中的两个分离卷的至少两条逻辑路径的管理,两个存储 系统的内容经由同步存储系统复制保持同步。更具体地,如在此对于节点 (210)所示,示出处理到主存储子系统(212)中的卷的第一逻辑路径(234), 以及到副存储子系统(222)中的副本卷的第二逻辑路径(236)的扩展设备 驱动器(274)。因此,从节点操作系统到卷和其副本的所有路径虚拟化为单 个设备。
扩展设备驱动器(274)、(284)便利了对于动态副本卷交换操作的逻辑 路径和对于集群(200)中的每个节点的管理。更具体地,第一和第二节点 (210)、(220)的扩展设备驱动器(274)、(284)分别实现每个主要卷及其 副本作为节点操作系统中的单个设备的虚拟化。每条逻辑路径可以由到每个 存储系统的多条物理路径构成。当执行动态副本卷交换操作时,两条逻辑路 径改变角色,使得对于所有存储卷的访问指向副存储子系统(222)。仅当执 行故障恢复(failback)操作时,访问切换回主存储子系统(212)。在一个实 施例中,采用管理器来改变逻辑路径的角色,使得一条逻辑路径指向副设备 上的非优选引导卷,并且第二逻辑路径指向主存储子系统上的优选引导卷。 此外,之前在动态副本卷交换操作期间不活动的第三节点的重新引导期间, 可以采用管理器来改变该第三节点中逻辑路径的排序。因此,内核空间中扩 展设备驱动器将存储请求指向沿着节点和优选存储子系统之间的逻辑路径。
除了内核本地的设备驱动器之外,采用每个节点的用户空间本地的管理 组件。更具体地,第一节点(210)的用户空间(276)提供有仲裁引擎(278), 并且第二节点(220)的用户空间(286)提供有仲裁引擎(288)。仲裁引擎 (278)、(288)分别与在各自节点的内核空间中的扩展设备驱动器(274)、 (284)通信,并且还到在集群中另一节点中运行的外部管理组件,以便控制 跨越所有受影响的存储子系统和节点的集群动态副本卷交换。
驻留在用户空间中的仲裁引擎(278)、(288)配置为在非分页存储器中 执行。要求该配置,使得如果分页卷在故障的存储子系统中,则通过避免交 换出代码的分页进入(paging-in),存储子系统故障不能抑制基于节点的代码 的操作。驻留在内核空间(272)、(282)的扩展设备驱动器(274)、(284) 也配置为在非分页存储器中执行。扩展设备驱动器(274)、(284)的配置与 驻留在用户空间(276)、(286)中的仲裁引擎(278)、(288)的配置一起分 别支持对于处理存储子系统故障的要求。
图3是与各个节点和存储子系统通信的管理组件的框图(300)。存在在 此示出的管理节点(305)本地的三个组件,包括开放交换(OpenSwap)管 理器(310)、排序引擎(320)和复制管理器(RM)代理(330)。管理组件 (310)、(320)和(330)的每个驻留在管理节点(305)外部,因为没有对 于通过动态副本卷交换操作的连续可用性要保护的应用在运行管理组件的节 点上执行。管理组件因此可以在分页存储器中运行。开放交换管理器(310) 提供用于管理动态副本卷交换配置的接口。在一个实施例中,该接口是基于 Web的接口。开放交换管理器(310)的管理特征包括但不限于动态副本卷交 换配置建立、配置的初始化、计划的动态副本卷交换操作的发起、故障恢复 操作的发起、当前系统状态的显示、以及操作日志的浏览。排序引擎(320) 与集群中每个节点(340)的用户空间(344)中的仲裁引擎(346)通信。更 具体地,排序引擎(320)实施集中状态机,用于协调跨越存储集群中一个或 多个节点的动态副本卷交换操作。排序引擎(320)调节RM代理组件(330), 以便发出复制服务(存储复制管理)命令到动态副本卷交换操作中涉及的存 储子系统(350)。RM代理组件(330)使用应用程序接口(API),以便在计 划的和非计划的动态副本卷交换操作期间管理存储子系统(350)组件的同步 镜像关系和状态。在一个实施例中,RM代理组件(330)在动态副本卷交换 配置建立期间使用相同的API调用,以便询问存储子系统上的同步镜像关系。
在动态副本卷交换操作之前,系统中的每个节点具有通过优先权排序的 引导设备的列表。每个节点基于引导设备的分级表示,从列表中的第一设备 引导,并且如果该引导失败,那么节点向列表下进行。当执行动态副本卷交 换操作时,改变用于系统中操作的每个节点的引导设备的列表。更具体地, 在动态副本卷交换操作之后,参与动态副本卷交换操作的每个在线节点上的 引导卷列表,改变为指定优选路径到作为副设备上的一个引导卷的引导卷。 结果,在动态副本卷交换操作期间在线的每个节点将知道必须从副设备中的 引导卷引导。图4是描述在动态副本卷交换期间离线的节点如何在其变为在 线之后调整其引导卷列表的流程图(400)。节点重新引导(402)。在通过运 行基本输入输出系统(BIOS)代码执行引导的初步阶段时,节点从非易失性 存储器获得本地引导列表(404)。从列表中的下一个设备执行引导(406)。 如果引导不成功,则节点尝试从列表中的下一个设备引导(406)。如果引导 列表中不存在更多用于尝试的设备,并且引导还没有成功,那么其必定是所 有引导卷都不可达的情况,在此情况下,节点自身重新引导以便再一次开始 整个引导过程(402)。相反,如果引导成功,那么节点联系排序引擎(410)。 然而,如果因为联网问题或因为排序引擎本身离线,节点不能联系排序引擎 (414),则在适当的等待时段之后,节点自身重新引导以便重启整个过程 (402)。如果可以联系排序引擎,并且其向节点传递动态副本卷交换操作当 前在进行中(416),那么节点自身重新引导(402),因为状态不断变动。然 而,如果不是该情况,那么节点从排序引擎得到当前动态副本卷交换状态。 得到动态副本卷交换状态的处理包括得知哪个存储系统为主,哪个为副,并 且相应地什么是新排序的引导卷的列表。如果该列表匹配节点中的当前引导 卷列表,那么节点已经从正确的卷引导。从排序引擎获得动态副本卷交换方 向和状态信息,之后是节点的操作系统(422)配置来访问的其他设备的连续 安装。然而,如果排序引擎提供的引导列表与节点的本地列表不匹配,那么 更新本地引导列表(424),并且节点经历重新引导(402)。
如图2和3所示,集群环境中的每个节点修改为支持动态副本卷交换操 作。图5是图示嵌入集群环境的每个节点的用户和内核空间二者的工具的计 算机系统的框图(500)。为了图示和说明的目的,仅示出和描述了集群中的 一个节点。如所示的,提供节点(502)与至少两个存储子系统(550)和(560) 通信。示出节点(502)具有通过总线(506)与存储器(508)通信的处理器 (504)。处理器(504)与包括用户空间(520)和内核空间(530)二者的操 作系统(510)通信。用户空间(520)是执行和支持用户处理的操作系统的 部分。如在此所示,用户空间(520)包括应用(522)和库(524)。作为对 照,内核空间(530)是操作系统(510)的中央模块,并且是首先加载且保 留在主存储器中的操作系统的部分。在一个实施例中,内核(530)负责存储 器管理(532)、进程和任务管理(534)、以及盘管理(536)。此外,为了支 持动态副本卷交换操作,内核空间(530)修改为包括设备驱动器(538),并 且用户空间(520)修改为包括仲裁引擎(526)。应用(522)和仲裁引擎(526) 经由设备驱动器(538)与存储子系统(550)和(560)通信。节点(502) 配置有闪速存储器(525),以便存储引导卷的列表(515a)。闪速存储器(525) 标识至少两个存储子系统(550)和(560)中的优选引导卷和非优选引导卷 二者。
除了节点集群成员的修改外,提供与集群通信但是远离各个节点集群成 员的一组管理组件(570)、(572)和(574),以便支持动态副本卷交换操作。 该组管理组件包括但不限于开放交换管理器(570)、排序引擎(572)和RM 代理(574)。关于图3描述管理组件的支持角色的细节。在一个实施例中, 管理组件(570)-(574)驻留在存储集群外部,并且配置为与用户空间(520) 中的仲裁引擎(526)和存储子系统(550)和(560)二者通信。管理组件(570) -(574)可以以存储器本地的软件组件或者驻留在存储器外部的硬件组件的 形式提供。仲裁引擎(526)和设备驱动器(538)示出为驻留在操作系统的 各自层中的软件组件。然而,本发明不应限制为软件实施例。例如,在一个 实施例中,仲裁引擎(526)和/或设备驱动器(538)可以是硬件工具的形式。 因此,提供来支持动态副本卷交换操作的工具可以成为软件工具、硬件工具 或软件和硬件工具的组合的形式。
在本发明范围内的实施例还包括制造的制品,其包括具有在其中编码的 程序代码的程序存储装置(means)。这样的程序存储装置可以是可以通过通 用或专用计算机访问的任何可用介质。作为示例,并且不是限制,这样的程 序存储装置可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、 磁盘存储或其他磁存储设备、或者可以用于存储希望的程序代码装置并且可 以由通用或专用计算机访问的任何其他介质。上面的组合应该还包括在程序 存储装置的范围内。
介质可以是电、磁、光、电磁或红外介质,或者半导体系统(或者装置 或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计 算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。 光盘的当前示例包括只读紧凑盘B(CD-ROM)、读/写紧凑盘B(CD-R/W) 和DVD。
适于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接 或间接耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代 码的实际执行期间采用的本地存储器、大容量存储器和高速缓冲存储器,高 速缓冲存储器提供至少某程序代码的临时存储,以便减少在执行期间必须从 大容量存储器取回代码的次数。
输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可 以直接或通过居间I/O控制器耦合到系统。网络适配器也可以耦合到系统, 以便使得数据处理系统能够变为通过居间专用或公共网络耦合到其他数据处 理系统或远程打印机或存储设备。
软件实施可以采用从计算机可用或计算机可读介质可访问的计算机程序 产品的形式,计算机可用或计算机可读介质提供由计算机或任何指令执行系 统使用、或与计算机或任何指令执行系统结合的程序代码。
替代实施例
将理解的是,尽管在此已经为了说明的目的描述了本发明的具体实施例, 但是可以进行各种修改而不背离本发明的精神和范围。因此,本发明的保护 范围仅由权利要求及其等价物限制。