In my previous blog I talked about the speed of deployment of virtual machines when using IBM Smart Cloud Provisioning. I showed that virtual machines can be started and configured in a matter of seconds and I described a little in bit in details how this could be achieved in terms of the internal infrastructure of the product.
Today I would like to talk about another aspect of IBM Smart Cloud Provisioning that contributes to make it a low-touch solution: its installation/configuration process.
The IBM Smart Cloud Provisioning solution is comprised of several kind of nodes, each of them hosting a specific set of services. Additionally, for dependability and scalability reasons most of those nodes are deployed redundantly. Some of the most important components needed to run the solution are: compute nodes, storage nodes, web server, web console, REST server, distributed lock service, distributed data store, PXE server.
For a production installation, with the exception of compute nodes and storage nodes, all those services can be installed on virtual machines and most of them can coexist on the same system. So despite the number of components that comprise the solution, a minimal working configuration requires just four physical nodes. And for demo/testing purposes everything could be installed and configured into just one single node (i.e. by virtualizing storage and compute nodes as well).
To simplify the setup process of those components and to allow for an easy extension/upgrade of the solution all the installation/configuration process is driven by a PXE server.
The idea is that once you have defined the topology of your environment you can configure it into the PXE server so that when the machines get powered on they automatically receive from the PXE server the right OS image containing the services that have to be hosted on that node (storage nodes, kernel services, compute nodes, …). This approach simplifies the management of the infrastructure and allows, in some cases, also to quickly repair it. The only component that has to be directly installed is the PXE server: for this purpose a traditional installer is provided for guiding the user through the process.
Let's consider, for example, how you can manage of one of the core elements of the solution: the compute node (i.e. the node where the virtual machines are hosted and run).
A typical administrative task in a cloud environment is to add more compute power in terms of hypervisor resources, meaning that new compute nodes have to be added.
With the above infrastructure in place, adding a new compute node to the environment is a straightforward task. Just plug your brand new machine into the environment and configure it to boot from the network; then power it on. When it starts up it will automatically get from the PXE server a pristine hypervisor image and in a matter of a few tens of minutes you have a new compute node available in your environment.
In addition to that, since compute nodes are stateless resources, this approach helps also in the cloud repair itself. When a compute node gets damaged for any reason, having it repaired is just a matter of rebooting the system (with a configured PXE boot) so that it can pick up again a pristine image.
A similar approach would apply also when you need to add a new storage node (i.e. the node that provides images and volumes) to the environment. In this case an additional step is required by configuring the MAC address of the new machine in the PXE server to have it installed as a storage node; then just power on the system. In this case the additional step is necessary because in general if a new machine is not properly assigned a given role by appropriately mapping its MAC address it will automatically be installed as a compute node.
Several variations from the basic setup described above are possible depending on the actual topology of the environment and on the kind of nodes to be installed.
Further information about IBM Smart Cloud Provisioning can be found in the IBM Smart Cloud Provisioning Wiki here:
If you're interested in trying IBM Smart Cloud Provisioning, you can download a demo version from here: