Table of Contents
Active Block Layer Extensions (ABLE)
Authors
- Michael Torchio
- Robert Parks
- Leonardo Marmol (REU)
- Daniel Galano (REU)
- Jaime Soto (REU)
- Jesus Ramos (REU)
- Steven Lyons (REU)
- Christopher Kerrutt (REU)
- Andy Norcisa (REU)
Introduction
The Active Block Layer Extensions (ABLE) project presents a new approach to realizing self-managing storage systems. It makes two contributions. First, it creates an evolvable block layer software infrastructure that substantially reduces the complexity involved in building self-managing storage systems by raising the level of abstraction for their development. Second, it develops a novel theory of storage extensions that provides a logic framework for analyzing extensions developed at the block layer. This theory allows system administrators to make well-reasoned configuration and deployment choices for their systems that accurately reflect system priorities. The software infrastructure substantially reduced the complexity for each of the five storage extensions that we developed, and across each of the five complexity metrics that we used.
The theoretical framework develops nine basic rules that help analyzing a stack of storage extensions. An examination of several instances of the use of these rules with concrete extensions provides a illustration and informal validation of the theory.
ABLE
Recent years have seen innovation by the storage research community in developing storage self-management extensions. Often, these provide critical improvements in meeting the manifold storage system goals of reliability, performance, power-savings, etc., hence, are acknowledged successes within the research community. However, fundamental challenges remain when translating storage self-management into practice. These challenges constrain adoption of these ideas in commodity systems, and thus diminish their impact on productions storage environments.
Based on our experiences developing and deploying storage self-management extensions, we have identified two broad factors holding back large-scale adoption of self-managing storage systems. First, the operating system, the typical development environment for self-management extensions, is a complex building block which makes extensions extremely difficult to develop and validate. Second, reasoning about how deployed extensions affect the stored data and access it is an undeveloped science; consequently, administrators find themselves ill-equipped to make sound deployment decisions and thus much rather choose not to deploy what they don't understand. Addressing these challenges, we believe, will help developers and administrators by mitigating the complexities of their respective roles, thus accelerating the rate of development and adoption of storage self-management extensions.
The Active Block Layer Extensions (ABLE) project develops theory and systems infrastructure that, when put together, comprehensively address the challenges outlined above. ABLE advocates and supports self-management extensions that are built at the block layer, and thus export a logical block interface to storage clients (e.g. file systems) for accessing an underlying (local or remote) block device. Block layer extensions automatically inherit several desirable characteristics such as access to both process and device context of I/O operations, a clean interface with a simple data consistency contract to build upon, file-system independence and accessibility, I/O scheduling services, and easy arbitration of storage resources. We examine these motivating reasons in detail in The Case for Active Block Layer Extensions.
The ABLE project makes two contributions. First, an evolvable block-layer software infrastructure that implements a suite of block layer primitive functionality commonly used by self-management extensions as an in-kernel library (see Figure below). These primitives represents a radical improvement in the level of abstraction for developing self-management extensions, thus aiding developers build robust self-management extensions faster. The software infrastructure also provides a central point for evolving, examining, and validating block layer primitives by the larger storage research and development communities. Second, a novel theory of block layer extensions that provides a logic framework for understanding how storage extensions affect the data path. This theory enables modeling and classifying the behavior of individual extensions and analyzing the influence of extension aggregates on data and data accesses. When put into practice, this theory can guide administrators make sound deployment decisions for multiple self-management extensions that accurately reflect high-level defined policies. Note that extensions are assumed to be ``well-behaved'' in that each extension ensures block consistency for data that it handles.
For further detail in the design and implementation of ABLE, please refer to the paper(s) below.
Publications
- Write Policies for Host-side Flash Caches|
Ricardo Koller, Leonardo Marmol, Raju Rangaswami, Swaminathan Sundararaman, Nisha Talagala, and Ming Zhao
Proceedings of the USENIX Conference on File and Storage Technologies, February, 2013.
- Cost Effective Storage Using Extent Based Dynamic Tiering|
Jorge Guerra, Himabindu Pucha, Joseph Glider, Wendy Belluomini, Raju Rangaswami
Proceedings of USENIX File and Storage Technologies (FAST), February, 2011.
- I/O Deduplication: Utilizing Content Similarity to Improve I/O Performance
Ricardo Koller and Raju Rangaswami
Proceedings of the 8th USENIX Conference on File and Storage Technologies (FAST '10), February, 2010.
- I/O Deduplication: Utilizing Content Similarity to Improve I/O Performance
Ricardo Koller, Raju Rangaswami
ACM Transactions on Storage, 6(3), September 2010.
- SRCMap: Energy Proportional Storage using Dynamic Consolidation
Akshat Verma, Ricardo Koller, Luis Useche, and Raju Rangaswami
Proceedings of the 8th USENIX Conference on File and Storage Technologies (FAST '10), February, 2010.
- BORG: Block-reORGanization for Self-optimizing Storage Systems
Medha Bhadkamkar, Jorge Guerra, Luis Useche, Sam Burnett, Jason Liptak, Raju Rangaswami and Vagelis Hristidis
Proceedings of the 7th USENIX Conference on File and Storage Technologies (FAST '09), February, 2009.
- The Case for Active Block Layer Extensions
Jorge Guerra, Luis Useche, Medha Bhadkamkar, Ricardo Koller, and Raju Rangaswami
Proceedings of International Workshop on Storage and I/O Virtualization, Performance, Energy, Evaluation and Dependability (SPEED), February, 2008.
- EXCES: EXternal Caching in Energy Saving Storage Systems
Luis Useche, Jorge Guerra, Medha Bhadkamkar, Mauricio Alarcon, and Raju Rangaswami
Proceedings of IEEE International Symposium on High-Performance Computer Architecture (HPCA), February, 2008.
Acknowledgement of Support
This work is supported by the National Science Foundation under grant CNS-0747038 and by the Department of Energy under grant DE-FG02-06ER25739.