故障处理的方法、设备和计算机可读存储介质与流程

文档序号:32746491发布日期:2022-12-30 22:24阅读:103来源:国知局
故障处理的方法、设备和计算机可读存储介质与流程

1.本技术涉及ras容错技术领域,特别涉及一种故障处理的方法、设备和计算机可读存储介质。


背景技术:

2.服务器由于需要频繁进行数据处理,随着运行时间的增加,服务器不可避免的会出现故障,如内存故障、处理器故障等。因此,需要对服务器部署底层容错技术(又称为底层可靠性、可用性、可服务性(reliability,availability,serviceability,ras)技术),以对故障进行处理。
3.目前,底层ras技术主要由服务器的固件实现,具体的,底层ras技术的实现可以包括如下处理:芯片检测到故障后,上报中断给固件。然后,固件收集故障信息,如果根据故障信息判断是内存故障,则执行硬编码的内存故障处理策略,如果是处理器故障,则执行硬编码的处理器故障处理策略。
4.在上述底层ras技术中,对于内存故障、处理器故障等均在固件中硬编码了对应的一种故障处理策略。在此情况下,如果要对故障处理策略进行更换,则需要将当前硬编码有故障处理策略的固件进行升级,并重启服务器。然而,在服务器重启时,会导致该服务器的业务中断。


技术实现要素:

5.本技术实施例提供了一种故障处理的方法、设备和计算机可读存储介质,能够解决相关技术中在调整故障处理策略时,由于重启服务器,而导致的业务中断问题,所述技术方案如下:
6.第一方面,提供了一种故障处理的方法,该方法包括:
7.通过固件获取故障信息,向操作系统(operating system,os)发送获取的故障信息。os根据接收到的故障信息,确定待执行故障处理策略,向固件发送对应待执行故障处理策略的执行命令。通过固件接收到对应待执行故障处理策略的执行命令后,执行所述待执行故障处理策略。
8.在本技术实施例所示的方案中,固件为基本输入输出系统(basic input output system,bios)故障信息包括故障位置、故障等级、故障类型等。对于内存故障来说,故障类型包括fifo溢出、超时等。
9.硬件在检测到故障后,将故障信息写入指定的cpu寄存器中。bios在该指定的cpu寄存器中获取故障信息。bios将获取的故障信息上报给os。os根据故障信息,确定待执行故障处理策略。然后,os向bios发送对应该待执行故障处理策略的执行命令。bios接收到待执行故障处理策略对应的执行命令后,向硬件发送对应待执行故障处理策略的执行通知。硬件接收到对应待执行故障处理策略的执行通知后,调用bios的operator模块中的上述待执行故障处理策略对应的代码,以实现故障处理。
10.可见,本技术中固件不再局限于仅可编码一种故障处理策略,而是可以编码有多种故障处理策略,由os决策使用哪种故障处理策略,并指示固件执行该故障处理策略。这样便无需通过升级固件来调整故障处理策略,避免了在调整故障处理策略时,服务器重启导致的业务中断问题的发生。
11.在一种可能的实现方式中,通过固件向os中的高级配置和电源管理接口(advanced configuration and power management interface,acpi)虚拟设备驱动(acpi virtual device driver)发送故障信息,具体的,可以为:固件通过acpi平台错误接口(acpi platform error interfaces,apei)向os中的acpi虚拟设备驱动发送所述故障信息。
12.在本技术实施例所示的方案中,bios中的故障报告模块调用apei,将故障信息上报到os的内核空间(kernel space)中注册的故障通知链。故障通知链通知os的kernel space中的acpi virtual device driver获取故障信息。
13.在一种可能的实现方式中,由os根据故障信息确定故障模式和故障发生不可纠正错误的概率之前,可以按照如下方式获取故障信息:
14.acpi虚拟设备驱动将故障信息存储在目标内存中,os中的设备节点控制器按照预设周期查询目标内存,获取故障信息。
15.在一种可能的实现方式中,os根据故障信息,确定待执行故障处理策略,向固件发送对应所述待执行故障处理策略的执行命令,具体的处理可以为:
16.os中的设备节点控制器根据故障信息,确定待执行故障处理策略,向固件发送对应待执行故障处理策略的执行命令。
17.在一种可能的实现方式中,设备节点控制器根据故障信息,确定待执行故障处理策略的具体处理可以为:
18.设备节点控制器根据故障信息,确定故障模式和故障发生不可纠正错误的概率。再根据故障模式和概率,确定待执行故障处理策略。
19.在本技术实施例所示的方案中,设备节点控制器可以包括采集器、诊断器和决策器。
20.上述设备节点控制器按照预设周期查询目标内存,获取故障信息,具体处理为:设备节点控制器中的诊断器根据智能诊断模型和故障信息,确定故障模式和故障发生不可纠正错误的概率。其中,智能诊断模型可以根据阈值分级算法、森林树算法等机器学习算法构建。在使用之前,智能诊断模型可以预先经过大量的样本进行训练,具体的,一组样本可以包括故障信息、故障信息对应的故障模式和故障信息对应的故障不可纠错概率。
21.以故障信息为内存故障信息为例,故障模式可以包括行故障、列故障等。
22.上述设备节点控制器根据故障模式和概率,确定待执行故障处理策略,具体处理可以为:诊断器将得出的故障模式和故障发生不可纠正错误的概率发送至决策器,决策器根据故障模式和故障发生不可纠正错误的概率,确定待执行故障处理策略。
23.决策器可以根据预先存储的故障模式、故障发生不可纠正错误的概率以及故障处理策略的对应关系,确定当前得到的故障模式和故障发生不可纠正错误的概率对应的待执行故障处理策略。
24.以故障信息为内存故障信息为例,故障处理策略可以包括:内存故障中断的风暴
抑制设置、内存巡检的周期设置、执行镜像(mirror)替换、执行内存rank替换、执行内存bank替换、执行内存颗粒替换、acls(arm cache line sparing)修复内存单元硬失效的一种方法、以及ppr等。
25.在一种可能的实现方式中,os向固件发送对应待执行故障处理策略的执行命令,具体处理可以为:
26.os向acpi虚拟设备发送对应待执行故障处理策略的执行命令。
27.在一种可能的实现方式中,os向acpi虚拟设备发送对应待执行故障处理策略的执行命令,具体处理可以为:
28.决策器调用acpi虚拟设备驱动中封装的待执行故障处理策略对应的目标接口,通过目标接口向acpi虚拟设备发送对应待执行故障处理策略的执行命令。
29.在本技术实施例所示的方案中,目标接口属于acpi virtual device driver中封装的acpidsm接口。acpi dsm接口与内存故障的各故障处理策略对应。
30.第二方面,提供了一种故障处理的设备,所述设备包括处理器和存储器,所述存储器中存储有os和固件对应的多个程序,所述多个程序被处理器读取并执行,以实现如上述第一方面所述的故障处理方法。
31.第三方面,提供了一种故障处理的装置,所述装置包括:
32.获取模块,用于通过固件获取故障信息,并且向操作系统os发送所述故障信息;
33.发送模块,用于由所述os根据所述故障信息确定待执行故障处理策略,并且向所述固件发送对应所述待执行故障处理策略的执行命令;
34.执行模块,用于通过所述固件执行所述待执行故障处理策略。
35.在一种可能的实现方式中,所述获取模块,用于:
36.通过固件调用acpi平台错误接口apei向os中的acpi虚拟设备驱动发送所述故障信息。
37.在一种可能的实现方式中,所述获取模块,还用于:
38.通过所述acpi虚拟设备驱动将所述故障信息记录在目标内存中;
39.由所述os中的设备节点控制器按照预设周期查询所述目标内存,获取所述故障信息。
40.在一种可能的实现方式中,所述发送模块,用于:
41.由所述设备节点控制器根据所述故障信息确定待执行故障处理策略,并且向所述固件发送对应所述待执行故障处理策略的执行命令。
42.在一种可能的实现方式中,所述发送模块,用于:
43.由所述设备节点控制器根据所述故障信息确定故障模式和故障发生不可纠正错误的概率,并且根据所述故障模式和所述概率,确定待执行故障处理策略。
44.在一种可能的实现方式中,所述发送模块,用于:
45.向所述acpi虚拟设备发送对应所述待执行故障处理策略的执行命令。
46.在一种可能的实现方式中,所述发送模块,用于:
47.调用所述acpi虚拟设备驱动中封装的所述待执行故障处理策略对应的目标接口,通过所述目标接口向所述acpi虚拟设备发送对应所述待执行故障处理策略的执行命令。
48.在一种可能的实现方式中,所述固件为基本输入输出系统bios。
49.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有os和固件分别对应的多个程序,所述多个程序用于被处理器读取并执行以实现如上第一方面所述的故障处理的方法。
50.本技术实施例提供的技术方案带来的有益效果是:
51.本技术实施例中,固件获取故障信息后,向os上报故障信息。os根据故障信息,确定待执行故障处理策略。然后,os向固件发送对应该待执行故障处理策略的执行命令。最后,固件根据执行命令,执行相应的待执行故障处理策略即可。可见,本技术中固件不再局限于仅可编码一种故障处理策略,而是可以编码有多种故障处理策略,由os决策使用哪种故障处理策略,并指示固件执行该故障处理策略。这样便无需通过升级固件来调整故障处理策略,避免了在调整故障处理策略时,服务器重启导致的业务中断问题的发生。
附图说明
52.图1是本技术实施例提供的一种服务器的架构示意图;
53.图2是本技术实施例提供的一种故障处理方法架构的对比图;
54.图3是本技术实施例提供的一种故障处理架构图;
55.图4是本技术实施例提供的一种故障处理的方法流程图;
56.图5是本技术实施例提供的一种故障处理架构图;
57.图6是本技术实施例提供的一种故障处理的方法流程图;
58.图7是本技术实施例提供的一种故障处理的装置的结构示意图;
59.图8是本技术实施例提供的一种设备的结构示意图。
具体实施方式
60.本技术实施例提供了一种故障处理的方法,该方法可以应用于服务器、存储系统、计算机等。在该方法中,由操作系统(operation system,os)实现故障处理策略的选择决策,并指示固件执行选择决策出的故障处理策略,从而完成故障的底层容错处理。
61.参见图1,示出了本技术实施例提供的一种服务器的架构图。
62.在图1所示的服务器中,包括处理器110、内存120、桥片130、存储控制器140、硬盘150、闪存160、网卡170、显卡180、基板控制器(baseboard management controller,bmc)190。其中,处理器110可以检测服务器故障,如内存故障、处理器故障等。闪存160可以存储bios。硬盘150可以存储os。内存120可以存储故障信息。
63.处理器110通过桥片130扩展多种接口。例如,通过桥片130扩展串行外设接口(serial peripheral interface,spi)连接闪存。通过桥片扩展高速串行计算机扩展总线(peripheral component interconnect express,pcie)接口、异步串口等连接bmc。通过桥片130扩展pcie接口连接网卡。bmc与管理网口连接,网卡与业务网口连接。此外,处理器110还可以通过桥片提供通用串行总线(universal serial bus,usb)。
64.为了更清楚的了解本技术实施例提供的故障处理方法与相关技术中故障的底层容错方法的区别,下面结合附图2对二者的分别进行说明。
65.图2中的左图示出了相关技术中故障的底层容错方法。在该左图中,固件采集故障信息,然后,执行硬编码在固件中的指定故障处理策略,实现故障的底层容错。此外,固件也
可以将故障信息上报到os,os根据故障信息进行软件层面的故障软处理。
66.图2中的右图示出了本技术实施例提供了故障处理方法。在该右图中,固件采集故障信息,然后,向os上报故障信息。os获取到故障信息后,根据故障信息决策出相应的故障处理策略,并指示固件执行该故障处理策略。此外,os在获取到故障信息后,还可以根据故障信息进行软件层面的故障软处理。
67.下面结合图3所示的故障处理架构图,对本技术实施例提供的故障处理方法进行简要说明。
68.硬件(hardware)检测到故障后,向固件(firmware)上报故障信息。具体的,故障可以为内存故障、处理器故障等。硬件可以为x86架构的处理器,也可以为进阶精简指令集机器(advanced risc machine,arm)架构的处理器。
69.固件通过apei接口向os上报故障信息,由os的用户空间(user space)中的自适应ras管理层(adaptive ras orchestration)获取故障信息。其中,自适应ras管理层仅为一种示例性名称,还可以称为故障管理模块等,其实质是一个软件模块,本技术实施例中对其具体名称不做限定。
70.然后,自适应ras管理层根据故障信息,确定出故障处理策略,并向os的内核空间(kernel space)中的ras节点驱动(ras node driver)发送对应上述确定出的故障处理策略的执行命令。ras节点驱动通过适应驱动(adaptation driver)将执行命令下发至固件中的固件节点(firmware node,fw node)。其中,适应驱动在此处起到的作用为执行命令中转,使得经过中转后的执行命令可以被固件节点接收并解析。
71.固件节点接收到执行命令后指示硬件调用fw ras核心(fw ras core)中相应的代码执行故障处理策略。
72.需要说明的是,上述ras节点驱动、适应驱动、固件节点以及fw ras核心均为一种示例性名称,其本质均是软件模块,还可以有其他名称,本技术实施例对其名称不做限定。
73.图4示出了本技术实施例提供的故障处理的方法流程图。参见图4,该方法可以包括如下步骤:
74.步骤301、固件获取故障信息。
75.其中,固件为基本输入输出系统(basic input output system,bios)故障信息包括故障位置、故障等级、故障类型等。对于内存故障来说,故障类型包括fifo溢出、超时等。
76.在实施中,中央处理器(central processing unit,cpu)在检测出内存、cpu等发生故障时,生成故障信息,并将故障信息写入指定的cpu寄存器中。然后,cpu向固件发送中断信号。固件接收到cpu发送的中断信号后,从指定的cpu寄存器中获取故障信息。
77.具体的,参见图5所示的故障处理架构图。固件在获取故障信息的处理可以如下:
78.固件中的故障报告(error report)模块从指定的cpu寄存器中获取故障信息。
79.此外需要说明的是,cpu属于图5中硬件的一部分,具体的,cpu可以为x86架构的处理器,也可以为arm架构的处理器。
80.步骤302、固件向os发送故障信息。
81.在实施中,固件在获取到故障信息后,可以将故障信息上报给os。
82.具体的,参见图5所示的故障处理架构图。固件上报故障信息给os的处理可以如下:
83.故障报告模块调用apei,将故障信息上报到os的内核空间(kernel space)中注册的故障通知链(即图5中的apei driver)。
84.然后,故障通知链通知os的kernel space中的acpi虚拟设备驱动(acpi virtual device driver)获取故障信息。
85.acpi virtual device driver获取故障信息,并将故障信息记录在指定内存中。os的用户空间(user space)中的设备节点控制器(device node controller)轮询上述指定内存,获取故障信息。
86.设备节点控制器可以包括采集器、诊断器和决策器。设备节点控制器轮询指定内存获取故障信息的处理具体可以为:采集器轮询指定内存获取故障信息。
87.需要说明的是,图5中的acpi virtual device driver相当于图3中的ras node driver和adaptation driver的组合。图5中的device node controller相当于图3中的adaptive ras orchestration。
88.下面对于acpi virtual device driver和故障通知链的进行说明:
89.在执行步骤301之前,固件中可以集成acpi虚拟设备(acpi virtual device),并向os上报acpi virtual device。进而,os的kernel space可以为该acpi virtual device创建acpi virtual device driver。然后,acpi virtual device driver注册故障通知链(notification chain)。
90.其中,acpi virtual device driver的至少包括如下作用:
91.注册故障通知链、封装acpi特定于设备的方法(acpi device specific method,acpidsm)接口并将接口提供给device node controller。
92.步骤303、os根据故障信息,确定待执行故障处理策略。
93.在实施中,device node controller中的采集器向诊断器发送故障信息,诊断器根据智能诊断模型确定对应的故障模式和故障发生不可纠正错误的概率。
94.以故障信息为内存故障信息为例,故障模式可以包括行故障、列故障等。
95.以故障信息为cpu故障信息为例,故障模式可以包括核内高速存储器(cache)失效、逻辑执行单元故障等。
96.需要说明的是,上述智能诊断模型可以根据阈值分级算法、森林树算法等机器学习算法构建。在使用之前,智能诊断模型可以预先经过大量的样本进行训练,具体的,一组样本可以包括故障信息、故障信息对应的故障模式和故障信息对应的故障不可纠错概率。
97.诊断器将得出的故障模式和故障发生不可纠正错误的概率发送至决策器,决策器根据故障模式和故障发生不可纠正错误的概率,确定待执行故障处理策略。
98.例如,决策器可以根据预先存储的故障模式、故障发生不可纠正错误的概率以及故障处理策略的对应关系,确定当前得到的故障模式和故障发生不可纠正错误的概率对应的待执行故障处理策略。以内存故障为例,当故障模式为行故障且故障发生不可纠正错误的概率大于预设阈值,则确定待执行故障处理策略为ppr(post package repair)方法,该方法为修复内存row错误的一种方法。
99.以故障信息为内存故障信息为例,故障处理策略可以包括:内存故障中断的风暴抑制设置、内存巡检的周期设置、执行镜像(mirror)替换、执行内存rank替换、执行内存bank替换、执行内存颗粒替换、acls(arm cache line sparing)修复内存单元硬失效的一
种方法、以及ppr等。
100.步骤304、os向固件发送对应待执行故障处理策略的执行命令。
101.在实施中,决策器调用acpi virtual device driver中封装的待执行故障处理策略对应的目标接口,通过该目标接口向acpi virtual device发送执行命令。其中,目标接口属于acpi virtual device driver中封装的acpi dsm接口。
102.如下表1所示,acpi dsm接口与内存故障的各故障处理策略的对应关系。
103.表1
[0104][0105]
步骤305、固件执行待执行故障处理策略。
[0106]
在实施中,acpi virtual device接收到待执行故障处理策略对应的执行命令后,向cpu发送对应待执行故障处理策略的执行通知。cpu接收到对应待执行故障处理策略的执行通知后,调用固件的operator模块中的上述待执行故障处理策略对应的代码,以实现故障处理。
[0107]
具体的,如果cpu为x86架构的处理器,那么,acpi virtual device可以通过系统管理中断(system management interrupt,smi)向待执行故障处理策略的执行通知。
[0108]
如果cpu为arm架构的处理器,那么,acpi virtual device可以通过串行外设接口(serial peripheral interface,spi)或者系统控制和管理接口(system control and management interface,scmi)向待执行故障处理策略的执行通知。
[0109]
本技术实施例中,固件获取故障信息后,向os上报故障信息。os根据故障信息,确定待执行故障处理策略。然后,os向固件发送对应该待执行故障处理策略的执行命令。最后,固件根据执行命令,执行相应的待执行故障处理策略即可。可见,本技术中固件不再局限于仅可编码一种故障处理策略,而是可以编码有多种故障处理策略,由os决策使用哪种故障处理策略,并指示固件执行该故障处理策略。这样便无需通过升级固件来调整故障处理策略,避免了在调整故障处理策略时,服务器重启导致的业务中断问题的发生。
[0110]
下面结合图6所示的故障处理的方法流程图,对本技术实施例提供的故障处理的方法在如图5所示的故障处理架构下的处理流程进行说明。
[0111]
步骤501、硬件检测故障,获取故障信息,并将故障信息写入指定的cpu寄存器中。
[0112]
步骤502、硬件向固件发送中断信号。
[0113]
在实施中,硬件在将故障信息写入指定的cpu寄存器后,可以向固件发送中断信
号。
[0114]
步骤503、固件在指定的cpu寄存器中读取故障信息。
[0115]
在实施中,固件接收到硬件发送的中断信号后,在指定的cpu寄存器中读取故障信息。
[0116]
步骤504、固件调用apei向apei driver发送故障信息。
[0117]
在实施中,固件在指定的cpu寄存器中读取到故障信息后,调用apei向apei driver发送故障信息。
[0118]
步骤505、apei driver通知acpi virtual device driver获取故障信息。
[0119]
在实施中,apei driver接收到故障信息后,通知acpi virtual device driver获取故障信息。
[0120]
步骤506、acpi virtual device driver将故障信息记录在指定内存中。
[0121]
在实施中,acpi virtual device driver在获取到故障信息后,将故障信息写入指定内存中。
[0122]
步骤507、device node controller中的采集器轮询上述指定内存,获取故障信息。
[0123]
在实施中,device node controller中的采集器按照预设周期查询指定内存,在故障信息写入该指定内存的情况下,采集器即可在某个周期内获取到故障信息。
[0124]
步骤508、采集器向device node controller中的诊断器发送故障信息。
[0125]
在实施汇总,采集器在获取到故障信息后,将故障信息发送给device node controller中的诊断器。
[0126]
步骤509、诊断器根据故障信息,确定对应的故障模式和故障发生不可纠正错误的概率。
[0127]
在实施中,诊断器获取到故障信息后,将故障信息输入智能诊断模型中,智能诊断模型输出对应的故障模式和故障发生不可纠正错误的概率。
[0128]
步骤510、诊断器向device node controller中的决策器发送故障模式和故障发生不可纠正错误的概率。
[0129]
在实施中,诊断器在得到故障模式和故障发生不可纠正错误的概率后,将故障模式和故障发生不可纠正错误的概率发送给device node controller中的决策器。
[0130]
步骤511、决策器根据故障模式和故障发生不可纠正错误的概率,确定待执行故障处理策略。
[0131]
在实施中,决策器根据预先存储的故障模式、故障发生不可纠正错误的概率以及故障处理策略的对应关系,确定当前得到的故障模式和故障发生不可纠正错误的概率对应的待执行故障处理策略。
[0132]
步骤512、决策器调用acpi virtual device driver中封装的待执行故障处理策略对应的目标接口。
[0133]
在实施中,在确定出待执行故障处理策略后,决策器调用acpi virtual device driver中封装的待执行故障处理策略对应的目标接口。
[0134]
步骤513、acpi virtual device driver通过该目标接口向acpi virtual device发送执行命令。
[0135]
步骤514、acpi virtual device向硬件发送对应待执行故障处理策略的执行通知。
[0136]
在实施中,如果硬件为x86架构的处理器,那么,acpi virtual device可以通过smi向待执行故障处理策略的执行通知。
[0137]
如果硬件为arm架构的处理器,那么,acpi virtual device可以通过spi或者scmi向待执行故障处理策略的执行通知。
[0138]
步骤515、硬件调用固件的operator模块中的上述待执行故障处理策略对应的代码,实现故障处理。
[0139]
需要说明的是,在步骤501到步骤515中的各模块的具体处理与上述步骤301到305中相应的模块的具体处理相同,在此不再赘述。
[0140]
本技术实施例中,固件获取故障信息后,向os上报故障信息。os根据故障信息,确定待执行故障处理策略。然后,os向固件发送对应该待执行故障处理策略的执行命令。最后,固件根据执行命令,执行相应的待执行故障处理策略即可。可见,本技术中固件不再局限于仅可编码一种故障处理策略,而是可以编码有多种故障处理策略,由os决策使用哪种故障处理策略,并指示固件执行该故障处理策略。这样便无需通过升级固件来调整故障处理策略,避免了在调整故障处理策略时,服务器重启导致的业务中断问题的发生。
[0141]
基于相同的技术构思,本技术实施例还提供了一种故障处理的装置,如图7所示,该装置包括:
[0142]
获取模块710,用于通过固件获取故障信息,并且向操作系统os发送所述故障信息,具体可以实现上述步骤301和步骤302中的获取及发送功能,以及其他隐含步骤;
[0143]
发送模块720,用于由所述os根据所述故障信息确定待执行故障处理策略,并且向所述固件发送对应所述待执行故障处理策略的执行命令,具体可以实现上述步骤303和步骤304中的确定以及发送的功能,以及其他隐含步骤;
[0144]
执行模块730,用于通过所述固件执行所述待执行故障处理策略,具体可以实现上述步骤305中的执行功能,以及其他隐含步骤。
[0145]
在一种可能的实现方式中,所述获取模块,用于:
[0146]
通过固件调用acpi平台错误接口apei向os中的acpi虚拟设备驱动发送所述故障信息。
[0147]
在一种可能的实现方式中,所述获取模块710,还用于:
[0148]
通过所述acpi虚拟设备驱动将所述故障信息记录在目标内存中;
[0149]
由所述os中的设备节点控制器按照预设周期查询所述目标内存,获取所述故障信息。
[0150]
在一种可能的实现方式中,所述发送模块720,用于:
[0151]
由所述设备节点控制器根据所述故障信息确定待执行故障处理策略,并且向所述固件发送对应所述待执行故障处理策略的执行命令。
[0152]
在一种可能的实现方式中,所述发送模块720,用于:
[0153]
由所述设备节点控制器根据所述故障信息确定故障模式和故障发生不可纠正错误的概率,并且根据所述故障模式和所述概率,确定待执行故障处理策略。
[0154]
在一种可能的实现方式中,所述发送模块720,用于:
[0155]
向所述acpi虚拟设备发送对应所述待执行故障处理策略的执行命令。
[0156]
在一种可能的实现方式中,所述发送模块720,用于:
[0157]
调用所述acpi虚拟设备驱动中封装的所述待执行故障处理策略对应的目标接口,通过所述目标接口向所述acpi虚拟设备发送对应所述待执行故障处理策略的执行命令。
[0158]
在一种可能的实现方式中,所述固件为基本输入输出系统bios。
[0159]
本技术实施例中,固件获取故障信息后,向os上报故障信息。os根据故障信息,确定待执行故障处理策略。然后,os向固件发送对应该待执行故障处理策略的执行命令。最后,固件根据执行命令,执行相应的待执行故障处理策略即可。可见,本技术中固件不再局限于仅可编码一种故障处理策略,而是可以编码有多种故障处理策略,由os决策使用哪种故障处理策略,并指示固件执行该故障处理策略。这样便无需通过升级固件来调整故障处理策略,避免了在调整故障处理策略时,服务器重启导致的业务中断问题的发生。
[0160]
需要说明的是:上述实施例提供的故障处理的装置在进行故障处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的故障处理的装置与故障处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0161]
参见图8,本技术实施例提供了一种设备600示意图。该设备600可以为计算机、服务器等。该设备600包括至少一个处理器601,内部连接602,存储器603。
[0162]
在一种可能的实现方式中,上述处理器601可以是一个通用中央处理器(central processing unit,cpu),网络处理器(network processor,np),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
[0163]
上述内部连接602可包括一通路,在上述组件之间传送信息。可选的,内部连接602为单板或总线等。
[0164]
上述存储器603可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
[0165]
其中,存储器603用于存储执行本技术方案的程序代码,并由处理器601来控制执行。处理器601用于执行存储器603中存储的应用程序代码,从而使得该设备600实现本技术中的功能。
[0166]
在具体实现中,作为一种实施例,处理器601可以包括一个或多个cpu,例如图8中的cpu0和cpu1。
[0167]
在具体实现中,作为一种实施例,该设备600可以包括多个处理器。这些处理器中
的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0168]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在设备上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是设备能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digital video disk,dvd)等),或者半导体介质(如固态硬盘等)。
[0169]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0170]
以上所述仅为本发明一个实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1