Stateless flexible boot control

Techniques are provided herein for optimizing boot order for devices in a data center environment. These techniques may be embodied as a method, apparatus and instructions in a computer-readable storage media to perform the method. A computing apparatus having connectivity to a network receives instructions from a management device in the network. The instructions comprise attributes that are associated with boot devices hosted by the computing apparatus. The attributes are analyzed to determine a priority order for the boot devices. One or more boot devices hosted by the computing apparatus is removed from an initialization process when the one or more boot devices do not match the attributes in the instructions. The remaining boot devices, other than the one or more boot device removed from the initialization process, are initialized in accordance with the priority order.

TECHNICAL FIELD

The present disclosure relates to optimizing boot order control for devices in data center environments.

BACKGROUND

In data center environments, a server may boot or reboot devices that it hosts, for example, to load or reload an operating system. The server may maintain a boot list that specifies a particular boot order for device types. The boot list may be utilized by a basic input/output system (BIOS) of the server to instruct the devices hosted by the network to boot or “turn on” in a particular order. The BIOS of the server is also configured to check the memory capacity of the server to ensure that the devices hosted by the server are able to boot. The speed at which the server is able to load or reload an operating system depends on the device types that are in the boot list. When the boot list is optimized, the operating system of the server can load more quickly.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

Techniques are provided herein for optimizing boot order for devices in a data center environment. These techniques may be embodied as a method, apparatus and instructions in a computer-readable storage media to perform the method. A computing apparatus having connectivity to a network receives instructions from a management device in the network. The instructions comprise attributes that are associated with boot devices hosted by the computing apparatus. The attributes are analyzed to determine a priority order for the boot devices. One or more boot devices hosted by the computing apparatus is removed from an initialization process when the one or more boot devices do not match the attributes in the instructions. The remaining boot devices, other than the one or more boot device removed from the initialization process, are initialized in accordance with the priority order.

Example Embodiments

The techniques described herein relate to optimizing a boot order for data center devices. An example data center environment (e.g., “data center”)100is illustrated inFIG. 1. The data center100has a management system device (“management system”) shown at reference numeral102. The data center100also has a server device (“server”) shown at reference numeral104. The management system102and the server104are configured to communicate with each other via a network (e.g., a wide area network (WAN) or local area network (LAN)), shown at reference numeral106.

The management system102comprises a management application shown at reference numeral108. The management application108may be a software or a hardware (e.g., an application specific integrated circuit (ASIC)) component of the management system102. The management system102also has a storage unit (e.g., “storage”)110that stores server profile information in the form of server type service profiles111(1)-111(n) associated with different servers in the data center100with which the management system102communicates. For example, the storage110may be a memory component of the management system102that stores server profile information associated with a plurality of different types of servers, e.g., server type1service profile111(1) to server type N service profile111(N) in the data center100. It should also be understood that the data center100may comprise other servers, and for simplicity, only one server is shown.

The management system102utilizes the management application108and the server profile information stored in the storage110to generate server management policies. As shown at reference105inFIG. 1, the server management policies are sent from the management system102to the server104across the network106. The server104is configured to receive the server management policies from the management system102, and the server104analyzes the server management policies to optimize the boot order control of devices that are operated by the server104.

The management system102is configured to generate server management policies that are sent to the server104. The server104receives the server management policies from the management system102in order to optimize boot order control, as described herein. The server104comprises several components. For example, as shown inFIG. 1, the server104has a network interface unit112, a processor114, a memory116, a basic input/output system (BIOS)118and boot devices120. Additionally, the server104has an optional read only memory (ROM) unit122.

In general, the network interface unit112is configured to receive the server management policies from the management system102across the network106. The processor114evaluates the management policies and utilizes the boot device enumeration process logic124in the memory116to optimize the boot order control of the boot devices120, as described herein. The memory116also has a server manager database (“server manager”)126to store boot order instructions. In one example, the boot device enumeration process logic124comprises executable instructions that when executed by the processor114, cause the processor114to access the BIOS118to turn on or “boot” one or more of the boot devices120in accordance with the management policies that are received from the management system102in order to ultimately boot or load an operating system. Thus, in one example of the techniques presented herein, the management policies generated by the management system102and received by the server104set forth instructions that are utilized by the server104to optimize and prioritize the boot order of the boot devices120to load the operating system of the server104.

The boot devices120inFIG. 1may represent one or more devices that are controlled or hosted by the server104. For example, the boot devices120may belong to one or more “boot device types.” The boot device types may designate a group or family of particular devices. In one example, the boot devices120may include a hard disk drive (HDD) device type, a floppy disk drive (FDD) device type, a compact disc ROM (CD-ROM) device type, etc. Each of these device type groups may comprise several specific devices. For example, the HDD device type may comprise local disks, storage area networks (SANs), Internet Small Computer System Interfaces (ISCSIs), Universal Serial Buses (USBs), Secure Digital (SD) cards, etc. A floppy disk drive (FDD) device type may comprise, for example, a USB floppy disk drive, and a CD-ROM device type may comprise optical CD drives (e.g., a CD-read (CD-R) drive, a CD-read/write (CD-RW) drive, etc.). The devices in each device type may be enumerated in a particular order in a boot list stored by the server104(e.g., in the server manager126).

Currently, when a server is powered on and begins to operate, the BIOS of the server instructs the server's processor to load or boot devices. However, current booting techniques allow the processor to order and re-order only the device types or groups and not the particular devices within the device types or groups. Thus, as the processor is instructed to perform reboot operations, the processor may reboot all of the particular devices that are enumerated in the device type. For example, the BIOS of the server may specify a reboot order for device types as follows:

and particular devices in each device type (i.e., devices enumerated as HDD devices, FDD devices and CD-ROM devices) will be rebooted by the processor based on the order in which they are enumerated. Thus, in certain situations, particular devices that are intended to be rebooted may be skipped or ordered in a lower priority than intended. For example, if a server needs to reboot through a local disk, and if a SAN device is enumerated ahead of the local disk in the HDD device enumeration, the SAN device would be selected first in the HDD category. Additionally, in one example, only the SAN device may become part of the final boot device list (possibly excluding the local disk from the boot list altogether). As stated above, this is problematic because essential and/or intended devices may be entirely skipped from the boot list.

The techniques described herein resolve these shortcomings by providing flexible and stateless information to a server that allows the server to select the correct set of devices to boot. In particular, the management system102sends server management policies to the server104that contains information that the server104intelligently parses to enumerate only required devices to boot.

Referring back toFIG. 1, it is to be appreciated that the server104has the network interface unit112that is coupled to the processor114. The network interface unit is configured to receive the server management policies (including the boot policy202) from the management system102. The processor114is, for example, a microprocessor or microcontroller that is configured to execute program logic instructions (i.e., software) for carrying out various operations and tasks described above. For example, the processor114is configured to execute boot device enumeration process logic124to enhance and optimize boot order control by enumerating necessary boot devices. The functions of the processor114may be implemented by logic encoded in one or more tangible computer readable storage media or devices (e.g., storage devices, compact discs, digital video discs, flash memory drives, etc. and embedded logic such as an ASIC, digital signal processor instructions, software that is executed by a processor, etc.).

The memory116may comprise read only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical, or other physical/tangible (non-transitory) memory storage devices. The memory116stores software instructions for the boot device enumeration process logic124. The memory116also stores the server manager126that, for example, stores the boot order of the server104. Thus, in general, memory116may comprise one or more computer readable storage media (e.g., a memory storage device) encoded with software comprising computer executable instructions and when the software is executed (e.g., by the processor114), it is operable to perform the operations described above for the boot device enumeration process logic124.

The boot device enumeration process logic124may take any of a variety of forms, so as to be encoded in one or more tangible computer readable memory media or storage devices for execution, such as fixed logic or programmable logic (e.g., software/computer instructions executed by a processor). The processor114may be an ASIC that comprises fixed digital logic, or a combination thereof.

For example, the processor114may be embodied by digital logic gates in a fixed or programmable digital logic integrated circuit, which digital logic gates are configured to perform the boot device enumeration process logic124. In general, the boot device enumeration process logic124may be embodied in one or more computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to perform the operations described hereinafter.

Reference is now made toFIG. 2.FIG. 2shows a diagram depicting an example exchange200of a boot policy between the management system102and the server104. In particular,FIG. 2shows a server profile111(1), for example, that is stored in the storage unit110of the management system102. The service profile111(1) may be any of the service profiles shown inFIG. 1, and it should be appreciated that the server profile111(1) corresponds to the service profile that is associated with the server104. The service profile111(1) has several policies that are associated with the server104. In one example, one or more of the policies may be sent to the server104as a part of the server management policies sent to the server104, shown inFIG. 1above. In particular, the service profile111(1) has a boot policy202that is sent to the server104. The boot policy202has boot order instructions that comprise attributes associated with the boot devices hosted by the server104. It should be appreciated that the boot policy202may comprise instructions in the form of a data structure that indicates the boot priority order for particular device types. Upon receiving the boot policy202(e.g., as part of the server management policies exchanged between the management system102and the server104), the server104analyzes the attributes in the instructions to determine a priority order for the boot devices. For example, as shown inFIG. 2, the boot policy202is analyzed by the server104to determine the boot order203:

1. Boot from SAN (using a Virtual Host Bus Adapter (vHBA)).

2. Boot from a Pre-Boot Execution Environment (using a Virtual Network Interface Card (vNIC)).

3. Boot from a local HDD.

4. Boot from a USB CD.

It should be appreciated that the service profile111(1) may also comprise, among other policies, a discovery policy204, a BIOS policy206and a maintenance policy208.

Reference is now made toFIG. 3.FIG. 3shows an example flow chart300depicting operations performed by the management system102and the server104for determining a priority order for boot devices. At operation302, a user defines a boot policy in the management system102and provisions the server104accordingly. Management software of the management system102implicitly adds attributes to the boot policy202that allows the server104(e.g., firmware in the server104) to identify the particular boot devices. The attributes may have boot connection vector (BCV) attributes and/or bootstrap entry vector (BEV) attributes that are associated with boot devices hosted by the server. In one example, the management software of the management system102adds a World Wide Port Name (WWPN) to identify a vHBA or Media Access Control (MAC) address of a vNIC.

At operation304, the server104(e.g., the firmware of the server104) masks out or removes devices hosted by the server104from an initialization process that do not match the boot device parameters or attributes set forth in the boot policy202. At operation306, the server104loads firmware (e.g., ROM firmware) only for those devices that match the boot device parameters or attributes in the boot policy202, and at operation308, the server104initializes these devices. When the server104initializes these devices, the server104may select a first one of the boot devices that belongs to a first device type that has a first priority in the priority order (e.g., a particular device in the HDD device type group). This first device is instructed to initialize. Likewise, the server104may then select a second one of the boot devices that belongs to a second device type that has a second priority in the priority order (e.g., a particular device in the FDD device type group). This second device is then instructed to initialize. At operation310, the server104loads a computer device operating system using one or more of the boot devices that matches the boot device parameters or attributes in the boot policy202. Once the operating system has been loaded, the server104may then terminate initialization of other boot devices.

Reference is now made toFIG. 4.FIG. 4illustrates an example flow chart400that shows enhanced or optimized booting operations performed by the server104to load an operating system of the server104. At operation402, the server102powers on, and at operation404, the server104starts a power on self-test. The server104then reads boot device parameters (or attributes) at operation406from, for example, the boot policy202received as a part of the server management policies described above. At operation408, the boot devices are enumerated in a boot list according to the boot device parameters provided in the boot policy202. The server104evaluates, at operation410, the boot list to determine whether the next device (or in an initial case, the first device) is valid (e.g., whether the device matches the parameters provided in the boot policy). If not, the server104, at operation412, logs the boot device information and boot failure information into a system event log (SEL) of the server104. If so (i.e., if the answer to operation410is “yes”), at operation412, the server104obtains BEV and/or BCV attributes for the next device in the enumeration in the boot list. At operation416, the server then boots the next device using the BEV or BCV attributes. The server104then determines, at operation418, whether the operating system has been booted. If the operating system has not been booted, the server reverts to operation410to evaluate the next device in the boot list. If so, the boot device reverts to operation412to log the boot device/boot failure information into the SEL. At operation420, the server104exits the power on self-test.

Thus, by the above techniques, boot order control is maintained at a centralized management entity (e.g., the management system102), and stateless boot order instructions are provided to the server104. The techniques described above avoid unintended device initialization code from executing during a server power on mode, thereby reducing the time to boot the operating system. In other words, the techniques described above allow the server104to accomplish enhanced or optimized booting control by enumerating only necessary devices to boot. As a result, the reboot time of the server104is reduced.

It should be appreciated that the techniques described above in connection with all embodiments may be performed by one or more computer readable storage media that is encoded with software comprising computer executable instructions to perform the methods and steps described herein. For example, the operations performed by the management system102and the server104may be performed by one or more computer or machine readable storage media (non-transitory) or device executed by a processor and comprising software, hardware or a combination of software and hardware to perform the techniques described herein.

In summary, a method is provided comprising: at a computing apparatus device having connectivity to a network, receiving instructions from a management device in the network, wherein the instructions comprise attributes associated with boot devices hosted by the computing apparatus; analyzing the attributes in the instructions to determine a priority order for the boot devices; removing one or more boot devices hosted by the computing apparatus device from an initialization process when the one or more boot devices do not match the attributes in the instructions; and initializing remaining boot devices other than the one or more boot devices removed from the initialization process such that the remaining boot devices are initialized in accordance with the priority order.

In addition, an apparatus is provided comprising: a network interface unit; a memory; and a processor coupled to the network interface unit and the memory, the processor being configured to: receive instructions from a management device in a network, wherein the instructions comprise attributes associated with boot devices; analyze the attributes in the instructions to determine a priority order for the boot devices; remove one or more boot devices from an initialization process when the one or more boot devices do not match the attributes in the instructions; and initialize remaining boot devices other than the one or more boot devices removed from the initialization process such that the remaining boot devices are initialized in accordance with the priority order.

Furthermore, these techniques may be embodied in another form in which one or more computer readable storage media is encoded with software comprising computer executable instructions and when the software is executed operable to: receive instructions from a management device in a network, wherein the instructions comprise attributes associated with boot devices hosted by a computing apparatus; analyze the attributes in the instructions to determine a priority order for the boot devices; remove one or more boot devices hosted by the computing apparatus from an initialization process when the one or more boot devices do not match the attributes in the instructions; and initialize remaining boot devices other than the one or more boot devices removed from the initialization process such that the remaining boot devices are initialized in accordance with the priority order.