1. Field of the Invention
The invention relates to the methods and structures for dynamic level migration of a logical volume in a RAID storage subsystem. More specifically, the invention relates to improved methods for migrating a striped RAID volume from a higher level of redundancy to a lower level of redundancy by logically removing a disk drive from the volume.
2. Description of Related Art
Storage subsystems have evolved along with associated computing systems to improve performance, capacity, and reliability. Redundant arrays of independent disks (so called “RAID” systems) provide improved performance by utilizing striping features and provide enhanced reliability by adding redundancy information. Performance is enhanced by utilization of so called “striping” features in which one host request for reading or writing is distributed over multiple simultaneously active disk drives to thereby spread or distribute the elapsed time waiting for completion over multiple, simultaneously operable disk drives. Redundancy is accomplished in RAID systems by adding redundancy information such that the loss/failure of a single disk drive of the plurality of disk drives on which the host data and redundancy information are written will not cause loss of data. Despite the loss of a single disk drive, no data will be lost though in some instances the logical volume will operate in a degraded performance mode.
RAID storage management techniques are known to those skilled in the art by a RAID management level number. The various RAID management techniques are generally referred to as “RAID levels” and have historically been identified by a level number. RAID level 5, for example, utilizes exclusive-OR (“XOR”) parity generation and checking for such redundancy information. Whenever data is to be written to the storage subsystem, the data is “striped” or distributed over a plurality of simultaneously operable disk drives. In addition, XOR parity data (redundancy information) is generated and recorded in conjunction with the host system supplied data. In like manner, as data is read from the disk drives, striped information may be read from multiple, simultaneously operable disk drives to thereby reduce the elapsed time overhead required completing a given read request. Still further, if a single drive of the multiple independent disk drives fails, the redundancy information is utilized to continue operation of the associated logical volume containing the failed disk drive. Read operations may be completed by using remaining operable disk drives of the logical volume and computing the exclusive-OR of all blocks of a stripe that remain available to thereby re-generate the missing or lost information from the inoperable disk drive. Such RAID level 5 storage management techniques for striping and XOR parity generation and checking are well known to those of ordinary skill in the art.
RAID level 6 builds upon the structure of RAID level 5 but adds a second block of redundancy information to each stripe. The additional redundancy information is based exclusively on the data block portions of a given stripe and does not include the parity block computed in accordance with typical RAID level 5 storage management. Typically, the additional redundancy block generated and checked in RAID level 6 storage management is orthogonal to the parity generated and checked in accordance with RAID level 5 standards.
RAID level 0 is a technique that simply stripes or distributes data over a plurality of simultaneously operable disk drives of a storage subsystem. RAID level 0 provides the performance enhancements derived from such striping but is devoid of redundancy information to improve reliability. These and other RAID management levels are each useful in particular applications to improve reliability, performance or both.
It is common in such storage subsystems to logically define one or more logical volumes such that each logical volume comprises some portion of the entire capacity of the storage subsystem. Each volume may be defined to span a portion of each of one or more disk drives in the storage subsystem. Multiple such logical volumes may be defined within the storage subsystem typically under the control of a storage subsystem controller. Therefore, for any group of disk drives comprising one or more disk drives, one or more logical volumes or portions thereof may physically reside on the particular subset of disk drives.
For any number of reasons, it is common for a RAID logical volume to be migrated between two different RAID levels. For example, when the disk drives that comprise one of more logical volumes are moved from a first storage subsystem to a second storage subsystem, different RAID levels may be supported in the two subsystems. More specifically, if a first subsystem supports RAID level 6 with specialized hardware assist circuits but the second storage subsystem is largely devoid of those RAID level 6 assist circuits, the logical volumes may be migrated to a different RAID management level to permit desired levels of performance despite the loss of some reliability. Such exemplary migration may be from RAID level 6 to RAID level 5 or to RAID level 0 or from RAID level 5 to RAID level 0.
Even where a logical volume is not being physically moved between storage subsystems it may be desirable to migrate a volume from one RAID management level to another in view of changing environmental conditions or in view of changing requirements for performance and/or reliability by a host system application. Those of ordinary skill in the art will readily recognize a wide variety of reasons for such migration between RAID management levels and a variety of levels between which migration may be useful.
Presently practiced RAID migration techniques and structures perform the desired RAID level migration by moving data blocks and re-computing redundancy information to form new stripes of the new logical volume. For example, when migrating a volume from RAID level 6 to level 5, current techniques and structures form new stripes of a RAID level 5 logical volume by re-arranging data blocks and generating new XOR parity blocks to form new stripes mapped according to common mapping arrangements of RAID level 5 management. Or, for example, when migrating a volume from RAID level 6 or 5 to RAID level 0, the data blocks are re-distributed over the disk drives of the volume without any redundancy information.
These typical migration techniques may provide for optimal utilization of storage capacity of the logical volume but at a significant cost in time to move all data blocks and/or re-generate new redundancy information. Current dynamic RAID migration (“DRM”) techniques read blocks of data from the drives of the current RAID volume, recalculates new redundancy information according to the new RAID level, and writes the data and new redundancy information according to the new RAID level to the disk drives of the new logical volume. Current migration methods are time consuming, I/O intensive, and consume large amounts of memory bandwidth of the RAID controller. Current migration techniques may leave all, or major portions, of the volume inaccessible for host system request processing until completion of the migration process. It therefore remains a problem in such storage subsystems to reduce overhead processing associated with volume migration and to thereby reduce the time to migrate the volume.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing improved methods and structure for the migration of RAID volumes in a RAID storage subsystem. The improved migration methods and structure reduce the overhead processing to migrate a volume and thereby complete the migration more quickly. More specifically, features and aspects hereof reduce the volume of data moved or re-generated for purposes of migrating a logical volume. In particular, features and aspects hereof provide for minimizing the movement of blocks of data and removing the need to recalculate redundancy information when migrating from a higher level of RAID to a lower level. Still more specifically, features and aspects hereof incorporate DRM methods and structures that use far less I/O, are not as demanding on memory bandwidth of the controller, and are therefore much faster than current DRM techniques.
Features and aspects hereof provide that migration performance improvement may be achieved by removing one or more drives from the RAID volume and moving or regenerating only the information from the removed drive required for the lower level of RAID management. Features and aspects hereof also allow for locking and unlocking of portions of the volume as it is migrated such that I/O processing may continue for portions not affected by the ongoing migration process.
A first feature hereof provides a method of migrating a volume of a RAID storage subsystem from a first RAID level to a second RAID level, wherein the volume comprises a plurality of disk drives (N) and wherein the volume comprises a plurality of stripes and wherein each stripe comprises a corresponding plurality of data blocks and at least a first block of corresponding redundancy information, the method comprising the steps of: reconfiguring each stripe of the plurality of stripes such that each stripe comprises the corresponding plurality of data blocks and a reduced number of blocks of corresponding redundancy information; and reducing the number of the plurality of disk drives from N, whereby the volume is migrated from the first RAID level to the second RAID level.
Another aspect hereof further provides that the first RAID level is level 6 such that each stripe includes a first block of corresponding redundancy information and a second block of corresponding redundancy information, and wherein the second RAID level is level 5, and wherein the step of reconfiguring comprises reconfiguring the plurality of stripes such that each stripe comprises the corresponding plurality of data blocks and the first block of corresponding redundancy information and wherein each stripe is devoid of the second block of redundancy information; and wherein the step of reducing comprises reducing the number of the plurality of disk drives from N to N−1.
Another aspect hereof further provides that the first RAID level is level 6 and wherein the second RAID level is level 0; and wherein the step of reconfiguring comprises reconfiguring the plurality of stripes such that each stripe contains the corresponding plurality of data blocks and is devoid of all redundancy information; and wherein the step of reducing comprises reducing the number of the plurality of disk drives from N to N−2.
Another aspect hereof further provides that the first RAID level is level 5 and wherein the second RAID level is level 0; and wherein the step of reconfiguring comprises reconfiguring the plurality of stripes such that each stripe contains the plurality of data blocks and is devoid of redundancy information; and wherein the step of reducing comprises reducing the plurality of disk drives is from N to N−1.
Another aspect hereof further provides that the step of reducing results in one or more of the plurality of disk drives of the volume being unused disk drives; and the step of reducing includes a step of releasing the unused disk drives.
Another aspect hereof further provides that the step of reconfiguring is devoid of a need to move any blocks for a subset of the plurality of stripes during reconfiguration.
Another aspect hereof further provides that each stripe of the plurality stripes is associated with a stripe identifier sequentially assigned from a sequence starting at 1 and incremented by 1; and wherein the step of reconfiguring is devoid of a need to move any blocks during reconfiguration when the stripe identifier is equal to a modulo function of N.
Another aspect hereof further provides that the step of reconfiguring is devoid of a need to move any blocks during reconfiguration when the stripe identifier is equal to a multiple of N. Another aspect hereof further provides that the step of reconfiguring needs to move at most one block for each stripe of the plurality of stripes during reconfiguration.
Another feature hereof provides a RAID storage subsystem comprising: a plurality of disk drives; a volume comprising a number of assigned disk drives (N) from the plurality of disk drives wherein the volume comprises a plurality of stripes wherein each stripe of the plurality of stripes comprises a plurality of data blocks and at least one block of redundancy information; and a storage controller coupled to the plurality of disk drives to process I/O requests received from the host system; and wherein the storage controller further comprises: a migration manager adapted to migrate the volume from a first RAID level to a second RAID level by reconfiguring each stripe to contain the plurality of data blocks and a reduced number of blocks of redundancy information; and a drive elimination manager operable responsive to the migration manager to reduce the number of assigned disk drives of the volume below N.
Another aspect hereof further provides that the drive elimination manager is adapted to eliminate one or more of the assigned disk drives to generate one or more unused disk drives and wherein the drive elimination manager is further adapted to release the unused disk drives for use by other volumes.
Another aspect hereof further provides that the first RAID level is RAID level 6 and wherein the second RAID level is RAID level 5 and wherein the drive elimination manager is adapted to eliminate one of the assigned disk drives to generate one unused disk drive and wherein the drive elimination manager is further adapted to release the unused disk drive for use by other volumes.
Another aspect hereof further provides that the first RAID level is RAID level 5 and wherein the second RAID level is RAID level 0 and wherein the drive elimination manager is adapted to eliminate one of the assigned disk drives to generate one unused disk drive and wherein the drive elimination manager is further adapted to release the unused disk drive for use by other volumes.
Another aspect hereof further provides that the first RAID level is RAID level 6 and wherein the second RAID level is RAID level 0 and wherein the drive elimination manager is adapted to eliminate two of the assigned disk drives to generate two unused disk drives and wherein the drive elimination manager is further adapted to release the unused disk drives for use by other volumes.
Another aspect hereof further provides that the reconfiguration manager is adapted to operate devoid of a need to move any of the plurality of data blocks for multiple of the plurality of stripes of the volume.
Another feature hereof provides a method operable in a storage subsystem for migrating a RAID logical volume in the subsystem from a first RAID level to a second RAID level wherein the logical volume configured in the first RAID level is striped over a plurality of disk drives and wherein each stripe has a plurality of data blocks and has wherein each stripe has at least one redundancy block, the method comprising the steps of: selecting a disk drive of the plurality of disk drive to be logically removed from the logical volume leaving a remaining set of disk drive in the logical volume; and reconfiguring each stripe of the logical volume from the first RAID level to the second RAID level by eliminating a redundancy block associated with the first RAID level in each stripe and by reorganizing remaining blocks of each stripe required for the second RAID level to reside exclusively on the remaining set disk drives.
Another aspect hereof further provides for freeing the selected disk drive for use in other logical volumes following completion of the step of reconfiguring.
Another aspect hereof further provides that the first RAID level is level 6 and wherein the second RAID level is level 5 and wherein the step of reconfiguring further comprises: eliminating a second redundancy block from each stripe and reorganizing the data blocks and first redundancy block remaining in each stripe to reside only on the remaining set of disk drives.
Another aspect hereof further provides that the first RAID level is level 5 and wherein the second RAID level is level 0 and wherein the step of reconfiguring further comprises: eliminating a redundancy block from each stripe and reorganizing the data blocks remaining in each stripe to reside only on the remaining set of disk drives.
Another aspect hereof ftrther provides that the first RAID level is level 6 and wherein the second RAID level is level 0 and wherein the step of reconfiguring further comprises: eliminating a first and second redundancy block from each stripe and reorganizing the data blocks remaining in each stripe to reside only on the remaining set of disk drives.
RAID storage controllers 104 are also coupled to a plurality of disk drives 108 via communication path 152 on which may be distributed one or more logical volumes. Path 152 may be any of several communication media and protocols similar to that of path 150. Each logical volume may be managed in accordance with any of several RAID storage management techniques referred to as RAID levels. Some common forms of RAID storage management include RAID levels 0, 5, and 6. Each RAID level provides different levels of performance enhancement and/or reliability enhancement.
As noted above, it is common for RAID storage controllers 104 to include hardware assist circuitry designed for enhancing computation and checking of redundancy information associated with some of the various common RAID levels. For example, the redundancy information generation and checking required by RAID levels 5 and 6 are often performed with the assistance of custom designed circuitry to aid in the redundancy information computation and checking as data is transferred between the host system 102 and the storage controller 104 and/or between the storage controller 104 and the plurality of disk drives 108.
As further noted above, for any of several reasons in such storage systems, it may be useful to migrate a RAID logical volume from a first level of RAID storage management to a different, lower, second level of RAID storage management. For example, if a plurality of disk drives are exported from the first storage subsystem and imported into a second storage subsystem devoid of adequate hardware assist circuitry to perform the RAID storage management features provided by the first subsystem, it may be useful to migrate the imported logical volume to a lower RAID level such that the receiving or importing storage subsystem may provide adequate performance in accessing the imported logical volume.
As further noted above, current techniques for such migration frequently involve movement of large amounts of data to reorganize the stripes the data blocks of the logical volume into newly formed stripes for the lower level of RAID storage management into which the volume is migrated. In addition, depending on the particular RAID level into which the volume is migrated, significant computation may be involved to regenerate new redundancy information in addition to the movement of data blocks. For example, when migrating a logical volume from RAID level 6 to RAID level 5, current migration techniques may generate all new stripes redistributing data blocks over the same disk drives 108 and generating required new parity blocks to be associated with each newly formed stripe of data blocks.
By contrast and as discussed further herein below, RAID storage controllers 104 of subsystem 100 are enhanced in accordance with features and aspects hereof to reduce the volume of such movement of data blocks and regeneration of required redundancy information and thus improve the speed of the migration process. In general, storage controllers 104 attempt to eliminate use of a disk dive in association with reduction of the amount of redundancy information in the change in RAID storage management levels during the migration process. By so eliminating or logically removing one of disk drives 108 from a RAID level 6 logical volume, a RAID level 5 logical volume may be formed with a significant reduction in the overhead processing for data block movement and parity regeneration. In like manner migrating from RAID level 6 to RAID level 0 may entail eliminating or logically removing two disk drives from the logical volume in association with eliminating both parity blocks of a RAID level 6 stripe. Still further, in like manner, when migrating a logical volume from RAID level 5 to RAID level 0, one disk drive of the logical volume may be eliminated or logically removed in association with eliminating the need for any redundancy information in the striped data.
By so reducing the volume of movement of data blocks and regeneration of redundancy information while migrating a logical volume, overhead processing within the RAID storage controller associated with the migration process is reduced. Elapsed time required to complete the migration process may thereby be reduced making the migrated volume fully accessible more rapidly within the receiving or importing storage subsystem.
As discussed further herein below, storage controllers 104 enhanced in accordance with features and aspects hereof may further reduce the need for movement of data blocks and/or regeneration of parity information to form new stripes by utilizing non-typical mapping functions or tables to locate blocks and associated redundancy blocks within the newly formed stripes of the migrated logical volume. Locating a particular desired logical block number in a migrated RAID logical volume may be achieved by simple arithmetic functions utilizing well-known modulo arithmetic and/or may be achieved utilizing simple table structures to physically locate a desired logical block in the newly formed stripes of the migrated logical volume.
As is common in most present RAID storage controllers, DMA 202 serves to improve storage controller 104 performance by offloading simple data movement processing from CPU 200 when moving data between the host interface 206, RAM 210, and disk interface 222. Further, as generally known in present storage controllers, RAID parity assist circuit 204 (“RPA”) provides hardware assist circuitry for redundancy information (e.g., parity) generation and checking as data is moved through the various control and interface elements of storage controller 104.
In accordance with features and aspects hereof, storage controller 104 is enhanced by dynamic RAID level migration manager 218 to improve performance of the migration process from a higher redundancy RAID level to a lower redundancy RAID level. In particular, features and aspects hereof provide for improvements in migrating from a striped RAID storage management level to a striped RAID storage management level providing a lower level of redundancy. For example, migrating from RAID level 6 having two redundancy blocks per stripe to RAID level S having only a single redundancy block per stripe may be improved by features and aspects hereof under control of dynamic RAID level migration manager 218 of storage controller 104. In like manner, migrating from RAID level 6 to RAID level 0 or from RAID level 5 to RAID level 0 may be improved by similar migration management features of element 218.
Those of ordinary skill in the art will readily recognize that a number of additional features in a typical storage subsystem 100 of
Element 400 of
As shown in
Those of ordinary skill in the art will recognize that the iterative processing of elements 702 and 704 may be preferably performed in a manner to lock out conflicting access to the logical volume as the stripes are being reconfigured. Such mutual exclusion locking is well known to those of ordinary skill in the art and may be performed either on the entire volume for the entire duration of the migration process or on smaller portions of the logical volume as the migration proceeds. In particular, such smaller portions may be as small as each individual stripe as it is reconfigured. Thus the processing of an I/O request may be performed by the storage controller in parallel as the migration process proceeds. All stripes but the current stripe being reconfigured may be accessed by standard I/O request processing techniques within the storage controller. In particular, stripes that have been reconfigured already may be accessed use of utilizing standard lower redundancy level RAID management techniques and hardware assist circuitry of the storage controller while stripes that have not yet been reconfigured may be manipulated by software emulation of the higher redundancy level where the storage controller is devoid of appropriate hardware assist circuitry. Such granular locking processes and associated I/O request processing are well known to those of ordinary skill and the art and need not be further discussed.
As noted above with respect to
Those of ordinary skill in the art will recognize a wide variety of equivalent methods to those described above with respect to
The improved migration provided by features and aspects hereof may attempt to balance two competing goals. The first goal is the reduction of data movement and parity regeneration (e.g., processing overhead) required of the migration process to thereby reduce the elapsed time that the required to migrate a logical volume from a first RAID level to a second RAID level. A second and sometimes competing goal is to maintain a typical organized format for the resulting logical volume in the second RAID level to permit simple mapping of logical blocks in the stripes of the newly formatted logical volume. In most storage controllers, simple modulo arithmetic functions may be utilized to determine the location of a logical block within the various stripes of the newly migrated logical volume. These two goals may compete in the sense that methods operable in accordance with features and aspects hereof may more dramatically reduce the volume of data movement and parity regeneration required in a migration process but at a cost that generates a new logical volume that is somewhat more difficult to map in the ongoing processing of I/O request to locate logical blocks in the newly formatted stripes. However, slightly more complex modulo arithmetic and/or at the logical to physical block location mapping table structures may be utilized as well known to those of ordinary skill and the art to maintain adequate performance in processing of I/O requests on the newly formatted logical volume.
Before noting exemplary improved migration techniques and mappings in accordance with features and aspects hereof, it is worth noting the amount of data movement and parity generation required by present migration techniques.
As presently practiced in the art, a migration from RAID 6 to RAID 5 without logically removing a drive of the plurality of disk drive would simply remove all the second redundancy blocks (Q1 . . . Q20 of
Features and aspects hereof reduce this volume of data block movement (reading and re-writing in a new stripe location) and eliminate the need to recompute any redundancy information blocks by logically removing one drive from the logical volume.
Comparing the overhead processing of presently practiced migration processing that generates the volume of
It will be noted that the logical volume of
Though the mapping of physical block locations may be more complex, the migration overhead processing is even more dramatically increased as compared to present migration techniques. In the exemplary migrated logical volume of
Those of ordinary skill in the art will recognize that a pattern of block movements arises from the migrations processes and structures in accordance with features and aspects hereof. For example, the migration exemplified by the block movements of
Those of ordinary skill in the art will readily recognize numerous other block movement patterns that result in overhead processing savings in accordance with features and aspects hereof where one or more disk drives of the volume are logically removed or eliminated to speed the migration process. Corresponding mapping computations and/or tables will also be readily apparent to those of ordinary skill in the art to permit rapid location of physical blocks corresponding to desired logical block numbers.
Figures similar to
While the invention has been illustrated and described in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character. One embodiment of the invention and minor variants thereof have been shown and described. Protection is desired for all changes and modifications that come within the spirit of the invention. Those skilled in the art will appreciate variations of the above-described embodiments that fall within the scope of the invention. As a result, the invention is not limited to the specific examples and illustrations discussed above, but only by the following claims and their equivalents.
This patent application is related to commonly owned, co-pending, patent application Ser. No. 11/192,544 filed 30 Jul. 2005 and is related to commonly owned, co-pending patent application serial number 04-2350 filed herewith on 19 Dec. 2005, both of which are hereby incorporated by reference.