一种多路径预警方法及系统与流程

文档序号:29961122发布日期:2022-05-11 09:08阅读:133来源:国知局
一种多路径预警方法及系统与流程

1.本技术涉及一种多路径预警方法及系统,属于云计算存储中多路径预警方案技术领域。


背景技术:

2.多路径存储,因其具备故障的切换和恢复、io流量的负载均衡、磁盘的虚拟化、io悬挂过滤数据链路短暂的抖动等优势,在云计算存储领域被广泛应用。有了多路径的存在,系统将会更加的健壮和稳定,系统的io带宽也会得到提高。
3.目前在云计算存储领域中被应用最广泛的多路径开源软件是redhat推出的multipath-tools。然而,multipath-tools缺乏一套多路径告警框架,包括多路径相关告警的定义、检查、上报和查询等机制,目前,只能具备一定存储多路径知识的人员通过人工分析大量日志和状态查询才能获得各多路径对象的实际健康情况(是否可用、是否存在潜在风险等),费事费力。而且,一般的运维人员并不能及时地了解到主机上各多路径对象的实际健康情况(是否可用、是否存在潜在风险等),导致多路径对象的实际健康情况不便及时获取,除此之外,可以获取到实际健康情况的运维人员也只能通过人工分析大量日志和状态查询才能确定多路径对象的实际健康情况,费时费力。
4.因此,现有技术方案中多路径对象的实际健康情况费事费力,且不便及时获取。


技术实现要素:

5.本技术提供了一种多路径预警方法及系统,解决现有技术方案中多路径对象的实际健康情况费事费力,且不便及时获取的技术问题。
6.第一方面,根据本技术实施例提供一种多路径预警方法,用于对云计算存储中多路径对象的运行故障进行预警,所述方法,包括:
7.当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
8.根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;
9.输出针对所述预警信息查询命令对应的预警信息;所述算机存储对应的map.total_paths变量值用于确定总路径的数量。
10.在一个实施例中,所述预警信息查询命令为“multipathd show alarms”命令、“multipathd show alarm mapfailed”命令、“multipathd show alarm pathfailed”命令、“multipathd show alarm pathloss”命令、“multipathd show alarm pathjitter”命令或“multipathd show alarm backendchange”。
11.在一个实施例中,若所述预警信息查询命令为“multipathd show alarms”命令,
则:获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:获取计算存储中每个多路径对象的alarm.map_failed值、alarm.path_loss值、alarm.path_jitter值、alarm.path_failed值、alarm.backend_change值;
12.根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
13.若计算存储中的任一个多路径对象的alarm.map_failed值为真,并将alarm.map_failed值为真的多路径对象的唯一标识存储至mapfailed_list列表准中;
14.若计算存储中的任一个多路径对象的alarm.path_loss值为真,则将alarm.path_loss值为真的多路径对象的唯一标识存储至pathloss_list列表中;
15.若计算存储中的任一个多路径对象的alarm.path_jitter值为真,则将alarm.path_jitter值为真的多路径对象的唯一标识存储至pathjitter_list列表中;
16.若计算存储中的任一个多路径对象的alarm.path_failed值为真,则将alarm.path_failed值为真的多路径对象的唯一标识存储至pathfailed_list列表中;
17.若计算存储中的任一个多路径对象的alarm.backend_change值为真,则将alarm.backend_change值为真的多路径对象的唯一标识存储至backendchange_list列表中;
18.所述输出针对所述预警信息查询命令对应的预警信息,包括:
19.显示在预设时间段内存在更新操作的目标列表,所述目标列表为mapfailed_list列表、pathloss_list列表、pathjitter_list列表、pathfailed_list列表及backendchange_list列表中的至少一个。
20.在一个实施例中,若所述预警信息查询命令为“multipathd show alarm mapfailed”命令,则
21.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
22.遍历获取计算机存储对应的多路径对象的alarm.map_failed值;
23.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
24.若任意一个多路径对象的alarm.map_failed值为真,则将alarm.map_failed值为真的目标多路径对象的唯一标识及多路径设备名称存储至mapfailed_list列表中;
25.所述输出针对所述预警信息查询命令对应的预警信息,包括:
26.输出预设时间内mapfailed_list列表中的更新项。
27.在一个实施例中,若所述预警信息查询命令为“multipathd show alarm pathfailed”命令,则
28.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
29.遍历获取计算机存储对应的多路径对象的alarm.path_failed值;
30.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
31.若任意一个多路径对象的alarm.path_failed值为真,则将alarm.path_failed值
为真的目标多路径对象的唯一标识及多路径设备名称存储至pathfailed_list列表中;
32.所述输出针对所述预警信息查询命令对应的预警信息,包括:
33.输出预设时间内pathfailed_list列表中的更新项。
34.在一个实施例中,若所述预警信息查询命令为“multipathd show alarm pathloss”命令,则
35.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
36.遍历获取计算机存储对应的多路径对象的alarm.path_loss值;
37.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
38.若任意一个多路径对象的alarm.path_loss值为真,则将alarm.path_loss值为真的目标多路径对象的唯一标识及多路径设备名称存储至pathloss_list列表中;
39.所述输出针对所述预警信息查询命令对应的预警信息,包括:
40.输出预设时间内pathloss_list列表中的更新项。
41.在一个实施例中,若所述预警信息查询命令为“multipathd show alarm pathjitter”命令,则
42.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
43.遍历获取计算机存储对应的多路径对象的alarm.path_jitter值;
44.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
45.若任意一个多路径对象的alarm.path_jitter值为真,则将alarm.path_jitter值为真的目标多路径对象的唯一标识及多路径设备名称存储至pathjitter_list列表中;
46.所述输出针对所述预警信息查询命令对应的预警信息,包括:
47.输出预设时间内pathjitter_list列表中的更新项。
48.在一个实施例中,若所述预警信息查询命令为“multipathd show alarm backendchange”命令,则
49.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
50.遍历获取计算机存储对应的多路径对象的alarm.path_jitter值;
51.则根据所述alarm对象中的参数信息和/或计算机存储对应的alarm.backend_change变量值确定相应路径对应的预警信息,包括:
52.若任意一个多路径对象的alarm.path_jitter值为真,则将alarm.backend_change值为真的目标多路径对象的唯一标识及多路径设备名称存储至backendchange_list列表中;
53.所述输出针对所述预警信息查询命令对应的预警信息,包括:
54.输出预设时间内backendchange_list列表中的更新项。
55.在一个实施例中,所述方法,还包括:
56.针对云计算存储中的每个多路径对象map,新增一个alarm对象;
57.根据每个路径的对象的运行状态更新对应的alarm对象中的相应属性值;其中,alarm对象中包括的属性值为:alarm.map_failed值、alarm.path_loss值、alarm.jitter值、alarm.path_filed值、alarm.backend_change值及alarm.backend_change_time值。
58.第二方面,根据本技术实施例提供一种多路径预警系统,用于对云计算存储中多路径对象的运行故障进行预警,所述系统,包括:
59.获取模块,用于当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
60.预警信息确定模块,用于根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;
61.输出模块,用于输出针对所述预警信息查询命令对应的预警信息。
62.本技术的有益效果在于:
63.本技术实施例提供的多路径预警方法,首先,当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;然后,根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;最后,输出针对所述预警信息查询命令对应的预警信息。可以实现针对多路径对象的实际健康情况及时自动获取,无需人为分析日志,省事高效,可及时了解多路径设备的运行状况,为设备高效运行提供可靠保障。
64.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,并可依照说明书的内容予以实施,以下以本技术的较佳实施例并配合附图详细说明如后。
附图说明
65.图1为本技术实施例中提供的一种多路径预警方法流程图;
66.图2为本技术实施例中接收到multipathd show alarm mapfailed命令后执行的路径失效检测过程示意图;
67.图3为本技术实施例中接收到multipathd show alarm pathjitter命令后执行的路径抖动检测过程示意图;
68.图4为本技术实施例中接收到multipathd show alarm pathloss命令后执行的路径丢失检测过程示意图;
69.图5为本技术实施例中接收到multipathd show alarm backendchange命令后执行的路径改变检测过程示意图;
70.图6为本技术再一个实施例中提供的一种多路径预警方法流程图;
71.图7为本技术再一个实施例中提供的一种多路径预警系统的模块图;
72.图8为本技术一个实施例提供的一种多路径预警系统的硬件框图。
具体实施方式
73.下实施例用于说明本技术,但不用来限制本技术的范围。
74.云计算存储中多路径对象的应用越来越广泛,然而,目前存在诸多不良现状,如(1)用户无法方便的知道系统中是否存在多路径对象失效和多路径中部分子路径失效的情况。只能通过multipath-ll查询,如果多路径对象很多,需要人工确定到底是哪些多路径对象的路径异常了,如果有上百个多路径对象,那么工作量将会比较大,当前方案不存在主动上报机制,上层管理是无法感知的,只能是在客户业务无法访问后,运维手动查询后才会被发现;(2)当多路径中的部分路径一直处在时好时坏的情况下,不仅会影响到整体的io性能,甚至可能会导致io链路被阻塞、上层应用被卡住的严重问题。目前没有去检查路径状态震荡的方案,一般是在业务已被影响到了并定位问题之后,有经验的运维和开发人员只能通过查询并分析多路径状态和日志后,才能确定是否出现震荡,目前缺少自动检测路径状态震荡和上报的机制,一般是在业务已被影响到了并定位问题之后运维和开发人员才查询、分析进而确定是否存在路径震荡,用户无法方便的知道当前是否存在存储链路震荡故障(3)用户无法知道多路径对象中是否存在子路径丢失,系统面临性能下降甚至业务中断的风险。当多路径中的部分路径丢失后,由于当前没有自动检查和上报机制,上层业务还有可用路径暂时无影响,通过命令查询多路径状态也无异样,但此时的负载均衡能力已经被减弱,而且当剩下可用路径都异常后没有可以切换的路径,多路径将不可用,上层业务将中断,而实际上先前丢失的路径可能是好的,若不丢失这些路径就可以故障切换而保障客户业务不中断。如果有路径丢失的告警就可以很大程度上避免这两种故障情况的发生;(4)多路径没有类似指示后端块设备状态变动的告警,运维人员将不能及时被通知到是否有后端存储存在异常、是否后端存储配置有变动或链路有变动,不能及时排除风险。
75.为解决这些问题,本专利提出了一种新的多路径告警管理框架:主要引入五种多路径告警,分别对这五种多路径告警提供对应的检测、存储、上报和查询管理机制。本技术提供的一种提高多路径的维护和管理能力的多路径预警技术方案,基于目前应用得最广泛的开源多路径软multipath-tools,新增了多路径预警功能,弥补了现有技术方案中对多路径预警在定义、检查、上报和查询等机制上的缺失,从而解决了多路径缺乏自动检测多路径异常并上报告警通知上层的功能缺失,提高了多路径维护的自动化程度,降低了多路径维护的难度和工作量,同时帮助增强了系统的稳定性。
76.实施例1
77.本技术实施例提供一种多路径预警方法,用于对云计算存储中多路径对象的运行故障进行预警,参见图1所示,所述方法,包括:
78.步骤s12、当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
79.在本申实施例中,在接收到预警信息查询命令后或者之前,通过check线程轮训检查路径状态,如果发现多路径对象map中所有的子路径状态失效了,则将map.alarm.map_failed值设置为真(1),而在发现map中有路径状态从坏变好,将该路径对应的map的alarm.map_failed标志设置为0。
80.当check线程轮训检查路各径状态时,发现路径处在震荡将其状态设置为pending状态后,将对应的多路径对象map的alarm对象的jitter标志设置为1,将告警产生记录日志;而当检查到所有的子路径的状态从pending状态变好,检查其他子路径如果都没有pending状态后,说明没有路径处在被过滤震荡的状态解除该告警,即设置map.alarm.jitter为0。
81.当check_path线程轮训检查路径状态时,可逐个检查每个路径所属map下所有子路径的数量是否小于map.total_paths变量,如果小于说明路径丢失,设置map.alarm.path_loss为1,将告警产生记录日志;如果map.alarm.path_loss为1且该map下所有子路径的数量大于map.total_paths变量值,说明有新路径加入,则更新map.total_paths为最新,并设置map.alarm.path_loss为0,将告警解除记录日志;如果map.alarm.path_loss为1且该map下所有子路径的数量等于map.total_paths,说明丢失路径被找回或自动恢复,设置map.alarm.path_loss为0,将告警解除记录日志。
82.当针对至少一个多路径对象map有"path change"、“path remove”和“path add”uevent设备热添加事件时,设置该路径对应map的alarm.backend_change为1;设置map的alarm.backend_chang_time为当前时间;将告警产生记录日志。这个告警只是提示告警,不代表系统一定存在故障。告警解除:该告警为提示信息,记录最近一次的后端存储状态变化触发的uevent事件的时间,无需解除。
83.基于上述已经对alarm对象的各参数值进行赋值,因此,当接收到预警信息查询命令后,可获取到计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
84.步骤s14、根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;
85.在本技术实施例中,在获取到云计算存储中多路径对象map的alarm对象中的参数信息后,便可基于上述赋值原则,确定对应的故障。
86.步骤s16、输出针对所述预警信息查询命令对应的预警信息;所述算机存储对应的map.total_paths变量值用于确定总路径的数量。
87.在本技术实施例中,预警信息的输出格式可以依据实际需求进行设置,如输出发生故障的目标路径的唯一标识及对应的多路径设备的名称,其中,当有多个故障多路径对象时,可以以列表的形式将故障数据项输出并显示。
88.在本技术实施例中,所述预警信息查询命令为“multipathd show alarms”命令、“multipathd show alarm mapfailed”命令、“multipathd show alarm pathfailed”命令、“multipathd show alarm pathloss”命令、“multipathd show alarm pathjitter”命令或“multipathd show alarm backendchange”。可以通过上述六个命令行来方便获取到是否有多路径异常。multipathd show alarms命令显示主机上所有的告警统计信息,若正常显示none。其中,multipathd show alarm mapfailed命令是用于显示主机上所有的失效的多路径对象的信息,若正常显示none。multipathd show alarm pathloss命令是用于显示主机上所有的有路径丢失的多路径对象的信息,若正常显示none。
89.multipathd show alarm pathjitter命令是用于显示主机上所有的有链路震荡的多路径对象的信息,若正常显示none。multipathd show alarm pathfailed命令是用于显示主机上所有的有路径时效的多路径对象的信息,若正常显示none。multipathd show alarm backendchange命令是用于显示主机上所有的有后端存储变动的多路径对象的信息,若正常显示none。其中,显示的多路径对象的信息包括有故障的多路径对象的唯一标识、由于故障被存储至的列表及发生故障的路径对应的设备等信息。
90.在本技术实施例中,若所述预警信息查询命令为“multipathd show alarms”命令,则:获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:获取计算存储中每个多路径对象的alarm.map_failed值、alarm.path_loss值、alarm.path_jitter值、alarm.path_failed值、alarm.backend_change值;
91.根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
92.若计算存储中的任一个多路径对象的alarm.map_failed值为真,则确定对应的预警信息为“路径失效预警信息”,并将alarm.map_failed值为真的多路径对象的唯一标识存储至mapfailed_list列表准中;其中,如果一个所述的map对应的alarm.map_failed值为真,则确定对应的预警信息为“路径失效预警信息”;
93.若计算存储中的任一个多路径对象的alarm.path_loss值为真,则将alarm.path_loss值为真的多路径对象的唯一标识存储至pathloss_list列表中;其中,alarm.path_loss值为真,则确定alarm.path_loss值为真的目标多路径对象对应的预警信息为“路径丢失预警信息”;
94.若计算存储中的任一个多路径对象的alarm.path_jitter值为真,则将alarm.path_jitter值为真的多路径对象的唯一标识存储至pathjitter_list列表中;其中,若alarm.path_jitter值为真,则确定alarm.path_jitter值为真的目标多路径对象对应的预警信息为“路径抖动预警信息”;
95.若计算存储中的任一个多路径对象的alarm.path_failed值为真,则将alarm.path_failed值为真的多路径对象的唯一标识存储至pathfailed_list列表中;其中,若alarm.path_failed值为真,则确定alarm.path_failed值值为真的目标多路径对象对应的预警信息为“路径失效预警信息”;
96.若计算存储中的任一个多路径对象的alarm.backend_change值为真,则将alarm.backend_change值为真的多路径对象的唯一标识存储至backendchange_list列表中;其中,若alarm.backend_change值为真,则确定alarm.backend_change值为真的目标多路径对象对应的预警信息为“路径改变预警信息”;
97.所述输出针对所述预警信息查询命令对应的预警信息,包括:
98.显示在预设时间段内存在更新操作的目标列表,所述目标列表为mapfailed_list列表、pathloss_list列表、pathjitter_list列表、pathfailed_list列表及backendchange_list列表中的至少一个。
99.在本技术实施例中,需要设置相应的输出模块,进而输出当预警信息查询命令为“multipathd show alarms”命令时,查询到的故障多路径对象map信息,作为一个可选实施例,可设置如下命令行代码:
pathfailed”命令,则
127.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
128.遍历获取计算机存储对应的多路径对象的alarm.path_failed值;
129.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
130.若任意一个多路径对象的alarm.path_failed值为真,则将alarm.path_failed值为真的目标多路径对象的唯一标识及多路径设备名称存储至pathfailed_list列表中;
131.所述输出针对所述预警信息查询命令对应的预警信息,包括:
132.输出预设时间内pathfailed_list列表中的更新项。
133.具体的,在本技术实施例中,具体参见图2所示,在check线程轮训检查路径状态时,若发现map中所有的子路径状态失效了,将ap.alarm.map_failed设置为1,将告警产生记录日志。告警解除:当发现map中有路径状态从坏变好,将该路径对应的map的alarm.map_failed标志设置为0,将告警解除记录日志;而针对单个或部分路径map,在check线程轮训检查路径状态时,发现该路径失效了,将该路径所属的map的alarm.path_failed设置为1,将告警产生记录日志。告警解除:当发现路径状态从坏变好,检查是否该路径对应map下的所有子路径状态都是好的,如果都是好的,将map.alarm.path_failed标志和map.alarm.map_failed标志都设置为0,将告警解除记录日志,否则不做额外处理。
134.在本技术实施例中,需要设置相应的输出模块,进而输出当预警信息查询命令为“multipathd show alarm pathfailed”命令时,查询到的故障多路径对象map信息,作为一个可选实施例,可设置如下命令行代码:
135.有告警时输出的设置代码:
136.path failed alarm:2
137.effected maps:map5.wwid(dm-5)map10.wwid(dm-10)
138.level:normal
139.无告警时输出的设置代码:
140.path failed alarm:none
141.在本技术实施例中,若所述预警信息查询命令为“multipathd show alarm pathloss”命令,则
142.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
143.遍历获取计算机存储对应的多路径对象的alarm.path_loss值;
144.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
145.若任意一个多路径对象的alarm.path_loss值为真,则将alarm.path_loss值为真的目标多路径对象的唯一标识及多路径设备名称存储至pathloss_list列表中;
146.所述输出针对所述预警信息查询命令对应的预警信息,包括:
147.输出预设时间内pathloss_list列表中的更新项。具体参见图4所示,告警产生:在check_path线程轮训检查路径状态时,检查该路径所属map下所有子路径的数量是否小于
map.total_paths变量,如果小于说明路径丢失,设置map.alarm.path_loss为1,将告警产生记录日志;告警解除:如果map.alarm.path_loss为1且该map下所有子路径的数量大于map.total_paths说明有新路径加入更新map.total_paths为最新并设置map.alarm.path_loss为0,将告警解除记录日志;如果map.alarm.path_loss为1且该map下所有子路径的数量等于map.total_paths,说明丢失路径被找回或自动恢复,设置map.alarm.path_loss为0,将告警解除记录日志。
148.在本技术实施例中,需要设置相应的输出模块,进而输出当预警信息查询命令为“multipathd show alarm pathloss”命令时,查询到的故障多路径对象map信息,作为一个可选实施例,可设置如下命令行代码:
149.有告警时输出的设置代码:
150.path loss alarm:3
151.effected maps:map1.wwid(dm-5)map2.wwid(dm-10)map9.wwid(dm-9)
152.level:serious;
153.无告警时输出的设置代码:
154.path loss alarm:none7.
155.在本技术实施例中,若所述预警信息查询命令为“multipathd show alarm pathjitter”命令,则
156.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
157.遍历获取计算机存储对应的多路径对象的alarm.path_jitter值;
158.则根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息,包括:
159.若任意一个多路径对象的alarm.path_jitter值为真,则将alarm.path_jitter值为真的目标多路径对象的唯一标识及多路径设备名称存储至pathjitter_list列表中;
160.具体可参见图3所示,需要开启多路径过滤抖动/震荡功能后,在check线程轮训检查路径状态时,发现路径处在震荡时将其状态设置为pending状态后,将对应的多路径对象map的alarm对象的jitter标志设置为1,将告警产生记录日志。告警解除:当检查到所有的子路径的状态从pending状态变好,检查其他子路径如果都没有pending状态后,说明没有路径处在被过滤震荡的状态解除该告警,即设置map.alarm.jitter为0,将告警解除记录日志。
161.所述输出针对所述预警信息查询命令对应的预警信息,包括:
162.输出预设时间内pathjitter_list列表中的更新项。
163.在本技术实施例中,需要设置相应的输出模块,进而输出当预警信息查询命令为“multipathd show alarm pathjitter”命令时,查询到的故障多路径对象map信息,作为一个可选实施例,可设置如下命令行代码:
164.有告警时输出的设置代码:
165.path jitter alarm:1
166.effected maps:map0.wwid(dm-0)
167.level:critical
168.无告警时输出的设置代码:
169.path jitter alarm:none
170.在本技术实施例中,若所述预警信息查询命令为“multipathd show alarm backendchange”命令,则
171.获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息,包括:
172.遍历获取计算机存储对应的多路径对象的alarm.path_jitter值;
173.则根据所述alarm对象中的参数信息和/或计算机存储对应的alarm.backend_change变量值确定相应路径对应的预警信息,包括:
174.若任意一个多路径对象的alarm.path_jitter值为真,则将alarm.backend_change值为真的目标多路径对象的唯一标识及多路径设备名称存储至backendchange_list列表中;
175.所述输出针对所述预警信息查询命令对应的预警信息,包括:
176.输出预设时间内backendchange_list列表中的更新项。
177.具体参见图5所示,告警产生:在check_path线程轮训检查路径状态时,检查该路径所属map下所有子路径的数量是否小于map.total_paths变量,如果小于说明路径丢失,设置map.alarm.path_loss为1,将告警产生记录日志;告警解除:如果map.alarm.path_loss为1且该map下所有子路径的数量大于map.total_paths说明有新路径加入更新map.total_paths为最新并设置map.alarm.path_loss为0,将告警解除记录日志;如果map.alarm.path_loss为1且该map下所有子路径的数量等于map.total_paths,说明丢失路径被找回或自动恢复,设置map.alarm.path_loss为0,将告警解除记录日志。
178.在本技术实施例中,需要设置相应的输出模块,进而输出当预警信息查询命令为“multipathd show alarm backendchange”命令时,查询到的故障多路径对象map信息,作为一个可选实施例,可设置如下命令行代码:
179.有告警时输出的设置代码:
180.backend change alarm:4
181.effected maps:map3.wwid(dm-3)map6.wwid(dm-6)map11.wwid(dm-11)map20.wwid(dm-20)
182.level:info
183.无告警时输出的设置代码:
184.path failed alarm:none
185.在本技术实施例中,参见图6所示,还包括:
186.步骤s10、针对云计算存储中的每个多路径对象map,新增一个alarm对象;首先,为了后续可有效获取相应的属性参数值,针对每个多路径对象map构建一个alarm对象,并为alarm对象内构建多个属性参数,alarm.map_failed属性参数、alarm.path_loss属性参数、alarm.jitter属性参数、alarm.path_filed属性参数、alarm.backend_change属性参数及alarm.backend_change_time属性参数,分别代表路径失效属性、路径丢失属性、路径震荡属性、路径满属性、路径改变属性、路径改变时间属性。
187.步骤s11、根据每个路径的对象的运行状态更新对应的alarm对象中的相应属性
值;
188.其中,alarm对象中包括的属性值为:alarm.map_failed值、alarm.path_loss值、alarm.jitter值、alarm.path_filed值、alarm.backend_change值及alarm.backend_change_time值。
189.在本技术实施例中,为每个多路径对象设定对应的alarm对象之后,便可通过内核将对应状态赋值给alarm对象中的相应属性参数,可以在接收到相应的预警信息查询命令后启动更新,或者每间隔预设时间段实现一次查询及alarm中属性参数的更新。具体的更新时间可以依据实际需求进行设置。
190.综上所述,本技术实施例提供的多路径预警方法,首先,当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;然后,根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;最后,输出针对所述预警信息查询命令对应的预警信息。可以实现针对多路径对象的实际健康情况及时自动获取,无需人为分析日志,省事高效,可及时了解多路径设备的运行状况,为设备高效运行提供可靠保障。
191.图7是本技术一个实施例提供的多路径预警系统的框图,本实施例以该装置应用于图1所示的多路径预警方法为例进行说明。该系统至少包括以下几个模块:
192.获取模块71,用于当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
193.预警信息确定模块72,用于根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;
194.输出模块73,用于输出针对所述预警信息查询命令对应的预警信息。
195.本技术实施例提供的多路径预警系统,可以实现针对多路径对象的实际健康情况及时自动获取,无需人为分析日志,省事高效,可及时了解多路径设备的运行状况,为设备高效运行提供可靠保障。
196.本技术实施例提供的一种多路径预警系统,可用于如上实施例中业务应用系统执行的方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
197.图8是本技术一个实施例提供的一种多路径预警系统的框图,本实施例所述一种多路径预警系统可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算设备,该装置可以包括,但不限于,处理器、存储器。本实施例所述一种多路径预警系统至少包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序可在所述处理器上运行,所述处理器执行所述计算机程序时,实现上述一种多路径预警方法实施例中的步骤。或者,所述处理器执行所述计算机程序时,实现上述一种多路径预警系统实施例中各模块的功能。
198.示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或多个模块被存储在所述存储器中,并由处理器执行,以完成本发明。所述一个或多个模块可以是能够
完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述一种多路径预警系统中的执行过程。例如,所述计算机程序可以被分割成获取模块、预警信息确定模块和输出模块,各模块的具体功能如下:
199.获取模块,用于当接收到预警信息查询命令后,获取计算机存储对应的多路径中与所述查询命令对应的多路径对象的alarm对象中的参数信息和计算机存储对应的map.total_paths变量值;其中,所述alarm对象中的参数信息包括alarm.map_failed值、alarm.path_loss值、alarm.jitter值及alarm.backend_change值;
200.预警信息确定模块,用于根据所述alarm对象中的参数信息和/或计算机存储对应的map.total_paths变量值确定相应路径对应的预警信息;
201.输出模块,用于输出针对所述预警信息查询命令对应的预警信息。
202.处理器可以包括一个或多个处理核心,比如:4核心处理器、6核心处理器等。所述处理器是所述一种多路径预警系统的控制中心,利用各种接口和线路连接一种多路径预警系统的各个部分。
203.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种多路径预警系统的各种功能。此外,存储器可以包括高速随机存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡、闪存卡(flash card)、至少一个磁盘存储器件、内存器件、或其他易失性固态存储器件。
204.本领域技术人员可以理解,本实施例所述的装置仅仅是一种多路径预警系统的示例,并不构成一种多路径预警系统的限定。
205.当然,一种多路径预警系统还可以包括更少或更多的组件,本实施例对此不作限定。
206.可选地,本技术还提供有一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时用于实现上述一种多路径预警方法的步骤。
207.可选地,本技术还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有程序,所述程序由处理器加载并执行以实现上述一种多路径预警方法实施例的步骤。
208.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
209.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1