获取内存信息的方法、装置、设备及计算机可读存储介质与流程

文档序号:23708567发布日期:2021-01-23 15:14阅读:55来源:国知局
获取内存信息的方法、装置、设备及计算机可读存储介质与流程

[0001]
本发明涉及服务器监控技术领域,特别是涉及一种获取内存信息的方法、装置、设备及计算机可读存储介质。


背景技术:

[0002]
随着云技术、虚拟化技术的不断进步,市场不断扩展,需要更多的服务器的支持,对服务器的管理也是一个极大的挑战。在基于基板管理控制器bmc的服务器管理中,目前只能通过d-bus服务获取内存条的数量和每个内存条的容量大小。d-bus服务是一个提供简单的应用程序互相通讯的途径的自由软件项目,将之应用于内存信息的接收与存储后,能够通过终端输入命令的方式访问d-bus服务来获取服务器上的内存信息。然而,现有的d-bus服务不支持客户端从网页访问接口的访问,用户无法通过网页访问接口获取到内存信息,这极为不方便用户查看内存信息。


技术实现要素:

[0003]
本发明的目的是提供一种获取内存信息的方法、装置、设备及计算机可读存储介质,用于完善通过访问d-bus服务获取内存信息的流程,方便用户获取服务器的内存信息的操作。
[0004]
为解决上述技术问题,本发明提供一种获取内存信息的方法,基于基板管理控制器bmc,包括:
[0005]
在接收到内存信息后,将所述内存信息存入d-bus服务;
[0006]
当接收到请求端自网页访问接口的内存信息获取请求后,调用所述d-bus服务获取与所述内存信息获取请求对应的内存信息;
[0007]
将与所述内存信息获取请求对应的内存信息封装为所述网页访问接口的协议格式后得到响应数据包;
[0008]
将所述响应数据包通过所述网页访问接口发送至所述请求端。
[0009]
可选的,所述请求端具体为万维网web端。
[0010]
可选的,所述网页访问接口具体为redfish接口。
[0011]
可选的,所述内存信息具体包括内存条的数量和各所述内存条的容量。
[0012]
可选的,所述在接收到内存信息后,将所述内存信息存入d-bus服务,具体为:
[0013]
接收服务器主机定时发送的实时内存信息,并将所述实时内存信息存入所述d-bus服务。
[0014]
可选的,所述在接收到内存信息后,将所述内存信息存入d-bus服务,还包括:
[0015]
接收服务器开机后所述服务器主机发送的初始内存信息,并将所述初始内存信息存入所述d-bus服务。
[0016]
可选的,所述在接收到内存信息后,将所述内存信息存入d-bus服务,具体为:
[0017]
接收服务器主机在检测到内存变动后发送的当前内存信息,并将所述当前内存信
息存入所述d-bus服务。
[0018]
为解决上述技术问题,本发明还提供一种获取内存信息的装置,包括:
[0019]
接收单元,用于在接收到内存信息后,将所述内存信息存入d-bus服务;
[0020]
调用单元,用于当接收到请求端自网页访问接口的内存信息获取请求后,调用所述d-bus服务获取与所述内存信息获取请求对应的内存信息;
[0021]
封装单元,用于将与所述内存信息获取请求对应的内存信息封装为所述网页访问接口的协议格式后得到响应数据包;
[0022]
发送单元,用于将所述响应数据包通过所述网页访问接口发送至所述请求端。
[0023]
为解决上述技术问题,本发明还提供一种获取内存信息的设备,包括:
[0024]
存储器,用于存储指令,所述指令包括上述任意一项所述获取内存信息的方法的步骤;
[0025]
处理器,用于执行所述指令。
[0026]
为解决上述技术问题,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述获取内存信息的方法的步骤。
[0027]
本发明所提供的获取内存信息的方法,基板管理控制器bmc在接收到内存信息后,将内存信息存入d-bus服务,当接收到请求端自网页访问接口的内存信息获取请求后,调用d-bus服务获取与内存信息获取请求对应的内存信息,并将与内存信息获取请求对应的内存信息封装为网页访问接口的协议格式后得到响应数据包后,将响应数据包通过网页访问接口发送至请求端,从而弥补了现有技术中通过网页访问接口获取内存信息的空白,完善了通过访问d-bus服务获取内存信息的流程,方便了用户获取服务器的内存信息的操作。本发明还提供一种获取内存信息的装置、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
[0028]
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]
图1为本发明实施例提供的一种获取内存信息的方法的流程图;
[0030]
图2为本发明实施例提供的一种获取内存信息的装置的结构示意图;
[0031]
图3为本发明实施例提供的一种获取内存信息的设备的结构示意图。
具体实施方式
[0032]
本发明的核心是提供一种获取内存信息的方法、装置、设备及计算机可读存储介质,用于完善通过访问d-bus服务获取内存信息的流程,方便用户获取服务器的内存信息的操作。
[0033]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]
图1为本发明实施例提供的一种获取内存信息的方法的流程图。
[0035]
如图1所示,基于基板管理控制器bmc,本发明实施例提供的获取内存信息的方法包括:
[0036]
s101:在接收到内存信息后,将内存信息存入d-bus服务。
[0037]
d-bus服务是一个用于构建服务器主机与基板管理控制器bmc之间的通信的服务。现有技术中,服务器主机将内存信息发送到基板管理控制器bmc后,基板管理控制器bmc将内存信息存入d-bus服务,以供终端通过输入命令行的方式查询。
[0038]
其中,内存信息具体包括内存条(dimm,dual-inline-memory-modules,双列直插式存储模块)的数量和各内存条的容量。
[0039]
在具体实施中,服务器主机可以在检测到内存变动后发送的当前内存信息,基板管理控制器bmc在接收到服务器主机在检测到内存变动后发送的当前内存信息后,将当前内存信息存入d-bus服务。
[0040]
具体的,按照服务器主机为各内存条分配的编号(dimm 0,dimm 1,
……
),将各内存条的信息存入d-bus服务。
[0041]
s102:当接收到请求端自网页访问接口的内存信息获取请求后,调用d-bus服务获取与内存信息获取请求对应的内存信息。
[0042]
s103:将与内存信息获取请求对应的内存信息封装为网页访问接口的协议格式后得到响应数据包。
[0043]
s104:将响应数据包通过网页访问接口发送至请求端。
[0044]
除了现有技术中针对终端这种请求端来说,本发明实施例针对的请求端为网页端,具体可以为万维网web(world wide web)端,网页访问接口具体可以为主流的网页访问接口redfish接口。基板管理控制器bmc中的redfish的管理是通过编程设计远程调用服务进程与redfish服务进程实现的,redfish服务进程主要用于实现与资源请求端进行交互。
[0045]
为实现d-bus服务与redfish接口的交互,预先基于开源的基板管理控制器openbmc,编写并载入内存信息获取脚本,用于获取请求端自网页访问接口的内存信息获取请求,解析内存信息获取请求得到所需内存信息的类型,根据所需内存信息的类型获取内存信息并封装为响应包发送至请求端。
[0046]
对于步骤s102来说,请求端发送的内存信息获取请求可能为请求全部内存的信息,也可能为请求部分内存的信息。利用内存信息获取脚本解析请求端的内存信息获取请求得到请求端所需的内存信息,如需要编号为dimm 1的内存条的信息。
[0047]
在接收到请求端自网页访问接口的内存信息获取请求后,调用d-bus服务获取与内存信息获取请求对应的内存信息,即获取请求端所需的内存信息,如编号为dimm 1的内存条的信息。
[0048]
对于步骤s103来说,将请求端所需的内存信息封装为网页访问接口的协议格式,得到响应数据包。最后将响应数据包通过网页访问接口发送至请求端。
[0049]
请求端在接收到响应数据包后,解析响应数据包得到内存信息,而后将内存信息在web界面或其他位置进行显示。
[0050]
本发明实施例提供的获取内存信息的方法,基板管理控制器bmc在接收到内存信息后,将内存信息存入d-bus服务,当接收到请求端自网页访问接口的内存信息获取请求后,调用d-bus服务获取与内存信息获取请求对应的内存信息,并将与内存信息获取请求对应的内存信息封装为网页访问接口的协议格式后得到响应数据包后,将响应数据包通过网页访问接口发送至请求端,从而弥补了现有技术中通过网页访问接口获取内存信息的空白,完善了通过访问d-bus服务获取内存信息的流程,方便了用户获取服务器的内存信息的操作。
[0051]
在上述实施例的基础上,为了保证内存信息的实时性,服务器主机可以定时将内存信息发送至基板管理控制器bmc,基板管理控制器bmc在接收到实时内存信息后将实时内存信息存入d-bus服务。则步骤s101:在接收到内存信息后,将内存信息存入d-bus服务,具体为:
[0052]
接收服务器主机定时发送的实时内存信息,并将实时内存信息存入d-bus服务。
[0053]
由于服务器关机过程中,内存条可能会被插拔、更换,故在服务器开机后,服务器主机重新读取内存信息作为初始内存信息,并将初始内存信息发送至基板管理控制器bmc。则步骤s101还包括:
[0054]
接收服务器开机后服务器主机发送的初始内存信息,并将初始内存信息存入d-bus服务。
[0055]
具体地,基板管理控制器bmc可以根据初始内存信息建立各内存条的信息模型存入d-bus服务,并在接收到服务器主机定时发送的实时内存信息后,更新或增加各内存条的信息模型。
[0056]
上文详述了获取内存信息的方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的获取内存信息的装置、设备及计算机可读存储介质。
[0057]
图2为本发明实施例提供的一种获取内存信息的装置的结构示意图。
[0058]
如图2所示,本发明实施例提供的获取内存信息的装置包括:
[0059]
接收单元201,用于在接收到内存信息后,将内存信息存入d-bus服务;
[0060]
调用单元202,用于当接收到请求端自网页访问接口的内存信息获取请求后,调用d-bus服务获取与内存信息获取请求对应的内存信息;
[0061]
封装单元203,用于将与内存信息获取请求对应的内存信息封装为网页访问接口的协议格式后得到响应数据包;
[0062]
发送单元204,用于将响应数据包通过网页访问接口发送至请求端。
[0063]
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0064]
图3为本发明实施例提供的一种获取内存信息的设备的结构示意图。
[0065]
如图3所示,本发明实施例提供的获取内存信息的设备包括:
[0066]
存储器310,用于存储指令,所述指令包括上述任意一项实施例所述的获取内存信息的方法的步骤;
[0067]
处理器320,用于执行所述指令。
[0068]
其中,处理器320可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器320可以采用数字信号处理dsp(digital signal processing)、现场可编程门阵
列fpga(field-programmable gate array)、可编程逻辑阵列pla(programmable logic array)中的至少一种硬件形式来实现。处理器320也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器cpu(central processing unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器320可以集成有图像处理器gpu(graphics processing unit),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器320还可以包括人工智能ai(artificial intelligence)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0069]
存储器310可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器310还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器310至少用于存储以下计算机程序311,其中,该计算机程序311被处理器320加载并执行之后,能够实现前述任一实施例公开的获取内存信息的方法中的相关步骤。另外,存储器310所存储的资源还可以包括操作系统312和数据313等,存储方式可以是短暂存储或者永久存储。其中,操作系统312可以为windows。数据313可以包括但不限于上述方法所涉及到的数据。
[0070]
在一些实施例中,获取内存信息的设备还可包括有显示屏330、电源340、通信接口350、输入输出接口360、传感器370以及通信总线380。
[0071]
本领域技术人员可以理解,图3中示出的结构并不构成对获取内存信息的设备的限定,可以包括比图示更多或更少的组件。
[0072]
本申请实施例提供的获取内存信息的设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的获取内存信息的方法,效果同上。
[0073]
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0074]
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0075]
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
[0076]
为此,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如获取内存信息的方法的步骤。
[0077]
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器rom(read-only memory)、随机存取存储器ram(random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0078]
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的获取内存信息的方法的步骤,效果同上。
[0079]
以上对本发明所提供的一种获取内存信息的方法、装置、设备及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0080]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1