WO2015136619A1 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
WO2015136619A1
WO2015136619A1 PCT/JP2014/056296 JP2014056296W WO2015136619A1 WO 2015136619 A1 WO2015136619 A1 WO 2015136619A1 JP 2014056296 W JP2014056296 W JP 2014056296W WO 2015136619 A1 WO2015136619 A1 WO 2015136619A1
Authority
WO
WIPO (PCT)
Prior art keywords
expander
storage
enclosure
phy
module
Prior art date
Application number
PCT/JP2014/056296
Other languages
English (en)
French (fr)
Inventor
洋俊 赤池
田中 勝也
真喜夫 水野
山本 彰
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US14/426,318 priority Critical patent/US9253257B2/en
Priority to PCT/JP2014/056296 priority patent/WO2015136619A1/ja
Publication of WO2015136619A1 publication Critical patent/WO2015136619A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • the present invention relates to a storage apparatus in which different types of storage media are mixedly mounted.
  • the storage device generally includes a nonvolatile storage medium that can be randomly accessed.
  • Examples of the randomly accessible nonvolatile storage medium include a magnetic disk drive and an optical disk drive.
  • the current mainstream storage device includes a plurality of hard disk drives (HDDs).
  • a nonvolatile semiconductor memory that can be used as a storage medium of a storage device has been developed.
  • An example of a drive using such a nonvolatile semiconductor memory as a storage medium is a solid state drive (SSD).
  • SSD solid state drive
  • a storage apparatus including an SSD is superior in power saving, access time, and the like as compared with a storage apparatus including only a hard disk drive (HDD).
  • the storage device includes a controller that controls data transfer between a host computer connected to the storage device and a storage medium in the storage device.
  • the controller includes a front-end interface for connecting a host computer, a back-end interface for connecting a large number of drives as a storage medium, a processor for controlling a storage device, a memory connected to the processor, and the like.
  • SAS Serial Attached SCSI
  • SAS is known as a communication network standard for connecting a back-end interface and the like.
  • the SAS back-end network includes an initiator, a drive such as an SSD or HDD, and an expander (hereinafter also referred to as “Exp”).
  • the initiator is a device that issues a command request such as Read or Write to the drive, and is included in the back end interface of the controller, for example.
  • the expander is a switch for connecting a plurality of drives to the initiator. In order to connect many drives, multiple expanders are connected and used.
  • Patent Document 1 discloses a method of connecting expanders in cascade.
  • the processor in the storage device that is assumed to be equipped with a conventional HDD may cause a performance bottleneck.
  • the present invention has been made in view of such a background, and a main object thereof is to improve the performance of a storage apparatus in which a high-speed storage medium and a low-speed storage medium are mixedly mounted.
  • the present invention provides one or more storage controllers and a plurality of types of storage devices having different performances such as HDDs and SSDs, and a plurality of expanders and transmission lines provided between the storage controllers and the storage devices.
  • control is performed to determine whether the topology of the back-end network does not violate a predetermined rule.
  • the back-end network initialization process information on storage devices and expanders connected to each expander is acquired, and the back-end network is based on the acquired information on storage devices and expanders. It is determined whether or not the topology of the network conforms to a predetermined rule.
  • the topology that conforms to the rule is a topology in which the topology of the back-end network is configured so that communication (command and data transmission / reception) between the storage controller and the SSD is not hindered by communication traffic to the HDD.
  • a rule for example, there is a rule that the storage device connected to each expander is only HDD or only SSD.
  • the expanders are cascade-connected in multiple stages, the access performance between the controller and the SSD deteriorates. Therefore, the expander connected to the HDD allows the cascade connection, but the expander connected to the SSD is not cascade-connected. There are rules.
  • the storage device of the present invention has a plurality of storage controllers so that the storage controllers do not become a performance bottleneck, and each storage controller can share access to each SSD via the back-end network. It is equipped with a simple configuration.
  • an SSD can be shared between controllers with a small number of expander stages, and a back-end network on which a large number of HDDs can be mounted can be realized, and the performance of storage can be improved.
  • FIG. 1 is a block diagram of a storage device according to Embodiment 1.
  • FIG. FIG. 10 is a diagram for explaining routing attributes of the expander Phy of the storage apparatus according to the first embodiment. 10 is a flowchart of creating a device connection table of the top expander according to the first embodiment. It is a figure explaining the expander classification management table concerning Example 1. FIG. It is a figure explaining the device connection table of the top expander which concerns on Example 1.
  • FIG. 3 is a flowchart of processor type determination according to the first embodiment. 6 is a diagram for explaining a path through which a processor according to the first embodiment communicates with a top expander; FIG. 6 is a flowchart of back-end network setting processing according to the first embodiment.
  • FIG. 6 is a flowchart of back-end network setting processing according to the first embodiment.
  • 7 is a flowchart of creating a device connection table of the central expander according to the first embodiment.
  • FIG. 6 is a diagram for explaining a path through which a master processor according to the first embodiment communicates with a slave processor and a central expander. It is a figure explaining the connection table between modules concerning Example 1.
  • FIG. 10 is a flowchart of creating a Phy correspondence table according to the first embodiment. It is a figure explaining the Phy corresponding
  • FIG. 10 is a flowchart of creating an enclosure management table according to the first embodiment. 10 is a flowchart of creating an enclosure management table according to the first embodiment.
  • FIG. 6 is a diagram for explaining a drive address table according to Embodiment 1.
  • FIG. FIG. 10 is a diagram illustrating a drive list table according to the first embodiment. 10 is a flowchart of creating a route table of the central expander according to the first embodiment. It is a figure explaining the route table which concerns on Example 1.
  • FIG. 6 is a flowchart of creating a route table for a top expander according to the first embodiment.
  • 3 is a flowchart of an extension process according to the first embodiment. 3 is a flowchart of enclosure or drive extension processing according to the first embodiment.
  • FIG. 3 is a flowchart of module extension processing according to Embodiment 1; 3 is a flowchart of module extension processing according to Embodiment 1; It is a figure explaining the outline
  • FIG. It is a figure explaining the LUN mapping table which concerns on Example 1.
  • FIG. 6 is a flowchart of inter-module load distribution processing according to the first embodiment. It is a figure explaining the routing attribute of the expander Phy of the storage apparatus which concerns on Example 2.
  • FIG. 10 is a flowchart of back-end network setting processing according to the second embodiment. 10 is a flowchart of back-end network setting processing according to the second embodiment. It is a figure explaining the share setting table of the top expander Phy which concerns on Example 2.
  • FIG. 10 is a flowchart of an extension process according to the second embodiment.
  • 10 is a flowchart of enclosure or drive addition processing according to the second embodiment.
  • 10 is a flowchart of module extension processing according to the second embodiment.
  • 10 is a flowchart of module extension processing according to the second embodiment.
  • FIG. 10 is a diagram for explaining inter-module connection of the storage apparatus according to the third embodiment.
  • FIG. 10 is a diagram for explaining an internal module configuration of a storage apparatus according to a third embodiment. It is a figure explaining the back end network topology which concerns on the modification 1.
  • FIG. It is a figure explaining the back end network topology which concerns on Example 4.
  • FIG. It is a figure explaining the back end network topology which concerns on Example 5.
  • FIG. 12 It is a flowchart of the topology check process from the second HDD enclosure top expander. 12 is a flowchart of a topology check process of an nth HDD enclosure top expander. It is a flowchart of the topology check process of the enclosure expander connected to the next stage. It is a figure explaining the back end network topology which concerns on Example 6. FIG. It is a figure explaining the back end network topology which concerns on Example 6. FIG.
  • the storage apparatus according to the first embodiment of the present invention will be described.
  • the flow of explanation is as follows. First, the configuration of the storage apparatus according to the first embodiment will be described with reference to FIGS. Next, the back-end network setting pre-processing of the storage apparatus according to the first embodiment will be described with reference to FIGS. Next, the back-end network setting process of the storage apparatus according to the first embodiment will be described with reference to FIGS. The purpose of this back-end network setting process is to create an expander route table in the back-end network including the Table-to-Table connection. Next, with reference to FIG. 23 to FIG. 26, the expansion processing for the storage apparatus according to the first embodiment will be described. Finally, load distribution processing of the storage apparatus according to the first embodiment will be described with reference to FIGS.
  • FIG. 1 is a block diagram of the storage apparatus 100 according to the first embodiment.
  • the storage apparatus 100 includes one or more modules (modules 101 and 151 in the configuration example of FIG. 1).
  • the storage apparatus 100 according to the first embodiment of the present invention is characterized in that the SSD connected to the storage apparatus 100 can be shared between modules through a back-end network.
  • the “back-end network” is a network for connecting an end device such as an SSD or HDD to the controller of the storage apparatus 100, and includes a transmission line (SAS link) and a switch (expander). It means the network that was made.
  • shared in this specification is as follows.
  • a certain device such as an SSD
  • “sharable” it means that a plurality of modules (the processor of the controller) of the storage apparatus 100 are accessible to the target device through the back-end network.
  • “a device is not shared” means that only one module (the controller processor) in the storage apparatus 100 can access the device through the back-end network.
  • expanders that are switch devices used in the back-end network of the storage apparatus 100 are classified into three types according to their roles, and each is referred to by a different name.
  • the first type of expander is an expander arranged in a drive enclosure and is for connecting drives. This is called an enclosure expander in the embodiment of the present invention.
  • the second type of expander is an expander that plays a role of separating the topology connecting the SSD and the topology connecting the HDD, and is between the initiator provided in the back-end interface 107 (157) and the enclosure expander. And is directly connected to the initiator.
  • top expander In the embodiment of the present invention, separating the topology that connects the SSD and the topology that connects the HDD is, for each expander Phy (interface for connecting the SAS device to one physical link) other than Phy directly connected to the initiator.
  • the type of drive in the module connected to the destination is determined to be one type (for example, the drive connected to the destination of a certain Phy is determined to be SSD only, and the drive connected to the destination of another Phy is determined to be only the HDD. Is in a state).
  • the third type of expander is an expander that plays a role of connecting modules, and is connected to the top expander of each module. This is called a central expander in the embodiment of the present invention.
  • top expander is stored in an enclosure (hereinafter, this enclosure is referred to as a “top expander enclosure”) together with a power source, a fan, and the like.
  • central expander is stored in an enclosure (hereinafter referred to as a central expander enclosure) together with a power source, a fan, and the like.
  • the storage apparatus 100 includes two modules 101 and 151.
  • the module includes a controller, a top expander to which the controller is directly connected, and a range of enclosure expanders and drives that can be accessed from the top expander without going through the central expander.
  • Modules 101 and 151 have the same configuration except for the presence or absence of the central expander 140.
  • the central expander 140 is stored in the module 101.
  • the central expander 140 may be stored in any of the modules 101 and 151, or may be stored in a separate housing from the modules 101 and 151.
  • the module 101 includes a controller 102 (152), a top expander 110 (160), enclosure expanders 119 to 124 (169 to 174), SSDs 125 to 127 (175 to 177), and HDDs 128 to 130 (178 to 180). ). Communication between the controller 102 (152) and the SSDs 125 to 127 (175 to 177) and the HDDs 128 to 130 (178 to 180) is performed according to the SAS (Serial Attached SCSI) standard. Although not shown in FIG. 1, the module 101 (151) includes a NIC (Network Interface Controller), and a management terminal for the administrator of the storage apparatus 100 to perform various settings of the storage apparatus 100 is provided. Connectable.
  • NIC Network Interface Controller
  • the controller 102 includes a processor (MP) 103 (153), a front-end interface 105 (155), a local memory (may be abbreviated as “LM” or “memory”) 104 (154), a back-end interface. 107 (157) and a network interface 109 (159).
  • MP processor
  • LM local memory
  • LM memory
  • 107 157) and a network interface 109 (159).
  • the front end interface 105 is connected to a host computer (not shown) via a channel 106 (156).
  • the front end interface 105 (155) converts a data transfer protocol between the host computer and the controller 102 (152) and a data transfer protocol in the controller 102 (152).
  • the back-end interface 107 (157) connects the controller 102 (152) and the top expander 110 (160) via the SAS link 108 (158).
  • the back-end interface 107 (157) converts the data transfer protocol in the controller 102 (152) and the data transfer protocol between the controller 102 (152) and the top expander 110 (160).
  • the back end interface 107 (157) includes a plurality of SAS initiators.
  • the network interface 109 (159) is connected to the inter-module network 143, and transmits / receives control information and various tables of the storage apparatus 100 between the modules.
  • the memory 104 is a main memory of the processor 103 (153), and stores a program (storage control program or the like) executed by the processor 103 (153), a management table referred to by the processor 103 (153), or the like. .
  • the memory 104 (154) is also used as a disk cache (cache memory) of the storage apparatus 101.
  • the processor 103 is connected to a host computer (not shown) connected via the front-end interface 105 (155) and HDDs 128 to 130 (178 to 180) or SSD 125 connected via the back-end interface 107 (157). Controls data transfer to .about.127 (175.about.177).
  • SSDs 125 to 127 (175 to 177) and HDDs 128 to 130 (178 to 180) are storage devices that store write data from the host computer.
  • magnetic disk drives are used for the HDDs 128 to 130 (178 to 180).
  • the SSDs 125 to 127 (175 to 177) are devices having higher access performance than the HDDs 128 to 130 (178 to 180).
  • the SSDs 125 to 127 (175 to 177) are similar to SSDs (Solid State Drives).
  • a storage device using a flash memory as a storage medium is used.
  • the present invention is not limited to a mode using a magnetic disk drive or SSD, and the present invention is effective even if a storage medium other than the magnetic disk drive or SSD is adopted.
  • the top expander 110 (160) is connected to the central expander 140 via the SAS link 141 (142).
  • the top expander 110 (160) is connected to the enclosure expander 122 (172) via the SAS link 115.
  • the enclosure expander 122 (172) is connected to the enclosure expander 123 (173) via the SAS link 116 (166).
  • the enclosure expander 123 (173) is connected to the enclosure expander 124 (174) via the SAS link 117.
  • Enclosure expanders 122 to 124 (172 to 174) connect one or more HDDs 128 to 130 (178 to 180), respectively.
  • the enclosure expander to be added is connected to the SAS link 118 (168).
  • the expander to which the HDD is connected is connected in series from the top expander 110 (160).
  • the top expander 110 (160) is also connected to the enclosure expander 119 (169) via the SAS link 111 (161).
  • the top expander 110 (160) is connected to the enclosure expander 120 (170) via the SAS link 112 (162).
  • the top expander 110 (160) is connected to the enclosure expander 121 (171) via the SAS link 113 (163).
  • Enclosure expanders 119 to 121 (169 to 171) connect one or more SSDs 125 to 137 (175 to 177), respectively.
  • the enclosure expander to be added is connected to the SAS link 114 (164).
  • the expander connecting the SSD is connected in parallel from the top expander 110 (160) to the expander connecting another SSD.
  • a Direct routing attribute There are three types of expander Phy routing attributes: a Direct routing attribute, a Table routing attribute, and a Subtractive routing attribute.
  • the three types of routing attributes are abbreviated as Direct, Table, and Subtractive, respectively.
  • Direct When an end device is directly connected to the expander Phy, the end device is connected to Phy whose Direct routing attribute is Direct. Further, when another expander is connected to the expander Phy, the expander Phy is connected to the Phy whose attribute is “Table”.
  • the routing attribute of the expander Phy that is neither Direct nor Table is Subtractive.
  • a port is an interface for connecting two SAS devices, and includes one Phy or a plurality of Phys.
  • the expander When the expander receives the connection request, the expander first checks whether the SAS address, which is address information for specifying the connection destination device, is the SAS address of the connection destination device of Direct Phy. When the connection destination SAS address of the connection request matches the SAS address of the connection destination device of Direct Phy, the expander establishes a connection to Phy connected to the other end of the SAS link connected to the Phy. If they do not match, the expander checks whether the connection destination SAS address of the connection request is the connection destination SAS address of the Phy of the Table. The PHY connection destination SAS address of the table is stored in the route table in the expander.
  • the expander When the connection destination SAS address is found in the route table, the expander establishes a connection to the Phy connected to the other end of the SAS link connected to the Phy. If the connection request destination SAS address does not match the Direct and Table Phy connection destination SAS addresses, the expander connects the connection to the Phy connected to the other end of the SAS link connected to the Subtractive Phy. Establish. Since the expander operates according to such a rule, when the routing attribute of Phy is Subtractive, it is not necessary to register the address of the SAS device connected to the destination of the Phy in the route table of the expander. Therefore, the route table size can be reduced.
  • connection between the expanders is subtractive-to-subtractive
  • route table size can be reduced in both expanders.
  • one or more phys having the Expander Subtractive attribute are included in the same port.
  • one or more Phys having the same Direct attribute and the same connection destination SAS device are included in the same port.
  • One or more Phys having the Expander Table attribute and the same route table contents are included in the same port.
  • FIG. 2 is a diagram for explaining the Phy routing attribute of each expander connected to the storage apparatus 100 according to the first embodiment.
  • the routing attribute of Phy 202 (252) of the top expander 110 (160) connected to the plurality of initiators 201 (251) included in the back-end interface 107 (157) is Direct.
  • the routing attribute of Phy 203 (253) of the top expander 110 (160) that connects the enclosure expander 122 (172) that connects the HDD is Subtractive.
  • the routing attribute of the Phy 204 (254) of the top expander 110 (160) connected to the central expander 140 is Table.
  • the SAS link 142 that connects the Phy 254 and the Phy 265 is a table-to-table connection.
  • the routing attribute of the Phy 205 (255) of the top expander 110 (160) connecting the enclosure expanders 119 to 121 (169 to 171) to which the SSD is connected is Table.
  • the routing attribute of the Phy 215 connected to the top expander 110 of the module 101 is Subtractive.
  • the routing attribute of Phy 265 connecting the module 151 is Table.
  • Phy 214 and 264 are Phys for connecting expansion modules in order to configure the storage apparatus 100 with three or four modules, and their routing attribute is Table.
  • the SAS link 142 connecting the central expander 140 and the top expander 160 is a table-to-table connection.
  • the first reason is that Self-configuring expander recognizes all devices searched in the back-end network initialization process (Discover process) without considering the storage back-end topology violation specified by the system administrator (Discover). ).
  • Discover process the back-end network initialization process
  • Discover process the storage back-end topology violation specified by the system administrator (Discover).
  • a storage device that uses only an HDD as a storage device
  • a plurality of types of devices with different access performance such as SSD and HDD
  • the communication traffic between the controller of the storage apparatus and the HDD obstructs the communication between the controller and the SSD. May not be able to adequately demonstrate its performance.
  • topology violation when setting up the back-end network or adding a drive or the like, the topology of the back-end network cannot properly bring out the SSD access performance (in this specification, such a topology is used). This is called “topology violation”), and it is necessary to perform processing (detection of topology violation), so apply the Self-configuring expander to the inter-module backend expander. I can't.
  • the second reason is that with the Self-configuring expander, when a device is connected to or disconnected from the back end, or when a failure occurs in the device, a link reset is performed to reset the link between the devices.
  • the Discover process is executed.
  • the storage system executes the Discover process at a timing planned in advance by the system administrator, thereby minimizing the effect of the back end performance degradation on the host computer.
  • Self-configuring expander performs Discover at an unexpected timing by the system administrator and the performance degradation of the back end may have a large impact on the host computer, Self-configuring expander should be used for inter-module back end. Cannot be applied to expanders.
  • the routing attribute of the Phy 212 (262) connected to the top expander 110 (160) is Subtractive.
  • the routing attribute of Phy 213 (263) connecting the SSD is Direct. The same applies to the enclosure expanders 120 and 121 (170 and 171).
  • the routing attribute of the Phy 206 and 209 (256 and 259) connected in the direction of the top expander 110 (160) is Subtractive.
  • the routing attribute of the Phys 207 and 210 (257 and 260) to which the HDD is connected is Direct.
  • the routing attribute of Phy 208, 211 (258, 261) for connecting the enclosure expander to which the HDD is connected is Table. The same applies to the enclosure expander 124 (174).
  • the SAS link 115 (165) connecting the top expander 110 (160) and the enclosure expander 122 (172) is a subtractive-to-subtractive connection.
  • the storage apparatus 100 of the first embodiment can share the drive (HDD) at the destination of the subtractive-to-subtractive connection among the modules, but in this embodiment, the storage apparatus 100 is set not to share. Therefore, the SAS address of the HDD is not registered in the route tables of the top expander 110 (160) and the central expander 140. As a result, even when a large number of HDDs are installed in the storage apparatus 100, the route table sizes of the top expander 110 (160) and the central expander 140 can be reduced.
  • the SAS link connecting the expanders or between the initiator and the expander is represented by a single line. Also, only one Phy at each end of the SAS link is drawn. Actually, these SAS links are wide links, and both ends of the SAS link are wide ports composed of a plurality of Phys. For example, each of the four ports including the initiator 201 (251) is a wide port, and each of the four ports including the Phy 202 (252) is a wide port.
  • the four SAS links of the SAS link 108 (158) are wide links.
  • the SAS link connecting the enclosure expander and the drive may be a narrow link or one drink. The same applies to FIG. 7, FIG. 11, FIG. 30, FIG.
  • the routing attribute of Phy whose Phy ID is 0 is set to Subtractive.
  • the routing attribute of the Phy belonging to the same port as the Phy having a Phy ID of 0 is also Subtractive.
  • the routing attribute of the Phy belonging to a port different from the port to which the Phy belonging to the connection destination is the expander and the Phy ID is 0 is set to Table.
  • the routing attribute of Phy that directly connects the drive is set to Direct.
  • the above is the configuration of the storage apparatus 100 according to the first embodiment of the present invention.
  • back-end network initialization processing back-end network setting pre-processing is performed first, followed by back-end network setting processing.
  • the back-end network setting pre-processing will be described.
  • a process for creating a device connection table 800 for the top expander and a determination process for the master processor are performed.
  • the back-end network setting pre-process is a process that is performed prior to the back-end network setting process (FIGS. 11 to 12), which will be described later.
  • the provided processors (103, 153) execute.
  • FIG. 4 is a diagram illustrating the expander type management table according to the first embodiment.
  • the expander type management table 700 is a table that stores the association between the SAS address 701 of the expander connected to the storage apparatus 100 and the type 702 of the expander. As described above, there are enclosure expanders (Enc Exp), top expanders (Top Exp), and central expanders (Central Exp) as the types of expanders. Any one of these information is stored.
  • the expander type management table 700 is stored in the memory 104 (154) in the controller 102 (152), and the processor 103 (153) refers to the expander type management table 700, so that the back end of the storage apparatus 100 is obtained. You can know the type of expander connected to the network. The contents of the expander type management table 700 are set in advance by the administrator (before the storage apparatus 100 is started).
  • the storage apparatus 100 has a plurality of controllers (102, 152, etc.), the set contents are It is stored in each memory (104, 154) in the controller (102, 152).
  • the administrator registers the SAS address and role (expander type) of the expander to be added in the expander type management table 700 in advance. Or add when adding.
  • FIG. 5 is a diagram for explaining the device connection table of the top expander according to the first embodiment.
  • the device connection table is a table in which connection information between an expander and devices connected to the expander is used to create an inter-module connection table to be described later.
  • the device connection table 800 includes a Phy ID 801 of the top expander Phy, a device type 802 connected to the top expander, a SAS address 803 of the device connected to the top expander, and a Phy ID 804 of the connection destination device. Stores correspondence with. For example, it can be seen that Phy IDs 4 to 7 of the top expander Phy are connected to Phy IDs 0 to 3 of the central expander Phy. In the storage apparatus 100, the top expander is connected only to the initiator or another expander. When the connection destination device is an expander, the processor 103 (153) determines the type with reference to the expander type management table 700.
  • the processor 103 determines whether or not the connection destination device is the initiator based on the SAS address directly acquired from the initiator. This determination is used, for example, when determining the type of connection destination device of the top expander from among a central expander, a top expander, an enclosure expander, an initiator, and the like.
  • the device connection table 800 is generated for each top expander. Therefore, when there are a plurality of (for example, n) top expanders in one module, the processor of the module creates n device connection tables 800.
  • FIG. 3 is a flowchart for creating a device connection table for the top expander, which is one of the back-end network setting pre-processing.
  • the processor in each module constituting the storage apparatus 100 executes the flow of FIG. 3 prior to the back-end network setting process (FIGS. 8 to 9).
  • FIG. 3 Prior to the back-end network setting process (FIGS. 8 to 9).
  • FIG. 8 to 9 As an example, a device connection table creation flow of the top expander 110 in the module 101 will be described.
  • the processor 103 checks whether or not the initiator in the back-end interface 107 is directly connected to the top expander 110 (601). This is possible when the processor checks the result of the identification sequence executed by the initiator and the expander type management table 700. As a result, if there is even one initiator that is not directly connected to the top expander, the flow is stopped as a topology violation error and notified to the administrator of the storage apparatus 100 (602). For example, the manager 103 is notified by a method such as displaying an error message indicating that a topology violation exists on the screen of the management terminal from the processor 103. If all initiators are connected to the top expander 110, the process proceeds to 603.
  • the processor 103 executes a loop process for all External Phys in the top expander 110 (603 to 605).
  • loop processing (603 to 605) is executed for all External Phys of all the top expanders 110 in the module.
  • the processor 103 transmits a Discover request in which the Phy ID of External Phy is set to the SMP target in the top expander 110, and receives a response to the request (604).
  • the received response includes the SAS address and Phy ID of the connection destination of the top expander Phy corresponding to the Phy ID specified in the Discover request.
  • the processor 103 repeats the discovery request transmission and the response reception for all external phys in the top expander 110 (605).
  • the processor 103 creates the device connection table 800 of the top expander 110 from the received response (606). Note that in the case of a configuration in which a plurality of top expanders 110 exist in a module, a device connection table 800 is created for each top expander 110.
  • FIG. 6 is a flowchart of processor type (master processor) determination, which is another process performed in the back-end network setting pre-process. This process is executed after the device connection table creation process described with reference to FIG.
  • the processor 103 searches the device connection table 800 of the top expander 110 for an entry whose connection destination device type is the central expander (901).
  • the processor 103 determines whether or not there is an entry in the device connection table 800 whose connection destination device is a central expander (902).
  • the processing is stopped as a topology violation error and notified to the administrator of the storage apparatus 100 (903).
  • the device connection table 800 of all top expanders is searched for an entry having a connection destination device type of the central expander. If there is even one device connection table 800 in which there is no entry whose connection destination device type is the central expander, the processing is stopped as a topology violation error and notified to the administrator of the storage apparatus 100.
  • the Phy ID of the connection destination device is checked (904).
  • the processor 103 determines that itself is a master processor (905).
  • the processor 103 determines that it is a slave processor (906). In the case of a configuration in which a plurality of top expanders exist in the module, if any of the top expanders 110 in the module is connected to the central expander Phy whose Phy ID is 0, the processor 103 is the master processor. If any of the top expanders 110 is not connected to the central expander Phy whose Phy ID is 0, the processor 103 is determined to be a slave processor.
  • the routing attribute of the central expander Phy whose Phy ID is 0 is Subtractive.
  • a module having a top expander connected to a central expander Phy whose routing attribute is Subtractive is defined as a master module.
  • a processor in the master module is defined as a master processor.
  • a module other than the master module is defined as a slave module, and a processor in the slave module is defined as a slave processor. That is, when the routing attribute of each expander Phy of the storage apparatus 100 is as shown in FIG. 2, the processor 103 is a master processor, the module 101 is a master module, the processor 153 is a slave processor, and the module 151 is a slave. It becomes a module. In the following description of each process, it is assumed that the processor 103 is a master processor, the module 101 is a master module, the processor 153 is a slave processor, and the module 151 is a slave module.
  • FIG. 7 is a diagram for explaining a path for the processor 103 (153) according to the first embodiment to transmit a Discover request to the top expander and a path for receiving a response thereto.
  • the processor 103 transmits a Discover request to the SMP (Serial Management Protocol) target (target device that receives the Serial Management Protocol) 1004 in the top expander 110 via the initiator 1001 in the back-end interface 107. (1002).
  • the SMP target 1004 returns a response through the same route as the received Discover request (1003).
  • the processor 153 transmits a Discover request to the SMP target 1054 in the top expander 160 via the initiator 1051 in the back-end interface 157 (1052).
  • the SMP target 1054 returns a response through the same route as the received Discover request (1053).
  • FIGS. 8 and 9 are flowcharts of the back-end network setting process according to the first embodiment.
  • the master processor creates a device connection table for the central expander (1101).
  • the device connection table of the central expander 140 has the same format as the device connection table 800 of FIG.
  • the master processor requests the slave processor to transmit the device connection table 800 of the top expander in each module (1102).
  • the master processor requests transmission of the device connection table 800 of the top expander to all slave processors.
  • the slave processor receives a transmission request from the master processor in the device connection table 800 of the top expander (1103). In response to this, the slave processor transmits the device connection table 800 of the top expander to the master processor (1104).
  • the master processor receives the device connection table 800 of the top expander from the slave processor (1105).
  • the master processor creates an inter-module connection table 1600 and a Phy correspondence table 1800 based on the received device connection table 800 of each intra-module top expander and stores them in the memory 104 (1106).
  • the master processor requests each slave processor to execute the Discover process in each module (1107).
  • the master processor process (1109 to 1202) and the slave processor process (1108 to 1204) are executed in parallel.
  • the master processor executes a Discover process in the master module (1109).
  • the Discover process here is the same as the Discover process performed by a conventional storage apparatus.
  • each expander (110, 119 to 124) in the module has a route table.
  • the SAS address of the device (SSD, HDD, expander) connected first from each expander is registered.
  • a device connection table as shown in FIG. 5 is created for each enclosure expander in the memory 104 in the module, and the SAS addresses of devices (HDD, SSD, expander) connected to each enclosure expander Phy are recorded. Keep it.
  • the SAS address of the HDDs 129 and 130 connected to the enclosure expanders 123 and 124 cascaded to the enclosure expander 122 is registered in the route table of the enclosure expander 122. .
  • the master processor is connected to the end of the central expander 140. Discovery of devices after the top expander 160 that has been made cannot be performed.
  • the master processor creates an enclosure management table 2100 and a drive address table 2200 based on the Discover result (1110).
  • the master processor checks the contents of the enclosure management table 2100. Specifically, the presence or absence of topology violation is checked (1201).
  • the master processor receives the drive address table 2200 of each slave module from each slave processor (1202).
  • the slave processor receives an execution request for the Discover process in the slave module from the master processor (1108).
  • the slave processor executes a Discover process in the slave module (1111).
  • the Discover process here is the same as the Discover process executed by a conventional storage apparatus, similar to 1109.
  • each expander 160, 169 to 174 has its respective expand table in each route table.
  • the SAS address of the device connected to the end of the panda is registered.
  • a device connection table as shown in FIG. 5 is created for each enclosure expander in the memory 104 in the module, and the SAS addresses of devices (HDD, SSD, expander) connected to each enclosure expander Phy are recorded. Keep it.
  • the slave processor is connected to the top of the top expander 160. Discovery of devices after the central expander 140 cannot be performed.
  • the slave processor creates an enclosure management table 2100 and a drive address table 2200 based on the Discover result (1112).
  • the slave processor checks the contents of the enclosure management table 2100. Specifically, it is checked whether there is a topology violation (1203).
  • the slave processor transmits the drive address table 2200 of the slave module to the master processor (1204).
  • the drive address table 2200 includes entries for all drives including shared / non-shared in the module. The process of extracting only the shared drive is performed in the next step 1205.
  • the master processor creates a drive list table 2300 from the drive address table 2200 of the master module and the slave module (1205). At this time, the master processor extracts those whose drive type 2205 is SSD from the drive address table 2200 of each module and registers it in the drive list table 2300.
  • the master processor creates an entry in the route table 2500 of the central expander based on the drive list table 2300 and the Phy correspondence table 1800, and updates the route table of the central expander (1206).
  • the master processor sends a route table for the top expander in the slave module to each slave processor, and updates the route table. Request (1207).
  • the master processor updates the route table of the top expander in the master module (1209).
  • the slave processor that has received the route table for the top expander in the slave module and the route table update request from the master processor (1208) updates the route table of the top expander in the slave module (1210).
  • the master processor includes a device connection table (800) of the top expander, a device connection table of the central expander, an inter-module connection table (1600), a Phy correspondence table (1800), an enclosure management table (2100), and a drive address table (2200). ),
  • the drive list table (2300) is stored in, for example, the local memory (104).
  • the slave MP stores the device connection table (800), the enclosure management table (2100), and the drive address table (2200) of the top expander, for example, in the local memory (154).
  • the master processor (103) executes loop processing (1301 to 1303) for all External Phys in the central expander 140.
  • the master processor (103) transmits a Discover request in which the Phy ID of the External Phy of the central expander 140 is set to the SMP target in the central expander 140, and receives a response to the request (1302).
  • the received response includes the SAS address and Phy ID of the Phy connection destination of the central expander 140 corresponding to the Phy ID specified in the Discover request.
  • the processor 103 repeats discovery request transmission and response reception for all external phys in the central expander 140 (1303).
  • the master processor (103) creates a device connection table of the central expander 140 from the received response and stores it in the memory 104.
  • the format of the device connection table created here is the same format as the device connection table 800 of FIG. 5, that is, the Phy ID of the central expander Phy and the devices connected to the central expander.
  • the correspondence between the type of device, the SAS address of the device connected to the central expander, and the Phy ID of the connection destination device is stored, and is not shown.
  • FIG. 11 shows a route in which the master processor acquires the device connection table 800 of the top expander from the slave processor in the processing of steps 1102 to 1105 of FIG. 8, and the master executed in step 1101 (FIG. 13) of FIG. It is a figure explaining the path
  • the master processor 103 discovers the SMP target 1501 of the central expander 140 through the path 1502 that passes through the initiator (indicated as “Ini” in the figure) 1001, the top expander 110, and the SAS link 141 in the back-end interface 107. Send a request.
  • the SMP target 1501 of the central expander 140 returns a response to the master processor 103 through a path 1503 opposite to the path 1502. Since the routing attribute of the central expander Phy connected to the top expander 110 is Subtractive, the central expander can return a response even if the route table of the central expander is not set. This is the reason why the module to which the top expander connected to the central expander Phy whose routing attribute is Subtractive belongs is the master module.
  • the master processor 103 transmits a device connection table transmission request of the top expander 160 to the slave processor 153 through the path 1504 passing through the network interface 109, the inter-module network 143, and the network interface 159 of the module 151.
  • the slave processor 153 transmits the device connection table 800 of the top expander 160 through a path 1505 opposite to the path 1504.
  • FIG. 12 is a diagram illustrating the module connection table created in step 1106 of FIG.
  • the inter-module connection table 1600 is a table used for creating a Phy correspondence table to be described later, and stores connection information between the central expander and each top expander. However, when the master processor creates the inter-module connection table 1600, the connection information between the top expander and the central expander that are connected to Phy whose routing attribute of the central expander is Subtractive is Not stored in the inter-connection table 1600.
  • the expander type of the connection source is stored in the column 1601.
  • the connection source expander type 1601 is a central expander
  • the connection source central expander SAS address 1602 the connection source central expander Phy ID 1603, the connection destination top expander SAS address 1604, and the connection The Phy ID 1605 of the first top expander Phy is stored.
  • the module number 1606 the module number of the master module is stored.
  • the inter-module connection table 1600 includes the SAS address 1602 of the connection source top expander, the Phy ID 1603 of the connection source top expander Phy, and the connection destination central expander.
  • FIG. 14 is a diagram for explaining the Phy correspondence table created in step 1106 of FIG.
  • the Phy correspondence table 1800 is a table in which connection information between the central expander and the top expander is used to create a route table for the central expander and a route table for the top expander, which will be described later.
  • the Phy correspondence table 1800 includes a Phy ID 1801 of the top expander Phy, a Phy ID 1802 of the central expander Phy connected to the top expander Phy, a module number 1803 to which the top expander belongs, and a SAS address of the top expander.
  • the correspondence of 1804 is stored.
  • the master processor acquires the device connection table 800 of each top expander in each slave module and the SAS address of each top expander from each slave processor (1701). This is a process corresponding to step 1105 in FIG.
  • the master processor based on the contents of the device connection table of the central expander 140, for each central expander Phy, the SAS address 1602 of the central expander, the Phy ID 1603 of the connection source central expander Phy, the connection destination top
  • the SAS address 1604 of the expander and the Phy ID 1605 of the connection destination top expander Phy are stored in the inter-module connection table 1600 (an example in which these pieces of information are stored is a portion 1607 in FIG. 12).
  • the master processor extracts an entry related to the central expander from the device connection table 800 of each top expander in the master module and the device connection table 800 of each top expander in each slave module acquired in Step 1701, and The contents to be stored in the inter-connection table 1600 are created, and the created contents (the portion 1608 in FIG. 12 is an example of the created contents) are stored in the inter-module connection table 1600 (1702).
  • the master processor does not create or store connection information between the top expander and the central expander in which the Phy routing attribute of the central expander is connected to the subtractive Phy.
  • the next loop processing (1703 to 1706) is processing executed for each of the entries whose expander type is the central expander (that is, the entry 1607 in FIG. 12) among all the entries in the inter-module connection table 1600. (1704 to 1705).
  • the master processor searches the inter-module connection table 1600 for an entry for the top expander that matches the central expander connection destination SAS address 1604 (Addr # B) (that is, the connection destination of the central expander).
  • the address equal to the SAS address 1604 (Addr # B) is searched for the entry stored in the SAS address 1602).
  • the master processor stores the Phy ID 1603, the module number 1606, and the Phy ID 1605 included in the entry for the top expander that matches the connection destination SAS address (Addr # B) in the Phy correspondence table 1800 ( 1705).
  • the top expander Phy ID 1603 is stored in the Phy correspondence table 1801
  • the central expander Phy ID 1605 is stored in the Phy correspondence table 1802
  • the module number 1606 is stored in the Phy correspondence table 1803.
  • FIG. 15 is a flowchart for creating an enclosure management table. This processing corresponds to the processing of 1110 to 1201 or the processing of 1112 to 1203 in FIGS.
  • a variable N for specifying the number of expander stages (Exp stage number) to be processed in the process is prepared.
  • the enclosure management table 2100 is an expander having two or more expander stages from the initiator (the top expanders 110 and 160 are first expanders from the initiator, and are connected after the top expander.
  • the expander (enclosure expander) manages the information of the second and higher level expanders).
  • the processor 103 (153) sets the initial value of the variable N (expander stage number) to 2 at the beginning of the process (1901). Next, the processor 103 (153) executes recognition processing (1902) of each N-th expander (enclosure expander).
  • the processor of each module refers to the device connection table 800 and performs processing for each Phy connected to the enclosure expander from the top expander in the module among the Phys of the top expander.
  • the contents of the process 1902 will be described with reference to FIG.
  • FIG. 16 is a flowchart of an enclosure management table creation processing subroutine (1902 in FIG. 15) according to the first embodiment.
  • the processor (103, 153) designates the Phy ID of External Phy and sends a Discover request to the SMP target of each N-stage enclosure expander (2001). This Discover request transmission is performed for all External Phys of each enclosure expander.
  • the processor determines the type of the drive connected to the enclosure expander from the connection destination SAS address included in the response received from the SMP target of the enclosure expander (2002).
  • the drive type can be determined from the unique information of the drive vendor included in the SAS address.
  • the processor (103, 153) registers the determined drive information in the drive address table 2200 (2003).
  • the contents of the drive address table 2200 will be described later.
  • the processor checks the breakdown of the drives connected to the enclosure expander (2004).
  • the attribute of the enclosure expander to be registered in the enclosure management table 2100 is determined to be “HDD” (2005). If only the SSD is connected to the enclosure expander, the attribute of the enclosure expander to be registered in the enclosure management table 2100 is determined as “SSD” (2006). If no drive is connected to the enclosure expander, the attribute of the enclosure expander to be registered in the enclosure management table 2100 is determined to be “empty” (2007).
  • the back-end network setting process is canceled as a topology violation error, and an error is sent to the administrator of the storage apparatus 100 via the management terminal (the topology violation exists). ) (2008).
  • the processor registers the attributes of the enclosure expander determined in the above-described processing of 2005 to 2007 in the enclosure management table 2100 (2009).
  • the contents of the processor and enclosure management table 2100 are checked for topology violations (2010).
  • a predetermined rule four-item rule described below.
  • the check to be performed here may be a process that can confirm whether the back-end network topology is a topology that does not hinder communication (command and data transmission / reception) between the initiator and the SSD. Therefore, the present invention is not limited to the four-item rule check process described below.
  • the network topology is a process that can confirm that the topology does not hinder communication (command and data transmission / reception) between the initiator and the SSD, an arbitrary check process is executed. You can do it.
  • the first rule is that the number of connection stages from the top expander of the enclosure expander to which the SSD is connected is equal to or less than a predetermined value. This is because such an access performance between the controller and the storage device deteriorates when the expanders are connected in multiple stages. In particular, while the SSD has a high access performance, the access performance between the controller and the SSD decreases at a large rate every time the expander is increased by one stage. Therefore, providing a limit on the number of connection stages is an effective method that can utilize the high access performance of the SSD because it can prevent a decrease in access performance between the controller and the SSD. As an example of the above rule, in the storage apparatus according to the first embodiment, as shown in FIG.
  • the number of connection stages from the top expander of the enclosure expander to which the SSD is connected is one, from the initiator in the same module.
  • the number is limited to two. That is, it is a rule that does not allow a configuration in which enclosure expanders that connect SSDs (or HDDs) are further cascade-connected to enclosure expanders that connect SSDs (when such a connection (topology) is detected) An error).
  • the number of connection stages from the other in-module initiator is four.
  • the number of stages from the top expander of the enclosure expander to which the SSD is connected may be two or more if the performance permits, and may be less than or equal to a predetermined number of stages set in advance under a condition that satisfies the performance requirements.
  • the second rule is that the enclosure expander connecting the SSD and the enclosure expander connecting the HDD are not cascade-connected. Since the performance of the HDD is lower than that of the SSD, in the configuration in which the HDD and the SSD are cascade-connected (that is, the configuration in which the data transfer path is shared), the communication between the controller and the SSD is communication traffic of the low-performance HDD. Therefore, the advantage of the high access performance of SSD cannot be utilized. In this embodiment, since the connection topology of the HDD and the SSD is separated before the top expander, the SSD can be hardly affected by the HDD.
  • the third rule is that SSD and HDD are not mixed in the same enclosure expander. The reason is the same as in the second rule.
  • the third rule is a rule checked in steps 2004 to 2008.
  • the fourth rule is that the number of Phy (or ports) of the top expander that can be connected to the enclosure expander to which the HDD is connected is set to a predetermined value or less. Since HDDs have lower performance than SSDs, when an enclosure expander that connects HDDs is connected to many Phys on the top expander, an enclosure expander that connects SSDs connects only to a few Phys on the top expander It becomes impossible to extract the performance of the SSD. Therefore, the type of enclosure expander that can be connected to the top expander and the number of Phy (or ports) that can be connected to the enclosure expander are set in advance, and the set number of Phy (or ports) is not exceeded. Check.
  • the number of Phys (or ports) that can be connected to the enclosure expander is preferably “The number of Phy (or ports) of the top expander that can connect the enclosure expander that connects the SSD> The number of Phy (or ports) of the top expander that can connect the enclosure expander that connects the HDD” (It is not necessary to limit the number of Phy (or ports) of the top expander that can connect the enclosure expander that connects the SSD, and the enclosure expander that connects the HDD can be connected.
  • the number of Phys (or ports) of the top expander to which the enclosure expander to which the HDD is connected can be set to the total number of top expanders.
  • the rule may be less than half of the number of Phy (or ports)). Note that the information necessary for checking the fourth rule is all included in the enclosure management table of FIG.
  • each Phy (or port) of the top expander is provided.
  • the type of enclosure expander that can be connected that is, either the enclosure expander to which the HDD is connected or the enclosure expander to which the SSD is connected is set in advance so that only the enclosure expander of the set type can be connected. You may make it limit.
  • the fourth rule may be further limited to a rule that the routing attribute of the phy (or port) of the top expander that connects the enclosure expander to which the HDD is connected must be a Subtractive attribute.
  • the routing attribute of the phy (or port) of the top expander that connects the enclosure expander to which the HDD is connected must be a Subtractive attribute.
  • the routing attribute of the Phy constituting the port is Subtractive, it is not necessary to register the address of the SAS device connected to the end of the port in the route table of the expander.
  • Such a rule has the advantage that the number of device addresses registered in the route table of the top expander is kept low, and the back-end network initialization processing and expansion processing are speeded up.
  • the routing attribute of Phy whose Phy ID of the top expander is 0 (and Phy belonging to the same port as Phy ID of 0) is set as the Subtractive attribute as in the case of the central expander. It is only necessary to confirm whether the enclosure expander to which the HDD is connected is connected only to Phy whose Phy ID of the top expander is 0 (and Phy belonging to the same port as Phy whose ID is 0).
  • the number of connection stages from the top expander of the enclosure expander to which the HDD is connected is determined not by the performance but by the size of the rack that houses the enclosure. For example, it is limited to 12 stages counting from the initiator in the same module.
  • the limit value for the number of stages of the enclosure expander that connects the SSD from the top expander is set to be smaller than the limit value for the number of stages of the enclosure that connects the HDD from the top expander to make a difference in the limit value of the number of stages.
  • the processor checks whether there is a topology violation (2011), and if no violation is found in the four rules listed above (first rule to fourth rule), the processor advances the flow to 2013. If a topology that violates at least one rule among the four items listed above is found, the processor stops the flow as a topology violation error and notifies the administrator of the storage apparatus 100 (2012).
  • the processor checks whether or not the (N + 1) th stage enclosure expander is connected to the Nth stage enclosure expander (2013). This can be confirmed based on the device connection table for each enclosure expander created in step 1109 or 1111.
  • FIG. 17 is a diagram for explaining the contents of the enclosure management table created by the enclosure management table creation process described with reference to FIGS.
  • the enclosure management table 2100 is a table in which information on the enclosure expander connected to the top expander is used for checking the connection topology of the enclosure and creating a drive address table to be described later.
  • the enclosure management table 2100 stores a correspondence relationship between the Phy ID 2101 of the top expander Phy and the enclosure expander information connected to the Phy (directly or cascaded).
  • the enclosure expander information includes an expander stage number 2107 that indicates how many stages the enclosure expander is connected from the initiator in the same module, and information on the drives mounted in the enclosure (steps in FIG. 16). (Enclosure expander attributes determined in 2004-2007).
  • the enclosure management table 2100 If the content of an entry in the enclosure management table 2100 is “HDD”, only the HDD is mounted in the enclosure, and “SSD” indicates that only the SSD is mounted in the enclosure. If the content of a certain entry in the enclosure management table 2100 is “empty”, it means that no drive is mounted in the enclosure. If “N / A”, the enclosure is connected to the position of the number of stages. Means not. As an example, “HDD” is stored in the entry (2106) in which the PHY ID 2101 is “24 to 27” and the number of stages 2107 is “3”.
  • this entry is an enclosure expander that is cascade-connected to the top expander Phy (Phy ID is 24 to 27), and the attribute of the enclosure expander that is connected in the third row counted from the initiator is “ “HDD”, that is, an enclosure expander in which only the HDD is mounted.
  • the enclosure management table 2100 is created for each top expander when there are a plurality of top expanders.
  • FIG. 18 is a diagram for explaining the contents of the drive address table created in the process 2003 of FIG.
  • the drive address table 2200 is a table in which drive information mounted in each module is used to create a drive list table to be described later.
  • the SAS address 2201 of the drive mounted in each module, the number 2202 of the enclosure in which the drive is stored, and the enclosure (enclosure expander) are counted from the initiator in the same module.
  • the number of expander stages 2203 indicating the number of stages connected, and the Phy ID 2204 of the top expander Phy to which the enclosure expander is connected directly or indirectly are stored.
  • the Phy ID of the top expander Phy to which the second-stage enclosure expander is connected is stored in 2204.
  • the drive address table 2200 stores a drive type 2205 that indicates whether the drive is an HDD or an SSD.
  • the drive address table 2200 stores the SAS address 2206 of the top expander (top expander existing on the path from the initiator to the drive in the module) to which the drive is connected directly or indirectly.
  • the flag 2207 column exists in the drive address table 2200, but this column is not used in the storage apparatus 100 according to the first embodiment. Therefore, the flag 2207 column does not have to be included in the drive address table 2200 included in the storage apparatus 100 according to the first embodiment.
  • the flag 2207 is information used in the storage apparatus according to the fourth embodiment described later, and will be described in the fourth embodiment.
  • FIG. 19 is a diagram for explaining the drive list table created in step 1205 of FIG.
  • the drive list table 2300 is a table in which drive information shared from each module is used to create a route table for a central expander and a route table for a top expander, which will be described later.
  • the drive list table 2300 includes a SAS address 2301 of a drive (SSD or HDD) shared between the modules (101, 151) of the storage apparatus 100, a module number 2302 of the module (101, 151) to which the drive belongs, Stored is correspondence information of the SAS address 2303 of the top expander existing on the path from the initiator to the drive of the module to which the drive belongs.
  • the drive list table 2300 is a table in which SAS addresses and module numbers of drives shared by all modules are combined into one, and created by the master module. .
  • the master processor determines that the drive type 2205 is SSD from the drive address table 2200 of the master module and the slave module.
  • the entries are extracted, and for each entry, the information of the drive SAS address 2201 and the SAS address 2206 of the top expander is stored in the drive SAS address 2301 and the SAS address 2303 of the top expander of the drive list table 2300, and the module number 2303 is stored.
  • Module number to which the drive belongs (this information is equal to the module number of the module that owns the drive address table 2200 to which the extracted entry belongs.
  • this information is equal to the module number of the module that owns the drive address table 2200 to which the extracted entry belongs.
  • the flag 2304 is information used in the fourth embodiment to be described later, and is not used in the storage apparatus 100 according to the first embodiment. . Therefore, the column of the flag 2304 may not be included in the drive list table 2300 of the storage apparatus 100 according to the first embodiment.
  • FIG. 20 is a flowchart of route table creation processing of the central expander according to the first embodiment. This process corresponds to the process 1206 of FIG.
  • the master processor refers to the drive list table 2300 and executes the processes 2402 to 2405 for all entries in the drive list table 2300.
  • the master processor reads from the drive list table 2300 the drive SAS address 2301, the module number 2302 to which the drive belongs, and the SAS address 2303 (the SAS address of the top expander existing on the path from the initiator of the module to which the drive belongs to the drive). ) Is acquired (2402).
  • the master processor adds the drive SAS address (2301) acquired in step 2402 to the route table 2500 of the central expander (2403).
  • the master processor stores a value equal to the module number acquired in Step 2402 from the Phy correspondence table 1800 in the module number (1803) and a value equal to the SAS address (2303) acquired in Step 2402.
  • the Phy ID (1802) of the central expander Phy in the row stored in the SAS address (1804) column is acquired (2404).
  • the Phy correspondence table 1800 stores a value equal to the module number acquired in step 2402 in the module number (1803) and the SAS of the top expander acquired in step 2402. In some cases, a value equal to the address (2303) stored in the SAS address (1804) column is not found.
  • the master processor sets the bit corresponding to the drive SAS address and the Phy ID of the central expander to “1” in the route table of the central expander (2405).
  • bits corresponding to a plurality of Phy IDs are set to “1”. That is, when a plurality of SAS links are found between the top expander and the central expander, the bit corresponding to the Phy ID of each Phy connected to the SAS link in the route table is set to “1”.
  • FIG. 21 is a diagram for explaining the contents of the route table created by the route table creation processing of FIG. 20 and FIG.
  • the route table 2500 shows the correspondence between the SAS address 2501 and the Phy ID 2502 of the expander Phy.
  • the expander searches the SAS address 2501 of the route table 2500 for the connection destination SAS address of the connection request.
  • the expander goes to Phy connected to the other end of the SAS link connected to Phy whose corresponding Phy ID entry in the route table 2500 is “1”.
  • Establish a connection When there are a plurality of entries of “1” corresponding to the connection destination SAS address of the connection request, the expander selects one Phy from any Phy, in particular, Phy that is not currently communicating, A connection is established with Phy connected to the other end of the SAS link connected to the selected Phy.
  • FIG. 22 is a flowchart of creating a route table for the top expander according to the first embodiment. This flow is a process corresponding to the process 1207 in FIG. 19, and the processor of the master module creates the route table 2500 of the top expander connected to each module. Note that the route table 2500 of one top expander is performed by executing the processing of FIG. 22 once. Therefore, in the case of a storage apparatus having n top expanders, the processor of the master module executes the process of FIG. 22 n times.
  • the processor refers to the drive list table 2300 and loops the processing of 2602 to 2606 described below for all entries (2601 to 2607).
  • the processor selects one entry from the drive list table 2300, and obtains the drive SAS address 2301, the module number 2302 to which the drive belongs, and the SAS address 2303 of the top expander from the selected entries (2602). ).
  • the processor determines whether the module number acquired in step 2602 is the same as the module number of the module to which the processor executing this flow belongs, and the acquired SAS address 2303 of the top expander and the current processing target. It is determined whether the SAS addresses of the top expanders are the same (2603). If this determination is No, the process proceeds to 2604, and if Yes, the process proceeds to 2607.
  • the processor adds the drive SAS address acquired in step 2602 to the route table of the top expander (2604).
  • the processor stores, in the Phy correspondence table 1800, a value equal to the module number acquired in step 2602 is stored in the module number (1803), and a value equal to the SAS address acquired in step 2602 is the SAS address (1804).
  • the Phy ID (1801) of the top expander Phy in the row stored in the column of () is acquired (2605). If the top expander and the central expander are connected by a wide link, multiple Phy IDs are acquired.
  • the processor sets the bit corresponding to the drive SAS address and the PHY ID of the top expander Phy acquired in step 2605 to “1” in the route table of the top expander (2606).
  • bits corresponding to a plurality of Phy IDs are set to “1”. That is, when a plurality of SAS links are found between the top expander and the central expander, the bit corresponding to the Phy ID of each Phy connected to the SAS link in the route table is set to “1”.
  • the route table creation is completed.
  • the created route table 2500 for each top expander is transmitted to the processor of each slave module via the inter-module network 143, and As described in steps 1208 and 1210 of FIG. 12, the processor sets and updates the route table of the top expander connected to its own module.
  • the storage apparatus may be provided with a function that allows the administrator to set the type of drive that can establish a connection for each initiator of the back-end interface.
  • the processor (104, 154) of the controller operates to establish a connection with the command transmission destination drive based on the drive type information set in the initiator.
  • the administrator can establish a connection only for the HDD with initiator 0. It is assumed that the other initiators (initiators 1 to 3) are set in the storage apparatus so that a connection can be established only to the SSD. Then, when the storage controller accesses the HDD, the set information is referred to, and it is identified that the initiator 0 is the only initiator that can establish a connection with the HDD. Thereby, the storage controller performs command transmission / reception to / from the HDD via the initiator 0 (only command transmission / reception via the initiator 0 can be performed). On the contrary, since the initiators 1 to 3 can be used when accessing the SSD, it is possible to suppress deterioration in the access performance to the SSD.
  • FIG. 23 is a flowchart of the extension process according to the first embodiment.
  • the administrator uses a management terminal or the like to instruct the master processor to perform module or enclosure (HDD or SSD mounted drive enclosure) or drive expansion processing (2701).
  • the master processor that has received the instruction determines whether the addition target is a module (2702).
  • the flow executes the module extension process 2716.
  • the module expansion process will be described later (FIGS. 25 and 26).
  • the case where the instruction for the expansion process is not a module expansion instruction is a case where an enclosure or drive expansion instruction is issued.
  • the administrator adds the enclosure or drive expansion destination to the master processor.
  • the module (number) is designated (2703).
  • the master processor that has received the instruction determines whether the expansion target is an enclosure (2704). If the instruction for expansion processing is an instruction for expansion of an enclosure, the flow proceeds to 2705. If the instruction for expansion is an instruction for expansion of a drive, the flow proceeds to 2711.
  • 2705 to 2709 are drive expansion processes.
  • the administrator notifies the master processor of information on the drive expansion destination enclosure using a management terminal or the like (2705).
  • a drive is installed in the drive expansion destination enclosure.
  • extension process is a process in the master module (2707: Yes)
  • the flow proceeds to 2709. If the extension process is not a process in the master module (2707: No), the flow proceeds to 2708.
  • the master processor requests the Discover processor of the module to which the drive is to be added to perform a Discover process for the drive expansion destination enclosure.
  • the processor of the drive expansion destination module (master processor or slave processor that has received the request for Discover processing from the master processor in 2708) executes the Discover processing on the drive expansion destination enclosure.
  • the processor of the drive expansion destination module updates the entry related to the routing from the top expander to the enclosure expander in the module in the route table of the top expander.
  • the enclosure management table is also updated.
  • 2711 to 2715 are enclosure expansion processes.
  • the administrator notifies the master processor of information on an enclosure to which an expansion enclosure is connected (hereinafter referred to as an enclosure expansion destination enclosure) using a management terminal or the like (2711).
  • the administrator adds an enclosure (2712). That is, the expansion enclosure is connected to the enclosure expansion destination enclosure.
  • extension process is a process in the master module
  • the flow proceeds to 2715. If the extension process is not a process in the master module, the flow proceeds to 2714.
  • the master processor requests the slave processor of the expansion target module of the enclosure to perform a Discover process for the enclosure expansion destination enclosure and the expansion enclosure.
  • the processor of the enclosure expansion destination module executes the Discover processing on the enclosure to which the enclosure is to be added and the enclosure to be added.
  • the processor of the enclosure expansion destination module updates an entry related to routing from the top expander to the enclosure expander in the module in the route table of the top expander.
  • the enclosure management table is also updated.
  • FIG. 24 is a flowchart of an enclosure or drive addition process, which is a process corresponding to the process 2710 of FIG.
  • the processor (the processor to which the enclosure or drive is added.
  • the term “processor” is used as the term indicating the processor to which the enclosure or drive is added).
  • the drive address table and the enclosure management table are updated based on the result obtained by the Discover process performed in the process 2709 or 2715 described in the above, and the contents are checked for the presence of a topology violation (2801). The presence / absence of topology violation is checked in the same manner as the processing 2004 and 2010 in FIG.
  • the processor advances the flow to 2804 (2802). If a topology violation is found, the flow is canceled as a topology violation error and notified to the administrator of the storage apparatus 100 (2803).
  • the processor determines whether this flow is a process in the master module (2804). That is, the processor determines whether or not it is a master processor. If it is a process in the master module, the processor advances the flow to 2806; otherwise, the processor advances to 2805.
  • step 2805 the slave processor transmits the entry newly added to the drive address table to the master processor.
  • the subsequent processing (2806 to 2808) is executed by the master processor.
  • the master processor updates the drive list table 2300 (2806).
  • the master processor creates an entry in the route table of the central expander and updates the route table of the central expander (2807).
  • the master processor creates update information of the route table of each top expander, and requests the processor of each module to update the route table of each top expander (2808).
  • the processor of each module updates the route table of each top expander (2809).
  • 25 and 26 are flowcharts of module expansion processing according to the first embodiment. Before executing this flow, assume that both the device connection table creation flow of the top expander in FIG. 3 and the processor type determination flow in FIG. 6 have been completed in the extension module.
  • the master processor transmits a Discover request to the SMP target of the central expander, and updates the device connection table of the central expander (2901).
  • the master processor requests the processor (slave processor) in the added module to transmit the device connection table 800 of the top expander in the added module (2902).
  • the slave processor in the extension module receives the transmission request of the device connection table 800 of the top expander from the master processor (2903). Then, the slave processor in the extension module transmits the device connection table 800 of the top expander to the master processor (2904).
  • the master processor receives the device connection table 800 of the top expander from the slave processor of the extension module (2905).
  • the master processor updates the inter-module connection table 1600 and the Phy correspondence table 1800 based on the received device connection table 800 of the expansion module top expander (2906).
  • the master processor requests the slave processor in the extension module to execute the Discover process in the extension module (2907).
  • the slave processor receives the request for executing the discover process in the extension module from the master processor (2908), and executes the discover process in the slave module in response to this (2909).
  • the slave processor sets an entry related to routing from the top expander to the enclosure expander in the expansion module in the route table of the top expander.
  • the Discover process here is the same as the Discover process performed by a conventional storage apparatus. By executing this process, the route table of each expander in the expansion module is directly or indirectly connected to each expander.
  • the SAS address of the device (SSD, HDD, expander) to be connected is registered.
  • the slave processor creates an expansion module enclosure management table 2100 and a drive address table 2200 based on the Discover result (2910).
  • the slave processor checks the content of the enclosure management table for topology violation (3001). The presence / absence of topology violation is checked in the same manner as the processing 2004 and 2010 in FIG. Thereafter, the slave processor transmits the drive address table of the slave module to the master processor (3002).
  • the master processor receives the drive address table of the extension module from the slave processor in the extension module (3003), and updates the drive list table 2300 from the received drive address table of the extension module (3004).
  • the master processor creates an entry in the route table 2500 of the central expander based on the updated drive list table 2300 and the Phy correspondence table 1800, and updates the route table of the central expander (3005). This process is the same as the process 1206 of FIG.
  • the master processor transmits the route table of the top expander in the expansion module to the slave processor in the expansion module, and requests an update (3006).
  • the master processor updates the route table of the top expander in the master module (3009).
  • the slave processor that has received the update information of the route table of the top expander in the slave module from the master processor (3007) updates based on the received update information (3008).
  • the master processor includes a device connection table (800) of the top expander, a device connection table of the central expander, an inter-module connection table (1600), a Phy correspondence table (1800), an enclosure management table (2100), and a drive address table (2200). ),
  • the drive list table (2300) is stored in, for example, the local memory (104).
  • the slave MP stores the device connection table (800), the enclosure management table (2100), and the drive address table (2200) of the top expander, for example, in the local memory (154).
  • the above is the storage device expansion processing according to the first embodiment.
  • the storage apparatus 100 is capable of inter-module load distribution processing in which I / O processing is transferred from a module with a large load to a module with a small load. Note that the I / O processing corresponding to this load distribution processing is access to an SSD shared between modules.
  • FIG. 27 is a diagram for explaining the outline of the inter-module load distribution process according to the first embodiment.
  • an LU is a logical volume composed of one or a plurality of SSDs
  • an LUN Logical Unit Number
  • Each LU is composed of one or more SSDs belonging to one module. That is, when one LU is composed of a plurality of SSDs, the plurality of SSDs are all SSDs belonging to the same module.
  • the host computer 3100 accesses LUN # 1 (3108) by issuing a command to the module 101 of the storage apparatus 100.
  • the module in charge of access processing from the host computer 3100 or the like (this module is referred to as “owner”) is either one of the modules 101 or 151 for each LU (the SSD constituting the LU).
  • the module that is the owner stores write data from the host computer 3100 in each LU (configured SSD) and sends data read from each LU (configured SSD) to the host computer. To do.
  • the owner of each LU can be changed by an instruction from the administrator via the management terminal or by load distribution processing described later.
  • the load on the processor of the module and the load on each LU are constantly measured.
  • FIG. 28 shows a LUN mapping table 3200 managed by each module of the storage system 100 according to the first embodiment of the present invention.
  • a module responsible for LU access processing hereinafter referred to as “owner”
  • owner a module responsible for LU access processing
  • the table 3200 manages the number of the module that is the owner of each LU (owner module number).
  • Each row of the LUN mapping table 3200 indicates that the owner of the LU specified by the LUN 3201 is a module having the module number stored in the owner module number 3202.
  • the processor load of the module 101 exceeds a predetermined value and the load of the module 151 is smaller than the predetermined value. Furthermore, in module 101, it is assumed that the load on LUN # 1 (3108) is particularly high. In this case, the module (owner) responsible for the access processing from the host computer 3100 or the like to the LUN # 1 (3108) is changed from the module 101 to the module 151, and the host computer 3100 is notified that the owner has changed. Thereafter, the LUN 151 is accessed by issuing a command to the module 151.
  • the back-end network configuration it is possible to share SSDs between modules. Therefore, the I / O processing from the host computer 3100 to the volume (LUN # 1 (3108)) configured from the SSD is transferred from the module 101 to 151, and the load is distributed among the modules of the storage apparatus 100. it can.
  • FIG. 29 shows an example of an outline of the flow of inter-module load distribution processing according to the first embodiment.
  • the master processor specifies an LU with the highest LU load in a module whose module load exceeds a predetermined value, and designates it as a migration target LU (3601).
  • the processor in the migration source module requests the host computer to stop I / O for the migration target LU, and receives an I / O stop notification from the host computer (3603).
  • the processor in the migration source module destages the data stored in the cache area (memory in the migration source module) corresponding to the migration target internal LUN to the drive (3604).
  • the processor in the migration destination module stages the data corresponding to the migration target internal LUN from the drive to the cache area (memory in the migration destination module) (3605).
  • the data is transferred through the back-end network. Note that the process 3605 is not essential.
  • the owner of the migration target LU is changed (3606).
  • the processor in the migration source module changes the owner module number 3202 of the entry in the LUN mapping table 3200 in which the LUN equal to the LUN of the migration target LU is stored in the LUN 3201 to the module number of the migration destination module. To do.
  • the change contents of the LUN mapping table 3200 are also notified to the migration destination module, and the processor of the migration destination module reflects the change contents in the LUN mapping table 3200 owned by itself.
  • the processor in the migration destination module specifies information to be specified when accessing the migration target LU in the future to the host computer (for example, if the host computer 3100 and the storage apparatus 100 are connected by a fiber channel, storage The WWN of the access target port of the device and the LUN of the migration target LU) are notified (3608).
  • the processor in the migration destination module notifies the host computer that I / O can be resumed (3609).
  • the notifications 3608 and 3609 may be notified via the management terminal.
  • FIG. 40 is a diagram for explaining the topology of the back-end network in the storage apparatus according to the first modification. In this figure, description of components (processor, memory, front end interface, etc.) above the back end interface of the storage apparatus is omitted.
  • each module (M1, M2, M3, M4) has two top expanders, and each top expander is connected to a central expander 5080.
  • each top expander 5002, 5022, 5042, 5062, 5005, 5025, 5045, 5065).
  • a plurality of enclosure expanders can be connected.
  • each module has only two top expanders, but a configuration in which more than two top expanders are mounted may be used.
  • the topology restrictions as described in Embodiment 1, that is, the enclosure expanders (5006, 5026, 5046, 5066) to which the SSD is connected are the top expanders (5005, 5025, 5045, 5065), and there is a rule that cascade connection is not allowed, or cascade connection of a predetermined number of stages or more is not allowed even when cascade connection is allowed (if this rule is violated, the back-end network It is regarded as a topology violation error during the setting process). Therefore, when the number of phys of the top expander is small, the number of SSDs mounted cannot be increased. In that case, by providing a plurality of top expanders, a large number of SSDs can be mounted.
  • the same processing as that described in the first embodiment can be used for the back-end network setting pre-processing, the back-end network setting processing, and the expansion processing, and thus description of the processing is omitted. .
  • the central expander (140) described in FIGS. 1 and 2 is omitted, and the top expander 110 and the top expander 160 are directly connected by a SAS link.
  • the illustration is omitted.
  • back-end network setting pre-processing and back-end network setting processing will be described. Also in the storage device according to the second modification, substantially the same processing as the back-end network setting pre-processing and back-end network setting processing described in the first embodiment is performed. However, in the back-end network setting pre-processing according to the second modification, The processor type determination process is different from that described in the first embodiment (FIG. 6). Further, the back-end network setting process in the second modification includes the device connection table creation of the central expander in step 1101 and the central expander in step 1206 of the back-end network setting process (FIGS. 8 and 9) described in the first embodiment. Panda route table entry creation and update is omitted. Further, in the PHY correspondence table creation process in step 1106, a process different from that described in the first embodiment is performed.
  • any determination processing can be adopted as long as the determination processing can determine one master module.
  • a determination method such as comparing the value of the SAS address of the top expander and determining a module having a small value as the master module.
  • the creation process of the PHY correspondence table in the second modification is the same as the creation process of the PHY correspondence table in the first embodiment (FIG. 13), in which “central expander” is replaced with “top expander of the master module”.
  • the PHY correspondence table of Modification 1 is input with information indicating the connection between the top expander of the master module and the top expander of the slave module.
  • the Phy ID (1801) of the top expander Phy has the Phy ID of the Phy (254) of the top expander (160) of the slave module
  • the Phy ID (1802) of the central expander Phy has the central expander.
  • the Phy ID of Phy (204) of the top expander (110) of the master module is entered, and the module number of the slave module is entered in the module number (1803).
  • the above is the difference from the first embodiment in the back-end network setting pre-processing and the back-end network setting processing performed in the storage apparatus 10 according to the second modification.
  • the extension process will be described.
  • the maximum number of modules is limited to two modules. For this reason, since there is no module addition process, the module addition is not YES in step 2702 of FIG.
  • the only difference is that the creation of the route table entry and the update of the route table of the central expander are omitted in step 2807 in the enclosure or drive expansion process (FIG. 24). Other than that, there is no difference in processing.
  • the topology violation check processing of the present invention is effective.
  • the number of SSD connection stages can be reduced by connecting expanders that connect SSDs to the top expander in parallel, and high-speed storage media ( There is an effect of improving the access efficiency to the SSD by separating the connection path of the SSD and the connection path of the low-speed storage medium (HDD).
  • Modification 4 Subsequently, Modification 4 will be described. Since the components of the storage apparatus according to the modification 4 are the same as those of the storage apparatus according to the first embodiment, illustration is omitted.
  • the storage apparatus according to the modification 4 is characterized in that the top expander is logically divided using the zoning (logical division) function of the top expander. A specific example of division will be described with reference to FIG.
  • the leftmost Phy 202 among the Phy 202 connected to the initiator and the enclosure expander in which the HDD is mounted are included in the top expander 110.
  • HDD zone so that traffic from other Phys does not arrive (of course, the Phy of the top expander 110)
  • the Phy to which the enclosure expander in which the HDD is mounted is connected is not limited to the Phy 203 (for example, in FIG. 2, the leftmost Phy in the Phy 205 is connected to the enclosure expander in which the HDD is mounted) If you want to configure The may be formed a zone that includes its Phy).
  • a zone composed of the rightmost Phy 252 and the Phy 253 of the Phy 252 (hereinafter referred to as “SSD zone”) is formed, and traffic from other Phys is received. Prevent it from coming. As a result, the connection between the initiator and the SSD and the connection between the initiator and the HDD are completely separated, and the communication between the initiator and the SSD is not hindered by the communication traffic between the initiator and the HDD. is there.
  • the expander connected to the Phy of the top expander belonging to the HDD zone (including cascade connection) If only the HDD is connected to the enclosure expander, and the expander connected to the Phy of the top expander belonging to the SSD zone is an enclosure expander to which only the SSD is connected Good. If the enclosure expander to which the HDD is connected is connected to only the sub attribute Phy of the top expander Phy, only the HDD is connected to the top expander Sub attribute Phy. You may make it check whether it is done.
  • the back-end network setting pre-processing, back-end network setting processing, and expansion processing in the topology for connecting the SSDs of the storage device according to the modification 4 are the same as those in the first embodiment, and thus description thereof is omitted here. .
  • Modification 5 In the modification 4, the configuration example in which the connection between the initiator and the SSD and the connection between the initiator and the HDD are completely separated using the zoning function of the top expander has been described. Another configuration example that completely separates the connection between the initiator and the SSD and the connection between the initiator and the HDD will be described.
  • the Phy 206 (256) of the enclosure expander 122 (172) to which the HDD is connected is directly connected to the module back-end interface 107 (157) without being connected to the top expander.
  • the connection between the initiator and the SSD and the connection between the initiator and the HDD are completely separated, and the communication between the initiator and the SSD is the communication traffic between the initiator and the HDD. The advantage of not being disturbed is obtained.
  • the storage apparatus according to the second embodiment of the present invention is characterized in that the SSD and HDD connected to the storage apparatus can be shared between the modules through the back-end network, and sharing or non-sharing of the drive between the modules can be set. Furthermore, the storage apparatus of the second embodiment can increase the number of connected HDDs as compared to the storage apparatus 100 of the first embodiment.
  • the storage apparatus of the second embodiment has the same configuration and control method as the storage apparatus 100 of the first embodiment, except for the HDD connection topology and the control method for realizing HDD sharing.
  • FIG. 30 is a diagram for explaining the back-end topology of the storage apparatus according to the second embodiment and the routing attributes of each expander Phys.
  • FIG. 30 The difference between FIG. 30 and FIG. 2 is that the enclosure expanders 3702 and 3703 for HDD connection are connected to the top expander 110 first. Another point is that enclosure expanders 3752 and 3753 for HDD connection are connected to the top expander 160. Further, the routing attribute of the top expander Phy 253 that connects the enclosure expander 172 via the SAS link 165 is changed to Table. The routing attribute of the top expander Phy 3701 that connects the enclosure expander 3702 and the top expander Phy 3751 that connects the enclosure expander 3752 is Table. In the storage apparatus of the second embodiment, the SAS link connecting the central expander 140 and the top expander 160 is a table-to-table connection as in the storage apparatus 100 of the first embodiment.
  • the sharing setting table 4000 of the top expander Phy includes information on the SAS address 4001 of the top expander, the Phy ID 4002 of the top expander Phy, the routing attribute 4003 of the Phy, whether the enclosure expander is connected to the Phy 4004, and the sharing flag 4005. Is a table storing.
  • the share setting table 4000 of the top expander Phy is information created for each module and stored in the memory of each module.
  • the processor of each module for all Phys of each top expander in its own module, obtains information on a set of Phy ID 4002, routing attribute 4003 of the Phy, and whether or not an enclosure expander is connected to the Phy 4004, of the top expander Phy. Stored in the shared setting table 4000.
  • the storage of various information (4001 to 4004) in the sharing setting table 4000 of the top expander Phy is performed simultaneously with the device connection table creation process (FIG. 3) of the top expander.
  • the shared flag 4005 is not information that is automatically set and stored by the processor 104 (154). Although details will be described later, this information is set by the administrator during the back-end network setting process and the expansion process. The administrator can set “1” or “0” in the sharing flag 4005.
  • the sharing flag is “1”, “sharing” of the drives in the enclosure expander connected to the corresponding top expander Phy is set to be possible, and when it is “0”, it is set to “unshared”.
  • the storage apparatus according to the second embodiment sets drive sharing or non-sharing for each top expander Phy to which the enclosure expander is connected. Drives in a plurality of enclosure expanders cascaded from the same top expander Phy are shared or unshared together. Further, the storage apparatus according to the second embodiment can set drive sharing or non-sharing for each top expander Phy to which the enclosure expander is connected by setting the sharing flag 4005 of the top expander Phy sharing setting table 4000. it can.
  • Steps 3801 to 3805 in FIG. 31 are different from steps 1104 to 1105 in FIG.
  • Steps 3801 and 3802 correspond to steps 1104 and 1105 in FIG. 8, respectively.
  • Steps 3803 to 3805 are newly added processes in the back-end network setting process.
  • step 3801 the slave processor transmits the device connection table 800 of the top expander and the shared setting table 4000 of the top expander Phy to the master processor (3801).
  • the master processor receives the device connection table 800 of the top expander and the shared setting table 4000 of the top expander Phys from the slave processor (3802).
  • the administrator sets a desired value for the shared flag of each entry in the shared setting table 4000 of each top expander Phy received from each slave processor (3803).
  • the master processor transmits the shared setting table 4000 of each top expander Phy updated by the administrator to each slave processor (3804).
  • the slave processor receives the shared setting table of the top expander Phy from the master processor, and updates the contents of the shared setting table 4000 of the top expander Phy stored in the memory of the slave module.
  • the sharing setting of the top expander Phy (contents of the sharing flag 4005) is stored in each module (3805).
  • step 32 is a process corresponding to step 1205 in FIG. 9, but there is a change.
  • the master processor creates a drive list table 2300 from the drive address table 2200 of the master module and the slave module (3901).
  • the master processor sets the sharing flag 4005 of the drive set in the sharing setting table 4000 of each top expander Phy (the sharing flag 4005 of the sharing setting table 4000 of the top expander Phy) from the drive address table 2200 of each module.
  • the information of the drive connected to the enclosure expander connected (cascade connection) to the top expander Phy (Phy identified by Phy ID4002) set to "" is extracted and registered in the drive list table 2300 To do.
  • FIG. 34 is a flowchart of the extension process according to the second embodiment.
  • Steps 4101 to 4106 in FIG. 34 are processes newly added to the flow in FIG. Also, steps 2710 and 2716 in FIG. 23 are changed to steps 4107 and 4108 in FIG. 34, respectively.
  • step 4101 the master processor checks the number of connection stages from the initiator of the added enclosure. If the expansion enclosure is directly connected to the top expander, the number of stages is two. If the number of stages is 2, that is, if the additional enclosure is connected to the top expander, the process proceeds to step 4102; otherwise, the process proceeds to step 4107.
  • step 4102 the slave processor of the expansion target module transmits the device connection table 800 of the top expander and the shared setting table of the top expander Phy to the master processor (4102).
  • the master processor receives the device connection table 800 of the top expander and the shared setting table of the top expander Phy from the slave processor of the expansion target module (4103).
  • the administrator sets a desired value in the shared flag 4005 of each entry in the shared setting table of the top expander Phys received from the slave processor (4104).
  • the master processor transmits the shared setting table of the top expander Phy updated by the administrator to the slave processor (4105).
  • the slave processor of the expansion target module receives the shared setting table of the top expander Phy from the master processor, and updates the content of the shared setting table 4000 of the top expander Phy stored in the memory of the slave module ( 4106).
  • Step 4107 executes the process of FIG.
  • Step 4108 executes the processing of FIG. 36 and FIG.
  • FIG. 35 is a flowchart of enclosure or drive expansion processing according to the second embodiment. Since this flow is almost the same as the flowchart of the enclosure or drive expansion process according to the first embodiment of FIG. 24, differences will be described. Step 4202 in FIG. 35 is processing newly added to the flow in FIG. Also, step 4201 in FIG. 35 is changed from 2805 in FIG.
  • step 4201 the slave processor adds the entry newly added to the drive address table and the entry in which the sharing setting of the corresponding top expander Phy is set to “shared” to the drive address table.
  • the slave processor transmits the entry newly added to the drive address table to the master processor (4202).
  • Steps 4301 to 4305 in FIG. 36 are different from steps 2904 to 2905 in FIG. Steps 4301 and 4302 correspond to steps 2904 and 2905, respectively. Steps 4303 to 4305 are newly added processes in this module addition process.
  • step 4301 the slave processor of the expansion target module transmits the device connection table 800 of the top expander and the shared setting table of the top expander Phy to the master processor (4301).
  • the master processor receives the device connection table 800 of the top expander and the shared setting table of the top expander Phy from the slave processor of the expansion target module (4302).
  • the administrator sets a desired value for the shared flag of each entry in the shared setting table of the top expander Phys received from the slave processor (4303).
  • the master processor transmits the shared setting table of the top expander Phy updated by the administrator to the slave processor (4304).
  • the slave processor of the expansion target module receives the shared setting table of the top expander Phy from the master processor, and stores the shared setting of the top expander Phy in each module (4305).
  • Step 4401 in FIG. 37 is processing corresponding to step 3004 in FIG. 26, but there is a change.
  • step 4401 the master processor creates a drive list table 2300 from the drive address table 2200 of the extension module (4401). At this time, the master processor extracts the drive set to be shared in the sharing setting table of the top expander Phy of the expansion module from the drive list table 2200 of the expansion module and registers it in the drive list table 2300.
  • FIG. 37 Other processing in FIG. 37 is the same as the flow in FIG. The above is the description of the extension process according to the second embodiment of the present invention.
  • the storage apparatus according to the second embodiment can share HDDs and SSDs between modules.
  • I / O processing related to SSDs and HDDs can be load-balanced between modules, and the performance of the storage apparatus can be improved.
  • a plurality of HDDs can be mounted in the storage apparatus of the second embodiment by connecting a plurality of cascaded enclosure expanders connected to the HDDs for each top expander.
  • sharing or non-sharing of the drive is set for each top expander Phy to which the enclosure expander is connected, but may be set for each drive.
  • a column for setting a sharing flag is provided in the drive address table so that sharing or non-sharing of the drive can be set for each drive.
  • the administrator may be allowed to set sharing or non-sharing for each drive described in the drive address table.
  • the drive that can be set to be shared is limited to the drive that is set to be shared in the shared setting table of each top expander Phy so that there is no conflict with the setting of the shared setting table of the top expander Phy.
  • step 3901 the master processor selects a drive that is set to be shared in the sharing setting table of each top expander Phy from the drive list table 2200 of each module and that is set to be shared by the administrator in units of drives. Extracted and registered in the drive list table 2300.
  • the subsequent processing is the same as in FIG. As a result, it is possible to set sharing or non-sharing for each drive, and the setting is appropriately reflected in the route table of the central expander and the top expander of each module.
  • an externally configurable expander route table can be set even if the link between externally configurable expanders is a table-to-table connection.
  • FIG. 38 is a diagram for explaining inter-module connection of the storage apparatus according to the third embodiment.
  • the third embodiment is characterized in that the internal configuration of each module and the inter-module network are made redundant.
  • the storage apparatus 4500 includes four modules 4601 and 4501 to 4503.
  • the four modules are interconnected by two inter-module networks 4530 and 4531. Further, the four modules interconnect the back-end networks of the modules with two central expanders 4510 and 4520.
  • the description returns to the description of the storage apparatus 4500 of FIG.
  • FIG. 39 is a diagram for explaining the internal configuration of the storage apparatus according to the third embodiment.
  • the module 4601 includes controllers 4602 and 4652, top expanders 4610 and 4660, enclosure expanders 4619, 4620, 4622, 4623, 4669, 4670, 4672 and 4673, SSDs 4625 and 4626, and HDDs 4628 and 4629.
  • the controller 4602 (4652) includes a processor 4603 (4653), a front-end interface 4605 (4655), a memory 4604 (4654), a back-end interface 4607 (4657), and a network interface 4609 (4659).
  • the front end interface 4605 (4655) is connected to a host computer (not shown) via a channel 4606 (4656).
  • the front end interface 4605 (4655) converts a data transfer protocol between the host computer and the controller 4602 (4652) and a data transfer protocol in the controller 4602 (4652).
  • the back-end interface 4607 (4657) connects the controller 4602 (4652) and the top expander 4610 (4660) via the SAS link 4608 (4658).
  • the back-end interface 4607 (4657) converts the data transfer protocol in the controller 4602 (4652) and the data transfer protocol between the controller 4602 (4652) and the top expander 4610 (4660).
  • the back end interface 4607 (4657) includes a SAS initiator.
  • the network interface 4609 (4659) is connected to the inter-module network, 4530 in FIG. 38 (4531 in FIG. 38) via the network channel 4642 (4692), and the control information and various tables of the storage device 4500 are exchanged between the modules. Send and receive.
  • the memory 4604 (4654) is a main memory of the processor 4603 (4653), and stores a program (storage control program and the like) executed by the processor 4603 (4653), a management table referred to by the processor 4603 (4653), and the like. .
  • the memory 4604 (4654) is also used as a cache memory of the storage apparatus 4500.
  • the processor 4603 transfers data between the host computer connected via the front-end interface 4605 (4655) and the HDD 4628, 4629 or SSD 4625, 4626 connected via the back-end interface 4607 (4657). Control.
  • Processors 4603 and 4653 are connected by an interprocessor channel 4630. Accordingly, the processor 4603 can access the memory 4654 and the processor 4653 can access the memory 4604 mutually. Data in the cache memory of the storage device is duplicated using this interprocessor channel 4630.
  • HDDs 4628 and 4629 and SSDs 4625 and 4626 are dual-port drives and can be accessed from the back-end networks 4607 and 4657 of the two controllers 4602 and 4652.
  • the top expander 4610 (4660) is connected to the central expander, 4510 in FIG. 38 (4520 in FIG. 38) via the SAS link 4641 (4692).
  • the top expander 4610 (4660) is connected to the enclosure expander 4622 (4672) via the SAS link 4615 (4665).
  • the enclosure expander 4622 (4672) connects to the enclosure expander 4623 (4673) via the SAS link 4616.
  • the SAS link between module 1 4501, module 2 4502, module 3 4503 and central expander 4510 is a table-to-table connection.
  • the SAS link between module 0 4601, module 2 4502, module 3 4503 and central expander 4520 is a table-to-table connection.
  • Enclosure expanders 4622 and 4623 (4672 and 4673) connect one or more HDDs 4628 and 4629, respectively.
  • the added enclosure expander is connected to the SAS link 4617 (4667).
  • the expander to which the HDD is connected is connected in series from the top expander 4610 (4660).
  • top expander 4610 is connected to the enclosure expander 4619 (4669) via the SAS link 4611 (4661). Similarly, top expander 4610 (4660) connects to enclosure expander 4620 (4670) via SAS link 4612 (4662). Enclosure expanders 4619 and 4620 (4669 and 4670) connect one or more SSDs 4625 and 4626, respectively.
  • the enclosure expander to be added is connected to the SAS link 4613 (4663). As described above, the expander connecting the SSD is connected in parallel from the top expander 4610 (4660) to the expander connecting another SSD.
  • the storage apparatus 4500 includes two back-end networks: a network that interconnects modules with a central expander 4510 and a network that interconnects modules with a central expander 4520.
  • the module 4601 is connected to Phy 4511 of the central expander 4510 via the SAS link 4641.
  • the routing attribute of Phy 4511 is Subtractive. Therefore, for the back-end network to which the central expander 4510 is connected, the module 4601 is a master module.
  • the module 4501 is connected to Phy 4521 of the central expander 4520.
  • the routing attribute of Phys 4521 is Subtractive. Therefore, for the back-end network to which the central expander 4520 is connected, the module 4501 becomes the master module.
  • the SAS links connecting the central expander and each module are table-to-table connections.
  • the two back-end networks of the storage device 4500 have different master modules.
  • a case is assumed where a failure occurs in the module 4601 and the master module 4601 cannot perform processing such as Discover.
  • the back-end network including the central expander 4510 cannot perform a Discover process for inter-module connection due to a master module failure.
  • the master module 4501 is normal and there is no problem in continued operation. In this way, in the redundant back-end network configuration, reliability can be improved by assigning different modules to the master module.
  • an externally configurable expander route table can be set even when the inter-module network is made redundant as in the storage apparatus according to the third embodiment.
  • FIG. 41 is a diagram for explaining the topology of the back-end network in the storage apparatus according to the fourth embodiment.
  • the components above the back-end interface of the storage device are the same as those of the storage device according to the first embodiment and the description thereof is omitted.
  • the difference from the topology of the back-end network in the storage apparatus according to the first embodiment is that the SSD 5100 may be connected to the central expander 5080 in the storage apparatus of the present embodiment.
  • the SSD 5100 connected to the central expander 5080 can be shared by each module. Further, the only storage device that can be connected to the central expander 5080 is the SSD, and it is not permitted to connect the HDD.
  • the advantage of this configuration is that since the SSD 5100 connected to the central expander 5080 has two stages from any initiator to the SSD connected to the central expander, the access latency from any initiator is the same. .
  • the flow of back-end network setting processing, check for topology violation (SSD can be connected to the central expander, but if a HDD is connected, an error is reported as a topology violation), Since the flow of the extension process is different, this will be described below. Note that the back-end network setting pre-processing of this configuration is the same as that of the first embodiment.
  • the back-end network setting process of this configuration is different from the process described in the first embodiment in the following points.
  • the master module discovers the device connected to the central expander in addition to the Discover in the module.
  • the SSD 5100 connected to the central expander 5080 is recognized.
  • the Discover of the SSD connected to the central expander is performed by transmitting a Discover request to the SMP target 1501 of the central expander 140.
  • a topology violation check is performed (when the HDD is connected to the central expander, an error is notified as a topology violation).
  • the master module distinguishes between the SSDs connected to the central expander or the SSDs in the module for each SSD in the apparatus, and the master module manages the drive address table 2200 ( FIG. 18) has a column for storing a flag (2207) indicating whether the SSD is connected to the central expander. If the SSD 5100 connected to the central expander 5080 is recognized as a result of Discover of the device connected to the central expander, the master module stores the information of the recognized SSD 5100 in the drive address table 2200 (FIG. 18). While registering, a flag (2207) indicating whether the SSD is connected to the central expander is set to “1”. At this time, no value is stored in the enclosure number 2202 in which the drive is stored in the drive address 2200 and the number of expander stages 2203.
  • the drive list table (FIG. 19) managed by the storage apparatus according to the fourth embodiment also has a column for storing a flag (2304) indicating whether the SSD is connected to the central expander. .
  • the flag 2207 is also extracted from the drive address table and stored in the drive list table.
  • the route table creation process for the top expander (the process described in FIG. 22 performed in step 1207 in FIG. 9) is changed. Specifically, in step 2602 of FIG. 22, “the processor acquires a flag (2303) from the drive list table in addition to the drive SAS address, the module number, and the top expander SAS address” is performed.
  • step 2603 “the acquired module number and the number of the module executing this flow are the same, and the acquired top expander SAS address and the SAS address of the current processing target top expander are the same. If they are the same, and the flag (2303) is not "1" (that is, indicates that the SSD is not connected to the central expander) (that is, if the flag (2301) is 1, step Processes 2604 to 2606 are performed).
  • step 2605 if the flag (2301) is not 1, the same processing as that described in the first embodiment is performed, but if the flag (2301) is 1, “the processor is the route in this flow.
  • the process acquires the Phy ID (1801) of the top expander Phy corresponding to the SAS address of the top expander that is the table creation target. Other points are the same as the processing described in the first embodiment.
  • step 2709 of FIG. 23 when the drive expansion destination is the central expander, the master module is the Discover. Processing to perform is added. Other points are the same as those described in the first embodiment.
  • FIG. 42 is a diagram for explaining the topology of the back-end network in the storage apparatus according to the fifth embodiment.
  • the components above the back-end interface of the storage device are the same as those of the storage device according to the first embodiment and the description thereof is omitted.
  • expanders (5202, 5222, 5220, 5222,...) For connecting enclosure expanders to the top expanders (5002, 5022, 5042, 5062). 5242 and 5262) are cascade-connected.
  • the expander (5202, 5222, 5242, 5262) for connecting the cascaded enclosure expander to the top expander is referred to as the second HDD enclosure top expander (“2nd Top” in the figure).
  • the expander that is cascade-connected next is described as the third HDD enclosure top expander 5302 (denoted as “3rd Top Exp” in the figure.
  • the second HDD enclosure top as an example
  • the third HDD enclosure top expander is connected only to the expander 5202), and the next expander connected in cascade is called the fourth HDD enclosure top expander.
  • the nth expander connected is referred to as the nth HDD enclosure top expander.
  • the second to nth HDD enclosure top expanders are similar to (normal) top expanders in that end devices (SSD, HDD) are not directly connected, but only expanders are connected. Therefore, in this specification, this is referred to as an nth HDD enclosure top expander.
  • the enclosure expander connected in cascade with the second to nth HDD enclosure top expanders connects only HDDs, and a topology violation occurs when an SSD is connected.
  • An advantage of this configuration is that a topology branching from the nth HDD enclosure top expander to a large number of cascade topologies can be formed in the back-end network, so that a large number of HDDs can be mounted.
  • the expander type registered in the expander type management table 700 includes “HDD” in addition to the enclosure expander, top expander, and central expander used in the previous embodiments. "Enclosure top expander" is registered.
  • the administrator enters the SAS address of the n-th HDD enclosure top expander in the expander type management table 700 and its The type (HDD enclosure top expander) is registered.
  • the flow of the back-end network setting process and the presence / absence of a topology violation are checked (SSD connection is prohibited after the second to nth HDD enclosure top expanders), and the expansion process Since the flow is different, this will be described below.
  • the back-end network setting pre-processing is the same as the processing in the first embodiment.
  • the back-end network setting process and the extension process of this configuration have the following differences from the process described in the first embodiment.
  • the change is that the topology is checked to see if the SSD is connected to the enclosure expander prior to the second HDD enclosure top expander.
  • the enclosure management table creation processing the processing of 1110 to 1201 in FIG. 8, 9 or the processing of 1112 to 1203
  • the enclosure expander connected to the top expander Performs the same enclosure management table creation and topology violation check (FIG. 15) as in the first embodiment.
  • the topology check (FIGS. 43 and 44) from the second HDD enclosure top expander described below is performed.
  • step 5502 the topology check (FIG. 44) of the nth HDD enclosure top expander is performed.
  • step 5601 the processor transmits a Discover request specifying the Phy ID of each External Phy to the SMP target of the nth HDD enclosure top expander. This Discover request transmission is performed for all External Phys.
  • step 5602 the processor determines the type of one or more expanders connected to the next stage of the nth HDD enclosure top expander from the connection destination SAS address included in the Discover response.
  • step 5603 the variable n is incremented by one.
  • step 5604 loop processing is executed for the expander connected to the next stage.
  • step 5605 it is determined whether or not the type of the expander at the next stage is an enclosure expander.
  • step 5606 a topology check (FIG. 45) of the enclosure expander connected to the next stage is performed. If it is determined in step 5605 that the determination result is not an enclosure expander, that is, if it is the nth HDD enclosure top expander, the process proceeds to step 5607. In step 5607, the topology check of the nth HDD enclosure top expander is performed (that is, the process of FIG. 44 is recursively executed). In step 5608, after the loop processing is completed for all the expanders connected to the next stage, the flow processing ends.
  • Fig. 45 shows the processing flow of the topology check of the enclosure expander connected to the next stage.
  • This flow is a flow in which the steps (2009 to 2012) related to the enclosure management table are omitted from the recognition of the enclosure expander connected to the next stage (FIG. 16).
  • the drive breakdown check performed in step 2004 ' if the enclosure expander includes an SSD, it is determined that the topology is violated and an error is reported. Since the other points are the same as the flow of FIG. 16, the description thereof is omitted.
  • FIG. 46 is a diagram for explaining the topology of the back-end network in the storage apparatus according to the sixth embodiment.
  • the components above the back-end interface of the storage device are the same as those of the storage device according to the first embodiment and the description thereof is omitted.
  • the back-end network described here can be applied to a configuration in which the path from the initiator to the drive (storage device) is made redundant as in the storage apparatus according to the third embodiment. Only the back-end network of the system is illustrated.
  • the back-end network 4700 of the storage apparatus in this embodiment has (1) a plurality of top expanders 4731 to 4738, and (2) top This is the point that the expander enclosure and the drive enclosure are integrated so that the SSD can be connected to the top expander.
  • the number of phys per top expander can be reduced.
  • the number of connection stages from the initiator to the SSD is 1 in the module (2 in the first embodiment).
  • the number of enclosures can be reduced by a number equal to the number of top expanders.
  • An enclosure in which a top expander enclosure and a drive enclosure are integrated so that an SSD can be connected to the top expander is called a top drive enclosure.
  • the back-end interface 4701 has a plurality of HBAs (470-24705) equipped with a plurality of initiators, and each HBA has two initiators (4706 and 4707, 4708 and 4709, 4710 and 4711, 4712 and 4713). Have.
  • a RAID (Redundant Arrays of Independent Disks) group is configured by using two or more drives selected from the drives (HDD or SSD) accessible from the back-end interface 4701.
  • the back end interface 4701 has the same number (for example, eight) of initiators as the number of drives constituting the RAID group.
  • the first-stage top expander and initiator are connected one-to-one via a SAS link (4770), and each SAS link (4770) is, for example, a 4-wide link. SAS links 4720-4727 lead to the central expander.
  • Each top drive enclosure (4741-4748) can only be equipped with SSD, and HDD connection is prohibited.
  • a set of drive enclosures mounted with drives that can form a RAID group is referred to as a RAID group enclosure structural unit.
  • eight top drive enclosures (4741 to 4748) are managed as one RAID group enclosure structural unit (4730). Note that not all drives in the RAID group enclosure structural unit (4730) are used to form a RAID group. For example, when the administrator wants to create one RAID group, for example, one drive is selected from each top drive enclosure in the RAID group enclosure structural unit (4730), and the selected eight drives are used.
  • a RAID group of 7D + 1P (which means a RAID configuration in which parity is created from each unit of data stored in a distributed manner on 7 drives and the created parity is stored in the 8th drive) Can do.
  • a 3D + 1P RAID group can be configured by selecting one drive from each of the four top enclosures (4741 to 4744 or 4745 to 4748).
  • the top expander has a role of separating the topology connecting the SSD and the topology connecting the HDD.
  • a method for managing expanders connected to the second and subsequent stages (back-end network setting pre-processing, setting processing, expansion processing, etc.) is also the same as in the first embodiment.
  • Drives directly connected to the top expander (referred to as “first stage drives”) are separately managed in the same manner as in the conventional cascade topology.
  • sharing setting (“shared” or "non-shared"
  • the first stage drive is driven in the same way as the second and subsequent stages. It is to register in the address table.
  • Enclosure expanders in RAID group enclosure structural units 4750 and 4751 configured from enclosures connected in the second stage and enclosure expanders cascaded before this are limited to only the enclosure expanders that connect SSDs. Is done. Similar to the first embodiment, there is a limit to the number of connection stages of the enclosure expander to which the SSD is connected.
  • An enclosure expander in the RAID group enclosure structural unit 4760 and an enclosure expander connected earlier are defined as enclosure expanders that connect only HDDs. ing.
  • Enclosure expanders in the RAID group enclosure structural unit connected prior to the RAID group enclosure structural unit 4760 are cascade-connected.
  • the RAID group configuration method in the RAID group enclosure configuration unit (4750, 4751, 4760, 4761) is the same as the RAID group enclosure configuration unit (4730).
  • the enclosure expander to which the SSD is connected starts from the first stage, the expander in the RAID group enclosure structural unit (4730) at the first stage, and the RAID group enclosure structural unit (4750, 4751) at the second stage. This is followed by the expander in the RAID group enclosure unit connected to the third stage and the second stage.
  • the enclosure expander to which the HDD is connected starts from the second stage, the expander in the RAID group enclosure structural unit (4760) in the second stage, and the expander in the RAID group enclosure structural unit connected to the second stage in the third stage.
  • FIG. 47 shows another form of the sixth embodiment. 46 is different from the topology of the back end network in the storage apparatus according to FIG. 46 in that the number of top expanders (4831 to 4834) is smaller than the number of initiators 4806 to 4813 in the back end network 4800 of the storage apparatus in FIG. It is a point.
  • the top expander at the first stage is connected to two initiators by the SAS link (4860), and the number of top expanders is half the number of initiators.
  • a network band equivalent to that in FIG. 46 can be realized by making each SAS link (4860), for example, an 8-wide link that is double that in FIG.
  • the connection relationship between the top expander and the initiator is not limited to the configuration shown in FIG. 47, and the top expander at the first stage may be connected to more than two initiators via SAS links.
  • the difference between the example of FIG. 46 where the number of top expanders is 8 and the example of FIG. 47 where the number of top expanders is 4 is as follows. (1) In the example of FIG. 46, the number of top expanders in the first stage is larger than in the example of FIG. 47, and Phy required for the top expander can be suppressed to a small number. (2) In the example of FIG. 46, the number of Phys required for the top expander at the first stage is increased, while the number of drive enclosures in the RAID group enclosure configuration unit can be reduced by half (from 8 to 4). Thereafter, the description is the same as in FIG.
  • the backend interface 4801 has a plurality of HBAs (4802 to 4805) equipped with a plurality of initiators, and each HBA has two initiators (4806 and 4807, 4808 and 4809, 4810 and 4811, and 4812 and 4813). Two initiators are connected via a SAS link 4860 to one top expander in the first stage. SAS links 4820-4823 lead to the central expander.
  • the four top drive enclosures (4831 to 4834) are the RAID group enclosure structural unit (4830). Two drives are selected from each top drive enclosure to form a 7D + 1P RAID group. It is also possible to select one drive from each of the top enclosures (4831 to 4834) to form a 3D + 1P RAID group.
  • the top expander has the role of separating the topology for connecting the SSD and the topology for connecting the HDD, as in the case of FIG. 46, as in the first embodiment.
  • the method for managing the second and subsequent stages is the same as in the first embodiment, but the first-stage drive connected to the top expander is managed separately (The same management method as described in FIG. 46).
  • the enclosure expanders in the RAID group enclosure structural units 4840 and 4841 in the second stage and the enclosure expanders connected before this are limited to only the enclosure expanders that connect the SSD. Similar to the first embodiment, there is a limit to the number of stages of enclosure expanders to which the SSD is connected.
  • RAID group enclosure structural units connected prior to the RAID group enclosure structural unit 4850 are cascade-connected.
  • the enclosure expander in the RAID group enclosure structural unit 4850 and the enclosure expander (4851) connected before this are limited to only the enclosure expander to which the HDD is connected.
  • the RAID group configuration method in the RAID group enclosure configuration unit (4840, 4841, 4850, 4851) is the same as the RAID group enclosure configuration unit (4830).
  • the enclosure expander to which the SSD is connected starts from the first stage, the expander in the RAID group enclosure structural unit (4830) at the first stage, and the RAID group enclosure structural unit (4840, 4841) at the second stage. This is followed by the expander in the RAID group enclosure unit connected to the third stage and the second stage.
  • the enclosure expander to which the HDD is connected starts from the second stage, the expander in the RAID group enclosure structural unit (4850) in the second stage, and the expander in the RAID group enclosure structural unit connected to the second stage in the third stage.
  • the topology of the back-end network (FIGS. 46 and 47) of the storage apparatus according to the sixth embodiment is different from the topologies of the first and second embodiments except that a drive (SSD) is connected to the top expander. There is no. Therefore, the back-end network setting pre-processing, back-end network setting processing, and expansion processing in the storage device according to the sixth embodiment may be performed in the same manner as in the first and second embodiments.
  • a column for setting a sharing flag is provided in the sharing setting table or the drive address table of the top expander Phy, and by allowing the administrator to set sharing or non-sharing, It is also possible to share or unshare the drive mounted in the top drive enclosure.
  • the topology violation check performed in the course of the back-end network setting process or the like may be performed in the same manner as that described in the first embodiment (first rule to fourth rule).
  • only the SSD is mounted on the enclosure expander in the RAID group enclosure structural units 4750 and 4751 and the enclosure expander cascade-connected earlier, and the RAID group.
  • the enclosure expander in the enclosure structural unit 4760 and the enclosure expander connected earlier are limited to a configuration in which only HDDs are mounted.
  • the topology violation check is preferably performed.
  • the administrator sets information on the type of enclosure expander that can be connected (enclosure expander that connects HDD or enclosure expander that connects SSD).
  • the storage device is provided with a means that can do this, and when checking the topology violation that is performed during the backend network setting process, etc., it is checked whether an appropriate enclosure expander is connected based on the set information. That's fine. For example, for each Phy (or port) of the top expander to which the enclosure expander in the RAID group enclosure structural units 4750 and 4751 is connected, information indicating that an enclosure expander on which only an SSD is mounted can be connected is set. By doing so, it is possible to check whether or not only the SSD is installed in the enclosure expander in the RAID group enclosure structural units 4750 and 4751 and the enclosure expander cascade-connected earlier. It is.
  • the storage apparatus has a function of checking topology violations at the time of initialization or expansion of the back-end network in a storage apparatus in which storage devices having different access performance such as HDD and SSD are mixed.
  • the performance of the SSD can be fully exhibited.
  • a back-end network that allows SSDs to be shared and accessed from a plurality of storage controllers is provided, it is easy to improve storage performance by distributing load among modules. Further, during load distribution processing, I / O processing can be transferred between modules without movement of data in the SSD.
  • the route table of the externally configurable expander can be set even if the link between the externally configurable expanders is a table-to-table connection.
  • a user who performs large-scale data processing such as big data analysis can quickly respond to large-scale data and can access the data at high speed. Can be improved.
  • the embodiment of the present invention has been described above, but this is an example for explaining the present invention, and is not intended to limit the present invention to the embodiment described above.
  • the modification described above may be combined with the second embodiment. It is also possible to combine modifications.
  • the configuration of the storage device described in the embodiment is not limited to the above-described configuration. For example, a configuration in which a plurality of CPUs exist in the controller may be employed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 少ない段数でSSDをコントローラ間で共有可能にするとともに、多数のHDDを搭載可能なバックエンドネットワークを実現し、ストレージの高性能化を可能とする。 バックエンドネットワークのトポロジにおいて、各コントローラ102、152とエンクロージャエクスパンダを、それぞれトップエクスパンダ110、160で接続し、トップエクスパンダ110と160をセントラルエクスパンダ140で接続し、トップエクスパンダ110にSSDを接続するエクスパンダ119、120、121を互いに並列に接続し、トップエクスパンダ160にSSDを接続するエクスパンダ169、170、171を互いに並列に接続し、トップエクスパンダ110にHDDを接続するエクスパンダ122、123、124を直列に接続し、トップエクスパンダ160にHDDを接続するエクスパンダ172、173、174を直列に接続する。

Description

ストレージ装置
 本発明は、異なる種類の記憶媒体を混在して搭載するストレージ装置に関する。
 ストレージ装置は、一般的にランダムアクセス可能な不揮発性記憶媒体を備える。ランダムアクセス可能な不揮発性記憶媒体は、例えば、磁気ディスクドライブ、光ディスクドライブ等である。また現在主流のストレージ装置は、ハードディスクドライブ(HDD)を複数備える。
 また、半導体技術の進歩に伴って、ストレージ装置の記憶媒体として使用可能な不揮発性半導体メモリが開発されている。このような不揮発性半導体メモリを記憶媒体とするドライブには、例えばソリッドステートドライブ(SSD)がある。SSDを備えるストレージ装置は、ハードディスクドライブ(HDD)のみを備えるストレージ装置に比べ、省電力、アクセス時間などに優れている。
 ストレージ装置は、ストレージ装置に接続したホストコンピュータおよびストレージ装置内の記憶媒体との間のデータ転送を制御するコントローラを備える。コントローラは、ホストコンピュータを接続するフロントエンドインターフェース、記憶媒体として多数のドライブを接続するバックエンドインターフェース、ストレージ装置を制御するためのプロセッサおよびプロセッサに接続されたメモリ等を備える。また、バックエンドインターフェース等を接続するための通信ネットワークの標準規格として、SAS(Serial Attached SCSI)が知られている。
 SASバックエンドネットワークは、イニシエータ、SSDやHDDなどのドライブ、エクスパンダ(以下、「Exp」とも記す。)を含む。イニシエータは、ドライブにRead、Write等のコマンド要求を出すデバイスであり、例えばコントローラのバックエンドインターフェースに含まれる。エクスパンダは、イニシエータに複数のドライブを接続するためのスイッチである。多数のドライブをつなぐために、エクスパンダ同士を複数接続して使用する。
 従来のストレージ装置においては、多数のドライブを接続するために、エクスパンダをカスケード(直列)で接続する形態が一般的である。特許文献1では、エクスパンダをカスケードで接続する方法が示されている。
米国特許出願公開第2011/0125943号明細書
 従来のHDDを搭載することを前提として作られているストレージ装置に、HDDよりも高性能なSSD等のデバイスを搭載した場合、SSDの性能を充分に活用することができないことがある。特許文献1で示されているような従来のカスケード接続においては、エクスパンダを多段につないだときにコントローラとドライブ間のアクセス性能が低下する問題があり、SSDの性能を充分に発揮させることができない。
 また、SSDをストレージ装置へ搭載した場合、従来のHDDを搭載することを想定したストレージ装置のコントローラでは、コントローラ内のプロセッサが性能上のボトルネックとなることもある。
 本発明はこのような背景に鑑みてなされたものであり、高速な記憶媒体と低速な記憶媒体とを混在搭載するストレージ装置の高性能化を主たる目的とする。
 本発明は上記課題を解決するために、1以上のストレージコントローラと、性能の異なる複数種類の記憶デバイスであるHDDとSSDとが、ストレージコントローラと記憶デバイス間に設けられる複数のエクスパンダと伝送線から成るバックエンドネットワークで接続されて構成されるストレージ装置において、バックエンドネットワークのトポロジが、あらかじめ定められたルールに違反していないかを判定する制御を行う。具体的には、バックエンドネットワークの初期化処理において、各エクスパンダに接続されている記憶デバイスやエクスパンダの情報を取得し、取得された記憶デバイスやエクスパンダの情報に基づいて、バックエンドネットワークのトポロジが、あらかじめ定められたルールに適合しているかを判定する。
 ルールに適合しているトポロジとは、バックエンドネットワークのトポロジが、HDDに対する通信トラフィックによってストレージコントローラとSSD間の通信(コマンドやデータの送受信)が阻害されないように構成されているトポロジである。ルールとしてたとえば、各エクスパンダに接続される記憶デバイスを、HDDのみ、あるいはSSDのみとするというルールが挙げられる。また、エクスパンダを多段にカスケード接続すると、コントローラとSSD間のアクセス性能が低下するため、HDDの接続されるエクスパンダはカスケード接続を許すが、SSDの接続されるエクスパンダをカスケード接続させない、というルールが挙げられる。
 また、本発明のストレージ装置は、ストレージコントローラが性能上のボトルネックとならないようにするため、複数のストレージコントローラを有し、各ストレージコントローラが、バックエンドネットワークを介して、各SSDに共有アクセス可能な構成を備えるものである。
 本発明によると、少ないエクスパンダ段数でSSDをコントローラ間で共有可能にするとともに、多数のHDDを搭載可能なバックエンドネットワークを実現でき、ストレージを高性能化できる。
実施例1に係るストレージ装置のブロック図である。 実施例1に係るストレージ装置のエクスパンダPhyのルーティング属性を説明する図である。 実施例1に係るトップエクスパンダのデバイス接続テーブル作成のフローチャートである。 実施例1に係るエクスパンダ種別管理テーブルを説明する図である。 実施例1に係るトップエクスパンダのデバイス接続テーブルを説明する図である。 実施例1に係るプロセッサ種別判定のフローチャートである。 実施例1に係るプロセッサがトップエクスパンダと通信する経路を説明する図である。 実施例1に係るバックエンドネットワーク設定処理のフローチャートである。 実施例1に係るバックエンドネットワーク設定処理のフローチャートである。 実施例1に係るセントラルエクスパンダのデバイス接続テーブル作成のフローチャートである。 実施例1に係るマスタープロセッサが、スレーブプロセッサ及びセントラルエクスパンダと通信する経路を説明する図である。 実施例1に係るモジュール間接続テーブルを説明する図である。 実施例1に係るPhy対応テーブル作成のフローチャートである。 実施例1に係るPhy対応テーブルを説明する図である。 実施例1に係るエンクロージャ管理テーブル作成のフローチャートである。 実施例1に係るエンクロージャ管理テーブル作成のフローチャートである。 実施例1に係るエンクロージャ管理テーブルを説明する図である。 実施例1に係るドライブアドレステーブルを説明する図である。 実施例1に係るドライブリストテーブルを説明する図である。 実施例1に係るセントラルエクスパンダのルートテーブル作成のフローチャートである。 実施例1に係るルートテーブルを説明する図である。 実施例1に係るトップエクスパンダのルートテーブル作成のフローチャートである。 実施例1に係る増設処理のフローチャートである。 実施例1に係るエンクロージャまたはドライブ増設処理のフローチャートである。 実施例1に係るモジュール増設処理のフローチャートである。 実施例1に係るモジュール増設処理のフローチャートである。 実施例1に係るモジュール間負荷分散処理の概要を説明する図である。 実施例1に係るLUNマッピングテーブルを説明する図である。 実施例1に係るモジュール間負荷分散処理のフローチャートである。 実施例2に係るストレージ装置のエクスパンダPhyのルーティング属性を説明する図である。 実施例2に係るバックエンドネットワーク設定処理のフローチャートである。 実施例2に係るバックエンドネットワーク設定処理のフローチャートである。 実施例2に係るトップエクスパンダPhyの共有設定テーブルを説明する図である。 実施例2に係る増設処理のフローチャートである。 実施例2に係るエンクロージャまたはドライブ増設処理のフローチャートである。 実施例2に係るモジュール増設処理のフローチャートである。 実施例2に係るモジュール増設処理のフローチャートである。 実施例3に係るストレージ装置のモジュール間接続を説明する図である。 実施例3に係るストレージ装置のモジュール内構成を説明する図である。 変形例1に係るバックエンドネットワークトポロジを説明する図である。 実施例4に係るバックエンドネットワークトポロジを説明する図である。 実施例5に係るバックエンドネットワークトポロジを説明する図である。 2番目のHDDエンクロージャトップエクスパンダから先のトポロジチェック処理のフローチャートである。 n番目のHDDエンクロージャトップエクスパンダのトポロジチェック処理のフローチャートである。 次段につながるエンクロージャエクスパンダのトポロジチェック処理のフローチャートである。 実施例6に係るバックエンドネットワークトポロジを説明する図である。 実施例6に係るバックエンドネットワークトポロジを説明する図である。
 図1から図29により、本発明の実施例1に係るストレージ装置を説明する。説明の流れは、以下の通りである。先ず、図1から図2により、実施例1に係るストレージ装置の構成を説明する。次に、図3から図6により、実施例1に係るストレージ装置のバックエンドネットワーク設定前処理を説明する。次に、図7から図22により、実施例1に係るストレージ装置のバックエンドネットワーク設定処理を説明する。このバックエンドネットワーク設定処理の目的は、Table-to-Table接続を含むバックエンドネットワークにおいて、エクスパンダのルートテーブルを作成することである。次に、図23から図26により、実施例1に係るストレージ装置の増設処理を説明する。最後に、図27から図29により、実施例1に係るストレージ装置の負荷分散処理を説明する。
 先ず、実施例1に係るストレージ装置の構成を説明する。図1は、実施例1に係るストレージ装置100のブロック図である。
 ストレージ装置100は、1個以上のモジュール(図1の構成例ではモジュール101と151)で構成される。本発明の実施例1に係るストレージ装置100では、バックエンドネットワークを通じて、ストレージ装置100に接続されたSSDをモジュール間で共有可能であることが特徴である。なお、本明細書において、「バックエンドネットワーク」とは、ストレージ装置100のコントローラにSSDやHDD等のエンドデバイスを接続するためのネットワークで、伝送線(SASリンク)及びスイッチ(エクスパンダ)で構成されたネットワークのことを意味する。
 また、本明細書における「共有」の定義は次の通りである。あるデバイス(SSD等)が「共有可能」という場合、それは、ストレージ装置100の複数モジュール(のコントローラのプロセッサ)が、バックエンドネットワークを通じて対象となるデバイスにアクセス可能な状態になっていることを意味する。逆に「あるデバイスが非共有」とは、ストレージ装置100内のいずれか1つのモジュール(のコントローラのプロセッサ)しか、バックエンドネットワークを通じて当該デバイスにアクセスできない状態になっていることを意味する。
 図1のストレージ装置100の構成の詳細な説明の前に、実施例1に係るエクスパンダの種類と役割を説明する。本発明の実施例では、ストレージ装置100のバックエンドネットワークで用いられるスイッチデバイスであるエクスパンダを、その役割に応じて3種類に分類し、それぞれを異なる名称で呼ぶこととする。第1の種類のエクスパンダは、ドライブエンクロージャ内に配置されるエクスパンダで、ドライブを接続するためのものである。これを本発明の実施例ではエンクロージャエクスパンダと呼ぶ。第2の種類のエクスパンダは、SSDを接続するトポロジとHDDを接続するトポロジを分離する役割を担うエクスパンダであり、バックエンドインターフェース107(157)に備えられたイニシエータとエンクロージャエクスパンダとの間に配置され、イニシエータと直接接続されるものである。これを本発明の実施例ではトップエクスパンダと呼ぶ。SSDを接続するトポロジとHDDを接続するトポロジを分離するとは、別の言い方をすると、イニシエータに直接つながるPhy以外のエクスパンダのPhy(SASデバイスを1本の物理リンクに接続するためのインターフェース)毎に、その先につながるモジュール内ドライブの種類が1種類に決まっている(たとえばあるPhyの先につながるドライブはSSDのみと決められており、また別のPhyの先につながるドライブはHDDのみと決められている)状態にあることを意味する。第3の種類のエクスパンダは、モジュール間を接続する役割を担うエクスパンダであり、各モジュールのトップエクスパンダと接続されるものである。これを本発明の実施例ではセントラルエクスパンダと呼ぶ。なお、トップエクスパンダは、電源、ファンなどとともに、エンクロージャ(以下、このエンクロージャをトップエクスパンダエンクロージャ、と呼ぶ)に格納される。同様に、セントラルエクスパンダも、電源、ファンなどとともに、エンクロージャ(以下、このエンクロージャをセントラルエクスパンダエンクロージャ、と呼ぶ)に格納される。
 図1の説明に戻る。実施例1では例として、ストレージ装置100は、2個のモジュール101と151からなる。モジュールは、コントローラと、コントローラが直接つながるトップエクスパンダと、トップエクスパンダからセントラルエクスパンダを介さずにアクセスできる範囲のエンクロージャエクスパンダとドライブを含む。モジュール101と151は、セントラルエクスパンダ140の有無以外は同じ構成である。本実施例では、例として、セントラルエクスパンダ140は、モジュール101内に格納されているとする。ただしセントラルエクスパンダ140は、モジュール101と151の何れに格納されても、或いは、モジュール101、151とは別の筐体に格納されてもよい。
 モジュール101(151)は、コントローラ102(152)、トップエクスパンダ110(160)、エンクロージャエクスパンダ119~124(169~174)、SSD125~127(175~177)、及びHDD128~130(178~180)で構成される。コントローラ102(152)と、SSD125~127(175~177)及びHDD128~130(178~180)との間の通信は、SAS(Serial Attached SCSI)規格に従って行われる。また、図1では記載を省略しているが、モジュール101(151)にはNIC(Network Interface Controller)が備えられ、ストレージ装置100の管理者がストレージ装置100の各種設定を行うための管理端末が接続可能である。
 コントローラ102(152)は、プロセッサ(MP)103(153)、フロントエンドインターフェース105(155)、ローカルメモリ(「LM」または「メモリ」と略記されることもある)104(154)、バックエンドインターフェース107(157)、及びネットワークインターフェース109(159)を備える。
 フロントエンドインターフェース105(155)は、チャネル106(156)を介してホストコンピュータ(図示せず)に接続する。また、フロントエンドインターフェース105(155)は、ホストコンピュータとコントローラ102(152)間のデータ転送プロトコルと、コントローラ102(152)内のデータ転送プロトコルを変換する。
 バックエンドインターフェース107(157)は、コントローラ102(152)とトップエクスパンダ110(160)をSASリンク108(158)で接続する。また、バックエンドインターフェース107(157)は、コントローラ102(152)内のデータ転送プロトコルと、コントローラ102(152)とトップエクスパンダ110(160)間のデータ転送プロトコルを変換する。また、バックエンドインターフェース107(157)は、複数のSASイニシエータを備える。
 ネットワークインターフェース109(159)は、モジュール間ネットワーク143に接続し、モジュール間でストレージ装置100の制御情報や各種テーブル等を送受信する。
 メモリ104(154)は、プロセッサ103(153)の主記憶であり、プロセッサ103(153)が実行するプログラム(ストレージ制御プログラム等)や、プロセッサ103(153)が参照する管理テーブル等が格納される。また、メモリ104(154)は、ストレージ装置101のディスクキャッシュ(キャッシュメモリ)としても使用される。
 プロセッサ103(153)は、フロントエンドインターフェース105(155)を介して接続されるホストコンピュータ(非図示)と、バックエンドインターフェース107(157)を介して接続したHDD128~130(178~180)またはSSD125~127(175~177)との間の、データ転送を制御する。
 SSD125~127(175~177)、及びHDD128~130(178~180)は、ホストコンピュータからのライトデータを格納する記憶デバイスである。本発明の実施例に係るストレージ装置100では、HDD128~130(178~180)には磁気ディスクドライブが用いられる。一方SSD125~127(175~177)は、HDD128~130(178~180)に比べてアクセス性能の高いデバイスで、本発明の実施例に係るストレージ装置100では、SSD(Solid State Drive)のような、フラッシュメモリを記憶媒体として用いた記憶デバイスが用いられる。ただし、本発明は、磁気ディスクドライブやSSDを使用する態様に限定されるものではなく、磁気ディスクドライブやSSD以外の記憶媒体を採用しても、本発明は有効である。
 トップエクスパンダ110(160)は、SASリンク141(142)を介して、セントラルエクスパンダ140に接続する。また、トップエクスパンダ110(160)は、SASリンク115を介してエンクロージャエクスパンダ122(172)に接続する。エンクロージャエクスパンダ122(172)は、SASリンク116(166)を介してエンクロージャエクスパンダ123(173)に接続する。同様に、エンクロージャエクスパンダ123(173)は、SASリンク117を介してエンクロージャエクスパンダ124(174)に接続する。エンクロージャエクスパンダ122~124(172~174)は、それぞれ1個以上のHDD128~130(178~180)を接続する。モジュール101(151)にHDD増設のためのエンクロージャエクスパンダを増設する場合には、増設するエンクロージャエクスパンダをSASリンク118(168)に接続する。このように、HDDを接続するエクスパンダは、トップエクスパンダ110(160)から直列に接続する。
 トップエクスパンダ110(160)はまた、SASリンク111(161)を介してエンクロージャエクスパンダ119(169)に接続する。また、トップエクスパンダ110(160)は、SASリンク112(162)を介してエンクロージャエクスパンダ120(170)に接続する。同様に、トップエクスパンダ110(160)は、SASリンク113(163)を介してエンクロージャエクスパンダ121(171)に接続する。エンクロージャエクスパンダ119~121(169~171)は、それぞれ1個以上のSSD125~137(175~177)を接続する。モジュール101(151)にSSD増設のためのエンクロージャエクスパンダを増設する場合には、増設するエンクロージャエクスパンダをSASリンク114(164)に接続する。このように、SSDを接続するエクスパンダは、トップエクスパンダ110(160)から、他のSSDを接続するエクスパンダに並列に接続する。
 続いて、SAS規格のエクスパンダPhyのルーティング属性について説明する。
 エクスパンダPhyのルーティング属性には、Directルーティング属性とTableルーティング属性とSubtractiveルーティング属性の3種類がある。以下、3種類のルーティング属性を、それそれ、Direct、Table、Subtractiveと略すことにする。通常、エクスパンダPhyにエンドデバイスを直接接続する場合、Phyルーティング属性がDirectであるPhyに接続する。またエクスパンダPhyに別のエクスパンダを接続する場合は、Phyルーティング属性がTableであるPhyに接続する。DirectでもTableでもないエクスパンダPhyのルーティング属性はSubtractiveである。エクスパンダ内の各Phyのルーティング属性の設定は、管理者により適宜変更できるが、SAS規格では、Subtractiveルーティング属性は、エクスパンダ当たりに1個のポートに属するPhyのみに設定できると定められている。ポートとは、2つのSASデバイス間を接続するためのインターフェースであり、1つのPhy,もしくは、複数のPhyを含む。
 エクスパンダは、コネクション要求を受信した場合に、先ずその接続先デバイスを特定するためのアドレス情報であるSASアドレスが、DirectのPhyの接続先デバイスのSASアドレスか否かを調べる。コネクション要求の接続先SASアドレスがDirectのPhyの接続先デバイスのSASアドレスと一致した場合、エクスパンダはそのPhyにつながるSASリンクの別の端につながるPhyへコネクションを確立させる。一致しなかった場合、エクスパンダは、コネクション要求の接続先SASアドレスがTableのPhyの接続先SASアドレスか否かを調べる。TableのPhyの接続先SASアドレスは、エクスパンダ内のルートテーブルに格納されている。ルートテーブル内に接続先SASアドレスが見つかった場合、エクスパンダはそのPhyにつながるSASリンクの別の端につながるPhyへコネクションを確立させる。コネクション要求の接続先SASアドレスが、DirectおよびTableのPhyの接続先SASアドレス内に一致するものがなかった場合、エクスパンダは、SubtractiveのPhyにつながるSASリンクの別の端につながるPhyへコネクションを確立させる。エクスパンダはこのようなルールで動作するため、Phyのルーティング属性がSubtractiveの場合、そのPhyの先につながるSASデバイスのアドレスを、エクスパンダのルートテーブルに登録する必要がない。そのため、ルートテーブルサイズを小さくすることができる。特に、エクスパンダ同士の接続がSubtractive-to-subtractiveの場合、両エクスパンダにおいてルートテーブルサイズを小さくできる利点がある。なお、エクスパンダのSubtractive属性を持つ1個以上のPhyは同一のポートに含まれる。エクスパンダのPhyの中で、Direct属性かつ接続先のSASデバイスが同一である1個以上のPhyは同一のポートに含まれる。エクスパンダのTable属性を持ち、ルートテーブル内容が同一である1個以上のPhyは、同一のポートに含まれる。
 図2は、実施例1に係るストレージ装置100に接続されている各エクスパンダのPhyのルーティング属性を説明する図である。
 バックエンドインターフェース107(157)が備える複数のイニシエータ201(251)と接続するトップエクスパンダ110(160)のPhy202(252)のルーティング属性は、Directである。HDDを接続するエンクロージャエクスパンダ122(172)を接続するトップエクスパンダ110(160)のPhy203(253)のルーティング属性は、Subtractiveである。セントラルエクスパンダ140と接続するトップエクスパンダ110(160)のPhy204(254)のルーティング属性は、Tableである。Phy254とPhy265を接続するSASリンク142はTable-to-table接続である。SSDを接続するエンクロージャエクスパンダ119~121(169~171)を接続するトップエクスパンダ110(160)のPhy205(255)のルーティング属性は、Tableである。
 セントラルエクスパンダ140において、モジュール101のトップエクスパンダ110と接続するPhy215のルーティング属性は、Subtractiveである。モジュール151を接続するPhy265のルーティング属性は、Tableである。Phy214、264は、ストレージ装置100を3個または4個のモジュール構成にするために、増設モジュールを接続するためのPhyであるが、これらのルーティング属性は、Tableである。セントラルエクスパンダ140とトップエクスパンダ160を接続するSASリンク142が、Table-to-Table接続になる。
 ところで、SAS規格において、エクスパンダにはExternally configurable expanderとSelf-configuring expanderの2種類がある。従来のカスケード接続バックエンドにおいては前記両方の種類のエクスパンダを使用することができる。しかし、本発明の実施例に係るストレージシステムのように、高い信頼性や高い性能を求められる装置で用いられるバックエンドネットワークには、以下の3つの理由からSelf-configuring expanderを使用することができず、バックエンドネットワークで用いられるエクスパンダはExternally configurable expanderに限られる。
 まず1つ目の理由として、Self-configuring expanderはシステム管理者が指定するストレージバックエンドのトポロジ違反を考慮せず、バックエンドネットワークの初期化処理(Discoverプロセス)で検索したデバイスを全て認識(Discover)してしまう問題がある。記憶デバイスとしてHDDのみを用いるストレージ装置の場合、トポロジ(バックエンドネットワーク上の、各SASデバイスの接続態様)違反を検出する必要は無かったが、SSDとHDDという、アクセス性能の異なる複数種類のデバイスを混載するストレージ装置では、バックエンドネットワークへの各デバイスの接続態様(トポロジ)によっては、ストレージ装置のコントローラとHDDとの間の通信トラフィックが、コントローラとSSDとの間の通信を阻害し、SSDの性能を適切に発揮させることができないことがある。そのため、バックエンドネットワークの設定時、あるいはドライブ等の増設時に、バックエンドネットワークのトポロジが、SSDのアクセス性能を適切に引き出せないようなトポロジ(本明細書では、このようなトポロジになっている場合のことを、「トポロジ違反」と呼ぶ)になっていないか確認する処理(トポロジ違反の検出)を行うことが必要であるため、Self-configuring expanderをモジュール間バックエンドのエクスパンダに適用することができない。
 2つ目の理由として、Self-configuring expanderでは、デバイスをバックエンドに接続もしくは接続解除する、デバイスに障害が発生するなどの場合に、デバイス間のリンクをリセットするLink Resetが行われるタイミングで、Discoverプロセスを実行してしまう問題がある。デバイスをバックエンドに接続もしくは接続解除する場合において、システム管理者が予め計画したタイミングでDiscoverプロセスを実行することにより、ストレージシステムはバックエンドの性能低下がホストコンピュータに与える影響を小さく抑えている。しかし、Self-configuring expanderではシステム管理者の予期せぬタイミングでDiscoverを実施し、バックエンドの性能低下がホストコンピュータに大きな影響を与える可能性があるため、Self-configuring expanderをモジュール間バックエンドのエクスパンダに適用することができない。
 最後に、3つ目の理由として、ストレージ装置では高い信頼性が求められているため、ストレージのコントローラで動作するマイクロプログラムがバックエンドネットワークの初期化処理を行っている。一方で、Self-configuring expanderにおいてはクスパンダのファームウエアが初期化処理を行っており、ストレージ装置における高い信頼性を実現することができないという問題がある。
 上記のTable-to-Table接続には、Externally configurable Expanderの場合、従来のバックエンド初期化処理で初期化できないという課題がある。
 SSDを接続するエンクロージャエクスパンダ119(169)において、トップエクスパンダ110(160)に接続するPhy212(262)のルーティング属性は、Subtractiveである。SSDを接続するPhy213(263)のルーティング属性は、Directである。エンクロージャエクスパンダ120、121(170、171)も同様である。
 HDDを接続するエンクロージャエクスパンダ122、123(172、173)において、トップエクスパンダ110(160)の方向へ接続するPhy206、209(256、259)のルーティング属性は、Subtractiveである。HDDを接続するPhy207、210(257、260)のルーティング属性は、Directである。また、HDDを接続するエンクロージャエクスパンダを接続するためのPhy208、211(258、261)のルーティング属性は、Tableである。エンクロージャエクスパンダ124(174)も同様である。
 トップエクスパンダ110(160)とエンクロージャエクスパンダ122(172)を接続するSASリンク115(165)は、Subtractive-to-Subtractive接続である。実施例1のストレージ装置100は、Subtractive-to-Subtractive接続の先にあるドライブ(HDD)をモジュール間で共有することもできるが、本実施例では共有しない設定とする。そのため、トップエクスパンダ110(160)及びセントラルエクスパンダ140のルートテーブルには、HDDのSASアドレスを登録しない。その結果、ストレージ装置100に多数のHDDを搭載しても、トップエクスパンダ110(160)及びセントラルエクスパンダ140のルートテーブルサイズを小さくすることができる。
 なお、図2では、説明を簡単にするため、エクスパンダ間やイニシエータとエクスパンダ間を接続するSASリンクを一本の線で表現している。またSASリンク両端のPhyもそれぞれ1個ずつしか描いていない。実際には、これらSASリンクはワイドリンクであり、SASリンク両端も複数のPhyからなるワイドポートである。例えば、イニシエータ201(251)を備える4つのポートは、それぞれワイドポートであり、また、Phy202(252)を備える4つのポートは、それぞれワイドポートである。また、SASリンク108(158)の4つのSASリンクは、それぞれワイドリンクである。エンクロージャエクスパンダとドライブ間を接続するSASリンクは、ナローリンクでもワンドリンクでもよい。後述の図7、図11、図30、図38等についても同様である。
 続いて本発明の実施例1に係るセントラルエクスパンダのPhy IDとルーティング属性の対応のルールについて説明する。
 前述の通り、各エクスパンダにおいて、ルーティング属性をSubtractiveに設定できるPhyの属するポートは、1個のみである。本発明の実施例1に係るストレージ装置100におけるセントラルエクスパンダでは、Phy IDが0のPhyのルーティング属性をSubtractiveに設定することにしている。そしてPhy IDが0であるPhyがワイドポートを構成する場合、Phy IDが0のPhyと同じポートに属するPhyのルーティング属性もSubtractiveになる。また、接続先がエクスパンダであり、且つPhy IDが0であるPhyの属するポートとは異なるポートに属するPhyのルーティング属性はTableにすることにしている。さらに、ドライブを直接接続するPhyのルーティング属性はDirectにすることにしている。
 以上が、本発明の実施例1に係るストレージ装置100の構成である。
 次に、バックエンドネットワークの初期化処理の説明を行う。バックエンドネットワークの初期化処理では、最初にバックエンドネットワーク設定前処理を行い、続いてバックエンドネットワーク設定処理を行う。
 まず、バックエンドネットワーク設定前処理を説明する。この前処理では、トップエクスパンダのデバイス接続テーブル800の作成処理と、マスタープロセッサの判定処理が行われる。バックエンドネットワーク設定前処理は、後述するバックエンドネットワーク設定処理(図11~12)に先立って行われる処理で、ストレージ装置100を構成する各モジュール(101、151)のコントローラ(102、152)に備えられたプロセッサ(103、153)が実行する。
 まず、バックエンドネットワーク設定前処理でストレージ装置100が用いるテーブルについて説明する。図4は、実施例1に係るエクスパンダ種別管理テーブルを説明する図である。
 エクスパンダ種別管理テーブル700は、ストレージ装置100に接続されているエクスパンダのSASアドレス701と、そのエクスパンダの種別702との対応付けを格納するテーブルである。エクスパンダの種別としては、先に述べたとおり、エンクロージャエクスパンダ(Enc Exp)、トップエクスパンダ(Top Exp)、そしてセントラルエクスパンダ(Central Exp)があるので、エクスパンダの種別702の欄にはこのいずれかの情報が格納される。エクスパンダ種別管理テーブル700は、コントローラ102(152)内のメモリ104(154)内に格納され、プロセッサ103(153)は、エクスパンダ種別管理テーブル700を参照することにより、ストレージ装置100のバックエンドネットワークに接続されたエクスパンダの種別を知ることができる。エクスパンダ種別管理テーブル700の内容は、管理者によって、あらかじめ(ストレージ装置100の起動前に)設定され、ストレージ装置100が複数のコントローラ(102、152など)を有する場合、設定された内容は各コントローラ(102、152)内の各メモリ(104、154)に格納される。また、ストレージ装置100の起動後に、後からエクスパンダを増設する場合には、増設するエクスパンダのSASアドレスと役割(エクスパンダの種別)を、管理者は、予めエクスパンダ種別管理テーブル700に登録しておくか、増設時に追加する。
 図5は、実施例1に係るトップエクスパンダのデバイス接続テーブルを説明する図である。デバイス接続テーブルは、後述するモジュール間接続テーブルの作成に使用する、エクスパンダとエクスパンダにつながるデバイスとの接続情報をまとめたテーブルである。
 デバイス接続テーブル800は、トップエクスパンダPhyのPhy ID801と、トップエクスパンダに接続されているデバイスの種類802と、トップエクスパンダに接続されているデバイスのSASアドレス803と、接続先デバイスのPhy ID804との対応を格納する。例えば、トップエクスパンダPhyのPhy ID4~7は、セントラルエクスパンダPhyのPhy ID0~3と接続していることが分かる。ストレージ装置100において、トップエクスパンダは、イニシエータまたは他のエクスパンダとのみ接続する。プロセッサ103(153)は、接続先デバイスがエクスパンダである場合、その種別を、エクスパンダ種別管理テーブル700を参照して判定する。また、プロセッサ103(153)は、イニシエータから直接取得したSASアドレスにより、接続先デバイスがイニシエータか否かを判定する。この判定は、例えば、トップエクスパンダの接続先デバイスの種類を、セントラルエクスパンダ、トップエクスパンダ、エンクロージャエクスパンダ、イニシエータ等の中から判定するときに用いる。
 なお、デバイス接続テーブル800は、トップエクスパンダごとに生成される。そのため、1モジュール内に複数(たとえばn個)のトップエクスパンダが存在する場合には、当該モジュールのプロセッサはn個のデバイス接続テーブル800を作成する。
 図3は、バックエンドネットワーク設定前処理の1つである、トップエクスパンダのデバイス接続テーブル作成のフローチャートである。
 ストレージ装置100を構成する各モジュール内のプロセッサが、バックエンドネットワーク設定処理(図8~9)に先立って、図3のフローを実行する。例として、モジュール101におけるトップエクスパンダ110のデバイス接続テーブル作成フローを説明する。
 プロセッサ103は、バックエンドインターフェース107内のイニシエータが、トップエクスパンダ110と直接接続しているか否かをチェックする(601)。これは、プロセッサが、イニシエータが実行したIdentificationシーケンスの結果と、エクスパンダ種別管理テーブル700を調べることにより可能である。その結果、トップエクスパンダと直接接続していないイニシエータが一つでもあった場合は、トポロジ違反エラーとしてフローを中止し、ストレージ装置100の管理者へ通知する(602)。たとえば、プロセッサ103から管理端末の画面に、トポロジ違反が存在している旨のエラーメッセージを表示させる等の方法で、管理者への通知が行われる。全てのイニシエータがトップエクスパンダ110に接続していた場合は、603へ進む。
 次に、プロセッサ103は、トップエクスパンダ110内の全てのExternal Phyについて、ループ処理を実行する(603~605)。なお、モジュール内に複数のトップエクスパンダ110が存在する構成の場合、モジュール内全トップエクスパンダ110の全External Phyについて、ループ処理(603~605)を実行する。
 プロセッサ103は、トップエクスパンダ110内のSMPターゲットへ、External PhyのPhy IDをセットしたDiscoverリクエストを送信し、それに対するレスポンスを受信する(604)。受信したレスポンスには、Discoverリクエスト内に指定したPhy IDに対応するトップエクスパンダPhyの接続先の、SASアドレスとPhy IDが含まれる。
 プロセッサ103は、トップエクスパンダ110内の全てのExternal Phyについて、Discoverリクエスト送信とレスポンス受信を繰り返す(605)。
 そして、プロセッサ103は、受信したレスポンスから、トップエクスパンダ110のデバイス接続テーブル800を作成する(606)。なお、モジュール内に複数のトップエクスパンダ110が存在する構成の場合、デバイス接続テーブル800をトップエクスパンダ110ごとに作成する。
 図6は、バックエンドネットワーク設定前処理で行われるもう1つの処理である、プロセッサ種別(マスタープロセッサ)判定のフローチャートである。この処理は、図3を用いて説明したデバイス接続テーブル作成処理の後に実行される。
 先ず、プロセッサ103は、トップエクスパンダ110のデバイス接続テーブル800において、接続先デバイス種別がセントラルエクスパンダであるエントリを検索する(901)。
 そして、プロセッサ103が、デバイス接続テーブル800内に接続先デバイスがセントラルエスパンダであるエントリがあるか否かを判定する(902)。
 否の場合(902:No)、トポロジ違反エラーとして処理を中止し、ストレージ装置100の管理者へ通知する(903)。なお、モジュール内に複数のトップエクスパンダが存在する構成の場合、全トップエクスパンダのデバイス接続テーブル800について、接続先デバイス種別がセントラルエクスパンダであるエントリがあるか否か検索する。接続先デバイス種別がセントラルエクスパンダであるエントリが存在しないデバイス接続テーブル800が1つでも存在した場合には、トポロジ違反エラーとして処理を中止し、ストレージ装置100の管理者へ通知する。
 該当するエントリがあった場合(902:Yes)、接続先デバイスのPhy IDを調べる(904)。トップエクスパンダ110が、Phy IDが0のセントラルエクスパンダPhyと接続していた場合、プロセッサ103は自身がマスタープロセッサであると判定する(905)。
 それに対して、トップエクスパンダ110が、Phy IDが0のセントラルエクスパンダPhyと接続していなかった場合、プロセッサ103は自身がスレーブプロセッサであると判定する(906)。なお、モジュール内に複数のトップエクスパンダが存在する構成の場合、モジュール内のいずれかのトップエクスパンダ110が、Phy IDが0のセントラルエクスパンダPhyと接続していた場合、プロセッサ103はマスタープロセッサであると判定され、いずれのトップエクスパンダ110も、Phy IDが0のセントラルエクスパンダPhyと接続していない場合には、プロセッサ103はスレーブプロセッサであると判定される。
 Phy IDが0であるセントラルエクスパンダPhyのルーティング属性は、Subtractiveである。本発明のストレージ装置では、ルーティング属性がSubtractiveであるセントラルエクスパンダPhyと接続するトップエクスパンダを有するモジュールを、マスターモジュールと定義する。また、マスターモジュール内のプロセッサをマスタープロセッサと定義する。さらに、マスターモジュール以外のモジュールをスレーブモジュール、スレーブモジュール内のプロセッサをスレーブプロセッサと定義する。つまり、ストレージ装置100の各エクスパンダPhyのルーティング属性が図2に示したようになっている場合には、プロセッサ103がマスタープロセッサ、モジュール101がマスターモジュール、プロセッサ153がスレーブプロセッサ、モジュール151がスレーブモジュールとなる。以降の各処理の説明の際には、プロセッサ103がマスタープロセッサ、モジュール101がマスターモジュール、プロセッサ153がスレーブプロセッサ、モジュール151がスレーブモジュールであるという前提で説明する。
 なお、図7は、実施例1に係るプロセッサ103(153)がトップエクスパンダへDiscoverリクエストを送信する経路と、それに対するレスポンスを受信する経路を説明する図である。
 モジュール101において、プロセッサ103は、バックエンドインターフェース107内のイニシエータ1001を介して、トップエクスパンダ110内のSMP(Serial Management Protocol)ターゲット(Serial Management Protocolを受け付けるターゲットデバイス)1004へ、Discoverリクエストを送信する(1002)。それに対して、SMPターゲット1004は、受信したDiscoverリクエストと同じ経路で、レスポンスを返送する(1003)。
 同様に、モジュール151において、プロセッサ153は、バックエンドインターフェース157内のイニシエータ1051を介して、トップエクスパンダ160内のSMPターゲット1054へ、Discoverリクエストを送信する(1052)。それに対して、SMPターゲット1054は、受信したDiscoverリクエストと同じ経路で、レスポンスを返送する(1053)。
 以上により、実施例1に係るストレージ装置のバックエンドネットワーク設定前処理を説明した。
 次に、実施例1に係るストレージ装置のバックエンドネットワーク設定処理を説明する。図8、9は、実施例1に係るバックエンドネットワーク設定処理のフローチャートである。
 このフロー実行前に、各モジュールにおいて、先に説明したバックエンドネットワーク設定前処理(図3のトップエクスパンダのデバイス接続テーブル作成処理と、図6のプロセッサ種別の判定処理)が、両方とも完了しているとする。
 先ず、マスタープロセッサは、セントラルエクスパンダのデバイス接続テーブルを作成する(1101)。セントラルエクスパンダ140のデバイス接続テーブルは、図5のデバイス接続テーブル800と同じ形式のものである。
 次に、マスタープロセッサは、スレーブプロセッサに、各モジュール内のトップエクスパンダのデバイス接続テーブル800の送信を要求する(1102)。ストレージ装置100が複数のスレーブモジュールを備える場合は、マスタープロセッサは、全てのスレーブプロセッサに対して、トップエクスパンダのデバイス接続テーブル800の送信を要求する。
 それに対して、スレーブプロセッサは、マスタープロセッサからの、トップエクスパンダのデバイス接続テーブル800の送信要求を受信する(1103)。これに応じてスレーブプロセッサは、マスタープロセッサへ、トップエクスパンダのデバイス接続テーブル800を送信する(1104)。
 それに対してマスタープロセッサは、スレーブプロセッサからトップエクスパンダのデバイス接続テーブル800を受信する(1105)。次に、マスタープロセッサは、受信した各モジュール内トップエクスパンダのデバイス接続テーブル800に基づいて、モジュール間接続テーブル1600とPhy対応テーブル1800の作成を行い、メモリ104に格納する(1106)。
 次に、マスタープロセッサは、各スレーブプロセッサに、各モジュール内のDiscover処理の実行を要求する(1107)。次に、マスタープロセッサの処理(1109~1202)とスレーブプロセッサの処理(1108~1204)が、並列に実行される。
 マスタープロセッサは、マスターモジュール内のDiscover処理を実行する(1109)。ここでのDiscover処理は、従来からあるストレージ装置が実施するDiscover処理と同様で、この処理を実行することにより、モジュール内各エクスパンダ(110、119~124)のルートテーブルには、各エクスパンダから先に接続されるデバイスに対して、アクセス要求をルーティング可能にするために、各エクスパンダから先に接続されるデバイス(SSD、HDD、エクスパンダ)のSASアドレスが登録される。またモジュール内のメモリ104には、各エンクロージャエクスパンダについても図5のようなデバイス接続テーブルを作成し、各エンクロージャエクスパンダPhyに接続されるデバイス(HDD、SSD、エクスパンダ)のSASアドレスを記録しておく。たとえば図1の構成例の場合、エンクロージャエクスパンダ122のルートテーブルには、当該エンクロージャエクスパンダ122にカスケード接続されたエンクロージャエクスパンダ123、124に接続されているHDD129、130のSASアドレスが登録される。
 ただしここでのDiscover処理では、セントラルエクスパンダ140のPhy265とトップエクスパンダ160のPhy254を接続するSASリンク142がTable-to-table接続であるので、マスタープロセッサは、セントラルエクスパンダ140の先に接続されているトップエクスパンダ160以降のデバイスのDiscoveryはできない。
 次にマスタープロセッサは、Discover結果に基づいて、エンクロージャ管理テーブル2100と、ドライブアドレステーブル2200を作成する(1110)。
 次にマスタープロセッサは、エンクロージャ管理テーブル2100の内容をチェックする。具体的には、トポロジ違反の有無をチェックする(1201)。
 そして、マスタープロセッサは、各スレーブプロセッサから各スレーブモジュールのドライブアドレステーブル2200を受信する(1202)。
 一方、スレーブプロセッサは、マスタープロセッサからのスレーブモジュール内Discover処理の実行要求を受信する(1108)。
 スレーブプロセッサは、スレーブモジュール内のDiscover処理を実行する(1111)。ここでのDiscover処理は1109と同様、従来からあるストレージ装置が実施するDiscover処理と同様で、この処理を実行することにより、各エクスパンダ(160、169~174)のルートテーブルには、各エクスパンダの先に接続されるデバイスのSASアドレスが登録される。またモジュール内のメモリ104には、各エンクロージャエクスパンダについても図5のようなデバイス接続テーブルを作成し、各エンクロージャエクスパンダPhyに接続されるデバイス(HDD、SSD、エクスパンダ)のSASアドレスを記録しておく。
 ただしここでのDiscover処理では、セントラルエクスパンダ140のPhy265とトップエクスパンダ160のPhy254を接続するSASリンク142がTable-to-table接続であるので、スレーブプロセッサは、トップエクスパンダ160の先に接続されているセントラルエクスパンダ140以降のデバイスのDiscoveryはできない。
 次にスレーブプロセッサは、Discover結果に基づいて、エンクロージャ管理テーブル2100と、ドライブアドレステーブル2200を作成する(1112)。
 次にスレーブプロセッサは、エンクロージャ管理テーブル2100の内容をチェックする。具体的には、トポロジ違反の有無をチェックする(1203)。
 そして、スレーブプロセッサは、マスタープロセッサへスレーブモジュールのドライブアドレステーブル2200を送信する(1204)。ドライブアドレステーブル2200は、モジュール内の共有/非共有を含む全てのドライブについてのエントリを含んでいる。共有するドライブだけ抜き出す処理は、次のステップ1205で行う。
 マスタープロセッサは、マスターモジュールとスレーブモジュールのドライブアドレステーブル2200から、ドライブリストテーブル2300を作成する(1205)。このとき、マスタープロセッサは、各モジュールのドライブアドレステーブル2200から、ドライブ種2205がSSDであるものを抜き出して、ドライブリストテーブル2300に登録する。
 次に、マスタープロセッサは、ドライブリストテーブル2300と、Phy対応テーブル1800に基づき、セントラルエクスパンダのルートテーブル2500のエントリを作成し、セントラルエクスパンダのルートテーブルを更新する(1206)。
 次にマスタープロセッサは、マスターモジュール及びスレーブモジュールの各トップエクスパンダ用のルートテーブルのエントリを作成した後、各スレーブプロセッサへ、スレーブモジュール内トップエクスパンダ用のルートテーブルを送信し、ルートテーブル更新を要求する(1207)。
 次に、マスタープロセッサは、マスターモジュール内トップエクスパンダのルートテーブルを更新する(1209)。
 マスタープロセッサから、スレーブモジュール内トップエクスパンダ用のルートテーブル及びルートテーブルの更新要求を受信したスレーブプロセッサは(1208)、スレーブモジュール内トップエクスパンダのルートテーブルを更新する(1210)。
 マスタープロセッサは、トップエクスパンダのデバイス接続テーブル(800)、セントラルエクスパンダのデバイス接続テーブル、モジュール間接続テーブル(1600)、Phy対応テーブル(1800)、エンクロージャ管理テーブル(2100)、ドライブアドレステーブル(2200)、ドライブリストテーブル(2300)を、例えば、ローカルメモリ(104)に保存する。また、スレーブMPは、トップエクスパンダのデバイス接続テーブル(800)、エンクロージャ管理テーブル(2100)、ドライブアドレステーブル(2200)を、例えば、ローカルメモリ(154)に保存する。これにより、モジュール増設、エンクロージャ増設、もしくは、ドライブ増設時において、増設により追加もしくは変更のあるテーブルの一部分を差分で更新することで、増設時の処理量を削減し、短時間で処理を完了できる。
 続いて、図8、9で説明した各ステップの処理の詳細を説明する。まず図10を用いて、図8のステップ1101に相当する処理である、セントラルエクスパンダのデバイス接続テーブル作成処理を説明する。
 マスタープロセッサ(103)は、セントラルエクスパンダ140内の全てのExternal Phyについて、ループ処理(1301~1303)を実行する。
 マスタープロセッサ(103)は、セントラルエクスパンダ140内のSMPターゲットへ、セントラルエクスパンダ140のExternal PhyのPhy IDをセットしたDiscoverリクエストを送信し、それに対するレスポンスを受信する(1302)。受信したレスポンスには、Discoverリクエスト内に指定したPhy IDに対応するセントラルエクスパンダ140のPhyの接続先の、SASアドレスとPhy IDが含まれる。
 プロセッサ103は、セントラルエクスパンダ140内の全てのExternal Phyについて、Discoverリクエスト送信とレスポンス受信を繰り返す(1303)。
 そして、マスタープロセッサ(103)は、受信したレスポンスから、セントラルエクスパンダ140のデバイス接続テーブルを作成し、メモリ104に格納する。先に述べたとおり、ここで作成されるデバイス接続テーブルの形式は、図5のデバイス接続テーブル800と同じ形式のもの、つまりセントラルエクスパンダPhyのPhy IDと、セントラルエクスパンダに接続されているデバイスの種類と、セントラルエクスパンダに接続されているデバイスのSASアドレスと、接続先デバイスのPhy IDとの対応が格納されるものであるので、図示を省略する。
 図11は、図8のステップ1102~1105の処理における、マスタープロセッサがスレーブプロセッサからトップエクスパンダのデバイス接続テーブル800を取得する経路と、図8のステップ1101(図13)で実行される、マスタープロセッサがセントラルエクスパンダへDiscoverリクエストを送信する経路と、それに対するレスポンスを受信する経路を説明する図である。
 マスタープロセッサ103は、バックエンドインターフェース107内のイニシエータ(図中では「Ini」と表記)1001と、トップエクスパンダ110と、SASリンク141を通る経路1502により、セントラルエクスパンダ140のSMPターゲット1501へDiscoverリクエストを送信する。それに対して、セントラルエクスパンダ140のSMPターゲット1501は、経路1502とは逆の経路1503により、マスタープロセッサ103へレスポンスを返送する。トップエクスパンダ110に接続しているセントラルエクスパンダPhyのルーティング属性がSubtractiveであるため、セントラルエクスパンダのルートテーブルが未設定でも、セントラルエクスパンダはレスポンスが返送できる。これが、ルーティング属性がSubtractiveであるセントラルエクスパンダPhyと接続するトップエクスパンダが属するモジュールを、マスターモジュールとする理由である。
 マスタープロセッサ103は、ネットワークインターフェース109と、モジュール間ネットワーク143と、モジュール151のネットワークインターフェース159を通る経路1504により、スレーブプロセッサ153へ、トップエクスパンダ160のデバイス接続テーブル送信要求を送信する。それに対して、スレーブプロセッサ153は、経路1504とは逆の経路1505により、トップエクスパンダ160のデバイス接続テーブル800を送信する。
 なお、以降で説明する、マスタープロセッサとスレーブプロセッサ間での各種テーブル(ルートテーブル、ドライブアドレステーブル等)の送受信も、デバイス接続テーブルと同様に、モジュール間ネットワーク143を介して行う。
 図12は、図8のステップ1106で作成される、モジュール間接続テーブルを説明する図である。
 モジュール間接続テーブル1600は、後述するPhy対応テーブルを作成するために使われるテーブルで、セントラルエクスパンダと各トップエクスパンダとの接続情報が格納されている。ただし、マスタープロセッサがモジュール間接続テーブル1600を作成する際、セントラルエクスパンダのPhyのルーティング属性がSubtractiveであるPhyに接続されているトップエクスパンダとセントラルエクスパンダとの間の接続情報については、モジュール間接続テーブル1600に格納しない。
 モジュール間接続テーブル1600では、接続元のエクスパンダ種別が欄1601に格納される。そして接続元のエクスパンダ種別1601がセントラルエクスパンダである場合、接続元セントラルエクスパンダのSASアドレス1602と、接続元セントラルエクスパンダPhyのPhy ID1603と、接続先トップエクスパンダのSASアドレス1604と、接続先トップエクスパンダPhyのPhy ID1605が格納される。そしてモジュール番号1606としては、マスターモジュールのモジュール番号が格納される。
 一方、接続元エクスパンダ種別1601がトップエクスパンダである場合、モジュール間接続テーブル1600には、接続元トップエクスパンダのSASアドレス1602と、接続元トップエクスパンダPhyのPhy ID1603と、接続先セントラルエクスパンダのSASアドレス1604と、接続先セントラルエクスパンダPhyのPhy ID1605と、モジュール番号1606としてそのトップエクスパンダ(接続元のエクスパンダ種別1601、SASアドレス1602で特定されるトップエクスパンダ)が属するモジュールのモジュール番号が格納される。
 図14は、図8のステップ1106で作成される、Phy対応テーブルを説明する図である。
 Phy対応テーブル1800は、後述するセントラルエクスパンダ向けルートテーブルとトップエクスパンダ向けルートテーブルの作成に使用する、セントラルエクスパンダとトップエクスパンダとの接続情報をまとめたテーブルである。Phy対応テーブル1800には、トップエクスパンダPhyのPhy ID1801と、そのトップエクスパンダPhyと接続するセントラルエクスパンダPhyのPhy ID1802と、トップエクスパンダが属するモジュールの番号1803と、トップエクスパンダのSASアドレス1804の対応が格納される。
 続いて図13を用いて、図8のステップ1105、1106に相当する処理である、モジュール間接続テーブル及びPhy対応テーブル作成処理のフローについて説明する。
 マスタープロセッサは、各スレーブプロセッサから、各スレーブモジュール内各トップエクスパンダのデバイス接続テーブル800と、各トップエクスパンダのSASアドレスを取得する(1701)。これは図8のステップ1105に相当する処理である。
 次に、マスタープロセッサは、セントラルエクスパンダ140のデバイス接続テーブルの内容に基づいて、セントラルエクスパンダのPhyごとに、セントラルエクスパンダのSASアドレス1602、接続元セントラルエクスパンダPhyのPhy ID1603、接続先トップエクスパンダのSASアドレス1604、接続先トップエクスパンダPhyのPhy ID1605を、モジュール間接続テーブル1600へ格納する(これらの情報を格納した例が、図12の1607の部分である)。さらに、マスタープロセッサは、マスターモジュール内各トップエクスパンダのデバイス接続テーブル800及びステップ1701で取得した各スレーブモジュール内各トップエクスパンダのデバイス接続テーブル800から、セントラルエクスパンダに関するエントリを抽出して、モジュール間接続テーブル1600へ格納する内容を作成し、作成した内容(図12の1608の部分が、作成された内容の例である)を、モジュール間接続テーブル1600へ格納する(1702)。なお、先に述べたとおり、セントラルエクスパンダのPhyのルーティング属性がSubtractiveのPhyに接続されているトップエクスパンダとセントラルエクスパンダとの接続情報については、マスタープロセッサは作成、格納を行わない。
 次のループ処理(1703~1706)は、モジュール間接続テーブル1600の全エントリのうち、エクスパンダ種別がセントラルエクスパンダであるエントリ(つまり図12の1607の部分のエントリ)の各々について実行される処理(1704~1705)である。
 まずステップ1704では、マスタープロセッサは、モジュール間接続テーブル1600において、セントラルエクスパンダの接続先SASアドレス1604(Addr#B)と一致するトップエクスパンダについてのエントリを検索する(つまりセントラルエクスパンダの接続先SASアドレス1604(Addr#B)と等しいアドレスが、SASアドレス1602に格納されているエントリを検索する)。
 次にマスタープロセッサは、上記接続先SASアドレス(Addr#B)に一致したトップエクスパンダについてのエントリに含まれている、Phy ID1603とモジュール番号1606とPhy ID1605を、Phy対応テーブル1800に格納する(1705)。トップエクスパンダのPhy ID1603はPhy対応テーブルの1801へ、セントラルエクスパンダPhy ID1605はPhy対応テーブルの1802へ、モジュール番号1606はPhy対応テーブルの1803へ、それぞれ格納される。ステップ1704、1705の処理を、モジュール間接続テーブル1600内のエントリのうち、エクスパンダ種別がセントラルエクスパンダであるエントリの全てについて実行したら、処理を終了する。
 図15は、エンクロージャ管理テーブル作成のフローチャートである。この処理は、図8、9の1110~1201の処理、または1112~1203の処理に相当する。
 エンクロージャ管理テーブル作成処理では、当該処理で処理対象とするエクスパンダ段数(Exp段数)を特定する変数Nを用意する。エンクロージャ管理テーブル2100は、イニシエータからのエクスパンダ段数が2段目以上のエクスパンダ(トップエクスパンダ110、160がイニシエータからの段数が1段目のエクスパンダであり、トップエクスパンダ以降に接続されるエクスパンダ(エンクロージャエクスパンダ)が、2段目以上のエクスパンダである)の情報を管理するものである。プロセッサ103(153)は処理の最初に、変数N(エクスパンダ段数)の初期値を2に設定する(1901)。次に、プロセッサ103(153)がN段目の各エクスパンダ(エンクロージャエクスパンダ)の認識処理(1902)を実行する。エンクロージャ管理テーブル作成では、各モジュールのプロセッサがデバイス接続テーブル800を参照し、トップエクスパンダのPhyのうち、そのモジュール内でトップエクスパンダからエンクロージャエクスパンダへつながる各Phyについて処理を行う。1902の処理の内容は、図16で説明する。
 図16は、実施例1に係るエンクロージャ管理テーブル作成処理内サブルーチン(図15の1902)のフローチャートである。
 まずプロセッサ(103、153)は、N段目の各エンクロージャエクスパンダのSMPターゲットへ、External PhyのPhy IDを指定して、Discoverリクエストを送信する(2001)。このDiscoverリクエスト送信は、各エンクロージャエクスパンダの全てのExternal Phyについて行う。
 次にプロセッサ(103、153)は、エンクロージャエクスパンダのSMPターゲットから受信したレスポンスに含まれる接続先SASアドレスから、エンクロージャエクスパンダに接続されているドライブの種別を判定する(2002)。ドライブ種別は、SASアドレス内に含まれるドライブベンダの固有情報から判定することができる。
 次に、プロセッサ(103、153)は、上記判定したドライブ情報を、ドライブアドレステーブル2200に登録する(2003)。ドライブアドレステーブル2200の内容については後述する。
 次に、プロセッサは、エンクロージャエクスパンダに接続されているドライブの内訳をチェックする(2004)。
 2004におけるドライブ内訳チェックの結果、エンクロージャエクスパンダにHDDのみが接続されている場合、エンクロージャ管理テーブル2100に登録すべき当該エンクロージャエクスパンダの属性を“HDD”に決定する(2005)。エンクロージャエクスパンダにSSDのみが接続されている場合、エンクロージャ管理テーブル2100に登録すべき当該エンクロージャエクスパンダの属性を“SSD”に決定する(2006)。またエンクロージャエクスパンダにドライブが接続されていない場合、エンクロージャ管理テーブル2100に登録すべき当該エンクロージャエクスパンダの属性を“空”に決定する(2007)。そしてエンクロージャエクスパンダにHDDとSSDが接続されている場合、トポロジ違反エラーとしてバックエンドネットワーク設定処理を中止し、管理端末を介してストレージ装置100の管理者へエラー(トポロジ違反が存在している旨)を通知する(2008)。
 次に、プロセッサは、上記の2005~2007の処理で決定されたエンクロージャエクスパンダの属性を、エンクロージャ管理テーブル2100に登録する(2009)。
 次に、プロセッサと、エンクロージャ管理テーブル2100の内容について、トポロジ違反の有無をチェックする(2010)。実施例1に係るストレージ装置100のバックエンドネットワーク設定処理では、バックエンドネットワークのトポロジが、あらかじめ定められたルール(以下に説明する4項目のルール)に違反していないかをチェックする。なお、ここで行われるべきチェックは、バックエンドネットワークトポロジが、イニシエータとSSD間の通信(コマンドやデータの送受信)を阻害しないようなトポロジであるか確認できる処理であればよい。そのため、以下で説明する4項目のルールのチェック処理に限定されるわけではない。以下の4項目のチェック以外にも、ネットワークトポロジが、イニシエータとSSD間の通信(コマンドやデータの送受信)を阻害しないようなトポロジであることを確認できる処理であれば、任意のチェック処理を実行して良い。
 第1のルールは、SSDを接続するエンクロージャエクスパンダのトップエクスパンダからの接続段数が所定値以下であること、である。これは、エクスパンダを多段接続すると、コントローラと記憶デバイス間のアクセス性能が低下するので、このようなルールを設けている。特に、SSDが高いアクセス性能を持つ一方で、コントローラとSSD間のアクセス性能はエクスパンダを1段増やす毎に大きい割合で低下してしまう。そこで、上記接続段数に制限を設けることは、コントローラとSSD間のアクセス性能低下を防止できるため、SSDの高いアクセス性能を活用することのできる有効な方法である。上記ルールの例として、実施例1に係るストレージ装置では、図1に示されているように、SSDを接続するエンクロージャエクスパンダのトップエクスパンダからの接続段数を1段、同じモジュール内のイニシエータから数えて2段に限定されている。つまり、SSDを接続するエンクロージャエクスパンダに対して、さらにSSD(あるいはHDD)を接続するエンクロージャエクスパンダをカスケード接続する構成は許さないルールとしている(このような接続(トポロジ)が検出された場合は、エラーとする)。ちなみに、この場合の他モジュール内イニシエータからの接続段数は4段となる。ただし、SSDを接続するエンクロージャエクスパンダのトップエクスパンダからの段数は、性能が許せば2段以上でも良く、性能要件を満たす条件の元で、あらかじめ設定した所定の段数以下であれば良い。
 第2のルールは、SSDを接続するエンクロージャエクスパンダとHDDを接続するエンクロージャエクスパンダをカスケード接続しない、ことである。HDDはSSDに対して性能が低いため、HDDとSSDがカスケード接続される構成(つまりデータ転送経路が共有される構成)では、コントローラとSSDとの間の通信が、低性能なHDDの通信トラフィックに妨げられ、SSDの高アクセス性能という利点を活かすことができない。本実施例では、トップエクスパンダより先ではHDDとSSDは接続トポロジが分離されるので、SSDはHDDの影響を受けにくくすることができる。
 第3のルールは、同じエンクロージャエクスパンダにSSDとHDDを混在させない、ことである。理由は、第2のルールと同じである。また第3のルールは、ステップ2004~2008においてチェックされるルールである。
 第4のルールは、HDDが接続されるエンクロージャエクスパンダを接続することのできるトップエクスパンダのPhy(またはポート)数を所定値以下にすること、である。HDDはSSDに対して性能が低いため、HDDを接続するエンクロージャエクスパンダがトップエクスパンダの多数のPhyに接続されると、SSDを接続するエンクロージャエクスパンダがトップエクスパンダの少数のPhyにしか接続できなくなり、SSDの性能を引き出せなくなる。そこで、トップエクスパンダに接続可能なエンクロージャエクスパンダの種類と、当該エンクロージャエクスパンダの接続可能なPhy(またはポート)数を予め設定しておき、設定されたPhy(またはポート)数を越えていないか、チェックする。エンクロージャエクスパンダの接続可能なPhy(またはポート)数は、好ましくは、
「SSDを接続するエンクロージャエクスパンダを接続可能なトップエクスパンダのPhy(またはポート)数 > HDDを接続するエンクロージャエクスパンダを接続可能なトップエクスパンダのPhy(またはポート)数」
になるように設定されるとよい(なお、SSDを接続するエンクロージャエクスパンダを接続可能なトップエクスパンダのPhy(またはポート)数を限定する必要はなく、HDDを接続するエンクロージャエクスパンダを接続可能なトップエクスパンダのPhy(またはポート)数だけ設定するようにしてもよい。たとえば、HDDを接続するエンクロージャエクスパンダを接続可能なトップエクスパンダのPhy(またはポート)数を、トップエクスパンダの全Phy(またはポート)数の半数未満とするルールとしてよい)。なお、第4のルールをチェックするための必要な情報は、図17のエンクロージャ管理テーブルに全て含まれている。
 また、HDDが接続されるエンクロージャエクスパンダを接続することのできるトップエクスパンダのPhy(またはポート)数を所定値以下にするための別の方法として、トップエクスパンダの各Phy(またはポート)に、接続可能なエンクロージャエクスパンダの種類、すなわちHDDを接続するエンクロージャエクスパンダ、もしくはSSDを接続するエンクロージャエクスパンダのどちらか、を予め設定し、その設定した種類のエンクロージャエクスパンダのみが接続できるように限定するようにしてもよい。
 さらに、第4のルールをより限定し、HDDが接続されるエンクロージャエクスパンダを接続するトップエクスパンダのPhy(またはポート)のルーティング属性は、Subtractive属性でなければならない、というルールにしてもよい。先に述べたとおり、エクスパンダにおいてルーティング属性がSubtractiveのPhyを持つポートは、1個のみであるので、このルールを適用することで、HDDが接続されるエンクロージャエクスパンダを接続することのできるトップエクスパンダのPhy(またはポート)数を、ごく少数に抑えることができ、SSDの性能を引き出しやすくなる。また、ポートを構成するPhyのルーティング属性がSubtractiveの場合、ポートの先につながるSASデバイスのアドレスを、エクスパンダのルートテーブルに登録する必要がない。このようなルールにすると、トップエクスパンダのルートテーブルに登録するデバイスアドレス数が低く抑えられ、バックエンドネットワークの初期化処理や増設処理が高速化される利点がある。このルールを採用する場合、セントラルエクスパンダと同様、トップエクスパンダのPhy IDが0であるPhy(及びPhy IDが0のPhyと同じポートに属するPhy)のルーティング属性をSubtractive属性に設定することにし、トップエクスパンダのPhy IDが0であるPhy(及びPhy IDが0のPhyと同じポートに属するPhy)にのみ、HDDが接続されるエンクロージャエクスパンダが接続されているか確認すればよい。
 なお、HDDを接続するエンクロージャエクスパンダのトップエクスパンダからの接続段数は、性能ではなく、エンクロージャを収容するラックのサイズで決まる。例えば同じモジュール内のイニシエータから数えて12段に限定する。トップエクスパンダから先のSSDを接続するエンクロージャエクスパンダの段数の制限値は、トップエクスパンダから先のHDDを接続するエンクロージャの段数の制限値よりも小さく設定し、段数の制限値に違いをつけるという特徴がある。
 プロセッサは、トポロジ違反の有無をチェックし(2011)、上で挙げた4つのルール(第1のルール~第4のルール)に違反するものが見つからなかった場合は、フローを2013へ進める。上で挙げた4項目のうち、少なくとも1項目以上のルールに違反するトポロジが見つかった場合、プロセッサはトポロジ違反エラーとしてフローを中止し、ストレージ装置100の管理者へ通知する(2012)。
 次に、プロセッサは、N段目のエンクロージャエクスパンダに(N+1)段目のエンクロージャエクスパンダが接続されているか否かをチェックする(2013)。これは、ステップ1109または1111で作成された、各エンクロージャエクスパンダについてのデバイス接続テーブルに基づいて、確認できる。
 (N+1)段目のエンクロージャエクスパンダが接続されていない場合は、フローを終了する。(N+1)段目のエンクロージャエクスパンダが接続されている場合は、変数N(エクスパンダ段数)をインクリメントし(2014)、本フローを再帰的に実行する(2015)。
 図17は、図15、16で説明したエンクロージャ管理テーブル作成処理によって作成される、エンクロージャ管理テーブルの内容を説明する図である。
 エンクロージャ管理テーブル2100は、エンクロージャの接続トポロジのチェックと後述するドライブアドレステーブルの作成に使用する、トップエクスパンダにつながるエンクロージャエクスパンダについての情報をまとめたテーブルである。エンクロージャ管理テーブル2100は、トップエクスパンダPhyのPhy ID2101と、そのPhyに(直接またはカスケード)接続されているエンクロージャエクスパンダ情報の対応関係を格納する。エンクロージャエクスパンダ情報は、そのエンクロージャエクスパンダが同じモジュール内のイニシエータから数えて何段目に接続されているかを示すエクスパンダ段数2107と、エンクロージャ内に搭載されているドライブの情報(図16のステップ2004~2007で決定されたエンクロージャエクスパンダの属性)である。エンクロージャ管理テーブル2100のあるエントリの内容が“HDD”の場合は、そのエンクロージャにHDDのみ搭載されており、“SSD”の場合はそのエンクロージャにSSDのみが搭載されていることを意味する。またエンクロージャ管理テーブル2100のあるエントリの内容が“空”の場合は、そのエンクロージャにドライブが搭載されていないことを意味し、“N/A”の場合は、その段数の位置にはエンクロージャが接続されていないことを意味する。一例として、Phy ID2101が“24~27”の列(2106)の、段数2107が“3”のエントリには、“HDD”が格納されている。そのためこのエントリは、トップエクスパンダのPhy(Phy IDが24~27)にカスケード接続されているエンクロージャエクスパンダであって、イニシエータから数えて3段目に接続されているエンクロージャエクスパンダの属性は“HDD”、つまりHDDのみが搭載されたエンクロージャエクスパンダであることを意味する。またエンクロージャ管理テーブル2100は、トップエクスパンダが複数ある場合、トップエクスパンダごとに作成される。
 図18は、図16の処理2003で作成される、ドライブアドレステーブルの内容を説明する図である。ドライブアドレステーブル2200は、後述するドライブリストテーブルの作成に使用する、各モジュール内に搭載されたドライブ情報をまとめたテーブルである。
 ドライブアドレステーブル2200には、各モジュール内に搭載されたドライブのSASアドレス2201と、そのトライブが格納されているエンクロージャの番号2202と、そのエンクロージャ(のエンクロージャエクスパンダ)が同じモジュール内のイニシエータから数えて何段目に接続されているかを示すエクスパンダ段数2203と、そのエンクロージャエクスパンダが直接的または間接的に接続されているトップエクスパンダPhyのPhy ID2204が格納される。ドライブが接続されているエンクロージャエクスパンダのエクスパンダ段数2203が3以上の場合、2段目のエンクロージャエクスパンダが接続しているトップエクスパンダPhyのPhy IDが2204に格納される。さらに、ドライブアドレステーブル2200には、ドライブがHDDかSSDかを示す、ドライブ種別2205が格納される。
 またドライブアドレステーブル2200には、ドライブが直接的または間接的に接続されているトップエクスパンダ(モジュール内のイニシエータからドライブまでの経路上に存在するトップエクスパンダ)のSASアドレス2206が格納される。
 さらに図18では、ドライブアドレステーブル2200に、フラグ2207の欄が存在するが、実施例1に係るストレージ装置100では使用しない欄である。そのため実施例1に係るストレージ装置100の有するドライブアドレステーブル2200には、フラグ2207の欄はなくてもよい。フラグ2207は、後述する実施例4に係るストレージ装置で用いられる情報であるので、実施例4において説明する。
 図19は、図9のステップ1205で作成される、ドライブリストテーブルを説明する図である。
 ドライブリストテーブル2300は、後述するセントラルエクスパンダ向けルートテーブルとトップエクスパンダ向けルートテーブルの作成に使用する、各モジュールから共有されるドライブの情報をまとめたテーブルである。ドライブリストテーブル2300には、ストレージ装置100のモジュール(101、151)間で共有されるドライブ(SSDまたはHDD)のSASアドレス2301と、そのドライブが属するモジュール(101、151)のモジュール番号2302と、そのドライブの属するモジュールのイニシエータからドライブまでの経路上に存在するトップエクスパンダのSASアドレス2303の対応関係の情報が格納されている。図18のドライブアドレステーブル2200はモジュール毎に作成されるが、ドライブリストテーブル2300は、全モジュールで共有されるドライブの、SASアドレスとモジュール番号を一つにまとめたテーブルで、マスターモジュールが作成する。実施例1に係るストレージ装置100では、全SSDをモジュール間で共有するので、図9のステップ1205では、マスタープロセッサは、マスターモジュールとスレーブモジュールのドライブアドレステーブル2200から、ドライブ種2205がSSDであるエントリを抜き出し、各エントリについて、ドライブSASアドレス2201、トップエクスパンダのSASアドレス2206の情報を、ドライブリストテーブル2300のドライブSASアドレス2301、トップエクスパンダのSASアドレス2303に格納し、またモジュール番号2303に当該ドライブの属するモジュールの番号(この情報は、抽出されたエントリが属していたドライブアドレステーブル2200を所有しているモジュールのモジュール番号に等しい)を格納することで、ドライブリストテーブル2300を作成する。なお、図19では、ドライブリストテーブル2300に、フラグ2304の欄が存在するが、フラグ2304は、後述する実施例4において用いられる情報であって、実施例1に係るストレージ装置100では用いられない。そのため、実施例1に係るストレージ装置100のドライブリストテーブル2300には、フラグ2304の欄はなくてもよい。
 図20は、実施例1に係るセントラルエクスパンダのルートテーブル作成処理のフローチャートである。この処理は図9の処理1206に相当する。
 マスタープロセッサは、ドライブリストテーブル2300を参照し、ドライブリストテーブル2300内の全エントリに対して2402~2405の処理を実行する。
 マスタープロセッサは、ドライブリストテーブル2300から、ドライブSASアドレス2301と、そのドライブが属するモジュール番号2302及びSASアドレス2303(そのドライブの属するモジュールのイニシエータからドライブまでの経路上に存在するトップエクスパンダのSASアドレス)を取得する(2402)。
 次に、マスタープロセッサは、ステップ2402で取得したドライブSASアドレス(2301)をセントラルエクスパンダのルートテーブル2500に追加する(2403)。
 次に、マスタープロセッサは、Phy対応テーブル1800から、ステップ2402で取得したモジュール番号と等しい値がモジュール番号(1803)に格納されており、かつステップ2402で取得したSASアドレス(2303)と等しい値がSASアドレス(1804)の欄に格納されている行の、セントラルエクスパンダPhyのPhy ID(1802)を取得する(2404)。トップエクスパンダとセントラルエクスパンダ間をワイドリンクで接続している場合は、複数のPhy IDが取得される。なお、ここの処理において、Phy対応テーブル1800に、該当する行(ステップ2402で取得したモジュール番号と等しい値がモジュール番号(1803)に格納されており、かつステップ2402で取得したトップエクスパンダのSASアドレス(2303)と等しい値がSASアドレス(1804)の欄に格納されている行)が発見されない場合がある。この事象は、ステップ2402で取得したドライブSASアドレス2301に対応する記憶デバイス(SSD)が、セントラルエクスパンダのPhyのルーティング属性がSubtractiveのPhyに接続されているトップエクスパンダ以降に接続されている場合に発生する。ただし、セントラルエクスパンダのPhyのルーティング属性がSubtractiveのPhyに接続されているトップエクスパンダ以降に接続されているデバイスについては、当該デバイスのSASアドレスがセントラルエクスパンダのルートテーブルに登録されていなくてもアクセス可能であるので、問題ない。この場合には、ステップ2403でルートテーブル2500に登録したドライブSASアドレスを削除する。そしてステップ2405の処理も行わずに、ステップ2402に戻って、ドライブリストテーブル2300の次のエントリに対する処理を行う。
 次に、マスタープロセッサは、セントラルエクスパンダのルートテーブルにおいて、上記ドライブSASアドレスと、セントラルエクスパンダのPhy IDに対応するビットを“1”に設定する(2405)。トップエクスパンダとセントラルエクスパンダ間をワイドリンクで接続している場合は、複数のPhy IDに対応するビットを“1”に設定する。すなわち、トップエクスパンダとセントラルエクスパンダの間にSASリンクが複数見つかった場合は、ルートテーブルのSASリンクにつながるそれぞれのPhyのPhy IDに対応するビットを“1”に設定する。ドライブリストテーブル2300内の全エントリに対して、ステップ2402~2405の処理が行われると、セントラルエクスパンダのルートテーブル作成処理は終了する。
 図21は、図20及び図22のルートテーブル作成処理によって作成される、ルートテーブルの内容を説明する図である。
 ルートテーブル2500は、SASアドレス2501とエクスパンダPhyのPhy ID2502との対応を示す。エクスパンダは、コネクション要求を受信した際、コネクション要求の接続先SASアドレスをルートテーブル2500のSASアドレス2501から検索する。コネクション要求の接続先SASアドレスがSASアドレス2501に一致した場合、エクスパンダは、ルートテーブル2500内の対応するPhy IDのエントリが“1”であるPhyにつながるSASリンクの別の端につながるPhyへコネクションを確立させる。コネクション要求の接続先SASアドレスに対応する“1”のエントリが複数ある場合は、エクスパンダは、いずれかのPhy、とくに現在通信の行われていないPhyの中から1つのPhyを選択し、当該選択されたPhyにつながるSASリンクの別の端につながるPhyに対してコネクションを確立させる。
 図22は、実施例1に係るトップエクスパンダのルートテーブル作成のフローチャートである。このフローは図19の処理1207に相当する処理で、マスターモジュールのプロセッサが、各モジュールに接続されているトップエクスパンダのルートテーブル2500を作成する。なお図22の処理を1回実行することで、1つのトップエクスパンダのルートテーブル2500が行われる。そのため、n個のトップエクスパンダが存在するストレージ装置の場合には、マスターモジュールのプロセッサは図22の処理をn回実行する。
 プロセッサは、ドライブリストテーブル2300を参照し、全エントリに対して、以下で説明する2602~2606の処理をループ実行する(2601~2607)。
 プロセッサは、ドライブリストテーブル2300から1つのエントリを選択し、選択されたエントリの中から、ドライブSASアドレス2301と、そのドライブが属するモジュール番号2302と、トップエクスパンダのSASアドレス2303を取得する(2602)。
 次に、プロセッサは、ステップ2602で取得したモジュール番号と、このフローを実行中のプロセッサが属するモジュールのモジュール番号が同じであるか、かつ上記取得したトップエクスパンダのSASアドレス2303と現在の処理対象のトップエクスパンダのSASアドレスが同じであるか、判定する(2603)。この判定がNoの場合は2604へ進み、Yesの場合は2607へ進む。
 次に、プロセッサは、ステップ2602で取得したドライブSASアドレスをトップエクスパンダのルートテーブルに追加する(2604)。
 次に、プロセッサは、Phy対応テーブル1800から、ステップ2602で取得したモジュール番号と等しい値がモジュール番号(1803)に格納されており、かつステップ2602で取得したSASアドレスと等しい値がSASアドレス(1804)の欄に格納されている行のトップエクスパンダPhyのPhy ID(1801)を取得する(2605)。トップエクスパンダとセントラルエクスパンダ間をワイドリンクで接続している場合は、複数のPhy IDを取得する。
 次に、プロセッサは、トップエクスパンダのルートテーブルにおいて、上記ドライブSASアドレスと、ステップ2605で取得されたトップエクスパンダPhyのPhy IDに対応するビットを“1”に設定する(2606)。トップエクスパンダとセントラルエクスパンダ間をワイドリンクで接続している場合は、複数のPhy IDに対応するビットを“1”に設定する。すなわち、トップエクスパンダとセントラルエクスパンダの間にSASリンクが複数見つかった場合は、ルートテーブルのSASリンクにつながるそれぞれのPhyのPhy IDに対応するビットを“1”に設定する。
 すべてのエントリに対して2606までの処理が終了した時点で、ルートテーブル作成が完了する。そしてすべてのトップエクスパンダのルートテーブル2500の作成が完了すると、作成された各トップエクスパンダのルートテーブル2500は、モジュール間ネットワーク143を経由して各スレーブモジュールのプロセッサに送信され、各スレーブモジュールのプロセッサは、図12のステップ1208、1210で説明したとおり、自モジュールに接続されているトップエクスパンダのルートテーブルの設定・更新を行う。
 以上が、実施例1に係るストレージ装置のバックエンドネットワーク設定処理の説明である。
 なお、HDDはSSDに対して性能が低いため、コントローラのバックエンドインターフェースの多数のイニシエータからHDDにコネクションを確立すると、少数のイニシエータからしかSSDにコネクションを確立できなくなり、SSDの高性能を引き出せなくなる。そこで本発明の実施例に係るストレージ装置に、管理者がバックエンドインターフェースのイニシエータごとに、コネクションを確立可能なドライブの種類を設定できるような機能を持たせてもよい。この場合コントローラのプロセッサ(104、154)は、イニシエータに設定されたドライブの種類の情報に基づいて、コマンド送信先ドライブとのコネクション(接続)を確立するように動作する。
 たとえばバックエンドインターフェースに4つのイニシエータ(それぞれのイニシエータを仮に、イニシエータ0、1、2、3と呼ぶ)があるストレージ装置において、管理者が、イニシエータ0はHDDに対してのみコネクションを確立可能で、それ以外のイニシエータ(イニシエータ1~3)はSSDに対してのみコネクションを確立可能になるように、ストレージ装置に設定した場合を想定する。そうすると、ストレージコントローラがHDDにアクセスするときに、設定された情報を参照し、HDDに対してコネクションを確立可能であるイニシエータがイニシエータ0のみであることを識別する。それにより、ストレージコントローラは、イニシエータ0を介してHDDに対してコマンド送受信を行う(イニシエータ0を介したコマンド送受信しかできない)。逆にSSDへのアクセスの際にはイニシエータ1~3を使用できるため、SSDへのアクセス性能悪化を抑制することができる。
 次に、図23から図26により、実施例1に係るストレージ装置における増設処理の流れを説明する。
 図23は、実施例1に係る増設処理のフローチャートである。
 先ず、管理者が管理端末などを用いて、マスタープロセッサに対して、モジュールまたはエンクロージャ(HDDまたはSSDを搭載する、ドライブエンクロージャ)またはドライブの増設処理を指示する(2701)。指示を受けたマスタープロセッサは、増設対象がモジュールであるか否かを判定する(2702)。
 上記増設処理の指示がモジュール増設の指示であった場合(2702:Yes)、フローは2716のモジュール増設処理を実行する。モジュール増設処理は後述する(図25、26)。
上記増設処理の指示がモジュール増設の指示ではなかった場合(2702:No)とは、エンクロージャまたはドライブの増設指示を行う場合であるが、その場合管理者は、マスタープロセッサにエンクロージャまたはドライブの増設先モジュール(の番号)を指示する(2703)。
 指示を受けたマスタープロセッサは、増設対象がエンクロージャであるか否かを判定する(2704)。上記増設処理の指示がエンクロージャ増設の指示であった場合、フローは2705に進み、ドライブ増設の指示であった場合フローは2711に進む。
 2705から2709は、ドライブの増設処理である。先ず、管理者が管理端末等を用いて、ドライブ増設先のエンクロージャの情報をマスタープロセッサに通知する(2705)。
 次に、管理者がドライブを増設する(2706)。つまりドライブ増設先のエンクロージャに対して、ドライブを設置する。
 増設処理がマスターモジュール内の処理であった場合(2707:Yes)、フローは2709へ進み、マスターモジュール内の処理ではなかった場合(2707:No)、フローは2708へ進む。
 2708において、マスタープロセッサは、ドライブの増設対象モジュールのスレーブプロセッサに、ドライブ増設先エンクロージャに対するDiscover処理を要求する。
 2709において、ドライブ増設先モジュールのプロセッサ(マスタープロセッサまたは、2708においてマスタープロセッサからのDiscover処理の要求を受信したスレーブプロセッサ)は、ドライブ増設先エンクロージャに対して、Discover処理を実行する。ここで、ドライブ増設先モジュールのプロセッサは、トップエクスパンダのルートテーブルのうち、そのモジュール内でトップエクスパンダからエンクロージャエクスパンダへのルーティングに関するエントリを更新する。また、エンクロージャ管理テーブルの更新も行われる。
 2711から2715は、エンクロージャの増設処理である。先ず管理者が管理端末等を用いて、増設されるエンクロージャが接続されるエンクロージャ(以下、これをエンクロージャ増設先のエンクロージャ、と呼ぶ)の情報をマスタープロセッサに通知する(2711)。
 次に、管理者がエンクロージャを増設する(2712)。つまりエンクロージャ増設先のエンクロージャに、増設するエンクロージャを結線する。
 増設処理がマスターモジュール内の処理であった場合、フローは2715へ進み、マスターモジュール内の処理ではなかった場合フローは2714へ進む。
 2714において、マスタープロセッサは、エンクロージャの増設対象モジュールのスレーブプロセッサに、エンクロージャ増設先エンクロージャと増設エンクロージャに対するDiscover処理を要求する。
 2715において、エンクロージャ増設先モジュールのプロセッサ(マスタープロセッサまたは2714においてマスタープロセッサからのDiscover処理の要求を受信したスレーブプロセッサ)は、エンクロージャ増設先のエンクロージャ及び増設されるエンクロージャに対して、Discover処理を実行する。ここで、エンクロージャ増設先モジュールのプロセッサは、トップエクスパンダのルートテーブルのうち、そのモジュール内でトップエクスパンダからエンクロージャエクスパンダへのルーティングに関するエントリを更新する。また、エンクロージャ管理テーブルの更新も行われる。
 次に、フローは、ドライブ増設とエンクロージャ増設に共通の処理2710に進む。2710の処理内容は、図24において説明する。
 図24は、図23の処理2710に相当する処理である、エンクロージャまたはドライブ増設処理のフローチャートである。
 プロセッサ(エンクロージャまたはドライブの増設先のプロセッサ。以下、図24の処理フローの説明において断りのない限り、「プロセッサ」とは、エンクロージャまたはドライブの増設先のプロセッサを指す語として用いられる)は、上で説明した処理2709または2715で行われたDiscover処理で得られた結果に基づき、ドライブアドレステーブル及びエンクロージャ管理テーブルを更新し、その内容について、トポロジ違反の有無をチェックする(2801)。トポロジ違反の有無のチェックは、図16の処理2004、2010と同様のチェックを行う。
 プロセッサは、トポロジ違反がなかった場合、フローを2804へ進める(2802)。トポロジ違反が見つかった場合は、トポロジ違反エラーとしてフローを中止し、ストレージ装置100の管理者へ通知する(2803)。
 次に、プロセッサは、このフローがマスターモジュール内の処理であるか否かを判定する(2804)。つまりプロセッサは、自身がマスタープロセッサであるか否かを判定する。プロセッサは、マスターモジュール内の処理である場合は2806へフローを進め、そうでない場合は、2805へ進める。
 処理が2805に進む場合とは、このフローを実行しているのはスレーブプロセッサである場合である。この場合、ステップ2805において、スレーブプロセッサは、新規にドライブアドレステーブルに追加されたエントリをマスタープロセッサへ送信する。それ以降の処理(2806~2808)はマスタープロセッサで実行される。
 次に、マスタープロセッサは、ドライブリストテーブル2300を更新する(2806)。次に、マスタープロセッサは、セントラルエクスパンダのルートテーブルのエントリを作成し、セントラルエクスパンダのルートテーブルを更新する(2807)。次に、マスタープロセッサは各トップエクスパンダのルートテーブルの更新情報を作成し、各モジュールのプロセッサへ、各トップエクスパンダのルートテーブル更新を要求する(2808)。
 次に、各モジュールのプロセッサは、各トップエクスパンダのルートテーブルを更新する(2809)。
 図25、26は、実施例1に係るモジュール増設処理のフローチャートである。なお、このフロー実行前に、増設モジュールにおいて、図3のトップエクスパンダのデバイス接続テーブル作成フローと、図6のプロセッサ種別の判定フローが、両方とも完了しているとする。
 先ず、マスタープロセッサは、セントラルエクスパンダのSMPターゲットに対してDiscoverリクエストを送信し、セントラルエクスパンダのデバイス接続テーブルを更新する(2901)。
 次に、マスタープロセッサは、増設したモジュール内のプロセッサ(スレーブプロセッサ)に、増設モジュール内のトップエクスパンダのデバイス接続テーブル800の送信を要求する(2902)。
 それに対して、増設モジュール内のスレーブプロセッサは、マスタープロセッサからの、トップエクスパンダのデバイス接続テーブル800の送信要求を受信する(2903)。そして、増設モジュール内スレーブプロセッサは、マスタープロセッサへ、トップエクスパンダのデバイス接続テーブル800を送信する(2904)。
 それに対して、マスタープロセッサは、増設モジュールのスレーブプロセッサから、トップエクスパンダのデバイス接続テーブル800を受信する(2905)。
 次に、マスタープロセッサは、受信した増設モジュール内トップエクスパンダのデバイス接続テーブル800に基づいて、モジュール間接続テーブル1600とPhy対応テーブル1800を更新する(2906)。
 次に、マスタープロセッサは、増設モジュール内スレーブプロセッサに、増設モジュール内のDiscover処理の実行を要求する(2907)。スレーブプロセッサは、マスタープロセッサからの増設モジュール内Discover処理の実行要求を受信し(2908)、これに応じてスレーブモジュール内のDiscover処理を実行する(2909)。ここで、スレーブプロセッサは、トップエクスパンダのルートテーブルのうち、増設モジュール内でトップエクスパンダからエンクロージャエクスパンダへのルーティングに関するエントリを設定する。ここでのDiscover処理は、従来からあるストレージ装置が実施するDiscover処理と同様で、この処理を実行することにより、増設モジュール内の各エクスパンダのルートテーブルには、各エクスパンダに直接的あるいは間接的に接続されるデバイス(SSD、HDD、エクスパンダ)のSASアドレスが登録される。
 次にスレーブプロセッサは、Discover結果に基づいて、増設モジュールのエンクロージャ管理テーブル2100と、ドライブアドレステーブル2200を作成する(2910)。次にスレーブプロセッサは、エンクロージャ管理テーブルの内容について、トポロジ違反の有無をチェックする(3001)。トポロジ違反の有無のチェックは、図16の処理2004、2010と同様のチェックを行う。その後スレーブプロセッサは、マスタープロセッサへスレーブモジュールのドライブアドレステーブルを送信する(3002)。
 そして、マスタープロセッサは、増設モジュール内のスレーブプロセッサから増設モジュールのドライブアドレステーブルを受信し(3003)、受信した増設モジュールのドライブアドレステーブルから、ドライブリストテーブル2300を更新する(3004)。
 次に、マスタープロセッサは、更新したドライブリストテーブル2300と、Phy対応テーブル1800に基づき、セントラルエクスパンダのルートテーブル2500のエントリを作成し、セントラルエクスパンダのルートテーブルを更新する(3005)。この処理は図9の処理1206と同様である。
 次に、マスタープロセッサは、増設モジュール内トップエクスパンダのルートテーブルを作成した後、増設モジュール内のスレーブプロセッサへ、増設モジュール内トップエクスパンダのルートテーブルを送信し、更新を要求する(3006)。
 次に、マスタープロセッサは、マスターモジュール内トップエクスパンダのルートテーブルを更新する(3009)。
 マスタープロセッサから、スレーブモジュール内トップエクスパンダのルートテーブルの更新情報を受信したスレーブプロセッサは(3007)、受信した更新情報に基づき更新する(3008)。
 マスタープロセッサは、トップエクスパンダのデバイス接続テーブル(800)、セントラルエクスパンダのデバイス接続テーブル、モジュール間接続テーブル(1600)、Phy対応テーブル(1800)、エンクロージャ管理テーブル(2100)、ドライブアドレステーブル(2200)、ドライブリストテーブル(2300)を、例えば、ローカルメモリ(104)に保存する。また、スレーブMPは、トップエクスパンダのデバイス接続テーブル(800)、エンクロージャ管理テーブル(2100)、ドライブアドレステーブル(2200)を、例えば、ローカルメモリ(154)に保存する。これにより、更なるモジュール増設、エンクロージャ増設、もしくは、ドライブ増設時において、増設により追加もしくは変更のあるテーブルの一部分を差分で更新することで、増設時の処理量を削減し、短時間で処理を完了できる。
 以上が、実施例1に係るストレージ装置の増設処理である。
 次に、実施例1に係る負荷分散処理を説明する。
 実施例1のストレージ装置100は、負荷が大きいモジュールから負荷が小さいモジュールへI/O処理を移行させる、モジュール間負荷分散処理が可能である。なお、この負荷分散処理の対応となるI/O処理は、モジュール間で共有されているSSDに対するアクセスである。
 図27は、実施例1に係るモジュール間負荷分散処理の概要を説明する図である。
 以下の説明にある、LU(Logical Unit)とは、1または複数のSSDから構成される論理的なボリュームのことであり、LUN(Logical Unit Number)とは論理ボリュームの番号のことである。なお、各LUは、1モジュールに属する1または複数のSSDから構成される。つまり1つのLUが複数SSDから構成される場合、この複数のSSDは全て同一モジュールに属するSSDである。
 図27において、ホストコンピュータ3100は、ストレージ装置100のモジュール101に対してコマンドを発行することで、LUN#1(3108)にアクセスしている。なお、ストレージ装置100では、ホストコンピュータ3100等からのアクセス処理を担当するモジュール(このモジュールのことを「オーナ」と呼ぶ)は、LU(を構成するSSD)ごとに、モジュール101または151のいずれかに定められており、オーナであるモジュールが、ホストコンピュータ3100からのライトデータを各LU(を構成するSSD)に格納したり、各LU(を構成するSSD)から読み出したデータをホストコンピュータに送信したりする。なお、管理端末を介した管理者からの指示、あるいは後述する負荷分散処理によって、各LUのオーナを変更することができる。そして各モジュール(101、151)では、モジュールのプロセッサの負荷、各LUの負荷を常時計測している。
 図28に、本発明の実施例1に係るストレージ装置100の各モジュールが管理する、LUNマッピングテーブル3200を示す。先に述べたとおり、本発明の実施例1に係るストレージ装置100では、LUのアクセス処理を担当するモジュール(以下、これを「オーナ」と呼ぶ)は、LUごとに定められており、LUNマッピングテーブル3200は、各LUのオーナであるモジュールの番号(オーナモジュール番号)を管理する。LUNマッピングテーブル3200の各行は、LUN3201で特定されるLUのオーナが、オーナモジュール番号3202に格納されているモジュール番号のモジュールであることを表している。各モジュールが同一のLUNマッピングテーブル3200を自モジュールのメモリ内に保持しており、あるLUのオーナが変更される場合、全モジュールのLUNマッピングテーブル3200の内容も変更される。
 ここで、モジュール101のプロセッサの負荷が所定値を超えており、且つモジュール151の負荷は所定値より小さい場合を想定する。さらに、モジュール101において、LUN#1(3108)に対する負荷が特に高いとする。この場合、LUN#1(3108)に対する、ホストコンピュータ3100等からのアクセス処理を担当するモジュール(オーナ)をモジュール101からモジュール151に変更し、ホストコンピュータ3100にはオーナが変わったことを通知して、以降はモジュール151に対してコマンドを発行することでLUN#1にアクセスさせるようにする。本実施例によるバックエンドネットワーク構成を採用することで、モジュール間でのSSD共有が可能である。よって当該SSDから構成されているボリューム(LUN#1(3108))に対するホストコンピュータ3100からのI/O処理が、モジュール101から151へ移行され、ストレージ装置100のモジュール間で負荷を分散することができる。
 図29は、実施例1に係るモジュール間負荷分散処理の流れの概略の一例を示している。
 先ず、マスタープロセッサは、モジュール負荷が所定値を超えたモジュールにおいて最もLU負荷の高いLUを特定し、移行対象LUに指定する(3601)。
 次に、移行元モジュール内プロセッサがホストコンピュータに移行対象LUに対するI/O停止を要求し、ホストコンピュータからI/O停止通知を受信する(3603)。
 次に、移行元モジュール内プロセッサは、移行対象内部LUNに対応するキャッシュ領域(移行元モジュール内のメモリ)に格納しているデータをドライブにデステージする(3604)。
 次に、移行先モジュール内プロセッサは、移行対象内部LUNに対応するデータをドライブからキャッシュ領域(移行先モジュール内のメモリ)にステージする(3605)。本実施例では、キャッシュ領域のデータをデステージするとき、もしくは、キャッシュ領域にデータをステージするときには、バックエンドネットワークを通してデータを転送する。なお、3605の処理は必須ではない。
 次に、移行対象LUのオーナを変更する(3606)。具体的には、移行元モジュール内プロセッサが、LUNマッピングテーブル3200の中で、LUN3201に移行対象LUのLUNに等しいLUNの格納されているエントリのオーナモジュール番号3202を移行先モジュールのモジュール番号に変更する。LUNマッピングテーブル3200の変更内容は、移行先モジュールにも通知され、移行先モジュールのプロセッサは自身が持つLUNマッピングテーブル3200に、その変更内容を反映する。
 次に、移行先モジュール内プロセッサは、ホストコンピュータへ、今後移行対象LUに対してアクセスする際に指定する情報(たとえばホストコンピュータ3100とストレージ装置100がファイバチャネルで接続されている場合には、ストレージ装置のアクセス対象ポートのWWN、そして移行対象LUのLUN)を通知する(3608)。
 最後に、移行先モジュール内プロセッサは、ホストコンピュータへ、I/Oを再開して良い旨を通知する(3609)。なお、3608、3609の通知は、管理端末を経由して通知してもよい。
[変形例1]
 実施例1では基本的に、モジュール内のトップエクスパンダの数が1の場合について中心に説明したが、モジュール内のトップエクスパンダの数が複数であっても、本発明は有効である。変形例1として、各モジュールがトップエクスパンダを複数(たとえば2つ)有するストレージ装置の構成を、特にバックエンドネットワークの構成について説明する。
 図40は、変形例1に係るストレージ装置における、バックエンドネットワークのトポロジを説明するための図である。この図では、ストレージ装置のバックエンドインターフェースより上の構成物(プロセッサ、メモリ、フロントエンドインターフェース等)についての記載を省略している。
 図40に記載の構成では、各モジュール(M1、M2、M3、M4)にはそれぞれ2つのトップエクスパンダが存在し、各トップエクスパンダは、セントラルエクスパンダ5080に接続された構成をとる。なお、図40に記載の構成例では、各トップエクスパンダ(5002、5022、5042、5062、5005、5025、5045、5065)にエンクロージャエクスパンダがそれぞれ1つだけしか接続されていないが、実際には、複数のエンクロージャエクスパンダが接続可能である。また図40に記載の構成例では、各モジュールには2つのトップエクスパンダしか存在しないが、2より多くのトップエクスパンダを搭載する構成でもよい。
 本発明の実施例に係るストレージ装置では、実施例1で述べたようなトポロジの制約、つまりSSDを接続するエンクロージャエクスパンダ(5006、5026、5046、5066)は、トップエクスパンダ(5005、5025、5045、5065)に直接接続し、カスケード接続を許さない、あるいはカスケード接続を許す場合にも所定段数以上のカスケード接続を許さない、というルールがある(このルールに違反している場合、バックエンドネットワーク設定処理の過程で、トポロジ違反エラーとされる)。そのため、トップエクスパンダのPhy数が少ない場合、SSDの搭載台数を多くすることができない。その場合、トップエクスパンダを複数設けることにより、多くのSSDを搭載することが可能になる。
 変形例1に係るストレージ装置においても、バックエンドネットワーク設定前処理、バックエンドネットワーク設定処理、増設処理は、実施例1で説明したものと同じ処理を用いることができるので、処理の説明は省略する。
[変形例2]
 図1および図2に示した構成の他に、2モジュール構成においてはモジュール間を直接SASリンクで接続することにより、セントラルエクスパンダを省略した構成が可能である。以下では、変形例2に係るストレージ装置の、実施例1との差異について中心に説明する。
 変形例2に係るストレージ装置では、図1、2において記載されているセントラルエクスパンダ(140)が省略され、トップエクスパンダ110とトップエクスパンダ160がSASリンクで直接接続される構成になる。それ以外の点では実施例1に係るストレージ装置と違いはないため、図示は省略する。
 続いてバックエンドネットワーク設定前処理及びバックエンドネットワーク設定処理について説明する。変形例2に係るストレージ装置においても、実施例1で説明したバックエンドネットワーク設定前処理及びバックエンドネットワーク設定処理とほぼ同様の処理が行われるが、変形例2におけるバックエンドネットワーク設定前処理では、プロセッサ種別の判定処理が実施例1で説明したもの(図6)と異なる。また、変形例2におけるバックエンドネットワーク設定処理は、実施例1において説明したバックエンドネットワーク設定処理(図8、9)の、ステップ1101のセントラルエクスパンダのデバイス接続テーブル作成、及びステップ1206のセントラルエクスパンダのルートテーブルエントリの作成と更新が省略される。またステップ1106のPHY対応テーブルの作成処理において、実施例1において説明したものとは異なる処理が行われる。
 変形例2におけるプロセッサ種別の判定処理では、マスターモジュールが1つに決定できる判定処理であれば、任意の判定処理を採用することができる。たとえば、トップエクスパンダのSASアドレスの値を比較して、値が小さいモジュールをマスターモジュールと判定する等の判定方法を採用することができる。
 変形例2におけるPHY対応テーブルの作成処理は、実施例1におけるPHY対応テーブルの作成処理(図13)において、「セントラルエクスパンダ」を「マスターモジュールのトップエクスパンダ」と読み替えたものになる。また、変形例1のPHY対応テーブルは、図14のPHY対応テーブルと異なり、マスターモジュールのトップエクスパンダとスレーブモジュールのトップエクスパンダの接続を示す情報が入力される。例えば、トップエクスパンダPhyのPhy ID(1801)には、スレーブモジュールのトップエクスパンダ(160)のPhy(254)のPhy IDが、セントラルエクスパンダPhyのPhy ID(1802)には、セントラルエクスパンダの代わりにマスターモジュールのトップエクスパンダ(110)のPhy(204)のPhy IDが、モジュール番号(1803)にはスレーブモジュールのモジュール番号が入る。以上が、変形例2に係るストレージ装置10で実施されるバックエンドネットワーク設定前処理及びバックエンドネットワーク設定処理の、実施例1との相違点である。
 続いて増設処理について説明する。変形例2に係るストレージ装置の構成、つまりセントラルエクスパンダを省略した構成では、最大モジュール数が2モジュールに限定される。そのため、モジュール増設処理が存在しないため、変形例2における増設処理においては、図23のステップ2702でモジュール増設がYESとなることはない。また、実施例1の増設処理と比較して、エンクロージャまたはドライブ増設処理(図24)におけるステップ2807で、セントラルエクスパンダのルートテーブルのエントリ作成とルートテーブルの更新が省略される点のみが異なる。それ以外の点で、処理に違いはない。
[変形例3]
 上では、複数モジュールをセントラルエクスパンダやトップエクスパンダで接続し、ストレージ装置を複数モジュールで構成する構成について説明したが、実施例1に係るストレージ装置の変形例3として、1モジュール構成のストレージ装置が考えられる。これはたとえば図1の構成図において、モジュール101のみが存在し、かつモジュール101内のセントラルエクスパンダ140が存在しない構成である。変形例3に係るストレージ装置においては、バックエンドネットワーク設定前処理、バックエンドネットワーク設定処理、増設処理は、実施例1において説明した処理からマスターモジュールに関係するもの以外を省いた処理と同じである。
 変形例3におけるストレージ装置においても、本発明のトポロジ違反のチェック処理は効果がある。バックエンドネットワーク設定処理、増設処理の際にトポロジ違反のチェックを行うことで、トップエクスパンダにSSDを接続するエクスパンダを並列に接続することによるSSD接続段数の削減、そして、高速な記憶媒体(SSD)の接続経路と低速な記憶媒体(HDD)の接続経路とを分離することによる、SSDへのアクセス効率向上の効果がある。
[変形例4]
 続いて変形例4の説明を行う。変形例4に係るストレージ装置の構成要素は、実施例1に係るストレージ装置と同じであるので図示は省略する。変形例4に係るストレージ装置の場合、トップエクスパンダのZoning(論理分割)機能を用いて、トップエクスパンダを論理的に分割している点が特徴である。図2を参照しながら具体的な分割例を説明する。
 変形例4に係るストレージ装置の場合、図2に示したバックエンドネットワークにおいて、トップエクスパンダ110内に、イニシエータに接続されているPhy202のうち最も左のPhyと、HDDの搭載されるエンクロージャエクスパンダに接続されるPhy203とで構成されるゾーン(以下、このゾーンを「HDD用ゾーン」と呼ぶ)を形成し、その他のPhyからのトラフィックが到来しないようにする(もちろん、トップエクスパンダ110のPhyのうち、HDDの搭載されるエンクロージャエクスパンダの接続されるPhyが、Phy203に限定されない構成を許す場合(たとえば図2において、Phy205のうち最も左のPhyはHDDの搭載されるエンクロージャエクスパンダを接続する構成にしたい場合など)には、そのPhyも含まれるゾーンを形成すればよい)。同様に、トップエクスパンダ160内に、Phy252のうち最も右のPhyとPhy253とで構成されるゾーン(以下、このゾーンを「SSD用ゾーン」と呼ぶ)を形成し、その他のPhyからのトラフィックが到来しないようにする。これにより、イニシエータとSSDとの間の接続と、イニシエータとHDDとの間の接続が完全に分離され、イニシエータとSSDとの間の通信が、イニシエータ-HDD間の通信トラフィックにより妨害されないというメリットがある。
 変形例4に係るストレージ装置におけるトポロジ違反チェックでは、実施例1で説明した第4のルールと同様に、HDD用ゾーンに属するトップエクスパンダのPhyに接続(カスケード接続含む)されているエクスパンダが、HDDのみが接続されたエンクロージャエクスパンダであるか、そしてSSD用ゾーンに属するトップエクスパンダのPhyに接続されているエクスパンダが、SSDのみが接続されたエンクロージャエクスパンダであるかをチェックすればよい。なお、HDDが接続されるエンクロージャエクスパンダが、トップエクスパンダのPhyのうちSubtractive属性のPhyのみに接続される構成をとる場合には、トップエクスパンダのSubtractive属性のPhyには、HDDのみが接続されているか否かをチェックするようにしてもよい。
 変形例4に係るストレージ装置のSSDを接続するトポロジにおける、バックエンドネットワーク設定前処理、バックエンドネットワーク設定処理、増設処理は、実施例1におけるものと同じであるため、ここでの説明は省略する。
[変形例5]
 変形例4では、トップエクスパンダのZoning機能を用いて、イニシエータとSSDとの間の接続と、イニシエータとHDDとの間の接続を完全に分離する構成例を説明したが、変形例5では、イニシエータとSSDとの間の接続と、イニシエータとHDDとの間の接続を完全に分離する別の構成例を説明する。
 変形例5に係るストレージ装置の構成は、一部を除いて実施例1で説明したものと同様であるため、図示は省略する。実施例1との相違について、図2を参照しながら説明する。
 変形例5に係るストレージ装置では、HDDの接続されるエンクロージャエクスパンダ122(172)のPhy206(256)を、トップエクスパンダに接続せず、モジュールのバックエンドインターフェース107(157)に直結する。これにより、変形例4と同じく、イニシエータとSSDとの間の接続と、イニシエータとHDDとの間の接続が完全に分離され、イニシエータとSSDとの間の通信が、イニシエータ-HDD間の通信トラフィックにより妨害されないというメリットが得られる。
 図30から図37により、本発明の実施例2に係るストレージ装置を説明する。実施例2のストレージ装置は、バックエンドネットワークを通じて、ストレージ装置に接続したSSD及びHDDをモジュール間で共有可能で、かつ、モジュール間でのドライブの共有もしくは非共有を設定できることが特徴である。さらに、実施例2のストレージ装置は、実施例1のストレージ装置100に比べて、HDDの接続台数も増加させることができる。実施例2のストレージ装置は、HDD接続トポロジとHDD共有を実現する制御方法以外は、実施例1のストレージ装置100と構成、制御方法ともに同じである。
 図30は、実施例2に係るストレージ装置のバックエンドトポロジと、各エクスパンダPhyのルーティング属性を説明する図である。
 図30と図2との違いは、先ず、HDD接続用のエンクロージャエクスパンダ3702、3703がトップエクスパンダ110に接続されている、点である。また、HDD接続用のエンクロージャエクスパンダ3752、3753がトップエクスパンダ160に接続されている、点である。さらに、エンクロージャエクスパンダ172を、SASリンク165を介して接続するトップエクスパンダPhy253のルーティング属性が、Tableに変更されている。また、エンクロージャエクスパンダ3702を接続するトップエクスパンダPhy3701、及びエンクロージャエクスパンダ3752を接続するトップエクスパンダPhy3751のルーティング属性は、Tableである。実施例2のストレージ装置も、実施例1のストレージ装置100と同様に、セントラルエクスパンダ140とトップエクスパンダ160を接続するSASリンクが、Table-to-Table接続になる。
 続いて、本発明の実施例2に係るストレージ装置におけるバックエンドネットワーク設定処理及び増設処理の流れを説明するが、その前に、本発明の実施例2に係るストレージ装置において新たに用意される情報である、トップエクスパンダPhyの共有設定テーブルの内容について、図33を用いて説明する。
 トップエクスパンダPhyの共有設定テーブル4000は、トップエクスパンダのSASアドレス4001、トップエクスパンダPhyのPhy ID4002、当該Phyのルーティング属性4003、当該Phyに対するエンクロージャエクスパンダの接続有無4004、共有フラグ4005の情報を格納するテーブルである。トップエクスパンダPhyの共有設定テーブル4000は、モジュールごとに作成され、各モジュールのメモリに格納されている情報である。各モジュールのプロセッサは、自モジュール内の各トップエクスパンダの全Phyについて、Phy ID4002、当該Phyのルーティング属性4003、当該Phyに対するエンクロージャエクスパンダの接続有無4004の組の情報を、トップエクスパンダPhyの共有設定テーブル4000に格納する。トップエクスパンダPhyの共有設定テーブル4000への各種情報(4001~4004)の格納は、トップエクスパンダのデバイス接続テーブル作成処理(図3)と同時に行われる。
 一方、共有フラグ4005は、プロセッサ104(154)が自動的に設定・格納する情報ではない。詳細は後述するが、この情報は、バックエンドネットワーク設定処理及び増設処理の途中で、管理者によって設定される。管理者は共有フラグ4005に、“1”または“0”を設定可能である。共有フラグが“1”の場合に、対応するトップエクスパンダPhyに接続されたエンクロージャエクスパンダ内ドライブの“共有”が可能に設定され、“0”の場合に“非共有”にされる。このように、実施例2のストレージ装置は、エンクロージャエクスパンダを接続するトップエクスパンダPhy毎に、ドライブの共有または非共有を設定する。同じトップエクスパンダPhyからカスケード接続された複数のエンクロージャエクスパンダ内のドライブは、まとめて共有または非共有にされる。また、実施例2のストレージ装置は、トップエクスパンダPhy共有設定テーブル4000の共有フラグ4005の設定により、エンクロージャエクスパンダを接続するトップエクスパンダPhy毎に、ドライブの共有または非共有を設定することができる。
 続いて図31、32を用いて、実施例2に係るバックエンドネットワーク設定処理の流れを説明する。このフローは、実施例1に係るバックエンドネットワーク設定処理(図8、9)のフローチャートとほぼ同じであるので、以下では相違点を中心に説明する。
 図31のステップ3801~3805に、図8のステップ1104~1105からの変更がある。ステップ3801と3802は、それぞれ図8のステップ1104と1105に対応する。ステップ3803~3805は、このバックエンドネットワーク設定処理において、新規追加された処理である。
 ステップ3801において、スレーブプロセッサは、マスタープロセッサへ、トップエクスパンダのデバイス接続テーブル800と、トップエクスパンダPhyの共有設定テーブル4000を送信する(3801)。
 それに対してマスタープロセッサは、スレーブプロセッサからトップエクスパンダのデバイス接続テーブル800とトップエクスパンダPhyの共有設定テーブル4000を受信する(3802)。
 次に3803において、管理者は、上記各スレーブプロセッサから受信した各トップエクスパンダPhyの共有設定テーブル4000において、各エントリの共有フラグに所望の値を設定する(3803)。
 次に、マスタープロセッサは、管理者が更新した各トップエクスパンダPhyの共有設定テーブル4000を、各スレーブプロセッサへ送信する(3804)。
 次に、スレーブプロセッサは、マスタープロセッサからトップエクスパンダPhyの共有設定テーブルを受信し、スレーブモジュールのメモリに格納されていたトップエクスパンダPhyの共有設定テーブル4000の内容を更新する。これにより、トップエクスパンダPhyの共有設定(共有フラグ4005の内容)が各モジュールに保存される(3805)。
 図31の他の処理は、図8のフローと同じである。
 図32のステップ3901は、図9のステップ1205に対応する処理であるが、変更がある。
 ステップ3901において、マスタープロセッサは、マスターモジュールとスレーブモジュールのドライブアドレステーブル2200から、ドライブリストテーブル2300を作成する(3901)。このとき、マスタープロセッサは、各モジュールのドライブアドレステーブル2200から、各トップエクスパンダPhyの共有設定テーブル4000において共有設定されたドライブ(トップエクスパンダPhyの共有設定テーブル4000の、共有フラグ4005が「1」に設定されているトップエクスパンダPhy(Phy ID4002で特定されるPhy)に接続(カスケード接続)されているエンクロージャエクスパンダに接続されているドライブ)の情報を抜き出して、ドライブリストテーブル2300に登録する。
 図32の他の処理は、図9のフローと同じである。
 図34は、実施例2に係る増設処理のフローチャートである。
 このフローは、図23に示した、実施例1に係る増設処理のフローチャートとほぼ同じであるので、相違点について説明する。図34のステップ4101~4106が、図23のフローに対して新規追加された処理である。また、図23のステップ2710と2716は、それぞれ図34のステップ4107と4108に変更される。
 ステップ4101において、マスタープロセッサは、増設したエンクロージャのイニシエータからの接続段数をチェックする。増設エンクロージャがトップエクスパンダに直接接続している場合は、段数が2である。段数が2の場合、つまり、増設エンクロージャがトップエクスパンダに接続している場合はステップ4102に進み、そうでない場合はステップ4107に進む。
 ステップ4102において、増設対象モジュールのスレーブプロセッサは、マスタープロセッサへ、トップエクスパンダのデバイス接続テーブル800と、トップエクスパンダPhyの共有設定テーブルを送信する(4102)。
 それに対してマスタープロセッサは、増設対象モジュールのスレーブプロセッサからトップエクスパンダのデバイス接続テーブル800とトップエクスパンダPhyの共有設定テーブルを受信する(4103)。
 次に、管理者は、上記スレーブプロセッサから受信したトップエクスパンダPhyの共有設定テーブルにおいて、各エントリの共有フラグ4005に所望の値を設定する(4104)。
 次に、マスタープロセッサは、管理者が更新したトップエクスパンダPhyの共有設定テーブルを、スレーブプロセッサへ送信する(4105)。
 次に、増設対象モジュールのスレーブプロセッサは、マスタープロセッサからトップエクスパンダPhyの共有設定テーブルを受信し、スレーブモジュールのメモリに格納されていたトップエクスパンダPhyの共有設定テーブル4000の内容を更新する(4106)。
 ステップ4107は、図35の処理を実行する。ステップ4108は、図36及び図37の処理を実行する。
 図34の他の処理は、図23のフローと同じである。
 図35は、実施例2に係るエンクロージャまたはドライブ増設処理のフローチャートである。このフローは、図24の実施例1に係るエンクロージャまたはドライブ増設処理のフローチャートとほぼ同じであるので、相違点について説明する。図35のステップ4202が、図24のフローに対して新規追加された処理である。また、図35のステップ4201が、図24の2805に対して変更されている。
 ステップ4201において、スレーブプロセッサは、新規にドライブアドレステーブルに追加されたエントリで、且つ対応するトップエクスパンダPhyの共有設定が“共有”に設定されているエントリを、ドライブアドレステーブルに追加する。
 次に、スレーブプロセッサは、新規にドライブアドレステーブルに追加されたエントリをマスタープロセッサに送信する(4202)。
 図35の他の処理は、図24のフローと同じである。
 図36、37は、実施例2に係るモジュール増設処理のフローチャートである。このフローは、図25、26に示した、実施例1に係るモジュール増設処理のフローチャートとほぼ同じであるので、相違点について説明する。
 図36のステップ4301~4305に、図25のステップ2904~2905からの変更がある。ステップ4301と4302は、それぞれステップ2904と2905に対応する。ステップ4303~4305は、このモジュール増設処理において、新規追加された処理である。
 ステップ4301において、増設対象モジュールのスレーブプロセッサは、マスタープロセッサへ、トップエクスパンダのデバイス接続テーブル800と、トップエクスパンダPhyの共有設定テーブルを送信する(4301)。
 それに対してマスタープロセッサは、増設対象モジュールのスレーブプロセッサからトップエクスパンダのデバイス接続テーブル800とトップエクスパンダPhyの共有設定テーブルを受信する(4302)。
 次に、管理者は、上記スレーブプロセッサから受信したトップエクスパンダPhyの共有設定テーブルにおいて、各エントリの共有フラグに所望の値を設定する(4303)。
 次に、マスタープロセッサは、管理者が更新したトップエクスパンダPhyの共有設定テーブルを、スレーブプロセッサへ送信する(4304)。
 次に、増設対象モジュールのスレーブプロセッサは、マスタープロセッサからトップエクスパンダPhyの共有設定テーブルを受信し、トップエクスパンダPhyの共有設定を各モジュールに保存する(4305)。
 図36の他の処理は、図25のフローと同じである。
 図37のステップ4401は、図26のステップ3004に対応する処理であるが、変更がある。
 ステップ4401において、マスタープロセッサは、増設モジュールのドライブアドレステーブル2200から、ドライブリストテーブル2300を作成する(4401)。このとき、マスタープロセッサは、増設モジュールのドライブリストテーブル2200から、増設モジュールのトップエクスパンダPhyの共有設定テーブルにおいて共有設定されたドライブを抜き出して、ドライブリストテーブル2300に登録する。
 図37の他の処理は、図26のフローと同じである。以上が、本発明の実施例2に係る増設処理の説明である。
 以上説明したように、実施例2のストレージ装置は、HDD及びSSDをモジュール間で共有可能である。これにより、SSD及びHDDに関するI/O処理をモジュール間で負荷分散することができ、ストレージ装置を高性能化できる。さらに、HDDを接続したエンクロージャエクスパンダのカスケード接続をトップエクスパンダ毎に複数接続することにより、実施例2のストレージ装置は多数のHDDを搭載することができる。
 上記説明では、ドライブの共有または非共有を、エンクロージャエクスパンダを接続するトップエクスパンダPhy毎に設定するものとしていたが、ドライブ毎に設定しても良い。これは、例えば、ドライブ毎にドライブの共有または非共有を設定できるように、トップエクスパンダPhyの共有設定テーブルと同様、ドライブアドレステーブルにも共有フラグを設定するための欄を設けておき、図39のステップ3901の前に、管理者にドライブアドレステーブルに記述された各ドライブに対して、共有または非共有を設定させるようにすればよい。このとき、共有に設定できるドライブは、トップエクスパンダPhyの共有設定テーブルの設定と矛盾が起きないように、各トップエクスパンダPhyの共有設定テーブルにおいて共有設定されたドライブに限る。そして、ステップ3901において、マスタープロセッサは、各モジュールのドライブリストテーブル2200から、各トップエクスパンダPhyの共有設定テーブルにおいて共有設定されたドライブで、かつ、管理者がドライブ単位で共有に設定したドライブを抜き出し、ドライブリストテーブル2300に登録する。以降の処理は、図39と同じである。これにより、ドライブ単位で共有または非共有に設定することが可能で、設定はセントラルエクスパンダおよび各モジュールのトップエクスパンダのルートテーブルに適切に反映される。
 以上説明した通り、本実施例においても、Externally configurable expander同士のリンクがTable-to-table接続であっても、Externally configurable expanderのルートテーブルが設定可能となる。
 図38、39により、本発明の実施例3に係るストレージ装置を説明する。
 図38は、実施例3に係るストレージ装置のモジュール間接続を説明する図である。実施例3は、各モジュールの内部の構成とモジュール間ネットワークが冗長化されている点が特徴である。
 図38において、ストレージ装置4500は、4個のモジュール4601、4501~4503からなる。4個のモジュールは、2個のモジュール間ネットワーク4530、4531で相互接続している。さらに、4個のモジュールは、2個のセントラルエクスパンダ4510、4520で各モジュールのバックエンドネットワークを相互接続している。ここで、図39によりモジュール内構成を説明した後、再び図38のストレージ装置4500の説明に戻る。
 図39は、実施例3に係るストレージ装置のモジュール内構成を説明する図である。
 モジュール4601は、コントローラ4602、4652、トップエクスパンダ4610、4660、エンクロージャエクスパンダ4619、4620、4622、4623、4669、4670、4672、4673、SSD4625、4626、及びHDD4628、4629で構成される。
 コントローラ4602(4652)は、プロセッサ4603(4653)、フロントエンドインターフェース4605(4655)、メモリ4604(4654)、バックエンドインターフェース4607(4657)、及びネットワークインターフェース4609(4659)を備える。
 フロントエンドインターフェース4605(4655)は、チャネル4606(4656)を介してホストコンピュータ(図示せず)に接続する。また、フロントエンドインターフェース4605(4655)は、ホストコンピュータとコントローラ4602(4652)間のデータ転送プロトコルと、コントローラ4602(4652)内のデータ転送プロトコルを変換する。
 バックエンドインターフェース4607(4657)は、コントローラ4602(4652)とトップエクスパンダ4610(4660)をSASリンク4608(4658)で接続する。また、バックエンドインターフェース4607(4657)は、コントローラ4602(4652)内のデータ転送プロトコルと、コントローラ4602(4652)とトップエクスパンダ4610(4660)間のデータ転送プロトコルを変換する。また、バックエンドインターフェース4607(4657)は、SASのイニシエータを備える。
 ネットワークインターフェース4609(4659)は、ネットワークチャネル4642(4692)を介してモジュール間ネットワーク、図38の4530(図38の4531)に接続し、モジュール間でストレージ装置4500の制御情報や各種テーブル等、を送受信する。
 メモリ4604(4654)は、プロセッサ4603(4653)の主記憶であり、プロセッサ4603(4653)が実行するプログラム(ストレージ制御プログラム等)や、プロセッサ4603(4653)が参照する管理テーブル等が格納される。また、メモリ4604(4654)は、ストレージ装置4500のキャッシュメモリとしても使用される。
 プロセッサ4603(4653)は、フロントエンドインターフェース4605(4655)を介して接続したホストコンピュータと、バックエンドインターフェース4607(4657)を介して接続したHDD4628、4629またはSSD4625、4626との間の、データ転送を制御する。
 プロセッサ4603と4653は、プロセッサ間チャネル4630で接続されている。これにより、プロセッサ4603はメモリ4654を、プロセッサ4653はメモリ4604を相互にアクセス可能である。ストレージ装置のキャッシュメモリ内のデータは、このプロセッサ間チャネル4630を使って二重化される。
 HDD4628、4629及びSSD4625、4626は、デュアルポートドライブであり、2個のコントローラ4602、4652のバックエンドネットワーク4607、4657からアクセス可能である。
 トップエクスパンダ4610(4660)は、SASリンク4641(4692)を介して、セントラルエクスパンダ、図38の4510(図38の4520)に接続する。また、トップエクスパンダ4610(4660)は、SASリンク4615(4665)を介してエンクロージャエクスパンダ4622(4672)に接続する。同様に、エンクロージャエクスパンダ4622(4672)は、SASリンク4616を介してエンクロージャエクスパンダ4623(4673)に接続する。モジュール1 4501、モジュール2 4502、モジュール3 4503とセントラルエクスパンダ4510間のSASリンクはTable-to-table接続である。同様に、モジュール0 4601、モジュール2 4502、モジュール3 4503とセントラルエクスパンダ4520間のSASリンクはTable-to-table接続である。エンクロージャエクスパンダ4622、4623(4672、4673)は、それぞれ1個以上のHDD4628、4629を接続する。モジュール4601にHDD増設のためのエンクロージャエクスパンダを増設する場合には、増設するエンクロージャエクスパンダをSASリンク4617(4667)に接続する。このように、HDDを接続するエクスパンダは、トップエクスパンダ4610(4660)から直列に接続する。
 トップエクスパンダ4610(4660)は、SASリンク4611(4661)を介してエンクロージャエクスパンダ4619(4669)に接続する。同様に、トップエクスパンダ4610(4660)は、SASリンク4612(4662)を介してエンクロージャエクスパンダ4620(4670)に接続する。エンクロージャエクスパンダ4619、4620(4669、4670)は、それぞれ1個以上のSSD4625、4626を接続する。モジュール4601にSSD増設のためのエンクロージャエクスパンダを増設する場合には、増設するエンクロージャエクスパンダをSASリンク4613(4663)に接続する。このように、SSDを接続するエクスパンダは、トップエクスパンダ4610(4660)から、他のSSDを接続するエクスパンダに並列に接続する。
 図38の説明に戻る。ストレージ装置4500は、セントラルエクスパンダ4510でモジュール間を相互接続するネットワークと、セントラルエクスパンダ4520でモジュール間を相互接続するネットワークの、2個のバックエンドネットワークを備える。
 モジュール4601は、SASリンク4641を介して、セントラルエクスパンダ4510のPhy4511に接続している。Phy4511のルーティング属性はSubtractiveである。従って、セントラルエクスパンダ4510を接続しているバックエンドネットワークに関しては、モジュール4601がマスターモジュールとなる。
 一方、モジュール4501は、セントラルエクスパンダ4520のPhy4521と接続している。Phy4521のルーティング属性はSubtractiveである。従って、セントラルエクスパンダ4520を接続しているバックエンドネットワークに関しては、モジュール4501がマスターモジュールとなる。
 なお、ストレージ装置4500において、セントラルエクスパンダPhy4511と4521に関連するSASリンクを除いて、セントラルエクスパンダと各モジュールを接続するSASリンクは、Table-to-Table接続である。
 つまり、ストレージ装置4500の2個のバックエンドネットワークは、マスターモジュールが異なる構成になっている。例えば、モジュール4601に障害が発生してマスターモジュール4601によるDiscover等の処理ができなった場合を想定する。セントラルエクスパンダ4510を含むバックエンドネットワークは、マスターモジュール障害によりモジュール間接続のDiscover処理が行えなくなる。一方、セントラルエクスパンダ4520を含むバックエンドネットワークは、マスターモジュール4501が正常であり、動作継続に問題がない。このように、冗長化したバックエンドネットワーク構成において、異なるモジュールをマスターモジュールに割り当てることにより、信頼性を向上させることができる。
 以上説明した通り、実施例3に係るストレージ装置のように、モジュール間ネットワークが冗長化されている構成であっても、Externally configurable expanderのルートテーブルが設定可能となる。
 図41は、実施例4に係るストレージ装置における、バックエンドネットワークのトポロジを説明するための図である。ストレージ装置のバックエンドインターフェースより上の構成物については、実施例1等に係るストレージ装置と同じであるため、記載を省略している。
 実施例1に係るストレージ装置におけるバックエンドネットワークのトポロジとの違いは、本実施例におけるストレージ装置では、セントラルエクスパンダ5080にSSD5100が接続されてもよい点である。セントラルエクスパンダ5080に接続されるSSD5100は、各モジュールが共有することができる。また、セントラルエクスパンダ5080に接続できる記憶デバイスはSSDのみで、HDDを接続することは許可しない。
 この構成の利点は、セントラルエクスパンダ5080に接続されるSSD5100は、どのイニシエータからもセントラルエクスパンダにつながるSSDへの段数が2段であるため、どのイニシエータからのアクセスレイテンシーが同じになる点である。実施例4に係るストレージ装置では、バックエンドネットワーク設定処理のフロー、トポロジ違反有無のチェック(セントラルエクスパンダにSSDが接続可能だが、HDDが接続されている場合にはトポロジ違反としてエラーを通知)、増設処理のフローが異なるため、以下ではその点について説明する。なお本構成のバックエンドネットワーク設定前処理は実施例1の処理と同じである。
 本構成のバックエンドネットワーク設定処理は、実施例1で説明した処理とは以下の点で相違する。
 まず、セントラルエクスパンダに接続したSSDを認識するために、マスターモジュールが図8のステップ1109で、モジュール内のDiscoverに加えて、セントラルエクスパンダに接続されているデバイスのDiscoverを行う。これにより、セントラルエクスパンダ5080に接続されるSSD5100が認識される。セントラルエクスパンダに接続したSSDのDiscoverは、セントラルエクスパンダ140のSMPターゲット1501へDiscoverリクエストを送信することで行う。併せてトポロジ違反のチェック(セントラルエクスパンダにHDDが接続されている場合にはトポロジ違反としてエラーを通知)を行う。
 また、実施例4に係るストレージ装置では、装置内の各SSDについて、セントラルエクスパンダに接続したSSDか、もしくはモジュール内のSSDか、を区別して管理するために、マスターモジュールはドライブアドレステーブル2200(図18)に、セントラルエクスパンダに接続したSSDであるかどうかを示すフラグ(2207)を格納する欄を有する。そしてセントラルエクスパンダに接続されているデバイスのDiscoverの結果、セントラルエクスパンダ5080に接続されたSSD5100が認識されると、マスターモジュールはドライブアドレステーブル2200(図18)に、認識されたSSD5100の情報を登録するとともに、セントラルエクスパンダに接続したSSDであるかどうかを示すフラグ(2207)を「1」に設定する。この時、ドライブアドレス2200の、トライブが格納されているエンクロージャの番号2202と、エクスパンダ段数2203には値を格納しない。
 またドライブアドレステーブルと同様に、実施例4に係るストレージ装置で管理するドライブリストテーブル(図19)も、セントラルエクスパンダに接続したSSDであるかどうかを示すフラグ(2304)を格納する欄を有する。そしてドライブリストテーブルを作成する際(図9のステップ1205)には、ドライブアドレステーブルからフラグ2207も抽出して、ドライブリストテーブルに格納する。
 本構成では、セントラルエクスパンダに接続したSSDを各トップエクスパンダのルートテーブルに登録する必要がある。そのため、トップエクスパンダのルートテーブル作成処理(図9のステップ1207で行われる、図22に記載の処理)が変更になる。具体的には図22のステップ2602では、「プロセッサが、ドライブリストテーブルから、ドライブSASアドレスとモジュール番号とトップエクスパンダのSASアドレスに加え、フラグ(2303)を取得する」処理を行う。
 そして、ステップ2603では、「上記取得したモジュール番号と、このフローを実行中のモジュールの番号は同じであるか、かつ上記取得したトップエクスパンダSASアドレスと現在の処理対象トップエクスパンダのSASアドレスが同じであるか、かつ、フラグ(2303)が「1」でない(つまりセントラルエクスパンダに接続したSSDでないことを示す)か」を判定する(つまり、フラグ(2301)が1の場合には、ステップ2604~2606の処理が行われる)。またステップ2605では、フラグ(2301)が1でない場合には、実施例1で説明した処理と同じ処理が行われるが、フラグ(2301)が1の場合には、「プロセッサが、このフローでルートテーブルの作成対象としている、トップエクスパンダのSASアドレスに対応するトップエクスパンダPhyのPhy ID(1801)を取得する」処理を行う。これ以外の点は、実施例1で説明した処理と同じである。
 また、実施例4に係るストレージ装置で行われる増設処理では、セントラルエクスパンダへのSSD増設に対応するため、図23のステップ2709で、ドライブ増設先がセントラルエクスパンダの場合は、マスターモジュールがDiscoverを行う処理が追加される。その他の点は、実施例1で説明した処理と同じである。
 図42は、実施例5に係るストレージ装置における、バックエンドネットワークのトポロジを説明するための図である。ストレージ装置のバックエンドインターフェースより上の構成物については、実施例1等に係るストレージ装置と同じであるため、記載を省略している。
 実施例1に係るストレージ装置におけるバックエンドネットワークのトポロジとの違いは、トップエクスパンダ(5002、5022、5042、5062)に対して、さらにエンクロージャエクスパンダを接続するためのエクスパンダ(5202、5222、5242、5262)をカスケード接続する構成をとる点である。以降、トップエクスパンダに対して、カスケード接続されるエンクロージャエクスパンダを接続するためのエクスパンダ(5202、5222、5242、5262)のことを2番目のHDDエンクロージャトップエクスパンダ(図中では「2nd Top Exp」と記載)、その次にカスケード接続されるエクスパンダを3番目のHDDエンクロージャトップエクスパンダ5302(図中では「3rd Top Exp」と記載。なお図中では一例として、2番目のHDDエンクロージャトップエクスパンダ5202にのみ、3番目のHDDエンクロージャトップエクスパンダが接続されている)、その次にカスケード接続されるエクスパンダを4番目のHDDエンクロージャトップエクスパンダと呼ぶ。それ以降、n番目に接続されるエクスパンダのことを、n番目のHDDエンクロージャトップエクスパンダと呼ぶ。2番目~n番目のHDDエンクロージャトップエクスパンダは、エンドデバイス(SSD、HDD)が直接接続されることはなく、エクスパンダだけが接続される点で、(通常の)トップエクスパンダと類似しているので、本明細書ではこれをn番目のHDDエンクロージャトップエクスパンダと呼ぶこととする。また、2番目~n番目のHDDエンクロージャトップエクスパンダにカスケードでつながるエンクロージャエクスパンダはHDDのみを接続するものとし、SSDを接続した場合にはトポロジ違反とする。この構成の利点は、n番目のHDDエンクロージャトップエクスパンダから多数のカスケードトポロジに分岐するトポロジをバックエンドネットワークに形成可能であるため、HDDを多数搭載することが可能になる点である。
 このように、実施例5に係るストレージ装置では、新たにn番目のHDDエンクロージャトップエクスパンダという種別のエクスパンダが用いられる。そのため、エクスパンダ種別管理テーブル700(図4)に登録されるエクスパンダ種別には、これまでの実施例で用いられていた、エンクロージャエクスパンダ、トップエクスパンダ、セントラルエクスパンダに加えて、「HDDエンクロージャトップエクスパンダ」が登録される。ストレージ装置にn番目のHDDエンクロージャトップエクスパンダを設置する場合には、実施例1と同じく、管理者がエクスパンダ種別管理テーブル700に、当該n番目のHDDエンクロージャトップエクスパンダのSASアドレスと、その種別(HDDエンクロージャトップエクスパンダ)を登録する。
 実施例5に係るストレージ装置では、バックエンドネットワーク設定処理のフロー、トポロジ違反の有無をチェック(2番目~n番目のHDDエンクロージャトップエクスパンダ以降には、SSDの接続を禁止する)、増設処理のフローが異なるため、以下ではその点について説明する。なお、バックエンドネットワーク設定前処理は実施例1の処理と同じである。
 本構成のバックエンドネットワーク設定処理と増設処理は、実施例1にて説明した処理に対して以下の違いがある。
 変更点は、2番目のHDDエンクロージャトップエクスパンダより先のエンクロージャエクスパンダにSSDが接続されていないか、トポロジのチェックを行う点である。エンクロージャ管理テーブル作成処理(図8、9の1110~1201の処理、または1112~1203の処理)の際、エクスパンダ種別管理テーブル700を参照し、トップエクスパンダに接続されるエンクロージャエクスパンダに対しては、実施例1と同様のエンクロージャ管理テーブル作成及びトポロジ違反チェック(図15)を行う。そしてトップエクスパンダに接続された2番目のHDDエンクロージャトップエクスパンダについては、以下で説明する2番目のHDDエンクロージャトップエクスパンダから先のトポロジチェック(図43、44)を行う。
 2番目のHDDエンクロージャトップエクスパンダから先のトポロジチェックのフロー(図43)について説明する。2番目のHDDエンクロージャトップエクスパンダの段数は2(イニシエータからの段数が2段目)のため、ステップ5501で変数n(エクスパンダ段数)に2を代入する。次に、ステップ5502でn番目のHDDエンクロージャトップエクスパンダのトポロジチェック(図44)を行う。
 n番目のHDDエンクロージャトップエクスパンダのトポロジチェック(図44)のフローについて説明する。ステップ5601で、プロセッサが、n番目のHDDエンクロージャトップエクスパンダのSMPターゲットへ、各External PhyのPhy IDを指定して、Discoverリクエストを送信する。このDiscoverリクエスト送信は、全External Phyについて行う。ステップ5602で、プロセッサが、Discoverレスポンスに含まれる接続先SASアドレスから、n番目のHDDエンクロージャトップエクスパンダの次段に接続されている1または複数のエクスパンダの種別を判定する。ステップ5603で変数nを1つインクリメントする。ステップ5604で、次段につながるエクスパンダに対してループ処理を実行する。ステップ5605で次段のエクスパンダの種類がエンクロージャエクスパンダかどうかを判定し、エンクロージャエクスパンダの場合は、ステップ5606に進む。ステップ5606では、次段につながるエンクロージャエクスパンダのトポロジチェック(図45)を行う。ステップ5605で、判定結果がエンクロージャエクスパンダでない場合は、すなわちn番目のHDDエンクロージャトップエクスパンダである場合は、ステップ5607に進む。ステップ5607で、n番目のHDDエンクロージャトップエクスパンダのトポロジチェックを行う(つまり図44の処理を再帰的に実行する)。ステップ5608で、次段につながる全エクスパンダに対してループ処理が完了した後、フローの処理を終了する。
 次段につながるエンクロージャエクスパンダのトポロジチェックの処理フローを図45に示す。このフローは、次段につながるエンクロージャエクスパンダの認識(図16)フローから、エンクロージャ管理テーブルに関連するステップ(2009~2012)を省略したフローである。また、ステップ2004’で行われるドライブ内訳チェックにおいて、エンクロージャエクスパンダにSSDが含まれている場合に、トポロジ違反であると判断して、エラーを報告するものになっている。それ以外の点は図16のフローと同じであるので、説明を省略する。
 図46は、実施例6に係るストレージ装置における、バックエンドネットワークのトポロジを説明するための図である。ストレージ装置のバックエンドインターフェースより上の構成物については、実施例1等に係るストレージ装置と同じであるため、記載を省略している。また、ここで説明するバックエンドネットワークは、実施例3に係るストレージ装置のように、イニシエータからドライブ(記憶デバイス)に至る経路を冗長化している構成にも適用可能であるが、図46では片系のバックエンドネットワークのみを図示している。
 実施例1に係るストレージ装置におけるバックエンドネットワークのトポロジとの違いは、本実施例におけるストレージ装置のバックエンドネットワーク4700では、(1)複数のトップエクスパンダ4731~4738がある点、(2)トップエクスパンダエンクロージャとドライブエンクロージャを統合し、トップエクスパンダにSSDを接続できるようにした点、である。(1)の構成を採用してトップエクスパンダ台数を増やすことにより、トップエクスパンダ1台あたりのPhy数を削減することができる。また、(2)の統合により、イニシエータからSSDまでの接続段数(イニシエータからSSDに到達するまでの経路上に存在するエクスパンダの数)は、モジュール内で最小段数1段(実施例1では2段)、モジュール間で最小段数3段(実施例1では4段)に削減され、さらにトップエクスパンダの台数と等しい数だけエンクロージャ台数を削減することができる。トップエクスパンダエンクロージャとドライブエンクロージャを統合し、トップエクスパンダにSSDを接続できるようにしたエンクロージャのことを、トップドライブエンクロージャと呼ぶ。
 バックエンドインターフェース4701は複数のイニシエータを搭載するHBA(Host Bus Adapter)(4702~4705)を複数持ち、各HBAは2つのイニシエータ(4706と4707、4708と4709、4710と4711、4712と4713)を持つ。本発明の実施例に係るストレージ装置では、バックエンドインターフェース4701からアクセス可能なドライブ(HDDまたはSSD)の中から選択された2以上のドライブを用いてRAID(Redundant Arrays of Inexpensive Disks)グループを構成し、ドライブ等の障害時のデータ復旧を可能にする機能を有するが、バックエンドインターフェース4701には、RAIDグループを構成するドライブ数と同数(例えば8個)のイニシエータを設けるようにしている。1段目のトップエクスパンダとイニシエータは1対1でSASリンク(4770)を介して接続した構成であり、各SASリンク(4770)は例えば4ワイドリンクである。SASリンク4720~4727はセントラルエクスパンダにつながる。
 各トップドライブエンクロージャ(4741~4748)にはSSDのみ搭載可能とし、HDDの接続は禁止する。以下では、RAIDグループを構成することのできるドライブを搭載した、ドライブエンクロージャの集合のことをRAIDグループエンクロージャ構成単位と呼ぶが、実施例6に係るストレージ装置では、8台のトップドライブエンクロージャ(4741~4748)を、1つのRAIDグループエンクロージャ構成単位(4730)として管理している。なお、RAIDグループエンクロージャ構成単位(4730)内の全ドライブを使用してRAIDグループを構成するわけではない。たとえば管理者が1つのRAIDグループを作成したい場合、例えばRAIDグループエンクロージャ構成単位(4730)内の各トップドライブエンクロージャの中からドライブを1台ずつ選び、選ばれた8台のドライブを用いて、たとえば7D+1P(7台のドライブに分散して格納される所定単位の各データからパリティを作成して、作成されたパリティを8台目のドライブに格納するRAID構成の意)のRAIDグループを構成することができる。また、4台のトップエンクロージャ(4741~4744、もしくは、4745~4748)の中から、それぞれドライブを1台ずつ選び、3D+1PのRAIDグループを構成することもできる。
 トップエクスパンダがSSDを接続するトポロジとHDDを接続するトポロジを分離する役割を持つことは、実施例1と同じである。また、2段目以降に接続されるエクスパンダを管理する方法(バックエンドネットワークの設定前処理、設定処理、増設処理など)も実施例1と同じである。トップエクスパンダに直接接続されるドライブ(これを「1段目のドライブ」と呼ぶ)は従来のカスケードトポロジと同様の方法で別途管理する。ただし、従来のカスケードトポロジの管理と違う点は、1段目のドライブに共有設定(“共有”もしくは“非共有”)をすること、2段目以降と同じように1段目のドライブをドライブアドレステーブルに登録することである。2段目に接続されたエンクロージャから構成されたRAIDグループエンクロージャ構成単位4750、4751内のエンクロージャエクスパンダと、これより先にカスケード接続されるエンクロージャエクスパンダは、SSDを接続するエンクロージャエクスパンダのみに限定される。SSDを接続するエンクロージャエクスパンダの接続段数に制限があることは、実施例1と同様である。
 RAIDグループエンクロージャ構成単位4760内のエンクロージャエクスパンダと、これより先に接続されるエンクロージャエクスパンダ(RAIDグループエンクロージャ構成単位4761内のエンクロージャエクスパンダ等)は、HDDのみを接続するエンクロージャエクスパンダと定められている。RAIDグループエンクロージャ構成単位4760より先に接続されるRAIDグループエンクロージャ構成単位内のエンクロージャエクスパンダは、カスケード接続される。RAIDグループエンクロージャ構成単位(4750、4751、4760、4761)におけるRAIDグループの構成方法は、RAIDグループエンクロージャ構成単位(4730)と同様である。
 段数について述べると、SSDを接続するエンクロージャエクスパンダは1段目から始まり、1段目にRAIDグループエンクロージャ構成単位(4730)内のエクスパンダ、2段目にRAIDグループエンクロージャ構成単位(4750、4751)内のエクスパンダ、3段目に2段目の先につながるRAIDグループエンクロージャ構成単位、と続いていく。HDDを接続するエンクロージャエクスパンダは2段目から始まり、2段目にRAIDグループエンクロージャ構成単位(4760)内のエクスパンダ、3段目に2段目の先につながるRAIDグループエンクロージャ構成単位内のエクスパンダ、と続いていく。なお、RAIDグループエンクロージャ構成単位4750、4751、4752、4760,4761の図示を簡略化するため、ドライブエンクロージャおよびドライブの記載を省略している。
 図47は、実施例6のもう1つの形態である。図46に係るストレージ装置におけるバックエンドネットワークのトポロジとの違いは、図47におけるストレージ装置のバックエンドネットワーク4800では、トップエクスパンダ(4831~4834)の数が、イニシエータ4806~4813の数よりも少なくなる点である。図47の例では、1段目のトップエクスパンダは2つのイニシエータとSASリンク(4860)で接続されており、トップエクスパンダ数はイニシエータ数の半分となる。ただし、各SASリンク(4860)を例えば図46の倍の8ワイドリンクにすることで、図46と同等のネットワーク帯域を実現できる。なお、トップエクスパンダとイニシエータの接続関係は、図47に記載の構成に限定されるものではなく、1段目のトップエクスパンダは2より多くのイニシエータとSASリンクで接続しても良い。
 トップエクスパンダ数が8の図46の例と、トップエクスパンダ数が4の図47の例との違いは、
(1)図46の例では、図47の例よりも1段目のトップエクスパンダ数が多く、トップエクスパンダに必要となるPhyを少数に抑えられること、(2)図47の例では、図46の例よりも1段目のトップエクスパンダに必要となるPhy数が増える一方で、RAIDグループエンクロージャ構成単位内のドライブエンクロージャ数を半分に(8から4に)削減できること、である。以降は、図46と同様の説明となる。
 バックエンドインターフェース4801は複数のイニシエータを搭載するHBA(4802~4805)を複数持ち、各HBAは2つのイニシエータ(4806と4807、4808と4809、4810と4811、4812と4813)を持つ。1段目のトップエクスパンダ1つに対して、イニシエータ2つがSASリンク4860を介して接続される。SASリンク4820~4823はセントラルエクスパンダにつながる。
 RAIDグループエンクロージャ構成単位4830の各トップドライブエンクロージャにはSSDのみ搭載可能とし、HDDの接続は禁止する。4台のトップドライブエンクロージャ(4831~4834)がRAIDグループエンクロージャ構成単位(4830)となる。各トップドライブエンクロージャの中からドライブ2台ずつを選び、7D+1PのRAIDグループを構成する。また、各トップエンクロージャ(4831~4834)の中から、ドライブを1台ずつ選び、3D+1PのRAIDグループを構成することもできる。トップエクスパンダがSSDを接続するトポロジとHDDを接続するトポロジを分離する役割を持つことは、図46での説明と同様に実施例1と同じである。また、2段目以降を管理する方法(バックエンドネットワークの設定前処理、設定処理、増設処理など)は実施例1と同じであるが、トップエクスパンダにつなぐ1段目のドライブは別途管理(図46での説明と同じ管理方法)する。2段目のRAIDグループエンクロージャ構成単位4840、4841内のエンクロージャエクスパンダと、これより先に接続するエンクロージャエクスパンダは、SSDを接続するエンクロージャエクスパンダのみに限定される。実施例1と同様に、SSDを接続するエンクロージャエクスパンダの段数には制限がある。
 RAIDグループエンクロージャ構成単位4850より先に接続されるRAIDグループエンクロージャ構成単位は、カスケード接続される。RAIDグループエンクロージャ構成単位4850内のエンクロージャエクスパンダと、これより先に接続されるエンクロージャエクスパンダ(4851)は、HDDを接続するエンクロージャエクスパンダのみに限定される。RAIDグループエンクロージャ構成単位(4840、4841、4850、4851)におけるRAIDグループの構成方法は、RAIDグループエンクロージャ構成単位(4830)と同様である。
 段数について述べると、SSDを接続するエンクロージャエクスパンダは1段目から始まり、1段目にRAIDグループエンクロージャ構成単位(4830)内のエクスパンダ、2段目にRAIDグループエンクロージャ構成単位(4840、4841)内のエクスパンダ、3段目に2段目の先につながるRAIDグループエンクロージャ構成単位、と続いていく。HDDを接続するエンクロージャエクスパンダは2段目から始まり、2段目にRAIDグループエンクロージャ構成単位(4850)内のエクスパンダ、3段目に2段目の先につながるRAIDグループエンクロージャ構成単位内のエクスパンダ、と続いていく。なお、RAIDグループエンクロージャ構成単位4840、4841、4850,4851の図示を簡略化するため、ドライブエンクロージャおよびドライブの記載を省略している。
 実施例6に係るストレージ装置のバックエンドネットワーク(図46、図47)のトポロジは、トップエクスパンダにドライブ(SSD)が接続されることを除いては、実施例1や2等のトポロジと変わりがない。そのため実施例6に係るストレージ装置における、バックエンドネットワーク設定前処理、バックエンドネットワーク設定処理、増設処理は、実施例1や2におけるものと同じ処理を行えばよい。また、実施例2で説明したように、トップエクスパンダPhyの共有設定テーブルあるいはドライブアドレステーブルに共有フラグを設定するための欄を設けておき、管理者に共有または非共有を設定させることで、トップドライブエンクロージャに搭載されたドライブを共有または非共有にさせることも可能である。
 またバックエンドネットワーク設定処理等の過程で行われるトポロジ違反チェックも、実施例1で説明したもの(第1のルール~第4のルール)と同様のチェックを行うとよい。なお、実施例6に係るストレージ装置の場合、RAIDグループエンクロージャ構成単位4750、4751内のエンクロージャエクスパンダと、これより先にカスケード接続されるエンクロージャエクスパンダには、SSDのみが搭載され、またRAIDグループエンクロージャ構成単位4760内のエンクロージャエクスパンダと、これより先に接続されるエンクロージャエクスパンダ(RAIDグループエンクロージャ構成単位4761内のエンクロージャエクスパンダ等)には、HDDのみが搭載される構成に限定されるため、そのトポロジ違反チェックを行うことが好ましい。
 具体的には、トップエクスパンダの各Phy(またはポート)について、接続可能なエンクロージャエクスパンダの種類(HDDを接続するエンクロージャエクスパンダ、もしくはSSDを接続するエンクロージャエクスパンダ)の情報を管理者が設定できるような手段をストレージ装置に設け、バックエンドネットワーク設定処理等の過程で行われるトポロジ違反チェックの際にはこの設定された情報に基づいて、適切なエンクロージャエクスパンダが接続されているかをチェックすればよい。たとえばRAIDグループエンクロージャ構成単位4750、4751内のエンクロージャエクスパンダが接続されるトップエクスパンダの各Phy(またはポート)については、SSDのみが搭載されたエンクロージャエクスパンダが接続可能である旨の情報を設定しておけば、RAIDグループエンクロージャ構成単位4750、4751内のエンクロージャエクスパンダと、これより先にカスケード接続されるエンクロージャエクスパンダには、SSDのみが搭載されているか否かのチェックを行うことが可能である。
 以上、説明した通り、本発明に係るストレージ装置は、HDDとSSDという、アクセス性能の異なる記憶デバイスを混載するストレージ装置において、バックエンドネットワークの初期化時、増設時にトポロジ違反をチェックする機能を備え、HDDの通信経路とSSDの通信経路が共有されるトポロジを極力排除することにより、SSDの性能を充分に発揮させることを可能にする。さらに、SSDを複数のストレージコントローラから共有アクセス可能にするバックエンドネットワークを備えているので、モジュール間負荷分散によるストレージ高性能化が容易である。さらに負荷分散処理時には、SSD内データの移動無しにI/O処理をモジュール間で移行できる。
 また、本実施例によりExternally configurable expander同士のリンクがTable-to-table接続であっても、Externally configurable expanderのルートテーブルが設定可能となる。
 その結果、本発明を適用したストレージ装置では、ビッグデータ分析などの大規模なデータ処理を行うユーザは、大規模なデータに対して迅速に対応しかつ高速にアクセスすることができ、データ処理性能を向上させることができる。
 以上、本発明の実施例を説明してきたが、これは本発明の説明のための例示であって、本発明を上で説明した実施例に限定する趣旨ではない。たとえば上で説明した変形例は実施例2と組み合わせてもよい。また変形例同士を組み合わせることも可能である。また実施例に記載のストレージ装置の構成も上で説明したものに限定されない。たとえばコントローラ内にCPUが複数存在する構成を採用してもよい。
100、4500:ストレージ装置
101、151、4601、4501、4502、4503:モジュール
102、152:コントローラ
103、153、4603、4653:プロセッサ
104、154、4604、4654:メモリ
105、155、4605、4655:フロントエンドインターフェース
106、156、4606、4656:ホストチャネル
107、157、4607、4657:バックエンドインターフェース
108、158、4608、4658:SASリンク
109、159、4609、4659:ネットワークインターフェース
110、160、4610、4660:トップエクスパンダ
140、4510、4520:セントラルエクスパンダ
141、142、4641、4691:SASリンク
143、4530、4531:モジュール間ネットワーク
111~118、161~168:SASリンク
119~124、169~174:エンクロージャエクスパンダ
3701、3751:Phy
3702、3703、3752、3753:エンクロージャエクスパンダ
4619、4620、4622、4623:エンクロージャエクスパンダ
4669、4670、4672、4673:エンクロージャエクスパンダ
125~127、175~177、4625、4626:SSD
128~130:178~180、4628、4629:HDD
4642、4692:ネットワークチャネル
201、251、1001、1051:イニシエータ
202~215、252~265、4511、4521:Phy
1004、1054、1501:SMPターゲット
4630:プロセッサ間チャネル

Claims (14)

  1.  複数の記憶デバイスと1以上のストレージコントローラとが、バックエンドネットワークで接続されて構成されるストレージ装置であって、
     前記ストレージコントローラは、前記複数の記憶デバイスにコマンドを発行するためのイニシエータを複数備え、
     前記バックエンドネットワークは、前記イニシエータと前記複数の記憶デバイスの間に設けられる複数のスイッチと、前記イニシエータと前記複数のスイッチの間を接続する伝送線とから構成されるネットワークであって、
     前記ストレージコントローラは、前記バックエンドネットワークの初期化処理において、前記複数のスイッチの各々に接続されている前記記憶デバイスまたは前記スイッチの情報を取得し、
     前記取得した、前記複数のスイッチの各々に接続されている前記記憶デバイスまたは前記スイッチの情報に基づいて、前記バックエンドネットワークのトポロジが、あらかじめ定められた1以上のルールに違反していないか判定し、
     前記ルールに違反している場合、エラーを通知する、
    ことを特徴とする、ストレージ装置。
  2.  前記複数の記憶デバイスには、1以上の第1の種類の記憶デバイスと、前記第1の種類の記憶デバイスよりもアクセス性能の高い、1以上の第2の種類の記憶デバイスが含まれており、
     前記1以上のルールの1つは、前記各スイッチには、前記第1の種類の記憶デバイスと前記第2の種類の記憶デバイスの両方が接続されていないことであって、
     前記ストレージコントローラは前記判定において、前記第1の種類の記憶デバイスと前記第2の種類の記憶デバイスの両方が接続されているスイッチが存在した場合、エラーを通知する、
    ことを特徴とする、請求項1に記載のストレージ装置。
  3.  前記バックエンドネットワークには、前記イニシエータと、前記第1または第2の種類の記憶デバイスを接続するスイッチとを接続するためのスイッチである、トップエクスパンダが設けられており、
     前記1以上のルールの1つは、前記トップエクスパンダに接続される前記第1の種類の記憶デバイスのみが接続されているスイッチの数が、あらかじめ設定された数以下であることであって、
     前記ストレージコントローラは前記判定において、前記トップエクスパンダに、前記第1の種類の記憶デバイスのみが接続されているスイッチが、前記あらかじめ設定された数を超えて接続されていた場合、エラーを通知する、
    ことを特徴とする、請求項2に記載のストレージ装置。
  4.  前記あらかじめ設定された数は、前記トップエクスパンダに接続可能な前記第2の種類の記憶デバイスのみが接続されているスイッチの数よりも小さい値であることを特徴とする、請求項3に記載のストレージ装置。
  5.  前記バックエンドネットワークは、SAS(Serial Attached SCSI)規格に従うデバイスを接続するネットワークであって、
     前記トップエクスパンダは、前記スイッチを接続するためのポートを複数有し、前記複数のポートのうち1つのポートはルーティング属性がSubtractive属性であるPhyを有し、
     前記1以上のルールの1つは、前記トップエクスパンダの有する前記複数のポートのうち、前記ルーティング属性がSubtractive属性のPhyを有するポートのみに、前記第1の種類の記憶デバイスのみが接続されたスイッチが接続されていることであって、
     前記ストレージコントローラは、前記判定において、前記トップエクスパンダに、前記ルーティング属性がSubtractive属性のPhyを有さないポートに前記第1の種類の記憶デバイスのみが接続されているスイッチが接続されている場合、エラーを通知する、
    ことを特徴とする、請求項3に記載のストレージ装置。
  6.  前記1以上のルールの1つは、前記第2の種類の記憶デバイスの接続されたスイッチの前記トップエクスパンダからの接続段数が、あらかじめ設定された所定数以下であることであって、
     前記ストレージコントローラは、前記判定において、前記第2の種類の記憶デバイスの接続されたスイッチの前記トップエクスパンダからの接続段数が、前記所定数以下でない場合、エラーを通知する、
    ことを特徴とする、請求項3に記載のストレージ装置。
  7.  前記1以上のルールの1つは、前記第2の種類の記憶デバイスの接続されたスイッチに対して、前記記憶デバイスの接続された別のスイッチが接続されないことであって、
     前記ストレージコントローラは、前記判定において、前記第2の種類の記憶デバイスの接続されたスイッチに対して、前記記憶デバイスの接続された別のスイッチが接続されていた場合、エラーを通知する、
    ことを特徴とする、請求項6に記載のストレージ装置。
  8.  前記ストレージ装置は、第1のストレージコントローラと第2のストレージコントローラと、前記第1及び第2のストレージコントローラを接続するネットワークを有し、
     前記バックエンドネットワークには、前記第1のストレージコントローラの有する第1のイニシエータと前記記憶デバイスを接続するスイッチとを接続するための第1トップエクスパンダと、前記第2のストレージコントローラの有する第2のイニシエータと前記記憶デバイスを接続するスイッチとを接続するための第2トップエクスパンダと、が設けられており、
     前記第1のストレージコントローラは、前記バックエンドネットワークを経由して、前記第2トップエクスパンダに接続されている、前記記憶デバイスを接続するスイッチに接続されている記憶デバイスにアクセス可能であり、
     前記第2のストレージコントローラは、前記バックエンドネットワークを経由して、前記第1トップエクスパンダに接続されている、前記記憶デバイスを接続するスイッチに接続されている記憶デバイスにアクセス可能である、
    ことを特徴とする、請求項1に記載のストレージ装置。
  9.  前記バックエンドネットワークは、第1トップエクスパンダと第2トップエクスパンダとを接続するためのセントラルエクスパンダを有することを特徴とする、請求項8に記載のストレージ装置。
  10.  前記バックエンドネットワークの初期化処理において、
     前記第1のストレージコントローラは前記ネットワークを経由して、前記第2のストレージコントローラから、前記第2トップエクスパンダに接続されている、前記記憶デバイスを接続するスイッチに接続されている記憶デバイスのアドレス情報を取得し、
     前記第1トップエクスパンダのルートテーブルに、前記取得した記憶デバイスのアドレス情報を登録し、
     前記第1トップエクスパンダを経由して、前記第1トップエクスパンダに接続されている、前記記憶デバイスを接続するスイッチに接続されている記憶デバイスのアドレス情報を取得して、前記第2トップエクスパンダのルートテーブルに登録すべき内容を作成し、前記ネットワークを介して前記作成された内容を前記第2のストレージコントローラに送信し、
     前記第2のストレージコントローラは、前記第1のストレージコントローラから受信した前記内容を前記第2トップエクスパンダのルートテーブルに格納する、
    ことを特徴とする、請求項8に記載のストレージ装置。
  11.  前記複数の記憶デバイスには、1以上の第1の種類の記憶デバイスと、前記第1の種類の記憶デバイスよりもアクセス性能の高い、1以上の第2の種類の記憶デバイスが含まれており、
     前記バックエンドネットワークの初期化処理において、
     前記第1のストレージコントローラは、前記第1トップエクスパンダ及び前記第2トップエクスパンダのルートテーブルに、前記第1の種類の記憶デバイスのアドレス情報は登録しないことを特徴とする、請求項10に記載のストレージ装置。
  12.  前記第1及び第2のストレージコントローラは、ホストコンピュータに接続されており、
     前記ストレージ装置では、前記記憶デバイスに対するアクセス処理を担当するコントローラが、前記記憶デバイスごとに定められており、
     前記第1のストレージコントローラの負荷が所定値を超えているとき、前記第1のストレージコントローラが担当していた複数の記憶デバイスのうち、1の記憶デバイスに対するアクセス処理を、前記第2のストレージコントローラが担当するように変更することを特徴とする、請求項8に記載のストレージ装置。
  13.  前記ストレージ装置に、前記記憶デバイスが増設されると、
    前記第1のストレージコントローラは、前記バックエンドネットワークを経由して前記増設された記憶デバイスのアドレス情報を取得し、
     前記増設された記憶デバイスのアドレス情報を前記第1及び第2トップエクスパンダのルートテーブルに登録させることを特徴とする、
    請求項10に記載のストレージ装置。
  14.  前記複数の記憶デバイスには、1以上の第1の種類の記憶デバイスと、前記第1の種類の記憶デバイスよりもアクセス性能の高い、1以上の第2の種類の記憶デバイスが含まれており、
     前記イニシエータの各々には、接続を確立可能な記憶デバイスの種類が定められており、
     前記ストレージコントローラが前記第1の種類の記憶デバイスに対してコマンドを送信する際、前記第1の種類の記憶デバイスに対して接続を確立可能と定められたイニシエータを介してコマンドを送信することを特徴とする、請求項1に記載のストレージ装置。
PCT/JP2014/056296 2014-03-11 2014-03-11 ストレージ装置 WO2015136619A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/426,318 US9253257B2 (en) 2014-03-11 2014-03-11 Storage subsystem
PCT/JP2014/056296 WO2015136619A1 (ja) 2014-03-11 2014-03-11 ストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/056296 WO2015136619A1 (ja) 2014-03-11 2014-03-11 ストレージ装置

Publications (1)

Publication Number Publication Date
WO2015136619A1 true WO2015136619A1 (ja) 2015-09-17

Family

ID=54071099

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/056296 WO2015136619A1 (ja) 2014-03-11 2014-03-11 ストレージ装置

Country Status (2)

Country Link
US (1) US9253257B2 (ja)
WO (1) WO2015136619A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018154743A1 (ja) * 2017-02-27 2018-08-30 株式会社日立製作所 ストレージシステム及びストレージの制御方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213485B1 (en) * 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
WO2016090541A1 (zh) * 2014-12-09 2016-06-16 清华大学 数据存储系统和数据存储方法
US10691628B2 (en) * 2016-05-06 2020-06-23 Quanta Computer Inc. Systems and methods for flexible HDD/SSD storage support
TWI620074B (zh) * 2016-07-12 2018-04-01 緯創資通股份有限公司 伺服器系統及儲存單元的控制方法
JP2019067251A (ja) * 2017-10-03 2019-04-25 株式会社日立製作所 計算機システム及び通信経路の制御方法
TWI658711B (zh) * 2018-02-13 2019-05-01 緯穎科技服務股份有限公司 拓樸偵測方法、計算節點及儲存節點
US10942880B2 (en) * 2018-12-29 2021-03-09 Intel Corporation Aging tolerant system design using silicon resource utilization
US11329879B2 (en) * 2019-02-04 2022-05-10 Biamp Systems, LLC Dynamic network configuration during device installation
TWI720528B (zh) * 2019-07-03 2021-03-01 神雲科技股份有限公司 用於擴充硬碟擴充單元的叢集式儲存系統
US11675528B2 (en) * 2021-03-29 2023-06-13 Western Digital Technologies, Inc. Switch based BGA extension

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250631A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd ストレージ装置及びその制御方法
JP2010055210A (ja) * 2008-08-26 2010-03-11 Hitachi Ltd ストレージシステム及びデータ保証方法
JP2012073983A (ja) * 2010-09-30 2012-04-12 Internatl Business Mach Corp <Ibm> マルチパスを使用するシステム及び方法
WO2013046464A1 (ja) * 2011-09-30 2013-04-04 株式会社日立製作所 不揮発半導体記憶媒体を有するストレージシステム
JP2013171305A (ja) * 2012-02-17 2013-09-02 Fujitsu Ltd ストレージ装置、ストレージシステム、ストレージ管理方法及びストレージ管理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4869123B2 (ja) 2007-03-28 2012-02-08 株式会社日立製作所 ストレージシステム
US8566550B2 (en) * 2009-09-22 2013-10-22 Hitachi, Ltd. Application and tier configuration management in dynamic page reallocation storage system
US8612656B2 (en) * 2011-06-02 2013-12-17 International Business Machines Corporation Implementing device physical location identification in serial attached SCSI (SAS) fabric using resource path groups

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250631A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd ストレージ装置及びその制御方法
JP2010055210A (ja) * 2008-08-26 2010-03-11 Hitachi Ltd ストレージシステム及びデータ保証方法
JP2012073983A (ja) * 2010-09-30 2012-04-12 Internatl Business Mach Corp <Ibm> マルチパスを使用するシステム及び方法
WO2013046464A1 (ja) * 2011-09-30 2013-04-04 株式会社日立製作所 不揮発半導体記憶媒体を有するストレージシステム
JP2013171305A (ja) * 2012-02-17 2013-09-02 Fujitsu Ltd ストレージ装置、ストレージシステム、ストレージ管理方法及びストレージ管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018154743A1 (ja) * 2017-02-27 2018-08-30 株式会社日立製作所 ストレージシステム及びストレージの制御方法
US10732872B2 (en) 2017-02-27 2020-08-04 Hitachi, Ltd. Storage system and storage control method

Also Published As

Publication number Publication date
US20150350322A1 (en) 2015-12-03
US9253257B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
WO2015136619A1 (ja) ストレージ装置
US7913037B2 (en) Computer system for controlling allocation of physical links and method thereof
US8407384B2 (en) Disk array subsystem and control method thereof
US7437462B2 (en) Method for zoning data storage network using SAS addressing
US7536508B2 (en) System and method for sharing SATA drives in active-active RAID controller system
US7849248B2 (en) Method and system for combining multiple serial attached small computer system interface (SAS) expanders
US8051334B2 (en) Enabling SAS expander loops for increased fairness and performance
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
US9959051B2 (en) Storage system and storage control method to select path for transmitting command via SAS expanders
US7913023B2 (en) Specifying lanes for SAS wide port connections
CN104657316A (zh) 服务器
KR20050046543A (ko) 시리얼 어태치드 스카시 스토리지 네트워크에서의 통신시스템 및 방법
US20120284435A1 (en) Zone group manager virtual phy
US20130117767A1 (en) Sas expander for communication between drivers
US8918571B2 (en) Exposing expanders in a data storage fabric
US10042788B2 (en) Storage system and method for controlling command transmission
US11646958B2 (en) Optimized path selection by non-latency detecting multipath hosts
US11093147B2 (en) Asymmetric logical unit access path distribution system
US10289576B2 (en) Storage system, storage apparatus, and communication method
US10503673B2 (en) Storage system and method of storage system for constructing system
US7370157B2 (en) Systems and methods of sharing removable media storage devices in multi-partitioned systems
US20160203089A1 (en) Expander data routing

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14426318

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14885154

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14885154

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP