Proving Correctness of a Controller Algorithm for the RAID Level 5 System
Author: Mandana Vaziri, Nancy Lynch, and Jeannette M. Wing
Click here for the
PostScript
version.
Abstract
Most RAID controllers implemented in industry are complicated and
difficult to reason about. This complexity has led to software and
hardware systems that are difficult to debug and hard to modify. To
overcome this problem Courtright and Gibson have developed a rapid
prototyping framework for RAID architectures which relies on a generic
controller algorithm. The designer of a new architecture needs to
specify parts of the generic controller algorithm and must justify the
validity of the controller algorithm obtained. However the latter
task may be difficult due to the concurrency of operations on the
disks. This is the reason why it would be useful to provide designers
with an automated verification tool tailored specifically for the RAID
prototyping system.
As a first step towards building such a tool, our approach consists of
studying several controller algorithms manually, to determine the key
properties that need to be verified.
This paper presents the modeling and verification of a controller
algorithm for the RAID Level 5 System. We model the system using I/O
automata, give an external requirements specification, and prove that
the model implements its specification. We use a key invariant to
find an error in a controller algorithm for the RAID Level 6 System.