对不完全raid盘写进行可靠故障转移的方法和设备的制作方法

文档序号:7734603阅读:204来源:国知局

专利名称::对不完全raid盘写进行可靠故障转移的方法和设备的制作方法
技术领域
:本发明涉及客户/服务器计算环境中的独立磁盘冗余阵列(RAID),并且更具体地涉及具有与群集中的故障节点的写操作有关的可靠故障转移(failover)能力的系统和方法。
背景技术
:在现代的客户/服务器计算环境中,群集是一组称为节点的相连、独立计算机系统,群集起到单个系统的作用。客户机在与群集交互时把它看成是单个服务器。群集的组合计算能力和存储能力使群集在从在线商务到科学建模等许多应用中成为有用的工具。在许多实例中,对于商业努力或科学试验的全面成功,这些系统的可靠性是关键性的。计算机系统,包括群集系统,最脆弱组成部分是整个电子组件中唯一实质上包含机械、运动部件的硬盘驱动器。写到单个驱动器的数据只和驱动器一样可靠,但许多驱动器都最终会出现故障。许多情况中存储在这些硬盘驱动器上的数据代表关键的客户信息、投资信息、学术信息等。在对于所有企业信息存储和访问日益变为重要的年代,需要更加可靠的数据存储方法。一种现有存储方法是独立磁盘冗余阵列(RAID)。RAID系统将该阵列当作单个大磁盘来存储和访问多个独立的硬盘驱动器。把数据分布在这些多个的盘上减小了由于一个磁盘机出故障而丢失数据的风险,并且还改进存取时间。RAID是为了在事务处理或应用服务器以及在大的文件服务器中使用而开发的。目前,RAID也用于需要高传输速率的台式或工作站系统。在例如上面所说明的群集环境中,实现RAID和类似公用磁盘阵列可以使客户机能够访问组合在一起的节点组的计算能力并且具有该磁盘阵列的大的存储容量。图1示意地表示现有技术的群集系统100。在图中示出一个节点群集系统102、一个网络集线器104、一个群集管理器106以及多个客户机108。通过由二个典型地是计算机系统或服务器的节点110构成的双节点系统的例子示出所描绘的节点群集系统102。节点群集系统102可由任何数量的节点110构成,其数量由所需的存储和计算能力决定。RAID控制器112描绘成在各个节点110内,下面会参照图2更详细地讨论RAID控制器112。各节点110通过RAID控制器112向RAID阵列114传送数据。RAID控制器112通过数据通道116和RAID阵列114通信。在该描述的实施例中,连接RAID控制器112和RAID阵列114的数据通道116最好是小型计算机系统接口(SCSI)通道。群集系统102和局域网(LAN)120或者和专用网络电缆或互连118连接。在所描述的实施例中,群集系统102、群集管理器106以及多个客户机108通过网络集线器104连接。群集管理器106最好监视和管理群集操作。偶尔,节点110中的一个节点的RAID控制器112会出故障,一般因为元件故障或断电。当此种情况发生时,非高速缓存的写操作可能正在进行并且不能完成。后果是可能丢失关键数据。现参照图2,目前的RAID控制器112通常包括微处理器202、SCSI控制器204、闪速只读存储器(ROM)模块206、动态随机访问存储器(DRAM)模块208以及非易失性随机访问存储器(NVRAM)模块210。镜象竞争表(mirrorracetable,MRT)214驻留在NVRAM模块210内。MRT214保持每组还在进行RAID盘上的写操作的数据的起始逻辑块地址。该组数据可以在盘上是成带的或者按称为高速缓存行组的较小的数据组来组织。图3a示出MRT214的一种现有技术实施例,其中示出有效标志位302、逻辑块地址303和逻辑驱动器号306。MRT214保持未完成写操作列表。当完成某写操作时,RAID控制器112清除该写操作的MRT项。当发生故障时,一旦恢复功能RAID控制器112进行一致性检验。偶尔,某个RAID控制器112可能会出现故障。在这种情况下,其它工作的RAID控制器不能访问该出故障控制器112的MRT214。其余RAID控制器112不能识别或者不能协调该出故障控制器112的未完成写操作。但是,其余RAID控制器112能够识别和该出故障控制器112有关的RAID114的逻辑驱动器。另一个控制器112会启动这些逻辑驱动器的每一个上的从开始到结束的后台一致性检验(BGCC),并且若需要,找出由于不完全写而造成的数据不一致的一致性恢复。在目前所使用的逻辑驱动器尺寸下,对RAID阵列114的所述逻辑驱动器的BGCC可能耗时数小时。在此期间内,允许在前台对RAID阵列114的BGCC所涉及的那些尚未完全检查的逻辑驱动器上进行读和写操作。在RAID盘阵列114的所述逻辑驱动器之一的一个物理驱动器定位在一个尚待进行一致性处理的高速缓存行组而发生读请求故障的情况下,可能出现数据毁坏问题。该数据毁坏故障是从逻辑驱动器的其它物理驱动器再生数据的某RAID控制器112未意识到该数据不一致的后果。该问题通常称为“写入洞穴”。从而,从上面的讨论可以看出技术上需要一种用来解决盘故障后的不完整RAID盘写入的改进的可靠故障转移方法和设备。
发明内容根据现有技术状态,尤其根据技术上尚未由目前可使用的设备和方法完全解决的问题及需要,开发了本发明的设备和方法。从而,本发明一个总目的是提供一种克服上面讨论的现有技术的不足的大部分或全部的设备和方法。为了达到上述目的并且依据本文中在各优选实施例里体现出的并概括说明的本发明,提供一种改进的可靠故障转移设备和方法。本发明的这些和其它目的、特征和优点通过下面的说明以及所附权利要求书将会变得更为清楚,或者通过按照下面阐述那样实现本发明而了解它们。在一些实施例中,本发明包括多个共享盘和多个分别配置成访问该多个盘的RAID控制器。为了分配和保持盘上正在进行写操作的数据的起始逻辑块地址(LBA)的位置,除可由每个RAID控制器访问的公用MRT存储单元之外还实现一个镜象竞争表(MRT)。该公用MRT存储单元还复制位于每个RAID控制器上的所有MRT。在本发明的一优选实施例中,公用MRT存储单元包含一个非易失性随机存取存储器(NVRAM)模块。该NVRAM模块可在一共享的磁盘附件内实现。替代地,该NVRAM模块可位于每个RAID控制器上。在一实施例中,该共享磁盘附件包含一个SCSI接入容错附件(SAF-TE)。优选地,在每个RAID控制器上,该设备还包括一个配置成搜索MRT第一自由项的MRT搜索模块和一个配置成通过输入要写到该多个共享盘上的第一高速缓存行组的逻辑块地址(LBA)在MRT中建立一项的MRT项模块。还可以设置一个配置成保存一项MRT指针的MRT指针模块,一个配置成寻找和检索项的MRT指针的MRT检索模块,一个配置成必要时为了进行一致性恢复定位盘组上的数据的高速缓存行组(在节点引导或群集故障转移后)的MRT读模块,一个配置成从MRT中查找并清除MRT中的项的MRT清除模块,以及一个配置成把MRT从该共享磁盘附件传送到至少一个RAID控制器的MRT传送模块。提供本发明的用于建立可由每个RAID控制器访问的共用MRT存储单元的方法。在一实施例中,该方法包括从该公用存储单元访问MRT,更新MRT,检测至少一个的RAID控制器的故障,以及可靠地分配出故障的RAID的工作负荷。在一实施例中,该方法还包括从表的顶到底搜索MRT以查找第一自由项;通过输入要写到多个共享盘的第一高速缓存行组的逻辑块地址在MRT中建立一项;保存该项的MRT指针;查找并检索该项的MRT指针;以及从MRT查找和清除该项。为了提供可靠的故障转移能力,该方法还可以包括把MRT从共享磁盘附件传送到至少一个的MAID控制器。为了便于理解本发明的优点和目的,通过参照附图对特定实施例的描述,上面简单说明的本发明将得到更具体的说明。应理解这些附图仅描绘本发明的典型实施例而不构成对本发明的范围限制,通过利用附图以附加的具体细节说明和解释本发明,附图中图1是一个示意方框图,示出现有技术的节点群集系统的一实施例。图2是一个示意方框图,示出现有技术独立磁盘冗余阵列(RAID)的控制器的一实施例。图3a是示出现有技术的镜象竞争表(MRT)的一实施例的方框图。图3b是示出本发明的驱动器所有权表(DOT)的一实施例的方框图。图4是示出本发明的MRT的一实施例的方框图。图5是示出本发明的SCSI接入容错附件(SAF-TE)电子硬件的一实施例的方框图。图6是示出本发明的MRT的一特殊实施例的方框图。图7是一个流程图,示出本发明的对群集系统中的不完整写操作进行可靠故障转移的方法。图8是一个流程图,示出通过利用本发明的MRT使逻辑驱动器一致的方法。图9是第二流程图,示出通过利用本发明的MRT使逻辑驱动器一致的方法。图10是一个流程图,示出确定本发明的SAF-TE附件的支持状态的方法。图11是一个流程图,示出在本发明的MRT里形成和清除项的方法。图12是一个流程图,示出从本发明的SAF-TE附件传送MRT段的方法。具体实施例方式本文中用术语“模块”要求并且说明本发明。如本文所使用那样,该术语用来表示配置成实现模块的给定用途的软件代码指令行或者电子硬件。从而,模块是一个结构单元。如软件开发领域技术人员所容易理解的那样,模块内可以存在一条以上的指令。这些指令不必相邻,而是可以散布在一个或多个软件程序的各个不同部分之中,包括在不同的对象、例程、函数等之内。类似地,子系统或模块的硬件组成部分,例如集成电路、逻辑门、分立器件等,不必组织成单个电路,而是可以分布在一个或多个电路之中。除非另外指出,可以互换地使用硬件或软件实现来达到所公开的各模块的结构和功能。图3b是驱动器所有权表310的图形表示。驱动器所有权表310包括逻辑驱动器列312和对应的拥有者控制器序号列314。利用该驱动器所有权表310,(图1的)独立磁盘冗余阵列(RAID)控制器112能确定RAID阵列114中的每个逻辑驱动器的所有权。驱动器所有权表310通常由每个节点110的RAID控制器112组成。每个RAID控制器112把分配的RAID阵列114的逻辑驱动器号提交到RAID阵列114的保留区。驱动器所有权表310还装到RAID控制器112的DRAM模块208中。现在参照图4,图中示出驻留在本发明的RAID控制器112里的镜象竞争表(MRT)400的一个实施例。MRT400由有效标志位列402、逻辑块地址(LBA)列404和保留列406构成。在本发明的一优选实施例中,按类似于图3a的MRT214的方式排列MRT400,但是调整成直接按递增的逻辑驱动器号索引MRT400中的各项。调整后的MRT400优化了访问和更新。MRT400中的每项包括有效标志位402、表示高速缓存行组的起始地址的LBA404以及可选用地用于校验和来验证项信息的保留字段406。在一实施例中,MRT400对每一群集控制器项只需要六字节的存储空间。图5示意性地示出一种称为SCSI接入容错附件(SAF-TE)500的智能型盘附件的一实施例。SAF-TE500是一种实现基于SCSI的处理器部件、盘外罩、电源和其它组件的结构,以把盘附件状态信息传送到监视应用。在某些实施例中,可以从单个RAID阵列114划分多个SAF-TE500内的逻辑驱动器。RAID阵列114的这些划分变成虚拟驱动器并且分配到各个RAID控制器112。RAID阵列114通常安装在一个智能盘附件内。SAF-TE500通常包括一个SCSI目标接口502、多个SAF-TE寄存器504、多个状态寄存器506、一个CPU508、一个可擦可编程只读存储器(EPROM)模块510以及一个动态随机访问存储器(DRAM)模块512。依据本发明,还在SAF-TE500内示出一个非易失性随机访问存储器(NVRAM)模块514。由于本领域技术人员容易理解各个组件的功能和用途,所以不对SAF-TE500的各个组件作出详细说明。文中以例子的方式给出SAF-TE500的配置而不是作为限制,从而本领域技术人员容易在保持盘附件的意图的情况下修改该配置。在多节点群集中,当某节点出故障时,出现自动故障转移。在工作节点(组)上运行的群集软件响应出现故障把工作从有故障的系统分散到该群集中的其余系统上。然而,在本发明之前,其余节点110处的RAID控制器112不能访问出故障系统的MRT214。为了克服技术上的限制,在NVRAM514内设置一个MRT516。后面会参照图6更详细地说明MRT516的配置。在本发明的一优选实施例中,MRT516驻留在NVRAM模块512内并且配置成可由图1的工作的RAID控制器112访问。在一实施例中,MRT516包含驻留在多个RAID控制器112内的各个MRT400的准确拷贝。替代地,把MRT516配置成含有关于在该群集内运行的每个RAID控制器12的数据。例如,MRT516可以包含诸如部件类型、厂家名称、平台、固件和序列号的数据。这里在SAF-TE500内包括NVRAM模块512和MRT516是作为例子给出的,用替代的共享盘附件的方法对于本领域技术人员应该是显而易见的。图6示意表示在共享盘附件例如SAF-TE500内实现的MRT516的一个具体例子。在图6的实施例中,MRT516包括一个有效标志位列602、一个逻辑块地址(LBA)列604和一个保留列606。MRT516中的每项最好包括一个有效标志位、一个表示高速缓存行组的起始地址的LBA以及一个用于可选的校验和保留字段,该校验和用来验证项信息。缓冲区偏移608包括起始字节偏移并且包含在传送的数据缓冲区内。大于或等于缓冲区容量的偏移造成带有非法请求码读出关键字并且还带有CDB中的无效字段的附加读出码的检查条件状态。现参照图7,图中的流程图示出了在本发明的群集系统中对不完整写操作进行可靠故障转移的方法700。该方法开始于702并且提供一个群集共享盘附件704。在一实施例中,该群集系统包含图1中的系统100。在该方法700中,RAID控制器112判定706该共享盘附件的支持状态。在本发明的优选实施例中,为此对查询数据串增添一个标志位。例如,字节5的位0可表示对NVRAM模块514中添加的MRT516的支持状态。在检测出控制器故障708时,使该出故障RAID控制器112的逻辑驱动器一致710。下面参照图8和9更详细地说明使该逻辑驱动器一致710的方法。图8和9示出通过利用本发明的MRT使逻辑驱动器一致的方法800。方法800和一实施例图7的步骤710对应。方法800开始于802并检测节点引导804。在一实施例中,节点引导包括回到某出故障控制器的操作。若判定806该节点具有驱动器所有权,则该方法转到图9,图9中使该逻辑驱动器一致904。在本发明的一优选实施例中,正如在该节点的MRT中那样,采用读出高速缓存行组的数据并且计算使高速缓存行组一致所需的奇偶校验,使该逻辑驱动器一致904。计算出的奇偶校验和记录的奇偶校验对比。若计算出的奇偶校验与记录的奇偶校验不匹配,则在该逻辑驱动器中记录新计算的奇偶校验。在一致性检查后,清除该RAID控制器112以及该盘附件中的MRT项906以确保可以正确地再生某可能失效成员盘中的数据。然后跟踪一致性恢复的完成未决状态908。如果在节点故障期间改变逻辑驱动器所有权,停止该未决一致性恢复910。接着方法800结束912。重新参照图8,若判定该返回节点不具有驱动器所有权806,则清除该节点的MRT中的所有项810,在此该方法800结束912。在没有节点引导804的情况下,当检测出节点故障转移814时,其余节点判定是否必须使逻辑驱动器一致816。若一致性恢复是必要的,识别逻辑驱动器822。在本发明的一优选实施例中,通过驱动器所有权表310确定逻辑驱动器标识。接着改变该故障节点的所有权824,并且从共享盘附件的MRT检索和该故障节点有关系的项902。然后如上面说明那样,使逻辑驱动器一致904。在一致性恢复之后,清除该RAID控制器112以及该盘附件中的MRT项906以确保可以正确地再生某可能失效成员盘中的数据。方法800继续,并跟踪一致性恢复的完成未决状态908。如果在节点故障期间改变逻辑驱动器所有权,则停止该未决一致性恢复910。接着方法800结束912。替代地,如果判定逻辑驱动器的一致性恢复是不必要的,则方法708结束912。回到判定814,如果没有检测到节点故障转移并且分配了新的逻辑驱动器818,则该方法判定对这些分配的逻辑驱动器是否存在任何未决一致性恢复操作。若存在未决一致性恢复操作820,则从共享盘附件的MRT检索和这些逻辑驱动器有关系的段902。然后如上面说明那样,使这些逻辑驱动器一致904。在一致性恢复之后,清除共享盘附件MRT以及RAID控制器MRT中的项906以确保可以正确地再生某可能失效成员盘中的数据。方法708继续,并跟踪一致性恢复的完成未决状态908。若改变过逻辑驱动器所有权,则停止未决一致性恢复910。如果不存在未决一致性恢复820,方法708结束912。若未检测到新的逻辑驱动器818,方法800结束912。在一实施例中,上面参照图8和9说明的方法800形成持续地循环。替代地,方法800可等待节点引导、节点故障转移或新逻辑驱动器事件的发生。现参照图10,其中示出一个说明用来确定本发明的SAF-TE附件的支持状态的方法1000的流程图。该方法1000是实现图7的确定支持步骤706的一个具体例子。该方法1000开始于1002并且某节点检查本发明添加的NVRAM模块514的存在和缓冲器容量1004。该节点控制器发出“查询”命令1006并且接收“查询”数据1006。如前面说明那样,在一实施例中,命令数据缓冲器可包含一个添加的指示NVRAM模块514的存在的标志位。如果安装NVRAM缓冲器特征1008,则发出对缓冲器描述符的“读缓冲器”命令1010,并且接收缓冲器容量信息。所收到的缓冲器容量信息用于判定是否存在足够的缓冲器容量1012。在本发明的一优选实施例中,如果判定缓冲器容量充足1012,则记录特征支持状态和缓冲器容量1014。代替地,若判定缓冲器容量不充足1012或者判定NVRAM缓冲器特征未安装1008,则该节点按参照现有技术说明的方式操作。图11是一个说明用于在本发明的MRT中建立和清除项的方法1100的流程图。该方法1100示出图9的清除项的步骤906的一个具体实施例。该方法1100开始于1102并且对节点控制器MRT搜索第一自由项1104。在一实施例中,在节点控制器MRT中通过输入要写入的第一高速缓存行组的起始逻辑块地址建立一项1106。通过发出一条带有适当NVRAM地址的“写缓冲器”命令在共享盘附件MRT中建立一等同项1108。接着在该节点控制器的存储器中保存该项的MRT指针1110。在本发明的一优选实施例中,为MRT中的项向各逻辑驱动器发出“写”命令1112并同时在该MRT中查找其它高速缓存行组1114。当判定不存在其它高速缓存行组1114时,继续典型的群集操作1116。替代地,当完成一次高速缓存行组写入1118时,清除该节点控制器中的各项1120。通过发出带有适当NVRAM地址的“写缓冲器”命令清除共享盘附件MRT1122。在一优选实施例中,节点控制器是中断驱动的,而不是配置成等待活动完成。在一实施例中,用来清除MRT中的项的“写缓冲器”命令包含发出写入全都是零的“写缓冲器”命令。现参照图12,其中示出一个说明用于从本发明的共享盘附件传送MRT段的方法1200的流程图。该方法1200示出图9的检索共享盘附件MRT步骤902的一具体实施例。该方法1200开始于1202,并且从共享盘附件MRT向节点控制器MRT传送MRT段1204。在本发明的一实施例中,接着发出“读缓冲器”命令1206以规定用于该整个段的在预定NVRAM缓冲器偏移下的数据方式。然后从该共享盘附件接收数据1208,并且把数据放在节点控制器指定的分配空间中。本发明可以在不背离它的精神或基本特征的情况下以其它具体形式实现。所说明的各实施例在所有方面上只看做是说明性的而不是限制性的。从而,本发明的范围是由所附权利要求书而不是由上述说明限定。所有在权利要求书的等价物的含义和范围之内的改变均包含在本发明的范围内。权利要求1.一种用于进行可靠故障转移的装置,该装置包括多个配置成访问多个共享盘的RAID控制器;镜象竞争表(MRT);以及可由每个RAID控制器访问的公用MRT存储单元。2.权利要求1的装置,其中该公用MRT存储单元包含一个非易失性随机存取存储器(NVRAM)模块。3.权利要求1的装置,还包括一个含有SCSI接入容错附件(SAF-TE)的共享盘附件。4.权利要求1的装置,还包括一个配置成对该MRT搜索第一自由项的MRT搜索模块。5.权利要求4的装置,其中该MRT搜索模块配置成从上向下搜索该MRT。6.权利要求1的装置,还包括一个MRT项模块,被配置成通过输入要写入到该多个共享盘的第一高速缓存行组的逻辑块地址(LBA)在MRT中建立项。7.权利要求1的装置,还包括一个配置成保存项的MRT指针的MRT指针模块。8.权利要求1的装置,还包括一个配置成查找和检索项的MRT指针的MRT检索模块。9.权利要求1的装置,还包括一个MRT读模块,被配置成在节点引导或群集故障转移之后的一致性恢复,定位盘上数据的高速缓存行组以供一致性恢复。10.权利要求1的装置,还包括一个配置成从MRT查找并清除项的MRT清除模块。11.权利要求1的装置,还包括一个配置成把MRT从该共享盘附件传送到至少一个的RAID控制器的MRT传送模块。12.一种用于进行可靠故障转移的方法,该方法包括访问带有多个RAID控制器的多个共享盘;更新镜象竞争表(MRT);以及提供可由该每个RAID控制器访问的公用MRT存储单元。13.权利要求12的方法,其中建立公用MRT存储单元还包括在一个共享盘附件中建立公用MRT存储单元。14.权利要求12的方法,还包括访问该MRT;从该公用MRT存储单元处更新该MRT;检测至少一个RAID控制器上的故障;以及可靠地分配出故障的RAID控制器的工作负荷。15.权利要求12的方法,还包括提供一个含有SCSI接入容错附件(SAF-TE)的共享盘附件。16.权利要求12的方法,还包括对MRT搜索第一自由项。17.权利要求14的方法,其中搜索MRT还包括对MRT从上到下搜索。18.权利要求12的方法,还包括通过输入要写入到该多个共享盘上的第一高速缓存行组的逻辑块地址(LBA)在MRT中建立项。19.权利要求12的方法,还包括保存项的MRT指针。20.权利要求12的方法,还包括查找和检索项的MRT指针。21.权利要求12的方法,还包括必须时读MRT项以定位用于一致性恢复的数据。22.权利要求12的方法,还包括从MRT查找和清除项。23.权利要求12的方法,还包括把MRT从该共享盘附件传送到至少一个的RAID控制器。24.一种用于进行可靠故障转移的方法,该方法包括提供多个共享盘;提供多个RAID控制器;提供一个镜象竞争表(MRT);建立一个可由该每个RAID控制器访问的公用MRT存储单元;访问该MRT;更新该MRT;检测至少一个RAID控制器上的故障;分配故障RAID控制器的工作负荷;对该MRT搜索第一自由项;通过输入要写到该多个共享盘的第一高速缓存行组的逻辑块地址(LBA)在该MRT中建立项;保存项的MRT指针;查找和检索项的MRT指针;读MRT项以定位要使一致的数据;从该MRT查找并清除项;把该MRT从该共享盘附件传送到至少一个的RAID控制器;以及执行未完成的写操作。25.一种用于进行可靠故障转移的系统,该系统包括多个共享盘;多个RAID控制器;一个镜象竞争表(MRT);以及一个可由该每个RAID控制器访问的公用MRT存储单元,该公用MRT存储单元包含非易失性随机访问存储器(NVRAM)模块。26.一种用于进行可靠故障转移的设备,该设备包括用于访问多个带有多个RAID控制器的共享盘的装置;用于更新一个镜象竞争表(MRT)的装置;用于访问该MRT的装置;以及用于存储一个公用MRT以便该公用MRT可由每个RAID控制器访问的装置。全文摘要本发明公开了一种用于对群集系统中的不完整独立磁盘冗余阵列(RAID)写进行可靠故障转移的系统和方法。该系统包括重构镜象竞争表(MRT)以及可以是一共享盘附件里的非易失性随机存取存储器(NVRAM)模块的存储单元,以便该MRT可由系统中的所有节点访问。在一实施例,该NVRAM模块包括来自在该群集系统内运行的每个节点的MRT的拷贝。文档编号H04L1/22GK1480843SQ0314982公开日2004年3月10日申请日期2003年7月25日优先权日2002年7月26日发明者D·Q-Y·初,A·金,DQ-Y初申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1