备份通信方法和装置与流程

文档序号:12828872阅读:268来源:国知局
备份通信方法和装置与流程
本公开的实施例总体上涉及通信技术,更具体地涉及处理器与基板管理器之间的备份通信方法和装置。
背景技术
:基板管理控制器(bmc)通常通过管理接口(例如,智能平台管理接口(ipmi))与主机设备中的处理器进行通信,其中该ipmi例如是键盘控制方式(kcs)、基于i2c的智能平台管理总线(ipmb)、基于局域网(lan)的ipmb、外设组件互连(pci)等,其中kcs接口能够使得bmc与处理器直接连接,因而kcs接口是最适合的管理接口。在现有的系统中,一般通过单个低引脚数(lpc)总线来实现bmc与处理器之间的kcs接口。通常,处理器能够通过ipmi与bmc进行通信以收集温度传感器、系统冷却状态等信息。然而,对于处理器和bmc来说,现有的ipmi规范不能检测系统的ipmi的通信状态。例如,在处理器和bmc均能正常工作而kcs接口发生故障时,ipmi规范没有提供如何针对这种故障的检测和处理方式。在现有的系统中,在基于ipmi的通信方式发生故障时,通常通过重置信道或者重启电源来恢复处理器与bmc之间的通信。然而,由于ipmi通信已经中断,处理器可能无法向bmc发送重置信道或者重启电源的命令。此外,在现有的系统中,bmc无法向处理器请求相关服务,并且在ipmi通信发生故障时,处理器无法及时获得bmc的相关日志。因此,现有的重启电源的方式增加了系统的宕机时间,严重了影响了系统的稳定性和用户体验。技术实现要素:有鉴于此,本公开的实施例提供一种处理器与基板管理器之间的备份通信方法和装置。根据本公开的一个方面,提供了一种备份通信方法,包括:监视处理器与基板管理控制器之间的管理接口是否发生故障;响应于该管理接口发生故障,利用控制接口实现该处理器与该基板管理控制器之间的备份通信,其中该基板管理控制器能够通过该控制接口获取该处理器的物理参数;以及经由该控制接口在该处理器与该基板管理控制器之间传输分组。根据本公开的另一个方面,提供了备份通信装置,包括:监视装置,用于监视处理器与基板管理控制器之间的管理接口是否发生故障;响应装置,用于响应于该管理接口发生故障,利用控制接口实现该处理器与该基板管理控制器之间的备份通信,其中该基板管理控制器能够通过该控制接口获取该处理器的物理参数;以及传输装置,用于经由该控制接口在该处理器与该基板管理控制器之间传输分组。根据本公开的又一个方面,提供了一种备份通信装置,包括:存储器;处理器,该处理器被配置为:监视处理器与基板管理控制器之间的管理接口是否发生故障;响应于该管理接口发生故障,利用控制接口实现该处理器与该基板管理控制器之间的备份通信,其中该基板管理控制器能够通过该控制接口获取该处理器的物理参数;以及经由该控制接口在该处理器与该基板管理控制器之间传输分组。根据本公开的各个实施例,可以带来以下技术效果中的至少一种:在处理器与bmc之间的管理接口(例如ipmi)发生故障的情况下,利用控制接口(例如peci)实现处理器与bmc之间的备份通信,从而保证处理器与bmc之间的双向备份通信,并且使得bmc能够自恢复,同时还能获得bmc的日志以用于后续分析,从而能够减少系统的宕机时间并且提高日志的分析效率。附图说明结合附图并参考以下详细说明,本公开的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开的若干实施例。在附图中:图1图示了根据本公开的实施例的备份通信方法100的流程图;图2图示了根据本公开的实施例的备份通信层级图200;图3图示了根据本公开的实施例的使用两个寄存器作为消息存储器的示图300;图4图示了根据本公开的实施例的处理器与bmc之间的备份通信流程图400;图5图示了根据本公开的实施例的使用消息存储器来监视故障消息的通信流程图500;图6图示了根据本公开的实施例的重试ipmi命令的流程图600;图7图示了根据本公开的实施例的bmc的ipmi通道后台程序的工作流程图700;图8图示了根据本公开的实施例的获取bmc的文件的流程图800;图9图示了根据本公开的实施例的备份通信装置900的框图;以及图10图示了可以在其中实现根据本公开的模拟方法的计算机设备1000的框图。具体实施方式以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图图示了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有 时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一个实施例”、“又一个实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。图1图示了根据本公开的实施例的备份通信方法100的流程图,在步骤102处,监视处理器与基板管理控制器(bmc)之间的管理接口是否发生故障。可选地,该管理接口可以是智能平台管理接口(ipmi),ipmi是智能型平台管理接口(intelligentplatformmanagementinterface)的缩写,是管理各种系统中所使用的外围设备的一种工业标准。ipmi是一种开放标准的硬件管理接口规格,其能够独立地检测与其连接的硬件的状态,例如,可以用来监视服务器的物理健康特征,诸如温度、电压、电源状态等。在正常的通信条件下,处理器与bmc之间通过ipmi进行通信。在一个实施例中,监视处理器与基板管理控制器之间的管理接口是否发生故障包括:监视该处理器与所述基板管理控制器之间的该管理接口的通信间隔时间是否超过阈值时间。也就是说,当处理器与bmc之间的ipmi通信时间间隔过长,则说明ipmi通信可能发生故障,因此,可以基于阈值时间来判断ipmi通信是否发生故障,可选地,该阈值时间可以设置为50毫秒。方法100继续进行到步骤104,响应于该管理接口发生故障,利用控制接口实现该处理器与基板管理控制器之间的备份通信,其中基板管理控制器能够通过控制接口获取处理器的物理参数(例如,处理器的温度)。可选地,该控制接口可以是平台环境式控制接口(peci)。平台环境式控制接口(peci)是由intel公司提出的一种标准总线接口, 是存在于处理器与其他芯片或系统稳定性监控设备(例如,bmc)之间的专用单线型总线。peci默认用于在处理器发生内部错误时由其他芯片或系统(如bmc)转储寄存器,这些寄存器包括pci配置寄存器。由于其足够稳定,因而可以用作备用通信接口。一些pci配置寄存器被处理器保留,并且不会被韧体和操作系统用到,处理器自身总可以通过pci配置访问来访问这些寄存器,因此只要在处理器与bmc之间实现peci连接,bmc也可以通过peci总线读取和访问这些寄存器。因此,当处理器与bmc之间的ipmi发生故障时,可以使用peci实现处理器与bmc之间的备份通信。也就是说,当ipmi通信发生故障时,peci接口将用于保证处理器与bmc之间的备份通信。在一个实施例中,该备份通信是双向通信,并且该备份通信中的分组包括通信类型码、功能码和响应码,其中通信类型码表示该备份通信的类型,功能码表示要启动的功能,响应码表示通信的响应情况。为了设计统一的通信分组格式,备份通信中的通信分组至少包括通信类型码、功能码和响应码。备选地,通信分组还包括保留位。例如,如下表所示,在处理器与bmc之间的基于peci的通信分组可以包括32个比特,其中类型码、功能码、响应码和保留位各自包括8个比特。类型码功能码响应码保留位在一个实施例中,备份通信类型例如包括以下四种:处理器向bmc发送请求,bmc向处理器发送请求,处理器响应bmc的请求以及bmc响应处理器的请求。例如,使用两个比特(例如,分组中的第24和25位)来表示以上四种备份通信类型。在备份通信期间,处理器与bmc提供一些启动功能,其中功能码表示要启动的功能,要启动的功能包括但不限于:触发bmc的自恢复、重试基于ipmi的通信、请求处理器的服务、以及获得bmc的日志。根据功能码可以实现和标识上层服务,并且由于peci规范已经实现帧校验序列,因此在分组的格式中不需要错误检测与恢复。例如,在下表中,通过4个比特表示主功能码,通过另外的4个比特表示子功能码。要启动的功能主功能码(第20-23位)子功能码(第16-19位)自恢复bmc0000随着恢复方法而不同重试ipmi命令0001随着bmc的组件而不同请求处理器的服务0010随着服务类型而不同获得bmc的服务0011随着bmc的日志文件而不同在一个实施例中,步骤104,响应于管理接口发生故障,利用控制接口实现处理器与该基板管理控制器之间的备份通信包括:当管理接口发生故障时,处理器向设置在该处理器上的消息存储器发送故障消息,并且基板管理控制器监视消息存储器中是否具故障消息。例如,消息存储器可以是信箱,可选地,可以设置两个信箱,分别仅供处理器和bmc写入。方法100继续进行到步骤106,经由控制接口在处理器与基板管理控制器之间传输分组。在一个实施例中,可以经由控制接口从处理器向基板管理控制器发送自恢复请求,以便触发基板管理控制器的自恢复。在另一个实施例中,可以重置基于管理接口的通信信道。可选地,只要在处理器与bmc之间建立了基于peci的备份通信,处理器就向bmc发送自恢复请求以触发bmc的自恢复。可选地,为了确保ipmi 通道和通信真实被恢复,bmc可以请求处理器重试和检查ipmi是否已经恢复工作。在一个实施例中,在步骤106中,经由控制接口从处理器向基板管理控制器发送自恢复请求之前,处理器可以经由控制接口从基板管理控制器获得基板管理控制器的日志。在另一个实施例中,在步骤106中,经由控制接口从处理器向基板管理控制器发送自恢复请求之后,可以经由控制接口从基板管理控制器向处理器发送重试请求,以便重试基于管理接口的通信。从处理器的角度,一旦处理器检测到任何ipmi命令超时,处理器将首先检查ipmi驱动,如果ipmi驱动正常,则执行方法100中的步骤102、104以及106。从bmc的角度,一旦bmc接收到检查请求,bmc首先检查ipmi应用程序,如果发现存在问题,则重置ipmi应用程序,一般来说,大多数(例如,75%)的通信故障可以通过重置被恢复。如果故障仍然存在,处理器将重新发送其他类型的检查请求,例如,下表中列出了几种检查请求所对应的功能码。要启动的功能主功能码(第20-23位)子功能码(第16-19位)检查ipmi应用00000000bmc热重置00000001bmc冷重置00000010延迟关闭00000011与此相反,在现有的系统中,虽然bmc可以被强制冷重置,但是bmc不能请求处理器的服务,因而处理器无法获知bmc何时完成冷重置。因此,处理器只能等待有限的时间以再次发送ipmi命令,其中有限的时间只能凭借技术人员的经验,并且随着系统平台的不同而变化。在一个实施例中,bmc可以请求处理器的服务。在bmc的自恢复期间,除了重试请求,bmc还可以从处理器请求其他类型的服务, 例如请求处理器提供系统信息,请求处理器转储其pci寄存器和存储器。例如,下表中列出了几种请求处理器的服务所对应的功能码。此外,下表中的功能可以根据需求进行扩展。请求类型主功能码(第20-23位)子功能码(第16-19位)重试ipmi命令00100000获得处理器的os状态00100001获得处理器的cpu信息00100010获得处理器的存储器信息00100010获得所有的pci设备00100100在一个实施例中,当ipmi通信发生故障时,处理器可以使用支持双方向的备份通信的peci接口来获得bmc相关日志。为了分析其他文件,主功能码与子功能码可以用于指示需要提取的文件。请求类型主功能码(第20-23位)子功能码(第16-19位)获得bmc的内核日志01000000获得bmc的ipmi日志01000001获取所要求的所有日志01000010最后,方法100还可以包括:当故障已经被修复时,恢复处理器与基板管理控制器之间的基于管理接口的通信。也就是说,在ipmi通信故障已经恢复之后,可以恢复使用ipmi实现处理器与bmc之间的通信,而peci仅用于在处理器与bmc之间发生故障期间的备份通信。图2图示了根据本公开的实施例的备份通信层级图200,如图2所示,分为应用层、通信层、总线层以及组件层。在应用层,可以实现ipmi信道恢复服务、获取bmc的日志服务以及处理器与bmc之间的双向通信服务;在通信层,通过设置消息存储器来实现故障消息 的实时监控;在总线层,通过pci配置寄存器实现备份通信驱动;在组件层,通过peci总线实现处理器与bmc之间的通信。在一个实施例中,在处理器与bmc之间设置消息存储器。在不影响系统的其他操作的前提下,处理器和bmc能够读取和写入的任何寄存器都可以被选作消息存储器。根据消息存储器中的值,处理器和bmc可以确定应当采取的动作类型。在一些实施例中,可以设置选择消息存储器的原则。例如,在bmc与处理器中,存在很多可以由peci访问的寄存器,因而保留的并且未被硬件使用的寄存器不仅可以由处理器访问,也可以由经由peci总线与处理器连接的bmc访问。因此,这些寄存器可以被选作处理器与bmc之间的消息存储器或信箱。处理器可以向该消息存储器写入任何消息,bmc可以根据消息存储器中的消息执行预定的任务;同时bmc也可以向消息存储器写入任何消息,处理器也可以根据消息存储器中的消息执行预定的任务。图3图示了根据本公开的实施例的使用两个寄存器作为消息存储器的示图,为了避免处理器与bmc对相同的寄存器进行写入,可以使用两个寄存器来建立相应的通信链路。如图3所示,其中寄存器304仅可由bmc308写入,而寄存器306仅可由处理器302写入。图4图示了根据本公开的实施例的处理器与bmc之间的备份通信流程图400,其中在步骤401,处理器在peci总线上轮询分组;在步骤402,判断通信方向是否正确,并且如果通信方向不正确,则在步骤403报告错误;如果通信方向正确,则在步骤404,判断该分组是否为请求分组。如果步骤404的判断为是,则执行步骤405-410,依次为获得分组中主功能码和子功能码,并且根据功能码调用服务,收集所返回的信息,以及构造响应分组并张贴响应分组;如果步骤404的判断为否,则执行步骤411,进一步判断该分组是否为响应分组。如果步骤411的判断为否,则报告错误;如果步骤411的判断为是,则执行步骤412-416,依次为获得主功能码和子功能码,获得响应码,以及定位所请求的服务 并且向所请求的服务返回响应。此外,在步骤410或步骤416之后,到达步骤417,方法400结束。图5图示了根据本公开的实施例的使用消息存储器来监视故障消息的通信流程图500,为了及时检查bmc的异常,在处理器上运行ipmi超时监视器以检测impi通信是否发生故障;为了及时的响应处理器的恢复请求,bmcipmi信道后台程序用于监测是否发生故障。其中在步骤501,处理器ipmi超时监视器接收到超时事件,响应于该超时事件,在步骤502,对消息存储器设置检查请求,并且在步骤503向bmcipmi信道后台程序返回检查请求。然后,在步骤504和505,bmcipmi信道后台程序根据功能码进行恢复,并且对消息存储器设置重试请求。在步骤506,消息存储器向处理器ipmi超时监视器返回重试请求,以使得在步骤507处理器ipmi超时监视器重新发送ipmi命令。然后,处理器ipmi超时监视器向消息存储器发送成功响应(步骤508)或失败响应(步骤509)。最后,在步骤510,消息存储器可以向bmcipmi信道后台程序返回重试响应。图6图示了根据本公开的实施例的重试ipmi命令的流程图600,其中在步骤601,处理器发送ipmi命令,如果ipmi超时(步骤602),则进入步骤603,并判断bmc驱动是否完好,如果bmc驱动不完好,则在步骤604重新加载驱动;如果bmc驱动完好,则在步骤605,向bmc发送检查请求。然后在步骤606,如果接收到重试请求,则重新发送ipmi命令,并且在步骤608,判断是否重试成功,并根据该步骤608中判断结果生成相应的成功响应码或者失败响应码,此外,在步骤610,向bmc发送响应分组,至此在步骤611,方法600结束。图7图示了根据本公开的实施例的bmc的ipmi通道后台程序的工作流程图700,其中在步骤701开始方法700,并且在步骤702,bmc的ipmi通道后台程序判断是否接收到请求,如果在步骤702中接收到请求,在步骤703,根据相应的功能码进行恢复,并且在步骤704发送重试请求。在步骤705,判断是否接收到重试响应,如果在步骤705中接收到重试响应,则在步骤706,获得响应码,进而方法700结束。图8图示了根据本公开的实施例的获取bmc的文件的流程图800。当处理器检测到ipmi发生故障时,在从处理器向bmc发送自恢复请求之前,处理器从bmc获得bmc的文件(例如,日志)。当运行在bmc上的后台程序检测到消息存储器中的故障消息时,bmc响应处理器所发送的相应请求。相反,在现有的系统中,处理器无法及时获得bmc的日志,因而需要使用专用的控制台或者通过ssh的方式来登录进行调试。然而,控制台的方式需要一定的硬件支持,并且建立控制台连接也非常复杂;ssh的方式需要对ssh的支持,但是在许多硬件中ssh端口已经被禁用。在方法800中,在步骤801,处理器peci监视器向消息存储器发送请求以获得bmc的文件;在步骤802,消息存储器向bmcpeci后台程序返回所请求的分组;在步骤803,bmcpeci后台程序根据功能码来定位文件,并且在步骤804,bmc操作系统向bmcpeci后台程序返回文件长度;相应地,在步骤805,bmcpeci后台程序在响应分组中设置响应长度,并且在步骤806处理器peci监视器接收响应分组。然后,在步骤807,bmcpeci后台程序向bmc操作系统调用文件发送函数,在步骤808,bmc操作系统向消息存储器返回文件的原始数据。最后,在步骤809,处理器peci监视器调用文件获得函数以从消息存储器获得所需要的bmc的文件。图9图示了根据本公开的实施例的备份通信装置900的框图,该装置900包括监视装置902,用于监视处理器与基板管理控制器之间的管理接口是否发生故障;响应装置904,用于响应于管理接口发生故障,利用控制接口实现处理器与基板管理控制器之间的备份通信,其中基板管理控制器能够通过控制接口获取处理器的物理参数;以及传输装置906,用于经由控制接口在处理器与基板管理控制器之间传输分组。在一个实施例中,其中管理接口为智能平台管理接口(ipmi)和/或控制接口为平台环境式控制接口(peci)。在一个实施例中,其中监视装置902还用于:监视处理器与基板管理控制器之间的管理接口的通信间隔时间是否超过阈值时间。在一个实施例中,其中备份通信可以是双向通信,并且备份通信中的分组包括通信类型码、功能码和响应码,其中通信类型码表示备份通信的类型,功能码表示要启动的功能,响应码表示通信的响应情况。在另一个实施例中,备份通信的类型可以包括以下各项中的至少一项:处理器向基板管理控制器发送请求、基板管理控制器向处理器发送请求、处理器响应基板管理控制器的请求、以及基板管理控制器响应处理器的请求。在又一个实施例中,其中要启动的功能可以包括以下各项中的至少一项:触发基板管理控制器的自恢复、重试基于管理接口的通信、请求处理器的服务、以及获得基板管理控制器的日志在一个实施例中,其中响应装置904还用于:当管理接口发生故障时,处理器可以向设置在处理器上的消息存储器发送故障消息,并且基板管理控制器监视消息存储器中是否具有故障消息。在另一个实施例中,其中传输装置906还用于:经由控制接口从处理器向基板管理控制器发送自恢复请求,以便触发基板管理控制器的自恢复。在又一个实施例中,其中传输装置906还用于:重置基于管理接口的通信信道。在一个实施例中,其中传输装置906还用于:在经由控制接口从处理器向基板管理控制器发送自恢复请求之前,处理器可以经由控制接口从基板管理控制器获得基板管理控制器的日志。在另一个实施例中,其中传输装置906还用于:在经由控制接口从处理器向基板管理控制器发送自恢复请求之后,可以经由控制接口从基板管理控制器向处理器发送重试请求,以便重试基于管理接口的通信。在一个实施例中,装置900还包括恢复装置(未示出),当故障已经被修复时,可以恢复处理器与基板管理控制器之间的基于管理接口的通信。在下文中,将参考图10来描述可以在其中实现本公开的备份通信方法的计算机设备。图10图示了可以在其中实现根据本公开的备份通信方法的计算机设备1000的框图。图10中所示的计算机系统包括cpu(中央处理单元)1001、ram(随机访问存储器)1002、rom(只读存储器)1003、系统总线1004、硬盘控制器1005、键盘控制器1006、串行接口控制器1007、并行接口控制器1008、显示器控制器1009、硬盘1010、键盘1011、串行外部设备1012、并行外部设备1013和显示器1014。在这些部件中,与系统总线1004相连的有cpu1001、ram1002、rom1003、硬盘控制器1005、键盘控制器1006、串行接口控制器1007、并行接口控制器1008和显示器控制器1009。硬盘1010与硬盘控制器1005相连,键盘1011与键盘控制器1006相连,串行外部设备1012与串行接口控制器1007相连,并行外部设备1013与并行接口控制器1008相连,以及显示器1014与显示器控制器1009相连。需要说明的是,图10所述的结构框图仅仅为了示例的目的而示出的,并非是对本公开的限制。在一些情况下,可以根据需要添加或者减少其中的一些设备。本公开的实施方式可以作为计算机程序代码存储在上计算机的例如硬盘1010的存储设备中,在被载入诸如存储器中运行时,将使得cpu1001执行根据本公开的实施例的磁盘驱动器模拟方法。以上所述仅为本公开的实施例可选实施例,并不用于限制本公开的实施例,对于本领域的技术人员来说,本公开的实施例可以有各种更改和变化。凡在本公开的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的实施例的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1