Translate

Friday, January 4, 2013

Buses and RAID


In a computer system, the various subsystems must have interfaces to one another; for instance, the memory and CPU need to communicate, and so do the CPU and I/O devices. This communication is commonly done using a bus. The bus serves as a shared communication link between the subsystems. The two major advantages of the bus organization are low cost and versatility...                   
                       The major disadvantage of a bus is that it creates a communication bottleneck,
Possibly limiting the maximum I/O throughput . To avoid the bus bottleneck, some I/O devices
are connected to computers via Storage Area Networks (SANs).
                      One reason bus design is so difficult is that the maximum bus speed is largely
limited by physical factors: the length of the bus and the number of devices (and, hence, bus loading). These physical limits prevent arbitrary bus speedup. The desire for high I/O rates (low latency) and high I/O throughput can also lead to conflicting design requirements.
                        Buses were traditionally classified as CPU-memory buses or I/O buses. I/O
buses may be lengthy, may have many types of devices connected to them, have a wide range in the data bandwidth of the devices connected to them, and normally follow a bus standard.
                         CPU-memory buses, on the other hand, are short, generally high speed, and matched to the memory system to maximize memory-CPU bandwidth. During the design phase, the designer of a CPU-memory bus knows all the types of devices that must connect together, while the I/O bus designer must accept devices varying in latency and bandwidth capabilities.
                       To lower costs, some computers have a single bus for both memory and I/O devices. In the quest for higher I/O performance, some buses are a hybrid of the two. For example, PCI is relatively short, and is used to connect to more traditional I/O buses via bridges
that speak both PCI on one end and the I/O bus protocol on the other. To indicate
its intermediate state, such buses are sometimes called mezzanine buses.

Bus Design Decisions
The design of a bus presents several options
 If there are multiple masters, an arbitration scheme is required among the masters to decide which one gets the bus next. Arbitration is often a fixed priority for each device, as is the case with daisy-chained devices, or an approximately fair scheme that randomly chooses which master gets the bus. With multiple masters, a bus can offer higher bandwidth by using packets, as opposed to holding the bus for the full transaction. This technique is called split transactions
                The final item clocking, concerns whether a bus is synchronous or asynchronous. If a bus is synchronous, it includes a clock in the control lines and a fixed protocol for sending address and data relative to the clock. An asynchronous bus, on the other hand, is not clocked. Instead, self-timed, handshaking protocols are used between bus sender and receiver.

Bus Standards
The number and variety of I/O devices is flexible on many computers, permitting customers to tailor computers to their needs. The I/O bus is the interface to which devices are connected. Standards that let the computer designer and I/O-device designer work independently play a large role in buses.
As long as both designers meet the requirements, any I/O device can connect to any computer. The I/O bus standard is the document that defines how to connect devices to computers.
Machines sometimes grow to be so popular that their I/O buses become the facto standards

RAID
An innovation that improves both dependability and performance of storage systems is disk arrays. One argument for arrays is that potential throughput can be increased by having many disk drives and, hence, many disk arms, rather than one large drive with one disk arm.
Simply spreading data over multiple disks, called striping, au-
tomatically forces accesses to several disks. (Although arrays improve throughput, latency is not necessarily improved.) The drawback to arrays is that with more devices, dependability decreases: N devices generally have 1/N the reliability of a single device.

No Redundancy (RAID 0)
This notation is refers to a disk array in which data is striped but there is no redundancy to tolerate disk failure. Striping across a set of disks makes the collection appear to software as a single large disk, which simpli?es storagemanagement. It also improves performance for large accesses, since many diskscan operate at once. Video editing systems, for example, often stripe their data.

 Mirroring (RAID 1)
This traditional scheme for tolerating disk failure, called mirroring or shadowing, uses twice as many disks as does RAID 0. Whenever data is written to one disk, that data is also written to a redundant disk, so that there are always two copies of  the information. If a disk fails, the system just goes to the “mirror” to get the de-sired information. Mirroring is the most expensive RAID solution, since it re-quires the most disks.

Bit-Interleaved Parity (RAID 3)
The cost of higher availability can be reduced to 1/N, where N is the number of disks in a protection group. Rather than have a complete copy of the original data for each disk, we need only add enough redundant information to restore the lost information on a failure. Reads or writes go to all disks in the group, with one extra disk to hold the check information in case there is a failure.

Block-Interleaved Parity and Distributed Block-Interleaved Parity
(RAID 4 and RAID 5)
Both these levels use the same ratio of data disks and check disks as RAID 3, but they access data differently. The parity is stored as blocks and associated with a set of data blocks.
Since error-detection information in each
sector is checked on reads to see if data is correct, such “small reads” to each disk can occur independently as long as the minimum access is one sector. Writes are another matter. It would seem that each small write would demand that all other disks be accessed to read the rest of the information needed to  recalculate the new parity. A “small write” would require reading the old data and old parity, adding the new information, and then writing the new parity to the parity disk and the new data to the data disk.

P+Q redundancy (RAID 6)Parity based schemes protect against a single, self-identifying failures. When a single failure is not suf?cient, parity can be generalized to have a second calculation over the data and another check disk of information. Yet another parity block
is added to allow recovery from a second failure. Thus, the storage overhead is twice that of RAID 5.

No comments:

Post a Comment