基板管理控制器固件更新的制作方法

文档序号:30498309发布日期:2022-06-22 11:59阅读:156来源:国知局
基板管理控制器固件更新的制作方法

1.本公开总体上涉及基板管理控制器(bmc)技术,并且更具体地涉及针对bmc的固件更新。


背景技术:

2.世界各地都使用数据中心来提供大量的处理和存储容量。数据中心通常包括多个服务器机架,服务器机架有时被称为“刀片”。这些刀片均包括一个或多个处理器和存储器。基板管理控制器(bmc)通常是一种嵌入式控制设备,其用作系统管理软件和平台硬件之间的接口。bmc监测服务器操作参数,诸如温度、散热风扇速度、功率状态、操作系统状态等。bmc根据智能平台管理接口(ipmi)与其他刀片组件(包括硬件和软件组件,诸如机箱管理接口)对接。
3.bmc的固件包括bmc的闪存驱动(例如,串行外围接口(spi)闪存驱动)中的分区上存储的引导加载器、内核、配置数据和根文件系统。这些分区一起构成bmc二进制rom映像。bmc的固件可能需要不时更新,以解决与bmc的各种功能相关的问题。在更新bmc的固件时,固件被视为二进制blob,并且整个bmc二进制rom映像在更新中被写入到bmc的闪存。


技术实现要素:

4.下面呈现了简化的概括,以便提供对本文描述的一些方面的基本理解。该概括不是要求保护的主题的广泛概述。它既不旨在标识所要求保护的主题的关键或重要元素,也不旨在描绘其范围。它的唯一目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的前奏。
5.根据本公开的一种实施方式,一种系统包括基板管理控制器(bmc)。bmc可以包括处理器和存储器。存储器可以包括非易失性存储器和易失性存储器。非易失性存储器可以包括被分类为多个可独立更新服务模块的固件,可独立更新存储模块中的每个可独立更新存储模块被存储在非易失性存储器的读写(rw)分区上。可独立更新服务模块中的每个可独立更新服务模块可以包括应用、库和驱动中的至少一项。存储器还可以包括可执行代码,当在处理器处执行时,该可执行代码被配置为执行固件更新。固件更新可以包括:接收bmc更新包,bmc更新包用于更新多个rw分区中的一个rw分区中存储的现有服务模块,其中bmc更新包包括更新服务模块;将bmc更新包存储在易失性存储器中;以及利用更新服务模块代替非易失性存储器的rw分区中存储的现有服务模块。
6.根据本发明的另一种实施方式,一种更新bmc固件的方法包括:接收bmc更新包,bmc更新包包括用于更新bmc的现有服务模块的更新服务模块,服务模块被存储在bmc的非易失性存储器的多个读写(rw)分区中的一个读写(rw)分区中,每个rw分区包括可独立更新服务模块,其中可独立更新服务模块中的每个可独立更新服务模块包括应用、库和驱动中的至少一项;将bmc更新包存储在bmc的易失性存储器中;利用更新服务模块代替非易失性存储器的rw分区中存储的现有服务模块;以及重启bmc的与更新服务模块相关联的服务。
7.根据本发明的另一种实施方式,一种将文件传递至基板管理控制器(bmc)的方法包括:接收来自部署代理的命令,该命令指令bmc进入传递模式;标识bmc的易失性存储器的分区,并且将易失性存储器的分区挂载到通过存储器接口连接到bmc的主机计算设备,作为虚拟存储器驱动;通过对虚拟存储器驱动的写入操作,将文件存储在易失性存储器中,而将文件从主机计算设备传递到bmc;以及从主机计算设备卸载易失性存储器的分区。
附图说明
8.将参考附图描述根据本公开的各种实施例,其中:
9.图1是根据本公开的示例实施方式的用于更新bmc的固件的计算系统的示意图。
10.图2图示了描绘根据本公开的示例实施方式的用于将数据从主机计算设备传递到bmc的方法的流程图。
11.图3图示了描绘根据本公开的示例实施方式的用于更新bmc的固件的方法的流程图。
12.图4图示了描绘根据本公开的示例实施方式的用于更新bmc的固件的方法的流程图。
13.图5示出了适于实现本文描述主题的一个或多个实施方式的示例计算系统。
具体实施方式
14.在下面的详细描述中,参考了构成其一部分的附图,并且在附图中通过说明特定实施例的方式示出。对这些实施例进行了足够详细的描述以使本领域技术人员能够实践该技术,并且应当理解,可以利用其他实施例并且可以在不背离本公开的精神和范围的情况下进行结构、逻辑和电气上的改变。因此,以下详细描述不应当以限制意义理解,并且范围仅由所附权利要求及其等同物来限定。图中相同的附图标记指代相同的组件,这从使用的上下文中应当是明显的。
15.本公开的各种实施方式描述了用于更新bmc的固件以及在bmc和主机计算设备之间传递数据的技术。本主题描述了基于服务的bmc更新,其中bmc的固件被划分为可单独更新的服务模块,从而允许bmc在无需重写整个bmc blob映像的情况下被更新。出于解释而非限制的目的,服务模块是由bmc提供的服务的来源,并且可以包括单独的bmc服务或应用(例如,风扇管理服务/应用)、驱动和/或与单独的服务或应用相关联的库。
16.如上所述,bmc的固件包括引导加载器、内核、配置数据和根文件系统。根文件系统被存储在bmc的非易失性存储器(例如spi闪存驱动)的只读分区中。bmc的根文件系统包括多个可执行应用及其库。当bmc的固件被视为整体二进制blob时,由固件提供的特定服务所需的更新需要更新整个固件。例如,对bmc固件的配置的更新需要对整个bmc固件映像的更新,包括根文件系统的应用/服务中的每个应用/服务。
17.此外,对整个bmc固件的更新需要完整的bmc重新引导/重启。这会产生可用性方面的问题。例如,当bmc复位时,bmc的关键功能无法用于结构管理。因此,如果bmc所连接的网络结构正在监测bmc健康状态,并且bmc由于更新或复位而不可用,则网络结构可以确定bmc不可用并且可以将硬件置于不健康状态,进一步影响可用性。
18.在本主题的一个方面中,通过将bmc的非易失性存储器划分为包括可独立更新服
务模块的多个读写(rw)分区,在bmc更新期间增加了bmc的可用性。例如,由bmc的根文件系统提供的服务可以被分类为单独的服务模块,每个服务模块被存储在不同的rw分区上。不同的服务模块可以均包括单独的应用、应用的分组、应用的库、应用及其库等。具有用于不同服务模块的多个rw分区允许对bmc提供的服务进行独立更新。因此,无需bmc的全部重启,并且增加了系统可用性。
19.在本主题的另一方面,可以通过提供从主机计算设备到bmc的高带宽协议和高带宽接口以更新bmc服务,来增加bmc可用性。为此,bmc可以将其自己的易失性存储器的一部分挂载到主机计算设备上作为虚拟存储器驱动,以便以主机计算设备的存储器驱动的本机速度传递数据,从而允许更新包的数据传递在更短的持续时间内完成。
20.尽管在整个本公开内容中进行了具体描述,但本公开的代表性示例在广泛的应用范围内具有实用性,并且上述讨论不旨在并且不应当被解释为限制性,而是被提供为对本公开的方面的说明性讨论。
21.图1图示了根据本主题的示例实施方式的用于更新bmc的固件的计算系统100的示意图。参考图1,计算系统100包括bmc 102和主机计算设备160。bmc 102经由诸如通用串行总线(usb)接口的高速带内接口150连接到主机计算设备160。此外,bmc可以经由带外接口140(例如智能平台管理接口/ipmi、redfish主机接口)连接到带外网络,诸如可信lan网络,其中管理流量的带外性质得到保证。在示例性实施方式中,bmc 102还可以通过带内接口150和/或带外接口140连接到计算设备142。计算设备142可以是提供用于更新bmc 102的服务的远程服务器。
22.主机计算设备160可以是通用计算机或无头计算机。主机计算设备160可以包括处理器162、存储器164和通信连接166。处理器162、存储器164和通信连接166可以驻留在主机计算设备的主板上。在某些实施方式中,bmc 102也可以被并入到主机计算设备160的主板上。
23.主机计算设备160的存储器164可以存储处理器162可以执行的机器可读指令。存储器164可以包括多个软件应用,包括主机操作系统(os)。处理器162是被配置为控制主机计算设备162的操作的主机处理器。
24.bmc 102是管理系统管理软件和平台硬件之间的接口的专用微控制器。不同类型的传感器可以被内置到计算机系统100中,bmc 102读取这些传感器以获得诸如温度、冷却风扇速度、管理状态、操作系统(os)状态等的参数。bmc 102监测和管理服务器硬件的组件。因此,bmc的服务优选在服务器通电期间始终可用。
25.bmc 102包括处理器104、非易失性存储器110、易失性存储器130和更新代理180。处理器104控制bmc 102的操作。处理器104可以执行固件,诸如引导加载器112、内核114、配置116和根文件系统120,或bmc 102中存储的其他代码。处理器104还可以执行更新代理180以更新bmc的固件。更新代理180可以是bmc的存储器(诸如非易失性存储器110和/或易失性存储器130)上存储的机器可读代码,用于执行bmc 102的固件的更新。
26.易失性存储器130被配置为在bmc 102的操作期间存储数据和信息。在本公开的某些实施方式中,易失性存储器130可以包括更新分区132,更新分区132用于执行bmc 102的固件的更新,这将在下面更详细地描述。易失性存储器130可以是随机存取存储器(ram)。
27.非易失性存储器110是非易失性数据存储介质,用于存储bmc 102的操作所需的计
算机可执行代码和数据。计算机可执行代码和数据可以包括bmc 102的固件,诸如引导加载器112、内核114、配置116和根文件系统120,以及bmc 102的其他必要固件或软件组件。非易失性存储器的示例可以包括闪存(例如,串行外围接口(spi)闪存驱动)、usb驱动、硬盘驱动或任何其他类型的数据存储设备。
28.引导加载器112是加载bmc 102的内核114的计算机程序。引导加载器112从非易失性存储器110被加载到易失性存储器130并且执行用于引导bmc 102的过程,诸如将内核114从非易失性存储器110带到易失性存储器130并且向内核114提供操作所需的信息。引导加载器112然后可以将控制传递给内核114。
29.内核114是bmc的操作系统(os)。内核114管理来自软件的i/o请求,并且将请求转换成针对处理器104的数据处理指令。内核114调解对bmc 102资源的访问,bmc 102资源包括处理器104、非易失性存储器110和易失性存储器130。
30.配置数据116包括使bmc 102能够操作的信息和数据。配置数据116可以包括bmc 102的媒体访问控制(mac)地址、内核引导参数、环境变量和其他用户特定文件。mac地址提供可用于bmc 102的因特网协议(ip)信息,这允许bmc 102的网络连接和网络支持以执行远程管理。内核引导参数和环境变量允许bmc 102正确运行内核114和其他监测和感测程序。
31.根文件系统120是所有应用/服务驻留之处。例如,根文件系统120包括用于执行多种服务的文件,诸如热管理服务、风扇速度服务、ipmi服务、功率上限服务、媒体重定向服务等。根文件系统120包括用于执行服务的应用、与应用相关联的库、驱动等。
32.在本主题的实施方式中,bmc 102的非易失性存储器110被分离成多个可独立更新的rw分区122-1、122-2、122-3、...、122-n。rw分区122-1、122-2、122-3、

、122-n中的每个rw分区包括服务模块124,并且服务模块124包括与由bmc 102提供的服务有关的一个或多个文件。根文件系统120的应用、库和驱动可以根据分类方法被分类为不同的服务模块124,以允许服务的独立更新。例如,bmc 102的每个应用可以被分离成不同的服务模块124,与应用相关联的库可以被分离成不同的服务模块124,并且驱动可以被分离成不同的服务模块124。在另一种配置中,每个应用及其一个或多个库可以被存储在分离的服务模块124中,并且驱动可以被分离成一个或多个服务模块124。在另一个示例中,通常一起更新的应用可以被分离成它们自己的服务模块124。多种配置是可能的,并且本公开不限于任何特定配置。
33.通过将服务分离成存储在rw分区122-1、122-2、122-3、...、122-n上的可独立更新的不同服务模块124,可以更新bmc 102的单个服务,而无需在更新过程期间更新bmc 102的服务中的所有服务。此外,可以复位单个服务以实现其更新,而不必更新整个bmc 102。考虑一个示例,其中bmc 102在诊断硬件后报告硬件错误,并且错误因为硬件设置的性质而不是实际故障而出现。例如,硬件中存在漏洞,该漏洞使得bmc 102在某个温度下,而不是在应当报告错误的实际温度下看到错误。当bmc 102被视为整体二进制文件时,整个bmc 102将需要更新,这导致大量不希望的停机时间。通过将bmc 102的服务分类为不同的服务模块并且将这些服务模块存储在分离的rw分区上,可以通过更新单个bmc服务模块而不是整个bmc 102来修复错误。此外,可以减少更新错误,因为更新仅集中在单个服务上,而不是在整个bmc 102上。因此,不必担心驻留在正被更新的服务模块124之外的服务中出现更新错误。
34.尽管在图1中关于根文件系统120示出了rw分区122-1、122-2、122-3、...、122-n,但是rw分区122-1、122-2、122-3、...、122-n和其中包含的服务模块124不限于bmc 102的固
件的根文件系统120。rw分区122-1、122-2、122-3、...、122-n和服务模块124也可以应用于bmc 102的固件的其他方面。例如,bmc 102的固件的配置数据116也可以有利地是它自己的在rw分区122-n内的服务模块124,或者可以被分为多个服务模块/rw分区。例如,如果在配置数据116中禁用了特征,则可以通过将配置数据116提供为其自己的rw分区122-n来更新配置数据116本身,而不必更新整个bmc 102。
35.更新代理180对被更新的服务模块124执行更新过程。更新代理180可以是bmc 102上存储的机器可读代码。在本公开的实施方式中,更新过程可以根据更新是带内还是带外而不同。对于带内更新,更新包通过主机计算设备160前进。对于带外更新,更新包通过安全带外连接140前进,安全带外连接140不暴露于主机计算设备160。
36.对于带内通信,bmc通常使用诸如ipmi的协议与主机计算设备通信。但是,这种协议引入了协议延时,因为协议增加了一定量的开销。这对更新不利,因为协议延时增加了实现更新所花的时间量。本公开的实施方式通过利用主机计算设备os对usb驱动的本机支持,绕过了该协议开销。在本公开的实施方式中,更新代理180实施特殊更新模式过程,其中bmc 102将临时更新分区132枚举到主机计算设备os上,作为虚拟存储器驱动165(诸如虚拟usb硬盘驱动),从而提供从主机计算设备160到bmc 102的高带宽协议和高带宽接口来更新bmc 102服务。
37.在更新代理180执行的更新过程中,更新代理180可以首先从计算设备142的更新部署代理144接收命令,该命令指令bmc 102进入特殊固件更新模式。当更新代理180接收到命令时,更新代理180将易失性存储器130的更新分区132挂载到主机计算设备160上,作为虚拟存储器驱动165。将易失性存储器130的更新分区132挂载到主机计算设备上可以涉及:bmc使用其虚拟存储器服务(例如,ipmi虚拟存储器服务)将更新分区挂载到主机计算设备160作为usb密钥,以便可以将数据直接写入到更新分区132。在更新分区132被挂载到主机计算设备160上之后,更新部署代理144可以导航到虚拟存储器驱动165,并且将包括更新服务模块的更新包写入到虚拟存储器驱动165。因此,bmc 102接收到bmc更新包,并且更新包经由更新部署代理144执行的写入操作而被存储在易失性存储器130中。
38.在更新部署代理144已经完成将更新包写入到虚拟存储器165设备之后,更新部署代理144可以向更新代理180传输命令以指示写入操作的完成。在接收到命令之后,更新代理180然后可以从主机计算设备160卸载更新分区132。更新代理可以通过例如使用其虚拟存储器服务从主机计算设备160卸载更新分区,来卸载更新分区132。然后,更新代理180可以利用bmc更新包中包括的更新服务模块,来代替非易失性存储器的对应rw分区122-n中的现有服务模块。
39.在本主题的某些实施方式中,从更新部署代理144接收的bmc更新包可以包括签名的更新服务模块。例如,更新部署代理144可以实施认证技术,例如,诸如签名验证、密钥匹配和其他这种技术。认证可以帮助确定有效的更新包,并且因此可以保护bmc 102免受安全攻击。当使用这种认证技术时,在利用更新服务模块代替非易失性存储器110中的对应现有服务模块之前,更新代理180可以认证写入到易失性存储器130的更新分区132的更新包。
40.在本公开的某些实施方式中,更新代理180可以包括计时器182。计时器182可以确定将更新包写入到更新分区132所花的时间是否超过预先确定时间。如果所花的时间超过预先确定时间,则出于安全目的,更新代理180可以从主机计算设备160卸载更新分区132并
且丢弃更新包。例如,在受破坏的主机计算设备160的情况下,不良行为者可能尝试安装大型恶意软件。实施计时器182防止了这种恶意软件被安装在bmc 102的非易失性存储器110上。除了计时器182之外,或者代替计时器182,更新代理180还可以通过虚拟存储器驱动165对写入bmc 102的任何文件的大小实施大小约束。
41.与更新代理180执行的带内更新过程不同,对于带外更新,更新包通过安全带外连接140前进,安全带外连接140不暴露于主机计算设备160。在这种情况下,更新部署代理144可以将更新包直接写入到更新分区132。为了将包直接写入到更新分区132,安全文件传递协议(sftp)可以被实施,并且可以被用来将更新包传递到更新分区132。在更新部署代理144完成写入过程之后,更新部署代理144可以向更新代理180发送指示写入过程的完成的命令。
42.与带内更新过程类似,在带外过程中,更新部署代理144可以对写入到更新分区132的更新包实施认证技术。在该情况下,在利用更新服务模块代替非易失性存储器110中的对应现有服务模块之前,更新代理180可以认证写入到更新分区132的更新包。
43.在本主题的实施方式中,在上述更新过程期间,现有服务模块可以在执行更新过程时从易失性存储器130运行。例如,当与服务模块124相关联的服务要由bmc 102执行时,服务模块124可以从其在非易失性存储器110中的rw分区122-n被传递到易失性存储器130的除更新分区132之外的部分。因此,可以在执行更新过程时,从易失性存储器130执行服务模块124。
44.图2图示了描绘根据本公开的示例实施方式的用于将数据从主机计算设备160传递到bmc 102的方法的流程图。
45.参考图2,在框201处,bmc 102接收到进入特殊传递模式的命令,以便可以将数据传递到bmc 102。例如,该命令可以由远程计算设备(诸如计算设备142)的部署代理144发送,或由主机计算设备160发送。例如,可以使用针对带内的ipmi协议或针对带外的redfish协议,将命令发送到bmc 102。
46.通常,使用诸如针对带内通信的ipmi或针对带外通信的redfish的协议,在主机计算设备160和bmc 102之间或在计算设备142和bmc 102之间传递数据。使用这些协议的数据传递具有一定量的协议开销,这会增加传递数据所花的时间。特殊传递模式是一种模式,在该模式中,计算机系统100利用主机计算设备160的存储器驱动的本机速度,来在主机计算设备160和bmc 102之间传递数据。例如,主机计算设备160具有将远程驱动挂载为usb硬盘驱动的能力,并且bmc 102可以控制该挂载操作。在特殊传递模式下,bmc 102将其自己的易失性存储器130挂载到主机计算设备160,从而促进主机计算设备160和bmc 102之间的数据传递。
47.在本主题的实施方式中,bmc 102接收的进入特殊传递模式的命令可以包括除了指示bmc 102应当将其易失性存储器130的分区挂载到主机计算设备160上的指示之外的信息。例如,该命令还可以包括要写入到易失性存储器130的文件的大小,以便bmc 102可以分配适当量的易失性存储器以挂载到主机计算设备160。
48.在框202处,bmc 102标识bmc 102的易失性存储器130中的分区132,以挂载到主机计算设备160作为虚拟存储器驱动165。在本主题的实施方式中,可以预先保留分区132以用于数据传递模式,或者分区132可以是动态分配的存储器分区。在框203处,bmc 102将该分
区132挂载到主机计算设备160上,作为虚拟存储器驱动165(例如,虚拟usb硬盘驱动)。
49.在框204处,通过借助对虚拟存储器驱动165的写入操作,数据被存储在bmc 102的易失性存储器130中。例如,对于远程计算设备142和/或主机计算设备160,虚拟存储器驱动165可以表现为usb硬盘驱动。为了将数据传递到bmc 102,主机计算设备160或远程计算设备142可以将数据写入到虚拟存储器驱动165,虚拟存储器驱动165又将数据存储在bmc的易失性存储器130上。
50.在写入操作完成之后,在框205处,bmc 102从主机计算设备160卸载分区132。在本主题的某些实施方式中,bmc 102可以从主机计算设备160或远程计算设备142接收命令,该命令表示写入操作完成并且bmc 102可以卸载虚拟存储器驱动165。
51.在本主题的实施方式中,参考图2描述的数据传递方法可以在多种情况下有用。例如,数据传递模式可以在将遥测数据从主机计算设备160传递到bmc 102时有用。此外,数据传递模式可以在更新bmc 102的固件时有用,将参考图3描述更新bmc 102的固件的实施方式。
52.图3图示了描绘根据本公开的示例实施方式的用于更新bmc的固件的方法的流程图。参考图3图示的过程可以被称为入站过程,因为数据通过主机计算设备160传递。
53.参考图3,在框301处,bmc 102从计算设备142的更新部署代理144接收更新命令,更新命令指令bmc 102进入特殊固件更新模式。例如,可以使用针对带内的ipmi协议、针对带外的redfish协议或其他可应用的协议,将该命令发送到bmc 102。在本主题的实施方式中,特殊更新模式是一种模式,在该模式中,bmc 102将其易失性存储器130的分区挂载到主机计算设备160上,作为虚拟存储器驱动165。
54.在本主题的某些实施方式中,bmc 102接收的进入特殊更新模式的命令可以包括除了指示bmc 102应当将其易失性存储器130的分区挂载到主机计算设备160上的指示之外的信息。例如,命令还可以包括要写入到易失性存储器130的更新包的大小,以便bmc 102可以分配适当量的易失性存储器以挂载到主机计算设备160。
55.在框302处,bmc 102将其易失性存储器130的更新分区132挂载到主机计算设备160,作为虚拟存储器驱动165。虚拟存储器驱动165可以对计算设备142表现为虚拟usb硬盘驱动。
56.在本主题的某些实施方式中,当将更新分区132挂载到主机计算设备160上时,bmc 102可以向虚拟存储器驱动165分配与bmc的全局唯一标识符(guid)相同的标识符。guid的使用为更新过程提供了附加的安全层。在这种实施方式中,在任何挂载操作之前,主机计算设备160可以通过ipmi协议获得bmc的guid。因此,主机计算设备160可以将通过ipmi协议获得的guid与虚拟存储器驱动165的标识符进行匹配,以确保虚拟存储器驱动165是可信的。
57.在框303处,bmc 102从更新部署代理144接收用于更新现有服务模块的bmc更新包。bmc更新包可以包括用于代替现有服务模块的更新服务模块。可以通过高带宽协议和高带宽通道接收bmc更新包,因为将更新分区132挂载到主机计算设备160的操作消除了协议开销,并且相反地,利用了主机计算设备160的存储器驱动的本机速度。
58.在本主题的某些实施方式中,从更新部署代理144接收的bmc包可以包括对其采用认证技术的更新服务模块。例如,更新部署代理144可以实施认证技术,诸如签名验证、密钥匹配和其他这种技术。认证可以帮助确定有效的更新包并且因此可以保护bmc 102免受安
全攻击。
59.在框304处,bmc更新包被存储在bmc的易失性存储器130的更新分区132中。
60.接收更新包以及将更新包存储在更新分区132中可以通过对虚拟存储器驱动165的写入操作来完成。例如,在发送更新包之前,计算设备142的更新部署代理144可以具有bmc的guid。guid例如可以由更新部署代理144在带内传输的情况下通过ipmi协议以及在带外传输的情况下通过redfish协议获得。因此,更新部署代理144可以导航到具有与bmc 102的guid相同的标识符的虚拟存储器驱动165。然后,更新部署代理144可以将更新包写入到虚拟存储器驱动165,虚拟存储器驱动165又将更新包传输和存储在易失性存储器130的更新分区132中。
61.在框305处,响应于bmc更新包被存储在易失性存储器130的更新分区132,bmc 102可以从主机计算设备160卸载更新分区132。在本主题的某些实施方式中,bmc 102可以响应于来自更新部署代理144的命令而卸载更新分区132。例如,更新部署代理144可以通过带内或带外通道发送控制分组,该控制分组指示其写入操作完成,这又发信号通知bmc 102应当从主机计算设备160卸载其更新分区132。
62.当从更新部署代理144接收的bmc更新包是对其采用认证技术的bmc更新包时,在框306处,在利用更新服务模块代替现有更新服务模块之前,bmc更新包被认证。认证可以确保更新包有效并且因此可以保护bmc 102免受安全攻击。为此,bmc 102可以采用各种认证技术,例如,诸如公钥-私钥对来验证更新包的真实性。如果bmc 102确定bmc更新包是有效包,则过程进行到框307。如果bmc 102确定bmc更新包无效,则丢弃bmc更新包。
63.在框307处,bmc 102利用固件更新包中包括的更新服务模块,来代替非易失性存储器110的对应rw分区122-n中的现有服务模块。
64.在某些实施方式中,包括现有服务模块的rw分区122-n可以是多个可独立更新的rw分区之一。即,bmc 102的非易失性存储器110可以被分离成多个可独立更新的rw分区122-1、122-2、122-3、...、122-n。rw分区122-1、122-2、122-3、...、122-n中的每个rw分区包括服务模块124,并且服务模块124是与bmc 102提供的服务有关的一个或多个文件。例如,根据分类方法,根文件系统120的应用、库和驱动可以被分类为不同的服务模块124,以允许服务的独立更新。
65.在某些实施方式中,在现有服务模块124正被更新时,与现有服务模块124相关联的服务可以在bmc 102中运行。例如,现有服务模块124可以被加载到易失性存储器130的除更新分区132之外的部分中,并且在更新过程期间,处理器104可以从易失性存储器130执行服务模块124以执行服务。因此,在后台进行更新时,当前服务没有中断。
66.在框308处,bmc 102重启与更新的服务模块相关联的服务,从而执行更新的服务模块中包括的新应用和/或库或驱动。此时,仅更新的服务被重启,并且所有其他服务不受影响。
67.图4图示了描绘根据本公开的示例实施方式的用于更新bmc 102的固件的方法的流程图。图4中图示的流程图示出了更新bmc固件的带外方法。
68.在框401处,bmc 102从更新部署代理144接收用于更新现有服务模块的bmc更新包。对于带外过程,bmc 102通过启用sftp来接收bmc更新包。在该情况下,更新部署代理144使用sftp连接到bmc 102,sftp启动到bmc 102的易失性存储器130的连接。
69.与入站过程类似,在本主题的某些实施方式中,从更新部署代理144接收的bmc更新包可以包括对其采用认证技术的更新服务模块。例如,更新部署代理144可以实施认证技术,例如,诸如签名验证、密钥匹配和其他这种技术。
70.在框402处,bmc更新包被存储在bmc 102的易失性存储器130的更新分区132中。bmc更新包可以通过更新部署代理144执行的对易失性存储器130的更新分区132的写入操作,而被存储在更新分区132中。
71.当从更新部署代理144接收的bmc更新包是已经对其采用认证技术的bmc更新包时,在框403处,在利用更新服务模块代替现有更新服务模块之前,bmc更新包被认证。认证可以确保更新包有效并且因此可以保护bmc 102免受安全攻击。与入站过程类似,bmc 102可以采用各种认证技术,例如,诸如公钥-私钥对来验证更新包的真实性。如果bmc 102确定bmc更新包是有效包,则过程进行到框404。如果bmc 102确定bmc更新包无效,则丢弃bmc更新包。
72.在框404处,bmc 102利用bmc更新包中包括的更新服务模块代替非易失性存储器110的rw分区122-n中存储的现有服务模块。类似于入站过程,在某些实施方式中,包括现有服务模块的rw分区122-n可以是多个可独立更新的rw分区122-1、122-2、122-3、...、122-n之一,每个rw分区具有存储在其中的服务模块124。
73.在框405处,bmc 102重启与更新的服务模块相关联的服务,从而执行更新的服务模块中包括的新应用和/或库或驱动。此时仅更新的服务被重启,所有其他服务不受影响。
74.与入站过程类似,在某些实施方式中,在现有服务模块被更新时,与现有服务模块相关联的服务可以在bmc 102中运行。
75.图5示意性地示出了可以执行上述方法和过程中的一个或多个的计算系统500的非限制性实施例。计算系统500以简化的形式被示出。计算系统500可以实施图1的bmc 102或计算机系统100。计算系统500可以采取以下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备,以及可穿戴计算设备(诸如,智能手表和头戴式增强现实设备)。
76.计算系统500包括逻辑处理器502、易失性存储器503和非易失性存储设备504。计算系统500可以可选地包括显示子系统506、输入子系统508、通信子系统510和/或图5中未示出的其他组件。
77.逻辑处理器502包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实现这种指令以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果,或以其他方式达到期望的结果。例如,逻辑处理器可以实施图1的bmc处理器104。
78.逻辑处理器502可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器502可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器502的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的各个组件可选地可以分布在两个或更多个分离的设备中,这些设备可以被远程定位和/或配置成用于
协同处理。逻辑处理器的各方面可以由在云计算配置中配置的远程可访问的联网的计算设备虚拟化和执行。应当理解,在这种情况下,这些虚拟化方面在各种不同的机器的不同物理逻辑处理器上运行。
79.非易失性存储设备504包括一个或多个物理设备,其被配置为保持由逻辑处理器可执行的指令以实现本文所描述的方法和过程。当实现这种方法和过程时,可以变换非易失性存储设备504的状态例如以保持不同的数据。非易失性存储设备504可以例如实施在图1中示出的非易失性存储器110。
80.非易失性存储设备504可以包括可移除和/或内置的物理设备。非易失性存储设备504可以包括光学存储器(例如,cd、dvd、hd-dvd、蓝光盘等)、半导体存储器(例如,rom、eprom、eeprom、flash存储器等),和/或磁存储器(例如,硬盘驱动、软盘驱动、磁带驱动、mram等)或其他大容量存储设备技术。非易失性存储设备504可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。应当理解,非易失性存储设备504被配置为即使在切断非易失性存储设备504的功率时也保持指令。
81.易失性存储器503可以包括物理设备,其包括随机存取存储器。逻辑处理器502通常利用易失性存储器503以在软件指令的处理期间临时存储信息。应当理解,当切断易失性存储器503的功率时,易失性存储器503通常不继续存储指令。易失性存储器504可以例如实施在图1中描绘的易失性存储器130。
82.逻辑处理器502、易失性存储器503和非易失性存储设备504的各方面可以被集成在一起成为一个或多个硬件逻辑组件。例如,这种硬件逻辑组件可以包括现场可编程门阵列(fpga)、程序和应用专用集成电路(pasic/asic)、程序和应用专用标准产品(pssp/assp)、片上系统(soc)和复杂可编程逻辑器件(cpld)。
83.术语“模块”、“程序”、“机制”和“引擎”可以被用来描述计算系统500的方面,通常由处理器以软件实现计算系统500的方面,以使用易失性存储器的各部分来执行特定功能,该功能涉及专门将处理器配置成执行该功能的变换性处理。因此,可以经由逻辑处理器502使用易失性存储器503的各部分执行由非易失性存储设备504保持的指令,来实例化模块、程序或引擎。应当理解,可以从相同的应用、服务、代码块、对象、库、例程、api、功能等来实例化不同的模块、程序、机制和/或引擎。同样,可以由不同的应用、服务、代码块、对象、例程、api、功能等来实例化相同的模块、程序、机制和/或引擎。术语“模块”、“程序”、“机制”和“引擎”可以涵盖单独的或各组可执行文件、数据文件、库、驱动、脚本、数据库记录等。
84.当被包括时,显示子系统506可以被用来呈现由非易失性存储设备504保持的数据的视觉表示。视觉表示可以采取图形用户界面(gui)的形式。由于本文所描述的方法和过程改变由非易失性存储设备保持的数据,并且因此变换非易失性存储设备的状态,所以显示子系统506的状态同样可以被变换以在视觉上表示在基础数据中的改变。显示子系统506可以包括利用几乎任何类型的技术的一个或多个显示设备。这种显示设备可以在共享封装中与逻辑处理器502、易失性存储器503和/或非易失性存储设备504组合,或者这种显示设备可以是外围显示设备。
85.当被包括时,输入子系统508可以包括一个或多个用户输入设备(诸如键盘、鼠标、触摸屏或游戏控制器)或与其接口连接。在一些实施例中,输入子系统可以包括所选择的自然用户输入(nui)组件或与其接口连接。这种组件可以是集成的或外围的,并且输入动作的
转换和/或处理可以在板上或板外被处理。示例nui组件可以包括用于讲话和/或语音标识的麦克风;用于机器视觉和/或姿势标识的红外、彩色、立体和/或深度相机;用于运动检测和/或意图标识的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件;和/或任何其他合适的传感器。
86.当被包括时,通信子系统510可以被配置为将本文所描述的各种计算设备彼此通信地耦合,并且与其他设备通信地耦合。通信子系统510可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置为用于经由无线电话网络,或有线或无线局域网或广域网(诸如,wi-fi连接上的hdmi)的通信。在一些实施例中,通信子系统可以允许计算系统500经由诸如因特网的网络向其他设备发送消息和/或从其他设备接收消息。
87.本文中使用的术语仅用于描述特定实施例的目的,并不旨在进行限制。如本文所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应当理解,当在本说明书中使用时,术语“包括”、“包含”、“具有”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或它们的组的存在或添加。
88.所附权利要求中的所有部件或步骤加功能元素(如果有的话)的对应结构、材料、动作和等效物旨在包括用于与具体要求保护的其他要求保护的元素结合来执行功能的任何结构、材料或动作。本描述是为了说明和描述的目的而被呈现,但并不旨在穷举或限制于所公开的形式。在不脱离本公开的范围和精神的情况下,许多修改和变化对于本领域技术人员来说将是明显的。选择和描述实施例是为了最好地解释本公开的原理和实际应用,并且使本领域技术人员能够理解本公开,以获得适于预期的特定用途的、具有各种修改的各种实施例。
89.尽管已经描述了具体实施例,但是本领域技术人员应当理解,存在与所描述的实施例等效的其他实施例。因此,应当理解,本公开不受具体说明的实施例的限制,而仅受所附权利要求的范围的限制。
90.根据本公开的一个方面,一种系统包括bmc,该bmc包括进程和存储器。存储器可以包括非易失性存储器和易失性存储器。非易失性存储器可以包括被分类为多个可独立更新服务模块的固件,可独立更新存储模块中的每个可独立更新存储模块被存储在非易失性存储器的读写(rw)分区上。每个可独立更新服务模块可以包括应用、库和驱动中的至少一项。存储器还可以包括可执行代码,当在处理器处执行时,该可执行代码被配置为执行固件更新。固件更新可以包括:接收bmc更新包,用于更新多个rw分区中的一个rw分区中存储的现有服务模块,其中bmc更新包包括更新服务模块;将bmc更新包存储在易失性存储器中;以及利用更新服务模块代替非易失性存储器的rw分区中存储的现有服务模块。
91.在该方面,在执行固件更新时,现有服务模块可以从易失性存储器运行。
92.在该方面,bmc更新包可以包括签名的更新服务模块,并且在将bmc更新包存储在易失性存储器中之后,在利用更新服务模块代替非易失性存储器的rw分区中存储的现有服务模块之前,固件更新还可以包括认证bmc更新包。
93.在该方面,bmc可以通过存储器接口连接到主机计算设备,并且固件更新还可以包括:在接收bmc更新之前,接收来自更新部署代理的更新命令,更新命令指令bmc进入固件更
新模式;以及将易失性存储器的分区挂载到主机计算设备上作为虚拟存储器驱动,其中bmc更新包通过对虚拟存储器驱动的写入操作而被存储在易失性存储器中。
94.在该方面,存储器总线可以包括通用串行总线(usb),并且虚拟存储器驱动可以包括虚拟usb硬盘驱动。
95.在该方面,固件更新还可以包括:确定将bmc更新包写入到易失性存储器所花的时间是否超过预先确定时间;当写入bmc所花的时间超过预先确定时间时,卸载易失性存储器的分区并且丢弃bmc更新包。
96.在该方面,固件更新还可以包括:从更新部署代理接收指示写入操作完成的命令;并且从主机计算设备卸载易失性存储器的分区。
97.在该方面,bmc可以通过带外接口连接到更新部署代理。
98.在该方面,带外接口可以是局域网(lan)接口。
99.在该方面,bmc可以通过安全文件传递协议(sftp)接收更新包。
100.根据本公开的另一方面,一种更新基板管理控制器(bmc)的固件的方法可以包括:接收bmc更新包,bmc更新包包括用于更新bmc的现有服务模块的更新服务模块,现有服务模块被存储在bmc的非易失性存储器的多个读写(rw)分区中的一个读写(rw)分区中,每个rw分区包括可独立更新服务模块,其中每个可独立更新服务模块包括应用、库和驱动中的至少一项;将bmc更新包存储在bmc的易失性存储器中;利用更新服务模块代替非易失性存储器的rw分区中存储的现有服务模块;以及重启bmc的与更新服务模块相关联的服务。
101.在该方面,bmc更新包可以包括签名的更新服务模块,并且方法还可以包括:在将bmc更新包存储在bmc的易失性存储器中之后,对签名的更新服务模块进行认证。
102.在该方面,方法还可以包括:在接收bmc更新包之前,接收来自更新部署代理的更新命令,更新命令指令bmc进入固件更新模式;将易失性存储器的分区挂载到通过存储器接口连接到bmc的主机计算设备上,作为虚拟存储器驱动;其中bmc更新包通过对虚拟存储器驱动的写入操作而被存储在易失性存储器中。
103.在该方面,存储器接口可以包括通用串行总线(usb),并且虚拟存储器驱动可以包括虚拟usb硬盘驱动。
104.在该方面,方法还可以包括:从更新部署代理接收指示写入操作完成的命令;并且从主机计算设备卸载易失性存储器的分区。
105.在该方面,bmc可以通过带外接口连接到更新部署代理。
106.在该方面,带外接口可以是局域网(lan)接口。
107.在该方面,bmc可以通过安全文件传递协议(sftp)接收更新包。
108.在本公开的另一方面,一种用于将文件传递到基板管理控制器(bmc)的方法可以包括:接收来自部署代理的命令,该命令指令bmc进入传递模式;标识bmc的易失性存储器的分区,并且将易失性存储器的分区挂载到通过存储器接口连接到bmc的主机计算设备,作为虚拟存储器驱动;通过对虚拟存储器驱动的写入操作,将文件存储在易失性存储器中,而将文件从主机计算设备传递到bmc;以及从主机计算设备卸载易失性存储器的分区。
109.在该方面,存储器总线可以包括通用串行总线(usb),并且虚拟存储器驱动可以包括虚拟usb硬盘驱动。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1