用于引导裸机计算设备的方法和设备与流程

文档序号:11971114阅读:190来源:国知局
用于引导裸机计算设备的方法和设备与流程
本申请总体上涉及改进的数据处理装置和方法,并且更具体地涉及用于提供用于实现自举重定向操作的模拟网络引导环境的机制。

背景技术:
计算设备通常作为引导操作的一部分加载基本输入/输出系统(BIOS)代码以及用于在计算设备上执行的随后的应用代码,该基本输入/输出系统(BIOS)代码用于配置计算设备以加载操作系统。当计算设备第一次启动时,BIOS软件的第一工作是通电自检,这初始化并且识别诸如CPU、RAM、视频显示卡、键盘和鼠标、硬盘驱动器、光盘驱动器和其他硬件的系统设备。BIOS然后定位在诸如硬盘或CD/DVD的外围设备(被指定为“引导设备”)上拥有的引导加载器软件,并且加载和执行该软件,由其控制计算设备。这处理被称为引导,这是自举的简称。BIOS软件通常被存储于在计算设备的母板上的诸如只读存储器(ROM)芯片等的非易失性存储器芯片上。它被特殊地设计来与计算机的每个特定模式一起工作,与构成系统的互补芯片集的各种设备以接口连接。BIOS具有用户界面(UI),用户界面通常为通过当计算设备通电时按压在键盘上的特定按键而访问的菜单系统。在BIOSUI中,用户可以配置硬件,设置系统时钟,启用或禁用系统组件,选择哪些设备合适作为潜在的引导设备并且设置各种密码提示等。BIOS提供了用于操作和控制诸如键盘的外围设备和文本显示功能等的小的基本输入/输出功能库,并且这些软件库功能能够被外部软件调用。BIOS的角色已经随着时间改变。在现代的计算设备中,BIOS正在被更复杂的统一可扩展固件接口(UEFI)替代。UEFI是限定在操作系统和平台固件之间的软件接口的规范。UEFI是对于易受引导套件恶意软件的攻击的较旧的BIOS固件接口的更安全的替代。UEFI可以用在商业计算机中以允许计算机的远程诊断和维修,即使操作系统将不加载。

