IOFlow: A Software-Defined Storage Architecture

SOSP'13: The 24th ACM Symposium on Operating Systems Principles |

Published by ACM

SOSP’13, Nov. 3–6, 2013, Farmington, PA, USA. ACM 978-1-4503-2388-8/13/11.

In data centers, the IO path to storage is long and complex. It comprises many layers or “stages” with opaque interfaces between them. This makes it hard to enforce end-to-end policies that dictate a storage IO flow’s performance (e.g., guarantee a tenant’s IO bandwidth) and routing (e.g., route an untrusted VM’s traffic through a sanitization middlebox). These policies require IO differentiation along the flow path and global visibility at the control plane. We design IOFlow, an architecture that uses a logically centralized control plane to enable high-level flow policies. IOFlow adds a queuing abstraction at data-plane stages and exposes this to the controller. The controller can then translate policies into queuing rules at individual stages. It can also choose among multiple stages for policy enforcement.

We have built the queue and control functionality at two key OS stages– the storage drivers in the hypervisor and the storage server. IOFlow does not require application or VM changes, a key strength for deployability. We have deployed a prototype across a small testbed with a 40 Gbps network and storage devices. We have built control applications that enable a broad class of multipoint flow policies that are hard to achieve today.

Publication Downloads

Microsoft Research Storage Toolkit

November 6, 2014

The Microsoft Research Storage Toolkit enables effective and accessible research in Software Defined Storage by adding I/O classification functions to the Windows 8.1 storage stack and exposing selected flows of I/O requests to a user-supplied program written in C# which can easily inspect or modify them. Parts of the Toolkit have supported our own recent research efforts, including IoFlow (SOSP13) and VDC (OSDI14), and we are releasing the Toolkit as a contribution to the academic community in the hope of facilitating and encouraging further advances in Software Defined Storage. Please read the setup section in the enclosed document before running the setup program. In the event of problems please email us at