本发明属于电力交换机,更具体地,涉及一种电力交换机故障日志记录方法。
背景技术:
1、电力交换机在运行过程中,难免会因为内部的缺陷或外部因素的改变导致系统运行出现异常,情况严重时甚至会导致系统出现停止服务、宕机等情况。基于此,为了让系统信息能够重新运行,许多产品都会有看门狗(当系统宕机后由硬件电路触发系统重启)机制,同时为了快速排查故障原因,也会设计相应的普通应用log日志记录功能或系统崩溃kdump日志功能。
2、硬件看门狗方法能够让系统在异常后快速重启并重新为用户进行服务,但不能为技术人员提供故障或异常时的原始数据;普通应用的log日志记录功能由于需要内核或者应用程序驱动,只能够在运行正常时记录相关信息,在内核或者应用异常时,无法继续完成相关的记录操作;系统崩溃时专门kdump日志功能通过已崩溃主内核的panic以kexec的方式对备用内核(也称捕获内核)进行触发,在备用内核中完成主内核栈信息和内存数据的捕获,因此kdump日志功能需要主内核支持且需要额外的内存对备用内核代码进行存储,不适用于内存资源较少的电力交换机系统。
技术实现思路
1、为解决现有技术中存在的不足,本发明提供一种电力交换机故障记录方法,克服普通应用的日志记录和基于kdump的日志记录功能的不足。
2、本发明采用如下的技术方案。本发明第一方面提供了一种电力交换机故障日志记录方法,包括以下步骤:
3、步骤1,初始化所述故障日志记录方法,包括:初始化基于软件看门狗的故障信息记录流程和基于cpu异常中断机制的故障信息记录流程,在应用程序发生故障的情况下,执行步骤2;在内核发生故障的情况下,执行步骤3;
4、步骤2,步骤1中内核启动应用程序和软件看门狗程序后,当软件看门狗检测到应用程序的故障且无法运行或其无法处理时,启动记录流程,基于软件看门狗记录应用程序的故障信息;
5、步骤3,步骤1中系统启动内核后,当内核出现相应致命错误并导致自身无法正常运行时,cpu的异常中断程序将会被执行,启动记录流程,基于cpu的异常中断机制记录内核的故障信息。
6、优选地,步骤1包括:
7、步骤1.1,内核故障日志程序注册至cpu异常中断程序;
8、步骤1.2,内核异常与cpu异常中断绑定;
9、步骤1.3,使能cpu的异常中断;
10、步骤1.4,启动内核;
11、步骤1.5,应用故障日志程序注册至软件看门狗;
12、步骤1.6,应用故障与软件看门狗绑定;
13、步骤1.7,启动软件看门狗;
14、步骤1.8,启动应用程序。
15、优选地,步骤2中,软件看门狗通过内核的进程管理信息收集应用程序的状态信息,包括:应用的内存,寄存器状态,堆栈指针和内存管理。
16、优选地,步骤2包括:
17、步骤2.1,软件看门狗启动:由于应用程序故障,其无法正常继续完成喂狗操作,软件看门狗因为设定时间未能获取到喂狗命令,自动进行触发;
18、步骤2.2,软件看门狗获取应用信息:软件看门狗在此时内核工作正常的情况下,通过内核提供的进程管理、内存管理、进程间通信管理,获取此时应用的状态信息以及对应的栈信息;
19、步骤2.3,软件看门狗对故障信息进行存储:软件看门狗通过已有驱动接口或通信接口,将故障信息存放至指定的信息系统内部的故障信息存储器件中;
20、步骤2.4,软件看门狗启动后续故障处理策略。
21、优选地,步骤2中,当软件看门狗通过内核的进程管理信息收集应用程序的状态信息后,通过内核通信机制或驱动接口,将应用程序的状态信息存放到文件系统、或将状态信息存放在本地的非易失性硬件、或将状态信息存放于其他信息系统中。
22、优选地,步骤3中,当cpu的异常中断程序被触发时,通过各项寄存器的数据获取当前内核的栈信息,并将其存放在指定的ram安全区域中。
23、优选地,步骤3包括:
24、步骤3.1,cpu异常中断启动:用于内核的异常故障,使得cpu无法正常继续完成后续作业,cpu按照初始化阶段设定的中断策略跳转至异常中断程序;
25、步骤3.2,异常中断程序保存当前的栈信息:cpu异常中断程序通过直接访问寄存器的方式获取当前内核栈信息;
26、步骤3.3,异常中断程序存储栈信息:此时内核处于失控状态,大部分软件资源和硬件资源均无法正常访问,异常中断程序将故障信息存放在内存安全区中。
27、步骤3.4,启动内核故障处理策略。
28、进一步优选地,步骤3.3中,当内存安全区空间不足时,采用先进先出对故障信息进行滚动存储,包括:
29、步骤a.1,按照先进先出的原则,根据新的故障信息数据量,等量删除最早的故障信息;
30、步骤a.2,将信息的故障信息写入到内存安全区中。
31、进一步优选地,所述故障日志记录方法还包括:
32、在系统重启后,故障记录程序会及时将内存安全区域的故障进行转存储,其步骤如下:
33、步骤b.1,系统重启后,内核在确认系统已经正常的情况下,从内存安全区域读取内核的故障日志;
34、步骤b.2,并将其存放到信息系统内部的故障信息存储器件中。
35、本发明的第二方面提供一种电力交换机,运行上述的故障日志记录方法,包括:电源、看门狗模块、cpu和内存。
36、所述内存用于存储信息系统的代码,并在内核崩溃时,用于内核的故障信息存储;
37、所述cpu用于信息系统所需的代码的运行,并在内核出现故障时自动触发cpu异常中断,并运行内存芯片的内核故障日志程序;
38、看门狗模块用作系统复位信号源,同时用于产生软件看门狗的触发信号。
39、与现有技术相比,本发明的有益效果至少包括:通过本发明所述的故障记录方法,电力交换机可在不使用额外内存加载备用内核的情况下,完成对信息系统故障甚至崩溃时的系统状态信息进行记录。当需要排查故障时,技术人员可获取更多电力交换机系统故障信息,进而快速锁定系统问题并进行妥善处理。
1.一种电力交换机故障日志记录方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
3.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
4.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
5.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
6.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
7.如权利要求1所述的一种电力交换机故障日志记录方法,其特征在于:
8.如权利要求7所述的一种电力交换机故障日志记录方法,其特征在于:
9.如权利要求7所述的一种电力交换机故障日志记录方法,其特征在于:
10.一种电力交换机,运行如权利要求1至9中任一项所述的故障日志记录方法,包括:电源、看门狗模块、cpu和内存;其特征在于: