Bare-Metal Provisioning (Erl, Naserpour)
How can operating systems be remotely deployed on bare-metal servers?
ProblemBoth cloud providers and cloud consumers require the ability to remotely provision bare-metal servers. This process begins with the remote deployment of operating systems. However, establishing a remote connection for provisioning purposes is not possible without software being already installed on bare-metal servers.
SolutionContemporary server features are utilized to install remote management support into the server ROM to establish the required remote bare-metal provisioning system.
ApplicationSpecialized discovery and deployment agents can be utilized within the remote bare-metal provisioning system to locate and provision available bare-metal servers with operating systems dynamically.
MechanismsCloud Storage Device, Hypervisor, Logical Network Perimeter, Resource Management System, Resource Replication, SLA Management System
Compound PatternsBurst In, Burst Out to Private Cloud, Burst Out to Public Cloud, Elastic Environment, Infrastructure-as-a-Service (IaaS), Multitenant Environment, Platform-as-a-Service (PaaS), Private Cloud, Public Cloud, Resilient Environment, Software-as-a-Service (SaaS)
The remote provisioning of servers is common because remote management software is generally a native component of a server’s operating system. However, bare-metal servers do not have pre-installed operating systems (or any other software), meaning access to conventional remote management programs is unavailable.
Most contemporary servers provide the option for remote management support to be pre-installed in the server’s ROM. Some vendors offer this feature only through an expansion card, while others have the required components already integrated into the chipset.
A bare-metal provisioning system can be designed to utilize this feature with specialized service agents that can be used to discover and effectively provision entire operating systems remotely.
The remote management software that is integrated with the server’s ROM becomes available upon server start-up. A Web-based or proprietary user interface, like the portal provided by the remote administration system mechanism, is usually used to connect to the server’s native remote management interface. The IP address of the remote management interface can be configured manually, through the default IP, or alternatively set through the configuration of a DHCP service. IP addresses in IaaS platforms can be forwarded directly to cloud consumers so that they can perform bare-metal operating system installations independently.
Although remote management software is used to enable connections to server consoles and for the deployment of operating systems, it raises two concerns:
- Manual deployment on multiple servers can be vulnerable to inadvertent human and configuration errors.
- Remote management software can be time-intensive and require significant runtime IT resource processing.
The bare-metal provisioning system addresses these issues via the use of the following components:
- Discovery Agent - A type of monitoring agent that searches and finds available servers that are then assigned to cloud consumers.
- Deployment Agent - A management agent that is installed into a physical server’s memory to be positioned as a client for the bare-metal provisioning deployment engine.
- Discovery Section - A software component that scans the network and locates available servers with which to connect.
- Management Loader - The component responsible for connecting to the server and loading the management options for the cloud consumer.
- Deployment Component - The feature responsible for installing the operating system on the selected servers.
The bare-metal provisioning system further provides an auto-deployment feature that allows cloud consumers to connect to the deployment software and provision more than one server or operating system at the same time.
The deployment software connects to the servers via their management interfaces, and uses the same protocol to upload and operate as an agent in the physical server’s RAM, after which the bare-metal server becomes a raw client with a management agent installed. The deployment software then uploads the required setup files to deploy the operating system.
Deployment images, operating system deployment automation, or unattended deployment and post installation configuration scripts can be used via the intelligent automation engine mechanism and the self-service portal to further extend this functionality.
Figure 1 - A sample cloud architecture resulting from the application of the Bare-Metal Provisioning pater (Part 1).
- The cloud consumer connects to the deployment solution.
- The cloud consumer uses the deployment solution to perform a search by using the discovery agent.
- The available physical servers are shown to the cloud consumer, who selects the target server for usage.
- The deployment agent is loaded to the psychical server’s RAM via the remote management system mechanism.
- The cloud consumer selects an operating system and method of configuration via the deployment solution.
- The operating system is installed and the server is operational.
Figure 2 - A sample cloud architecture resulting from the application of the Bare-Metal Provisioning pater (Part 2).
NIST Reference Architecture Mapping
This pattern relates to the highlighted parts of the NIST reference architecture, as follows: