一种对raid进行控制的方法、装置和系统的制作方法

文档序号:6579578阅读:178来源:国知局
专利名称:一种对raid进行控制的方法、装置和系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种对RAID进行控制的方法、装 置和系统。
背景技术
随着信息技术的发展,网络带宽和处理器性能都得到了飞快的提升。但是 计算机最重要的外部存储设备一磁盘,不但一直没有摆脱系统性能瓶颈的角 色,而且在数据安全上也存在潜在的隐患。 一旦磁盘损坏,其造成的损失可能 是无法估量的。而独立石兹盘冗余阵列(RAID, Redundant Array of Independent Disks )技术,则是目前采用的最广泛的用来提升磁盘存储性能和数据安全的 技术。
RAID通过将多个磁盘组合成一个阵列,将数据有选择性的分布在这个阵 列上,达到提高数据读写速度的目的;同时利用镜像冗余或者校验冗余技术, 将写入磁盘的数据进行备份,达到提升数据安全性的目的。
当RAID (RAIDO除外)中的一个成员盘失效后,RAID控制器通过调整 该RAID中其他成员盘的功能来保证数据的一致性,使该RAID继续工作,这 种工作模式为降级模式。
当RAID中的^个成员盘离线导致RAID工作在降级模式时,该RAID的 读写性能下降;如果该RAID中的多个成员盘都离线则可能进一步造成RAID 故障,数据丟失。

发明内容
有鉴于此,本发明实施例提供一种对RAID进行控制的方法、装置和系统, 对RAID进行保护,保证RAID的读写能力不受影响。
为实现上述目的,本发明实施例提供了如下技术方案
一种对RAID进行控制的方法,其特征在于,包括检测RAID的成员盘是否离线;
在所述RAID的成员盘离线时,将RAID控制器对离线成员盘下发的命令 进行临时保存;
检测所述离线成员盘是否上线;
在预设安全时限内检测到所述离线成员盘上线时,将临时保存的RAID控 制器对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢 复工作。
一种对RAID进行控制的离线检测装置,其特征在于,包括 第一检测单元,用于检测RAID的成员盘是否离线; 存储单元,用于在所述RAID的成员盘离线时,将RAID控制器对离线成 员盘下发的命令进行临时保存;
第二检测单元,用于;^测所述离线成员盘是否上线;
下发单元,用于在预设安全时限内检测到所述离线成员盘上线时,将临时 保存的所述RAID控制器对离线成员盘下发的命令发送至所述离线成员盘,以 使所述离线成员盘恢复工作。 一种对RAID进行控制的系统,其特征在于,包括离线4全测装置和RAID 控制器,其中
所述离线检测装置,用于检测RAID的成员盘是否离线;在所述RAID的 成员盘离线时,将RAID控制器对离线成员盘下发的命令进行临时保存;在预 设安全时限内片企测到所述离线成员盘上线时,将临时保存的所述RAID控制器 对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢复工 作;在预设安全时限内未检测到所述离线成员盘上线时,在预设安全时限内未 检测到所述离线成员盘上线时,将成员盘的离线信息发送给RAID控制器,以 使RAID控制器更新RAID的状态,所述离线消息包括所述离线成员盘执行 RAID控制器对离线成员盘下发的命令失败;
所述RAID控制器,用于接收所述离线检测装置发送的RAID成员盘的离 线信息,并^^测所述离线成员盘所对应的扩展框是否下电;在所述离线成员盘 所对应的扩展框下电时,保存扩展框下电前所述离线成员盘上存储的信息;检测所述扩展框是否上电;在所述扩展框上电时,检测所述扩展框中成员盘中的 信息与扩展框下电前保存的信息是否一致,如果一致,则恢复RAID至扩展框
下电之前的状态。
可见,在本发明实施例中,检测到RAID中有成员盘离线时,并不是直接 将该成员盘的离线状态告知RAID控制器,而是将RAID控制器对离线成员盘 下发的命令保存起来,为离线成员盘设置了一个安全时限,如果在安全时限内 该离线成员盘又上线了 ,就将存储的该RAID控制器对离线成员盘下发的命令 返回给该成员盘,成员盘可以继续进行正常状态,从而避免了如同现有技术中 直接将该成员盘离线状态汇报给RAID控制器,造成RAID进入降级模式的情
进行了屏蔽,从而避免这种安全时限内的成员盘离线和上线事件导致RAID读 写能力的下降。


为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描 述中所需要使用的附图作筒单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例所4是供的方法的流程图2为本发明另一实施例所提供的方法的流程图3为本发明另一实施例所提供的方法的流程图4为本发明一实施例所提供的一装置的结构示意图5为本发明一实施例所^是供的系统的结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实 施例公开了一种对RAID进行控制的方法、装置和系统,为使本发明的目的、 技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步参见图1,本发明一实施例所提供的方法包括
5101, 才t测RAID的成员盘是否离线。
5102, 在所述RAID的成员盘离线时,将RAID控制器对离线成员盘下发 的命令进行临时保存。
S103,检测所述离线成员盘是否上线。
S104,在预设安全时限内检测到所述离线成员盘上线时,将临时保存的所 述RAID控制器对离线成员盘下发的命令发送至所述离线成员盘,以使所述离 线成员盘恢复工作。
现有技术中,RAID中的各个成员盘都是由RAID控制器进行控制的。如 果RAID控制器检测到某一成员盘离线后,会通过调整该RAID中其他成员盘 的功能来保证数据的一致性,使该RAID在降级模式下工作。但是此时,RAID 的读写能力都下降了,实际上影响了正常的读写。
本发明实施例所提供的方法,在检测到RAID中有成员盘离线时,并不是 直接将该成员盘的离线状态告知RAID控制器,而是将RAID控制器对离线成 员盘下发的命令保存起来,为离线成员盘设置了一个安全时限,如果在安全时 限内该离线成员盘又上线了 ,就将存储的该RAID控制器对离线成员盘下发的 命令返回给该成员盘,成员盘可以继续进行正常状态,从而避免了如同现有技 术中直接将该成员盘离线状态汇报给RAID控制器,造成RAID进入降级模式
事件进行了屏蔽,从而避免这种安全时限内的成员盘离线和上线事件导致 RAID读写能力的下降。
当然了,并不是所有的成员盘在离线之后都能够在安全时限内再次上线, 所以在实际应用中,图1所述的方法还包括
S105,在预设安全时限内未检测到所述离线成员盘上线时,将成员盘的离 线信息发送给RAID控制器,以使RAID控制器更新RAID的状态,所述离线 消息包括所述离线成员盘执行RAID控制器对离线成员盘下发的命令失败。
通过上述两个步骤,对不能在安全时限内上电的成员盘进行了有效的处理,保证了整个RAID的正常工作。
下面结合具体的应用场景对本发明实施例所提供的方法进行详细描述。
本发明实施例所4是供的方法可以应用于多种RAID级别。以RAID5为例, 假设有一RAID5阵列,其中具有5个成员盘。为描述方便,依次记为1号成 员盘 5号成员盘。参见图2,结合上述场景,本发明实施例所提供的方法包括
S201,对1号成员盘 5号成员盘的运行状态进行检测。
5202, 判断是否检测到成员盘离线,如果是,进入步骤S203,如果否, 返回步骤S201。
5203, 确定离线成员盘为4号成员盘。
为描述方便,假设4号成员盘离线。当然, 一次也可能有多个成员盘离线 的情况,与一个成员盘离线做同样的处理,此处以一个成员盘离线的情况为例 进行说明。
S204,将4号成员盘设置为状态异常,并且将RAID控制器对4号成员盘 下发的命令进行临时保存。
之所以要将RAID控制器对4号成员盘下发的命令进行保存实际上是因为 此时4号成员盘已经离线了 ,目前这些命令4号成员盘无法处理,为防止数据 的丢失,所以暂时进行保存。
S205,判定上述离线成员盘的离线时间是否已经到达安全时限,如果否, 进入步骤S206,如果是,进入步骤S208。
S206,判定是否片企测到4号成员盘上线,如果是,进入步骤S207,否则, 进入步骤S205。
S207,将4号成员盘设置为状态正常,将所保存的RAID控制器对4号成 员盘下发的命令发送给4号成员盘,以使4号成员盘恢复工作。
通过S205 S207可以看出,安全时限是当前系统可以容忍的一个时间阈 值。这个时间阈值实际上是给4号成员盘的一个等待时间。将本该由4号成员 盘处理的命令进行临时存储,如果在安全时限内,4号成员盘上线,就恢复了 正常状态,这个过程中,4号成员盘离线、上线的过程就被屏蔽了起来,不会 对RAID产生影响。S208,将4号成员盘设置为离线状态,将4号成员盘的离线信息发送给 RAID控制器,以使RAID控制器更新RAID的状态,所述离线消息包括所述 离线成员盘执行RAID控制器对离线成员盘下发的命令失败。
S209, RAID控制器对l、 2、 3、 5号成员盘进行调整后1、 2、 3、 5号成 员以调整后的状态继续工作。
本发明实施例所4是供的方法,将安全时限内RAID的成员盘离线-上线的 过程进行有效的屏蔽,避免了因成员盘短暂离线即造成RAID进入降级模式的 情况,保证了 RAID的读写能力,从而提高了 RAID的运行效率。
RAID中的成员盘在进行工作时是相互影响的,如果RAID离线的成员盘 过多,就不仅仅是使RAID降级,而是会导致RAID变为故障状态。
造成RAID成员盘离线的原因很多,其中,扩展框下电是非常典型的一种。 实际应用中,通过扩展框可以挂接更多磁盘,从而获得更大的存储空间。扩展 框如果下电将导致与扩展框相连接的所有RAID的成员盘全部离线。显然,这 种情况的出现会给RAID所在的系统带来非常恶劣的影响,因此,为了扩展框 上电后使RAID能够快速自恢复,参见图3,仍然应用图2所示的实施例对应 的场景,本发明实施例所提供的方法为
S301,对1号成员盘 5号成员盘的运行状态进行检测。
S302,确定离线成员盘数目,并判断当前磁盘阵列中未离线的成员盘数目 是否大于预设成员盘数目阈值,如果否,进入步骤303 ,如果是,返回步骤S301 。
实际应用中,每一种RAID级别都需要一定的成员盘数目来保证它的基本 运行,将这个必要的成员盘数目即为成员盘数目阈值。当RAID中可用的成员 盘数目少于成员盘数目阈值时,该RAID就无法正常工作了。
为描述方便,以RAID5为例,假设当前场景中RAID5阵列的3、 4、 5号 成员盘的状态都为离线状态。该RAID5阵列共有5个成员盘,现在有三个离 线,只剩下两个。而对RAID5阵列来说,要保证正常工作,至少需要3个成 员盘。故可以将RAID5阵列的成员盘数目阈值设置为3个。5个成员3个离 线,显然,剩下的2个成员盘数目已经小于成员盘数目阈值,不能再支持RAID 5 正常工作。S303,检测到当前磁盘阵列的扩展框下电,进入步骤S304。可选地,也可以在一全测到RAID成员盘离线时即检测当前RAID的扩展框 是否下电,而不需要根据未下电磁盘数进行判定,这样做,安全性更高。
5304, 保存扩展框下电前所述离线成员盘所在的RAID的成员盘的信息以 及状态。
5305, ;险测到前述扩展框上电,进入步骤S306。
S306,在所述扩展框上电时,检测所述扩展框中成员盘中的信息与扩展框 下电前保存的信息是否一致,如果一致,则恢复RAID5至扩展框下电之前的 状态。
可选地,还可以根据离线成员盘的数量,将RAID设置为降级或者故障状态。
可选地,在所述扩展框上电时,若检测到所述扩展框中成员盘中的信息与 扩展框下电前保存的信息不一致,则保持RAID当前状态。在所述扩展框上电 时,当检测到所述扩展框中成员盘中的信息与扩展框下电前保存的信息不一 致,则认为RAID成员盘发生变化,此时由于新接入磁盘内的数据不正确,因 此RAID不能恢复,RAID将保持当前状态,如果RAID在下电时的状态—皮i殳 置为降级或故障,则就保持为降级或者故障状态。
本发明实施例所4是供的方法,对RAID中大多数成员盘离线的状况进行了 进一步的分析,当确定造成大多数成员盘下电的原因为扩展框下电时,通过对 各个成员盘的信息进行及时存储保证了在扩展框上电后RAID成员盘信息的 快速恢复,从而避免了 RAID数据丟失的情况,提高了RAID的安全性。
本发明实施例还提供一种对RAID进行控制的离线检测装置,参见图4, 该装置包括
第一检测单元401 ,用于检测RAID的成员盘是否离线;
存储单元402,用于在所述RAID的成员盘离线时,将RAID控制器对离
线成员盘下发的命令进行临时保存;
第二检测单元403,用于检测所述离线成员盘是否上线;
下发单元404,用于在预设安全时限内检测到所述离线成员盘上线时,将
临时保存的所述RAID控制器对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢复工作。
在本发明一实施例中,图4所示的装置可以位于设备驱动层。
本发明实施例所提供的离线检测装置,在检测到RAID中有成员盘离线 时,并不是直接将该成员盘的离线状态告知RAID控制器,而是将RAID控制 器对离线成员盘下发的命令保存起来,并为离线成员盘设置了 一个安全时限, 如果在安全时限内该离线成员盘又上线了 ,即可将存储的该RAID控制器对离 线成员盘下发的命令返回给该离线成员盘,该离线成员盘可以继续进行正常状 态,从而避免了现有技术中直接将该成员盘离线状态汇报给RAID控制器,造 成RAID进入降级状态的情况。本发明实施例所提供的装置将安全时限内突发 性成员盘离线和上线事件进行了屏蔽,从而避免这种安全时限内的成员盘离线 和上线事件导致RAID读写能力的下降。
实际应用中,并不是所有的离线成员盘都能够在安全时限内再次上线,所 以,为了不影响RAID的正常运行,在本发明另一实施例中,图4所示的装置 还包括
发送单元405,用于在预设安全时限内未检测到所述离线成员盘上线时, 将成员盘的离线信息发送给RAID控制器,以使RAID控制器更新RAID的状 态,所述离线消息包括所述离线成员盘执行RAID控制器对离线成员盘下发的 命令失败。
实际应用中,每一个RAID都需要一定的成员盘数目来保证它的基本运 行,这个必要的成员盘数目即为成员盘数目阈值。当一个RAID中可用的成员 盘数目少于成员盘数目阈值时,该RAID就无法正常工作了 。
参见图5,针对上述情况,本发明实施例还提供一种对RAID进行控制的 系统,包括离线检测装置501和RAID控制器502,其中
所述离线检测装置501,用于检测RAID的成员盘是否离线;在所述RAID 的成员盘离线时,将RAID控制器对离线成员盘下发的命令进行临时保存;在 预设安全时限内检测到所述离线成员盘上线时,将临时保存的所述RAID控制 器对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢复 工作;在预设安全时限内未检测到所述离线成员盘上线时,将成员盘的离线信息发送给RAID控制器,以使RAID控制器更新RAID的状态,所述离线消息 包括所述离线成员盘执行RAID控制器对离线成员盘下发的命令失败;
所述RAID控制器502,用于接收所述离线检测装置发送的RAID成员盘 的离线信息,并检测所述离线成员盘所对应的扩展框是否下电;在所述离线成 员盘所对应的扩展框下电时,保存扩展框下电前所述离线成员盘上存储的信 息;检测所述扩展框是否上电;在所述扩展框上电时,检测所述扩展框中成员 盘中的信息与扩展框下电前保存的信息是否一致,如果一致,则恢复RAID至 扩展框下电之前的状态。
可选地,所述RAID控制器,还用于在所述扩展框上电时,若检测到所述 扩展框中成员盘中的信息与扩展框下电前保存的信息不一致,则保持RAID当 前状态。
本发明实施例所提供的系统,在通过离线检测装置检测到RAID中有成员 盘离线时,并不是直接将该成员盘的离线状态告知RAID控制器,而是将RAID 控制器对离线成员盘下发的命令保存起来,并为离线成员盘设置了 一个安全时 限,如果在安全时限内该离线成员盘又上线了,即可将存储的该RAID控制器 对离线成员盘下发的命令返回给该离线成员盘,该离线成员盘可以继续进行正 常状态,从而避免了现有技术中直接将该成员盘离线状态汇报给RAID控制 器,造成RAID进入降级状态的情况。同时,本发明实施例所提供的系统中的 RAID控制器对RAID中大多数成员盘离线的状况进行了进一步的分析,当确 定扩展框下电时,通过对各个成员盘的信息和状态进行及时存储保证了在扩展 框上电后RAID成员盘信息的快速恢复,从而避免了 RAID数据丢失的情况, 提高了 RAID的安全性。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例 如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的
例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本 发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来 执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地 和远程计算机存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种对RAID进行控制的方法,其特征在于,包括检测RAID的成员盘是否离线;在所述RAID的成员盘离线时,将RAID控制器对离线成员盘下发的命令进行临时保存;检测所述离线成员盘是否上线;在预设安全时限内检测到所述离线成员盘上线时,将临时保存的RAID控制器对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢复工作。
2、 根据权利要求1所述的方法,其特征在于,还包括在预设安全时限内未检测到所述离线成员盘上线时,将成员盘的离线信息 发送给RAID控制器,以使RAID控制器更新RAID的状态,所述离线消息包 括所述离线成员盘执行RAID控制器对离线成员盘下发的命令失败。
3、 根据权利要求2所述的方法,其特征在于,还包括所述RAID控制器检测所述离线成员盘所对应的扩展框是否下电;在所述离线成员盘所对应的扩展框下电时,所述RAID控制器保存下电之 前所述离线成员盘所在的RAID的成员盘的信息及状态; 所述RAID控制器检测所述扩展框是否上电;在所述扩展框上电时,所述RAID控制器检测所述扩展框中成员盘中的信 息与扩展框下电前保存的信息是否一致,如果一致,则恢复RAID至扩展框下 电之前的状态。
4、 根据权利要求3所述的方法,其特征在于,还包括在所述扩展框上电时,所述RAID控制器若检测到所述扩展框中成员盘中 的信息与扩展框下电前保存的信息不一致,则保持RAID当前状态。
5、 根据权利要求1 4任意一项所述的方法,其特征在于,还包括 在所述RAID的成员盘离线时,将所述离线成员盘的状态设置为异常状
6、 根据权利要求1 4任意一项所述的方法,其特征在于,还包括在预设安全时限内检测到所述离线成员盘上线时,将所述离线成员盘的状 态设置为正常状态。
7、 一种对RAID进行控制的离线检测装置,其特征在于,包括 第一检测单元,用于检测RAID的成员盘是否离线;存储单元,用于在所述RAID的成员盘离线时,将RAID控制器对离线成 员盘下发的命令进行临时保存;第二检测单元,用于检测所述离线成员盘是否上线;下发单元,用于在预设安全时限内检测到所述离线成员盘上线时,将临时 保存的所述RAID控制器对离线成员盘下发的命令发送至所述离线成员盘,以 使所述离线成员盘恢复工作。
8、 根据权利要求7所述的装置,其特征在于,还包括发送单元,用于在预设安全时限内未检测到所述离线成员盘上线时,将成 员盘的离线信息发送给RAID控制器,以使RAID控制器更新RAID的状态, 所述离线消息包括所述离线成员盘执行RAID控制器对离线成员盘下发的命 令失败。
9、 一种对RAID进行控制的系统,其特征在于,包括离线检测装置和 RAID控制器,其中所述离线检测装置,用于检测RAID的成员盘是否离线;在所述RAID的 成员盘离线时,将RAID控制器对离线成员盘下发的命令进行临时保存;在预 设安全时限内检测到所述离线成员盘上线时,将临时保存的所述RAID控制器 对离线成员盘下发的命令发送至所述离线成员盘,以使所述离线成员盘恢复工 作;在预设安全时限内未检测到所述离线成员盘上线时,在预设安全时限内未 检测到所述离线成员盘上线时,将成员盘的离线信息发送给RAID控制器,以 使RAID控制器更新RAID的状态,所述离线消息包括所述离线成员盘执行 RAID控制器对离线成员盘下发的命令失败;所述RAID控制器,用于接收所述离线检测装置发送的RAID成员盘的离 线信息,并检测所述离线成员盘所对应的扩展框是否下电;在所述离线成员盘所对应的扩展框下电时,保存扩展框下电前所述离线成员盘上存储的信息;检 测所述扩展框是否上电;在所述扩展框上电时,检测所述扩展框中成员盘中的 信息与扩展框下电前保存的信息是否一致,如果一致,则恢复RAID至扩展框 下电之前的状态。
10、根据权利要求9所述的系统,其特征在于,所述RAID控制器,还用于在所述扩展框上电时,若检测到所述扩展框中 成员盘中的信息与扩展框下电前保存的信息不一致,则保持RAID当前状态。
全文摘要
本发明实施例公开了一种对RAID进行控制的方法、装置和系统。本发明实施例所提供的方法,实际上是在检测到RAID中有成员盘离线时,并不是直接将该成员盘的离线状态告知RAID控制器,而是将RAID控制器对离线成员盘下发的命令保存起来,为离线成员盘设置了一个安全时限,如果在安全时限内该离线成员盘又上线了,就将存储的RAID控制器对离线成员盘下发的命令返回给该成员盘,成员盘可以继续进行正常状态,从而避免了如同现有技术中直接将该成员盘离线状态汇报给RAID控制器,造成RAID进入降级模式的情况。本发明实施例所提供的方法是将安全时限内突发性成员盘离线和上线事件进行屏蔽,从而避免这种安全时限内的成员盘离线和上线事件导致RAID读写能力下降。
文档编号G06F3/06GK101630237SQ20091016179
公开日2010年1月20日 申请日期2009年8月25日 优先权日2009年8月25日
发明者刘林超, 吕先锋, 锐 曲, 光 陈 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1