Disk storage system with rebuild sequence and method of operation thereof

A method of operation of a disk storage system includes: providing a disk storage controller; coupling a first physical disk to the disk storage controller; detecting a failure of the first physical disk; and rebuilding a first logical drive, after replacing the first physical disk, includes: selecting a selected stripe of the first logical drive, reading a selected stripe status of the selected stripe, and marking the selected stripe as on-line in the selected stripe status.

TECHNICAL FIELD

The present invention relates generally to a disk storage system, and more particularly to a system for managing a system having multiple disks in storage apparatus.

BACKGROUND ART

Conventional disk array data storage systems have multiple disk storage devices that are arranged and coordinated to form a single mass storage system. A Redundant Array of Independent Disks (RAID) system is an organization of data in an array of mass data storage devices, such as hard disk drives, to achieve varying levels of data availability and system performance.

RAID systems typically designate part of the physical storage capacity in the array to store redundant data, either mirror or parity. The redundant information enables regeneration of user data in the event that one or more of the array's member disks, components, or the access paths to the disk(s) fail.

In the event of a disk or component failure, redundant data is retrieved from the operable portion of the system and used to regenerate or rebuild the original data that is lost due to the component or disk failure. This aspect is exacerbated by the increased capacity of the physical drives. Restoring larger physical disks obviously takes longer, which increases the probability of a second failure during the rebuild process.

Accordingly, to minimize the probability of data loss during a rebuild in a hierarchical RAID system, there is a need to manage data recovery and rebuild that accounts for data availability characteristics of the hierarchical RAID levels employed. While a data recovery process is taking place, any additional failure would result in loss of the original user data making an efficient rebuild sequence imperative.

Thus, a need still remains for a disk storage system with rebuild sequence. In view of the overwhelming reliance on database availability, it is increasingly critical that answers be found to these problems. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is critical that answers be found for these problems. Additionally, the need to reduce costs, improve efficiencies and performance, and meet competitive pressures adds an even greater urgency to the critical necessity for finding answers to these problems.

DISCLOSURE OF THE INVENTION

The present invention provides a method of operation of a disk storage system including: providing a disk storage controller; coupling a first physical disk to the disk storage controller; detecting a failure of the first physical disk; and rebuilding a first logical drive, after replacing the first physical disk, including: selecting a selected stripe of the first logical drive, detecting a selected stripe status of the selected stripe, and marking the selected stripe as on-line in the selected stripe status.

The present invention provides a disk storage system, including: a disk storage controller; a first physical disk coupled to the disk storage controller; a first logical drive, on the first physical disk, restored includes: a selected stripe of the first logical drive marked as on-line, and a non-volatile memory, coupled to the disk storage controller, includes a selected stripe status of the selected stripe; and a rebuilt drive marked on-line includes only written stripes regenerated.

BEST MODE FOR CARRYING OUT THE INVENTION

The following embodiments are described in sufficient detail to enable those skilled in the art to make and use the invention. It is to be understood that other embodiments would be evident based on the present disclosure, and that system, process, or mechanical changes can be made without departing from the scope of the present invention.

Typically, the disk drives are allocated into equally sized address areas referred to as “blocks.” A set of blocks that has the same unit address ranges from each of the physical disks is referred to as a “stripe” or “stripe set.” The terms “coupling” and “de-coupling” is defined as inserting and removing a storage tray containing one or more disk drives from a storage enclosure supporting a redundant array of independent disks. The insertion causes the electrical and physical connection between the disk drives and the storage enclosure, which includes a disk storage controller known as a RAID controller.

Referring now toFIG. 1, therein is shown a block diagram of a disk storage system100, in an embodiment of the present invention. The block diagram of the disk storage system100depicts a disk storage controller102, having a non-volatile memory103, connected to a first physical disk106, a second physical disk108, or a combination thereof. The non-volatile memory103, such as a flash memory, is used to store configuration information and process related information.

The disk storage controller102can configure the first physical disk106and the second physical disk108as well as additional physical disks109by reading a serial number of the first physical disk106and the second physical disk108and allocating space for them in the non-volatile memory103. It is understood that the invention is not limited to the first physical disk106and the second physical disk108. Any number of the physical disks can be used, but in order to clarify the description only two of the physical disks are discussed.

The first physical disk106, the second physical disk108, and the additional physical disks109can be configured as a redundant array of independent disks (RAID) to include a first logical drive110, such as a Logical Unit Number (LUN). The first logical drive110can be formed by a first group of allocated sectors112on the first physical disk106, a second group of allocated sectors114on the second physical disk108. The first logical drive110can also include additional groups of allocated sectors116in the additional physical disks109. It is understood that the first logical drive110of a RAID must be written on more than the first physical disk106and can be written on any number of the physical disks in the disk storage system100.

The collective allocated sectors of the first logical drive110can be accessed through the disk storage controller102as a LUN. A second logical drive118can be formed by a third group of allocated sectors120on the first physical disk106, a fourth group of allocated sectors122on the second physical disk108. The second logical drive118can also include other allocated sectors124on other of the additional physical disks109. Each of the logical unit numbers, such as the first logical drive110and the second logical drive118, can be accessed independently by a host system (not shown) through the disk storage controller102.

In normal operation, the disk storage controller102would write data to and read data from the first logical drive110and the second logical drive118. The operation is hidden from the host system, which is unaware of the first physical disk106, the second physical disk108, or the additional physical disks109contained within the disk storage system100.

In the operation of the disk storage system100, if a data error is detected while reading the first logical drive110the error can be corrected without notification being sent to the host system. If, during normal operation of the disk storage system100, a failure occurs in the first physical disk106, the first physical disk106can be de-coupled from the disk storage controller102in order to replace the first physical disk106.

The non-volatile memory103is written to indicate the first physical disk106is a failed drive106. The non-volatile memory103can contain a selected stripe status105, which contains a current copy of the stripe status for all the stripes of the first logical drive110and the second logical drive118. The selected stripe status105is defined as a segment of the non-volatile memory103, which contains a series of status bits for each stripe in any of the logical drives. The selected stripe status105can include the stripe status of consistent/inconsistent, written, and on-line/critical. The selected stripe status105can be used during the rebuild process of the first logical drive110.

The failure of the first physical disk106, which is detected by the disk storage controller102, can be a data error, a command time-out, loss of power, or any malfunction that prevents the execution of pending or new commands. It is understood that the detection of the failed drive106can be in any location of the storage enclosure (not shown).

Upon replacing the first physical disk106to the disk storage system100, a process is entered to rebuild the data content of the first group of allocated sectors112on the first logical drive110and the third group of allocated sectors120on the second logical drive118that collectively reside on the first physical disk106. While the first physical disk106is removed from the disk storage system100, any data read from the second group of allocated sectors114or the fourth group of allocated sectors122on the second physical disk108can be regenerated through a mirror or parity correction process.

The dramatic increase in the storage capacity of the first physical disk106and the second physical disk108has increased the amount of time required to rebuild any lost data on a newly installed unit of the first physical disk106. It is required that an efficient and rapid rebuild of the data is executed to prevent any data loss in the disk storage system100due to a second failure that might occur prior to the complete restoration of the data.

It has been discovered that the first physical disk106comes back on-line, in approximately 10 to 25 percent of the duration as compared to rebuilding the entire drive, by rebuilding only the stripes that have been written. The data on the stripe(s) that were not written, are correctable through the parity structure without degradation in read performance. The overall time required to restore the first physical disk106to an on-line status is therefore substantially reduced. The total resource of the disk storage system100can then be applied to the background operation of restoring the data to the first physical disk106, which has been replaced. It is also understood that the operation of the disk storage system100continues during the failure and rebuilding of the first physical disk106.

Referring now toFIG. 2, therein is shown a functional block diagram of a restoration process201of the disk storage system100. The functional block diagram of the restoration process201depicts the first physical disk106, which can have been replaced due to a previous failure. The entirety of the first logical drive110and the second logical drive118on the first physical disk106must be restored.

In order to facilitate the disk storage system100of the present invention, the first logical drive110and the second logical drive118can be split into many small stripes and the status of the each stripe can be maintained in the selected stripe status105, ofFIG. 1, of the non-volatile memory103, ofFIG. 1. The selected stripe status105can be set to indicate the stripe is consistent, written, online, critical, or degraded. The selected stripe status105can be maintained in the non-volatile memory103to record the write log for every stripe in the first logical drive110and the second logical drive118. The table can include 1 bit per status condition for each stripe and each stripe to have a maximum of 1 GB physical capacity.

