识别故障模块的方法及装置的制作方法

文档序号:6630628阅读:250来源:国知局
专利名称:识别故障模块的方法及装置的制作方法
技术领域
本发明涉及一种识别包括多个模块的盘控制器中的故障模块的技术。
背景技术
以往,已经提出了包含有多个盘设备的存储系统(例如,存储设备),其可增大存储空间并提高输入/输出性能。当盘设备中发生了故障时,仅需更换故障盘便可使存储设备继续运行。
为实现可容错的存储设备,不仅盘装置,部件(即例如控制器等模块)也需要进行冗余配置。当在模块中发生故障时,仅需更换故障模块便可使存储设备继续运行。
例如,在日本专利申请特开No.H11-306644中公开了一种技术,该技术用于分离故障盘设备,并诊断被分离的盘设备中的故障。此外,在日本专利申请特开No.S60-10328中公开了一种技术,该技术用于在故障发生时判断是盘设备自身还是与该盘设备相连接的信道设备(ChannelDevice)发生了故障。
以往的技术可以通过具有故障检测功能的模块来检测故障。然而,由于不具有故障检测功能的多个模块存在于同一数据通路上,因而以往技术无法识别发生了故障的模块。
图11是用于解释以往故障检测方法的原理图。假定该方法在盘阵列设备上执行。服务器从/向盘设备上读出/写入数据。应保证该数据没有被破坏。
该盘阵列设备包括信道适配器(CA),其控制与服务器的连接;设备适配器(DA),其控制与盘设备的连接;控制模块(CM),其控制整个盘阵列设备,并且一般包括用作盘缓存的存储器;以及路由器(RT),其使CA、DA、CM相互连接。
这些模块中的每一个都进行了冗余配置。因此当在某一模块中发生故障时,通过更换该故障模块,盘阵列设备便可继续运行。
通过模块的数据被校验以保证该数据。例如,CA和DA对数据进行循环冗余校验(CRC)。CRC将16~32位的CRC码添加到该数据上,通过该CRC码来检测数据中的误码。使用CRC,即便多个位发生变化时仍然能够识别出误码。因此,CRC常常被用来校验盘控制器中的数据。
另一方面,CM和RT一般进行奇偶校验。奇偶校验仅能识别出一位中的误码,当多个位发生变化时不能检测出错误。在盘阵列设备中,有只进行奇偶校验的模块和完全不(不能)对数据进行检查的模块。
当进行CRC的模块(CA或DA)检测出数据错误时,在同一数据通路上的模块(CM或RT)也许包含该错误。然而,由于CM和RT并不进行CRC,因而无法识别错误的位置。
因此,以往的技术不能识别出发生了故障的模块,因而无法决定要更换哪个模块。所以盘陈列设备在故障后不能被快速高效地修复。具体地,当故障发生时,维护人员必须查阅故障记录来识别并更换可导致系统瘫痪的故障模块。然而,随着数据处理系统的快速发展,需要一种可快速高效地确定并更换故障模块以避免系统瘫痪的容错系统。

发明内容
根据本发明的一个方面,提供了一种装置,用于识别包括多个模块的盘控制器中的故障模块,该装置包括测试指示单元,当所述多个模块中的一个模块检测到故障时,该测试指示单元指示所述多个模块利用测试数据对存储器进行访问测试;识别单元,该识别单元根据访问测试的结果识别发生故障的模块。
根据本发明的另一个方面,提供了一种方法,用于识别包括多个模块的盘控制器中的故障模块,该方法包括当所述多个模块中的一个模块检测出故障时,指示所述多个模块利用测试数据对存储器进行访问测试;基于所述访问测试的结果识别发生了故障的模块。
参考附图,结合下面对本发明的当前的优选实施例的详细描述,将更好地理解本发明以上和其他的目的、特性、优点、以及技术上的和工业上的重要性。


