{andrew.warfield}@cl.cam.ac.uk using virtual machines to build virtual storage for virtual machines...

10
{andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

Post on 19-Dec-2015

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

{andrew.warfield}@cl.cam.ac.uk

Using Virtual MachinesTo Build Virtual StorageFor Virtual Machines

(at the block level)

Andrew Warfield

Page 2: {andrew.warfield}@cl.cam.ac.uk 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.

Block interface is narrowEffectively stateless, OS Agnostic.

Develop in user space.Faster/safer development.Easier access to “high-level” primitives. (like “files” and

“sockets”).

Page 3: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

Userspace isn’t unreasonably slow.

Page 4: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

Userspace isn’t unreasonably slow.

Page 5: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

Three Examples

1. How to practically manage lots of VM images in an existing cluster?• User-level Block-Back

2. How to support applications of VM checkpointing (eg fast frequent snapshots)? • Parallax-local

3. How to scale to support large, saturated VM clusters?• Parallax

Page 6: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

User-level Block Backend

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.

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

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

Page 7: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

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.

Page 8: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

Parallax Architecture

Page 9: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

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)

Page 10: {andrew.warfield}@cl.cam.ac.uk Using Virtual Machines To Build Virtual Storage For Virtual Machines (at the block level) Andrew Warfield

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).