设备硬件代理的制作方法

文档序号:6352469阅读:258来源:国知局
专利名称:设备硬件代理的制作方法
技术领域
本发明涉及连接到联网计算机中的一个或多个电子部件的设备硬件代理。
背景技术
软件代理常常被加载到服务器中以收集关于在服务器中操作的电子部件的信息。此信息被传送到另一电子设备,诸如外部管理服务器,因此用户能够管理和诊断服务器。常常要求单独的软件代理以用于被管理的每个服务器部件。
软件代理能够提供信息和对设备操作的某些控制,但是常常要求服务器上的网络接口卡(NIC)专用于将此信息传送至外部管理服务器。为了与外部管理服务器通信,软件代理消耗被管理的服务器上的存储器和处理资源,并且可能产生操作系统(OS)的软件问题。


图1示出了根据示例性实施方式的包括具有设备硬件代理的多个被管理的服务器和多个远程管理控制台的联网计算机系统。
图2示出了根据示例性实施方式的具有多个设备硬件代理的被管理的服务器的方框图。
图3是根据示例性实施方式的用于管理具有一个或多个设备硬件代理的服务器的流程图。
图4是根据示例性实施方式的在没有重启服务器的情况下经由设备硬件代理向服务器中的电子部件提供固件更新的流程图。
图5是根据示例性实施例的设备硬件代理。
具体实施方式
示例性实施例涉及利用一个或多个设备硬件代理来管理和控制计算机或服务器中的部件的设备和方法。
在一个示例性实施例中,设备硬件代理是连接到的电子设备并执行各种功能、诸如监视库存、健康状态和统计的微控制器。一个或多个微控制器监视电子设备中的一个或多个部件。举例来说,此类部件包括但不限于网络接口卡(NIC)、主机总线适配器(HBA)、存储控制器以及中央处理单元(CPU)。
设备硬件代理收集信息并将此信息传送到基板管理控制器,其提供用于用户检查所收集信息的接口。例如,在图形用户接口(GUI)、命令行接口(CLI)或应用程序接口(API)上提供该信息。
每个设备硬件代理具有两个接口。一个接口与带外(OOB )管理处理器来传送信息,诸如基板管理控制器(BMC)。另一接口与正在被监视和/或控制的设备来传送信息(即发送和接收)(例如,与NIC、HBA、CPU等传送信息)。
通信可以用各种类型的通信路径发生,诸如串行、集成电路间(i2C)以及以太网。此外,被传送的信息可独立于被管理的设备在标准化API中访问。微控制器与被监视的电子设备之间的连接是基于设备本身,诸如联合测试行动小组(JTAG)。
设备管理接口允许在不影响OS接口的情况下进行设备的管理和控制。可以使用接口,因为其已被嵌入类似于NIC和RAID控制器的设备中。示例性接口包括但不限于JTAG接口、i2C、串行、以太网、GPIO以及SPI。部件可以使用这些示例性接口中的一个或多个。
为了对设备硬件代理进行自定义以理解如何访问设备特定信息,设备指定参数被与关于设备特定访问的细节(JTAG模式、地址寄存器、数据格式、信息的用户可见名称、读或读/写能力等)一起编程到设备特定固件中的设备硬件代理中。另外,设备代理可以包括每种类型的设备管理接口中的一个或多个以允许单个设备代理管理诸如多个NIC的多个相同设备。
设备硬件代理固件被划分成两部分,一部分用于公共API固件且另一部分用于设备特定固件。此划分允许计算机制造商设计公共API固件以匹配其基板管理控制器(BMC),并且允许设备制造商设计设备特定固件以使用设备管理接口来对接到其特定设备并与由计算机制造商提供的公共API固件通信。可以在设备硬件代理固件开发期间使用设备硬件代理调试接口,但是此调试接口可能在生产中未被连接。可以使用设备硬件代理存储器来实现公共API固件与设备特定固件之间的通信,但是其还可以使用公共API接口。
设备硬件代理在BMC接口上提供公共API,因此BMC不必对设备特定数据进行编码,但是提供设备的信息和控制,如在公共API中所指示。
设备硬件代理将信息(例如,库存、健康状态以及统计)传送至基板管理控制器,并且还接收用以控制和/或管理设备硬件代理被连接到的电子设备的命令。例如,设备硬件代理接收用以改变电子设备的行为的命令,诸如接收用以改变NIC上的端口的媒体接入控制(MAC)地址的命令。到设备硬件代理的其他命令使得能够更新电子设备上的固件,或者启用或禁用端口。
在制造期间,设备硬件代理被编程为连接电子设备中的特定电子部件并与之通信(例如,被编程为与HBA、NIC、CPU等通信)。以这种方式,可以使用具有类似或相同硬件部件的两个设备硬件代理来管理不同的电子部件。例如,一个设备硬件代理被编程为与服务器中的存储控制器对接,并且另一设备硬件代理被编程为与服务器中的NIC对接。使设备硬件代理在两个接口上被数据驱动允许设备硬件代理中的固件足够灵活而用用于每个设备的自定义固件图像来支持不同的设备。
在一个实施例中,单个设备硬件代理管理单个电子部件在另一实施例中,单个设备硬件代理管理多个相同电子部件。
在另一实施例中,可以将多个设备硬件代理嵌入诸如基板管理控制器的单个设备中以管理服务器或计算机中的多个不同电子部件。
在另一实施例中,可以将设备硬件代理嵌入部件设备中,在不要求单独设备硬件代理ASIC的情况下提供用于到BMC的直接连接的BMC接口。
设备硬件代理在没有对安装OS代理的依赖性的情况下提供用于设备的信息和控制。由于设备管理是通过公共API实现的,所以BMC和外部管理服务器两者能够在不必编写或执行设备特定管理代码的情况下为设备管理提供公共管理代码。
根据示例性实施例的硬件代理因此在没有任何CPU或PCIe总线利用的情况下替换OS软件代理功能(B卩,设备的监视、设备的控制以及设备的收集操作统计)。这移除了跨所有被支持的操作系统开发和维护OS代理代码的需要,并且允许跨各种操作系统的服务器中的不同设备的管理监视。例如,用于CPU的设备硬件代理可以替换基本输入/输出系统(BIOS)系统管理接口(SMI)代码,其执行功率管理、存储器错误监视及其他SMI功能以消除用于CPU监视和控制的任何服务器性能影响。
此外,可以使用带外通信通过BMC来实现设备的管理以完全使管理通信与计算机OS隔离。
图1是包括与一个或多个远程管理设备或控制台140 (被示为RMD A至RMD M)通信的多个被管理的计算机120 (被示为计算机A至计算机N)的联网计算机系统100。被管理的计算机120包括用于独立于操作系统(OS)来捕捉、分析、压缩信息并将其传送到远程管理设备140的特殊电路和软件。此电路和软件在不考虑存在于被管理的服务器上的OS的存在或类型的情况下操作。因此,远程管理设备140能够从远程控制台访问被管理的服务器120、与之相交互并对其进行监视。
—个示例性实施例使用嵌入式服务器管理技术,诸如iLO (integratedLights-Out manager集成无人职守)。远程服务器管理设备促进服务器计算机系统的远程访问和管理。远程控制台功能允许用户从称为管理控制台或远程管理设备(RMD)的另一计算机访问服务器。管理控制台使得用户能够与服务器相交互,如同用户在物理上在服务器处并用例如被附接于服务器的显示器与服务器相交互一样。
一个或多个网络130可以是能够在两个设备之间传送数据的任何种类的网络。在没有限制的情况下,网络的某些示例包括局域网(LAN)、广域网(WAN)、硬接线点到点连接、通过电信线路的点到点连接、无线连接以及因特网连接。
被管理的服务器120不限于任何特定类型的服务器,并且包括但不限于应用服务器、网络服务器、数据库服务器等。在一个示例性实施例中,管理的服务器是刀片计算机,诸如在机架、外壳或数据中心中操作的刀片服务器。
根据本发明的实施例不限于任何特定类型的联网计算机系统。被管理的服务器和/或远程管理设备包括各种便携式和非便携式计算机和/或电子设备,包括但不限于计算机(便携式和非便携式)、服务器、主机计算机、分布式计算设备、膝上型计算机以及其他电子设备和系统,无论此类设备和系统是便携式还是非便携式的。
图2示出了包括被连接到多个设备硬件代理210A、210B、210C和210D的基板管理控制器205 (诸如服务器iLO管理器)的被管理的服务器200的方框图。每个设备硬件代理包括公共API并连接到服务器中的不同电子部件。示例性实施例用标准电和API定义两者将iLO管理器与设备硬件代理之间的接口标准化。将API和电接口标准化减少了用来支持服务器的硬件和iLO固件设计两者。
设备硬件代理210A经由CPU接口 222连接到CPU 220。CPU 220包括存储器接口224和外围部件高速互连(PC1-E或PCIe)连接226。设备管理器接口 228将基板管理控制器或服务器iLO管理器205连接到设备硬件代理210A。
设备硬件代理210B经由RAID接口 232和PCIe连接234连接到RAID控制器230。RAID控制器230包括多个设备端口 236。设备管理器接口 238将基板管理控制器或服务器iLO管理器205连接到设备硬件代理210B。
设备硬件代理210C经由NIC接口 242和PCIe连接244而连接到双端口 NIC 240。双端口 NIC 240包括多个设备端口 246。设备管理器接口 248将基板管理控制器或服务器iLO管理器205连接到设备硬件代理210C。
设备硬件代理210D经由HBA 252和PCIe连接254连接到选项卡设备250(例如,HBA)。选项卡设备250包括多个设备端口 256。设备管理器接口 258将基板管理控制器或服务器iLO管理器205连接到设备硬件代理210D。
在服务器中被管理的电子部件一般不包括公共调试接口。然而,设备硬件代理包括一个或多个接口,诸如i2C、串行、JTAG, GPIO以及SPI,其允许设备硬件代理中的卖方特定固件访问内部寄存器并控制电子部件。
设备管理器接口 228、238、248和258是标准或公共硬件接口。例如,此接口可以是已被包括在iLO设计中的接口,并且可以是在外围部件互连(PCI)选项卡和夹层卡上可用的接口。
图3是根据示例性实施方式的用于管理具有一个或多个设备硬件代理的服务器的流程图。
根据方框300,位于服务器中的一个或多个设备硬件代理收集关于一个或多个电子部件的信息。例如,设备硬件代理收集关于CPU、RAID控制器、HBA、NIC以及服务器刀片夹层卡的操作的信息。
根据方框310,由设备硬件代理收集的信息被位于服务器中的基板管理控制器(BMC)读取或传送到该基板管理控制器(BMC)。每个设备硬件代理包括一个或多个不同接口以使得设备硬件代理能够与不同电子部件和BMC通信。
在一个实施例中,每个设备硬件代理被连接到一个电子部件并收集关于该电子部件的信息。在另一实施例中,单个设备硬件代理被连接到多个不同的电子部件(例如NIC、HBA、CPU、控制器等)并收集关于该电子部件的信息。
根据方框320,所收集的信息被传送到远程管理服务器。例如,远程管理设备处的用户经由服务器iLO管理器登录到服务器中并检索所收集的信息。用户还可以通过设备硬件代理将数据和命令传送到BMC或服务器iLO管理器和电子部件。
图4是在不将服务器重启的情况下经由设备硬件代理向服务器中的设备(B卩,电子部件)提供固件更新的方框图。
根据方框400,基板管理控制器接收用于联网计算机中的设备的新固件更新。
根据方框405,BMC向设备硬件代理发送用于该设备的固件更新命令。
根据方框410,设备硬件代理中的固件通知OS设备驱动器,将发生固件更新。此通知促使设备驱动器停止到设备的进一步OS数据传输请求。
根据方框420,设备硬件代理中的固件流式传输来自BMC的固件更新并更新设备固件。
根据方框430,在固件更新完成之后,设备硬件代理通过设备的硬件重置来激活新的固件。此设备硬件重置在不将服务器重启的情况下发生。
根据方框440,在设备从重启初始化之后,设备硬件代理通过设备向OS设备驱动器发送消息以将完成的固件更新通知驱动器。例如,发送OS特定消息,其指示接收到用于设备的“热拔插”PCI事件,并且设备被初始化。此初始化并不要求OS重启。
根据方框450,OS驱动器将设备重新初始化并在初始化完成时通知设备硬件代理。
根据方框460,设备硬件代理通知BMC,固件更新完成,包括OS驱动器重新初始化。
图4的这种方法还可以扩展至使用设备硬件代理和设备的设备驱动器更新(例如,在通过设备硬件代理将OS设备驱动器从iLO管理器上传到当前OS设备驱动器的情况下)。新设备驱动器将重新加载(例如,使用同一“热拔插”PCI事件消息并将设备重新初始化)。
图5是根据示例性实施例的设备硬件代理500。在一个实施例中,设备硬件代理500是包括被耦合到存储器520的处理器核510的微控制器。提供了第一接口 530以与计算设备(例如,iLO管理器)通信,并且提供了一个或多个第二接口 540以与计算设备中的电子部件通信。第一接口 530是BMC接口,诸如i2C、串行以太网、GPIO、JTAG、SPI等。第二接口 540是设备管理接口,诸如i2C、串行以太网、GPIO、JTAG, SPI等。处理器核510和存储器520耦合到设备代理固件550,其包括设备特定固件560和公共API固件570。
设备代理固件550耦合到公共API接口 580,诸如寄存器、邮箱等。
如在本文中和权利要求中所使用的,如下定义以下术语: 术语“公共API ”或“标准化API ”是应用编程接口,其将各种不同的设备抽象成公共的一组硬件设备管理器接口命令(示例:示出设备名、示出固件版本或更新固件)。
术语“硬件”是电子设备的物理部件(例如,服务器的部件)。硬件是有形的(即,能够被触摸),与不是有形的软件相反。
术语“集成无人职守”(iLO)或基板管理控制器(BMC)是服务器管理技术,其使得远程电子设备或计算机能够从远离服务器的位置对服务器执行活动。例如,iLO卡具有单独的网络连接及其自己的IP (网际协议)地址,用户可以在因特网上通过HTTP (超文本标记语言)连接到该IP地址。远程电子设备可以执行诸如将服务器重置、对服务器上电、接管服务器的屏幕、安装去除物理⑶/DVD驱动器或图像、访问服务器的ML (集成管理日志)以及为服务器提供远程控制台的动作。
此外,可以使用iLO和BMC作为带外管理技术。
术语“微控制器”是包括处理器核和存储器的单个集成电路。微控制器还可以包括可编程输入/输出(i/o)外围设备。
术语“带外通信”是与服务器OS数据分开的信息(例如控制信息)的交换。可以在与数据分开的专用信道上提供带外信息。
术语“带外管理”是甚至主网络子系统硬件或软件故障的情况下的系统控制台访问。此访问可以用控制台服务器或远程访问卡来提供。
在一个示例性实施例中,使本文所讨论的一个或多个方框或步骤自动化。换言之,设备、系统以及方法自动地发生。术语“自动化”或“自动地”(及其类似变体)意指设备、系统和/或过程在不需要人为干预、观察、努力和/或判定的情况下使用计算机和/或机械/电设备的受控操作。
根据示例性实施例的方法是作为示例提供的,并且不应将其理解为限制本发明范围内的其他实施例。此外,可以将在不同图内所讨论的方法或步骤添加到其他图中的步骤方法或与之互换。此外,应将特定数值数据值(诸如特定量、数、种类等)或其他特定信息解释为说明性的,以便讨论示例性实施例。此类特定信息不是为了限制示例性实施例而提供的。在某些示例性实施例中,本文所示的方法和与之相关联的数据和指令被存储在各存储设备中,其被实现为一个或多个计算机可读或计算机可用存储介质。存储介质包括不同形式的存储器,包括半导体存储器件,诸如DRAM或SRAM、可擦可编程只读存储器(EPR0M)、电可擦可编程只读存储器(EEPROM)和闪速存储器;磁盘,诸如固定磁盘、软盘和可移动磁盘;包括磁带的其他磁介质;以及诸如压缩磁盘(CD)或数字多功能磁盘(DVD)的光学介质。请注意,可以在计算机可读或计算机可用存储介质上提供上文所讨论的软件指令,或者替换地,可以在分布在具有可能多个节点的大型系统中的多个计算机可读或计算机可用存储介质上提供。此类计算机可读或计算机可用存储介质被视为物品(或制品)的一部分。物品或制品可以指的是任何制造的单个部件或多个部件。示例性实施例被实现为方法、系统和/或设备。作为一个示例,示例性实施例和与之相关联的步骤被实现为一个或多个计算机软件程序以实现本文所述的方法。该软件被实现为一个或多个模块(也称为代码子例程,或者面向对象编程中的“对象”)。软件编程代码例如被计算机或服务器的一个或多个处理器从某种类型的长期存储介质、诸如CD-ROM驱动器或硬盘驱动器访问。软件编程代码被体现或存储在多种已知物理和有形介质中的任何一个上以供数据处理系统使用或在任何存储器件中使用,该存储器件诸如半导体、磁或光学器件,包括磁盘、硬盘驱动器、CD-ROM、ROM等。代码被分布在此类介质上,或者通过到其他计算机系统的某种类型的网络从一个计算机系统的存储器或储存器分发给用户以供此类其他系统的用户使用。替换地,编程代码被体现在存储器中并被处理器使用总线来访问。用于在存储器中、在物理介质上体现软件编程代码和/或经由网络来分发软件代码的技术和方法是众所周知的,并且将不会在本文中进一步讨论。以上讨论意图说明各种示例性实施例的原理。一旦完全认识到以上公开,许多变更和修改对于本领域的技术人员而言将是显而易见的。意图在于将以下权利要求解释为涵盖所有此类变更和修改。
权利要求
1.一种服务器,包括: 电子部件; 基板管理控制器(BMC);以及 设备硬件代理,包括连接到电子部件的第一接口和连接到BMC的第二接口,其中,所述设备硬件代理包括处理器核和存储器,其监视电子部件的操作并在不利用软件代理的情况下向电子部件提供更新。
2.权利要求1的服务器,其中,所述电子部件是网络接口卡(NIC)、主机总线适配器(HBA)、控制器以及中央处理单元(CPU)中的一个。
3.权利要求1的服务器,其中,所述设备硬件代理收集关于电子部件的库存、健康状态或统计的信息并将此信息提供给BMC。
4.权利要求1、2或3的服务器,其中,第二接口提供BMC与设备硬件代理之间的带外通信路径。
5.权利要求1、2、3或4的服务器,其中,第一接口是联合测试行动小组(JTAG)接口。
6.—种计算机,包括: 第一和第二电子部件; 基板管理控制器(BMC),与第一和第二部件通信; 第一设备硬件代理,连接到BMC和第一电子部件以便收集关于第一电子部件的操作的信息并将此信息发射到BMC ;以及 第二设备硬件代理,连接到BMC和第二电子部件以便收集关于第二电子部件的操作的信息并将此信息发射到BMC。
7.权利要求6的计算机,其中,第一和第二电子部件是不同的,并且包括网络接口卡(NIC)、主机总线适配器(HBA)、控制器以及中央处理单元(CPU)中的一个。
8.权利要求6或7的计算机,其中,第一和第二设备硬件代理是微控制器并在不使用软件代理的情况下收集信息。
9.权利要求6的计算机,其中,所述第一和第二设备硬件代理两者用标准化应用程序接口(API)与LOM管理器通信。
10.权利要求6的计算机,其中: 所述第一设备硬件代理被用程序自定义以访问第一电子部件的设备特定信息,以便收集关于第一电子部件的操作的信息,以及 所述第二设备硬件代理被用程序自定义以访问第二电子部件的设备特定信息,以便收集关于第二电子部件的操作的信息。
11.一种由位于服务器中的设备硬件代理执行的方法,该方法包括: 由设备硬件代理来收集关于在服务器中操作的电子部件的信息; 由设备硬件代理将信息发射到位于服务器中的集成无人职守(iLO)管理器;以及 由设备硬件代理向电子部件提供固件更新,其中,所述设备硬件代理是微控制器。
12.权利要求11的方法,其中,所述设备硬件代理在制造期间被编程以与电子部件通 目。
13.权利要求11或12的方法,其中,所述设备硬件代理在没有对软件代理的依赖性的情况下收集关于在服务器中操作的电子部件的信息。
14.权利要求11的方法,还包括由设备硬件代理来收集关于在服务器中操作的多个不同电子部件的信息,其中,所述多个不同的电子部件包括网络接口卡(NIC)和主机总线适配器(HBA)。
15.权利要求11的方法,还包括将电子部件重置以在不将服务器重启的情况下激活固 件。
全文摘要
一种服务器包括电子部件、管理器基板管理控制器(BMC)以及设备硬件代理。该设备硬件代理监视电子部件的操作并在不利用软件代理的情况下向电子部件提供更新。
文档编号G06F15/76GK103154927SQ201080069646
公开日2013年6月12日 申请日期2010年10月16日 优先权日2010年10月16日
发明者M.麦克格劳 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1