Abstract:
According to an aspect of an embodiment, a disk drive diagnosis apparatus is included in a RAID system in which a RAID control unit and a drive enclosure that encloses a disk drive are interconnected via a fabric switch. The apparatus comprises a virtual login processing unit configured to virtually execute a login process for a fabric switch of a disk drive and a control unit configured to notify the RAID control unit of a result of the virtual login process and disconnect from a connection line for the RAID control unit a disk drive that has not normally performed the virtual login process relative to the drive enclosure.

Description:
BACKGROUND OF THE INVENTION 
     1. Field 
     This apparatus relates to a disk drive diagnosis apparatus in a RAID system. 
     2. Description of the Related Art 
       FIGS. 8 and 9  are diagrams illustrating a conventional technique. 
     In  FIG. 8 , each disk drive  16  is housed in a device enclosure  11 , and exchanges data with external equipment via a RAID control unit  10 . Conventionally, the RAID control unit  10  and the disk drive  16  are interconnected by means of a fiber channel arbitrated loop (FC-AL)  15 . In disk drive diagnosis, before a disk drive  16  is connected to a loop of the FC-AL  15 , testing is performed as to whether or not loop initialization completes between the disk drive  16  and a port bypass circuit (PBC)  12 . If the test result is normal, the disk drive  16  is determined to be normal, and is connected to the loop. If loop initialization does not complete, the disk drive is determined to be faulty, and is disconnected from the loop. A constituent element for making such a loop, thereby checking the disk drive for normality, is the PBC  12 . At the same time, the RAID control unit  10  collectively obtains the diagnosis results of the disk drive  16  from the PBC  12 , thereby making it possible to recognize the presence of a faulty disk drive. 
     However, as shown in  FIG. 9 , in the case where the device enclosure  11  and the RAID control unit  10  are interconnected via a fabric switch  17 , the disk drive  16  requires procedures for login responsive to the fabric switch  17  such as FLOGI (login for assigning an address required for the fabric switch  17  to perform routing) or PLOGI (login for assigning a directory name to each disk drive) in addition to connection procedures by the FC-AL  15 . These logins are performed for a login server  20  and a directory server  19  that exist in a processor  18  of the fabric switch  17 . Therefore, in disk drive diagnosis, in addition to conventional loop initialization diagnosis, it is necessary to perform diagnosis for whether or not login is normally performed and to detect a faulty disk drive. However, this login process is performed without intervening the RAID control unit  10 . Thus, there has been only one method for the RAID control unit  10  to issue commands, respectively, to the disk drive  16  and make checks on one-by-one basis in order for the RAID control unit  10  to recognize the presence of a faulty disk drive, such as an incomplete login process (in order to perform login diagnosis). Assume that the RAID control unit  10  issues commands to the disk drive  16  and determines whether or not the disk drive  16  is normal. If a disk drive  16  fails in such a case, no response to the command is provided. Therefore, there is a possibility that the issued command remains in a buffer of a port of a fabric switch connected to the device enclosure, inclusive of the disk drive that has failed, disabling not only the disk drive that has failed but also the entire device enclosure. 
     SUMMARY 
     According to an aspect of an embodiment, a disk drive diagnosis apparatus is included in a RAID system in which a RAID control unit and a drive enclosure enclosing a disk drive are interconnected via a fabric switch. The apparatus includes a virtual login processing unit configured to virtually execute a login process for a fabric switch of a disk drive. The apparatus further includes a control unit configured to notify the RAID control unit of a result of the virtual login process and disconnects from a connection line for the RAID control unit a disk drive that has not normally performed the virtual login process relative to the drive enclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a view (No. 1) illustrating a first embodiment of the inventive apparatus; 
         FIGS. 2A-2B  are a view (No. 2) illustrating the first embodiment of the inventive apparatus; 
         FIG. 3  is a view (No. 3) illustrating the first embodiment of the inventive apparatus; 
         FIG. 4  is a view (No. 4) illustrating the first embodiment of the inventive apparatus; 
         FIG. 5  is a view (No. 1) illustrating a second embodiment of the inventive apparatus; 
         FIGS. 6A-6B  are a view (No. 2) illustrating the second embodiment of the inventive apparatus; 
         FIG. 7  is a view (No. 3) illustrating the second embodiment of the inventive apparatus; 
         FIG. 8  is a view (No. 1) illustrating a conventional technique; and 
         FIG. 9  is a view (No. 2) illustrating the conventional technique. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     In a first embodiment of the inventive apparatus, login diagnosis as to whether or not a disk drive has completed a fabric switch login process is not checked for each disk drive by means of a RAID control unit, but is performed by pre-test using a SES device that exists in a PBC. If a fault is found in the pretest using the SES device, the PBC disconnects the disk drive. Then, the PBC notifies the RAID control unit of the result. If the test result is normal, the disk drive is determined to be normal, and thus, after an entire loop connection, a login process relative to a fabric switch is correctly performed. 
     In order to perform login diagnosis by a device enclosure only, it is possible to perform diagnosis regardless of the type of fabric switch. In the case where the fabric switch has a similar function, the diagnosis by the device enclosure is not performed. 
     More specifically, the flow of the operation is as follows:
     1. Loop initialization diagnosis is performed.   2. When loop initialization diagnosis is OK, a loop for only a SES device and a disk drive is produced without making connection to an entire loop.   3. The SES device serves as a fabric loop (FL) port in place of a fabric switch, whereby a login process from the disk drive is received, and then, login diagnosis is performed.   4. When at least one of the following faults has been detected in the login process, the disk drive is determined to be faulty, and no connection to the entire loop is made:
       A disk drive that issues FLOGI, but does not issue PLOGI within a predetermined period of time thereafter   A disk drive that issues PLOGI, but does not issue RFT_ID within a predetermined period of time thereafter   A disk drive in which a fabric switch attempts to return a response to FLOGI, PLOGI, or RFT_ID (command for making registration to name server that provides directory service), but cannot receive a response thereto.   
       5. When diagnosis of all the disk drives has completed, the SES device stops serving as a fabric switch, and is connected to a fabric switch, whereby loop initialization is re-executed, and an ordinary connection mode is established.   

       FIGS. 1 to 4  are diagrams illustrating the first embodiment of the inventive apparatus. 
     In  FIG. 1 , a disk drive  16  forms a loop in its own input/output port, and then, performs loop initialization diagnosis for diagnosing whether or not its own operation is normal. In the case where loop initialization diagnosis is NG, the disk drive  16  is not connected to a FC-AL  15 . In the case where loop initialization diagnosis is OK, it is connected to the FC-AL  15 . At this time point, only a disk drive  16  of which the result of loop initialization diagnosis has been OK is connected to the FC-AL  15 , and a loop that is not connected is formed at a fabric switch  17 . A virtual login server and a virtual directory server, which perform login diagnosis in place of a login server  20  and a directory server  19  of the fabric switch  17 , are provided in a SES device  14   a  of a processor  13  connected to the FC-AL  15 . The virtual login server and the virtual directory server accept login from the disk drive  16  connected to the FC-AL  15 , and diagnoses as to whether or not each disk drive can be normally logged in. If, as a result of login diagnosis, a disk drive has existed which cannot be normally logged in, the disk drive  16  is disconnected from the FC-AL  15 . After login diagnosis of the virtual login server and the virtual directory server has completed, only a normal disk drive  16  is connected to the FC-AL  15 . Therefore, the FC-AL  15  is connected to the fabric switch  17  to cause each disk drive  16  to perform a login process. 
       FIG. 2  shows an entire flow of disk drive diagnosis in the first embodiment. 
     In  FIG. 2B , first, loop initialization diagnosis is performed on a disk drive basis in step S 10  (refer to  FIG. 3  for detail). In step S 11 , a loop initialization diagnosis result is included in a disk drive diagnosis result table. While the disk drive diagnosis result table is shown in  FIG. 2A  by way of example, the results of loop initialization diagnosis and login diagnosis are stored relative to numbers of disk drives. In step S 12 , login diagnosis is performed on a disk drive basis (refer to  FIG. 4  for detail). In step S 13 , the loop initialization diagnosis result is included in the disk drive diagnosis result table. In step S 14 , the disk drive and SES device of which login diagnosis results in the disk drive diagnosis result table is OK and a port concatenated to a fabric switch are connected to each other. In step S 15 , the RAID control unit is notified of the login diagnosis result, and then, the disk drive diagnosis process is terminated. 
       FIG. 3  shows a processing flow of loop initialization diagnosis. 
     In step S 17 , a loop for a disk drive only is produced, and LIP (Loop Initialization Primitive) is transmitted from a PBC to the disk drive. Then, the PBC waits for LIP to be returned from the disk drive. In step S 18 , it is determined whether or not LIP has been returned. In the case where the determination result is affirmative in step S 18 , it is determined that the loop initialization diagnosis result is OK and the loop initialization diagnosis is terminated in step S 19 . In the case where the determination result is negative in step S 18 , it is determined that the loop initialization diagnosis result is NG and the loop initialization diagnosis is terminated in step S 20 . 
       FIG. 4  shows a flow of login diagnosis on a disk drive basis by means of a SES device. 
     In step S 25 , a virtual login server and a virtual directory server of the SES device are run, and the SES device is defined as a FL port. In step S 26 , a result of loop initialization diagnosis is determined. When the result of loop initialization diagnosis is NG, the current step proceeds to step S 38 . When the result is OK, the current step proceeds to step S 27 . In step S 27 , a loop for the SES device and one disk drive that performs login diagnosis only is produced. In step S 28 , the SES device serves as a FL port, and starts loop initialization. At this time, this device requests the disk drive to login. In step S 29 , it is determined whether or not loop initialization has completed within a predetermined period of time. When the determination result is No, the current step proceeds to step S 38 . When the determination result is “Yes”, it is determined whether or not FLOGI has been received within a predetermined period of time after the completion of loop initialization in step S 30 . When the determination result is No, the current step proceeds to step S 38 . In step S 38 , it is determined that login diagnosis is NG, and the login diagnosis is terminated. When the determination result is “Yes”, the current step proceeds to step S 31 . In step S 31 , it is determined whether or not ACC (ACCept, so-called acknowledgement) responsive to FLOGI has been successfully transmitted to the disk drive. When ACC has not been successfully transmitted, the current step proceeds to step S 37 . When ACC has been successfully transmitted, it is determined whether or not PLOGI has been received within a predetermined period of time after ACC has been transmitted in step S 32 . When the determination result is No, the current step proceeds to step S 37 . When the determination result is “Yes”, it is determined whether or not ACC responsive to PLOGI has been successfully transmitted to the disk drive in step S 33 . When the determination result is No, the current step proceeds to step S 37 . When the determination result is “Yes”, it is determined whether or not RFT_ID has been received within a predetermined period of time after ACC has been transmitted in step S 34 . When the determination result is No, the current step proceeds to step S 37 . When the determination result is “Yes”, it is determined whether or not ACC responsive to RFT_ID has been successfully transmitted to the disk drive in step S 35 . When the determination result is No, the current step proceeds to step S 37 . In step S 37 , it is determined that login diagnosis is NG, and the login diagnosis is terminated. When the determination result is “Yes”, it is determined that login diagnosis is OK, and the login diagnosis is terminated. 
       FIG. 5  is a diagram illustrating a second embodiment of the inventive apparatus.  FIGS. 6A ,  6 B, and  7  are flowcharts illustrating a second embodiment of the inventive apparatus. 
     In the second embodiment of the inventive apparatus, a check is made by a fabric switch in place of the SES device of the first embodiment. A RAID control unit or a PBC is notified of a result, so that a disk drive is disconnected. 
     More specifically, at least one of the following disk drives is determined to be a faulty disk drive, and the faulty disk drive is notified:
         A disk drive that takes part in a loop, but does not issue FLOGI within a predetermined period of time   A disk drive that issues FLOGI, but does not issue PLOGI within a predetermined period of time thereafter   A disk dive that issues PLOGI, but does not issue RFT_ID within a predetermined period of time thereafter   A disk drive in which a fabric switch attempts to return a response to FLOGI, PLOGI, or RFT_ID, but the return cannot be received       

     In  FIG. 5 , first, a disk drive  16  forms a loop at its own port, and performs loop initialization diagnosis. If OK, the disk drive is connected to a FC-AL  15 . Next, the FC-AL  15  is connected to a fabric switch  17 . The disk drive  16  attempts to login relative to a login server  20  and a directory server  19  provided in a processor  18  of the fabric switch  17 . In the case where the disk drive can be normally logged in, the login server  20  and the directory server  19  determine that the login diagnosis result of the disk drive is OK. In the case where a disk drive cannot be normally logged in, it is determined that the disk drive is NG. Then, the login server  20  and the directory server  19  report the result of the login process to a RAID control unit  10 , notifies a PBC of the disk drive of which the diagnosis result is NG, and disconnects the disk drive from the FC-AL  15 . 
       FIGS. 6A and 6B  illustrate a flow of disk drive diagnosis of the second embodiment. 
     In  FIG. 6B , first, loop initialization diagnosis is performed on a disk drive basis in step S 40  (refer to  FIG. 3  for detail). In step S 41 , only a disk drive of which loop initialization diagnosis has been OK is connected to an entire loop (FC-AL  15 ). In step S 42 , a port to which the PBC and the fabric switch are to be connected is also connected. The PBC executes steps S 40  to S 42 . 
     Next, in step S 43 , a disk drive that exists on a loop (FC-AL  15 ) when loop initialization has completed is registered in a login diagnosis table, and diagnosis in process is entered in the diagnosis result field. An exemplary login diagnosis table is shown in  FIG. 6A . In the login diagnosis table, the number of a disk drive that exists in a loop and the diagnosis result are associated with each other to be registered. In step S 44 , login diagnosis of each disk drive is performed in parallel (refer to  FIG. 7  for detail). Next, in step S 45 , the RAID control unit is notified of the login diagnosis result. In step S 46 , only the disk drive of which the diagnosis result has been OK in the login diagnosis table is made transparent from the RAID control unit, and disk drive diagnosis is terminated. The fabric switch executes steps S 43  to S 46 . 
       FIG. 7  shows a flow of login diagnosis by means of the fabric switch. 
     First, in step S 50 , it is determined whether or not FLOGI has been received within a predetermined period of time after the completion of loop initialization. When the determination result is No, the current step proceeds to step S 57 . When the determination result is “Yes”, it is determined whether or not ACC responsive to FLOGI has been successfully transmitted to a disk drive in step S 51 . When the determination result is “No,” the current step proceeds to step S 57 . When the determination result is “Yes”, it is determined whether or not PLOGI has been received within a predetermined period of time after ACC has been transmitted in step S 52 . When the determination result is “No”, the current step proceeds to step S 57 . When the determination result is “Yes”, it is determined whether or not ACC responsive to PLOGI has been successfully transmitted to a disk drive in step S 53 . When the determination result is “No,” the current step proceeds to step S 57 . When the determination result is “Yes”, it is determined whether or not RFT_ID has been received within a predetermined period of time after ACC has been transmitted in step S 54 . When the determination result is “No”, the current step proceeds to step S 57 . When the determination result is “Yes”, it is determined whether or not ACC responsive to RFT_ID has been successfully transmitted to a disk drive in step S 55 . When the determination result is “No”, the current step proceeds to step S 57 . In step S 57 , it is determined that a login diagnosis result is NG, and the current step proceeds to step S 58 . When the determination result of step S 55  is “Yes”, it is determined that a login diagnosis result is OK in step S 56 , and the current step proceeds to step S 58 . In step S 58 , the diagnosis result is included in the login diagnosis result table, and login diagnosis on a disk drive basis is terminated. 
     While the processing steps shown in  FIG. 7  are performed on a disk drive basis, the fabric switch executes those steps for all the disk drives connected to the FC-AL.