IP Library Granted Patent US 7,971,093
Granted Patent B1
US 7,971,093 · App. 12/015,280 · Granted Jun 28, 2011

Apparatus and method to proactively address hard disk drive inefficiency and failure

Assignee: Network Appliance, Inc.
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 7,971,093
App. No.
12/015,280
Granted
Jun 28, 2011
Kind
B1
Abstract

The input/output (I/O) performance of a hard disk drive in a mass storage computer system is evaluated to maintain efficiency by addressing I/O commands to sectors of the disk drive, evaluating the execution of the I/O commands to the sectors to obtain performance information for the sectors to which the I/O commands are addressed, comparing the performance information to a predetermined I/O performance criterion, and identifying any impaired sectors in which the performance information indicates less than the predetermined I/O performance criterion. Thereafter, further I/O commands to the impaired sectors are avoided.

Claims (100)

1. A method to evaluate input/output (I/O) performance of a hard disk drive in a mass storage computer system, and to maintain efficiency in executing I/O commands, the hard disk drive having multiple tracks and multiple sectors in each track, the method comprising:

addressing I/O commands to the sectors;

evaluating execution of the I/O commands to the sectors to obtain performance information for the sectors to which the I/O commands are addressed;

associating the performance information with the sectors to which the I/O commands are addressed;

comparing the performance information to a predetermined I/O performance criterion;

identifying any impaired sectors in which the performance information indicates less performance than the predetermined I/O performance criterion;

storing I/O completion times for the impaired sectors in a data table;

determining a range of sectors addressed by each I/O command;

accessing the data table of stored I/O completion times to obtain the I/O completion times for the range of sectors addressed by the I/O command;

predicting a completion time of the I/O command using the I/O completion times obtained from the data table;

dispatching the I/O command to the hard disk drive when the predicted completion time is less than a predetermined timeout; and

servicing the I/O command by an alternate process when the predicted completion time of the I/O command is not less than the predetermined timeout.

2. A method as defined in claim 1 , further comprising:

identifying further impaired sectors adjacent to the impaired sectors to which the I/O command is addressed.

3. A method as defined in claim 2 , further comprising:

dispatching supplemental I/O commands to sectors adjacent to the impaired sectors;

evaluating execution of the supplemental I/O commands to the adjacent sectors to obtain performance information for the adjacent sectors;

associating the performance information with the adjacent sectors to which the supplemental I/O commands are addressed;

comparing the performance information for the adjacent sectors to the predetermined I/O performance criterion; and

identifying further impaired adjacent sectors for which the performance information indicates less than the predetermined I/O performance criterion.

4. A method as defined in claim 3 , further comprising:

selecting the sectors adjacent to the impaired sectors as those sectors in a predetermined range of proximity to the impaired sectors.

5. A method as defined in claim 4 , further comprising:

selecting the predetermined range of proximity to the impaired sectors as a predetermined amount of sectors.

6. A method as defined in claim 3 , further comprising:

selecting the sectors adjacent to the impaired sectors as sectors on the same track as the impaired sectors.

7. A method as defined in claim 3 , further comprising:

selecting the sectors adjacent to the impaired sectors as sectors on tracks adjacent to the tracks containing the impaired sectors.

8. A method as defined in claim 3 , further comprising:

storing addresses of the impaired sectors in a data table; and

selecting the adjacent sectors from the data table which have addresses in a predetermined range of proximity to the impaired sectors.

9. A method as defined in claim 3 , further comprising:

identifying a bad patch of sectors formed by the impaired and further impaired sectors;

recognizing the bad patch of sectors as a source of degraded performance of the mass storage computer system; and

addressing I/O commands to sectors other than the bad patch of sectors.

10. A method as defined in claim 3 , further comprising:

retiring the hard disk drive from further use when the impaired sectors and the further impaired sectors occupy a predetermined portion of the hard disk drive.

11. A method as defined in claim 1 , wherein the servicing of the I/O command comprises one of either servicing the I/O command by reconstruction of the hard disk through a redundant array of independent disks or servicing the I/O command by a dirty region log.

12. A method as defined in claim 1 , further comprising:

measuring a time required to complete each I/O command, the measured time constituting an I/O completion time; and

establishing the performance information from the I/O completion times.

13. A method as defined in claim 12 , further comprising:

establishing the performance information as an average of a plurality of I/O completion times.

14. A method as defined in claim 12 , further comprising:

establishing the performance information as an average bandwidth resulting from the execution of a plurality of I/O commands.

15. A method as defined in claim 12 , further comprising:

using at least one scrub operation from which to measure at least one I/O completion time.

16. A method as defined in claim 1 , further comprising:

avoiding addressing I/O commands to any impaired sectors.

17. A method as defined in claim 1 , further comprising:

identifying a bad patch of sectors formed by the impaired sectors; and

addressing I/O commands to sectors other than the bad patch of sectors.

18. A method as defined in claim 1 , further comprising:

retiring the hard disk drive when the impaired sectors are dispersed over a predetermined portion of the hard disk drive.

19. A method to enhance input/output (I/O) performance of hard disk drives in a mass storage computer system, each hard disk drive having multiple tracks and multiple sectors in each track, comprising:

addressing I/O commands to sectors of the hard disk drives;

measuring a time required to complete each I/O command, the measured time constituting an I/O completion time;

identifying any sector as an impaired sector for which the I/O completion time for the I/O commands addressed to that sector exceed a predetermined I/O completion time performance criterion;

storing I/O completion times for impaired sectors in a data table;

determining a range of sectors addressed by a current I/O command;

determining from the data table of the stored I/O completion times if the range of sectors addressed by the current I/O command includes an impaired sector;

predicting a completion time of the current I/O command using the I/O completion times obtained from the data table;

dispatching the current I/O command to the hard disk drive when the predicted completion time is not greater than a predetermined timeout which defines an acceptable time limit for completing the current I/O command; and

servicing the current I/O command by an alternate process when the predicted completion time of the current I/O command exceeds the predetermined timeout.

20. A method as defined in claim 19 , wherein the servicing of the current I/O command comprises one of either servicing the I/O command by reconstruction of the hard disk through a redundant array of independent disks or servicing the command by a dirty region log.

21. A network file mass storage computer system, comprising:

a server which executes programmed instructions constituting a mass storage operating system;

a plurality of hard disks, each of the hard disks having multiple tracks and multiple sectors in each track;

a bus connecting the server to the plurality of hard disks by which to transfer information between the plurality of hard disks and the server;

a plurality of clients;

a computer network communication link connecting each of the clients to the server; and wherein:

the server executes the programmed instructions in response to I/O commands executed by the server to operatively:

address I/O commands to the sectors;

evaluate execution of the I/O commands to the addressed sectors to obtain performance information for the sectors to which the I/O commands are addressed;

associate the performance information with the sectors to which the I/O commands are addressed;

compare the performance information to a predetermined I/O performance criterion;

identify any impaired sectors in which the performance information is less than the predetermined I/O performance criterion;

measure a time required to complete each I/O command, the measured time constituting an I/O completion time;

identify any sector as an impaired sector for which the I/O completion time for the I/O commands addressed to that sector exceed a predetermined I/O completion time performance criterion;

store the I/O completion times for the impaired sectors in a data table;

determine a range of sectors addressed by each I/O command;

access the data table of the stored I/O completion times to obtain the I/O completion times for the range of sectors addressed by the I/O command;

predict a completion time of the I/O command using the I/O completion times obtained from the data table;

dispatch the I/O command to the hard disk drive when the predicted completion time does not exceed a predetermined timeout; and

service the I/O command by an alternate process when the predicted completion time of the I/O command is greater than the predetermined timeout.

22. A method of enhancing the performance of a hard disk drive, comprising:

predicting an I/O completion time for an I/O command which spans a plurality of sectors by utilizing previously obtained performance information associated with the plurality of sectors;

dispatching the I/O command to the hard disk drive when the predicted I/O completion time is less than a predetermined timeout; and

servicing the I/O command by an alternate process when the predicted I/O completion time exceeds the predetermined timeout.

23. A method as defined in claim 22 , further comprising:

obtaining the performance information associated with the plurality of sectors from previously obtained I/O completion time measurements.

24. A computer system comprising:

a memory which stores programmed instructions;

a processing unit which executes the programmed instructions;

a hard disk drive comprising a plurality of sectors for storing data; and wherein:

the processing unit executes the programmed instructions to operatively:

predict an I/O completion time for an I/O command which spans a plurality of sectors by utilizing previously obtained performance information associated with the plurality of sectors;

dispatch the I/O command to the hard disk drive when the predicted I/O completion time is less than a predetermined timeout; and

service the I/O command by an alternate process when the predicted completion time of the I/O command is greater than the predetermined timeout.

25. A computer system as defined in claim 24 , wherein the performance information associated with the plurality of sectors is obtained from previously obtained I/O completion time measurements.

Assignments (2)
CHANGE OF NAME Recorded Mar 7, 2025
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 070448/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2008
From: GOEL, ATUL; PHAN, CON; TAN, CHENG
To: NETWORK APPLIANCE, INC.
Reel/Frame 020660/0091 →