Computer companies attempt to design server systems such that as an individual server experiences hardware and/or software difficulties, a second server takes over the operations of the first server. In systems where each server is operated under the extensible firmware interface (EFI) specification and the servers are identical, the second server may be booted using the EFI parameters of the first server (i.e., booted using the EFI personality of the first server).
For a detailed description of exemplary embodiments, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function.
In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect, direct, optical or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, or through a wireless electrical connection.
“Extensible firmware interface (EFI) personality” shall mean one or more parameters, defined by the EFI specification, where the parameters are used at least during booting of the operating system by a computer system operated under the EFI specification.
“Virtual machine” shall mean an operating system instance on the computer system, where the operating system instance is able to share underlying physical hardware of the computer system with other operating system instances. The operating system instances, in some cases, are hosted by an underlying operating system.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
The various embodiments are directed to systems and methods of booting computer systems with the extensible firmware interface (EFI) personality of another computer system, where the computer systems are heterogeneous. Stated otherwise, the various embodiments are directed to booting computer systems with the EFI personality of another computer system, but prior to booting programmatically modifying the EFI personality to account for differences in EFI personality between the computer systems. This specification first turns to an overall architecture of an illustrative server system in which the systems and methods may be practiced.
The server enclosure 102 further comprises a virtual server manager computer system 114 (hereafter just virtual server manager 114) and an enclosure manager computer system 116 (hereafter just enclosure manager 116). As will be discussed in more detail below, the virtual server manager 114 is a central repository for EFI personalities, and controls the EFI personalities under which servers boot. In the event a server needs to be booted with the personality of a failed server, the EFI personality is retrieved from virtual sever manager 114 and provided to the newly selected server. The enclosure manager 116 performs functions related to overall server enclosure 102 management (e.g., monitoring central power supplies, powering-on and powering-off blade servers), and also plays a role in booting of servers with particular EFI personalities. The virtual server manager 114 and enclosure manager 116 are computer systems, but in some embodiments have a different form factor and/or computing capability than the blade servers 108.
Still referring to
While
However, in some situations the operators of a server system may find beneficial the principle of operating a plurality of virtual servers on an underlying blade server hardware.
Still referring to
In accordance with the various embodiments, the physical servers (blade servers 108 and stand-alone sever 104) operate under the extensible firmware interface (EFI) specification. The EFI specification utilizes a software interface between the operating system and the underlying physical hardware of a system. The EFI specification is managed by the Unified EFI Forum operated as an alliance between many computer system manufacturers, including Hewlett-Packard Company. Information on the EFI specification may be found on the Unified EFI Forum website at www.UEFI.org.
The EFI specification defines a plurality of parameters used by the underlying hardware during booting of the operating system, and likewise during operation. The parameters defined by the EFI specification and used by the underlying hardware are referred to, as a group and for a single machine (whether “real” or “virtual”), as an EFI personality. An illustrative, and non-exhaustive, list of parameters of an EFI personality includes an indication of a communication path to a boot device, and one or more flags regarding whether the underlying hardware is enabled for multi-threaded operation.
In accordance with the various embodiments, each server (whether “real” or “virtual”) is configured to provide its EFI personality to a central repository. For example, each virtual server (illustrated by respective operating systems 204, 206) on blade server 108B has an EFI personality, and each EFI personality is reported to a central repository. Each EFI personality may be reported on a timed basis, reported each time there is a change to any parameter of the EFI personality, or both. Referring again to
In the case of the blade servers 108 within the server enclosure 102, the EFI personalities may be reported to the virtual server manager 114 by way of an internal management network 214 (e.g., Ethernet network), where the management network 214 resides solely within the server enclosure 102. As illustrated, the blade servers 108 couple to the management network 214, the management network 214 couples to the enclosure manager 116, and the virtual server manager 114 couples to the enclosure manager 116. Thus, the enclosure manager 116 participates in providing the EFI personalities to the repository 212. In other embodiments, the virtual server manager 114 may couple directly to the management network 214.
Still referring to
In accordance with the various embodiments, the virtual server manager 114 not only implements the repository 212 of EFI personalities, but also controls the EFI personality under which a particular operating system is allowed to boot. Consider, as an example, that the server implemented by the operating system 200 on blade server 108A fails. The virtual server manager 114, upon becoming aware of the failure may select a different blade server 108, or even an external server (e.g., stand-alone server 104), to take the place of the failed server. In accordance with the various embodiments, the virtual server manager 114 provides the EFI personality of the failed server to the newly selected server, the newly selected server reads and/or is accepts the EFI personality, and the newly selected server boots under the EFI personality of the failed server.
However, in accordance with the various embodiments, the virtual server manager 114 is not limited to the newly selected server being homogenous, from a hardware perspective, with the failed server. Stated otherwise, in accordance with the various embodiments the virtual server manager 114 may request non-identical computer system hardware to boot under the EFI personality of the failed server. What is more, and still in accordance with the various embodiments, the virtual server manager 114 may request a virtual server to boot using the EFI personality of a failed real server, and vice versa. In order for heterogeneous device to boot the EFI personality of the failed server, certain portions of the EFI personality are programmatically modified. An explanation of the modifications that may be needed requires a diversion into an exemplary set of computer system internal components.
The main memory 312 couples to the host bridge 314 through a memory bus 318. Thus, the host bridge 314 comprises a memory control unit that controls transactions to the main memory 312 by asserting control signals for memory accesses. In other embodiments, the main processor 310 directly implements a memory control unit, and the main memory 312 may couple directly to the processor 310. The main memory 312 functions as the working memory for the processor 310 and comprises a memory device or array of memory devices in which programs, instructions and data are stored. The main memory 312 may comprise any suitable type of memory such as dynamic random access memory (DRAM) or any of the various types of DRAM devices such as synchronous DRAM (SDRAM), extended data output DRAM (EDODRAM), or Rambus DRAM (RDRAM). The main memory 312 is an example of a non-transitory computer-readable medium storing programs and instructions, and other examples are disk drives and flash memory devices.
The illustrative computer system 300 also comprises a second bridge 328 that bridges the primary expansion bus 326 to various secondary expansion buses, such as a low pin count (LPC) bus 330, a first peripheral components interconnect (PCI) bus 332, and a second PCI bus 334. Various other secondary expansion buses may be supported by the bridge device 328. In accordance with some embodiments, the bridge device 328 comprises an Input/Output Controller Hub (ICH) manufactured by Intel Corporation, and thus the primary expansion bus 326 comprises a Hub-link bus, which is a proprietary bus of the Intel Corporation. However, computer system 100 is not limited to any particular chip set manufacturer, and thus bridge devices and expansion bus protocols from other manufacturers may be equivalently used.
Firmware hub 336 couples to the bridge device 328 by way of the LPC bus 332. The firmware hub 334 comprises read-only memory (ROM) which contains software programs executable by the processor 310. The software programs comprise not only programs to implement the EFI specification, but also instructions executed during and just after power on self tests (POST) procedures. The POST procedures as well as the memory reference code perform various functions within the computer system before control of the computer system is turned over to programs that implement the EFI specification, which EFI specification compliant programs control booting of an operating system, among other things.
Still referring to
The management processor 342 in some embodiments has coupled thereto non-volatile RAM 344, within which parameters of the EFI personality used by the computer system 300 may be stored. It is noted, however, the non-volatile RAM that stores the EFI personality used to boot and operate the computer system may be coupled to other components of the computer system, such as directly coupled to another secondary expansion bus or directly coupled to the bridge device 328.
The computer system 300 further comprises a network interface card (NIC) 346 illustratively coupled to the second PCI bus 334. The NIC 346 acts as to couple the computer system 300 to a communication network, such as communication network 112 (
Having the host adapters 348, 350 on different PCI buses illustrates potential differences in EFI personality as between two computer systems. Consider, as an example, that the storage area network 110 of
However, the communication pathway parameter also includes an indication of the internal communication pathways to reach the host adapter 348, 350. Thus, in situations where the host adapter for the computer system 300 illustratively couples to the first PCI bus 332 (i.e., computer system 300 implements only host adapter 348), the communication pathway parameter of the EFI personality indicates the internal communication pathway to the host adapter is the first PCI bus 332, and the unique identification of the host adapter for the boot device. In situations where the host adapter for the computer system 300 illustratively couples to the second PCI bus 332 (i.e., computer system 300 implements only host adapter 348), the internal communication pathway parameter of the EFI personality indicates the communication pathway to the host adapter is the second PCI bus 334, and the unique identification of the host adapter for the boot device. The internal communication pathway to the host adapter is, in many cases, the only parameter of the EFI personality that needs to be changed to have the newly selected server boot using the EFI personality of the failed server when the severs are heterogeneous; however, the internal communication pathway to the host adapter is merely illustrative of the changes that may need to be made to the EFI personality to make the personality compatible with the underlying hardware.
Returning to
Now consider the illustrative case of the real server implemented by blade server 108A failing, and the virtual server manager 114 electing to use the stand-alone server 104 as the replacement, but that the stand-alone server 104 is configured to implemented virtual servers. In such a circumstance, the virtual server manager 114 sends the EFI personality of the failed server to the stand-alone server 104. The stand-alone sever 104, in particular the virtual machine manager 208, accepts and/or reads the EFI personality, and modifies the personality to account for differences between the stand-alone server 104 and the blade server 108 on which the personality previously ran, as well as differences between a real and virtual server. For example, the virtual machine manager 208 programmatically modifies the EFI personality to account for differences between the underlying hardware (e.g., internal path the host adapter). In the particular case of booting as a virtual machine, some parameters of the EFI personality may be ignored (e.g., parameters related to the multi-threading capability of the underlying hardware). Once modified, the virtual machine manager boots an operating system using the modified EFI personality.
Now consider that the real server implemented by blade server 108A fails, and the virtual server manager 114 elects to use another blade server 108 as the replacement. In such a circumstance, the virtual server manager 114 sends the EFI personality of the failed server to the selected blade server, for example blade server 108B. Blade server 108B accepts and/or reads the EFI personality, and firmware executed on the blade server modifies the personality to account for differences between the blade servers. For example, the host adapter that couples blade server 108A to the storage area network 110 may reside on a different expansion bus than that of the blade server 108B, and thus the firmware programmatically modifies the EFI personality to account for differences between the underlying hardware, but using the same boot device indication. Once modified, the firmware boots the blade server 108B using the modified EFI personality.
Now consider that the real server implemented by blade server 108A fails, and the virtual server manager 114 elects to use another blade server 108B as the replacement, where blade server 108B is configured to execute virtual servers. In such a circumstance, the virtual server manager 114 sends the EFI personality of the failed server to blade server 108B. Blade server 108B accepts and/or reads the EFI personality, and the virtual machine manager 202 executed on the blade server 108B modifies the personality to account for differences between the blade servers, but again using the same boot device indication. Once modified, the virtual machine manager 202 boots an operating system instance on the blade server 108B using the modified EFI personality.
The various examples used to this point have all been the EFI personality of a real server transitioning to a real or virtual server; however, the EFI personality of a failed virtual server may likewise transition to another virtual server, or to a real server, using the same methods. Moreover, in each case the server receiving the EFI personality of the failed server has modified the EFI personality (i.e., the virtual machine manager for virtual servers, and the firmware for real servers). However, in other embodiments, the modification of the EFI personality may take place in another location. For example, in some embodiments the virtual server manager 114 may know or become aware of particular modifications that are needed for a target server, and thus may create the modified EFI server personality prior to sending the EFI personality to the target device. Likewise, in embodiments where the enclosure manager 116 participates in communicating the EFI personalities to the target devices, the enclosure manager 114 may make modifications to the personalities.
From the description provided herein, those skilled in the art are readily able to combine software created as described with appropriate general-purpose or special-purpose computer hardware to create a computer system and/or computer subcomponents in accordance with the various embodiments, to create a computer system and/or computer subcomponents for carrying out the methods of the various embodiments, and/or to create a non-transitory computer-readable storage media for storing a software program to implement the method aspects of the various embodiments.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US09/66076 | 11/30/2009 | WO | 00 | 1/24/2012 |