``A robust system is one that continues to operate (nearly) correctly in the presence of some class of errors'' Robert Hagmann [20]
D-GRAID turns the simple binary failure model found in most storage systems into a continuum, increasing the availability of storage by continuing operation under partial failure and quickly restoring live data after a failure does occur. In this paper, we have shown the potential benefits of D-GRAID, established the limits of semantic knowledge, and have shown how a successful D-GRAID implementation can be achieved despite these limits. Through simulation and the evaluation of a prototype implementation, we have found that D-GRAID can be built underneath a standard block-based interface, without any file system modification, and that it delivers graceful degradation and live-block recovery, and, through access-driven diffusion, good performance.
We conclude with a discussions of the lessons we have learned in the process of implementing D-GRAID:
Limited knowledge within the disk does not imply
limited functionality. One of the main contributions of this paper is a
demonstration of both the limits of semantic knowledge, as well as the
``proof'' via implementation that despite such limitations, interesting
functionality can be built inside of a semantically-smart disk system. We
believe any semantic disk system must be careful in its assumptions about
file system behavior, and hope that our work can guide others
who pursue a similar course.
Semantically-smart disks would be easier to build with
some help from above. Because of the way file systems reorder, delay, and hide
operations from disks, reverse engineering exactly what they are doing at the
SCSI level is difficult. We believe that small modifications to file systems
could substantially lessen this difficulty. For example, if the file system
could inform the disk whenever it believes the file system structures are in a
consistent on-disk state, many of the challenges in the disk would be lessened.
This is one example of many small alterations that could ease the burden
of semantic disk development.
Semantically-smart disks stress file systems in
unexpected ways. File systems were not built to operate on top of disks
that behave as D-GRAID does; specifically, they may not behave
particularly well when part of a volume address space becomes unavailable.
Perhaps because of its heritage as an OS for inexpensive hardware, Linux
file systems handle unexpected conditions fairly well. However, the exact
model for dealing with failure is inconsistent: data blocks could be
missing and then reappear, but the same is not true for inodes. As
semantically-smart disks push new functionality into storage, file systems
would likely have to evolve to accommodate them.
Detailed traces of workload behavior are
invaluable. Because of the excellent level of detail available in the HP
traces [38], we were able to simulate and
analyze the potential of D-GRAID under realistic settings. Many other
traces do not contain per-process information, or anonymize file references
to the extent that pathnames are not included in the trace, and thus we
could not utilize them in our study. One remaining challenge for tracing is
to include user data blocks, as semantically-smart disks may be sensitive
to the contents. However, the privacy concerns that such a campaign would
encounter may be too difficult to overcome.