Software recognition of drive removal or insertion in a storage system
First Claim
1. In a disk array storage subsystem having a plurality of disk drives, a method for detecting removal of one of said disk drives comprising the steps of:
- detecting an error condition in I/O activity directed to said one of said disk drives wherein the step of detecting is performed within at least one software component operable within said subsystem;
issuing commands, in response to detection of said error condition, to elicit status from said one of said disk drives wherein the step of issuing commands is performed within at least one software component operable within said subsystem; and
determining that said one of said disk drives has been removed in response to status associated with said one of said disk drives wherein the step of determining is performed within at least one software component operable within said subsystem.
11 Assignments
0 Petitions
Accused Products
Abstract
A method for detection of hot-swap of disk drives in a storage subsystem devoid of special circuits for such detection and for buffering of bus signals. Typical prior designs utilize special circuits such as disk drive canisters for physically and electronically connecting the disk drives to the storage subsystem. These canisters provided electronic buffering to reduce or eliminate transient (noise and glitch) signals associated with hot-swap drive removal and insertion. In addition, such canisters provided special purpose circuits to inform storage subsystem control modules that a possible insertion or removal occurred by forcing a reset of the interconnection bus in response to detection of such transient signals. The present invention provides for such detection without need for such complex (e.g., costly) special purpose circuits. Specifically, for example in a RAID subsystem using a SCSI interface to interconnect control modules with disk drives, the methods of the present invention detect a possible removal of a disk drive either by periodically polling the SCSI IDs of the RAID subsystem for changes therein or by resetting the SCSI interface in response to errors in processing I/O activity to a removed disk drive. Other methods of the present invention detect insertion of disk drives, either added disk drives or re-inserted disk drives, by periodically polling the SCSI IDs of the RAID subsystem. The methods of the present invention thereby detect hot-swap disk drive insertion and removal without complex (costly) custom circuits therefor.
174 Citations
30 Claims
-
1. In a disk array storage subsystem having a plurality of disk drives, a method for detecting removal of one of said disk drives comprising the steps of:
- detecting an error condition in I/O activity directed to said one of said disk drives wherein the step of detecting is performed within at least one software component operable within said subsystem;
issuing commands, in response to detection of said error condition, to elicit status from said one of said disk drives wherein the step of issuing commands is performed within at least one software component operable within said subsystem; and
determining that said one of said disk drives has been removed in response to status associated with said one of said disk drives wherein the step of determining is performed within at least one software component operable within said subsystem. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
determining that a replacement disk drive has replaced said one of said disk drives in said storage subsystem.
- detecting an error condition in I/O activity directed to said one of said disk drives wherein the step of detecting is performed within at least one software component operable within said subsystem;
-
3. The method of claim 2 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives includes the steps of:
determining a new identity associated with said replacement disk drive; and
comparing said new identity with a previous identity associated with said one of said disk drives.
-
4. The method of claim 3 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives further includes the step of:
determining that said replacement disk drive is a re-inserted disk drive in response to a comparison result of equality between said new identity and said previous identity.
-
5. The method of claim 3 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives further includes the step of:
determining that said replacement disk drive is an added disk drive in response to a comparison result of inequality between said new identity and said previous identity.
-
6. The method of claim 2 further comprising the step of:
reconfiguring said storage subsystem to utilize said replacement disk drive in place of said one of said disk drives.
-
7. The method of claim 1 wherein the step of detecting an error condition includes the step of:
sensing a time-out in performing said I/O activity.
-
8. The method of claim 1 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of detecting an error condition includes the step of:
receiving a SCSI Unit Attention condition from said one of said disk drives.
-
9. The method of claim 1 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of detecting an error condition includes the step of:
sensing a SCSI Bus Reset on said SCSI interface.
-
10. The method of claim 1 wherein the step of issuing commands includes the steps of:
-
aborting commands previously sent to said disk drive and associated with said I/O activity; and
returning a failure status associated with said I/O activity to an initiator of said I/O activity.
-
-
11. The method of claim 1 further comprising the steps of:
-
periodically polling said disk drives to determine that new disk drives are inserted in aid storage subsystem; and
reconfiguring said storage subsystem to utilize said new disk drives in response to the determination that said new disk drives are inserted.
-
-
12. The method of claim 11 wherein the step of periodically polling includes the steps of:
-
requesting new identity information from each of said disk drives;
receiving requested new identity information for each of said disk drives presently in said storage subsystem;
comparing said new identity information to stored identity information previously received to newly identify inserted ones of said disk drives; and
replacing said stored identity information with said new identity information.
-
-
13. The method of claim 12 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of requesting new identity information includes the steps of:
-
a) issuing identification commands from said storage controller to a SCSI ID in said storage subsystem;
b) receiving at said storage controller a reply responsive to the issuance of said identification commands from said SCSI ID; and
c) repeating steps a-b above for each possible SCSI ID in said storage subsystem.
-
-
14. The method of claim 12 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of requesting new identity information includes the steps of:
-
a) issuing a Test Unit Ready SCSI command from said storage controller to a SCSI ID in said storage subsystem;
b) receiving at said storage controller a reply responsive to the issuance of said Test Unit Ready SCSI command from said SCSI ID;
c) issuing a Inquiry SCSI command from said storage controller to said SCSI ID in response to receipt of a Ready reply from said SCSI ID; and
d) repeating steps a-c above for each possible SCSI ID in said storage subsystem.
-
-
15. The method of claim 12 wherein said storage subsystem includes a storage controller connected to said disk drives, the method further comprising the steps of:
-
constructing unique identity information for at least one of said disk drives; and
storing the constructed unique identity information on said at least one of said disk drives, wherein the step of requesting new identity information includes the steps of;
a) issuing identification commands from said storage controller to retrieve the stored unique identity information from one of said at least one of said disk drives;
b) receiving at said storage controller a reply responsive to the issuance of said identification commands from said one of said at least one of said disk drives; and
c) repeating steps a-b above for each one of said at least one of said disk drives in said storage subsystem.
-
-
16. A computer readable storage medium tangibly embodying programmed instructions for performing a method for detecting removal of a disk drive in a disk array storage subsystem having a plurality of disk drives, the method comprising the steps of:
-
detecting an error condition in I/O activity directed to said one of said disk drives wherein the step of detecting is performed within at least one software component operable within said subsystem;
issuing commands, in response to detection of said error condition, to elicit status from said one of said disk drives wherein the step of issuing commands is performed within at least one software component operable within said subsystem; and
determining that said one of said disk drives has been removed in response to status associated with said one of said disk drives wherein the step of determining is performed within at least one software component operable within said subsystem. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
determining that a replacement disk drive has replaced said one of said disk drives in said storage subsystem.
-
-
18. The storage medium of claim 17 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives includes the steps of:
determining a new identity associated with said replacement disk drive; and
comparing said new identity with a previous identity associated with said one of said disk drives.
-
19. The storage medium of claim 18 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives further includes the step of:
determining that said replacement disk drive is a re-inserted disk drive in response to a comparison result of equality between said new identity and said previous identity.
-
20. The storage medium of claim 18 wherein the step of determining that said replacement disk drive has replaced said one of said disk drives further includes the step of:
determining that said replacement disk drive is an added disk drive in response to a comparison result of inequality between said new identity and said previous identity.
-
21. The storage medium of claim 17 wherein the method further comprises the step of:
reconfiguring said storage subsystem to utilize said replacement disk drive in place of said one of said disk drives.
-
22. The storage medium of claim 16 wherein the step of detecting an error condition includes the step of:
sensing a time-out in performing said I/O activity.
-
23. The storage medium of claim 16 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of detecting an error condition includes the step of:
receiving a SCSI Unit Attention condition from said one of said disk drives.
-
24. The storage medium of claim 16 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of detecting an error condition includes the step of:
sensing a SCSI Bus Reset on said SCSI interface.
-
25. The storage medium of claim 16 wherein the step of issuing commands includes the steps of:
-
aborting commands previously sent to said disk drive and associated with said I/O activity; and
returning a failure status associated with said I/O activity to an initiator of said I/O activity.
-
-
26. The storage medium of claim 16 wherein the method further comprises the steps of:
-
periodically polling said disk drives to determine that new disk drives are inserted in said storage subsystem; and
reconfiguring said storage subsystem to utilize said new disk drives in response to the determination that said new disk drives are inserted.
-
-
27. The storage medium of claim 26 wherein the step of periodically polling includes the steps of:
-
requesting new identity information from each of said disk drives;
receiving requested new identity information for each of said disk drives presently in said storage subsystem;
comparing said new identity information to stored identity information previously received to newly identify inserted ones of said disk drives; and
replacing said stored identity information with said new identity information.
-
-
28. The storage medium of claim 27 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of requesting new identity information includes the steps of:
-
a) issuing identification commands from said storage controller to a SCSI ID in said storage subsystem;
b) receiving at said storage controller a reply responsive to the issuance of said identification commands from said SCSI ID; and
c) repeating steps a-b above for each possible SCSI ID in said storage subsystem.
-
-
29. The storage medium of claim 27 wherein said storage subsystem includes a storage controller connected to said disk drives by a SCSI interface and wherein the step of requesting new identity information includes the steps of:
-
a) issuing a Test Unit Ready SCSI command from said storage controller to a SCSI ID in said storage subsystem;
b) receiving at said storage controller a reply responsive to the issuance of said Test Unit Ready SCSI command from said SCSI ID;
c) issuing a Inquiry SCSI command from said storage controller to said SCSI ID in response to receipt of a Ready reply from said SCSI ID; and
d) repeating steps a-c above for each possible SCSI ID in said storage subsystem.
-
-
30. The storage medium of claim 27 wherein said storage subsystem includes a storage controller connected to said disk drives and wherein the method further comprising the steps of:
-
constructing unique identity information for at least one of said disk drives; and
storing the constructed unique identity information on said at least one of said disk drives, wherein the step of requesting new identity information includes the steps of;
a) issuing identification commands from said storage controller to retrieve the stored unique identity information from one of said at least one of said disk drives;
b) receiving at said storage controller a reply responsive to the issuance of said identification commands from said one of said at least one of said disk drives; and
c) repeating steps a-b above for each one of said at least one of said disk drives in said storage subsystem.
-
Specification