SIDEBAND BARE METAL PROVISIONING

Disclosed methods respond to detecting the receipt, by a management controller, such as a baseboard management controller (BMC), of an information handling system, of a provisioning request from a management client, by rebooting the information handling system to initiate a Universal Extensible Firmware Interface (UEFI) boot sequence that is configured to load an EFI application, referred to herein a provisioning application. A two way communication channel such as a WebSocket is established between the management client and the management controller to stream OS image data corresponding to an OS image to the management controller. The OS image data streamed to the management controller is written to an OS image partition of a boot device, after which the stored OS image may be booted to load the OS. The provisioning request may be communicated as a representational state transfer (REST) compliant (RESTful) request using, in at least some deployments, a Redfish application programming interface (API).

TECHNICAL FIELD

The present disclosure relates to information handling systems and, more particularly, provisioning of information handling systems.

BACKGROUND

Server class information handling systems may be implemented as bare metal servers, i.e., servers that employ a virtualization environment featuring a hypervisor that does not rely on a host operating system (OS) for its functionality. Provisioning a bare metal server in a modern datacenter raises numerous challenging issues including, as examples, flexibility, security, scalability, and multi-tenancy. While Universal Extensible Firmware Interface (UEFI) boot technology based on Hypertext transfer protocol (HTTP) improves and addresses issues raised by legacy but widely used Preboot Execution Environment (PXE) boot technology, it is still not a cloud-native approach and relies too heavily on an in-band network.

In contrast, cloud-ready images are used increasingly for both virtual machines (VMs) and physical (bare-metal) servers. Current in-band provisioning technologies, which are primarily intended for traditional OS deployments, lack efficient and native functionality to inject cloud image metadata over PXE boot or UEFI HTTP boot.

SUMMARY

Common problems associated with conventional provisioning approaches referenced above are addressed by disclosed systems and methods for provisioning an information handling system. In one aspect, disclosed methods respond to detecting the receipt, by a management controller, such as a baseboard management controller (BMC), of an information handling system, of a provisioning request from a management client, by rebooting the information handling system to initiate a UEFI boot sequence that is configured to load an EFI application, referred to herein a provisioning application. A two way communication channel such as a WebSocket is established between the management client and the management controller to stream OS image data corresponding to an OS image to the management controller. The OS image data streamed to the management controller is written to an OS image partition of a boot device, after which the stored OS image may be booted to load the OS. The provisioning request may be communicated as a representational state transfer (REST) compliant (RESTful) request using, in at least some deployments, a Redfish application programming interface (API).

Disclosed provisioning methods may route the streaming OS image to the boot device by opening a stream input on a predetermined transfer control protocol (TCP) port and dumping data received via the stream input to the boot device. A virtual network interface card (NIC) of the management controller may forward the OS image data received via the WebSocket to the predetermined TCP port, thereby rendering it unnecessary to store the typically enormous OS image in BMC storage resources. In addition, if the provisioning request incudes cloud image metadata, the metadata may be stored to a metadata partition of the boot device.

DETAILED DESCRIPTION

Exemplary embodiments and their advantages are best understood by reference toFIGS.1-4, wherein like numbers are used to indicate like and corresponding parts unless expressly indicated otherwise.

Additionally, an information handling system may include firmware for controlling and/or communicating with, for example, hard drives, network circuitry, memory devices, I/O devices, and other peripheral devices. For example, the hypervisor and/or other components may comprise firmware. As used in this disclosure, firmware includes software embedded in an information handling system component used to perform predefined tasks. Firmware is commonly stored in non-volatile memory, or memory that does not lose stored data upon the loss of power. In certain embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is accessible to one or more information handling system components. In the same or alternative embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is dedicated to and comprises part of that component.

Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically. Thus, for example, “device12-1” refers to an instance of a device class, which may be referred to collectively as “devices12” and any one of which may be referred to generically as “a device12”.

As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication, mechanical communication, including thermal and fluidic communication, thermal, communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.

Referring now to the drawings,FIG.1illustrates an exemplary computing platform100including an information handling system101suitable for implementing sideband provisioning of bare metal servers in accordance with disclosed teachings. The illustrated computing platform100leverages HTTP-based Redfish functionality supported on at least some types of BMCs and extends that functionality by establishing a WebSocket between a remote management client and the BMC, streaming OS image data from the management client to the BMC via the WebSocket, and writing the streaming OS image data to a boot device from which the system can boot an operating system.

As depicted inFIG.1and described in more detail with respect toFIG.2, two communication channels have been established between management client102and BMC110. The communication channels illustrated inFIG.1include an HTTP-based Redfish API connection107and a WebSocket105. The Redfish API connection107may be used to initiate the bare metal provisioning operations while the WebSocket105may be used to stream or otherwise transmit OS image data from an OS image database103to a boot device130.FIG.1further illustrates a TCP socket112, established by provisioning application120, between BMC110and boot device130. In at least some embodiments, OS image data received by BMC110via WebSocket105may be forwarded to boot device130over a TCP socket112.FIG.1still further illustrates provisioning application120sending metadata, e.g., cloud image metadata, to boot device130. The boot device130illustrated inFIG.1includes two or more partitions including an OS image partition and a metadata partition104.

Referring now toFIG.2, a sequence diagram illustrates a method200for performing side band provisioning of bare metal servers in accordance with disclosed teachings. The participants in the illustrated sequence diagram include the management client102, the BMC110, the provisioning application120, a host system125, and the boot device130. As depicted inFIG.2, method200begins when the management client102sends (step202) a provisioning request to BMC110. The illustrated provisioning request is implemented as an HTTP request and, more specifically, a Redfish API POST request. BMC110may respond to receipt of the provisioning request by rebooting (operation204) the information handling system. The boot sequence initiated by the reboot is, in at least one embodiment, a UEFI boot sequence that includes, as part of the sequence, the loading of provisioning application120, indicated as step206in the illustrated embodiment.

As depicted inFIG.2, the management client102establishes (step210) a web socket connection with BMC110. The management client102may then proceed to stream OS image data from the OS image database (depicted inFIG.1) via the WebSocket105(FIG.1).FIG.2further illustrates BMC110sending (step212) the streamed OS image data to the provisioning application120. Provisioning application120is illustrated writing (Step214) the OS image data received from the BMC to the boot device130. Steps212and214may proceed until the entire OS image has been written to boot device130at which point the process completes (step216).

The method200illustrated inFIG.2further includes a meta-data portion during which metadata included in the provisioning request is stored to boot device130. As depicted inFIG.2, provisioning application120may read (operation220) metadata from BMC110and then append (step222) the metadata to a metadata partition104(depicted inFIG.1). The illustrated method200may then set (step224a boot order before exiting (step226). At this point, the information handling system may boot (step230) the OS image from the boot device to load an operating system.

The BMC may respond to receiving a provisioning request from the remote management client by rebooting the information handling system to execute a UEFI boot process. After performing power on self-test (POST) and an initialization, the boot sequence loads an Extensible Firmware Interface (EFI) application referred to herein as provisioning application120, which may wait to detect stream input from BMC110. As depicted inFIG.1, BMC110may forward OS image data received by the BMC110illustrated inFIG.2and establish a communication channel, identified as TCP socket112, with a boot device130. Provisioning application120is illustrated forwarding information received by BMC110via WebSocket105to boot device130. In the depicted embodiment, the management client102is accessing OS image data103and providing the OS image data to the device130via BMC110and EFI provisioning application120.

Referring now toFIG.3, a flow diagram illustrates a sideband provisioning method300for bare metal servers. As illustrated inFIG.3, method300may include, responsive to detecting (step302) receipt, by a management controller of the information handling system, of a provisioning request from a remote management client, rebooting the information handling system to initiate a boot sequence configured to load a provisioning application. The illustrated method further includes establishing (step304) a WebSocket between the management client and the management controller to stream OS image data corresponding to an OS image to the management controller. The OS image data may then be written (step306) or dumped to a partition in boot device130. With the OS image now stored in the boot device, the system may boot (step310) the OS image to load the OS.

Referring now toFIG.4, any one or more of the elements illustrated inFIG.1throughFIG.3may be implemented as or within an information handling system exemplified by the information handling system400illustrated inFIG.4. The illustrated information handling system includes one or more general purpose processors or central processing units (CPUs)401communicatively coupled to a memory resource410and to an input/output hub420to which various I/O resources and/or components are communicatively coupled. The I/O resources explicitly depicted inFIG.4include a network interface440, commonly referred to as a NIC (network interface card), storage resources430, and additional I/O devices, components, or resources450including as non-limiting examples, keyboards, mice, displays, printers, speakers, microphones, etc. The illustrated information handling system400includes a baseboard management controller (BMC)460providing, among other features and services, an out-of-band management resource which may be coupled to a management server (not depicted). In at least some embodiments, BMC460may manage information handling system400even when information handling system400is powered off or powered to a standby state. BMC460may include a processor, memory, an out-of-band network interface separate from and physically isolated from an in-band network interface of information handling system400, and/or other embedded information handling resources. In certain embodiments, BMC460may include or may be an integral part of a remote access controller (e.g., a Dell Remote Access Controller or Integrated Dell Remote Access Controller) or a chassis management controller.