• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
XS Oracle 2009 Vm Snapshots
 

XS Oracle 2009 Vm Snapshots

on

  • 772 views

Patrick Colp: VM Snapshots

Patrick Colp: VM Snapshots

Statistics

Views

Total Views
772
Views on SlideShare
772
Embed Views
0

Actions

Likes
1
Downloads
14
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    XS Oracle 2009 Vm Snapshots XS Oracle 2009 Vm Snapshots Presentation Transcript

    • VM Snapshots Patrick Colp Chris Matthews, Bill Aiello, Andrew Warfield Department of Computer Science University of British Columbia Vancouver, BC, Canada (in collaboration with George S. Coker, II) Xen Summit at Oracle Feb 24-25, 2009
    • Problem Want a fixed image of a VM at a point in time ● e.g. to dynamically inspect a VM from the outside – VMs don't sit still ● memory/state keeps changing – Xen Summit at Oracle Feb 24-25, 2009
    • Goal Capture a consistent view of a VM ● Without pausing and still allowing the VM to run – Create a lightweight, general purpose mechanism – Snapshot Xen Summit at Oracle Feb 24-25, 2009
    • Overview Copy-on-Write frames to snapshot images ● Allows VM to keep running – Lightweight as only dirtied frames are copied – General purpose mechanism ● Can use CoW to do other things too! – snapshot = vm_snapshot(domid); Xen Summit at Oracle Feb 24-25, 2009
    • Degrees of Snapshots 1. Static view of guest memory VM introspection (XenAccess, LKIM) • VM checkpointing (Remus) • 2. Execution rollback VM undo • Speculative execution (SpecHint) • 3. VM fork Quickly spawn template VMs (Potemkin, SnowFlock) • Xen Summit at Oracle Feb 24-25, 2009
    • Implementation Save initial state ● Registers, shared frames, etc. – Copy-on-Write VM's memory ● Mark memory read-only – Catch write faults (log dirty) – What about disks? ● Easy: use Parallax for disk snapshotting – Alternatively can use VHD/QCoW – Xen Summit at Oracle Feb 24-25, 2009
    • Architecture Xen Summit at Oracle Feb 24-25, 2009
    • Architecture Library ● Provide a nice API for snapshotting – Integrate with things like XenAccess and Remus – FUSE driver ● Allocate per snapshot buffer space – Copy buffered frames into backing file – Fetch frames from target VM as requested – Exposes snapshot through read() and mmap() – Xen Summit at Oracle Feb 24-25, 2009
    • Architecture Kernel driver ● Validate and pin user buffer frames – Populate ring with MFNs and pass to Xen – Xen ● domctl to take snapshots – Copy frames into snapshot buffers on write faults – Xen Summit at Oracle Feb 24-25, 2009
    • Fault Path Flow Xen Summit at Oracle Feb 24-25, 2009
    • Accessing CoW Memory Xen Summit at Oracle Feb 24-25, 2009
    • Trickier Bits Write after read ● Catching all writes ● Running out of buffer space ● Xen Summit at Oracle Feb 24-25, 2009
    • Write After Read Problem: ● Check snapshot buffer for frame (not found) – Read VM's memory directly – VM writes to frame after buffer was checked but – before it was read Solution: ● After reading from VM's memory directly, re-check – snapshot buffer for frame Xen Summit at Oracle Feb 24-25, 2009
    • Catching All Writes Problem: ● Normal writes, mark dirty called before writes – Emulated mode/QEMU, mark dirty after writes – Grant tables, mark dirty called on unmap – Solution: ● Normal writes, save frame when mark dirty is called – Emulated mode/QEMU, add new hypercall before – write Grant tables, save frame on map – Xen Summit at Oracle Feb 24-25, 2009
    • Running Out of Buffer Space Problem: ● Buffer is limited size and filled in fault context – Once faulted, it's too late to flush the buffer – Solution: ● Guarantee enough buffer space before faulting – Threshold with minimum number of frames (~16) – Pause target domain and flush buffer on return from – fault Xen Summit at Oracle Feb 24-25, 2009
    • Conclusion VM snapshots ● General purpose, lightweight mechanism ● Coming soon to Xen-devel! I'd be happy to talk about OCaml XenStore too Xen Summit at Oracle Feb 24-25, 2009