WO2017064770A1 - ストレージシステムおよびストレージシステムの制御方法 - Google Patents

ストレージシステムおよびストレージシステムの制御方法 Download PDF

Info

Publication number
WO2017064770A1
WO2017064770A1 PCT/JP2015/079051 JP2015079051W WO2017064770A1 WO 2017064770 A1 WO2017064770 A1 WO 2017064770A1 JP 2015079051 W JP2015079051 W JP 2015079051W WO 2017064770 A1 WO2017064770 A1 WO 2017064770A1
Authority
WO
WIPO (PCT)
Prior art keywords
journal
volume
storage device
data
storage
Prior art date
Application number
PCT/JP2015/079051
Other languages
English (en)
French (fr)
Inventor
里山 愛
智大 川口
弘志 那須
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US15/751,052 priority Critical patent/US10747624B2/en
Priority to CN201580082646.1A priority patent/CN107924353B/zh
Priority to PCT/JP2015/079051 priority patent/WO2017064770A1/ja
Publication of WO2017064770A1 publication Critical patent/WO2017064770A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes

Definitions

  • the present invention relates to a storage system.
  • a method of creating a replica in the storage device housing and a method of backing up the copy to a tape device outside the storage device are taken.
  • a method of creating a replica in the same storage device casing of the former if there is a fault in the casing, it is difficult to recover the work.
  • a remote copy function in which a plurality of storage devices respectively arranged at a plurality of sites multiplex and hold data in preparation for data loss in the event of a disaster such as an earthquake or fire.
  • the remote copy function is synchronized with the write command from the host computer, "synchronous remote copy” in which the storage device transfers the data to the copy destination storage device, and after the completion response to the write command from the host computer, the storage device Can be broadly divided into two types: “asynchronous remote copy” that transfers the data to the copy destination storage device.
  • Synchronous remote copy has the advantage that the data at the copy source and the copy destination are always synchronized. On the other hand, it takes time until the write response from the host computer. It is common to use.
  • Patent Document 1 discloses a technique for performing asynchronous remote copy using a journal.
  • the copy source storage apparatus at the primary site receives a write command, it writes data to the data write volume, writes journal data to the journal volume, and returns a response to the host computer.
  • the copy destination storage apparatus at the secondary site reads journal data from the journal volume of the copy source storage apparatus asynchronously with the write command and stores it in its own journal volume. Then, the copy destination storage apparatus reflects the data on the copy destination data write volume based on the stored journal data.
  • Patent Document 2 synchronous remote copy is performed between the copy source volume at the primary site and the copy destination volume at the secondary site to duplicate the data.
  • a storage system includes a first storage device connected to a host computer and a second storage device connected to the first storage device.
  • the first storage device creates a first data volume and a first journal volume in the first storage device, the first storage device provides the first data volume to the host computer, and the second storage device
  • the storage device creates a second data volume and a second journal volume in the second storage device, and the first storage device creates a journal indicating the update in response to the update of the first data volume.
  • the first storage device and the second storage device transfer the journal in the first journal volume to the second storage device, and the second storage device transfers the transferred data to the second storage device.
  • the device reads the journals in the second journal volume in the order of update, the second storage device reflects the read journal to the second data volume, and the first storage device When the second storage device detects the marker from the read journal, it creates a snapshot of the second data volume. create.
  • a backup at a specific point in time for the volume can be created at another site while suppressing the response time of the volume update.
  • FIG. 1 shows a hardware configuration of a storage system according to an embodiment.
  • the layer structure of a storage area is shown.
  • the control information and control program stored in the shared memory are shown.
  • An overview of journaling is shown. Shows details of journaling.
  • Deduplication processing is shown.
  • the relationship between RCSVOL and SSVOL when creating a snapshot is shown.
  • a modification of the relationship between RCSVOL and SSVOL at the time of creating a snapshot is shown.
  • the relationship between RCSVOL and SSVOL after snapshot creation is shown.
  • An overview of the first restoration process is shown. Details of the operation of the storage apparatus 30B in the first restoration process will be described.
  • the second restoration process is shown.
  • An RCPVOL creation process is shown.
  • the RCSVOL creation process is shown.
  • the RCPVOL side journal VOL creation processing is shown.
  • a snapshot volume creation process is shown.
  • xxx table information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure.
  • xxx information information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of the two or more tables may be a single table. Good.
  • an ID is used as element identification information, but other types of identification information may be used instead of or in addition thereto.
  • a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used.
  • an ID assigned to the element may be used instead of the reference code.
  • an I / O (Input / Output) request is a write request or a read request, and may be called an access request.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor.
  • the process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • the program distribution server may include a processor (for example, a CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • a processor for example, a CPU
  • the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • the management system may include one or more computers.
  • the management computer displays information (specifically, for example, the management computer displays information on its own display device, or the management computer displays display information in a remote display computer)
  • Management computer is the management system.
  • the plurality of computers may include a display computer when the display computer performs display
  • the management computer (eg, management system) may include an interface device connected to the I / O system including the display system, a storage resource (eg, memory), and a processor connected to the interface device and the storage resource.
  • the display system may be a display device included in the management computer or a display computer connected to the management computer.
  • the I / O system may be an I / O device (for example, a keyboard and a pointing device or a touch panel) included in the management computer, a display computer connected to the management computer, or another computer.
  • “Displaying display information” by the management computer means displaying the display information on the display system, which may be displaying the display information on a display device included in the management computer.
  • the management computer may transmit display information to the display computer (in the latter case, the display information is displayed by the display computer).
  • the management computer inputting / outputting information may be inputting / outputting information to / from an I / O device of the management computer, or a remote computer connected to the management computer (for example, a display) Information may be input / output to / from the computer.
  • the information output may be a display of information.
  • Read processing may be described as read processing.
  • the write process may be described as a write process or an update process. These may be collectively referred to as access processing.
  • FIG. 1 shows the hardware configuration of the storage system of the embodiment.
  • a primary site 100A and a secondary site 100B there are two or more sites, for example, a primary site 100A and a secondary site 100B, for configuring a remote copy.
  • the reference code of the element that the primary site 100A has is a combination of the parent number and the child code “A”
  • the reference code of the element that the secondary site 100B has is the parent number and the child code “ B ”.
  • the parent number is used as the reference code.
  • the primary site and secondary site in a remote copy configuration are often constructed using the same type of storage device, but this example is intended to provide a backup solution.
  • the remote copy function is used as one of the means. Therefore, it is not necessary to prepare the same storage device model for the remote copy configuration. Further, the host computer may not exist on the secondary site 100B side.
  • the primary site 100A includes a host computer 10 and a storage device 30A.
  • the secondary site 100B includes a storage device 30B.
  • the storage device 30A and the storage device 30B are connected to each other.
  • the host computer 10 accesses a logical storage area of the storage device 30.
  • the storage device 30 stores data in a storage area set in the physical storage device 34.
  • a plurality of host computers 10 may be provided.
  • the storage device 30 can also be called a storage system or a storage subsystem.
  • a management apparatus connected to the storage apparatuses 30A and 30B via the management network 108 may be provided.
  • the management apparatus manages the configuration of the storage area of the storage apparatus 30 and includes, for example, an input device, an output device, a CPU, a memory, a network adapter, and a storage device.
  • the primary site 100A and the secondary site 100B execute remote copy.
  • remote copy is a technique for copying data stored in a storage device to another storage device.
  • the storage source is called a primary site, a primary site, or a local site
  • a destination for storing a copy is called a secondary site, a secondary site, or a remote site.
  • the host computer 10 includes, for example, an input device, an output device, a CPU, a memory, a disk adapter, a network adapter, and a storage device (not shown).
  • an application program used by the user and a storage device control program for performing interface control with the storage device are executed by the CPU in the host computer 10.
  • the host computer 10 is a workstation, a personal computer, a mainframe, or the like.
  • the storage apparatus 30 includes a controller 31, at least one cache memory 32, at least one shared memory 33, and a physical storage device 34. In this embodiment, these hardware are made redundant.
  • the controller 31 includes at least a processor 176.
  • the controller 31 further includes a host adapter 171, a network adapter 172, a remote copy (RC) adapter 175, a storage adapter 177, and a shared memory adapter 178. ing.
  • the host adapter 171 transmits / receives data to / from the host computer 10 via the storage network 121.
  • the network adapter 172 transmits / receives data (management information) necessary for system management to the host computer 10 (or with the management apparatus) via the management network 108.
  • the processor 176 reads the program stored in the non-volatile memory or the like into the shared memory 33, and executes the processing specified in the program. Further, the processor 176 executes input / output processing to the physical storage device 34 based on an access request from the host computer 10.
  • the storage adapter 177 transmits / receives data to / from the physical storage device 34 and the cache memory 32.
  • the shared memory adapter 178 transmits / receives data to / from the shared memory 33.
  • the cache memory 32 is, for example, a RAM (Random Access Memory), and temporarily stores data to be read from and written to the physical storage device 34.
  • RAM Random Access Memory
  • the shared memory 33 is a hard disk, a flash memory, a RAM, or the like, and stores a program operating on the controller 31, configuration information, and the like.
  • the cache memory 32 and the shared memory 33 may be provided inside the controller 31.
  • the physical storage device 34 includes a plurality of storage devices.
  • the storage device is a hard disk drive, for example, and mainly stores user data.
  • the storage device may be a drive including a semiconductor memory such as a flash memory.
  • the storage device configures a RAID group based on a RAID (Redundant Array of Independent Disks) configuration.
  • RAID Redundant Array of Independent Disks
  • one or more logical storage areas are created based on the RAID group.
  • the logical volume is associated with a physical storage area that the physical storage device 34 has. These logical volumes are used as a data volume such as PVOL and SVOL, and a journal volume 267, as specified by the user.
  • the data volume of the storage device 30A on the primary site 100A side that is the copy source of data replication will be referred to as “PVOL (primary volume, primary volume)” or “RCPVOL”.
  • the data volume of the secondary storage device 30B, which is the replication destination of the data stored in the PVOL is referred to as “SVOL (secondary volume, secondary (S) volume)” or “RCSVOL”.
  • the primary site 100A and the secondary site 100B may have the same or different hardware configuration, hardware performance, and number.
  • the storage device 30A of the primary site 100A and the storage device 30B of the secondary site 100B are connected via a communication line to constitute a remote copy.
  • the remote copy adapter 175 is connected to another storage device 30 via the inter-storage device network 160.
  • the inter-storage device network 160 is often a global network such as a public line from the viewpoint of disaster recovery. However, if the storage devices are in the same room, in the same building, or in a neighboring building, the local network is used. It may be. However, the present invention is not limited by such a network configuration.
  • the remote copy is an asynchronous remote copy.
  • another network adapter may be provided and the external storage device may be connected to the storage device 30 via the second network.
  • a storage area network (SAN: Storage Area Network) can be used as the second network.
  • the external storage device may be equivalent to the storage device 30 or an optical disk library.
  • the external storage device is not directly connected to the host computer 10 via the network, and is accessed via the storage device 30.
  • the external storage device is not recognized from the host computer 10.
  • the storage area of the external storage apparatus is virtualized as the storage area of the storage apparatus 30 and provided to the host computer 10.
  • an enterprise storage device is a product that requires high performance and high reliability, and includes a high-performance program such as an asynchronous remote copy function, a snapshot function, and a deduplication function (Deduplication).
  • the storage system of this embodiment constructs a backup solution between the storage apparatuses 30A and 30B having these functions.
  • the storage system constructs a remote copy configuration between sites, and when the access request is received at the remote copy primary site 100A and the data is updated, the updated difference is transferred to the secondary site 100B.
  • the storage apparatus 30B creates a full backup image at high speed by acquiring a snapshot from the remote copy volume on the secondary site 100B side.
  • the snapshot is a function for acquiring snapshot data of data in the storage device 30.
  • snapshot data acquisition An example of snapshot data acquisition will be described.
  • the storage apparatus 30B creates a pair in which the logical volume is a primary volume and the virtual volume is a secondary volume. When this snapshot pair is divided (still), snapshot data is acquired.
  • the storage device 30B copies only the updated data to the pool as the pre-update snapshot data. Further, the storage apparatus 30B may store the pre-update snapshot data in a deduplicated manner when storing the data in the pool.
  • the storage system restores the consistency data of the remote copy volume and the snapshot from the secondary site 100B to the primary site 100A at high speed as restore processing.
  • FIG. 2 shows the layer structure of the storage area.
  • the RAID group 308 is a plurality of PDEVs 34 of the same type and the same communication interface, and includes a stripe row 307 straddling the plurality of PDEVs 34.
  • the EDEV 305 is an abbreviation for an external device, and is a logical storage device based on storage resources in an external storage apparatus (not shown).
  • the storage resource in the external storage device is, for example, a RAID group or a VOL.
  • the VDEV 303 is located above the RAID group 308 and the EDEV 305.
  • the VDEV 303 is a virtual storage resource based on the RAID group 308 or EDEV 305.
  • a plurality of LDEVs 306 are formed in the VDEV 303.
  • the VDEV 303 may be one LDEV 306.
  • a VDEV based on the RAID group 308 may be referred to as a “first type VDEV”
  • a VDEV based on the EDEV 305 may be referred to as a “second type VDEV”.
  • the pool 125 includes a plurality of pool VOLs 61.
  • the pool VOL 61 is associated with one of the LDEVs. Since the pool VOL 61 is an offline VOL, it is not associated with the target device specified by the host computer 10.
  • the pool VOL 61 is associated with the LDEV in the first type VDEV or the LDEV in the second type VDEV.
  • the pool VOL 61 includes a plurality of real pages 161. In the present embodiment, the real page 161 and the stripe row 307 have a one-to-one correspondence. Data stored in the real page 161 is stored in the stripe column 307 corresponding to the real page 161. A plurality of stripe columns 307 may correspond to one real page 161.
  • the TPVOL 312 may not be assigned an LDEV.
  • the RVOL 311 is a VOL based on the LDEV (# 01) in the first type VDEV (# 0).
  • the TPVOL 312 is a virtual VOL that is not based on the VDEV 303.
  • the target device 402 is above the online VOL.
  • One or more target devices 402 are associated with the communication port 403 of the host adapter 171.
  • An online VOL is associated with the target device 402.
  • a free page in the pool 125 associated with the TPVOL 312 is assigned to the virtual page 142 of the TPVOL 312.
  • the host computer 10 transmits an I / O command (write command or read command) designating the target device to the storage device 30A.
  • the RVOL 311 or the TPVOL 312 is associated with the target device.
  • the storage apparatus 30A receives a write command specifying the target device associated with the TPVOL 312, the storage apparatus 30A selects an empty page 264 from the pool 125, and selects the selected page as a write destination virtual page (specified by the write command). Assigned page) 142.
  • the storage apparatus 30A writes the write target data to the allocated page 264.
  • Writing data to the page 264 means writing data to the LDEV # 02 associated with the pool VOL # 5 having the real page 161 assigned to the page. Since LDEV # 02 is an LDEV in the first type VDEV, the data written to LDEV # 02 is actually written to the stripe column 307 corresponding to the real page 161 in the RAID group 308.
  • TPVOL is called a thin provisioning volume or a capacity virtualization volume.
  • FIG. 3 shows control information and a control program stored in the shared memory.
  • journal volume management information 401 In the shared memory 33, journal volume management information 401, consistency group management information 502, data volume management information 501, SVOL write difference bitmap 250, and journal registration completion bitmap 240 are stored as control information.
  • the shared memory 33 further includes a remote copy control program 260, an IO processing program 261, a snapshot control program 262, a journal processing management program 221, a journal transfer program 222, a journal processing acquisition program 223, a journal reflection program 224, as control programs.
  • a deduplication program 225 is stored.
  • a program (not shown) may be stored in the shared memory 33.
  • the deduplication program 225 may not be present.
  • the remote copy control program 260 performs construction of a remote copy configuration, formation of a remote copy pair, control of copy operation from the primary site 100A to the secondary site 100B, and the like.
  • the IO processing program 261 controls read / write processing to the data volume in response to an access request from the host computer 10.
  • the journal processing management program 221 manages journal processing (including journal acquisition processing, journal transfer processing, and journal reflection processing) executed by each storage device 30. Further, during journal processing, communication is performed between the journal processing management programs 221 at any time, and management information necessary for journal processing is exchanged.
  • the journal acquisition program 223 and the journal reflection program 224 are programs for causing the processor 176 to execute journal acquisition and journal reflection. There may be one program including the journal acquisition program 223 and the journal reflection program 224.
  • journal is update history information and includes a copy of data used for updating (journal data) and journal metadata which is management data of the journal data.
  • Updating the data volume based on the update history information described above indicates updating to the latest data using a journal.
  • Other expressions may include data reflection, journal reflection (journal reflection operation), journal restoration, and the like.
  • a differential bitmap such as the SVOL write differential bitmap 250
  • data in an area having a predetermined data size is associated with each bit in the bitmap. For example, when 64 KB data is associated with 1 bit, and 1B in 64 KB is updated, the bit is set to “1” so that the contents are reflected in the copy destination.
  • Other bitmaps have the same configuration as the difference bitmap.
  • the journal registration completion bitmap 240 is a bitmap indicating an area in which a journal is registered in the journal volume among areas in the data volume.
  • data transmission by remote copy there is a write request from the host computer 10 to the storage apparatus 30A that is the remote copy source, and thereafter, data is transmitted from the storage apparatus 30A to the storage apparatus 30B asynchronously with the write request.
  • the storage device 30A when there is a data write request from the host computer 10 to the storage device 30A, the storage device 30A returns a write completion signal to the host computer 10 and temporarily stores the data. Thereafter, at a predetermined timing, the storage apparatus 30A transmits data to the storage apparatus 30B in the order of write requests from the host computer 10 in principle.
  • the order in which the storage apparatus 30B receives data does not necessarily match the write request order of the host computer 10 depending on the communication status of each communication line.
  • a sequence number serial number
  • the data can be rearranged on the storage device 30B side in the original order.
  • the data up to the place where the young sequence numbers are aligned is reflected in the storage device 30B, so that the data transmission order on the transmitting side can be matched.
  • the data in the storage device 30B is data at a certain time in the storage device 30A is called “consistent”. For example, when database data is stored in a volume, there is a possibility that a volume for storing log data and a volume for storing table data may be divided into separate volumes. If the data of the plurality of volumes are data at different times in the storage device 30A, the database may not be started normally even if the data of the storage device 30B is used. In order to ensure consistency by combining multiple data, create a group of volumes. This is called a consistency group.
  • FIG. 4 shows remote copy pair volume management information.
  • the remote copy pair volume management information 301 is information for managing remote copy pairs.
  • the remote copy pair volume management information 301 is information held for each remote copy pair volume, and is stored at least on the storage device 30A side.
  • the remote copy pair volume management information 301 includes a remote copy pair ID (RC pair ID) 340 for identifying a remote copy pair, RCPVOL information 310 that is a copy source of remote copy data, and RCSVOL information 320 that is a copy destination of remote copy data. , And pair information 330 indicating the pair status.
  • RC pair ID remote copy pair ID
  • RCPVOL information 310 that is a copy source of remote copy data
  • RCSVOL information 320 that is a copy destination of remote copy data.
  • pair information 330 indicating the pair status.
  • RCPVOL indicates the PVOL that is the copy source of the remote copy.
  • the RCPVOL information 310 includes a storage device ID 311 and a volume ID 312.
  • RCSVOL indicates the SVOL that is the copy destination of the remote copy.
  • the RCSVOL information 320 includes a storage device ID 321 and a volume ID 322.
  • Storage device ID 311 and storage device ID 321 are identifiers of each storage device 30 in which the volume exists.
  • the volume IDs 312 and 322 are identifiers of the volume in each storage apparatus 30. Each of these IDs uniquely determines the volume.
  • the pair information 330 includes a pair status 332 and a difference bitmap 334.
  • the pair status 332 indicates one of “PAIR” being formed copy, “COPY” being differential copy, and “SUSPEND” being suspended because the copy process is stopped due to volume or path blockage or the like. It represents.
  • a formation copy is a copy of the entire volume.
  • the differential copy is a differential copy of the volume.
  • the volume on the transmission side and the reception side is divided into a plurality of areas using the difference bitmap. Then, when data is updated in a certain area of the volume on the transmission side, the transmission side creates a journal of the updated data. Thereafter, the transmission side transmits a journal of only the rewritten area to the reception side.
  • This is called differential copy.
  • the differential copy has an advantage that the transmission amount can be reduced as compared with the normal copy when there are many rewrites to the same area.
  • the difference bitmap 334 is bitmap information indicating an area where there is a difference between the data of RCPVOL and RCSVOL when the above-described difference copy is used, that is, an area that has been rewritten in RCPVOL.
  • the differential bit indicating the updated area is turned ON ('1').
  • the operation of calculating the logical sum of the difference bitmap 334 of RCPVOL and the difference bitmap of RCSVOL is an operation necessary when the RCSVOL is rewritten in the secondary site 100B regardless of the primary site 100A, Can be omitted if not needed.
  • the storage apparatus 30A sets the differential bit to OFF ('0') for the area where the copy has been completed. When all the differential bits are turned off, the differential copy is completed, indicating that RCPVOL and RCSVOL are synchronized.
  • the storage apparatus 30A can copy all areas of the RCPVOL to the RCSVOL by creating a differential copy by making all of the differential bitmaps 334 ON when creating a volume pair.
  • the storage apparatus 30A receives a write request from the host computer 10 to the RCPVOL and the difference bit of the area to which the write request is made is ON in the difference bitmap 334, this indicates that the formation copy of the area has not ended. Since the data in the area will be copied later by the formation copy, the storage apparatus 30A writes to the RCPVOL and does not create a journal. When the storage apparatus 30A receives a write request to the RCPVOL from the host computer 10 and the difference bit of the area to which the write request is made is OFF in the difference bitmap 334, this indicates that the formation copy of the area has been completed. For this reason, the storage apparatus 30A writes to the RCPVOL, creates a journal for the area in the same manner as the differential copy, and transfers it to the storage apparatus 30B.
  • FIG. 5 shows snapshot pair volume management information
  • the snapshot pair volume management information 351 is the same as the remote copy pair volume management information 301.
  • the pair information 380 is the same as the pair information 330 described above.
  • the pair state 382 and the difference bitmap 384 are the same as the pair state 332 and the difference bitmap 334, respectively.
  • the snapshot PVOL volume ID 360 is used instead of the RCPVOL information 310, and the snapshot SVOL volume ID 370 is used instead of the RCSVOL information 320.
  • the snapshot PVOL is a copy source PVOL of the snapshot, and is RCPSVOL in this embodiment.
  • the snapshot SVOL is a snapshot copy destination SVOL, and is called SSVOL in this embodiment.
  • the snapshot pair volume management information 351 may include a pool ID corresponding to the SSVOL.
  • the snapshot SVOL volume ID may or may not be set in the snapshot pair volume management information 351.
  • the storage apparatus 30B manages only the address of the area for storing data in the snapshot pool in association with the RCSVOL that is the snapshot PVOL as the information of the snapshot copy destination. For example, if the snapshot PVOL manages data for each page, and the pages are represented by # 0 to # 100, the snapshot pair volume management information 351 includes data on the snapshot PVOL side for each page. And the address information of the snapshot pool storing the data on the snapshot SVOL side for each snapshot pair ID (or generation) are managed in association with each other.
  • SSVOL since SSVOL does not have a volume ID, even if the number of snapshot generations increases, it is not necessary to consume the volume ID. There is a predetermined upper limit for the volume ID, and if it exceeds this, it will be necessary to reset the setting, and the operational load will increase. Further, since the management information increases as the volume ID increases, it is necessary to secure an amount of memory for storing the management information. This method is effective in increasing the number of generations in which snapshots can be acquired without consuming a volume ID.
  • the data stored in each volume of the snapshot pair is synchronized, and the data stored in each volume is in the same state as the “PAIR” status or the snapshot pair.
  • the storage apparatus 30B changes, for example, a pair that was in the PAIR state to the SPLIT state at a specific time. At this time, data stored at a specific time is stored in SSVOL. Such processing is referred to as “taking a snapshot”. Thereafter, the host computer 10 reads the data from the SSVOL and writes it to another storage device (for example, a tape device), so that the data stored at the time when the snapshot was taken can be backed up. Note that the storage apparatus 30B may store the SSVOL itself after taking a snapshot as a data backup.
  • the storage device 30B may use a snapshot group that is a collection of a plurality of pairs of snapshots. In this case, the storage apparatus 30B can perform the same operation on a plurality of pairs in the snapshot group.
  • FIG. 6 shows consistency group management information
  • the consistency group management information 502 is information for managing the consistency group.
  • the consistency group management information 502 is stored at least in the storage device 30A.
  • Consistency group management information 502 includes consistency group ID 511, pair status 512, latest sequence number 530, untransferred sequence number 540, formalized sequence number 550, pair volume information 560, primary side (P) journal volume information 570. And secondary side (S) journal volume information 580 is included.
  • the data received from the host computer 10 to the primary side (P) volume in the consistency group has the write request order in the consistency group, and the remote copy pair of each primary side (P) volume.
  • To the secondary side (S) volume In order to maintain the write order, a sequence number 610 described later is assigned to each remote copy data.
  • the remote copy data up to the point where the sequence numbers 610 are aligned can be reflected in the RCSVOL 266.
  • Remote copy data from which the young sequence number 610 is missing is not reflected.
  • the process of reflecting the remote copy data determined to be reflected by the storage apparatus 30B may be referred to as “formalization”.
  • the consistency group ID 511 is an identifier that uniquely determines the consistency group.
  • the pair status 512 is “PAIR” in which all pair volumes in the consistency group are in a replication state, “COPY” in which one or more pair volumes in the consistency group are being differentially copied, and in the consistency group All pair volumes in the suspend state (consistent in the consistency group) “SUSPEND”, one or more pair volumes in the consistency group are in the suspended state (in the consistency group And inconsistent state) represents one of the states “SUSPEND-E”.
  • the latest sequence number 530 is the most recently assigned number among the sequence numbers 610 assigned to the remote copy data of the consistency group in the storage apparatus 30A.
  • the untransferred sequence number 540 is the oldest sequence number 610 among the sequence numbers 610 of remote copy data that has not been transferred from the storage device 30A to the storage device 30B.
  • the storage apparatus 30A sequentially transfers the remote copy data having the old sequence number 610 among the untransferred remote copy data.
  • the formalized sequence number 550 is the latest sequence number 610 among the sequence numbers 610 of the remote copy data that has been formalized in the storage apparatus 30B.
  • the pair volume information 560 includes remote copy pair volume management information 301 for each pair included in the consistency group.
  • the primary-side journal volume information 570 includes the storage device ID 571 for the primary site 100A side, and indicates the journal volume management information 401 of each journal volume included in the consistency group.
  • the secondary side journal volume information 580 includes the storage device ID 581 for the secondary site 100B side, and indicates the journal volume management information 401 of each journal volume included in the consistency group.
  • the storage device IDs 571 and 581 are identifiers of the respective storage devices 30 including the journal volume.
  • Fig. 7 shows remote copy data.
  • Remote copy data 601 is data transferred from the storage device 30A to the storage device 30B.
  • the remote copy data 601 includes a consistency group ID 511, a sequence number 610, a time stamp 620, and copy data information 630.
  • the consistency group ID 511 identifies the consistency group as described above. As described above, the sequence number 610 is a serial number assigned to maintain the write order within the consistency group.
  • the time stamp 620 is information indicating the time when the data write request is received from the host computer 10 in the storage apparatus 30A.
  • the time stamp 620 is used to know at which time the data in the storage device 30B is stored in the storage device 30A.
  • the copy data information 630 includes a storage data volume ID 631, a data storage address 632, a data length 633, and data 634 for each copy data.
  • the stored data volume ID 631 is an identifier indicating RCSVOL in the storage apparatus 30B.
  • the data storage address 632 indicates a place where write data is written in the RCSVOL.
  • the data length 633 indicates the size of the write data.
  • Data 634 is a copy of data written to RCPVOL, and RCSVOL is also write-updated in the same manner as RCPVOL.
  • the copy data may be one or more.
  • the copy data may be one or more.
  • the remote copy data 601 is created by collecting the write requests received by the storage apparatus 30A from the host computer 10 within a certain time interval (for example, every 10 seconds), the copy data becomes plural.
  • the copy data may be the same as the write data from the host computer 10.
  • the storage device 30A may store an area updated from the host computer 10 as a difference, and use the data in the difference area as copy data.
  • the copy data amount can be reduced if the data in the difference area is set as copy data.
  • FIG. 8 shows journal volume management information
  • Journal volume management information 401 is information for managing a volume (journal volume) that stores a remote copy journal.
  • the journal and journal data are update histories of data stored in the storage device 30A. For example, the write request time is added to the remote copy data.
  • the journal volume management information 401 is information for each journal volume, and is stored in the shared memory 33A of the storage device 30A and the shared memory 33A of the storage device 30B.
  • the journal volume management information 401 includes a storage device ID 410, a volume ID 420, and journal information 430.
  • the storage device ID 410 identifies each storage device 30, and the volume ID 420 identifies a journal volume within each storage device 30.
  • the journal volume management information 401 may include a pool ID of a pool corresponding to the journal volume.
  • the journal information 430 includes a sequence number 431 and a journal metadata pointer 432 for each journal stored in the journal volume.
  • the journal metadata pointer 432 is a pointer indicating the location of journal metadata. Details of the sequence number 431 and journal metadata will be described later.
  • FIG. 9 shows data volume management information.
  • the data volume management information 501 is information for managing the data volume.
  • the volume ID 510 for identifying the data volume in the storage device 30, the volume attribute 530 of the data volume, the pool ID 524 corresponding to the data volume, The size 536 of the data volume and pair volume information 520 that is information on the data volume paired with the data volume are included.
  • the pair volume information 520 includes a storage device ID 521 that is an identifier of the storage device in which the pair volume exists, a data volume ID 522 that identifies the pair volume, and a pair state 523 that indicates the state of the pair.
  • the data volume is uniquely determined by combining the storage device ID 521 and the data volume ID 522.
  • the pool ID 524 stores the identifier of the pool to which the data volume belongs when the data volume is set in the pool.
  • the pool ID 524 is a pool ID of a pool to which a storage area is allocated when data is stored.
  • the size 526 indicates the capacity set for the data volume.
  • the data volume management information 501 manages information such as the physical hard disk number group constituting the data volume, the RAID level constituting the volume from the physical hard disk, the LU number, and the physical port number. To do.
  • FIG. 10 shows the relationship between journal data and journal metadata.
  • journal includes journal data 821 that is a copy of data and journal metadata 701 that is management information of the journal data.
  • each of RCPVOL 265, RCSVOL 266, and journal volumes 267A, 267B is managed in units of a predetermined logical block (for example, 512 KB).
  • a logical block address is assigned to each logical block.
  • the journal volume 267A of the primary site 100A has a journal metadata area 810A and a journal data area 820A.
  • Journal data area 820A stores journal data 821A, that is, a copy of data 831A written to RCPVOL 265 by a write command.
  • the journal metadata area 810A stores journal metadata 701A related to the journal data 821A.
  • journal volume 267B of the secondary site 100B also has a journal metadata area 810B and a journal data area 820B.
  • the journal metadata area 810B stores journal metadata 701B transferred from the journal metadata area 810A of the journal volume.
  • the journal data area 820B stores journal data 821B transferred from the journal data area 820A of the journal volume 267A.
  • FIG. 11 shows journal metadata
  • Journal metadata 701 is management information for associating data with journal data, and includes data volume information 710 and journal information 720.
  • the data volume information 710 indicates an update time 711 indicating the time when the data was updated, a data volume identifier 712 for identifying the data volume storing the updated data, and a head address on the data volume storing the data.
  • a data storage address 713 is included.
  • the journal information 720 includes a journal data storage address 721 indicating the start address on the journal volume storing journal data, a data length 722 of the journal data, and the journal in the consistency group assigned when the journal is acquired.
  • the journal sequence number 723 which is the serial number is included.
  • the journal metadata 701B has information on data update performed by the RCPVOL 265, and the journal information 720B indicates the address, data length, and sequence number of the corresponding journal data 821B.
  • the storage device 30B reflects the update in the RCPVOL 265 to the RCSVOL 266 by copying the journal data 821B from the journal data area 820B in the journal volume 267B to the address corresponding to the data storage address 713B of the RCSVOL 266. can do.
  • Each address may be represented by a logical block address (Logical Block Address: LBA) on the volume.
  • LBA Logical Block Address
  • the data length may be represented by the number of logical blocks.
  • the location where the data is stored may be represented by a difference (offset) from the base address (first LBA) of the area where the data is stored (journal data area or journal metadata area).
  • first LBA base address
  • journal metadata 701 the data length of the journal metadata 701 is constant (for example, 64 bytes), but the data length of the journal data is not constant because it depends on the data updated by the write command.
  • each storage device 30 sets the journal metadata area 810 and the journal data area 820 for the journal volume 267 to be set. Specifically, the head LBA and the number of blocks of each area are set.
  • the storage device 30 uses the journal volume from the top of the storage area in the order of the sequence number, and when it is used to the end, returns to the top and uses it cyclically.
  • the journal at the primary site 100A is purged at the timing when the journal has been transferred to the secondary site 100B or after reflecting the journal at the secondary site 100B, and the journal area is sequentially released.
  • the journal of the secondary site 100B is purged at the timing when it has been reflected in the RCSVOL 266, and the journal area is sequentially released.
  • the storage device 30 stores the journal in the journal volume, it may be stored in the cache memory 32, a dedicated hard disk, flash memory, RAM, or the like.
  • a GUI Graphic User Interface
  • the maintenance terminal or management device connected to the host computer 10 or the storage device 30 issues a pair creation command to the storage device 30 and becomes a copy source storage device 30A.
  • a remote copy configuration is constructed by associating the RCPVOL 265 included in the RCPVOL 265 and the RCSVOL 266 included in the storage apparatus 30B as the copy destination of the data stored in the RCPVOL 265 as a pair.
  • the storage apparatus 30 uses each journal processing management program 221 to allocate journal volumes for storing journals corresponding to RCPVOL 265 and RCSVOL 266, and forms a consistency group (data volume pair and journal volume pair). .
  • a formation copy process for copying data from RCPVOL 265 to RCSVOL 266 is executed.
  • the data is transferred from the volume head area of RCPVOL 265 to the end.
  • Fig. 12 shows an overview of journal processing.
  • journal processing when access is accepted by the storage device 30A of the primary site 100A during normal operation.
  • Storage devices 30A and 30B each execute journal processing management program 221 to control journal processing.
  • journal acquisition program 223A By executing the journal acquisition program 223A, the storage apparatus 30A stores a copy of the data written in the RCPVOL 265 as journal data in the journal volume 267A.
  • the storage device 30A also stores journal metadata in the journal volume 267A as part of the journal. These processes are journal acquisition processes.
  • the journal reflection program 224B reflects data in the RCSVOL 266 based on the journal stored in the journal volume 267B, and reflects the data updated in the RCPVOL 265 in the RCSVOL 266.
  • FIG. 13 shows details of journal processing.
  • the IO processing program 261 when the IO processing program 261 receives a write request from the host computer 10 to the RCPVOL 265 (S1110), it writes the data received from the host computer 10 into the RCPVOL 265.
  • the journal acquisition program 223 creates a journal and stores the created journal in the journal volume 267A (S1112).
  • the journal acquisition program 223 refers to the consistency group management information 502 stored on the shared memory 33 of the storage device 30A, determines the journal storage destination, and sets the next number after the latest sequence number 530 as the sequence number.
  • the journal metadata 701 is created.
  • journal acquisition program 223 creates a journal from journal data that is a copy of the data to be written and the created journal metadata 701, and stores the journal in the journal volume 267B.
  • the storage device 30A makes a write completion response to the host computer 10 when the writing to the storage device 30A is completed.
  • the transfer of the journal from the storage apparatus 30A to the storage apparatus 30B is performed asynchronously with the write request.
  • the storage device 30B acquires the journal information of the storage device 30A at a predetermined timing, such as at regular intervals.
  • the journal processing management program 221B transmits a request for acquiring information relating to the journal creation status from the storage apparatus 30A to the storage apparatus 30A (S1114).
  • the information regarding the journal creation status is, for example, the capacity of the journal in the journal volume, the oldest time of the journal, and the like.
  • the journal processing management program 221A transfers information related to the journal creation status to the storage device 30B according to the request (S1115).
  • the journal processing management program 221B uses this acquired information to create a journal transfer request.
  • journal processing management program 221B when a journal transfer instruction is generated in accordance with an instruction input from the user via the GUI or according to a predetermined schedule, the journal processing management program 221B sends a journal transfer to the journal transfer program 222A of the storage device 30A.
  • a request is issued (S1116).
  • the schedule is, for example, when a fixed amount of journal is stored in the journal volume 267A in the storage device 30A, or at regular intervals.
  • the journal transfer request includes a journal to be copied (a plurality of journals), a journal volume 267A in which the journal is stored, information specifying the storage device 30A having the journal volume, and a journal in which the copied journal is stored. Information specifying the volume 267B is included.
  • the journal processing management program 221B creates a journal transfer request from information acquired from the consistency group management information 502 on the shared memory 33.
  • the journal transfer program 222B Upon receipt of the journal transfer request, the journal transfer program 222B issues a read command for the journal designated by the journal transfer request to the storage device 30A (S1118). Receiving this read command, the journal processing management program 221A of the storage device 30A transmits the journal specified by the read command to the storage device 30B (S1120). The journal processing management program 221B of the storage device 30B that has received the journal stores the received journal in the journal volume 267B designated by the journal transfer request (S1121).
  • journal processing management program 221B of the storage apparatus 30B issues a journal reflection request to the journal reflection program 224B of the storage apparatus 30B (S1122).
  • the journal reflection program 224B that has received the journal reflection request writes the data of the RCPVOL 265 to the RCSVOL 266 by writing the journal data to the RCSVOL 266 according to the journal sequence number of the journal volume 267B (S1124).
  • the journal reflection program 224B purges the area where the journal used for reflection is stored (S1125). Thereby, the area can be used for storing a new journal.
  • journal reflection program 224B notifies the journal processing management program 221A of the storage apparatus 30A of the sequence number of the journal whose data is reflected in the RCSVOL 266. Thereby, the journal processing management program 221A releases the area of the journal volume 267A of the storage apparatus 30A in which the journal reflected in the RCSVOL 266 is stored (S1126). This area can be used for storing a new journal. It is not necessary to purge the journal immediately after receiving the notification. The journal may be purged periodically or pursuant to an instruction from the user.
  • the response time can be reduced in the access of the RCPVOL 265 by the host computer 10 as compared with the case of performing the synchronous remote copy.
  • the storage device 30A creates a marker in response to the establishment of the snapshot creation condition, and the storage device 30B creates a snapshot of the RCSVOL 266 in response to detection of the marker. 100B can be created. This facilitates recovery using the secondary site 100B when the primary site 100A fails. By setting RCSVOL 266 to TPVOL, the capacity management of RCSVOL 266 and the like are facilitated.
  • the storage device 30A issues a write command for writing data to the storage device 30B instead of waiting for a read command from the storage device 30B as in the above-described journal processing. To transfer the journal.
  • the journal processing management program 221A of the storage device 30A issues a journal transfer request to the journal transfer program 222A instead of S1116.
  • the journal transfer request the journal volume 267A in which the journal to be transmitted to the storage device 30B is stored, the information specifying the storage device 30B, and the information specifying the journal volume 267B in which the storage device 30B stores the journal. Etc. are included.
  • the journal processing management program 221A acquires these pieces of information from the consistency group management information 502A stored on the shared memory 33.
  • the journal transfer program 222A Upon receiving the journal transfer request, the journal transfer program 222A issues a write command to the storage device 30B instead of S1118, thereby transmitting the designated journal to the storage device 30B.
  • the storage device 30B stores the journal received as a write command from the storage device 30A in the area of the journal volume 267B specified by the command.
  • a method of storing a journal there are a method of storing a journal in a physical volume, a method of creating a journal volume with a thin provisioning volume, and storing a journal in a pool 268.
  • Storage device 30B sets RCSVOL 266 and journal volume 267B as capacity virtualization (thin provisioning) volumes.
  • the storage device 30B stores the remote copy data transferred from the storage device 30A in the remote copy pool. Specifically, the storage device 30B stores the journal transferred from the storage device 30A in the pool 268B.
  • the storage device 30B obtains the update target page in the RCSVOL 266 from the journal metadata. If data has already been stored in the update target page, the storage apparatus 30B overwrites the update target page with data. If no data is stored in the update target page, the storage apparatus 30B stores the address of the page in the pool 268B in which the journal data is stored in the data storage address for managing the update target page.
  • the storage apparatus 30B can allocate the page in the pool 268B to the RCSVOL 266 by mapping conversion as described above.
  • the RCPVOL 265 on the storage device 30A side may be a capacity virtualized volume.
  • the deduplication program 225 of the storage device 30B may perform deduplication processing on the journal transferred from the storage device 30A.
  • FIG. 14 shows the deduplication processing.
  • the deduplication program 225 determines whether the journal data in the journal transferred from the storage device 30A to the storage device 30B is the same as the journal data stored in the pool 268B (before being reflected in the RCSVOL 266). To do. If it is determined that they are the same, the deduplication program 225 corresponds the value of the journal data storage address 721B in the journal metadata 701B corresponding to the journal data 821B stored in the pool 268B to the transferred journal data. To be stored in the journal data storage address 721Bb in the journal metadata 701Bb to be stored. In this case, the deduplication program 225 does not write the transferred journal data to the pool 268B.
  • the storage apparatus 30B can prevent storing duplicate data and reduce the usage amount of the pool 268B. If it is determined that they are not the same, the deduplication program 225 allocates a free area from the pool 268B to the journal volume 267B and stores the transferred journal data. In either case, an entry for the transferred journal metadata 701Bb is required. The deduplication program 225 may determine whether the two journal data are the same by calculating and storing the hash value of the transferred journal data and comparing the two hash values.
  • the deduplication program 225 may determine whether the journal data in the journal transferred from the storage device 30A to the storage device 30B is the same as the data in the pool 268B.
  • the deduplication program 225 may deduplicate the data reflected in the RCSVOL 266 and store it in the pool 268B.
  • the storage system of this embodiment creates a snapshot of RCPVOL 265 in the storage device 30B when the snapshot acquisition condition is satisfied.
  • the snapshot acquisition condition is that the storage apparatus 30A receives from the host computer 10 a snapshot acquisition instruction that is an instruction to create a snapshot.
  • a time for acquiring a snapshot is set from the host computer 10 to the storage apparatus 30A, and the snapshot acquisition condition is that the time is reached.
  • the storage system executes asynchronous remote copy
  • the asynchronous remote copy primary volume (RCPVOL 265) of the storage apparatus 30A and the asynchronous remote copy secondary volume (RCSVOL 266) of the storage apparatus 30B are used.
  • RCPVOL 265 and RCSVOL 266 are inconsistent.
  • the storage device 30A and the storage device 30B need to be in the same state, that is, in a static state.
  • the storage device 30B sequentially reads the journal and finds a marker in the journal during the reflection work to the RCSVOL 266, the snapshot of the RCSVOL 266 can be acquired in the SSVOL.
  • the marker is information indicating that consistency is established within the consistency group when the snapshot of RCPVOL 265 is created.
  • the marker may be, for example, a preset data pattern or may include journal metadata indicating a preset address.
  • the storage system can create a snapshot of the RCPVOL 265 at the time point instructed to the primary site 100A in the secondary site 100B.
  • the host computer 10 may issue a snapshot acquisition instruction to the storage device 30A. Further, the host computer 10 may stop the I / O request together with the snapshot acquisition instruction. In this case, when the storage apparatus 30B creates a snapshot, the storage apparatus 30B notifies the storage apparatus 30A, and the storage apparatus 30B returns a response to the snapshot acquisition instruction to the host computer 10. In response to this, the host computer 10 resumes the I / O request.
  • the management device may issue a snapshot acquisition instruction to the storage device 30A, or may set a snapshot acquisition time in the storage device 30A in advance.
  • the storage apparatus 30A may stop I / O in response to a snapshot acquisition instruction.
  • journal entity When the storage apparatus 30B creates a capacity virtualized volume by thin provisioning as the journal volume 267B, the journal entity is stored in the pool 268B. In the following description, a case where a plurality of journal volumes use the same pool 268B will be described.
  • the journal transfer process in S1120 transfers the journal from the pool 268A to the pool 268B.
  • a page is a storage unit for managing the storage area of the pool. The page size is, for example, 8 MB or several tens of MB.
  • the storage apparatus 30A When the storage apparatus 30A receives a snapshot acquisition instruction for RCPVOL 265, the instruction is stored in the journal, the journal is transferred to the storage apparatus 30B, and when the storage apparatus 30B detects a snapshot acquisition instruction in the journal, the snapshot is stored. You may get it. That is, if the snapshot acquisition instruction is used as the above-described marker and the RCPVOL 265 is staticized and the journal up to that point is transferred, the RCPVOL 265 and the RCSVOL 266 are in the same state when the snapshot is acquired.
  • FIG. 15 shows journal processing when a snapshot acquisition instruction is issued.
  • the journal processing management program 221A puts a marker in the last-order journal stored in the journal volume 267A of the RCPVOL 265 at that time (S1010).
  • the marker indicates that it is the last journal before taking a snapshot.
  • the journals of RCPVOL 265 are asynchronously transferred to the storage device 30B by a predetermined number at a predetermined opportunity.
  • the journal is reflected in the order of the created time.
  • the journal processing management program 221A determines whether or not a journal that has not been transferred to the RCSVOL 266 remains in the journal volume 267A of the RCPVOL 265 (S1012). If it remains (YES in S1012), the journal transfer program 222A transfers the journal to the storage device 30B (S1014).
  • the transferred journal is stored in the journal volume 267B.
  • journal processing management program 221A determines whether the journal has been transferred, but has the remote copy control program 260B of the storage device 30B acquired all the journals from the journal volume 267A to the snapshot acquisition instruction? If it is determined that the marker has already been transferred and not acquired, the journal transfer program 222B may transmit a journal read request to the storage device 30A, and the journal transfer program 222A may transfer the journal in response to this request.
  • the journal reflection program 224B determines whether there is a journal that has not been reflected in the RCSVOL 266 in the journal volume 267B (S1018). If there is no unreflected journal (No in S1018), the journal reflection program 224B waits until a journal is transmitted from the storage device 30A. If there is an unreflected journal (S1018 is Yes), the journal reflection program 224B selects the journal with the first sequence number from the unreflected journals (S1022), and determines whether the selected journal is a marker. (S1024).
  • the journal reflection program 224B searches for the position in the RCSVOL 266 corresponding to the update by the journal, and the SVOL write difference bit In the map 250, it is determined whether the bit corresponding to the position is “1” (S1026). Specifically, the journal reflection program 224B refers to the position (address) in the RCSVOL 266 from the address information stored in the journal metadata 701 where the corresponding journal data is stored.
  • the SVOL write difference bitmap 250 manages data of a predetermined unit size in association with one bit in the bitmap. Bits are used in correspondence with the aforementioned size units from the beginning of the area in the data volume.
  • journal reflection program 224B can specify the bit in the SVOL write difference bitmap 250 from the address in the RCSVOL 266.
  • the journal reflection program 224B identifies the bit corresponding to the journal data, and if the bit is “1” (Yes in S1026), the data in the RCSVOL 266 is not the latest data, that is, matches the data in the RCPVOL 265. It is determined that there is no possibility, and the journal data is reflected in the RCSVOL 266 (S1028), and the journal data is deleted from the journal volume 267B (S1030). The journal reflection program 224B repeats the same processing if there is a next journal.
  • the journal reflection program 224B recognizes that reflection of all unreflected journals has been completed. That is, the same data is stored in RCPVOL265 and RCSVOL266. Thereafter, the snapshot control program 262B acquires a snapshot from the RCSVOL 266 (S1034). Here, the snapshot control program 262B creates a copy of the RCSVOL 266 that is the copy source of the snapshot pair in the snapshot SVOL (SSVOL) 271 that is the copy destination of the snapshot pair.
  • the SSVOL 271 here is a virtual volume.
  • the snapshot control program 262B maps the page in the pool 268B in which the substance of the RCSVOL 266 is stored to the SSVOL 271.
  • the storage apparatus 30A When the storage apparatus 30A receives a snapshot acquisition instruction after receiving the snapshot acquisition instruction in a state where the formation copy has not been completed, the storage apparatus 30A needs to store the state before the update in the RCSVOL 266 of the storage apparatus 30B. In this case, the data before the update of the relevant part is registered as a journal.
  • the storage apparatus 30B creates a snapshot after reflecting the journal before the marker and the formed and copied data in the RCSVOL 266. Thereafter, the storage apparatus 30B reflects the journal after the marker to the RCSVOL 266 after the formation copy process is completed.
  • FIG. 16 shows the relationship between RCSVOL and SSVOL when creating a snapshot.
  • the journal transferred from the storage device 30A to the storage device 30B by the above-described journal processing is stored in the journal volume 267B.
  • the actual journal data of the page 251 in the journal volume 267B is stored in the page 252 in the pool 268B.
  • the data storage address in the journal metadata 701 indicates the address of the page 252 (S2210).
  • the storage apparatus 30B extracts the journals from the journal volume 267B in the order of the sequence numbers and reflects them in the RCSVOL 266.
  • the page 253 in the RCSVOL 266 is mapped to the actual page 252 in the pool 268B (S2212). That is, the page 253 in the RCSVOL 266 is mapped to the actual page 252 of the page 251.
  • the storage device 30B overwrites the actual page 252.
  • the storage apparatus 30B detects a marker in the journal extracted from the journal volume 267B, a snapshot is taken (S1034).
  • the storage apparatus 30B maps the address of the page 253 in the RCSVOL 266 without storing the actual data in the page 255 in the SSVOL 271 corresponding to the page 253 in the RCSVOL 266 (S2214).
  • FIG. 17 shows a modification of the relationship between RCSVOL and SSVOL data when creating a snapshot.
  • the page 252 in the pool 268B may be directly mapped to the page 255 in the SSVOL 271.
  • the work cost of managing the pool 268B can be suppressed.
  • FIG. 18 shows the relationship between RCSVOL and SSVOL after snapshot creation.
  • journal data is reflected on the page 252 in the pool 268B by the journal indicating the update of the RCSVOL 266 after the snapshot is created
  • the data of the page 252 in the pool 268B is changed to the page 254 in the pool 272 for the SSVOL 271 before the reflection.
  • the mapping destination of the page 255 in the SSVOL 271 is changed to the page 254 in the pool 272 (S2218), and the page 252 in the pool 268B is updated with journal data (S2220).
  • a high-speed full backup image can be created by transferring the asynchronous remote copy difference to the storage device 30B and combining the snapshots.
  • the storage device 30B writes the data before reflection to the page 254 in the pool 272 for SSVOL 271 and reflects the data after reflection in the pool 268B in the reflection to the RCSVOL 266 of the journal after the marker (snapshot creation). Write to page 252. Thereby, the storage apparatus 30B can write only the data before the update of the RCPVOL 265 after the snapshot acquisition instruction to the pool 272. Note that the storage device 30B may maintain the data before reflection in the page 252 in the pool 268B and reflect the data after reflection to another page or another pool in the reflection of the journal after the marker to the RCSVOL 266.
  • the storage device 30B has a table separate from the snapshot pair volume management information 351. This table only needs to be able to manage where the backed-up data is stored with respect to the address of RCSVOL.
  • the storage apparatus 30B can create a snapshot of the RCSVOL 266 at high speed by allocating the page 253 in the RCSVOL 266 and the page 252 in the pool 268B to the page 255 in the SSVOL 271.
  • the data stored in the pool 272 is only the difference between SSVOL 271 and RCSVOL 266. Thereby, the usage amount of the pool 272 can be suppressed.
  • the management of the pool 268B, the expansion of the pool 272, etc. can be facilitated.
  • the reflection of the journal from the RCPVOL 265 to the RCSVOL 266 and the creation of the journal from the RCSVOL 266 to the RCPVOL 265 become faster, and the usage amount of the physical storage device Can be suppressed.
  • First restore process Consistency group restore that transfers the difference of asynchronous remote copy
  • Second restore process Volume restore by replication with snapshot volume externally connected
  • Third restore process Snap Connect the shot volume externally and perform fine-grain restoration using the host computer 10
  • FIG. 19 shows an overview of the first restoration process.
  • the first restore process performs asynchronous remote copy from the storage apparatus 30B to the storage apparatus 30A in the opposite direction to the journal process described above.
  • the first restore process is a differential copy, that is, a process of transferring data at a location changed using a journal from the storage apparatus 30B to the storage apparatus 30A.
  • the host computer 10 issues a restore instruction indicating the snapshot point to be restored to the storage apparatus 30A (S2110).
  • the host computer 10 stops the application that accesses the RCPVOL (S2112).
  • the host computer 10 switches the primary and secondary positions by performing processing for switching operation from the storage device 30A for asynchronous remote copy to the storage device 30B (S2114). After this switching, the direction of copy processing is changed from the storage device 30B to the storage device 30A.
  • the storage apparatus 30A notifies this instruction to the storage apparatus 30B.
  • the storage apparatus 30B restores the snapshot data designated by the host computer 10 from SSVOL to RCSVOL (S2120).
  • FIG. 20 shows details of the operation of the storage apparatus 30B in the first restore process.
  • the storage apparatus 30B selects the target address as a data management unit in order from the top address of the RCSVOL (S2121).
  • the storage device 30B determines whether snapshot data corresponding to the target address exists in the pool 272 based on the snapshot pair volume management information 351 (S2122).
  • the snapshot data is data to be restored, so the storage device 30B overwrites the RCSVOL data with the snapshot data (S2123). Then, the storage device 30B creates a journal for asynchronous remote copy to the snapshot data (S2124) and registers it in the journal volume 267B (S2130). The storage apparatus 30B determines whether or not a journal for the above address is in the journal volume 267B (S2125). If there is a journal, the storage apparatus 30B deletes the journal (S2126) and ends this flow.
  • the storage apparatus 30B determines whether or not the journal for the aforementioned address is in the journal volume 267B (S2127). If the journal exists, the storage apparatus 30B deletes the journal (S2128). Then, the storage apparatus 30B creates a journal with the data stored in the RCSVOL (S2129), registers it in the journal volume 267B (S2130), and ends this flow. If there is no such journal, the storage apparatus 30B ends this flow.
  • Storage device 30B repeats this flow for each target address.
  • the storage apparatus 30B executes this flow for all addresses in the RCSVOL, and then transfers the journal stored in the journal volume 267B to the storage apparatus 30A (S2132).
  • the storage apparatus 30A stores the transferred journal in the journal volume 267A (S2134).
  • the storage apparatus 30A eliminates the difference in the asynchronous remote copy configuration based on the journal, and synchronizes the RCPVOL with the RCSVOL. That is, the storage device 30A restores the data at the time of the snapshot by overwriting the journal data at the address of RCPVOL corresponding to the address indicated by the journal (S2136).
  • the host computer 10 starts the application.
  • the storage apparatus 30B divides the snapshot pair after restoring the snapshot data (S2130), gives the volume ID to the SSVOL, and sets the SSVOL as the volume format. You may perform the process to leave.
  • data at a specific time of the RCPVOL 265 of the primary site 100A can be restored from the SSVOL 271 created in the secondary site 100B.
  • the storage device 30B also stores the data before the reflection of the journal after the marker (the difference between the SSVOL 271 and the RCSVOL 266) in the SSVOL 271 and the data before the reflection of the unreflected journal among the RCSVOL 266 (RCSVOL 266) at the time of the restore instruction. And the RCPVOL 265), it is not necessary to transfer all the data in the SSVOL 271 to the storage device 30A and can be restored at high speed.
  • FIG. 21 shows the second restoration process.
  • the second restore process has a method of showing the snapshot itself directly to the host computer 10.
  • a case where snapshot data is not managed in a volume format as described above is shown.
  • the storage apparatus 30A receives a restore instruction from the host computer 10 (S2210), the storage apparatus 30B provides a virtual volume (VVOL) 258 for managing the snapshot data as a volume, and maps the SSVOL 269 to the virtual volume 258. (S2212).
  • VVOL virtual volume
  • the storage apparatus 30A can refer to the snapshot data using the address in the virtual volume 258.
  • the storage apparatus 30A makes the virtual volume 258 accessible by using an external connection function that makes the volume in the external storage apparatus accessible as an internal volume.
  • the storage apparatus 30A provides an external volume (EVOL) 257, and maps the virtual volume 258 in the storage apparatus 30B to the external volume 257 to the external volume 257 (S2214).
  • the storage apparatus 30A executes replication processing from the external volume 257 to the RCPVOL 265, and responds to the host computer 10 (S2216). In response to the response, the host computer 10 accesses the RCPVOL 265 to perform the business. In the replication process, data in the external volume 257 is copied to the RCPVOL 265 even during access from the host computer 10.
  • the storage apparatus 30A transfers the data of the target page to the external volume 257 To the RCPVOL 265, and the data is returned to the host computer 10.
  • the host computer 10 can access the snapshot data stored in the storage apparatus 30B not directly connected at high speed.
  • the third restore process is the same as the process up to S2214 of the second restore process described above. Thereafter, the host computer 10 selects data to be restored from the external volume 257 and copies it to the RCPVOL 265 by the OS or application.
  • the storage device 30 is set by creating a pool, creating a command device, setting a port, and setting a remote path / external path (path for connecting to an external storage device).
  • a storage system management program is set, and a backup setting file is described.
  • the management program operates a copy program stored in the storage device 30 by issuing a command from the host computer 10 to the storage device 30. Create a configuration file as a setting for the management program.
  • the backup setting file is stored in the host computer 10.
  • the backup setting file defines, for example, a pool ID, a port number on the RCPVOL side and the RCSVOL side, a capacity of the journal volume, a monitoring timeout value when the pair status changes.
  • the value defined here is used in subsequent setting operations.
  • FIG. 22 shows the RCPVOL creation process.
  • the storage apparatus 30A creates an RCPVOL in response to an instruction from the host computer 10.
  • the system user designates the volume capacity and issues a volume creation instruction from the host computer 10 to the storage apparatus 30A (S1210).
  • the host computer 10 executes a volume creation script.
  • the host computer 10 reads the backup setting file and acquires the pool ID (S1212).
  • the host computer 10 acquires information on the logical volume number of the logical volume that has not been created from the storage device 30A (S1214).
  • the host computer 10 selects one from the acquired logical volume numbers (S1216).
  • the host computer 10 issues an instruction to create a logical volume with the selected number to the storage apparatus 30A, and the storage apparatus 30A creates a logical volume (S1218).
  • the host computer 10 also transfers the acquired pool ID information to the storage apparatus 30A.
  • the volume capacity is the capacity designated by the system user, and the volume attribute is marked as RCPVOL of the asynchronous remote copy volume.
  • the storage apparatus 30A creates an LU (Logical Unit) path in the created logical volume (S1220).
  • the storage apparatus 30A stores information such as the pool ID and size in the location of the data volume management information 501 corresponding to the acquired logical volume number.
  • the storage apparatus 30A sends a reply to the host computer 10 after creating the LU path.
  • a volume attribute 530, a pool ID 524, and a size 536 are registered in the data volume management information 501 described above.
  • pair volume information 520 is registered.
  • remote copy is further configured, the information is registered in the remote copy pair volume management information 301.
  • FIG. 23 shows the RCSVOL creation process.
  • the storage device 30B creates an RCSVOL in response to an instruction from the host computer 10.
  • the system user issues a consistency group creation instruction from the host computer 10 to the storage device 30B (S1310). Specifically, the host computer 10 executes a consistency group creation script.
  • the consistency group creation program of the host computer 10 reads the backup setting file and acquires the pool ID (S1312).
  • the host computer 10 acquires information on the logical volume number for which no logical volume has been created from the storage device 30B (S1314).
  • the host computer 10 selects one of the acquired logical volume numbers (S1316).
  • the host computer 10 designates the volume number to be RCPVOL to the storage apparatus 30A, and acquires the RCPVOL information (S1318).
  • the host computer 10 extracts information such as the RCPVOL capacity from the acquired information (S1320).
  • the host computer 10 designates the extracted capacity and issues an instruction to create an RCSVOL to the storage apparatus 30B, and the storage apparatus 30B creates the RCSVOL (S1322).
  • the host computer 10 also transfers the acquired pool ID information.
  • the volume capacity is the capacity specified by the system user, and the volume attribute is marked as SVOL of the asynchronous remote copy volume.
  • the storage apparatus 30B creates an LU path in the created logical volume (S1324). After creating the LU path, the storage apparatus 30B returns it to the host computer 10.
  • the creation of the second and subsequent RCSVOLs repeats the processing of S1314 to S1324.
  • the storage apparatus 30B registers the RCSVOL information in the data volume management information 501 in the same manner as when the RCPVOL information is registered.
  • FIG. 24 shows the RCPVOL side journal VOL creation processing.
  • journal VOL is a volume (offline volume) that does not need to be recognized by the host computer 10 that issues an access request, it is managed by the journal volume management information 401.
  • the host computer 10 acquires the journal volume management information 401 itself or information indicating whether the journal volume is in use or free (S1330), and selects one free journal volume ID from the information (S1332).
  • the host computer 10 issues an instruction to create the RCPVOL side journal VOL to the storage apparatus 30A, and the storage apparatus 30A creates the RCPVOL side journal VOL (S1334).
  • the storage apparatus 30A creates an RCPVOL journal in the RCPVOL side journal VOL (S1340).
  • the storage apparatus 30A registers the volume ID and pool ID in the journal volume management information 401 for the created journal volume. In a consistency group creation process described later, the storage apparatus 30A registers the volume ID of the journal volume in the consistency group management information 502 of the consistency group.
  • the host computer 10 and the storage device 30B perform the RCSVOL side journal VOL creation processing in the same manner as the RCPVOL side journal VOL creation processing.
  • the RCSVOL side journal VOL creation processing is processing for performing processing for the storage device 30A to the storage device 30B in the RCPVOL side journal VOL creation processing.
  • the storage apparatus 30 manages which RCPVOL and RCSVOL each journal VOL is a set with.
  • the host computer 10 designates the volume ID and the consistency group ID, and issues an instruction to create a consistency group to the storage apparatuses 30A and 30B.
  • Each of the storage apparatuses 30A and 30B registers the created RCPVOL and RCSVOL as information on the asynchronous remote copy pair grouped in the same consistency group in the consistency group management information 502.
  • Each of the storage apparatuses 30A and 30B registers the corresponding journal VOL in the P journal volume information 570 and the S journal volume information 580 in the consistency group management information 502.
  • RCPVOL and RCSVOL are described in the pair volume management information 301 in the pair volume information 560.
  • the host computer 10 issues an asynchronous remote copy pair creation instruction for designating the RCPVOL volume number and the RCSVOL volume number to the storage devices 30A and 30B.
  • the storage apparatuses 30A and 30B create an asynchronous remote copy pair.
  • the storage apparatuses 30A and 30B register the designated RCPVOL and RCSVOL in the RCPVOL information 310 and the RCSVOL information 320 in the remote pair volume management information 301, respectively.
  • the storage apparatuses 30A and 30B register the address of the remote pair volume management information 301 in the pair volume management information #n in the consistency group management information 502.
  • FIG. 25 shows a snapshot volume creation process
  • the host computer 10 and the storage device 30B create a volume (S1370 to S1376) in the same manner as S121 to S1220 of the volume creation process described above. Since the copy source is RCSVOL, the storage apparatus 30B creates a management information area for securing snapshot pair volume management information 351 for acquiring a snapshot of RCSVOL (S1374).
  • the host computer 10 creates an external volume in the storage device 30A for recognizing the backup volume when restoring from the backup volume (SSVOL).
  • the external volume is a method of virtualizing a logical volume in the external storage as its own internal volume.
  • the host computer 10 acquires information on the External port from the storage device 30A (S1378), and extracts the WWN of the External port from the information (S1380).
  • the host computer 10 acquires external volume group information indicating the external volume group from the storage device 30A (S1382), and extracts a free external volume number from the information (S1384).
  • the host computer 10 designates the extracted WWN and free external volume number, transmits information on the new external volume to the storage apparatus 30A, and creates external volume group information indicating the external volume (S1386).
  • the host computer 10 and the storage device 30A issue an instruction to create an external volume referring to the SSVOL to the storage device 30A, as in S121 to S1220 of the volume creation processing described above, and the storage device 30A creates the external volume. create.
  • the conventional backup system if all data in a volume unit is restored, it takes time to restore. According to this embodiment, after the restore instruction, the time until the host computer 10 accesses the RCPVOL 265 is shortened.
  • the storage capacity reserved for storing data continues to increase.
  • the amount of data stored in the storage device 30B can be reduced, and the storage capacity of the storage device 30B can be reduced.
  • the conventional backup system requires introduction costs such as requiring a dedicated backup server for controlling the storage device.
  • an operation cost is required, for example, because it is necessary to set up a management program between the backup server and the storage device for the backup work. In this embodiment, it is not necessary to install a backup server.
  • the first storage device may be the storage device 30A.
  • the second storage device may be the storage device 30B.
  • the first data volume may be RCPVOL265.
  • the second data volume may be RCSVOL 266.
  • the first journal volume may be a journal volume 267A.
  • the second journal volume may be the journal volume 267B.
  • the snapshot may be SSVOL271.
  • the specific condition may be a snapshot creation condition.
  • the storage area in the second data volume may be the page 253 or the page 252.
  • the virtual storage area in the snapshot may be a page 255.
  • the first pool may be pool 268B.
  • the first storage area may be a page 252.
  • the second storage area may be a page 254.
  • the second pool may be a pool 272.
  • 10, 10A Host computer, 30, 30A, 30B ... Storage device, 31 ... Controller, 32 ... Cache memory, 33 ... Shared memory, 34 ... Physical storage device, 100A ... Primary site, 100B ... Secondary site, 108 ... Management network 121 ... Storage network, 160 ... Network between storage devices, 171 ... Host adapter, 172 ... Network adapter, 175 ... Remote copy adapter, 176 ... Processor, 177 ... Storage adapter, 178 ... Shared memory adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ボリュームの更新の応答時間を抑えつつ、そのボリュームの特定の時点のバックアップを別サイトに作成する。 第一ストレージ装置及び第二ストレージ装置は、第一ジャーナルボリューム内のジャーナルを第二ストレージ装置へ転送し、第二ストレージ装置は、転送されたジャーナルを第二ジャーナルボリュームへ書き込み、第二ストレージ装置は、第二ジャーナルボリューム内のジャーナルを更新の順に読み出し、第二ストレージ装置は、読み出されたジャーナルを第二データボリュームへ反映し、第一ストレージ装置は、特定条件の成立に応じて、マーカを含むジャーナルを第一ジャーナルボリューム内へ作成し、第二ストレージ装置は、読み出されたジャーナルからマーカを検出すると、第二データボリュームのスナップショットを作成する。

Description

ストレージシステムおよびストレージシステムの制御方法
 本発明は、ストレージシステムに関する。
 ストレージ装置のバックアップ作業として、ストレージ装置筐体内に複製を作成する方法や、その複製をストレージ装置の外部にあるテープ装置にバックアップする方法が取られている。前者の同一ストレージ装置筐体内に複製を作成する場合、筐体に障害があった場合は、業務の復旧作業が困難である。
 また、地震や火災といった災害が発生した場合のデータロストに備えて、複数のサイトにそれぞれ配置された複数のストレージ装置がデータを多重化して保持するリモートコピー機能が知られている。
 リモートコピー機能は、ホスト計算機からの書き込みコマンドと同期してストレージ装置がデータをコピー先のストレージ装置に転送する「同期リモートコピー」と、ホスト計算機からの書き込みコマンドへの完了応答後にストレージ装置がデータをコピー先のストレージ装置に転送する「非同期リモートコピー」の二種類に大別される。
 どちらのリモートコピー機能を用いる場合でも、正サイトの災害発生時には、ホスト計算機及びストレージ装置の双方の業務を副サイトへ交替する。これにより、サイトに災害が発生した場合でもデータ喪失や業務停止を最小化することができる。さらに、近年では、台風や津波のように災害を予期できる場合に災害を回避するため、災害前に副サイトに運用を切替えてデータ損失や業務停止を未然に防止する運用も注目を集めている。
 また、同期リモートコピーはコピー元とコピー先のデータが常に同期されている利点がある一方、ホスト計算機からの書込みの応答まで時間がかかってしまうため、長距離のサイトの間では非同期リモートコピーを用いることが一般的である。
 特許文献1には、ジャーナルを用いて非同期リモートコピーを行う技術が開示されている。正サイトのコピー元ストレージ装置では、書込みコマンドを受領するとデータ書込み用のボリュームへデータを書込み、ジャーナルボリュームへジャーナルデータを書込み、ホスト計算機に応答を返す。副サイトのコピー先ストレージ装置では、書込みコマンドとは非同期にコピー元ストレージ装置のジャーナルボリュームからジャーナルデータを読出し、自身のジャーナルボリュームに格納する。そして、コピー先ストレージ装置は、格納したジャーナルデータに基づいて、コピー先のデータ書込み用ボリュームにデータを反映する。
 また、特許文献2では、正サイトのコピー元ボリュームと副サイトのコピー先ボリュームとの間で同期リモートコピーを行い、データを二重化している。そして、コピー元ボリュームとコピー先ボリュームとのどちらも同じ識別子を有するボリュームとしてホスト計算機に提供することで、通常時は正サイトでアクセスを受付け、障害発生時に副サイトにアクセスを切替えることにより、ホストに対して透過的に副サイトを使って、業務を無停止で継続することができる技術が開示されている。
米国特許出願公開第2005/0033827号明細書 米国特許出願公開第2009/0271582号明細書
 非同期リモートコピーでは、正サイトへ書き込まれたデータが、非同期に副サイトへコピーされるため、正サイトの特定の時点のバックアップを副サイトに作成することが困難である。
 上記課題を解決するために、本発明の一態様であるストレージシステムは、ホスト計算機に接続される第一ストレージ装置と、前記第一ストレージ装置に接続される第二ストレージ装置と、を備える。前記第一ストレージ装置は、第一データボリューム及び第一ジャーナルボリュームを前記第一ストレージ装置内に作成し、前記第一ストレージ装置は、前記第一データボリュームを前記ホスト計算機へ提供し、前記第二ストレージ装置は、第二データボリューム及び第二ジャーナルボリュームを前記第二ストレージ装置内に作成し、前記第一ストレージ装置は、前記第一データボリュームの更新に応じて、前記更新を示すジャーナルを前記第一ジャーナルボリューム内へ作成し、前記第一ストレージ装置及び前記第二ストレージ装置は、前記第一ジャーナルボリューム内のジャーナルを前記第二ストレージ装置へ転送し、前記第二ストレージ装置は、前記転送されたジャーナルを前記第二ジャーナルボリュームへ書き込み、前記第二ストレージ装置は、前記第二ジャーナルボリューム内のジャーナルを前記更新の順に読み出し、前記第二ストレージ装置は、前記読み出されたジャーナルを前記第二データボリュームへ反映し、前記第一ストレージ装置は、特定条件の成立に応じて、マーカを含むジャーナルを前記第一ジャーナルボリューム内へ作成し、前記第二ストレージ装置は、前記読み出されたジャーナルから前記マーカを検出すると、前記第二データボリュームのスナップショットを作成する。
 ボリュームの更新の応答時間を抑えつつ、そのボリュームの特定の時点のバックアップを別サイトに作成することができる。
実施例のストレージシステムのハードウェア構成を示す。 記憶領域のレイヤ構成を示す。 共有メモリに格納された制御情報及び制御プログラムを示す。 リモートコピーペアボリューム管理情報を示す。 スナップショットペアボリューム管理情報を示す。 コンシステンシグループ管理情報を示す。 リモートコピーデータを示す。 ジャーナルボリューム管理情報を示す。 データボリューム管理情報を示す。 ジャーナルデータとジャーナルメタデータの関係を示す。 ジャーナルメタデータを示す。 ジャーナル処理の概要を示す。 ジャーナル処理の詳細を示す。 重複排除処理を示す。 スナップショット取得指示が発行された場合のジャーナル処理を示す。 スナップショット作成時のRCSVOLとSSVOLの関係を示す。 スナップショット作成時のRCSVOLとSSVOLの関係の変形例を示す。 スナップショット作成後のRCSVOLとSSVOLの関係を示す。 第一リストア処理の概要を示す。 第一リストア処理におけるストレージ装置30Bの動作の詳細を示す。 第二リストア処理を示す。 RCPVOL作成処理を示す。 RCSVOL作成処理を示す。 RCPVOL側ジャーナルVOL作成処理を示す。 スナップショットボリューム作成処理を示す。
 以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
 また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインタフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
 また、以下の説明では、管理システムは、一以上の計算機を含んでいてもよい。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、例えば、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システムである。管理計算機(例えば管理システム)は、表示システムを含むI/Oシステムに接続されたインタフェースデバイスと、記憶資源(例えばメモリ)と、インタフェースデバイス及び記憶資源に接続されたプロセッサとを有してよい。表示システムは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oシステムは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示システムに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。
 リード処理を読み出し処理と記載することがある。ライト処理を書き込み処理または更新処理と記載することがある。これらをまとめてアクセス処理と記載することもある。
 以下、図面を参照しながら本発明の実施例を説明する。
 <ストレージシステムの構成>
 図1は、実施例のストレージシステムのハードウェア構成を示す。
 リモートコピーを構成するため、2つ以上のサイト、例えば、プライマリサイト100A、セカンダリサイト100Bがある。以下、説明を分かりやすくするため、プライマリサイト100Aが有する要素の参照符号は、親番号と子符号「A」の組合せであり、セカンダリサイト100Bが有する要素の参照符号は、親番号と子符号「B」の組合せである。また、プライマリサイト100Aとセカンダリサイト100Bを区別する必要がないときは、参照符号を親番号のみとする。リモートコピー構成のプライマリサイトとセカンダリサイトでは、同一機種のストレージ装置を用いて構築する場合が多いが、本実施例はバックアップソリューションの提供が目的であり、その手段のひとつとしてリモートコピー機能を使用しているため、リモートコピー構成を組むストレージ装置の機種をそろえる必要は無い。また、セカンダリサイト100B側にホスト計算機が存在しなくてもよい。
 プライマリサイト100Aは、ホスト計算機10、ストレージ装置30Aを含む。セカンダリサイト100Bは、ストレージ装置30Bを含む。ストレージ装置30Aとストレージ装置30Bは、互いに接続されている。ホスト計算機10は、ストレージ装置30の論理的な記憶領域にアクセスする。ストレージ装置30は、物理記憶デバイス34に設定された記憶領域にデータを格納する。ホスト計算機10は複数台でもよい。なお、ストレージ装置30は、ストレージシステム、あるいはストレージサブシステムと言うこともできる。図には記載が無いが、管理ネットワーク108を介してストレージ装置30A、30Bに接続された管理装置が設けられてもよい。管理装置は、ストレージ装置30の記憶領域の構成を管理し、例えば、入力デバイス、出力デバイス、CPU、メモリ、ネットワークアダプタ、及び、記憶デバイスを有する。
 プライマリサイト100Aとセカンダリサイト100Bは、リモートコピーを実行する。ここで、リモートコピーはストレージ装置に格納されたデータを別のストレージ装置に複製する技術である。格納元をプライマリサイト又は正サイト又はローカルサイトと呼び、複製を格納する先をセカンダリサイト又は副サイト又はリモートサイトと呼ぶ。
 ホスト計算機10は、例えば、入力デバイス、出力デバイス、CPU、メモリ、ディスクアダプタ、ネットワークアダプタ、及び、記憶デバイスを含む(図示なし)。なお、ホスト計算機10では、ユーザが使用するアプリケーションプログラムや、ストレージ装置とのインタフェース制御をおこなうストレージ装置制御プログラムが、ホスト計算機10内のCPUにて実行される。ホスト計算機10は、具体的には、ワークステーション、パーソナルコンピュータ、メインフレーム等である。
 ストレージ装置30は、コントローラ31、少なくとも1つのキャッシュメモリ32、少なくとも1つの共有メモリ33、及び、物理記憶デバイス34を有する。本実施例において、これらのハードウェアは冗長化されている。
 コントローラ31は、少なくとも、プロセッサ176を有するものであり、この実施例では、さらに、ホストアダプタ171、ネットワークアダプタ172、リモートコピー(RC)アダプタ175、ストレージアダプタ177、及び、共有メモリアダプタ178を有している。
 ホストアダプタ171は、ストレージネットワーク121を介してホスト計算機10との間でデータを送受信する。ネットワークアダプタ172は、管理ネットワーク108を介してホスト計算機10(又は、管理装置との間)に対し、システム管理上必要なデータ(管理情報)を送受信する。
 プロセッサ176は、不揮発性メモリ等に格納されているプログラムを共有メモリ33に読み込んで、そのプログラムに規定された処理を実行する。また、プロセッサ176は、ホスト計算機10からのアクセス要求に基づいて、物理記憶デバイス34への入出力処理を実行する。
 ストレージアダプタ177は、物理記憶デバイス34、及び、キャッシュメモリ32との間でデータを送受信する。共有メモリアダプタ178は、共有メモリ33との間でデータを送受信する。
 キャッシュメモリ32は、例えばRAM(Random Access Memory)であり、物理記憶デバイス34に読み書きされるデータを一時的に格納する。
 共有メモリ33は、ハードディスクやフラッシュメモリ、RAM等であり、コントローラ31で動作するプログラムや構成情報等を格納する。
 キャッシュメモリ32及び共有メモリ33は、コントローラ31の内部に設けられていてもよい。
 物理記憶デバイス34は、複数の記憶デバイスを含む。記憶デバイスは、例えばハードディスクドライブであり、主としてユーザデータを格納する。記憶デバイスとしては、フラッシュメモリなどの半導体メモリを含むドライブでもよい。記憶デバイスは、RAID(Redundant Array of Independent Disks)構成に基づいてRAIDグループを構成する。物理記憶デバイス34には、RAIDグループに基づいて一つ以上の論理記憶領域(論理ボリューム)が作成される。論理ボリュームは、物理記憶デバイス34が有する物理的な記憶領域と関連付けられる。これらの論理ボリュームは、ユーザの指定によりPVOLやSVOL等のデータボリュームとジャーナルボリューム267として使用される。
 以下、データ複製のコピー元となるプライマリサイト100A側のストレージ装置30Aが有するデータボリュームを、「PVOL(プライマリボリューム、正ボリューム)」または「RCPVOL」と呼ぶことにする。また、PVOLに格納されるデータの複製先となるセカンダリ側のストレージ装置30Bが有するデータボリュームを、「SVOL(セカンダリボリューム、セカンダリ側(S)ボリューム)」または「RCSVOL」ということにする。
 次に、本実施例のストレージシステムのリモートコピー構成部分について説明する。本実施例は、前にも記載したとおり、プライマリサイト100Aとセカンダリサイト100Bにおいて、ハードウェア構成やハードウェア性能及び数は同じであってもよいし、異なるところがあってもよい。
 プライマリサイト100Aのストレージ装置30Aと、セカンダリサイト100Bのストレージ装置30Bとは、通信線を介して接続され、リモートコピーを構成している。
 リモートコピーアダプタ175は、ストレージ装置間ネットワーク160を介して他のストレージ装置30に接続される。ストレージ装置間ネットワーク160は、ディザスタリカバリの観点から公衆回線などのグローバルネットワークであることが多いが、ストレージ装置同士が同じ部屋の中、同じビルの中、近隣ビルの中にある場合などはローカルネットワークであってもよい。ただし、このようなネットワークの形態によって本発明が限定されるものではない。
 本実施例は、リモートコピーは、非同期リモートコピーである。
 ネットワークアダプタ172の他のネットワークアダプタを設け、第2のネットワークを介してストレージ装置30に外部ストレージ装置を接続してもよい。第2のネットワークは例えばストレージエリアネットワーク(SAN:Storage Area Network)を用いることができる。外部ストレージ装置は、ストレージ装置30と同等又は光ディスクライブラリなどでもよい。外部ストレージ装置は直接ホスト計算機10とはネットワークで接続しておらず、ストレージ装置30を介してアクセスする。ホスト計算機10から、外部ストレージ装置は認識されない。外部ストレージ装置の記憶領域はストレージ装置30の記憶領域として仮想化してホスト計算機10に提供される。
 本実施例のストレージシステムによるバックアップの概要について説明する。
 一般に、エンタープライズストレージ装置は、高性能高信頼を求められる製品であり、高機能なプログラム、例えば、非同期リモートコピー機能、スナップショット機能、重複排除機能(Deduplication)などを含む。本実施例のストレージシステムは、これらの機能を持つストレージ装置30A、30B間でバックアップソリューションを構築する。ストレージシステムは、サイト間でリモートコピー構成を構築し、リモートコピーのプライマリサイト100Aでアクセス要求を受けてデータが更新されたら、セカンダリサイト100Bへ更新された差分を転送する。ストレージ装置30Bは、セカンダリサイト100B側のリモートコピーボリュームからスナップショットを取得することで、高速でフルバックアップイメージを作成する。スナップショットは、ストレージ装置30内のデータのスナップショットデータを取得する機能である。
 スナップショットデータの取得の一例を説明する。スナップショットデータを取得するために、ストレージ装置30Bは、論理ボリュームをプライマリボリュームとし、仮想ボリュームをセカンダリボリュームとするペアを作成する。このスナップショットペアを分割(静止)すると、スナップショットデータが取得される。ストレージ装置30Bは、プライマリボリュームのデータを更新するときに、更新される部分のデータだけを更新前スナップショットのデータとしてプールにコピーする。また、ストレージ装置30Bは、更新前スナップショットのデータをプールに格納する際、重複排除して格納してもよい。
 ストレージシステムは、リストア処理として、リモートコピーボリュームとスナップショットの差分データを、セカンダリサイト100Bからプライマリサイト100Aへ高速にコンシステンシグループのリストアを実施する。
 図2は、記憶領域のレイヤ構成を示す。
 以下、下位のレイヤから順に記憶領域を説明する。
 RAIDグループ308がある。RAIDグループ308は、前述した通り、複数の同種且つ同一通信インタフェースのPDEV34であり、それら複数のPDEV34に跨るストライプ列307を含む。
 EDEV305がある。EDEV305は、外部デバイスの略であり、図示しない外部ストレージ装置内の記憶資源に基づく論理的な記憶デバイスである。外部ストレージ装置内の記憶資源は、例えば、RAIDグループ或いはVOLである。EDEV305に対してデータの入出力が行われる場合には、EDEV305の基になっている、外部ストレージ装置内の記憶資源に対して、そのデータの入出力が行われる。
 RAIDグループ308及びEDEV305の上位に、VDEV303がある。VDEV303は、RAIDグループ308又はEDEV305に基づく仮想的な記憶資源である。VDEV303の記憶空間が仕切られることにより、VDEV303に、複数のLDEV306が形成される。VDEV303が1つのLDEV306であっても良い。以下、RAIDグループ308が基になっているVDEVを「第1種のVDEV」と言い、EDEV305が基になっているVDEVを「第2種のVDEV」と言うことがある。なお、RAIDグループ308及びEDEV305のいずれにも基づかない仮想的な記憶資源として第3種のVDEVがあっても良い。
 VDEV303の上位にプール125がある。プール125は、複数のプールVOL61を含む。プールVOL61は、いずれかのLDEVに関連付けられている。プールVOL61は、オフラインVOLであるため、ホスト計算機10から指定されるターゲットデバイスには関連付けられていない。プールVOL61は、第1種のVDEV内のLDEV又は第2種のVDEV内のLDEVに関連付けられている。プールVOL61は、複数の実ページ161を含む。本実施例では、実ページ161とストライプ列307とが1対1で対応している。実ページ161に格納されるデータは、その実ページ161に対応するストライプ列307に格納される。1つの実ページ161に複数のストライプ列307が対応していても良い。TPVOL312には、LDEVが割り当てられなくても良い。
 VDEV303及びプール125の上位に、ホスト計算機10からアクセス可能なオンラインVOLがある。オンラインVOLとして、例えば、RVOL311と、TPVOL312がある。RVOL311は、第1種のVDEV(#0)内のLDEV(#01)が基になっているVOLである。一方、TPVOL312は、VDEV303に基づかない仮想VOLである。
 オンラインVOLの上位にターゲットデバイス402がある。ホストアダプタ171が有する通信ポート403に、1以上のターゲットデバイス402が関連付けられている。ターゲットデバイス402に、オンラインVOLが関連付けられている。
 TPVOL312の仮想ページ142には、そのTPVOL312に対応付けられているプール125内の空きページが割り当てられる。
 ホスト計算機10は、ターゲットデバイスを指定したI/Oコマンド(ライトコマンド又はリードコマンド)をストレージ装置30Aに送信する。ターゲットデバイスには、前述した通り、RVOL311又はTPVOL312が関連付けられている。ストレージ装置30Aは、TPVOL312に関連付けられているターゲットデバイスを指定したライトコマンドを受信した場合、プール125から、空きのページ264を選択し、選択したページを、ライト先仮想ページ(ライトコマンドで指定されているアドレスが属するページ)142に割り当てる。ストレージ装置30Aは、割り当てられたページ264に、ライト対象のデータを書き込む。ページ264にデータを書き込むということは、そのページに割り当てられている実ページ161を有するプールVOL#5に関連付けられているLDEV#02にデータを書き込むということである。LDEV#02は、第1種のVDEV内のLDEVであるため、LDEV#02に書き込まれるデータは、実際には、RAIDグループ308の、実ページ161に対応するストライプ列307に書き込まれる。
 以下に述べるリモートコピーボリューム、ジャーナルボリューム、スナップショットボリュームは、上記に述べるTPVOLであるとして説明する。TPVOLはシンプロビジョニングボリューム又は容量仮想化ボリュームと呼ぶ。
 図3は、共有メモリに格納された制御情報及び制御プログラムを示す。
 共有メモリ33には、制御情報として、ジャーナルボリューム管理情報401、コンシステンシグループ管理情報502、データボリューム管理情報501、SVOLライト差分ビットマップ250、ジャーナル登録完了ビットマップ240が格納される。共有メモリ33には更に、制御プログラムとして、リモートコピー制御プログラム260、IO処理プログラム261、スナップショット制御プログラム262、ジャーナル処理管理プログラム221、ジャーナル転送プログラム222、ジャーナル処理取得プログラム223、ジャーナル反映プログラム224、重複排除プログラム225が格納される。また、他に、図示していないプログラムが共有メモリ33に格納されてもよい。重複排除プログラム225がなくてもよい。
 リモートコピー制御プログラム260は、リモートコピー構成の構築、リモートコピーペア形成、プライマリサイト100Aからセカンダリサイト100Bへのコピー動作の制御などを行う。
 IO処理プログラム261は、ホスト計算機10からのアクセス要求に応じて、データボリュームへのリードライト処理の制御等を行う。
 ジャーナル処理管理プログラム221は、各ストレージ装置30が実行するジャーナル処理(ジャーナル取得処理、ジャーナル転送処理、ジャーナル反映処理を含む)の管理をおこなう。また、ジャーナル処理中は各ジャーナル処理管理プログラム221間で随時通信がおこなわれ、ジャーナル処理に必要な管理情報を交換する。
 ジャーナル取得プログラム223とジャーナル反映プログラム224は、プロセッサ176にジャーナルの取得とジャーナルの反映を実行させるプログラムである。ジャーナル取得プログラム223とジャーナル反映プログラム224を含む1つのプログラムのこともある。
 ここで、ジャーナルとは更新履歴情報のことで、更新に用いられたデータのコピー(ジャーナルデータ)と、ジャーナルデータの管理データであるジャーナルメタデータとを含む。
 前述の更新履歴情報をもとにデータボリュームを更新するということは、ジャーナルを用いて最新のデータに更新することを示す。他の表現として、データの反映、ジャーナルの反映(ジャーナルによる反映動作)、ジャーナルの復元などを用いることがある。
 SVOLライト差分ビットマップ250等の差分ビットマップでは、ビットマップ内の各ビットに対して予め決めたデータサイズの領域のデータを対応させている。例えば、1ビットに対し64KBのデータを対応させた場合、64KB中の1Bでも更新があった場合は、ビットを‘1’にして、内容がコピー先にも反映されるようにする。他のビットマップは、差分ビットマップと同様の構成である。
 ジャーナル登録完了ビットマップ240は、データボリューム内の領域のうち、ジャーナルボリュームへジャーナルを登録した領域を示すビットマップである。
 リモートコピーによるデータ送信は、ホスト計算機10から、リモートコピー元であるストレージ装置30Aにライト要求があり、その後、そのライト要求と非同期でストレージ装置30Aからストレージ装置30Bにデータを送信する。具体的には、非同期リモートコピーでは、ホスト計算機10からストレージ装置30Aにデータのライト要求があったとき、ストレージ装置30Aはライト完了信号をホスト計算機10に返して、データを一旦蓄積する。その後、所定のタイミングで、ストレージ装置30Aは、原則としてホスト計算機10からのライト要求の順序でデータをストレージ装置30Bに送信する。通常、通信回線はパラレルに複数あり、それぞれの通信回線の通信状況などによって、ストレージ装置30Bがデータを受信する順序は、ホスト計算機10のライト要求順序と一致するとは限らない。しかし、データ送信時にストレージ装置30A側のライト順序がわかる情報、例えばここではシーケンス番号(通し番号)をデータに付与しておけば、ストレージ装置30B側でデータを元の順序に並べなおすことができる。データの受信側であるセカンダリサイトでは若いシーケンス番号からそろったところまでのデータをストレージ装置30Bに反映させることで送信側のデータ送信順序と整合をとることができる。
 ストレージ装置30Bのデータがストレージ装置30Aのある時刻のデータであることを「整合性がある」と呼ぶ。たとえば、データベースのデータをボリュームに格納する場合、ログデータを格納するボリュームと、テーブルデータを格納するボリュームとが、別々のボリュームに分かれる可能性がある。そして、複数のボリュームのデータが、ストレージ装置30Aにおける互いに異なる時刻のデータであると、ストレージ装置30Bのデータを用いてもデータベースを正常に起動することができない場合が生じる。複数データをまとめて整合性を保障するために、ボリュームのまとまりをつくる。これをコンシステンシグループと呼ぶ。
 本実施例で使用されるデータ構造について説明する。
 <データ構造>
 図4は、リモートコピーペアボリューム管理情報を示す。
 リモートコピーペアボリューム管理情報301は、リモートコピーペアを管理する情報である。リモートコピーペアボリューム管理情報301は、リモートコピーのペアボリュームごとに持つ情報であり、少なくともストレージ装置30A側に格納される。
 リモートコピーペアボリューム管理情報301には、リモートコピーペアを識別するリモートコピーペアID(RCペアID)340、リモートコピーデータの複製元であるRCPVOL情報310、リモートコピーデータの複製先であるRCSVOL情報320、およびペアの状態を示すペア情報330が含まれる。
 RCPVOLは、リモートコピーのコピー元であるPVOLを示す。RCPVOL情報310には、ストレージ装置ID311とボリュームID312が含まれる。RCSVOLは、リモートコピーのコピー先であるSVOLを示す。RCSVOL情報320には、ストレージ装置ID321とボリュームID322が含まれる。
 ストレージ装置ID311とストレージ装置ID321は、当該ボリュームが存在する各ストレージ装置30の識別子である。ボリュームID312、322は、各ストレージ装置30の中での当該ボリュームの識別子である。これらの各IDにより、当該ボリュームが一意に決まることになる。
 ペア情報330には、ペア状態332および差分ビットマップ334が含まれる。
 ペア状態332は、形成コピー中である「PAIR」、差分コピー中である「COPY」、ボリュームやパスの閉塞などの理由によりコピー処理が停止されサスペンド状態にある「SUSPEND」のうち、いずれかを表わすものである。形成コピーは、ボリュームの全体のコピーである。差分コピーは、ボリュームのうち差分のコピーである。
 差分コピーについて説明する。差分ビットマップにより、送信側および受信側のボリュームを、複数の領域に分割しておく。そして、送信側は、送信側のボリュームのある領域にデータの更新があった場合、更新されたデータのジャーナルを作成する。その後、送信側は、書き換えのあった領域のみのジャーナルを受信側へ送信する。このことを差分コピーという。差分コピーは、同じ領域への書き換えが多い場合などのときは、通常のコピーよりも送信量を減らせるという長所を有する。
 差分ビットマップ334は、前述した差分コピーを使用した場合に、RCPVOLとRCSVOLのデータに差異がある領域、つまり、RCPVOLにおいて書き換えのあった領域を示すビットマップ情報である。SUSPEND中にRCPVOLに更新があった場合、更新のあった領域を示す差分ビットをON(‘1’)にする。そして、SUSPEND後に、RCPVOLの差分ビットマップ334とRCSVOLの差分ビットマップのOR(論理和)をとったビットマップに基づいて、ビットがONの領域のみをコピー(差分コピー)することで、ペアを複製状態に戻すことができる。差分コピーによりコピー転送量を減らすことができる。
 なお、RCPVOLの差分ビットマップ334とRCSVOLの差分ビットマップの論理和をとる動作は、RCSVOLがプライマリサイト100Aとは関係なくセカンダリサイト100B内で書き換えが行われる場合などに必要な動作であって、必要ない場合は省略できる。ストレージ装置30Aは、差分コピーにおいて、コピーが完了した領域は差分ビットをOFF(‘0’)にする。全差分ビットがOFFになると差分コピーが完了し、RCPVOLとRCSVOLが同期していることを示す。
 また、ストレージ装置30Aは、ボリュームのペア作成時には差分ビットマップ334の全てをONにして差分コピーを行う(形成コピーを行う)ことで、RCPVOLの全領域をRCSVOLにコピーすることができる。
 次に、形成コピー中のRCPVOLが、ホスト計算機10からのライト要求を受けた場合の処理を説明する。ストレージ装置30Aがホスト計算機10からRCPVOLへのライト要求を受け、差分ビットマップ334においてライト要求の対象の領域の差分ビットがONである場合、当該領域の形成コピーが終了していないことを示す。当該領域のデータは後ほど形成コピーによりコピーされるため、ストレージ装置30Aは、RCPVOLへライトし、ジャーナルを作成しない。ストレージ装置30Aがホスト計算機10からRCPVOLへのライト要求を受け、差分ビットマップ334においてライト要求の対象の領域の差分ビットがOFFである場合、当該領域の形成コピーが終了していることを示す。そのため、ストレージ装置30Aは、RCPVOLへライトすると共に、差分コピーと同様に当該領域のジャーナルを作成し、ストレージ装置30Bへ転送する。
 図5は、スナップショットペアボリューム管理情報を示す。
 スナップショットペアボリューム管理情報351は、リモートコピーペアボリューム管理情報301と同様である。例えば、ペア情報380は、前述のペア情報330と同様である。ペア状態382、差分ビットマップ384は、前述のペア状態332、差分ビットマップ334と夫々同様である。
 但し、RCPVOL情報310の代わりにスナップショットPVOLボリュームID360が用いられ、RCSVOL情報320の代わりにスナップショットSVOLボリュームID370が用いられる。スナップショットPVOLは、スナップショットのコピー元のPVOLであり、本実施例ではRCPSVOLである。スナップショットSVOLは、スナップショットのコピー先のSVOLであり、本実施例ではSSVOLと呼ぶ。SSVOLが仮想ボリュームである場合、スナップショットペアボリューム管理情報351は、SSVOLに対応するプールIDを含んでもよい。
 なお、スナップショットペアボリューム管理情報351に、スナップショットSVOLボリュームIDを設定してもしなくてもよい。設定しない場合、ストレージ装置30Bは、スナップショットのコピー先の情報として、スナップショットプール内でデータを格納する領域のアドレスのみをスナップショットPVOLであるRCSVOLに関連付けて管理する。例えば、スナップショットPVOLがページごとにデータを管理するとして、そのページが#0~100で表されるとすると、スナップショットペアボリューム管理情報351は、各ページに対して、スナップショットPVOL側のデータが格納されたアドレス情報と、スナップショットペアID(または世代)ごとのスナップショットSVOL側のデータが格納されたスナップショットプールのアドレス情報とを対応付けて管理する。
 このようにSSVOLがボリュームIDを持たないことで、スナップショットの世代数が増加しても、ボリュームIDを消費せずにすむ。ボリュームIDは予め決められた上限数があり、それを超える場合には、設定のしなおしなどが必要となるため、運用上の負荷が増える。また、ボリュームIDが増えると管理情報が増えるため、管理情報を格納するメモリ量の確保をする必要がある。ボリュームIDを消費せずにスナップショット取得可能な世代数を増やす点で、この方法は有効である。
 スナップショットペアの状態として、スナップショットペアの各々のボリュームに格納されているデータの同期が取られ、各々に格納されたデータの内容が一致している状態を「PAIR」状態や、スナップショットペア間でデータの同期が取られていない「SPLIT」状態(「分割」状態という場合もある)などがある。
 ストレージ装置30Bは、例えば、PAIR状態にあったペアを、特定の時刻にSPLIT状態に変更する。このとき、SSVOLには、特定の時刻において格納されていたデータが保存される。このような処理を「スナップショットを取る」という。その後、ホスト計算機10がSSVOLからデータを読み出して他の記憶装置(例えばテープ装置など)に書き込むことで、スナップショットを取った時刻に格納されていたデータのバックアップをとることができる。なお、ストレージ装置30Bは、スナップショットを取った後のSSVOLそのものをデータのバックアップとして保存しておいてもよい。
 ストレージ装置30Bは、スナップショットの複数のペアの集まりであるスナップショットグループを用いてもよい。この場合、ストレージ装置30Bは、スナップショットグループ内の複数のペアに対して同じ操作を実行できる。
 図6は、コンシステンシグループ管理情報を示す。
 コンシステンシグループ管理情報502は、コンシステンシグループを管理するための情報である。コンシステンシグループ管理情報502は、少なくとも、ストレージ装置30Aに格納される。
 コンシステンシグループ管理情報502には、コンシステンシグループID511、ペア状態512、最新シーケンス番号530、未転送シーケンス番号540、正式化済みシーケンス番号550、ペアボリューム情報560、プライマリ側(P)ジャーナルボリューム情報570およびセカンダリ側(S)ジャーナルボリューム情報580が含まれる。
 コンシステンシグループ内のプライマリ側(P)ボリュームに対してホスト計算機10からライト要求を受けたデータは、コンシステンシグループ内でのライト要求順序を保って、各プライマリ側(P)ボリュームのリモートコピーペアであるセカンダリ側(S)ボリュームにコピーされる。ライト順序を保つために各リモートコピーデータには、後述するシーケンス番号610が付与される。
 ストレージ装置30Bでは、シーケンス番号610が揃ったところまでのリモートコピーデータをRCSVOL266に反映させることができる。若いシーケンス番号610が抜けているリモートコピーデータは反映させない。このストレージ装置30Bで反映可能と判定されたリモートコピーデータを反映させる処理を、「正式化」と呼ぶことがある。
 コンシステンシグループID511はコンシステンシグループを一意に決定する識別子である。
 ペア状態512は、当該コンシステンシグループ内の全ペアボリュームが複製状態にある「PAIR」、当該コンシステンシグループ内の一つ以上のペアボリュームが差分コピー中である「COPY」、当該コンシステンシグループ内の全ペアボリュームがサスペンド状態にある(当該コンシステンシグループ内での整合性がある状態)「SUSPEND」、当該コンシステンシグループ内の一つ以上のペアボリュームがサスペンド状態にある(当該コンシステンシグループ内で整合性がない状態)「SUSPEND-E」のうち、いずれかの状態を表す。
 最新シーケンス番号530は、ストレージ装置30Aで当該コンシステンシグループのリモートコピーデータに付与されるシーケンス番号610のうち、もっとも新しく付与された番号である。
 未転送シーケンス番号540は、ストレージ装置30Aからストレージ装置30Bに転送されていないリモートコピーデータのシーケンス番号610のうち、もっとも古いシーケンス番号610である。ストレージ装置30Aは未転送のリモートコピーデータのうち古いシーケンス番号610をもつリモートコピーデータから順に転送する。
 正式化済みシーケンス番号550は、ストレージ装置30Bで正式化が済んだリモートコピーデータのシーケンス番号610のうち、もっとも新しいシーケンス番号610である。
 ペアボリューム情報560には、当該コンシステンシグループに含まれる各ペアのリモートコピーペアボリューム管理情報301が含まれる。
 プライマリ側ジャーナルボリューム情報570は、プライマリサイト100A側についての、ストレージ装置ID571を含み、当該コンシステンシグループに含まれる各ジャーナルボリュームのジャーナルボリューム管理情報401を示す。セカンダリ側ジャーナルボリューム情報580は、セカンダリサイト100B側についての、ストレージ装置ID581を含み、当該コンシステンシグループに含まれる各ジャーナルボリュームのジャーナルボリューム管理情報401を示す。ストレージ装置ID571、581は、ジャーナルボリュームを含む各ストレージ装置30の識別子である。
 図7は、リモートコピーデータを示す。
 リモートコピーデータ601は、ストレージ装置30Aからストレージ装置30Bに転送されるデータである。リモートコピーデータ601は、コンシステンシグループID511、シーケンス番号610、タイムスタンプ620、コピーデータ情報630を含む。
 コンシステンシグループID511は、前述したようにコンシステンシグループを識別するものである。シーケンス番号610は、前述したように、コンシステンシグループ内でライト順序を保つために付与される通し番号である。
 タイムスタンプ620は、ストレージ装置30Aにおいて、ホスト計算機10からデータのライト要求を受けた時刻を表す情報である。タイムスタンプ620は、ストレージ装置30Bのデータがストレージ装置30Aのどの時刻のデータであるかを知るために利用される。
 コピーデータ情報630は、各コピーデータに対し、格納データボリュームID631、データ格納アドレス632、データ長633、データ634を含む。格納データボリュームID631は、ストレージ装置30BにおけるRCSVOLを示す識別子である。データ格納アドレス632は、RCSVOLにおけるライトデータの書き込む場所を示す。データ長633は、ライトデータのサイズを示す。データ634は、RCPVOLに書き込まれるデータのコピーで、RCSVOLもRCPVOLと同じようにライト更新される。
 なお、コピーデータは一つであってもよいし、複数であってもよい。RCPVOLへのホスト計算機10からの一つのライトごとにリモートコピーデータ601を作る場合、コピーデータは一つになる。ある時間間隔内(例えば10秒間隔など)にホスト計算機10からストレージ装置30Aが受けたライト要求をまとめてリモートコピーデータ601を作る場合、コピーデータが複数になる。この場合、コピーデータは、ホスト計算機10からのライトデータと同一でもよい。また、ストレージ装置30Aは、ホスト計算機10からの更新があった領域を差分として保存し、差分の領域のデータをコピーデータとしてもよい。同一領域に複数のホスト計算機10からのライト要求がある場合、差分の領域のデータをコピーデータとすると、コピーデータ量を削減できる。
 図8は、ジャーナルボリューム管理情報を示す。
 ジャーナルボリューム管理情報401は、リモートコピーのジャーナルを格納するボリューム(ジャーナルボリューム)を管理する情報である。ジャーナルおよびジャーナルデータとは、ストレージ装置30Aに格納されたデータの更新履歴であり、たとえば、リモートコピーデータにライト要求時刻などを付加したものである。ジャーナルボリューム管理情報401は、ジャーナルボリュームごとに持つ情報であり、ストレージ装置30Aの共有メモリ33Aとストレージ装置30Bの共有メモリ33Aに格納される。
 ジャーナルボリューム管理情報401には、ストレージ装置ID410、ボリュームID420、ジャーナル情報430が含まれる。ストレージ装置ID410は、各ストレージ装置30を識別するものであり、ボリュームID420は各ストレージ装置30内でジャーナルボリュームを識別するものである。当該ジャーナルボリュームが仮想ボリュームである場合、ジャーナルボリューム管理情報401は、当該ジャーナルボリュームに対応するプールのプールIDを含んでもよい。
 ジャーナル情報430には、ジャーナルボリュームに格納されている各ジャーナルに対し、シーケンス番号431とジャーナルメタデータポインタ432が含まれる。ジャーナルメタデータポインタ432は、ジャーナルメタデータの所在を表わすポインタである。シーケンス番号431とジャーナルメタデータについての詳細は後述する。
 図9は、データボリューム管理情報を示す。
 データボリューム管理情報501は、データボリュームを管理するための情報であり、データボリュームのストレージ装置30内で識別するためのボリュームID510、当該データボリュームのボリューム属性530、当該データボリュームに対応するプールID524、当該データボリュームのサイズ536、および、当該データボリュームとペアを成すデータボリュームの情報であるペアボリューム情報520が含まれる。
 ペアボリューム情報520には、当該ペアボリュームが存在するストレージ装置の識別子であるストレージ装置ID521、当該ペアボリュームを識別するデータボリュームID522、当該ペアの状態を示すペア状態523が含まれる。ストレージ装置ID521とデータボリュームID522を組み合わせることにより、データボリュームが一意に決まる。
 ペア状態523には、データボリュームが複製状態(ボリューム内でデータ一貫性がある状態)にある「PAIR」、差分コピーをおこなっている「COPY」、ボリュームやパスの閉塞等によりコピー処理が停止されサスペンド状態にある「SUSPEND」のうちいずれかの状態を指す。
 ボリューム属性530は、論理ボリュームの属性の識別子を示す情報である。当該データボリュームがRVOL311である場合にはRVOLを示す識別子が格納され(つまり“実ボリューム”であればその識別子)、当該データボリュームがTPVOL312である場合にはTPVOLを示す識別子(つまり“シンプロビジョニングのボリューム=容量仮想化ボリューム”であればその識別子)が格納される。また、当該データボリュームがプールに設定されている場合は、プール属性を示す識別子が格納される。ボリューム属性530は、外部ボリューム等においても、同様に対応する識別子を格納する。
 プールID524は、当該データボリュームがプールに設定されている場合に、当該データボリュームが属する形成するプールの識別子が格納される。当該データボリュームが仮想ボリュームに設定されている場合、プールID524は、データを格納する際に、記憶領域を割り当てるプールのプールIDである。
 サイズ526は、当該データボリュームに設定されている容量を示す。
 データボリューム管理情報501は、その他、図示していないが、当該データボリュームを構成する物理ハードディスク番号群や、その物理ハードディスクからボリュームを構成するRAIDレベルや、LU番号、物理ポート番号などの情報を管理する。
 図10は、ジャーナルデータとジャーナルメタデータの関係を示す。
 ここでジャーナルは、データのコピーであるジャーナルデータ821と、ジャーナルデータの管理情報であるジャーナルメタデータ701とを含む。
 一般に、RCPVOL265、RCSVOL266、およびジャーナルボリューム267A、267Bの各々は、予め定められた論理ブロック単位で管理される(例えば512KB)。論理ブロックの各々には、論理ブロックアドレスが付与されている。
 プライマリサイト100Aのジャーナルボリューム267Aは、ジャーナルメタデータ領域810A、および、ジャーナルデータ領域820Aを有する。ジャーナルデータ領域820Aには、ジャーナルデータ821A、すなわち、ライトコマンドによってRCPVOL265に書き込まれたデータ831Aのコピーが格納される。ジャーナルメタデータ領域810Aには、ジャーナルデータ821Aに関するジャーナルメタデータ701Aが格納される。
 セカンダリサイト100Bのジャーナルボリューム267Bも、ジャーナルボリューム267Aと同様に、ジャーナルメタデータ領域810B、および、ジャーナルデータ領域820Bを有する。ジャーナルメタデータ領域810Bには、ジャーナルボリュームのジャーナルメタデータ領域810Aから転送されたジャーナルメタデータ701Bが格納される。ジャーナルデータ領域820Bには、ジャーナルボリューム267Aのジャーナルデータ領域820Aから転送されたジャーナルデータ821Bが格納される。
 図11は、ジャーナルメタデータを示す。
 ジャーナルメタデータ701は、データとジャーナルデータを関連付けるための管理情報であり、データボリューム情報710とジャーナル情報720を含む。
 データボリューム情報710には、データが更新された時刻を示す更新時刻711、更新されたデータを格納するデータボリュームを識別するデータボリューム識別子712、および、データを格納するデータボリューム上の先頭アドレスを示すデータ格納アドレス713を含む。
 ジャーナル情報720には、ジャーナルデータを格納するジャーナルボリューム上の先頭アドレスを示すジャーナルデータ格納アドレス721、ジャーナルデータのデータ長722、および、ジャーナル取得の際に割り当てられたコンシステンシグループ内での当該ジャーナルの通番であるジャーナルシーケンス番号723を含む。
 前述のジャーナルとデータとの関係において、ジャーナルメタデータ701Bは、RCPVOL265で行われたデータ更新の情報を持ち、そのジャーナル情報720Bは対応するジャーナルデータ821Bのアドレス、データ長、シーケンス番号を示す。ストレージ装置30Bは、ジャーナルデータ821Bを、ジャーナルボリューム267B内のジャーナルデータ領域820Bから、RCSVOL266のデータ格納アドレス713Bに対応するアドレスへ、ジャーナルデータ821Bをコピーすることによって、RCPVOL265での更新をRCSVOL266へ反映することができる。
 各アドレスは、ボリューム上の論理ブロックアドレス(Logical Block Address:LBA)により表されてもよい。データ長は、論理ブロック数により表されてもよい。また、データが格納されている場所は、データが格納された領域(ジャーナルデータ領域またはジャーナルメタデータ領域)のベースアドレス(先頭LBA)との差分(オフセット)で表されても良い。本実施例において、ジャーナルメタデータ701のデータ長は一定(例えば64バイト)であるが、ジャーナルデータのデータ長は、ライトコマンドで更新されるデータに依存するので一定ではない。
 コンシステンシグループ定義時に、各ストレージ装置30は、設定されるジャーナルボリューム267に対して、ジャーナルメタデータ領域810およびジャーナルデータ領域820の設定をおこなう。具体的には、各領域の先頭LBAおよびブロック数が設定される。
 ストレージ装置30は、ジャーナルボリュームを、シーケンス番号順に記憶領域の先頭から使用し、最後まで使用したら、先頭へ戻ってサイクリックに使用する。プライマリサイト100Aのジャーナルは、セカンダリサイト100Bへ転送済みか、セカンダリサイト100Bにて当該ジャーナルを反映し終わったタイミングで、パージされ、順次ジャーナルの領域が解放される。セカンダリサイト100Bのジャーナルも同様に、RCSVOL266に反映済みとなったタイミングでパージされ、順次ジャーナルの領域が解放される。また、ストレージ装置30は、ジャーナルをジャーナルボリュームに格納しているが、キャッシュメモリ32や、専用に設けられたハードディスクやフラッシュメモリ、RAM等に格納してもよい。
 ホスト計算機10、あるいは、ストレージ装置30に接続された保守端末(あるいは、管理装置)が持つGUI(Graphical User Interface)等が、ストレージ装置30にペア作成コマンドを発行し、コピー元となるストレージ装置30Aが有するRCPVOL265と、RCPVOL265に格納されるデータのコピー先となるストレージ装置30Bが有するRCSVOL266とを、ペアとして関連付けることで、リモートコピー構成が構築される。さらに、ストレージ装置30は、各々のジャーナル処理管理プログラム221を用いて、RCPVOL265およびRCSVOL266に対応するジャーナルを格納するジャーナルボリュームを割り当て、コンシステンシグループ(データボリュームのペアとジャーナルボリュームのペア)を形成する。
 まず、RCPVOL265からRCSVOL266へデータをコピーする形成コピー処理が実行される。コピーする際には、RCPVOL265のボリューム先頭領域から末尾まで転送される。
 <バックアップ処理動作>
 以下、RCPVOL265のバックアップの動作について説明する。
 図12は、ジャーナル処理の概要を示す。
 ここでは、通常運用時、プライマリサイト100Aのストレージ装置30Aでアクセスを受け付ける場合のジャーナル処理について説明する。
 ストレージ装置30Aおよび30Bが、それぞれジャーナル処理管理プログラム221を実行してジャーナル処理を制御する。
 ジャーナル取得プログラム223Aを実行することによって、ストレージ装置30Aは、RCPVOL265に書き込まれるデータのコピーをジャーナルデータとして、ジャーナルボリューム267Aに格納する。また、ストレージ装置30Aは、ジャーナルの一部としてジャーナルメタデータもジャーナルボリューム267Aに格納する。これらの処理がジャーナル取得処理である。
 一方、ストレージ装置30Bは、ジャーナル反映プログラム224Bを実行してジャーナル反映処理をおこなう。ジャーナル反映プログラム224Bは、ジャーナルボリューム267Bに格納されたジャーナルに基づきデータをRCSVOL266に反映して、RCPVOL265で更新されたデータをRCSVOL266に反映する。
 図13は、ジャーナル処理の詳細を示す。
 ストレージ装置30Aにおいて、IO処理プログラム261は、ホスト計算機10からRCPVOL265へのライト要求を受信すると(S1110)、ホスト計算機10から受信したデータをRCPVOL265に書込む。ジャーナル取得プログラム223は、ジャーナルを作成し、作成したジャーナルをジャーナルボリューム267Aに格納する(S1112)。ここで、ジャーナル取得プログラム223は、ストレージ装置30Aの共有メモリ33上に格納されているコンシステンシグループ管理情報502を参照し、ジャーナル格納先を決定し、最新シーケンス番号530の次の番号をシーケンス番号として取得し、ジャーナルメタデータ701を作成する。具体的には、ジャーナル取得プログラム223は、書込まれるデータのコピーであるジャーナルデータと、作成したジャーナルメタデータ701とからジャーナルを作成し、ジャーナルボリューム267Bに格納する。ストレージ装置30Aは、ストレージ装置30Aへの書き込みが完了した時点で、ホスト計算機10への書込み完了応答を行う。ストレージ装置30Aからストレージ装置30Bへのジャーナルの転送は、ライト要求とは非同期に行われる。
 ストレージ装置30Bは、一定周期ごと等、所定のタイミングで、ストレージ装置30Aのジャーナルの情報を取得する。ストレージ装置30Bにおいて、ジャーナル処理管理プログラム221Bは、ストレージ装置30Aから、ジャーナル作成状況に関する情報を取得するための要求を、ストレージ装置30Aに送信する(S1114)。ジャーナル作成状況に関する情報は、例えば、ジャーナルボリューム内のジャーナルの容量、ジャーナルの一番古い時刻等である。ジャーナル処理管理プログラム221Aは、要求に従ってジャーナル作成状況に関する情報をストレージ装置30Bに転送する(S1115)。ジャーナル処理管理プログラム221Bは、この取得した情報を利用してジャーナル転送要求を作成する。
 次に、ストレージ装置30Aからストレージ装置30Bにジャーナルを転送する処理について説明する。ストレージ装置30Bにおいて、GUIを介したユーザからの指示の入力あるいは予め定められたスケジュールに従って、ジャーナル転送指示が発生すると、ジャーナル処理管理プログラム221Bは、ストレージ装置30Aのジャーナル転送プログラム222Aに対し、ジャーナル転送要求を出す(S1116)。スケジュールは、例えば、ストレージ装置30Aで一定量のジャーナルがジャーナルボリューム267Aに格納されたときや、一定期間ごと等である。
 ジャーナル転送要求には、コピーすべきジャーナル(複数でも良い)、そのジャーナルが格納されているジャーナルボリューム267A、そのジャーナルボリュームを有するストレージ装置30Aを指定する情報、および、コピーしたジャーナルが格納されるジャーナルボリューム267Bを指定する情報が含まれている。ジャーナル処理管理プログラム221Bは、共有メモリ33上のコンシステンシグループ管理情報502から取得した情報から、ジャーナル転送要求を作成する。
 ジャーナル転送要求を受けたジャーナル転送プログラム222Bは、ジャーナル転送要求で指定されたジャーナルに対するリードコマンドをストレージ装置30Aに対して発行する(S1118)。このリードコマンドを受けたストレージ装置30Aのジャーナル処理管理プログラム221Aは、リードコマンドで指定されたジャーナルをストレージ装置30Bに送信する(S1120)。ジャーナルを受信したストレージ装置30Bのジャーナル処理管理プログラム221Bは、ジャーナル転送要求で指定されたジャーナルボリューム267Bに、受信したジャーナルを格納する(S1121)。
 その後、ストレージ装置30Bのジャーナル処理管理プログラム221Bは、ストレージ装置30Bのジャーナル反映プログラム224Bに対して、ジャーナル反映要求を発行する(S1122)。ジャーナル反映要求を受けたジャーナル反映プログラム224Bは、ジャーナルボリューム267Bのジャーナルのシーケンス番号に従って、ジャーナルデータをRCSVOL266に書込むことで、RCSVOL266にRCPVOL265のデータの反映をおこなう(S1124)。なお、ジャーナル反映プログラム224Bは、反映に用いられたジャーナルが格納されていた領域をパージする(S1125)。これにより、その領域は、新たなジャーナルの格納に利用されることができる。
 また、ジャーナル反映プログラム224Bは、RCSVOL266にデータが反映されたジャーナルのシーケンス番号を、ストレージ装置30Aのジャーナル処理管理プログラム221Aに通知する。これにより、ジャーナル処理管理プログラム221Aは、RCSVOL266に反映されたジャーナルが格納されていた、ストレージ装置30Aのジャーナルボリューム267Aの領域を解放する(S1126)。この領域は、新たなジャーナルの格納に利用することができる。なお、ジャーナルのパージを、通知の受領後すぐにおこなう必要はない。ジャーナルのパージを定期的におこなっても良いし、ユーザからの指示に従ってパージしても良い。
 以上のジャーナル処理によれば、RCPVOL265からRCSVOL266への非同期リモートコピーを行うことにより、ホスト計算機10によるRCPVOL265のアクセスにおいて、同期リモートコピーを行う場合に比べて、応答時間を小さくすることができる。ストレージ装置30Aがスナップショット作成条件の成立に応じてマーカを作成し、ストレージ装置30Bがマーカの検出に応じてRCSVOL266のスナップショットを作成することで、RCPVOL265の特定の時刻のスナップショットを、セカンダリサイト100Bに作成することができる。これにより、プライマリサイト100Aの障害時に、セカンダリサイト100Bを用いて復旧することが容易になる。RCSVOL266をTPVOLとすることにより、RCSVOL266の容量の管理等が容易になる。
 ジャーナル処理の変形例について説明する。
 変形例のジャーナル処理は、前述のジャーナル処理のようにストレージ装置30Aがストレージ装置30Bからのリードコマンドを待つのではなく、ストレージ装置30Aからストレージ装置30Bに対してデータを書き込むライトコマンドを発行することにより、ジャーナルの転送を行う。
 変形例のジャーナル処理では、ストレージ装置30Aのジャーナル処理管理プログラム221Aは、S1116に代えて、ジャーナル転送プログラム222Aにジャーナル転送要求を発行する。ジャーナル転送要求には、ストレージ装置30Bへ送信すべきジャーナルが格納されているジャーナルボリューム267A、ストレージ装置30Bを指定する情報、および、ストレージ装置30Bでそのジャーナルを格納すべきジャーナルボリューム267Bを指定する情報等が含まれる。ジャーナル処理管理プログラム221Aは、共有メモリ33上に格納されたコンシステンシグループ管理情報502Aから、これらの情報を取得する。
 ジャーナル転送要求を受け取ったジャーナル転送プログラム222Aは、S1118に代えて、ライトコマンドをストレージ装置30Bに発行することで、指定されたジャーナルをストレージ装置30Bに送信する。ストレージ装置30Bは、ストレージ装置30Aからライトコマンドとして受信したジャーナルを、そのコマンドで指定されたジャーナルボリューム267Bの領域に格納する。
 ジャーナルを格納する方法として、物理ボリュームにジャーナルを格納する方法や、ジャーナルボリュームをシンプロビジョニングボリュームで作成し、ジャーナルをプール268に格納する方法等がある。
 ストレージ装置30Bで、ジャーナルをRCSVOLへ反映する処理の詳細を説明する。
 ストレージ装置30Bは、RCSVOL266およびジャーナルボリューム267Bを容量仮想化(シンプロビジョニング)ボリュームに設定する。ストレージ装置30Bは、ストレージ装置30Aから転送されたリモートコピーデータを、リモートコピー用プールに格納する。具体的には、ストレージ装置30Bは、ストレージ装置30Aから転送されるジャーナルを、プール268Bに格納する。ストレージ装置30Bは、ジャーナルメタデータから、RCSVOL266内の更新対象ページを求める。更新対象ページに既にデータが格納されていれば、ストレージ装置30Bは、更新対象ページにデータを上書きする。更新対象ページにデータが格納されていなければ、ストレージ装置30Bは、更新対象ページを管理するデータ格納アドレスに、ジャーナルデータが格納されたプール268B内のページのアドレスを格納する。ストレージ装置30Bは、このようにマッピングの変換で、プール内268B内のページを、RCSVOL266に割り当てることができる。
 また、ストレージ装置30A側のRCPVOL265が容量仮想化ボリュームであってもよい。
 ストレージ装置30Bの重複排除プログラム225は、ストレージ装置30Aから転送されたジャーナルに対して重複排除処理を実行してもよい。
 図14は、重複排除処理を示す。
 重複排除プログラム225は、ストレージ装置30Aからストレージ装置30Bへ転送されたジャーナル内のジャーナルデータが、プール268Bに格納されている(RCSVOL266に反映前の)ジャーナルデータと、同一であるか否かを判定する。同一であると判定された場合、重複排除プログラム225は、プール268Bに格納されているジャーナルデータ821Bに対応するジャーナルメタデータ701B内のジャーナルデータ格納アドレス721Bの値を、転送されたジャーナルデータに対応するジャーナルメタデータ701Bb内のジャーナルデータ格納アドレス721Bbへ格納する。この場合、重複排除プログラム225は、転送されたジャーナルデータをプール268Bへ書き込まない。これにより、ストレージ装置30Bは、重複するデータを格納することを防ぎ、プール268Bの使用量を削減できる。同一でないと判定された場合、重複排除プログラム225は、プール268Bからジャーナルボリューム267Bに空き領域を割当て、転送されたジャーナルデータを格納する。いずれの場合も、転送されたジャーナルメタデータ701Bbのエントリは必要となる。重複排除プログラム225は、転送されたジャーナルデータのハッシュ値を算出して保存し、二つのハッシュ値を比較することで、二つのジャーナルデータが同一であるか否かを判定してもよい。
 なお、重複排除プログラム225は、ストレージ装置30Aからストレージ装置30Bへ転送されたジャーナル内のジャーナルデータが、プール268B内のデータと、同一であるか否かを判定してもよい。
 なお、重複排除プログラム225は、RCSVOL266に反映するデータを重複排除して、プール268Bに格納してもよい。
 次に、スナップショット取得条件が成立した場合の動作について説明する。
 本実施例のストレージシステムは、スナップショット取得条件が成立すると、RCPVOL265のスナップショットをストレージ装置30B内に作成する。例えば、スナップショット取得条件は、ストレージ装置30Aが、ホスト計算機10から、スナップショットを作成する指示であるスナップショット取得指示を受信することである。また、例えば、ホスト計算機10からストレージ装置30Aに対して、スナップショットを取得する時刻が設定され、スナップショット取得条件は、その時刻に達することである。
 本実施例のストレージシステムは、非同期リモートコピーを実行しているため、ストレージ装置30Aの非同期リモートコピーの正ボリューム(RCPVOL265)と、ストレージ装置30Bの非同期リモートコピーの副ボリューム(RCSVOL266)との間に、RCPVOL265とRCSVOL266が不一致である状態が発生する。このようにRCPVOL265とRCSVOL266が不一致である状態でスナップショットを取得しても、取得したい瞬間のRCPVOL265のスナップショットが取れない。スナップショットを取得するためには、ストレージ装置30Aとストレージ装置30Bが同じ状態、すなわち、静止化された状態である必要がある。
 ストレージ装置30Bは、ジャーナルを逐次読み出し、RCSVOL266への反映作業中、ジャーナル内にマーカを見つけると、RCSVOL266のスナップショットをSSVOLに取得できる。マーカとは、RCPVOL265のスナップショット作成時、コンシステンシグループ内で整合性がとれていることを示す情報である。マーカは例えば、予め設定されたデータパターンであってもよいし、予め設定されたアドレスを示すジャーナルメタデータを含んでいてもよい。
 これにより、ストレージシステムは、プライマリサイト100Aに対して指示された時点のRCPVOL265のスナップショットを、セカンダリサイト100Bに作成することができる。
 また、ホスト計算機10が、スナップショット取得指示をストレージ装置30Aに発行しても良い。また、ホスト計算機10がスナップショット取得指示と共に、I/O要求を停止してもよい。この場合、ストレージ装置30Bは、スナップショットを作成すると、ストレージ装置30Aに通知し、ストレージ装置30Bは、スナップショット取得指示の応答をホスト計算機10へ返す。これに応じて、ホスト計算機10は、I/O要求を再開する。
 管理装置が、スナップショット取得指示をストレージ装置30Aに発行しても良いし、スナップショット取得の時刻をストレージ装置30Aに予め設定してもよい。
 RCPVOL265の静止化状態を積極的に作成するために、ストレージ装置30Aは、スナップショット取得指示に応じて、I/Oを停止してもよい。
 ストレージ装置30Bが、ジャーナルボリューム267Bとして、シンプロビジョニングによる容量仮想化ボリュームを作成すると、ジャーナルの実体はプール268Bに格納される。以下の説明では、複数のジャーナルボリュームが同一のプール268Bを使用する場合について説明する。ジャーナルをプール268Bに格納すると、S1120のジャーナルの転送の処理は、プール268Aからプール268Bにジャーナルを転送する。ページとはプールの記憶領域を管理するための記憶単位のことである。ページサイズは、例えば8MB、数十MBなどである。
 ストレージ装置30AがRCPVOL265に対するスナップショット取得指示を受けると、その指示をジャーナルに格納し、ジャーナルがストレージ装置30Bに転送され、ストレージ装置30Bがジャーナル内のスナップショット取得指示を検出したとき、スナップショットを取得してもよい。即ち、前述のマーカとしてスナップショット取得指示を用いることにより、RCPVOL265の静止化を行って、その時点までのジャーナルを転送すれば、スナップショット取得時に、RCPVOL265とRCSVOL266が同じ状態となる。
 図15は、スナップショット取得指示が発行された場合のジャーナル処理を示す。
 まず、ストレージ装置30Aの処理を説明する。スナップショット取得が指示されると、ジャーナル処理管理プログラム221Aは、RCPVOL265のジャーナルボリューム267Aのその時点で格納されている最後の順番のジャーナルにマーカを入れる(S1010)。マーカは、スナップショット取得前の最後のジャーナルであることを示す。
 RCPVOL265のジャーナルは、予め決められた契機で、予め決められた数ずつ、ストレージ装置30Bへ非同期に転送される。ジャーナルは、作成された時刻の順番を守って反映される。契機がきたら、ジャーナル処理管理プログラム221Aは、RCSVOL266へ未転送のジャーナルがRCPVOL265のジャーナルボリューム267Aに残っているか否かを判定する(S1012)。残っている場合(S1012がYES)、ジャーナル転送プログラム222Aは、ストレージ装置30Bにジャーナルを転送する(S1014)。転送されたジャーナルは、ジャーナルボリューム267Bに格納される。スナップショット取得指示までの全てのジャーナルを転送し終わっている(すなわちマーカの転送が完了している)場合(S1012がNO)、コントローラ31Aは処理を終了する。
 また、ここでは、ジャーナル処理管理プログラム221Aが、ジャーナルが転送済みか判定しているが、ストレージ装置30Bのリモートコピー制御プログラム260Bが、ジャーナルボリューム267Aからスナップショット取得指示までの全ジャーナルを取得済みか(マーカが転送済みか)判定し、取得済みでない場合、ジャーナル転送プログラム222Bがストレージ装置30Aにジャーナルリード要求を送信し、この要求に応じてジャーナル転送プログラム222Aがジャーナルを転送してもよい。
 続いて、ストレージ装置30Bのジャーナル処理を説明する。ジャーナル反映プログラム224Bは、ジャーナルボリューム267BにRCSVOL266へ未反映のジャーナルがあるか否か判定する(S1018)。未反映のジャーナルがなければ(S1018がNo)、ジャーナル反映プログラム224Bは、ストレージ装置30Aからジャーナルが送信されるまで待機する。未反映のジャーナルがあれば(S1018がYes)、ジャーナル反映プログラム224Bは、未反映のジャーナルのうちシーケンス番号が先頭のジャーナルを選択し(S1022)、選択したジャーナルがマーカであるか否か判定する(S1024)。
 もしマーカでなければ(S1024がNo)、選択したジャーナルが未反映のジャーナルであるので、ジャーナル反映プログラム224Bは、そのジャーナルによる更新がRCSVOL266のどの位置に対応するかを検索し、SVOLライト差分ビットマップ250において、その位置に対応するビットが‘1’であるか判定する(S1026)。具体的には、ジャーナル反映プログラム224Bは、ジャーナルメタデータ701内に格納されている、対応するジャーナルデータが格納されているアドレスの情報から、RCSVOL266内の位置(アドレス)を参照する。SVOLライト差分ビットマップ250は、予め決めた単位のサイズのデータをビットマップ内の1ビットに対応させて管理する。データボリューム内の領域の先頭から前述のサイズ単位にビットを対応させて使う。例えば、SVOLライト差分ビットマップ250内のビット#10に対応するRCSVOL266内のアドレスが#001~#100であるとき、ジャーナルデータに対応するデータ格納アドレス713が#003である場合、SVOLライト差分ビットマップ250内の対応するビットはビット#10である。このように、ジャーナル反映プログラム224Bは、RCSVOL266内のアドレスからSVOLライト差分ビットマップ250内のビットを特定することができる。
 ジャーナル反映プログラム224Bは、ジャーナルデータに対応するビットを特定し、そのビットが‘1’であれば(S1026がYes)、RCSVOL266にあるデータが最新のデータではない、すなわちRCPVOL265のデータと一致していない可能性があると判定し、RCSVOL266にジャーナルデータを反映し(S1028)、ジャーナルデータをジャーナルボリューム267Bから削除する(S1030)。ジャーナル反映プログラム224Bは、次のジャーナルがあれば同様の処理を繰り返す。
 次のジャーナルが、マーカであった場合(S1024がYes)、ジャーナル反映プログラム224Bは、全ての未反映のジャーナルの反映が完了したと認識する。即ち、RCPVOL265とRCSVOL266に同一のデータが格納された状態である。その後、スナップショット制御プログラム262Bは、RCSVOL266からスナップショットを取得する(S1034)。ここでスナップショット制御プログラム262Bは、スナップショットペアのコピー元であるRCSVOL266の複製を、スナップショットペアのコピー先であるスナップショットSVOL(SSVOL)271に作成する。ここでのSSVOL271は仮想ボリュームである。スナップショット制御プログラム262Bは、RCSVOL266の実体が格納されるプール268B内のページを、SSVOL271にマッピングする。
 ストレージ装置30Aは、形成コピーが終わっていない状態で、スナップショット取得指示を受けた後に、形成コピー前の箇所に書き込み要求を受けた場合、更新前の状態をストレージ装置30BのRCSVOL266に格納する必要があるため、この場合は当該箇所の更新前のデータをジャーナルとして登録する。ストレージ装置30Bは、マーカより前にあるジャーナルと、形成コピーされたデータをRCSVOL266に反映してから、スナップショットを作成する。その後、ストレージ装置30Bは、形成コピー処理が完了してから、マーカより後のジャーナルをRCSVOL266へ反映する。
 以下、スナップショット作成(S1034)の詳細について説明する。
 図16は、スナップショット作成時のRCSVOLとSSVOLの関係を示す。
 前述のジャーナル処理により、ストレージ装置30Aからストレージ装置30Bへ転送されたジャーナルは、ジャーナルボリューム267Bに格納される。ジャーナルボリューム267B内のページ251の実体のジャーナルデータは、プール268B内のページ252に格納される。ジャーナルメタデータ701内のデータ格納アドレスは、ページ252のアドレスを示す(S2210)。
 ストレージ装置30Bは、ジャーナルボリューム267Bからシーケンス番号順にジャーナルを取り出しRCSVOL266へ反映していく。ページ251のジャーナルデータを反映すると、RCSVOL266内のページ253をプール268B内の実体のページ252にマッピングする(S2212)。すなわちRCSVOL266内のページ253は、ページ251の実体のページ252にマッピングされる。既にRCSVOL266内のページ253にデータが格納されていた場合、ストレージ装置30Bは、実体のページ252に上書きする。
 この状態でストレージ装置30Bが、ジャーナルボリューム267Bから取り出されたジャーナルにマーカを検出すると、スナップショットをする(S1034)。ここでストレージ装置30Bは、RCSVOL266内のページ253に対応するSSVOL271内のページ255に、実体のデータを格納することなく、RCSVOL266内のページ253のアドレスをマッピングする(S2214)。
 図17は、スナップショット作成時のRCSVOLとSSVOLのデータの関係の変形例を示す。
 RCSVOL266とSSVOL271に割り当てられるプールが、同一のプール268Bであれば、直接プール268B内のページ252をSSVOL271内のページ255にマッピングしてもよい。RCSVOL266とSSVOL271が同一のプール268Bを用いることにより、プール268Bの管理の作業コストを抑えることができる。
 図18は、スナップショット作成後のRCSVOLとSSVOLの関係を示す。
 スナップショット作成後にRCSVOL266の更新を示すジャーナルにより、プール268B内のページ252にジャーナルデータが反映される場合、反映前に、プール268B内のページ252のデータを、SSVOL271用のプール272内のページ254へ転送(退避)し(S2216)、SSVOL271内のページ255のマッピング先をプール272内のページ254へ変更し(S2218)、プール268B内のページ252をジャーナルデータで更新する(S2220)。
 以上のようにストレージ装置30Bへ非同期リモートコピーの差分を転送し、かつスナップショットを組み合わせることで、高速なフルバックアップイメージを作成することができる。
 このようにストレージ装置30Bは、マーカ(スナップショット作成)後のジャーナルのRCSVOL266への反映において、反映前のデータをSSVOL271用のプール272内のページ254へ書き込み、反映後のデータをプール268B内のページ252へ書き込む。これにより、ストレージ装置30Bは、スナップショット取得指示後のRCPVOL265の更新前のデータだけを、プール272へ書き込むことができる。なお、ストレージ装置30Bは、マーカ後のジャーナルのRCSVOL266への反映において、反映前のデータをプール268B内のページ252に維持し、反映後のデータを他のページや他のプールへ書き込んでもよい。
 なお、前述のように、SSVOL271をボリュームとして管理しない場合、SSVOL271にボリュームIDを付与しなくてもよい。その場合、ストレージ装置30Bは、スナップショットペアボリューム管理情報351と別のテーブルをもつ。このテーブルはRCSVOLのアドレスに対し、バックアップされたデータがどこに格納されているかを管理できればよい。
 以上のように、ストレージ装置30Bは、RCSVOL266内のページ253や、プール268B内のページ252を、SSVOL271内のページ255に割り当てることにより、高速にRCSVOL266のスナップショットを作成することができる。スナップショット作成後のジャーナルの反映において、反映前のデータのみを、プール272へコピーすることにより、プール272に格納されるデータはSSVOL271とRCSVOL266の差分のみとなる。これにより、プール272の使用量を抑えることができる。
 また、スナップショット用のプール272を用いることにより、プール268Bの管理や、プール272の増設等を容易にすることができる。ジャーナルボリューム267BとRCSVOL266に、同一のプール268B内のページ252を割り当てることにより、RCPVOL265からRCSVOL266へのジャーナルの反映や、RCSVOL266からRCPVOL265へのジャーナルの作成が高速になると共に、物理記憶デバイスの使用量を抑えることができる。
 以下、リストア(復元)処理について説明する。
 リストアの方法として例えば次の第一リストア処理~第三リストア処理がある。
(1)第一リストア処理:非同期リモートコピーの差分を転送するコンシステンシグループのリストア
(2)第二リストア処理:スナップショットボリュームを外部接続し、レプリケーションによるボリュームリストア
(3)第三リストア処理:スナップショットボリュームを外部接続し、ホスト計算機10で細粒度のリストア
 図19は、第一リストア処理の概要を示す。
 第一リストア処理は、前述のジャーナル処理に対して逆向きの、ストレージ装置30Bからストレージ装置30Aへの非同期リモートコピーを行う。第一リストア処理は、差分コピー、すなわち、ジャーナルを使って変更した箇所のデータをストレージ装置30Bからストレージ装置30Aへ転送する処理を行う。
 ホスト計算機10は、リストアしたいスナップショット時点を示すリストア指示をストレージ装置30Aへ発行する(S2110)。ホスト計算機10は、リストアを開始する際、RCPVOLへアクセスするアプリケーションを停止する(S2112)。ホスト計算機10は、非同期リモートコピーのストレージ装置30Aからストレージ装置30Bに運用を切り替えるための処理を行うことにより、主と副の立場を切り替える(S2114)。この切り替え以降、コピー処理の方向がストレージ装置30Bからストレージ装置30Aへとなる。ストレージ装置30Aは、ストレージ装置30Bへこの指示を通知する。
 ストレージ装置30Bは、ホスト計算機10から指定されたスナップショットのデータを、SSVOLからRCSVOLに復元する(S2120)。
 図20は、第一リストア処理におけるストレージ装置30Bの動作の詳細を示す。
 具体的には、ストレージ装置30Bは、RCSVOLの先頭アドレスから順にデータの管理単位に対象アドレスを選択する(S2121)。ストレージ装置30Bは、スナップショットペアボリューム管理情報351に基づいて、プール272内に対象アドレスに対応するスナップショットデータが存在するかどうか判定する(S2122)。
 対象アドレス対応するスナップショットデータが存在する場合、スナップショットデータが復元すべきデータであるため、ストレージ装置30Bは、スナップショットデータをRCSVOLのデータに上書きする(S2123)。そして、ストレージ装置30Bは、スナップショットデータへ非同期リモートコピーするためのジャーナルを作成し(S2124)、ジャーナルボリューム267Bへ登録する(S2130)。ストレージ装置30Bは、前述のアドレスに対するジャーナルがジャーナルボリューム267Bにあるかどうか判定する(S2125)。ジャーナルがあれば、ストレージ装置30Bは、そのジャーナルを削除し(S2126)、このフローを終了する。
 S2122の判定において対象アドレスに対応するスナップショットデータが存在しない場合、RCSVOLに格納されたデータがRCPVOLに復元すべきデータである。このため、ストレージ装置30Bは、前述のアドレスに対するジャーナルがジャーナルボリューム267Bにあるかどうか判定する(S2127)。そのジャーナルがあれば、ストレージ装置30Bは、そのジャーナルを削除する(S2128)。そして、ストレージ装置30Bは、RCSVOLに格納されたデータでジャーナルを作成して(S2129)、ジャーナルボリューム267Bに登録し(S2130)、このフローを終了する。そのジャーナルがなければ、ストレージ装置30Bは、このフローを終了する。
 ストレージ装置30Bは、対象アドレス毎にこのフローを繰り返す。
 ストレージ装置30Bは、RCSVOL内の全てのアドレスについてこのフローを実行した後、ジャーナルボリューム267Bに格納されたジャーナルをストレージ装置30Aに転送する(S2132)。ストレージ装置30Aは、転送されたジャーナルをジャーナルボリューム267Aに格納する(S2134)。ストレージ装置30Aは、ジャーナルをもとに、非同期リモートコピー構成の差異を解消して、RCPVOLをRCSVOLに同期させる。すなわち、ストレージ装置30Aは、ジャーナルの示すアドレスに対応するRCPVOLのアドレスのジャーナルデータに上書きすることで、スナップショット時点のデータを復元する(S2136)。
 RCPVOLとRCSVOLの同期がとれたら、ホスト計算機10はアプリケーションを起動する。
 前述したような、ボリューム形式でないSSVOLの管理方法の場合、ストレージ装置30Bは、スナップショットデータのリストア(S2130)のあと、スナップショットペアを分割し、SSVOLにボリュームIDを与え、SSVOLをボリューム形式として残す処理をしてもよい。
 以上の第一リストア処理によれば、セカンダリサイト100Bに作成されたSSVOL271から、プライマリサイト100AのRCPVOL265の特定の時刻のデータを復元できる。また、ストレージ装置30Bは、リストア指示の時点の、SSVOL271のうちマーカ後のジャーナルによる反映前のデータ(SSVOL271とRCSVOL266の差分)のジャーナルや、RCSVOL266のうち未反映のジャーナルの反映前のデータ(RCSVOL266とRCPVOL265の差分)のジャーナルを作成することで、SSVOL271内の全データをストレージ装置30Aへ転送する必要がなく、高速にリストアすることができる。
 図21は、第二リストア処理を示す。
 第二リストア処理は、スナップショットそのものを直接ホスト計算機10に見せる方法がある。ここでは、スナップショットデータが前述のようにボリューム形式で管理されていない場合を示す。ストレージ装置30Aが、ホスト計算機10からリストア指示を受けると(S2210)、ストレージ装置30Bは、スナップショットデータをボリュームとして管理するための仮想ボリューム(VVOL)258を設け、SSVOL269を仮想ボリューム258にマッピングする(S2212)。これにより、ストレージ装置30Aは、仮想ボリューム258内のアドレスを用いて、スナップショットデータを参照することが可能となる。
 ストレージ装置30Aは、外部ストレージ装置内のボリュームを内部のボリュームとしてアクセス可能にする外部接続機能を使って、仮想ボリューム258にアクセス可能とする。ストレージ装置30Aは、外部ボリューム(EVOL)257を設け、外部ボリューム257にストレージ装置30B内の仮想ボリューム258を外部ボリューム257にマッピングする(S2214)。ストレージ装置30Aは、外部ボリューム257からRCPVOL265へレプリケーション処理を実行し、ホスト計算機10に応答する(S2216)。ホスト計算機10は、その応答に応じて、RCPVOL265にアクセスすることで業務を実施する。レプリケーション処理は、ホスト計算機10からのアクセス中も、外部ボリューム257内のデータをRCPVOL265へコピーする。レプリケーション処理中、ホスト計算機10が、RCPVOL265へのリード要求を発行し、外部ボリューム257からリード要求の対象ページへのコピーを完了していない場合、ストレージ装置30Aは、対象ページのデータを外部ボリューム257からRCPVOL265へコピーし、そのデータをホスト計算機10へ応答する。
 これにより、ホスト計算機10は、直接接続されていないストレージ装置30Bに格納されているスナップショットデータに、高速にアクセスすることを可能になる。
 次に、第三リストア処理について説明する。
 第三リストア処理は、前述の第二リストア処理のS2214まで同様の処理を行う。その後、ホスト計算機10は、OSやアプリケーションにより、外部ボリューム257からリストア対象データを選択し、RCPVOL265へコピーする。
 これにより、ボリュームより細かい粒度のリストア対象データをホスト計算機10に提供できる。
 <環境構築>
 ストレージシステムが以上の処理を行うために、事前の環境構築をする作業が必要になる。事前の環境構築の手順について説明する。
 機器を導入後、システムユーザ(管理者)は、ネットワークの設定、ストレージ装置30の設定、ホスト計算機10の設定、ホスト計算機10上で動作するアプリケーションの設定を実施する。ストレージ装置30の設定は、プール作成、コマンドデバイス作成、ポート設定、リモートパス・外部パス(外部ストレージ装置と接続するためのパス)設定を行う。ホスト計算機10の設定は、ホスト計算機10に各コンポーネントをインストールし、ストレージシステムの管理プログラムを設定し、バックアップ設定ファイルを記述する。管理プログラムは、ホスト計算機10からストレージ装置30に対してコマンドを発行することによって、ストレージ装置30に格納されるコピー系のプログラムを操作する。管理プログラムの設定として、構成ファイルを作成する。バックアップ設定ファイルは、ホスト計算機10内に格納される。バックアップ設定ファイルは、例えば、プールIDや、RCPVOL側及びRCSVOL側のポート番号や、ジャーナルボリュームの容量やペア状態が遷移するときの監視タイムアウト値などを定義する。ここで定義された値は、以降の設定作業時に使用される。
 図22は、RCPVOL作成処理を示す。
 ストレージ装置30Aは、ホスト計算機10からの指示に応じて、RCPVOLを作成する。
 システムユーザはボリューム容量を指定して、ホスト計算機10からストレージ装置30Aに対し、ボリュームの作成指示を発行する(S1210)。例えば、ホスト計算機10は、ボリューム作成スクリプトを実行する。ホスト計算機10は、バックアップ設定ファイルを読み込み、プールIDを取得する(S1212)。ホスト計算機10は、ストレージ装置30Aにボリュームを作成するために、まだ作成されていない論理ボリュームの論理ボリューム番号の情報をストレージ装置30Aから取得する(S1214)。ホスト計算機10は、取得した論理ボリューム番号から1個選択する(S1216)。ホスト計算機10は、選択された番号の論理ボリュームを作成する指示をストレージ装置30Aに発行し、ストレージ装置30Aは、論理ボリュームを作成する(S1218)。このとき、ホスト計算機10は、取得したプールIDの情報もストレージ装置30Aへ転送する。ボリュームの容量はシステムユーザに指定された容量とし、ボリュームの属性は非同期リモートコピーボリュームのRCPVOLとなることをマークしておく。ストレージ装置30Aは、作成した論理ボリュームにLU(Logical Unit)パスを作成する(S1220)。ストレージ装置30Aは、取得した論理ボリュームの番号に対応するデータボリューム管理情報501の箇所へプールID、サイズ等の情報を格納する。ストレージ装置30Aは、LUパスを作成したらホスト計算機10へ返信する。
 ボリュームが作成されると、前述のデータボリューム管理情報501において、ボリューム属性530、プールID524、サイズ536が登録される。リモートコピーボリュームとして設定された時には、ペアボリューム情報520が登録される。さらにリモートコピーが構成されると、その情報がリモートコピーペアボリューム管理情報301に登録される。
 図23は、RCSVOL作成処理を示す。
 ストレージ装置30Bは、ホスト計算機10からの指示に応じて、RCSVOLを作成する。
 システムユーザはホスト計算機10からストレージ装置30Bへコンシステンシグループ作成指示を発行する(S1310)。具体的には、ホスト計算機10は、コンシステンシグループ作成スクリプトを実行する。ホスト計算機10のコンシステンシグループ作成プログラムは、バックアップ設定ファイルを読み込み、プールIDを取得する(S1312)。
 ストレージ装置30Bにボリュームを作成するため、ホスト計算機10は、論理ボリュームがまだ作成されていない論理ボリューム番号の情報をストレージ装置30Bから取得する(S1314)。ホスト計算機10は、取得した論理ボリューム番号から1個選択する(S1316)。ホスト計算機10は、ストレージ装置30AへRCPVOLとなるボリューム番号を指定し、RCPVOLの情報を取得する(S1318)。ホスト計算機10は、取得した情報からRCPVOLの容量などの情報を抽出する(S1320)。ホスト計算機10は、抽出した容量を指定してストレージ装置30BへRCSVOLを作成する指示を発行し、ストレージ装置30Bは、RCSVOLを作成する(S1322)。このとき、ホスト計算機10は、取得したプールIDの情報も転送する。ボリュームの容量はシステムユーザに指定された容量とし、ボリュームの属性は非同期リモートコピーボリュームのSVOLとなることをマークしておく。ストレージ装置30Bは、作成した論理ボリュームにLUパスを作成する(S1324)。ストレージ装置30Bは、LUパスを作成したら、ホスト計算機10へ返信する。
 2個目以降のRCSVOLの作成は、S1314~S1324の処理を繰り返す。
 ストレージ装置30Bは、RCPVOL情報を登録したときと同様に、データボリューム管理情報501にRCSVOL情報を登録する。
 図24は、RCPVOL側ジャーナルVOL作成処理を示す。
 ジャーナルVOLは、アクセス要求を出す上位のホスト計算機10から認識される必要がないボリューム(オフラインボリューム)であるため、ジャーナルボリューム管理情報401にて管理される。ホスト計算機10は、ジャーナルボリューム管理情報401そのものか、またはジャーナルボリュームが使用中か空きかがわかる情報を取得して(S1330)、その中から空きジャーナルボリュームIDを1つ選択する(S1332)。ホスト計算機10は、RCPVOL側ジャーナルVOLの作成の指示を、ストレージ装置30Aへ発行し、ストレージ装置30Aは、RCPVOL側ジャーナルVOLを作成する(S1334)。
 その後、ストレージ装置30Aは、RCPVOL側ジャーナルVOLに、RCPVOLのジャーナルを作成する(S1340)。
 ストレージ装置30Aは、作成されたジャーナルボリュームについて、ジャーナルボリューム管理情報401に、ボリュームID、プールIDを登録する。また、後述のコンシステンシグループ作成処理において、ストレージ装置30Aは、コンシステンシグループのコンシステンシグループ管理情報502にジャーナルボリュームのボリュームIDを登録する。
 ホスト計算機10及びストレージ装置30Bは、RCPVOL側ジャーナルVOL作成処理と同様、RCSVOL側ジャーナルVOL作成処理を行う。
 RCSVOL側ジャーナルVOL作成処理は、RCPVOL側ジャーナルVOL作成処理のうち、ストレージ装置30Aに対する処理をストレージ装置30Bに対して行う処理となる。
 ストレージ装置30は、各ジャーナルVOLがどのRCPVOLやRCSVOLとセットであるかを管理する。
 次に、コンシステンシグループ作成処理について説明する。
 ホスト計算機10は、ボリュームIDとコンシステンシグループIDを指定して、コンシステンシグループを作成する指示を、ストレージ装置30A、30Bへ発行する。ストレージ装置30A、30Bの夫々は、コンシステンシグループ管理情報502へ、同じコンシステンシグループにグルーピングする非同期リモートコピーペアの情報として、作成したRCPVOLとRCSVOLを登録する。またストレージ装置30A、30Bの夫々は、対応するジャーナルVOLを、コンシステンシグループ管理情報502内のPジャーナルボリューム情報570、Sジャーナルボリューム情報580に登録する。前述のコンシステンシグループ管理情報502の例では、RCPVOLとRCSVOLは、ペアボリューム情報560内のペアボリューム管理情報301の中に記載される。
 次に、非同期リモートコピーペア作成処理について説明する。
 ホスト計算機10は、RCPVOLのボリューム番号とRCSVOLのボリューム番号を指定する非同期リモートコピーペア作成指示をストレージ装置30A、30Bに発行する。これによって、ストレージ装置30A、30Bは、非同期リモートコピーペアを作成する。ストレージ装置30A、30Bは、指定されたRCPVOLとRCSVOLを、リモートペアボリューム管理情報301内のRCPVOL情報310、RCSVOL情報320に夫々登録する。ストレージ装置30A、30Bは、リモートペアボリューム管理情報301のアドレスをコンシステンシグループ管理情報502内のペアボリューム管理情報#nに登録する。
 図25は、スナップショットボリューム作成処理を示す。
 ホスト計算機10及びストレージ装置30Bは、前述のボリューム作成処理のS121からS1220までと同様に、ボリュームを作成する(S1370からS1376)。コピー元はRCSVOLとなるため、ストレージ装置30Bは、RCSVOLのスナップショットを取得するためのスナップショットペアボリューム管理情報351を確保する管理情報領域を作成する(S1374)。
 ホスト計算機10はバックアップボリューム(SSVOL)からリストアするときに、バックアップボリュームを認識するための、外部ボリュームをストレージ装置30Aに作成する。前述のように、外部ボリュームは、外部ストレージ内にある論理ボリュームを自分の内部ボリュームとして仮想化する方法である。
 そのために、ホスト計算機10は、ストレージ装置30AからExternalポートの情報を取得し(S1378)、その情報から、ExternalポートのWWNを抽出する(S1380)。ホスト計算機10は、ストレージ装置30Aから外部ボリュームグループを示す外部ボリュームグループ情報を取得し(S1382)、その情報から、空き外部ボリューム番号を抽出する(S1384)。ホスト計算機10は、抽出されたWWN、空き外部ボリューム番号を指定して、新たな外部ボリュームの情報をストレージ装置30Aへ送信し、外部ボリュームを示す外部ボリュームグループ情報を作成する(S1386)。
 更にホスト計算機10及びストレージ装置30Aは、前述のボリューム作成処理のS121からS1220までと同様に、SSVOLを参照する外部ボリュームを作成する指示を、ストレージ装置30Aに発行し、ストレージ装置30Aは外部ボリュームを作成する。
 以下、本実施例の効果について説明する。
 近年のビックデータ時代におけるデータ量の急激な増大に伴い、バックアップの作業時間が増加し、バックアップデータを格納するための記憶容量が増加し、バックアップ/リストアの運用・管理コストが増加している。
 従来のバックアップシステムでは、ボリューム単位の全データをリストアすると、リストアに時間がかかる。本実施例によれば、リストア指示後、ホスト計算機10がRCPVOL265にアクセスするまでの時間が短くなる。
 従来のバックアップシステムでは、バックアップ対象となるデータ量が増えることで、データを格納するために確保する記憶容量が増え続ける。本実施例によれば、ストレージ装置30Bに格納するデータ量を削減することができ、ストレージ装置30Bの記憶容量を削減することができる。
 従来のバックアップシステムでは、ストレージ装置を制御する専用のバックアップサーバが必要となる等、導入コストがかかる。また、バックアップ作業のために、バックアップサーバとストレージ装置の間の管理プログラムの設定が必要になる等、運用コストがかかる。本実施例は、バックアップサーバを導入する必要がない。
 本発明の表現のための用語について説明する。第一ストレージ装置は、ストレージ装置30Aであってもよい。第二ストレージ装置は、ストレージ装置30Bであってもよい。第一データボリュームは、RCPVOL265であってもよい。第二データボリュームは、RCSVOL266であってもよい。第一ジャーナルボリュームは、ジャーナルボリューム267Aであってもよい。第二ジャーナルボリュームは、ジャーナルボリューム267Bであってもよい。スナップショットは、SSVOL271であってもよい。特定条件は、スナップショット作成条件であってもよい。第二データボリューム内の記憶領域は、ページ253であってもよいし、ページ252であってもよい。スナップショット内の仮想記憶領域は、ページ255であってもよい。第一プールは、プール268Bであってもよい。第一記憶領域は、ページ252であってもよい。第二記憶領域は、ページ254であってもよい。第二プールは、プール272であってもよい。
 以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
 10、10A…ホスト計算機、 30、30A、30B…ストレージ装置、 31…コントローラ、 32…キャッシュメモリ、 33…共有メモリ、 34…物理記憶デバイス、 100A…プライマリサイト、 100B…セカンダリサイト、 108…管理ネットワーク、 121…ストレージネットワーク、 160…ストレージ装置間ネットワーク、 171…ホストアダプタ、 172…ネットワークアダプタ、 175…リモートコピーアダプタ、 176…プロセッサ、 177…ストレージアダプタ、 178…共有メモリアダプタ

Claims (12)

  1.  ホスト計算機に接続される第一ストレージ装置と、
     前記第一ストレージ装置に接続される第二ストレージ装置と、
    を備え、
     前記第一ストレージ装置は、第一データボリューム及び第一ジャーナルボリュームを前記第一ストレージ装置内に作成し、
     前記第一ストレージ装置は、前記第一データボリュームを前記ホスト計算機へ提供し、
     前記第二ストレージ装置は、第二データボリューム及び第二ジャーナルボリュームを前記第二ストレージ装置内に作成し、
     前記第一ストレージ装置は、前記第一データボリュームの更新に応じて、前記更新を示すジャーナルを前記第一ジャーナルボリューム内へ作成し、
     前記第一ストレージ装置及び前記第二ストレージ装置は、前記第一ジャーナルボリューム内のジャーナルを前記第二ストレージ装置へ転送し、
     前記第二ストレージ装置は、前記転送されたジャーナルを前記第二ジャーナルボリュームへ書き込み、
     前記第二ストレージ装置は、前記第二ジャーナルボリューム内のジャーナルを前記更新の順に読み出し、
     前記第二ストレージ装置は、前記読み出されたジャーナルを前記第二データボリュームへ反映し、
     前記第一ストレージ装置は、特定条件の成立に応じて、マーカを含むジャーナルを前記第一ジャーナルボリューム内へ作成し、
     前記第二ストレージ装置は、前記読み出されたジャーナルから前記マーカを検出すると、前記第二データボリュームのスナップショットを作成する、
    ストレージシステム。
  2.  前記第二ストレージ装置は、前記第二データボリューム内の記憶領域を、前記スナップショット内の仮想記憶領域に割り当てることで、前記スナップショットを作成する、
    請求項1に記載のストレージシステム。
  3.  前記第二ストレージ装置は、第一プールを作成し、
     前記第二ストレージ装置は、前記第一プール内の記憶領域を、前記第二データボリューム内の仮想記憶領域に割り当てる、
    請求項2に記載のストレージシステム。
  4.  前記第二ストレージ装置は、前記第二ジャーナルボリュームから、前記マーカを含むジャーナルの後に作成されたジャーナルである後続ジャーナルを読み出し、前記第二データボリューム内で前記後続ジャーナルの反映先である第一記憶領域に、反映前の第一データが格納されている場合、前記第一データを前記第一記憶領域と異なる第二記憶領域に書き込み、前記スナップショット内で前記第一記憶領域に対応する仮想記憶領域に、前記第二記憶領域を割り当て、前記後続ジャーナルに含まれる第二データを前記第一記憶領域へ書き込む、
    請求項3に記載のストレージシステム。
  5.  前記ジャーナルは、前記更新により前記第一データボリュームへ書き込まれたデータであるジャーナルデータと、前記更新の順序及び前記ジャーナルデータの記憶領域を示すジャーナルメタデータとを含み、
     前記第二ストレージ装置は、前記転送されたジャーナル内のジャーナルデータと同一のデータが前記第二ジャーナルボリュームに格納されているか否かを判定し、
     前記同一のデータが前記第二ジャーナルボリュームに格納されていると判定された場合、前記第二ストレージ装置は、前記同一のデータの記憶領域を示すジャーナルメタデータを前記第二ジャーナルボリュームへ書き込み、
     前記同一のデータが前記第二ジャーナルボリュームに格納されていないと判定された場合、前記第二ストレージ装置は、前記転送されたジャーナル内のジャーナルデータを前記第二ジャーナルボリュームへ書き込み、前記書き込まれたジャーナルデータの記憶領域を示すジャーナルメタデータを前記第二ジャーナルボリュームへ書き込む、
    請求項4に記載のストレージシステム。
  6.  前記特定条件は、前記第一ストレージ装置が前記スナップショットの作成の指示を受けたことと、予め設定された時刻に達したこととの、一つである、
    請求項5に記載のストレージシステム。
  7.  前記第二ストレージ装置は、前記第一プール内の記憶領域を、前記第二ジャーナルボリューム内の仮想記憶領域に割り当てる、
    請求項6に記載のストレージシステム。
  8.  前記第二ストレージ装置は、第二プールを作成し、
     前記第二ストレージ装置は、前記第一プールから前記第一記憶領域を選択し、
     前記第二ストレージ装置は、前記第二プールから前記第二記憶領域を選択する、
    請求項7に記載のストレージシステム。
  9.  前記第二ストレージ装置は、リストア指示に応じて、前記スナップショットのうち、前記後続ジャーナルの反映前のデータを、前記第二データボリュームへコピーし、前記コピーされたデータを示すジャーナルを、前記第二ジャーナルボリューム内へ作成し、
     前記第二ストレージ装置は、前記第二データボリュームのうち、前記第一ストレージ装置から転送されたジャーナルの反映前のデータを示すジャーナルを、前記第二ジャーナルボリューム内へ作成し、
     前記第一ストレージ装置及び前記第二ストレージ装置は、前記第二ジャーナルボリューム内のジャーナルを前記第一ストレージ装置へ転送し、
     前記第一ストレージ装置は、前記第二ストレージ装置から転送されたジャーナルを前記第一ジャーナルボリュームへ書き込み、
     前記第一ストレージ装置は、前記第一ジャーナルボリューム内のジャーナルを前記第一データボリュームへ反映する、
    請求項8に記載のストレージシステム。
  10.  前記第二ストレージ装置は、リストア指示に応じて、第一仮想ボリュームを作成し、
     前記第二ストレージ装置は、前記スナップショット内の仮想記憶領域を前記仮想ボリューム内の仮想記憶領域に割り当て、
     前記第一ストレージ装置は、第二仮想ボリュームを作成し、
     前記第一ストレージ装置は、前記第一仮想ボリューム内の仮想記憶領域を、前記第二仮想ボリューム内の仮想記憶領域に割り当て、
     前記第一ストレージ装置は、前記第二仮想ボリュームから前記第一データボリュームへのレプリケーションを実行することで、前記第二仮想ボリューム内の仮想記憶領域に割り当てられた前記第一仮想ボリューム内の仮想記憶領域からデータを読み出し、前記読み出されたデータを前記第一データボリュームへコピーし、
     前記第一ストレージ装置は、前記レプリケーション中に前記ホスト計算機から前記第一データボリュームへのリード要求を受け、前記リード要求の対象データが前記第二仮想ボリュームから前記第一データボリュームへコピーされていない場合、前記対象データを前記第二仮想ボリュームから前記第一データボリュームへコピーする、
    請求項8に記載のストレージシステム。
  11.  前記第二ストレージ装置は、前記第一プールから前記第一記憶領域及び前記第二記憶領域を選択する、
    請求項7に記載のストレージシステム。
  12.  ホスト計算機に接続される第一ストレージ装置と、前記第一ストレージ装置に接続される第二ストレージ装置と、
    を含むストレージシステムの、制御方法であって、
     第一データボリューム及び第一ジャーナルボリュームを前記第一ストレージ装置内に作成し、
     前記第一データボリュームを前記ホスト計算機へ提供し、
     第二データボリューム及び第二ジャーナルボリュームを前記第二ストレージ装置内に作成し、
     前記第一データボリュームの更新に応じて、前記更新を示すジャーナルを前記第一ジャーナルボリューム内へ作成し、
     前記第一ジャーナルボリューム内のジャーナルを前記第二ストレージ装置へ転送し、
     前記転送されたジャーナルを前記第二ジャーナルボリュームへ書き込み、
     前記第二ジャーナルボリューム内のジャーナルを前記更新の順に読み出し、
     前記読み出されたジャーナルを前記第二データボリュームへ反映し、
     スナップショット作成条件の成立に応じて、マーカを含むジャーナルを前記第一ジャーナルボリューム内へ作成し、
     前記読み出されたジャーナルから前記マーカを検出すると、前記第二データボリュームのスナップショットを作成する、
    ことを備える制御方法。
PCT/JP2015/079051 2015-10-14 2015-10-14 ストレージシステムおよびストレージシステムの制御方法 WO2017064770A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/751,052 US10747624B2 (en) 2015-10-14 2015-10-14 Storage system and control method of storage system using asynchronous remote copying to backup volume at specific time points
CN201580082646.1A CN107924353B (zh) 2015-10-14 2015-10-14 存储系统和存储系统的控制方法
PCT/JP2015/079051 WO2017064770A1 (ja) 2015-10-14 2015-10-14 ストレージシステムおよびストレージシステムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/079051 WO2017064770A1 (ja) 2015-10-14 2015-10-14 ストレージシステムおよびストレージシステムの制御方法

Publications (1)

Publication Number Publication Date
WO2017064770A1 true WO2017064770A1 (ja) 2017-04-20

Family

ID=58517458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/079051 WO2017064770A1 (ja) 2015-10-14 2015-10-14 ストレージシステムおよびストレージシステムの制御方法

Country Status (3)

Country Link
US (1) US10747624B2 (ja)
CN (1) CN107924353B (ja)
WO (1) WO2017064770A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019003416A1 (ja) * 2017-06-30 2019-01-03 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2021086159A (ja) * 2019-11-25 2021-06-03 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
JP2021124889A (ja) * 2020-02-04 2021-08-30 株式会社日立製作所 リモートコピーシステム及びリモートコピー管理方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143112B (zh) * 2018-11-02 2023-08-25 伊姆西Ip控股有限责任公司 用于恢复元数据的方法、设备和计算机可读存储介质
CN109213738B (zh) * 2018-11-20 2022-01-25 武汉理工光科股份有限公司 一种云存储文件级重复数据删除检索系统及方法
JP2021033782A (ja) * 2019-08-27 2021-03-01 株式会社日立製作所 リモートコピーシステム
US11803518B2 (en) * 2020-10-01 2023-10-31 Hewlett Packard Enterprise Development Lp Journals to record metadata changes in a storage system
CN112486735A (zh) * 2020-12-21 2021-03-12 上海英方软件股份有限公司 一种保障应用层数据一致性的数据复制系统及方法
US12061581B2 (en) 2022-07-26 2024-08-13 Hewlett Packard Enterprise Development Lp Matching operation for a deduplication storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171387A (ja) * 2007-01-05 2008-07-24 Hitachi Ltd 継続的データ保護を備えたバックアップシステム
JP2008209966A (ja) * 2007-02-23 2008-09-11 Hitachi Ltd 一以上のセカンダリストレージシステムで複数のバックアップを取得するバックアップ制御方法
JP2011530748A (ja) * 2008-08-08 2011-12-22 アマゾン テクノロジーズ インコーポレイテッド 実行プログラムによる非ローカルブロックデータストレージへの信頼性の高いアクセスの実現

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065589B2 (en) 2003-06-23 2006-06-20 Hitachi, Ltd. Three data center remote copy system with journaling
US7599951B1 (en) * 2004-03-25 2009-10-06 Emc Corporation Continuous data backup
JP4828917B2 (ja) * 2005-11-07 2011-11-30 株式会社日立製作所 ストレージシステム、計算機システム、ホスト計算機及びデータ複製方法
JP5222617B2 (ja) 2008-04-28 2013-06-26 株式会社日立製作所 情報システム及びi/o処理方法
TWI514249B (zh) * 2009-01-23 2015-12-21 Infortrend Technology Inc 遠端非同步資料卷複製的方法及執行該方法的儲存系統
US9367457B1 (en) * 2012-12-19 2016-06-14 Veritas Technologies, LLC Systems and methods for enabling write-back caching and replication at different abstraction layers
CN104866435B (zh) * 2015-06-06 2018-05-15 成都云祺科技有限公司 一种连续数据保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171387A (ja) * 2007-01-05 2008-07-24 Hitachi Ltd 継続的データ保護を備えたバックアップシステム
JP2008209966A (ja) * 2007-02-23 2008-09-11 Hitachi Ltd 一以上のセカンダリストレージシステムで複数のバックアップを取得するバックアップ制御方法
JP2011530748A (ja) * 2008-08-08 2011-12-22 アマゾン テクノロジーズ インコーポレイテッド 実行プログラムによる非ローカルブロックデータストレージへの信頼性の高いアクセスの実現

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019003416A1 (ja) * 2017-06-30 2019-01-03 株式会社日立製作所 ストレージシステム及び記憶制御方法
JPWO2019003416A1 (ja) * 2017-06-30 2019-11-07 株式会社日立製作所 ストレージシステム及び記憶制御方法
US10732901B2 (en) 2017-06-30 2020-08-04 Hitachi Ltd. Storage system and storage control method
JP2021086159A (ja) * 2019-11-25 2021-06-03 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
JP2021124889A (ja) * 2020-02-04 2021-08-30 株式会社日立製作所 リモートコピーシステム及びリモートコピー管理方法
JP7117338B2 (ja) 2020-02-04 2022-08-12 株式会社日立製作所 リモートコピーシステム及びリモートコピー管理方法

Also Published As

Publication number Publication date
CN107924353A (zh) 2018-04-17
CN107924353B (zh) 2021-03-09
US10747624B2 (en) 2020-08-18
US20180232286A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
WO2017064770A1 (ja) ストレージシステムおよびストレージシステムの制御方法
JP4800031B2 (ja) ストレージシステム及びスナップショット管理方法
US8984221B2 (en) Method for assigning storage area and computer system using the same
US7565501B2 (en) Storage controller and data management method
JP5124551B2 (ja) ボリューム割り当てを管理する計算機システム及びボリューム割り当て管理方法
US8448167B2 (en) Storage system, and remote copy control method therefor
US8078581B2 (en) Storage system and remote copy control method
WO2013160942A2 (en) File storage system and file cloning method
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2008065525A (ja) 計算機システム、データ管理方法及び管理計算機
JP2008134986A (ja) 情報システム、データ転送方法及びデータ保護方法
JP2008040571A (ja) 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
WO2012117515A1 (ja) 計算機システム、管理システム及びデータ管理方法
JP5275692B2 (ja) ストレージシステム群
JPWO2015162684A1 (ja) ストレージシステムのデータ移行方法
JP2008305288A (ja) 情報システム、および、情報システムの情報保存方法
JP2008033829A (ja) バックアップシステム及びバックアップ方法
JP2020080130A (ja) ボリューム管理装置、ボリューム管理方法、及びボリューム管理プログラム
JP6772202B2 (ja) ストレージシステム及び記憶制御方法
WO2018011882A1 (ja) 計算機システム及びストレージ装置の制御方法
US10846012B2 (en) Storage system for minimizing required storage capacity during remote volume replication pair duplication
JP6072255B2 (ja) ストレージシステム、ストレージシステムの制御方法及び管理システム
WO2015145680A1 (ja) 管理計算機、及び計算機システム
JP5275691B2 (ja) ストレージシステム
WO2017085792A1 (ja) ストレージシステム、及びストレージシステムの制御方法

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15751052

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15906234

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP