Recursive Hardware-as-a-Service (rHaaS) and Fast Provisioning

What is Hardware as a Service? Hardware as a Service (HaaS) is a new service being developed by the Massachusetts Open Cloud (MOC) to allow physical servers to be allocated to clients in the same way that virtual servers are in existing IaaS clouds. This poster describes the new recursive HaaS project and the fast provisioning customization we are developing. What is Recursive HaaS? Recursive HaaS allows a HaaS service to be layered on top of an existing one. It will allow testing of new features at performance and scale without affecting the production service. It will also allow clients to host their own HaaS on top of a base HaaS to provide, potentially customized, services to their users. What is Fast Provisioning? An example customization we are developing is a fast provisioning service that can be used between tenants that have some degree of trust in each other. It will allow nodes to be moved between customers (and a service installed) in seconds, rather than the minutes required by base HaaS. Why Recursive HaaS? Testing new features in HaaS: 1. Recursive HaaS absolves the need to have dedicated test infrastructure. 2. New features can be tested at scale without affecting production services. Hosting utility Computing Services: 1. Providing organizations the independence and flexibility of re-allocating their resources and hosting custom services. 2. Encourage new business models and service offering in the domain of utility computing without any upfront investment in hardware. Fast Provisioning A use case for testing features using recursive HaaS Motivation: Boot Time of Servers can take between few minutes to tens of minutes. Most of the booting time is spent in checking status of hardware (running POST). – By using a custom boot-loader and shortening the boot time we can provision nodes faster than traditional provisioning methods. – For tenants of recursive HaaS with some degree of trust among themselves, this service can allow nodes to be moved in seconds compared to minutes taken by baseHaaS(bHaaS) – Shorter boot-times along with faster deployment of OS across servers opens up possibilities for a class of applications that require massive compute power for a brief period of time. Implementing Recursive HaaS Nodes allocated from base HaaS to recursive HaaS forms the free pool of recursive HaaS. – API calls that affect the nodes or the network configuration are transparently redirected to base HaaS from recursive HaaS. – Applications work identically in HaaS and Recursive HaaS Implementing Fast Provisioning – By default all nodes in free-pool of rHaaS will be booted to a custom boot-loader. – On node allocation to tenants, they can push OS images using socat based broadcast method provided with head-nodes of recursive HaaS – Once the custom boot loader of the node receives all the prerequisite files, it will kexec into the customer's OS image. – To return the nodes from the tenant to free-pool of recursive HaaS, the same process will be repeated. This time cutom boot-loader will be pushed to the nodes and replaced using kexec. Conclusion Recursive HaaS with fast provisioning enables new use cases for HaaS, including: the ability for organizations to partition and sub-partition hardware flexibly; hosting new services; and providing enormous computation power on short notice by booting thousands of nodes at once. For more Information: https://github.com/BU-EC500-SP15/fast-haas-recursive https://github.com/CCI-MOC/haas moc-developers@googlegroups.com Node Life-Cycle bHaaS ↔ rHaaS ↔ tenants Network Switch: Managed by HaaS Node and network configuration management Schematic view of node distribution between base HaaS and recursive HaaS Base HaaS Total Servers: 100