Venue | Category |
---|---|
FAST'18 | Block Storage |
The CASE of FEMU: Cheap, Accurate, Scalable and Extensible Flash Emulator1. SummaryMotivation of this paperFEMUImplementation and Evaluation2. Strength (Contributions of the paper)3. Weakness (Limitations of the paper)4. Some Insights (Future work)
Motivation
SSD simulators (e.g., DiskSim's SSD model, FlashSim and SSDSim) only support internal-SSD research
Hardware research platforms such as FPGA boards, OpenSSD, or OpenChannel SSD support full-stack software/hardware research
Storage research community needs to have a new software-based emulator
FEMU: a QEMU-based flash emulator
FEMU is implemented in QEMU v2.9 and acts as a virtual block device to the Guest OS
Scalability
All of the scalability bottlenecks of QEMU
QEMU uses a traditional trap-and-emulate method to emulate IOs
QEMU uses asynchronous IOs (AIO) to perform the actual read/write (byte transfer) to the backing image file
FEMU transfers QEMU from an interrupt to a polling-based design and disable the doorbell writes in the Guest OS.
FEMU does not use virtual image file
Accuracy
Delay emulation
When an IO arrives, FEMU will issue the DMA read/write command, then label the IO with an emulated completion time
Basic delay model
Advanced "OC" delay model
Usability and extensibility
white-box vs. black-box mode
a white-box device
a black-box device
Page-level latency variability
Limitations
The rise of software-defined flash
The state of SSD research platforms
SSD simulators do not support running applications and operating systems