IP Library › Granted Patent US 9,892,136
Granted Patent B2
US 9,892,136 · App. 14/932,557 · Granted Feb 13, 2018

Method and system for scrubbing data within a data storage subsystem

Inventor: Gregory T. Kishi (Oro Valley, AZ)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/30303G06F3/064G06F3/0619G06F3/0683G06F11/106G06F12/0866
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 9,892,136
App. No.
14/932,557
Granted
Feb 13, 2018
Kind
B2
Abstract

Various embodiments for scrubbing data within a data storage subsystem are disclosed. According to one embodiment, a method is provided for scrubbing data of a storage element within a data storage subsystem, the method comprising: selecting a storage element from the plurality of storage events; determining that a quantity of active data has reached a predetermined quantity threshold; and temporarily suspending data modifications on a portion of the selected storage element while maintaining read access to the selected storage element in response to the determination.

Claims (75)

1. A method for scrubbing data in a storage element within a data storage subsystem, by a processor device, the method comprising:

detecting an event in which utilization of the data storage subsystem has fallen below a dynamically adjusted threshold value;

selecting a storage element from a plurality of storage elements within the data storage sub system;

temporarily designating at least a portion of the selected storage element as “read-only” to temporarily suspend data modifications on the selected storage element while simultaneously maintaining read access to the selected storage element;

performing a scrubbing operation on the selected storage element after the temporary designation, wherein the scrubbing operation automatically initiates when a quantity of active data to be scrubbed reaches a predetermined quantity threshold, the predetermined quantity threshold of active data comprising a total threshold number of bytes or blocks corresponding to a greatest frequency of access thereof; and

in response to a completion of the scrubbing operation on the selected storage element, removing the temporary designation to resume data modifications on the selected storage element.

2. The method of claim 1 , further comprising:

performing data modifications on the storage element prior to selecting the storage elements; and

resuming said data modifications in response to completing the scrubbing operation.

3. The method of claim 2 , wherein the scrubbing operation comprises:

selecting a frame of the selected storage element;

identifying a frame check sequence (FCS) value of the selected frame;

performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

determining if the CRC value equals the FCS value, wherein:

if the CRC value and the FCS value are equal, selecting a next frame of the selected storage element, and

if the CRC value and the FCS value are not equal, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

4. The method of claim 3 , wherein he scrubbing operation further comprises:

selecting a frame of the selected storage element;

identifying a frame check sequence (FCS) value of the selected frame;

performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

dividing the CRC value into the FCS value to determine if a zero remainder is produced, wherein:

if the zero remainder is produced, selecting a next frame of the selected storage element, and

if a non-zero remainder is produced, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

5. The method of claim 1 , wherein the selecting comprises selecting the storage element including a largest number of active data.

6. The method of claim 1 , wherein the selecting comprises selecting a most-frequently accessed storage element prior to selecting one or more less frequently accessed storage elements.

7. A physical, non-transitory machine-readable medium having a computer program product for scrubbing data in a storage element within a data storage subsystem, the computer storage medium comprising:

computer code for detecting an event in which utilization of the data storage subsystem has fallen below a dynamically adjusted threshold value;

computer code for selecting a storage element from a plurality of storage elements within the data storage subsystem;

computer code for temporarily designating at least a portion of the selected storage element as “read-only” to temporarily suspend data modifications on the selected storage element while simultaneously maintaining read access to the selected storage element;

computer code for performing a scrubbing operation on the selected storage element after the temporary designation, wherein the scrubbing operation automatically initiates when a quantity of active data to be scrubbed reaches a predetermined quantity threshold, the predetermined quantity threshold of active data comprising a total threshold number of bytes or blocks corresponding to a greatest frequency of access thereof; and

computer code for, in response to a completion of the scrubbing operation on the selected storage element, removing the temporary designation to resume data modifications on the selected storage element.

8. The physical, non-transitory machine-readable medium of claim 7 , wherein the computer code for selecting comprises computer code for selecting the storage element including a largest number of active data.

9. The physical, non-transitory machine-readable medium of claim 8 , wherein the scrubbing operation comprises:

computer code for selecting a frame of the selected storage element;

computer code for identifying a frame check sequence (FCS) value of the selected frame;

computer code for performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

computer code for determining if the CRC value equals the FCS value, wherein:

if the CRC value and the FCS value are equal, selecting a next frame of the selected storage element, and

if the CRC value and the FCS value are not equal, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

10. The physical, non-transitory machine-readable medium of claim 9 , wherein the scrubbing operation further comprises:

computer code for selecting a frame of the selected storage element;

computer code for identifying a frame check sequence (FCS) value of the selected frame;

computer code for performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

computer code for dividing the CRC value into the FCS value to determine if a zero remainder is produced, wherein:

if the zero remainder is produced, selecting a next frame of the selected storage element, and

if a non-zero remainder is produced, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

11. The physical, non-transitory machine-readable medium of claim 7 , wherein the selecting comprises selecting a most-frequently accessed storage element prior to selecting one or more less frequently accessed storage elements.

12. A system for scrubbing data in a storage element within a data storage subsystem, the system comprising:

a plurality of storage elements;

a memory comprising a scrub module; and

a processing device coupled to the plurality of storage elements and to the memory, wherein the processing device, when executing the scrub module, is configured for:

detecting an event in which utilization of the data storage subsystem has fallen below a dynamically adjusted threshold value;

selecting a storage element from the plurality of storage elements within the data storage sub system;

temporarily designating at least a portion of the selected storage element as “read-only” to temporarily suspend data modifications on the selected storage element while simultaneously maintaining read access to the selected storage element;

performing a scrubbing operation on the selected storage element after the temporary designation, wherein the scrubbing operation automatically initiates when a quantity of active data to be scrubbed reaches a predetermined quantity threshold, the predetermined quantity threshold of active data comprising a total threshold number of bytes or blocks corresponding to a greatest frequency of access thereof; and

in response to a completion of the scrubbing operation on the selected storage element, removing the temporary designation to resume data modifications on the selected storage element.

13. The system of claim 12 , wherein the scrub module is further configured for:

performing data modifications on the storage element prior to selecting the storage elements; and

resuming said data modifications in response to completing the scrubbing operation.

14. The system of claim 13 , wherein initiating the scrubbing operation causes the processing device to perform the scrubbing operation by:

selecting a frame of the selected storage element;

identifying a frame check sequence (FCS) value of the selected frame;

performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

determining if the CRC value equals the FCS value, wherein:

if the CRC value and the FCS value are equal, selecting a next frame of the selected storage element, and

if the CRC value and the FCS value are not equal, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

15. The system of claim 14 , wherein initiating the scrubbing operation causes the processing device to further perform the scrubbing operation by:

selecting a frame of the selected storage element;

identifying a frame check sequence (FCS) value of the selected frame;

performing a cyclic redundancy check (CRC) on the selected frame to generate a CRC value; and

dividing the CRC value into the FCS value to determine if a zero remainder is produced, wherein:

if the zero remainder is produced, selecting a next frame of the selected storage element, and

if a non-zero remainder is produced, indicating an error on the selected frame and correcting the error by modifying an associated portion of metadata.

16. The system of claim 12 , wherein, when selecting, the processing device is configured for selecting the storage element including a largest number of active data.

17. The system of claim 12 , wherein, when selecting, the processing device is configured for selecting a most-frequently accessed storage element prior to selecting one or more less frequently accessed storage elements.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2015
From: KISHI, GREGORY T.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036962/0091 →
Continuity (3)
Continuation 14261839 · Apr 25, 2014
Continuation 11087027 · Mar 22, 2005
Related Publication 20160062824A1 · Mar 3, 2016