一种识别FRU在位方法、装置、设备及可读存储介质与流程

文档序号:32940276发布日期:2023-01-14 08:53阅读:32来源:国知局
一种识别FRU在位方法、装置、设备及可读存储介质与流程
一种识别fru在位方法、装置、设备及可读存储介质
技术领域
1.本发明涉及服务器领域,特别涉及一种识别fru在位方法、装置、设备及计算机可读存储介质。


背景技术:

2.fru(field replace unit,现场可替换单元)记录了服务器各个部件的型号,序列号等信息,主要用于资产管理,售后维护,通常被存储在eeprom(electrically erasable programmable read-only memory,电可擦编程只读存储器)芯片中。服务器中的bmc(baseboard management controller,基板管理控制器)一般需要管理较多的fru,并不是每个fru都一定存在,目前相关技术中实现识别fru在位的方案是bmc通过遍历总线上连接的所有器件,向每个器件发送特定的fru指令,并等待数据返回,当返回结果符合fru交互逻辑,则认为是有效的fru。这种通过总线向每个器件都发送特定fru指令的方式可能会造成总线繁忙,并导致其它器件工作异常,影响服务器其它功能正常运行。


技术实现要素:

3.本发明的目的是提供一种识别fru在位方法、装置、设备及计算机可读存储介质,应用于服务器领域。本发明通过定向地向存储芯片发送指令,判断fru是否在位,避免了通过总线向每个器件都发送特定fru指令而影响服务器各功能正常运行的问题。
4.为实现上述目的,本发明提供一种识别fru在位方法,包括:
5.读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址;
6.通过所述总线号和所述从机地址定位所述存储芯片的地址;
7.根据所述地址向所述存储芯片发送初始化命令;
8.当接收到所述存储芯片初始化成功的信息时,则确定所述fru在位。
9.可选的,所述当接收到所述存储芯片初始化成功的信息时,则确定所述fru在位,还包括:
10.向设备管理器发送udev信号,使所述设备管理器监控到所述udev信号时,启动脚本调用fru信息展示程序,展示所述fru的信息。
11.可选的,所述读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址,包括:
12.读取所述内核设备树中预先录入的存储所述fru的eeprom芯片的所述总线号和所述从机地址;
13.相应的,所述通过所述总线号和所述从机地址定位所述存储芯片的地址,包括:
14.通过所述总线号和所述从机地址定位所述eeprom芯片的所述地址;
15.相应的,所述根据所述地址向所述存储芯片发送初始化命令,包括:
16.根据所述地址向所述eeprom芯片发送所述初始化命令。
17.可选的,所述读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机
地址,包括:
18.读取所述内核设备树中预先录入的存储所述fru的所述存储芯片的iic总线号和iic从机地址;
19.相应的,所述通过所述总线号和所述从机地址定位所述存储芯片的地址,包括:
20.通过所述iic总线号和所述iic从机地址定位所述存储芯片的所述地址。
21.为实现上述目的,本发明还提供一种识别fru在位装置,包括:
22.读取模块,用于读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址;
23.定位模块,用于通过所述总线号和所述从机地址定位所述存储芯片的地址;
24.指令发送模块,用于根据所述地址向所述存储芯片发送初始化命令;
25.确定在位模块,用于当接收到所述存储芯片初始化成功的信息时,则确定所述fru在位。
26.可选的,还包括:
27.信息展示模块,用于向设备管理器发送udev信号,使所述设备管理器监控到所述udev信号时,启动脚本调用fru信息展示程序,展示所述fru的信息。
28.可选的,所述读取模块,包括:
29.第一读取单元,用于读取所述内核设备树中预先录入的存储所述fru的所述存储芯片的iic总线号和iic从机地址;
30.相应的,所述定位模块,包括:
31.第一定位单元,用于通过所述总线号和所述从机地址定位所述eeprom芯片的所述地址;
32.相应的,所述指令发送模块,包括:
33.第一指令发送单元,用于根据所述地址向所述eeprom芯片发送所述初始化命令。
34.可选的,所述读取模块,包括:
35.第二读取模块,用于读取所述内核设备树中预先录入的存储所述fru的所述存储芯片的iic总线号和iic从机地址;
36.相应的,所述定位模块,包括:
37.第二定位单元,用于通过所述iic总线号和所述iic从机地址定位所述存储芯片的所述地址。
38.为实现上述目的,本发明还提供一种识别fru在位设备,包括:
39.存储器,用于储存计算机程序;
40.处理器,用于执行所述计算机程序时实现上述所述识别fru在位方法。
41.为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时,实现上述所述识别fru在位方法。
42.本发明提供一种识别fru在位方法,包括:读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址;通过总线号和从机地址定位存储芯片的地址;根据地址向存储芯片发送初始化命令;当接收到存储芯片初始化成功的信息时,则确定fru在位。
43.可见,本发明通过预先在内核设备树内录入存储fru的存储芯片的总线号和从机
地址,通过读取的总线号和从机地址进行定位,从而定向地向存储芯片发送指令,避免了现有相关技术中通过遍历总线上所有器件,向每个器件都发送指令使总线繁忙及器件工作异常而导致的服务器其它功能异常的问题。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.图1为本发明实施例提供的一种识别fru在位方法的流程图;
46.图2为本发明实施例提供的一种识别fru在位方法的具体实施例图;
47.图3为本发明实施例提供的一种识别fru在位方法的方案示意图;
48.图4为本发明实施例提供的一种识别fru在位装置的结构框图。
具体实施方式
49.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.bmc通常是集成服务器或其它设备主板上的一个小型系统,承担着监控管理服务器的作用,从一款服务器上电时刻,它的所有部件都归bmc来负责和管理。目前bmc的软件解决方案主要有传统的商业闭源方案和开源的openbmc(open baseboard management controller,开源基板管理控制器)方案。fru记录了服务器各个部件的型号,序列号等信息,主要用于资产管理和售后维护,通常被存储在eeprom芯片中,服务器上bmc一般需要管理较多的fru,并不是每个fru都一定存在,这就需要bmc来动态识别fru是否在位。
51.目前的相关技术中识别fru在位的方案为bmc遍历iic(inter-integrated circuit,集成电路总线)上连接的所有器件,向每个器件都发送特定的fru指令,并等待数据返回,若符合fru的交互逻辑,则认为是有效的fru。这种方案存在明显的缺点,如bmc的iic总线上一般连接与温度及电压等传感器,试探性的向各个iic总线发送数据容易造成总线繁忙,继而使bmc不能及时处理传感器数据;又如试探性的向iic总线上所有器件发送数据,也有可能使得某些传感器工作异常。这种方案会导致在识别fru在位的过程中服务器各项功能运行异常。有鉴于此,本发明通过预先在内核设备树内录入存储fru的存储芯片的总线号和从机地址,通过读取的总线号和从机地址进行定位,从而定向地向存储芯片发送指令,避免了现有相关技术中通过遍历总线上所有器件,向每个器件都发送指令使总线繁忙及器件工作异常而导致的服务器其它功能异常的问题。
52.以下结合图1,图1为本发明实施例提供的一种识别fru在位方法的流程图,该方法可以包括:
53.s101:读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址。
54.可以理解的是,内核设备树是系统内核中一种描述硬件资源的数据结构,它可以
由电路板上的cpu(central processing unit,中央处理器)、总线和设备组成,引导装载程序会将这棵树的内容传递给系统内核,然后系统内核来识别这棵树。fru存储在存储芯片当中,预先将存储有fru的存储芯片的总线号以及从机地址录入内核设备树中,使系统内核能够通过读取内核设备树中的信息定位到该存储芯片。
55.本实施例的执行主体一般可以是服务器,相较于普通的计算机设备,服务器由于承担的作用很重要,其对各配件的性能及运行状态要求较高,所以该方法一般应用于服务器。进一步,本实施例中服务器内核一般可以是在openbmc框架下的linux系统内核。bmc承担着监控管理服务器的作用,目前bmc的软件解决有商业闭源方案和开源方案openbmc,目前随着服务器行业的发展,openbmc作为一种开源方案,能够更好的访问和控制bmc。在一般电脑中,cpu就能够进行温度和电源等的管理,但是对于系统要求高的设备,比如应用了更强硬件的服务器,就会用到bmc实时监控服务器主要组件的健康状态,包括风扇转速、cpu和主板的温度、核心电压、电源模块的状态等。
56.进一步,本实施例并不限定服务器的类型,可以是按机箱结构分类的如台式服务器、机架式服务器、机柜式服务器以及刀片式服务器;也可以是按用途分类的如通用型服务器和专用型服务器;也可以是按处理器架构分类的如cisc(complex instruction set computer,复杂指令系统计算机)服务器、risc(reduced instruction set computing,精简指令集)服务器以及vliw(very long instruction word,超长指令集架构)服务器;还可以是按应用层次分类的如入门级服务器、工作组级服务器、部门级服务器以及企业级服务器。
57.本实施例并不限定存储fru的存储芯片的类型,由于eeprom芯片相较于其他存储芯片稳定性较高,掉电后数据不丢失,可以随机访问和修改任何一个字节,所以一般将fru存储在eeprom芯片中。进一步,本实施例也不限定连接存储芯片的总线类型。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。iic总线最主要的优点是其简单性和有效性,由于接口直接在组件之上,因此iic总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本;iic总线的另一个优点是,它支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线。所以在本实施例中可以使用iic总线连接存储芯片。
58.本实施例并不限定开始读取内核设备树的时机,可以是服务器上电之后就自动进行读取,也可以是在接收到读取指令之后进行内核设备树的读取。
59.s102:通过总线号和从机地址定位存储芯片的地址。
60.可以理解的是,在目前相关技术中,一般通过遍历总线上全部的器件进行识别fru在位,本步骤通过总线号和从机地址直接定位存储有fru的存储芯片的地址。
61.s103:根据地址向存储芯片发送初始化命令。
62.可以理解的是,根据地址定向地向存储芯片发送初始化命令,避免了现有相关技术中通过遍历总线上所有器件,向每个器件都发送指令使总线繁忙及器件工作异常而导致的服务器其它功能异常的问题。
63.s104:当接收到存储芯片初始化成功的信息时,则确定fru在位。
64.可以理解的是,在确定存储fru的存储芯片的地址之后,向存储芯片发送初始化命令,当系统内核接收到返回的初始化成功的信息后,则可以确定该存储芯片存在,进而其中存储的fru识别在位。
65.进一步,为了方便用户能够直观的了解到fru在位,在确定fru在位后可以显示fru信息,具体方式可以为系统内核向设备管理器发送udev信号,udev信号是一种能触发设备管理器启动脚本来调用fru信息展示程序的信号,该udev信号中包含了连接存储芯片的总线类型、存储芯片类型以及总线号和从机地址等信息。当设备管理器中的一个进程监控到该udev信号时启动脚本,并通过udev信号中所包含的信息调用fru信息展示程序,通过ipmi等信息管理接口展示fru信息。
66.本实施例通过预先在内核设备树内录入存储fru的存储芯片的总线号和从机地址,通过读取的总线号和从机地址进行定位,从而定向地向存储芯片发送指令,避免了现有相关技术中通过遍历总线上所有器件,向每个器件都发送指令使总线繁忙及器件工作异常而导致的服务器其它功能异常的问题。
67.以下结合图2,图2为本发明实施例提供的一种识别fru在位的具体实施例图,其中执行主体可以是服务器,可以是在openbmc开源框架下的linux系统内核,用于存储fru的存储芯片可以是eeprom芯片,连接存储芯片的总线可以是iic总线,该具体实施例可以包括:
68.1、用户将存储fru的eeprom芯片的iic总线号和iic从机地址预先录入在内核设备树中。
69.2、读取内核设备树中eeprom芯片的iic总线号和iic从机地址。
70.3、通过iic总线号找到eeprom芯片所在iic总线,再通过iic从机地址定位eeprom芯片在iic总线上位置。
71.4、向定位到的eeprom芯片发送初始化指令。
72.5、当接收到初始化成功的信息时,向设备管理器发送udev信号。
73.6、设备管理器监控到udev信号之后,启动脚本调用fru信息展示程序。
74.以下结合图3,图3为本发明实施例提供的一种识别fru在位方法的方案示意图,执行主体可以是通用的服务器,软件整体可以分为fru信息展示程序、linux内核和设备管理器这三个模块,在该方案中,工作前需要在内核设备树中预先录入存储fru的存储芯片的地址信息,也可以叫做fru硬件基础信息。服务器通过linux内核读取内核设备树中fru硬件基础信息,并通过该信息识别fru是否在位,当fru在位时linux内核会向设备管理器发送udev信号,设备管理器匹配到对应的udev信号时会调用fru信息展示程序,以便将fru信息展示给用户。
75.下面对本发明实施例提供的一种识别fru在位装置、设备及存储介质进行介绍,下文描述的一种识别fru在位装置、设备及存储介质与上文描述的一种识别fru在位方法可相互对应参照。
76.以下结合图4,图4为本发明实施例提供的一种识别fru在位装置结构框图,该装置可以包括:
77.读取模块100,用于读取内核设备树中预先录入的存储fru的存储芯片的总线号和从机地址;
78.定位模块200,用于通过总线号和从机地址定位存储芯片的地址;
79.指令发送模块300,用于根据地址向存储芯片发送初始化命令;
80.确定在位模块400,用于当接收到存储芯片初始化成功的信息时,则确定fru在位。
81.基于上述实施例,本发明通过读取预先录入在内核设备树中存储fru的存储芯片的总线号和从机地址,从而定向地向存储芯片发送指令,避免了现有相关技术中通过遍历总线上所有器件,向每个器件都发送指令使总线繁忙及器件工作异常而导致的服务器各功能运行异常的问题。
82.基于上述各实施例,该装置还可以包括:
83.信息展示模块,用于向设备管理器发送udev信号,使所述设备管理器监控到所述udev信号时,启动脚本调用fru信息展示程序,展示所述fru的信息。
84.基于上述各实施例,所述读取模块100,可以包括:
85.第一读取单元,用于读取所述内核设备树中预先录入的存储所述fru的所述存储芯片的iic总线号和iic从机地址;
86.相应的,所述定位模块200,可以包括:
87.第一定位单元,用于通过所述总线号和所述从机地址定位所述eeprom芯片的所述地址;
88.相应的,所述指令发送模块300,可以包括:
89.第一指令发送单元,用于根据所述地址向所述eeprom芯片发送所述初始化命令。
90.基于上述各实施例,所述读取模块100,可以包括:
91.第二读取模块,用于读取所述内核设备树中预先录入的存储所述fru的所述存储芯片的iic总线号和iic从机地址;
92.相应的,所述定位模块200,可以包括:
93.第二定位单元,用于通过所述iic总线号和所述iic从机地址定位所述存储芯片的所述地址。
94.基于上述实施例,本发明还提供了一种识别fru在位设备,该设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
95.本发明还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现本发明实施例所提供的识别fru在位方法;该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
96.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
97.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1