In this thesis, a design and implementation of a multi-host software RAID-5 system is proposed. The multi-host software RAID-5 system supports direct access of disks to multiple hosts via storage area network (SAN). The disk data is striped over multiple disks using RAID-5 whcih can tolerate single disk failure by storing redundancy.
The proposed multi-host software RAID-5 use selective stripe locking method. In the multi-host software RAID-5, parity inconsistency occurs when different hosts try to write to the same stripe simultaneously. For parity consistency, stripe locking is required. Conventional stripe locking methods require locking of each stripe. The selective stripe locking is to lock the stripes selectively. It does not lock the stripes which are exclusively written by a host and parity inconsistency does not occur. Using a multiple-reader/single-writer semantic, most of the stripes are written exclusively by a host. The stripes are classified into trivial or non-trivial stripes based on the block allocation status. The triviial stripes are exclusively written by a single host. By removing lockings of the trivial stripes, stripe locking overhead is much smaller than conventional methods.
The proposed multi-host RAID-5 is implemented on a Linux OS with 2.2.12 kernel version. It is implemented on a shared disk file system, called SANfs, which is being developed by our laboratory. The SANfs is modified to detect the stripes which need no locking and the Linux RAID-5 device driver is modified to support selective stripe locking method.
To estimate a performance of the proposed system, a new benchmark program is implemented based on a practical file system workloads in this thesis.
Using selective stripe locking, an amount of the trivial stripe is over 50% in the buffer cache layer and the lockings of the trivial stripes can be removed. As a result, performance of our system becomes more scalable and 20% faster than the conventional stripe locking methods.