When the first physical disk106is once again available for operation, after the replacement of the first physical disk106, a selective restoration of the data can be performed. The selective restoration of the data means initially regenerating the data for only first written stripes202, marking the first physical disk106as on-line, and performing a background synchronization of the rest of the first physical disk106. The first written stripe202is a segment of data within the first logical drive110that can be restored in the second physical disk108. A subsequent written stripe204, within the second logical drive118, can be restored before the second physical disk108can be fully put on-line by the disk storage controller102, ofFIG. 1.

It is understood that the first written stripe202, while found in the first logical drive110, can be written on the first physical disk106, the second physical disk108, any of the additional physical disks109, or a combination thereof. By way of an example, the first written stripe202is shown only on the good drive108and not on the failed drive106.

Un-written stripes206can be located in the first logical drive110and the second logical drive118. A selected stripe208of the first logical drive110can be among the un-written stripes206or it can be among the subsequent written stripe204. The disk storage controller102can read the selected stripe status105from the non-volatile memory103in order to determine whether the selected stripe208has been a target of a write operation.

A second selected stripe210can be configured on the first physical disk106as a portion of the second logical drive118. During the rebuild of the content of the first physical disk106, all of the selected stripe from the first logical drive110and the second selected stripe210from the second logical drive118must be restored.

It is understood that the position of the un-written stripes206is an example only and the first logical drive110, the second logical drive118, or a combination thereof can contain the un-written stripes206in any location. It is further understood that the first written stripe202and the subsequent written stripe204are an example only and any number of the stripes in the first logical drive110and the second logical drive118can have been written while the first physical disk106was unavailable from the disk storage system100.

During the initialization of the disk storage system100, the disk storage controller102will record the serial numbers of the first physical disk106, the second physical disk108and the additional physical disks109. The serial number of each of the first physical disk106and the second physical disk108will be checked when a failed physical disk is removed and replaced. The disk storage controller102is aware that the first physical disk106has experienced a failure and when it is replaced.

It has been discovered that by dividing the physical disk drive capacity into many small stripes and maintaining the status of the stripes individually, a logical drive can be returned to on-line status by restoring the stripes that had been written to between the failure of the physical disk drive and the beginning of the logical drive rebuild. The resulting efficiencies can reduce the time required to restore the logical drive to operation in the disk storage system.

Thus, it has been discovered that the disk storage system and device of the present invention furnishes important and heretofore unknown and unavailable solutions, capabilities, and functional aspects for maintaining disk storage systems in a RAID configuration.

Referring now toFIG. 3, therein is shown a flow chart of a logical drive rebuild301of the disk storage system. The flow chart of the logical drive rebuild301depicts the series of events that are representative of the present invention. The logical drive rebuild301is initiated in a physical drive unavailable block302. This block indicates the first physical disk106, ofFIG. 1, or the second physical disk108, ofFIG. 1, has failed to operate correctly.

The inoperative state of the first physical disk106or the second physical disk108causes the first logical drive110, ofFIG. 1, and the second logical drive118, ofFIG. 1, to be set to a critical degraded state but still available for full operation. A fault status block304can indicate that the first logical drive110and the second logical drive118are in a critical and inconsistent state. The entry into this state will cause the disk storage controller102, ofFIG. 1, to set an alarm indicating that intervention is required.

A replacement drive available block306will determine if a pre-allocated spare of the first physical disk106is available or the failed physical disk has been replaced with a new and operational physical disk. If it is determined that no such replacement physical disk is available, the flow proceeds to a remain critical block308and immediately returns to the replacement drive available block306to monitor the availability of the replacement physical disk. When the replacement physical disk is available the disk storage controller102can set disk rebuilding status in the non-volatile memory103, ofFIG. 1, and the flow proceeds to a begin rebuild block310.

The begin rebuild block310can identify the serial number of the replacement physical disk and update the stored information in order to replace the first physical disk106within the disk storage system100. The flow then proceeds to a process first stripe block312. In the process first stripe block312, the stripes of the first logical drive110can be checked to determine if a write operation had taken place to the first stripe of the first logical drive110.

It is understood that the failure of the first physical disk106is an example only and any of the physical disks within the disk storage system100can fail. It is a further example that some of the stripes of the first logical drive110are present on the physical disk that failed. The process of rebuilding the content of the first logical drive110can be replicated for any of the logical drives that can utilize the capacity of the physical disk that failed.

The flow then proceeds to a logical drive stripe written check314. The status of the selected stripe will indicate whether it has been the target of a write operation between the initial creation of the first logical drive110and the time of the logical drive stripe written check314. If there was no write operation that addressed the selected stripe the flow proceeds to a mark stripe on-line block315. The status of the selected stripe will remain on-line and inconsistent, which indicates that the data will be restored by a background synchronization operation.

If the logical drive stripe written check314determines that the selected stripe was the target of the write operation, the flow proceeds to a regenerate stripe data block316. The data that would have been written to the stripe, had the physical disk not failed, is regenerated and written to the selected stripe of the first logical drive110. The flow then proceeds to a set consistent and on-line block318, where the status of the selected stripe is altered form critical and inconsistent to consistent and on-line. The consistent and on-line status for the selected stripe means that the content of the selected stripe is up-to-date and available on-line.

A logical drive complete check320is the destination of both the mark stripe on-line block315and the set consistent and on-line block318. The entry to the logical drive complete check320means that the selected stripe is consistent and available on-line. If no write command had targeted the selected stripe, the data cannot be written into the replacement physical disk but can be regenerated automatically for a read of the first logical drive110.

If the logical drive complete check320determines that the first logical drive110includes additional stripes on the first physical disk106, the flow proceeds to a select next stripe block321. The select next stripe block321accesses the next stripe in the first logical drive110and the flow then returns to the logical drive stripe written check314in order to process the selected stripe.

If the logical drive complete check320determines that all of the stripes of the first logical drive110have been addressed and are now in an on-line state, the flow proceeds to a set logical block on-line322. The set logical block on-line322updates the status of the first logical drive110to indicate that it is operational and ready for any further transactions. The flow then proceeds to a last logical drive check324.

The last logical drive check324monitors the status of all of the logical drives that are mapped to the first physical disk106. If other logical drives, such as the second logical drive118, are also mapped to the first physical disk106, the flow will proceed to a select next logical drive block326in order to enable processing any remaining logical drives that must be addressed. As an example, if the second logical drive118is mapped to the first physical disk106, the second logical drive118would be selected. The flow would then proceed to the process first stripe block312in order to execute the rebuild process on the second logical drive118.

If the last logical drive check324determines that all of the logical drives that are mapped to the first physical disk106have been addressed, the flow proceeds to a mark rebuilt drive on-line328. At this point, only the stripes that were written after creation of the first logical drive110will be updated. The first physical disk106is marked as being on-line, but only the stripes that have been rebuilt are indicated to be consistent. This differentiation between the stripes, allows the access of the first physical disk106to commence. If a stripe that is inconsistent is accessed, its data is automatically regenerated by an exclusive-or process performed by the disk storage controller102or its peripheral hardware. In the case of a write operation to a stripe that is marked as inconsistent, once the write is complete the stripe is updated to consistent.

The flow then proceeds to a background synchronization330. The background synchronization330steps through the stripes that are flagged as inconsistent in order to regenerate the data, write the stripe, and update the status to be on-line and consistent. While the background synchronization330can take an extended amount of time to complete, the normal operation of the disk storage system100is not delayed. This is extremely significant as the capacity of the first physical disk106dramatically increases and the time required for completing the background synchronization330increases.

Referring now toFIG. 4, therein is shown a flow chart of a method400of operation of the disk storage system100in a further embodiment of the present invention. The method400includes: providing a disk storage controller in a block402; coupling a first physical disk to the disk storage controller in a block404; detecting a failure of the first physical disk in a block406; and rebuilding a first logical drive, after replacing the first physical disk, including: selecting a selected stripe of the first logical drive, detecting a selected stripe status of the selected stripe, and marking the selected stripe as on-line in the selected stripe status in a block408.

The resulting method, process, apparatus, device, product, and/or system is straightforward, cost-effective, uncomplicated, highly versatile, accurate, sensitive, and effective, and can be implemented by adapting known components for ready, efficient, and economical manufacturing, application, and utilization.