Improving Data Center Resource Management, Deployment, and Availability with Virtualization
Jul 24, 2009 Grad School, Papers, Virtualization
That’s the title of my thesis proposal, which attempts to cram all the work I’ve done over the past four years in just a few words. In the end, I’m pretty happy with the result–I’ve been able to tie together the various projects I’ve worked on to show how virtualization provides powerful new techniques for deploying applications, more efficiently managing resources, and providing high reliability in large data centers.
If you are interested, you can read the full version, or look through my slides. It should make for absolutely thrilling bed time reading.
Here is the executive summary of what I’ve worked on:
Deployment
I start by looking at the deployment challenges of transitioning to a virtual environment and figuring out where to place VMs. This is an interesting area because virtualization can provide great benefits such as improved server consolidation, but also adds new challenges in the form of virtualization overheads.
MOVE (Modeling Overheads of Virtual Environments)
When you first consider transitioning from running applications natively to using virtual machines, it is important to understand how application resource requirements will change due to the overheads incurred by the virtualization layer. The MOVE project is designed to help predict these resource changes by building a regression model that relates the native and virtual platforms. This was work that I started during an internship at HP Labs in the summer of 2007, working with Lucy Cherkasova.
- Profiling and Modeling Resource Usage of Virtualized Applications. Timothy Wood, Ludmila Cherkasova, Kivanc Ozonat, and Prashant Shenoy. In proceedings of ACM International Conference on Middleware 2008.
Memory Buddies – Guiding VM placement with memory information
Once you know your resource requirements, you need to figure out where to put each of your virtual machines. The Memory Buddies project tries to place virtual machines in order to maximize the amount of memory sharing that can be achieved — if VMs are running similar operating systems or applications, then the virtualization layer can share copies of these duplicated pages. In order to make this practical in a data center with many thousands of VMs, we propose an efficient fingerprinting technique that uses Bloom filters to quickly compare virtual machine memory contents.
- Memory Buddies: Exploiting Page Sharing for Smart Colocation in Virtualized Data Centers. Timothy Wood, Gabriel Tarasuk-Levin, Prashant Shenoy, Peter Desnoyers, Emmanuel Cecchet, and Mark Corner. In proceedings of the International Conference on Virtual Execution Environments, VEE 2009.
Resource Management
Making data centers more efficient is a key concern throughout all of my work. Virtualization’s greatest benefit comes in the promise of improved server utilization, leading to lower hardware costs and decreased energy consumption.
Sandpiper – automated VM loadbalancing
Alright, now we’ve figured out initial resource allocations and placements for all of our virtual machines, but those initial decisions may not be sufficient (or efficient) if an application’s workload changes over time. Sandpiper is a system which monitors the resource utilization and performance of a set of VMs and dynamically adjusts their resources or migrates them between hosts in order to prevent servers from becoming overloaded. This was the first project I worked on when I came to grad school, and now there are several commercial products out there doing similar things. We recently revised and extended this paper for a journal.
- Black-box and Gray-box Strategies for Virtual Machine Migration. Timothy Wood, Prashant Shenoy, Arun Venkataramani, and Mazin Yousif. Proceedings of the Fourth Symposium on Networked Systems Design and Implementation (NSDI), Cambridge, MA, April 2007.
- Sandpiper: Black-box and Gray-box Resource Management for Virtual Machines. Timothy Wood, Prashant Shenoy, Arun Venkataramani, and Mazin Yousif. To appear in Computer Networks Journal Special Issue on Virtualized Data Centers 2009. (Extended version of NSDI 07 paper)
Reliability
High performance systems are only useful if they are reliable. The remaining work for my thesis uses virtualization to decrease the cost of high availability and fault tolerance systems.
ZZ: Cheap Practical Byzantine Fault Tolerance
Byzantine Fault Tolerance is a way of providing very strong reliability guarantees, even in the face of malicious users or application components. Unfortunately, BFT has a very high cost because each application request must be executed 2f+1 times in order to handle f simultaneous faults. In ZZ, we try to reduce this cost down to only f+1, by using an additional f sleeping VM replicas which are only woken up after a fault is detected.
- ZZ: Cheap Practical BFT Using Virtualization. Timothy Wood, Rahul Singh, Arun Venkataramani, and Prashant Shenoy. University of Massachusetts Technical Report TR14-08, 2008.
CloudNet: Wide Area Resource Management and Availability
My most recent work was started while at AT&T in Fall 2008, and looks at how VPNs can be combined with cloud computing platforms to make data center resources appear seamlessly connected to an enterprise’s existing infrastructure. We are further exploring this area to see how we can provide disaster recovery services so that if a data center becomes unavailable, the critical applications running within it can transparently fail over to servers at a different data center.
- The Case for Enterprise-ready Virtual Private Clouds. Timothy Wood, Alexandre Gerber, K.K. Ramakrishnan, and Jacobus van der Merwe. In proceedings of the Workshop on Hot Topics in Cloud Computing, HotCloud 2009.
Leave a Reply