盘阵列装置、数据恢复方法和计算机产品的制作方法

文档序号:6541706阅读:142来源:国知局
专利名称:盘阵列装置、数据恢复方法和计算机产品的制作方法
技术领域
本发明涉及一种盘阵列装置,包括多个磁盘装置和并行地操作磁盘装置以控制对数据的读取和写入的盘阵列控制器。
背景技术
传统盘阵列装置(廉价冗余磁盘阵列RAID)能够高速地存取大量存储在与主计算机相连的外部存储设备上的数据,在发生错误时由于提供了数据冗余而具有改善的可靠性(例如,参见日本特开2004-164675号公报)。通常,将盘阵列装置分为六个等级,RAID0到RAID5。在RAID1中,将相同的数据写入两个磁盘装置中。因此,即使两个磁盘装置中的一个发生故障,也可从另一个磁盘装置中读取数据,由此改善了数据的安全性。
将把同一数据存储在两个或者更多个磁盘装置中的方法称为数据镜像,并且将实现该镜像的结构称为镜像磁盘结构。可以通过各种方式实现镜像或者镜像磁盘结构。图7是具有镜像磁盘结构的传统盘阵列装置110的示意图。将盘阵列装置110连接到作为上位设备的主计算机140。盘阵列装置110包括作为硬盘装置的8个磁盘装置121a到121h;连接到主计算机140的两个通道适配器131a和131b;执行从主计算机140接收的命令的四个中央管理单元132;与磁盘装置121a到121h相连的四个设备适配器133a到133d。盘阵列装置110可以存储数据,同时还可以对数据进行镜像。磁盘装置121e到121h分别存储与磁盘装置121a到121d中的数据相同的数据。
盘阵列装置110包括四个中央管理单元132a到132d。每个中央管理单元控制磁盘装置121a到121h中的预定磁盘装置。中央管理单元132a包括命令处理执行单元151a,和存储数据的高速缓冲存储器152a。高速缓冲存储器152a包括本地高速缓冲区域153a,存储在读取数据时从预定磁盘装置中读取的数据和在写入数据时要写入预定磁盘的数据;以及,镜像高速缓冲区域154a,用于对要写入预定磁盘装置的数据进行复制。其它的中央管理单元132b到132d具有与中央管理单元132a相同的结构。以循环的方式利用镜像高速缓冲区域复制全部中央管理单元的本地高速缓冲区域。例如,利用邻近的中央管理单元132b的镜像高速缓冲区域154b来复制中央管理单元132a的本地高速缓冲区域153a。
下面对将存储在高速缓冲存储器中的数据写入磁盘装置的回写(write-back)处理进行说明。例如,对将数据从主计算机140写入磁盘装置121a的情况进行说明。通道适配器131a接收写入命令以指示从主计算机140写入数据,并且与校验信息一起写入该数据,该校验信息表示添加在管理磁盘装置121a(在写入命令中指定的存取目的地)的中央管理单元132a的本地高速缓冲区域153a中的数据的有效性。同时,通道适配器131b从主计算机140接收写入命令,并且与校验信息一起写入该数据,该校验信息表示添加在管理磁盘装置121e(其对磁盘装置121a进行复制,下文称为“镜像用磁盘装置”)的中央管理单元132b的镜像高速缓冲区域154b中的数据的有效性。因此,将相同数据存储在磁盘装置121a和121e中。
假设本地高速缓冲区域153a中的数据是异常数据(corrupt data)。在此情况下,由于在磁盘装置121a中存储有相同的数据,所以意味着在磁盘装置121a中存在的数据也同样是异常数据。假设在镜像高速缓冲区域154b中和磁盘装置121e中存储有正常数据。
基于这些假设,当主计算机140执行数据读取命令,以读取写入磁盘装置121a中的数据时,通道适配器131a将数据读取命令传送给管理磁盘装置121a的中央管理单元132a,以执行该数据读取命令。此时,如果在本地高速缓冲区域153a中存在对应的数据,则从本地高速缓冲区域153a中读取数据。另一方面,如果在本地高速缓冲区域153a中不存在对应的数据,则将该数据从磁盘装置121a中展开到本地高速缓冲区域153a中。通道适配器131a执行错误校验,并且根据该数据中的校验信息来判断该数据是否是正常数据。因为在此假设高速缓冲存储器152a中的数据是异常数据,所以通道适配器131a判定该数据是异常数据。因为所读取的数据是异常数据,所以执行从磁盘装置121e读取相同数据的处理。通道适配器131b将数据读取命令传送给中央管理单元132b,以将数据从磁盘装置121e中展开到本地高速缓冲区域153b中。此后,通道适配器131b对展开到本地高速缓冲区域153b中的数据执行错误校验。在该示例中,因为存储在磁盘装置121e中的数据是正常数据,所以通道适配器将存储在高速缓冲存储器152b的本地高速缓冲区域153b中的数据返回给主计算机140。此后,根据来自主计算机140的用户或者盘阵列装置110的管理员的命令,以正常数据替换磁盘装置121a中的异常数据。
如上所述,在传统的盘阵列装置中,即使数据在回写处理时变为异常数据,但是该异常数据也被写入了磁盘装置。直到用户或者管理员注意到在磁盘装置中存在异常数据并且指示在异常数据上覆写正常数据,该异常数据才会被正常数据替换。因此,如果在磁盘装置中存在异常数据的事实未被注意到,则该异常数据将存留在磁盘装置中而不会被恢复。

发明内容
本发明的一个目的是至少解决传统技术中的这些问题。
根据本发明的一个方面,一种盘阵列装置与外部设备相连,在数据写入操作中存储从外部设备接收的数据,并且在数据读取操作中,基于来自外部设备的读取命令,将数据返回给外部设备,该盘阵列装置包括盘阵列单元,包括存储数据的第一存储器和对已经存储在第一存储器中的数据进行复制的第二存储器;多个中央管理单元,各中央管理单元包括高速缓冲存储器和命令处理执行单元,该高速缓冲存储器具有本地高速缓冲区域和镜像高速缓冲区域,该本地高速缓冲区域在执行数据读取操作时存储从第一存储器或第二存储器读取的数据,并且在执行数据写入操作时存储从外部设备接收的数据,该镜像高速缓冲区域在数据写入操作期间对已经存储在本地高速缓冲区域中的数据进行复制,该命令处理执行单元在第一次接收到读取命令时将存储在第一存储器中的第一数据展开到本地高速缓冲区域中,并且在第二次接收到读取命令时将第二数据从第二存储器中展开到本地高速缓冲区域中;多个通道适配器,各通道适配器包括校验信息添加单元和错误校验单元,该校验信息添加单元将错误校验用的校验信息添加到从外部设备接收的用于存储在第一存储器中的数据上,该错误校验单元基于该校验信息对本地高速缓冲区域中的数据执行错误校验;恢复处理执行判定单元,其在完成与外部设备的输入/输出处理之后,在错误校验单元判定第一数据出现错误而第二数据正常时,向命令处理执行单元输出回写命令。该命令处理执行单元将存储在本地高速缓冲区域中的第二数据复制到其它中央管理单元的高速缓冲存储器的镜像高速缓冲区域中,并且在恢复处理执行判定单元输出回写命令后,执行用于将第二数据传送给第一存储器和第二存储器的回写操作。
根据本发明的另一个方面,一种用于盘阵列装置的数据恢复方法,该盘阵列装置包括用于复制并存储数据的第一存储器和第二存储器、在对第一存储器或者第二存储器进行存取时存储数据的第一高速缓存单元和对存储在第一高速缓存单元中的来自外部的数据进行复制的第二高速缓存单元,所述方法包括当基于来自与盘阵列装置相连的外部设备的数据读取命令而从第一存储器写入第一高速缓存单元中的第一数据中存在错误时,基于从外部设备再次接收的数据读取命令,将第二数据从第二存储器写入第一高速缓存单元中;对第二数据执行错误校验;当基于错误校验判定第二数据正常时,将第二数据发送给外部设备;将写入第一高速缓存单元中的第二数据复制到第二高速缓存单元中;并且将写入第一高速缓存单元和第二高速缓存单元中的第二数据分别回写入第一存储器和第二存储器中。
根据本发明的另一个方面,一种计算机可读记录介质,其中存储有使计算机实现上述数据恢复方法的计算机程序。
本发明的其它目的、特征和优点将从本发明的以下详细说明中得到具体地阐述,或者通过结合附图进行阅读而变得明了。


图1是根据本发明的实施例的盘阵列装置的方框图;图2是图1所示的通道适配器的功能框图;图3是数据结构的一个示例;图4是图1所示的中央管理单元的功能框图;图5是数据的回写处理过程的流程图;图6A是数据恢复的处理过程的流程图,并且图6B是图6A中所示的流程图的继续;以及图7是传统盘阵列装置的框图。
具体实施例方式
下面将结合附图详细解释本发明的示例性实施例。
图1是根据本发明的实施例的盘阵列装置10的框图。盘阵列装置10与作为上位设备的主计算机40相连,并且用作主计算机40的外部存储设备。可以将多个主计算机通过网络等与盘阵列装置相连。盘阵列装置10包括存储数据的盘阵列单元20,和控制盘阵列单元20的盘阵列控制单元30。
盘阵列单元20包括多个磁盘装置(硬盘驱动器),并具有RAID1结构或者RAID0+1结构。典型地,RAID1结构具有用于存储数据的磁盘装置和用于镜像该数据的磁盘装置,以此来提供对数据的冗余。RAID0+1结构基本包括在n个磁盘装置中分配并存储数据的RAID0结构(其中,n是大于1的正整数),并且包括用于进行镜像的n个磁盘装置,以提供对数据的冗余。不考虑该结构,RAID系统至少包括用于存储数据的磁盘装置,和用于复制数据的磁盘装置。有时,将存储数据的磁盘装置称为主磁盘而将镜像数据的磁盘装置称为副磁盘。因为副磁盘对数据进行镜像,所以有时也将副磁盘称为镜像用磁盘装置。
盘阵列单元20包括例如8个磁盘装置(硬盘驱动器)21a到21h。磁盘装置21a到21d是主磁盘,而磁盘装置21e到21h是副磁盘。磁盘装置21a到21h包括由主计算机40识别的逻辑单元(未示出)。磁盘装置的数目不限于8个。
盘阵列控制单元30包括多个通道适配器31a和31b,执行对于主计算机40的接口控制;中央管理单元32a到32d,控制盘阵列单元20;以及,多个设备适配器33a到33d,控制磁盘装置21a到21h。通道适配器、中央管理单元和设备适配器的数目分别不限于2个、4个和4个。
通道适配器31a和31b是与主计算机40的接口。图2是通道适配器31a的示例性功能框图。通道适配器31b具有相同的结构。通道适配器31a包括命令处理单元311,处理来自主计算机40的命令;校验信息添加单元312,生成用于对从主计算机40写入盘阵列装置10的数据执行错误校验的校验信息,并且将所生成的校验信息添加给该数据;错误校验单元313,对所存取的数据执行错误校验;以及,控制单元314,控制每个处理单元。
命令处理单元311具有以下功能将从主计算机40发送的命令传送给中央管理单元32a到32d中的预定中央管理单元,将命令执行结果从预定中央管理单元发送给主计算机40,并且向预定中央管理单元通知命令执行结果或者错误校验结果。例如,如图1所示,当设置有多个中央管理单元32a到32d时,各中央管理单元32a到32d对预定磁盘装置21a到21h进行管理,命令处理单元311基于命令的存取目的地(例如逻辑单元或者逻辑单元与逻辑块地址的组合)识别中央管理单元32a到32d中的要向其传送命令的一个中央管理单元,并且将所接收的命令传送给所识别出的中央管理单元。
从命令处理单元311通知给预定中央管理单元的重要信息包括错误通知信息和处理完成通知信息。错误通知信息是用于在错误校验单元313判定数据中存在错误时,通知预定中央管理单元发生错误的信息,而处理完成通知信息是用于在将命令执行结果返回到主计算机40之后随即通知预定中央管理单元关于主计算机40的处理已完成的信息。
校验信息添加单元312具有如下功能生成在读取稍后将从主计算机40写入磁盘装置21a到21h的数据时判断是否在该数据中存有错误的过程中使用的信息,并且将所生成的校验信息添加给该数据。对于错误校验,例如可以使用循环冗余校验(CRC)。
图3是添加有校验信息的数据的示意图。校验信息71包括块ID 72和校验码73,并且将其添加到要写入盘阵列装置10的数据70中。块ID72是逻辑地址和数据的特性信息,校验码73是用于校验数据有效性的错误校正码。例如,针对每个预定数据大小的块生成校验码73,并且将其添加给数据70作为校验信息71。在使用CRC的时候,校验码73是通过将数据假设为多项式,并且将该多项式除以生成多项式而获得的余式。
错误校验单元313在将要存储在盘阵列单元20a到20h或者高速缓冲存储器323中的数据发送给主计算机40时,使用添加给数据70的校验信息71来对于该数据执行待发送的数据70是否正常的错误校验。错误校验的方法包括由校验信息添加单元312以与生成校验信息71相同的方式来生成用于数据70的代码,并且将实际计算出的数据与包含在添加给数据70的校验信息中的校验码73进行比较,以检测数据中的错误。
图4是中央管理单元32a的示例性功能框图。中央管理单元32b到32d具有相同的配置。中央管理单元32a包括资源控制单元321,执行资源管理;RAID控制单元322,控制各个RAID级别中的磁盘装置21a到21h的输入/输出(I/O);高速缓冲存储器323,临时存储数据;命令处理执行单元326,对所接收的命令执行处理并对高速缓冲存储器323进行控制;恢复处理执行判定单元327,判断由于在磁盘装置21a到21h中存在具有错误的数据而是否需要进行恢复处理;以及控制单元328,对各个处理单元进行控制。当如图1所示,设置多个中央管理单元32a到32d时,预先确定以由各个中央管理单元32a到32d控制的磁盘装置21a到21h形成的逻辑单元的范围。
资源控制单元321具有如下功能区域独占功能,用于当连接多个主计算机时,当其它主计算机已存取了数据时,对可对同一数据执行修改的主计算机进行限制;以及,资源控制功能,用于控制各个处理单元中的I/O相关处理。
RAID控制单元322具有如下功能将物理磁盘装置21a到21h转换为逻辑单元级别,并且对各RAID级别中的磁盘装置21a到21h的I/O进行控制,例如针对各RAID级别进行镜像或者逐条进行控制或管理。
高速缓冲存储器323是对从主计算机40存取的数据或者要写入磁盘装置21a到21h中的数据进行存储的临时存储单元,包括本地高速缓冲区域324,用于临时存储要从主计算机40写入盘阵列单元20的数据或者从盘阵列单元20读取的数据;以及,镜像高速缓冲区域325,用于在向盘阵列单元20中写入数据时,临时存储用于对要写入的数据进行复制(镜像)的数据。此外,在中央管理单元32的镜像高速缓冲区域中,不仅对相同高速缓冲存储器323的本地高速缓冲区域324中存储的数据进行了复制,而且也对在中央管理单元32a到32d中的其它相邻中央管理单元的高速缓冲存储器323的本地高速缓冲区域中存储的数据进行了复制。因此,以循环的方式对所有的中央管理单元32a到32d的本地高速缓冲区域324和镜像高速缓冲区域325进行了复制。
在图1示出的示例中,将从主计算机40写入中央管理单元32a的高速缓冲存储器323中的数据复制在中央管理单元32b的高速缓冲存储器323的镜像高速缓冲区域325中。类似地,将中央管理单元32b的本地高速缓冲区域324复制在中央管理单元32c的镜像高速缓冲区域325中,将中央管理单元32c的本地高速缓冲区域324复制在中央管理单元32d的镜像高速缓冲区域325中,并且将中央管理单元32d的本地高速缓冲区域324复制在中央管理单元32a的镜像高速缓冲区域325中。
命令处理执行单元326具有如下功能对用于I/O的高速缓冲存储器323进行管理和控制,并对所接收的命令执行处理。例如,当命令处理执行单元326从通道适配器31a或者31b的命令处理单元311接收到读取数据的请求时,命令处理执行单元326确定关于I/O的高速缓冲存储器323的高速缓存选中(cache hit)/高速缓存未选中(cache miss)。在高速缓冲存储器选中的情况下,命令处理执行单元326准备存储在高速缓冲存储器323的本地高速缓冲区域324中的数据,并且在高速缓存未选中的情况下,通过执行将数据从磁盘装置21a到21h展开到高速缓冲存储器323的本地高速缓冲区域324的登台操作(stage operation)来准备数据。类似地,当命令处理执行单元326接收到写入数据的请求时,命令处理执行单元326将写入高速缓冲存储器323的本地高速缓冲区域324的数据复制到镜像高速缓冲区域325中,并且将数据分别写入主磁盘和副磁盘中。此外当高速缓冲存储器323耗尽时,命令处理执行单元326执行回写处理,以将存储在高速缓冲存储器323的本地高速缓冲区域324中的异常数据回写入磁盘装置21a到21h中,或者执行例如从高速缓冲存储器323刷新数据的调度。
恢复处理执行判定单元327判断被主计算机40存取的某些数据是否是异常数据,该异常数据表示存储在高速缓冲存储器323的本地高速缓冲区域324中的数据与存储在主磁盘中的数据不匹配,并且当判定是异常数据时,指示命令处理执行单元326执行回写处理,以将存储在本地高速缓冲区域324中的数据回写入盘阵列单元20中。当从作为主磁盘的磁盘装置21a到21d读取的数据中存在错误时,并且当从作为副磁盘的磁盘装置21e到32h中读取的数据正常时,恢复处理执行判定单元327判定需要执行恢复处理,并且使命令处理执行单元326在完成与主计算机40的I/O之后,执行将正常数据回写入盘阵列单元20的处理。
通过以下方式来进行判断当从主磁盘读取的数据具有错误时,使用首先从通道适配器31a和31b的命令处理单元311接收的错误通知信息,并且当从副磁盘读取的数据正常时,使用稍后从通道适配器31a和31b的命令处理单元311接收的处理完成通知信息。换言之,仅当在已经接收到错误通知信息之后接收到关于某数据的处理完成通知信息时,恢复处理执行判定单元327才指示对于磁盘装置21a到21h执行恢复处理。利用该恢复处理,消除了存储在高速缓冲存储器323中的数据与存储在主磁盘中的数据(将其存储在与存储在高速缓冲存储器323中的数据相同的位置上)之间的差异,并且保持非异常状态。
设备适配器33a和33b具有在中央管理单元32a到32d和磁盘装置21a到21h之间交换命令或者数据的功能,以基于来自中央管理单元32a到32d的命令来控制磁盘装置21a到21h。
盘阵列装置10是主计算机40的外部存储设备,通过来自主计算机40的写入命令将必要的数据写入其中。此外,盘阵列装置10在通过来自主计算机40的写入命令将数据写入高速缓冲存储器323的本地高速缓冲区域324和镜像高速缓冲区域325中之后,执行将存储在高速缓冲存储器323中的数据回写入相应的磁盘装置21a到21h中的处理(回写处理)。此后,执行来自主计算机40的各种命令,例如读取命令。下面对当要写入主磁盘中的所存取的数据具有错误并且存储在副磁盘的数据正常时的如下处理进行说明(1)数据的回写处理以及;(2)对盘阵列装置10的恢复处理。
图5是数据回写的处理过程的流程图。在该示例中,将数据回写入图1所示的磁盘装置21a和21e中,并且中央管理单元32a对磁盘装置21a和21e进行管理。如上所述,利用中央管理单元32b的镜像高速缓冲区域325复制中央管理单元32a的本地高速缓冲区域324。首先,当通道适配器31a从主计算机40接收数据写入命令(步骤S11)时,通道适配器31a的校验信息添加单元312生成用于所接收的数据的校验信息,并且将所生成的校验信息添加到该数据中(步骤S12)。通道适配器31a的命令处理单元311获取该数据的存取目的地(例如逻辑单元号和逻辑块地址)(步骤S13),并且选择管理与存取目的地相对应的磁盘装置21a的中央管理单元32a。
通道适配器31a的命令处理单元311将添加有校验信息的数据存储在所选择的中央管理单元32a的高速缓冲存储器323的本地高速缓冲区域324中,以及中央管理单元32b到32d中的用于复制该数据的其它中央管理单元的高速缓冲存储器323的镜像高速缓冲区域325中(步骤S14)。接着,通道适配器31a的命令处理单元311通知主计算机40完成了写入数据(步骤S15),中央管理单元32a的命令处理执行单元326将存储在其自己的高速缓冲存储器323的本地高速缓冲区域324中的数据回写入主磁盘(磁盘装置21a)中,并且其它中央管理单元32b的命令处理执行单元326将存储在其自己的高速缓冲存储器323的本地高速缓冲区域324中的数据回写入副磁盘中(磁盘装置21e)(步骤S16)。利用这种机制,完成了数据的回写处理。
图6A和6B是当存储在主磁盘中的首先存取的数据中存在错误,而存储在副磁盘中的数据正常时的数据恢复的处理过程的流程图。在此示例中,处理是通过图5中描述的过程来读取存储在磁盘装置21a和21e中的数据。假设存储在作为主磁盘的磁盘装置21a中的数据具有错误,并且存储在作为副磁盘的磁盘装置21e中的数据正常。首先,通道适配器31a从主计算机40接收到读取命令(步骤S31),并且确定数据的存取目的地(步骤S32)。换言之,通道适配器31a基于包括在该命令中的表示存取目的地的位置的存取目的地信息(例如逻辑单元或者逻辑块地址)来选择对存取目的地的磁盘装置21a进行管理的中央管理单元32a,并且将所接收的命令通知中央管理单元32a。
中央管理单元32a的命令处理执行单元326判断在高速缓冲存储器323的本地高速缓冲区域324中是否存储有存取目的地的数据(步骤S33)。当在本地高速缓冲区域324中没有存储该数据时(步骤S33中为“否”),命令处理执行单元326请求设备适配器33a执行登台处理,以将对应的数据从主磁盘(磁盘装置21a)展开到高速缓冲存储器323的本地高速缓冲区域324中。根据该请求,设备适配器33a从主磁盘读取对应的数据,并且将所读取的数据展开到高速缓冲存储器323的本地高速缓冲区域324中(步骤S34)。此后,或者当步骤S33中在本地高速缓冲区域324中存储有存取目的地的数据(步骤S33中为“是”)时,通道适配器31a的命令处理单元311从本地高速缓冲区域324中读取与存取目的地相对应的数据(步骤S35)。
通道适配器31a的错误校验单元313使用预定方法对所读取的数据执行错误校验(步骤S36)。当不存在错误(步骤S37中为“否”)时,通道适配器31a的命令处理单元311将存储在本地高速缓冲区域324中的数据发送给主计算机40(步骤S38),并且完成读取命令的处理。另一方面,当检查出错误时(步骤S37中为“是”),通道适配器31a的命令处理单元311向主计算机40通知该错误(步骤S39),并且将该错误通知信息通知给中央管理单元32a(步骤S40)。在接收到错误通知后,主计算机40重试读取命令。中央管理单元32a的恢复处理执行判定单元327将错误通知信息与作为错误通知信息源的命令一起进行存储。
盘阵列装置10的通道适配器31a接收用于重试的读取命令(步骤S41),并且以与步骤S32中描述的相同方式来确定存取目的地(步骤S42)。即通道适配器31a基于包含在该命令中的表示存取目的地的位置的存取目的地信息(例如逻辑单元或者逻辑块地址),来选择对存取目的地的磁盘装置21e进行管理的中央管理单元32a,并且将所接收的命令传送给中央管理单元32a。此时,因为该命令是对先前命令的重试,所以中央管理单元32a的命令处理执行单元将所需的数据从副磁盘(镜像用的磁盘装置21e)展开到高速缓冲存储器323的本地高速缓冲区域324中(步骤S43)。
此后,通道适配器31a的命令处理单元311从高速缓冲存储器323的本地高速缓冲区域324中读取与存取目的地相对应的数据(步骤S44),并且错误校验单元313对所读取的数据执行错误校验(步骤S45)。当存在错误(步骤S46中为“是”)时,命令处理单元311向主计算机通知该错误(步骤S47),并且因为在此情况下不能执行另一个恢复处理,所以结束恢复处理。另一方面,当不存在错误(步骤S46中为“否”)时,则命令处理单元311将存储在本地高速缓冲区域324中的数据发送给主计算机40(步骤S48),并且向中央管理单元32通知表示关于主计算机40的处理已完成的处理完成通知信息(步骤S49)。
因为在步骤40中已经接收到错误通知信息,并且在步骤S49中已经接收到处理完成通知信息,所以在接收到处理完成通知信息后,中央管理单元32a的恢复处理执行判定单元327识别出存储在高速缓冲存储器323的本地高速缓冲区域324中的数据和存储在主磁盘(磁盘装置21a)中的相应数据之间存在差异,并且通知命令处理执行单元326执行回写处理。命令处理执行单元326将存储在中央管理单元32a的高速缓冲存储器323的本地高速缓冲区域324中的数据复制到中央管理单元32b的高速缓冲存储器323的镜像高速缓冲区域325中(步骤S50),并且将存储在本地高速缓冲区域324中的数据回写入存储有具有错误的数据的主磁盘(磁盘装置21a)中(步骤S51)。同时,中央管理单元32b的命令处理执行单元326将存储在其自己的高速缓冲存储器323的镜像高速缓冲区域325中的数据回写入副磁盘(镜像用磁盘装置21d)中。通过上述步骤,完成了将正常数据回写入其中存储有具有错误的数据的高速缓冲存储器323中或与高速缓冲存储器323相对应的磁盘装置21a中的处理。
根据本实施例,说明了对高速缓冲存储器和磁盘装置进行复制的一个示例,然而,也同样可以以相同方式应用于具有三个或者更多个高速缓冲存储器和磁盘装置的系统,以进行多重复制。
上述从目标器(target)侧向始发器(initiator)侧发布命令的方法可通过以下方式来实现将包括该方法的处理过程的该计算机程序存储在计算机可读记录介质中,并且通过具有在盘阵列装置中处理该计算机程序的功能的操作处理单元来读取并执行该计算机程序。计算机可读记录介质例如包括便携记录介质,例如软盘、光盘只读存储器(CD-ROM)、光磁盘、数字万能光盘(DVD)和集成电路(IC)卡;固定记录介质,例如计算机内置硬盘驱动器或者外置硬盘驱动器、随机存取存储器(RAM)、和只读存储器(ROM);以及,在传送计算机程序时临时存储计算机程序的通信介质,例如通过调制解调器连接的公共线、和局域网(LAN)/广域网(WAN)。
如上所述,根据本实施例,通道适配器31a在将主计算机40所需的数据返回之前对该数据执行错误校验。当在存储在主磁盘中的数据中存在错误时,将错误通知信息发送给中央管理单元32a,并且当存储在副磁盘中的对应数据正常时,将表示完成了对来自主计算机40的命令进行处理的处理完成通知信息发送给中央管理单元32a。中央管理单元32a基于错误通知信息和处理完成通知信息来判断是否有必要对存储在盘阵列单元20中的具有错误的数据进行恢复,并且当在已经接收错误通知信息之后接收到处理完成通知信息时,在重试时使用写入高速缓冲存储器323中的数据来执行该恢复处理。
利用这种机制,当盘阵列装置10具有错误数据时,能够在对盘阵列装置10的输入/输出的延续中自动执行数据恢复处理。在恢复处理中,因为使用了从作为副磁盘的镜像用磁盘装置21e到21h写入高速缓冲存储器323中的数据,所以与稍后执行恢复处理的情况相比,能够有效地使用恢复处理所需的步骤和资源。此外,当盘阵列装置10认识到存在具有错误的数据时,立即执行恢复处理,因此,盘阵列装置10可总保持其中存储有正常数据的状态。此外,实际上能够在未被用户或者盘阵列装置的管理员发现的情况下,防止在盘阵列装置10中长期存留具有错误的数据的状态。
根据本发明,当在从外部设备对存储在盘阵列装置中的数据进行存取时检测到异常数据时,在完成对数据的存取之后将异常数据恢复为正常数据。因此用户或者管理员不必一定要发现盘阵列装置中存在异常数据。因此,能够减少用户或者管理员的工作负担。此外,因为在存取数据的时候发现异常数据,所以几乎可以即时地恢复该异常数据。此外,因为在存取数据时使用了展开到本地高速缓冲区域的正常数据,所以能够在数据恢复中有效地使用资源。例如,如果用户或者管理员执行恢复处理,则必需再次将数据展开到高速缓冲存储器中。然而根据本发明,因为在存取时将数据展开到高速缓冲存储器中,所以能够最小化恢复处理中的工作次数。此外,实际上还能够防止长期存留具有错误的数据。
虽然为了完整和清楚公开的目的,根据具体的实施例描述了本发明,但后附的权利要求并未因此而受到限制,而应将其解释为包含了完全落入本文所阐述的基本教义中的、本领域的技术人员所能想到的所有改进和替换结构。
权利要求
1.一种盘阵列装置,该盘阵列装置与外部设备相连,在数据写入操作中,存储从外部设备接收的数据,并且在数据读取操作中,基于来自外部设备的读取命令,将数据返回给该外部设备,所述盘阵列装置包括盘阵列单元,包括存储数据的第一存储器;和对已经存储在第一存储器中的数据进行复制的第二存储器;多个中央管理单元,各个中央管理单元包括高速缓冲存储器,其具有本地高速缓冲区域,用于在执行数据读取操作时存储从第一存储器或第二存储器中读取的数据,并且在执行数据写入操作时存储从外部设备接收的数据;和镜像高速缓冲区域,其在数据写入操作期间对已经存储在本地高速缓冲区域中的数据进行复制;以及命令处理执行单元,其在第一次接收到读取命令后,将存储在第一存储器中的第一数据展开到本地高速缓冲区域中,并且在第二次接收到读取命令后,将第二数据从第二存储器展开到本地高速缓冲区域中;多个通道适配器,各个通道适配器包括校验信息添加单元,将用于错误校验的校验信息添加给从外部设备接收的用于存储在第一存储器中的数据;错误校验单元,基于校验信息对本地高速缓冲区域中的数据执行错误校验;和恢复处理执行判定单元,其在与外部设备的输入/输出处理完成之后,当错误校验单元判定第一数据具有错误而第二数据正常时,向命令处理执行单元输出回写指令,其中所述命令处理执行单元将存储在本地高速缓冲区域中的第二数据复制到其它中央管理单元的高速缓冲存储器的镜像高速缓冲区域中,并且在恢复处理执行判定单元输出回写指令后,执行将第二数据传送给第一存储器和第二存储器的回写操作。
2.根据权利要求1所述的盘阵列装置,其中所述第一存储器和所述第二存储器是磁盘。
3.根据权利要求1所述的盘阵列装置,其中所述盘阵列单元具有RAID1结构。
4.根据权利要求1所述的盘阵列装置,其中所述盘阵列单元具有RAID0+1结构。
5.一种用于盘阵列装置的数据恢复方法,该盘阵列装置包括用于复制和存储数据的第一存储器和第二存储器;第一高速缓存单元,其在对第一存储器或者第二存储器进行存取时存储数据;以及,第二高速缓存单元,其对存储在第一高速缓存单元中的来自外部的数据进行复制,所述数据恢复方法包括以下步骤当基于来自与盘阵列装置相连的外部设备的数据读取命令而从第一存储器写入第一高速缓存单元中的第一数据中存在错误时,基于从外部设备再次接收的数据读取命令,将第二数据从第二存储器写入第一高速缓存单元中;对第二数据执行错误校验;当基于所述错误校验判定第二数据正常时,将第二数据发送给外部设备;将写入第一高速缓存单元中的第二数据复制到第二高速缓存单元中;并且将写入第一高速缓存单元和第二高速缓存单元中的第二数据分别回写入第一存储器和第二存储器中。
6.根据权利要求5所述的数据恢复方法,其中所述第一存储器和所述第二存储器是磁盘。
7.一种计算机可读记录介质,其中存储有使计算机执行用于盘阵列装置的数据恢复方法的计算机程序,该盘阵列装置包括用于复制和存储数据的第一存储器和第二存储器;在对第一存储器或者第二存储器进行存取时存储数据的第一高速缓存单元;对存储在第一高速缓存单元中的来自外部的数据进行复制的第二高速缓存单元;以及,对读取或写入数据的处理进行控制的盘阵列控制单元,所述计算机程序使计算机执行从与盘阵列装置相连的外部设备接收数据读取命令;当从第一存储器写入第一高速缓存单元中的与数据读取命令相对应的第一数据中存在错误时,将与数据读取命令相对应的第二数据从第二存储器写入第一高速缓存单元中;对从第二存储器写入第一高速缓存单元中的第二数据执行错误校验;当基于所述错误校验判定第二数据正常时,将第二数据发送给外部设备;将写入第一高速缓存单元中的第二数据复制到第二高速缓存单元中;以及将写入第一高速缓存单元和第二高速缓存单元中的第二数据分别回写入第一存储器和第二存储器中。
8.根据权利要求7所述的计算机可读记录介质,其中所述第一存储器和所述第二存储器是磁盘。
全文摘要
盘阵列装置、数据恢复方法和计算机产品。通过盘阵列控制单元将主磁盘和复制主磁盘中的数据的副磁盘与主计算机相连。盘阵列控制单元包括多个中央管理单元。各中央管理单元包括用于写入所存取的数据的高速缓冲存储器和基于所接收的命令来执行处理的命令处理执行单元。各中央管理单元执行的处理包括当存储在主磁盘中的数据存在错误而存储在副磁盘中的数据正常时,判定恢复处理是必要的,该恢复处理进行如下的处理在与主计算机的输入/输出处理完成之后,将写入高速缓冲存储器中的数据复制到其它中央管理单元的高速缓冲存储器中,并且将写入高速缓冲存储器中的数据回写入主磁盘和副磁盘。
文档编号G06F11/10GK1773443SQ20051005895
公开日2006年5月17日 申请日期2005年3月25日 优先权日2004年11月8日
发明者小林明人, 长岛克彦, 内田幸治, 小林史明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1