CN101887386A - 一种磁盘阵列控制器故障处理方法及系统 - Google Patents
一种磁盘阵列控制器故障处理方法及系统 Download PDFInfo
- Publication number
- CN101887386A CN101887386A CN 201010190194 CN201010190194A CN101887386A CN 101887386 A CN101887386 A CN 101887386A CN 201010190194 CN201010190194 CN 201010190194 CN 201010190194 A CN201010190194 A CN 201010190194A CN 101887386 A CN101887386 A CN 101887386A
- Authority
- CN
- China
- Prior art keywords
- disk array
- array controller
- task
- running status
- fault
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开一种磁盘阵列控制器故障处理方法及系统,该方法包括:接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;若所述判断为是,则接管所述任务,并按照预定的故障处理程序处理所述故障。实施本发明提供的磁盘阵列控制器故障处理方法及系统,可以独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
Description
技术领域
本发明涉及计算机电子领域,尤其涉及一种磁盘阵列控制器故障处理方法及系统。
背景技术
RAID是“Redundant Array of Independent Disk”的缩写,中文意思是磁盘阵列存储系统。磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过磁盘阵列控制器(RAID Controller)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。
磁盘阵列存储系统的核心是磁盘阵列控制器。磁盘阵列控制器是主机和磁盘之间的数据传输通路,包含面向主机和磁盘阵列两个方面的接口。磁盘阵列控制器处理来自主机和磁盘阵列的信息,通过对多个磁盘成员的并行操作,提供远高于单独磁盘的传输速率,从而匹配数据前端和磁盘设备之间的数据传输速度,使其达到均衡。
磁盘阵列控制器作为磁盘阵列系统的核心,其可靠性直接关系到磁盘阵列的可用性。磁盘阵列控制器是一个复杂的控制系统,具有专用的软硬件平台,因此具有嵌入式系统难以测试的特征。
磁盘阵列作为数据存储的终端节点,需要快速响应来自存储网络或主机的大量数据存储请求,为了保证系统具有极高的I/O吞吐率,磁盘阵列控制器的任务由大量并发的工作线程相互协作完成的。因此,磁盘阵列控制器具有任务密集、并发度高的特征。
本发明人在实施本发明的过程中发现,磁盘阵列控制器因为其复杂性导致其可靠性下降,为了保证磁盘阵列控制器长期、高效的运行,必须要使其具备容错能力。
在现有的方法中,通常采用硬件冗余技术来提高其容错能力,这种方式实现需要较高的成本。而通过软件技术保障其可靠性的方法,通常是将故障处理逻辑融合在磁盘阵列控制器业务处理过程中,当磁盘阵列控制器发现故障时,则跳转到相应的故障处理程序分支中去,但是这种方式所能处理的故障有限,并且进一步增加了磁盘阵列控制器的复杂度,难以维护。
发明内容
本发明实施例所要解决的技术问题在于,提供一种磁盘阵列控制器故障处理方法及系统,独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
为了解决上述技术问题,本发明实施例提供了一种磁盘阵列控制器故障处理方法,包括:
接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;
根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;
若所述判断为是,则接管所述任务,并按照预定的故障处理程序处理所述故障。
其中,所述接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态之前,还包括:
预设所述磁盘阵列控制器的各类任务在各个阶段的运行状态模型;所述磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。
其中,所述根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障,包括:
根据所述磁盘阵列控制器主动注册的运行状态,查找其当前任务在当前阶段的运行状态模型;
判断所述磁盘阵列控制器主动注册的运行状态,是否符合查找得到的运行状态模型。
其中,所述运行状态模型中包括:所述磁盘阵列控制器的各类任务在各个阶段之间的时间间隔;
则所述根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障,还包括:判断所述磁盘阵列控制器主动注册运行状态后,在对应运行状态模型规定的时间间隔内,是否收到下一次运行状态的注册。
其中,所述按照预定的故障处理程序处理所述故障中,所述预定的故障处理程序包括:
任务回滚,控制执行过程中出现故障的任务回到前一个注册的运行状态中,重新执行所述任务;
任务终止,终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息;
系统安全关闭,将磁盘阵列控制器缓存的数据回写到非易失存储介质中,安全的关闭所述磁盘阵列控制器。
相应地,本发明实施例还提供一种磁盘阵列控制器故障处理系统,包括:
信息收集模块,用于接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;
故障判断模块,用于根据所述信息收集模块接收的磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;
故障处理模块,用于在所述故障判断模块判定所述磁盘阵列控制器在任务执行过程中出现故障时,接管所述任务,并按照预定的故障处理程序处理所述故障。
其中,所述接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态之前,还包括:
状态模型预置模块,用于预设所述磁盘阵列控制器的各类任务在各个阶段的运行状态模型;所述磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。
其中,所述故障判断模块包括:
模型查找单元,用于根据所述磁盘阵列控制器主动注册的运行状态,在所述状态模型预置模块中查找其当前任务在当前阶段的运行状态模型;
比对判断单元,用于比对所述磁盘阵列控制器主动注册的运行状态,是否符合所述模型查找单元查找得到的运行状态模型;若一致,则判定磁盘阵列控制器运行正常;否则,判定磁盘阵列控制器出现故障。
其中,所述运行状态模型中包括:所述磁盘阵列控制器的各类任务在各个阶段之间的时间间隔;
则所述故障判断模块还包括:时限判断单元,用于在所述磁盘阵列控制器主动注册运行状态后开始计时,判断在对应运行状态模型规定的时间间隔内,是否收到下一次运行状态的注册。
其中,所述故障处理模块包括:
第一处理单元,用于将执行过程中出现故障的任务回滚,控制所述任务回到前一个注册的运行状态中,重新执行该任务;
第二处理单元,用于终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息;
第三处理单元,用于执行磁盘阵列控制器的安全关闭,第三处理单元将磁盘阵列控制器缓存的数据回写到非易失存储介质中,安全的关闭所述磁盘阵列控制器。
实施本发明实施例,具有如下有益效果:
(一)独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。
(二)在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的磁盘阵列控制器故障处理方法第一实施例流程示意图;
图2为本发明提供的磁盘阵列控制器故障处理方法第二实施例流程示意图;
图3为本发明提供的磁盘阵列控制器故障处理系统第一实施例结构示意图;
图4为本发明提供的磁盘阵列控制器故障处理系统第二实施例结构示意图。
具体实施方式
本发明实施例提供的磁盘阵列控制器故障处理方法及系统,可以独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明提供的磁盘阵列控制器故障处理方法第一实施例流程示意图,如图1所示:
在步骤S100,接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态。
在步骤S101,根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;若所述判断为是,则执行步骤S102;若所述判断为否,则执行步骤S103。
在步骤S102,接管所述磁盘阵列控制器在执行过程中出现故障的任务,并按照预定的故障处理程序处理所述故障。
在步骤S103,继续监控磁盘阵列控制器在其任务执行的后续阶段运行状态是否正常,直至所述任务完成。
实施本发明提供的磁盘阵列控制器故障处理方法,可以独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
参见图2,为本发明提供的磁盘阵列控制器故障处理方法第二实施例流程示意图。在本实施例中,将更为详细的描述该磁盘阵列控制器故障处理方法的流程。
在实施本发明提供的方法流程之前,需要预设磁盘阵列控制器的各类任务在各个阶段的运行状态模型;所述磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。更为具体的,在本发明中,我们将磁盘阵列控制器的任务分为三种类型:
读数据任务:读数据任务是指磁盘阵列需要向外界返回数据的任务,包含所有的对磁盘阵列中存储数据的读任务、信息查询任务、系统报告任务等。
对于此类任务的一般处理流程是:磁盘阵列控制器收到读数据命令后,首先验证命令的合法性,解析出命令请求的数据位置、数据长度,然后将命令插入待处理命令队列中;命令处理线程取出该命令后首先分配相应的缓冲区用来缓存数据,然后向相应的磁盘驱动器发送读数据请求;数据读取完成后被放入缓冲区中;最后磁盘阵列控制器向任务请求端返回命令处理状态,通知任务请求端读取数据,当数据读取完成后,磁盘阵列控制器释放缓冲区并完成此次任务。
写数据任务:写数据任务是指磁盘阵列需要从外界获取数据的任务,包含所有的存储数据任务、磁盘阵列配置任务等。写数据任务的执行流程和读数任务类似,区别在于磁盘阵列控制器分配完缓冲区后会等待接收主机的数据,待数据接收完毕,数据的写入策略分为两种:写穿和回写。如果是写穿策略,则立即向磁盘驱动器发送数据写入请求;若是回写策略,数据将暂时放入缓存中,稍后写入磁盘。
无数据任务:无数据任务是指不包含数据传输的任务,例如逻辑单元激活或释放任务、链接任务等。无数据任务的执行过程比数据读写任务简单,通常磁盘阵列控制器收到这类任务后,首先对任务进行合法性验证,然后交由具体的处理过程进行处理,处理结束后向主机返回结果。
由上述各类任务执行流程可以看出,各种任务在其执行周期中要经历若干个关键阶段,系统的故障也通常发生在这些阶段之间的转化过程之中。因此,本发明提供的磁盘阵列控制器故障处理方法要完成对任务运行状态的实时监控,必需对任务的执行周期进行阶段划分。本发明中,将任务到达某个阶段定义为任务的一个状态,由此,系统中所有任务的执行阶段组成一个状态集合,该集合中的元素定义如表1所示。
表1
表1中的每一个“状态名”都对应着一个具体的运行状态模型,表征磁盘阵列控制器在该阶段正常运行状态时的参数、指标等。
对于系统中的每一类任务,其执行周期是由上述状态集合中的一个子集组成。例如组成读数据任务执行周期的状态集合为{获取任务、预处理、开始执行、申请资源、读取数据、返回数据、返回任务状态、释放资源、任务完成}。具体如表2所示:
表2
序号 | 阶段名 | 状态名 | 该阶段的主要工作 |
1 | 获取任务 | GET_TASK | 控制器收到一个新任务 |
2 | 预处理 | PREPROC | 对任务进行预处理,如任务合法性验证 |
3 | 开始执行 | BGN_TASK | 将任务放入队列,等待执行 |
4 | 申请资源 | GET_RES | 向系统申请资源,如缓冲区 |
5 | 读取数据 | RD_DATA | 从目标读取所需的数据,将其放人缓冲区 |
6 | 返回数据 | RET_DATA | 向主机端返回其请求读取的数据 |
序号 | 阶段名 | 状态名 | 该阶段的主要工作 |
7 | 返回任务状态 | RET_STAT | 向主机端返回任务的状态 |
8 | 释放资源 | FREE_RES | 释放所申请的系统资源 |
9 | 任务结束 | TASK_END | 任务执行结束 |
磁盘阵列控制器在执行读数据任务的过程中,每到达一个阶段都会主动注册一次运行状态。
本实施例提供的磁盘阵列控制器故障处理方法如图2所示:
在步骤S200,接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态。在本发明实施例中,为叙述方便,以读数据任务为例。
更为具体的,例如磁盘阵列控制器执行读数据任务时,在完成将任务放入队列,等待执行(即完成开始执行阶段)的步骤后,磁盘阵列控制器下一步将向系统申请资源(即进入申请资源阶段),此时,磁盘阵列控制器应当主动注册状态名为“GET_RES”的运行状态,以通告本磁盘阵列控制器当前的读数据任务执行情况。
在步骤S201,根据所述磁盘阵列控制器主动注册的运行状态,查找其对应的运行状态模型。更为具体的,例如根据磁盘阵列控制器主动注册的运行状态的状态名为“GET_RES”,则在预置的运行状态模型中查找与状态名“GET_RES”对应的运行状态模型。
在步骤S202,判断所述磁盘阵列控制器主动注册的运行状态,是否符合查找得到的运行状态模型。更为具体的,所述判断包括:判断磁盘阵列控制器主动注册的运行状态的各项参数是否在运行状态模型中的参数范围内;判断磁盘阵列控制器主动注册的运行状态的各项指标是否达到运行状态模型中的最低指标要求。若磁盘阵列控制器主动注册的运行状态中,所有的参数和指标都符合运行状态模型,则判定磁盘阵列控制器的任务执行正常,执行步骤S203;否则,判定磁盘阵列控制器的任务执行不正常,执行步骤S204。
更进一步的,磁盘阵列控制器在任务执行过程中出现故障,除了主动注册的运行状态符合运行状态模型外,还有可能因为各种原因,根本就不进行主动注册,或超过正常的注册时间间隔。为此,本实施例中的运行状态模型中包括:所述磁盘阵列控制器的各类任务在各个阶段之间的时间间隔。
判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障还包括:判断所述磁盘阵列控制器主动注册运行状态后,在对应运行状态模型中规定的时间间隔内,是否收到下一次运行状态的注册。例如:磁盘阵列控制器在执行读数据任务的过程中,主动注册了状态名为“GET_RES”的运行状态,在对应的运行状态模型中,标明该状态与下一状态“RD_DATA”之间的时间间隔应当小于2秒,即磁盘阵列控制器在完成本次运行状态注册后,应当在2秒内完成向系统申请资源,进入下一阶段——读取数据,同时,注册状态名为“RD_DATA”的运行状态;若磁盘阵列控制器超时未注册,则判定磁盘阵列控制器在该任务的执行中出现故障,执行步骤S204。
在步骤S203,继续监控磁盘阵列控制器在其任务执行的后续阶段运行状态是否正常,直至所述任务完成。
在步骤S204,针对不同的故障上下文可以采用不同的故障处理方法,包括:
任务回滚,对于磁盘阵列控制器而言,其本身多任务、高并发的特点,使其发生暂态故障的可能性大大提升,而采用系统级重启的方式来修复暂态故障的方法对于磁盘阵列系统来说代价过大。由于磁盘阵列控制器在任务执行的每个关键阶段都会主动注册,因此当故障发生时,可以让任务回到前一个合法状态重新执行,通过再一次的尝试来修复暂态故障。
任务终止,任务回滚的方法可以有效地解决大多数暂态故障,而对于有些任务,在其执行过程中可能需要同其他任务进行消息传递。为了保证系统的一致性,对于这类任务的故障处理方式是终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息。
系统安全关闭,对于一些严重的故障,在采用上述两种故障处理方法都无法使系统状态恢复时,启动应急操作,将磁盘阵列控制器缓存在内核中的数据回写到非易失存储介质中,然后将系统安全的关闭。对于采用冗余控制器的磁盘阵列系统,这种方式可以迅速的通知备份磁盘阵列控制器进行故障接管,避免了传统冗余磁盘阵列控制器实现方法中,故障只能在周期性的侦测后才能被发现的弊端,提高了系统整体的可靠性。
优选的,本实施例提供的磁盘阵列控制器故障处理方法,对所述磁盘阵列控制器的外围设备进行定时的检测,包括:存储介质的可用性、磁盘阵列控制器的机箱温度、磁盘阵列控制器的电源是否正常、系统资源的使用状态;当所述外围检测模块检测到异常时,执行步骤S204。
实施本发明提供的磁盘阵列控制器故障处理方法,可以独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
参见图3,为本发明提供的磁盘阵列控制器故障处理系统第一实施例结构示意图,如图3所示,该磁盘阵列控制器故障处理系统包括:
信息收集模块2,用于接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;
故障判断模块3,用于根据信息收集模块2接收的磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在任务执行过程中是否出现故障;
故障处理模块4,用于在故障判断模块3判定该磁盘阵列控制器在任务执行过程中出现故障时,接管所述任务,并按照预定的故障处理程序处理该故障。
实施本发明实施例提供的磁盘阵列控制器故障处理系统,具有如下有益效果:(一)独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。(二)在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
参见图4,为本发明提供的磁盘阵列控制器故障处理系统第二实施例结构示意图,在本实施例中,将更为详细的描述该磁盘阵列控制器故障处理系统各模块的结构和功能。如图4所示,该磁盘阵列控制器故障处理系统包括:
状态模型预置模块1,用于预设磁盘阵列控制器的各类任务在各个阶段的运行状态模型;该磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。
更为具体的:在本发明中,我们将磁盘阵列控制器的任务分为三种类型:
读数据任务:读数据任务是指磁盘阵列需要向外界返回数据的任务,包含所有的对磁盘阵列中存储数据的读任务、信息查询任务、系统报告任务等。
对于此类任务的一般处理流程是:磁盘阵列控制器收到读数据命令后,首先验证命令的合法性,解析出命令请求的数据位置、数据长度,然后将命令插入待处理命令队列中;命令处理线程取出该命令后首先分配相应的缓冲区用来缓存数据,然后向相应的磁盘驱动器发送读数据请求;数据读取完成后被放入缓冲区中;最后磁盘阵列控制器向任务请求端返回命令处理状态,通知任务请求端读取数据,当数据读取完成后,磁盘阵列控制器释放缓冲区并完成此次任务。
写数据任务:写数据任务是指磁盘阵列需要从外界获取数据的任务,包含所有的存储数据任务、磁盘阵列配置任务等。写数据任务的执行流程和读数任务类似,区别在于磁盘阵列控制器分配完缓冲区后会等待接收主机的数据,待数据接收完毕,数据的写入策略分为两种:写穿和回写。如果是写穿策略,则立即向磁盘驱动器发送数据写入请求;若是回写策略,数据将暂时放入缓存中,稍后写入磁盘。
无数据任务:无数据任务是指不包含数据传输的任务,例如逻辑单元激活或释放任务、链接任务等。无数据任务的执行过程比数据读写任务简单,通常磁盘阵列控制器收到这类任务后,首先对任务进行合法性验证,然后交由具体的处理过程进行处理,处理结束后向主机返回结果。
由上述各类任务可以看出,各种任务在其执行周期中要经历若干个关键阶段,故障也通常发生在这些阶段之间的转化过程之中。因此,本发明提供的磁盘阵列控制器故障处理系统要完成对任务运行状态的实时监控,必需对任务的执行周期进行阶段划分。本发明中,状态模型预置模块1将存储所有任务的执行阶段组成一个状态集合,该集合中的元素定义如表1所示。
表1中的每一个“状态名”都对应着一个具体的运行状态模型,表征磁盘阵列控制器在该阶段正常运行状态时的参数、指标等。
对于系统中的每一类任务,其执行周期是由上述状态集合中的一个子集组成。例如组成读数据任务执行周期的状态集合为{获取任务、预处理、开始执行、申请资源、读取数据、返回数据、返回任务状态、释放资源、任务完成}。具体如表2所示:磁盘阵列控制器在执行读数据任务的过程中,每到达一个阶段都会主动注册一次运行状态。
信息收集模块2,用于接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;在本发明实施例中,为叙述方便,以读数据任务为例。
更为具体的,例如磁盘阵列控制器执行读数据任务时,在完成将任务放入队列,等待执行(即完成开始执行阶段)的步骤后,磁盘阵列控制器下一步将向系统申请资源(即进入申请资源阶段),此时,磁盘阵列控制器应当主动向磁盘阵列控制器故障处理系统的信息收集模块2,注册状态名为“GET_RES”的运行状态,以通告本磁盘阵列控制器当前的读数据任务执行情况。
故障判断模块3,用于根据信息收集模块2接收的磁盘阵列控制器的运行状态,判断磁盘阵列控制器在任务执行过程中是否出现故障。更为具体的,故障判断模块3包括:
模型查找单元31,用于根据磁盘阵列控制器主动注册的运行状态,在状态模型预置模块1中查找其当前任务在当前阶段的运行状态模型。更为具体的,例如根据磁盘阵列控制器主动注册的运行状态的状态名为“GET_RES”,则在状态模型预置模块1中的运行状态模型中查找与状态名“GET_RES”对应的运行状态模型。
比对判断单元32,用于比对磁盘阵列控制器主动注册的运行状态,与模型查找单元31查找得到的运行状态模型是否一致;若一致,则比对判断单元32判定磁盘阵列控制器运行正常;否则,比对判断单元32判定磁盘阵列控制器出现故障。
更为具体的,比对判断单元32需要判断磁盘阵列控制器主动注册的运行状态的各项参数是否在模型查找单元31获取的运行状态模型的参数范围内;并且,比对判断单元32需要判断磁盘阵列控制器主动注册的运行状态的各项指标是否达到运行状态模型中的最低指标要求。若磁盘阵列控制器主动注册的运行状态中,所有的参数和指标都符合运行状态模型,则比对判断单元32需要判定磁盘阵列控制器的任务执行正常;否则,比对判断单元32需要判定磁盘阵列控制器的任务执行不正常。
更进一步的,磁盘阵列控制器在任务执行过程中出现故障,除了主动注册的运行状态符合运行状态模型外,还有可能因为各种原因,根本就不进行主动注册,或超过正常的注册时间间隔。为此,本实施例中的运行状态模型中包括:磁盘阵列控制器的各类任务在各个阶段之间的时间间隔。
因此,本实施例提供的故障判断模块3还可以包括:时限判断单元33,用于在磁盘阵列控制器主动注册运行状态后开始计时,判断在对应运行状态模型规定的时间间隔内,是否收到磁盘阵列控制器的下一次运行状态的注册。
例如:磁盘阵列控制器在执行读数据任务的过程中,主动向信息收集模块2注册了状态名为“GET_RES”的运行状态,在状态模型预置模块1对应的运行状态模型中,标明该状态与下一状态“RD_DATA”之间的时间间隔应当小于2秒,即磁盘阵列控制器在完成本次运行状态注册后,应当在2秒内完成向系统申请资源,进入下一阶段——读取数据,同时,向信息收集模块2注册状态名为“RD_DATA”的运行状态;若磁盘阵列控制器超时未注册,则时限判断单元33判定磁盘阵列控制器在该任务的执行中出现故障。
故障处理模块4,用于在故障判断模块3判定磁盘阵列控制器在任务执行过程中出现故障时,接管所述任务,并按照预定的故障处理程序处理该故障。更为具体的,故障处理模块4包括:
第一处理单元41,用于将执行过程中出现故障的任务回滚,控制任务回到前一个注册的运行状态中,重新执行该任务;对于磁盘阵列控制器而言,其本身多任务、高并发的特点,使其发生暂态故障的可能性大大提升,而采用系统级重启的方式来修复暂态故障的方法对于磁盘阵列系统来说代价过大。由于磁盘阵列控制器在任务执行的每个关键阶段都会主动注册,因此当故障发生时,第一处理单元41可以让任务回到前一个合法状态重新执行,通过再一次的尝试来修复暂态故障。
第二处理单元42,用于终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息。第一处理单元41采用的任务回滚的方法可以有效地解决大多数暂态故障,而对于有些任务,在其执行过程中可能需要同其他任务进行消息传递。为了保证系统的一致性,对于这类任务的故障处理方式是第二处理单元42终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息。
第三处理单元43,用于执行磁盘阵列控制器的安全关闭,第三处理单元43将磁盘阵列控制器缓存的数据回写到非易失存储介质中,安全的关闭磁盘阵列控制器。对于一些严重的故障,第一处理单元41、第二处理单元42采用的两种故障处理方法都无法使系统状态恢复时,第三处理单元43启动应急操作,将磁盘阵列控制器缓存在内核中的数据回写到非易失存储介质中,然后将系统安全的关闭。对于采用冗余控制器的磁盘阵列系统,这种方式可以迅速的通知备份磁盘阵列控制器进行故障接管,避免了传统冗余磁盘阵列控制器实现方法中,故障只能在周期性的侦测后才能被发现的弊端,提高了系统整体的可靠性。
优选的,本实施例提供的磁盘阵列控制器故障处理系统还包括:
外围检测模块5,外围检测模块5对磁盘阵列控制器的外围设备进行定时的检测,包括:存储介质的可用性、磁盘阵列控制器的机箱温度、磁盘阵列控制器的电源是否正常、系统资源的使用状态;当外围检测模块5检测到异常时,通知故障处理模块4进行处理。
实施本发明提供的磁盘阵列控制器故障处理系统,可以独立、主动的监控磁盘阵列控制器的运行过程,主动检测磁盘阵列控制器故障并及时进行故障处理。同时,在磁盘阵列控制器发生故障时,磁盘阵列控制器故障处理系统能够保证磁盘阵列控制器不会因为任何故障造成资源泄漏、模块失效甚至宕机等错误。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种磁盘阵列控制器故障处理方法,其特征在于,包括:
接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;
根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;
若所述判断为是,则接管所述任务,并按照预定的故障处理程序处理所述故障。
2.如权利要求1所述的磁盘阵列控制器故障处理方法,其特征在于,所述接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态之前,还包括:
预设所述磁盘阵列控制器的各类任务在各个阶段的运行状态模型;所述磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。
3.如权利要求1或2所述的磁盘阵列控制器故障处理方法,其特征在于,所述根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障,包括:
根据所述磁盘阵列控制器主动注册的运行状态,查找其当前任务在当前阶段的运行状态模型;
判断所述磁盘阵列控制器主动注册的运行状态,是否符合查找得到的运行状态模型。
4.如权利要求3所述的磁盘阵列控制器故障处理方法,其特征在于,所述运行状态模型中包括:所述磁盘阵列控制器的各类任务在各个阶段之间的时间间隔;
则所述根据所述磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障,还包括:判断所述磁盘阵列控制器主动注册运行状态后,在对应运行状态模型规定的时间间隔内,是否收到下一次运行状态的注册。
5.如权利要求1或2所述的磁盘阵列控制器故障处理方法,其特征在于,所述按照预定的故障处理程序处理所述故障中,所述预定的故障处理程序包括:
任务回滚,控制执行过程中出现故障的任务回到前一个注册的运行状态中,重新执行所述任务;
任务终止,终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息;
系统安全关闭,将磁盘阵列控制器缓存的数据回写到非易失存储介质中,安全的关闭所述磁盘阵列控制器。
6.一种磁盘阵列控制器故障处理系统,其特征在于,包括:
信息收集模块,用于接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态;
故障判断模块,用于根据所述信息收集模块接收的磁盘阵列控制器的运行状态,判断所述磁盘阵列控制器在所述任务执行过程中是否出现故障;
故障处理模块,用于在所述故障判断模块判定所述磁盘阵列控制器在任务执行过程中出现故障时,接管所述任务,并按照预定的故障处理程序处理所述故障。
7.如权利要求6所述的磁盘阵列控制器故障处理系统,其特征在于,所述接收磁盘阵列控制器在其任务执行的各个阶段,主动注册的运行状态之前,还包括:
状态模型预置模块,用于预设所述磁盘阵列控制器的各类任务在各个阶段的运行状态模型;所述磁盘阵列控制器的任务类型包括:读数据任务、写数据任务和无数据任务。
8.如权利要求6或7所述的磁盘阵列控制器故障处理系统,其特征在于,所述故障判断模块包括:
模型查找单元,用于根据所述磁盘阵列控制器主动注册的运行状态,在所述状态模型预置模块中查找其当前任务在当前阶段的运行状态模型;
比对判断单元,用于比对所述磁盘阵列控制器主动注册的运行状态,是否符合所述模型查找单元查找得到的运行状态模型;若一致,则判定磁盘阵列控制器运行正常;否则,判定磁盘阵列控制器出现故障。
9.如权利要求8所述的磁盘阵列控制器故障处理系统,其特征在于,所述运行状态模型中包括:所述磁盘阵列控制器的各类任务在各个阶段之间的时间间隔;
则所述故障判断模块还包括:时限判断单元,用于在所述磁盘阵列控制器主动注册运行状态后开始计时,判断在对应运行状态模型规定的时间间隔内,是否收到下一次运行状态的注册。
10.如权利要求6或7所述的磁盘阵列控制器故障处理系统,其特征在于,所述故障处理模块包括:
第一处理单元,用于将执行过程中出现故障的任务回滚,控制所述任务回到前一个注册的运行状态中,重新执行该任务;
第二处理单元,用于终止任务的继续运行、记录错误日志并对任务发起方反馈错误信息;
第三处理单元,用于执行磁盘阵列控制器的安全关闭,第三处理单元将磁盘阵列控制器缓存的数据回写到非易失存储介质中,安全的关闭所述磁盘阵列控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010190194 CN101887386A (zh) | 2010-06-02 | 2010-06-02 | 一种磁盘阵列控制器故障处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010190194 CN101887386A (zh) | 2010-06-02 | 2010-06-02 | 一种磁盘阵列控制器故障处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101887386A true CN101887386A (zh) | 2010-11-17 |
Family
ID=43073314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010190194 Pending CN101887386A (zh) | 2010-06-02 | 2010-06-02 | 一种磁盘阵列控制器故障处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101887386A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279719A (zh) * | 2011-08-19 | 2011-12-14 | 中体彩科技发展有限公司 | 打印控制方法 |
CN102981920A (zh) * | 2012-11-07 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列主动故障处理系统设计方法 |
CN104407939A (zh) * | 2014-11-24 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种多控制器间的存储池元数据处理方法和装置 |
CN104793899A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种基于虚拟磁盘层的检测Raid磁盘拔出的方法及装置 |
CN106815119A (zh) * | 2016-12-20 | 2017-06-09 | 曙光信息产业(北京)有限公司 | 服务器的硬件监控装置 |
CN107247564A (zh) * | 2017-07-17 | 2017-10-13 | 郑州云海信息技术有限公司 | 一种数据处理的方法及系统 |
CN107977280A (zh) * | 2017-12-08 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种故障转移时验证ssd cache加速有效性的方法 |
CN109143973A (zh) * | 2018-07-26 | 2019-01-04 | 厦门科华恒盛股份有限公司 | 一种基于数字控制器的设备防护方法、装置及存储介质 |
CN111694706A (zh) * | 2020-05-08 | 2020-09-22 | 广州微算互联信息技术有限公司 | 一种云手机故障处理方法、系统和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006431A (zh) * | 2004-08-04 | 2007-07-25 | 达西系统股份有限公司 | 执行容错磁盘阵列的预先重建 |
CN101329641A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 一种磁盘阵列的数据重建方法 |
CN101699389A (zh) * | 2009-10-30 | 2010-04-28 | 中兴通讯股份有限公司 | 磁盘热拔除的处理方法及装置 |
-
2010
- 2010-06-02 CN CN 201010190194 patent/CN101887386A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006431A (zh) * | 2004-08-04 | 2007-07-25 | 达西系统股份有限公司 | 执行容错磁盘阵列的预先重建 |
CN101329641A (zh) * | 2008-06-11 | 2008-12-24 | 华中科技大学 | 一种磁盘阵列的数据重建方法 |
CN101699389A (zh) * | 2009-10-30 | 2010-04-28 | 中兴通讯股份有限公司 | 磁盘热拔除的处理方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279719A (zh) * | 2011-08-19 | 2011-12-14 | 中体彩科技发展有限公司 | 打印控制方法 |
CN102981920A (zh) * | 2012-11-07 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列主动故障处理系统设计方法 |
CN104407939A (zh) * | 2014-11-24 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种多控制器间的存储池元数据处理方法和装置 |
CN104793899A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种基于虚拟磁盘层的检测Raid磁盘拔出的方法及装置 |
CN104793899B (zh) * | 2015-02-04 | 2017-10-03 | 深圳神州数码云科数据技术有限公司 | 一种基于虚拟磁盘层的检测Raid磁盘拔出的方法及装置 |
CN106815119A (zh) * | 2016-12-20 | 2017-06-09 | 曙光信息产业(北京)有限公司 | 服务器的硬件监控装置 |
CN107247564A (zh) * | 2017-07-17 | 2017-10-13 | 郑州云海信息技术有限公司 | 一种数据处理的方法及系统 |
CN107247564B (zh) * | 2017-07-17 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种数据处理的方法及系统 |
CN107977280A (zh) * | 2017-12-08 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种故障转移时验证ssd cache加速有效性的方法 |
CN107977280B (zh) * | 2017-12-08 | 2020-07-24 | 苏州浪潮智能科技有限公司 | 一种故障转移时验证ssd cache加速有效性的方法 |
CN109143973A (zh) * | 2018-07-26 | 2019-01-04 | 厦门科华恒盛股份有限公司 | 一种基于数字控制器的设备防护方法、装置及存储介质 |
CN111694706A (zh) * | 2020-05-08 | 2020-09-22 | 广州微算互联信息技术有限公司 | 一种云手机故障处理方法、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101887386A (zh) | 一种磁盘阵列控制器故障处理方法及系统 | |
US8020041B2 (en) | Method and computer system for making a computer have high availability | |
AU752846B2 (en) | Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network | |
AU752844B2 (en) | Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network | |
CN101976217B (zh) | 网络处理器异常检测方法及系统 | |
US7900090B2 (en) | Systems and methods for memory retention across resets | |
CN109614276B (zh) | 故障处理方法、装置、分布式存储系统和存储介质 | |
US20150019494A1 (en) | Speculative recovery using storage snapshot in a clustered database | |
RU2437144C2 (ru) | Способ устранения исключительной ситуации в одном из ядер многоядерной системы | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
EP2681658A2 (en) | Error management across hardware and software layers | |
CN109656895B (zh) | 分布式存储系统、数据写入方法、装置和存储介质 | |
CN103927239A (zh) | 一种终端设备的系统恢复方法及装置 | |
CN109597719A (zh) | 一种多核系统的监控方法、系统、装置及可读存储介质 | |
CN101937344B (zh) | 一种计算机快速启动的装置及方法 | |
CN101216792B (zh) | 实时操作系统的任务管理方法、装置 | |
US8930764B2 (en) | System and methods for self-healing from operating system faults in kernel/supervisory mode | |
WO2020233001A1 (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN101901174B (zh) | 基于代码段多副本对比机制提高程序可靠性方法 | |
US20070294600A1 (en) | Method of detecting heartbeats and device thereof | |
CN114035905A (zh) | 基于虚拟机的故障迁移方法及装置、电子设备和存储介质 | |
US20100085871A1 (en) | Resource leak recovery in a multi-node computer system | |
Sultan et al. | Recovering internet service sessions from operating system failures | |
CN115576734B (zh) | 一种多核异构日志存储方法和系统 | |
KR100605031B1 (ko) | Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101117 |