图1是解释根据本发明的实施例的故障检测方法的原理图;图2是示出了图1中所示的模块的连接的图;图3是根据本实施例的故障检测设备的功能方框图;图4是示出了访问测试的示例的表;图5是示出了数据样型(Data Pattern)的示例的表;图6是示出了故障位置识别单元所执行的程序的第一示例;图7是示出了故障位置识别单元所执行的程序的第二示例;图8是示出了故障位置识别单元所执行的程序的第三示例;图9是示出了故障位置识别单元所执行的程序的第四示例;图10是故障检测设备所执行的故障检测程序的流程图;图11是用于解释以往的故障识别方法的原理图。
具体实施例方式
下面将参照附图对本发明的优选例进行说明。假定在控制存储设备的控制器中安装了根据本发明的故障检测设备。本发明不限于这些实施例。
图1是用于解释根据本发明的故障检测方法的原理图。当执行CRC的第一模块(CA或DA)检测出故障时(见图1中的(1)),该第一模块将该故障通知给具有故障识别装置的第二模块(CM)(见图1中的(2))。当收到该通知后,该第二模块指示所有能够执行“访问测试”的模块(CA和DA)执行访问测试(见图1中的(3)),并且基于该访问测试的结果和从第一模块接收的报告识别故障发生的位置(模块)(见图1中的(4))。
如上所述,以往的故障识别方法虽然可以检测出发生了故障,但其不能识别出哪里发生了故障。因此存储设备的维护人员不得不查阅故障记录来识别发生故障的模块,然后更换该故障模块。
另一方面,本发明的显著特征在于,该故障检测方法可以识别发生了故障的模块。如后所述,即便发生故障的是不具备CRC功能的模块(CM或RT),该故障检测方法仍然可以识别出发生了故障的位置(模块)。因而故障可被快速高效地修复。
图2是示出了图1中所示模块的连接的图。各CM、RT、CA和DA均多台设置,相互连接在一起。因此,当模块中发生了故障时,通过更换故障模块,存储设备便可继续运行。
例如,RT 60a与多个CA 70和DA 80相连接。CM 50a与4台RT(60a~60d)相连接。当CM 50a中发生了故障时,另一个CM(50b~50d)可取代CM 50a起作用。
在CM(50a~50d)中的一台将作为主CM发挥作用。该主CM具有故障检测设备。在该主CM中编辑访问测试的结果,用来识别可能发生了故障的模块。
图3是故障检测设备1的功能方框图。假定该故障检测设备安装在CM内。
故障检测设备1包括通信接口(I/F)部2、控制部10、以及存储部20。控制部10包括服务器请求控制单元11、故障数据登记单元12、测试执行指示单元13、测试结果接收单元14和故障位置识别单元15。存储部20包括随机访问存储器(RAM)、故障数据21和测试用存储单元22。
通信I/F部2与模块间进行收发数据。通信I/F部2将从故障检测设备1外侧接收到的数据传给控制部10,然后将从控制部10收到的数据传到故障检测设备1的外侧。
当控制部10从检测出故障的模块(以下称作“故障检测模块”)接收到故障数据时,该控制部10指示多个模块访问测试用存储单元22来执行访问测试并根据该访问测试的结果识别出故障模块。
故障数据登记单元12通过通信I/F部2从故障检测模块接收故障数据,将该数据作为故障数据21登记在存储部20内,并通知服务器请求控制单元11和测试执行指示单元13该故障数据已被接收。
一旦故障数据登记单元12接收到故障数据,该故障数据登记单元12不再接收任何故障数据直至经过规定的时间。这样,基于同一故障的访问测试不会被多次重复执行,避免了处理过程中的混乱。
服务器请求控制单元11使服务器暂停或恢复向/从盘上的输入/输出(以下称作“服务器I/O”)。例如,当正在进行访问测试时,服务器I/O被暂停。这样可以有效地防止常规的数据访问处理受到访问测试的影响。
在从故障数据登记单元12接收到了通知的情况下,测试执行指示单元13指示多个模块访问测试用存储单元22,执行访问测试。具体地,测试执行指示单元13获得指明故障检测模块识别出故障时所访问的CM的故障信息21。该CM是访问测试的对象。该测试执行指示单元13指示多个模块针对由故障信息21所指明的CM执行访问测试。测试执行指示单元13指示多个模块执行访问测试时,该测试执行指示单元13向每个模块发送该对象CM的识别号和在测试用存储单元22中进行访问测试的地址。
图4是访问测试示例的表。测试执行指示单元13指示多个模块执行图4中所示的访问测试。因此,各模块执行“写入520B×8”的处理(见图4中的“1”)。具体地,是在测试用存储单元22的规定区域内将520字节的数据(以下称作520B)连续写入8次。通过为512B的数据添加8个字节的块ID(BID)得到520B的数据。然后,各模块确认该写入处理是否成功(见图4中的“2”)。
各模块读取被写入的测试数据(参见图4中的“3”),然后确认该读取处理是否成功(参见图4中的“4”)。各模块将被写入的数据与被读取的数据的首4B进行比较(参见图4中的“5”)。
该5个处理形成一组(Set)。例如,第一组使用数据样型A,第二组使用数据样型B,交替使用该两种数据样型。这些组在0.5秒内重复。通过在预定的时间内重复这些处理,制造出负荷。因此,故障检测设备1可有效地检测出仅在高负荷状态下才发生的故障。
图5是示出了图4中所示数据样型A和数据样型B的示例的表。数据样型A包括8行数据,用于图4中所示处理。
例如,图4中的“1”所示“写入520B×8”的处理使用图5中“1”到“8”的数据。图5中所示BID假定为8B。图5中所示数据样型B对应于数据样型A的异或逻辑运算(XOR)。
通过交替使用不同的数据样型,再现读/写特定的数据样型时发生的故障。因此,故障检测设备1可以精确地检测出故障。在图5中,每一行包括不同的数据。然而,可连续使用同一数据(例如,8次)。
图4和图5中所示测试数据仅仅是示例。也可使用更长的数据或者重复不同的样型。
回到图3的说明,测试结果接收单元14接收由这些模块执行的访问测试的结果,编辑这些结果并将其传给故障位置识别单元15。该结果里面包括指明所检测出的错误的类型的数据,例如CRC错误、BID错误、“比较(Compare)”错误(参见图4中的“5”)等。
故障位置识别单元15基于来自测试结果接收单元14的数据识别故障模块。图6至图9是故障位置识别单元15所执行的程序的示例。
在图6中,多个适配器(CA或DA)与RT连接。假定作为访问测试的结果,CA检测出故障。因此,故障位置识别单元15将该CA识别为第一可能故障模块,并将CM和RT识别为第二和第三可能故障模块。第一可能故障模块被退出而进行积极的维护。如果在更换了该第一可能故障模块之后故障仍然未被修复,则对第二或第三可能故障模块进行积极的维护。
在图7中,仅有一个适配器(CA)与RT连接。假定作为访问测试的结果,该CA检测出故障。因此,故障位置识别单元15将该RT和CA两者识别为第一和第二可能故障模块,CM为第三可能故障模块。
在图8中,多个适配器(CA和DA)被连接到RT上。假定作为访问测试的结果,多个适配器检测出故障。因此,故障位置识别单元15将该RT识别为第一可能故障模块,将该CM识别为第二可能故障模块,检测出故障的适配器(CA和DA)为第三可能故障模块。
在图9中,多个RT与该CM连接,并且每个RT上连接有数个适配器。假定作为访问测试的结果,连接到不同RT上的多个适配器检测出故障。因此,故障位置识别单元15将该CM识别为第一可能故障模块,将检测出故障的RT和适配器识别为第二和第三可能故障模块。
故障位置识别单元15从测试结果接收单元14接收访问测试的结果,并基于该结果识别故障模块,更换该故障模块。因此,可快速高效地修复故障。
回到图3的说明,登记在存储部20内的故障数据21指出了故障识别模块检测出故障时所访问的CM。测试执行指示单元13指示多个适配器模块(CA和DA)对由故障数据21所指出的CM进行访问测试。
测试用存储单元22是模块进行读/写数据处理的区域。具体地,测试用存储单元22包括分配给每个适配器模块(CA或DA)的访问区。每个适配器模块在分配的访问区内执行访问测试。例如,每个适配器模块至少分配有4,160B的访问区来执行写入520B×8的数据的处理。
图10是由故障检测设备1所执行的故障检测过程的流程图。故障数据登记单元12通过通信I/F部2接收来自故障检测模块的故障数据(步骤S101)。故障数据登记单元12指示服务器请求控制单元11暂停服务器I/O(步骤S102)。例如,服务器I/O被暂停1秒直至步骤S105。
测试执行指示单元13指示多个模块(CA和DA)对由故障信息21所指出的故障检测模块识别出故障时所访问的CM进行访问测试(步骤S103)。当这些模块完成访问测试时,测试结果接收单元14接收访问测试的结果(步骤S104),并指示服务器请求控制单元11恢复服务器I/O(步骤S105)。
故障位置识别单元15从测试结果接收单元14接收访问测试的结果,并且通过执行图6至图9所示的程序来识别故障模块(步骤S106)。当识别出了故障模块时,该故障模块被退出而被进行积极的维护(步骤S107),该处理结束。
根据本实施例,故障数据登记单元从故障检测模块接收故障数据。基于该故障数据,测试执行指示单元指示各模块对故障检测模块检测出故障时所访问的模块进行访问测试。当测试结果接收单元接收了访问测试的结果时,故障位置识别单元基于该结果识别故障模块。因此,即便在不具备故障检测功能的模块中发生了故障,仍然能够识别出故障模块。而且,在进行访问测试的时候,服务器请求控制单元暂停服务器I/O。因此,可有效地防止访问测试影响常规的数据访问处理。
尽管在本实施例中故障检测设备被配置在CM内,但本发明不限于此例。该故障检测设备可被配置在其余任何模块内,或这些模块之外。
根据本实施例的故障检测方法可通过在计算机上执行计算机程序来实现。该计算机程序可被存储在计算机可读的记录介质中,例如HD、FD、CD-ROM、DVD等,或者可通过互联网等网络进行下载。
对于本领域的技术人员来说,可很容易地想到另外的优点和变型。因此,从更广的角度来讲,本发明不限于这里所描述和解释的具体细节和代表实施例。所以,在不脱离主要发明原理(定义在所附权利要求和与其等同内容中)的精神和范围的情况下,可作多种变型。
权利要求
1.一种用于识别包括多个模块的盘控制器中的故障模块的装置,该装置包括测试指示单元,当所述多个模块中的一个模块检测出故障时,该测试指示单元指示所述多个模块利用测试数据对存储器进行访问测试;以及识别单元,该识别单元基于所述访问测试的结果识别发生了故障的模块。
2.根据权利要求1所述的装置,还包括暂停单元,该暂停单元将来自服务器的盘访问请求暂停预定的时间。
3.根据权利要求1所述的装置,其中所述测试指示单元在指示所述多个模块进行访问测试后,在经过预定的时间之前,即便其他模块识别出了另一故障也不再指示所述模块进行另一访问测试。
4.根据权利要求1所述的装置,其中所述访问测试是向存储器上写入所述测试数据或从所述存储器中读出所述测试数据,或以预定的间隔重复这两者。
5.根据权利要求1所述的装置,其中所述测试数据包括第一测试数据和第二测试数据,并且所述访问测试是将第一测试数据和第二测试数据交替地写入存储器,或从存储中交替地读出第一测试数据和第二测试数据,或两个动作都进行。
6.一种用于识别包括多个模块的盘控制器中的故障模块的方法,该方法包括当所述多个模块中的一个模块识别出故障时,指示所述多个模块利用测试数据对存储器进行访问测试;以及基于该访问测试的结果,识别发生了故障的模块。
7.根据权利要求6所述的方法,还包括在预定的时间内暂停来自服务器的盘访问请求。
8.根据权利要求6所述的方法,其中所述指示包括在指示所述模块进行访问测试后,在经过预定的时间之前,即便其他的模块检测出了其它故障,也不再指示所述模块进行其他的访问测试。
9.根据权利要求6所述的方法,其中所述访问测试指的是向所述存储器写入所述测试数据或从所述存储器读取所述测试数据,或以预定间隔重复上述两者。
10.根据权利要求6所述的方法,其中所述测试数据包括第一测试数据和第二测试数据,并且所述访问测试是将第一测试数据和第二测试数据交替地写入存储器,或从所述存储器中交替地读出所述第一测试数据和第二测试数据,或两个动作都进行。
全文摘要
识别故障模块的方法及装置。故障数据登记单元从故障检测模块接收故障数据。基于该故障数据,测试执行指示单元指示每个模块对故障检测模块检测出故障时所访问的模块进行访问测试。当测试结果接收单元接收到了所述访问测试的结果时,所述故障位置识别单元基于该结果识别故障模块。在进行访问测试的时候,服务器请求控制单元暂停服务器I/O。
文档编号G06F11/00GK1841547SQ20051008540
公开日2006年10月4日 申请日期2005年7月18日 优先权日2005年3月28日
发明者山口浩二, 佐藤弘章, 伊藤实希夫 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1