WO2018173246A1 - ストレージシステム及び記憶制御方法 - Google Patents

ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
WO2018173246A1
WO2018173246A1 PCT/JP2017/011970 JP2017011970W WO2018173246A1 WO 2018173246 A1 WO2018173246 A1 WO 2018173246A1 JP 2017011970 W JP2017011970 W JP 2017011970W WO 2018173246 A1 WO2018173246 A1 WO 2018173246A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
storage controller
ctl
management information
Prior art date
Application number
PCT/JP2017/011970
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 PCT/JP2017/011970 priority Critical patent/WO2018173246A1/ja
Priority to US16/330,333 priority patent/US10909007B2/en
Publication of WO2018173246A1 publication Critical patent/WO2018173246A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • 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
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • 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/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present invention generally relates to storage control of a storage system having redundant storage controllers.
  • a storage system generally includes one or more storage devices (typically, a RAID (Redundant Array of Disks) group composed of a plurality of storage devices) and I / O (Input / Output) from a host. And a storage controller (hereinafter referred to as CTL) that executes data I / O to one or more storage devices in response to the request.
  • a storage controller hereinafter referred to as CTL
  • the CTL is made redundant (for example, Patent Document 1).
  • Each CTL has a memory and executes synchronization processing between CTLs in order to share information on the memory among the CTLs.
  • the synchronization process includes at least communication between CTLs of cached data (dirty data) according to a write request received from the host, and communication between CTLs of management information (at least updated part) updated according to the write request. Including either
  • a data communication path is established between CTLs.
  • Inter-CTL communication for synchronization processing is performed via a data communication path.
  • communication impossible when communication via the data communication path becomes impossible (hereinafter abbreviated as “communication impossible”), synchronization processing between CTLs becomes impossible (hereinafter abbreviated as “synchronization impossible”).
  • synchronization impossible In storage systems where it is desirable to avoid system outages as much as possible (for example, storage systems where operation 24 hours a day, 365 days a year is desired), it is not desirable to stop accepting I / O requests from hosts because synchronization is impossible .
  • the cause of communication failure may be a failure of the first CTL (for example, a failure of a port to which the data communication path is connected). Even if the second CTL is replaced while there is a failure in the first CTL, the communication cannot be performed again and the second CTL is blocked. In this case, it is conceivable to replace the first CTL, but for this purpose, the storage system must be stopped.
  • the first CTL If communication is impossible (communication via the data communication path is impossible) even if the second CTL is replaced, the first CTL writes dirty data and data management information to one or more storage devices. Write processing is executed while maintaining acceptance of I / O requests from the host.
  • the replaced second CTL reads data management information from one or more storage devices.
  • the first CTL stops accepting I / O requests from the host.
  • the replaced second CTL starts accepting an I / O request from the host.
  • the first CTL CTL that is likely to be a failure CTL
  • FIG. 1 shows a configuration of a computer system according to an embodiment. Each structure of role management information and data management information is shown. A part of the flow of processing executed when first and second communication failures occur is shown. The remainder of the flow of processing executed when the first and second communication failures occur is shown. An example of the screen displayed by the management system when the second communication failure occurs is shown.
  • CTL60 storage controller
  • CTL60A storage controller
  • CTL60B storage controller
  • end of the reference code given to the component in the CTL 60A is “A”
  • the end of the reference code given to the component in the CTL 60B is “B”.
  • accepting an I / O request means that an I / O request can be received, and does not necessarily mean that an I / O request has actually been received.
  • FIG. 1 shows a configuration of a computer system according to an embodiment.
  • the computer system 50 includes a host storage system 52 and a management system 54.
  • the host storage system 52 includes a plurality of hosts 101 and a storage system 103 connected to the plurality of hosts 101.
  • the management system 54 manages the storage system 103.
  • the plurality of hosts 101 and the storage system 103 are connected via a first communication network such as a SAN (Storage Area Network) 102, for example.
  • the management system 54 and the storage system 103 are connected via a second communication network such as a LAN (Local Area Network), for example.
  • the first and second communication networks may be the same communication network. Instead of at least one of the first and second communication networks, a relay device such as a PCIe (PCI-Express) switch or a multiplexer may be employed.
  • the number of hosts 101 may be one.
  • the host 101 is one or more host computers.
  • the storage system 103 includes a plurality of storage devices 131 and redundant CTLs 60A and 60B connected to the plurality of storage devices 131.
  • a data communication path 143 and a command communication path 144 are extended between the CTLs 60A and 60B.
  • the number of storage devices 131 may be one.
  • the outline of this embodiment is as follows, for example.
  • CTL 60A is a master and CTL 60B is a slave.
  • the CTL 60B (slave) is blocked and replaced.
  • the second communication failure that cannot be performed via the data communication path 143 that is, when the communication failure is not resolved
  • the selection of the CTL to be blocked Is incorrect (when an occlusion selection error is detected)
  • the replaced CTL 60B enters the hot standby mode
  • the CTL 60A enters the write through mode after confirming that the CTL 60B has entered the hot standby mode.
  • the replaced CTL 60B executes a preparation process including an initial setting for accepting an I / O request from the host 101.
  • the CTL 60A When the CTL 60A enters the write-through mode, the CTL 60A performs a write process for writing the data management information 175 and dirty data (data cached in the memory 161A but not written to the storage device 131) held in the CTL 60A to the storage device 131. , While accepting the I / O request from the host 101 is executed.
  • the replaced CTL 60B reads data management information from the storage device 131 to the memory 161B.
  • CTL 60A exits the write-through mode and stops accepting I / O requests from the host 101.
  • the replaced CTL 60B starts accepting an I / O request from the host 101.
  • the data management information 175 is synchronized between the CTLs 60A and 60B via the storage device 131.
  • the CTL 60A is blocked (the CTL 60A can be replaced).
  • the CTL 60A (CTL that is highly likely to be a failure CTL) can be replaced without stopping the storage system 103.
  • the host 101 transmits an I / O request for data (user data) to the storage system 103.
  • User data is data stored in the logical volume by the host 101.
  • the I / O request includes I / O destination information indicating an I / O destination area.
  • the I / O destination information includes, for example, the LUN (Logical Unit Number) of the I / O destination logical volume and the LBA (Logical Block Address) of the area in the logical volume.
  • the logical volume is provided by CTLs 60A and 60B.
  • the storage device 131 is a non-volatile storage device (for example, HDD (Hard Disk Drive) or SSD (Solid State Drive)).
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the CTL 60 includes a FI / F (front end interface) 142, a BI / F (back end interface), an MI / F (management interface) 141, a memory 161, and a processor 121 connected to them.
  • FI / F front end interface
  • BI / F back end interface
  • MI / F management interface
  • the FI / F 142 is an interface device connected to a plurality of hosts 101.
  • the BI / F 123 is an interface device connected to the plurality of storage devices 131.
  • the M-I / F 141 is an interface device connected to the management system 54.
  • the memory 161 stores a control program 171, role management information 173, and data management information 175.
  • the control program 171 is executed by the processor 121 and controls the operation of the CTL 60.
  • the role management information 173 is information indicating each role (master or slave) of the CTLs 60A and 60B.
  • the data management information 175 is information related to data according to the write request received by the CTL 60.
  • a data communication path 143 is established between the CTLs 60A and 60B (for example, between the processors 121A and 121B).
  • a command communication path 144 is established between the CTLs 60A and 60B (for example, between the processors 121A and 121B).
  • Management system 54 is composed of one or more computers. Specifically, for example, when the management computer displays information (specifically, the management computer displays information on its own display device, or the management computer transmits display information to a remote display computer)
  • the management computer is the management system 54.
  • the management system 54 may include the plurality of computers (which may include a display computer when the display computer performs display). is there.
  • Input of information to the computer and output of information from the computer may be performed by an input / output device included in the computer. Examples of the input / output device include a display device, a keyboard, and a pointing device, but another device may be employed instead of or in addition to at least one of them.
  • a serial interface device or an Ethernet interface device (Ethernet is a registered trademark) is adopted, and a display computer having a display device, a keyboard, and a pointing device is connected to such an interface device.
  • the information may be output (for example, displayed) and input by the computer transmitting the display information to the display computer or the computer receiving the input information from the display computer.
  • FIG. 2 shows the configuration of each of the role management information 173 and the data management information 175.
  • the role management information 173 has an entry for each CTL 60, and each entry holds information such as the CTL ID 201 and the role 202.
  • the CTL ID 201 is the ID of the CTL 60.
  • a role 202 indicates the role of the CTL 60.
  • the CTL 60A (CTL ID 201 “CTL1”) is a master and the CTL 60B (CTL ID 201 “CTL2”) is a slave.
  • the data management information 175 has an entry for each data (user data). Each entry holds information such as a data ID 211 and a data attribute 212.
  • the data ID 121 is an ID of data (user data).
  • the data attribute 212 includes information regarding the attribute of the data, for example, a data storage area address (for example, an ID of the storage device 131 and a storage area address in the storage device 131).
  • the data attribute 212 further includes a data volume area address (for example, an address of an area in the logical volume), a data cache attribute (for example, dirty (data not stored in the storage device 131)), and clean (data stored in the storage device 131). Stored)) and a cache area address of the data (for example, an address of the area of the data in the memory 161).
  • 3 and 4 show the flow of processing executed when the first and second communication impossibility occurs.
  • the processing of the CTL 60A is, for example, processing performed when the processor 121A executes the control program 171A.
  • the processing of the CTL 60B is, for example, processing performed when the processor 121B executes the control program 171B.
  • the CTL 60A When the first communication impossibility in which communication via the data communication path 143 is impossible occurs (S301: Y), the CTL 60A performs the first communication disabling block process (for example, a module connected to the processor 121A). (For example, processing for stopping FI / F 142A and BI / F 123A) is executed (S302). Then, the CTL 60A transmits a block command (an example of a first signal) to the CTL 60B via the command communication path 144 (S303). S302 and S303 are executed by the CTL 60A because the CTL 60A is the master. The CTL 60B receives the block command via the command communication path 144 (S304), and blocks it in response to the block command (S305).
  • S304 command communication path 144
  • S305 blocks it in response to the block command
  • the CTL 60A may notify the management system 54 that the first communication failure has occurred, and the CTL 60B may receive a block command from the management system 54 that has received the notification. Until the CTL 60B receives the block command, both of the CTLs 60A and 60B accept an I / O request from the host 101. After the CTL 60B receives the block command, only the CTL 60A accepts an I / O request from the host 101. When the CTL 60B is blocked, the CTL 60B transmits a blocking completion notification to the CTL 60A via the command communication path 144 (S306).
  • the CTL 60A receives a block completion notification via the command communication path 144 (S307), and transmits a block completion message to the management system 54 via the MI / F 141A (S308).
  • the management system 54 receives the blocking completion message and displays the content of the message (S309).
  • the maintenance staff confirms the content of the message (S310), and determines whether to perform non-stop replacement of the CTL 60B (S311). “Non-stop replacement” refers to replacing the CTL 60 without stopping the storage system 103 (while the storage system 103 is still operating). When the determination result in S311 is false, the maintenance staff performs stop replacement of CTL 60B. “Stop replacement” is to stop the storage system 103 and replace the CTL 60.
  • the maintenance staff performs non-stop replacement of the CTL 60B, and transmits a completion notification to at least one of the CTL 60A and the replaced CTL 60B via the management system 54. (S312).
  • the completion notification is shared between the CTLs 60A and 60B via the command communication path 144.
  • the CTL 60A and the replaced CTL 60B receive the completion notification and execute recovery processing.
  • the following (1) to (4) are performed.
  • the processor 121B in the CTL 60B activates and initializes the CTL 60B.
  • the processor 121B diagnoses whether the module in the CTL 60B is normal.
  • the processor 121B performs initial settings related to communication between CTLs with the processor 121A in the CTL 60A.
  • the processor 121B performs synchronization processing of the data management information 175 with the processor 121A in the CTL 60A.
  • FIG. 4 shows the case where a second communication failure occurs in which communication via the data communication path 143 is impossible despite the replacement of the CTL 60B (S314: Y), that is, when an occlusion selection error occurs. Processing is executed. If the second communication failure does not occur but the storage system 103 does not return to normal (S315: N), S303 is executed again. When the storage system 103 returns to normal (S315: N), the process returns to S301.
  • the CTL 60A executes a second blockage process that disables communication (S400).
  • the CTL 60A transmits a confirmation message including an inquiry as to whether or not to perform non-stop replacement of the CTL 60A to the management system 54 (S401).
  • the management system 54 receives the confirmation message and displays the confirmation message (S402).
  • FIG. 5 shows an example of the confirmation message display screen.
  • the maintenance staff confirms the confirmation message (S403), and determines whether or not to perform non-stop replacement of the CTL 60A (S404). If the determination result in S404 is false, the maintenance staff performs stop replacement of the CTL 60A (S406). For example, S406 is performed after the “cancel” button on the display screen illustrated in FIG. 5 is pressed.
  • an execution message (an example of the third signal) including information indicating that non-stop replacement of the CTL 60A is executed is sent via the management system 54 between the CTL 60A and the replaced CTL 60B. It transmits to at least one of them (S405). For example, S405 is performed because the “start” button on the display screen illustrated in FIG. 5 is pressed.
  • S405 is performed because the “start” button on the display screen illustrated in FIG. 5 is pressed.
  • the CTL 60A and the replaced CTL 60B receive the execution message (S407), and the CTL 60B enters the hot standby mode. Specifically, the CTL 60B starts a preparation process including an initial setting for accepting an I / O request from the host (S408). After S400, S401 to S407 may be skipped and S408 may be started. That is, S408 may be started without a manual instruction from the maintenance staff.
  • the CTL 60B completes the preparation process (S409), and transmits a completion notification to at least the CTL 60A of the management system 54 and the CTL 60A. Upon receiving the completion notification, the management system 54 displays a completion notification message (S411).
  • the fact that the replaced CTL 60B has completed the preparation process means that the CTL 60B can accept an I / O request when the handover from the CTL 60A to the CTL 60B is completed. Therefore, the CTL 60A that has received the completion notification (in other words, the CTL 60A that has confirmed that the CTL 60B has entered the hot standby mode) enters the write-through mode, that is, has maintained acceptance of I / O requests from the host 101.
  • the write processing for writing the dirty data and the data management information on the memory 161A to the one or more storage devices 131 is started (S412).
  • the address of the storage area to which the data management information is written may be determined in advance.
  • the CTL 60A transmits a write processing start notification (an example of a second signal) to the CTL 60B via the command communication path 144 (S413).
  • the CTL 60B receives a write processing start notification (an example of a second signal) via the command communication path 144 (S414).
  • the address of the storage area to which the data management information is written may be specified.
  • the CTL 60B reads the data management information from the one or more storage devices 131, and starts a takeover process (for example, takeover of information regarding the blocked storage device 131) (S415). Note that reading data management information from one or more storage devices 131 may or may not be included in the takeover process.
  • the write-through mode when the CTL 60A receives a write request from the host 101, the data according to the write request is written to the one or more storage devices 131, and the data in the one or more storage devices 131 is written according to the writing of the data. The data management information is updated, and then the write completion is returned to the host 101.
  • a response is returned after data writing and data management information update according to the write request are performed on one or more storage devices 131. Thereby, it can be expected to guarantee the accuracy of taking over the data management information to the CTL 60B.
  • the CTL 60A transmits a write process completion notification (an example of a fourth signal) to the CTL 60B via the command communication path 144 (S416).
  • the CTL 60A stops accepting the I / O request (S417).
  • the CTL 60A changes the role of the CTL 60A from the master to the slave (updates the role management information 173).
  • the CTL 60B receives the write process completion notification via the command communication path 144, that is, completes the takeover process (S418). In this case, the CTL 60B starts accepting an I / O request (S419). At that time, the CTL 60B changes the role of the CTL 60B from the slave to the master (updates the role management information 173). In addition, the CTL 60B transmits to the management system 54 a notification that the CTL 60B has started accepting I / O. Receiving the notification, the management system 54 displays a message including information indicating that the CTL 60B has started accepting I / O (S420).
  • the CTL 60B since the CTL 60B becomes the master in S419, the CTL 60B can block the CTL 60A when communication failure occurs after the replacement of the CTL 60A.
  • the CTL 60B is temporary, and the CTL 60A may become the master and the CTL 60B may return to the slave after the replacement of the CTL 60A.
  • the CTL 60A accepts an I / O request
  • the CTL 60B accepts an I / O request instead of the CTL 60A.
  • the I / O request acceptance stop in S417 maintains that the data management information read by the CTL 60B to the memory 161B matches the data management information in the one or more storage devices 131.
  • the CTL 60B After S419, the CTL 60B returns a write completion notification confirmation response (an example of a fifth signal) to the CTL 60A via the command communication path 144 (S421).
  • a write completion notification confirmation response (an example of a fifth signal)
  • the CTL 60A closes (S422).
  • the fact that the CTL 60A receives the confirmation response of the write completion notification is equivalent to knowing that the CTL 60B has started accepting the I / O request. In such a case, since the CTL 60A is blocked, it can be ensured that at least one CTL 60 accepts an I / O request.
  • the exchange between the CTLs 60A and 60B may be via the management system 54.
  • the exchange via the command communication path 144 is expected to achieve faster exchange than via the management system 54. it can.
  • the maintenance staff determines whether or not to perform non-stop replacement of the CTL 60A. As a result, it is possible to prevent the CTL 60A from entering a closed state without confirmation from maintenance personnel.
  • the data attribute 212 may include at least one of I / O frequency and last I / O time.
  • the CTL 60B receives at least one of the I / O frequency and the last I / O time in each entry in the background (that is, whether or not an I / O request is received) after the I / O reception is started. Based on this, data with high readability may be predicted, and the predicted data may be cached from the storage device 131 to the memory 161B. Thereby, it can be expected to improve the read performance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

冗長化されたストレージコントローラでありデータ通信パス経由で接続されている第1及び第2のCTLのうちの第2のCTLがリプレースされても通信不可(データ通信パス経由の通信が不可能)が生じた場合、第1のCTLが、ダーティデータ及びデータ管理情報を1以上の記憶デバイスに書き込むことである書込み処理を、ホストからI/O要求を受け付けることを維持したまま実行する。リプレースされた第2のCTLが、1以上の記憶デバイスからデータ管理情報を読み出す。第1のCTLが、ホストからI/O要求を受け付けることを停止する。リプレースされた第2のCTLが、ホストからI/O要求を受け付けることを開始する。

Description

ストレージシステム及び記憶制御方法
 本発明は、概して、冗長化されたストレージコントローラを有するストレージシステムの記憶制御に関する。
 ストレージシステムは、一般に、1以上の記憶デバイス(典型的には、複数の記憶デバイスで構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループ)と、ホストからのI/O(Input/Output)要求に応答して1以上の記憶デバイスに対してデータのI/Oを実行するストレージコントローラ(以下、CTL)とを有する。信頼性を担保するために、CTLは冗長化されている(例えば特許文献1)。
WO2016/088231
 冗長化されたCTLとして、第1及び第2のCTLがある。各CTLは、メモリを有し、そのメモリ上の情報をCTL間で共有するため、CTL間の同期処理を実行する。同期処理は、ホストから受けたライト要求に従うキャッシュされたデータ(ダーティデータ)のCTL間通信、及び、そのライト要求に従い更新された管理情報(少なくとも更新された部分)のCTL間通信のうちの少なくともいずれかを含む。
 CTL間にデータ通信パスが張られている。同期処理のためのCTL間通信は、データ通信パス経由で行われる。
 このため、データ通信パス経由の通信が不可能(以下、「通信不可」と略記する)となった場合、CTL間の同期処理が不可能(以下、「同期不可」と略記する)になる。システム停止を可能な限り回避することが望まれるストレージシステム(例えば24時間365日の稼働が望まれるストレージシステム)では、同期不可を理由にホストからのI/O要求の受け付けを止めることは望ましくない。
 しかし、同期不可のまま各CTLが単独で動作すると、システムの状態がいわゆるスプリットブレインとなり、記憶デバイス内のデータのロストのような問題が生じ得る。
 このため、同期不可の場合、第1及び第2のCTLのうちのいずれかが閉塞して、単一のCTLにより稼働を継続する必要がある。
 通信不可の原因の判別が必ずしも可能であるとは限らない。そこで、通信不可能の場合には必ず第2のCTL(決め打ちされたCTL)を閉塞しリプレースする方法が採用される。
 しかし、通信不可の原因が第1のCTLの障害(例えば、データ通信パスが接続されるポートの障害)であることもあり得る。第1のCTLに障害がある状態で第2のCTLがリプレースされても、再び、通信不可が生じて第2のCTLが閉塞することになる。この場合、第1のCTLをリプレースすることが考えられるが、そのためには、ストレージシステムの停止が必要になってしまう。
 第2のCTLがリプレースされても通信不可(データ通信パス経由の通信が不可能)が生じた場合、第1のCTLが、ダーティデータ及びデータ管理情報を1以上の記憶デバイスに書き込むことである書込み処理を、ホストからI/O要求を受け付けることを維持したまま実行する。リプレースされた第2のCTLが、1以上の記憶デバイスからデータ管理情報を読み出す。第1のCTLが、ホストからI/O要求を受け付けることを停止する。リプレースされた第2のCTLが、ホストからI/O要求を受け付けることを開始する。
 第2のCTL(決め打ちされたCTL)を閉塞することが間違いであった場合でも、ストレージシステムを停止することなく、第1のCTL(障害CTLである可能性が高いCTL)を閉塞してリプレースすることができる。
一実施形態に係る計算機システムの構成を示す。 役割管理情報及びデータ管理情報の各々の構成を示す。 第1及び第2の通信不可が生じた場合に実行される処理の流れの一部を示す。 第1及び第2の通信不可が生じた場合に実行される処理の流れの残りを示す。 第2の通信不可が生じた場合に管理システムによって表示される画面の一例を示す。
 以下、図面を参照して、一実施形態を説明する。以下の説明では、同種の要素を区別しないで説明する場合には、参照符号の共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、CTL(ストレージコントローラ)を区別しない場合には、「CTL60」と言い、CTLを区別する場合には、「CTL60A」、「CTL60B」のように言うことがある。また、CTL60A内の構成要素に付与された参照符号の末尾は「A」とし、CTL60B内の構成要素に付与された参照符号の末尾は「B」とする。
 また、以下の説明において、「I/O要求を受け付ける」とは、I/O要求の受信が可能な状態になることを意味し、実際にI/O要求を受信したことを必ずしも意味しない。
 図1は、一実施形態に係る計算機システムの構成を示す。
 計算機システム50は、ホストストレージシステム52と、管理システム54とを有する。ホストストレージシステム52は、複数のホスト101と、複数のホスト101に接続されたストレージシステム103とを有する。管理システム54は、ストレージシステム103を管理する。複数のホスト101とストレージシステム103間は、例えば、SAN(Storage Area Network)102のような第1の通信ネットワーク経由で接続される。管理システム54とストレージシステム103間は、例えば、LAN(Local Area Network)のような第2の通信ネットワーク経由で接続される。第1及び第2の通信ネットワークは同じ通信ネットワークでもよい。第1及び第2の通信ネットワークの少なくとも1つに代えてPCIe(PCI-Express)スイッチやマルチプレクサのような中継デバイスが採用されてもよい。ホスト101の数は1でもよい。ホスト101は、1以上のホスト計算機である。
 ストレージシステム103は、複数の記憶デバイス131と、複数の記憶デバイス131に接続された冗長化されたCTL60A及び60Bを有する。CTL60A及び60B間に、データ通信パス143と、コマンド通信パス144とが張られている。記憶デバイス131の数は1でもよい。
 本実施形態の概要は、例えば以下の通りである。
 CTL60AがマスターでありCTL60Bがスレーブである。データ通信パス143経由の通信が不可能である第1の通信不可が生じた場合、CTL60B(スレーブ)が閉塞しリプレースされる。CTL60Bが閉塞しリプレースされてもデータ通信パス143経由の通信が不可能である第2の通信不可が生じた場合(つまり、通信不可が解消しない場合)、言い換えれば、閉塞対象とするCTLの選択が誤っていた場合(閉塞選択ミスが検出された場合)、リプレースされたCTL60Bが、ホットスタンバイモードに入り、CTL60Aが、CTL60Bがホットスタンバイモードに入ったことを確認してライトスルーモードに入る。
 リプレースされたCTL60Bは、ホットスタンバイモードに入った場合、ホスト101からI/O要求を受け付けるための初期設定を含んだ準備処理を実行する。
 CTL60Aは、ライトスルーモードに入った場合、CTL60Aが保持するデータ管理情報175及びダーティデータ(メモリ161Aにキャッシュされたが記憶デバイス131に書き込まれていないデータ)を記憶デバイス131に書込む書込み処理を、ホスト101からI/O要求を受け付けることを維持したまま実行する。
 リプレースされたCTL60Bは、記憶デバイス131からデータ管理情報をメモリ161Bに読み出す。
 CTL60Aが、ライトスルーモードから抜けて、ホスト101からI/O要求を受け付けることを停止する。リプレースされたCTL60Bが、ホスト101からI/O要求を受け付けることを開始する。
 第2の通信不可が生じた場合、記憶デバイス131経由で、CTL60A及び60B間でデータ管理情報175が同期する。その同期が完了し、CTL60BがI/O要求の受け付けを開始した場合、CTL60Aが閉塞する(CTL60Aのリプレースが可能となる)。
 本実施形態によれば、閉塞選択ミスが生じても、ストレージシステム103を停止することなく、CTL60A(障害CTLである可能性が高いCTL)を交換することができる。
 以下、本実施形態を詳細に説明する。
 ホスト101は、ストレージシステム103にデータ(ユーザデータ)のI/O要求を送信する。ユーザデータは、ホスト101が論理ボリュームに格納するデータである。I/O要求は、I/O先の領域を表すI/O先情報を含む。I/O先情報は、例えば、I/O先の論理ボリュームのLUN(Logical Unit Number)と、その論理ボリュームにおける領域のLBA(Logical Block Address)とを含む。論理ボリュームは、CTL60A及び60Bにより提供される。
 記憶デバイス131は、不揮発性の記憶デバイス(例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive))である。
 CTL60は、F-I/F(フロントエンドインタフェース)142、B-I/F(バックエンドインタフェース)、M-I/F(管理インタフェース)141、メモリ161、及び、それらに接続されたプロセッサ121を有する。
 F-I/F142は、複数のホスト101に接続されるインタフェースデバイスである。B-I/F123は、複数の記憶デバイス131に接続されるインタフェースデバイスである。M-I/F141は、管理システム54に接続されるインタフェースデバイスである。
 メモリ161は、制御プログラム171、役割管理情報173及びデータ管理情報175を格納する。制御プログラム171は、プロセッサ121に実行され、CTL60の動作を制御する。役割管理情報173は、CTL60A及び60Bの各々の役割(マスター又はスレーブ)を示す情報である。データ管理情報175は、CTL60が受信したライト要求に従うデータに関する情報である。
 CTL60A及び60B間(例えば、プロセッサ121A及び121B間)にデータ通信パス143が張られる。また、CTL60A及び60B間(例えば、プロセッサ121A及び121B間)にコマンド通信パス144が張られる。
 管理システム54は、1以上の計算機で構成される。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システム54である。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システム54である。計算機への情報の入力や、計算機からの情報の出力は、計算機が有する入出力デバイスにより行われてよい。入出力デバイスの例としては、表示デバイス、キーボード及びポインティングデバイスが考えられるが、これらのうちの少なくとも1つに代えて又は加えて別のデバイスが採用されてよい。また、入出力デバイスの代替として、シリアルインタフェースデバイスやイーサーネットインタフェースデバイス(イーサネットは登録商標)が採用され、そのようなインタフェースデバイスに、表示デバイスとキーボード及びポインティングデバイスとを有する表示用計算機が接続され、計算機が表示用情報を表示用計算機に送信したり、計算機が入力用情報を表示用計算機から受信したりすることで、情報の出力(例えば表示)及び入力が行われてよい。
 図2は、役割管理情報173及びデータ管理情報175の各々の構成を示す。
 役割管理情報173は、CTL60毎にエントリを有し、各エントリが、CTL ID201及び役割202といった情報を保持する。CTL ID201は、CTL60のIDである。役割202は、CTL60の役割を示す。本実施形態によれば、第2の通信不可が生じる前は、CTL60A(CTL ID201“CTL1”)がマスターであり、CTL60B(CTL ID201“CTL2”)がスレーブである。
 データ管理情報175は、データ(ユーザデータ)毎にエントリを有する。各エントリが、データID211及びデータ属性212といった情報を保持する。データID121は、データ(ユーザデータ)のIDである。データ属性212は、データの属性に関する情報、例えば、データの記憶領域アドレス(例えば、記憶デバイス131のIDとその記憶デバイス131における記憶領域のアドレス)を含む。データ属性212は、更に、データのボリューム領域アドレス(例えば、論理ボリュームにおける領域のアドレス)、データのキャッシュ属性(例えば、ダーティ(記憶デバイス131にデータが未格納)、クリーン(記憶デバイス131にデータが格納済))、及び、データのキャッシュ領域アドレス(例えば、データのメモリ161における領域のアドレス)のうちの少なくとも1つを含んでよい。
 以下、本実施形態で行われる処理の例を説明する。
 図3及び図4は、第1及び第2の通信不可が生じた場合に実行される処理の流れを示す。なお、以下の説明において、CTL60Aの処理は、例えば、プロセッサ121Aが制御プログラム171Aを実行することにより行われる処理である。また、CTL60Bの処理は、例えば、プロセッサ121Bが制御プログラム171Bを実行することにより行われる処理である。
 データ通信パス143経由の通信が不可能である第1の通信不可が生じた場合(S301:Y)、CTL60Aが、その第1の通信不可の閉塞処理(例えば、プロセッサ121Aに接続されているモジュール(例えば、F-I/F142A及びB-I/F123A)を停止させる処理)を実行する(S302)。そして、CTL60Aが、コマンド通信パス144経由で、閉塞コマンド(第1の信号の一例)をCTL60Bに送信する(S303)。S302及びS303は、CTL60Aがマスターであるが故にCTL60Aにより実行される。CTL60Bは、コマンド通信パス144経由で閉塞コマンドを受信し(S304)、その閉塞コマンドに応答して、閉塞する(S305)。なお、第1の通信不可が生じたことが、CTL60A(又は60B)により管理システム54に通知され、その通知を受けた管理システム54からCTL60Bが閉塞コマンドを受信してもよい。CTL60Bが閉塞コマンドを受信するまで、CTL60A及び60Bのいずれもホスト101からI/O要求を受け付け、CTL60Bが閉塞コマンドを受信した後、CTL60Aのみがホスト101からI/O要求を受け付ける。CTL60Bは、閉塞したら、閉塞完了通知を、コマンド通信パス144経由で、CTL60Aに送信する(S306)。
 CTL60Aは、コマンド通信パス144経由で閉塞完了通知を受信し(S307)、閉塞完了メッセージを、M-I/F141A経由で、管理システム54に送信する(S308)。管理システム54は、その閉塞完了メッセージを受信し、そのメッセージの内容を表示する(S309)。保守員が、そのメッセージ内容を確認し(S310)、CTL60Bの無停止リプレースを実施するか否かを判断する(S311)。「無停止リプレース」とは、ストレージシステム103を停止すること無しに(ストレージシステム103が稼働したままの状態で)CTL60をリプレースすることである。S311の判断結果が偽の場合、保守員は、CTL60Bの停止リプレースを実施する。「停止リプレース」とは、ストレージシステム103を停止してCTL60をリプレースすることである。
 S311の判断結果が真の場合、保守員は、CTL60Bの無停止リプレースを実施し、且つ、管理システム54経由で、完了通知を、CTL60AとリプレースされたCTL60Bとのうちの少なくとも1つに送信する(S312)。CTL60AとリプレースされたCTL60Bとのうちの1つが、完了通知を受信した場合、その完了通知は、コマンド通信パス144経由で、CTL60A及び60B間で共有される。
 CTL60A及びリプレースされたCTL60Bは、完了通知を受信し、回復処理を実行する。回復処理では、例えば次の(1)乃至(4)が行われる。
(1)CTL60B内のプロセッサ121Bが、CTL60Bの起動及び初期化を行う。
(2)プロセッサ121Bが、CTL60B内のモジュールが正常か否かを診断する。
(3)CTL60B内のモジュールが正常の場合、プロセッサ121Bは、CTL60A内のプロセッサ121Aとの間で、CTL間通信に関する初期設定を行う。
(4)プロセッサ121Bは、CTL60A内のプロセッサ121Aとの間で、データ管理情報175の同期処理を行う。
 CTL60Bがリプレースされたにも関わらずデータ通信パス143経由の通信が不可能である第2の通信不可が生じた場合(S314:Y)、つまり、閉塞選択ミスが生じた場合、図4に示す処理が実行される。なお、第2の通信不可は生じないがストレージシステム103が正常に戻らなければ(S315:N)、S303が再度実行される。ストレージシステム103が正常に戻った場合(S315:N)、処理が、S301に戻る。
 閉塞選択ミスが生じた場合、図4に示すように、CTL60Aが、第2の通信不可の閉塞処理を実行する(S400)。CTL60Aが、CTL60Aの無停止リプレースを実施するか否かの問合せを含む確認メッセージを管理システム54に送信する(S401)。管理システム54が、その確認メッセージを受信し、その確認メッセージを表示する(S402)。図5にその確認メッセージの表示画面の一例を示す。保守員が、その確認メッセージを確認し(S403)、CTL60Aの無停止リプレースを実施するか否かを判断する(S404)。S404の判断結果が偽の場合、保守員は、CTL60Aの停止リプレースを実施する(S406)。S406は、例えば、図5に例示の表示画面上の「キャンセル」ボタンが押された上で実施される。
 S404の判断結果が真の場合、管理システム54経由で、CTL60Aの無停止リプレースを実施することを示す情報を含んだ実施メッセージ(第3の信号の一例)を、CTL60AとリプレースされたCTL60Bとのうちの少なくとも1つに送信する(S405)。S405は、例えば、図5に例示の表示画面上の「開始」ボタンが押されたことに起因して実施される。CTL60AとリプレースされたCTL60Bとのうちの1つが、実施メッセージを受信した場合、その実施メッセージは、コマンド通信パス144経由で、CTL60A及び60B間で共有される。
 CTL60A及びリプレースされたCTL60Bは、実施メッセージを受信し(S407)、CTL60Bが、ホットスタンバイモードに入る。具体的には、CTL60Bが、ホストからI/O要求を受け付けるための初期設定を含んだ準備処理を開始する(S408)。なお、S400の後、S401~S407がスキップされて、S408が開始されてもよい。つまり、保守員からの手動による指示無しに、S408が開始されてもよい。CTL60Bは、準備処理を完了し(S409)、完了通知を、管理システム54及びCTL60Aのうちの少なくともCTL60Aに送信する。その完了通知を受けた管理システム54は、完了通知メッセージを表示する(S411)。
 リプレースされたCTL60Bが準備処理を完了したということは、CTL60AからCTL60Bへの引継ぎが完了すれば、CTL60Bは、I/O要求を受け付けることが可能になるということである。そこで、その完了通知を受けたCTL60A(言い換えれば、CTL60Bがホットスタンバイモードに入ったことを確認したCTL60A)が、ライトスルーモードに入る、つまり、ホスト101からのI/O要求の受け付けを維持したままで、メモリ161A上のダーティデータ及びデータ管理情報を1以上の記憶デバイス131に書込む書込み処理を開始する(S412)。データ管理情報の書込み先の記憶領域のアドレスは、予め決まっていてもよい。CTL60Aは、コマンド通信パス144経由で、書込み処理開始通知(第2の信号の一例)を、CTL60Bに送信する(S413)。CTL60Bは、コマンド通信パス144経由で、書込み処理開始通知(第2の信号の一例)を受信する(S414)。書込み処理開始通知では、データ管理情報の書込み先の記憶領域のアドレスが指定されていてもよい。CTL60Bは、書込み処理開始通知を受信した場合、データ管理情報を1以上の記憶デバイス131から読み出し、引継ぎ処理(例えば、閉塞している記憶デバイス131に関する情報の引継ぎ)を開始する(S415)。なお、データ管理情報を1以上の記憶デバイス131から読み出すことは、引継ぎ処理に含まれても含まれなくてもよい。
 ライトスルーモードにおいて、CTL60Aが、ホスト101からライト要求を受信した場合、そのライト要求に従うデータを1以上の記憶デバイス131に書き込み、且つ、そのデータの書き込みに応じて1以上の記憶デバイス131内のデータ管理情報を更新し、その後に、ライト完了をホスト101に応答する。このように、ライトスルーモードにおいてCTL60Aがライト要求を受信した場合、そのライト要求に従うデータの書き込みとデータ管理情報の更新とが1以上の記憶デバイス131に対して実行された後に応答が返る。これにより、データ管理情報をCTL60Bに引き継ぐことの正確性を保証することが期待できる。
 CTL60Aは、書込み処理が完了した場合、コマンド通信パス144経由で、書込み処理完了通知(第4の信号の一例)を、CTL60Bに送信する(S416)。CTL60Aは、I/O要求の受け付けを停止する(S417)。その際、CTL60Aは、CTL60Aの役割を、マスターからスレーブに変更する(役割管理情報173を更新する)。
 CTL60Bは、コマンド通信パス144経由で、書込み処理完了通知を受信する、つまり引継ぎ処理を完了する(S418)。この場合、CTL60Bは、I/O要求の受け付けを開始する(S419)。その際、CTL60Bは、CTL60Bの役割を、スレーブからマスターに変更する(役割管理情報173を更新する)。また、CTL60Bは、CTL60BがI/O受付開始したことの通知を管理システム54に送信する。その通知を受けた管理システム54は、CTL60BがI/O受付開始したことを示す情報を含んだメッセージを表示する(S420)。なお、S419で、CTL60Bがマスターになるので、以後、CTL60Aがリプレースされた後に通信不可が生じた場合、CTL60BがCTL60Aを閉塞させることができる。CTL60Bがマスターであるのは一時的であって、CTL60Aのリプレース後にCTL60AがマスターとなりCTL60Bがスレーブに戻ってもよい。
 S416及びS418まで、CTL60Aが、I/O要求を受け付け、S417及びS419から、CTL60Bが、CTL60Aに代わってI/O要求を受け付ける。S417のI/O要求受付停止は、CTL60Bがメモリ161Bに読み出したデータ管理情報が、1以上の記憶デバイス131内のデータ管理情報と一致することを維持する。
 以上のように、第2の通信不可が生じた場合、閉塞コマンドではなく、上述した実施メッセージや書込み処理開始通知を受信するので、CTL60Bが閉塞することを回避できる。
 CTL60Bが、S419の後、コマンド通信パス144経由で、書込み完了通知の確認応答(第5の信号の一例)を、CTL60Aに返す(S421)。CTL60Aが、その確認応答を受信した場合に、閉塞する(S422)。CTL60Aが、書込み完了通知の確認応答を受信するということは、CTL60BがI/O要求受付を開始したことを知ったことに相当する。このような場合にCTL60Aが閉塞するので、少なくとも1つのCTL60がI/O要求を受け付けることを保証することができる。
 また、図3及び図4に示した処理において、CTL60A及び60B間のやり取りは、管理システム54経由でもよいが、コマンド通信パス144経由とすることで、管理システム54経由よりも高速なやり取りが期待できる。
 また、第2の通信不可が生じた場合にCTL60Aの無停止リプレースを実施するか否かは、保守員が判断する。これにより、保守員の確認無しにCTL60Aが閉塞した状態にまで入ることを防ぐことができる。
 以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、データ管理情報175において、データ属性212は、I/O頻度及び最終I/O時刻のうちの少なくとも1つを含んでよい。CTL60Bは、I/O受付開始後、バックグラウンドで(すなわち、I/O要求を受けたか否かに関わらず)、各エントリにおけるI/O頻度及び最終I/O時刻のうちの少なくとも1つに基づき、リード可能性の高いデータを予測し、予測されたデータを記憶デバイス131からメモリ161Bにキャッシュしておいてもよい。これにより、リード性能を高めることが期待できる。
