I've been impressed by the speed of provisioning a set of virtual machines in just a few tens of seconds using IBM Smart Cloud Provisioning. In most cases you can get a running virtual machine in less than one minute.
The Smart Cloud Provisioning technology has been devised and particularly optimized for managing the following cloud infrastructure scenarios:
Infrastructure composed of homogenous resources
High level of standardization with a relative small set of master images used to provision many instances from the same image
Typical life cycle of the provisioned resources with short average time of life of provisioned virtual instances
Many other workloads can be deployed and easily automated on top of Smart Cloud Provisioning. For example, traditional stateful applications can be easily deployed for simple HA solutions. Anyway you get the maximum performances from Smart Cloud Provisioning when operating in the context of the above scenarios.
To achieve such high performances Smart Cloud Provisioning has been designed focusing the attention to an optimized virtualization infrastructure based on OS streaming: no need to copy large image files over the network when provisioning.
Image copying is the single biggest bottleneck in VM provisioning today both in terms of CPU, memory, I/O and bandwidth usage. In traditional Cloud provisioning approaches all of this overhead is system resource that is just pure overhead (nobody builds a Cloud to provision systems - provisioning is an overhead that is required to have systems on which business workload is deployed, and any overhead is in conflict with the business workload).
The key element of such infrastructure are the so called ephemeral instances, that are virtual machines having no persistent state. Once they get terminated all the data associated with them is deleted as well. They are clones of a master image and these clones will have a primary virtual disk which is ephemeral: when the instance goes, so does its ephemeral storage (mechanisms exist in Smart Cloud Provisioning to provide persistence, if needed by some scenarios).
When creating a new instance, since master images are read-only resources and are replicated across the storage cluster, Smart Cloud Provisioning uses the Copy-on-Write (CoW) technology and the iSCSI protocol to stream them avoiding expensive copying. Each iSCSI session results in a valid block device to be created in the host OS. Of course each guest OS (corresponding to a given instance) requires a writable block device representing the main disk of the system. All supported hypervisors have a storage virtualization layer which includes the Copy-on-Write technology. For example, KVM's qcow2 files can be configured to implement CoW by referencing a backing storage device. VMWare has something called redo files which effectively do the same thing as well. In each case, the hypervisor can natively use the CoW file referencing the iSCSI block device to expose a virtual block device to the virtual machine. Depending on the hypervisor and guest OS this device will show up as something like /dev/sda or c:\. The CoW files are stored locally on the hypervisor's file system. When the instance is terminated, the Smart Cloud Provisioning agent will simply discard the CoW file and check if any other instances are using the same iSCSI device. If the device is no longer in use, the agent will also tear down the iSCSI device.
Thanks to the above infrastructure the action of provisioning a new virtual machine results in a very fast and reliable process that allows to create individual systems in tens of seconds and of peak requests of 1000s of systems per hour.
If you're interested in trying the Smart Cloud Provisioning product, you can download a trial version from the following link: