1 / 10

Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level)

Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level). Andrew Warfield. VMs as a Building Block for Storage. Device VMs and narrow interfaces let us treat devices as isolated services in a cluster. Externally administered / fate sharing / invisible.

elkan
Download Presentation

Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using Virtual MachinesTo Build Virtual StorageFor Virtual Machines(at the block level) Andrew Warfield {andrew.warfield}@cl.cam.ac.uk

  2. VMs as a Building Block for Storage • Device VMs and narrow interfaces let us treat devices as isolated services in a cluster. • Externally administered / fate sharing / invisible. • Block interface is narrow • Effectively stateless, OS Agnostic. • Develop in user space. • Faster/safer development. • Easier access to “high-level” primitives. (like “files” and “sockets”).

  3. Userspace isn’t unreasonably slow.

  4. Userspace isn’t unreasonably slow.

  5. Three Examples • How to practically manage lots of VM images in an existing cluster? • User-level Block-Back • How to support applications of VM checkpointing (eg fast frequent snapshots)? • Parallax-local • How to scale to support large, saturated VM clusters? • Parallax

  6. User-level Block Backend Version  1.03       ------Sequential Output------ --Sequential Input- --Random-                   -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CPxen0             2G 31198  95 56818   8 20967   2 28415  77 59595   4 264.9   0xenU-blkbe2cpuGT 2G 31157  96 54026  10 25585   4 30664  90 64919   7 292.7   0xenU-blktp2cpuGT 2G 32313  97 54217   8 20950   3 28117  87 65924   4 191.8   0 • Problem: Loopback sucks. • Page dirty vs. OOM-killer deathmatch. • Images-as-files is an attractive way to manage VM storage. • Blktap + XenStore make this possible • Status: Returning to this in Oct/Nov.

  7. Local VM-specific Storage • Problem: Want fast, efficient management of images and snapshots for VMs. • Write Sharing Considered Harmful. • Use Radix-trees to virtualize storage addressing. • Tree node is (address, writable, child-CRC). • Snapshot is one-block read and write. • Status: Working.

  8. Parallax Architecture

  9. Block Access in Clusters • Problem(1): Want to use local disks for storage. (or even if you don’t…) • P2: Your storage servers are about to be hosed. • Fate-sharing cache aggregates VM traffic. • Extent-based allocator builds n-way virtual storage chunks from local disks. • Status: Work in progress with James Bulpin. • (target: OSDI 2006)

  10. Conclusion • Devices-as-services is a good approach to managing storage in a VM cluster. • Several (hopefully) useful examples. • Bigger picture (in terms of my thesis) includes other devices (a.k.a network).

More Related