IP Library Granted Patent US 8,812,901
Granted Patent B2
US 8,812,901 · App. 13/241,711 · Granted Aug 19, 2014

Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system

Inventor: Robert L. Sheffield, Jr. (Longmont, CO)
Assignee: LSI Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,812,901
App. No.
13/241,711
Granted
Aug 19, 2014
Kind
B2
Abstract

Methods and apparatus for improved building of a hot spare storage device in a RAID storage system while avoiding reading of stale data from a failed storage device. In the recovery mode of the failed device, all data is write protected on the failed device. A RAID storage controller may copy as much readable data as possible from the failed device to the hot spare storage device. Unreadable data may be rebuilt using redundant information of the logical volume. Write requests directed to the failed device cause the addressed logical block address (LBA) to be marked as storing stale data. When a read request is directed to such a marked LBA, the read request returns an error status from the failed device to indicate that the data is stale. The RAID controller then rebuilds the now stale data for that LBA from redundant information of the logical volume.

Claims (66)

1. A method operable within a storage device, the storage device adapted to couple with a Redundant Array of Independent Drives (RAID) storage controller, the method comprising:

detecting a failure of the storage device;

automatically reconfiguring the storage device into a recovery mode of operation in response to sensing the failure;

responsive to entering the recovery mode, performing the steps of:

receiving a write request to store supplied data at a write logical block address (LBA);

marking the write LBA as storing stale data in response to receipt of the write request;

receiving a read request requesting return of identified data stored at a read LBA;

determining whether the read LBA is marked as storing stale data responsive to receipt of the read request;

completing the read request by returning the identified data stored at the read LBA in response to a determination that the read LBA is not storing stale data; and

failing the read request in response to a determination that the read LBA is marked as storing stale data.

2. The method of claim 1 further comprising:

completing the write request by returning a failure status for the write request without storing the supplied data at the write LBA.

3. The method of claim 1

wherein the step of failing the read request further comprises returning a status code indicating that the identified data is stale.

4. The method of claim 1

wherein the step of marking further comprises writing uncorrectable data at the write LBA, and

wherein the step of determining further comprises:

attempting to read the identified data stored at the read LBA; and

detecting the presence of uncorrectable data stored at the read LBA as indicative of the read LBA being marked as storing stale data.

5. The method of claim 4

wherein the step of writing uncorrectable data further comprises:

completing the write request as though it is a SCSI WRITE_LONG operation having WR_UNCOR and COR_DIS parameters bits set.

6. The method of claim 1

wherein the step of marking further comprises adding information identifying the write LBA to a log memory of the storage device,

wherein the step of determining further comprises:

detecting that the read LBA matches information previously added to the log memory indicative that the read LBA stores stale data.

7. The method of claim 6

wherein the log memory is a non-volatile memory.

8. Apparatus in a storage device, the apparatus comprising:

a failure detector adapted to sense failure of the storage device and adapted to reconfigure the storage device into a recovery mode of operation;

a recovery mode write request processor adapted to process a write request received by the storage device while the storage device is in recovery mode, the write request identifying a write logical block address (LBA) to be written with supplied data, the recovery write request processor adapted to mark the write LBA as storing stale data in response to receipt of the write request; and

a recovery mode read request processor adapted to process a read request received by the storage device while the storage device is in recovery mode, the read request identifying a read LBA to be read, the recovery read processor adapted to determine whether the read LBA is marked as storing stale data, the recovery read processor further adapted to complete the read request by returning requested data in response to a determination that the read LBA is not marked as storing stale data, the recovery read request processor further adapted to complete the read request with a status indicating stale data in response to a determination that the read LBA is marked as storing stale data.

9. The apparatus of claim 8

wherein the recovery mode write processor is further adapted to mark the write LBA as storing stale data by writing uncorrectable data at the write LBA, and

wherein the recovery mode read processor is further adapted determine that the read LBA is marked as storing stale data by attempting to read the data stored at the read LBA and detecting the presence of uncorrectable data stored at the read LBA in response to the attempted read of the data.

10. The apparatus of claim 9

wherein the recovery mode write request processor is further adapted to write uncorrectable data by processing the write request as though it is a SCSI WRITE_LONG operation having WR_UNCOR and COR_DIS parameter bits set.

11. The apparatus of claim 8 further comprising:

a log memory coupled with the recovery mode write request processor and coupled with the recovery mode read request processor,

wherein the recovery mode write request processor is further adapted to mark the write LBA as storing stale data by adding information identifying the write LBA to the log memory, and

wherein the recovery mode read request processor is further adapted to determine that the read LBA is marked as storing stale data by detecting that the read LBA matches information previously added in the log memory indicative that the read LBA stores stale data.

12. The apparatus of claim 11

wherein the log memory is a non-volatile memory device.

13. A Redundant Array of Independent Drives (RAID) storage system comprising:

a plurality of storage devices including a first device and a second device, wherein the first device is configured as part of a RAID logical volume comprising multiple storage devices of the plurality of storage devices; and

a RAID storage controller coupled with the plurality of storage devices and coupled to receive read requests and write requests directed to access the RAID logical volume from host systems,

wherein the first device is adapted to sense its failure and to generate a failure signal indicative of the failure,

wherein the first device is further adapted to configure the first device into a recovery mode of operation responsive to sensing the failure,

wherein the RAID storage controller is adapted to receive the failure signal from the first device indicating possible failure,

wherein the RAID storage controller is further adapted to initiate a sequence of read requests to the first device to copy data from the first device to the second device in response to receipt of the failure signal while continuing to process read requests and write requests from the host systems,

wherein the first device further comprises:

a recovery mode write request processor adapted to process a write request received from the RAID storage controller while the first device is in recovery mode, the write request identifying a write logical block address (LBA) to be written, the recovery write request processor adapted to mark the write LBA as storing stale data in response to receipt of the write request; and

a recovery mode read request processor adapted to process a read request received from the RAID storage controller while the first device is in recovery mode, the read request identifying a read LBA to be read, the recovery read processor adapted to determine whether the read LBA is marked as storing stale data, the recovery read processor further adapted to complete the read request by returning requested data to the RAID storage controller in response to a determination that the read LBA does not store stale data, the recovery read request processor further adapted to complete the read request by returning to the RAID storage controller a stale data status indicating stale data in response to a determination that the read LBA is marked as storing stale data, and

wherein the RAID storage controller is further adapted to rebuild data stored at the write LBA on the second device using data from corresponding blocks of other storage devices of the RAID logical volume in response to receipt of the stale data status.

14. The storage system of claim 13

wherein the recovery mode write processor is further adapted to mark the write LBA as storing stale data by writing uncorrectable data at the write LBA, and

wherein the recovery mode read processor is further adapted to determine that the read LBA is marked as storing stale data by attempting to read the data stored at the read LBA and detecting the presence of uncorrectable data stored at the read LBA in response to the attempted read of the data.

15. The storage system of claim 14

wherein the recovery mode write request processor is further adapted to write uncorrectable data by processing the write request as though it is a SCSI WRITE_LONG operation having WR_UNCOR and COR_DIS parameters bits set.

16. The storage system of claim 13

wherein the first device further comprises:

a log memory coupled with the recovery mode write request processor and coupled with the recovery mode read request processor,

wherein the recovery mode write request processor is further adapted to mark the write LBA as storing stale data by adding information identifying the write LBA to the log memory, and

wherein the recovery mode read request processor is further adapted to determine that the read LBA stores stale data by detecting that the read LBA matches information previously added in the log memory indicative that the read LBA stores stale data.

17. The storage system of claim 16

wherein the log memory is a non-volatile memory device within the first device.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2011
From: SHEFFIELD, ROBERT L.
To: LSI CORPORATION
Reel/Frame 026957/0100 →
Continuity (1)
Related Publication 20130080828A1 · Mar 28, 2013