技术实现要素:
在一种说明性实施例中,提供了一种在裸机计算设备中的用于执行基于网络的引导操作的方法,所述基于网络的引导操作用于引导所述裸机计算设备。所述方法包括:响应于将所述裸机计算设备通电,执行固件,所述固件从虚拟介质映像执行根,所述虚拟介质映像被动态地加载到所述裸机计算设备,并且能够被所述裸机计算设备获得。所述裸机计算设备的配置信息指示正在从本地介质引导所述裸机计算设备或等同内容。所述方法进一步包括:所述根来通过修改所述裸机计算设备的所述配置信息以指示正在从网络设备引导所述裸机计算设备来在所述裸机计算设备上配置网络引导程序以利用网络连接。所述方法也包括:使用在所述裸机计算设备上的所述网络引导程序来从位于远处的引导服务器获得微控制程序。而且,所述方法包括:在所述裸机计算设备上执行所述微控制程序以完成所述裸机计算设备的所述引导。在其他说明性实施例中,提供了一种计算机程序产品,所述计算机程序产品包括具有计算机可读程序的计算机可用或可读介质。所述计算机可读程序当在计算设备上被执行时使得所述计算设备执行相对于所述方法说明性实施例上述的各个所述操作及其组合。在另一个说明性实施例中,提供了一种系统/装置。所述系统/装置可以包括一个或多个处理器和耦合到所述一个或多个处理器的存储器。所述存储器可以包括指令,所述指令当被所述一个或多个处理器执行时使得所述一个或多个处理器执行相对于所述方法说明性实施例上述的各个所述操作及其组合。在本发明的示例实施例的下面的详细说明中将描述本发明的这些和其他特征和优点,并且根据本发明的示例实施例的下面的详细说明,本发明的这些和其他特征和优点将对于本领域内的普通技术人员变得清楚。附图说明通过当与附图相结合地阅读时参考下面的说明性实施例的详细说明,将最佳地理解本发明及其优选使用模式及其另外的目的和优点,在附图中:图1是其中可以实现说明性实施例的各方面的分布数据处理系统的示例图;图2是其中可以实现说明性实施例的各方面的计算设备的示例图;图3是图示根据一个说明性实施例的、用于裸机计算设备的远程引导的系统的主要操作元件的框图;以及图4是概述根据一个说明性实施例的、用于从网络引导服务器引导裸机计算设备的示例操作的流程图。具体实施方式说明性实施例提供了用于提供模拟网络引导环境的机制,该模拟网络引导环境用于实现自举重定向操作。更具体地,说明性实施例提供了用于通过下述方式来配置裸机服务器的机制:提供用于执行自举重定向操作的模拟网络引导环境,该操作允许从诸如Linux内核等的位于远处的微控制程序(MCP)引导这样的裸机服务器,这继而可以用于远程加载整个操作系统和/或其他自举软件。在一种特定实现方式中,本发明的机制提供了一种UEFI自举重定向机制,该UEFI自举重定向机制从本地介质或等同物引导,但是创建模拟的网络引导环境,由此允许下游网络引导程序适当地运行。在本上下文中的术语“裸机”指计算设备,该计算设备没有用于从本地存储设备引导的本地驻留的微控制程序(MCP)、操作系统或管理程序,或者如果本地存在它,则其不可用于在自举(即,引导或启动)操作期间的带内管理操作。术语“带内”指示当在计算设备的主处理器上的适当环境中运行时执行的行为。术语“带外”指示由协处理器、服务处理器或其他“辅助”处理器执行的行为。因为裸机计算设备没有其本身的本地驻留的微控制程序(MCP)或操作系统,所以它必须从诸如软盘、CD-ROM、DVD或带存储器等的外部设备获得配置计算设备所需的软件,或者通过通信连接从远程位置(例如,通过网络连接从服务器)获得软件。然而,为了通过网络连接获得软件,裸机计算设备必须能够产生带内环境,该带内环境允许使得网络连接成为可能。然而,用于从位于远处的网络设备引导的已知机制要求用于实现带内环境的软件本身通过网络被加载,以便该软件了解要利用的在裸机计算设备上的网络端口的身份以及位于远处的引导软件的来源的位置,该机制即网络引导程序(NBP),诸如iPXE、可扩展固件接口(EFI)Linux载入器(“elilo”)等。这表示存在没有操作系统的裸机计算设备时的“双环”困境,该操作系统向NBP通知可以用于访问远程引导软件的网络端口,例如,为了elilo能够访问远程服务器以下载引导软件,elilo必须了解要使用的网络端口,并且仅在如果elilo当它本身被下载以在计算设备上执行时使用那个网络端口的情况下了解那个网络端口。另外,已知的网络引导程序(NBP)要求动态主机配置协议(DHCP)服务器、要设置的各种DHCP选项和普通文件传送协议(TFTP)服务器,以便能够便利计算设备的远程网络引导,该已知的网络引导程序(NBP)使用已知的机制,诸如引导前执行环境(PXE)。这样的机制要求动态的IP地址支持,其消除了静态IP地址计算设备利用这些机制的能力。鉴于上面的情况,由说明性实施例处理的主要问题之一是如何通过裸机计算设备的网络端口的一个或多个来可靠和迅速地加载微控制程序(MCP),诸如操作系统内核等。说明性实施例提供了用于模拟网络引导环境的机制,该环境使得NBP基于其配置信息相信通过网络连接从位于远处的计算设备加载NBP。在一个说明性实施例中,裸机计算设备被配置来具有根(stub)、用于配置根的对应的最小足迹配置文件和诸如基本输入/输出系统(BIOS)或统一可扩展固件接口(UEFI)的固件引导代码。根是代替一些编程功能的很小部分的代码。当裸机计算设备通电时,从裸机计算设备的固件执行UEFI代码。UEFI代码被配置来将根与最小足迹配置文件以及其他网络配置信息一起加载到存储器内,该最小足迹配置文件将根配置有通过其进行通信的网络端口,该其他网络配置信息配置根以利用网络接口并且访问位于远处的用于引导裸机计算设备的自举程序。该根和配置文件可以是在裸机计算设备的存储器或其他存储中的本地介质映像(image)的一部分,该本地介质映像例如是软盘映像、虚拟软盘映像或硬盘映像等。本地介质映像或等同物可以进一步存储第一NBP,裸机计算设备可以使用第一NBP来经由网络通信连接访问位于远处的自举软件。替代地,可以经由由根使用其配置文件配置的网络连接从位于远处的服务器远程获得第一NBP。在一个说明性实施例中,第一NBP可以例如是iPXE应用。可以通过根来配置第一NBP以指定要用于网络通信的网络端口、诸如动态或静态地址的要使用的寻址模式的类型、网络掩码信息、可选网关地址信息等。第一NBP可以进一步被配置有一个或多个第二和随后的NBP的标识和这些一个或多个第二和随后的NBP的它们的网络位置。这些第二和随后的NBP可以被从远程服务器加载到本地存储器内,并且被执行以便于从远程引导服务器下载和执行另外的引导软件。本质上,根允许在裸机计算设备上创建网络引导环境,以使得当事实上使用本地虚拟介质映像启动引导处理时看起来好像裸机计算设备已经启动了基于网络的引导处理,诸如符合PXE处理的那些。根替代指示本地启动的引导处理的裸机计算设备的配置,以使得裸机计算设备当事实上从本地虚拟介质映像引导它时指示从网络引导服务器引导它。其后,可以使用网络引导程序来利用裸机计算设备的网络已知配置来访问位于远处的微控制程序和其他自举软件。结果,可以执行基于网络的自举操作以引导裸机计算设备。本领域内的技术人员可以明白,本发明的方面可以被体现为系统、方法或计算机程序产品。因此,本发明的方面可以采取整个硬件实施例、整个软件实施例(包括固件、驻留软件、微码等)或组合软件和硬件的实施例的形式,它们可以全部被一般在此称为“电路”、“模块”或“系统”。而且,本发明的方面可以采取以在其上包含计算机可用程序代码的任何一个或多个计算机可读介质体现的计算机程序产品的形式。可以利用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但是不限于电子、磁、光学、电磁、红外线或半导体系统、装置、设备或上述部分的任何适当的组合。计算机可读存储介质的更具体的示例(非穷尽性列表)包括下面的部分:具有一条或多条导线的电连接、便携计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携光盘字汇度存储器(CDROM)、光学存储设备、磁存储设备或上述部分的任何适当的组合。在本文的上下文中,计算机可读存储介质可以是可以包含或存储程序以由指令执行系统、装置或设备使用或与其相结合地使用的任何有形介质。计算机可读信号介质可以包括例如在基带中或作为载波的一部分的、其中包含计算机可读程序代码的传播数据信号。这样的传播信号可以采取多种形式的任何一种,包括但是不限于电磁、光学或其任何适当的组合。计算机可读信号介质可以是任何计算机可读介质,该任何计算机可读介质不是计算机可读存储介质,并且传输、传播或传送程序以由指令执行系统、装置或设备使用或与其相结合地使用可以使用任何适当的介质来发送在计算机可读介质上包含的计算机代码,该适当的介质包括但是不限于无线、有线、光纤线缆、射频(RF)等或其任何适当的组合。可以以一种或多种编程语言的任何组合来便携用于执行用于本发明的方面的操作的计算机程序代码,该一种或多种编程语言包括:面向对象编程语言,诸如JavaTM、SmalltalkTM或C++等;以及,传统过程编程语言,诸如“C”编程语言或类似的编程语言。该程序代码可以完全在用户的计算机上、部分地在用户的计算机上、作为单独的软件包、部分地在用户的计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者,可以创建到外部计算机的连接(例如,使用因特网服务提供商通过因特网)。下面参考根据本发明的说明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的方面。可以明白,可以通过计算机程序指令来实现流程图图示和/或框图的每一个方框和在流程图图示和/或框图中的方框的组合。这些计算机程序指令可以被提供到通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在流程图和/或框图的一个或多个方框中指定的功能/行为的手段。这些计算机程序指令也可以被存储在计算机可读介质中,该计算机可读介质可以引导计算机、其他可编程数据处理装置或其他设备来以特定方式作为,使得在计算机可读介质中存储的指令产生制造品,该制造品包括实现在流程图和/或框图的一个或多个方框中指定的功能/行为的指令。计算机程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在该计算机、其他可编程装置或其他设备上执行,以产生计算机实现的处理,使得该指令当在计算机或其他可编程装置上执行时提供用于实现在流程图或框图的一个或多个方框中指定的功能/行为的处理。在附图中的流程图和框图图示了根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这一点上,在流程图或框图中的每一个块可以表示代码的模块、分段或部分,该代码的模块、分段或部分包括用于实现指定的逻辑功能的一个或多个可执行指令。也应当注意,在一些替代实现方式中,在方框中表示的功能可以不以在附图中所述的顺序出现。例如,根据所涉及的功能,连续示出的两个方框可以事实上大体同时地被执行,或者,可以以逆序来执行该方框。也可以注意到,可以通过专用基于硬件的系统来实现框图和/或流程图图示的每一个方框和在框图和/或流程图图示中的方框的组合,该专用基于硬件的系统执行专用硬件和计算机指令的指定功能或行为或组合。因此,可以在许多不同类型的数据处理环境中使用说明性实施例。实质上,使用诸如超管理器或操作系统等的控制程序的裸机引导的任何计算机系统可以利用在此所述的说明性实施例的机制。使用本地虚拟介质映像来执行根据说明性实施例的裸机计引导(或自举)操作,该本地虚拟介质映像模拟网络引导环境,该环境继而允许裸机计算系统/设备使用位于远处的微控制抽象层和在引导服务器或其他位于远处的计算设备上的其他自举应用来完成其自举操作。在此使用的术语“远程”或“位于远处”指的是仅通过一个或多个数据网络而不是通过直接本地连接可访问的计算设备。图1描述了其中可以实现说明性实施例的方面的示例分布式数据处理系统的图示。分布式数据处理系统100可以包括其中可以实现说明性实施例的方面的计算机的网络。分布式数据处理系统100包含至少一个网络102,该至少一个网络102是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如导线、无线通信链路或光纤线缆的连接。在所描述的示例中,服务器104和服务器106与存储单元108一起连接到网络102。另外,客户机110、112和114也连接到网络102。这些客户机110、112和114可以例如是个人计算机或网络计算机等。在所描述的示例中,服务器104向客户机110、112和114提供数据,诸如引导文件、操作系统映像和应用。客户机110、112和114在所描述的示例中是相对于服务器104的客户机,并且可以是根据说明性实施例的裸机计算设备。如此一来,客户机110、112和114可以使用本地虚拟介质映像来本地启动自举操作,并且使用经由网络102从服务器104、106的一个或多个获得的微控制程序和其他自举应用来完成自举操作。服务器104、106或客户机110、112、114的一个或多个可以进一步提供管理应用,用于管理对于诸如客户机110、112和114的一个或多个的一个或多个裸机计算设备执行的自举操作。分布式数据处理系统100可以包括另外的服务器、客户机未示出的其他设备。在所描述的示例中,分布式数据处理系统100是具有网络102的因特网,用于表示使用协议的传输控制协议/因特网协议(TCP/IP)套组来保持进行通信的网络和网关的世界集合。在因特网的中心是在主节点或主计算机之间的高速数据通信线的主干,由路由数据和消息的成千上万的商业、政府、教育或其他计算机系统构成。当然,分布式数据处理系统100也可以被实现来包括多个不同类型的网络,诸如内联网、局域网(LAN)或广域网(WAN)等。如上所述,图1意欲作为示例,而不是作为用于本发明的不同实施例的架构限制,并且因此,在图1中所示的特定元件不应当被看作关于其中可以实现本发明的说明性实施例的环境的限制。图2是其中可以实现说明性实施例的方面的示例数据处理系统的框图。在说明性实施例的一个方面中,数据处理系统200是裸机计算系统性/设备的一个示例,诸如在图1中的客户机110,其中,可以执行计算机可用代码或指令,该计算机可用代码或指令实现在以下相对于裸机计算系统/设备操作描述的处理。在说明性实施例的另一个方面中,数据处理系统200可以进一步是服务器计算设备,诸如在图1中的服务器104或106,其提供用于控制裸机计算系统/设备的基于网络的自举操作的管理应用。而且,该数据处理系统可以是服务器计算设备,诸如在图1中的服务器104或106,其经由网络等向裸机计算系统/设备提供微控制程序和其他自举应用。在所描述的示例中,数据处理系统200使用包括北桥和存储器控制器集线器(NB/MCH)202与南桥和输入/输出(I/O)控制器集线器(SB/ICH)204的集线器架构。处理单元206、主存储器208和图形处理器210连接到NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接到NB/MCH202。在所描述的示例中,局域网(LAN)适配器212连接到SB/ICH204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其他通信端口232与PCI/PCIe设备234通过总线238和总线240连接到SB/ICH204。PCI/PCIe设备可以包括例如以太网适配器、插入卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不是这样。ROM224可以例如是快闪基本输入/输出系统(BIOS)。HDD226和CD-ROM驱动器230通过总线240连接到SB/ICH204。HDD226和CD-ROM驱动器230可以使用例如集成驱动电子(IDE)或串行高级技术附接(SATA)接口。超I/O(SIO)设备236可以连接到SB/ICH204。在诸如在图1中的服务器104或106的服务器计算系统的情况下,操作系统可以在处理单元206上运行。操作系统协调和控制在图2的数据处理系统200内的各种部件。作为客户机,操作系统可以是市场上销售的操作系统,诸如。诸如JavaTM编程系统的面向对象的编程系统可以与操作系统相结合地运行,并且从在数据处理系统200上执行的JavaTM程序或应用提供对于操作系统的调用。作为服务器,数据处理系统200可以例如是运行高级交换执行()操作系统或操作系统的eServerTM系统计算机系统。数据处理系统200可以是对称多处理器(SMP)系统,其包括在处理单元206中的多个处理器。替代地,可以使用单个处理器系统。用于操作系统的指令、面向对象编程系统和应用或程序位于诸如HDD裸机计算系统/设备226的存储设备上,并且可以被处理单元206加载到主存储器208内以执行。处理单元206使用计算机可用程序代码来执行用于本发明的说明性实施例的处理,计算机可用程序代码可以例如位于诸如主存储器208、ROM224的存储器中或一个或多个外围设备226和230中。诸如在图2中所示的总线238或总线240的总线系统可以由一条或多条总线构成。当然,可以使用提供在附接到通信组织或架构的不同部件或设备之间的数据的传送的任何类型的组织化或架构来实现该总线系统。诸如图2的调制解调器222或网络适配器212的通信单元可以包括用于发送和接收数据的一个或多个设备。存储器可以例如是主存储器208、ROM224或诸如在图2中的NB/MCH202中找到的高速缓存。本领域内的普通技术人员可以明白,在图1和2中的硬件可以根据实现方式不同。补充或替代在图1和2中描述的硬件,可以使用其他内部硬件或外围设备,诸如快闪存储器、等同的非易失性存储器或光盘驱动器等。而且,在不偏离本发明的精神和范围的情况下,可以将说明性实施例的处理应用到多处理器数据处理系统,而不是前述的SMP系统。而且,数据处理系统200可以采用多个不同数据处理系统的任何一个的形式,该多个不同数据处理系统包括客户机计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其他通信设备或者个人数字助理(PDA)等。在一些说明性实施例中,数据处理系统200可以例如是便携计算设备,该便携计算设备被使用快闪存储器配置以提供用于存储操作系统文件和/或用户产生数据的非易失性存储器。实质上,数据处理系统200可以是任何已知或以后开发的数据处理系统,而没有架构限制。再一次参考图1,客户机110、112和114的一个或多个可以是裸机计算设备,该裸机计算设备不必然具有其本身的本地超管理器或操作系统等。利用说明性实施例的机制,客户机110、112和114可以具有本地虚拟介质映像,从该本地虚拟介质映像,使用其本地存储的配置信息和网络引导程序(NBP)来执行根,以创建网络引导环境。使用该网络引导环境,根使得与诸如服务器104或106的远程服务器进行通信,以获得微控制程序(MCP),该MCP能够用于使用在位于远处的服务器104或106上的位于远处的自举应用来继续自举操作。根据说明性实施例,服务器104或106之一可以提供管理应用,该管理应用控制或安排用于一个或多个裸机计算设备的网络自举处理。应当明白,虽然相对于网络自举作为客户机计算设备的裸机计算设备而上述了说明性实施例,但是说明性实施例不限于此。而是,可以使用说明性实施例的机制来网络自举任何裸机计算设备。例如,在一个说明性实施例中,裸机计算设备可以是具有多个刀片服务器的刀片服务器系统。每一个刀片服务器可以对应于不同的裸机计算设备,或者,刀片服务器系统整体可以被控制裸机计算设备以用于说明性实施例的操作的目的。可以使用说明性实施例的机制来引导和配置任何裸机计算设备。为了更好地描述根据说明性实施例的机制及其操作,以下提供图3,其图示了根据说明性实施例的、用于执行裸机计算设备的网络自举操作的主要操作元件。如图3中所示,裸机计算设备包括固件305和减小在两个面部之间的区别水平310,经由本地、远处加载的或附接的存储器可访问虚拟介质映像310,并且虚拟介质映像310可以被加载到裸机计算设备300的存储器308内。裸机计算设备300在被配置根据说明性实施例的模拟网络环境后经由一个或多个网络340与具有用于自举操作的控制程序文件的位于远处的引导服务器320或文件服务器进行通信,以从引导服务器320获得微控制程序322、引导文件324和一个或多个网络引导程序(NBP)326。可以提供管理服务器330,其提供安排裸机计算设备300的网络引导的管理应用或设施332。初始,除了提供用于促进与裸机计算设备300的硬件的通信的基本的一组输入/输出软件的固件305之外,裸机计算设备300没有在裸机计算设备300上驻留的软件机制,并且必须被配置在裸机计算设备100的通电时执行的软件。这是管理应用332的目的。应当明白,虽然所说明的示例图示了管理应用332驻留在独立的服务器计算设备,即管理服务器330上,但是管理应用332可以被设置在不同的计算设备上。例如,在一个说明性实施例中,管理应用332可以被与裸机计算设备300相关联的服务处理器(未示出)执行。例如,在刀片服务器系统中,裸机计算设备300可以是在刀片服务器系统中的刀片之一,而服务器处理器可以是在刀片服务器系统内的独立处理器,该独立处理器运行来管理和配置在刀片服务器系统中的刀片。管理应用332可以初始被执行以用于下述目的:执行带外(OOB)查询以确定一个或多个裸机计算设备300的存在以及在裸机计算设备300上使用来经由网络340执行通信的网络端口。管理应用332可以例如经由通过程序用户界面(UI)与系统管理员的交互或通过例如与管理应用332相关联地存储的规则或其他选择标准来选择裸机计算设备300和相关联的网络连接340。所存储的规则或标准可以是由例如操作管理应用332的系统管理员确定的默认或特定选择。管理应用332进一步使用引导列表配置裸机计算设备的固件305,引导列表指示从其初始引导裸机计算设备300的设备或一系列设备。根据说明性实施例的机制,管理应用332配置在裸机计算设备300的固件305中的引导列表以将本地虚拟介质映像310识别为用于裸机计算设备300的初始引导设备。固件305存储当将裸机计算设备300通电时执行的初始代码,诸如基本输入/输出系统(BIOS)或统一可扩展固件接口(UEFI)等。在一个说明性实施例中,固件305是在向裸机计算设备内置的快闪存储器上存储的UEFI。管理应用332配置固件305的UEFI以从本地虚拟介质映像310引导,并且因此,当裸机计算设备300被通电并且开始其自举操作时,裸机计算设备300被配置来了解它正在被本地引导。结果,在没有通过说明性实施例的修改的情况下,裸机计算设备300不被配置来经由基于网络的引导服务器来完成其自举操作。管理应用332进一步在裸机计算设备300上创建虚拟介质映像310,裸机计算设备300从此可以开始其自举操作。虚拟介质映像310包括根312、配置文件314和第一网络引导程序(NBP)316。虚拟介质映像310是诸如软盘、CD-ROM或DVD-ROM等的本地介质的表示。虚拟介质映像310模拟本地介质,可以从本地介质引导裸机计算设备。根312是代替一些编程功能的代码的很小部分。当将裸机计算设备通电时,执行在固件305中的UEFI代码。管理应用332已经配置UEFI代码以将根312与最小足迹配置文件314一起加载到存储器308内,该最小足迹配置文件314使用本地网络接口卡(NIC)等的网络端口——通过其来与网络340进行通信——以及其他网络配置信息来配置根312,该其他网络配置信息例如是用于要使用(用于静态IP地址)的或要使用动态地址机制(例如,DHCP等)的裸机计算设备的地址和/或引导服务器320的地址等。因此,通过配置根312以在由网络端口和地址信息限定的网络环境中运行,裸机计算设备300能够访问网络340。如图3中所述,本地虚拟介质映像310可以进一步存储第一NBP316,裸机计算设备可以使用该第一NBP316来经由到网络340的网络通信连接访问在引导服务器320上的位于远处的自举软件。替代地,可以经由由根312使用其配置文件314配置的网络连接从位于远处的服务器320远程获得第一NBP316。在一个说明性实施例中,第一NBP316可以例如是iPXE应用。第一NBP316可以被根312配置来指定要用于网络通信的网络端口、诸如动态或静态地址的要使用的编址模式的类型、网络掩码信息和/或选用的网关地址信息等。第一NBP316可以进一步被配置一个或多个第二和随后的NBP326的标识符和这些一个或多个第二和随后的NBP326例如在引导服务器320上的它们的网络位置。这些第二和随后的NBP326可以被从远程服务器加载到本地存储器308内,并且被执行以促进从远程引导服务器320下载和执行另外的引导软件324。本质上,根312允许在裸机计算设备300上创建网络引导环境,以使得当搜索使用本地虚拟介质映像310启动引导处理时看起来好像裸机计算设备300已经开始了基于网络的引导。根312更换指示本地启动的引导处理的裸机计算设备300的配置,以使得当事实上从本地虚拟介质映像310引导裸机计算设备300时裸机计算设备300指示从网络引导服务器320引导它。其后,网络引导程序316或一系列网络引导程序316、326可以用于利用裸机计算设备300的网络已知配置来访问诸如操作系统内核等的位于远处的微控制程序(MCP)322和其他自举软件324。结果,可以执行基于网络的自举操作以用于引导裸机计算设备300。例如,在一种说明性实现方式中,固件305(例如,UEFI)被配置来从本地虚拟介质映像310加载根312,根312继而读取其配置文件314,通过管理应用332创建和向本地虚拟介质映像310写入其配置文件314。虚拟介质映像310进一步包括被根312加载到存储器308内的第一NBP316,诸如iPXE。根312动态地将诸如iPXE的第一NBP316打补丁,以修改其其命令或脚本的内部顺序,以包括用于访问网络端口和位于远处的引导服务器320的一系列命令,以从位于远处的引导服务器320下载MCP322、引导文件324和/或第二NBP326。该命令或脚本的内部序列向诸如iPXE的第一NBP316通知要使用哪个网络端口(例如通过MAC地址等的指定)、IP地址、网络掩码和用于静态IP操作模式的选用的网关地址或在如果要使用DHCP模式的情况下的动态IP地址模式的指示。第一NBP316的命令序列在被根312打补丁后可以进一步包括要使用的诸如第二NBP326的一个或多个随后的NBP和在何处和如何该一个或多个随后的NBP326的指示。例如,第二NBP326可以是elilo.efi网络引导程序,该elilo.efi网络引导程序用于从引导服务器320加载MCP322和其他操作系统。例如,根312可以配置iPXE网络引导程序以使用诸如ftp://192.168.70.5/elilo.efi的地址ftp://[FTPServerAddress]/[elilo路径]经由网络340获得可执行文件elilo.efi文件。当然,说明性实施例的机制支持许多变化形式。例如,不是使用文件传送协议(ftp),可以使用包括tftp或http的其他协议。另外,可以提供用户标识符和密码,例如,ftp://userid:password@192.168.70.5/maint/elilo-uldr.efi。可执行文件elilo.efi可以然后从从其加载其配置文件的相同位置获得其配置文件,诸如可以在引导文件324中包括该配置文件。例如,作为作为裸机计算设备的网络引导的整体的、用于配置系统的初始的一组带外(OOB)操作的一部分,管理应用332可以产生和在引导服务器320中存储用于elilo.efi的配置文件或更一般而言的用于第二NBP326的配置文件。因此,通过配置文件配置根312以配置裸机计算设备300来利用与网络340的网络连接来连接到引导服务器320并且启动第一NBP316。实质上,根312运行来更换指示本地自举操作的NBP的加载的映像控制(或配置)数据,以具有使用与根312相关联的配置文件314的模拟网络环境。根312执行与引导服务器320进行通信的第一NBP316(例如,iPXE)以下载第二NBP326(例如,elilo.efi),并且在裸机计算设备300上执行它。第二NBP326从引导服务器320下载微控制程序(MCP)322(操作系统内核,诸如Linux内核等)。MCP322在裸机计算设备300上执行以下载另外的引导文件324,并且在裸机计算设备300上执行操作以配置裸机计算设备300以用于执行操作系统和应用。一旦MCP322完成裸机计算设备300的其初始化,它通知裸机计算设备300准备好执行在裸机计算设备300上的应用,然后卸载虚拟介质映像310。即,与固件305相关联的引导序列被修改以返回到原始引导序列,以使得能够再一次本地引导裸机计算设备,并且去除从远程引导服务器引导裸机计算设备的指示。图4是概述根据一个说明性实施例的用于从网络引导服务器引导裸机计算设备的示例操作的流程图。如图4中所示,根据说明性实施例,操作以下述部分开始:执行多个初步操作使得可以产生配置数据和虚拟介质映像以允许的裸机计算设备的基于网络的引导。虽然在图4中将这些操作示出为整体操作的一部分,但是可以在相对于执行其他操作410-436的时间相距远的时间与剩余的操作分离地执行这些操作,即,操作402-408。而且,一个或多个独立的软件程序和诸如服务处理器等的一个或多个独立的数据处理设备可以执行这些操作402-408。如图4中所述,作为可以被诸如管理服务器330的管理应用332的管理应用执行的这些初步操作的一部分,例如通过下述方式执行要利用的引导服务器和要用于引导裸机计算设备的网络端口的带外(OOB)确定:服务处理器等向一个或多个计算设备产生OOB查询,并且那些计算设备以所请求的信息来响应,所请求的信息例如是网络端口信息和引导服务器地址信息(步骤402)。在裸机计算设备(BMCD)中存储引导列表,该引导列表识别从其引导裸机计算设备的设备或从其试图引导裸机计算设备的设备的顺序(步骤404)。该引导列表是在未在裸机计算设备上实现说明性实施例的机制的情况下裸机计算设备使用的通常的引导列表。引导列表被设置来通过例如管理应用332从虚拟介质映像引导裸机计算设备,该虚拟介质映像例如是经由裸机计算设备的本地可访问的存储器或存储设备访问的软盘映像。这使得裸机计算设备使用根、配置信息和在虚拟介质映像中存储的网络引导程序来开始其自举操作。作为用于创建用于计算设备的网络引导的系统的另一种初步操作,管理应用可以进一步创建用于裸机计算设备的虚拟介质映像,并且使用根和配置信息来填充它(步骤406)。裸机计算设备被进一步填充第一网络引导程序(NBP),该第一NBP可以被根如上所述后来配置(步骤408)。第一NBP可以例如是iPXE引导程序,并且可以被提供为例如虚拟介质映像的一部分。另外,虽然在图4中未明确地示出,但是管理程序可以在位于远处的引导服务器上配置第二NBP以用于裸机计算设备(BMCD)的远程引导。在已经配置了BMCD以用于初始通电的情况下,将BMCD通电,使得诸如UEFI的固件运行,并且初始从在BMCD本地的虚拟介质映像开始引导BMCD(步骤410)。虚拟介质映像包括根,该根被执行并且从虚拟介质映像的对应的配置文件读取其网络配置信息(步骤412)。基于该网络配置信息,诸如MAC地址、带宽地址等,根定位其本地网络控制器,诸如NIC卡(步骤414)。根将网络控制器配置信息存储为模拟网络引导环境数据(步骤416),并且创建用于第一NBP的网络引导程序(NBP)配置数据以用在连接到网络中(步骤418)。根从虚拟介质映像向存储器内加载NBP(步骤420),并且替换NBP加载映像控制数据(或配置数据)替换为模拟网络引导环境数据(步骤422),该NBP加载映像控制数据(或配置数据)指示未通过网络连接加载NBP,因为从本地介质(本地虚拟介质映像)加载它。对于基于UEFI的裸机计算设备,例如,NBP的加载的映像控制数据的管理包括:将在UEFI数据结构中包含的LoadedImage->DeviceHandle和LoadedImage->FilePath值修改为指示在所选择的端口上的网络操作的值。这实际上当事实上NBP未通过网络连接被加载时向NBP告诉它通过网络连接被加载,由此模拟要使用的用于NBP的网络环境。根然后调用NBP(步骤424),NBP读取其控制数据(配置数据),该控制数据是模拟网络引导环境数据,并且NBP进行到网络自举操作(步骤426)。其他NBP可以是位于远处、被下载、被配置和被利用来帮助这个网络自举操作,虽然这是选择性的,并且不是说明性实施例的机制的正确的操作的要求(步骤428)。作为网络自举操作的一部分,从远程引导服务器下载微控制程序(MCP)(步骤430),并且在BMCD上执行它(步骤432)。可以是诸如Linux内核等操作系统内核的MCP的执行可以包含从引导服务器下载引导文件并且执行这些引导文件。MCP然后通过下述方式来完成它的MBCD的初始化:执行这些引导文件,并且然后通知BMCD准备好执行应用(步骤434)。虚拟介质映像然后被卸载,并且将在固件中的BMCD的引导列表恢复到其原始状态,使得从本地介质执行引导(步骤436)。操作然后结束。因此,说明性实施例的机制促进了裸机计算设备的基于网络的引导。说明性实施例的机制初始使用虚拟介质映像在本地开始引导序列,然后模拟网络引导环境,使得可以利用网络引导程序来完成从位于远处的引导服务器引导裸机计算设备。这避免了:与不能访问网络连接的网络引导程序相关联的问题,除非它们本身通过那个网络连接被加载;以及,与在裸机计算设备上使用这样的机制相关联的另一个问题,该裸机计算设备不必然具有操作系统等,该操作系统等向这样的网络引导程序通知在裸机计算设备中存在的网络硬件。如上所述,应当明白,说明性实施例可以采取整个硬件实施例、整个软件实施例或包含硬件和软件元素的实施例的形式。在一个示例实施例中,以软件或程序代码来实现说明性实施例的机制,如果软件或程序代码包括但是不限于固件、驻留软件、微码等。适合于存储和/或执行程序代码的数据处理系统包括直接地或通过系统总线间接地耦合到存储器元件的至少一个处理器。该存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、海量存储器和高速缓存,该高速缓存提供至少一些程序代码的暂时存储,以便减小必须在执行期间从海量存储器检索代码的次数。输入/输出或I/O设备(包括但是不限于键盘、显示器、指示设备等)可以直接地或通过中间的I/O控制器耦合到系统。网络适配器也可以耦合到系统以使得数据处理系统能够变得通过中间的专用或公共网络而耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是当前可获得的类型的网络适配器的几种。已经为了例示和说明的目的而提供了本发明的说明,并且本发明的说明不意欲是穷尽性的或限于以所公开的形式的本发明。许多修改和变化对于本领域内的普通技术人员是显然的。选择和描述实施例以便最佳地解释本发明的原理、实际应用,并且使得其他本领域内的普通技术人员能够针对具有适合于所考虑的特定用途的各种修改的各个实施例理解本发明。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1