Mercury - Usenix

4 downloads 206 Views 427KB Size Report
handled by Mercury). Desktop traces iozone. ▫ iozone run directly against server. iSCSI volume and via Mercury cache.
Mercury: host-side flash caching for the datacenter Steve Byan, James Lentini, Luis Pabón, Christopher Small, Mark W. Storer

Shared-pool datacenter

+

FCoE/iSCSI/NFS/CIFS

Shared VM servers Shared Storage  No persistent state  Unified central storage  VMs not tied to servers, management can be dynamically  Shared pool scales more added, moved easily; resources can be  Servers can be added, reassigned on-the-fly upgraded, repurposed  Data can be moved to on-the-fly most appropriate media

Integrated flash memory  10s-100s GB of flash being integrated into servers  New price/perf tier between disk and DRAM  Flash is 10-100x faster than disk, ¼ price of DRAM  High IO-per-second (IOPS) storage close to CPU …but using integrated flash for primary storage breaks the shared-pool datacenter model  Binds software services to specific servers  Puts flash primary storage out of reach of storage management tools

Mercury flash cache implementation Mercury portable flash cache  Uses integrated flash or other local storage as a cache for centrally-managed shared storage  Implements a block-oriented cache; write-through to maintain coherence with backing store  Deployable as - Hypervisor filter driver, transparent to guest OS - OS filter driver, transparent to applications - Application cache - Proxy cache for a network storage protocol Prototype deployment  KVM/QEMU block driver, loads into stock QEMU  Provides new disk format, hg  Requests sent to hg device handed to SSD cache or passed to raw backing device

Linux Guest VM KVM/QEMU virtio paravirtualized device QEMU virtual disk open

close

aioread

aiowrite

hg Mercury caching block filter driver open

close

aioread

aiowrite

open

close

raw block driver disk-under-test open

close

aioread

aioread

aiowrite

raw block driver flash SSD aiowrite

open

close

aioread

aiowrite

POSIX syscalls through Linux-KVM hypervisor host iSCSI volume

SSD

GbE

Performance results Speedup

Server Load Reduction

80%

60%

40%

20%

0%

100%

reads

2500

writes

2000 1500 1000 500

one day

two days

three days

Size of trace used to warm cache

control

one day

two days three days

Size of trace used to warm cache

Desktop traces  Replayed disk-level traces from  Nearly 40% reduction in mean Windows XP desktop I/O service time  Cache warmed with one to three  Near 50% reduction of requests days of traces sent to server (almost all reads  All tests run on same trace handled by Mercury) © 2011 NetApp. All rights reserved.

80%

60%

Control Mercury

40%

20%

0%

0 control

Time relative to control

3000

Server I/O load (Kops)

Time relative to control

100%

Speedup

Serial

Random

iozone  iozone run directly against server iSCSI volume and via Mercury cache  Serial I/O showed small improvement  Random I/O had substantial speedup (almost all reads handled by Mercury)