Patent Publication Number: US-8533300-B2

Title: Storage device, controller, and address management method

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-058487, filed on Mar. 16, 2011, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiment discussed herein is directed to a storage device, etc. 
     BACKGROUND 
     A SAS (Serial Attached SCSI) wide link is an input/output interface that connects an HBA (Host Bus Adapter) of a host to a storage device. A SAS wide link is a set of standards that allow a plurality of SASs, each assigned with the same SAS address, to operate as one logical port. A SAS wide link can fall into one of two categories: a static-address assigning type, in which an HBA assigns a SAS address statically; and a wide/narrow type, in which an HBA assigns a SAS address that is available for both a wide link and a narrow link. 
       FIG. 9A  is diagram that illustrates a static-address assigning HBA. As illustrated in  FIG. 9A , an HBA mounted on a host assigns a static SAS address A 0  to a wide link having four SASs. When an input/output request is sent to a storage device, the host outputs the SAS address A 0 , which is assigned by the HBA and is an address that is used for identifying the host, to a SAS switch (Expander). 
       FIG. 9B  is diagram that illustrates a wide/narrow HBA. As illustrated in  FIG. 9B , when in narrow link mode, an HBA mounted on a host assigns pre-assigned SAS addresses A 1  to A 4  to four SASs, respectively. When in wide link mode, the HBA mounted on the host assigns any one of the pre-assigned four SAS addresses A 1  to A 4  that are used in narrow link mode to the wide link. When an input/output request is sent to a storage device, the host outputs the SAS address that is assigned by the HBA to a SAS switch as an address that is used for identifying the host. Depending on the HBA, a SAS address that is assigned by the HBA can be changed as the result of an action, such as the detachment or attachment of a cable. 
     When a SAS address of an HBA is changed as the result of an action, such as the detachment or attachment of a cable, a problem occurs in that a storage device cannot respond to the changed SAS address. In other words, when a host uses a changed SAS address as an address that is used for identifying the host to send an input/output request to a storage device, the storage device cannot recognize the SAS address. 
     According to an aspect of the storage device of the present invention, even when an HBA address has been changed as the result of an action, such as the detachment or attachment of a cable, the storage device can still respond to the changed address. 
     SUMMARY 
     According to an aspect of an embodiment of the invention, a storage device that has a wide link in which any one of addresses that a server has is assigned to a plurality of connection ports that are connected to the server, the storage device includes: a detecting unit that detects a change in the state of any port of the connection ports; an address acquiring unit that acquires, when a change is detected by the detecting unit, addresses that are assigned to the connection ports; and an address management unit that manages, in accordance with the addresses acquired by the address acquiring unit and with identification information for identifying the connection ports, an address that the plurality of connection-ports-connected-server can possibly have. 
     The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a functional block diagram of the configuration of a storage device according to an embodiment; 
         FIG. 2  is a table that illustrates the data structure of the address management table according to the embodiment 
         FIG. 3  is a diagram that illustrates an example of address expectation; 
         FIG. 4  is a diagram that illustrates an example of physical address acquisition; 
         FIG. 5  is a flowchart of an address management process according to the embodiment; 
         FIG. 6  is a flowchart of an address expecting process according to the embodiment; 
         FIG. 7  is a flowchart of a physical-address acquiring process according to the embodiment; 
         FIG. 8  is a diagram that illustrates an example of the hardware configuration of a RAID controller according to the embodiment; 
         FIG. 9A  is diagram that illustrates a static-address assigning HBA; and 
         FIG. 9B  is diagram that illustrates a wide/narrow HBA. 
     
    
    
     DESCRIPTION OF EMBODIMENT(S) 
     Preferred embodiments of the present invention will be explained with reference to accompanying drawings. 
     In the following embodiments, a wide/narrow-type SAS (Serial Attached SCSI) wide link is used in a storage device. It should be noted that the present invention is not limited to the following embodiments. 
     Configuration of Storage Device According to an Embodiment 
       FIG. 1  is a functional block diagram of the configuration of a storage device according to an embodiment. As illustrated in  FIG. 1 , a storage device  1  includes a SAS switch  10 , a RAID controller  20 , and HDDs (Hard Disk Drives)  50 - 1  to  50 -n. The storage device  1  has a SAS wide link mounted thereon in which any one of SAS addresses that a given host of hosts  2 , which are higher-level devices of the storage device  1 , has is assigned to some physical ports (PHY: physical layer) of the SAS switch  10 . 
     The SAS switch  10  is an expander that relays input/output data between higher-level devices or the hosts  2  and the RAID controller  20 . The SAS switch  10  connects each of the hosts  2  to the RAID controller  20  by using the SAS wide link. The SAS switch  10  has a plurality of ports p (p- 1  to p-n) (n&gt;1). An HBA (Host Bus Adapter)  21  of each of the hosts  2  assigns any one of pre-assigned SAS addresses to the wide link. The assigned SAS address is assigned to some of the ports p (p 1  to pn) of the SAS switch  10 . For example, a SAS address that is assigned by the HBA  21  of a given host of the hosts  2  is assigned to each of the ports p- 1  to p-k (1&lt;k&lt;n) of the SAS switch  10 . 
     Upon receiving, from any of the hosts  2 , an input/output request that includes the SAS address that is assigned by the HBA  21 , the SAS switch  10  outputs the acquired input/output request to the RAID controller  20 . The RAID controller  20  identifies the host  2 , which is the requester of the input/output request, by the SAS address that is included in the input/output request. 
     When the state of a port p is changed, the SAS switch  10  sends a broadcast to the RAID controller  20 . The SAS switch  10  sends a predetermined broadcast, for example, a broadcast change primitive to the RAID controller  20  to notify that the state of the port p has been changed. The state of a port p is changed when, for example, a new cable is attached to the port p that is unused, i.e., a new HBA is added onto a SAS topology. The state of a port p is also changed when, for example, a cable is detached from the port p that is used, i.e., the HBA  21  performs SAS address reassignment. When the SAS switch  10  sends a broadcast to the RAID controller  20 , the RAID controller  20  performs a later-described address management process. 
     The RAID controller  20  includes a control unit  30  and a storage unit  40 . The control unit  30  includes a SAS control unit  31 , an HDD control unit  32 , a cache control unit  33 , and a maintenance/settings control unit  34 . The control unit  30  is, for example, an integrated circuit, such as an ASIC (Application Specific Integrated Circuit) and an FPGA (Field Programmable Gate Array), or an electric circuit, such as a CPU (Central Processing Unit) and an MPU (Micro Processing Unit). 
     The storage unit  40  includes an address management table  41 . The storage unit  40  is, for example, a semiconductor memory chip, such as a RAM (Random Access Memory) and a flash memory, or a storage device, such as a hard disk and an optical disk. The address management table  41  stores therein SAS addresses that can possibly be assigned to the ports (PHYs) p that are connected to the hosts  2  and also stores therein identifiers of the ports p. The configuration of the address management table  41  will be explained later. 
     The SAS control unit  31  manages SAS addresses that are used for identifying the hosts  2 , while controlling the SAS wide link via the SAS switch  10 . The SAS control unit  31  includes a change detecting unit  311 , an address acquiring unit  312 , an address expecting unit  313 , and a physical-address acquiring unit  314 . 
     The change detecting unit  311  detects a change in the state of a given port p that is included in the ports p of the SAS switch  10 . When, for example, a new cable is attached to an unused port p or a cable is detached from a used port p, the change detecting unit  311  detects a broadcast change primitive that has been received from the SAS switch  10 . 
     When the change detecting unit  311  detects a change in the state of a port p, the address acquiring unit  312  acquires SAS addresses that are assigned to the ports p. For example, when the change detecting unit  311  detects a broadcast, the address acquiring unit  312  performs a Discover process with the SAS switch  10 . The address acquiring unit  312  then acquires SAS addresses of all the SAS devices or the HBAs  21  (the hosts  2 ) on the SAS topology. The function of the Discover process is defined in the SAS-1.1 specifications. The Discover process has the function of collecting information indicative of a device that is connected to a port p. For example, the address acquiring unit  312  acquires the identifier of the HBA  21  that is connected to each of the ports p, the identifier of each of the ports p, the SAS address assigned to each of the ports p. 
     The address expecting unit  313  and the physical-address acquiring unit  314  manage, in accordance with the SAS addresses and the identifiers of the ports p acquired by the address acquiring unit  312 , SAS addresses that the hosts  2 , which are connected to some ports p, can possibly have. 
     When a SAS address acquired by the address acquiring unit  312  is assigned to an unused port p, the address expecting unit  313  expects, in accordance with the SAS address, consecutive SAS addresses that the host  2  can possibly have. In other words, when a new HBA  21  is detected at an unused port p, the address expecting unit  313  expects, in accordance with the SAS address that is assigned to the port p, consecutive SAS addresses that the host  2  can possibly have. 
     For example, the address expecting unit  313  determines, by using the address management table  41  stored in the storage unit  40 , whether the identifier of any port p that has a SAS address assigned therewith is stored in the address management table  41 . If it is determined that the identifier of a port p that has a SAS address assigned therewith is not stored in the address management table  41 , the HBA  21  (target HBA) that is connected to the port p is determined to be a new HBA. The address expecting unit  313  then calculates consecutive values of the SAS address that can possibly be assigned to the same HBA  21 . For example, the address expecting unit  313  manages, by using the address management table  41 ,  16  consecutive values (0000 to 1111) that correspond to the lower 4 bits of the SAS address as a group of the HBA  21 . Although, in the above, the address expecting unit  313  calculates 16 consecutive values that correspond to the lower 4 bits of a SAS address, the configuration is not limited thereto. It is allowable to change the number of consecutive values depending on the vender of the HBA  21  and the type of the HBA  21 . Moreover, for example, the address expecting unit  313  can be configured to receive the number of consecutive values as a user specified value. 
     When any unexpected SAS address that is assigned to a used port p is found in the SAS addresses acquired by the address acquiring unit  312 , the physical-address acquiring unit  314  acquires, via the SAS switch  10 , a plurality of SAS addresses physically assigned by the HBAs  21 . The physical-address acquiring unit  314  then manages the acquired SAS addresses by using the address management table  41 . An unexpected SAS address is a SAS address that is not included in the SAS addresses that are expected by the address expecting unit  313 . As described above, SAS addresses that are expected by the address expecting unit  313  are consecutive SAS addresses that the host  2  can possibly have. An unexpected SAS address is a SAS address that is not included in these addresses, i.e., the consecutive addresses. 
     If, for example, the address expecting unit  313  determines that the identifier of a port p that has the SAS address assigned therewith is stored in the address management table  41 , the physical-address acquiring unit  314  determines that the HBA  21  (target HBA) that is connected to the port p is not a new HBA. In other words, the physical-address acquiring unit  314  determines that the HBA  21  that is connected to the port p performs SAS address reassignment. The physical-address acquiring unit  314  then sets all the ports p assigned with the SAS address of the target HBA  21  to a quasi narrow link mode and then performs the Discover process sequentially. The physical-address acquiring unit  314  then acquires all the SAS addresses assigned to each of the ports p. The physical-address acquiring unit  314  manages all the acquired SAS addresses as a group of the HBA  21  by using the address management table  41 . 
     The HDD control unit  32  controls accesses to HDDs  50 - 1  to  50 -n. The cache control unit  33  controls caches that are used for accessing the HDDs  50 - 1  to  50 -n through the HDD control unit  32 . 
     The maintenance/settings control unit  34  maintains information stored in the address management table  41  to maintain SAS addresses that are used for identifying the hosts  2 . For example, the maintenance/settings control unit  34  acquires, via a setting screen displayed on a monitor, a correspondence relation between SAS addresses that can possibly be assigned to the ports p that are connected to the hosts  2  and the identifiers of the ports p and sets the address management table  41  in accordance with the acquired correspondence relation. 
     The data structure of the address management table  41  will be explained below with reference to  FIG. 2 .  FIG. 2  is a table that illustrates the data structure of the address management table according to the embodiment. As illustrated in  FIG. 2 , the address management table  41  stores therein, with respect to each of HBA numbers (indexes)  41   a , number of Phys  41   b , Phy numbers  41   c , and SAS addresses  41   d  in an associated manner. The identifiers of the HBAs  21  that are used for identifying the HBAs  21  (hosts) are stored in the HBA numbers (indexes)  41   a . The number of ports (Phys) of the HBA  21  is stored in the number of Phys  41   b . The identifiers of phys that are counted to the number indicated by the number of Phys  41   b  are stored in the Phy numbers  41   c . N or less SAS addresses are stored in the SAS addresses  41   d . N is, for example, 16, 32, or can be any value that is the maximum number of expectable SAS addresses. 
     The following is an example of the storage information based on the data structure of  FIG. 2  when the address expecting unit  313  expects addresses from a SAS address A 1  that is assigned by an HBA # 0  and stores the expected addresses in the address management table  41 . The HBA number  41   a  is “0”, the number of Phys  41   b  is “4”, the Phy numbers  41   c  are “0, 1, 2, and 3”, and the SAS addresses  41   d  are 16 consecutive values including “A 0 , A 1 , . . . , and Af”. The following is an example of the storage information when SAS addresses that are physically assigned by the HBA # 0  are stored by the physical-address acquiring unit  314  in the address management table  41 . The SAS addresses  41   d  are “A 1 , B 2 , C 3 , and D 4 ”. The HBA number  41   a , the number of Phys  41   b , and the Phy numbers  41   c  are the same as those included in the storage information stored by the address expecting unit  313 ; therefore, the same description is not repeated. 
     Example of Possible Address Calculation 
     An example of address expectation performed by the address expecting unit  313  will be explained below with reference to  FIG. 3 .  FIG. 3  is a diagram that illustrates an example of the address expectation. An HBA #A is tried to be connected to the SAS switch  10  through a wide link via the phys # 0  to # 3  of the SAS switch  10  and four cables. An HBA #B is currently connected to the SAS switch  10  through the wide link via the phys # 4  to # 7  of the SAS switch  10  and four cables. 
     As illustrated in  FIG. 3 , the new host or the HBA #A is connected to the Phys # 0  to # 3  of the SAS switch  10 . Then, the RAID controller  20  detects a broadcast received from the SAS switch  10  and detects that the state of a given Phy included in the Phys of the SAS switch  10  has been changed. The RAID controller  20  performs the Discover process with the SAS switch  10  and acquires SAS addresses of all the HBAs on the SAS topology. In this example, the RAID controller  20  acquires, with respect to the HBA #A, the SAS address A 1  that is assigned to the Phys # 0  to # 3  and, with respect to the HBA #B, the SAS address B 1  that is assigned to the Phys # 4  to # 7 . 
     Because the SAS address A 1  is assigned to the Phys # 0  to # 3  that are unused, the address expecting unit  313  of the RAID controller  20  determines that the HBA #A, which is connected to the Phys # 0  to # 3 , is a new HBA. The address expecting unit  313  then expects, by using the SAS address A 1 , consecutive SAS addresses that the HBA #A can possibly have. In this example, the address expecting unit  313  expects 16 consecutive values A 0  to Af that correspond to the lower 4 bits of the SAS address A 1 . After that, the address expecting unit  313  stores the 16 consecutive values A 0  to Af that are expected by using the SAS address A 1  in the address management table  41 . Therefore, even if the SAS address of the HBA #A is changed to any of the consecutive values later as the result of an action, such as the detachment or attachment of a cable, a storage device  1 A can respond to the changed SAS address by referring to the SAS addresses stored in the address management table  41 . 
     Because the SAS address B 1  is assigned to the used Phys # 4  to # 7  and no change is found, the address expecting unit  313  does not perform any process with respect to the SAS address B 1 . 
     Example of Physical Address Acquisition 
     An example of a physical address acquisition performed by the physical-address acquiring unit  314  will be explained below with reference to  FIG. 4 .  FIG. 4  is a diagram that illustrates an example of the physical address acquisition. In the example of  FIG. 4 , the HBA #A performs SAS address reassignment as the result of an action, such as the detachment or attachment of a cable, and therefore the SAS address of a used Phy is changed to an unexpected SAS address. 
     In the above situation, the RAID controller  20  sets all the Phys assigned with the SAS address of the HBA #A to a quasi narrow link mode and then performs the Discover process sequentially. The reason for setting the wide link to a quasi narrow link is to acquire the actually assigned SAS address from each Phy of the SAS switch  10  one by one. More particularly, the physical-address acquiring unit  314  sets all the Phys # 0  to # 3 , which are assigned with the SAS address of the HBA #A, to invalid (Disable) (s 1 ). 
     Subsequently, the physical-address acquiring unit  314  sets the first Phy # 0  to valid (Enable) (s 2 ). The physical-address acquiring unit  314  then performs the Discover process with the valid Phy # 0 , thereby acquiring a SAS address that is assigned to the Phy # 0  (s 3 ). After that, the physical-address acquiring unit  314  repeats the process to acquire SAS addresses that are assigned to the other Phys # 1  to # 3 . In this example, the physical-address acquiring unit  314  acquires SAS addresses A 1 , B 2 , C 3 , and D 4  from the Phys # 0  to # 3 , respectively. 
     When all the SAS addresses of the Phys (# 0  to # 3 ) are acquired, the physical-address acquiring unit  314  recreates the address management table  41  so that all the acquired SAS addresses are treated as a group of the HBA #A (s 4 ). In this example, the physical-address acquiring unit  314  recreates the address management table  41  so that expected consecutive SAS addresses A 0  to Af of the HBA #A are replaced with the SAS addresses A 1 , B 2 , C 3 , and D 4 . Therefore, even if the SAS address of the HBA #A is changed to any of the SAS addresses A 1 , B 2 , C 3 , and D 4  later as the result of an action, such as the detachment or attachment of a cable, a storage device  1 B can respond to the changed SAS address by referring to the SAS addresses stored in the address management table  41 . 
     Address Management Process According to the Embodiment 
     The address management process will be explained below with reference to  FIG. 5  according to the embodiment.  FIG. 5  is a flowchart of an address management process according to the embodiment. 
     Firstly, the change detecting unit  311  determines whether the state of any of the Phys of the SAS switch  10  has been changed (Step S 11 ). If it is determined that the state of any Phy has not been changed (Step S 11 ; No), the change detecting unit  311  repeats the determining process. 
     If it is determined that the state of any Phy has been changed (Step S 11 ; Yes), the address acquiring unit  312  performs the Discover process with the SAS switch  10  (Step S 12 ). As a result, the address acquiring unit  312  acquires SAS addresses of all the HBAs  21  on the SAS topology. 
     The address expecting unit  313  then determines whether a SAS address acquired by the address acquiring unit  312  is assigned to an unused Phy (Step S 13 ). In other words, the address expecting unit  313  determines whether a new HBA  21  is detected at an unused Phy. For example, the address expecting unit  313  determines, by using the address management table  41 , whether the identifier of any Phy that has a SAS address assigned therewith is stored in the address management table  41 . 
     If it is determined that a SAS address is assigned to an unused Phy (Step S 13 ; Yes), the address expecting unit  313  determines that the HBA  21  that is connected to the Phy is a new HBA. The address expecting unit  313  then performs the SAS-address expecting process by using the SAS address of the target HBA  21  that is acquired by the address acquiring unit  312  (Step S 14 ). 
     On the other hand, if it is determined that no SAS address is assigned to an unused Phy (Step S 13 ; No), the physical-address acquiring unit  314  determines whether a SAS address (that is assigned to a used Phy) has been changed to an unexpected address (Step S 15 ). In other words, the physical-address acquiring unit  314  determines whether a SAS address has been changed to a SAS address that is not included in the SAS addresses that are expected by the address expecting unit  313 . 
     If it is determines that a SAS address has been changed to a SAS address that is not included in the expected SAS addresses (Step S 15 ; Yes), the physical-address acquiring unit  314  performs a physical-address acquiring process to acquire the physical addresses of the target HBA  21  (Step S 16 ). On the other hand, if it is determined that no SAS address has been changed to a SAS address that is not included in the expected SAS addresses (Step S 15 ; No), i.e., it is determined that the change is included in the expectation, the physical-address acquiring unit  314  finishes the process. 
     Possible-Address Calculating Process According to the Embodiment 
     The process of S 14  of  FIG. 5  will be explained below with reference to  FIG. 6 .  FIG. 6  is a flowchart of an address expecting process according to the embodiment. 
     Firstly, the address expecting unit  313  calculates, by using the SAS address of the target HBA  21 , consecutive values that can possibly be assigned to the same HBA (Step S 21 ). For example, the address expecting unit  313  calculates 16 consecutive values (0000 to 1111) that correspond to the lower 4 bits of the SAS address of the target HBA  21 . 
     Then, the address expecting unit  313  adds the calculated SAS addresses to the address management table  41  in such a manner that they are associated with all the Phys of the target HBA  21  (Step S 22 ). 
     Physical-Address Acquiring Process According to the Embodiment 
     The process of S 16  of  FIG. 5  will be explained below with reference to  FIG. 7 .  FIG. 7  is a flowchart of a physical-address acquiring process according to the embodiment. 
     Firstly, the physical-address acquiring unit  314  deletes information about the target HBA  21  from the address management table  41  (Step S 31 ). Then, the physical-address acquiring unit  314  sets all the Phys assigned with the SAS address of the target HBA  21  to invalid (Disable) (Step S 32 ). For example, the physical-address acquiring unit  314  sets a Phy to invalid (Disable) or valid (Enable) by using a Phy control command based on the SMP (SAS Management Protocol). 
     Subsequently, the physical-address acquiring unit  314  sets one Phy to valid (Enable) (Step S 33 ). In other words, the physical-address acquiring unit  314  sets the Phys to a quasi narrow link mode and then connects the Phys to the SAS switch  10  one by one. The physical-address acquiring unit  314  then performs the Discover process with the valid Phy, thereby acquiring the SAS address that is assigned to the Phy (Step S 34 ). After that, the physical-address acquiring unit  314  adds both the acquired SAS address and the identifier of the Phy to the address management table  41  (Step S 35 ). 
     Subsequently, the physical-address acquiring unit  314  determines whether all the Phys assigned with the SAS address of the target HBA  21  have been selected (Step S 36 ). If it is determines that all the Phys have not been selected (Step S 36 ; No), the physical-address acquiring unit  314  goes to Step S 32  to select an unselected Phy. 
     On the other hand, if it is determines that all the Phys have been selected (Step S 36 ; Yes), the physical-address acquiring unit  314  sets all the Phys of the target HBA to valid (Enable) (Step S 37 ). In other words, the physical-address acquiring unit  314  switches the Phys from the quasi narrow link mode back to the wide link mode. 
     Example of Hardware Configuration of RAID Controller According to the Embodiment 
     An example of the hardware configuration of a RAID controller  100  used in the storage device  1  will be explained below according to the embodiment with reference to  FIG. 8 .  FIG. 8  illustrates an example of the hardware configuration of the RAID controller  100  according to the embodiment. 
     As illustrated in  FIG. 8 , the RAID controller  100  includes a processor  101 , a main memory  102 , a SAS control chip  103 , and an HDD control chip  104 . The processor  101 , the main memory  102 , the SAS control chip  103 , and the HDD control chip  104  are connected to each other via a system bus  105 . The SAS control chip  103  is connected to the SAS switch  10 . The HDD control chip  104  is connected to the HDDs  50 - 1  to  50 -n. 
     The main memory  102  stores therein a control process that has the same function as that of the control unit  30  illustrated in  FIG. 1 . The main memory  102  also stores therein management information that corresponds to the address management table  41  illustrated in  FIG. 1 . The processor  101  performs the control process by using the management information. 
     Effects Of The Embodiment 
     According to the above embodiment, the storage device  1  has a wide link in which any one of SAS addresses that a given host of the hosts  2  has is assigned to some of ports (Phys) that are connected to the host  2 . The storage device  1  then detects a change in the state of any of the Phys. When a change is detected, the storage device  1  acquires SAS addresses that are assigned to the Phys. Moreover, the storage device  1  manages, in accordance with the acquired SAS addresses and the identification information for identifying the Phys, SAS addresses that the host  2 , which is connected to some of the Phys, can possibly have. With this configuration, even if a SAS address of the wide link is changed, the storage device  1  can respond to the changed SAS address. In other words, even if a SAS address of the wide link is changed as the result of an action, such as the detachment or attachment of a cable, because the storage device  1  manages SAS addresses that the host  2  can possibly have, even after the SAS address is changed, it can respond to an input/output request received from the host  2 . 
     Moreover, according to the above embodiment, the storage device  1  has the address management table  41  that stores therein SAS addresses that can possibly be assigned to Phys that are connected to the host  2  and the identifiers of the respective Phys. If a SAS address that is acquired when a change is detected is assigned to an unused Phy, the storage device  1  expects, in accordance with the SAS address, consecutive SAS addresses that the host  2  can possibly have. The storage device  1  then stores the expected SAS addresses in the address management table  41 . With this configuration, if, for example, a given host of the hosts  2  is connected to a new Phy (unused Phy), the storage device  1  can manage consecutive values of the SAS addresses that the host  2  can possibly have as the defaults of the SAS address. Therefore, even if the SAS address of the wide link is changed to any of the consecutive values as the result of an action, such as the detachment or attachment of a cable, the storage device  1  can respond to the changed SAS address by using the managed SAS addresses. 
     Moreover, according to the above embodiment, when any unexpected SAS address that is assigned to a used Phy is found in the SAS addresses that are acquired when a change is detected, the storage device  1  acquires a SAS address that is physically assigned by the host  2  from each of the Phys that are assigned to the host  2 . The storage device  1  stores the acquired physical SAS addresses of the respective Phys in the address management table  41 . With this configuration, even if a SAS address of the wide link is changed as the result of an action, such as the detachment or attachment of a cable, because the storage device  1  manages SAS addresses to which the SAS address can be changed, it can respond to the changed SAS address. 
     Others 
     In the above embodiment, when an unexpected SAS address is assigned to a used Phy, the physical-address acquiring unit  314  acquires SAS addresses that are physically assigned by the HBA  21 . However, the configuration is not limited thereto. The physical-address acquiring unit  314  can be configured to acquire, when a changed SAS address is assigned to a used Phy, SAS addresses that are physically assigned by the HBA  21 . 
     Moreover, The constituent elements of the storage device  1  illustrated in the drawings need not be physically configured as illustrated. The constituent elements, as a whole or in part, can be separated or integrated based on an arbitrary unit either functionally or physically in accordance with various types of loads or use conditions. For example, the change detecting unit  311  and the address acquiring unit  312  can be integrated as one unit. Moreover, the address expecting unit  313  and the physical-address acquiring unit  314  can be integrated as one address management unit. The storage unit  40  can be an external device that is connected to the RAID controller  20  via a network. 
     Although, as illustrated in the accompanying drawings, the storage device  1  includes the SAS switch  10 , the SAS switch  10  can be excluded therefrom. If the storage device  1  is not included in the SAS switch  10 , the storage device  1  has the RAID controller  20  and the HDDs  50 - 1  to  50 -n and is connected to the SAS switch  10  by using a SAS wide link. 
     The process functions performed by the RAID controller  20  can be entirely or partially realized by a CPU (or a micro computer, such as an MPU and an MCU (Micro Controller Unit)) or realized as hardware by wired logic. The process functions performed by the RAID controller  20  can be entirely or partially realized by programs that are analyzed and executed by the CPU (or a micro computer, such as an MPU and an MCU (Micro Controller Unit)). 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.