WO2018016041A1 - Storage system - Google Patents

Storage system Download PDF

Info

Publication number
WO2018016041A1
WO2018016041A1 PCT/JP2016/071350 JP2016071350W WO2018016041A1 WO 2018016041 A1 WO2018016041 A1 WO 2018016041A1 JP 2016071350 W JP2016071350 W JP 2016071350W WO 2018016041 A1 WO2018016041 A1 WO 2018016041A1
Authority
WO
WIPO (PCT)
Prior art keywords
volume
storage device
write request
data
update time
Prior art date
Application number
PCT/JP2016/071350
Other languages
French (fr)
Japanese (ja)
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/JP2016/071350 priority Critical patent/WO2018016041A1/en
Publication of WO2018016041A1 publication Critical patent/WO2018016041A1/en

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a storage system.
  • a high availability (HA) function based on a cluster configuration of storage devices is required.
  • the HA function realizes high availability of the storage system.
  • the HA configuration has a multiplexed system, and when a failure occurs, it automatically disconnects the failed system and continues operation using only a normal system.
  • the HA function realizes effective use of resources and load distribution by operating a plurality of systems as active systems.
  • Patent Document 1 states that “The storage system of the present invention generates a virtual volume based on a remote copy pair and provides the virtual volume to the host.
  • the first storage device and the second storage device are the third storage device.
  • the lock disk stores information for controlling the use of the virtual volume, which is generated based on the remote copy pair consisting of the primary volume and the secondary volume.
  • the user can create and delete a virtual volume and create and delete a lock disk by issuing an instruction from the management server ”(see summary).
  • the conventional storage system synchronizes multiplexed volumes in order to maintain the identity of the data in the volume in the HA configuration.
  • the storage system returns a write completion response to the host after the data is written to the multiplexed volume. Therefore, overhead increases as the number of multiplexed storage devices increases, and the response performance to the host greatly decreases.
  • a representative example of the present invention includes a first storage device including a first volume, a second storage device including a second volume that constitutes a copy pair with the first volume, and the first volume and copy pair.
  • a storage system including a third storage device and a quorum disk including a third volume to be configured, wherein the first volume, the second volume, and the third volume are accessed from outside
  • the first storage device, the second storage device, and the third storage device are associated with a virtual volume, respectively, and accept access from outside to the virtual volume, and the first storage device
  • write data is sent to the first volume.
  • the second storage device writes the write data to the second volume after writing the write data to the first volume
  • the storage system writes the write data to the second volume.
  • the write completion response of the write request is returned to the host, and the first storage device sends an asynchronous write request for the third volume to the third storage device in response to the write request.
  • the third storage device accesses the quorum disk at a preset timing and executes a health check of the first storage device and the second storage device, and the third storage device The result of the health check after receiving the write request is the first storage device.
  • the resynchronization request from the third volume and the first volume requests the first storage device.
  • An outline of the present embodiment will be shown.
  • An outline of the present embodiment will be shown.
  • the structural example of a computer system is shown.
  • An example of a hardware configuration of a host computer and a storage device is schematically shown.
  • the information stored in the shared memory of CMPK is shown.
  • the structural example of a volume pair management table is shown. 4 shows a configuration example of an asynchronous write request management table.
  • the structural example of a quorum update time management table is shown. Indicates information stored in the quorum disk.
  • the structural example of a 1st DKC management table is shown.
  • the structural example of the last update time management table is shown.
  • the ladder chart of the processing of the write request transmitted from the host computer to MDKC (PVOL) is shown.
  • the flowchart of the process by MDKC which received the write request from the host computer or is shown.
  • the ladder chart of the processing of the write request transmitted from the host computer to RDKC [1] (SVOL [1]) is shown.
  • the flowchart of the process by RDKC [1] which received the write request from the host computer is shown.
  • the flowchart of the data resynchronization process between RDKC is shown.
  • the flowchart of the health check by RDKC is shown.
  • the flowchart of the health check by MDKC is shown.
  • the flowchart of a forced resynchronization process is shown.
  • the flowchart of the read process by RDKC is shown.
  • FIGS. 1A and 1B are diagrams showing an outline of the present embodiment.
  • the configuration disclosed in FIGS. 1A and 1B includes a host computer 180, a first storage device 10A, a second storage device 10B, a third storage device 10C, and a fourth storage device 10D.
  • the storage device 10A, the storage device 10B, and the storage device 10C provide the virtual storage device 200 to the host computer 180.
  • the fourth storage device 10D holds the quorum disk 201D.
  • the quorum disk 201D is used by the storage device that detects the failure to notify the other storage device of the fact that the failure has occurred when a failure occurs in the path or the storage device.
  • Each storage device periodically accesses the quorum disk 201D in order to detect the occurrence of a failure.
  • the volume 201A of the storage apparatus 10A, the volume 201B of the storage apparatus 10B, and the volume 201C of the storage apparatus 10A are provided as one virtual volume 210 of the virtual storage apparatus 200. These store the same data and indicate the same ID to the host.
  • the host computer 180 transmits a read / write instruction to one virtual volume 210, but in reality, the instruction may be transmitted to any of the volumes 201A, 201B, and 201C.
  • a group of volumes is called a volume pair group or simply a pair group.
  • the volume pair group is composed of a plurality of volume pairs, and is composed of two volume pairs in the examples of FIGS. 1A and 1B.
  • One volume pair is composed of a primary volume (PVOL) and a secondary volume (SVOL).
  • PVOL forms a volume pair with each SVOL.
  • the volume 201A is a PVOL
  • the volumes 201B and 201C are SVOLs.
  • the volume 201B is the first SVOL [1] of the synchronous copy destination
  • the volume 201C is the second SVOL [2] of the asynchronous copy destination.
  • a volume pair that receives access from the host for any volume is referred to as an Active-Active type High Availability (HA) volume pair or HA pair.
  • HA Active-Active type High Availability
  • a configuration including an HA pair is referred to as an HA configuration.
  • a storage device that provides a PVOL of a volume pair group is called an MDKC (Main DisK Controller) of the volume pair group.
  • the storage device that provides the SVOL of the volume pair group is referred to as RDKC (Remote DiscK Controller) of the volume pair group.
  • one storage device can include PVOL and SVOL of different volume pair groups. That is, one storage device functions as MDKC or RDKC according to the volume type in each HA volume pair group.
  • FIG. 1A shows an outline of the processing flow when a host write request is issued from the host computer 180 to the volume 201A which is a PVOL.
  • the MDKC (first storage device) 10A receives a host write request and data from the host computer 180 (S101).
  • the MDKC 10A acquires the exclusion of the write destination address of the PVOL 201A and writes the data to the PVOL 201A (S102).
  • the MDKC 10A transmits a write request and data to the RDKC [1] (second storage device) 10B in order to store data in the SVOL [1] 201B (S103).
  • the RDKC [1] 10B that has received the write request and data writes the data to the SVOL [1] 201B (S104).
  • the RDKC [1] 10B transmits a write completion response to the MDKC 10A (S105).
  • the MDKC 10A releases the exclusion acquired in step S102, and sends a host write completion response to the host computer 180 (S106).
  • the MDKC 10A transmits an asynchronous write request to the RDKC [2] (third storage device) 10C (S104). Write data is not transmitted to RDKC [2] 10C, and only an asynchronous write request is transmitted. As will be described later, the SVOL [2] 201C is resynchronized with the PVOL 201A at a predetermined timing.
  • the write data is written synchronously to PVOL 201A and SVOL [1] 201B, and further asynchronously written to SVOL [2] 201C.
  • the host write completion response is returned to the host computer 180 after data write to PVOL 201A and SVOL [1] 201B and before data write to SVOL [2] 201C. Therefore, it is possible to suppress a decrease in response performance to the host light while ensuring reliability.
  • the RDKC (RDKC [1] 10B or RDKC [2] 10C) receives a host write request and write data from the host computer 180
  • the RDKC transmits the write request and write data to the MDKC 10A.
  • Write data is written to SVOL [1] 201B after being written to PVOL 201A. This prevents old data from being read after new data is read, and appropriately maintains the identity of PVOL and SVOL in response to an access request from the host.
  • the MDKC 10A transmits an asynchronous write request to the RDKC [2] 10C after the data write to the PVOL 201A.
  • the RDKC that has received the host write request returns a host write completion response to the host computer 180 after data write to the PVOL 201A and SVOL [1] 201B and before data write to the SVOL [2] 201C.
  • FIG. 1B shows an outline of resynchronization between PVOL 201A and SVOL [2] 201C.
  • Resynchronization copies unupdated data from PVOL 201A to SVOL [2] 201C.
  • the RDKC [2] 10C starts resynchronization between the PVOL 201A and the SVOL [2] 201C in synchronization with the health check using the quorum disk 201D. This makes processing more efficient.
  • the RDKC [2] 10C performs a health check using the quorum disk 201D at a predetermined timing.
  • the RDKC [2] 10C reads the management information of the storage apparatuses 10A to 10C from the quorum disk 201D in the health check (S121).
  • the RDKC [2] 10C refers to the management information and checks the status of other storage devices and the status of the path.
  • the RDKC [2] 10C manages the time of the previous health check and the time of the asynchronous write request received from the MDKC 10A.
  • the RDKC [2] 10C writes unupdated data to the SVOL [2] 201C.
  • the RDKC [2] 10C determines a storage device from which unupdated data is read, that is, a volume to which the SVOL [2] 201C is resynchronized according to the result of the health check.
  • the RDKC [2] 10C When normal communication with the MDKC 10A is possible, the RDKC [2] 10C reads unupdated data from the MDKC 10A (S122). When normal communication with the MDKC 10A is impossible, the RDKC [2] 10C reads unupdated data from the RDKC [1] 10B. Thereafter, the RDKC [2] 10C updates its own management information in the quorum disk 201D (S123), and the health check by the RDKC [2] 10C ends.
  • RDKC [2] 10C selects a storage device from which unupdated data is read for data resynchronization of SVOL [2] 201C.
  • data resynchronization of SVOL [2] 201C can be performed efficiently.
  • FIG. 2 shows a configuration example of a computer system.
  • the computer system of FIG. 2 includes a host computer 180, storage apparatuses 10A to 10D, and a management computer 40.
  • the storage apparatuses 10A to 10D are included in the storage system, the host computer 180 accesses the storage system, and the management computer 40 manages the storage system.
  • the number of various devices (systems) included in the computer system depends on the design.
  • the storage apparatuses 10A, 10B, and 10C constitute an ALL Active type HA storage group, and further provide a virtual storage apparatus.
  • Each of the storage apparatuses 10A to 10C behaves as the same virtual storage apparatus with respect to the host computer 180.
  • the storage apparatuses 10A, 10B, and 10C constitute one virtual storage apparatus.
  • the storage device 10D has a quorum disk.
  • the quorum disk determines which one of the storage devices 10A, 10B, and 10C in the HA configuration is to be continuously operated and which is to be stopped when the communication is impossible between the storage devices 10A, 10B, and 10C in the HA configuration. Provide functionality.
  • each of the storage apparatuses 10A and 10B writes the state of the storage apparatus and the communication state to the other storage apparatus viewed from each storage apparatus in the quorum disk.
  • Each storage device refers to the Quorum Disk periodically or in synchronization with the IO response, and determines what is to be continuously operated and what is to be stopped based on information written in the quorum disk.
  • the host computer 180, the management computer 40, and the storage apparatuses 10A to 10D are communicably connected via a management network configured by a LAN 195.
  • the management network 195 is an IP network.
  • the management network 195 may be any type of network as long as it is a network for management data communication.
  • the host computer 180 and the storage devices 10A to 10D are connected by a data network configured by a SAN (Storage Area Network) 190.
  • the host computer 180 accesses the volumes of the storage apparatuses 10A, 10B, and 10C via the SAN 190.
  • the storage apparatuses 10A to 10D communicate with each other via the SAN 190.
  • the data network 190 may be any type of network as long as it is a data communication network.
  • the data network 190 and the management network 195 may be the same network.
  • FIG. 3 schematically shows a hardware configuration example of the host computer 180 and the storage apparatus 10A.
  • the other storage apparatuses 10B, 10C, and 10D can have the same configuration as the storage apparatus 10A.
  • the host computer 180 includes a secondary storage device 181, a CPU 182 as a processor, a memory 183 as a main storage device, an input device 184, a display device 185 as an output device, an I / F 186, and a port 187. These are connected to each other by an internal network.
  • the management computer 20 can also have a similar hardware configuration.
  • the CPU 182 performs various processes by executing a program stored in the memory 183.
  • the memory 183 holds an OS, an alternate path program, and an application program.
  • the application program reads and writes data from and to the volume provided by the storage apparatus 10.
  • the alternate path program selects a path for the access destination logical volume from the paths assigned to the virtual volume.
  • the port 187 is a network interface connected to the SAN 190, and transmits / receives data and requests to / from the storage apparatus 10 via the SAN 190.
  • the interface 186 is a network interface connected to the LAN 195, and transmits / receives management data and control commands to / from the management computer 40 and the storage apparatuses 10A to 10C via the LAN 195.
  • the storage apparatus 10A accommodates a plurality of storage drives 170.
  • the storage drive 170 is, for example, an SSD having a nonvolatile magnetic disk and an SSD mounted with a nonvolatile semiconductor memory (for example, a flash memory).
  • a volume is configured based on the storage drive 170.
  • the storage drive 170 stores data (user data) sent from the host computer 180 or another storage device. Since the plurality of storage drives 170 perform data redundancy by RAID operation, data loss when a failure occurs in one storage drive 170 can be prevented.
  • the storage apparatus 10A includes a front-end package (FEPK) 100 for connecting to an external apparatus via the SAN 190.
  • the external device is a host computer or a storage device.
  • the storage apparatus 10A further includes a back-end package (BEPK) 140 for connection to the storage drive 170, a cache memory package (CMPK) 130 for mounting a cache memory, and a microprocessor package (MPPK for mounting a microprocessor that performs internal processing) ) 120 and an internal network 150 connecting them.
  • BEPK back-end package
  • CMPK cache memory package
  • MPPK microprocessor package
  • the storage apparatus 10A includes a plurality of FEPKs 100, a plurality of BEPKs 140, a plurality of CMPKs 130, and a plurality of MPPKs 120.
  • Each FEPK 100 has an interface 101 for connecting to an external device and a transfer circuit 112 for transferring data in the storage device 10 on the substrate.
  • the interface 101 can include a plurality of ports, and each port can be connected to an external device.
  • the interface 101 includes a buffer 113.
  • the buffer is an area for temporarily storing data received from the host computer 180, and is composed of a storage medium such as a DRAM.
  • Each BEPK 140 has an interface 141 for connecting to the storage drive 170 and a transfer circuit 142 for transferring data in the storage apparatus 10 on the substrate.
  • Each CMPK 130 has a cache memory (CM) 131 that temporarily stores user data and a shared memory (SM) 132 that stores control information handled by one or more MPPKs 120 on the substrate.
  • CM cache memory
  • SM shared memory
  • a plurality of MPPKs 120 (microprocessors) in charge of different volumes can access the shared memory 132.
  • Data and programs handled by the MPPK 120 are loaded from a nonvolatile memory (not shown) or the storage drive 170 in the storage apparatus 10A.
  • Each MPPK 120 has one or more microprocessors 121, a local memory (LM) 122, and a bus 123 connecting them.
  • a plurality of microprocessors 121 are mounted on the MPPK 120 in this example.
  • the local memory 122 stores programs executed by the microprocessor 121 and control information used by the microprocessor 121.
  • one shared memory 132 stores control information handled by a plurality of MPPKs 120.
  • the MPPK 120 loads control information required by itself from the shared memory 132 to its own local memory 122.
  • the MPPK 120 (the microprocessor 121 thereof) is assigned the charge of the volume that the storage apparatus 10A provides to the host computer 180.
  • the MPPK 120 performs processing for the allocated volume.
  • FIG. 4 shows information stored in the shared memory 132 of the CMPK 130 of each of the storage apparatuses 10A to 10C.
  • the shared memory 132 stores a volume pair management table 220, an asynchronous write request management table 230, and a quorum update time management table 240.
  • the shared memory 132 can be accessed from a plurality of MPPKs 120.
  • FIG. 5 shows a configuration example of the volume pair management table 220.
  • the volume pair management table 220 holds volume pair management information. Each entry in the volume pair management table 220 indicates information on each volume pair group.
  • the volume pair management table 220 has a volume pair group ID column 221, a PVOL ID column 222 common to the volume pair groups, and an MDKC ID column 223 that manages the PVOL.
  • the volume pair management table 220 further includes an ID column 224 of the first SVOL [1] that configures the PVOL and the synchronous copy pair, and an ID of the first RDKC [1] that manages the first SVOL [1]. A column 225 and a column 226 indicating the status of the synchronous copy pair.
  • the volume pair management table 220 further includes an ID column 227 of the second SVOL [2] that configures the asynchronous copy pair with the PVOL, and an ID of the second RDKC [2] that manages the second SVOL [2]. A column 228 and a column 229 indicating the status of the asynchronous copy pair.
  • the copy pair status includes, for example, “PAIR”, “SMPL (simplex)”, “PSUS (suspend: PVOL single operation)”, “SSWS (swap suspend: SVOL single operation)”, and the like.
  • PVOL indicates that the PVOL and SVOL form a copy pair, and the PVOL data is copied to the SVOL synchronously or asynchronously.
  • SMPL indicates that each copy pair volume is a normal logical volume.
  • PSUS indicates a state in which the copy pair is in the suspended state and only the PVOL accepts I / O from the host computer.
  • SSWS indicates a state in which the copy pair is in the suspended state and only the SVOL accepts I / O from the host computer.
  • FIG. 6 shows a configuration example of the asynchronous write request management table 230.
  • the asynchronous write request management table 230 manages asynchronous write requests received by the own device.
  • the asynchronous write request management table 230 includes a write request time column 231 and a volume pair group ID column 232.
  • the write request time is included in, for example, an asynchronous write request.
  • the MDKC 10A includes the reception time of the host write request in the asynchronous write request.
  • the write request time may be the reception time of an asynchronous write request by RDKC.
  • FIG. 7 shows a configuration example of the quorum update time management table 240.
  • the quorum update time management table 240 indicates the previous reference time of the quorum disk 201D and the update time of the management information by the own device.
  • FIG. 8 shows information stored in the quorum disk 201D.
  • the quorum disk 201D stores a first DKC management table 260A, a second DKC management table 260B, a third DKC management table 260C, and a last update time management table 280.
  • the first DKC management table 260A, the second DKC management table 260B, and the third DKC management table 260C are respectively a first DKC (first storage device) 10A, a second DKC (second storage device) 10B, and a third DKC (third storage device) 10C. Management information.
  • Each DKC reads all the DKC management tables and updates the DKC management table of its own device in the health check.
  • FIG. 9 shows a configuration example of the first DKC management table 260A.
  • Other DKC management tables have the same format.
  • the first DKC management table 260A includes an ID (for example, serial number) 261 of the DKC, an update generation 262, a communication state [2] 263, a communication state [3] 264, a previous generation [2] 265, a previous time [2] 266, It includes information on the previous generation [3] 267, the previous time [3] 268, the response state [2] 269, and the response state [3] 270.
  • ID for example, serial number
  • the update generation 262 indicates the number of times the first DKC 10A has updated the first DKC management table 260A in the health check. The value of the update generation 262 is incremented for each health check.
  • Communication state [2] 263 indicates whether or not the first DKC 10A can communicate with the second DKC 10B.
  • the first DKC 10A determines whether it can communicate with the second DKC 10B, and the communication state [2] indicates the determination result. For example, when an error is detected in data communication with the second DKC 10B, the first DKC 10A changes the value of the communication state [2] to a value indicating that communication is not possible.
  • the communication state [3] 264 indicates whether or not the first DKC 10A can communicate with the third DKC 10C.
  • Communication state [k] indicates a determination result of a communication state with another DKC. Therefore, the second DKC management table 260B includes a communication state [1] and a communication state [3], and the third DKC management table 260C includes a communication state [1] and a communication state [2].
  • the previous generation [2] 265 indicates the value of the updated generation 262 of the second DKC management table 260B in the previous health check by the first DKC 10A.
  • the first DKC 10A refers to the second DKC management table 260B during the health check, and copies the value of the updated generation 262 to the previous generation [2] 265.
  • the previous time [2] 266 indicates the time when it is detected that the value of the update generation 262 in the second DKC management table 260B has not changed.
  • the first DKC 10A compares the value of the updated generation 262 of the second DKC management table 260B with the value of the previous generation [2] 265.
  • the first DKC 10A maintains or changes the value of the previous time [2] 266 to 0. If these are the same and the value of the previous time [2] 266 is 0, the first DKC 10A changes the value of the previous time [2] 266 to the current time. If these values are the same and the value of the previous time [2] 266 is not 0, the value is maintained.
  • the previous generation [3] 267 and the previous time [3] 268 indicate information on the previous generation and the previous time for the third DKC management table 260C, respectively.
  • the previous generation [k] and the previous time [k] each indicate information of another DKC. Therefore, the second DKC management table 260B includes the previous generation [1], the previous time [1], the previous generation [3], and the previous time [3].
  • the third DKC management table 260C includes the previous generation [1], the previous time [1], the previous generation [2], and the previous time [2].
  • the first DKC 10A compares the value of the updated generation 262 in the second DKC management table 260B with the value of the previous generation [2] 265 in the health check. If they match, the first DKC 10A refers to the previous time [2] 266. When the value of the previous time [2] 266 is not 0, the first DKC 10A calculates the elapsed time from the time indicated by the previous time [2] 266 to the current time, and compares the elapsed time with a specified timeout value.
  • the first DKC 10A refers to the communication state [2].
  • the communication state [2] indicates that communication is not possible
  • the first DKC 10A determines that a failure has occurred in the second DKC 10B and that it cannot respond.
  • the first DKC 10A makes the same determination for the third DKC 10C.
  • Each of the second DKC 10B and the third DKC 10C also determines the state of the other DKC by the same method in the health check.
  • Response state [k] indicates a determination result of another DKC response state (response possible / impossible). Therefore, the second DKC management table 260B includes response state [1] and response state [3], and the third DKC management table 260C includes response state [1] and response state [2].
  • DKC management table includes information on all other DKCs.
  • FIG. 10 shows a configuration example of the last update time management table 280.
  • the last update time management table 280 manages the last update time of each volume constituting the volume pair group.
  • the last update time management table 280 includes a volume pair group ID column 281, an MDKC ID column 282, and a column 283 indicating the last update time of each volume.
  • the MDKC of each volume pair group updates the corresponding entry information in the last update time management table 280.
  • the last update time of each volume in the volume pair group can be centrally managed.
  • the quorum disk 201D stores the last update time management table 280, so that other DKCs can refer to the information of the last update time management table 280 when a failure occurs in the MDKC.
  • the last update time of MDKC is the reception time of the last write request received from the host computer 180 or another DKC.
  • the last update time of RDKC is, for example, the reception time by MDKC of the write request last transferred by MDKC to RDKC.
  • the last update of RDKC is the transfer time of the last write request that MDKC transferred to RDKC.
  • each DKC storage device
  • the RDKC can hold an SVOL (SVOL [1]) that constitutes a synchronous copy pair with the PVOL and an SVOL (SVOL [2]) that constitutes an asynchronous copy pair with the PVOL.
  • one DKC storage device
  • the DKC may execute the following MDKC process for the PVOL and execute the following RDKC process for the SVOL.
  • the PVOL, SVOL [1], and SVOL [2] of the write request from the host computer 180 are DKC (storage device) 10A, DKC 10B, and DKC 10C, respectively.
  • FIG. 11 shows a ladder chart of processing of a write request transmitted from the host computer to MDKC (PVOL).
  • the host computer 180 issues a write request to the area in the virtual volume 210 to the MDKC 10A.
  • the MDKC 10A secures exclusion for the area specified by the write request in the PVOL 201A corresponding to the virtual volume 210.
  • the MDKC 10A When the MDKC 10A is ready to receive data, it returns a READY response for data transfer to the host computer 180 and receives write data from the host computer 180. Write data is stored in the buffer 113 of the FEPK100.
  • the MDKC 10A writes the received write data to the address area in the PVOL 201A (S201).
  • Writing to the PVOL 201A is writing to the cache memory if the write cache function is ON, and writing to a parity group (physical storage area) if the write cache function is OFF.
  • the MDKC 10A transmits a write request to the area in the SVOL [1] 201B constituting the synchronous copy pair with the PVOL 201A to the RDKC [1] 10B.
  • the RDKC [1] 10B that has received the write request returns a READY response for data transfer to the MDKC 10A, and receives write data from the MDKC 10A.
  • the RDKC [1] 10B writes the received write data to the address area in the SVOL [1] 201B (S202). Writing to the SVOL is the same as writing to the PVOL.
  • the RDKC [1] 10B returns a write completion response to the MDKC 10A when the data writing to the address area in the SVOL [1] 201B is completed.
  • the MDKC 10A returns a write completion response to the host computer 180 after receiving the write completion response from the RDKC [1] 10B.
  • the MDKC 10A releases the secured exclusion.
  • MDKC 10A transmits an asynchronous write request to RDKC [2] 10C.
  • the asynchronous write request specifies the target pair group ID.
  • the RDKC [2] 10C that has received the asynchronous write request updates the asynchronous write request management table 230. Specifically, the RDKC [2] 10C adds an entry indicating the value of the volume pair group ID indicated by the received asynchronous write request and the write request time to the asynchronous write request management table 230.
  • the MDKC 10A may transmit an asynchronous write request to the RDKC [2] 10C before receiving a write completion response from the RDKC [1] 10B.
  • the MDKC 10A may return a write completion response to the host computer 180 before or after sending the asynchronous write request.
  • FIG. 12 shows a flowchart of processing by the MDKC 10A that has received a write request from the host computer 180.
  • the MDKC 10A writes the write data to the PVOL 201A according to the write request received from the host computer 180 (S201).
  • the MDKC 10A transmits a write request to the area in the SVOL [1] 201B constituting the synchronous copy pair with the PVOL 201A to the RDKC [1] 10B (S202).
  • the MDKC 10A refers to the volume pair management table 220 and identifies SVOL [1] 201B and RDKC [1] 10B that form a pair with the access destination PVOL 201A.
  • the MDKC 10A determines whether or not the transmitted write request is successful (S203). When the write request is successful (S203), when the MDKC 10A receives a READY response of data transfer from the RDKC [1] 10B, it transmits write data. Further, the MDKC 10A receives a write completion response from the RDKC [1] 10B.
  • the MDKC 10A determines that the write request has failed (S203: NO).
  • MDKC 10A transmits an asynchronous write request designating a pair group ID to RDKC [2] 10C.
  • the MDKC 10A refers to the volume pair management table 220 and identifies the pair group ID of the access destination PVOL 201A.
  • the MDKC 10A returns a write completion response to the host computer 180 (S205).
  • the MDKC 10A may return a write completion response to the host computer 180 before transmitting the asynchronous write request.
  • MDKC 10A determines that a path to RDKC [1] 10B or a failure has occurred in RDKC [1] 10B.
  • the MDKC 10A changes the pair status value of the pair of PVOL 201A and SVOL [1] 201B to suspend (PSUS) (S206).
  • the MDKC 10A may update the first DKC management table 260A to indicate that communication with the RDKC [1] 10B is impossible.
  • the MDKC 10A may notify the RDKC [2] 10C of the update of the volume pair management table 220.
  • the MDKC 10A requests the RDKC [2] 10C to write data to the SVOL [2] 201C that forms a pair with the PVOL 201A (S207). Specifically, the MDKC 10A refers to the last update time management table 280, and acquires the last update time of the pair group in the SVOL [2] 201C of the RDKC [2] 10C. The MDKC 10A retains log information, and identifies data not reflected in the SVOL [2] 201C from the log information and the acquired last update time. The MDKC 10A requests the RDKC [2] 10C to write unreflected data.
  • the MDKC 10A may copy all the data in the PVOL 201A to the SVOL [2] 201C.
  • the MDKC 10A transmits only the current write request to the RDKC [2] 10C. Redundancy is ensured by synchronizing the data of SVOL [2] 201C with the data of PVOL 201A.
  • the MDKC 10A may execute resynchronization with the PVOL for the SVOL of another asynchronous copy pair held by the RDKC [2] 10C.
  • the MDKC 10A may perform resynchronization between the PVOL and the SVOL of the RDKC [2] 10C constituting the copy pair with the PVOL.
  • the MDKC 10A When the write to RDKC [2] 10C is successful (S208: YES), the MDKC 10A returns a write completion response to the host computer 180 (S205).
  • the MDKC 10A changes the pair status value of the pair of PVOL 201A and SVOL [1] 201B to suspend (PSUS) in the volume pair management table 220. (S209). Further, the MDKC 10A may update the first DKC management table 260A. Thereafter, the MDKC 10A returns a write completion response to the host computer 180 (S205).
  • FIG. 13 shows a ladder chart of processing of a write request transmitted from the host computer 180 to RDKC [1] (SVOL [1]).
  • the host computer 180 issues a write request to the area in the virtual volume 210 to RDKC [1] 10B.
  • the RDKC [1] 10B When the RDKC [1] 10B is ready to receive data, it returns a READY response for data transfer to the host computer 180 and receives write data from the host computer 180.
  • Write data is stored in the buffer 113 of the FEPK100.
  • the RDKC [1] 10B transmits to the MDKC 10A a write request to the area in the PVOL 201A constituting the volume pair with the SVOL [1] 201B.
  • the MDKC 10A secures exclusion for the area in the volume designated by the write request, and then returns a READY response for data transfer to the RDKC [1] 10B and receives the write data from the RDKC [1] 10B.
  • the MDKC 10A writes the received write data to the designated area in the PVOL 201A (S301). When the writing of data to the area in the PVOL 201A is completed, the MDKC 10A returns a write completion response to the RDKC [1] 10B.
  • the RDKC [1] 10B After receiving the write completion response from the MDKC 10A, the RDKC [1] 10B writes the write data in the designated area in the SVOL [1] 201B (S302). The RDKC [1] 10B returns a write completion response to the host computer 180. Thereafter, the RDKC 10 [1] B transmits an exclusive release request to the MDKC 10A. The MDKC 10A releases the secured exclusion.
  • the MDKC 10A transmits an asynchronous write request to the RDKC [2] 10C after writing data to the area in the PVOL 201A.
  • the RDKC [2] 10C that has received the asynchronous write request updates the asynchronous write request management table 230 (S303).
  • the RDKC [2] 10C When the RDKC [2] 10C receives a write request from the host computer 180, the RDKC [2] 10C transmits the write request to the MDKC 10A. After writing the data to the area in the PVOL 201A, the MDKC 10A transmits a write request to the RDKC [2] 10C.
  • the MDKC 10A receives a write completion response from the RDKC [2] 10C
  • the MDKC 10A transmits an asynchronous write request to the RDKC [1] 10B and returns a write completion response to the RDKC [2] 10C.
  • the RDKC [2] 10C returns a write completion response to the host computer 180, and further updates the asynchronous write request management table 230.
  • FIG. 14 shows a flowchart of processing by RDKC [1] 10B that has received a write request from the host computer 180.
  • the RDKC [1] 10B receives the write data from the host computer 180 and stores it in the buffer 113 of the FEPK100.
  • the RDKC [1] 10B transmits to the MDKC 10A a write request to the area in the PVOL 201A constituting the volume pair with the SVOL [1] 201B (S401).
  • the RDKC [1] 10B refers to the volume pair management table 220 and identifies the PVOL 201A and the MDKC 10A that form a pair with the access destination SVOL [1] 201B.
  • the MDKC 10A determines whether or not the transmitted write request is successful (S402).
  • the determination method is the same as the method described with reference to FIG.
  • the MDKC 10A that has received the write request writes the write data to the PVOL 201A, and further transmits an asynchronous write request to the RDKC [2] 10C.
  • the RDKC [1] 10B When the write request transmitted to the MDKC 10A is successful (S402: YES), the RDKC [1] 10B writes the write data stored in the buffer 113 to the SVOL [1] 201B (S403).
  • the RDKC [1] 10B transmits an exclusive release request to the MDKC 10A.
  • the RDKC [1] 10B transmits a write completion response to the host computer 180 (S409).
  • the RDKC [1] 10B confirms whether the MDKC 10A is alive (S404).
  • the RDKC [1] 10B determines whether a failure has occurred in the path or in the MDKC 10A. Specifically, the RDKC [1] 10B acquires the first DKC management table 260A and the second DKC management table 260B from the quorum disk 201D.
  • the RDKC [1] 10B determines whether or not there is a failure in the MDKC 10A. In this state, RDKC [1] 10B cannot communicate with MDKC 10A. If the first DKC management table 260A has not been updated for longer than the specified time, the RDKC [1] 10B determines that a failure has occurred in the MDKC 10A and that it cannot respond.
  • the RDKC [1] 10B changes the state of the volume pair to the suspended state due to the failure of the own device. Specifically, the RDKC [1] 10B changes the pair status of the pair of PVOL 201A and SVOL [1] 201B to PSUS in the volume pair management table 22. The RDKC [1] 10B may notify the RDKC [2] 10C of the update of the volume pair management table 22. The RDKC [1] 10B may update the second DDKC management table 260B.
  • the RDKC [1] 10B changes the state of the volume pair to a suspended state due to a failure of the MDKC (S407). Specifically, the RDKC [1] 10B changes the pair state of the pair of PVOL 201A and SVOL [1] 201B to SSWS in the volume pair management table 22. The RDKC [1] 10B may notify the RDKC [2] 10C of the update of the volume pair management table 22.
  • RDKC [1] 10B performs volume resynchronization with the RDKC [2] 10C (S408).
  • RDKC [1] 10B changes its own device to MDKC and resynchronizes each volume pair of the same volume pair group with RDKC [2] 10C. Details will be described later.
  • step S409 when the RDKC [1] 10B determines that a failure has occurred in the path (S405: NO, S406), it returns a write request failure response to the host computer 180. In other cases, RDKC [1] 10B returns a write completion response to the host computer 180.
  • RDKC [2] also performs substantially the same processing in response to a write request from the host computer 180.
  • MDKC transmits an asynchronous write request to RDKC [1].
  • FIG. 15 shows a flowchart of data resynchronization processing between RDKCs.
  • the RDKC that detects the failure of the MDKC executes the flow of FIG.
  • a predetermined RDKC may execute this flow.
  • DCK10B the example of a process of DCK10B is demonstrated.
  • the DCK 10C may operate similarly.
  • the DCK 10B reads the management information of the quorum disk 201D (S501).
  • the DCK 10B changes the state of its own device from RDKC to MDKC (S502).
  • DCK 10B changes to MDKC, and
  • DCK 10C operates as RDCK [1] for all volume pairs. All the volumes of the DCK 10B change to PVOL, and all the volumes of the DCK 10C become SVOL [1].
  • the DCK 10B updates the volume pair management table 260B so as to indicate the state change of the DKC and the volume. For example, the DCK 10B registers its own device ID in the MDKCID column 223 of each volume pair group, and registers its own device volume ID in the PVOLID column 222. The DCK 10B further registers the volume ID of the DKC 10C in the SVOL [1] ID column 224, and registers the ID of the DCK 10C in the RDKC [1] ID column 225. The DCK 10B registers “PAIR” in the PAIR [1] STATUS column 226.
  • the DCK 10B registers the ID of the volume of the DKC 10A in the SVOL [2] ID column 227, and registers the ID of the DCK 10A in the RDKC [2] ID column 228.
  • the DCK 10B registers “PSUS” in the PAIR [1] STATUS column 226.
  • the DCK 10B registers its own device ID in the MDKC ID column 282 of the last update time management table 280.
  • DCK 10B notifies the update of the volume pair group management table to the other DKC 10C. Further, the DCK 10B notifies the other DKC 10C of the start of the resynchronization process between RDKCs (S503). The DKC 10B and the DKC 10C temporarily wait for I / O processing for resynchronization between RDKCs.
  • the DCK 10B executes steps S504 and S505 for each volume held by the own device.
  • step S504 the DCK 10B determines whether there is unupdated data for the selected volume.
  • the DCK 10B refers to the last update time management table 280, and compares the last update time of its own device with the last update time of another device in the same volume pair group. When the last update time of the own device is early, the DCK 10B determines that unupdated data exists.
  • the DCK 10B selects the next volume. If it is determined that unupdated data exists (S504: YES), the DCK 10B reads the latest data of the volume pair group from the DKC 10C and writes it to the selected volume (S505). All the data of the volume of the DKC 10C or only the unupdated data identified from the log information held by the DKC 10C is transferred to the DKC 10B. By resynchronization, the data of the two volumes match. After resynchronization, the two volumes DKC 10B and DKC 10C constitute a synchronous copy pair.
  • DCK 10B after executing steps S504 and S505 for all the volumes to be held, requests data resync with the latest data from other DKC 10C.
  • the DKC 10C executes steps S504 and S505 for all the volumes to be held.
  • the data resynchronization between the RDKCs makes it possible to match the volume data of two active DKCs remaining due to the failure of the MDKC, and to ensure redundancy.
  • FIG. 16 shows a health check flowchart using RDKC (RDKC 10B or RDKC 10C).
  • the DKC periodically performs health checks on other DKCs.
  • the RDKC acquires all the DKC management tables 260A to 260C from the quorum disk 201D (S601).
  • the RDKC determines whether another DKC is alive or dead (S602).
  • the method for determining whether or not DKC is alive is as described for step S404 in the flowchart of FIG.
  • the RDKC changes the state of the volume pair to a suspended state due to the failure of the MDKC 10A (S604).
  • the process in step S604 is the same as step S407 in FIG.
  • the RDKC executes inter-RDKC resynchronization processing (S605).
  • the inter-RDKC resynchronization process is as described with reference to FIG.
  • the RDCK executes steps S606 and S607 for each volume held by the own device.
  • the RDCK determines whether an unprocessed asynchronous write request remains for the selected volume.
  • the RDCK compares the latest write request time of the volume pair group indicated by the asynchronous write request management table 230 with the time indicated by the quorum update time management table 240. If the write request time is the same as or later than the quorum update time, RDCK determines that there is an unprocessed asynchronous write request remaining. Otherwise, RDCK determines that there are no outstanding asynchronous write requests remaining.
  • RDCK executes resynchronization of the SVOL and PVOL (S607).
  • RDCK designates PVOL, sends a read request (resynchronization request) for resynchronization to MDKC, and writes the received read data to SVOL.
  • the data to be transferred is all PVOL data or only unupdated data.
  • the RDCK updates its own DKC management table and quorum update time management table 240 (S608).
  • the MDKC updates the column 283 of the last update time of the volume pair group for which the synchronization processing has been executed in the health check performed by the own device.
  • the RDKC implements an efficient resynchronization process by executing the resynchronization process of the asynchronous volume pair together with the health check.
  • FIG. 17 shows a flowchart of health check by MDKC 10A.
  • the MDKC 10A acquires all the DKC management tables 260A to 260C from the quorum disk 201D (S701).
  • the MDKC 10A determines whether other DKCs are alive or dead (S702).
  • the method for determining whether or not DKC is alive is as described for step S404 in the flowchart of FIG.
  • the MDKC 10A updates the last update time management table 280 (S703).
  • the MDKC 10A updates the last time in the last update time management table 280 when performing synchronous copy or data resynchronization to any RDKC after the previous health check.
  • the MDKC 10A executes forced resynchronization processing (S704). Details of the forced resynchronization process will be described later. To explain the outline, the MDKC 10A refers to the last update time management table 280, and identifies the SVOL in which unupdated data exists and the elapsed time from the previous update exceeds the threshold. In the last update time management table 280, the SVOL is identified by the volume pair group ID and RDKC ID.
  • the MDKC 10A instructs the identified RDKC to specify SVOL (volume pair group) and perform resynchronization. This prevents an excessive amount of data that has not been updated with respect to the SVOL due to a delay in health check or the like. Finally, the MDKC 10A updates its own DKC management table and the quorum update time management table 240 (S705).
  • FIG. 18 shows a flowchart of forced resynchronization processing.
  • the MDKC 10A refers to the last update time management table 280 and executes steps S801, S802, and S803 for each volume pair.
  • step S801 the MDKC 10A determines whether an unprocessed asynchronous write process remains in the selected volume pair.
  • the last update time management table 280 when the last update time of any RDKC is earlier than the last update time of MDKC, an unprocessed asynchronous write process remains.
  • step S702 the MDKC 10A compares the elapsed time from the previous update with a threshold (for example, 4s). When the elapsed time exceeds the threshold value (S803: YES), the MDKC 10A transmits a request for resynchronization to the RDKC by specifying SVOL (volume pair group).
  • a threshold for example, 4s.
  • FIG. 19 shows a flowchart of read processing by RDKC (RDKC 10B or RDKC 10C).
  • RDKC read processing by RDKC
  • the DKCs 10A, 10B, and 10C each return the volume data of its own device to the host computer 180.
  • the read processing by MDKC is the same as the normal read processing, and description thereof is omitted.
  • RDKC upon receiving a read request from host computer 180, RDKC reads the latest write request time of the specified SVOL volume pair group from asynchronous write request management table 230. Further, the RDKC reads the quorum last update time from the quorum update time management table 240 (S901).
  • the RDKC determines whether the target SVOL data is the latest from the acquired information (S902). Specifically, if the latest write request time is later than the quorum last update time, the RDKC determines that the SVOL data is the latest.
  • the RDKC waits for a predetermined time (S903). Thereby, the RDKC waits for the volume pair resynchronization by the health check. If the target SVOL data is the latest (S902: YES), the RDKC reads the data from the target address of the target SVOL and returns it to the host computer 180.
  • the latest read data can be returned to the host computer 180 by the above method.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • each of the above-described configurations, functions, processing units, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD, or a recording medium such as an IC card or an SD card.

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A first storage device includes a first volume. A second storage device includes a second volume that forms a synchronous copy pair with the first volume. A third storage device includes a third volume that forms an asynchronous copy pair with the first volume. The first volume, the second volume, and the third volume are associated with a single virtual volume. The first storage device transmits an asynchronous write request to the third storage device in response to a request to write to the virtual volume. Then if the result of a health check performed after the third storage device has received the asynchronous write request indicates that the third storage device can perform normal communication with the first storage device, then the third storage device requests the first storage device to resynchronize the third volume and the first volume.

