Violin: A Framework for Extensible Block-Level Storage

  • Michail D. Flouris
  • Renaud Lachaize
  • Angelos Bilas
Conference paper


The quality of virtualization mechanisms provided by a storage system affects storage management complexity and storage efficiency, both of which are important problems of modern storage systems. We argue that current storage systems provide limited flexibility and extensibility in virtualizing, managing and accessing storage.

In this work we address this problem by proposing 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 new virtualization functions by providing support for (i) hierarchy awareness and arbitrary mapping of blocks between virtual devices, (ii) an easily extensible I/O command set, (iii) explicit control over both the request and completion path of I/O requests, and (iv) persistent metadata management.

In this paper we present Violin’s architecture and we show how simple Violin modules can be combined in more complex hierarchies. Finally, we demonstrate hierarchies with advanced virtualization functionality that is difficult to implement with monolithic drivers.


storage virtualization multi-layered storage block-level I/O 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    A. Acharya et al. Active Disks: Programming Model, Algorithms and Evaluation. In Proc. of the 8th ACM ASPLOS Conference, San Jose, CA, 1998.Google Scholar
  2. [2]
    M. de Icaza et al. The linux raid-1,-4,-5 code. In Proc. of LinuxExpo, Apr. 1997.Google Scholar
  3. [3]
    W. de Jonge et al. The Logical Disk: A New Approach to Improving File Systems. In Proc. of 14th ACM Symp. on Operating Syst. Principles, 1993.Google Scholar
  4. [4]
    Enterprise Volume Management System. Scholar
  5. [5]
    M. D. Flouris et al. Clotho: Transparent Data Versioning at the Block I/O Level. In 21st IEEE Conference on Mass Storage Systems and Technologies, Apr. 2004.Google Scholar
  6. [6]
    M. D. Flouris and A. Bilas. Violin: A Framework for Extensible Block-level Storage. In Proc. of 13th IEEE Conf. on Mass Storage Systems and Technologies, Apr. 2005.Google Scholar
  7. [7]
    FreeBSD: GEOM Modular Disk I/O Request Transformation Framework.Google Scholar
  8. [8]
    G. A. Gibson et al. A Cost-Effective, High-Bandwidth Storage Architecture. In Proc. of the 8th ACM ASPLOS Conference, San Jose, CA, 1998.Google Scholar
  9. [9]
    B. Phillips. Industry Trends: Have Storage Area Networks Come of Age? Computer, 31(7):10–12, July 1998.CrossRefGoogle Scholar
  10. [10]
    D. Teigland et al. Volume managers in linux. In Proc. of USENIX Tech. Conference, June 2001.Google Scholar
  11. [11]
    A. Warfield et al.. Parallax: Managing Storage for a Million Machines In Proc. of the USENIX Workshop on Hot Topics in Operating Systems, June 2005.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  • Michail D. Flouris
    • 1
  • Renaud Lachaize
    • 2
    • 3
  • Angelos Bilas
    • 2
    • 3
  1. 1.Department of Computer ScienceUniversity of TorontoTorontoCanada
  2. 2.Institute of Computer Science (ICS)Foundation for Research and Technology - HellasHeraklion, GRGreece
  3. 3.Dept. of Computer ScienceUniversity of CreteHeraklion, GRGreece

Personalised recommendations