104:ストレージシステム

Claims (10)

  1.  I/O(Input/Output)要求を発行するホストに接続されるストレージシステムであって、
     1以上の記憶デバイスと、
     冗長化されたストレージコントローラでありホストと前記1以上の記憶デバイスとに接続される第1及び第2のストレージコントローラと、
     前記第1及び第2のストレージコントローラに接続されたデータ通信パスと
    を有し、
     前記第1のストレージコントローラは、前記第1のストレージコントローラが受信したライト要求に従うデータがキャッシュされる第1のメモリを有し、
     前記第2のストレージコントローラは、前記第2のストレージコントローラが受信したライト要求に従うデータがキャッシュされる第2のメモリを有し、
     前記第1及び第2のメモリの各々は、ライト要求に応答して前記1以上の記憶デバイスに書き込まれるデータに関する管理情報であるデータ管理情報を格納しており、
     前記データ通信パスは、ダーティデータと管理情報更新部分とのうちの少なくとも1つを前記第1及び第2のストレージコントローラ間で同期するために使用されるパスであり、
     前記ダーティデータは、メモリから前記1以上の記憶デバイスに未だ書き込まれていないデータであり、
     前記管理情報更新部分は、前記データ管理情報のうちの少なくともライト要求に従い更新された部分であり、
     前記データ通信パス経由の通信が不可能である第1の通信不可が生じた場合、前記第2のストレージコントローラが閉塞しリプレースされ、
     前記第2のストレージコントローラがリプレースされても前記データ通信パス経由の通信が不可能である第2の通信不可が生じた場合、
      (A)前記第1のストレージコントローラが、前記第1のメモリ内のダーティデータ及びデータ管理情報を前記1以上の記憶デバイスに書き込むことである書込み処理を、前記ホストからI/O要求を受け付けることを維持したまま実行し、
      (B)前記リプレースされた第2のストレージコントローラが、前記1以上の記憶デバイスから前記第2のメモリに前記データ管理情報を読み出し、
      (C)前記第1のストレージコントローラが、前記ホストからI/O要求を受け付けることを停止し、
      (D)前記リプレースされた第2のストレージコントローラが、前記ホストからI/O要求を受け付けることを開始する、
    ストレージシステム。
  2.  前記第1の通信不可が生じた場合、前記第2のストレージコントローラが、前記第2のストレージコントローラの閉塞の起因となる第1の信号を受信し、
     前記第2の通信不可が生じた場合、前記リプレースされた第2のストレージコントローラが、前記第1の信号ではなく、前記1以上の記憶デバイスから前記第2のメモリに前記データ管理情報を読み出すことの起因となる第2の信号を受信する、
    請求項1記載のストレージシステム。
  3.  前記第1及び第2のストレージコントローラに接続されたコマンド通信パスを更に有し、
     前記コマンド通信パスは、前記第1及び第2のストレージコントローラ間で制御コマンドを送受信するために使用されるパスであり、
     前記第2のストレージコントローラは、前記コマンド通信パス経由で、前記第1の信号及び前記第2の信号を前記第1のストレージコントローラから受信する、
    請求項2記載のストレージシステム。
  4.  前記第2の通信不可が生じた場合、前記リプレースされた第2のストレージコントローラが、
      前記ホストからI/O要求を受け付けるための初期設定を含んだ準備処理を実行し、
      前記準備処理が完了した場合、第3の信号を、前記コマンド通信パス経由で前記第1のストレージコントローラに送信し、
     前記第1のストレージコントローラは、前記第3の信号を受信した場合、前記書込み処理を開始し、且つ、前記第2の信号を、前記コマンド通信パス経由で前記第2のストレージコントローラに送信する、
    請求項3記載のストレージシステム。
  5.  前記第1のストレージコントローラは、前記書込み処理が完了した場合、第4の信号を、前記コマンド通信パス経由で前記第2のストレージコントローラに送信し、且つ、(C)を実行し、
     前記第2のストレージコントローラは、前記第4の信号を受信した場合、(D)を実行する、
    請求項4記載のストレージシステム。
  6.  前記第2のストレージコントローラは、(D)を実行した場合、第5の信号を、前記コマンド通信パス経由で前記第1のストレージコントローラに送信し、
     前記第1のストレージコントローラは、前記第5の信号を受信した場合、閉塞する、
    請求項5記載のストレージシステム。
  7.  前記第2の通信不可が生じる前、
      前記第1のコントローラが、前記第1の通信不可が生じた場合にスレーブとしての役割を有するストレージコントローラを閉塞させるための前記第1の信号を送信するマスターとしての役割を有し、
      前記第2のコントローラが、スレーブとしての役割を有し、
     (C)は、前記第1のコントローラのマスターとしての役割が停止することであり、
     (D)は、前記リプレースされた第2のコントローラのマスターとしての役割が開始することである、
    請求項3記載のストレージシステム。
  8.  前記第1のストレージコントローラ、及び、前記リプレースされた第2のストレージコントローラは、前記ストレージシステムの管理システムに接続され、
     前記第2の通信不可が生じた場合、
      前記第1のストレージコントローラが、前記管理システムが、第1のメッセージを送信し、
      前記第1のストレージコントローラ、及び、前記リプレースされた第2のストレージコントローラのうちの少なくとも1つが、前記第1のメッセージを受信した前記管理システムから第2のメッセージを受信した場合に、(A)が開始する、
    請求項1記載のストレージシステム。
  9.  (A)において、前記第1のストレージコントローラが、前記ホストからライト要求を受信した場合、そのライト要求に従うデータを前記1以上の記憶デバイスに書き込み、且つ、そのデータの書き込みに応じて前記1以上の記憶デバイス内の前記データ管理情報を更新し、その後に、ライト完了を前記ホストに応答する、
    請求項1記載のストレージシステム。
  10.  I/O(Input/Output)要求を発行するホストと1以上の記憶デバイスとに接続された冗長化されたストレージコントローラである第1及び第2のストレージコントローラを有するストレージシステムの記憶制御方法であって、
     データ通信パス経由の通信が不可能である第1の通信不可が生じた場合、前記第2のストレージコントローラが閉塞しリプレースされ、
      前記データ通信パスは、前記第1及び第2のストレージコントローラに接続されたパスであり、
      前記第1のストレージコントローラは、前記第1のストレージコントローラが受信したライト要求に従うデータがキャッシュされる第1のメモリを有し、
      前記第2のストレージコントローラは、前記第2のストレージコントローラが受信したライト要求に従うデータがキャッシュされる第2のメモリを有し、
      前記第1及び第2のメモリの各々は、ライト要求に応答して前記1以上の記憶デバイスに書き込まれるデータに関する管理情報であるデータ管理情報を格納しており、
      前記データ通信パスは、ダーティデータと管理情報更新部分とのうちの少なくとも1つを前記第1及び第2のストレージコントローラ間で同期するために使用されるパスであり、
      前記ダーティデータは、メモリから前記1以上の記憶デバイスに未だ書き込まれていないデータであり、
      前記管理情報更新部分は、前記データ管理情報のうちの少なくともライト要求に従い更新された部分であり、
     前記第2のストレージコントローラがリプレースされても前記データ通信パス経由の通信が不可能である第2の通信不可が生じた場合、
      (A)前記第1のストレージコントローラが、前記第1のメモリ内のダーティデータ及びデータ管理情報を前記1以上の記憶デバイスに書き込むことである書込み処理を、前記ホストからI/O要求を受け付けることを維持したまま実行し、
      (B)前記リプレースされた第2のストレージコントローラが、前記1以上の記憶デバイスから前記第2のメモリに前記データ管理情報を読み出し、
      (C)前記第1のストレージコントローラが、前記ホストからI/O要求を受け付けることを停止し、
      (D)前記リプレースされた第2のストレージコントローラが、前記ホストからI/O要求を受け付けることを開始する、
    記憶制御方法。
PCT/JP2017/011970 2017-03-24 2017-03-24 ストレージシステム及び記憶制御方法 WO2018173246A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2017/011970 WO2018173246A1 (ja) 2017-03-24 2017-03-24 ストレージシステム及び記憶制御方法
US16/330,333 US10909007B2 (en) 2017-03-24 2017-03-24 Storage system and storage control method for replacing storage controllers in a communication-disabled state during a shutdown-less replacement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/011970 WO2018173246A1 (ja) 2017-03-24 2017-03-24 ストレージシステム及び記憶制御方法

Publications (1)

Publication Number Publication Date
WO2018173246A1 true WO2018173246A1 (ja) 2018-09-27

Family

ID=63585256

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/011970 WO2018173246A1 (ja) 2017-03-24 2017-03-24 ストレージシステム及び記憶制御方法

Country Status (2)

Country Link
US (1) US10909007B2 (ja)
WO (1) WO2018173246A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335144A (ja) * 1995-06-07 1996-12-17 Hitachi Ltd 外部記憶装置
JP2001290669A (ja) * 2000-04-10 2001-10-19 Ns Solutions Corp フェールオーバ管理システム、フェールオーバ管理装置、方法、及びコンピュータ読み取り可能な記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615091B1 (en) * 1998-06-26 2003-09-02 Eveready Battery Company, Inc. Control system and method therefor
US6412068B1 (en) * 1999-07-07 2002-06-25 Dell Products, L.P. Card management bus and method
US6578158B1 (en) * 1999-10-28 2003-06-10 International Business Machines Corporation Method and apparatus for providing a raid controller having transparent failover and failback
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US7480831B2 (en) * 2003-01-23 2009-01-20 Dell Products L.P. Method and apparatus for recovering from a failed I/O controller in an information handling system
US7565566B2 (en) * 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
US8443119B1 (en) * 2004-02-26 2013-05-14 Symantec Operating Corporation System and method for disabling auto-trespass in response to an automatic failover
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US7444541B2 (en) * 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
JP4897387B2 (ja) * 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
US7562264B2 (en) * 2006-09-06 2009-07-14 Intel Corporation Fault tolerant soft error detection for storage subsystems
JP5318223B2 (ja) * 2009-04-06 2013-10-16 株式会社日立製作所 ストレージサブシステム、及びその制御方法
WO2012049709A1 (en) * 2010-10-14 2012-04-19 Hitachi, Ltd. Storage control apparatus and method
US8412884B1 (en) * 2011-10-13 2013-04-02 Hitachi, Ltd. Storage system and method of controlling storage system
US9130869B2 (en) * 2012-02-09 2015-09-08 Telefonaktiebolaget L M Ericsson (Publ) Methods of redirecting network forwarding elements and related forwarding elements and controllers
US9239797B2 (en) * 2013-08-15 2016-01-19 Globalfoundries Inc. Implementing enhanced data caching and takeover of non-owned storage devices in dual storage device controller configuration with data in write cache
TWI525428B (zh) * 2014-06-04 2016-03-11 仁寶電腦工業股份有限公司 複合儲存單元的管理方法及其電子裝置
WO2016088231A1 (ja) 2014-12-04 2016-06-09 株式会社日立製作所 ストレージシステム及びコマンド送信制御方法
US10387266B2 (en) * 2015-12-23 2019-08-20 Commvault Systems, Inc. Application-level live synchronization across computing platforms including synchronizing co-resident applications to disparate standby destinations and selectively synchronizing some applications and not others

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335144A (ja) * 1995-06-07 1996-12-17 Hitachi Ltd 外部記憶装置
JP2001290669A (ja) * 2000-04-10 2001-10-19 Ns Solutions Corp フェールオーバ管理システム、フェールオーバ管理装置、方法、及びコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
US10909007B2 (en) 2021-02-02
US20190205226A1 (en) 2019-07-04

Similar Documents

Publication Publication Date Title
US8612681B2 (en) Storage system, storage apparatus and method of controlling storage system
US7827367B2 (en) Backup control method for acquiring plurality of backups in one or more secondary storage systems
JP4935901B2 (ja) ストレージシステム、ストレージ装置、リモートコピー方法
JP5286212B2 (ja) ストレージクラスタ環境でのリモートコピー制御方法及びシステム
US8892840B2 (en) Computer system and data migration method
JP4887893B2 (ja) 計算機システム及び計算機システムの制御方法
US7421550B2 (en) Storage system and storage system management method
US8589616B2 (en) Storage system group including scale-out storage system and management method therefor
US8375004B2 (en) Asynchronous remote copy system and storage control method
US20120226860A1 (en) Computer system and data migration method
JP2005182222A (ja) リモートコピーシステム
JP2009009333A (ja) 非同期リモートコピーシステムの制御方法及び非同期リモートコピーシステム
JP2007323218A (ja) バックアップシステム
US20120221813A1 (en) Storage apparatus and method of controlling the same
US20110196825A1 (en) Storage system and data duplication method in the same
JP2009053946A (ja) 二重化コントーラ構成ブロックデバイス制御装置
US10503440B2 (en) Computer system, and data migration method in computer system
JP6230707B2 (ja) ストレージシステム
WO2018173246A1 (ja) ストレージシステム及び記憶制御方法
JP4635032B2 (ja) 記憶制御装置の制御プログラムの更新方法
US20100106924A1 (en) Computer system for performing remote copy using journal
US11308122B2 (en) Remote copy system
US9304876B2 (en) Logical volume migration in single server high availability environments
US9836359B2 (en) Storage and control method of the same
US20210334181A1 (en) Remote copy system and remote copy management method

Legal Events

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

Ref document number: 17901785

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: 17901785

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP