使用来自外围设备的代码的管理处理器的制作方法

文档序号:13426416
使用来自外围设备的代码的管理处理器的制作方法
使用来自外围设备的代码的管理处理器

背景技术:
现代计算系统可以包括标准的组件配置。此外,一些计算系统可以通过增加外围设备来修改。例如,计算机服务器可以包括插槽和/或接口,以接纳诸如网络接口卡(NIC)、用户输入设备、存储设备等外围设备。附图说明结合下图来描述一些实现方式。图1是根据一些实现方式的示例系统的示意图。图2是根据一些实现方式的示例管理处理器和示例外围设备的示意图。图3A-3D是根据一些实现方式的用于提供管理接口的示例过程的示意图。图4是根据一些实现方式的用于提供管理接口的示例过程的流程图。图5是根据一些实现方式的示例的管理处理器的示意图。图6是根据一些实现方式的用于提供管理接口的示例过程的流程图。图7是根据一些实现方式的存储指令的示例的机器可读存储介质的图。具体实施方式计算设备的能力可以通过将计算设备与一组外围设备耦合来修改或增强。另外,计算设备可以包括管理处理器,其用于远程地或本地地管理与计算设备耦合的一组外围设备。如本文所使用的,管理处理器可以包括硬件处理器,其专用于计算设备的管理,并且能够以与计算设备的主处理器分离或隔离的方式来执行。管理处理器的示例可以包括基板管理控制器(BMC),其是嵌入在诸如服务器等计算设备的主板上的专门的微控制器。BMC能够支持智能平台管理接口(IPMI)体系结构,其定义了到能够被系统管理员利用来监视健康状态且管理计算设备的计算机硬件和固件的一组公用接口。BMC可以管理计算设备的系统管理软件与硬件之间的接口。计算设备的BMC能够提供对计算设备的远程管理访问,并且可以通过带外信道提供这种远程管理访问,这样就将管理通信与运行于计算设备上的操作系统(OS)的通信隔离。在一些实例中,BMC可以实现计算设备的远端控制管理,这提供了对计算设备的远程管理访问(例如,系统控制台访问),而不考虑计算设备是否加电,主网络子系统硬件是否在运作,或者OS是否正在操作,或者甚至OS是否已安装。一些管理处理器可以包括内置逻辑,其提供对与计算设备耦合的一组外围设备的管理(例如,远程或本地管理)。然而,管理处理器的内置逻辑可能不反映或使用可用于给定外围设备的所有的管理的方面。例如,管理处理器可能比外围设备更旧,并且因此管理处理器不能够访问外围设备中所包含的较新的技术。在另一示例中,管理处理器可以包括有限量的用于编程的存储器或存储,并且因此无法被更新以包括提供对与计算设备耦合的各种外围设备的管理的更新的内置逻辑。因此,管理处理器可能不提供可能关于特定外围设备可用的一些管理动作。根据一些实现方式,提供了用于外围设备的管理接口的示例。如下文进一步描述的,一些实现方式可以包括管理处理器,其从安装到或以其它方式连接到计算设备的外围设备读取管理代码。管理处理器可以执行管理代码以提供能够被远程客户端访问的管理应用编程接口(API)。在一些实现方式中,远程客户端可以使用管理API来管理外围设备。图1示出了根据一些实现方式的示例的系统100的示意图。如图所示,在一些实现方式中,系统100可以包括计算设备110和远程客户端160。计算设备110可以是例如计算机、便携式设备、服务器、网络客户端、通信设备等。此外,计算设备110可以是诸如刀片服务器、计算集群等相关或互连设备的任何群组。在一些实现方式中,计算设备110可以包括处理器115、存储器120、机器可读存储130和管理处理器140。此外,如图1所示,可以通过增加或连接一个或多个外围设备150来修改计算设备110。主处理器115可以是执行存储在机器可读存储130中的程序指令的硬件设备。例如,主处理器115可以是微处理器、微控制器、多个处理器、包括多个处理核心的微处理器等。存储器120可以是任何类型的计算机存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等)。在一些实现方式中,管理处理器140是与主处理器115分离、且专用于管理计算设备110的硬件设备。例如,管理处理器140可以是基板管理控制器(BMC)。在一些实现方式中,管理处理器140可以遵照智能平台管理接口(IPMI)标准,诸如在“智能平台管理接口规范,第二代”(2013年10月1日,v.2.0)中所描述的。在一些实现方式中,远程客户端160可以是与计算设备110远程地通信的计算设备。此外,远程客户端160可以包括各种硬件和/或软件组件(未示出)。例如,远程客户端160可以包括硬件处理器,其执行远程客户端软件或固件。然而,其它实现方式是可能的。例如,在一些实现方式中,远程客户端160可以是由主处理器115执行的软件或固件。在一些实现方式中,远程客户端160可以与管理处理器140交互以执行计算系统110的管理。在一些示例中,管理处理器140与远程客户端160之间的数据通信可以使用专用的管理信道(称为“带外通信”)。在一些实现方式中,即使当主处理器115被关闭或不活动时,管理处理器140也可以是能够访问远程客户端160的。在一些示例中,管理处理器140可以与一个或多个传感器(未示出)接合以监视计算设备110的环境条件。此外,在一些示例中,管理处理器140可以嵌入到或安装在计算设备110的主板(未示出)上。在一些实现方式中,远程客户端160可以与管理处理器140交互以执行外围设备150的管理动作。外围设备150的管理动作的示例可以包括运行诊断测试、升级软件或固件、控制电源状态、控制设备设置、读取设备数据,等等。在一些实现方式中,外围设备150可以是能够可移除地安装到计算设备110内的受器(receptacle)或插槽中的硬件模块。例如,外围设备可以是插接到计算设备的卡槽内的接口卡,插入驱动器托架中的硬盘驱动器等等。然而,其它实现方式是可能的。例如,外围设备150也可以在计算设备110之外。下面参考图2进一步描述管理处理器140和外围设备150的示例。现在参考图2,示出了根据一些实现方式的管理处理器140和外围设备150的示例的示意图。如图所示,在一些实现方式中,外围设备150可以包括外围设备存储152。在一些示例中,外围设备存储152可以是诸如闪存、只读存储器、硬盘驱动器、磁带等非易失性机器可读存储设备。在一些实现方式中,外围设备存储152可以永久地存储管理代码154。在一些示例中,管理代码154可以包括数字签名155。在一些实现方式中,管理处理器140可以包括外围识别器142、代码取回器144、代码执行器146、代码验证器148和内置的应用编程接口(API)149。管理处理器140的这些组件可以利用硬件(例如,电路)或与软件组合的硬件(例如,固件)来实现。在一些实现方式中,外围识别器142可以识别或检测在计算设备110中安装的外围设备150。例如,外围识别器142可以检测计算设备110的插槽或托架中的外围设备150(例如,接口卡)的安装。代码取回器144可以从外围设备150接收管理代码154。在一些实现方式中,代码取回器144可以从外围设备150读取管理代码154。例如,代码取回器144可以响应于外围识别器142检测到外围设备150的安装而访问管理代码154。在其它的实现方式中,外围设备150可以将管理代码154发送到代码取回器144。例如,外围设备150可以响应于外围设备150被安装在计算设备110中而自动地将管理代码154发送到代码取回器144。在一些实现方式中,代码取回器144可以利用内置API149来接收管理代码154。在一些示例中,内置API149可以提供对于特定类或类型的外围设备150为通用的有限的管理级别。例如,内置API149可以允许管理处理器140与标准网络接口设备进行一些基本通信。此外,在一些示例中,内置API149可以提供跨所有类或类型的外围设备150通用的一些管理级别。在一些实现方式中,代码执行器146可以执行由代码取回器144接收到的管理代码154。当由代码执行器146执行时,管理代码154可以在管理处理器140处提供管理API(图2中未示出)。管理API能够被远程客户端(例如,图1所示的远程客户端160)访问以管理外围设备150。在一些实现方式中,代码验证器148可以在管理代码154被代码执行器146执行之前验证和/或授权管理代码154。在一些示例中,代码验证器148可以分析数字签名155以确定管理代码154是否由受信任的源提供。此外,在一些示例中,代码验证器148可以分析用户提供的信息(例如,用户名和口令)以确定管理代码154是否被授权由管理处理器140执行。在一些实现方式中,代码验证器148可以确定是否存在许可访问管理代码154的许可证或密钥。代码验证器148可以仅在能够识别出这样的许可证或密钥的情况下才允许管理代码154的执行。在一些示例中,许可证或密钥可以包含在存储于计算设备110中的文件中(图1中示出)。在一些示例中,代码验证器148可以确定管理处理器140是否在安全环境中使用,并且可以在管理处理器140在安全环境中使用的情况下阻止管理代码154的执行。在一些示例中,关于管理处理器140是否在安全环境中使用的确定可以基于计算设备110的硬件跳接器或交换机、操作系统的标志/设定、网络环境的标志/设定、在计算设备110(图1中示出)上执行的应用的标志/设定等。图3A-3D是根据一些实现方式的用于提供管理接口的示例过程的示意图。具体地,图3A-3D示出了使用图1-2所示的设备和元件的示例操作的四种状态或阶段。现在参考图3A,示出了用于提供管理接口的示例过程的第一状态。在图3A的示例中,管理处理器140和外围设备150包含在同一计算设备(例如,图1所示的计算设备110)中。在一些实现方式中,管理处理器140可以包括引导程序API310和类API320。引导程序API310和类API320可以包含在内置API149(图2中示出)中。在一些示例中,外围设备150可以包括外围API156。如图3A所示,引导程序API310可以与外围设备150进行通信,并且可以识别外围设备150的类别(例如,设备类型、分类等)。在一些实现方式中,引导程序API310可与所有外围设备一起使用,并且可以识别安装在与管理处理器140相同的设备中的任何外围设备150的类别。在一些实现方式中,类API320可以是多类级API中的一个,每个类级(class-level)API与一个不同类的外围设备一起使用。因此,在图3A的示例中,所识别的外围设备150的类别(由引导程序API310确定)可用于选择对应的类API320。现在参考图3B,示出了示例过程的第二状态。在图3B的示例中,类API320对应于外围设备150的类别,并且可因此提供外围设备150的一些级别的管理。如所示,类API320可以从外围设备150接收管理代码154,并且可以提供管理代码154以便在执行环境330中执行。在一些实现方式中,执行环境330可以是由代码执行器146(图2中示出)提供的安全执行环境。例如,执行环境330可以与管理处理器140和/或计算设备110(图1所示)的其它过程或编程隔离。现在参考图3C,示出了示例过程的第三状态。如图3C所示,在执行环境330中执行管理代码154,在管理处理器140处提供了管理API340。在一些实现方式中,管理API340可由管理处理器140来注册,并且可以呈现给或暴露于其它的设备或客户端。现在参考图3D,示出了示例过程的第四状态。如图3D所示,远端客户端160可以访问管理API340以管理外围设备150。在一些实现方式中,当安全客户端160对管理API340进行请求时,管理处理器140使用执行环境330中的管理代码154来处理请求。此外,在一些实现方式中,执行环境330中的管理代码154可以将请求委派给外围设备150中所包括的外围API156,并且因此使得在外围设备150处执行管理动作。在一些实现方式中,外围API156可以专用于管理外围设备150。例如,外围API156可以提供外围设备150所独有和/或专有的管理动作。在一些实现方式中,管理代码154可以允许远程客户端160执行不是由管理处理器140的内置编程(例如,图2中所示的内置API149)提供的管理动作。值得注意的是,虽然图1-3D示出了示例的实现方式,其它实现方式是可能的。例如,可以预期到计算设备110可以包括任意数量的外围设备150。在另一示例中,可以预期到引导程序API310和类API320的特征可以组合到单个API中。在又一示例中,可以预期到管理处理器140和外围设备150可以包括附加的组件和/或API。在又一示例中,可以预期到引导程序API310可以实现为两个部分,第一部分包括在管理处理器140中,并且第二部分包括在外围设备150中。上文参考图1-3D所描述的任何特征可以与本文所描述的任何其它特征组合和/或使用。其它组合和/或变型也是可能的。现在参考图4,示出了根据一些实现方式的用于提供管理接口的过程400。过程400可由在图1-3D中所示的管理处理器140来执行。为了图示的原因,过程300的细节可以在下文参考图1-3D来描述,这些图示出了根据一些实现方式的示例。然而,其它实现方式也是可能的。在框410处,计算设备的管理处理器可以识别外围设备在计算设备中的安装。例如,参考图1,管理处理器140可以识别外围设备150在计算设备110中的安装。在框420处,响应于外围设备在计算设备中的安装,管理处理器可以利用内置API从外围设备读取管理代码。例如,参考图3B,管理处理器140可以利用类API320从外围设备150读取管理代码154。在框430处,管理处理器可以利用数字签名来验证管理代码。例如,参考图2,代码验证器148可以利用数字签名155来验证管理代码154。在框440处,管理处理器可以执行管理代码以提供管理API,远程客户端可以访问该管理API以管理外围设备。例如,参考图3C-3D,管理代码154在管理处理器140的执行环境330中执行,从而提供管理API340。管理API340能够被远程设备160访问以管理外围设备150。在框450处,可以从远程客户端接收对管理API的调用。例如,参考图3D,管理API340接收来自远程客户端160的请求。在框460处,响应于接收到的对管理API的调用,管理代码可以被执行以执行与管理外围设备相关的动作。例如,参考图3D,管理处理器140利用执行环境330中的管理代码154来处理接收到的请求。管理代码154将该请求委派给包含在外围设备150中的外围API156,并且可以使得管理动作在外围设备150处执行。在框460之后,过程400完成。现在参考图5,示出了示例的管理处理器500的示意图。管理处理器500可以大致与图1-3D所示的管理处理器140对应。如图所示,管理处理器500可以包括模块510-530。模块510-530可以利用硬件(例如,电路)或与软件组合的硬件(例如,固件)来实现。为了图示说明的原因,模块510-530的细节可以在下文参考图1-3D来描述,这示出了根据一些实现方式的示例。然而,其它实现方式也是可能的。模块510是识别安装在计算设备中的外围设备的外围识别器。例如,参考图2,外围识别器143可以识别或检测外围设备150在计算设备110中的安装。模块520是接收来自外围设备的管理代码的代码取回器。例如,参考图2,代码取回器144可以从外围设备150接收管理代码154。在一些实现方式中,代码取回器144可以从外围设备150读取管理代码154。在其它的实现方式中,外围设备150可以将管理代码154发送给代码取回器144。此外,在一些示例中,代码取回器144可以利用管理处理器140的内置API149来接收管理代码154。模块530是执行管理代码以在管理处理器处提供能够被远端客户端访问以管理外围设备的管理API的代码执行器,其中远端客户端在管理处理器之外。例如,参考图2,代码执行器146可以执行由代码取回器144接收到的管理代码154。当由代码执行器146执行时,管理代码154可以提供管理API340(图3C-3D中所示)。管理API340能够被远程客户端160访问来管理外围设备150。现在参考图6,示出了根据一些实现方式的用于提供管理接口的过程600。过程600可由图1-3D所示的管理处理器140来执行。为了图示说明的原因,下面可参考图1-3D描述过程600的细节,图1-3D示出了根据一些实现方式的示例。然而,其它实现方式也是可能的。在框610处,计算设备的管理处理器可以检测外围设备在计算设备中的安装。例如,参考图1,管理处理器140可以检测外围设备150在计算设备110中的安装。在框620处,管理处理器可以从外围设备读取管理代码。例如,参考图2,管理处理器140可以使用代码取回器144和/或内置API149来从外围设备150读取管理代码154。在框630处,管理处理器可以执行管理代码以在管理处理器处提供能够被远程客户端访问以管理外围设备的管理API,远程客户端在管理处理器之外。例如,参考图3C-3D,管理代码154由管理处理器140执行,从而提供管理API340。管理API340能够在管理处理器140处由远程设备160访问以管理外围设备150。在框630之后,过程600完成。现在参考图7,示出了存储根据一些实现方式的指令710-730的机器可读存储介质700。指令710-730可以由处理器(例如,图1-3D所示的管理处理器140)来执行。存储器机器可读存储介质700可以包括诸如硬盘驱动器、闪存、光盘等非暂态存储介质。指令710可以检测计算设备中安装的外围设备。例如,参考图1,管理处理器140可以检测外围设备150在计算设备110中的安装。指令720可以在检测到外围设备之后从外围设备接收管理代码。例如,参考图2,管理处理器140可以从外围设备150接收管理代码154。指令730可以执行接收到的管理代码以在管理处理器处提供能够被远程客户端访问以管理外围设备的管理API,远程客户端在管理处理器之外。例如,参考图3C-3D,执行管理代码154提供了在管理处理器140处的管理API340。管理API340能够被远程设备160访问以管理外围设备150。如上文所论述,提供了用于外围设备的管理接口的示例。一些实现方式可以包括从安装在计算设备中的外围设备读取管理代码的管理处理器。管理处理器可以执行管理代码以提供能够被远程客户端访问的管理API。在一些实现方式中,远程客户端可以使用管理API来管理外围设备。以这种方式,管理处理器可以提供对任意数量的外围设备的管理,并且无需包含涉及那些特定外围设备的内置编程。数据和指令存储在相应的存储设备中,存储设备实现为一个或多个计算机可读或机器可读存储介质。存储介质包括不同形式的非暂态存储器,包括半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存;磁盘,诸如固定盘、软盘和可移动盘;其它磁性介质,包括磁带;光介质,诸如压缩盘(CD)或数字视频盘(DVD);或其它类型的存储设备。注意,上文所述的指令可以在计算机可读或机器可读存储介质上提供,或者替代地,可以在分布于可能具有多个节点的大型系统中的多个计算机可读或机器可读存储介质上提供。这样的一个或多个计算机可读或机器可读存储介质被视为制品(article)(或制造物品)的一部分。制品或制造物品可以是指制造的任何单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器内,或者位于远程地点,可以通过网络从该远程地点下载机器可读指令以执行。在前面的说明中,阐述了若干细节来提供对本文公开的主题的理解。然而,实现方式可以在没有这些细节中的一些细节的情况下实践。其它实现方式可以包括对上面论述的细节的修改和改动。所附权利要求旨在涵盖这样的修改和改动。...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1