Traditional virtualization infrastructures with a need of some type of shared storage are expensive to deploy and hard to scale up. Imagine an infrastructure built on a cluster of hosts running guest systems where each host contributes a fraction of its inexpensive local storage space to establish a distributed storage system used across the entire cluster. This storage layer provides advanced features such as snapshotting, cloning, thin provisioning. Guest disk images are stored on this system and are therefore accessible to any host part of the cluster. Imagine also that this infrastructure has built-in fault tolerance and automatically replicates data to handle hosts added to or removed from the cluster (as it can happen in case of hardware failure). Such a system would provide:
- Good performance scalibility at all levels: CPU, RAM, and storage all scale linearly because a host contributes each of these resources to the cluster. Whereas traditional virtualization infrastructures are hard to scale up due to the inherent throughput and latency bottlenecks of a centralized SAN/NAS.
- Excellent reliability due to the fault tolerance and lack of a single point of failure such as a SAN/NAS.
- Convenient ability to live migrate any guest from any host to any other host without the need of centralized storage.
- Ability to replace/upgrade 100% of the parts of a cluster, over time, with zero downtime.
A project to accomplish all the above exists! MORITA Kazutaka, FUJITA Tomonori, and MORIAI Satoshi, all working for NTT Cyber Space Laboratories —I am trying to imagine what NTT might be doing—, started the Sheepdog project for QEMU/KVM. Their backgrounds reveal these guys are kernel developers, Xen hackers, and storage experts. They have worked on the kernel block layer, Xen Kemari (Virtual Machine Synchronization for Fault Tolerance), the SCSI layer, and much more.
I am very excited to hear about this project. A Sheepdog block driver for QEMU/KVM has already gone through multiple iterations of reviews. The latest patch posted to the qemu-dev@ mailing list was v6 on June 6, 2010. Hopefully it will soon make it to an official release.
This whole project is very innovative. As far as I know, no other virtualization vendor offers anything remotely similar to Sheepdog.