The accompanying drawings, which are incorporated in and constitute a part of this specification exemplify the embodiments of the present invention and, together with the description, serve to explain and illustrate principles of the inventive technique. Specifically:
Embodiments of the present invention will be described below with reference to the drawings. The embodiments described below do not limit the scope of the patent claims of the present invention, and any features described in the embodiments can be combined arbitrarily.
In an open host, data is transferred according to a protocol such as TCP/IP (Transmission Control Protocol/Internet Protocol), FCP (Fibre Channel Protocol), iSCSI (internet Small Computer System Interface) protocol, for example. In a mainframe host, data is transferred according to a communication protocol such as FICON (Fibre Connection®), ESCON (Enterprise System Connection®), ACONARC (Advanced Connection Architecture®), FIBARC (Fibre Connection Architecture®), for example. A NAS (Network Attached Storage) function configured to accept data output requests designating a file name from the host 70 according to a protocol such as NFS (Network File System) may also be adopted.
The disk array unit 10 is equipped with a redundant control mechanism by employing a dual control unit configuration including two control units 20 and 30. The control unit 20 mainly includes an MPU 21, local storage LM (system storage) 22, a data controller (D-CTL) 23, cache storage (CM) 24, a Fibre Channel Protocol controller (F-CTL) 25, and an enclosure controller (E-CTL) 28. Reference numeral 30 designates the other control unit, which has the same configuration as the control unit 20.
Reference numeral 20A is a connection unit, controlled by the control unit 20, configured to relays I/O from the host 70 to the target storage device. This connection unit includes FC-ALs (Fibre Channel Arbitrated Loops) 61 and 62, PBCs (Port Bypass Circuits) 27, 101, and 102. The PBCs and FC-ALs constitute connection paths. Reference numeral 30A shows a connection unit on the control unit 30 side, which has the same configuration as the connection unit 20A.
The MPU 21 is a processor that controls the processing for data input/output (write access or read access, etc.) to/from a plurality of disk drives DRV0 to DRV14 in response to data input/output requests from the host 70, and it controls the data controller 23, the Fibre Channel Protocol controller 25 and the PBC 27 by executing a microprogram stored in the local storage 22.
The data controller 23, controlled by the MPU 21, controls data transfer between the Fibre Channel Protocol controller 25 and the cache storage 24. The cache storage 24 temporarily stores data sent/received to/from a front interface or a back interface via the Fibre Channel Protocol controller 25.
The Fibre Channel Protocol controller 25, as an initiator to issue an 1/O request to the FC-ALs as described below, has a function that interfaces the host 70 via a front interface connection Fibre Channel 41, and receives block access requests according to Fibre Channel protocol. Furthermore, the Fibre Channel Protocol controller 25 has functions that interface the disk drives DRV0 to DRV14 via a back interface connection Fibre Channel 42, and sends data input/output requests to the disk drives DRV0 to DRV14 according to a protocol specifying commands, etc, for controlling the disk drives DRV0 to DRV14.
The PBC 27 selects either or both of the two FC-ALs 61 and 62 as the connection destination for the back interface connection Fibre Channel 42, and performs connection switching.
The FC-AL 61 is connected in a loop to the even-numbered disk drives DRV0, DRV2 . . . DRV14 via the respective PBCs 82 provided on the FC-AL 61. The FC-AL 62 is connected in a loop to the odd-numbered disk drives DRV1, DRV3 . . . DRV13 via the respective PBCs 82 provided on the FC-AL 62.
The PBCs 82 are electronic switches to automatically open or close the FC-ALs 61 and 62 so that nodes can be added or deleted with a minimum of system operation errors. The PBCs 82 have a function that bypasses the Fibre Channel Protocol controller 25 and the disk drives DRV0 to DRV14 to electrically exclude them from the FC-AL 61 and 62.
For example, a PBC 82 can isolate a failed one of the disk drives DRV0 to DRV14 from the FC-ALs 61 and 62 to make communication between the remainder of the disk drives DRV0 to DRV14 and the Fibre Channel Protocol controller 25 possible. Also, the PBCs 82 make it possible to add or remove a disk drive to or from the disk drives DRV0 to DRV14 while maintaining the operation of the FC-ALs 61 and 62. For example, when a new disk drive DRV15 (not shown) is mounted, a PBC 82 has the disk drive DRV15 connected to the FC-ALs 61 and 62 to make communication between the disk drive DRV15 and the Fibre Channel Protocol controller 25 possible.
The enclosure controller (E-CTL) 28 controls SES (SCSI Enclosure Services) drives. Each SES drive has the SES (SCSI Enclosure Services) or ESI (Enclosure Services I/F) function set forth in the SCS13 (Small Computer System Interface 3) standards, and can activate the SES (SCSI Enclosure Services) or ESI (Enclosure Services I/F) function. An SES drive is a disk drive that can communicate with the enclosure controller 28 in addition to the FC-ALs 61 to 64. Here, SES drives are used for the two disk drives for each FC-AL (DRVs 0 and 2 or DRVs 1 and 3), but all the disk drives DRV0 to DRV14 may be SES drives.
Meanwhile, the control unit 30, which has the same configuration as the control unit 20, includes an MPU 31, local storage (LM) 32, a data controller (D-CTL) 33, cache storage (CM) 34, a Fibre Channel Protocol controller (FC-CTL) 35, the enclosure controller (E-CTL) 38, the front interface connection Fibre Channel 51, the back interface connection Fibre Channel 52. The connection unit 30A, which has the same configuration as the connection unit 20A, includes PBCs 37,103, and 104, and FC-ALs 63 and 64. The PBC 37 selects either or both of the two FC-ALs 63 and 64 as the connection destination for the back interface connection Fibre Channel 52, and performs connection switching.
The FC-AL 63 is connected in a loop to the even-numbered disk drives DRV0, DRV2 . . . DRV14 via respective PBCs 82. The FC-AL 64 is connected in a loop to the odd numbered disk drives DRV1, DRV3 . . . DRV13 via respective PBCs 82.
The data controller 23 and 33 are interconnected via a bus 81. Either data controller 23 (or 33) can transfer initiator control commands, I/O request data from a host, and cache data to the other data controller 33 (or 23) via the bus 81. For example, when both controllers 20 and 30 share access to an identical logical volume, write data or read data can be transferred between both controllers.
The control units 20 and 30 can control the disk drives DRV0, DRV1 . . . DRV14 at a defined RAID level (e.g., 0, 1, 5, or 6). In other words, a plurality of disk drives constitute a RAID group, and even if a failure occurs in one disk drive, the data for the failed disk drive can be reproduced from the parity data stored in another disk drive.
With RAID, a plurality of disk drives DRV0, DRV1, . . . DRV14 are managed as one group (hereinafter referred to as the “RAID group”). In the RAID group, logical volumes, which are units for access from the host 70, are defined. Each logical volume is provided with an identifier called a LUN (logical unit number).
A data I/O request from a host includes a logical block address for a logical volume where data is to be stored. The MPU 0 converts this logical block address into a port address on the initiator 0 side shown in
Meanwhile, it shows that no failure has occurred in access from the MPU 1 to the HDDs (failure status: 0), and the MPU 1 accesses the HDDs through the normal path via the initiator 1 (35). The initiators 0 and 1 monitor whether any failure has occurred in access to the HDDs by executing a program described below, and if a failure occurs in any of the control units, updates the path control table in
Next, the MPU 21 (31) determines whether or not the failure has been recovered from (606), and the MPU 21 (31), upon a negative determination, processes the input/output request from the host via the alternate path (612). Meanwhile, the MPU21 (31), upon an affirmative determination at step 606, detects the recovery from the failure and switches the path from the alternate path to the normal path (610).
Next, failure detection executed by a control unit will be explained with reference to the timing chart shown in
The initiator 0 issues a read command to the HDDs (S3). The initiator 0, when it has processed the read command normally, sends the read data to the MPU 0, and the MPU 0 returns the read data to the host, and then returns to the processing at SO (S4). In the processing at S3, the initiator 0 sends an error reply to the MPU 0 if it cannot read the data. After the receipt of the error reply, or if it does not receive a reply from the initiator 0 within a threshold value (time) for timer monitoring (S5), the MPU 0 increments the I/O retry count counter for the HDDs (S6). The initiator 0 then re-issues a read command to the HDDs (S7).
If the initiator 0 is able to read out the target data from the target HDDs, the MPU 0 returns to S0. Meanwhile, if there is no reply from the initiator 0 even after a certain reply count threshold value has been reached (S8), the MPU 0 determines that a failure has occurred (S9). The MPU 0 executes processing for recovering from the failure in the background (SbO). The MPU 0 switches the initiator, to which it issues I/O requests targeting the HDDs from a host, from the initiator 0 to the initiator 1 on the control unit 1 (CTL1) side (S11). At this time, the MPU 0 may issue all I/O requests to the initiator 1, and may also issue only I/O requests targeting storage devices subject to I/O errors to the initiator 1.
When the MPU 0 determines a failure as having occurred, it informs the MPU 1 of an HDD access failure having occurred (S9A). The initiator 0 issues a failure isolation command to the switch 0 or the HDDs (S10A), and notifies the MPU 1 of the progress of the failure isolation (S9B).
The initiator 0, after the issue of the failure isolation command, notifies the MPU 0 of any switch failure, cable deviation or the like, i.e., any I/O errors other than HDD failure. Before the host issues an I/O request, the MPU 0 switches the initiator, to which it issues I/O requests from the host, from the initiator 0 to the initiator 1 (S19A:
At S11, the MPU 0 also switches the initiator, to which it issues I/O requests from the host, from the initiator 0 to the initiator 1. The MPU 0 issues an I/O request to the initiator 1 and simultaneously starts monitor processing using a timer (S12). The initiator 1 issues a read command to the HDDs (S13). When the initiator 1 has processed this command normally, the MPU 0 returns to S0 (S14). Meanwhile, if the initiator 1 cannot process the read command normally, the MPU 0, after receipt of an error reply from the initiator 1 or if there is no reply from the initiator 1 even after a threshold time value for a timer monitoring has been reached (S15), increments the I/O retry count counter for the HDDs (S16). Next, the initiator 1 re-issues the read command to the HDDs.
If the MPU 0 determines that the retry count has exceeded the threshold value (S18), the initiators in both control units cannot access the target HDDs, and the MPU 0 determines that a failure has occurred in a target HDD, and blocks the failed HDD, and if there is a spare drive, performs correction copy of the data in the blocked drive to the spare drive. The MPU 0 gives a notice to an administrator, seeking replacement of the failed drive (S19).
The MPU 0 also identifies any failed part other than the HDDs, and informs the administrator thereof. The administrator replaces the failed part, removing the HDD access failure in CTL 0 (S20). Subsequently, the MPU 0 switches the initiator, to which it issues I/O requests targeting the HDDs, from the initiator 1 back to initiator 0 (S21). Even if the initiator to issue I/O to the HDDs is switched between the initiator 0 and the initiator 1 during a series of the above processes, there is no need to re-configure or reset HDD port address information for the initiators (
In the above-described embodiment, a controller in one control unit issues an I/O request from a host to an initiator in another control unit using an existing path provided between the controllers. However, the I/O request may be sent to the controller in the other control unit.
The aforementioned SES drives may monitor a switch circuit for any abnormality based on a back-end chassis monitor program. The MPU 0, triggered by a failure detection event, makes an inquiry the initiator about the part where the failure has occurred, and the initiator notifies the MPU 0 of the port information for the abnormal part in the switch circuit. The MPU0 executes block or correction processing as necessary. In the meantime, the MPU0 switches the initiator that issues I/O requests targeting HDDs from the initiator 0 to the initiator 1, and issues I/O requests to the initiator 1.
Number | Date | Country | Kind |
---|---|---|---|
2006-108620 | Apr 2006 | JP | national |