Description

ストレージシステムStorage system
 本発明は、ストレージシステムに関する。 The present invention relates to a storage system.
 ストレージシステムにおいて、ストレージ装置のクラスタ構成によるHigh Availability(HA)機能が求められている。HA機能は、ストレージシステムの高可用性を実現する。HA構成は、多重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続する。さらに、HA機能は、複数の系を稼動系として運用することで、リソースの有効活用及び負荷分散を実現する。 In a storage system, a high availability (HA) function based on a cluster configuration of storage devices is required. The HA function realizes high availability of the storage system. The HA configuration has a multiplexed system, and when a failure occurs, it automatically disconnects the failed system and continues operation using only a normal system. Furthermore, the HA function realizes effective use of resources and load distribution by operating a plurality of systems as active systems.
 ストレージシステムの高可用性を実現する背景技術が、特許文献1に開示されている。特許文献1は、「本発明のストレージシステムは、リモートコピーペアに基づく仮想ボリュームを生成して、その仮想ボリュームをホストに提供する。第1ストレージ装置と第2ストレージ装置とは、第3ストレージ装置内のロックディスクを共有する。ロックディスクには、仮想ボリュームの使用を制御するための情報が記憶される。その仮想ボリュームは、正ボリュームと副ボリュームとから構成されるリモートコピーペアに基づいて生成される。ユーザは、管理サーバから指示を発行させることにより、仮想ボリュームの作成及び削除、ロックディスクの作成及び削除を行わせることができる」(要約参照)ことを開示する。 A background technology for realizing high availability of a storage system is disclosed in Patent Document 1. Patent Document 1 states that “The storage system of the present invention generates a virtual volume based on a remote copy pair and provides the virtual volume to the host. The first storage device and the second storage device are the third storage device. The lock disk stores information for controlling the use of the virtual volume, which is generated based on the remote copy pair consisting of the primary volume and the secondary volume. The user can create and delete a virtual volume and create and delete a lock disk by issuing an instruction from the management server ”(see summary).
米国特許出願公開第2011/0066801号US Patent Application Publication No. 2011/0066801
 従来のストレージシステムは、HA構成におけるボリューム内データの同一性を維持するため、多重化された系のボリュームを同期させる。ストレージシステムは、多重化されたボリュームにデータが書き込まれた後に、ライト完了応答をホストへ返す。そのため、多重化されたストレージ装置の数の増加に従ってオーバヘッドが増加し、ホストへのレスポンス性能が大きく低下する。 The conventional storage system synchronizes multiplexed volumes in order to maintain the identity of the data in the volume in the HA configuration. The storage system returns a write completion response to the host after the data is written to the multiplexed volume. Therefore, overhead increases as the number of multiplexed storage devices increases, and the response performance to the host greatly decreases.
 本発明の代表的な一例は、第1ボリュームを含む第1ストレージ装置と、前記第1ボリュームとコピーペアを構成する第2ボリュームを含む、第2ストレージ装置と、前記第1ボリュームとコピーペアを構成する第3ボリュームを含む、第3ストレージ装置と、クオラムディスクと、を含むストレージシステムであって、前記第1ボリューム、前記第2ボリューム及び前記第3ボリュームは、外部からアクセスされる一つの仮想ボリュームに関連づけられ、前記第1ストレージ装置、前記第2ストレージ装置、及び前記第3ストレージ装置は、それぞれ、前記仮想ボリュームに対する外部からのアクセスを受け付け、前記第1ストレージ装置は、ホストからの前記仮想ボリュームへのライト要求に対して、ライトデータを前記第1ボリュームにライトし、前記第2ストレージ装置は、前記第1ボリュームへの前記ライトデータのライトの後に、前記ライトデータを前記第2ボリュームにライトし、前記ストレージシステムは、前記第2ボリュームへの前記ライトデータのライトの後に、前記ホストに前記ライト要求のライト完了応答を返し、前記第1ストレージ装置は、前記ライト要求に応じて、前記第3ストレージ装置に前記第3ボリュームに対する非同期ライト要求を送信し、前記第3ストレージ装置は、予め設定されたタイミングで前記クオラムディスクへアクセスして、前記第1ストレージ装置及び前記第2ストレージ装置のヘルスチェックを実行し、前記第3ストレージ装置は、前記非同期ライト要求を受信した後のヘルスチェックの結果が、前記第1ストレージ装置との正常通信が可能であることを示す場合に、前記第3ボリュームと前記第1ボリュームの再同期の要求を、前記第1ストレージ装置に要求する。 A representative example of the present invention includes a first storage device including a first volume, a second storage device including a second volume that constitutes a copy pair with the first volume, and the first volume and copy pair. A storage system including a third storage device and a quorum disk including a third volume to be configured, wherein the first volume, the second volume, and the third volume are accessed from outside The first storage device, the second storage device, and the third storage device are associated with a virtual volume, respectively, and accept access from outside to the virtual volume, and the first storage device In response to a write request to the virtual volume, write data is sent to the first volume. The second storage device writes the write data to the second volume after writing the write data to the first volume, and the storage system writes the write data to the second volume. After the data write, the write completion response of the write request is returned to the host, and the first storage device sends an asynchronous write request for the third volume to the third storage device in response to the write request. The third storage device accesses the quorum disk at a preset timing and executes a health check of the first storage device and the second storage device, and the third storage device The result of the health check after receiving the write request is the first storage device. To indicate that it is possible to normally communicate, the resynchronization request from the third volume and the first volume, requests the first storage device.
 本発明の一態様によれば、3以上のストレージ装置が多重化されたHA構成を有するストレージシステムにおいて、ライトアクセスに対するレスポンス性能の低下を抑制できる。 According to one aspect of the present invention, in a storage system having an HA configuration in which three or more storage apparatuses are multiplexed, it is possible to suppress a decrease in response performance with respect to write access.
本実施形態の概要を示す。An outline of the present embodiment will be shown. 本実施形態の概要を示す。An outline of the present embodiment will be shown. 計算機システムの構成例を示す。The structural example of a computer system is shown. ホスト計算機及びストレージ装置のハードウェア構成例を模式的に示す。An example of a hardware configuration of a host computer and a storage device is schematically shown. CMPKの共有メモリ内に格納されている情報を示す。The information stored in the shared memory of CMPK is shown. ボリュームペア管理テーブルの構成例を示す。The structural example of a volume pair management table is shown. 非同期ライト要求管理テーブルの構成例を示す。4 shows a configuration example of an asynchronous write request management table. クオラム更新時刻管理テーブルの構成例を示す。The structural example of a quorum update time management table is shown. クオラムディスクに格納されている情報を示す。Indicates information stored in the quorum disk. 第1DKC管理テーブルの構成例を示す。The structural example of a 1st DKC management table is shown. 最終更新時刻管理テーブルの構成例を示す。The structural example of the last update time management table is shown. ホスト計算機からMDKC(PVOL)へ送信されたライト要求の処理のラダーチャートを示す。The ladder chart of the processing of the write request transmitted from the host computer to MDKC (PVOL) is shown. ホスト計算機又からライト要求を受信したMDKCによる処理のフローチャートを示す。The flowchart of the process by MDKC which received the write request from the host computer or is shown. ホスト計算機からRDKC[1](SVOL[1])へ送信されたライト要求の処理のラダーチャートを示す。The ladder chart of the processing of the write request transmitted from the host computer to RDKC [1] (SVOL [1]) is shown. ホスト計算機からライト要求を受信したRDKC[1]による処理のフローチャートを示す。The flowchart of the process by RDKC [1] which received the write request from the host computer is shown. RDKC間のデータ再同期処理のフローチャートを示す。The flowchart of the data resynchronization process between RDKC is shown. RDKCによるヘルスチェックのフローチャートを示す。The flowchart of the health check by RDKC is shown. MDKCによるヘルスチェックのフローチャートを示す。The flowchart of the health check by MDKC is shown. 強制再同期処理のフローチャートを示す。The flowchart of a forced resynchronization process is shown. RDKCによるリード処理のフローチャートを示す。The flowchart of the read process by RDKC is shown.
 以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that this embodiment is merely an example for realizing the present invention, and does not limit the technical scope of the present invention. In each figure, the same reference numerals are given to common configurations.
 図1A及び図1Bは本実施形態の概要を示す図である。図1A及び図1Bに開示される構成は、ホスト計算機180、第1ストレージ装置10A、第2ストレージ装置10B、第3ストレージ装置10C、及び第4ストレージ装置10Dを含む。ストレージ装置10A、ストレージ装置10B及びストレージ装置10Cが、ホスト計算機180に対して仮想ストレージ装置200を提供している。 1A and 1B are diagrams showing an outline of the present embodiment. The configuration disclosed in FIGS. 1A and 1B includes a host computer 180, a first storage device 10A, a second storage device 10B, a third storage device 10C, and a fourth storage device 10D. The storage device 10A, the storage device 10B, and the storage device 10C provide the virtual storage device 200 to the host computer 180.
 第4ストレージ装置10Dは、クオラムディスク201Dを保持する。クオラムディスク201Dは、パスやストレージ装置に障害が発生した際、障害を検知したストレージ装置が、障害発生の事実を他のストレージ装置に伝えるために利用される。各ストレージ装置は、障害の発生を検知するために、定期的にクオラムディスク201Dにアクセスする。 The fourth storage device 10D holds the quorum disk 201D. The quorum disk 201D is used by the storage device that detects the failure to notify the other storage device of the fact that the failure has occurred when a failure occurs in the path or the storage device. Each storage device periodically accesses the quorum disk 201D in order to detect the occurrence of a failure.
 ストレージ装置10Aのボリューム201A、ストレージ装置10Bのボリューム201B、及びストレージ装置10Aのボリューム201Cは、仮想ストレージ装置200の一つの仮想ボリューム210として提供されている。これらは、同一のデータを格納し、ホストに対して同じIDを示す。 The volume 201A of the storage apparatus 10A, the volume 201B of the storage apparatus 10B, and the volume 201C of the storage apparatus 10A are provided as one virtual volume 210 of the virtual storage apparatus 200. These store the same data and indicate the same ID to the host.
 ホスト計算機180は、ひとつの仮想ボリューム210にリード/ライト指示を送信するが、実際にはボリューム201A、201B及び201Cのいずれにも前記指示が送られる可能性がある。このようなボリュームのグループを、ボリュームペアグループ又は単にペアグループと呼ぶ。ボリュームペアグループは、複数のボリュームペアで構成され、図1A及び図1Bの例において、二つのボリュームペアで構成されている。 The host computer 180 transmits a read / write instruction to one virtual volume 210, but in reality, the instruction may be transmitted to any of the volumes 201A, 201B, and 201C. Such a group of volumes is called a volume pair group or simply a pair group. The volume pair group is composed of a plurality of volume pairs, and is composed of two volume pairs in the examples of FIGS. 1A and 1B.
 一つのボリュームペアは、Primary Volume(PVOL)とSecondary Volume(SVOL)とで構成される。ボリュームペアグループにおいて、PVOLは一つである。PVOLがSVOLそれぞれとボリュームペアを構成する。図1A及び図1Bの例において、ボリューム201AがPVOLであり、ボリューム201B、201Cが、それぞれSVOLである。後述するように、ボリューム201Bは同期コピー先の第1のSVOL[1]であり、ボリューム201Cは非同期コピー先の第2のSVOL[2]である。 One volume pair is composed of a primary volume (PVOL) and a secondary volume (SVOL). In the volume pair group, there is one PVOL. The PVOL forms a volume pair with each SVOL. In the example of FIGS. 1A and 1B, the volume 201A is a PVOL, and the volumes 201B and 201C are SVOLs. As will be described later, the volume 201B is the first SVOL [1] of the synchronous copy destination, and the volume 201C is the second SVOL [2] of the asynchronous copy destination.
 本例のようにいずれのボリュームもホストからのアクセスを受け付けるボリュームペアを、Active-Active型のHigh Availability(HA)ボリュームペアやHAペアと呼ぶ。HAペア含む構成を、HA構成と呼ぶ。 As in this example, a volume pair that receives access from the host for any volume is referred to as an Active-Active type High Availability (HA) volume pair or HA pair. A configuration including an HA pair is referred to as an HA configuration.
 ボリュームペアグループのPVOLを提供するストレージ装置を、当該ボリュームペアグループのMDKC(Main DisK Controller)と呼ぶ。ボリュームペアグループのSVOLを提供するストレージ装置を、当該ボリュームペアグループのRDKC(Remote DisK Controller)と呼ぶ。 A storage device that provides a PVOL of a volume pair group is called an MDKC (Main DisK Controller) of the volume pair group. The storage device that provides the SVOL of the volume pair group is referred to as RDKC (Remote DiscK Controller) of the volume pair group.
 なお、一つのストレージ装置が、異なるボリュームペアグループのPVOLとSVOLとを含むこともできる。つまり、1台のストレージ装置は、各HAボリュームペアグループにおけるボリューム種別に応じて、MDKC又はRDKCとして機能する。 Note that one storage device can include PVOL and SVOL of different volume pair groups. That is, one storage device functions as MDKC or RDKC according to the volume type in each HA volume pair group.
 図1Aはホスト計算機180からPVOLであるボリューム201Aに対してホストライト要求が発行された場合の処理の流れの概要を示す。MDKC(第1ストレージ装置)10Aは、ホスト計算機180から、ホストライト要求及びデータを受信する(S101)。 FIG. 1A shows an outline of the processing flow when a host write request is issued from the host computer 180 to the volume 201A which is a PVOL. The MDKC (first storage device) 10A receives a host write request and data from the host computer 180 (S101).
 MDKC10Aは、PVOL201Aのライト先アドレスの排他を取得し、PVOL201Aにデータをライトする(S102)。MDKC10Aは、SVOL[1]201Bにデータを格納させるために、RDKC[1](第2ストレージ装置)10Bに、ライト要求及びデータを送信する(S103)。 The MDKC 10A acquires the exclusion of the write destination address of the PVOL 201A and writes the data to the PVOL 201A (S102). The MDKC 10A transmits a write request and data to the RDKC [1] (second storage device) 10B in order to store data in the SVOL [1] 201B (S103).
 ライト要求及びデータを受信したRDKC[1]10Bは、SVOL[1]201Bにデータを書き込む(S104)。RDKC[1]10Bは、ライトの完了応答をMDKC10Aに送信する(S105)。MDKC10AはステップS102で取得した排他を解除し、ホスト計算機180に対してホストライト完了応答を送信する(S106)。 The RDKC [1] 10B that has received the write request and data writes the data to the SVOL [1] 201B (S104). The RDKC [1] 10B transmits a write completion response to the MDKC 10A (S105). The MDKC 10A releases the exclusion acquired in step S102, and sends a host write completion response to the host computer 180 (S106).
 MDKC10Aは、RDKC[2](第3ストレージ装置)10Cに、非同期ライト要求を送信する(S104)。RDKC[2]10Cに、ライトデータは送信されず、非同期ライト要求のみが送信される。後述するように、SVOL[2]201Cは、所定のタイミングで、PVOL201Aと再同期される。 The MDKC 10A transmits an asynchronous write request to the RDKC [2] (third storage device) 10C (S104). Write data is not transmitted to RDKC [2] 10C, and only an asynchronous write request is transmitted. As will be described later, the SVOL [2] 201C is resynchronized with the PVOL 201A at a predetermined timing.
 ライトデータは、PVOL201A及びSVOL[1]201Bに対して同期して書き込まれ、さらに、SVOL[2]201Cに対して非同期で書込まれる。具体的には、ホストライト完了応答は、PVOL201A及びSVOL[1]201Bへのデータライトの後、SVOL[2]201Cへのデータライトの前にホスト計算機180に返される。したがって、信頼性を確保しつつ、ホストライトに対するレスポンス性能の低下を抑制できる。 The write data is written synchronously to PVOL 201A and SVOL [1] 201B, and further asynchronously written to SVOL [2] 201C. Specifically, the host write completion response is returned to the host computer 180 after data write to PVOL 201A and SVOL [1] 201B and before data write to SVOL [2] 201C. Therefore, it is possible to suppress a decrease in response performance to the host light while ensuring reliability.
 後述するように、RDKC(RDKC[1]10B又はRDKC[2]10C)が、ホスト計算機180からホストライト要求及びライトデータを受信すると、RDKCはライト要求とライトデータをMDKC10Aに送信する。ライトデータは、PVOL201Aに書き込まれた後に、SVOL[1]201Bに書き込まれる。これにより、新しいデータが読み出された後に、古いデータが読みだされる事を防ぎ、ホストからのアクセス要求に対するPVOLとSVOLの同一性を適切に維持する。 As will be described later, when the RDKC (RDKC [1] 10B or RDKC [2] 10C) receives a host write request and write data from the host computer 180, the RDKC transmits the write request and write data to the MDKC 10A. Write data is written to SVOL [1] 201B after being written to PVOL 201A. This prevents old data from being read after new data is read, and appropriately maintains the identity of PVOL and SVOL in response to an access request from the host.
 MDKC10Aは、PVOL201Aへのデータライトの後に、非同期ライト要求をRDKC[2]10Cに送信する。ホストライト要求を受信したRDKCは、PVOL201A及びSVOL[1]201Bへのデータライトの後、SVOL[2]201Cへのデータライトの前に、ホストライト完了応答をホスト計算機180に返す。 The MDKC 10A transmits an asynchronous write request to the RDKC [2] 10C after the data write to the PVOL 201A. The RDKC that has received the host write request returns a host write completion response to the host computer 180 after data write to the PVOL 201A and SVOL [1] 201B and before data write to the SVOL [2] 201C.
 図1Bは、PVOL201AとSVOL[2]201Cとの再同期の概要を示す。再同期は、未更新のデータを、PVOL201AからSVOL[2]201Cにコピーする。RDKC[2]10Cは、クオラムディスク201Dを使用したヘルスチェックに同期して、PVOL201AとSVOL[2]201Cとの再同期を開始する。これにより処理を効率化する。 FIG. 1B shows an outline of resynchronization between PVOL 201A and SVOL [2] 201C. Resynchronization copies unupdated data from PVOL 201A to SVOL [2] 201C. The RDKC [2] 10C starts resynchronization between the PVOL 201A and the SVOL [2] 201C in synchronization with the health check using the quorum disk 201D. This makes processing more efficient.
 RDKC[2]10Cは、所定のタイミングでクオラムディスク201Dを使用したヘルスチェックを行う。RDKC[2]10Cは、ヘルスチェックにおいて、クオラムディスク201Dから、ストレージ装置10A~10Cの管理情報を読み出す(S121)。RDKC[2]10Cは、管理情報を参照して、他のストレージ装置の状態やパスの状態をチェックする。 The RDKC [2] 10C performs a health check using the quorum disk 201D at a predetermined timing. The RDKC [2] 10C reads the management information of the storage apparatuses 10A to 10C from the quorum disk 201D in the health check (S121). The RDKC [2] 10C refers to the management information and checks the status of other storage devices and the status of the path.
 RDKC[2]10Cは、前回のヘルスチェックの時刻と、MDKC10Aから受信した非同期ライト要求の時刻と、を管理している。前回非同期ライト要求が、前回のヘルスチェックの後である場合、RDKC[2]10Cは、SVOL[2]201Cに未更新データを書き込む。RDKC[2]10Cは、ヘルスチェックの結果に従って、未更新データを読み出すストレージ装置、つまりSVOL[2]201Cを再同期させるボリュームを決定する。 The RDKC [2] 10C manages the time of the previous health check and the time of the asynchronous write request received from the MDKC 10A. When the previous asynchronous write request is after the previous health check, the RDKC [2] 10C writes unupdated data to the SVOL [2] 201C. The RDKC [2] 10C determines a storage device from which unupdated data is read, that is, a volume to which the SVOL [2] 201C is resynchronized according to the result of the health check.
 MDKC10Aと正常な通信が可能である場合、RDKC[2]10Cは、MDKC10Aから、未更新データを読み出す(S122)。MDKC10Aと正常な通信が不可能である場合、RDKC[2]10Cは、RDKC[1]10Bから、未更新データを読み出す。その後、RDKC[2]10Cは、クオラムディスク201Dにおいて、自装置の管理情報を更新し(S123)、RDKC[2]10Cによるヘルスチェックが終了する。 When normal communication with the MDKC 10A is possible, the RDKC [2] 10C reads unupdated data from the MDKC 10A (S122). When normal communication with the MDKC 10A is impossible, the RDKC [2] 10C reads unupdated data from the RDKC [1] 10B. Thereafter, the RDKC [2] 10C updates its own management information in the quorum disk 201D (S123), and the health check by the RDKC [2] 10C ends.
 RDKC[2]10Cは、SVOL[2]201Cのデータ再同期のために、未更新データを読み出すストレージ装置を選択する。通常のヘルスチェック時にSVOL[2]201Cのデータ再同期を行うことで、SVOL[2]201Cのデータ再同期を効率的に行うことができる。 RDKC [2] 10C selects a storage device from which unupdated data is read for data resynchronization of SVOL [2] 201C. By performing data resynchronization of SVOL [2] 201C during normal health check, data resynchronization of SVOL [2] 201C can be performed efficiently.
 図2は、計算機システムの構成例を示す。図2の計算機システムは、ホスト計算機180、ストレージ装置10A~10D、及び、管理計算機40を含む。ストレージ装置10A~10Dがストレージシステムに含まれ、ホスト計算機180はストレージシステムにアクセスし、管理計算機40はストレージシステムを管理する。 FIG. 2 shows a configuration example of a computer system. The computer system of FIG. 2 includes a host computer 180, storage apparatuses 10A to 10D, and a management computer 40. The storage apparatuses 10A to 10D are included in the storage system, the host computer 180 accesses the storage system, and the management computer 40 manages the storage system.
 計算機システムに含まれる各種装置(システム)の数は、設計に依存する。ストレージ装置10A、10B、10Cは、ALL Active型のHAストレージグループを構成し、さらに、仮想ストレージ装置を提供する。ストレージ装置10A~10Cそれぞれ、ホスト計算機180に対して、同一の仮想ストレージ装置として振舞う。以下に説明する例においては、ストレージ装置10A、10B、10Cは、1台の仮想ストレージ装置を構成する。 The number of various devices (systems) included in the computer system depends on the design. The storage apparatuses 10A, 10B, and 10C constitute an ALL Active type HA storage group, and further provide a virtual storage apparatus. Each of the storage apparatuses 10A to 10C behaves as the same virtual storage apparatus with respect to the host computer 180. In the example described below, the storage apparatuses 10A, 10B, and 10C constitute one virtual storage apparatus.
 ストレージ装置10Dは、クオラムディスクを持つ。クオラムディスクは、HA構成におけるストレージ装置10A、10B、10Cの間で通信不可となった場合に、HA構成のストレージ装置10A、10B、10Cのうち、継続稼動させるものと停止させるものを決定する機能を提供する。 The storage device 10D has a quorum disk. The quorum disk determines which one of the storage devices 10A, 10B, and 10C in the HA configuration is to be continuously operated and which is to be stopped when the communication is impossible between the storage devices 10A, 10B, and 10C in the HA configuration. Provide functionality.
 具体的にはストレージ装置10A、10Bはそれぞれストレージ装置の状態や、それぞれのストレージ装置から見た他方のストレージ装置への通信状態をクオラムディスクに書き込む。互いのストレージ装置は、Quorum Diskを定期的又はIO応答に同期して参照し、クオラムディスクに書き込まれた情報に基づいて継続稼動させるものと停止させるものを決定する。 Specifically, each of the storage apparatuses 10A and 10B writes the state of the storage apparatus and the communication state to the other storage apparatus viewed from each storage apparatus in the quorum disk. Each storage device refers to the Quorum Disk periodically or in synchronization with the IO response, and determines what is to be continuously operated and what is to be stopped based on information written in the quorum disk.
 ホスト計算機180、管理計算機40及びストレージ装置10A~10Dは、LAN195で構成された管理ネットワークにより、通信可能に接続されている。例えば、管理ネットワーク195は、IPネットワークである。管理ネットワーク195は、管理データ通信用のネットワークであればどのタイプのネットワークでもよい。 The host computer 180, the management computer 40, and the storage apparatuses 10A to 10D are communicably connected via a management network configured by a LAN 195. For example, the management network 195 is an IP network. The management network 195 may be any type of network as long as it is a network for management data communication.
 ホスト計算機180、及びストレージ装置10A~10Dは、SAN(Storage Area Network)190で構成されたデータネットワークにより接続されている。ホスト計算機180は、SAN190を介して、ストレージ装置10A、10B、10Cのボリュームにアクセスする。ストレージ装置10A~10Dは、SAN190を介して、互いに通信する。 The host computer 180 and the storage devices 10A to 10D are connected by a data network configured by a SAN (Storage Area Network) 190. The host computer 180 accesses the volumes of the storage apparatuses 10A, 10B, and 10C via the SAN 190. The storage apparatuses 10A to 10D communicate with each other via the SAN 190.
 データネットワーク190はデータ通信用のネットワークであれば、どのようなタイプのネットワークでもよい。データネットワーク190と管理ネットワーク195は同一のネットワークでもよい。 The data network 190 may be any type of network as long as it is a data communication network. The data network 190 and the management network 195 may be the same network.
 図3は、ホスト計算機180及びストレージ装置10Aのハードウェア構成例を模式的に示す。他のストレージ装置10B、10C、10Dは、ストレージ装置10Aと同様の構成を有することができる。 FIG. 3 schematically shows a hardware configuration example of the host computer 180 and the storage apparatus 10A. The other storage apparatuses 10B, 10C, and 10D can have the same configuration as the storage apparatus 10A.
 ホスト計算機180は、二次記憶デバイス181、プロセッサであるCPU182、主記憶装置であるメモリ183、入力デバイス184、出力装置である表示デバイス185、I/F186、及びポート187を備える。これらは、内部ネットワークによって相互に接続される。管理計算機20も同様のハードウェア構成を有することができる。 The host computer 180 includes a secondary storage device 181, a CPU 182 as a processor, a memory 183 as a main storage device, an input device 184, a display device 185 as an output device, an I / F 186, and a port 187. These are connected to each other by an internal network. The management computer 20 can also have a similar hardware configuration.
 CPU182は、メモリ183に格納されるプログラムを実行することによって、各種処理を行う。例えば、メモリ183は、OS、交替パスプログラム及びアプリケーションプログラムを保持する。アプリケーションプログラムは、ストレージ装置10が提供するボリュームへデータの読み書きを行う。交替パスプログラムは、仮想ボリュームに割当てられているパスから、アクセス先の論理ボリュームに対するパスを選択する。 The CPU 182 performs various processes by executing a program stored in the memory 183. For example, the memory 183 holds an OS, an alternate path program, and an application program. The application program reads and writes data from and to the volume provided by the storage apparatus 10. The alternate path program selects a path for the access destination logical volume from the paths assigned to the virtual volume.
 ポート187は、SAN190に接続するネットワークインタフェースであり、SAN190を介してストレージ装置10とデータ及び要求を送受信する。インタフェース186は、LAN195に接続するネットワークインタフェースであり、LAN195を介して管理計算機40及びストレージ装置10A~10Cと管理データ及び制御命令を送受信する。 The port 187 is a network interface connected to the SAN 190, and transmits / receives data and requests to / from the storage apparatus 10 via the SAN 190. The interface 186 is a network interface connected to the LAN 195, and transmits / receives management data and control commands to / from the management computer 40 and the storage apparatuses 10A to 10C via the LAN 195.
 ストレージ装置10Aは、複数の記憶ドライブ170を収容している。記憶ドライブ170は、例えば、不揮発性の磁気ディスクを有するHDD、不揮発半導体メモリ(例えばフラッシュメモリ)を搭載したSSDである。この記憶ドライブ170に基づきボリュームが構成される。 The storage apparatus 10A accommodates a plurality of storage drives 170. The storage drive 170 is, for example, an SSD having a nonvolatile magnetic disk and an SSD mounted with a nonvolatile semiconductor memory (for example, a flash memory). A volume is configured based on the storage drive 170.
 記憶ドライブ170は、ホスト計算機180又は他のストレージ装置から送られたデータ(ユーザデータ)を格納する。複数の記憶ドライブ170がRAID演算によるデータの冗長化を行うことで、1つの記憶ドライブ170に障害が発生した場合のデータ消失を防ぐことができる。 The storage drive 170 stores data (user data) sent from the host computer 180 or another storage device. Since the plurality of storage drives 170 perform data redundancy by RAID operation, data loss when a failure occurs in one storage drive 170 can be prevented.
 ストレージ装置10Aは、SAN190を介して外部装置と接続するためのフロントエンドパッケージ(FEPK)100を含む。本例の計算機システムにおいて、外部装置は、ホスト計算機又はストレージ装置である。 The storage apparatus 10A includes a front-end package (FEPK) 100 for connecting to an external apparatus via the SAN 190. In the computer system of this example, the external device is a host computer or a storage device.
 ストレージ装置10Aは、さらに、記憶ドライブ170と接続するためのバックエンドパッケージ(BEPK)140、キャッシュメモリを搭載するキャッシュメモリパッケージ(CMPK)130、内部処理を行うマイクロプロセッサを搭載するマイクロプロセッサパッケージ(MPPK)120、及びそれらを接続する内部ネットワーク150を有する。ストレージ装置10Aは、複数のFEPK100、複数のBEPK140、複数のCMPK130、そして複数のMPPK120を含む。 The storage apparatus 10A further includes a back-end package (BEPK) 140 for connection to the storage drive 170, a cache memory package (CMPK) 130 for mounting a cache memory, and a microprocessor package (MPPK for mounting a microprocessor that performs internal processing) ) 120 and an internal network 150 connecting them. The storage apparatus 10A includes a plurality of FEPKs 100, a plurality of BEPKs 140, a plurality of CMPKs 130, and a plurality of MPPKs 120.
 各FEPK100は、外部装置との接続を行うためのインタフェース101、ストレージ装置10内のデータ転送を行うための転送回路112を基板上に有する。インタフェース101は複数のポートを含むことができ、各ポートが外部装置と接続することができる。インタフェース101は、バッファ113を備える。バッファはホスト計算機180から受信したデータを一時的に格納する領域であり、DRAMなどの記憶媒体で構成される。 Each FEPK 100 has an interface 101 for connecting to an external device and a transfer circuit 112 for transferring data in the storage device 10 on the substrate. The interface 101 can include a plurality of ports, and each port can be connected to an external device. The interface 101 includes a buffer 113. The buffer is an area for temporarily storing data received from the host computer 180, and is composed of a storage medium such as a DRAM.
 各BEPK140は、記憶ドライブ170と接続するためにインタフェース141、ストレージ装置10内のデータ転送を行うための転送回路142を基板上に有する。 Each BEPK 140 has an interface 141 for connecting to the storage drive 170 and a transfer circuit 142 for transferring data in the storage apparatus 10 on the substrate.
 各CMPK130は、ユーザデータを一時的に格納するキャッシュメモリ(CM)131及び1又は複数のMPPK120が扱う制御情報を格納する共有メモリ(SM)132を基板上に有する。異なるボリュームを担当する複数のMPPK120(のマイクロプロセッサ)が、共有メモリ132にアクセスすることができる。MPPK120が扱うデータやプログラムは、ストレージ装置10A内の不揮発性メモリ(不図示)又は記憶ドライブ170からロードされる。 Each CMPK 130 has a cache memory (CM) 131 that temporarily stores user data and a shared memory (SM) 132 that stores control information handled by one or more MPPKs 120 on the substrate. A plurality of MPPKs 120 (microprocessors) in charge of different volumes can access the shared memory 132. Data and programs handled by the MPPK 120 are loaded from a nonvolatile memory (not shown) or the storage drive 170 in the storage apparatus 10A.
 各MPPK120は、1以上のマイクロプロセッサ121、ローカルメモリ(LM)122及びそれらを接続するバス123を有する。本例のMPPK120には、複数のマイクロプロセッサ121が実装されている。ローカルメモリ122は、マイクロプロセッサ121が実行するプログラム及びマイクロプロセッサ121が使用する制御情報を格納する。 Each MPPK 120 has one or more microprocessors 121, a local memory (LM) 122, and a bus 123 connecting them. A plurality of microprocessors 121 are mounted on the MPPK 120 in this example. The local memory 122 stores programs executed by the microprocessor 121 and control information used by the microprocessor 121.
 上述のように、一つの共有メモリ132は、複数のMPPK120が扱う制御情報を格納する。MPPK120は、共有メモリ132から、自身が必要とする制御情報を自身のローカルメモリ122にロードする。MPPK120(のマイクロプロセッサ121)には、ストレージ装置10Aがホスト計算機180に提供するボリュームの担当が割り当てられる。MPPK120は、割り当てられているボリュームについて処理を行う。 As described above, one shared memory 132 stores control information handled by a plurality of MPPKs 120. The MPPK 120 loads control information required by itself from the shared memory 132 to its own local memory 122. The MPPK 120 (the microprocessor 121 thereof) is assigned the charge of the volume that the storage apparatus 10A provides to the host computer 180. The MPPK 120 performs processing for the allocated volume.
 図4は、ストレージ装置10A~10CそれぞれのCMPK130の共有メモリ132内に格納されている情報を示す。共有メモリ132は、ボリュームペア管理テーブル220、非同期ライト要求管理テーブル230、及びクオラム更新時刻管理テーブル240を格納している。共有メモリ132は、複数のMPPK120からアクセスされ得る。 FIG. 4 shows information stored in the shared memory 132 of the CMPK 130 of each of the storage apparatuses 10A to 10C. The shared memory 132 stores a volume pair management table 220, an asynchronous write request management table 230, and a quorum update time management table 240. The shared memory 132 can be accessed from a plurality of MPPKs 120.
 図5は、ボリュームペア管理テーブル220の構成例を示す。ボリュームペア管理テーブル220は、ボリュームペアの管理情報を保持している。ボリュームペア管理テーブル220の各エントリは、各ボリュームペアグループの情報を示す。 FIG. 5 shows a configuration example of the volume pair management table 220. The volume pair management table 220 holds volume pair management information. Each entry in the volume pair management table 220 indicates information on each volume pair group.
 ボリュームペア管理テーブル220は、ボリュームペアグループのIDのカラム221、ボリュームペアグループで共通のPVOLのIDのカラム222、PVOLを管理するMDKCのIDのカラム223を有する。 The volume pair management table 220 has a volume pair group ID column 221, a PVOL ID column 222 common to the volume pair groups, and an MDKC ID column 223 that manages the PVOL.
 ボリュームペア管理テーブル220は、さらに、PVOLと同期コピーペアを構成する第1のSVOL[1]のIDのカラム224、第1のSVOL[1]を管理する第1のRDKC[1]のIDのカラム225、及び同期コピーペアの状態を示すカラム226を有する。 The volume pair management table 220 further includes an ID column 224 of the first SVOL [1] that configures the PVOL and the synchronous copy pair, and an ID of the first RDKC [1] that manages the first SVOL [1]. A column 225 and a column 226 indicating the status of the synchronous copy pair.
 ボリュームペア管理テーブル220は、さらに、PVOLと非同期コピーペアを構成する第2のSVOL[2]のIDのカラム227、第2のSVOL[2]を管理する第2のRDKC[2]のIDのカラム228、及び非同期コピーペアの状態を示すカラム229を有する。 The volume pair management table 220 further includes an ID column 227 of the second SVOL [2] that configures the asynchronous copy pair with the PVOL, and an ID of the second RDKC [2] that manages the second SVOL [2]. A column 228 and a column 229 indicating the status of the asynchronous copy pair.
 コピーペアの状態は、例えば、「PAIR」、「SMPL(シンプレックス)」、「PSUS(サスペンド:PVOLの単独運用)」、「SSWS(スワップサスペンド:SVOLの単独運用)」等を含む。 The copy pair status includes, for example, “PAIR”, “SMPL (simplex)”, “PSUS (suspend: PVOL single operation)”, “SSWS (swap suspend: SVOL single operation)”, and the like.
 「PAIR」は、PVOLとSVOLとがコピーペアを形成しており、PVOLのデータがSVOLに同期又は非同期にコピーされる状態を示す。「SMPL」は、コピーペアのボリュームがそれぞれ通常の論理ボリュームであることを示す。 “PAIR” indicates that the PVOL and SVOL form a copy pair, and the PVOL data is copied to the SVOL synchronously or asynchronously. “SMPL” indicates that each copy pair volume is a normal logical volume.
 「PSUS」は、コピーペアがサスペンド状態であり、PVOLのみがホスト計算機からのI/Oを受け付ける状態を示す。「SSWS」は、コピーペアがサスペンド状態であり、SVOLのみがホスト計算機からのI/Oを受け付ける状態を示す。 “PSUS” indicates a state in which the copy pair is in the suspended state and only the PVOL accepts I / O from the host computer. “SSWS” indicates a state in which the copy pair is in the suspended state and only the SVOL accepts I / O from the host computer.
 図6は、非同期ライト要求管理テーブル230の構成例を示す。非同期ライト要求管理テーブル230は、自装置が受信した非同期ライト要求を管理する。非同期ライト要求管理テーブル230は、ライト要求時刻のカラム231と、ボリュームペアグループのIDのカラム232を有する。ライト要求時刻は、例えば、非同期ライト要求に含まれる。MDKC10Aは、非同期ライト要求にホストライト要求の受信時刻を含める。ライト要求時刻は、RDKCによる非同期ライト要求の受信時刻でもよい。 FIG. 6 shows a configuration example of the asynchronous write request management table 230. The asynchronous write request management table 230 manages asynchronous write requests received by the own device. The asynchronous write request management table 230 includes a write request time column 231 and a volume pair group ID column 232. The write request time is included in, for example, an asynchronous write request. The MDKC 10A includes the reception time of the host write request in the asynchronous write request. The write request time may be the reception time of an asynchronous write request by RDKC.
 図7は、クオラム更新時刻管理テーブル240の構成例を示す。クオラム更新時刻管理テーブル240は、自装置による前回のクオラムディスク201Dの参照及び管理情報の更新の時刻を示す。 FIG. 7 shows a configuration example of the quorum update time management table 240. The quorum update time management table 240 indicates the previous reference time of the quorum disk 201D and the update time of the management information by the own device.
 図8は、クオラムディスク201Dに格納されている情報を示す。クオラムディスク201Dは、第1DKC管理テーブル260A、第2DKC管理テーブル260B、第3DKC管理テーブル260C、及び最終更新時刻管理テーブル280を格納している。 FIG. 8 shows information stored in the quorum disk 201D. The quorum disk 201D stores a first DKC management table 260A, a second DKC management table 260B, a third DKC management table 260C, and a last update time management table 280.
 第1DKC管理テーブル260A、第2DKC管理テーブル260B、第3DKC管理テーブル260Cは、それぞれ、第1DKC(第1ストレージ装置)10A、第2DKC(第2ストレージ装置)10B、第3DKC(第3ストレージ装置)10Cの管理情報を示す。各DKCは、ヘルスチェックにおいて、全てのDKC管理テーブルを読み出し、自装置のDKC管理テーブルを更新する。 The first DKC management table 260A, the second DKC management table 260B, and the third DKC management table 260C are respectively a first DKC (first storage device) 10A, a second DKC (second storage device) 10B, and a third DKC (third storage device) 10C. Management information. Each DKC reads all the DKC management tables and updates the DKC management table of its own device in the health check.
 図9は、第1DKC管理テーブル260Aの構成例を示す。他のDKC管理テーブルも同様のフォーマットを有する。第1DKC管理テーブル260Aは、当該DKCのID(例えば製造番号)261、更新世代262、通信状態[2]263、通信状態[3]264、前回世代[2]265、前回時刻[2]266、前回世代[3]267、前回時刻[3]268、応答状態[2]269、応答状態[3]270の情報を含む。 FIG. 9 shows a configuration example of the first DKC management table 260A. Other DKC management tables have the same format. The first DKC management table 260A includes an ID (for example, serial number) 261 of the DKC, an update generation 262, a communication state [2] 263, a communication state [3] 264, a previous generation [2] 265, a previous time [2] 266, It includes information on the previous generation [3] 267, the previous time [3] 268, the response state [2] 269, and the response state [3] 270.
 更新世代262は、第1DKC10Aが、ヘルスチェックにおいて第1DKC管理テーブル260Aを更新した回数を示す。更新世代262の値は、ヘルスチェック毎にインクリメントされる。 The update generation 262 indicates the number of times the first DKC 10A has updated the first DKC management table 260A in the health check. The value of the update generation 262 is incremented for each health check.
 通信状態[2]263は、第1DKC10Aが第2DKC10Bと通信可能であるか否かを示す。第1DKC10Aが、第2DKC10Bと通信可能であるか判定し、通信状態[2]は、その判定結果を示す。例えば、第2DKC10Bとデータ通信においてエラーを検出すると、第1DKC10Aは、通信状態[2]の値を、通信不能を示す値に変更する。通信状態[3]264は、第1DKC10Aが第3DKC10Cと通信可能であるか否かを示す。 Communication state [2] 263 indicates whether or not the first DKC 10A can communicate with the second DKC 10B. The first DKC 10A determines whether it can communicate with the second DKC 10B, and the communication state [2] indicates the determination result. For example, when an error is detected in data communication with the second DKC 10B, the first DKC 10A changes the value of the communication state [2] to a value indicating that communication is not possible. The communication state [3] 264 indicates whether or not the first DKC 10A can communicate with the third DKC 10C.
 通信状態[k]は、他のDKCとの通信状態の判定結果を示す。したがって、第2DKC管理テーブル260Bは、通信状態[1]、通信状態[3]を含み、第3DKC管理テーブル260Cは、通信状態[1]、通信状態[2]を含む。 Communication state [k] indicates a determination result of a communication state with another DKC. Therefore, the second DKC management table 260B includes a communication state [1] and a communication state [3], and the third DKC management table 260C includes a communication state [1] and a communication state [2].
 前回世代[2]265は、第1DKC10Aによる前回ヘルスチェックにおける、第2DKC管理テーブル260Bの更新世代262の値を示す。第1DKC10Aは、ヘルスチェック時に第2DKC管理テーブル260Bを参照し、その更新世代262の値を、前回世代[2]265にコピーする。 The previous generation [2] 265 indicates the value of the updated generation 262 of the second DKC management table 260B in the previous health check by the first DKC 10A. The first DKC 10A refers to the second DKC management table 260B during the health check, and copies the value of the updated generation 262 to the previous generation [2] 265.
 前回時刻[2]266は、第2DKC管理テーブル260Bの更新世代262の値が変化していないことを検出した時刻を示す。第1DKC10Aは、ヘルスチェックにおいて、第2DKC管理テーブル260Bの更新世代262の値と、前回世代[2]265の値と、を比較する。 The previous time [2] 266 indicates the time when it is detected that the value of the update generation 262 in the second DKC management table 260B has not changed. In the health check, the first DKC 10A compares the value of the updated generation 262 of the second DKC management table 260B with the value of the previous generation [2] 265.
 これらが異なる場合、第1DKC10Aは、前回時刻[2]266の値を0に維持又は0に変更する。これらが同一であり、前回時刻[2]266の値が0である場合、第1DKC10Aは、前回時刻[2]266の値を現在時刻に変更する。これらが同一であり、前回時刻[2]266の値が0ではない場合、その値が維持される。 If these are different, the first DKC 10A maintains or changes the value of the previous time [2] 266 to 0. If these are the same and the value of the previous time [2] 266 is 0, the first DKC 10A changes the value of the previous time [2] 266 to the current time. If these values are the same and the value of the previous time [2] 266 is not 0, the value is maintained.
 第2DKC管理テーブル260Bの更新世代262の値と、前回世代[2]265の値が同一であるということは、第2DKC10Bによるヘルスチェックが実行されていないことを示す。 That the value of the update generation 262 in the second DKC management table 260B is the same as the value of the previous generation [2] 265 indicates that the health check by the second DKC 10B is not executed.
 前回世代[3]267及び前回時刻[3]268は、それぞれ、第3DKC管理テーブル260Cについての、前回世代及び前回時刻の情報を示す。前回世代[k]及び前回時刻[k]は、それぞれ、他のDKCの情報を示す。したがって、したがって、第2DKC管理テーブル260Bは、前回世代[1]、前回時刻[1]、前回世代[3]、前回時刻[3]を含む。第3DKC管理テーブル260Cは、前回世代[1]、前回時刻[1]、前回世代[2]、前回時刻[2]を含む。 The previous generation [3] 267 and the previous time [3] 268 indicate information on the previous generation and the previous time for the third DKC management table 260C, respectively. The previous generation [k] and the previous time [k] each indicate information of another DKC. Therefore, the second DKC management table 260B includes the previous generation [1], the previous time [1], the previous generation [3], and the previous time [3]. The third DKC management table 260C includes the previous generation [1], the previous time [1], the previous generation [2], and the previous time [2].
 第1DKC10Aは、ヘルスチェックにおいて、第2DKC管理テーブル260Bの更新世代262の値と、前回世代[2]265の値とを比較する。それらが一致する場合、第1DKC10Aは、前回時刻[2]266を参照する。前回時刻[2]266の値が0ではない場合、第1DKC10Aは、前回時刻[2]266が示す時刻から現在時刻までの経過時間を計算し、その経過時間と規定のタイムアウト値と比較する。 The first DKC 10A compares the value of the updated generation 262 in the second DKC management table 260B with the value of the previous generation [2] 265 in the health check. If they match, the first DKC 10A refers to the previous time [2] 266. When the value of the previous time [2] 266 is not 0, the first DKC 10A calculates the elapsed time from the time indicated by the previous time [2] 266 to the current time, and compares the elapsed time with a specified timeout value.
 経過時間が、タイムアウト値を超えている場合、第1DKC10Aは、通信状態[2]を参照する。通信状態[2]が通信不能を示す場合、第1DKC10Aは、第2DKC10Bにおいて障害が発生し、応答不能であると判定する。第1DKC10Aは、第3DKC10Cについても同様の判定を行う。第2DKC10B、第3DKC10Cも、それぞれ、ヘルスチェックにおいて、他のDKCの状態について同様の方法で判定を行う。 If the elapsed time exceeds the timeout value, the first DKC 10A refers to the communication state [2]. When the communication state [2] indicates that communication is not possible, the first DKC 10A determines that a failure has occurred in the second DKC 10B and that it cannot respond. The first DKC 10A makes the same determination for the third DKC 10C. Each of the second DKC 10B and the third DKC 10C also determines the state of the other DKC by the same method in the health check.
 応答状態[k]は、他のDKCの応答状態(応答可能/不能)の判定結果を示す。したがって、第2DKC管理テーブル260Bは、応答状態[1]、応答状態[3]を含み、第3DKC管理テーブル260Cは、応答状態[1]、応答状態[2]を含む。 Response state [k] indicates a determination result of another DKC response state (response possible / impossible). Therefore, the second DKC management table 260B includes response state [1] and response state [3], and the third DKC management table 260C includes response state [1] and response state [2].
 ヘルスチェックにおける上記DKCの状態判定の方法一例であって、他の方法、他の情報を使用してもよい。例えば、他のDKCとの通信状態の情報は参照されなくてもよく、他の条件が追加されてもよい。三つのDKCからなる構成例を説明したが、4以上のDKCが含まれる場合、DKC管理テーブルは、全ての他DKCの情報を含む。 It is an example of a method for determining the state of the DKC in the health check, and other methods and other information may be used. For example, information on the communication status with other DKCs may not be referred to, and other conditions may be added. Although an example of a configuration including three DKCs has been described, when four or more DKCs are included, the DKC management table includes information on all other DKCs.
 図10は、最終更新時刻管理テーブル280の構成例を示す。最終更新時刻管理テーブル280は、ボリュームペアグループを構成するボリュームそれぞれの最終更新時刻を管理する。最終更新時刻管理テーブル280は、ボリュームペアグループのIDのカラム281、MDKCのIDのカラム282、及び、各ボリュームの最終更新時刻を示すカラム283を有する。 FIG. 10 shows a configuration example of the last update time management table 280. The last update time management table 280 manages the last update time of each volume constituting the volume pair group. The last update time management table 280 includes a volume pair group ID column 281, an MDKC ID column 282, and a column 283 indicating the last update time of each volume.
 各ボリュームペアグループのMDKCが、最終更新時刻管理テーブル280における対応エントリの情報を更新する。これにより、ボリュームペアグループの各ボリュームの最終更新時刻を一元管理できる。また、クオラムディスク201Dが最終更新時刻管理テーブル280を格納することで、MDKCにおける障害時に、他のDKCが最終更新時刻管理テーブル280の情報を参照することができる。 The MDKC of each volume pair group updates the corresponding entry information in the last update time management table 280. As a result, the last update time of each volume in the volume pair group can be centrally managed. Also, the quorum disk 201D stores the last update time management table 280, so that other DKCs can refer to the information of the last update time management table 280 when a failure occurs in the MDKC.
 例えば、MDKCの最終更新時刻は、ホスト計算機180又は他のDKCから受信した最後のライト要求の受信時刻である。RDKCの最終更新時刻は、例えば、MDKCがRDKCに最後に転送したライト要求の、MDKCによる受信時刻である。または、RDKCの最終更新は、MDKCがRDKCに転送した最後のライト要求の転送時刻である。 For example, the last update time of MDKC is the reception time of the last write request received from the host computer 180 or another DKC. The last update time of RDKC is, for example, the reception time by MDKC of the write request last transferred by MDKC to RDKC. Alternatively, the last update of RDKC is the transfer time of the last write request that MDKC transferred to RDKC.
 以下において、ストレージシステムの処理を説明する。以下の説明において、各DKC(ストレージ装置)は、保持する全てのボリュームのMDKC又はRDKCであるとする。RDKCは、PVOLと同期コピーペアを構成するSVOL(SVOL[1])と、PVOLと非同期コピーペアを構成するSVOL(SVOL[2])と、を保持することができる。 The processing of the storage system will be described below. In the following description, it is assumed that each DKC (storage device) is an MDKC or RDKC of all the volumes to be held. The RDKC can hold an SVOL (SVOL [1]) that constitutes a synchronous copy pair with the PVOL and an SVOL (SVOL [2]) that constitutes an asynchronous copy pair with the PVOL.
 一つのDKC(ストレージ装置)がPVOLとSVOLを含む場合、DKCは、PVOLについて下記のMDKC処理を実行し、SVOLについて下記のRDKCの処理を実行すればよい。以下の説明において、ホスト計算機180からのライト要求のPVOL、SVOL[1]、及びSVOL[2]は、それぞれ、DKC(ストレージ装置)10A、DKC10B、及びDKC10Cとする。 When one DKC (storage device) includes a PVOL and an SVOL, the DKC may execute the following MDKC process for the PVOL and execute the following RDKC process for the SVOL. In the following description, the PVOL, SVOL [1], and SVOL [2] of the write request from the host computer 180 are DKC (storage device) 10A, DKC 10B, and DKC 10C, respectively.
 図11は、ホスト計算機からMDKC(PVOL)へ送信されたライト要求の処理のラダーチャートを示す。ホスト計算機180は、MDKC10Aに対して、仮想ボリューム210内の領域へのライト要求を発行する。MDKC10Aは、仮想ボリューム210に対応するPVOL201Aにおいて、ライト要求により指定された領域に対する排他を確保する。 FIG. 11 shows a ladder chart of processing of a write request transmitted from the host computer to MDKC (PVOL). The host computer 180 issues a write request to the area in the virtual volume 210 to the MDKC 10A. The MDKC 10A secures exclusion for the area specified by the write request in the PVOL 201A corresponding to the virtual volume 210.
 MDKC10Aは、データ受信の準備ができると、データ転送のREADY応答をホスト計算機180に返し、ホスト計算機180からライトデータを受信する。ライトデータは、FEPK100のバッファ113に格納される。 When the MDKC 10A is ready to receive data, it returns a READY response for data transfer to the host computer 180 and receives write data from the host computer 180. Write data is stored in the buffer 113 of the FEPK100.
 MDKC10Aは、受信したライトデータを、PVOL201A内のアドレス領域に書き込む(S201)。PVOL201Aへ書き込みは、ライトキャッシュ機能がONであればキャッシュメモリへの書き込みであり、ライトキャッシュ機能がOFFであればパリティグループ(物理記憶領域)への書き込みである。 The MDKC 10A writes the received write data to the address area in the PVOL 201A (S201). Writing to the PVOL 201A is writing to the cache memory if the write cache function is ON, and writing to a parity group (physical storage area) if the write cache function is OFF.
 MDKC10Aは、PVOL201Aと同期コピーペアを構成するSVOL[1]201B内の領域へのライト要求を、RDKC[1]10Bに送信する。ライト要求を受信したRDKC[1]10Bは、データ転送のREADY応答をMDKC10Aに返し、MDKC10Aからライトデータを受信する。RDKC[1]10Bは、受信したライトデータを、SVOL[1]201B内のアドレス領域に書き込む(S202)。SVOLへの書き込みは、上記PVOLへの書き込みと同様である。 The MDKC 10A transmits a write request to the area in the SVOL [1] 201B constituting the synchronous copy pair with the PVOL 201A to the RDKC [1] 10B. The RDKC [1] 10B that has received the write request returns a READY response for data transfer to the MDKC 10A, and receives write data from the MDKC 10A. The RDKC [1] 10B writes the received write data to the address area in the SVOL [1] 201B (S202). Writing to the SVOL is the same as writing to the PVOL.
 RDKC[1]10Bは、SVOL[1]201B内のアドレス領域へのデータの書き込みが完了すると、ライト完了応答をMDKC10Aに返す。MDKC10Aは、RDKC[1]10Bからライト完了応答を受信した後、ホスト計算機180にライト完了応答を返す。MDKC10Aは、確保していた排他を解除する。 The RDKC [1] 10B returns a write completion response to the MDKC 10A when the data writing to the address area in the SVOL [1] 201B is completed. The MDKC 10A returns a write completion response to the host computer 180 after receiving the write completion response from the RDKC [1] 10B. The MDKC 10A releases the secured exclusion.
 MDKC10Aは、RDKC[2]10Cに対して、非同期ライト要求を送信する。非同期ライト要求は、対象のペアグループIDを指定する。非同期ライト要求を受信したRDKC[2]10Cは、非同期ライト要求管理テーブル230を更新する。具体的には、RDKC[2]10Cは、受信した非同期ライト要求が示すボリュームペアグループIDの値とライト要求時刻とを示すエントリを、非同期ライト要求管理テーブル230に追加する。 MDKC 10A transmits an asynchronous write request to RDKC [2] 10C. The asynchronous write request specifies the target pair group ID. The RDKC [2] 10C that has received the asynchronous write request updates the asynchronous write request management table 230. Specifically, the RDKC [2] 10C adds an entry indicating the value of the volume pair group ID indicated by the received asynchronous write request and the write request time to the asynchronous write request management table 230.
 MDKC10Aは、RDKC[1]10Bからライト完了応答を受信する前に、RDKC[2]10Cに対して、非同期ライト要求を送信してもよい。MDKC10Aは、非同期ライト要求を送信する前又は後に、ライト完了応答をホスト計算機180に返してよい。 The MDKC 10A may transmit an asynchronous write request to the RDKC [2] 10C before receiving a write completion response from the RDKC [1] 10B. The MDKC 10A may return a write completion response to the host computer 180 before or after sending the asynchronous write request.
 図12は、ホスト計算機180又からライト要求を受信したMDKC10Aによる処理のフローチャートを示す。MDKC10Aは、ホスト計算機180から受信したライト要求に従って、ライトデータをPVOL201Aに書き込む(S201)。 FIG. 12 shows a flowchart of processing by the MDKC 10A that has received a write request from the host computer 180. The MDKC 10A writes the write data to the PVOL 201A according to the write request received from the host computer 180 (S201).
 MDKC10Aは、PVOL201Aと同期コピーペアを構成するSVOL[1]201B内の領域へのライト要求を、RDKC[1]10Bに送信する(S202)。MDKC10Aは、ボリュームペア管理テーブル220を参照して、アクセス先PVOL201Aとペアを構成するSVOL[1]201B及びRDKC[1]10Bを同定する。 The MDKC 10A transmits a write request to the area in the SVOL [1] 201B constituting the synchronous copy pair with the PVOL 201A to the RDKC [1] 10B (S202). The MDKC 10A refers to the volume pair management table 220 and identifies SVOL [1] 201B and RDKC [1] 10B that form a pair with the access destination PVOL 201A.
 MDKC10Aは、送信したライト要求が成功したか否か判定する(S203)。ライト要求が成功する場合(S203)、MDKC10Aは、RDKC[1]10Bからデータ転送のREADY応答を受信すると、ライトデータを送信する。さらに、MDKC10Aは、ライト完了応答をRDKC[1]10Bから受信する。 The MDKC 10A determines whether or not the transmitted write request is successful (S203). When the write request is successful (S203), when the MDKC 10A receives a READY response of data transfer from the RDKC [1] 10B, it transmits write data. Further, the MDKC 10A receives a write completion response from the RDKC [1] 10B.
 例えば、MDKC10Aは、RDKC[1]10Bから、データ転送のREADY応答受信しない場合、又は、ライトデータ送信後にライト完了応答を受信しない場合、ライト要求が失敗と判定する(S203:NO)。 For example, when the MDKC 10A does not receive the data transfer READY response from the RDKC [1] 10B or does not receive the write completion response after transmitting the write data, the MDKC 10A determines that the write request has failed (S203: NO).
 RDKC[1]10Bに送信したライト要求が成功した場合(S203:YES)、MDKC10Aは、RDKC[2]10Cに対して、ペアグループIDを指定する非同期ライト要求を送信する。MDKC10Aは、ボリュームペア管理テーブル220を参照して、アクセス先PVOL201AのペアグループIDを同定する。 When the write request transmitted to RDKC [1] 10B is successful (S203: YES), MDKC 10A transmits an asynchronous write request designating a pair group ID to RDKC [2] 10C. The MDKC 10A refers to the volume pair management table 220 and identifies the pair group ID of the access destination PVOL 201A.
 MDKC10Aは、ライト完了応答をホスト計算機180に返す(S205)。MDKC10Aは、非同期ライト要求を送信する前に、ライト完了応答をホスト計算機180に返してもよい。 The MDKC 10A returns a write completion response to the host computer 180 (S205). The MDKC 10A may return a write completion response to the host computer 180 before transmitting the asynchronous write request.
 RDKC[1]10Bに送信したライト要求が失敗した場合(S203:NO)、MDKC10Aは、RDKC[1]10Bへのパス又はRDKC[1]10Bにおいて障害が発生していると判定する。MDKC10Aは、ボリュームペア管理テーブル220において、PVOL201AとSVOL[1]201Bのペアのペア状態の値をサスペンド(PSUS)に変更する(S206)。MDKC10Aは、第1DKC管理テーブル260Aを更新して、RDKC[1]10Bと通信不能であることを示してもよい。MDKC10Aは、ボリュームペア管理テーブル220の更新を、RDKC[2]10Cへ通知してもよい。 When the write request transmitted to RDKC [1] 10B fails (S203: NO), MDKC 10A determines that a path to RDKC [1] 10B or a failure has occurred in RDKC [1] 10B. In the volume pair management table 220, the MDKC 10A changes the pair status value of the pair of PVOL 201A and SVOL [1] 201B to suspend (PSUS) (S206). The MDKC 10A may update the first DKC management table 260A to indicate that communication with the RDKC [1] 10B is impossible. The MDKC 10A may notify the RDKC [2] 10C of the update of the volume pair management table 220.
 MDKC10Aは、RDKC[2]10Cに、PVOL201Aとペアを構成するSVOL[2]201Cに対するデータのライトを要求する(S207)。具体的には、MDKC10Aは、最終更新時刻管理テーブル280を参照し、RDKC[2]10CのSVOL[2]201Cにおける当該ペアグループの最終更新時刻を取得する。MDKC10Aは、ログ情報を保持し、当該ログ情報と取得した最終更新時刻とから、SVOL[2]201Cに未反映のデータを同定する。MDKC10Aは、未反映のデータのライトを、RDKC[2]10Cに要求する。 The MDKC 10A requests the RDKC [2] 10C to write data to the SVOL [2] 201C that forms a pair with the PVOL 201A (S207). Specifically, the MDKC 10A refers to the last update time management table 280, and acquires the last update time of the pair group in the SVOL [2] 201C of the RDKC [2] 10C. The MDKC 10A retains log information, and identifies data not reflected in the SVOL [2] 201C from the log information and the acquired last update time. The MDKC 10A requests the RDKC [2] 10C to write unreflected data.
 MDKC10Aは、最終更新時刻管理テーブル280から、SVOL[2]201Cに未反映のデータが存在していると判定した場合、PVOL201Aの全データを、SVOL[2]201Cにコピーしてもよい。最終更新時刻が同一の場合、MDKC10Aは、今回のライト要求のみをRDKC[2]10Cに送信する。SVOL[2]201CのデータをPVOL201Aのデータと同期させることで、冗長性を確保する。 When the MDKC 10A determines from the last update time management table 280 that there is unreflected data in the SVOL [2] 201C, the MDKC 10A may copy all the data in the PVOL 201A to the SVOL [2] 201C. When the last update times are the same, the MDKC 10A transmits only the current write request to the RDKC [2] 10C. Redundancy is ensured by synchronizing the data of SVOL [2] 201C with the data of PVOL 201A.
 MDKC10Aは、RDKC[2]10Cが保持する他の非同期コピーペアのSVOLについても、PVOLとの再同期を実行してもよい。MDKC10Aは、PVOLへのライト要求を受信した時に、当該PVOLと、当該PVOLとコピーペアを構成するRDKC[2]10CのSVOLとの再同期を実行してもよい。 The MDKC 10A may execute resynchronization with the PVOL for the SVOL of another asynchronous copy pair held by the RDKC [2] 10C. When the MDKC 10A receives a write request to the PVOL, the MDKC 10A may perform resynchronization between the PVOL and the SVOL of the RDKC [2] 10C constituting the copy pair with the PVOL.
 RDKC[2]10Cへのライトが成功した場合(S208:YES)、MDKC10Aは、ライト完了応答をホスト計算機180に返す(S205)。RDKC[2]10Cへのライトが失敗した場合(S208:NO)、MDKC10Aは、ボリュームペア管理テーブル220において、PVOL201AとSVOL[1]201Bのペアのペア状態の値をサスペンド(PSUS)に変更する(S209)。さらに、MDKC10Aは、第1DKC管理テーブル260Aを更新してもよい。その後、MDKC10Aは、ライト完了応答をホスト計算機180に返す(S205)。 When the write to RDKC [2] 10C is successful (S208: YES), the MDKC 10A returns a write completion response to the host computer 180 (S205). When writing to the RDKC [2] 10C has failed (S208: NO), the MDKC 10A changes the pair status value of the pair of PVOL 201A and SVOL [1] 201B to suspend (PSUS) in the volume pair management table 220. (S209). Further, the MDKC 10A may update the first DKC management table 260A. Thereafter, the MDKC 10A returns a write completion response to the host computer 180 (S205).
 図13は、ホスト計算機180からRDKC[1](SVOL[1])へ送信されたライト要求の処理のラダーチャートを示す。ホスト計算機180は、RDKC[1]10Bに対して、仮想ボリューム210内の領域へのライト要求を発行する。RDKC[1]10Bは、データ受信の準備ができると、データ転送のREADY応答をホスト計算機180に返し、ホスト計算機180からライトデータを受信する。ライトデータは、FEPK100のバッファ113に格納される。 FIG. 13 shows a ladder chart of processing of a write request transmitted from the host computer 180 to RDKC [1] (SVOL [1]). The host computer 180 issues a write request to the area in the virtual volume 210 to RDKC [1] 10B. When the RDKC [1] 10B is ready to receive data, it returns a READY response for data transfer to the host computer 180 and receives write data from the host computer 180. Write data is stored in the buffer 113 of the FEPK100.
 RDKC[1]10Bは、SVOL[1]201Bとボリュームペアを構成するPVOL201A内の領域へのライト要求をMDKC10Aに送信する。MDKC10Aは、ライト要求で指定されたボリューム内の領域に対する排他を確保し、その後、データ転送のREADY応答をRDKC[1]10Bに返し、RDKC[1]10Bからライトデータを受信する。 The RDKC [1] 10B transmits to the MDKC 10A a write request to the area in the PVOL 201A constituting the volume pair with the SVOL [1] 201B. The MDKC 10A secures exclusion for the area in the volume designated by the write request, and then returns a READY response for data transfer to the RDKC [1] 10B and receives the write data from the RDKC [1] 10B.
 MDKC10Aは、受信したライトデータを、PVOL201A内の指定された領域に書き込む(S301)。MDKC10Aは、PVOL201A内の領域へのデータの書き込みが完了すると、ライト完了応答をRDKC[1]10Bに返す。 The MDKC 10A writes the received write data to the designated area in the PVOL 201A (S301). When the writing of data to the area in the PVOL 201A is completed, the MDKC 10A returns a write completion response to the RDKC [1] 10B.
 RDKC[1]10Bは、MDKC10Aからライト完了応答受信した後、SVOL[1]201B内の指定された領域にライトデータを書き込む(S302)。RDKC[1]10Bは、ホスト計算機180に、ライト完了応答を返す。その後、RDKC10[1]Bは、排他解除要求をMDKC10Aに送信する。MDKC10Aは、確保していた排他を解除する。 After receiving the write completion response from the MDKC 10A, the RDKC [1] 10B writes the write data in the designated area in the SVOL [1] 201B (S302). The RDKC [1] 10B returns a write completion response to the host computer 180. Thereafter, the RDKC 10 [1] B transmits an exclusive release request to the MDKC 10A. The MDKC 10A releases the secured exclusion.
 MDKC10Aは、PVOL201A内の領域へのデータを書き込んだ後、RDKC[2]10Cに対して、非同期ライト要求を送信する。非同期ライト要求を受信したRDKC[2]10Cは、非同期ライト要求管理テーブル230を更新する(S303)。 The MDKC 10A transmits an asynchronous write request to the RDKC [2] 10C after writing data to the area in the PVOL 201A. The RDKC [2] 10C that has received the asynchronous write request updates the asynchronous write request management table 230 (S303).
 RDKC[2]10Cが、ホスト計算機180からライト要求を受信した場合、RDKC[2]10Cは、ライト要求をMDKC10Aに送信する。MDKC10Aは、PVOL201A内の領域へのデータを書き込んだ後、RDKC[2]10Cに対して、ライト要求を送信する。MDKC10Aは、RDKC[2]10Cからライト完了応答を受信すると、RDKC[1]10Bに対して、非同期ライト要求を送信し、RDKC[2]10Cにライト完了応答を返す。RDKC[2]10Cは、ホスト計算機180にライト完了応答を返し、さらに、非同期ライト要求管理テーブル230を更新する。 When the RDKC [2] 10C receives a write request from the host computer 180, the RDKC [2] 10C transmits the write request to the MDKC 10A. After writing the data to the area in the PVOL 201A, the MDKC 10A transmits a write request to the RDKC [2] 10C. When the MDKC 10A receives a write completion response from the RDKC [2] 10C, the MDKC 10A transmits an asynchronous write request to the RDKC [1] 10B and returns a write completion response to the RDKC [2] 10C. The RDKC [2] 10C returns a write completion response to the host computer 180, and further updates the asynchronous write request management table 230.
 図14は、ホスト計算機180からライト要求を受信したRDKC[1]10Bによる処理のフローチャートを示す。RDKC[1]10Bは、ホスト計算機180からライトデータを受信し、FEPK100のバッファ113に格納する。RDKC[1]10Bは、SVOL[1]201Bとボリュームペアを構成するPVOL201A内の領域へのライト要求をMDKC10Aに送信する(S401)。RDKC[1]10Bは、ボリュームペア管理テーブル220を参照して、アクセス先SVOL[1]201Bとペアを構成するPVOL201A及びMDKC10Aを同定する。 FIG. 14 shows a flowchart of processing by RDKC [1] 10B that has received a write request from the host computer 180. The RDKC [1] 10B receives the write data from the host computer 180 and stores it in the buffer 113 of the FEPK100. The RDKC [1] 10B transmits to the MDKC 10A a write request to the area in the PVOL 201A constituting the volume pair with the SVOL [1] 201B (S401). The RDKC [1] 10B refers to the volume pair management table 220 and identifies the PVOL 201A and the MDKC 10A that form a pair with the access destination SVOL [1] 201B.
 MDKC10Aは、送信したライト要求が成功したか否か判定する(S402)。判定方法は、図12を参照して説明した方法と同様である。ライト要求を受けたMDKC10Aは、PVOL201Aにライトデータを書き込み、さらに、RDKC[2]10Cに非同期ライト要求を送信する。 The MDKC 10A determines whether or not the transmitted write request is successful (S402). The determination method is the same as the method described with reference to FIG. The MDKC 10A that has received the write request writes the write data to the PVOL 201A, and further transmits an asynchronous write request to the RDKC [2] 10C.
 MDKC10Aに送信したライト要求が成功した場合(S402:YES)、RDKC[1]10Bは、バッファ113に格納されたライトデータをSVOL[1]201Bに書き込む(S403)。RDKC[1]10Bは、MDKC10Aに排他解除要求を送信する。RDKC[1]10Bは、ホスト計算機180にライト完了応答を送信する(S409)。 When the write request transmitted to the MDKC 10A is successful (S402: YES), the RDKC [1] 10B writes the write data stored in the buffer 113 to the SVOL [1] 201B (S403). The RDKC [1] 10B transmits an exclusive release request to the MDKC 10A. The RDKC [1] 10B transmits a write completion response to the host computer 180 (S409).
 MDKC10Aに送信したライト要求が失敗した場合(S402:NO)、RDKC[1]10Bは、MDKC10Aの生死を確認する(S404)。RDKC[1]10Bは、障害がパスで発生しているか、MDKC10Aにおいて発生しているかを判定する。具体的には、RDKC[1]10Bは、クオラムディスク201Dから、第1DKC管理テーブル260A及び第2DKC管理テーブル260Bを取得する。 When the write request transmitted to the MDKC 10A fails (S402: NO), the RDKC [1] 10B confirms whether the MDKC 10A is alive (S404). The RDKC [1] 10B determines whether a failure has occurred in the path or in the MDKC 10A. Specifically, the RDKC [1] 10B acquires the first DKC management table 260A and the second DKC management table 260B from the quorum disk 201D.
 図9を参照して説明したように、RDKC[1]10Bは、MDKC10Aの障害の有無を判定する。本状態において、RDKC[1]10Bは、MDKC10Aと通信不能である。第1DKC管理テーブル260Aが規定時間より長く更新されていない場合、RDKC[1]10Bは、MDKC10Aにおいて障害が発生し応答不能であると判定する。 As described with reference to FIG. 9, the RDKC [1] 10B determines whether or not there is a failure in the MDKC 10A. In this state, RDKC [1] 10B cannot communicate with MDKC 10A. If the first DKC management table 260A has not been updated for longer than the specified time, the RDKC [1] 10B determines that a failure has occurred in the MDKC 10A and that it cannot respond.
 MDKC10Aにおいて障害が発生していないと判定した場合(S405:NO)、RDKC[1]10Bは、ボリュームペアの状態を、自装置の障害によるサスペンド状態に変更する。具体的には、RDKC[1]10Bは、ボリュームペア管理テーブル22において、PVOL201AとSVOL[1]201Bのペアのペア状態を、PSUSに変更する。RDKC[1]10Bは、ボリュームペア管理テーブル22の更新を、RDKC[2]10Cに通知してもよい。RDKC[1]10Bは、第2DKC管理テーブル260Bを更新してもよい。 When it is determined that no failure has occurred in the MDKC 10A (S405: NO), the RDKC [1] 10B changes the state of the volume pair to the suspended state due to the failure of the own device. Specifically, the RDKC [1] 10B changes the pair status of the pair of PVOL 201A and SVOL [1] 201B to PSUS in the volume pair management table 22. The RDKC [1] 10B may notify the RDKC [2] 10C of the update of the volume pair management table 22. The RDKC [1] 10B may update the second DDKC management table 260B.
 MDKC10Aにおいて障害が発生していると判定した場合(S405:YES)、RDKC[1]10Bは、ボリュームペアの状態を、MDKCの障害によるサスペンド状態に変更する(S407)。具体的には、RDKC[1]10Bは、ボリュームペア管理テーブル22において、PVOL201AとSVOL[1]201Bのペアのペア状態をSSWSに変更する。RDKC[1]10Bは、ボリュームペア管理テーブル22の更新を、RDKC[2]10Cに通知してもよい。 When it is determined that a failure has occurred in the MDKC 10A (S405: YES), the RDKC [1] 10B changes the state of the volume pair to a suspended state due to a failure of the MDKC (S407). Specifically, the RDKC [1] 10B changes the pair state of the pair of PVOL 201A and SVOL [1] 201B to SSWS in the volume pair management table 22. The RDKC [1] 10B may notify the RDKC [2] 10C of the update of the volume pair management table 22.
 次に、RDKC[1]10Bは、RDKC[2]10Cとの間でボリューム再同期を行う(S408)。RDKC[1]10Bは、自装置をMDKCに変更し、RDKC[2]10Cとの間で、同一ボリュームペアグループのボリュームペアそれぞれを再同期させる。詳細は後述する。 Next, the RDKC [1] 10B performs volume resynchronization with the RDKC [2] 10C (S408). RDKC [1] 10B changes its own device to MDKC and resynchronizes each volume pair of the same volume pair group with RDKC [2] 10C. Details will be described later.
 ステップS409において、RDKC[1]10Bは、パスで障害が発生していると判定した場合(S405:NO、S406)、ホスト計算機180にライト要求の失敗の応答を返す。他の場合、RDKC[1]10Bは、ホスト計算機180にライト完了応答を返す。 In step S409, when the RDKC [1] 10B determines that a failure has occurred in the path (S405: NO, S406), it returns a write request failure response to the host computer 180. In other cases, RDKC [1] 10B returns a write completion response to the host computer 180.
 RDKC[2]も、ホスト計算機180からのライト要求に対して略同様の処理を行う。MDKCは、RDKC[2]からのライト要求に対して、RDKC[1]に非同期ライト要求を送信する。 RDKC [2] also performs substantially the same processing in response to a write request from the host computer 180. In response to the write request from RDKC [2], MDKC transmits an asynchronous write request to RDKC [1].
 図15は、RDKC間のデータ再同期処理のフローチャートを示す。MDKCの障害を検出したRDKCが、図15のフローを実行する。予め決められたRDKCが本フローを実行してもよい。以下においては、DCK10Bの処理の例を説明する。DCK10Cも同様に動作し得る。 FIG. 15 shows a flowchart of data resynchronization processing between RDKCs. The RDKC that detects the failure of the MDKC executes the flow of FIG. A predetermined RDKC may execute this flow. Below, the example of a process of DCK10B is demonstrated. The DCK 10C may operate similarly.
 DCK10Bは、クオラムディスク201Dの管理情報をリードする(S501)。DCK10Bは、自装置の状態をRDKCからMDKCに変化させる(S502)。DCK10BがMDKCに変化し、DCK10Cは全てのボリュームペアについてRDCK[1]として動作する。DCK10Bの全ボリュームがPVOLに変化し、DCK10Cの全ボリュームがSVOL[1]となる。 The DCK 10B reads the management information of the quorum disk 201D (S501). The DCK 10B changes the state of its own device from RDKC to MDKC (S502). DCK 10B changes to MDKC, and DCK 10C operates as RDCK [1] for all volume pairs. All the volumes of the DCK 10B change to PVOL, and all the volumes of the DCK 10C become SVOL [1].
 DCK10Bは、上記DKC及びボリュームの状態変化を示すように、ボリュームペア管理テーブル260Bを更新する。例えば、DCK10Bは、各ボリュームペアグループのMDKCIDカラム223に自装置のIDに登録し、PVOLIDカラム222に、自装置のボリュームのIDを登録する。DCK10Bは、さらに、SVOL[1]IDカラム224にDKC10CのボリュームのIDを登録し、RDKC[1]IDカラム225にDCK10CのIDを登録する。DCK10Bは、PAIR[1]STATUSカラム226に「PAIR」を登録する。 The DCK 10B updates the volume pair management table 260B so as to indicate the state change of the DKC and the volume. For example, the DCK 10B registers its own device ID in the MDKCID column 223 of each volume pair group, and registers its own device volume ID in the PVOLID column 222. The DCK 10B further registers the volume ID of the DKC 10C in the SVOL [1] ID column 224, and registers the ID of the DCK 10C in the RDKC [1] ID column 225. The DCK 10B registers “PAIR” in the PAIR [1] STATUS column 226.
 DCK10Bは、SVOL[2]IDカラム227にDKC10AのボリュームのIDを登録し、RDKC[2]IDカラム228にDCK10AのIDを登録する。DCK10Bは、PAIR[1]STATUSカラム226に「PSUS」を登録する。DCK10Bは、最終更新時刻管理テーブル280のMDKC IDカラム282に自装置のIDを登録する。 The DCK 10B registers the ID of the volume of the DKC 10A in the SVOL [2] ID column 227, and registers the ID of the DCK 10A in the RDKC [2] ID column 228. The DCK 10B registers “PSUS” in the PAIR [1] STATUS column 226. The DCK 10B registers its own device ID in the MDKC ID column 282 of the last update time management table 280.
 DCK10Bは、他DKC10Cに、ボリュームペアグループ管理テーブルの更新を通知する。さらに、DCK10Bは、他DKC10Cに、RDKC間再同期処理の開始を通知する(S503)。DKC10B及びDKC10Cは、RDKC間再同期のため、I/O処理を一時的に待機する。 DCK 10B notifies the update of the volume pair group management table to the other DKC 10C. Further, the DCK 10B notifies the other DKC 10C of the start of the resynchronization process between RDKCs (S503). The DKC 10B and the DKC 10C temporarily wait for I / O processing for resynchronization between RDKCs.
 DCK10Bは、自装置が保持する各ボリュームについて、ステップS504及びS505を実行する。ステップS504において、DCK10Bは、選択したボリュームに対する未更新データが存在するか判定する。DCK10Bは、最終更新時刻管理テーブル280を参照し、自装置の最終更新時刻と、同一ボリュームペアグループの他装置の最終更新時刻を比較する。自装置の最終更新時刻が早い場合、DCK10Bは、未更新データが存在すると判定する。 The DCK 10B executes steps S504 and S505 for each volume held by the own device. In step S504, the DCK 10B determines whether there is unupdated data for the selected volume. The DCK 10B refers to the last update time management table 280, and compares the last update time of its own device with the last update time of another device in the same volume pair group. When the last update time of the own device is early, the DCK 10B determines that unupdated data exists.
 未更新データがしないと判定した場合(S504:NO)、DCK10Bは、次のボリュームを選択する。未更新データが存在すると判定した場合(S504:YES)、DCK10Bは、DKC10Cから、当該ボリュームペアグループの最新データをリードし、選択したボリュームにライトする(S505)。DKC10Cのボリュームの全データ、又は、DKC10Cが保持するログ情報から同定される未更新データのみが、DKC10Bに転送される。再同期により、二つのボリュームのデータが一致する。再同期後、DKC10BとDKC10Cの二つのボリュームは、同期コピーペアを構成する。 When it is determined that there is no unupdated data (S504: NO), the DCK 10B selects the next volume. If it is determined that unupdated data exists (S504: YES), the DCK 10B reads the latest data of the volume pair group from the DKC 10C and writes it to the selected volume (S505). All the data of the volume of the DKC 10C or only the unupdated data identified from the log information held by the DKC 10C is transferred to the DKC 10B. By resynchronization, the data of the two volumes match. After resynchronization, the two volumes DKC 10B and DKC 10C constitute a synchronous copy pair.
 DCK10Bは、保持する全てのボリュームについてステップS504及びS505を実行した後、他DKC10Cに、最新データとのデータリシンクを要求する。DKC10Cは、保持する全てのボリュームについてステップS504及びS505を実行する。 DCK 10B, after executing steps S504 and S505 for all the volumes to be held, requests data resync with the latest data from other DKC 10C. The DKC 10C executes steps S504 and S505 for all the volumes to be held.
 上述のように、RDKC間データ再同期によって、MDKCの障害により残された二つのアクティブなDKCのボリュームデータを一致させることができ、冗長性を確保することができる。 As described above, the data resynchronization between the RDKCs makes it possible to match the volume data of two active DKCs remaining due to the failure of the MDKC, and to ensure redundancy.
 図16は、RDKC(RDKC10B又はRDKC10C)によるヘルスチェックのフローチャートを示す。DKCは定期的には、他のDKCのヘルスチェックを実行する。まず、RDKCは、クオラムディスク201Dから、全てのDKC管理テーブル260A~260Cを取得する(S601)。RDKCは、他のDKCの生死を判定する(S602)。DKCの生死判定の方法は、図14のフローチャートにおけるステップS404について説明した通りである。 FIG. 16 shows a health check flowchart using RDKC (RDKC 10B or RDKC 10C). The DKC periodically performs health checks on other DKCs. First, the RDKC acquires all the DKC management tables 260A to 260C from the quorum disk 201D (S601). The RDKC determines whether another DKC is alive or dead (S602). The method for determining whether or not DKC is alive is as described for step S404 in the flowchart of FIG.
 MDCK10Aにおいて障害が発生していると判定した場合(S603:YES)、RDKCは、ボリュームペアの状態を、MDKC10Aの障害によるサスペンド状態に変更する(S604)。ステップS604の処理は、図14におけるステップS407と同様である。RDKCは、RDKC間再同期処理を実行する(S605)。RDKC間再同期処理は、図15を参照して説明した通りである。 When it is determined that a failure has occurred in the MDCK 10A (S603: YES), the RDKC changes the state of the volume pair to a suspended state due to the failure of the MDKC 10A (S604). The process in step S604 is the same as step S407 in FIG. The RDKC executes inter-RDKC resynchronization processing (S605). The inter-RDKC resynchronization process is as described with reference to FIG.
 MDCK10Aにおいて障害が発生していないと判定した場合(S603:NO)、RDCKは、自装置が保持する各ボリュームについて、ステップS606及びS607を実行する。ステップS606において、RDCKは、選択したボリュームに対する、未処理の非同期ライト要求が残っているか判定する。 When it is determined that no failure has occurred in the MDCK 10A (S603: NO), the RDCK executes steps S606 and S607 for each volume held by the own device. In step S606, the RDCK determines whether an unprocessed asynchronous write request remains for the selected volume.
 具体的には、RDCKは、非同期ライト要求管理テーブル230が示す当該ボリュームペアグループの最新のライト要求時刻と、クオラム更新時刻管理テーブル240が示す時刻を比較する。ライト要求時刻がクオラム更新時刻と同一又はそれよりも遅い場合、RDCKは、未処理の非同期ライト要求が残っていると判定する。そうではない場合、RDCKは、未処理の非同期ライト要求が残っていないと判定する。 Specifically, the RDCK compares the latest write request time of the volume pair group indicated by the asynchronous write request management table 230 with the time indicated by the quorum update time management table 240. If the write request time is the same as or later than the quorum update time, RDCK determines that there is an unprocessed asynchronous write request remaining. Otherwise, RDCK determines that there are no outstanding asynchronous write requests remaining.
 未処理の非同期ライト要求が残っている場合(S606:YES)、RDCKは、当該SVOLとPVOLの再同期を実行する(S607)。RDCKは、PVOLを指定してMDKCに再同期のためのリード要求(再同期の要求)を送信し、受信したリードデータをSVOLに書き込む。上述のように、転送されるデータは、PVOLの全データ又は未更新のデータのみである。 If an unprocessed asynchronous write request remains (S606: YES), the RDCK executes resynchronization of the SVOL and PVOL (S607). RDCK designates PVOL, sends a read request (resynchronization request) for resynchronization to MDKC, and writes the received read data to SVOL. As described above, the data to be transferred is all PVOL data or only unupdated data.
 最後に、RDCKは、自装置のDKC管理テーブルとクオラム更新時刻管理テーブル240とを更新する(S608)。後述するように、MDKCは、自装置によるヘルスチェックにおいて、同期処理を実行したボリュームペアグループの最終更新時刻のカラム283を更新する。このように、RDKCは、ヘルスチェックと共に、非同期ボリュームペアの再同期処理を実行することで、効率的な再同期処理を実現する。 Finally, the RDCK updates its own DKC management table and quorum update time management table 240 (S608). As will be described later, the MDKC updates the column 283 of the last update time of the volume pair group for which the synchronization processing has been executed in the health check performed by the own device. In this manner, the RDKC implements an efficient resynchronization process by executing the resynchronization process of the asynchronous volume pair together with the health check.
 図17は、MDKC10Aによるヘルスチェックのフローチャートを示す。まず、MDKC10Aは、クオラムディスク201Dから、全てのDKC管理テーブル260A~260Cを取得する(S701)。MDKC10Aは、他のDKCの生死を判定する(S702)。DKCの生死判定の方法は、図14のフローチャートにおけるステップS404について説明した通りである。 FIG. 17 shows a flowchart of health check by MDKC 10A. First, the MDKC 10A acquires all the DKC management tables 260A to 260C from the quorum disk 201D (S701). The MDKC 10A determines whether other DKCs are alive or dead (S702). The method for determining whether or not DKC is alive is as described for step S404 in the flowchart of FIG.
 MDKC10Aは、最終更新時刻管理テーブル280を更新する(S703)。MDKC10Aは、前回のヘルスチェックの後、いずれかのRDKCに同期コピー又はデータ再同期を実行している場合、最終更新時刻管理テーブル280の最終時刻を更新する。 The MDKC 10A updates the last update time management table 280 (S703). The MDKC 10A updates the last time in the last update time management table 280 when performing synchronous copy or data resynchronization to any RDKC after the previous health check.
 MDKC10Aは、強制再同期処理を実行する(S704)。強制再同期処理の詳細は後述する。概略を説明すると、MDKC10Aは、最終更新時刻管理テーブル280を参照し、未更新データが存在するSVOLであって、前回更新からの経過時間が閾値を超えるSVOLを同定する。最終更新時刻管理テーブル280において、SVOLは、ボリュームペアグループIDとRDKC IDで同定される。 The MDKC 10A executes forced resynchronization processing (S704). Details of the forced resynchronization process will be described later. To explain the outline, the MDKC 10A refers to the last update time management table 280, and identifies the SVOL in which unupdated data exists and the elapsed time from the previous update exceeds the threshold. In the last update time management table 280, the SVOL is identified by the volume pair group ID and RDKC ID.
 MDKC10Aは、同定されたRDKCに対して、SVOL(ボリュームペアグループ)を指定して、再同期を行うことを指示する。これにより、ヘルスチェックの遅延等で、SVOLに対して更新していないデータ量が過大になることを防ぐ。最後に、MDKC10Aは、自装置のDKC管理テーブルとクオラム更新時刻管理テーブル240とを更新する(S705)。 The MDKC 10A instructs the identified RDKC to specify SVOL (volume pair group) and perform resynchronization. This prevents an excessive amount of data that has not been updated with respect to the SVOL due to a delay in health check or the like. Finally, the MDKC 10A updates its own DKC management table and the quorum update time management table 240 (S705).
 図18は、強制再同期処理のフローチャートを示す。MDKC10Aは、最終更新時刻管理テーブル280を参照し、各ボリュームペアについて、ステップS801、S802、及びS803を実行する。 FIG. 18 shows a flowchart of forced resynchronization processing. The MDKC 10A refers to the last update time management table 280 and executes steps S801, S802, and S803 for each volume pair.
 ステップS801において、MDKC10Aは、選択したボリュームペアにおいて、未処理の非同期ライト処理が残っているか判定する。最終更新時刻管理テーブル280において、いずれかのRDKCの最終更新時刻がMDKCの最終更新時刻よりも前である場合、未処理の非同期ライト処理が残っている。 In step S801, the MDKC 10A determines whether an unprocessed asynchronous write process remains in the selected volume pair. In the last update time management table 280, when the last update time of any RDKC is earlier than the last update time of MDKC, an unprocessed asynchronous write process remains.
 未処理の非同期ライト処理が残っている場合(S802:YES)、ステップS702において、MDKC10Aは、前回更新から経過時間と閾値(例えば4s)とを比較する。経過時間が閾値を超過している場合(S803:YES)、MDKC10Aは、RDKCに対して、SVOL(ボリュームペアグループ)を指定して、再同期を行う要求を送信する。 If unprocessed asynchronous write processing remains (S802: YES), in step S702, the MDKC 10A compares the elapsed time from the previous update with a threshold (for example, 4s). When the elapsed time exceeds the threshold value (S803: YES), the MDKC 10A transmits a request for resynchronization to the RDKC by specifying SVOL (volume pair group).
 図19は、RDKC(RDKC10B又はRDKC10C)によるリード処理のフローチャートを示す。DKC10A、10B、10Cは、それぞれ、ホスト計算機180からのリード要求に対して、自装置のボリュームのデータをホスト計算機180に返す。MDKCによるリード処理は通常のリード処理と同様であり、説明を省略する。 FIG. 19 shows a flowchart of read processing by RDKC (RDKC 10B or RDKC 10C). In response to a read request from the host computer 180, the DKCs 10A, 10B, and 10C each return the volume data of its own device to the host computer 180. The read processing by MDKC is the same as the normal read processing, and description thereof is omitted.
 図19を参照して、ホスト計算機180からリード要求を受信すると、RDKCは、非同期ライト要求管理テーブル230から、指定されたSVOLのボリュームペアグループの最新のライト要求時刻をリードする。さらに、RDKCは、クオラム更新時刻管理テーブル240から、クオラム前回更新時刻をリードする(S901)。 Referring to FIG. 19, upon receiving a read request from host computer 180, RDKC reads the latest write request time of the specified SVOL volume pair group from asynchronous write request management table 230. Further, the RDKC reads the quorum last update time from the quorum update time management table 240 (S901).
 RDKCは、取得した情報から、対象のSVOLのデータが最新であるか判定する(S902)。具体的には、最新のライト要求時刻がクオラム前回更新時刻よりも後である場合、RDKCはSVOLのデータは最新であると判定する。 The RDKC determines whether the target SVOL data is the latest from the acquired information (S902). Specifically, if the latest write request time is later than the quorum last update time, the RDKC determines that the SVOL data is the latest.
 対象のSVOLのデータが最新ではない場合(S902:NO)、RDKCは、所定時間待機する(S903)。これにより、RDKCは、ヘルスチェックによるボリュームペア再同期を待つ。対象のSVOLのデータが最新である場合(S902:YES)、RDKCは、対象のSVOLの対象アドレスからデータをリードして、ホスト計算機180に返す。 If the target SVOL data is not the latest (S902: NO), the RDKC waits for a predetermined time (S903). Thereby, the RDKC waits for the volume pair resynchronization by the health check. If the target SVOL data is the latest (S902: YES), the RDKC reads the data from the target address of the target SVOL and returns it to the host computer 180.
 上記方法により、最新のリードデータをホスト計算機180に返すことができる。また、次のヘルスチェックを待つことで、他のDKCからのリードやヘルスチェックから独立した再同期による負荷を避けることができる。 The latest read data can be returned to the host computer 180 by the above method. In addition, by waiting for the next health check, it is possible to avoid a load due to re-synchronization independent of a read from another DKC or a health check.
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 In addition, this invention is not limited to the above-mentioned Example, Various modifications are included. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
 また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。 In addition, each of the above-described configurations, functions, processing units, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD, or a recording medium such as an IC card or an SD card.

Claims (14)

  1.  第1ボリュームを含む第1ストレージ装置と、
     前記第1ボリュームとコピーペアを構成する第2ボリュームを含む、第2ストレージ装置と、
     前記第1ボリュームとコピーペアを構成する第3ボリュームを含む、第3ストレージ装置と、
     クオラムディスクと、を含むストレージシステムであって、
     前記第1ボリューム、前記第2ボリューム及び前記第3ボリュームは、外部からアクセスされる一つの仮想ボリュームに関連づけられ、
     前記第1ストレージ装置、前記第2ストレージ装置、及び前記第3ストレージ装置は、それぞれ、前記仮想ボリュームに対する外部からのアクセスを受け付け、
     前記第1ストレージ装置は、ホストからの前記仮想ボリュームへのライト要求に対して、ライトデータを前記第1ボリュームにライトし、
     前記第2ストレージ装置は、前記第1ボリュームへの前記ライトデータのライトの後に、前記ライトデータを前記第2ボリュームにライトし、
     前記ストレージシステムは、前記第2ボリュームへの前記ライトデータのライトの後に、前記ホストに前記ライト要求のライト完了応答を返し、
     前記第1ストレージ装置は、前記ライト要求に応じて、前記第3ストレージ装置に前記第3ボリュームに対する非同期ライト要求を送信し、
     前記第3ストレージ装置は、予め設定されたタイミングで前記クオラムディスクへアクセスして、前記第1ストレージ装置及び前記第2ストレージ装置のヘルスチェックを実行し、
     前記第3ストレージ装置は、前記非同期ライト要求を受信した後のヘルスチェックの結果が、前記第1ストレージ装置との正常通信が可能であることを示す場合に、前記第3ボリュームと前記第1ボリュームの再同期を、前記第1ストレージ装置に要求する、ストレージシステム。
    A first storage device including a first volume;
    A second storage device including a second volume constituting a copy pair with the first volume;
    A third storage device including a third volume constituting a copy pair with the first volume;
    A storage system including a quorum disk,
    The first volume, the second volume, and the third volume are associated with one virtual volume accessed from the outside,
    The first storage device, the second storage device, and the third storage device each accept external access to the virtual volume,
    In response to a write request from the host to the virtual volume, the first storage device writes write data to the first volume,
    The second storage device writes the write data to the second volume after writing the write data to the first volume,
    The storage system returns a write completion response of the write request to the host after writing the write data to the second volume,
    In response to the write request, the first storage device transmits an asynchronous write request for the third volume to the third storage device,
    The third storage device accesses the quorum disk at a preset timing, and executes a health check of the first storage device and the second storage device,
    The third storage device, when the health check result after receiving the asynchronous write request indicates that normal communication with the first storage device is possible, the third volume and the first volume A storage system that requests the first storage device to re-synchronize.
  2.  請求項1に記載のストレージシステムであって、
     前記クオラムディスクによるチェックの前記結果が、前記第1ストレージ装置との正常通信が不可能であり、前記第2ストレージ装置との正常通信が不可能であることを示す場合に、前記第3ストレージ装置は、前記第3ボリュームと前記第2ボリュームの再同期を、前記第2ストレージ装置に要求する、ストレージシステム。
    The storage system according to claim 1,
    When the result of the check by the quorum disk indicates that normal communication with the first storage device is impossible and normal communication with the second storage device is impossible, the third storage The apparatus requests the second storage apparatus to resynchronize the third volume and the second volume.
  3.  請求項1に記載のストレージシステムであって、
     前記第3ストレージ装置は、
     前記第1ストレージ装置から受信した非同期ライト要求それぞれの時刻を管理し、
     ヘルスチェックにおいて、前回の非同期ライト要求の時刻と前回のヘルスチェックの時刻とに基づいて、未処理の非同期ライト要求の有無を判定し、
     未処理の非同期ライト要求が残っている場合、前記再同期の要求を、前記第1ストレージ装置に要求する、ストレージシステム。
    The storage system according to claim 1,
    The third storage device
    Managing the time of each asynchronous write request received from the first storage device,
    In the health check, based on the time of the previous asynchronous write request and the time of the previous health check, it is determined whether there is an unprocessed asynchronous write request,
    A storage system that requests the resynchronization request to the first storage device when an unprocessed asynchronous write request remains.
  4.  請求項3に記載のストレージシステムであって、
     前記第3ストレージ装置は、
     外部から前記第3ボリュームに対するリード要求を受信し、
     前回の非同期ライト要求の時刻と前回のヘルスチェックの時刻とに基づいて、未処理の非同期ライト要求の有無を判定し、
     未処理の非同期ライト要求が残っている場合、前記リード要求に対する応答を、次回のヘルスチェックまで待ち、
     前記次回のヘルスチェックにより前記第3ボリュームの更新データを前記第1ストレージ装置から受信した後に、前記リード要求に対するリードデータを前記リード要求の要求元に返す、ストレージシステム。
    The storage system according to claim 3,
    The third storage device
    Receiving a read request for the third volume from the outside;
    Based on the time of the previous asynchronous write request and the time of the previous health check, determine whether there is an outstanding asynchronous write request,
    If an unprocessed asynchronous write request remains, wait for a response to the read request until the next health check,
    A storage system that returns update data of the third volume from the first storage device by the next health check, and then returns read data for the read request to the request source of the read request.
  5.  請求項1に記載のストレージシステムであって、
     前記第2ストレージ装置及び前記第3ストレージ装置は、
     前記第1ストレージ装置の障害に対して、前記第2ボリュームと前記第3ボリュームのデータを再同期し、
     前記第2ボリューム及び前記第3ボリュームにより同期コピーペアを構成する、ストレージシステム。
    The storage system according to claim 1,
    The second storage device and the third storage device are:
    Resynchronizing the data of the second volume and the third volume in response to the failure of the first storage device,
    A storage system that forms a synchronous copy pair by the second volume and the third volume.
  6.  請求項5に記載のストレージシステムであって、
     前記クオラムディスクは、前記第1ボリューム、前記第2ボリューム、及び前記第3ボリュームそれぞれの最終更新時刻を管理する、最終更新時刻管理情報を保持し、
     前記第1ストレージ装置は、前記最終更新時刻管理情報を管理し、前記クオラムディスクを使用したヘルスチェックにおいて前記最終更新時刻管理情報を更新し、
     前記第2ストレージ装置及び前記第3ストレージ装置は、前記最終更新時刻管理情報に基づき、前記再同期を実行する、ストレージシステム。
    The storage system according to claim 5,
    The quorum disk holds final update time management information for managing the last update time of each of the first volume, the second volume, and the third volume;
    The first storage device manages the last update time management information, updates the last update time management information in a health check using the quorum disk,
    The storage system, wherein the second storage device and the third storage device execute the resynchronization based on the last update time management information.
  7.  請求項1に記載のストレージシステムであって、
     前記クオラムディスクは、前記第1ボリューム、前記第2ボリューム、及び前記第3ボリュームそれぞれの最終更新時刻を管理する、最終更新時刻管理情報を保持し、
     前記第1ストレージ装置は、前記最終更新時刻管理情報を管理し、前記クオラムディスクを使用したヘルスチェックにおいて前記最終更新時刻管理情報を更新し、
     前記第1ストレージ装置は、前記第1ボリュームと前記第3ボリュームのデータが異なり、前記最終更新時刻管理情報が示す前記第3ボリュームの前回更新時刻からの経過時間が規定値を超えている場合、前記第3ストレージ装置に、前記第3ボリュームと前記第1ボリュームの再同期を指示する、ストレージシステム。
    The storage system according to claim 1,
    The quorum disk holds final update time management information for managing the last update time of each of the first volume, the second volume, and the third volume;
    The first storage device manages the last update time management information, updates the last update time management information in a health check using the quorum disk,
    In the first storage device, when the data of the first volume and the third volume are different and the elapsed time from the last update time of the third volume indicated by the last update time management information exceeds a prescribed value, A storage system that instructs the third storage device to resynchronize the third volume and the first volume.
  8.  ストレージシステムの制御方法であって、
     前記ストレージシステムは、
     第1ボリュームを含む第1ストレージ装置と、
     前記第1ボリュームとコピーペアを構成する第2ボリュームを含む、第2ストレージ装置と、
     前記第1ボリュームとコピーペアを構成する第3ボリュームを含む、第3ストレージ装置と、
     クオラムディスクと、を含み、
     前記第1ボリューム、前記第2ボリューム及び前記第3ボリュームは、外部からアクセスされる一つの仮想ボリュームに関連づけられ、
     前記第1ストレージ装置、前記第2ストレージ装置、及び前記第3ストレージ装置は、それぞれ、前記仮想ボリュームに対する外部からのアクセスを受け付け、
     前記方法は、
     前記第1ストレージ装置が、ホストからの前記仮想ボリュームへのライト要求に対して、ライトデータを前記第1ボリュームにライトし、
     前記第2ストレージ装置が、前記第1ボリュームへの前記ライトデータのライトの後に、前記ライトデータを前記第2ボリュームにライトし、
     前記第2ボリュームへの前記ライトデータのライトの後に、前記ホストに前記ライト要求のライト完了応答を返し、
     前記第1ストレージ装置が、前記ライト要求に応じて、前記第3ストレージ装置に前記第3ボリュームに対する非同期ライト要求を送信し、
     前記第3ストレージ装置が、予め設定されたタイミングで前記クオラムディスクへアクセスして、前記第1ストレージ装置及び前記第2ストレージ装置のヘルスチェックを実行し、
     前記第3ストレージ装置が、前記非同期ライト要求を受信した後のヘルスチェックの結果が、前記第1ストレージ装置との正常通信が可能であることを示す場合に、前記第3ボリュームと前記第1ボリュームの再同期を、前記第1ストレージ装置に要求する、ことを含む、方法。
    A storage system control method comprising:
    The storage system
    A first storage device including a first volume;
    A second storage device including a second volume constituting a copy pair with the first volume;
    A third storage device including a third volume constituting a copy pair with the first volume;
    Including a quorum disk,
    The first volume, the second volume, and the third volume are associated with one virtual volume accessed from the outside,
    The first storage device, the second storage device, and the third storage device each accept external access to the virtual volume,
    The method
    In response to a write request from the host to the virtual volume, the first storage device writes write data to the first volume,
    The second storage device writes the write data to the second volume after writing the write data to the first volume;
    After writing the write data to the second volume, a write completion response of the write request is returned to the host,
    In response to the write request, the first storage device transmits an asynchronous write request for the third volume to the third storage device,
    The third storage device accesses the quorum disk at a preset timing, and executes a health check of the first storage device and the second storage device;
    When the third storage device indicates that the health check result after receiving the asynchronous write request indicates that normal communication with the first storage device is possible, the third volume and the first volume Requesting the first storage device to re-synchronize.
  9.  請求項8に記載の方法であって、
     前記クオラムディスクによるチェックの前記結果が、前記第1ストレージ装置との正常通信が不可能であり、前記第2ストレージ装置との正常通信が不可能であることを示す場合に、前記第3ストレージ装置が、前記第3ボリュームと前記第2ボリュームの再同期を、前記第2ストレージ装置に要求する、方法。
    The method according to claim 8, comprising:
    When the result of the check by the quorum disk indicates that normal communication with the first storage device is impossible and normal communication with the second storage device is impossible, the third storage A method in which an apparatus requests the second storage apparatus to resynchronize the third volume and the second volume.
  10.  請求項8に記載の方法であって、
     前記第3ストレージ装置が、
     前記第1ストレージ装置から受信した非同期ライト要求それぞれの時刻を管理し、
     ヘルスチェックにおいて、前回の非同期ライト要求の時刻と前回のヘルスチェックの時刻とに基づいて、未処理の非同期ライト要求の有無を判定し、
     未処理の非同期ライト要求が残っている場合、前記再同期の要求を、前記第1ストレージ装置に要求する、方法。
    The method according to claim 8, comprising:
    The third storage device is
    Managing the time of each asynchronous write request received from the first storage device,
    In the health check, based on the time of the previous asynchronous write request and the time of the previous health check, it is determined whether there is an unprocessed asynchronous write request,
    A method of requesting the resynchronization request to the first storage device when an unprocessed asynchronous write request remains.
  11.  請求項10に記載の方法であって、
     前記第3ストレージ装置が、
     外部から前記第3ボリュームに対するリード要求を受信し、
     前回の非同期ライト要求の時刻と前回のヘルスチェックの時刻とに基づいて、未処理の非同期ライト要求の有無を判定し、
     未処理の非同期ライト要求が残っている場合、前記リード要求に対する応答を、次回のヘルスチェックまで待ち、
     前記次回のヘルスチェックにより前記第3ボリュームの更新データを前記第1ストレージ装置から受信した後に、前記リード要求に対するリードデータを前記リード要求の要求元に返す、方法。
    The method of claim 10, comprising:
    The third storage device is
    Receiving a read request for the third volume from the outside;
    Based on the time of the previous asynchronous write request and the time of the previous health check, determine whether there is an outstanding asynchronous write request,
    If an unprocessed asynchronous write request remains, wait for a response to the read request until the next health check,
    A method of returning read data corresponding to the read request to a request source of the read request after receiving update data of the third volume from the first storage device by the next health check.
  12.  請求項8に記載の方法であって、
     前記第2ストレージ装置及び前記第3ストレージ装置が、
     前記第1ストレージ装置の障害に対して、前記第2ボリュームと前記第3ボリュームのデータを再同期し、
     前記第2ボリューム及び前記第3ボリュームにより同期コピーペアを構成する、方法。
    The method according to claim 8, comprising:
    The second storage device and the third storage device are:
    Resynchronizing the data of the second volume and the third volume in response to the failure of the first storage device,
    A method of configuring a synchronous copy pair by the second volume and the third volume.
  13.  請求項12に記載の方法であって、
     前記クオラムディスクは、前記第1ボリューム、前記第2ボリューム、及び前記第3ボリュームそれぞれの最終更新時刻を管理する、最終更新時刻管理情報を保持し、
     前記第1ストレージ装置が、前記最終更新時刻管理情報を管理し、前記クオラムディスクを使用したヘルスチェックにおいて前記最終更新時刻管理情報を更新し、
     前記第2ストレージ装置及び前記第3ストレージ装置が、前記最終更新時刻管理情報に基づき、前記再同期を実行する、方法。
    The method of claim 12, comprising:
    The quorum disk holds final update time management information for managing the last update time of each of the first volume, the second volume, and the third volume;
    The first storage device manages the last update time management information, updates the last update time management information in a health check using the quorum disk,
    The method in which the second storage device and the third storage device execute the resynchronization based on the last update time management information.
  14.  請求項8に記載の方法であって、
     前記クオラムディスクは、前記第1ボリューム、前記第2ボリューム、及び前記第3ボリュームそれぞれの最終更新時刻を管理する、最終更新時刻管理情報を保持し、
     前記第1ストレージ装置が、前記最終更新時刻管理情報を管理し、前記クオラムディスクを使用したヘルスチェックにおいて前記最終更新時刻管理情報を更新し、
     前記第1ストレージ装置が、前記第1ボリュームと前記第3ボリュームのデータが異なり、前記最終更新時刻管理情報が示す前記第3ボリュームの前回更新時刻からの経過時間が規定値を超えている場合、前記第3ストレージ装置に、前記第3ボリュームと前記第1ボリュームの再同期を指示する、方法。
    The method according to claim 8, comprising:
    The quorum disk holds final update time management information for managing the last update time of each of the first volume, the second volume, and the third volume;
    The first storage device manages the last update time management information, updates the last update time management information in a health check using the quorum disk,
    When the first storage device has different data in the first volume and the third volume, and the elapsed time from the last update time of the third volume indicated by the last update time management information exceeds a specified value, A method of instructing the third storage device to resynchronize the third volume and the first volume.
PCT/JP2016/071350 2016-07-21 2016-07-21 Storage system WO2018016041A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/071350 WO2018016041A1 (en) 2016-07-21 2016-07-21 Storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/071350 WO2018016041A1 (en) 2016-07-21 2016-07-21 Storage system

Publications (1)

Publication Number Publication Date
WO2018016041A1 true WO2018016041A1 (en) 2018-01-25

Family

ID=60992430

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/071350 WO2018016041A1 (en) 2016-07-21 2016-07-21 Storage system

Country Status (1)

Country Link
WO (1) WO2018016041A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324000A (en) * 2001-01-12 2002-11-08 Hitachi Ltd Virtual volume storage
JP2012504793A (en) * 2009-01-20 2012-02-23 株式会社日立製作所 Storage system and storage system control method
WO2016084231A1 (en) * 2014-11-28 2016-06-02 株式会社日立製作所 Storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324000A (en) * 2001-01-12 2002-11-08 Hitachi Ltd Virtual volume storage
JP2012504793A (en) * 2009-01-20 2012-02-23 株式会社日立製作所 Storage system and storage system control method
WO2016084231A1 (en) * 2014-11-28 2016-06-02 株式会社日立製作所 Storage system

Similar Documents

Publication Publication Date Title
US10621060B2 (en) Storage system and control software deployment method
JP5620614B1 (en) Storage system
US8010485B1 (en) Background movement of data between nodes in a storage cluster
US9098466B2 (en) Switching between mirrored volumes
US8335899B1 (en) Active/active remote synchronous mirroring
US10191685B2 (en) Storage system, storage device, and data transfer method
US8375004B2 (en) Asynchronous remote copy system and storage control method
US8495014B2 (en) Asynchronous remote copy system and storage control method
JP6472508B2 (en) Management computer and resource management method
JP2007140601A (en) Memory control system
US10140035B2 (en) Method for appropriately controlling duplicated volumes in virtual volume subsystems
US9398094B2 (en) Data transfer device
US11579983B2 (en) Snapshot performance optimizations
JP7012010B2 (en) Information processing system and control method of information processing system
US9875059B2 (en) Storage system
US20160371136A1 (en) Storage system
US11567876B2 (en) Resolving cache slot locking conflicts for remote replication
WO2018016041A1 (en) Storage system
US10642788B1 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
US10656867B2 (en) Computer system, data management method, and data management program
US9952805B2 (en) Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails
US11366618B2 (en) All flash array server and control method thereof
JP6013420B2 (en) Storage system
JP6606235B1 (en) Storage system
WO2014115184A1 (en) Storage system and control method for storage system

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP