Title
Violin: A Framework for Extensible Block-Level Storage
Abstract
In this work we propose Violin, a virtualization framework that allows easy extensions of block-level storage stacks. Violin allows (i) developers to provide new virtualization functions and (ii) storage administrators to combine these functions in storage hierarchies with rich semantics. Violin makes it easy to develop such new functions by providing support for (i) hierarchy awareness and arbitrary mapping of blocks between virtual devices, (ii) explicit control over both the request and completion path of I/O requests, and (iii) persistent metadata management. To demonstrate the effectiveness of our approach we evaluate Violin in three ways: (i) We loosely compare the complexity of providing new virtual modules in Violin with the traditional approach of writing monolithic drivers. In many cases, adding new modules is a matter of recompiling existing user-level code that provides the required functionality. (ii) We show how simple modules in Violin can be combined in more complex hierarchies. We demonstrate hierarchies with advanced virtualization semantics that are difficult to implement with monolithic drivers. (iii) We use various benchmarks to examine the overheads introduced by Violin in the common I/O path. We find that Violin modules perform within 10% of the corresponding monolithic Linux drivers.
Year
DOI
Venue
2005
10.1109/MSST.2005.41
MSST
Keywords
Field
DocType
application software,writing,application virtualization,block level storage,meta data,linux,technology management,computer science,cryptography,control systems,quality management
Storage virtualization,Virtualization,Virtual device,Computer science,Block (data storage),Violin,Application virtualization,Application software,Metadata management,Operating system
Conference
ISBN
Citations 
PageRank 
0-7695-2318-8
17
0.90
References 
Authors
17
2
Name
Order
Citations
PageRank
Michail D. Flouris11319.38
Angelos Bilas259860.49