多控存储系统实现控制器故障保护的装置及方法

文档序号:6424190阅读:352来源:国知局
专利名称:多控存储系统实现控制器故障保护的装置及方法
技术领域
本发明涉及存储装置掉电保护的方法,尤其涉及多控制器存储系统实现控制器故障保护的方法及装置。
背景技术
在多控制器存储系统中为提高系统的可靠性,引入了缓存管理模块,控制器接收写数据的请求后,在将数据写入磁盘前会把要写入的数据发送至其它控制器进行镜像缓存。当接收写请求的控制器发生故障后,由其它控制器接管发生故障的控制器的存储资源, 并把经镜像缓存的数据写入被接管的磁盘。在多控制器存储系统中的一个控制器出现掉电故障后,会导致正在进行读/写操作的磁盘无法向操作系统返回响应;另外,当其它控制器接管故障控制器的存储资源后,在短时间内对被接管的磁盘进行读/写操作,可能会出现错误;由此均会导致出现向被接管的磁盘写数据不一致的故障。因此,需要针对由于多控制器存储系统中的控制器掉电后会引发的磁盘故障,提供一种可靠易行的解决办法及装置,能够有效地避免出现这类故障。

发明内容
本发明所要解决的技术问题是提供一种多控存储系统实现掉电保护的方法及装置,能够在控制器掉电后有效地避免出现磁盘故障。为了解决上述技术问题,本发明提供了一种多控制器存储系统实现控制器故障保护的装置,包括写策略设置模块、磁盘缓存开关模块以及相互连接的磁盘定位模块和磁盘置位模块,其中写策略设置模块,用于在上电时将磁盘的写策略模式设置为数据总被写入磁盘的模式;磁盘缓存开关模块,用于在上电时关闭磁盘的高速缓存;磁盘定位模块,用于在上电时将获取的存储系统中所有磁盘所处物理位置的信息输出给磁盘置位模块;磁盘置位模块,用于在控制器发生故障并接管该发生故障的控制器使用的磁盘资源时,根据输入的磁盘所处物理的位置信息对被接管的磁盘进行置位操作。进一步地,写策略设置模块在上电时将磁盘的写策略模式由默认的回写模式设置为透写模式,即数据总被写入磁盘的模式。进一步地,磁盘缓存开关模块获取及分析小型计算机系统接口协议的0x08协议页中控制磁盘缓存模式的信息,将设为控制打开缓存模式修改为控制关闭缓存模式,然后将修改的信息以命令数据的形式写回磁盘,以关闭磁盘的高速缓存。
进一步地,磁盘定位模块通过小型计算机系统接口 SCSI协议的0χΑ、0χ83协议页信息获取并输出所有磁盘所处物理位置的信息,包括所有磁盘所在阵列及其串行SCSI地址以及磁盘的槽位号。进一步地,磁盘置位模块使用smp_Utils工具执行置位操作,使得被接管的磁盘由不确定状态恢复到正常状态。为了解决上述技术问题,本发明提供了一种多控制器存储系统实现控制器故障保护的方法,包括控制器在上电时将磁盘的写策略模式设置为数据总被写入磁盘的模式,并关闭使用磁盘的高速缓存,以及获取存储系统中所有控制器使用磁盘所处物理位置的信息。进一步地,该方法还包括当有控制器发生故障时,其它控制器根据磁盘所处物理位置的信息对发生故障的控制器所使用的磁盘进行置位操作,完成对磁盘的接管操作。进一步地,控制器在上电时将磁盘的写策略模式由默认的回写模式设置为透写模式,即数据总被写入磁盘的模式。进一步地,控制器在上电时关闭使用磁盘的高速缓存,具体包括获取及分析小型计算机系统接口协议的0x08协议页中控制磁盘缓存模式的信息,将设为控制打开缓存模式修改为控制关闭缓存模式,然后将修改的信息以命令数据的形式写回磁盘,以关闭磁盘的高速缓存。进一步地,控制器在上电时获取存储系统中所有控制器使用磁盘所处物理位置的信息,具体包括通过小型计算机系统接口 SCSI协议的0χΑ、0χ83协议页信息获取所有磁盘所处物理位置的信息,包括所有磁盘所在阵列及其串行SCSI地址以及所述磁盘的槽位号。本发明提供的方法及装置,通过修改存储系统的磁盘写入策略及写模式,并在其它控制器接管故障控制器存储资源的过程中对被接管的磁盘进行置位操作,从而可有效地避免故障控制器被接管后常会出现的磁盘写数据不一致的问题。


图1为本发明的多控存储系统实现控制器故障保护的装置实施例的结构框图;图2为本发明的多控存储系统实现控制器故障保护的方法实施例流程图。
具体实施例方式下面结合附图和优选实施例对本发明的技术方案进行详细地描述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。本发明提供的多控存储系统实现控制器故障保护的装置实施例,其结构如图1所示,包括写策略设置模块110、磁盘缓存开关模块120以及相互连接的磁盘定位模块130和磁盘置位模块140,其中写策略设置模块110,用于在上电时将磁盘的写策略设置为数据总被写入磁盘的模式;写策略设置模块110将磁盘的写策略由默认的回写模式(write back)设置为透写模式(write through)。通常,磁盘的写策略有回写模式(write back)和透写模式两种,其中,回写模式代表被写入高速缓存的数据只有在其要被清除时才会被写入磁盘,该模式是默认情况下的写策略;透写模式代表数据在被写入高速缓存的同时也被写入磁盘,即数据总被写入磁盘的模式。当数据由处理器写入到磁盘上时,要写入的数据由于可能会被频繁访问而先被写入高速缓存中,故在默认情况下的写策略为write kick模式;处于此模式下若发生控制器故障(譬如掉电),会造成高速缓存中尚未被写入磁盘的数据丢失。因此需要在存储系统上电时将磁盘的写策略设为透写模式,由于数据在被写入到高速缓存的同时也会被写到磁盘,故此模式可在发生控制器故障时避免造成数据的丢失。磁盘缓存开关模块120,用于在上电时通过小型计算机系统接口(SCSI,Small Computer Systems Interface)协议关闭磁盘的高速缓存;SCSI协议的0x80协议页中包含了控制磁盘缓存模式的信息,当该信息为打开缓存模式时,写入磁盘的数据会首先写到被打开的高速缓存中;在对磁盘进行置位操作时,会造成已被写入高速缓存但尚未写入磁盘的数据丢失。如果将0x80协议页中控制磁盘缓存模式修改为控制关闭缓存模式,则写入磁盘的数据会直接写到磁盘上,故此情况下再对磁盘进行置位操作时,不会造成数据丢失。磁盘缓存开关模块120获取及分析SCSI协议的0x08协议页中控制磁盘缓存模式的信息,将设为控制打开缓存模式修改为控制关闭缓存模式,然后将修改的信息以命令数据的形式写回磁盘,以关闭磁盘的高速缓存。磁盘定位模块130,用于在上电时将通过SCSI协议获取的存储系统中所有磁盘所处物理位置的信息输出给磁盘置位模块140 ;磁盘定位模块130通过SCSI协议的0χΑ、0χ83协议页信息,获取所有磁盘所在阵列(expander)及其串行SCSI (SAS,krial Attached SCSI)地址以及各磁盘的槽位号。磁盘置位模块140,用于在控制器发生故障并接管其使用磁盘资源时,根据输入的磁盘所处物理位置的信息对被接管的磁盘进行置位操作。磁盘置位模块140根据输入的磁盘所处物理位置的信息找到被接管磁盘的物理位置,通过smp_utils工具对相应的磁盘进行置位操作。在多控制器存储系统中,磁盘阵列通常会通过SAS卡或SAS线与控制器连接。当一个控制器在向磁盘写入数据时发生掉电,造成被写入数据的磁盘处于不确定状态,当另一个控制器接管这些磁盘时,会触发对这些磁盘的状态恢复机制,每个磁盘的恢复时间大约为2秒且恢复过程是顺序执行,如果磁盘数量较多时,另外的控制器接管这些磁盘时间过长,会造成基于磁盘数据的上层业务的中断。磁盘置位模块140使用smp_utils工具可以在短时间内将处于不确定状态的磁盘通过置位操作恢复到正常状态,并且不会影响到上层业务的进行。在置位操作中,如果磁盘的高速缓存处于打开状态,置位操作会造成高速缓存中数据的丢失,所以在进行置位操作前需要磁盘缓存开关模块120将磁盘的高速缓存关闭。
本发明针对上述装置实施例,相应地还提供了多控制器存储系统实现控制器故障保护的方法实施例,其流程如图2所示,包括如下步骤210 各控制器在上电时重设磁盘的写策略模式,并关闭磁盘的高速缓存;各控制器上电时将磁盘的写策略由默认的回写模式重设为透写模式,并将SCSI 协议的0x80协议页中控制磁盘缓存模式修改为控制关闭缓存模式,从而关闭磁盘的高速缓存。220 获取存储系统中所有控制器使用磁盘的位置信息;在上电时将通过SCSI协议的OxA、0x83协议页信息,获取所有磁盘所在阵列 (expander)及其串行SCSI (SAS,krial Attached SCSI)地址以及各磁盘的槽位号。230:当一控制器发生故障时,另一控制器开始接管该故障控制器使用的磁盘资源;譬如当一控制器突然掉电时,另一控制器开始接管该掉电控制器使用的磁盘资源。M0:接管控制器根据磁盘的位置信息对故障控制器使用的磁盘进行置位操作,完成对故障磁盘存储资源的操作。使用smp_Utils工具在短时间内将处于不确定状态的磁盘通过置位操作恢复到正常状态,在接管存储资源完成后继续数据的写请求,写数据便可在此过程中无任何丢失。对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种多控制器存储系统实现控制器故障保护的装置,其特征在于,包括写策略设置模块、磁盘缓存开关模块以及相互连接的磁盘定位模块和磁盘置位模块,其中写策略设置模块,用于在上电时将磁盘的写策略模式设置为数据总被写入磁盘的模式;磁盘缓存开关模块,用于在上电时关闭磁盘的高速缓存;磁盘定位模块,用于在上电时将获取的所述存储系统中所有磁盘所处物理位置的信息输出给磁盘置位模块;磁盘置位模块,用于在控制器发生故障并接管该发生故障的控制器使用的磁盘资源时,根据输入的磁盘所处物理的位置信息对被接管的磁盘进行置位操作。
2.按照权利要求1所述的装置,其特征在于,所述写策略设置模块在所述上电时将所述磁盘的写策略模式由默认的回写模式设置为透写模式,即所述数据总被写入磁盘的模式。
3.按照权利要求1所述的装置,其特征在于,所述磁盘缓存开关模块获取及分析小型计算机系统接口协议的0x08协议页中控制磁盘缓存模式的信息,将设为控制打开缓存模式修改为控制关闭缓存模式,然后将修改的信息以命令数据的形式写回磁盘,以关闭所述磁盘的高速缓存。
4.按照权利要求1所述的装置,其特征在于,所述磁盘定位模块通过小型计算机系统接口 SCSI协议的0χΑ、0χ83协议页信息获取并输出所述所有磁盘所处物理位置的信息,包括所有磁盘所在阵列及其串行SCSI地址以及所述磁盘的槽位号。
5.按照权利要求1至4任一项所述的装置,其特征在于,所述磁盘置位模块使用smp_Utils工具执行所述置位操作,使得所述被接管的磁盘由不确定状态恢复到正常状态。
6.一种多控制器存储系统实现控制器故障保护的方法,包括所述控制器在上电时将磁盘的写策略模式设置为数据总被写入磁盘的模式,并关闭使用磁盘的高速缓存,以及获取所述存储系统中所有控制器使用磁盘所处物理位置的信息。
7.按照权利要求6所述的方法,其特征在于,还包括当有控制器发生故障时,其它控制器根据所述磁盘所处物理位置的信息对发生故障的控制器所使用的磁盘进行置位操作,完成对所述磁盘的接管操作。
8.按照权利要求6所述的方法,其特征在于,所述控制器在上电时将所述磁盘的写策略模式由默认的回写模式设置为透写模式,即所述数据总被写入磁盘的模式。
9.按照权利要求6所述的方法,其特征在于,所述控制器在上电时关闭使用磁盘的高速缓存,具体包括获取及分析小型计算机系统接口协议的0x08协议页中控制磁盘缓存模式的信息,将设为控制打开缓存模式修改为控制关闭缓存模式,然后将修改的信息以命令数据的形式写回磁盘,以关闭所述磁盘的高速缓存。
10.按照权利要求6所述的方法,其特征在于,所述控制器在上电时获取所述存储系统中所有控制器使用磁盘所处物理位置的信息,具体包括通过小型计算机系统接口 SCSI协议的0χΑ、0χ83协议页信息获取所述所有磁盘所处物理位置的信息,包括所有磁盘所在阵列及其串行SCSI地址以及所述磁盘的槽位号。
全文摘要
本发明披露了多控存储系统实现控制器故障保护的装置及方法,其中装置包括写策略设置模块在上电时将磁盘的写策略模式设置为数据总被写入磁盘的模式,磁盘缓存开关模块在上电时关闭磁盘的高速缓存,磁盘定位模块在上电时将获取的存储系统中所有磁盘所处物理位置的信息输出给磁盘置位模块,磁盘置位模块在控制器发生故障并接管该发生故障的控制器使用的磁盘资源时,根据输入的磁盘所处物理的位置信息对被接管的磁盘进行置位操作。本发明可有效地避免故障控制器被接管后常会出现的磁盘写数据不一致的问题。
文档编号G06F3/06GK102200949SQ20111012561
公开日2011年9月28日 申请日期2011年5月16日 优先权日2011年5月16日
发明者张宇, 张延枫 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1