CN117193638A - 一种异常io定位方法、系统及电子设备 - Google Patents

一种异常io定位方法、系统及电子设备 Download PDF

Info

Publication number
CN117193638A
CN117193638A CN202311117649.7A CN202311117649A CN117193638A CN 117193638 A CN117193638 A CN 117193638A CN 202311117649 A CN202311117649 A CN 202311117649A CN 117193638 A CN117193638 A CN 117193638A
Authority
CN
China
Prior art keywords
processing
abnormal
information
determining
time
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
CN202311117649.7A
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.)
Inspur Jinan data Technology Co ltd
Original Assignee
Inspur Jinan data Technology 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 Inspur Jinan data Technology Co ltd filed Critical Inspur Jinan data Technology Co ltd
Priority to CN202311117649.7A priority Critical patent/CN117193638A/zh
Publication of CN117193638A publication Critical patent/CN117193638A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本说明书提供了一种异常IO定位方法、系统及电子设备,能够实现目标集群中异常IO的快速准确定位。所述方法包括:获取目标集群系统中多个应用编程接口的指令代码,对所述指令代码进行分析,确定所述目标集群系统中的数据传输流程路径信息;对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并对多个所述处理时长进行统计分析,确定异常IO参数信息;利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。

Description

一种异常IO定位方法、系统及电子设备
技术领域
本说明书涉及数据存储控制技术领域,具体涉及一种异常IO定位方法、系统及电子设备。
背景技术
在云计算时代,新技术层出不穷,但超融合凭借其资源利用率搞、可扩展性强、成本效益显著、部署简单、简化管理等优势在市场中的保有量越来越高。但超融合也因其复杂性为研发问题定位及客户环境异常问题分析带来了很大的挑战。其复杂性主要表现为LUN越来越大相应的底层IO操作的最小单元object数量也十分巨大,而且同一时间下其操作的IO数量也非常多,同时问题发生时与当时的环境状态紧密相关,以上的种种原因就导致了超融合环境中发生异常IO时问题非常难定位,不利于产品稳定性的提升,研发效率也十分低下。同时,极端场景下,生产环境中也可能发生异常IO的场景,一旦生产环境发生了异常IO的问题,大多数时候,为了尽量降低对生产业务造成的影响,往往会通过技术手段尽快回复业务,就导致了技术售后在分析生产环境问题场景时更加困难,最终无法分析出问题具体原因甚至是得出错误结论,使产品的隐患无法彻底解决,降低客户对产品的信任度,影响产品竞争力。
发明内容
有鉴于此,本说明书实施例提供了一种异常IO定位方法、系统及电子设备,能够实现目标集群系统中异常IO的快速准确定位。
在第一方面,本说明书实施例提供一种异常IO定位方法,包括:
获取目标集群系统中多个应用编程接口的指令代码,通过对所述指令代码进行分析,以确定所述目标集群系统中的数据传输流程路径信息;
对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并通过对多个所述处理时长进行统计分析,确定异常IO参数信息;
利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;
针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
本说明书实施例还提供了一种异常IO定位系统,述系统包括:
IO路径画像模块,用于获取目标集群系统中多个应用编程接口的指令代码,通过对所述指令代码进行分析,确定所述目标集群系统中的数据传输流程路径信息;
IO异常参数确定模块,用于对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并通过对多个所述处理时长进行统计分析,确定异常IO参数信息;
IO异常分析模块,用于利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;
异常IO收集定位模块,用于针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
本说明书实施例还提供了一种异常IO定位电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的异常IO定位方法。
从上面可以看出,本说明书实施例所提供的一种异常IO定位方法、系统及电子设备,具有如下有益技术效果:
通过对目标集群系统中与IO传输相关的指令进行分析,确定出在系统内IO数据流转传输的清晰准确的路径画像,在不影响IO轻轻正常执行运作的前提下,通过在IO下发过程中监测IO请求处理的方式实现集群系统异常IO的准确筛选识别,并结合数据流转传输的路径画像实现快速精准定位。能够在不影响IO处理,不降低IO性能的前提下,提供集群环境中异常IO的快速定位方法,由于并未改变IO处理流程,可以在集群环境应用过程中用户不感知,有效优化用户体验。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了目标集群系统结构示意图;
图2-a示出了目标集群系统中数据迁移时数据流转示意图;
图2-b示出了目标集群系统中数据均衡时数据流转示意图;
图3示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法示意图;
图4示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法中确定数据传输流程路径信息的方法示意图;
图5示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法中确定异常IO参数信息的方法示意图;
图6示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法中判定异常IO的方法示意图;
图7示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法中确定异常IO数据传输路径的方法示意图;
图8示出了本说明书一个或多个可选实施例所提供的一种异常IO定位方法的逻辑流程示意图;
图9示出了本说明书一个或多个可选实施例所提供的一种异常IO定位系统结构示意图;
图10示出了本说明书一个或多个可选实施例所提供的一种异常IO定位电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在云计算时代,新技术层出不穷,但超融合凭借其资源利用率搞、可扩展性强、成本效益显著、部署简单、简化管理等优势在市场中的保有量越来越高。但超融合也因其复杂性为研发问题定位及客户环境异常问题分析带来了很大的挑战。其复杂性主要表现为,逻辑存储单元(LUN)越来越大,相应的底层IO操作中作为最小单元的应用编程接口(object)数量也十分巨大,而且同一时间下其操作的IO数量也非常多。同时问题发生时与当时的环境状态紧密相关,以上的种种原因就导致了超融合环境中发生异常IO时问题非常难定位,不利于产品稳定性的提升,研发效率也十分低下。
需要说明的是此处的异常IO指IO阻塞问题,即IO指令下发后卡住不返回的场景。极端场景下,生产环境中也可能发生异常IO的场景,一旦生产环境发生了异常IO的问题,大多数时候,为了尽量降低对生产业务造成的影响,往往会通过技术手段尽快回复业务,就导致了技术售后在分析生产环境问题场景时更加困难,最终无法分析出问题具体原因甚至是得出错误结论,使产品的隐患无法彻底解决,降低客户对产品的信任度,影响产品竞争力。
如图1所示,超融合集群将物理磁盘划分为逻辑的LUN之后给虚拟机VM使用,虚拟机对虚拟磁盘的读写都会转换成对单个Object的读写操作,每个object最终会落在超融合主机上的物理磁盘中。但在数据落盘之前,每个object都会通过主机上复杂且冗长的调用路径。同时,任意object都会同时存在于集群中至少2个集群节点(Node)上,以实现数据副本存储机制。以上步骤中的其中的任何一个环节出问题,对虚拟机而言,IO就会阻塞,业务就无法正常运行。这些问题导致开发人员面对上述复杂的调用路径要从中发现问题并解决处理存在非常大的困难。
以上仅仅是指正常的业务场景可能出现的IO异常。如图2-a所示,若集群中某个节点因为某些原因发生故障离线,其物理磁盘上的所有的object都会迁移到其他节点上。此外,如图2-b所示,如果有新节点加入集群,为了使数据分布的更加平衡,往往还会进行数据的均衡操作,即原有节点的object会迁移到新加入的节点。以上异常场景与复杂的IO处理逻辑叠加在一起,会使问题的定位时间大大延长。实际的应用生产环境,往往会比以上所述的场景更加复杂,会叠加多次的异常场景,这就导致一旦发生IO的异常情况,事后通过导出的日志去定位问题的真实原因几乎是不可能的。
针对上述问题,本说明书实施例的目的在于提出一种异常IO定位方法,一方面通过对目标集群系统中IO传输控制相关的指令代码进行分析,确定出系统中数据传输流程路径信息,另一方面在IO下发过程中监测IO请求处理从而准确筛选出异常IO,结合数据传输流程路径信息实现对异常IO的快速精准定位。
基于上述目的,在一方面本说明实施例提供了一种异常IO定位方法。
如图3所示,本说明书一个或多个可选实施例所提供的一种异常IO定位方法,包括:
S1:获取目标集群系统中多个应用编程接口的指令代码,通过对所述指令代码进行分析,以确定所述目标集群系统中的数据传输流程路径信息。
所述目标集群系统为分布式的存储集群系统,例如可以为超融合部署集群系统。参考图1所示,在超融合部署集群系统中,包括虚拟机、虚拟磁盘以及多个集群节点(Node)组成的超融合集群。虚拟机对虚拟磁盘的读写都会转换成对单个应用编程接口(object)的读写操作,即利用所述应用编程接口实现IO请求。每个应用编程接口都会通过集群节点中的多个调用路径节点,最终实现数据落盘。所述集群节点中的调用路径节点可以包括集群管理节点、VIP管理节点、IO请求管理节点、Cache管理节点、副本管理节点、调度管理节点、数据一致性管理节点、存储驱动节点等。参考图2-a、2-b所示,所述超融合部署集群系统中实现数据迁移和数据均衡时,也会通过相应的应用编程接口(object)执行数据传输控制。
在获取所述目标集群系统中多个应用编程接口的指令代码时,所述应用编程接口可以包括上述虚拟机执行读写IO操作时所设计的应用编程接口,还可以包括目标集群系统中实现数据迁移、数据均衡所设计的所述应用编程接口。
多个所述应用编程接口的所述指令代码,用于描述在系统中对IO数据所执行的具体控制操作。通过对多个所述应用编程接口的指令代码进行分析,可以确定出IO数据在系统中的所述数据流转流程路径信息。
如图4所示,在本说明书一个或多个可选实施例所提供的一种异常IO定位方法中,通过对所述指令代码进行分析,以确定所述目标集群系统中的数据传输流程路径信息,包括:
S201:从所述指令代码中提取不同IO处理类型对应的代码内容。
S202:对所述代码内容进行分析,确定所述目标集群系统中的数据流转流程信息。
S203:根据所述数据流转流程信息,分别针对多种IO处理类型确定相应的数据传输路径信息。
多个所述应用编程接口的所述指令代码中,包括对IO数据进行控制处理的代码语句、对IO状态进行控制处理的代码语句以及不同数据副本对数据进行管理控制的代码语句。与此对应的,可以从所述指令代码中提取出所述IO处理流程代码模块、所述IO状态转换代码模块与所述副本管理代码模块。
通过对所述IO处理流程代码模块、所述IO状态转换代码模块与所述副本管理代码模块进行分析,可以确定出集群节点内部的数据流转信息、集群节点间的数据流转信息以及所述目标集群系统增删节点时集群节点数据流转信息。所述数据流转流程信息包括集群节点内部的数据流转信息、集群节点间的数据流转信息以及所述目标集群系统增删节点时集群节点数据流转信息。
可以理解的是,IO处理包括多种类型,例如可以包括读IO处理类型、写IO处理类型与IO恢复处理类型等。不同类型的IO处理,其相应的IO数据传输具有不同的特征。可以从所述指令代码中提取不同IO处理类型对应的代码内容,针对代码内容进行分析从而确定不同IO处理类型相对应的数据传输路径信息。
可以基于所述数据流转流程信息,分别针对不同IO处理类型确定出能够表征各自传输特征的所述数据传输路径信息。所述数据传输路径信息可以采用路径传输图的形式来表示。
所述数据传输流程路径信息包括上述的数据流转流程信息与数据传输路径信息。
S2:对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并对多个所述处理时长进行统计分析,确定异常IO参数信息。
实现异常IO定位的一个前提是首先实现对异常IO的精准识别,执行异常IO的识别的关键在于确定出异常IO参数作为异常IO的评估与衡量标准。通过对所述目标集群系统中多个IO处理进行实时监控,确定相应的处理时长,通过对多个所述处理时长进行统计分析,基于系统中处理时长的整体水平确定出所述异常IO参数信息。其中,采用实时监控的方式,对应所确定的所述异常IO参数信息也可以随着系统整体负载状态的变化进行实时调整改变。
如图5所示,在本说明书一个或多个可选实施例所提供的一种异常IO定位方法中,通过对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并通过对多个所述处理时长进行统计分析,确定异常IO参数信息,包括:
S301:对所述目标集群系统进行实时监控,以获取当前时间节点前预设时间周期内多个所述IO处理的所述处理时长。
以当前时间节点为基准,获取当前时间节点之前预设时间周期内的多个所述IO处理对应的处理时长。其中,所述预设时间周期可以根据实际情况中系统的IO处理效率进行灵活调整,具体的所述预设时间周期可以设定为60s、100s、5min、10min等。
S302:对所述预设时间周期内的多个所述处理时长进行统计分析,确定所述当前时间节点对应的最小异常参数。
通过对所述预设时间周期内多个所述处理时长进行统计分析,可以确定出预设时间周期内系统针对IO请求进行相应的整体时长水平,从而相应的确定出科学合理的所述最小异常参数。所述异常IO参数信息包括所述最小异常参数。
在一些可选实施方式中,可以采用以下方式计算确定所述最小异常参数。
所述最小异常参数:
其中,M表示所述最小异常参数。
Q表示所述预设时间周期内多个所述处理时长的平均时长。
其中,n表示所述预设时间周期内所述IO处理的数量,Pn表示所述预设时间周期内第i个所述IO处理的所述处理时长。
T、V分别表示在所述预设时间周期内所述处理时长超出所述平均时长以及未超出所述平均时长的所述IO处理的个数。
此外,分别计算确定所述处理时长超出与未超出所述平均时长的多个所述IO处理的处理时长之和
其中,表示处理时长超出平均时长的多个IO处理的处理时长之和,ri表示超出所述平均时长的处理时长;
表示处理时长未超出平均时长的多个IO处理的处理时长之和,si表示未超出所述平均时长的处理时长。
可以采用上述方式计算确定所述最小异常参数,所述最小异常参数可以作为衡量和评判IO处理是否出现异常的一个关键性阈值。
本领域技术人员可以理解的是,在所述目标集群系统中,多个集群节点由于配置、负载情况所存在的差异,其对IO处理的响应效率也可能存在差异。因此在一些可选实施方式中,可以在所述预设时间周期内分别监控获取多个所述集群节点对应的多个所述IO处理的处理时长,并分别分析统计确定各个所述集群节点相应的所述最小异常参数。
S3:利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理。
所述异常IO参数信息除所述最小异常参数外,还可以包括预设的超时时间阈值。所述超时时间阈值是指所述目标集群系统中所述应用成接口object所允许的IO处理最长响应时间。若IO处理的处理时长超出该超时时间阈值,则可以判定相应的所述IO处理出现阻塞异常,无法正常响应。
可以根据所述异常IO参数信息中的所述超时时间阈值与所述最小异常参数对所述IO处理的所述处理时长进行的对比分析,从而确定所述IO处理是否为异常IO处理。
如图6所示,在本说明书一个或多个可选实施例所提供的一种异常IO定位方法中,利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否出现异常,包括:
S401:将所述处理时长与所述超时时间阈值进行对比,以确定所述处理时长是否大于所述超时时间阈值。
S402:响应于确定所述处理时长大于所述超时时间阈值,确定所述处理时长相应的所述IO处理出现异常,为异常IO处理。
所述IO处理的所述处理时长大于所述超时时间阈值,可以判定相应的所述IO处理出现阻塞异常,无法正常响应。因此可以确定所述IO处理为异常IO处理。
S403:响应于确定所述处理时长不大于所述超时时间阈值,将所述处理时长与所述最小异常参数进行对比,以确定所述处理时长是否大于所述最小异常参数。
若所述处理处理时长未超出所述超时时间阈值,进一步的需要将所述处理时长与所述最小异常参数进行对比。
S404:响应于确定所述处理时长大于所述最小异常参数,对所述处理时长相应的所述IO处理进行跟踪监控,确定所述IO处理在达到所述超时时间阈值时是否处理完成。
在所述处理时长大于所述最小异常参数的情况下,说明所述IO处理存在所述最小异常参数所规定的时间阈值内未能完成响应。这种情况下可以认定所述IO处理可能存在出现异常的风险。
需要对存在出现异常风险的所述IO处理进行跟踪监控,如果所述IO处理最终完成响应,并且其总体的处理时长没有超出所述超时时间阈值,则可以确定所述IO处理为正常IO处理。
S405:响应于所述IO处理在达到所述超时时间阈值时未处理完成,确定所述IO处理出现异常,为异常IO处理。
如果所述IO处理直到所述超时时间阈值所规定的时间节点,仍未能完成响应,其总体的处理时长会超出所述超时时间阈值,因此可以确定所述IO处理为异常IO处理。
采用上述方式,利用所述最小异常参数与所述超时时间阈值这两个时间阈值对所述处理时长进行对比分析,能够高效精确地识别确定出异常IO。
S4:针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
在识别确定出所述异常IO处理后,结合对照所述数据传输流程路径信息,则可以确定出所述异常IO处理具体的IO数据传输路径,从而实现对异常IO的快速精确定位。
如图7所示,在本说明书一个或多个可选实施例所提供的一种异常IO定位方法中,针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径,包括:
S501:确定所述异常IO处理的IO处理类型,并根据所述IO处理类型确定与所述异常IO处理相关联的所述数据传输路径信息。
不同类型的IO处理,其相应的IO数据传输具有不同的特征,各自对应不同的所述数据传输路径信息。因此,在确定出异常IO处理后,可以进一步确定所述异常IO处理的IO处理类型,从而确定出与之相对应的属于同一IO处理类型的所述数据传输路径信息。
S502:利用所述数据传输路径信息,查找确定所述异常IO处理对应目标数据在所述目标集群系统中的所述数据传输路径。
依据所述数据传输路径信息,将所述异常IO处理与之进行比对,可以确定出所述异常IO处理在所述目标集群系统中具体的数据传输路径,从而能够实现针对异常IO的快速准确定位。
所述异常IO定位方法,通过对目标集群系统中与IO传输相关的指令进行分析,确定出在系统内IO数据流转传输的清晰准确的路径画像,在不影响IO轻轻正常执行运作的前提下,通过在IO下发过程中监测IO请求处理的方式实现目标集群系统异常IO的准确筛选识别,并结合数据流转传输的路径画像实现快速精准定位。能够在不影响IO处理,不降低IO性能的前提下,提供集群环境中异常IO的快速定位方法,由于并未改变IO处理流程,可以在集群环境应用过程中用户不感知,有效优化用户体验。
本说明书一个或多个可选实施例所提供的一种异常IO定位方法,在确定所述IO处理出现异常,为异常IO处理后,还包括:
获取所述异常IO处理的实时状态信息,将所述异常IO处理与相应的所述实时状态信息记录在异常列表中。其中,所述实时状态信息包括IO状态信息、调用状态信息与上下文信息。所述异常列表可以持久化存储在系统中。
在确定异常IO处理后,还可以获取相应的实时状态信息,所述实时状态信息有利于定位异常IO后进一步执行异常诊断与修复工作。
在一些可选实施例中,在针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析前,还对所述异常列表中的多个所述异常IO处理进行异常IO校验,以确定误判项,并将所述误判项从所述异常列表中滤除。
虽然我们通过合理的异常参数调整最大程度的降低错误统计的可能,但是当系统负载突然升高等情况下,会导致系统整体的IO处理时间变长,此时所确定的阈值参数由于其滞后性可能处于过渡期,因此可能导致正常IO处理被误判为异常IO处理。因此,在结合所述数据传输流程路径信息进行定位分析之前,可以首选对所述异常列表中的多项所述异常IO处理数据进行异常校验,从而滤除误判数据项,进一步提升异常IO判定的准确性。
在一些可选实时方式中,可以采用以下方式对所述异常IO处理进行异常校验:对所述异常列表中的多个所述异常IO处理进行跟踪监控,以确定是否最终处理完成。若所述异常IO最终正常处理完成返回,说明该项IO处理为正常IO,异常列表中与该项IO处理相对应的数据项为误判数据项,可以在所述异常列表中将所述误判数据项剔除。
本说明书一个或多个可选实施例所提供的一种异常IO定位方法,在确定所述处理时长大于所述最小异常参数后,还包括:
获取相应所述IO处理的实时状态信息,将所述IO处理与相应的所述实时状态信息记录在风险列表中。所述实时状态信息包括IO状态信息、调用状态信息与上下文信息。
所述处理时长大于所述最小异常参数,说明所述IO处理存在异常风险,获取器相应的实时状态信息,以便于后续确定其出现异常时利用所述实时状态信息进一步执行异常诊断与修复工作。
需要说明的是,在所述处理时长大于所述最小异常参数的情况下,说明所述IO处理存在所述最小异常参数所规定的时间阈值内未能完成响应。这种情况下可以认定所述IO处理可能存在出现异常的风险,需要对其进行跟踪监控。如果所述IO处理在达到所述超时时间阈值之前处理完成,说明所述IO处理为正常IO处理,此时可以将所述IO处理对应的数据项从所述风险列表中移除。
本说明书一个或多个可选实施例所提供的一种异常IO定位方法,包括以下步骤:
步骤(一):利用IO异常参数调整模块实时计算确定超融合部署集群系统的异常IO参数。
异常IO参数由最小异常参数与超时时间组成,初始情况下无最小异常参数,仅有超时时间。
其中,所述超时代表IO对应的object允许在系统中处理的最长时间,一旦object在系统中处理时间超过超时时间,虚拟机业务一定受到影响,所有超过超时时间的IO都为异常IO,都会被异常IO收集模块并经过处理后进行持久化存储。
所述最小异常参数在系统中实时生成,每个主机节点因为配置、负载的不通都不相同。具体的,所述最小异常参数可以使用以下方式计算:
单个IO的处理时间为p,连续n个IO的平均处理时间为:
T为IO处理时间超过平均时间的个数,V为IO处理时间小于平均时间的个数,则最小异常参数M为:
处理时长超过最小异常参数的IO仅为发生IO异常风险大的IO,并不代表object真正发生了异常。
步骤(二):利用IO异常分析模块通过异常IO参数,评估IO是否有可能发生了异常。
若最小异常参数即异常阈值为0,则认为所有IO都正常,仅统计超过最大超时时间的IO。
若异常阈值不为0,则统计IO时间,若IO在异常阈值时间内没有完成,则认为IO发生风险大,临时进行统计记录,统计信息包含IO状态、调用状态、上下文等一系列IO在系统中的实时状态信息。
若IO超过最大超时时间,则立即触发事件,通知异常IO结果收集模块收集异常信息。
一旦IO超过最小阈值则代表有可能发生异常,IO异常分析模块会先将风险IO收集,若IO最终处理完成,则将对应的object从风险IO中删除,若IO达到超时时间仍未完成处理则将其判定为异常IO并交由异常IO收集模块继续处理。
步骤(三):利用异常IO收集模块从IO异常分析模块获取异常IO或高风险IO并进行持久化存储。
若IO确定为异常IO,即超过了最大超时时间,异常IO收集模块根据IO异常分析模块触发的事件,收集异常IO。
若无超过最大超时时间导致的事件,则周期性的从异常IO分析模块获取异常IO。
异常IO结果收集模块需要做异常IO校验,即去除错误统计的IO。虽然我们通过合理的异常参数调整最大程度的降低错误统计的可能,但是当系统负载突然升高等情况下,IO处理时间变长,但是参数调整处于过渡期,会有正常的IO被错误的统计,此时,异常IO结果收集模块需要根据多次从IO异常分析模块获取的异常IO,将错误统计的object从异常结果中剔除;
异常IO结果收集模块还会分门别类的按照IO类型,将异常IO结果对应到IO路径画像上,使问题分析一目了然,快速准确。
如图8所示为上述实施例所提供的异常IO定位方法的逻辑流程示意图。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一目的,与上述任意实施例方法相对应的,本说明书实施例还提供了一种异常IO定位系统。
参考图9,所述异常IO定位系统,所述系统包括:
IO路径画像模块,用于获取目标集群系统中多个应用编程接口的指令代码,通过对所述指令代码进行分析,以确定所述目标集群系统中的数据传输流程路径信息;
IO异常参数确定模块,用于通过对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并通过对多个所述处理时长进行统计分析,确定异常IO参数信息;
IO异常分析模块,用于利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;
异常IO收集定位模块,用于针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述IO路径画像模块,还用于从所述指令代码中提取IO处理流程代码模块、IO状态转换代码模块与副本管理代码模块;通过对所述IO处理流程代码模块、所述IO状态转换代码模块与所述副本管理代码模块进行分析,确定所述目标集群系统中的数据流转流程信息;根据所述数据流转流程信息,分别针对多种IO处理类型确定相应的数据传输路径信息;其中,所述数据流转流程信息包括集群节点内部的数据流转信息、集群节点间的数据流转信息以及所述目标集群系统增删节点时集群节点数据流转信息;所述数据传输流程路径信息包括所述数据流转流程信息与数据传输路径信息。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述IO异常参数确定模块,还用于通过对所述目标集群系统进行实时监控,以获取当前时间节点前预设时间周期内多个所述IO处理的所述处理时长;对所述预设时间周期内的多个所述处理时长进行统计分析,确定所述当前时间节点对应的最小异常参数;所述异常IO参数信息包括所述最小异常参数。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述IO异常参数确定模块采用以下方法确定所述最小异常参数:
计算确定所述预设时间周期内多个所述处理时长的平均时长:
其中,Q表示所述平均时长,n表示所述预设时间周期内所述IO处理的数量,Pn表示所述预设时间周期内第i个所述IO处理的所述处理时长;
将多个所述处理时长与所述平均时长进行对比,分别确定处理时长超出平均时长的IO处理个数以及处理时长低于平均时长的IO处理个数,并结合所述平均时长,确定所述最小异常参数:
其中,M表示所述最小异常参数,T表示处理时长超出平均时长的IO处理个数,V处理时长低于平均时长的IO处理个数;
分别表示处理时长超出平均时长的多个处理时长之和以及处理时长低于平均时长的多个处理时长之和。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述异常IO参数信息还包括预设的超时时间阈值。所述IO异常分析模块,还用于将所述处理时长与所述超时时间阈值进行对比,以确定所述处理时长是否大于所述超时时间阈值;在所述处理时长大于所述超时时间阈值的情况下,确定所述处理时长相应的所述IO处理出现异常,为异常IO处理;在所述处理时长不大于所述超时时间阈值的情况下,将所述处理时长与所述最小异常参数进行对比,以确定所述处理时长是否大于所述最小异常参数;在确定所述处理时长大于所述最小异常参数的情况下,对所述处理时长相应的所述IO处理进行跟踪监控,确定所述IO处理在达到所述超时时间阈值时是否处理完成;在所述IO处理在达到所述超时时间阈值时未处理完成时,确定所述IO处理出现异常,为异常IO处理。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述异常IO收集定位模块,还用于确定所述异常IO处理的IO处理类型,并根据所述IO处理类型确定与所述异常IO处理相关联的所述数据传输路径信息;利用所述数据传输路径信息,查找确定所述异常IO处理对应目标数据在所述目标集群系统中的所述数据传输路径。
本说明书一个或多个可选实施例所提供的一种异常IO定位系统,还包括IO信息记录模块。所述IO信息记录模块,在确定所述IO处理出现异常为异常IO处理后,用于获取所述异常IO处理的实时状态信息,将所述异常IO处理与相应的所述实时状态信息记录在异常列表中;其中,所述实时状态信息包括IO状态信息、调用状态信息与上下文信息。所述IO信息记录模块在针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析前,还用于对所述异常列表中的多个所述异常IO处理进行异常IO校验,以确定误判项,并将所述误判项从所述异常列表中滤除。
在本说明书一个或多个可选实施例所提供的一种异常IO定位系统中,所述IO信息记录模块,还用于在确定所述处理时长大于所述最小异常参数后,获取相应所述IO处理的实时状态信息,将所述IO处理与相应的所述实时状态信息记录在风险列表中,其中,所述实时状态信息包括IO状态信息、调用状态信息与上下文信息。所述IO信息记录模块,还用于在所述IO处理在达到所述超时时间阈值时处理完成的情况下,将所述IO处理对应的数据项从所述风险列表中移除。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图10示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的异常IO定位方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的异常IO定位方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种异常IO定位方法,其特征在于,所述方法包括:
获取目标集群系统中多个应用编程接口的指令代码,对所述指令代码进行分析,确定所述目标集群系统中的数据传输流程路径信息;
对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并对多个所述处理时长进行统计分析,确定异常IO参数信息;
利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;
针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
2.根据权利要求1所述的方法,其特征在于,对所述指令代码进行分析,确定所述目标集群系统中的数据传输流程路径信息,包括:
从所述指令代码中提取不同IO处理类型对应的代码内容;
对所述代码内容进行分析,确定所述目标集群系统中的数据流转流程信息;
根据所述数据流转流程信息,分别针对多种IO处理类型确定相应的数据传输路径信息;
其中,所述数据流转流程信息包括集群节点内部的数据流转信息、集群节点间的数据流转信息以及所述目标集群系统增删节点时集群节点数据流转信息;
所述数据传输流程路径信息包括所述数据流转流程信息与数据传输路径信息。
3.根据权利要求1所述的方法,其特征在于,对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并对多个所述处理时长进行统计分析,确定异常IO参数信息,包括:
对所述目标集群系统进行实时监控,获取当前时间节点前预设时间周期内多个所述IO处理的所述处理时长;
对所述预设时间周期内的多个所述处理时长进行统计分析,确定所述当前时间节点对应的最小异常参数;
所述异常IO参数信息包括所述最小异常参数。
4.根据权利要求3所述的方法,其特征在于,对所述预设时间周期内的多个所述处理时长进行统计分析,确定所述当前时间节点对应的最小异常参数,包括:
计算确定所述预设时间周期内多个所述处理时长的平均时长:
其中,Q表示所述平均时长,n表示所述预设时间周期内所述IO处理的数量,Pn表示所述预设时间周期内第i个所述IO处理的所述处理时长;
将多个所述处理时长与所述平均时长进行对比,分别确定处理时长超出平均时长的IO处理个数以及处理时长低于平均时长的IO处理个数,并结合所述平均时长,确定所述最小异常参数:
其中,M表示所述最小异常参数,T表示处理时长超出平均时长的IO处理个数,V处理时长低于平均时长的IO处理个数;
分别表示处理时长超出平均时长的多个处理时长之和以及处理时长低于平均时长的多个处理时长之和。
5.根据权利要求3所述的方法,其特征在于,所述异常IO参数信息还包括预设的超时时间阈值;
利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否出现异常,包括:
将所述处理时长与所述超时时间阈值进行对比,以确定所述处理时长是否大于所述超时时间阈值;
响应于确定所述处理时长大于所述超时时间阈值,确定所述处理时长相应的所述IO处理出现异常,为异常IO处理;
响应于确定所述处理时长不大于所述超时时间阈值,将所述处理时长与所述最小异常参数进行对比,以确定所述处理时长是否大于所述最小异常参数;
响应于确定所述处理时长大于所述最小异常参数,对所述处理时长相应的所述IO处理进行跟踪监控,确定所述IO处理在达到所述超时时间阈值时是否处理完成;
响应于所述IO处理在达到所述超时时间阈值时未处理完成,确定所述IO处理出现异常,为异常IO处理。
6.根据权利要求2所述的方法,其特征在于,针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径,包括:
确定所述异常IO处理的IO处理类型,并根据所述IO处理类型确定与所述异常IO处理相关联的所述数据传输路径信息;
利用所述数据传输路径信息,查找确定所述异常IO处理对应目标数据在所述目标集群系统中的所述数据传输路径。
7.根据权利要求5所述的方法,其特征在于,在确定所述IO处理出现异常,为异常IO处理后,还包括:
获取所述异常IO处理的实时状态信息,将所述异常IO处理与相应的所述实时状态信息记录在异常列表中;
其中,所述实时状态信息包括IO状态信息、调用状态信息与上下文信息;
在针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析前,所述方法还包括:
对所述异常列表中的多个所述异常IO处理进行异常IO校验,以确定误判项,并将所述误判项从所述异常列表中滤除。
8.根据权利要求5所述的方法,其特征在于,在确定所述处理时长大于所述最小异常参数后,还包括:
获取相应所述IO处理的实时状态信息,将所述IO处理与相应的所述实时状态信息记录在风险列表中;
其中,所述实时状态信息包括IO状态信息、调用状态信息与上下文信息;
响应于所述IO处理在达到所述超时时间阈值时处理完成,将所述IO处理对应的数据项从所述风险列表中移除。
9.一种异常IO定位系统,其特征在于,所述系统包括:
IO路径画像模块,用于获取目标集群系统中多个应用编程接口的指令代码,通过对所述指令代码进行分析,以确定所述目标集群系统中的数据传输流程路径信息;
IO异常参数确定模块,用于通过对所述目标集群系统进行实时监控,确定多个IO处理相对应的处理时长,并通过对多个所述处理时长进行统计分析,确定异常IO参数信息;
IO异常分析模块,用于利用所述异常IO参数信息对多个所述处理时长进行对比分析,以确定相应的所述IO处理是否为异常IO处理;
异常IO收集定位模块,用于针对所述异常IO处理,结合所述数据传输流程路径信息进行定位分析,确定所述异常IO处理相对应的数据传输路径。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
CN202311117649.7A 2023-08-31 2023-08-31 一种异常io定位方法、系统及电子设备 Pending CN117193638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311117649.7A CN117193638A (zh) 2023-08-31 2023-08-31 一种异常io定位方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311117649.7A CN117193638A (zh) 2023-08-31 2023-08-31 一种异常io定位方法、系统及电子设备

