Patent Publication Number: US-7917664-B2

Title: Storage apparatus, storage apparatus control method, and recording medium of storage apparatus control program

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to storage apparatuses, and, more particularly, to a technique for interconnecting a controller of a storage apparatus to each unit. 
     2. Description of the Related Art 
     Storage apparatuses are used to store or read out data on or from a memory such as a hard disk drive (HDD), and include a control unit for controlling the entire processing of the storage apparatus and a storage unit for storing data. Furthermore, storage apparatuses include a power supply unit, a fan unit, and a thermometer unit which are used to maintain the environment of the storage apparatus. 
     Protocols for interfaces of storage apparatuses include the SAS (Serial Attached SCSI) protocol. In the SAS protocol, an expander unit functions as a relay between a controller unit of a storage apparatus and each of many units. An expander unit is connected to a storage unit, a PSU (Power Supply Unit), a fan unit, and a thermometer unit, and acquires environmental information (status information) from each of the PSU, the fan unit, and the thermometer unit every predetermined point in time. If the expander unit detects a change in the environmental information of any one of these units, the expander unit transmits the detection result to a controller unit. The controller unit checks the state of a corresponding unit each time it receives a notification that an unusual change in environmental information has occurred from the expander unit compliant with the SAS protocol. For example, if there is a poor contact at a connector of a unit, an abnormal state and a normal state may be repeated in accordance with the vibration of a storage apparatus. 
     If the change in environmental information often occurs, the expander unit transmits a notification about the occurrence of the change to the controller unit each time the change occurs. The exchange of environmental information between the controller unit and the expander unit and the exchange of data between each storage unit and the controller unit which the storage apparatus performs so as to store or read out data in or from a corresponding storage unit are performed via the same transmission line. Accordingly, many exchanges of environmental information between the controller unit and the expander unit interfere with the transmission of data between the controller unit and the expander unit which the storage apparatus performs so as to store or read out data in or from a corresponding storage unit. 
     Known techniques are disclosed in Japanese Unexamined Patent Application Publication Nos. 9-508990 and 9-259050. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a storage apparatus capable of effectively transmitting data between an expander unit and a controller unit. 
     According to an embodiment of the present invention, there is provided the following storage apparatus. 
     A storage apparatus according to an embodiment of the present invention includes: a detection unit for detecting a state of the storage apparatus; a controller unit for performing processing in accordance with the detected state of the storage apparatus; and a relay unit for acquiring status information on a state of the storage apparatus from the detection unit, storing the acquired status information, and transmitting the stored status information to the controller unit upon receiving a status information acquisition request from the controller unit, the relay unit being disposed between the controller unit and the detection unit. 
     The relay unit included in the storage apparatus transmits information representing that the state of the storage apparatus has been changed to the controller unit if the relay unit has not yet transmitted the information to the controller unit. 
     The relay unit included in the storage apparatus transmits information representing that the state of the storage apparatus has been changed to the controller unit when the relay unit determines that there is a change from previously acquired status information on a state of the storage apparatus to the status information acquired from the detection unit. 
     The relay unit included in the storage apparatus has a flag for indicating whether the relay unit has already transmitted information representing that the state of the storage apparatus has been changed to the controller unit. 
     In the storage apparatus, the controller unit and the relay unit are connected to each other using the SAS protocol. 
     According to an embodiment of the present invention, the number of exchanges of environmental information between an expander unit and a controller unit can be reduced. As a result, a transmission capacity required for data transmission between the expander unit and the controller unit for data writing or data reading in or from a storage unit can be ensured. Consequently, there can be provided a storage apparatus capable of effectively transmitting data between an expander unit and a controller unit. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a storage system according to an embodiment of the present invention; 
         FIG. 2  is a block diagram of an expander unit; 
         FIG. 3  is a block diagram of a controller unit; 
         FIG. 4  is a diagram describing an environmental information database (DB) included in an expander unit; 
         FIG. 5  is a flowchart showing a process of acquiring environmental information of each unit and transmitting a notification that environmental information has been changed which is performed by an expander unit; 
         FIG. 6  is a flowchart showing a process which a controller unit performs after receiving from an expander unit a broadcast that is information representing that environmental information has been changed; 
         FIG. 7  is a flowchart showing a process of acquiring environmental information of each unit by performing polling which is performed by an expander unit; 
         FIG. 8  is a diagram showing a time series model of processing for transferring environmental information among an expander unit, a controller unit, and monitoring target units; 
         FIG. 9  is a block diagram of a storage apparatus in which a plurality of expanders are connected; 
         FIG. 10  is a diagram showing a connection table included in an expander unit; and 
         FIG. 11  is a diagram showing a connection table included in an expander unit. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       FIG. 1  is a block diagram of a storage system according to an embodiment of the present invention. A storage system according to an embodiment of the present invention includes a host computer  2 , a host computer  3 , and a storage apparatus  1 . 
     Each of the host computer  2  and the host computer  3  is used to manage the entire network, and performs computation processing, network management, and control processing. Data transmission between the host computer  2  and the storage apparatus  1  and data transmission between the host computer  3  and the storage apparatus  1  are performed in accordance with the SAS, iSCSI, or Fibre Channel protocol. 
     The storage apparatus  1  stores or reads out data in response to a command transmitted from the host computer  2  or the host computer  3 . In the storage apparatus  1  according to an embodiment of the present invention, the SAS (Serial Attached SCSI) protocol is used. The SAS protocol is a kind of the SCSI (Small Computer System Interface) protocol that defines a method of connecting a computer to a peripheral device, and enables SCSI serial communication by employing an interface compliant with the SATA (Serial Advanced Technology Attachment) protocol. The SATA protocol is a serial transfer version of the ATA (Advanced Technology Attachment) protocol that employs a parallel transfer method. The ATA protocol is one of formal IDE (Integrated Drive Electronics) protocols that define a method of connecting a computer to a hard disk. 
     It is important that the storage apparatus  1  can always transmit or receive data to or from the host computer  2  and the host computer  3 . Accordingly, it is required to prevent the storage apparatus  1  from shutting down when the failure of a certain unit included in the storage apparatus  1  occurs. For that reason, the storage apparatus  1  has a redundant configuration in which a plurality of units having the same function are included. In the storage apparatus  1  shown in  FIG. 1 , there is redundancy between the following units: a host adapter unit  4  and a host adapter unit  5 ; a controller unit  6  and a controller unit  7 ; an expander unit  8  and an expander unit  9 ; a power supply unit (PSU)  141  and a power supply unit (PSU)  142 ; a fan unit (FAN)  151  and a fan unit (FAN)  152 ; and a thermometer unit (TEMP)  161  and a thermometer unit (TEMP)  162 . According to this embodiment, controlling module is the controller unit. 
     The storage apparatus  1  includes the host adapter unit  4 , the host adapter unit  5 , the controller unit  6 , the controller unit  7 , the expander unit  8 , the expander unit  9 , storage units (Disks)  10  through  13 , the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 . These units perform their functions by electrically connecting to each other in the cabinet of the storage apparatus  1 . 
     The host adapter unit  4  and the host adapter unit  5 , which are included in the storage apparatus  1 , are interfaces used to connect the storage apparatus  1  to the host computer  2  and the host computer  3 . There is redundancy between the host computer  2  and the host computer  3  and between units having the same function included in the storage apparatus  1 . Each of the host computer  2  and the host computer  3  is connected to the host adapter unit  4  and the host adapter unit  5 . The host adapter unit  4  and the host adapter unit  5  are connected to the controller unit  6  and the controller unit  7 , respectively, in accordance with the SAS, iSCSI, or FC protocol. 
     The controller unit  6  and the controller unit  7 , which are included in the storage apparatus  1 , manage the entire state of the storage apparatus  1 , and control the entire operation of the storage apparatus  1 . More specifically, each of the controller unit  6  and the controller unit  7  performs processing for storing data transmitted from the host computer  2  or the host computer  3  in a storage unit included in the storage apparatus  1 , processing for reading out data stored in a storage unit in response to a data request command transmitted from the host computer  2  or the host computer  3  and transmitting the read data to the host computer  2  or the host computer  3 , and processing for monitoring the states of the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161  and the TEMP  162  which are included in the storage apparatus  1 . 
     The expander unit  8  functions as a relay between the controller unit  6  and each unit in the storage apparatus  1 . The expander unit  9  functions as a relay between the controller unit  7  and each unit in the storage apparatus  1 . Furthermore, the expander unit  8  functions as a piece of hardware compliant with the SAS protocol in the storage apparatus  1  and is used to add the number of drives which the controller unit  6  can manage. The expander unit  9  functions as a piece of hardware compliant with the SAS protocol in the storage apparatus  1  and is used to add the number of drives which the controller unit  7  can manage. Each of the expander unit  8  and the expander unit  9  is connected to many storage units. Furthermore, each of the expander unit  8  and the expander unit  9  is connected to the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 . According to this embodiment, relaying module is the expander unit. According to this embodiment, detecting modules are the PSU, the FAN, and the TEMP. 
     A unit whose environmental information will be acquired is referred to as a monitoring target unit. In this embodiment, the storage units  10  to  13 , the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162  are the monitoring target units. The environmental information denotes data of a present environmental state of a unit. 
     The storage units  10  to  13  are units for storing data. In this embodiment, for convenience of explanation, the storage units  10  to  13  are used. However, there are other storage units that are connected to each of the expander unit  8  and the expander unit  9  or are connected to each of the controller unit  6  and the controller unit  7  in the storage apparatus  1 . Each of the storage units  10  to  13  stores data transmitted from the host computer  2  or the host computer  3  to the storage apparatus  1 . In addition, each of the storage units  10  to  13  transmits corresponding data in response to a data reading command transmitted from the host computer  2  or the host computer  3 . The storage units  10  to  13  are, for example, hard disk devices. A command transmitted from the host computer  2  or the host computer  3  is transmitted to the controller unit  6  and the controller unit  7  via the host adapter unit  4  and the host adapter unit  5 , respectively, in the storage apparatus  1 . The controller unit  6  and the controller unit  7  transfer the command to a corresponding storage unit via the expander unit  8  and the expander unit  9 , respectively. The storage units  10  to  13  may have a function of outputting failure information of the storage unit as environmental information. 
     The PSU  141  and the PSU  142  are units for supplying power from an external power supply to each unit included in the storage apparatus  1 . Each of the PSU  141  and the PSU  142  has a function of outputting information on a voltage value thereof as environmental information. 
     The FAN  151  and the FAN  152  are units for ventilating the storage apparatus  1  to cool units included in the storage apparatus  1 . Heat occurring in the storage apparatus  1  reduces the processing power of each unit or causes the abnormal operation of each unit. In addition, each of the FAN  151  and the FAN  152  has a function of outputting information on the number of rotations thereof as environmental information. 
     The TEMP  161  and the TEMP  162  are units for detecting the temperature of the storage apparatus  1 , and have a function of outputting information on a detected temperature as environmental information. 
     The controller unit  6  and the controller unit  7  are connected to each other in accordance with the PCI Express (Peripheral Component Interconnect Express) standard that was designed as a serial transfer interface format to replace the PCI (Peripheral Component Interconnect) bus standard. The PCI bus standard is a standard for a data bus that connects units included in a computer. 
     The expander unit  8  and the expander unit  9  are connected to each other in accordance with the SAS protocol. The controller unit  6  and the expander unit  8  are connected to each other in accordance with the SAS protocol. The controller unit  7  and the expander unit  9  are connected to each other in accordance with the SAS protocol. The controller unit  6  has a port for connecting to the expander unit  8 . The controller unit  7  has a port for connecting to the expander unit  9 . A port is composed of a Phy that is an interface for data exchange between units. A physical link between units based on the SAS protocol is achieved using Phys of the units. Accordingly, a port included in each unit is composed of one or more Phys. A narrow port of a unit is composed of one Phy. A wide port of a unit is generally composed of four Phys. Each unit has a unique SAS address that is an identifier for specifying a unit. All Phys included in the same port share the SAS address of a unit connected to the port. Each unit that is connected to another unit in accordance with the SAS protocol stores the relationship between a Phy included in the unit and a unit connected to the Phy. However, in the case of a subtractive Phy among Phys included in a unit, the SAS address of a unit connected to the subtractive Phy is not stored. As described previously, the expander unit  8  and the expander unit  9  are connected to each other in accordance with the SAS protocol. A Phy of the expander unit  8  connected to the expander unit  9  and a Phy of the expander unit  9  connected to the expander unit  8  are subtractive Phys. The controller unit  6  and the expander unit  8  exchange data with each other via their wide ports for data storing in each of the storage units  10  to  13  or for data reading from each of the storage units  10  to  13 . The controller unit  7  and the expander unit  9  exchange data with each other via their wide ports for data storing in each of the storage units  10  to  13  or for data reading from each of the storage units  10  to  13 . Furthermore, the controller unit  6  and the expander unit  8  exchange pieces of environmental information of the storage units  10  to  13 , the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 . The controller unit  7  and the expander unit  9  similarly exchange pieces of environmental information of the storage units  10  to  13 , the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 . 
     Each of the expander unit  8  and the expander unit  9  is connected to the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162  using the I2C (Inter Integrated Circuit) communication. In the I2C communication, only two signal lines, a serial data line (SDA) and a serial clock line (SCL), are used as a bus. In the case of general connection based on the I2C communication, a master takes the initiative in communication and each slave responds to a communication request for the master. In this embodiment, the expander unit  8  and the expander unit  9  function as masters, and the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162  function as slaves. 
     Here, each of the expander unit  8  and the expander unit  9  may be connected to a plurality of expander units so as to increase the number of storage units in the storage apparatus  1 . In this case, the connections between each of the expander unit  8  and expander unit  9  and these expander units are established in accordance with the SAS protocol. There is redundancy between an expander unit connected to the expander unit  8  and an expander unit connected to the expander unit  9 . The connection between these expanders, between which there is redundancy, is established in accordance with the I2C protocol. Detailed description will be made with reference to  FIG. 9 . 
     Each of the storage units  10  to  13  has a multiport. The multiport of each of the storage units  10  to  13  is connected to the expander unit  8  and the expander unit  9  between which there is redundancy. 
     Next, a configuration of an expander unit will be described.  FIG. 2  is a block diagram of the expander unit  8 . The configurations of the expander unit  8  and the expander unit  9  are the same. Accordingly, here, the configuration of the expander unit  8  will be described. The expander unit  8  includes a CPU  81 , a RAM  82 , a ROM  83 , and a plurality of ports. 
     The CPU  81  manages all functions of the expander unit  8 . The RAM  82  is a storage area for storing a result of processing performed by the CPU  81 . The RAM  82  stores an environmental information database (DB)  84  that will be described later with reference to  FIG. 4 . Furthermore, the RAM  82  stores information about a flag A  851  that denotes whether information about the occurrence of a change in the environmental information stored in the environmental information DB  84  has already been transmitted to the controller unit  6 , and stores information about a flag B  852  that denotes whether the expander unit  8  has detected a change in the state of a monitoring target unit in one polling cycle. The ROM  83  is a storage area for storing firmware that is used to cause the CPU  81  to function as the expander unit  8 . The CPU  81 , the RAM  82 , and the ROM  83  are connected to each other via an internal bus, and exchange data or a command with each other. The CPU  81  decompresses the firmware stored on the ROM  83  onto the RAM  82 . The CPU  81  functions as executing means for causing the expander unit  8  to execute processes shown in flowcharts of  FIGS. 5 to 7 . 
     The ports of the expander unit  8  function as terminals each of which connects units included in the storage apparatus  1 . A wide port  87  is connected to the controller unit  6 . A wide port  88 , which is a subtractive port, is connected to the expander unit  9 . Narrow ports  90  are individually connected to the storage units  10  to  13 . An I2C port  91  is connected to the PSU  141 , PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162  via a switch  95 . Thus, if the expander unit  8  is connected to a unit such as the controller unit  6  or the expander unit  9  for which reliability of data transfer must be ensured, a wide port is used for the connection so as to improve safety of data transfer. 
     A PLD  86  (Programmable Logic Device) is a logic circuit IC in which a designer can form a logic circuit by creating a program. In this embodiment, the PLD  86  transmits a parameter to a monitoring target unit (the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , or the TEMP  162 ) so as to write the parameter in the register of the monitoring target unit. 
     The expander unit  8  and the PLD  86  are connected to each other via a local bus. The expander unit  8  transmits to the PLD  86  the address of the register of the PLD  86 , data to be written, and control information used to determine whether data is to be written in the register of the PLD  86  or is to be read out from the register of the PLD  86 . The PLD  86  is connected to the terminals of the monitoring target units (the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 ). When data is written in the register of the PLD  86 , the PLD  86  transmits the data written in the register thereof to a corresponding monitoring target unit. 
     Next, the configurations of the controller unit  6  and the controller unit  7  will be described.  FIG. 3  is a block diagram showing the configuration of the controller unit  6 . The configurations of the controller unit  6  and the controller unit  7  are the same. Accordingly, here, the configuration of the controller unit  6  will be described. The controller unit  6  includes a CPU  61 , a RAM  62 , a ROM  63 , and a plurality of ports. The CPU  61  manages all functions of the controller unit  6 . The RAM  62  is a storage area for storing a result of processing performed by the CPU  61 . The ROM  63  is a storage area for storing firmware that is used to cause the CPU  61  to function as a controller. The CPU  61 , the RAM  62 , and the ROM  63  are connected to each other via an internal bus, and exchange data or a command with each other. The CPU  61  decompresses the firmware stored on the ROM  63  onto the RAM  62 . The CPU  61  functions as executing means for causing the controller unit  6  to execute the processes shown in the flowcharts of  FIGS. 5 to 7 . 
     The ports of the controller unit  6  function as terminals each of which connects units included in the storage apparatus  1 . Each of the ports is composed of a Phy. A wide port  64  is connected to the host adapter unit  4 . A wide port  65  is connected to the expander unit  8 . A PCI Express port  67  is connected to the controller unit  7  in accordance with the PCI Express standard. 
     Next, the configurations of the PSU  141  and the PSU  142  will be described. Each of the PSU  141  and the PSU  142  has an I2C port for outputting a value in response to an environmental information acquisition request transmitted via the switch  95 . 
     Next, the configurations of the FAN  151  and the FAN  152  will be described. Each of the FAN  151  and the FAN  152  has a RAM used to set the number of rotations of a fan, a fan that rotates in accordance with a setting value, and an I2C port for outputting a value in response to an environmental information acquisition request transmitted via the switch  95 . 
     Next, the configurations of the TEMP  161  and the TEMP  162  will be described. Each of the TEMP  161  and the TEMP  162  has a temperature sensor for acquiring the temperature of the storage apparatus  1  and an I2C port for outputting a value in response to an environmental information acquisition request transmitted via the switch  95 . 
       FIG. 4  is a diagram describing the environmental information DB  84  included in the expander unit  8 . The configurations of the expander unit  8  and the expander unit  9  are the same. Accordingly, here, the environmental information DB  84  included in the expander unit  8  will be described. The environmental information DB  84  is a database for individually associating pieces of environmental information  842  acquired from environmental information acquisition target units  841  with the corresponding environmental information acquisition target units  841  and storing them. The expander unit  8  stores the latest environmental information acquired from each monitoring target unit in the environmental information DB  84 . 
     In this embodiment, only the latest environmental information acquired from each monitoring target unit is stored in the environmental information DB  84  so as to prevent the use of a large storage area of the RAM  82  included in the expander unit  8 . Accordingly, even if there is a change from the environmental information of a certain monitoring target unit which has been previously obtained by the expander unit  8  to the latest environmental information of the monitoring target unit, the controller unit  6  does not detect a change in the state of the monitoring target unit when a value representing the latest environmental information falls within a predetermined range. On the other hand, if the expander unit  8  has a large storage area for the environmental information DB  84 , or if the controller unit  6  or the controller unit  7  needs to know a unit whose environmental information has been changed with certainty, the environmental information DB  84  may store environmental information history. 
       FIG. 5  is a flowchart showing a process of acquiring environmental information of each unit which is performed by the expander unit  8 . The configurations of the expander unit  8  and the expander unit  9  are the same. Accordingly, here, an environmental information acquisition process performed by the expander unit  8  will be described. The expander unit  8  transmits an environmental information acquisition request to each of monitoring target units (the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 ) (step S 01 ). For example, the expander unit  8  periodically transmits the environmental information acquisition request to each of the monitoring target units. Upon receiving the environmental information acquisition request from the expander unit  8  via the switch  95 , each of the monitoring target units (the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 ) outputs a value representing the present environmental information thereof stored in its register to a port. 
     If the monitoring target units are the storage units  10  to  13  capable of transmitting environmental information, each of the storage units  10  to  13  transmits the environmental information thereof to the expander unit  8  and the expander unit  9  using the SCSI protocol. 
     The expander unit  8  acquires the environmental information output from each of the monitoring target units (step S 02 ). Subsequently, the expander unit  8  stores the environmental information acquired from each of the monitoring target units in the environmental information DB  84  (step S 03 ). 
     The expander unit  8  detects a change in the state of each of the monitoring target units on the basis of the environmental information acquired from each of the monitoring target units (step S 04 ). For example, the change in the state of a monitoring target unit is detected by determining whether a value representing the acquired environmental information of the monitoring target unit falls within a predetermined value range. If the value representing the environmental information of the monitoring target unit falls outside the predetermined value range, the expander unit  8  determines that the environmental information of the monitoring target unit has changed, that is, that the state of the monitoring target unit has changed. If there is no response from a certain monitoring target unit after a predetermined time has elapsed, the expander unit  8  determines that the state of the monitoring target unit has changed, because there is a possibility that a physical link between the expander unit  8  and the monitoring target unit is broken. 
     If the expander unit  8  determines that there is no change in the environmental information acquired from each of the monitoring target units (No in step S 05 ), the expander unit  8  ends the process. For example, if the next environmental information acquisition time comes, the expander unit  8  starts the process from step S 01  again. On the other hand, if the expander unit  8  detects a change in the state of a certain monitoring target unit (Yes in step S 05 ), the expander unit  8  determines whether it should transmit a notification about the change to the controller unit  6  (step S 06 ). For example, if it is determined that the temperature of the storage apparatus  1  is higher than a predetermined temperature on the basis of temperature information which the expander unit  8  has acquired from the TEMP  161 , the expander unit  8  can transmit a command for increasing the number of rotations of a fan to the FAN  151 . Alternatively, if it is determined that the temperature of the storage apparatus  1  is lower than a predetermined temperature on the basis of the temperature information which the expander unit  8  has acquired from the TEMP  161 , the expander unit  8  can transmit a command for reducing the number of rotations of a fan or a command for stopping rotation to the FAN  151 . The above-described cases do not correspond to serious failures of a monitoring target unit. Accordingly, the expander unit  8  is not required to transmit a notification about a change in the state of the monitoring target unit to the controller unit  6 . Accordingly, in this embodiment, the controller unit  6  is not notified of a predetermined change in environmental information. Consequently, there can be provided the storage apparatus  1  capable of reducing the amount of exchange of environmental information between the controller unit  6  and the expander unit  8 . 
     If the expander unit  8  determines that it is not required to transmit the notification about the change in the environmental information of the corresponding monitoring target unit (No in step S 07 ), the process ends. At that time, the expander unit  8  performs processing corresponding to the change in the environmental information upon the monitoring target unit. For example, the expander unit  8  controls the number of rotations of a fan included in the FAN  151  on the basis of temperature information acquired from the TEMP  161  included in the storage apparatus  1 . In this case, the expander unit  8  has, in advance, a database for associating the acquired environmental information of a certain monitoring target unit with a control parameter corresponding to a value representing the acquired environmental information and storing them. 
     If the expander unit  8  determines that it should transmit the notification about the environmental information change to the controller unit  6  (Yes in step S 07 ), the expander unit  8  checks whether the flag A  851  stored in the RAM  82  thereof is in an on or off state (step S 08 ). The flag A  851  is used to determine whether the expander unit  8  should transmit a notification about an environmental information change to the controller unit  6 . 
     If the flag A  851  is in the on state (Yes in step S 09 ), that means that the expander unit  8  has already transmitted the notification about an environmental information change to the controller unit  6 . Accordingly, the expander unit  8  ends the process without newly transmitting a notification about an environmental information change. The reason why the expander unit  8  ends the process without newly transmitting a notification about an environmental information change when the flag A  851  is in the on state is because the controller unit  6  accesses the environmental information DB  84  included in the expander unit  8  on the basis of the notification about an environmental information change which has been previously transmitted from the expander unit  8 . Thus, the number of exchanges of environmental information between the expander unit  8  and the controller unit  6  can be reduced. 
     On the other hand, if the flag A  851  is in the off state (No in step S 09 ), that means that the expander unit  8  has not yet transmitted a notification that environmental information has been changed to the controller unit  6 . Accordingly, the expander unit  8  sets the flag A  851  to on (step S 10 ), and transmits a notification that environmental information has been changed to the controller unit  6  (step S 11 ). The notification that environmental information has been changed which is transmitted from the expander unit  8  to the controller unit  6  in step S 11  is referred to as a broadcast. The broadcast is not a command for the controller unit  6 , and is a primitive. The primitive is null data that does not include a parameter. More specifically, a primitive is composed of a four-byte frame. The first byte of a primitive has a value specified by the SAS or SATA protocol, and each of the other three bytes is used to identify an event. An expander transmits a broadcast to another expander and a controller, which are connected to the expander in accordance with the SAS protocol, so as to notify that environmental information has been changed. However, the another expander does not transmit the broadcast received via a subtractive Phy to another unit. In this embodiment, the subtractive Phy of the expander unit  8  and the subtractive Phy of the expander unit  9  are connected to each other. Accordingly, the expander unit  9  does not transmit the broadcast received from the expander unit  8  to another unit. Similarly, the expander unit  8  does not transmit a broadcast received from the expander unit  9  to another unit. 
       FIG. 6  is a flowchart showing a process which the controller unit  6  performs after receiving a broadcast that is information representing that environmental information has been changed from the expander unit  8 . Upon receiving information representing that the environmental information of a certain monitoring target unit has been changed from the expander unit  8 , the controller unit  6  accesses the environmental information DB  84 . The controller unit  6  acquires the environmental information DB  84  included in the expander unit  8  (step S 21 ). The controller unit  6  performs processing corresponding to a value representing the change in the environmental information of the monitoring target unit (step S 22 ). The controller unit  6  has, in advance, pieces of information each corresponding to a value representing the amount of change in environmental information. For example, in accordance with a value representing the amount of change in environmental information, the controller unit  6  notifies an administrator for the storage apparatus  1  of a unit corresponding to the value via the host computer  2  or the host computer  3 . Alternatively, the controller unit  6  warns the administrator for the storage apparatus  1  of the change in the state of a corresponding unit and removes the corresponding unit from the storage apparatus  1 . 
     Upon acquiring the environmental information DB  84 , the controller unit  6  outputs an instruction for setting the flag A  851  to off to the expander unit  8  (step S 23 ). The expander unit  8  sets the flag A  851  stored in the RAM  82  thereof to off in response to the instruction transmitted from the controller unit  6 . Accordingly, if the expander unit  8  detects a change in environmental information after the flag A  851  has been set to off, it is determined in step S 09  shown in  FIG. 5  that the flag A  851  is in the off state (No in step S 09 ). Accordingly, the expander unit  8  notifies the controller unit  6  of information representing that environmental information has been changed. The expander unit  8  may be configured to set the flag A  851  to off after the controller unit  6  has received a command for acquiring the environmental information DB  84 . This eliminates the need for exchanging the command for setting the flag A  851  to off between the controller unit  6  and the expander unit  8 . Consequently, the number of exchanges of environmental information between the expander unit  8  and the controller unit  6  is smaller than that of the case in which a broadcast is transmitted to the controller unit  6  each time the change in environmental information is detected. 
     The controller unit  6  causes the controller unit  7  to share the environmental information DB  84  acquired from the expander unit  8  (step S 24 ). Consequently, when one of the expanders between which there is redundancy cannot detect a change in the environmental information of a certain monitoring target unit, if the other one of the expanders detects the change, both of controllers between which there is redundancy can identify the change. 
     Next, a case in which an expander unit acquires environmental information by performing polling will be described. The configurations of the expander unit  8  and the expander unit  9  are the same. Accordingly, here, a process performed by the expander unit  8  will be described. Polling means detection processing in which the expander unit  8  acquires pieces of environmental information from connection destinations of all ports thereof in accordance with a predetermined order.  FIG. 7  is a flowchart showing a process of acquiring environmental information of each unit by performing polling which is performed by the expander unit  8 . In the flowchart shown in  FIG. 7 , the expander unit  8  uses the flag B  852  that is a flag used to determine whether there is a monitoring target unit whose state change has been detected in one polling cycle. In one polling cycle, detection processing is performed upon all monitoring target units. For example, if the expander unit  8  detects a change in the state of a certain monitoring target unit on the basis of the environmental information acquired from the monitoring target unit, the expander unit  8  sets the flag B  852  to on. 
     The expander unit  8  starts polling at regular intervals (step S 31 ). The expander unit  8  transmits an environmental information acquisition request to each of monitoring target units (the PSU  141 , the PSU  142 , the FAN  151 , the FAN  152 , the TEMP  161 , and the TEMP  162 ) (step S 32 ). The expander unit  8  acquires environmental information output from each of the monitoring target units (step S 33 ). The expander unit  8  stores the environmental information acquired from each of the monitoring target units in the environmental information DB  84  (step S 34 ). The expander unit  8  detects a change in the state of each of the monitoring target units on the basis of the environmental information acquired from each of the monitoring target units (step S 35 ). 
     If the expander unit  8  detects a change in the state of a certain monitoring target unit (Yes in step S 36 ), the expander unit  8  sets the flag B  852  to on (step S 37 ). If the one polling cycle has not yet elapsed (No in step S 38 ), the expander unit  8  repeats the process from step S 32  until the one polling cycle has elapsed. On the other hand, if the one polling cycle has elapsed (Yes in step S 38 ), the expander unit  8  checks the flag B  852  (step S 39 ). If the flag B  852  is in an on state at that time, that means that the expander unit  8  has acquired from at least one or more monitoring target units connected thereto a response indicating that the state of a corresponding monitoring target unit has been changed. 
     If the flag B  852  is in the on state (Yes in step S 39 ), the expander unit  8  checks whether the flag A  851  is in the on or off state (step S 40 ). If the flag A  851  is in the on state (Yes in step S 41 ), the expander unit  8  ends the process without notifying the controller unit  6  of information representing that the environmental information of a corresponding monitoring target unit has been changed. On the other hand, if the flag A  851  is in the off state (No in step S 41 ), the expander unit  8  sets the flag A  851  to on (step S 42 ) and notifies the controller unit  6  of the information representing that the environmental information of the corresponding monitoring target unit has been changed (step S 43 ). Subsequently, the expander unit  8  sets the flag B  852  to off (step S 44 ), and performs the process from step S 31  when the next polling cycle is started. 
     The expander unit  8  does not transmit information representing that the environmental information of a certain monitoring target unit has been changed to the controller unit  6  during polling. After the polling has been completed, the expander unit  8  transmits a broadcast that is information representing that the environmental information of a certain monitoring target unit has been changed to the controller unit  6 . Consequently, the number of data exchanges between the expander unit  8  and the controller unit  6  can be further reduced. For example, it is assumed that the expander unit  8  detects a change in the environmental information of a first monitoring target unit in a first polling cycle. The expander unit  8  transmits a broadcast that is information representing that the environmental information has been changed to the controller unit  6 . The controller unit  6  accesses the expander unit  8  on the basis of the received information. Subsequently, the flag A  851  is set to off. Here, if the expander unit  8  detects a change in the environmental information of a second monitoring target unit in the first polling cycle, the expander unit  8  transmits a broadcast to the controller unit  6  again. However, since the time required for one polling cycle is short, it is not required that data exchange between the controller unit  6  and the expander unit  8  be performed on a monitoring target unit-by-monitoring target unit basis. Accordingly, even if the expander unit  8  detects changes in the environmental information of a plurality of monitoring target units in one polling cycle, the expander unit  8  can notify the controller unit  6  of the detection results by transmitting a broadcast to the controller unit  6  only once. Consequently, the number of exchanges of environmental information between the controller unit  6  and the expander unit  8  can be reduced. 
       FIG. 8  is a diagram showing a time series model of processing for transferring environmental information among the expander unit  8 , the controller unit  6 , and monitoring target units. In  FIG. 8 , a horizontal direction denotes the time passage in each of the expander unit  8 , the controller unit  6 , and monitoring target units, and a vertical direction denotes the transfer of environmental information among the expander unit  8 , the controller unit  6 , and the monitoring target units. 
     The expander unit  8  transfers an environmental information acquisition request to a unit a (a 1 ). The unit a transfers the environmental information thereof to the expander unit  8  (a 2 ). The expander unit  8  updates the environmental information DB  84  using the acquired environmental information. Subsequently, the expander unit  8  determines whether there is a change from the previously acquired environmental information of the unit a to the latest environmental information of the unit a (a 3 ). If there is a change, the expander unit  8  checks the flag A  851 . If the flag A  851  is in the off state, the expander unit  8  transfers a notification about the change in the environmental information to the controller unit  6  (a 4 ). Subsequently, the expander unit  8  sets the flag A  851  to on. 
     The expander unit  8  transfers an environmental information acquisition request to the unit a (a 5 ). The unit a transfers the environmental information thereof to the expander unit  8  (a 6 ). The expander unit  8  updates the environmental information DB  84  using the acquired environmental information. Subsequently, the expander unit  8  determines whether the amount of change between the previously acquired environmental information of the unit a and the latest environmental information of the unit a is equal to or larger than a predetermined threshold value (a 7 ). The threshold value is set by a designer. If the amount of change in the environmental information is equal to or larger than the threshold value, the expander unit  8  checks the flag A  851 . Here, since the expander unit  8  has already transmitted the notification about the change in environmental information to the controller unit  6  in a 4 , the flag A  851  is in the on state. Accordingly, the expander unit  8  does not transmit a notification about the change in environmental information to the controller unit  6 . 
     Subsequently, the expander unit  8  transfers an environmental information acquisition request to another monitoring target unit b included in the storage apparatus  1  (b 1 ). The unit b transfers the environmental information thereof to the expander unit  8  (b 2 ). The expander unit  8  updates the environmental information DB  84  using the acquired environmental information. Subsequently, the expander unit  8  determines whether the amount of change between the previously acquired environmental information of the unit b and the latest environmental information of the unit b is equal to or larger than a predetermined threshold value (b 3 ). The threshold value is set by a designer. If the amount of change in the environmental information is equal to or larger than the threshold value, the expander unit  8  checks the flag A  851 . Here, the expander unit  8  has already transmitted the notification about the change in environmental information to the controller unit  6  in a 4 . Accordingly, the expander unit  8  checks that the flag A  851  is in the on state, and does not transmit a notification about the change in environmental information to the controller unit  6 . 
     Subsequently, the controller unit  6  accesses the environmental information DB  84  on the basis of the notification about the change in environmental information which has been acquired from the expander unit  8  in a 4  (c 1 ). The controller unit  6  acquires the environmental information DB  84  (c 2 ), extracts the monitoring target unit whose environmental information has been changed, and performs processing corresponding to the change (c 3 ). If the expander unit  8  checks that the controller unit  6  has accessed the environmental information DB  84 , the expander unit  8  sets the flag A  851  to off (c 4 ). On the other hand, the controller unit  6  transmits the result of processing performed in c 3  via the expander unit  8  (c 5 ) to the corresponding monitoring target unit (c 6 ). 
     Subsequently, the expander unit  8  transfers an environmental information acquisition request to another monitoring target unit d included in the storage apparatus  1  (d 1 ). The unit d transfers the environmental information thereof to the expander unit  8  (d 2 ). The expander unit  8  updates the environmental information DB  84  using the acquired environmental information. Subsequently, the expander unit  8  determines whether the amount of change between the previously acquired environmental information of the unit d and the latest environmental information of the unit d is equal to or larger than a predetermined threshold value (d 3 ). The threshold value is set by a designer. If the amount of change in the environmental information is equal to or larger than the threshold value, the expander unit  8  checks the flag A  851 . If the flag A  851  is in the off state, the expander unit  8  transfers a notification about the change in environmental information to the controller unit  6  (d 4 ). Subsequently, the expander unit  8  sets the flag A  851  to on. 
     Next, processing performed in a case in which a plurality of expanders are connected will be described.  FIG. 9  is a block diagram of the storage apparatus  1  in which a plurality of expanders are connected. 
     The storage apparatus  1  stores data in storage units included therein using controllers. The controllers are included in a CE (Controller Enclosure)  100 . The storage apparatus  1  can increase the storage capacity thereof by adding a storage unit. Each of a DE (Device Enclosure)  101  and a DE (Device Enclosure)  102 , which are cabinets used to add storage units, does not include a controller, and includes monitoring target units such as expander units, storage units, PSUs, FANs, and TEMPs. 
     The expander units included in the storage apparatus  1  shown in  FIG. 9  are connected as follows. There is redundancy between the expander unit  8  and the expander unit  9  which are connected to each other in accordance with the SAS protocol. Ports  1  of the expander unit  8  and the expander unit  9  are each composed of a subtractive Phy. There is redundancy between an expander unit  802  and an expander unit  902  which are connected to each other in accordance with the I2C protocol. More specifically, two I2C units are connected, and both of them function as master units. There is redundancy between an expander unit  803  and an expander unit  903  which are connected to each other in accordance with the I2C protocol. More specifically, two I2C units are connected, and both of them function as master units. 
     A port  0  of the expander unit  8  included in the CE  100  is connected to a port  1  of the expander unit  802  included in the DE  101 . A port  0  of the expander unit  9  included in the CE  100  is connected to a port  1  of the expander unit  902  included in the DE  101 . A port  0  of the expander unit  802  included in the DE  101  is connected to a port  1  of the expander unit  803  included in the DE  102 . A port  0  of the expander unit  902  included in the DE  101  is connected to a port  1  of the expander unit  903  included in the DE  102 . 
     In the case of the connection between the expander unit  8  and the expander unit  802 , the port  0  of the expander unit  8  is composed of a general Phy. Accordingly, the expander unit  8  can know a unit connected to the expander unit  802  connected to the port  0  of the expander unit  8 . On the other hand, the port  1  of the expander unit  802  is composed of a subtractive Phy. Accordingly, the expander unit  802  cannot know a unit connected to the expander unit  8 . The relationship between the expander unit  9  included in the CE  100  and the expander unit  902  included in the DE  101  is the same as that between the expander unit  8  and the expander unit  802 . 
     In the case of the connection between the expander unit  802  and the expander unit  803 , the port  0  of the expander unit  802  is composed of a general Phy. Accordingly, the expander unit  802  can know units connected to a port  2  of the expander unit  803 . On the other hand, the port  1  of the expander unit  803  is composed of a subtractive Phy. Accordingly, the expander unit  803  cannot know a unit connected to the expander unit  802 . The relationship between the expander unit  902  included in the DE  101  and the expander unit  903  included in the DE  102  is the same as that between the expander unit  802  and the expander unit  803 . 
     A Disk  22 , a Disk  23 , a PSU  241 , a PSU  242 , a FAN  251 , a FAN  252 , a TEMP  261 , and a TEMP  262 , which are included in the DE  101 , are monitoring target units each connected to the expander unit  802  and the expander unit  902 , which are included in the DE  101 . 
     A Disk  32 , a Disk  33 , a PSU  341 , a PSU  342 , a FAN  351 , a FAN  352 , a TEMP  361 , and a TEMP  362 , which are included in the DE  102 , are monitoring target units each connected to the expander unit  803  and the expander unit  903 , which are included in the DE  102 . There is redundancy between the expander unit  803  and the expander unit  903 . 
     In  FIG. 9 , the same reference numerals are used for units having the same functions as those of  FIG. 1 , and the description thereof will be therefore omitted. 
     Each of the above-described expanders has a table for managing the addresses of connection destinations of Phys thereof. A connection table  810  which the expander unit  8  has will be described with reference to  FIG. 10 . A connection destination  811  denotes connection destinations of a Phy  0  in the connection table  810 . The expander unit  8  stores information on the expander unit  802  as information on a direct connection destination. The expander unit  802  is connected to the expander unit  803 , and the expander unit  803  is connected to the Disk  32  and the Disk  33 . The expander unit  802  is directly connected to the Disk  22  and the Disk  23 . These units are managed as indirect connection destinations of the Phy  0  of the expander unit  8 . A connection destination  812  denotes a connection destination of a Phy  1  in the connection table  810 . In the case of the Phy  1  that is a subtractive Phy, only information on a direct connection destination is stored, and information on an indirect connection destination is not acquired. Accordingly, the connection destination  812  includes only information on a direct connection destination. A connection destination  813  denotes connection destinations of a Phy  2  in the connection table  810 . The expander unit  8  is directly connected to the storage unit (Disk)  10  and the storage unit (Disk)  11 . Accordingly, pieces of information on the storage unit (Disk)  10  and the storage unit (Disk)  11  are stored as pieces of information on direct connection destinations of the Phy  2 . 
     A connection table  814  which the expander unit  802  has will be described with reference to  FIG. 11 . A connection destination  815  denotes connection destinations of a Phy  0  in the connection table  814 . The expander unit  802  stores information on the expander unit  803  as information on a direct connection destination. The expander unit  803  is connected to the Disk  32  and the Disk  33 . These units are managed as indirect connection destinations of the Phy  0  of the expander unit  802 . A connection destination  816  denotes a connection destination of a Phy  1  in the connection table  814 . In the case of the Phy  1  that is a subtractive Phy, only information on a direct connection destination is stored, and information on an indirect connection destination is not acquired. Accordingly, the connection destination  816  includes only information on a direct connection destination. A connection destination  817  denotes connection destinations of a Phy  2  in the connection table  814 . The expander unit  802  is directly connected to the Disk  22  and the Disk  23 . Accordingly, pieces of information on the Disk  22  and the Disk  23  are stored as pieces of information on direct connection destinations. 
     For example, in  FIG. 9 , it is assumed that the environmental state of the FAN  351  has been changed. The expander unit  803  transmits a broadcast that is information representing that the environmental information of a corresponding monitoring target unit has been changed to the expander unit  802  that is connected thereto in accordance with the SAS protocol. Since the expander unit  803  and the expander unit  903  are connected to each other in accordance with the I2C protocol, the expander unit  803  does not transmit the broadcast to the expander unit  903 . 
     Upon receiving the broadcast from the expander unit  803 , the expander unit  802  transmits a broadcast to the expander unit  8  that is connected thereto in accordance with the SAS protocol. 
     Upon receiving the broadcast from the expander unit  802 , the expander unit  8  transmits a broadcast to the controller unit  6  that is connected thereto in accordance with the SAS protocol. 
     On the other hand, since the expander unit  8  and the expander unit  9  are connected to each other using their subtractive Phys, the broadcast output from the expander unit  8  is not transferred to other units connected to the expander unit  9 . Consequently, the number of exchanges of environmental information between expanders can be reduced. In addition, when one of expanders between which there is redundancy cannot identify the environmental information of a certain unit, if the other one of the expanders can identify the environmental information of the unit, both of controllers can detect the environmental information of the unit since the controllers share the environmental information. 
     By performing the above-described transfer method, the amount of transfer of environmental information between the controller unit  6  and the controller unit  7  and the amount of transfer of environmental information between the expander unit  8  and expander unit  9  can be reduced as compared with that between the expander unit  8  and each of monitoring target units and that between the expander unit  9  and each of monitoring target units.