CN115237641A - 故障检测的方法、装置、电子设备和可读介质 - Google Patents

故障检测的方法、装置、电子设备和可读介质 Download PDF

Info

Publication number
CN115237641A
CN115237641A CN202110448604.2A CN202110448604A CN115237641A CN 115237641 A CN115237641 A CN 115237641A CN 202110448604 A CN202110448604 A CN 202110448604A CN 115237641 A CN115237641 A CN 115237641A
Authority
CN
China
Prior art keywords
error code
time
storage
event
power
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
Application number
CN202110448604.2A
Other languages
English (en)
Inventor
叶铮
唐利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110448604.2A priority Critical patent/CN115237641A/zh
Publication of CN115237641A publication Critical patent/CN115237641A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种故障检测的方法、装置、电子设备和可读介质。该方法包括:获取存储系统的系统日志以及误码存储文件;从误码存储文件中获取统计时间作为统计时间;从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;若目标时间晚于统计时间,则将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;根据更新后的误码存储文件,对存储系统的故障状态进行告警。该方法能够确保误码统计数据中的误码均来自于存储系统的故障或错误,从而提升故障检测的准确性。

Description

故障检测的方法、装置、电子设备和可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种故障检测的方法、装置、电子设备和可读介质。
背景技术
随着计算机技术和通信技术的发展,各类存储器的存储容量均大幅上涨。计算机和服务器中的存储器与处理器或者总线之间的数据存储链路所需要传递的数据量也大幅上升,因此对数据链路的状态进行评估和监控非常重要。
目前,对于存储系统的数据存储链路的状态评估通常采用链路误码数或误码率进行判断,通过统计数据存储链路的误码总量或单位时间内的误码与总数量的比率,来确定数据存储链路的状态是否正常。
然而,计算机和服务器在正常的运行过程中也存在一些会产生误码的情况。在上述方案中,这些正常运行产生的误码会被记录到误码统计信息中,使得根据误码统计信息判断存储系统的状态时将正常状态误认为故障状态,从而影响故障检测的准确性。
发明内容
基于上述技术问题,本申请提供一种故障检测方法,以去除了误码统计数据中主动控制导致的误码,确保误码统计数据中的误码均来自于存储系统的故障或错误,避免这些误码导致对存储系统的状态的判断错误,从而提升故障检测的准确性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种故障检测方法,包括:
获取存储系统的系统日志以及误码存储文件,其中,系统日志包括存储系统中系统事件对应的事件发生时间,系统事件包括主动重启事件、通电事件和断电事件中的至少一个,误码存储文件中包括针对系统事件的误码统计数据以及误码统计数据的统计时间;
从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;
若目标时间晚于统计时间,则将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;
根据更新后的误码存储文件,对存储系统的故障状态进行检测。
根据本申请实施例的一个方面,提供一种故障检测装置,包括:
文件获取模块,用于获取存储系统的系统日志以及误码存储文件,其中,系统日志包括存储系统中系统事件对应的事件发生时间,系统事件包括主动重启事件、通电事件和断电事件中的至少一个,误码存储文件中包括针对系统事件的误码统计数据以及误码统计数据的统计时间;
目标时间确定模块,用于从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;
数据替换模块,用于若目标时间晚于统计时间,则将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;
故障检测模块,用于根据更新后的误码存储文件,对存储系统的故障状态进行检测。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块包括:
发生时间获取单元,用于从存储系统的系统日志中获取存储系统的各个组件的主动重启事件的事件发生时间;
第一目标时间确定单元,用于将最近的事件发生时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块包括:
时间查询单元,用于查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
第二目标时间确定单元,用于将通电时间和断电时间中的最近时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
第一误码数据获取模块,用于获取存储系统的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第一误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块包括:
启动时间获取单元,用于从系统日志中获取存储系统的启动时间;
第三目标时间确定单元,用于若启动时间晚于统计时间,则将启动时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块还包括:
第一重启时间获取单元,用于若启动时间早于统计时间,则从系统日志中获取存储系统中的各个组件的主动重启事件的重启发生时间;
第一通断电时间查询单元,用于查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
第四目标时间确定单元,用于将重启发生时间、通电时间和断电时间之中最晚的时间作为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
程序启动模块,用于根据应用启动指令,启动误码刷新程序;
文件检查模块,用于通过误码刷新程序检查误码存储文件是否存在;
第二误码数据获取模块,用于若误码存储文件不存在,则获取存储系统的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第二误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,文件获取模块410包括:
通信获取单元,用于通过与存储服务器之间的通信接口从存储服务器获取存储服务器的主动重启事件记录以及误码存储文件;
目标时间确定模块,包括:
第二重启时间获取单元,用于从主动重启事件记录中获取存储服务器的总线适配器或扩展器的重启事件时间;
第二通断电时间查询单元,用于查询是否对存储服务器的磁盘进行过通电操作或者断电操作;
第五目标时间确定单元,用于若确定未对磁盘进行过通电操作或者断电操作,则将重启事件时间中最近的时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块还包括:
第六目标时间确定单元,用于若确定对磁盘进行过通电或者断电操作,则将重启事件时间、通电操作的通电时间和断电操作的断电时间中的最近时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
启动检测模块,用于根据检测到存储服务器的启动操作,在预定延时之后,通过通信接口查询存储服务器的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第三误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,故障检测模块包括:
当前数据获取单元,用于获取存储系统的当前误码数据;
增长量确定单元,用于根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长量;
第一检测单元,用于若误码增长量大于增长量阈值,则确定存储系统处于故障状态。
在本申请的一些实施例中,基于以上技术方案,故障检测模块包括:
数据周期获取单元,用于周期性获取存储系统的当前误码数据;
增长率确定单元,用于根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长率;
第二检测单元,用于若误码增长率大于增长率阈值,则确定存储系统处于故障状态;
数据更新单元,用于若误码增长率小于或等于增长率阈值,则利用当前误码数据替换误码统计数据。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的故障检测的方法。
根据本申请实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的故障检测方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的故障检测方法。
在本申请的实施例中,故障检测装置获取存储系统的系统日志以及误码存储文件,随后获取误码存储文件中误码统计数据的统计时间作为统计时间,并且从系统日志获取最近发生的例如主动重启事件、通电事件或断电事件等系统事件的事件发生时间作为目标时间,若目标时间晚于统计时间,则故障检测装置将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间。通过上述方式,在发生了主动重启事件、通电事件或断电事件等会产生误码的主动控制事件后,会重新记录误码统计数据和误码统计时间,从而去除了误码统计数据中主动控制导致的误码,确保误码统计数据中的误码均来自于存储系统的故障或错误,避免这些误码导致对存储系统的状态的判断错误,从而提升故障检测的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
图1为本申请实施例中存储系统架构的示意图;
图2示出了本申请实施例中故障检测方法的流程示意图;
图3为本申请实施例中误码存储文件更新流程的示意图;
图4示意性地示出了本申请实施例中故障检测装置的组成框图;
图5示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,本申请的方案可以应用于服务器系统、云服务器系统、分布式系统等各类具有存储系统或具有存储设备的系统中。具体地,在此类系统中,服务器的存储架构通常采用由多个磁盘组成的磁盘阵列的形式。在系统的正常运行过程中,由于硬件设备问题、传输噪声、电压变化等各类原因,会在存储系统运行的各个环节中造成错误数据,从而产生误码。通过对误码的产生情况可以识别到存储系统的运行状况中故障或异常情况,从而对导致故障或异常的原因进行排查。在存储系统的正常运行过程中,存在一些会引入误码的情况,这些误码在属于系统运行中的正常现象。例如,在存储系统的存储链路上存在的多个有源器件在启动过程中的不同步以及计算机系统在对存储系统进行故障恢复时进行的重启等操作,均会产生误码。这些误码并不是存储系统的故障状态的体现,但使得误码统计数据的误码数量增大,因此会对误码统计数据的准确性产生影响。本申请所提供的方案可以将误码统计数据中的此类不准确误码数据去除,从而消除此类不准确误码数据对故障状态检测的准确性的影响。
本申请的方案可以应用于个人计算机、手持设备、车载设备、服务器或者多个服务器构成的服务器系统,并且还可以利用云技术应用于云存储系统。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
为了便于理解,以本申请的方案应用于服务器为例进行说明,服务器包含存储系统。请参阅图1,图1为本申请实施例中存储系统架构的示意图。
由图1可以看出该场景的存储系统架构包括服务器主机、主机总线适配器(HostBus Adapter,HBA)、磁盘扩展卡(expander)、磁盘、复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、主机操作系统以及基板管理控制器(baseboardmanagement controller,BMC)组成。服务器主机与HBA之间通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)接口通信,而HBA与expander之间通过串行连接小型计算机系统接口(Serial Attached SCSI,SAS)通信。在该存储系统架构中,主机操作系统主要用于监控服务器主机的运行状态,BMC则用于对服务器的各类硬件的状态进行监控和控制。HBA和expander上,一般具有用来统计存储系统的误码的计数器,例如,非法双字节计数器(Invalid Dword Count,IDWC)、运行差异错误计数器(RunningDisparity Error Count,RDEC)、双字节同步丢失计数器(Loss of Dword synch Count,LDWSC)以及物理重置问题计数器(Phy Reset Problem Count,RPC)等。而在磁盘上则可以采用自我监测、分析及报告技术(Self-Monitoring Analysis and ReportingTechnology,S.M.A.R.T.)中的端到端错误属性来统计磁盘上误码。服务器主机、主机操作系统以及BMC可以通过获取这些计数器的数据和磁盘的错误属性来对存储系统的故障状态进行判别。
可以理解的是,虽然图1中示出了存储系统架构的具体结构和所采用的技术,但这并非对本申请的限制。在具体情况中,存储系统架构可以采用其他适合的存储系统架构,例如各个部件之间可以采用其他种类的通信协议和通信接口进行通信,而非受限于图1中所示出的协议。并且图1中的某些组件被替换或者省略,例如,主机操作系统也可以由另一台设备的操作系统来代替等。
下面结合具体实施方式对本申请提供的技术方案做出详细说明。
请参阅图2,图2示出了本申请实施例中故障检测方法的流程示意图,本实施例的方法可以应用于如上文描述的存储系统中,由存储系统中的主机操作系统或BMC来执行。本实施例的方法可以包括如下步骤S201至步骤S204:
步骤S201,获取存储系统的系统日志以及误码存储文件,其中,系统日志包括存储系统中系统事件对应的事件发生时间,系统事件包括主动重启事件、通电事件和断电事件中的至少一个,误码存储文件中包括针对系统事件的误码统计数据以及误码统计数据的统计时间。
在本实施例中,故障检测装置获取存储系统的系统日志以及误码存储文件。具体地,故障检测装置可以直接获取存储系统中已经生成并且存储在存储器内的系统日志和误码存储文件,也可以获取存储系统的各个组件的操作记录来合并成为系统日志。系统日志可以包括来源于存储系统中各个组件的信息或多个信息记录文件。例如,系统日志可以包括来自于服务器主机的系统运行历史记录、HBA和expander的历史信息、主机操作系统和BMC的执行记录等各类信息。在系统日志记录了各个系统事件的发生时间以及事件涉及的内容。系统事件指的是存储系统在运行的过程中执行过的各类操作或发生过的情况的记录。
在本实施例中,系统事件包括主动重启事件、通电事件或断电事件。这三种事件是BMC或HBA对存储系统进行主动控制的时间,例如进行故障修复、例行维护等操作时机型的操作。主动重启事件是HBA针对于存储系统中的各类组件进行重启操作的事件,其中存储系统中的组件可以分为具体装置、逻辑单位、总线和主机等结构。通电事件和断电事件是BMC针对于磁盘进行控制操作,通电事件用于控制磁盘与电源接通,断电事件用于控制磁盘与电源断开。系统日志中还可以包括其他类型的事件,例如各类读写操作和控制操作,然而此类操作中若所产生误码,则意味着存储系统中发生了异常事件。
误码存储文件中的误码统计数据是存储系统在运行过程中发生过的系统事件所产生的误码数量,主要来源于HBA和expander上的计数器的统计数据以及磁盘的端到端错误属性数据。误码存储文件的误码统计数据通常一次性从各个计数器和磁盘获取,并且将获取数据的时间作为误码统计数据的统计时间,因此,误码存储文件中至少包括一个统计时间。在其它实施例中,统计时间可以针对于各个不同的数据分别记录。可以理解的是,在存储系统中发生了系统事件的情况下,误码存储文件将包括系统事件产生的误码信息以及异常事件产生的误码信息,反之,若存储系统中并未发生系统事件,则误码存储文件中的误码统计数据仅含有异常事件导致的误码信息。
在本实施例中,故障检测装置从误码存储文件中获取统计时间。具体地,误码存储文件可以采用文本或者结构化的形式存储误码统计数据和统计时间,故障检测装置则根据预设键值或关键字来解析误码存储文件,从而获取统计时间。在误码存储文件中含有多个统计时间的情况下,可以将多个统计时间中最晚的时间,即距离故障检测装置执行本实施例的方案的时刻最近的时间,作为统计时间。
步骤S202,从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间。
在本实施例中,故障检测装置从系统事件对应的发生时间中确定最近的事件发生时间作为目标时间。具体地,故障检测装置可以遍历系统日志中来查询发生过的主动重启操作、通电操作和断电操作,并且获取各个操作对应的发生时间,然后将获得的发生时间进行降序排序来得到最近的时间发生时间作为目标时间。
可以理解的是,若在系统日志中并未查询到任何主动重启操作、通电操作和断电操作,则表示统计数据准确而不需要进行更新。
步骤S203,若目标时间晚于统计时间,则将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;。
在本实施例中,故障检测装置比较统计时间和目标时间。可以理解,在误码统计数据在用于进行故障判定的过程时,通常根据当前获取的误码统计数据与误码存储文件中的误码统计数据之间进行比较来确定,而本实施例的方案的目的在于确保在当前之间与在误码存储文件中记录误码统计数据的时间之间没有系统事件发生。因此,若目标时间早于统计时间,则表示从误码存储文件中的误码统计数据被记录的时间开始到当前的时间之间,没有系统事件发生,因此可以认为在当前时刻的误码统计数据相较于误码存储文件中的误码统计数据中是准确的,而不需要进行修正。若目标时间晚于统计时间,则表示从误码存储文件中的误码统计数据被记录的时间开始到当前的时间之间,曾经发生过系统事件,从而会导致当前的误码统计数据相较于误码存储文件中的误码统计数据包含了系统事件带来的误码数据,因此会导致数据不准确,则故障检测装置重新获取存储系统的误码统计数据,例如从HBA和expander上的计数器获取统计数据以及从磁盘上获取的端到端错误属性数据。随后,故障检测装置将现有的误码存储文件中的数据清除,并且将重新获得的误码统计数据和当前系统时间记录到误码存储文件中。或者,故障检测装置也可以直接删除现有的误码存储文件,并且根据重新获得的误码统计数据和当前系统时间重新生成新的误码存储文件。
步骤S204,根据所述更新后的误码存储文件,对所述存储系统的故障状态进行检测。
在本实施例中,故障检测装置根据更新后的误码存储文件,对所述存储系统的故障状态进行检测。通常,在该步骤S204之前,通常需要等待存储系统运行一段时间,以便积累足够的误码统计数据用于判断存储系统的运行状态。例如,在步骤S203之后,故障检测装置将进入挂起状态并且在预定的时间后被唤醒来执行本步骤S204。具体地,故障检测装置将按照预设的规则对误码存储文件进行解析,例如,按照预设的表格格式或者按照利用预设关键字从误码存储文件中获取所存储的误码统计数据的各项具体数据,并且根据各项具体数据内容确定存储系统的故障状态,例如,根据误码统计数据中各项数据的数量是否超过对应阈值来进行故障状态检测,判断是否发生故障。在发生故障的情况下,故障检测装置可以对所述存储系统的故障状态进行告警,例如,向预设的客户端发送告警信息或告警邮件,或者通过声、光或屏幕显示等方式向用户进行提示。
在本申请的实施例中,故障检测装置获取存储系统的系统日志以及误码存储文件,随后获取误码存储文件中误码统计数据的统计时间作为统计时间,并且从系统日志获取最近发生的例如主动重启事件、通电事件或断电事件等系统事件的事件发生时间作为目标时间,若目标时间晚于统计时间,则故障检测装置将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间。通过上述方式,在发生了主动重启事件、通电事件或断电事件等会产生误码的主动控制事件后,会重新记录误码统计数据和误码统计时间,从而去除了误码统计数据中主动控制导致的误码,确保误码统计数据中的误码均来自于存储系统的故障或错误,避免主动控制造成的误码导致对存储系统的状态的判断错误,从而提升故障检测的准确性。
在本申请一个实施例中,为了确定目标时间,上述步骤S202,从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从存储系统的系统日志中获取存储系统的各个组件的主动重启事件的事件发生时间;
将最近的事件发生时间确定为目标时间。
具体地,故障检测装置从存储系统的系统日志中获取存储系统的各个组件的主动重启事件的事件发生时间。在本实施例中,故障检测装置可以由主机操作系统实现,并且具体采用守护进程的形式实现。守护进程随着主机操作系统的启动而启动,并且周期性地开始执行本实施例的方案。守护进程按照固定的周期轮询系统日志,查询存储系统的具体装置、逻辑单位、总线和主机被主动重启的主动重启事件,并且获取主动重启之间的事件发生时间。在存储系统进行故障恢复的过程中,通常会按照次序对具体装置、逻辑单位、总线和主机进行重启。因此,守护进程通常会获取到多个事件发生时间。在多个时间发生时间中,守护进程将多个事件发生时间中最近的时间确定为目标时间。
在守护进程中,获取存储系统的各个组件的主动重启事件的事件发生时间的具体逻辑可以采用如下代码实现:
Void scsi_eh_ready_devs(struct scsi_hosy shot,struct list_head workq,list_head done_q)
Figure BDA0003037752850000131
在该段代码中,依次判断是否发生过装置重启、逻辑单位重启、总线重启以及主机重启,并且在获取到其中一个事件的发生时间就将其作为目标时间。可以理解的是,该判断的顺序取决于在进行主动重启时的执行顺序而定,并且在其他的实施例中,也不一定需要包括所有的4种事件,而可以包括其中的一种或几种。
在本实施例中,故障检测装置从存储系统的系统日志中获取存储系统的各个组件的主动重启事件的事件发生时间,并且将最近的事件发生时间确定为目标时间,提出了确定目标时间的具体方式,提升了方案的可实施性。
在本申请一个实施例中,为了确定目标时间,上述步骤S202,从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
将通电时间和断电时间中的最近时间确定为目标时间。
具体地,故障检测装置查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间。在本实施例中,故障检测装置可以由主机操作系统实现,并且仍可以采用守护进程的形式实现。守护进程通过智能平台管理接口(Intelligent Platform ManagementInterface,IPMI)命令,周期性地主动向BMC查询BMC的历史操作记录,从而确定BMC是否通过其接口(pin)对磁盘执行过通电操作或者断电操作。可以理解的是,存储系统中通常包括多个磁盘,BMC对多个磁盘中的任一个磁盘执行通电操作或断电操作均会可能产生磁盘误码从而影响误码统计数据的准确性。因此,守护进程对于获取到的通电时间的通电时间以及断电时间的断电时间,将其中最近的时间确定为目标时间。例如,守护进程查询到BMC对磁盘先进行了一次通电,再进行了一次断电,则虽然被BMC进行了断电操作的磁盘处于断电状态而并未参与到存储系统的正常运行中,但后发生的断电事件的断电时间则会被确定为目标时间。
在本申请的实施实施例中,查询磁盘的通电时间和断电时间,并且将其中的最近时间确定为目标时间,从而在后续更新过程中能够充分地考虑磁盘的通断电情况对误码统计数据的影响,增加方案所覆盖的正常误码的情况,使得目标时间的确定更加合理,提升方案的稳定性。
在本申请一个实施例中,基于以上技术方案,为了确定目标时间,上述步骤S201,获取存储系统的系统日志以及误码存储文件之前,所述方法还包括:
获取存储系统的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本实施例中,故障检测装置仍可以采用主机操作系统的守护进程实现。守护进程在随主机操作系统启动后,将会对主机操作系统以及服务器主机的启动状态进行检测。在确定主机操作系统以及服务器主机启动完成,存储系统进入稳定运行的状态之后,守护进程会记录系统的当前系统时间,随后获取存储系统的硬件误码数据,具体包括从HBA和expander中获取存储系统的总线适配器的误码数量、扩展器的误码数量以及磁盘的端到端误码数量。总线适配器的误码数量是HBA记录的误码数量,扩展器的误码数量是expander记录误码数量,二者均具体包括IDWC、RDEC、LDWSC和RPC中的一种或多种数据。其中,具体的获取方式可以采用HBA和expander的供应商所提供的工具和指令或者通过小型计算机系统接口的RAW命令来读取相应计数器内的数据,以及磁盘的端到端误码数量的初始化。
然后守护进程根据硬件误码数据以及所记录的当前系统时间,生成误码存储文件。具体地,所获得的数据可以按照预定的关键词以键值对或数据行的形式存储,每种数据均预设有对应的数据名称,以便于后续按照同样的关键词进行读取。在一个实施例中,守护进程仅获取到上述的数据中的一种或者几种,则对于获取到的数据种类,可以赋予默认值,例如0或者空值。所生成的误码存储文件可以直接存储在服务器主机的存储器上,或者可以通过通信接口发送给远程或者运行在其它设备上的管理系统进行存储,在后续需要读取误码存储文件时再通过通信指令获取文件。
在本申请的实施例中,根据总线适配器的误码数量、扩展器的误码数量以及磁盘的端到端误码数量以及获取数据的时间生成误码存储文件,提出了生成误码存储文件的具体方式,不需要查询日志记录而可以通过误码储存文件直接获得,提升了误码信息查询的效率。
在本申请一个实施例中,基于以上技术方案,为了确定目标时间,上述步骤S202,从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从系统日志中获取存储系统的启动时间;
若启动时间晚于统计时间,则将启动时间确定为目标时间。
在本实施例中,故障检测装置可以在服务器主机中方式实现,并且包括主机操作系统中的应用程序。该应用程序可以运行在主机操作系统或者运行其他服务器上通过远程的方式访问。应用程序可以通过定时任务、触发器或者人工操作来进行触发执行。以应用程序部署在主机操作系统,并且由人工操作为例。在主机操作系统启动完成后,用户可以通过远程控制台接入到主机操作系统来执行应用程序。
应用程序首先会从系统日志中获取存储系统的启动时间。存储系统的启动时间通常与主机操作系统的启动时间相同。然后,应用程序将启动时间与从误码存储文件中获取的统计时间向比较,若启动时间晚于统计时间,则表示与系统当前的误码统计数据中包括主机启动时造成的误码数据,因此,可以将启动时间确定为目标时间。
在本申请的实施例中,在确定目标时间时,对于系统的启动时间进行判断,在启动时间晚于误码存储文件中的统计时间时,将系统的启动时间确定为目标时间,从而能够及时的对误码存储文件进行更新,从而确保数据的实效性。
在本申请一个实施例中,基于以上技术方案,方法还包括:
若启动时间早于统计时间,则从系统日志中获取存储系统中的各个组件的主动重启事件的重启发生时间;
查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
将重启发生时间、通电时间和断电时间之中最晚的时间作为目标时间。
具体地,若启动时间早于统计时间,表示误码存储文件中的误码统计数据是在启动之后记录的,从而不会受到启动过程的影响,故障检测装置则进一步从系统日志中获取存储系统中的各个组件的主动重启事件的重启发生时间,并且查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间。获取重启发生时间以及查询通电时间和断电时间具体方式与上述实施例中的方式相同。应用程序会将重启发生时间、通电时间和断电时间之中最晚的时间作为目标时间,从而根据最晚的系统事件的时间来对误码存储文件中的误码统计数据进行更新。
在本申请的实施例中,在存储系统的启动时间早于误码统计数据的统计时间时,获取重启发生时间、通电时间和断电时间,并且将其中最晚的时间作为目标时间,从而可以根据存储系统所发生的系统事件准确地判断,提升方案的准确性。
在本申请一个实施例中,基于以上技术方案,上述步骤S201,获取存储系统的系统日志以及误码存储文件之前,方法还包括:
根据应用启动指令,启动误码刷新程序;
通过误码刷新程序检查误码存储文件是否存在;
若误码存储文件不存在,则获取存储系统的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
根据硬件误码数据以及当前系统时间,生成误码存储文件。
具体地,故障检测装置根据应用启动指令,启动误码刷新程序。具体地,应用启动指令可以是用户通过图形界面、控制台触发或者远程通信指令发送的。主机操作系统则根据应用启动指令,启动指定的误码刷新程序。随后,故障检测装置通过误码刷新程序检查误码存储文件是否存在。误码存储文件通常存储在固定地址,并且按照预定的规则命名,因此,故障检测装置可以直接按照规则尝试读取误码存储文件,若无法获得误码存储文件,则表示误码存储文件不存在。
若误码存储文件不存在,误码刷新程序获取存储系统的总线适配器的误码数量、扩展器的误码数量以及磁盘的端到端误码数量,随后根据硬件误码数据以及当前系统时间,生成误码存储文件。获取的方式和数据的具体内容以及生成误码存储文件的具体方式,与上文的实施例中所描述的相同,此处不再赘述。
下面结合图3对本实施例的总体流程进行介绍。请参阅图3,图3为本申请实施例中误码存储文件更新流程的示意图。应用程序在启动后,首先在步骤301中检查误码存储文件是否存在。若误码存储文件不存在,则进行步骤308,获取存储系统的当前系统时间以及硬件误码数据,并且生成误码记录文件。若误码存储文件存在,则进行步骤302,读取误码存储文件中的统计时间。具体地,统计时间可以是时间戳记录T1。在步骤303中,从系统日志中获取服务器主机的操作系统的启动时间T2。可选地,还可以继续执行步骤304,通过IPMI命令查询BMC通过pin进行通电操作和断电操作的时间点T3,以及步骤305,检索系统日志,查找存储系统中的各个组件的主动重启事件的重启发生时间T4。随后,在步骤306中,从启动时间T2、时间点T3和重启发生时间T4中确定最晚的目标时间Tmax。在步骤307中,比较目标时间Tmax与时间戳记录T1,若Tmax早于T1,则执行过程结束,而若Tmax晚于T1,则执行骤308。
在本申请的实施例中,通过误码刷新程序来进行误码存储文件的初始化过程,能够按照用户需求来生成误码存储文件,从而允许对误码统计数据启动和更新时间进行改变,从而可以按照实际的需求来进行故障检测,而非按照固定周期进行,提升方案的灵活性。
在本申请一个实施例中,基于以上技术方案,存储系统包括存储服务器和管理服务器,并且该方法由管理服务器执行;上述步骤S201,获取存储系统的系统日志以及误码存储文件之前,方法还包括:
通过通信接口与存储服务器之间的从存储服务器获取存储服务器的主动重启事件记录以及误码存储文件;
上述步骤S202,从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从主动重启事件记录中获取存储服务器的总线适配器或扩展器的重启事件时间;
查询是否对存储服务器的磁盘进行过通电操作或者断电操作;
若确定未对磁盘进行过通电操作或者断电操作,则将重启事件时间中最近的时间确定为目标时间。
在本实施例中,存储系统可以是分布式系统或者云系统等具有远程管理结构的系统。在此类远程系统中,存储服务器是实际存储数据的设备,而管理服务器则用于可以通过有线或无线接口与存储服务器进行通信来对存储服务器进行监控和管理。以云存储服务为例,存储服务器是提供给用户进行业务服务的云服务器,而管理服务器是云存储服务的运营商用于进行管理的后台服务器。管理服务器通过与存储服务器之间的通信接口从存储服务器获取存储服务器的主动重启事件记录以及误码存储文件。具体地,通信接口可以是通用输入输出接口(General-purpose input/output,GPIO)或者集成电路总线(Inter-Integrated Circuit,IIC)接口。管理服务器通过通信接口获取存储服务器的主动重启事件记录以及误码存储文件。主动重启事件记录对应于在存储服务器上进行过的主动重启事件,主动重启事件记录可以是存储服务器生成的文件记录,也可以直接向相关信息发送给管理服务器,由管理服务器汇总形成记录文件。在一个实施例中,误码存储文件可以存储在管理服务器上。随后,管理服务器从所述主动重启事件记录中获取所述存储服务器的总线适配器或扩展器的重启事件时间。具体地,查询HBA以及expander被重启的主动重启事件的重启事件时间。然后,管理服务器查询是否对所述存储服务器的磁盘进行过通电操作或者断电操作。具体地,管理服务器可以通过本地的命令记录来确定是否对磁盘进行过通电操作或者断电操作。若确定未对所述磁盘进行过通电操作或者断电操作,则将所述重启事件时间中最近的时间确定为目标时间。
在本申请的实施例中,通过管理服务器来执行本实施的方案,从而使得可以在不消耗存储服务器的计算资源的情况下,对存储服务器的故障状态进行判断,降低对存储服务器以及实际业务的影响,提高系统的整体运行效率。
在本申请一个实施例中,基于以上技术方案,方法还包括:
若确定对磁盘进行过通电或者断电操作,则将重启事件时间、通电操作的通电时间和断电操作的断电中的最近时间为目标时间。
本实施例中,基于上述的存储系统的实施例,管理服务器若确定对磁盘进行过通电或者断电操作,管理服务器则首先会检查该磁盘在磁盘通电或者断电之后,涉及该磁盘的存储链路上的误码情况稳定。待误码情况稳定后,管理服务器再获取磁盘的通电操作的通电时间和断电操作的断电时间,并且将重启事件时间、通电操作的通电时间和断电操作的断电时间中的最近时间为目标时间。
在本申请的实施例中,由于考虑到对磁盘的通电和断电操作,从而能够更充分地考虑到正常运行产生的误码情况,从而确保数据的准确性。
在本申请一个实施例中,基于以上技术方案,上述步骤S201,获取存储系统的系统日志以及误码存储文件之前,方法还包括:
根据检测到存储服务器的启动操作,在预定延时之后,通过通信接口查询存储服务器的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量以及磁盘的端到端误码数量中的至少一个;
根据所述硬件误码数据以及当前系统时间,生成误码存储文件。
具体地,管理服务器检测到存储服务器的启动操作之后,将会等待预定的时间,从而等待存储服务器启动完成。之后,管理服务器通过与存储服务器之间的通信接口获取存储服务器的硬件误码数据。硬件误码数据具体与上述实施例中的含义相同。管理服务器可以通过通信接口向存储服务器发送控制指令,存储服务器根据控制指令向管理服务器发送记录下的硬件误码数据,或者存储服务器根据控制指令获取当前的硬件误码数据发送给管理服务器。管理服务器在接收到硬件误码数据后,根据硬件误码数据以及当前的系统时间,按照预定的结构规则生成误码存储文件,例如,根据预设的关键字为每种数据建立键值对。
在本申请的实施例中,提供了一种进行误码存储文件的初始化的过程,有利于方案的具体实现,提升了方案的可实施性。
在本申请一个实施例中,基于以上技术方案,上述步骤S204,根据更新后的误码存储文件,对存储系统的故障状态进行检测,包括:
获取存储系统的当前误码数据;
根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长量;
若误码增长量大于增长量阈值,则确定存储系统处于故障状态。
具体地,故障检测装置首先获取存储系统的当前误码数据。具体的获取方式与上述实施例中描述的相同,此处不再赘述。随后,故障检测装置根据当前误码数据以及更新后的误码存储文件中的误码统计数据,计算误码增长量。具体的计算方式可以将相对应的数据计算差值来计算多个误码增长量,或者可以将所有的差值求和,计算总误码增长量。随后,故障检测装置将误码增长量与对应的增长量阈值相比较,若误码增长量大于增长量阈值,则确定存储系统处于故障状态。其中,若计算了多个误码增长量,则对于每个种类的误码增长量均可以设置不同的阈值。若误码增长量小于增长量阈值,则确定存储系统处于正常状态。
在本申请的实施例中,通过误码增长量来对存储系统的故障状态进行检测,能够对存储系统长期运行的整体状态进行评估,而避免少量错误被周期性数据更新忽略,提升方案对故障识别的效果。
在本申请一个实施例中,基于以上技术方案,上述步骤S204,根据更新后的误码存储文件,对存储系统的故障状态进行检测,包括:
周期性获取存储系统的当前误码数据;
根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长率;
若误码增长率大于增长率阈值,则确定存储系统处于故障状态;
若误码增长率小于或等于增长率阈值,则利用当前误码数据替换误码统计数据。
具体地,在本实施例中,故障检测装置周期性获取存储系统的当前误码数据,并且根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长率。具体地,误码增长率为各项误码数据在一个周期内的增长数量与时间的比率。与误码增长量类似,误码增长率也可以对于每个类别的数据单独计算误码增长率,或者根据增长总量计算总体增长率。随后,故障检测装置将误码增长率与对应的增长率阈值相比较,若误码增长率大于增长率阈值,则确定存储系统处于故障状态。若误码增长率小于或等于增长率阈值,则利用当前误码数据替换误码统计数据。在确定故障状态或数据更新结束后,故障检测装置将进入下一个周期,在达到预期的实现后再次获取存储系统的当前误码数据进行故障状态判断。
在本申请的实施例中,通过误码增长率来对存储系统的故障状态进行检测,能够对存储系统的故障状态进行周期性评估,从而忽略少量的故障,降低故障检测的敏感性,针对严重故障进行检测,降低检测出现错误的概率。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施,可以用于执行本申请上述实施例中的故障检测方法。图4示意性地示出了本申请实施例中故障检测装置的组成框图。如图4所示,故障检测装置400主要可以包括:
文件获取模块410,用于获取存储系统的系统日志以及误码存储文件,其中,系统日志包括存储系统中系统事件对应的事件发生时间,系统事件包括主动重启事件、通电事件和断电事件中的至少一个,误码存储文件中包括针对系统事件的误码统计数据以及误码统计数据的统计时间;
目标时间确定模块420,用于从系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;
数据替换模块430,用于若目标时间晚于统计时间,则将误码存储文件中的误码统计数据和统计时间替换为存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;
故障检测模块440,用于根据更新后的误码存储文件,对存储系统的故障状态进行检测。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块420包括:
发生时间获取单元,用于从存储系统的系统日志中获取存储系统的各个组件的主动重启事件的事件发生时间;
第一目标时间确定单元,用于将最近的事件发生时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块420包括:
时间查询单元,用于查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
第二目标时间确定单元,用于将通电时间和断电时间中的最近时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
第一误码数据获取模块,用于获取存储系统的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第一误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块420包括:
启动时间获取单元,用于从系统日志中获取存储系统的启动时间;
第三目标时间确定单元,用于若启动时间晚于统计时间,则将启动时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块420还包括:
第一重启时间获取单元,用于若启动时间早于统计时间,则从系统日志中获取存储系统中的各个组件的主动重启事件的重启发生时间;
第一通断电时间查询单元,用于查询存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
第四目标时间确定单元,用于将重启发生时间、通电时间和断电时间之中最晚的时间作为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
程序启动模块,用于根据应用启动指令,启动误码刷新程序;
文件检查模块,用于通过误码刷新程序检查误码存储文件是否存在;
第二误码数据获取模块,用于若误码存储文件不存在,则获取存储系统的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第二误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,文件获取模块410包括:
通信获取单元,用于通过与存储服务器之间的通信接口从存储服务器获取存储服务器的主动重启事件记录以及误码存储文件;
目标时间确定模块420,包括:
第二重启时间获取单元,用于从主动重启事件记录中获取存储服务器的总线适配器或扩展器的重启事件时间;
第二通断电时间查询单元,用于查询是否对存储服务器的磁盘进行过通电操作或者断电操作;
第五目标时间确定单元,用于若确定未对磁盘进行过通电操作或者断电操作,则将重启事件时间中最近的时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,目标时间确定模块420还包括:
第六目标时间确定单元,用于若确定对磁盘进行过通电或者断电操作,则将重启事件时间、通电操作的通电时间和断电操作的断电时间中的最近时间确定为目标时间。
在本申请的一些实施例中,基于以上技术方案,故障检测装置还包括:
启动检测模块,用于根据检测到存储服务器的启动操作,在预定延时之后,通过通信接口查询存储服务器的硬件误码数据,其中,硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
第三误码文件生成模块,用于根据硬件误码数据以及当前系统时间,生成误码存储文件。
在本申请的一些实施例中,基于以上技术方案,故障检测模块440包括:
当前数据获取单元,用于获取存储系统的当前误码数据;
增长量确定单元,用于根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长量;
第一检测单元,用于若误码增长量大于增长量阈值,则确定存储系统处于故障状态。
在本申请的一些实施例中,基于以上技术方案,故障检测模块440包括:
数据周期获取单元,用于周期性获取存储系统的当前误码数据;
增长率确定单元,用于根据当前误码数据以及更新后的误码存储文件中的误码统计数据,确定存储系统的误码增长率;
第二检测单元,用于若误码增长率大于增长率阈值,则确定存储系统处于故障状态;
数据更新单元,用于若误码增长率小于或等于增长率阈值,则利用当前误码数据替换误码统计数据。
需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
图5示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种故障检测方法,其特征在于,包括:
获取存储系统的系统日志以及误码存储文件,其中,所述系统日志包括所述存储系统中系统事件对应的事件发生时间,所述系统事件包括主动重启事件、通电事件和断电事件中的至少一个,所述误码存储文件中包括针对所述系统事件的误码统计数据以及所述误码统计数据的统计时间;
从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;
若所述目标时间晚于所述统计时间,则将所述误码存储文件中的误码统计数据和统计时间替换为所述存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;
根据所述更新后的误码存储文件,对所述存储系统的故障状态进行检测。
2.根据权利要求1所述的方法,其特征在于,所述从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从所述存储系统的系统日志中获取所述存储系统的各个组件的主动重启事件的事件发生时间;
将最近的事件发生时间确定为所述目标时间。
3.根据权利要求1所述的方法,其特征在于,所述从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
查询所述存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
将所述通电时间和所述断电时间中的最近时间确定为所述目标时间。
4.根据权利要求1所述的方法,其特征在于,所述获取存储系统的系统日志以及误码存储文件之前,所述方法还包括:
获取所述存储系统的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
根据所述硬件误码数据以及当前系统时间,生成所述误码存储文件。
5.根据权利要求1所述的方法,其特征在于,所述从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从所述系统日志中获取所述存储系统的启动时间;
若所述启动时间晚于所述统计时间,则将所述启动时间确定为所述目标时间。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述启动时间早于所述统计时间,则从所述系统日志中获取所述存储系统中的各个组件的主动重启事件的重启发生时间;
查询所述存储系统中磁盘的通电事件的通电时间和断电事件的断电时间;
将所述重启发生时间、所述通电时间和所述断电时间之中最晚的时间作为所述目标时间。
7.根据权利要求5所述的方法,其特征在于,所述获取存储系统的系统日志以及误码存储文件之前,包括:
根据应用启动指令,启动误码刷新程序;
通过所述误码刷新程序检查所述误码存储文件是否存在;
若所述误码存储文件不存在,则获取所述存储系统的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
根据所述硬件误码数据以及当前系统时间,生成所述误码存储文件。
8.根据权利要求1所述的方法,其特征在于,所述存储系统包括存储服务器和管理服务器,所述方法由所述管理服务器执行;所述获取存储系统的系统日志以及误码存储文件,包括:
通过与所述存储服务器之间的通信接口从所述存储服务器获取所述存储服务器的主动重启事件记录以及误码存储文件;
所述从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间,包括:
从所述主动重启事件记录中获取所述存储服务器的总线适配器或扩展器的重启事件时间;
查询是否对所述存储服务器的磁盘进行过通电操作或者断电操作;
若确定未对所述磁盘进行过通电操作或者断电操作,则将所述重启事件时间中最近的时间确定为所述目标时间。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若确定对所述磁盘进行过通电或者断电操作,则将所述重启事件时间、所述通电操作的通电时间和所述断电操作的断电时间中的最近时间确定为所述目标时间。
10.根据权利要求8所述的方法,其特征在于,所述获取存储系统的系统日志以及误码存储文件之前,所述方法还包括:
根据检测到所述存储服务器的启动操作,在预定延时之后,通过所述通信接口查询所述存储服务器的硬件误码数据,其中,所述硬件误码数据包括总线适配器的误码数量、扩展器的误码数量和磁盘的端到端误码数量中的至少一个;
根据所述硬件误码数据以及当前系统时间,生成所述误码存储文件。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述根据所述更新后的误码存储文件,对所述存储系统的故障状态进行检测,包括:
获取所述存储系统的当前误码数据;
根据所述当前误码数据以及所述更新后的误码存储文件中的误码统计数据,确定所述存储系统的误码增长量;
若所述误码增长量大于增长量阈值,则确定所述存储系统处于故障状态。
12.根据权利要求1至10中任一项所述的方法,其特征在于,所述根据所述更新后的误码存储文件,对所述存储系统的故障状态进行检测,包括:
周期性获取所述存储系统的当前误码数据;
根据所述当前误码数据以及所述更新后的误码存储文件中的误码统计数据,确定所述存储系统的误码增长率;
若所述误码增长率大于增长率阈值,则确定所述存储系统处于故障状态;
若所述误码增长率小于或等于所述增长率阈值,则利用所述当前误码数据替换所述误码统计数据。
13.一种故障检测装置,其特征在于,包括:
文件获取模块,用于获取存储系统的系统日志以及误码存储文件,其中,所述系统日志包括所述存储系统中系统事件对应的事件发生时间,所述系统事件包括主动重启事件、通电事件和断电事件中的至少一个,所述误码存储文件中包括针对所述系统事件的误码统计数据以及所述误码统计数据的统计时间;
目标时间确定模块,用于从所述系统事件对应的事件发生时间中确定最近的事件发生时间作为目标时间;
数据替换模块,用于若所述目标时间晚于所述统计时间,则将所述误码存储文件中的误码统计数据和统计时间替换为所述存储系统当前的误码统计数据和当前系统时间,得到更新后的误码存储文件;
故障检测模块,用于根据所述更新后的误码存储文件,对所述存储系统的故障状态进行检测。
14.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任意一项所述的故障检测方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的故障检测方法。
CN202110448604.2A 2021-04-25 2021-04-25 故障检测的方法、装置、电子设备和可读介质 Pending CN115237641A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110448604.2A CN115237641A (zh) 2021-04-25 2021-04-25 故障检测的方法、装置、电子设备和可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110448604.2A CN115237641A (zh) 2021-04-25 2021-04-25 故障检测的方法、装置、电子设备和可读介质

