Heretofore, Redundant Array of Independent Disk (RAID) topologies for computer and network applications have been based on the Small Computer System Interface (SCSI) bus architecture. This has limited the topologies to flat or two-dimensional topologies, that is conceptually "rows" of disks on "columns" of busses.
RAID is a technology used to improve the I/O performance and reliability of mass storage devices. Data is stored across multiple disks in order to provide immediate access to the data despite one or more disk failures. The RAID technology is typically associated with a taxonomy of techniques, where each technique is referred to by a RAID level. There are six basic RAID levels, each having its own benefits and disadvantages, with many other non-standard and proprietary variations. RAID level 2 uses non-standard disks and, though technically feasible, as such is not generally commercially feasible.
RAID level 0 (RAID0) employs "striping" where the data is broken into a number of stripes which are stored across the disks in the array. This technique provides higher performance in accessing the data but provides no redundancy which is needed to protect the data from disk failures. RAID level 1 (RAID1) employs "mirroring" where each unit of data is duplicated or "mirrored" onto another disk drive. Mirroring requires two or more disk drives. For read operations, this technique is advantageous since the read operations can be performed in parallel. A drawback with mirroring is that it achieves a storage efficiency of only 50%.
In RAID level 3 (RAID3), a data block is partitioned into stripes which are striped across a set of drives. A separate parity drive is used to store the parity bytes associated with the data block. The parity is used for data redundancy. Data can be regenerated when there is a single drive failure from the data on the remaining drives and the parity drive. This type of data management is advantageous since it requires less space than mirroring and only a single parity drive. In addition, the data is accessed in parallel from each drive which is beneficial for large file transfers. However, performance is poor for high I/O transaction applications since it requires access to each drive in the array. RAID level 3 is considered to have "shallow depth", and all disks are accessed substantially simultaneously.
In RAID level 4 (RAID4), an entire data block is written to a disk drive. Parity for each data block is stored on a single parity drive. Since each disk is accessed independently, this technique is beneficial for high I/O transaction applications. A drawback with this technique is the single parity disk which becomes a bottleneck since the single parity drive needs to be accessed for each write operation. This is especially burdensome when there are a number of small I/O operations scattered randomly across the disks in the array.
In RAID level 5 (RAID5), a data block is small so it generally fits onto a single disk. These data blocks are striped across the disk drives. Parity for the data blocks is distributed across the drives thereby reducing the bottleneck inherent to level 4 which stores the parity on a single disk drive. This technique offers fast throughput for small data files but performs poorly for large data files. RAID level 5 is considered to have "deep depth" and it is desirable that there be no I/O conflicts among the RAID5 drives.
A typical data storage system can contain a number of disk storage devices that can be arranged in accordance with one or more RAID levels, for example a data storage system may include RAID3 and RAID5 drive configurations.
In the past, RAID systems relied on SCSI bus architecture and single-port disk drives. The basic SCSI bus is a parallel communication channel, requiring multiple electrical connections or wires between SCSI connected devices, for example between the SCSI (disk) controller and the device (disk). So called "narrow" SCSI requires a 50-wire connection for 8-bit transfer in addition to power, ground, and a SCSI device identifier (ID). So called "wide" SCSI requires a 68-wire connection for 16-bit transfers in addition to power, ground, and a SCSI device identifier (ID). The 80-connector "SCA" interface is merely a single connector variation of the narrow or wide SCSI in which all data, power, and ID are combined into a single physical connector for ease in "hot swapping" the disk drive from a system with minimum effort.
Conventional SCSI may be characterized by the SCSI signals and signal connections, and the SCSI protocol level. While several varieties or levels of SCSI have conventionally been available, the "ultra-fast" SCSI has been the fastest supporting up to 40 MB/sec during data transfer in either single-ended or differential-signal versions. So called "low voltage differential" SCSI supports 80 MB/sec during data transfer operations. SCSI operations typically involve a data component and a command component, where the command component includes for example, commands, messages, and status.
Conventional RAID architecture has consisted of a computer communicating via an interface to a RAID controller. The RAID controller in turn communicated to a plurality of SCSI parallel busses, each bus supporting one or more disks connected by a single port to only one bus. If the bus to which the disk is connected should fail, the disk becomes unavailable independent of the operational state of the disk itself.
Even for dual-ported disk drives which could allow access to the disk via a second port, the doubling of the load on the channel, that is the increase from one disk to two disks or from 8 disks to 16 disk imposes several practical limitations. The parallel SCSI bus structure may typically not have sufficient bandwidth to support the added loading.
More recently, the Fiber Channel (FC) has become available. Fibre Channel is a serial communication channel requiring only four signal (data/control wires) to implement the Transmit (Tx) and Receive (Rc) functions, rather than the 50, 64, or 80 wired connectors as in the common parallel SCSI. The smaller number of physical connections required means that the back plane wiring to interconnect the channels in the manner required by some of the inventive structures is entirely practical, though the same connections may have been impractical for large number of devices on conventional SCSI parallel bus architectures. The Fiber Channel also provides a much higher speed and higher bandwidth interconnect medium than SCSI or other earlier computer bus or communication channels and is supported on either copper (that is electrical connections) or optical means such as fiber optical links and can support data transfer on the order of a 4 Gigabyte/sec or higher at the hardware level, with speed and capacity likely to increase with further development. Advantageously, Fibre Channel supports SCSI and TCP/IP protocols on the same serial bus. This removes the requirement to have separate circuitry to support TCP/IP protocol.
Fiber Channel structure and function are described in the literature and is therefore not described in detail here. Among the relevant reference texts are Fibre Channel--The Basics by Gary R. Stephens and Jan V. Dedek, published by ANCOT Corporation of Menlo Park, Calif. in 1997 (ISBN 0-9637439-3-7); and In-Depth Fiber Channel Arbitrated Loop by Robert W. Kembel, published in 1997 by Northwest Learning Associates for solution Technology of Boulder Creek, Calif. (particularly pages 1-21); each of which references are hereby incorporated by reference.
In spite of the advent of Fibre Channel, RAID disk topologies have remained substantially unchanged, typically retaining the flat or two-dimensional row-column configuration.