For many data center technicians, much of the day is spent deploying servers – standing in front of a cabinet with a KVM console, entering a few configuration items and then waiting while operating systems are installed. For a small company, deployment of a new server is an exciting and rare event — for a hosting company or data center however, which provisions hundreds or thousands of servers daily, OS installation becomes a tedious chore. It’s tedious, repetitive, downright boring work.
Managers watching the installation process might wonder – “What is he doing? Why is he just sitting there, staring at the screen?”. No one likes to see highly skilled engineers watching on-screen installation progress bars for hours on end, especially the customer paying $300/hour for the service. Wouldn’t it be great if all of this software installation could be automated?
Luckily, it can be. Using a suite of tools and common-sense policies, it’s possible to have a data center infrastructure in which servers install themselves. Much of the automation magic that has made cloud technology so popular can be used as well with real physical servers. Here’s how it’s done.
STANDARDIZE OPERATING SYSTEMS
Some hosting companies let customers choose any operating system they please. These days, there are a hundred different Linux and Windows-based operating systems to choose from, and each of these comes in many different flavors and versions. While it’s great to offer the customer choice, it’s not cost-effective to maintain an infrastructure capable of supporting all these different operating systems, especially when profit margins for dedicated servers are incredibly slim. Technicians need to be trained, installation media needs to be present, and hardware compatibility needs to be validated – all of this costs time and money. Instead of offering any OS the customer wishes, it is best to standardize. Offer a reasonable number of options – a selection perhaps two to five Linux varieties will satisfy the majority of customers. RHEL / CentOS and Debian / Ubuntu are by far the most popular. If a customer wishes to install a less common distribution such as Slackware, Gentoo or Arch, additional fees should apply to compensate for the additional overhead data center staff incur in supporting these options.
Forget about keeping stacks of installation CDs around. Every data center will need, at a minimum, tens or hundreds of gigabytes of storage for operating systems, update patches and optional extras. Place all of these files on a central SAN, so that maintenance and distribution is efficient and simple.
TRACK MAC ADDRESSES
MAC addresses are unique identifiers assigned to ethernet interfaces. It’s important to track them in a data center’s inventory database. As well as enabling provisioning automation, it will enable many other beneficial management functions – for example when discovering the source of malicious traffic on a network or tracking bandwidth utilization.
The Dynamic Host Configuration Protocol is well known for it’s ability to provision IP addresses to desktop machines, eliminating the need for network administrators to manage statically-assigned addresses. However, it can also play a role in provisioning hosts in a data center. The protocol can be used to assign and re-assign basic network configuration details on customer hosts – including IP addresses, netmasks, gateways and DNS servers.
The Pre-boot eXecution Environment standard allows servers to boot from a remote host. Individual machines need not have a CD drive or any local storage at all – everything can be loaded on-demand over the network.
A remote power controller is a device is a remote-controlled power switch. Using these units, servers can be turned on/off or rebooted at the command of the central provisioning server. If a server “locks up”, the customer can simply click a button in his control panel to have his machine rebooted – no need for a technician’s involvement. While not essential to an automated provisioning environment, these devices can facilitate automation in the data center.
THE SERVER THAT INSTALLS ITSELF
An automated host deployment is a wonderful thing. A technician simply slides a server into it’s rack, enters it’s identification details into the company’s provisioning system, plugs in the network connection, turns on the power and walks away.
The host initializes, acquires an IP address via DHCP and loads the appropriate installation image (the provisioning servers knows what type of hardware is used, which customer it belongs to, which services the customer is paying for and which operating system the customer has selected – the host is uniquely identified by it’s MAC address). The entire OS installation occurs without human intervention (each OS will have a unique method for specifying all of the configuration details in an automated manner, rather than being entered by the operator). After installation, the host boots up configured exactly as it should be, and the customer can be notified (automatically, by the provisioning server) that his host is ready to use.
If pre-configured hardware standing by for allocation to customers, the entire provisioning process – from the customer’s order placement to delivery his log-in credentials, is entirely automatic.
With automatic provisioning, a hosting company can better compete in the market — deploying hosts faster and more reliably than it’s competition; technicians can spend their energy doing more important things to help the operation succeed, and customers have their dedicated servers provisioned in a matter of minutes, rather than hours or days.