XOR SUPPORT IN THE DISK DRIVES.This article is the second in a two-part series. The first part appeared in the February issue of CTR See click-through rate. .
Many of today's RAID controllers A disk controller card that supports one or more RAID configurations. Originally only for SCSI drives, RAID controllers have become very popular for PATA and SATA drives. See RAID. implement various types of XOR (eXclusive OR) A Boolean logic operation that is widely used in cryptography as well as in generating parity bits for error checking and fault tolerance. XOR compares two input bits and generates one output bit. The logic is simple. If the bits are the same, the result is 0. hardware engines for parity calculations. These hardware engines typically consist of a high-speed memory buffer and a XOR calculator/sequencer. RAID controllers using this method for XOR calculations normally perform RAID writes from 15MB/sec to 40MB/sec. The main bottleneck A lessening of throughput. It often refers to networks that are overloaded, which is caused by the inability of the hardware and transmission lines to support the traffic. It can also refer to a mismatch inside the computer where slower-speed peripheral buses and devices prevent the CPU in these types of designs is the speed of the memory chips that are being used by the XOR engine for its data buffering In computing, a buffer is a region of memory used to temporarily hold data while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device (such as a keyboard) or just before it is sent to an output device (such (Fig 1).
To perform a write operation to a RAID 5 disk array, it is necessary to perform what is normally referred to as a "Read-Modify-Writeback" operation. Several steps have to be performed:
1. Read "old" data from the data drive.
2. Read "old" parity data from the parity drive A separate disk drive that holds parity bits in a disk array. See RAID. .
3. XOR the old data from the data drive with the old parity data from the parity drive.
4. Write the new data to the data drive.
5. XOR the new data with the parity data and write the result to the parity drive.
For each RAID 5 write, it is, therefore, necessary to perform up to four data transfers before the write command has been fully completed and the parity information on the parity drive has been updated. Clever caching can reduce the number of required data transfers, but in most cases, there will be at least two or more data transfers required for each RAID 5 write. To be able to sustain a 40MB/sec RAID 5 write data stream, it will be necessary for the XOR engine to sustain at least four times the required bandwidth, in this case over 160MB/sec. If the overhead of actually calculating the XOR data is added, the required XOR engine memory bandwidth Memory bandwidth is the rate at which data can be read from or stored into a semiconductor memory by a processor. Memory bandwidth is usually expressed in units of bytes/second, though this can vary for systems with natural data sizes that are not a multiple of the commonly used would have to be in the 200MB/sec-250MB/sec range or even more.
Designing a XOR engine data buffer with a 250MB/sec bandwidth is not a trivial task. At 250MB/sec, each byte has to be transferred every 4ns (nanoseconds) in and out of the XOR engine memory buffer. If we assume that this memory buffer is 64-bit wide, each 64-bit word would have to be transferred every 32ns. This is possible to do using today's very fast SRAM See static RAM.
SRAM - static random-access memory or synchronous DRAM Synchronous DRAM - Synchronous Dynamic Random Access Memory memory.
With Fibre Channel technology, however, it is now possible to reach transfer rates significantly higher than 40MB/sec. We are now looking at several hundred megabytes per second (unit) megabytes per second - (MBps, MB/s) Millions of bytes per second. A unit of data rate. 1 MB/s = 1,000,000 bytes per second (not 1,048,576). and, in the near future, close to 1GB/sec. Designing a hardware XOR engine capable of handling these performance levels is becoming increasingly difficult with today's technology. Therefore, new solutions for calculating XOR in RAID controllers are needed.
The Solution-XOR Support In The Disk Drives
The solution to this problem is moving the responsibility of calculating XOR data from the RAID controller to the disk drives instead. Performing the XOR operation in the disk drives eliminates the need for the RAID controller to perform any XOR calculations. Each disk drive in an array will be able to perform XOR calculations in parallel with other drives (Fig 2).
This parallelism An overlapping of processing, input/output (I/O) or both.
1. parallelism - parallel processing.
2. (parallel) parallelism - The maximum number of independent subtasks in a given task at a given point in its execution. E.g. allows for arrays to be built with very high data transfer rates. It is the disk drives and not the RAID controller that determine the upper performance levels. As disk drives get faster and faster, so will the RAID disk array. This scalability increases the lifetime of the RAID controller significantly. There is no longer a need to upgrade the RAID controller to keep up with increased disk drive speed.
Most major disk drive manufacturers, as well as disk drive silicon providers, already have products that support this new XOR calculation standard. Seagate Technology's line of Fibre Channel disk drives were the first drives to come out on the market with full XOR support. IBM (International Business Machines Corporation, Armonk, NY, www.ibm.com) The world's largest computer company. IBM's product lines include the S/390 mainframes (zSeries), AS/400 midrange business systems (iSeries), RS/6000 workstations and servers (pSeries), Intel-based servers (xSeries) recently released their new drives with XOR support and other major disk drive vendors are soon to follow with product releases. Silicon providers such as QLogic also have full support for hardware-assisted XOR generation in their Fibre Channel disk drive controller chips.
Array Controller Supervised XOR Operations
A set of new SCSI commands In SCSI computer storage, a command is the basic unit of communication. The SCSI command architecture was originally defined for parallel SCSI buses but has been carried forward with minimal change for use with Fibre Channel, iSCSI and Serial Attached SCSI. has been defined to allow for disk drives to perform XOR calculations: XDREAD, XDWRITE, XPWRITE, XDWRITE EXTENDED, REGENERATE re·gen·er·ate
v. re·gen·er·at·ed, re·gen·er·at·ing, re·gen·er·ates
1. To reform spiritually or morally.
2. To form, construct, or create anew, especially in an improved state. , and REBUILD. For RAID disk array controllers A disk array controller is a device which manages the physical disk drives and presents them to the computer as logical units. It almost always implements hardware RAID, thus it is sometimes referred to as RAID controller. It also often provides additional disk cache. , only three of these commands are necessary--the XDREAD, XDWRITE, and XPWRITE commands. The remaining commands can be used by software RAID implementations, but because of the inherent data corruption Data corruption refers to errors in computer data that occur during transmission or retrieval, introducing unintended changes to the original data. Computer storage and transmission systems use a number of measures to provide data integrity, the lack of errors. issues involved in software RAID, there has been little success in their implementation. By using only the XDREAD, XDWRITE, and XPWRITE commands, all required RAID functionality could easily be implemented.
A RAID 5 write operation will typically perform the following command sequence:
1. An XDWRITE command is sent to the data drive. This transfers the new data to the data drive's internal data buffer. The drive, then, reads the old data into its internal data buffer, performs a XOR operation on this old data and the new data, keeps the result in its data buffer, and writes the new data to the medium.
2. An XDREAD command is sent to the data drive. The data drive will return back the calculated XOR sum of the old data and the new data.
3. An XPWRITE command is, then, sent to the disk drive containing the parity information. This command transfers the XOR data (received in the previous XDREAD command) to the parity disk drive's data buffer. The parity drive reads its old parity data and performs a XOR calculation on this old parity data and the new parity information. The result is, then, written to the medium. A full RAID 5 write has now been completed (Fig 3).
Drive-Based XOR Calculation Benefits
There are several benefits to using disk drive-based XOR calculations:
* Increased Performance
Since each of the disk drives in the disk array has its own built-in XOR capability, it is now possible to perform many XOR calculations in parallel on all drives in an array. This allows a RAID controller to keep multiple outstanding RAID 5 writes executing in parallel at the same time. The RAID controller is no longer the limiting factor A factor or condition that, either temporarily or permanently, impedes mission accomplishment. Illustrative examples are transportation network deficiencies, lack of in-place facilities, malpositioned forces or materiel, extreme climatic conditions, distance, transit or overflight rights, in RAID 5 arrays. Since many RAID 5 writes can be executed in parallel, new levels of RAID 5 write performance can be reached.
Performance in disk drive XOR-based disk arrays is fully scalable. As disk drives get faster and faster, so will the XOR function in the drive. As disk drives get faster, so will the disk arrays. The RAID controller is no longer the limiting factor to what performance levels can be achieved. The RAID controller's product lifetime will be significantly increased.
It is now possible to build very large disk arrays and SAN networks based on a standardized standardized
pertaining to data that have been submitted to standardization procedures.
standardized morbidity rate
see morbidity rate.
standardized mortality rate
see mortality rate. method for calculating XOR in RAID environments. It is no longer necessary for RAID software and hardware designers to invent their own methods for XOR calculations. It will be possible to combine solutions from RAID developers, as well as disk drive manufacturers, in ways previously unheard of Not heard of; of which there are no tidings.
Unknown to fame; obscure.
See also: Unheard Unheard .
The life cycle of a disk array based on a RAID controller using disk drive-based XOR generation is extended significantly. Since performance is no longer determined by the hardware implementation in the RAID controller, the need to upgrade to a faster RAID controller becomes less urgent. As disk drives get faster and faster, so will the disk array. It is the disk drives that determine the maximum performance level, not the RAID controller.
As illustrated in this article, device-based XOR calculation is the way of the future. As performance demands increase, it becomes necessary to implement new, improved methods for generating XOR in RAID disk arrays. Device-based XOR is the answer for several reasons.
Scalability is important in today's storage implementations. The current trend today is moving towards larger Storage Area Network configurations with terabytes of RAID disk storage. Moving the responsibilities of generating XOR parity data out to the peripherals allows for maximum scalability, as well as significantly increased RAID controller lifetime expectancy A mere hope, based upon no direct provision, promise, or trust. An expectancy is the possibility of receiving a thing, rather than having a vested interest in it.
The term has been applied to situations where an individual hopes and expects to receive something, generally .
Johan Olstenius is the president of OneofUs (Taipei, Taiwan).