一种数据获取方法、装置、电子设备及计算机可读介质制造方法及图纸

技术编号:39411887 阅读:10 留言:0更新日期:2023-11-19 16:03
本申请提供了一种数据获取方法、装置、电子设备及计算机可读介质,涉及服务器技术领域,包括:通过IPMI接口对应的第一进程接收第一数据获取指令,通过Redfish接口对应的第二进程接收第二数据获取指令,其中,第一进程和第二进程相互独立;基于第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的硬件传感器接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的硬件传感器接口的数据;根据所述第一进程获取的数据进行第一数据解析,得到第一数据;根据所述第二进程获取的数据进行第二数据解析,得到第二数据。如此,能够使得IPMI的进程与Redfish的进程相互独立,互不影响,进而提高BMC的可用性和稳定性。性。性。

【技术实现步骤摘要】
一种数据获取方法、装置、电子设备及计算机可读介质


[0001]本申请涉及服务器
,特别是涉及一种数据获取方法、装置、电子设备及计算机可读介质。

技术介绍

[0002]BMC(Baseboard Management Controller

基板管理控制器)管理一直使用IPMI(Intelligent Platform Management Interface,基板管理控制器与智能型平台管理接口)这种协议,IPMI的输入和输出都是以十六进制数表示,因此,基于IPMI命令的使用和读取有一定的门槛,需要在了解IPMI协议规定格式的基础上才能读懂。
[0003]而且在2015年公布2.0v1.1标准后,便不再更新。Redfish(The Redfish Scalable Platforms Management API,可扩展平台管理接口)是新提出的一种易读性更好的规范,Redfish的输入和输出均为英语字符,且协议规范比起IPMI具有更好的扩展性。即使是非专业人士也可轻松得使用Redfish命令进行服务器信息的监管。
[0004]由于IPMI在BMC领域使用了20多年,各服务器平台还不能完全摆脱IPMI规范,又由于Redfish的优点,因此现在各服务器平台经常会兼顾两种协议。
[0005]而目前的相关技术中,因为要兼顾BMC和Redfish这两种协议,又由于原有方案均已经开发好IPMI的接口信息了,可以直接通过IPMI获取到信息。所以后来大多数的Redfish接口,基本都是通过IPMI接口拿到数据,再把数据根据Redfish规范的要求填写进去。这样既满足了Redfish和需求,也使得在有IPMI接口的情况下,再开发Redfish接口会更快捷、简便。
[0006]但是现有的解决方案在传感器信息的获取上,一直都有两个大的问题:
[0007]第一,由于基于IPMI协议的程序获取到的数据是按字节算的,因此表示的数值为0

255的整数,而传感器获取到的温度、电压信息经常都是有小数的,因此原本IPMI是将其转化以后再显示,这样就会有精度损失。基于Redfish协议的程序拿到的数据同样也有精度损失。
[0008]第二,基于Redfish协议的程序依赖于基于IPMI协议的程序,当基于IPMI协议的程序出现异常获取不到信息时,基于Redfish协议的程序也会获取不到信息。

技术实现思路

[0009]有鉴于此,本申请旨在提出一种数据获取方法、装置、电子设备及计算机可读介质,能够解决上述无论是基于IPMI协议的程序获取到的传感器信息还是基于Redfish协议的程序获取到的传感器信息都互会存在精度损失,且由于Redfish和IPMI串联绑定,IPMI的程序出现异常时,都获取不到信息的问题。
[0010]本申请实施例第一方面,提供一种数据获取方法,所述方法包括:
[0011]通过IPMI接口对应的第一进程接收第一数据获取指令,通过Redfish接口对应的第二进程接收第二数据获取指令,其中,所述第一进程和所述第二进程相互独立;
[0012]基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的硬件传感器接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的所述硬件传感器接口的数据;
[0013]根据所述第一进程获取的数据进行第一数据解析,得到第一数据;
[0014]根据所述第二进程获取的数据进行第二数据解析,得到第二数据。
[0015]在一种实施方式中,在所述基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的接口的数据之前,还包括:
[0016]通过多个传感器实时采集所述各个硬件的数据;
[0017]所述多个传感器将实时采集到的各个硬件的数据按照Dbus结构的格式存储在所述各个硬件所对应的硬件传感器接口中,其中,每个所述硬件对应一个接口。
[0018]在一种实施方式中,所述根据所述第一进程获取的数据进行第一数据解析,包括:
[0019]当所述数据不为整数时,对所述数据进行近似化处理。
[0020]在一种实施方式中,在所述基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的接口的数据之前,还包括:
[0021]创建配置文件,通过所述配置文件对所述多个传感器的参数以及所述硬件的参数进行配置,得到初始化参数,其中,所述配置文件包括所述IPMI接口、所述Redfish接口、所述Dbus结构所需要的信息,所述初始化参数包括所述多个传感器的编号、类型、名称、Dbus结构的接口、Dbus结构的界面、硬件在位信息;
[0022]将所述配置文件的初始化参数存储在Dbus结构的总传感器接口中;
[0023]当所述各个硬件进行初始化时,所述第一进程和第二进程通过所述总传感器接口获取所述初始化参数;
[0024]对所述硬件在位信息进行复位为0,基于所述硬件在位信息将所述多个传感器的初始读数显示为无效状态。
[0025]在一种实施方式中,在所述对所述硬件在位信息进行复位为0之后,还包括:
[0026]在初始化完成后,当所述硬件与所述传感器之间有硬件链路时,通过所述硬件链路获取所述传感器的初始读数;
[0027]当所述硬件与所述传感器之间没有所述硬件链路时,通过所述第一进程或第二进程发送初始数据获取指令,获取所述传感器的初始读数。
[0028]在一种实施方式中,所述将所述配置文件的初始化参数存储在Dbus结构的总传感器接口中,包括:
[0029]新增传感器监控进程,通过所述传感器监控进程访问所述配置文件的地址;
[0030]将所述配置文件中的初始化参数以二维数组的形式存储在所述总传感器接口中,其中,所述二维数组中的每个维度对应每个所述传感器的参数,所述每个传感器对应一个所述Dbus结构的接口,通过所述每个传感器对应的所述Dbus结构的接口,将所述传感器的参数传输至所述Dbus结构的总传感器接口中。
[0031]在一种实施方式中,所述基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,基于所述第二数据获取指令,通过所述第二
进程利用Redfish接口获取所述各个硬件所对应的接口的数据,包括:
[0032]在所述各个硬件所对应的传感器的数据更新时,将所述硬件的硬件在位状态置位,使其显示为1;
[0033]在所述硬件的硬件在位状态为1时,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,通过所述第二进程利用Redfish接口获取所述各个硬件所对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据获取方法,其特征在于,所述方法包括:通过IPMI接口对应的第一进程接收第一数据获取指令,通过Redfish接口对应的第二进程接收第二数据获取指令,其中,所述第一进程和所述第二进程相互独立;基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的硬件传感器接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的所述硬件传感器接口的数据;根据所述第一进程获取的数据进行第一数据解析,得到第一数据;根据所述第二进程获取的数据进行第二数据解析,得到第二数据。2.根据权利要求1所述的数据获取方法,其特征在于,在所述基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的接口的数据之前,还包括:通过多个传感器实时采集所述各个硬件的数据;所述多个传感器将实时采集到的各个硬件的数据按照Dbus结构的格式存储在所述各个硬件所对应的硬件传感器接口中,其中,每个所述硬件对应一个接口。3.根据权利要求1所述的数据获取方法,其特征在于,所述根据所述第一进程获取的数据进行第一数据解析,包括:当所述数据不为整数时,对所述数据进行近似化处理。4.根据权利要求2所述的数据获取方法,其特征在于,在所述基于所述第一数据获取指令,通过所述第一进程利用IPMI接口获取各个硬件所对应的接口的数据,基于所述第二数据获取指令,通过所述第二进程利用Redfish接口获取所述各个硬件所对应的接口的数据之前,还包括:创建配置文件,通过所述配置文件对所述多个传感器的参数以及所述硬件的参数进行配置,得到初始化参数,其中,所述配置文件包括所述IPMI接口、所述Redfish接口、所述Dbus结构所需要的信息,所述初始化参数包括所述多个传感器的编号、类型、名称、Dbus结构的接口、Dbus结构的界面、硬件在位信息;将所述配置文件的初始化参数存储在Dbus结构的总传感器接口中;当所述各个硬件进行初始化时,所述第一进程和第二进程通过所述总传感器接口获取所述初始化参数;对所述硬件在位信息进行复位为0,基于所述硬件在位信息将所述多个传感器的初始读数显示为无效状态。5.根据权利要求4所述的数据获取方法,其特征在于,在所述对所述硬件在位信息进行复位为0之后,还包括:在初始化完成后,当所述硬件与所述传感器之间有硬件链路时,通过所述硬件链路获取所述传感器的初始读数;当所述硬件与所述传感器之间没有所述硬件链路时,通过所述第一进程或第二进程发送初始数据...

【专利技术属性】
技术研发人员:叶笑夕王兴隆郭洁
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1