Consistency check (CC) is a mechanism or operation used in a redundant array of independent disks (RAID) firmware to verify whether all rows in a disk array associated with a redundant RAID level are consistent. In RAID 1, the data is mirrored when an inconsistent row is detected during a CC operation. In RAID 5 and RAID 6, parity data is recreated from peer drives during the CC operation. The CC operation may also include variant implementations and secondary RAID levels based on RAID 1, RAID 5 and RAID 6 and RAID 10, RAID 50, RAID 60.
Typically, two basic functions are performed during a CC cycle. The first one includes reading data from a disk array and the second one includes performing XOR operation on the read data to validate consistency. To read the data from the disk array, the CC operation sends read requests to all disks forming the disk array. RAID 1E disk array (also known as PRL 11) has been implemented in the RAID firmware as an extension of RAID 1 disk array. RAID 1E disk array can be considered as a collection of multiple RAID 1 disk arrays, where each RAID 1 disk array in the RAID 1E disk array is referred to as a mirror set. During a CC operation on the RAID 1E disk array, read requests are sent simultaneously to all the RAID 1 disk arrays, i.e., to all mirror sets or physical arms. Then, an XOR operation is performed on each mirror set to check whether the data is consistent with parity/mirror. However, existing CC operation do not support performing the CC operation on a degraded RAID 1E disk array. Typically, in the RAID 1E disk array, any drive failure in any mirror set results in placing the RAID 1E disk array in a degraded state.
Various embodiments are described herein with reference to the drawings, wherein:
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
A system and method for performing a consistency check operation on a degraded RAID 1E disk array is disclosed. In the following detailed description of the embodiments of the present subject matter, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the present subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present subject matter, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present subject matter. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present subject matter is defined by the appended claims.
Each of the mirror sets includes a pair of disks. In each of the pair of disks, one disk is the mirror of other disk and is referred to as a mirrored disk. Further, each of the disks in the all the mirror sets in the degraded RAID 1E disk array is divided into a plurality of rows. Each row in a disk forms a block where data is stored (e.g., as shown in
At step 102, a read request is sent to a first row in all mirror sets having no missing disks. For example, missing disks may be those disks of the mirror sets which are in a failed or offline state in the degraded RAID 1E disk array. At step 104, an exclusive—OR (XOR) operation is performed on the first row in all the mirror sets having no missing disks for determining data consistency between the pair of disks in the mirror set.
At step 106, data on a mirrored disk in all the mirror sets having no missing disks is updated based on the outcome of the performed XOR operation. In one example embodiment, during the XOR operation, if it is found that data is not consistent in a current mirror set, then data on a mirrored disk is updated using other disk in the current mirror set. In another example embodiment, if the data is consistent in the current mirror set, then it is determined to see whether a next mirror set having no missing disks is available in the degraded RAID 1E disk array that requires performing the XOR operation to determine data consistency.
Further, an XOR operation is performed on the next mirror set having no missing disks. If there are no more mirror sets having no missing disks in the first row in the degraded RAID 1E disk array, then the CC operation on the first row is completed. At step 108, the steps of sending, performing and updating is repeated on a next row in the degraded RAID 1E disk array until all the rows in the degraded RAID 1E disk array are completed. It should be noted that, after a read request is sent to a row and a particular disk on the row goes missing before the read request is completely processed, recovery for the missing disk is not performed.
During a CC operation on the degraded spanned RAID 1E disk array 200A, a read request is sent to the first row 206 in the mirror sets 204A, 204C, 204E, and 204G having no missing disks in them. Then, an XOR operation is performed on the first row 206 of the mirror set 204A. In one embodiment, if data in the mirror set 204A is not consistent, then the mirrored disk 202B is updated using data from the disk 202A. In another embodiment, if the data in the mirror set 204A is consistent, then it is determined whether a next mirror set having no missing disk is available in the degraded spanned RAID 1E disk array 200A for performing the XOR operation to determine data consistency.
In the example embodiment illustrated in
Then, the CC operation on a next row (e.g., a second row) of the mirror sets 204A, 204C, 204E and 204G having no missing disks in the degraded spanned RAID 1E disk array 200A is performed. In one exemplary implementation, a read request is sent to the second row of the mirror sets 204A, 204C, 204E, and 204G. Then, an XOR operation is performed on the second row of the mirror sets 204A, 204C, 204E, and 204G which is similar to the XOR operation performed on the first row 206 as described above. Further, based on the outcome of the performed XOR operation, the mirrored disks may be updated. Likewise, sending the read request, performing the XOR operation, and updating the mirrored disks are repeated until all rows in the degraded spanned RAID 1E disk array 200A are completed.
During a CC operation on the degraded non-spanned RAID 1E disk array 200B, a read request is sent to the first row 208 in the mirror sets 204I and 204K having no missing disks in them. Then, an XOR operation is performed on the first row 208 of the mirror set 2041. In one embodiment, if data in the mirror set 2041 is not consistent, then the mirrored disk 202R is updated using data from the disk 202Q. In another embodiment, if the data in the mirror set 2041 is consistent, then it is determined whether a next mirror set having no missing disk is available in the degraded non-spanned RAID 1E disk array 200B for performing the XOR operation to determine data consistency.
In the example embodiment illustrated in
Then, the CC operation on a next row (e.g., a second row) of the mirror sets 2041 and 204K having no missing disks in the degraded non-spanned RAID 1E disk array 200B is performed. For example, a read request is sent to the second row of the mirror sets 204I and 204K. Then, an XOR operation is performed on the second row of the mirror sets 204I and 204K which is similar to the XOR operation performed on the first row 208 as described above. Further, based on the outcome of the performed XOR operation, the mirrored disks may be updated. Likewise, sending the read request, performing the XOR operation, and updating the mirrored disks are repeated until all rows in the degraded non-spanned RAID 1E disk array 200B are completed.
Further as shown, the computing device 302 includes a RAID controller 308 communicatively coupled to the degraded RAID 1E disk array 314. According to an embodiment of the present subject matter, the RAID controller 308 includes a CC module 312 stored in its memory 310 for performing the CC operation on the degraded RAID 1E disk array 314. For example, the CC module 312 may be stored in the form of instructions in the memory 310 that when executed by the computing device 302, causes the computing device 302 to perform the CC operation as described in
In various embodiments, the methods and systems described in
Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. Furthermore, the various devices, modules, and the like described herein may be enabled and operated using hardware circuitry, for example, complementary metal oxide semiconductor based logic circuitry, firmware, software and/or any combination of hardware, firmware, and/or software embodied in a machine readable medium. For example, the various electrical structure and methods may be embodied using transistors, logic gates, and electrical circuits, such as application specific integrated circuit.