具有双控制器的储存系统的硬盘阵列接管方法

xiaoxiao2020-7-23  5

专利名称:具有双控制器的储存系统的硬盘阵列接管方法
技术领域
本发明涉及一种具有双控制器的储存系统的硬盘阵列(Redundant array ofindependent disk,RAID)接管方法,特别涉及一种当在双控制器同步中发生异常状态时的硬盘阵列接管方法。
背景技术
近年来随着科技发展,电子文件的数量有着爆发性的成长,也造成产生了使用者所需的储存空间不足的问题。尤其是存放多媒体的服务器或是商用服务器等,非常需要具有大容量且能够高速存取的储存装置。为了能够有更大空间的储存装置以及存取储存装置的弹性与可靠性,遂发展出了可供使用者通过网络存取的储存系统的技术。且储存系统中的服务器常使用硬盘阵列(Redundant array of independent disk, RAID),以储放大量的数据。然而RAID 5或RAID6等类型的RAID在进行创建等需要将RAID中所有磁盘同步的运算时,需要耗费及大量的时间、磁盘传输频宽以及控制器的运算资源。而一般的储存系统中具有多个控制器,并使用多个磁盘来创建RAID。然而碍于硬件或固件的限制,某些储存系统只能以非对等环境(non same view)管理RAID。在非对等环境中,储存系统中的多个控制器个别控管自己负责的磁盘,且单一磁盘不会同时由多个控制器控管。因此在非对等环境中,无法创建或使用多路径(multipath)的设备。这种储存系统在进行RAID的同步运作时若是某一个控制器发生故障或重开机等异常状态,其它的控制器需要对故障的控制器所负责的磁盘进行接管。但是接管时RAID需要重新启动,且RAID同步的运作也需要重头执行。RAID同步的运作本来就非常耗费系统资源,一但有控制器发生故障而导致RAID同步的运作需要重头来过更是雪上加霜。

