Abstract:
According to an aspect of an embodiment, a disk-drive automatic recognition/setting apparatus for a disk system including a controller, a disk drive, and an expander attached to the controller, the disk drive, or another expander, provides an information obtaining requesting unit issuing a request for obtaining information regarding a device attached to each attachment port of the expander, an information obtaining unit obtaining the information requested, and a routing reset request transmitting unit determining based upon the information obtained, whether a routing method of the attachment port is correctly set, and, if the routing method is wrong, transmitting a reset request for correctly resetting the wrong routing method.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is related to and claims priority to Japanese patent application no. 2007-30338 filed on Feb. 9, 2007 in the Japan Patent Office, and incorporated by reference herein. 
     BACKGROUND 
     1. Field 
     The embodiments relate to disk-drive automatic recognition/setting apparatus and methods. 
     2. Description of the Related Art 
       FIG. 5  illustrates the related art. 
     A redundant array of independent (or inexpensive) disks (RAID) system including a plurality of hard disk drives (HDDs) with a serial attached small computer system interface (serial attached SCSI or SAS) interface generally uses expander devices for attaching the HDDs. As shown in  FIG. 5 , expanders are located between controllers (CM 0  and CM 1 ) for controlling the RAID system and disk enclosures (DE 00 , DE 01 , and DE 02 ) including HDDs. Expanders are used to set expanded DEs. 
     In a SAS environment, controllers (CMs), expanders, and HDDs form one port by attaching transmission/reception ports referred to as phys, thereby attaching the devices. This must be done by taking into consideration the setting of a routing method of each expander. There are three routing methods that can be used in expanders: direct routing, table routing, and subtractive routing. The routing method can be set for each expander phy. Direct routing is an access method for directly accessing an attached device (one-to-one attachment) according to a specified SAS address. Table routing is an access method in which SAS addresses of devices attached to an expander are stored as a plurality of tables, and, in response to a request for accessing the devices which is given by specifying the SAS addresses, reference is made to the tables, and access data and the like are distributed among the devices indicated by the SAS addresses. Subtractive routing is an access method in which, if an access-requested SAS address is not included in a routing table, its access data is transferred to a port attached to another expander. The Serial Attached SCSI-1.1 (SAS-1.1) Revision 10 defined by the American National Standards institute (ANSI) describes on page 48 that, as in expanders  10 ,  11 ,  20 , and  21  shown in  FIG. 5 , an expander attached at host side to another expander uses subtractive routing at host side and uses table routing at the opposite side. 
     Referring to  FIG. 5 , a port containing phys  00  to  03 , a port containing phys  08  to  0   n , and a port containing phys  04  to  07  of an expander  00  are each represented as “T”, which indicates that the ports are routed by table routing. A port containing phys  00  to  03  of an expander  10  is represented as “S”, which indicates that the port is routed by subtractive routing. A port containing phys  08  to  0   n  and a port containing phys  04  to  07  of the expander  10  are represented as “T”, which indicates that the ports are routed by table routing. The similar description applies to other portions. 
     SUMMARY 
     According to an aspect of an embodiment, a disk-drive automatic recognition/setting apparatus for a disk system including a controller, a disk drive, and an expander attached to the controller, the disk drive, or another expander, has an information obtaining requesting unit configured to issue a request for obtaining information regarding a device attached to each attachment port of the expander, an information obtaining unit configured to obtain the information requested, and a reset request transmitting unit configured to determine, on the basis of the information obtained, whether a routing method of the attachment port is correctly set, and, if the routing method is wrong, to transmit a reset request for correctly resetting the wrong routing method. 
     According to an aspect of an embodiment, a disk system including disk drives and one or more expanders attaching the disk drives, includes a controller discovering information regarding a device attached to each attachment port of each expander, detecting an error in a routing method of an attachment port of an expander, based upon the discovered device information for the expander, and according to the error detecting, resetting the routing method of the attachment port of the expander by transmitting to the expander a routing method reset command correctly setting the routing method of the attachment port of the expander. 
     These together with other aspects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a disk system according to an embodiment; 
         FIG. 2  illustrates the format of a discover response frame, according to an embodiment; 
         FIG. 3  is a flowchart of a process of checking and changing a routing method setting in the disk system according to an embodiment; 
         FIG. 4  illustrates the format of a phy control frame, according to an embodiment; 
         FIG. 5  is a block diagram of the related art. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     According to an embodiment, there is provided a scheme in which, when power of a RAID system is turned on, the routing setting of each expander phy is checked, and, if an error is detected in the routing setting, the setting is automatically changed by a controller CM. 
       FIG. 1  is a block diagram of a disk system according to an embodiment;  FIG. 2  illustrates the format of a discover response frame, according to an embodiment; and  FIG. 3  is a flowchart of a process of checking and changing the disk system routing method setting, according to an embodiment. 
     As shown in  FIG. 1 , a disk system including a controller CM 0 , disk enclosures DE 00 , DE 01 , and DE 02 , and expanders  00 ,  10 , and  20  is attached to a server via an external interface circuit  11  of the controller CM 0 . The controller CM 0  includes a RAID controller  10 . The RAID controller  10  includes a serial management protocol (SMP)-command issuing unit  12  and an SMP-command-response analyzing unit  13 . A memory  14  for storing information necessary for processing is attached to the RAID controller  10 . The expander  00  includes an SMP command response unit  15 . The expander  10  includes an SMP command response unit  16 . The expander  20  includes an SMP command response unit  17 . The SMP command response units  15 ,  16 , and  17  are configured to send responses to SMP messages transmitted from the RAID controller  10 . 
     When power is turned on, devices that are directly attached to each other (e.g., the controller CM 0  and the expander  00 , the expander  00  and disks in the disk enclosure DE 00 , and the expander  00  and the expander  01 ) perform initialization. By performing initialization, the controller CM 0  recognizes the presence of an expander device, performs a discover process on the expander  00 , and obtains information regarding a device(s) attached to the expander  00 . A discover command issued here employs SMP, which is a protocol used by a controller to manage an expander device. A discover function is defined in the SAS-1.1 standard and is the function of collecting information regarding a device attached to a port. The RAID controller  10  in the controller CM 0  issues discover commands for all phys  0  to n if the maximum number of expander phys is n. The SMP-command issuing unit  12  in the RAID controller  10  issues a discover request frame for an expander phy, and the corresponding expander checks the device attachment status of the phy and returns a discover response frame ( FIG. 2 ). 
       FIG. 2  illustrates the format of the discover response frame, according to an embodiment. 
     In the discover response frame shown in  FIG. 2 , the FUNCTION value is set to “10h”. This setting value indicates that the frame shown in  FIG. 2  is a discover response frame. The controller CM 0  obtains information, such as the SAS address of a device attached to each phy, which is set and sent in the discover response frame, thereby obtaining information regarding all devices attached to the controller CM 0 . For detailed description of fields of the frame shown in  FIG. 2 , see “Serial Attached SCSI-1.1 (SAS-1.1) Revision 10, 10.4.3.5 discover function (pp. 452 to 459)” as needed. 
     The SMP-command-response analyzing unit  13  in the controller CM 0  receives the discover response frame, which is shown in  FIG. 2 , and checks the ATTACHED DEVICE TYPE field (byte  12 , bits  4  to  6 ). If the attached device is an end device (CM 0  or HDD) or a new expander device (expander  10 ), it is checked whether the ROUTING ATTRIBUTE field (byte  44 , bits  0  to  3 ) indicates table routing. By performing the discover process on the expander  00 , the controller CM 0  recognizes that the expander  10  is attached to the expander  00 , and performs the discover process on the expander  10 . In this case, the SMP-command-response analyzing unit  13  checks the ATTACHED DEVICE ATTRIBUTE field (byte  12 , bits  4  to  6 ) and, if the attached device is an end device (HDD) or a new expander device (expander  20 ), it is checked whether the ROUTING ATTRIBUTE field (byte  44 , bits  0  to  3 ) indicates table routing. If the attached device is a known expander device (expander  00 ), it is checked whether the ROUTING ATTRIBUTE field (byte  44 , bits  0  to  3 ) field indicates subtractive routing. By performing the discover process on the expander  10 , the controller CM 0  recognizes that the expander  20  is attached to the expander  10 , and performs the discover process on the expander  20 . In this case, the controller CM 0  reads information contained in a discover response frame sent from the SMP command response unit  17 . If the ATTACHED DEVICE TYPE field (byte  12 , bits  4  to  6 ) indicates an end device (HDD), it is checked whether the ROUTING ATTRIBUTE field (byte  44 , bits  0  to  3 ) indicates table routing. If the ATTACHED DEVICE TYPE field (byte  12 , bits  4  to  6 ) indicates a known expander device (expander  10 ), it is checked whether the ROUTING ATTRIBUTE field (byte  44 , bits  0  to  3 ) is subtractive routing. Further, in the case where the next expanded DE is configured, as has been described above, if a device attached to an expander is an end device or a new expander detected by the discover process, it is checked whether the setting indicates table routing. If the attached device is a known expander device, it is checked whether the setting indicates subtractive routing. 
     In the case where the SMP-command-response analyzing unit  13  detects an error (in the case where the routing method is wrong), the discover sequence is temporarily stopped, and the SMP-command issuing unit  12  generates a command for changing the wrong routing method setting of the expander phy. To realize this changed routing method setting of the phy, for example, new functions are added to SMP. For example, using reserved fields in an SMP command frame, bits (eight bits) for the ID of the phy to be changed, bits (four bits) for changing the register setting of the ROUTING ATTRIBUTE field (0h for direct routing, 01b for table routing, and 02h for subtractive routing), and bits (eight bits) for counting the number of times the routing method has been changed are prepared. The SMP-command issuing unit  12  embeds information to be changed on the basis of the details of the error and issues an SMP command. Upon receipt of the command, the expander changes the setting of the phy and returns a response indicating successful termination or unsuccessful termination using an SMP response frame to the controller CM 0 . In the case of successful termination, the controller CM 0  resumes the discover process on the next phy. In the case of unsuccessful termination, the controller CM 0  reissues a command for changing the setting. If unsuccessful termination still occurs, the controller CM 0  disables the phy using a SMP phy control command so that the phy becomes unusable, thereby separating that phy such that the entire system will not be affected. 
       FIG. 3  is a flowchart of checking and changing the routing method setting on the disk system according to an embodiment. 
     The left half of  FIG. 3  shows processing performed by a controller CM, and the right half shows processing performed by an expander attached to an HDD. In S 10 , the controller CM requests the expander to perform a discover process on a phy. The expander checks the attachment status of the requested phy (S 11 ) and returns a discover response frame to the controller CM (S 12 ). In S 13 , the controller CM determines, from the discover response frame received, whether a device attached to the phy is an end device (disk or a device at a terminating end of a network to which the expander and the like are attached, namely, HDD). If the determination in S 13  is yes, the flow proceeds to S 15 . If the determination in S 13  is no, the controller CM determines in S 14  whether the attached device is an edge expander (expander attached to the middle of the network). If the determination in S 14  is no, it is determined in S 15  that the routing attribute should be table routing, and the flow proceeds to S 18 . If the determination in S 14  is yes, it is determined in S 16  whether the attached device is a known expander. If the determination in S 16  is no, the flow proceeds to S 15 . If the determination in S 16  is yes, the flow proceeds to S 17  in which it is determined that the routing attribute should be subtractive routing, and the flow proceeds to S 18 . Direct routing is used in the case where a controller and a disk are attached to each other in a one-to-one relationship and is not required for the setting of an expander. 
     In S 18 , the controller CM checks the routing setting in the discover response frame. If the determination in S 18  is OK, the flow proceeds to S 27 . If the determination in S 18  is not OK or no good, which is abbreviated as “NG”, the flow proceeds to S 19 , and an SMP command is generated. In S 20 , an SMP request command changing the routing attribute of the phy is issued. In S 21 , the routing attribute of the phy is changed. In S 22 , as a result of the change, an SMP response command is issued. In S 23 , the response is checked. If the determination in S 23  is NC for the first time, the flow returns to S 19 . If the determination in S 23  is NG for the second time, the flow proceeds to S 24 . If the determination in S 23  is OK, the flow proceeds to S 27 . In S 24 , a phy control command is issued. In S 25 , the phy is disabled so that the phy will not be used. In S 26 , an SMP response command is issued, and the flow proceeds to S 27 . 
     In S 27 , a request for performing a discover process on the next phy is issued, and the flow proceeds to S 28 . In S 28 , it is determined whether a discover process has been performed on phys of all expanders. If the determination in S 28  is no, the flow returns to S 10 . If the determination in S 28  is yes, the flow ends. 
       FIG. 4  illustrates the format of a phy control frame, according to an embodiment. 
     A method of disabling an expander phy will now be described. This is performed, for example, by inserting the description of an operation to be performed into byte  10  of the phy control frame format shown in  FIG. 4 . To disable a phy, byte  10  is set to “03h” (operation: disable). With this processing, the phy becomes unusable. The phy can be separated from the system without physically separating an HDD or an initiator. 
     The types of descriptions of operations that can be set in byte  10  of the phy control frame format shown in  FIG. 4  are summarized in the following Table 1, a detailed description of which is given in the description of various frame formats in “Serial Attached SCSI-1.1 (SAS-1.1) Revision 10, 10.4.3 SMP functions (pp. 442 to 475)”. 
     
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Code 
                 Operation 
                 Description 
               
               
                   
               
             
             
               
                 00h 
                 NOP 
                 No operation 
               
               
                 01h 
                 LINK 
                 If the specified phy is not a virtual phy, perform a link 
               
               
                   
                 RESET 
                 reset sequence on the specified phy and enable the 
               
               
                   
                   
                 specified phy. If the specified phy is a virtual phy, perform 
               
               
                   
                   
                 an internal reset and enable the specified phy. The SMP 
               
               
                   
                   
                 response shall be returned without waiting for the link reset 
               
               
                   
                   
                 to complete. 
               
               
                 02h 
                 HARD 
                 If the specified phy is not a virtual phy, perform a link reset 
               
               
                   
                 RESET 
                 sequence on the specified phy and enable the specified 
               
               
                   
                   
                 phy. If the attached phy is a SAS phy or an expander phy, 
               
               
                   
                   
                 the link reset sequence shall include a hard reset sequence. 
               
               
                   
                   
                 If the specified phy is a virtual phy, perform an internal reset 
               
               
                   
                   
                 and enable the specified phy. The SMP response shall be 
               
               
                   
                   
                 returned without waiting for the hard reset to complete. 
               
               
                 03h 
                 DISABLE 
                 Disable the specified phy. 
               
               
                 04h 
                 Reserved 
               
               
                 05h 
                 CLEAR 
                 Clear the error log counters for the specified phy. 
               
               
                   
                 ERROR LOG 
               
               
                 06h 
                 CLEAR 
                 Clear an affiliation from the STP initiator port with the 
               
               
                   
                 AFFILIATION 
                 same SAS address as the SMP initiator port that opened 
               
               
                   
                   
                 this SMP connection. 
               
               
                 07h 
                 TRANSMIT 
                 This function shall only be supported by phys in an 
               
               
                   
                 SATA PORT 
                 expander device. 
               
               
                   
                 SELECTION 
                 If the expander phy incorporates an STP/SATA 
               
               
                   
                 SIGNAL 
                 bridge and supports SATA port selectors, the phy shall 
               
               
                   
                   
                 transmit the SATA port selection signal which causes the 
               
               
                   
                   
                 SATA port selector to select the attached phy as the active 
               
               
                   
                   
                 host phy and make its other host phy inactive. 
               
               
                 All 
                 Reserved 
               
               
                 others 
               
               
                   
               
             
          
         
       
     
     By performing the foregoing processing, when power of a magnetic disk apparatus is turned on, the magnetic disk apparatus can start operating without making a user aware of the cable misconnections and the routing setting. The embodiments can be implemented in software and/or computing hardware. For example, the controller  10  (Control Module or CM) can be computing hardware (e.g., circuitry) and/or a programmed computer processor by executing instructions stored on a computer readable media (e.g., memory  14 ) for performing the embodiment operations. 
     The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.