Publications (1)

Publication Number Publication Date
CN115237641A true CN115237641A (zh) 2022-10-25

Family

ID=83666330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110448604.2A Pending CN115237641A (zh) 2021-04-25 2021-04-25 故障检测的方法、装置、电子设备和可读介质

Country Status (1)

Country Link
CN (1) CN115237641A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841836A (zh) * 2023-09-01 2023-10-03 四川华鲲振宇智能科技有限责任公司 一键式日志收集工具

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841836A (zh) * 2023-09-01 2023-10-03 四川华鲲振宇智能科技有限责任公司 一键式日志收集工具
CN116841836B (zh) * 2023-09-01 2023-11-07 四川华鲲振宇智能科技有限责任公司 一键式日志收集工具

Similar Documents

Publication Publication Date Title
US9294338B2 (en) Management computer and method for root cause analysis
Oliner et al. What supercomputers say: A study of five system logs
US10147048B2 (en) Storage device lifetime monitoring system and storage device lifetime monitoring method thereof
CN105589776B (zh) 一种故障定位方法及服务器
US9720758B2 (en) Diagnostic analysis tool for disk storage engineering and technical support
US8516499B2 (en) Assistance in performing action responsive to detected event
US9753809B2 (en) Crash management of host computing systems in a cluster
US9176798B2 (en) Computer-readable recording medium, failure prediction device and applicability determination method
CN107656705B (zh) 一种计算机存储介质和一种数据迁移方法、装置及系统
JP6633642B2 (ja) 分散データベースにおけるデータブロックを処理する方法およびデバイス
US8984333B2 (en) Automatic computer storage medium diagnostics
CN111831466A (zh) 一种系统设备报错的方法、装置、存储介质和计算机设备
TWI518680B (zh) 維護電腦系統之檔案系統的方法
CN115237641A (zh) 故障检测的方法、装置、电子设备和可读介质
US8352716B1 (en) Boot caching for boot acceleration within data storage systems
CN111104266A (zh) 访问资源的分配方法、装置、存储介质和电子设备
US10776240B2 (en) Non-intrusive performance monitor and service engine
TWI777628B (zh) 電腦系統及其專用崩潰轉存硬體裝置與記錄錯誤資料之方法
CN113553243A (zh) 远端侦错方法
US8930762B1 (en) Optimal tracking of cluster-wide shared storage connectivity for graceful error handling
CN117407207B (zh) 一种内存故障处理方法、装置、电子设备及存储介质
US20230090032A1 (en) Storage system and control method
CN115543672A (zh) 一种错误数据定位方法、装置、设备及存储介质
CN117931536A (zh) 故障处理方法、装置、电子设备和介质
CN118041779A (zh) 更新节点信息的方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40075341

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination