The present invention relates generally to data storage systems and, more particularly, to providing redundant arrays of storage devices.
Storage of information is a key part of modern computers. Usually, data is stored on magnetic disks, although other forms of storage, such as magnetic tape and flash memory can be employed. In order to keep pace with the increasing processing speeds of computers, it has been suggested that arrays of disks be employed in a parallel arrangement. Since each disk has its own controller, data transfer is much faster than a single disk. (See, e.g., Patterson, et al, “A case for Redundant Arrays of Inexpensive Disks (RAID)”, Proceedings of the 1988 ACM-SIGMOD Conference on Management of Data, Chicago, Ill., pp 109-116, June 1988.)
The use of an array of inexpensive disks, however, increases the failure rate of the storage system, and therefore, necessitates the use of extra disks with redundant information and spare portions so that, if a disk fails, the information on that disk can be recovered and stored in the spare portions. Such systems have been designated Redundant Arrays of Inexpensive Disks (RAID). In one such system, a separate disk is provided with the redundant information in an arrangement known as RAID 4. (See, e.g., Patterson, cited above, at pages 113-114.) In another system, the redundant information is distributed among the disks, a concept also known as RAID 5. In order to reduce the mean time to repair, a dedicated spare is often added to the array in either system. Spare portions are sometimes distributed among all the disks, a concept known as “distributed sparing”. (See, e.g., Patterson, and U.S. Pat. No. 5,258,984 issued to Menon et al.).
One of the problems with these systems is that the size of the spare portions were fixed, and when the data area was filled up, the system was unable to accept new data until new disks were added to the system, although plenty of space might be available. It is generally desirable to keep the number of disks to a minimum, and provide a system that will automatically reconfigure itself when data portions or spare portions fill up.
The invention in accordance with one aspect is a storage system that includes an array of storage devices, each of which includes a data storage portion with available data space and a spare portion. A controller is electrically coupled to the array. The system is configured to monitor the size of space available for data and to convert between spare portions and available data space. In one embodiment, the spare portion is converted to available data space in the event that additional space is needed for the data portion. In another embodiment, the space available for data is converted to a spare portion in the event the initial spare portion has filled up because of a disk failure.
In accordance with another aspect, the invention is a method for providing redundancy in an array of storage devices, the method including providing a spare portion and a data storage portion with available data space on at least one disk, monitoring the amount of space available for data, and converting between a spare portion and available data space. In one embodiment, the spare portion is converted to available data space if additional data storage is needed on the disk. In another embodiment, the available data space is converted to a spare portion in the event the initial spare portion has filled up because of a disk failure.
It is to be understood that both the foregoing general description and the following detailed description are exemplary, but are not restrictive, of the invention.
The invention is best understood from the following detailed description when read in connection with the accompanying drawing. It is emphasized that, according to common practice in the industry, the various features of the drawing are not to scale. On the contrary, the dimensions of the various features are arbitrarily expanded or reduced for clarity. Included in the drawing are the following figures:
Referring now to the drawing, wherein like reference numerals refer to like elements throughout,
The software of the system includes the standard applications programs, 11, such as Data Base Management Systems (DBMS) and E-Mail, one or more operating systems, 12, and file systems, 13. The system further includes a virtualization layer 14, which is coupled to and manages the storage devices, in this example, magnetic disks 16-19. It should be appreciated that each block, 16-19, can be an individual disk or an array of disks. (See, e.g., U.S. Pat. No. 5,258,984 issued to Menon, et al.) It will also be appreciated that the applications, operating systems, and file systems normally have access to the storage devices through the virtualization layer, but can also have direct access to the devices.
In accordance with a feature of the invention, a new layer of software, 15, is added to the virtualization layer and is designated Higher Availability Dynamic Virtual Devices (HADVD). This feature, as discussed in more detail below, provides the capability of utilizing the unused portion of standard data disks, taking advantage of the fact that such disks usually have a great amount of unused space over a significant period of time. This unused space can be used as a spare portion by reconfiguring the disk array in the event a disk fails and fills up the initial spare portion. This reconfiguration, for example, can involve changing the bit map of the array to indicate that what was once available for data is now a spare portion. It can also involve moving the spare portions when a new disk is inserted. In a further embodiment, if the available space for data falls below a minimum threshold, the disk array can be reconfigured to take a portion of the space from the initial spare portion and convert it to available data space, again by changing the bit map. Thus, the invention allows a dynamic change in the size and location of spare portions needed for redundancy without the requirement of any additional disks. Further, when the spare portion is reconfigured, it is not necessary to shut down the system. Rather, it is desirable to merely provide a warning that the amount of spare space has been diminished so that the user can add another disk if needed.
As further illustrated in the diagram of
In this example, it is assumed that disk 18 has failed. In response thereto, the controller reconfigures the array by recovering the lost data D4. This is accomplished by XORing the parity and data bits on the same stripe of the remaining disks (i.e., P45 and D5). The control layer then moves the recovered data to an empty portion on another disk, in this example disk 17, as indicated by arrow 52. The control layer also recovers the lost parity bits (P01 and P67) by adding data bits from the same stripe of other disks (i.e., D0+D1 and D6+D7, respectively.) The recovered parity bits are moved to empty portions (S) of other disks, in this example, disk 19, as indicated by arrows, 51 and 53.
It will be appreciated that additional disks are not needed for spare redundancy since the control layer will monitor the disk array as it fills up with data, and if the data portions of the disk array get too full, will alert the user that data space is running low (block 44 of
Although the invention has been described with reference to exemplary embodiments, it is not limited to those embodiments. For example, although magnetic recording disks were described, the invention would also be applicable to other recording devices such as optical disks, magnetic tape, and flash memory chips. Rather, the appended claims should be construed to include other variants and embodiments of the invention which may be made by those skilled in the art without departing from the true spirit and scope of the present invention.