发明内容
为了解决上述问题,本发明的目的在于提供一种具有双控制器的储存系统的硬盘阵列(Redundant array of inexpensive disk, RAID)接管方法。储存系统包括第一控制器、第二控制器、至少一第一磁盘以及至少一第二磁盘。第一控制器控管第一磁盘,第二控制器控管第二磁盘,并由第一磁盘与第二磁盘建立硬盘阵列。第一控制器与第二控制器通过非对等环境(non same view)管理硬盘阵列。在第一控制器与第二控制器在进行同步的期间中,当第二控制器发生异常状态时,由第一控制器接管第二控制器所控管的第二磁盘。具有双控制器的储存系统的硬盘阵列接管方法包括:对第一控制器与第二控制器进行同步,第一控制器与第二控制器将一同步信息储存于储存单元,且同步信息中纪录有第一磁盘以及第二磁盘的同步状况;以及当同步的过程中第二控制器发生异常状态时,由第一控制器从储存单元中读取同步信息,并由第一控制器依据同步信息接管第二控制器所控管的第二磁盘。其中当第二控制器故障、关机或是重开机时,第一控制器可以不需重新开机就可以立即接管第二控制器。而储存系统可以是存储区域网络(storage area network, SAN);储存单兀可以是闪存(flash memory或flash ROM)。第一磁盘与第二磁盘可个别包括多个数据块。为了同步第一磁盘或第二磁盘,第一控制器或第二控制器可依序设定这些数据块的环境参数。根据一实施范例,第一磁盘与第二磁盘可以个别具有一磁盘编号。而同步信息可包括一控制器识别码、一硬盘阵列类型、一构成磁盘编号串、一数据单元大小、一同步完成标签以及多个同步数据块编号。构成磁盘编号串可包括至少一个磁盘编号,这些同步数据块编号则个别对应于第一磁盘或第二磁盘的这些数据块之一。其中每一个数据块可具有数据块编号。上述「对第一控制器与第二控制器进行同步,并将同步信息储存于储存单元」的步骤则可包括:依序同步硬盘阵列的第一磁盘与第二磁盘的这些数据块;以及每同步完成一个数据块之后,依据当前同步完成的数据块的数据块编号以及所属的第一磁盘或第二磁盘的磁盘编号,修改同步信息中的同步数据块编号。根据一实施范例,具有双控制器的储存系统的硬盘阵列接管方法另可包括:当硬盘阵列的所有数据块同步完成时,将同步信息中的同步完成标签设为真值(True)。而「由第一控制器读取同步信息,并依据同步信息接管第二控制器控管的第二磁盘」的步骤包括:由第一控制器读取同步信息中的同步完成标签。以及,当同步完成标签不为真值时,执行下述步骤:依序读取同步信息中的同步数据块编号;以及当读取的同步数据块编号对应于第二磁盘时,从读取的同步数据块编号对应的数据块的下一个数据块继续同步硬盘阵列。「由第一控制器读取同步信息,并依据同步信息接管第二控制器控管的第二磁盘」的步骤另可包括:当同步完成标签为真值时,结束硬盘阵列的同步。综上所述,具有双控制器的储存系统的硬盘阵列接管方法依据同步状况修改同步信息,且进行接管时,第一控制器读取同步信息并继续同步的运作。因此不用将RAID重头开始同步,而不会浪费掉之前已经同步完成的进度。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为一实施范例的储存系统的示意图;图2为一实施范例的具有双控制器的储存系统的硬盘阵列接管方法的流程图;图3为一实施范例的步骤SlOO的流程图;图4为另一实施范例的步骤SlOO的流程图;图5为一实施范例的步骤S140的流程图。其中,附图标记10储存系统11第一控制器12第二控制器13硬盘阵列131A、131B 第一磁盘132 第二磁盘14储存单元
20客户端
具体实施例方式以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求范围及附图,任何本领域技术人员可轻易地理解本发明相关的目的及优点。本发明提供一种具有双控制器的储存系统的硬盘阵列(Redundant array ofinexpensive disk, RAID,又称为独立磁盘冗余阵列)接管方法,以在双控制器同步中发生意外时有效率地进行接管。首先请参照图1,其为一实施范例的储存系统的示意图。储存系统10可以是存储区域网络(storage area network, SAN),且储存系统10可以提供给多个客户端20,客户端20连接至储存系统10,并可使用硬盘阵列13提供的储存空间。储存系统10包括第一控制器11、第二控制器12、至少一第一磁盘131A以及131B(以下统称第一磁盘131)、至少一第二磁盘132以及储存单元14。其中第一控制器11控管第一磁盘131,第二控制器12控管第二磁盘132。而第一控制器11与第二控制器12通过非对等环境(non same view)管理以第一磁盘131以及第二磁盘132建立的RAID 13。第一磁盘131与第二磁盘132记录多个数据块(block),每一个数据块具有多个数据单元(chuck)。而为了将构成RAID 13的第一磁盘131以及第二磁盘132同步,第一控制器11或第二控制器12可依序设定这些数据块的环境参数。例如当第一控制器11以及第二控制器12要创建RAID 13时,需要逐一设定这些数据块的环境参数以使RAID 13同步。另外,当RAID 13中储存的数据被客户端20进行新增或删改时,RAID 13也需进行同步,以使构成RAID 13的第一磁盘131以及第二磁盘132内的数据同步且一致。储存单元14分别连接于第一控制器11与第二控制器12。储存单元14用以记录储存系统10在同步处理时对于第一控制器11或第二控制器12的运作状态。例如第一控制器11以及第二控制器12可依据RAID 13的运作状况纪录第一磁盘131或第二磁盘132的使用情况。而储存单元14可以是闪存(flash memory,闪存)或是快闪只读存储器(flashRead-Only Memory, flash ROM,快闪只读存储器)。通过上述硬件架构,第一控制器11以及第二控制器12可执行具有双控制器的储存系统的硬盘阵列接管方法。无论是否在同步中,当第二控制器12发生故障、关机或是重开机等异常状态时,第一控制器11需接管第二控制器12。换句话说,当第二控制器12故障、关机或是重开机时,第一控制器11除了控管第一磁盘131之外,也需接替第二控制器12来控管第二磁盘132。但下述具有双控制器的储存系统的硬盘阵列接管方法是针对在同步中双控制器的任一控制器发生异常状态时所进行的接管运作。请参照图2,其为一实施范例的具有双控制器的储存系统的硬盘阵列接管方法的流程图。在RAID 13创建时或是需要将RAID 13内的数据进行同步时,先对第一控制器11与第二控制器12进行同步,并将一同步信息储存于储存单元14 (步骤S100)。换句话说,第一控制器11以及第二控制器12可先在储存单元14的中建立一个新的同步信息,并个别执行同步的运作,再个别依据构成RAID13的第一磁盘131或第二磁盘132的同步状况共同维护一个同步信息。其中同步信息中可以纪录有RAID 13中的每一个第一磁盘131以及第二磁盘132的同步状况。根据一实施范例,第一控制器11与第二控制器12个别具有一控制器识别码;第一磁盘131与第二磁盘132个别具有一磁盘编号;每一个数据块也都有一数据块编号。针对每一个第一磁盘131或第二磁盘132,同步信息可包括此RAID 13所对应的控制器识别码、一硬盘阵列类型、一构成磁盘编号串、一数据单元大小、一同步完成标签(flag)以及多个同步数据块编号。其中控制器识别码代表主要控管的控制器为第一控制器11或第二控制器12 ;硬盘阵列类型代表此RAID 13使用的类型(例如RAID O,RAID I或RAID7);数据单元大小代表此RAID 13中的数据单元具有的空间大小(例如64KB或512KB)。构成磁盘编号串可包括至少一磁盘编号,代表此RAID 13是由哪些第一磁盘131或第二磁盘132所组成。同步完成标签表示此RAID 13是否被完整地同步完成。同步数据块编号则个别对应于第一磁盘131或第二磁盘132的数据块之一,代表其所对应的磁盘的同步进度。例如当第二磁盘132的第I个到第127个数据块都已同步完成时,对应此第二磁盘132的同步数据块编号为127。请同时参照图3,其为一实施范例的步骤SlOO的流程图。在步骤SlOO中,第一控制器11以及第二控制器12可依序设定第一磁盘131以及第二磁盘132中每一个数据块的环境参数,以依序同步RAID 13的第一磁盘131与第二磁盘132的这些数据块(步骤S102)。每同步完成一个数据块之后,第一控制器11或第二控制器12依据当前同步完成的数据块的数据块编号以及数据块所属的第一磁盘131或第二磁盘132的磁盘编号,修改同步信息中的同步数据块编号(步骤S104)。例如第二控制器12将第二磁盘132的第128个数据块同步完成后,便将同步信息中对应于此第二磁盘132的同步数据块编号修改为128。请参照图4,其为一实施范例的步骤SlOO的流程图。于此实施范例之中,当要开始将RAID 13进行同步时,第一控制器11或第二控制器12可先将同步完成标签设为假值(False)0当RAID 13的所有数据块同步完成时,第一控制器11或第二控制器12才将同步信息中的同步完成标签设回为真值(True)。第一控制器11以及第二控制器12在进行步骤SlOO的同步的运作时,可同时不断地检测是否发生异常状态。举例来说,第一控制器11可以通过心跳线(heart beat)的方式检测第二控制器12是否正常运作。同理,第二控制器12也可以通过上述方式检测第一控制器11。且第一控制器11可判断同步的过程中第二控制器12是否发生异常状态(步骤S120)。当同步的过程中第二控制器12发生异常状态时,由第一控制器11读取同步信息,并依据同步信息接管第二控制器12控管的第二磁盘132 (步骤S140)。请参照图5,其为一实施范例的步骤S140的流程图。于步骤S140中,首先由第一控制器11读取同步信息中的同步完成标签(步骤S142),并判断同步完成标签是否为真值(步骤S143)。当同步完成标签不为真值而为假值时,表示在将RAID 13同步完成前第二控制器12就已经发生异常状态,而需执行下述步骤S144到步骤S146。第一控制器11依序读取同步信息中的所有同步数据块编号(步骤S144),并判断读取的同步数据块编号是否对应于第二磁盘132(步骤S145)。由于第一磁盘131本来就是由第一控制器11控管,因此若接管时读取的同步数据块编号是对应于第一磁盘131,则可先跳过不予理会。当读取的同步数据块编号对应于第二磁盘132时,第一控制器11则从读取的同步数据块编号对应的数据块的下一个数据块继续同步RAID 13(步骤S146)。换句话说,发生异常状态前已被第二控制器12完成同步的所有数据块都不需要被第一控制器11重新进行同步。第一控制器11可从同步信息中得知第二控制器12的状态并接续进行同步的运作,不用将RAID 13再重新开始同步。而当同步完成标签为真值时,表示再第二控制器12发生异常状态之前就已完成同步。因此第一控制器11可以直接结束RAID 13的同步(S148),并直接控管第二磁盘132。反过来说,当第二控制器12检测并判断第一控制器11发生异常状态时,第二控制器12也可依据上述步骤S142到步骤S148的方法完成同步操作,并接管第一磁盘131。此外,具有双控制器的储存系统的硬盘阵列接管方法也可适用于储存系统10为多个RAID 13的情况。若第一控制器11以及第二控制器12同时创建或维护多个RAID 13,同步信息中可纪录每一个RAID 13的信息以及同步状况。举例而言,可使用第一磁盘131A以及部分第二磁盘132的储存空间创建第一 RAID,并使用第一磁盘131B以及部分第二磁盘132的储存空间创建第二 RAID。则同步信息中可个别纪录第一 RAID以及第二 RAID的控制器识别码、硬盘阵列类型、构成磁盘编号串、数据单元大小、同步完成标签以及同步数据块编号。当第二控制器12发生异常状态时,第一控制器11可依序针对第一 RAID以及第二RAID进行上述同步及接管的运作。综上所述,具有双控制器的储存系统的硬盘阵列接管方法由第一控制器以及第二控制器依据同步状况修改同步信息。而当第二控制器需要被接管时,第一控制器可以根据同步信息藉以延续第二控制器的运作。如此一来,负责接管的第一控制器不需要重设(Reset)就能取得第二控制器的运作,因而不会浪费掉之前已经同步完成的进度。因此具有双控制器的储存系统的硬盘阵列接管方法在非对等环境下,可以大幅节省磁盘传输频宽以及运算资源,而能够更快速地响应客户端的要求。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种具有双控制器的储存系统的硬盘阵列接管方法,其中该储存系统包括第一控制器、第二控制器、至少一第一磁盘以及至少一第二磁盘,该第一控制器控管该第一磁盘,该第二控制器控管该第二磁盘,该第一控制器与该第二控制器通过非对等环境管理以该第一磁盘以及该第二磁盘建立的硬盘阵列,其特征在于,该第一控制器与该第二控制器在进行同步的期间中,当该第二控制器发生异常状态时,由该第一控制器接管该第二控制器所控管的该第二磁盘,该具有双控制器的储存系统的硬盘阵列接管方法包括: 对该第一控制器与该第二控制器进行同步,该第一控制器与该第二控制器将一同步信息储存于储存单元,且该同步信息中纪录有该第一磁盘以及该第二磁盘的同步状况;以及 当同步的过程中该第二控制器发生异常状态时,由该第一控制器从该储存单元中读取该同步信息,并由该第一控制器依据该同步信息接管该第二控制器所控管的该第二磁盘。
2.如权利要求1所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该第一磁盘与该第二磁盘个别包括多个数据块,为了同步该第一磁盘或该第二磁盘,该第一控制器或该第二控制器依序设定该些数据块的环境参数。
3.如权利要求2所 述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该第一磁盘与该第二磁盘个别具有一磁盘编号,该同步信息包括一控制器识别码、一硬盘阵列类型、一构成磁盘编号串、一数据单元大小、一同步完成标签以及多个同步数据块编号,该构成磁盘编号串包括至少一该磁盘编号,该些同步数据块编号个别对应于该第一磁盘或该第二磁盘的该些数据块之一。
4.如权利要求3所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,每一该数据块具有数据块编号,该对该第一控制器与该第二控制器进行同步,并将同步信息储存于一储存单元的步骤包括: 依序同步该硬盘阵列的该第一磁盘与该第二磁盘的该些数据块;以及 每同步完成一个该数据块之后,依据当前同步完成的该数据块的该数据块编号以及所属的该第一磁盘或该第二磁盘的该磁盘编号,修改该同步信息中的该同步数据块编号。
5.如权利要求4所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,另包括: 当该硬盘阵列的所有该些数据块同步完成时,将该同步信息中的该同步完成标签设为真值。
6.如权利要求5所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该由该第一控制器读取该同步信息,并依据该同步信息接管该第二控制器控管的该第二磁盘的步骤包括: 由该第一控制器读取该同步信息中的该同步完成标签;以及 当该同步完成标签不为真值时,执行下述步骤: 依序读取该同步信息中的该些同步数据块编号;以及 当读取的该同步数据块编号对应于该第二磁盘时,从读取的该同步数据块编号对应的该数据块的下一个该数据块继续同步该硬盘阵列。
7.如权利要求6所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该由该第一控制器读取该同步信息,并依据该同步信息接管该第二控制器控管的该第二磁盘的步骤另包括:当该同步完成标签为真值时,结束该硬盘阵列的同步。
8.如权利要求1所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,当该第二控制器故障、关机或是重开机时,该第一控制器接管该第二控制器。
9.如权利要求1所述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该储存系统为存储区域网络。
10.如权利要求1所 述的具有双控制器的储存系统的硬盘阵列接管方法,其特征在于,该储存单元为闪存。
全文摘要
一种具有双控制器的储存系统的硬盘阵列(RAID)接管方法。储存系统包括第一控制器、第二控制器、第一磁盘及第二磁盘,第一控制器控管第一磁盘,第二控制器控管第二磁盘,且第一控制器与第二控制器通过非对等环境管理以第一磁盘及第二磁盘建立的RAID。第一控制器与第二控制器在同步期间中,当第二控制器发生异常状态时,由第一控制器接管第二控制器。前述方法包括对第一控制器与该第二控制器进行同步,将同步信息储存于储存单元,且同步信息中纪录有同步状况;以及当同步的过程中第二控制器发生异常状态时,由第一控制器从储存单元中读取同步信息,并由第一控制器依据同步信息接管第二控制器所控管的第二磁盘。
文档编号G06F3/06GK103176745SQ20111046128
公开日2013年6月26日 申请日期2011年12月26日 优先权日2011年12月26日
发明者陈鹏, 陈志丰 申请人:英业达股份有限公司

最新回复(0)