This project has been talked around the halls of EMC for the better part of a year now. EMC is officially releasing a new project to the open-source community under the Apache v2.0 license as RackHD!

TL;DR – Watch the video at the bottom of the post

rackhdRackHD is the latest open source project from EMC and spear-headed with a team of rockstar developers who are making it better each day. RackHD is a set of services used to provide platform agnostic management and orchestration of physical hardware.

RackHD abstracts underlying physical components enabling automated infrastructure for a varying degree of hardware, including white boxes, using a common REST API and live data feeds.

RackHD is focused on being the lowest level of automation that interrogates agnostic hardware and provisions machines with operating systems. The project initially started with the goal of providing a mechanism to perform hardware inventory and firmware upgrades to commodity white-box servers. Existing open source solutions do an admirable job of inventory and bare OS provisioning, but the ability to upgrade firmware is beyond some stacks such as xCat, Cobbler,Razor or Hanlon (read comparison).

This project is a collection of libraries and applications that can be found https://github.com/RackHD. The combination of these repos are intended to provide a REST API based service to perform tasks such as:

  • Install, configure, and monitor bare metal hardware. Such as compute servers, PDUs & DAEs for storage, and network switches.
  • Provision & erase a server’s operating system.
  • Install and upgrade firmware on any hardware.
  • Monitor bare metal hardware through out-of-band management interfaces.
  • Provide data feeds for alerts and raw telemetry from hardware.

RackHD combines open-source tools, with a declarative event-based workflow engine, that works in conjunction with PXE booting. It’s similar to Razor and Hanlon in that it sets up and boots a microkernel that performs predefined tasks. However, it extends this model by adding a remote agent that communicates with the workflow engine to dynamically determine the tasks to perform on the target machine such as zero out disks, interrogate the PCI bus, or reset  IPMI settings through the hosts internal KCS channel.

The workflow engine was extended to support polling via out-of-band interfaces in order to capture sensor information and other data that can be retrieved using IPMI. In RackHD, these become pollers that periodically capture telemetry data from the hardware interfaces.

Watch the introduction YouTube video below to see RackHD in action.

To learn more about RackHD, visit the GitHub repo, scroll through documentation on ReadTheDocs, and collaborate with the project maintainers on Slack. Visit community.emccode.com to get your invite to the Code Community slack team and go to the #rackhd channel.

Get started using Vagrant and the Quick-Start Guide.