存储系统中的故障诊断方法及装置[发明专利]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201810158657.9
(22)申请日 2018.02.24
(71)申请人 腾讯科技(深圳)有限公司
地址 518000 广东省深圳市南山区高新区
科技中一路腾讯大厦35层
申请人 腾讯云计算(北京)有限责任公司
(72)发明人 陈静 
(74)专利代理机构 深圳市隆天联鼎知识产权代
理有限公司 44232
代理人 刘抗美 胡明
(51)Int.Cl.
G06F 11/22(2006.01)
G06F 11/30(2006.01)
(54)发明名称
存储系统中的故障诊断方法及装置
(57)摘要
本发明涉及了一种存储系统中的故障诊断
方法及装置,所述存储系统中的故障诊断方法包
括:所述主控节点通过对所述存储系统中存储节
点的运行状态进行监控,获取系统状态集合;调
用故障诊断模型对所述系统状态集合进行故障
诊断,得到操作指令序列,所述故障诊断模型是
通过所述存储系统已修复故障相关的系统状态
集合和操作指令序列进行模型训练生成的;根据
所述操作指令序列中的操作指令进行所述系统
状态集合所描述故障的修复。

采用本发明所提供
的存储系统中的故障诊断方法及装置解决了现
有技术中因存储系统中的故障诊断依赖于人工
实现而无法保证准确度的问题。

权利要求书3页 说明书11页 附图8页CN 108334427 A 2018.07.27
C N 108334427
A
1.一种存储系统中的故障诊断方法,所述存储系统包括至少一主控节点和多个存储节点,其特征在于,包括:
所述主控节点通过对所述存储系统中存储节点的运行状态进行监控,获取系统状态集合;
调用故障诊断模型对所述系统状态集合进行故障诊断,得到操作指令序列,所述故障诊断模型是通过所述存储系统已修复故障相关的系统状态集合和操作指令序列进行模型训练生成的;
根据所述操作指令序列中的操作指令进行所述系统状态集合所描述故障的修复。

2.如权利要求1所述的方法,其特征在于,所述主控节点通过对所述存储系统中存储节点的运行状态进行监控,获取系统状态集合,包括:
通过所述监控,获取监控时间段内所述存储系统中存储节点的运行状态数据;
处理所述运行状态数据得到所述系统状态集合。

3.如权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述存储系统已修复故障,获取用于描述所述已修复故障的系统状态集合和用于修复所述已修复故障的操作指令序列;
通过所述存储系统已修复故障相关的系统状态集合和操作指令序列构造训练特征向量;
根据所述训练特征向量对指定模型进行模型训练,得到所述故障诊断模型。

4.如权利要求3所述的方法,其特征在于,所述通过所述存储系统已修复故障相关的系统状态集合和操作指令序列构造训练特征向量,包括:
进行所述操作指令序列的有效性检测,所述操作指令序列有效表示所述操作指令序列中的操作指令成功修复了所述已修复故障;
将所述系统状态集合、操作指令序列、检测结果拼接得到所述训练特征向量。

5.如权利要求4所述的方法,其特征在于,所述进行所述操作指令序列的有效性检测,包括:
当所述操作指令序列中的操作指令完成所述已修复故障的修复时,通过对所述存储系统中存储节点的运行状态进行监控,得到系统修复状态集合;
进行所述系统状态集合与系统修复状态集合之间的比较,通过所述比较检测所述操作指令序列的有效性。

6.如权利要求5所述的方法,其特征在于,所述当所述操作指令序列中的操作指令完成所述已修复故障的修复时,通过对所述存储系统中存储节点的运行状态进行监控,得到系统修复状态集合,包括:
确定修复所述已修复故障的修复时间,根据所述修复时间计算监控时间段;
通过所述监控,获取所述监控时间段内所述存储系统中存储节点的运行状态数据;
处理所述运行状态数据得到所述系统修复状态集合。

7.如权利要求5或6所述的方法,其特征在于,所述进行所述系统状态集合与系统修复状态集合之间的比较,通过所述比较检测所述操作指令序列的有效性,包括:分别将所述系统状态集合中的修复前状态值与所述系统修复状态集合中的修复后状态值进行比较,得到比较结果,所述比较结果用于指示所述已修复故障完成修复后所述存
储系统是否得到改善;
根据所述比较结果的指示计算系统改善率和系统恶化率;
如果所述系统改善率和系统恶化率满足指定标准,则检测得到所述操作指令序列有效。

8.一种存储系统中的故障诊断装置,所述存储系统包括至少一主控节点和多个存储节点,其特征在于,包括:
状态集合获取模块,用于所述主控节点通过对所述存储系统中存储节点的运行状态进行监控,获取系统状态集合;
指令序列获取模块,用于调用故障诊断模型对所述系统状态集合进行故障诊断,得到操作指令序列,所述故障诊断模型是通过所述存储系统已修复故障相关的系统状态集合和操作指令序列进行模型训练生成的;
故障修复模块,用于根据所述操作指令序列中的操作指令进行所述系统状态集合所描述故障的修复。

9.如权利要求8所述的装置,其特征在于,所述状态集合获取模块包括:
状态数据获取单元,用于通过所述监控,获取监控时间段内所述存储系统中存储节点的运行状态数据;
状态数据处理单元,用于处理所述运行状态数据得到所述系统状态集合。

10.如权利要求8所述的装置,其特征在于,所述装置还包括:
训练数据获取模块,用于针对所述存储系统已修复故障,获取用于描述所述已修复故障的系统状态集合和用于修复所述已修复故障的操作指令序列;
特征向量构造模块,用于通过所述存储系统已修复故障相关的系统状态集合和操作指令序列构造训练特征向量;
模型训练模块,用于根据所述训练特征向量对指定模型进行模型训练,得到所述故障诊断模型。

11.如权利要求10所述的装置,其特征在于,所述特征向量构造模块包括:
有效性检测单元,用于进行所述操作指令序列的有效性检测,所述操作指令序列有效表示所述操作指令序列中的操作指令成功修复了所述已修复故障;
拼接单元,用于将所述系统状态集合、操作指令序列、检测结果拼接得到所述训练特征向量。

12.如权利要求11所述的装置,其特征在于,所述有效性检测单元包括:
修复状态集合获取子单元,用于当所述操作指令序列中的操作指令完成所述已修复故障的修复时,通过对所述存储系统中存储节点的运行状态进行监控,得到系统修复状态集合;
比较子单元,用于进行所述系统状态集合与系统修复状态集合之间的比较,通过所述比较检测所述操作指令序列的有效性。

13.如权利要求12所述的装置,其特征在于,所述修复状态集合获取子单元包括:
时间段计算子单元,用于确定修复所述已修复故障的修复时间,根据所述修复时间计算监控时间段;
修复状态数据获取子单元,用于通过所述监控,获取所述监控时间段内所述存储系统
中存储节点的运行状态数据;
修复状态数据处理子单元,用于处理所述运行状态数据得到所述系统修复状态集合。

14.如权利要求12或13所述的装置,其特征在于,所述比较子单元包括:
比较结果获取子单元,用于分别将所述系统状态集合中的修复前状态值与所述系统修复状态集合中的修复后状态值进行比较,得到比较结果,所述比较结果用于指示所述已修复故障完成修复后所述存储系统是否得到改善;
计算子单元,用于根据所述比较结果的指示计算系统改善率和系统恶化率;
判定子单元,用于如果所述系统改善率和系统恶化率满足指定标准,则检测得到所述操作指令序列有效。

15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的存储系统中的故障诊断方法。

存储系统中的故障诊断方法及装置
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种存储系统中的故障诊断方法及装置。

背景技术
[0002]随着计算机技术的发展,越来越多的应用场景中需要进行大量数据的存储,例如,视频监控应用场景中,需要存储大量视频监控数据,以便于后续对监控目标实施连续追踪。

应当理解,仅使用一台服务器进行数据存储根本无法存储大量的数据,这就需要多台服务器共同执行数据存储,从而形成了所谓的存储系统。

[0003]由上可知,存储系统的性能和稳定程度将直接影响所存储数据的可靠性,目前,存储系统发生故障时,主要依赖于系统管理员根据经验进行故障诊断,并以此修复故障。

一方面,由系统管理员进行故障诊断,费时费力,需要花费较大的人力成本,另一方面,依赖于系统管理员的故障诊断的准确度难以保证。

[0004]因此,现有技术中因存储系统中的故障诊断依赖于人工实现,仍存在无法保证准确度的局限性。

发明内容
[0005]为了解决上述技术问题,本发明的一个目的在于提供一种存储系统中的故障诊断方法及装置。

[0006]其中,本发明所采用的技术方案为:
[0007]一种存储系统中的故障诊断方法,所述存储系统包括至少一主控节点和多个存储节点,包括:所述主控节点通过对所述存储系统中存储节点的运行状态进行监控,获取系统状态集合;调用故障诊断模型对所述系统状态集合进行故障诊断,得到操作指令序列,所述故障诊断模型是通过所述存储系统已修复故障相关的系统状态集合和操作指令序列进行模型训练生成的;根据所述操作指令序列中的操作指令进行所述系统状态集合所描述故障的修复。

[0008]一种存储系统中的故障诊断装置,所述存储系统包括至少一主控节点和多个存储节点,包括:状态集合获取模块,用于所述主控节点通过对所述存储系统中存储节点的运行状态进行监控,获取系统状态集合;指令序列获取模块,用于调用故障诊断模型对所述系统状态集合进行故障诊断,得到操作指令序列,所述故障诊断模型是通过所述存储系统已修复故障相关的系统状态集合和操作指令序列进行模型训练生成的;故障修复模块,用于根据所述操作指令序列中的操作指令进行所述系统状态集合所描述故障的修复。

[0009]一种存储系统中的故障诊断装置,包括处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的存储系统中的故障诊断方法。

[0010]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的存储系统中的故障诊断方法。

[0011]在上述技术方案中,存储系统中的主控节点通过对存储系统中存储节点的运行状态进行监控获得系统状态集合,并调用故障诊断模型对该系统状态集合进行故障诊断得到操作指令序列,进而根据操作指令序列中的操作指令进行系统状态所描述故障的修复,也就是说,对于系统状态所描述的故障来说,是通过故障诊断模型根据系统状态集合所得到的操作指令序列进行修复的,避免依赖于人工实现,从而解决了现有技术中因存储系统中的故障诊断依赖于人工实现而无法保证准确度的问题。

[0012]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明
[0013]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。

[0014]图1是根据本发明所涉及的实施环境的示意图。

[0015]图2是根据一示例性实施例示出的一种服务器的硬件结构框图。

[0016]图3是根据一示例性实施例示出的一种存储系统中的故障诊断方法的流程图。

[0017]图4是根据一示例性实施例示出的另一种存储系统中的故障诊断方法的流程图。

[0018]图5是图3对应实施例中步骤310在一个实施例的流程图。

[0019]图6是图4对应实施例中步骤450在一个实施例的流程图。

[0020]图7是图6对应实施例中步骤451在一个实施例的流程图。

[0021]图8是图7对应实施例中步骤4511在一个实施例的流程图。

[0022]图9是图7对应实施例中步骤4513在一个实施例的流程图。

[0023]图10是一应用场景中一种存储系统中的故障诊断方法的具体实现示意图。

[0024]图11是根据一示例性实施例示出的一种存储系统中的故障诊断装置的框图。

[0025]图12是图11对应实施例中状态集合获取模块710在一个实施例的框图。

[0026]图13是根据一示例性实施例示出的另一种存储系统中的故障诊断装置的框图。

[0027]图14是图13对应实施例中特征向量构造模块850在一个实施例的框图。

[0028]图15是图14对应实施例中有效性检测单元851在一个实施例的框图。

[0029]图16是图15对应实施例中修复状态集合获取子单元8511在一个实施例的框图。

[0030]图17是图15对应实施例中比较子单元8513在一个实施例的框图。

[0031]通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式
[0032]这里将详细地对示例性实施例执行说明,其示例表示在附图中。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。

以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。

相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

[0033]如前所述,存储系统中的故障诊断因依赖于人工实现,仍存在无法保证准确度的
局限性。

[0034]具体而言,当存储系统发生故障时,会生成相应的告警信息,以向系统管理员提示存储系统发生故障,系统管理员将基于该告警信息查看存储系统相关的帮助文档,进而基于该帮助文档所提供的操作指令进行故障修复操作。

[0035]其中,帮助文档由存储厂商提供,是基于测试环境中的合理推测形成的,缺少与实际应用环境的结合,势必存在实际应用环境中需要对帮助文档所提供的操作指令进行适当调整的情况。

[0036]也就是说,由于帮助文档并不会随着系统管理员经验的丰富而相应地增强,使得故障诊断时还将依赖于系统管理员的经验,导致故障诊断费时费力,需要花费较大的人力成本。

[0037]此外,故障诊断还有可能受到人为因素的影响,例如,系统管理员的情绪、身体状态等等,进而导致故障诊断的准确度难以保证。

[0038]为此,避免因依赖于人工实现而难以保证存储系统中故障诊断的准确度,本发明特提出了一种存储系统中的故障诊断方法,该种存储系统中的故障诊断方法由计算机程序实现,与之相对应的,所构建的存储系统中的故障诊断装置可存储于架构有冯诺依曼体系的电子设备中,以在该电子设备中执行,进而实现存储系统中的故障诊断方法。

例如,电子设备可以是服务器。

[0039]图1为一种存储系统中的故障诊断方法所涉及的实施环境的示意图。

该实施环境包括由若干服务器组成的存储系统100,即存储系统100可视为服务器集群。

[0040]其中,多台服务器作为存储节点110,用于存储系统100中所有数据的存储,并根据所存储的数据向用户提供数据迁移、数据复制、数据恢复、数据回填等服务。

[0041]至少一台服务器作为主控节点130,用于监控存储系统100的系统状态,即根据存储节点110提供的相关监控信息监控存储系统100中的各存储节点110。

例如,假设监控信息包括存储节点110的运行状态数据,则对存储节点110的运行状态进行监控。

[0042]图2是根据一示例性实施例示出的一种服务器的硬件结构框图。

需要说明的是,该服务器只是一个适配于本发明的示例,不能认为是提供了对本发明的使用范围的任何限制。

该服务器也不能解释为需要依赖于或者必须具有图2中示出的示例性的服务器200中的一个或者多个组件。

[0043]该服务器200的硬件结构可因配置或者性能的不同而产生较大的差异,如图2所示,服务器200包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。

[0044]其中,电源210用于为服务器200上的各硬件设备提供工作电压。

[0045]接口230包括至少一有线或无线网络接口231、至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,用于与外部设备通信。

[0046]存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。

其中,操作系统251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对海量数据255的计算与处理,其可以是Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。

应用程序253是基于操作系统251之
上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图2中未示出),每个模块都可以分别包含有对服务器200的一系列计算机可读指令。

数据255可以是存储于磁盘中的照片、图片等。

[0047]中央处理器270可以包括一个或多个以上的处理器,并设置为通过总线与存储器250通信,用于运算与处理存储器250中的海量数据255。

[0048]如上面所详细描述的,适用本发明的服务器200将通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成存储系统中的故障诊断方法。

[0049]此外,通过硬件电路或者硬件电路结合软件也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。

[0050]请参阅图3,在一示例性实施例中,一种存储系统中的故障诊断方法适用于图1所示实施环境的主控节点,该主控节点的结构可以如图2所示。

[0051]该种存储系统中的故障诊断方法可以由主控节点执行,可以包括以下步骤:[0052]步骤310,主控节点通过对存储系统中存储节点的运行状态进行监控,获取系统状态集合。

[0053]存储节点,实质是指由存储数据的各种存储设备(例如随机存储器)、硬件设备(例如主板、CPU)、存储算法等所组成的服务器。

进一步地,所存储的数据并不是直接存储于存储节点中,而是基于归置组(PG)映射至存储节点,也可以理解为,存储节点对所存储数据的读写操作都是针对归置组进行的。

[0054]由此,存储节点的运行状态可以是针对归置组而言,也可以是针对存储节点本身(例如CPU)而言。

[0055]具体地,存储节点的运行状态,可以是指归置组的使用状态,也可以是指存储节点本身的使用状态。

其中,归置组的使用状态进一步包括:活动(active)、失效(down)、降级(degraded)、不一致(inconsistent)、不完整(incomplete)等等;存储节点本身的使用状态进一步包括:在线、离线、连接数、CPU占用率、响应时间等等。

[0056]换而言之,存储节点的运行状态具有不同的状态类型,不同的状态类型表示存储节点不同的运行情况,也可以理解为,各存储节点的运行状态,体现了存储系统的运行情况,实质上是以运行情况来表示存储系统所发生的故障,即实现了对存储系统所发生故障的准确描述。

[0057]基于上述,对存储系统所进行的故障诊断,即可以通过监控存储节点的运行状态来判断存储系统是否发生了故障。

[0058]其次说明的是,系统状态集合,用于描述存储系统所发生的故障,则是由存储节点的运行状态获得的。

[0059]进一步地,针对存储节点的运行状态所具有的不同状态类型,系统状态集合,可以是各存储节点相同状态类型的运行状态的集合,还可以是各存储节点不同状态类型的运行状态的集合。

[0060]举例来说,假设系统状态集合S为{S1,S2,S3,…,S N}。

[0061]一方面,S i可以是反映了存储系统中第i个存储节点某种状态类型的运行状态,譬如,S1表示存储系统中第1个存储节点的CPU占用率,S2表示存储系统中第2个存储节点的CPU 占用率,以此类推,S N表示存储系统中第N个存储节点的CPU占用率。

[0062]另一方面,S i可以是指存储系统中属于第i种状态类型的运行状态的存储节点所占比例,譬如,S1表示存储系统中归置组为降级的存储节点所占比例,S2表示存储系统中归置组为不完整的存储节点所占比例,S3表示存储系统中处于离线的存储节点所占比例,……,S N表示存储系统中响应时间超过阈值的存储节点所占比例。

[0063]更进一步地,系统状态集合,还可以包括进行存储节点运行状态监控的主控节点自身的运行状态,例如,S4表示存储系统中处于离线的主控节点所占比例。

[0064]由上可知,系统状态集合,准确地反映出存储系统中主控节点的运行状态以及主控节点所监控存储节点的运行状态,一旦存储系统发生故障,即主控节点和/或存储节点运行异常,便能够通过系统状态集合及时地获知,进而有利于后续能够对系统状态集合所描述的故障进行修复。

[0065]步骤330,调用故障诊断模型对系统状态集合进行故障诊断,得到操作指令序列。

[0066]其中,故障诊断模型是通过存储系统已修复故障相关的系统状态集合和操作指令序列进行模型训练生成的。

[0067]应当说明的是,已修复故障,区别于尚未进行故障诊断的未知故障,也可以理解为是已知故障,即针对存储系统所发生的故障,已进行了故障诊断并完成了故障修复的故障。

[0068]进一步补充说明的是,对于故障诊断模型而言,需要获取大量的训练数据作为模型训练的基础,以此确保模型训练的可靠性和准确性。

可以理解,模型训练的目的在于借助已知关系准确地预测未知关系,因此,本实施例中,训练数据与已知故障相关,即为存储系统已修复故障相关的系统状态集合和操作指令序列。

[0069]在一实施例的具体实现中,如图4所示,故障诊断模型的获取过程可以包括以下步骤:
[0070]步骤410,针对存储系统已修复故障,获取用于描述已修复故障的系统状态集合和用于修复已修复故障的操作指令序列。

[0071]可以理解,存储系统已修复故障也即是存储系统曾经发生的故障,为此,首先,用于描述已修复故障的系统状态集合,是在存储系统发生故障时,对存储系统中存储节点的运行状态进行监控获得的。

[0072]如前所述,当存储系统发生故障时,会生成相应的告警信息,以向系统管理员提示存储系统发生故障,系统管理员将基于该告警信息查看存储系统相关的帮助文档,进而基于该帮助文档所提供的操作指令进行故障修复操作。

[0073]其次,当系统管理员针对存储系统所发生故障进行了故障修复操作时,主控节点便能够检测得到该故障修复操作所对应的操作指令。

[0074]例如,系统管理员通过键盘执行故障修复操作时,主控节点可借助于按键操控事件获取系统管理员在键盘上所按下的按键,进而获知相应的操作指令。

其中,按键操控事件可以是onkeypress事件、onkeydown事件或者onkeyup事件等等。

[0075]应当理解,故障修复过程中,可能仅需要一条操作指令,也可能需要连续多条操作指令,为此,操作指令序列,包括至少一条操作指令,且操作指令之间是有序的。

也就是说,操作指令序列中有序的操作指令是对故障修复过程中执行的故障修复操作的唯一表示。

[0076]步骤430,通过存储系统已修复故障相关的系统状态集合和操作指令序列构造训练特征向量。

相关文档
最新文档