Publications (1)

Publication Number Publication Date
CN117193638A true CN117193638A (zh) 2023-12-08

Family

ID=88982864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311117649.7A Pending CN117193638A (zh) 2023-08-31 2023-08-31 一种异常io定位方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN117193638A (zh)

Similar Documents

Publication Publication Date Title
CN107025153B (zh) 磁盘的故障预测方法和装置
CN108073519B (zh) 测试用例生成方法和装置
US11023355B2 (en) Dynamic tracing using ranking and rating
US11520649B2 (en) Storage mounting event failure prediction
US10270668B1 (en) Identifying correlated events in a distributed system according to operational metrics
US10147048B2 (en) Storage device lifetime monitoring system and storage device lifetime monitoring method thereof
US20170017537A1 (en) Apparatus and method of leveraging semi-supervised machine learning principals to perform root cause analysis and derivation for remediation of issues in a computer environment
WO2022062964A1 (en) Detecting performance degradation in remotely deployed applications
US20160378583A1 (en) Management computer and method for evaluating performance threshold value
EP3047378B1 (en) Dynamic discovery of applications, external dependencies, and relationships
CN109495291B (zh) 调用异常的定位方法、装置和服务器
US11561875B2 (en) Systems and methods for providing data recovery recommendations using A.I
US20160147823A1 (en) Pattern-based problem determination guidance
JP4383484B2 (ja) メッセージ解析装置、制御方法および制御プログラム
CN111159029B (zh) 自动化测试方法、装置、电子设备及计算机可读存储介质
US20180060987A1 (en) Identification of abnormal behavior in human activity based on internet of things collected data
CN112433888A (zh) 数据处理方法及装置、存储介质和电子设备
CN117033099A (zh) 一种系统硬盘的压力测试方法、系统、装置及存储介质
CN115509853A (zh) 一种集群数据异常检测方法及电子设备
CN117193638A (zh) 一种异常io定位方法、系统及电子设备
US10481828B2 (en) Slow drive detection
US10169136B2 (en) Dynamic monitoring and problem resolution
CN118606093A (zh) 一种故障分析方法、装置、电子设备及存储介质
JP2024014250A (ja) 電子制御装置、及び評価の十分性を評価するためのデータを出力する方法
CN118227418A (zh) 主机总线适配器的检测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination