JP4942418B2 - 計算機システム及びそのスナップショット作成方法 - Google Patents

計算機システム及びそのスナップショット作成方法 Download PDF

Info

Publication number
JP4942418B2
JP4942418B2 JP2006213896A JP2006213896A JP4942418B2 JP 4942418 B2 JP4942418 B2 JP 4942418B2 JP 2006213896 A JP2006213896 A JP 2006213896A JP 2006213896 A JP2006213896 A JP 2006213896A JP 4942418 B2 JP4942418 B2 JP 4942418B2
Authority
JP
Japan
Prior art keywords
volume
data
storage system
snapshot
bitmap
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2006213896A
Other languages
English (en)
Other versions
JP2008040762A (ja
JP2008040762A5 (ja
Inventor
弘明 圷
賢哲 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006213896A priority Critical patent/JP4942418B2/ja
Priority to US11/527,446 priority patent/US7725668B2/en
Priority to EP07250023A priority patent/EP1892614B1/en
Priority to CN2007101055374A priority patent/CN101118507B/zh
Publication of JP2008040762A publication Critical patent/JP2008040762A/ja
Publication of JP2008040762A5 publication Critical patent/JP2008040762A5/ja
Priority to US12/786,464 priority patent/US7953947B2/en
Priority to US13/118,765 priority patent/US8112600B2/en
Application granted granted Critical
Publication of JP4942418B2 publication Critical patent/JP4942418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/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/2058Error 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 more than 2 mirrored copies
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems

Description

本発明は、ストレージシステム及びそのスナップショット作成方法に関するものである。
従来、ホストコンピュータとストレージシステムとをネットワークにより接続し、ホストコンピュータで処理されるデータを、ネットワークを介して送受信してストレージシステムに格納するコンピュータシステムが実用化されている。
このようなコンピュータシステムにおいて、ネットワークを介し、ローカルサイトのストレージシステムのボリューム群及びリモートサイトのストレージシステムのボリューム群を、ボリューム間コピーを実行するためのペア関係になるように構成し、ローカルサイトのストレージシステムのボリューム群からリモートサイトのストレージシステムのボリューム群にデータのコピー(複製)を行うことにより、ローカルサイトのストレージシステムで災害が発生した場合でもデータの消失を防ぐリモートコピー技術が知られている。
リモートコピー技術に関する従来技術として、例えば非特許文献1及び非特許文献2には、ローカルサイトのストレージシステムのボリューム群の変更差分を、一定時間毎にまとめて非同期にリモートサイトのストレージシステムに転送することで、リモートサイトのストレージシステムのボリューム群に、ローカルサイトのストレージシステムのボリューム群のバックアップを作成する非同期リモートコピー技術が開示されている。
しかしながら、かかる非同期リモートコピー技術では、ローカルサイトのストレージシステムのボリューム群の変更差分をリモートサイトのストレージシステムのボリューム群に転送するに際し、ホストコンピュータからローカルサイトのストレージシステムのボリューム又はボリューム群に書き込まれた順序に対する整合性が保証されない。
従って、かかる非同期リモートコピー技術では、転送中にローカルサイトのストレージシステムが災害等で故障した場合、リモートサイトのストレージシステムのボリューム群の整合性が保証されないため、データが破損してしまう場合がある。
そこで、かかる非同期リモートコピー技術とローカルコピー技術とを組み合わせることにより、リモートサイトのストレージシステムにおいて、ホストコンピュータからの書き込み順序に対する整合性のとれたボリュームの存在を、任意時点で保障するリモートコピー技術が開示されている。具体的に、当該リモートコピー技術では、ローカルサイトのストレージシステムの第一のボリューム群からリモートサイトのストレージシステムの第二のボリューム群に非同期リモートコピーを行い、すべての変更差分を転送した後、第二のボリューム群からリモートサイトのストレージシステムの第四のボリューム群にローカルコピーを行う。このように、非同期リモートコピーとローカルコピーとを交互に実施することにより、ローカルサイトのストレージシステムの第一のボリューム群の変更差分をリモートサイトのストレージシステムの第二のボリューム群に転送するときには、第四のボリューム群において、整合性のとれたボリューム群の存在が保証される。
また、非特許文献3にて、リモートサイトのストレージシステムにおいて、差分バッファに差分データを一次的に保存することによって、ローカルサイトのストレージシステムが災害等で故障し、以降のデータの転送が行われない場合でも、リモートサイトのストレージシステムでホストコンピュータからローカルサイトのストレージシステムに書き込まれた順序に対する整合性の取れたボリューム群を構成することができるリモートコピー技術が開示されている。
IBM REDBOOKS - Disaster Recovery with DB2 UDB for zOS 2004年11月 IBM REDBOOKS - The IBM TotalStorage DS8000 Series: Copy Services with IBM Eserver zSeries 2006年2月 Using Asynchronous Replication for Business Continuity Between Two or More Sites 2004年12月
しかしながら、非同期リモートコピー技術とローカルコピー技術とを組み合わせた上述のリモートコピー技術では、当該リモートコピー技術のシステム運用中にリモートサイトのストレージシステムにおいて、テストなどの用途のために第二のボリューム群及び第四のボリューム群を使用した場合には、当該リモートコピー技術におけるシステム運用をテストの実行が終了するまで中断する必要がある。また、当該テストを実行するときに、第二のボリューム群及び第四のボリューム群に書き込みが行われた場合には、正しいバックアップが取れなくなる可能性がある。
このため、リモートサイトのストレージシステムに新規の第三のボリューム群を用意し、第二のボリューム群のスナップショットを第三のボリューム群として作成することが考えられる。しかしながら、第二のボリューム群のスナップショットを第三のボリューム群として作成した場合には、第二のボリューム群が変更差分のコピー中である場合があるため、ホストコンピュータからローカルサイトのストレージシステムに書き込まれた順序性に対する整合性は保障されないこととなる。
このとき、整合性が保障されたスナップショットを作成するには、上述のリモートコピー技術におけるシステム運用を中断して、整合性が保障される状態にするコマンドをローカルサイト側で発行した後、第二のボリュームのスナップショットを作成し、その後、上述のリモートコピー技術におけるシステム運用を再開するコマンドをローカルサイト側で発行する必要があった。このため、ローカルサイトのストレージシステムでの上述のリモートコピー技術におけるシステム運用の停止、再開といった煩雑な作業が発生し、システム運用に影響が発生することとなる。
また、非特許文献3に記載されたリモートコピー技術についても、当該リモートコピー技術におけるシステム運用中に、リモートサイトのストレージシステムにおける第二のボリューム群のスナップショットを作成する場合には、差分バッファのデータを適用中の場合があるため、整合性が保証されない可能性がある。
本発明は以上の点を考慮してなされたもので、簡易かつ高速にシステム運用させ得る計算機システム及びそのスナップショット作成方法を提案するものである。
かかる課題を解決するため本発明においては、上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、第一のストレージシステムから送信されるデータを記憶する第二のボリュームを有する第二のストレージシステムと含む計算機システムであって、第一のストレージシステムは、第一のボリュームに記憶されたデータを第二のストレージシステムの第二のボリュームに転送するデータ転送部を備え、第二のストレージシステムは、スナップショット作成指示に基づいて、第二のボリュームのスナップショットを第三のボリュームに作成するスナップショット作成部を備え、スナップショット作成部は、データ転送部により第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにした。
従って、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
また、本発明においては、上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、第一のストレージシステムから送信されるデータを記憶する第二のボリュームを有する第二のストレージシステムと含む計算機システムのスナップショット作成方法であって、第一のボリュームに記憶されたデータを第二のストレージシステムの第二のボリュームに転送する第一のステップと、スナップショット作成指示に基づいて、第二のボリュームのスナップショットを第三のボリュームに作成する第二のステップとを備え、第二のステップでは、第一のステップにおいて第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにした。
従って、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
本発明によれば、第一のボリュームから第二のボリュームにデータを転送しているときにスナップショット作成指示を受信した場合、第一のボリュームから第二のボリュームにデータの転送が終了するまで、第二のボリュームのスナップショットの第三のボリュームへの作成を遅延させるようにしたことにより、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができ、かくして、簡易かつ高速にシステム運用させ得る計算機システム及びそのスナップショット作成方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第一の実施の形態
図1は、本発明の第一の実施の形態における計算機システム100の概略的な構成を示している。計算機システム100は、ホストコンピュータ101、第一のストレージシステム102A及び第二のストレージシステム102Bを、ネットワーク103を介して接続することにより構成されている。また、計算機システム100は、内部状態を参照する管理端末104をネットワーク103を介して、又は直接、第一のストレージシステム102A及び第二のストレージシステム102Bに接続することにより構成されている。
第一のストレージシステム102Aは、後述する一又は複数のドライブ211A、221Bにより提供される物理的な記憶領域上に設定され、データが記憶される1又は複数の第一のボリューム群111Aを有している。また、第二のストレージシステム102Bは、第一のボリューム群111Aと同様に構成された第二のボリューム群111B、第三のボリューム群111C及び第四のボリューム群111Dを有している。
第一のボリューム群111A及び第二のボリューム群111Bは、リモートコピーのボリューム間コピーを実行するためのペア関係121である。計算機システム100は、第一のボリューム群111A及び第二のボリューム群111B間においてリモートコピー122を実行する。また、第二のボリューム群111B及び第四のボリューム群111Dは、ローカルコピーのボリューム間コピーを実行するためのペア関係123であり、計算機システム100は、第二のボリューム群111B及び第四のボリューム群111D間においてローカルコピー124を実行する。このように、計算機システム100では、2つのペア関係により、リモートコピーシステムを構成する。
第三のボリューム群111Cは、第二のボリューム群111Bのスナップショット124のターゲットとなるボリューム群である。スナップショット125が実行された後のボリューム群である第三のボリューム群111Cは、テストなどの用途でホストコンピュータ101等からアクセスされる。
第一のストレージシステム102Aは、第一のボリューム群111Aと対応する2つのビットマップである更新ビットマップ112A及び差分ビットマップ112Bを有している。更新ビットマップ112Aは、第一のボリューム群111Aへのデータ書き込みによる更新部分を表している。差分ビットマップ112Bは、第二のストレージシステム102Bの第二のボリューム群111Bに転送する差分データを表している。また、第二のストレージシステム102Bは、第二のボリューム群111Bと対応する更新ビットマップ112Cを有しており、第三のボリューム群111Cと対応する更新ビットマップ112Dを有している。
一般的に、第一のストレージシステム102Aは、ローカルサイト側に物理的に設置され、第二のストレージシステム102Bは、災害等の影響を避けるために、ローカルサイトから距離の離れたリモートサイト側に物理的に設置される。
図2は、計算機システム100における内部の概略的な構成を示している。第一のストレージシステム102Aは、記憶制御装置201Aと、当該記憶制御装置201Aに接続された記憶装置202Aから構成されている。記憶装置202Aは、複数個のドライブ211Aによって構成されている。記憶制御装置201Aは、ネットワーク103と接続される入出力部221Aと、管理端末104及びネットワーク103と接続される管理入出力部222Aと、記憶制御装置201Aに対してユーザなどが指示を与えることができる保守端末223Aと、各種プログラムやデータが配置されるメモリ224Aと、主にメモリ224A上の各種プログラムを動作させるプロセッサ225Aから構成されている。なお、上述のドライブ211Aは、ハードディスク等の磁気記憶媒体のみでなく、半導体メモリなどを用いることも考えられる。また、メモリ224Aを記憶媒体として記憶制御装置を構成することも考えられる。この場合には、記憶装置202Aは、接続することなく、ストレージシステムを構成することができる。また、記憶装置202Aの代わりに他のストレージシステムをファイバチャネル等で接続し、記憶装置として動作させることも考えられる。
第二のストレージシステム102Bは、メモリ224B上に記憶されている各種プログラムや情報等が異なる点を除いて第一のストレージシステム102Aと同様に構成されており、第二のストレージシステム102Bの各構成要素について、第一のストレージシステム102Aの構成要素と同一部分に、同一符号に添え字「A」に代えて添え字「B」を付している。なお、計算機システム100では、第二のストレージシステム102Bがバックアップ用のストレージシステムという観点から、第一のストレージシステム102Aのドライブ211Aを、例えば、SCSI(Small Computer System Interface)ディスク等の高価なディスクドライブから構成し、第二のストレージシステム102Bのドライブ211Bを、例えば、SATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクデバイスから構成することもできる。
第一のストレージシステム102Aのメモリ224A上には、後述するコピー管理プログラム231Bと連携してリモートコピーの実行制御等を行うコピー管理プログラム231Aと、第一のストレージシステム102Aの第一のボリューム群111Aから第二のストレージシステム102Bの第二のボリューム群111Bの差分データを間欠的に転送する制御等を行うリモートコピープログラム232と、第一のボリューム群111Aへのデータアクセス(読み書き)の制御を行うI/O(Input/Output)制御プログラム233Aと、後述するマーカの書き込みを制御するマーカ制御プログラム234と、複数の更新ビットマップ112Aと、複数の差分ビットマップ112Bと、ペア情報235Aと、書き込み対象のデータを保持する目的等で使用されるサイドファイル236とが格納されている。
また、第二のストレージシステム102Bのメモリ224B上には、コピー管理プログラム231Aと連携したリモートコピー及びローカルコピーの実行制御等を行うコピー管理プログラム231Bと、ローカルコピープログラム237と、第二〜第四のボリューム群111B〜112Dへのデータアクセスの制御を行うI/O制御プログラム233Bと、スナップショット拡張プログラム238と、スナップショットプログラム239と、ローカルコピー制御情報240と、複数の更新ビットマップ112C、112Dと、ペア情報235Bとが格納されている。
図3〜図6は、第一及び第二のストレージシステム102A、102Bの内部で保持されているデータ構造を示している。
図3は、更新ビットマップ112A、112C及び112D並びに差分ビットマップ112Bの概略的な説明である。更新ビットマップ112A、112C及び112D並びに差分ビットマップ112Bは、第一〜第三のボリューム群111A〜111Cに対応して存在し、当該第一〜第三のボリューム群111A〜111Cの全ての記憶領域に対して、一定サイズの記憶領域302と一対一に対応するビット301の集合体である。それぞれのビット301は、第一〜第三のボリューム群111A〜112Cの対応する記憶領域302に格納されたデータが、ある時点から更新ありか、更新なしかの情報を有している。更新ビットマップ112A、111C及び111Dは、一定期間内に、対応する第一〜第三のボリューム群111A〜112Cに対するデータの書き込みが行われた記憶領域302を記録する用途や、記憶領域302へのデータコピーの要否を判定する用途等に使用される。差分ビットマップ112Bは、リモートコピーを実施する上でコピーすべきデータを第一のボリューム群111Aの記憶領域302から参照する用途に使用される。詳細については、後ほどのプログラムの動作説明で行う。
図4は、ペア情報235Aのテーブル構造を示している。ペア情報235Aは、ペア識別子311Aと、コピー元のボリュームであるソースボリューム名312Aと、コピー先のボリュームであるターゲットボリューム名313Aと、リモートコピーのペアの関係を表すペア関係314Aとを項目として有し、リストによって構成されている。なお、ペア情報235Bは、ペア関係314Bについて、リモートコピーやローカルコピー、スナップショットなどのペアの関係を表す点を除いて、ペア情報235Aと同様に構成されている。
図5は、サイドファイル236のテーブル構造を示している。サイドファイル236は、ボリューム名321と、記憶領域アドレス322と、格納データ323とを項目として有し、リストによって構成されている。サイドファイル236は、主に、書き込みしようとしている記憶領域の書き込み前のデータを保存することを目的として、一時的にデータの保存を行う。サイドファイル236は、例えば、差分ビットマップ112Bを参照しながらデータを第二のストレージシステム102Bに転送を行う際に、並行してホストコンピュータ101より第二のボリュームに111Bデータが書き込まれる場合、差分ビットマップ112Bに対応した記憶領域が変更されてしまう可能性があるため、当該記憶領域に現在書き込まれているデータを一時的に格納し、データの転送時に必要であれば参照するといったような使用法が考えられる。また、サイドファイル236は、メモリ224A上だけでなく、記憶装置202A内の記憶領域に存在する場合も考えられる。詳細については、後ほどのプログラムの動作説明で行う。
図6は、ローカルコピー制御情報240のテーブル構造を示している。ローカルコピー制御情報240は、ボリューム名331と、ローカルコピー制御フラグ332と、実行待ちフラグ333とを項目として有し、リストによって構成されている。ローカルコピー制御フラグ332は、当該ボリュームに対してスナップショットを作成する際に作成可能かどうか判定する用途で使用される。この場合、ローカルコピー制御フラグ332がオン(ON)である場合には、リモートコピーが終了しているため、ローカルコピーを実行しても良いという旨を示しており、ローカルコピー制御フラグ332がオフ(OFF)である場合には、リモートコピーが実行中であるため、ローカルコピーを実行してはならない旨を示している。実行待ちフラグ333は、スナップショットが実行中であるため、ローカルコピー終了報告を第一のストレージシステム102Aに送信することを防止する用途で使用される。また、この場合、実行待ちフラグ333がオン(ON)である場合には、スナップショットが実行中であるため、リモートコピーを実行してはならない(ローカルコピー終了報告を送信してはならない)という旨を示しており、実行待ちフラグ333がオフ(OFF)である場合には、スナップショットが終了しているため、リモートコピーを実行しても良い(ローカルコピー終了報告を送信しても良い)旨を示している。
図7及び図8は、リモートコピーシステムの動作の概要を示している。第一のストレージシステム102Aは、図7に示すように、第一のボリューム群111Aに対して一定期間に書き込まれた書き込み対象のデータをまとめて第一のボリューム群111Aから第二のボリューム群111Bに転送するリモートコピー122を実行する。次に、第二のストレージシステム102Bは、図8に示すように、第二のボリューム群111Bから第四のボリューム群111Dに転送するローカルコピー124を実行する。この計算機システム100では、上述のリモートコピー122及びローカルコピー124を交互に周期実行することにより、第二のストレージシステムにおいてデータ整合性の取れたボリュームの存在を保証するリモートコピーシステムを構成する。データ整合性についての詳細な説明については、後ほど行う。
図9は、第一〜第四のボリューム群111A〜111Dの更新状態を時系列で示している。この場合、第一のボリューム群111Aの更新状態を時系列で表したものが341Aであり、第二のボリューム群111Bの更新状態を時系列で表したものが341Bであり、第三のボリューム群111Cの更新状態を時系列で表したものが341Cであり、第四のボリューム群111Dの更新状態を時系列で表したものが341Dである。
第一のストレージシステム102Aは、タイミングT1において、第一のボリューム群111Aに対応する更新ビットマップ112Aと差分ビットマップ112Bとの内容の入れ替えを実行する。第一のストレージシステム102Aにおけるこの時点の第一のボリューム群111Aの更新状態をAとする。
次に、第一のストレージシステム102Aのリモートコピープログラム232は、第二のボリューム群111Bの更新状態をAにするために、差分ビットマップ112Bの内容を参照し、差分データを第二のストレージシステム102Bに転送するリモートコピー122Aを実行する。この第二のストレージシステム102Bの第二のボリューム群111Bへの差分データの適用期間である差分適用期間D1は、ホストコンピュータ101からの書き込み順序に非依存で第二のボリューム群111Bにデータが書き込まれるため、第二のボリューム群111Bの書き込み順序に対するデータ整合性が保証されない。
やがて、第二のボリューム群111Bは、リモートコピー122Aが終了して、更新状態をAにするための差分データの適用期間である差分適用期間D1が終了すると(タイミングT2)、更新状態がAとなり、これにより第一のボリューム群111Aと第二のボリューム群111Bとのデータ整合性が保証されることとなる。
次に、第二のストレージシステム102Bのローカルコピープログラム221は、第四のボリューム群111Dの更新状態をAにするために、第二のボリューム群111Bから第四のボリューム群111Dに差分データを転送するローカルコピー124Aを実行する。この第四のボリューム群111Dへの差分データの適用期間である差分適用期間D2は、第四のボリューム群111Dに書き込まれた書き込み対象のデータに対する整合性が保証されない可能性がある。
やがて、第四のボリューム群111Dは、ローカルコピー124Aが終了して、差分データの適用期間である差分適用期間D2が終了すると(タイミングT3)、更新状態がAとなり、これにより第二のボリューム群111Bと第四のボリューム群111Dとのデータ整合性が保証される。
以上のように、計算機システム100では、第二のボリューム群111Bが差分適用期間D1である場合には、第四のボリューム群111Dのデータ整合性が保証され、第四のボリューム112Dが差分適用期間D2の場合には、第二のボリューム群111Bのデータ整合性が保証されているため、リモートコピーシステムの運用中に第二のストレージシステム102Bにおいて、常にデータ整合性の取れたボリュームの存在を保証している。
また、計算機システム100では、ローカルコピー124Aが終了すると、ローカルコピー終了報告を第一のストレージシステム102Aに送信し(342)、これにより第一のストレージシステム102Aのリモートコピープログラム232が一回分のループを終える。その後、第一のストレージシステム102Aは、タイミングT4において、再び第一のボリューム群111Aに対応する更新ビットマップ112Aと差分ビットマップ112Bとの内容の入れ替えを実行する。そして、第一のストレージシステム102A及び第二のストレージシステム102Bは、この時点における第一のストレージシステムの第一のボリューム群111Aの更新状態をBとすると、上述の場合と同様に、第二のボリューム群111B及び第四のボリューム群111Dの更新状態をBにするため、リモートコピー122B及びローカルコピー124Bを間欠的に実行する。
ここで、第二のストレージシステム102Bは、このようなリモートコピーシステムの運用中に、タイミングT5(第二のボリューム群111Bの差分適用期間D1)において、第二のボリューム群111Bから第三のボリューム群111Cへのスナップショット作成指示が発生した場合には、第二のボリューム群111Bへの差分適用期間D1が終了するまでスナップショット実行を遅延させる(遅延期間D3)。そして、第二のストレージシステム102Bは、第二のボリューム群111Bへの差分適用期間D1が終了すると、スナップショットを実行する(343)。この場合、第二のストレージシステム102Bは、スナップショットの実行自体を即座に終了させて、有限時間内に第二のボリューム群111Bの全データを第三のボリューム群111Cにコピーするバックグラウンドコピーを実行する(344)。
また、第二のストレージシステム102Bは、バックグラウンドコピー中に第二のボリューム群111Bにデータ書き込みが発生した場合には、I/O制御プログラム216Bを実行することにより、第二のボリューム群111Bにおける当該記憶領域のデータを第三のボリューム群111Cの対応する記憶領域にコピーし、その後、第二のボリューム群111Bにおける当該記憶領域にデータ書き込みを実行する。I/O制御プログラム216Bの動作については、後ほどフローチャート図にて説明する。
次に、第一のストレージシステム102AにおけるI/Oアクセス処理(ローカルサイト側)の一例について説明する。図10は、この第一のストレージシステム102AにおけるI/Oアクセス処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、ホストコンピュータ101からI/Oアクセス(書き込み要求又は読み出し要求)を受信すると、I/Oアクセスを実行するプログラムであるI/O制御プログラム233Aを実行することにより、図10に示す第一のI/Oアクセス処理手順RT1に従って、当該I/Oアクセスの種別が書き込み要求であるか否かをチェックする(S1)。
そして、プロセッサ225Aは、I/Oアクセスの種別が書き込み要求でない場合(S1:NO)には、I/Oアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し(S2)、この後、図10に示す第一のI/Oアクセス処理手順RT1を終了する(S8)。
これに対して、プロセッサ225Aは、当該I/Oアクセスの種別が書き込み要求である場合には(S1:YES)、ペア情報235Aを参照することにより、書き込み要求に対応するボリュームがリモートコピーのソースボリュームであるか否かをチェックする(S3)。
そして、プロセッサ225Aは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームでない場合(S3:NO)には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S7)、この後、図10に示す第一のI/Oアクセス処理手順RT1を終了する(S8)。
これに対して、プロセッサ225Aは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームである場合(S3:YES)には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ112Aのビット301を「ON」(コピー要(更新あり))(図3)に変更する(S4)。
続いて、プロセッサ225Aは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ112Bのビット301が「ON」であり、かつ、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル236に記憶されていないか否かをチェックする(S5)。
この場合、プロセッサ225Aは、サイドファイル236に旧データが記憶されているか否かを更新ビットマップ112Aや差分ビットマップ112Bに記録し、対応するサイドファイル236の各要素への参照(アドレス等で表現される)を記録することで、サイドファイル236への記憶の有無の判定及びデータの参照を行うことも考えられる。
そして、プロセッサ225Aは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ112Bのビット301が「OFF」(コピー不要(更新なし))(図3)であるか、又は、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル236に記憶されている場合(S5:NO)には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S7)、この後、図10に示す第一のI/Oアクセス処理手順RT1を終了する(S8)。
これに対して、プロセッサ225Aは、書き込み要求に対応するボリュームの記憶領域に対応する差分ビットマップ112Bのビット301が「ON」であり、かつ、書き込み要求に対応するボリュームの記憶領域に記憶されていた旧データがサイドファイル236に記憶されていない場合(S5:YES)には、書き込み要求に対応するボリュームの記憶領域に記憶されている旧データを読み出してサイドファイル236に記憶する(S6)。
この場合、プロセッサ225Aは、具体的に、書き込み要求に対応するボリュームの記憶領域の位置を表すボリューム名321及び、記憶領域アドレス322と共に、読み出した旧データをサイドファイル236に記憶する。
やがて、プロセッサ225Aは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S7)、この後、図10に示す第一のI/Oアクセス処理手順RT1を終了する(S8)。
なお、プロセッサ225Aは、メモリ224A上のキャッシュに配置されたデータを、ホストコンピュータ101やプログラムに参照させる方法や、記憶装置202Aの対応するドライブからデータを読み出し、データをホストコンピュータ101や各種プログラムに参照させる方法によって、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータの読み出しを実現する。
またなお、プロセッサ225Aは、メモリ224A上のキャッシュに書き込み対象のデータを書き込み、ホストコンピュータ101や各種プログラムへ書き込み終了を通知し、非同期的に記憶装置202Aの対応するドライブに書き込み対象のデータを書き込むことによって、書き込み要求に対応するボリュームに、書き込み対象のデータの書き込みを実現する。さらに、プロセッサ225Aは、同期的に記憶装置202Aの対応するドライブに書き込み対象のデータを書き込むことによっても実現することができる。
次に、第二のストレージシステム102BにおけるI/Oアクセス処理(リモートサイト側)の一例について説明する。図11〜図13は、この第二のストレージシステム102BにおけるI/Oアクセス処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ホストコンピュータ101からI/Oアクセスを受信する、又は第一のストレージシステム102Aのリモートコピープログラム232が実行されることによってI/Oアクセス要求を受信すると、I/Oアクセスを実行するプログラムであるI/O制御プログラム223Bを実行することにより、図11〜図13に示す第二のI/Oアクセス処理手順RT2に従って、ペア情報235Bを参照することにより、I/Oアクセスに対応するボリュームがローカルコピーのソースボリュームであるか否かをチェックする(S11)。
そして、プロセッサ225Bは、I/Oアクセスに対応するボリュームがローカルコピーのソースボリュームでない場合(S11:NO)には、ペア情報235Bを参照することにより、I/Oアクセスに対応するボリュームがスナップショットのターゲットボリュームであるか否かをチェックする(S12)。
そして、プロセッサ225Bは、I/Oアクセスに対応するボリュームがスナップショットのターゲットボリュームでない場合(S12:NO)には、I/Oアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し(S13)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、I/Oアクセスに対応するボリュームがローカルコピーのソースボリュームである場合(S11:YES)には、当該I/Oアクセスの種別が書き込み要求であるか否かをチェックする(S21)(図12)。
そして、プロセッサ225Bは、I/Oアクセスの種別が書き込み要求でない場合(S21:NO)には、I/Oアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し(S22)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、当該I/Oアクセスの種別が書き込み要求である場合には(S21:YES)、ペア情報235Bを参照することにより、書き込み要求に対応するボリュームがスナップショットのソースボリュームであるか否かをチェックする(S23)。
そして、プロセッサ225Bは、書き込み要求に対応するボリュームがスナップショットのソースボリュームでない場合(S23:NO)には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ112Cのビット301を「ON」に変更し(S24)、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S25)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、書き込み要求に対応するボリュームがスナップショットのソースボリュームである場合(S23:YES)には、当該スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」であるか否かをチェックする(S26)。
そして、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」でない場合(S26:NO)には、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ112Cのビット301を「ON」に変更し(S24)、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S25)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」である場合(S26:YES)には、スナップショットのターゲットボリュームの記憶領域に、書き込み要求に対応するボリュームの記憶領域に現在記憶されているデータをコピーする(S27)。
続いて、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301を「OFF」に変更する(S28)。
やがて、プロセッサ225Bは、書き込み要求に対応するボリュームの記憶領域に対応する更新ビットマップ112Cのビット301を「ON」に変更し(S24)、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S25)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、I/Oアクセスに対応するボリュームがスナップショットのターゲットボリュームである場合(S13:YES)には、I/Oアクセスに対応するボリューム(スナップショットのターゲットボリューム)の記憶領域の更新ビットマップ112Dのビット301が「ON」であるか否かをチェックする(S31)(図13)。
そして、プロセッサ225Bは、I/Oアクセスに対応するボリュームの記憶領域の更新ビットマップ112Dのビット301が「ON」でない場合(S26:NO)には、I/Oアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し(S32)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
これに対して、プロセッサ225Bは、I/Oアクセスに対応するボリュームの記憶領域の更新ビットマップ112Dのビット301が「ON」でない場合(S26:YES)には、書き込み要求に対応するボリュームの記憶領域に対応するスナップショットのソースボリュームの記憶領域に現在記憶されているデータを、I/Oアクセスに対応するボリュームの記憶領域にコピーする(S33)。
続いて、プロセッサ225Bは、I/Oアクセスに対応するボリュームの記憶領域の更新ビットマップ112Dのビット301を「OFF」に変更する(S34)。
やがて、プロセッサ225Bは、I/Oアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し(S32)、この後、図11〜図13に示す第二のI/Oアクセス処理手順RT2を終了する(S14)。
なお、プロセッサ225Aは、I/O制御プログラム233Aと同様の方法によって、I/Oアクセスに対応するデータを読み書きするボリュームの記憶領域へのデータの読み書きを実現する。
次に、第一のストレージシステム102Aにおけるコピー管理処理(ローカルサイト側)の一例について説明する。図14は、この第一のストレージシステム102Aにおけるコピー管理処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム231Aを実行することにより、図14に示す第一のコピー管理処理手順RT3に従って、リモートコピー122を実行する(S41)。続いて、プロセッサ225Aは、リモートコピー122が終了するのを待機モードで待ち受ける(S42)。やがて、プロセッサ225Aは、リモートコピー122が終了すると(S42:YES)、第二のストレージシステム102Bにローカルコピー開始指示を送信する(S43)。
続いて、プロセッサ225Aは、第二のストレージシステム102Bからのローカルコピー終了報告を受信するのを待機モードで待ち受ける(S44)。やがて、プロセッサ225Aは、第二のストレージシステム102Bからのローカルコピー終了報告を受信すると(S44:YES)、この後、再び、リモートコピー122を実行し(S41)、リモートコピー122が終了するのを待ち受ける待機モードに戻り(S42)、この後同様の処理を繰り返す(S41〜S44)。
次に、第二のストレージシステム102Bにおけるコピー管理処理(リモートサイト側)の一例について説明する。図15は、この第二のストレージシステム102Bにおけるコピー管理処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、初期時、コピー管理を実行するプログラムであるコピー管理プログラム231Bを実行することにより、図15に示す第二のコピー管理処理手順RT4に従って、第一のストレージシステム102Aからローカルコピー開始指示を受信するのを待機モードで待ち受ける(S51)。やがて、プロセッサ225Bは、第一のストレージシステム102Aからローカルコピー開始指示を受信すると(S51:YES)、ローカルコピー制御情報240における、ローカルコピー開始指示に対応するボリュームのローカルコピー制御フラグ332を「ON」に変更する(S52)。
続いて、プロセッサ225Bは、ローカルコピー開始指示に対応するボリュームのローカルコピー124を実行する(S53)。続いて、プロセッサ225Bは、予め指定された時間待機する指定時間待機処理が終了するのを待機モードで待ち受ける(S54)。やがて、プロセッサ225Bは、指定時間待機処理が終了すると(S54:YES)、ローカルコピー制御情報240における、ローカルコピー開始指示に対応するボリュームのローカルコピー制御フラグ332を「OFF」に変更する(S55)。
続いて、プロセッサ225Bは、ローカルコピー124が終了するのを待機モードで待ち受ける(S56)。やがて、プロセッサ225Bは、ローカルコピー124が終了すると(S56:YES)、ローカルコピー制御情報240における、ローカルコピー開始指示に対応するボリュームの実行待ちフラグ333を「OFF」に変更する(S57)。
続いて、プロセッサ225Bは、第一のストレージシステム102Aにローカルコピー終了報告を送信し(S58)、この後、再び、第一のストレージシステム102Aからローカルコピー開始指示を受信するのを待ち受ける待機モードに戻り(S51)、この後同様の処理を繰り返す(S51〜S58)。
なお、プロセッサ225Bは、リモートコピーシステムの運用において、更新ビットマップ112Aと差分ビットマップ112Bとの入れ替え間隔を制御するため、指定時間待機処理を実行する。この場合、更新ビットマップ112Aと差分ビットマップ112Bとの入れ替え間隔が長いほど、更新ビットマップ111Aに上書きされる書き込み対象のデータの量が多くなるため、全体的なデータ転送量を削減することができる。一方、更新ビットマップ112Aと差分ビットマップ112Bとの入れ替え間隔が短いほど、障害時点に近いデータに復元できる可能性が高くなる。この間隔は、需要に対するトレードオフにより個別具体的に決定する。
次に、第一のストレージシステム102Aにおけるリモートコピー処理の一例について説明する。図16は、この第一のストレージシステム102Aにおけるリモートコピー処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、所定のタイミングで、コピー管理プログラム231Aによってリモートコピー122を実行するプログラムであるリモートコピープログラム232を実行することにより、図16に示すリモートコピー処理手順RT5に従って、更新ビットマップ112Aと差分ビットマップ112Bとの内容を入れ替える(S61)。
続いて、プロセッサ225Aは、差分ビットマップ112Bの最初のビット301を調査対象とする(S62)。続いて、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301が「ON」であるか否かをチェックする(S63)。
そして、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301が「ON」でない場合(S63:NO)には、ステップS68に進む。これに対して、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301が「ON」である場合(S63:YES)には、調査対象の差分ビットマップ112Bのビット301に対応する記憶領域のデータがサイドファイル236に記憶されているか否かをチェックする(S64)。
そして、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301に対応する記憶領域のデータがサイドファイル236に記憶されていない場合(S64:NO)には、調査対象の差分ビットマップ112Bのビット301に対応する記憶領域のデータを第二のストレージシステム102Bに送信する(S65)。これに対して、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301に対応する記憶領域のデータがサイドファイル236に記憶されている場合(S64:YES)には、調査対象の差分ビットマップ112Bのビット301に対応するサイドファイル236に記憶されているデータを第二のストレージシステム102Bに送信する(S66)。
やがて、プロセッサ225Aは、調査対象の差分ビットマップ112Bのビット301を「OFF」に変更する(S67)。続いて、プロセッサ225Aは、差分ビットマップ112Bの最後のビット301まで調査対象としたか否かをチェックする(S68)。
そして、プロセッサ225Aは、差分ビットマップ112Bの最後のビット301まで調査対象としていない場合(S68:NO)には、差分ビットマップ112Bの次のビット301を調査対象として(S69)、この後、再び、調査対象の差分ビットマップ112Bのビット301が「ON」であるか否かをチェックし(S63)、この後同様の処理を繰り返す(S63〜S68)。
これに対して、プロセッサ225Aは、差分ビットマップ112Bの最後のビット301まで調査対象とした場合(S68:YES)には、この後、図16に示すリモートコピー処理手順RT5を終了する(S70)。
次に、第二のストレージシステム102Bにおけるローカルコピー処理の一例について説明する。図17は、この第二のストレージシステム102Bにおけるローカルコピー処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、第一のストレージシステム102Aからローカルコピー開始指示を受信すると、コピー管理プログラム231Bによってローカルコピー124を実行するプログラムであるローカルコピープログラム237を実行することにより、図17に示すローカルコピー処理手順RT6に従って、更新ビットマップ112Cの最初のビット301を調査対象とする(S71)。続いて、プロセッサ225Bは、調査対象の更新ビットマップ112Cのビット301が「ON」であるか否かをチェックする(S72)。
そして、プロセッサ225Bは、調査対象の更新ビットマップ112Cのビット301が「ON」でない場合(S72:NO)には、ステップS75に進み、これに対して、調査対象の更新ビットマップ112Cのビット301が「ON」である場合(S72:YES)には、調査対象の更新ビットマップ112Cのビット301に対応する記憶領域のデータをローカルコピーのターゲットボリュームの記憶領域に記憶する(S73)。
やがて、プロセッサ225Bは、調査対象の更新ビットマップ112Cのビット301を「OFF」に変更する(S74)。続いて、プロセッサ225Bは、更新ビットマップ112Cの最後のビット301まで調査対象としたか否かをチェックする(S75)。
そして、プロセッサ225Bは、更新ビットマップ112Cの最後のビット301まで調査対象としていない場合(S75:NO)には、更新ビットマップ112Cの次のビット301を調査対象として(S76)、この後、再び、調査対象の更新ビットマップ112Cのビット301が「ON」であるか否かをチェックし(S72)、この後同様の処理を繰り返す(S72〜S75)。
これに対して、プロセッサ225Bは、更新ビットマップ112Cの最後のビット301まで調査対象とした場合(S75:YES)には、この後、図17に示すローカルコピー処理手順RT6を終了する(S77)。
次に、第二のストレージシステム102Bにおけるスナップショット処理の一例について説明する。図18は、この第二のストレージシステム102Bにおけるスナップショット処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ホストコンピュータ101や管理端末104、その他保守端末223A、223Bやプログラムから、ユーザやプログラムの指示によりスナップショットのソースボリューム及びスナップショットのターゲットボリュームの入力を受信すると、スナップショット125を実行するプログラムであるスナップショットプログラム239を実行することにより、図18に示すスナップショット処理手順RT7に従って、スナップショットのターゲットボリュームに対応するビット301がすべて「ON」の状態である更新ビットマップ112Dを作成する(更新ビットマップ112Dをスナップショットのターゲットボリュームに対応するビット301がすべて「ON」の状態に変更する)(S81)。
続いて、プロセッサ225Bは、スナップショットのソースボリューム名及びスナップショットのターゲットボリューム名を表す情報とスナップショットのペア関係であることを表す情報をペア情報235Bのリストに追加することにより、ペア関係を作成する(S82)。続いて、プロセッサ225Bは、バックグラウンドコピー処理を実行して(S83)、この後、図18に示すスナップショット処理手順RT7を終了する(S84)。
次に、第二のストレージシステム102Bにおけるバックグラウンドコピー処理の一例について説明する。図19は、この第二のストレージシステム102Bにおけるバックグラウンドコピー処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ペア関係が作成されると、図19に示すバックグラウンドコピー処理手順RT8に従って、更新ビットマップ112Dの最初のビット301を調査対象とする(S91)。続いて、プロセッサ225Bは、調査対象の更新ビットマップ112Dのビット301が「ON」であるか否かをチェックする(S92)。
そして、プロセッサ225Bは、調査対象の更新ビットマップ112Dのビット301が「ON」でない場合(S92:NO)には、ステップS95に進み、これに対して、調査対象の更新ビットマップ112Dのビット301が「ON」である場合(S92:YES)には、調査対象の更新ビットマップ112Dのビット301に対応する記憶領域のデータをスナップショットのターゲットボリュームの記憶領域に記憶する(S93)。
やがて、プロセッサ225Bは、調査対象の更新ビットマップ112Dのビット301を「OFF」に変更する(S94)。続いて、プロセッサ225Bは、更新ビットマップ112Dの最後のビット301まで調査対象としたか否かをチェックする(S95)。
そして、プロセッサ225Bは、更新ビットマップ112Dの最後のビット301まで調査対象としていない場合(S95:NO)には、更新ビットマップ112Dの次のビット301を調査対象として(S96)、この後、再び、調査対象の更新ビットマップ112Dのビット301が「ON」であるか否かをチェックし(S92)、この後同様の処理を繰り返す(S92〜S95)。
これに対して、プロセッサ225Bは、更新ビットマップ112Dの最後のビット301まで調査対象とした場合(S95:YES)には、この後、図19に示すバックグラウンドコピー処理手順RT8を終了する(S97)。
なお、プロセッサ225Bは、更新ビットマップ112Dが各種制御プログラム等によって「OFF」の状態にされず、かつ更新ビットマップ112Dのサイズが有限であるため、有限時間内にバックグラウンドコピー処理を終了することができる。また、プロセッサ225Bは、スナップショットのターゲットボリュームがホストコンピュータ101等からI/Oアクセス可能であるため、バックグラウンドコピー処理を実行しない場合も考えられる。さらに、プロセッサ225Bは、バックグラウンドコピー処理を実行しない場合や、バックグラウンドコピー処理が実行中である場合には、スナップショットのターゲットボリュームへの読み出し処理に対して、スナップショットのソースボリュームからのデータをコピーするオーバヘッドが発生するため、若干性能が低下する可能性がある。
次に、第二のストレージシステム102Bにおける拡張スナップショット処理の一例について説明する。図20は、この第二のストレージシステム102Bにおける拡張スナップショット処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ホストコンピュータ101や管理端末104、その他保守端末223A、223Bやプログラムから、ユーザやプログラムにより、スナップショット作成指示を受信すると、スナップショット作成指示によるスナップショット125を実行するプログラムであるスナップショット拡張プログラム238を実行することにより、図20に示す拡張スナップショット処理手順RT9に従って、ペア情報235Bを参照することにより、スナップショット作成指示に対応するソースボリュームが第二のボリューム群111Bのボリュームであるか否かをチェックする(S101)。
そして、プロセッサ225Bは、スナップショット作成指示に対応するソースボリュームが第二のボリューム群111Bのボリュームでない場合(S101:NO)には、この後、図20に示す拡張スナップショット処理手順RT9を終了する(S106)。これに対して、プロセッサ225Bは、スナップショット作成指示に対応するソースボリュームが第二のボリューム群111Bのボリュームである場合(S101:YES)には、ローカルコピー制御情報240における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ332が「ON」であるか否かをチェックする(S102)。
そして、プロセッサ225Bは、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ332が「ON」でない場合(S102:NO)には、当該ソースボリュームのローカルコピー制御フラグ332が「ON」になるのを待機モードで待ち受ける。これに対して、プロセッサ225Bは、ローカルコピー制御情報240における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ332が「ON」である場合、又は「ON」になった場合(S102:YES)には、ローカルコピー制御情報240における、スナップショット作成指示に対応するソースボリュームの実行待ちフラグ333を「ON」に変更する(S103)。
続いて、プロセッサ225Bは、スナップショット作成指示に対応するソースボリュームから、対応するターゲットボリュームへのスナップショット125を実行する(S104)。続いて、プロセッサ225Bは、ローカルコピー制御情報240における、スナップショット作成指示に対応するソースボリュームの実行待ちフラグ333を「OFF」に変更する(S105)。やがて、プロセッサ225Bは、この後、図20に示す拡張スナップショット処理手順RT9を終了する(S106)。
このようにして、第一の実施の形態における計算機システム100では、第一のボリューム群111Aから第二のボリューム群111Bへの非同期のリモートコピー122による転送中以外は、第二のボリューム群111Bの上合性が取れていることを利用して、当該転送中に第二のボリューム群111Bから第三のボリューム群111Cのスナップショットの作成指示が行われた場合、スナップショットの作成をリモートコピー122による転送後まで遅延させ、リモートコピー122による転送中でない場合にスナップショットの作成指示が行われた場合、即時にスナップショットを作成する。
従って、第一の実施の形態における計算機システム100では、リモートコピーシステムの運用時にテスト等を実行する場合にも、当該システム運用の停止、再開といった煩雑な作業を未然かつ有効に防止し、システム運用を停止することなく、整合性の取れた状態のスナップショットを作成することができる。
(2)第二の実施の形態
図21は、本発明の第二の実施の形態における計算機システム100の概略的な構成を示している。計算機システム100では、第一のストレージシステム102Aにおいて、更新ビットマップ112A、差分ビットマップ112Bの代わりに、キャプチャ差分バッファ131A、転送差分バッファ131Bが設けられており、第二のストレージシステムにおいて、更新ビットマップ112C、第四のボリューム群111Dの代わりに、受信差分バッファ131C、適用差分バッファ131Dが設けられており、これらキャプチャ差分バッファ131A、転送差分バッファ131B、受信差分バッファ131C及び適用差分バッファ131Dを用いてリモートコピーシステムを運用する点を除いて、第一の実施の形態における計算機システム100と同様に構成されている。
第一の実施の形態では、例えば、第二のストレージシステム102Bにおいて、2つのボリューム群を管理することによってデータ整合性の取れたボリュームを保証するが、第二の実施の形態では、第二のストレージシステム102B内に書き込み対象のデータを蓄積する受信差分バッファ131C及び適用差分バッファ131Dを設けることによって、データ整合性の取れたボリュームを保証する。
ここで、第二の実施の形態における動作を概略的に説明する。第一のストレージシステム102Aは、ホストコンピュータ101等からの書き込み対象のデータを第一のボリューム群111Aに記憶すると同時にキャプチャ差分バッファ131Aに記憶する(141)。次に、第一のストレージシステム102Aは、キャプチャ差分バッファ131Aと転送差分バッファ131Bを入れ替える(142)。この場合、第一のストレージシステム102Aは、入れ替えた後に、再び、ホストコンピュータ101等からの書き込み対象のデータを第一のボリューム群111Aに記憶すると同時にキャプチャ差分バッファ131Aに記憶する(141)。次に、第一のストレージシステム102Aは、転送差分バッファ131Bの内容を第二のストレージシステム102Bの受信差分バッファ131Cに転送する(リモートコピー143)。次に、第二のストレージシステム102Bは、受信差分バッファ141Cと適用差分バッファ141Dを入れ替える(144)。この場合、第一のストレージシステム102Aは、入れ替えた後に、再び、転送差分バッファ131Bの内容を第二のストレージシステム102Bの受信差分バッファ131Cに転送する(リモートコピー143)。次に、第二のストレージシステム102Bは、適用差分バッファ141Dの内容を第二のボリューム群1412Bに適用する(ローカルコピー145)。
この計算機システム100では、ステップS112を周期的に実行することにより、第二のストレージシステム102Bにおいて、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成する。そして、この計算機システム100では、上述のリモートコピーシステムの運用中に第二のボリューム群111Bの整合性の取れた状態のスナップショット125を第三のボリューム群111Cに作成する。データ整合性についての詳細な説明は後ほど行う。
図22は、第二の実施の形態における計算機システム100における内部の概略的な構成を示している。計算機システム100では、第一のストレージシステム102Aにおける記憶制御装置201Aのメモリ224Aにおいて、更新ビットマップ112A、差分ビットマップ112B及びサイドファイル236の代わりに、キャプチャ差分バッファ131A、転送差分バッファ131Bが設けられており、第二のストレージシステム102Bにおける記憶制御装置201Bのメモリ224Bにおいて、更新ビットマップ112Cの代わりに、受信差分バッファ131C、適用差分バッファ131Dが設けられており、コピー管理プログラム231A、231B、リモートコピープログラム232、I/O制御プログラム233A、233B、ローカルコピープログラム237の処理内容が第一の実施例のプログラムと異なる点を除いて、第一の実施の形態における計算機システム100と同様に構成されている。これらプログラムについては、後ほどフローチャートで説明を行う。
図23は、キャプチャ差分バッファ131Aのテーブル構造を示している。キャプチャ差分バッファ131Aは、ボリューム名351A、当該ボリューム上の対応する記憶領域を示す対象アドレス352A、及び書き込み対象のデータ353Aを項目に有し、リストによって構成されている。
この計算機システム100では、キャプチャ差分バッファ131Aの他の実装方法としては、書き込み対象のデータの代わりに、メモリ224A上のキャッシュへのポインタを保持する方法がある。この場合、I/O制御プログラム233Aが書き込み対象のデータをキャッシュに保持する場合には、リモートコピーによる転送や記憶領域へのI/Oアクセスが終了するまで、キャッシュに書き込み対象のデータを保持しておき、キャプチャ差分バッファ131Aにキャッシュ上のデータへのポインタを保持することで、二重にデータを保持しない分、使用メモリ量を削減可能である。
なお、転送差分バッファ131B、受信差分バッファ131C及び適用差分バッファ131Dのテーブル構造は、キャプチャ差分バッファ131Aと同様に構成されている。
図24は、第一〜第三のボリューム群111A〜111C並びにキャプチャ差分バッファ131A、転送差分バッファ131B、受信差分バッファ131C及び適用差分バッファ131Dの更新状態を時系列で示している。この場合、第一のボリューム群111Aの更新状態を時系列で表したものが361Aで、第二のボリューム群111Bの更新状態を時系列で表したものが361Bで、第三のボリューム群111Cの更新状態を時系列で表したものが361Cで、キャプチャ差分バッファ131Aの差分データの状態を時系列で表したものが362Aで、転送差分バッファ131Bの差分データの状態を時系列で表したものが362Bで、受信差分バッファ131Cの差分データの状態を時系列で表したものが362Cで、適用差分バッファ131Dの差分データの状態を時系列で表したものが362Dである。
第一のストレージシステム102Aでは、キャプチャ差分バッファ131Aと転送差分バッファ131Bとを入れ替えたタイミングT11において、第一のボリューム群111Aの更新状態がAとすると、キャプチャ差分バッファ131Aと転送差分バッファ131Bとを入れ替えた後の転送差分バッファ131Bの内容が第二のボリューム群111BをAにするための書き込み対象のデータの集合となる(363)。
第一のストレージシステム102Aは、キャプチャ差分バッファ131Aと転送差分バッファ131Bとを入れ替えた後、継続してキャプチャ差分バッファ131Aにホストコンピュータ101からの書き込み対象のデータを記憶する(364)。この場合、第一のストレージシステム102Aは、キャプチャ差分バッファ131Aへの書き込み対象のデータの記憶の際に、同じ記憶領域への書き込みが発生した際、当該記憶領域に記憶されているデータを削除することにより、リモートコピー実行時のデータ転送量を削減する。また、第一のストレージシステム102Aは、記憶領域を示す対象アドレスからキャプチャ差分バッファ131A上の要素への参照をビットマップで管理することも考えられる。なお、差分バッファにおける要素とは、当該差分バッファの所定の記憶領域にデータが記憶されている状態のことをいう。
次に、第一のストレージシステム102Aは、転送差分バッファ131Bの書き込み対象のデータを第二のストレージシステム102Bの受信差分バッファ131Cに転送する(リモートコピー143)。第二のストレージシステム102Bでは、リモートコピー143の実行後、受信差分バッファ131Cの内容が第二のボリューム群111Bを更新状態Aにするための書き込み対象のデータの集合となる(365)。
次に、第一のストレージシステム102Aは、差分バッファ入れ替え指示を第二のストレージシステム102Bに送信する(366)。これにより、第二のストレージシステム102Bは、受信バッファ131Cと適用差分バッファ131Dとを入れ替える。
次に、第二のストレージシステム102Bは、差分バッファ入れ替え終了報告を第一のストレージシステム102Aに送信する(367)。これにより、第一のストレージシステム102Aは、再び、キャプチャ差分バッファ131Aと転送差分バッファ131Bとを入れ替える(142)ことが可能となり、タイミングT12において、キャプチャ差分バッファ131Aと転送差分バッファ131Bとを入れ替え、この後、同様の処理を繰り返す。
一方、第二のストレージシステム102Bでは、適用差分バッファ131Dの内容を第二のボリューム群111Bに適用する(ローカルコピー115A)。その際、第二のストレージシステム102Bは、ホストコンピュータ101からの書き込み順序に非依存で第二のボリューム群111Bに適用差分バッファ131Dの書き込み対象のデータを適用するため、第二のボリューム群111Bの書き込み順序に対するデータ整合性が保証されない可能性がある(差分適用期間D11)。やがて、第二のボリューム群111Bは、適用差分バッファ131Dからの書き込み対象のデータの適用が終了すると、更新状態がAとなり(368)、これにより第一のボリューム群111Aと第二のボリューム群111Bとのデータ整合性が保証されることとなる。
以上のように、計算機システム100では、第二のストレージシステム102Bに、書き込み対象のデータを蓄積する受信バッファ131C及び適用差分バッファ131Dを有することで、第二のボリューム群111Bの整合性を保証するために必要な書き込み対象のデータを保持しているため、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成することができる。
ここで、第二のストレージシステム102Bは、このようなリモートコピーシステムの運用中に、タイミングT13(第二のボリューム群111Bの差分適用期間D11)において、第二のボリューム群111Bから第三のボリューム群111Cへのスナップショット作成指示が発生した場合には、第二のボリューム群111Bへの差分適用期間D11が終了するまでスナップショット実行を遅延させる(遅延期間D12)。そして、第二のストレージシステム102Bは、第二のボリューム群111Bへの差分適用期間D11が終了すると、スナップショットを実行する(369)。この場合、第二のストレージシステム102Bは、スナップショットの実行自体を即座に終了させて、有限時間内に第二のボリューム群111Bの全データを第三のボリューム群111Cにコピーするバックグラウンドコピーを実行する(370)。
また、第二のストレージシステム102Bは、バックグラウンドコピー中に第二のボリューム群111Bにデータ書き込みが発生した場合には、上述の第一の実施の形態と同様に、I/O制御プログラム216Bを実行することにより、バックグラウンドコピー処理実行中も第二のボリューム群111Bへの書き込み対象のデータの適用を実行する(S115B)。
次に、第二の実施の形態における第一のストレージシステム102AのI/Oアクセス処理(ローカルサイト側)の一例について説明する。図25は、この第一のストレージシステム102AにおけるI/Oアクセス処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、ホストコンピュータ101からI/Oアクセスを受信すると、I/Oアクセスを実行するプログラムであるI/O制御プログラム233Aを実行することにより、図25に示す第一のI/Oアクセス処理手順RT10に従って、当該I/Oアクセスの種別が書き込み要求であるか否かをチェックする(S111)。
そして、プロセッサ225Aは、I/Oアクセスの種別が書き込み要求でない場合(S111:NO)には、I/Oアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し(S112)、この後、図25に示す第一のI/Oアクセス処理手順RT10を終了する(S116)。
これに対して、プロセッサ225Aは、当該I/Oアクセスの種別が書き込み要求である場合には(S111:YES)、ペア情報235Aを参照することにより、書き込み要求に対応するボリュームがリモートコピーのソースボリュームであるか否かをチェックする(S113)。
そして、プロセッサ225Aは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームでない場合(S113:NO)には、ステップS115に進むこれに対して、プロセッサ225Aは、書き込み要求に対応するボリュームがリモートコピーのソースボリュームである場合(S113:YES)には、書き込み要求に対応する書き込み対象のデータをキャプチャ差分バッファ131Aに記憶する(S114)。
やがて、プロセッサ225Aは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S115)、この後、図25に示す第一のI/Oアクセス処理手順RT10を終了する(S116)。
なお、プロセッサ225Aは、書き込み対象のデータをキャプチャ差分バッファ131Aに記憶するとき、既に書き込み対象のデータが差分キャプチャバッファ131Aの同じ記憶領域に記憶されている場合は、その要素を書き込み対象のデータで上書きすることでキャプチャ差分バッファ131Aのデータ量を削減し、第二のストレージシステム102Bへのデータ転送量を削減する。またなお、プロセッサ225Aは、第一の実施の形態と同様の方法によって、データの読み書きを実現する。
次に、第二の実施の形態における第二のストレージシステム102BのI/Oアクセス処理(リモートサイト側)の一例について説明する。図26及び図27は、この第二のストレージシステム102BにおけるI/Oアクセス処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ホストコンピュータ101からI/Oアクセスを受信する、又は第一のストレージシステム102Aのリモートコピープログラム232が実行されることによってI/Oアクセス要求を受信すると、I/Oアクセスを実行するプログラムであるI/O制御プログラム223Bを実行することにより、図26及び図27に示す第二のI/Oアクセス処理手順RT11に従って、ペア情報235Bを参照することにより、I/Oアクセスに対応するボリュームがリモートコピーのターゲットボリュームであるか否かをチェックする(S121)。
そして、プロセッサ225Bは、I/Oアクセスに対応するボリュームがリモートコピーのターゲットボリュームでない場合(S121:NO)には、ペア情報235Bを参照することにより、I/Oアクセスに対応するボリュームがスナップショットのターゲットボリュームであるか否かをチェックする(S122)。
そして、プロセッサ225Bは、I/Oアクセスに対応するボリュームがスナップショットのターゲットボリュームでない場合(S122:NO)には、I/Oアクセスに対応するボリュームの記憶領域へのデータの読み書きを実行し(S123)、この後、図26及び図27に示す第二のI/Oアクセス処理手順RT11を終了する(S124)。
これに対して、プロセッサ225Bは、I/Oアクセスに対応するボリュームがリモートコピーのターゲットボリュームである場合(S121:YES)には、当該I/Oアクセスの種別が書き込み要求であるか否かをチェックする(S131)(図27)。
そして、プロセッサ225Bは、I/Oアクセスの種別が書き込み要求でない場合(S131:NO)には、I/Oアクセスの種別が読み出し要求であると判定し、読み出し要求に対応するボリュームの記憶領域から、読み出し対象のデータを読み出し(S132)、この後、図26及び図27に示す第二のI/Oアクセス処理手順RT11終了する(S124)。
これに対して、プロセッサ225Bは、当該I/Oアクセスの種別が書き込み要求である場合には(S131:YES)、ペア情報235Bを参照することにより、書き込み要求に対応するボリュームがスナップショットのソースボリュームであるか否かをチェックする(S133)。
そして、プロセッサ225Bは、書き込み要求に対応するボリュームがスナップショットのソースボリュームでない場合(S133:NO)には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S134)、この後、図26及び図27に示す第二のI/Oアクセス処理手順RT11を終了する(S124)。
これに対して、プロセッサ225Bは、書き込み要求に対応するボリュームがスナップショットのソースボリュームである場合(S133:YES)には、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」であるか否かをチェックする(S135)。
そして、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」でない場合(S135:NO)には、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S134)、この後、図26及び図27に示す第二のI/Oアクセス処理手順RT11を終了する(S124)。
これに対して、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301が「ON」である場合(S135:YES)には、スナップショットのターゲットボリュームの記憶領域に、書き込み要求に対応するボリュームの記憶領域に現在記憶されているデータをコピーする(S136)。
続いて、プロセッサ225Bは、スナップショットのターゲットボリュームの記憶領域に対応する更新ビットマップ112Dのビット301を「OFF」に変更する(S137)。
やがて、プロセッサ225Bは、書き込み要求に対応するボリュームの記憶領域に、書き込み対象のデータを書き込み(S134)、この後、図26及び図27に示す第二のI/Oアクセス処理手順RT11を終了する(S124)。なお、プロセッサ225Bは、第一の実施の形態と同様の方法によって、データの読み書きを実現する。
次に、第二の実施の形態における第一のストレージシステム102Aのコピー管理処理(ローカルサイト側)の一例について説明する。図28は、この第一のストレージシステム102Aにおけるコピー管理処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム231Aを実行することにより、図28に示す第一のコピー管理処理手順RT12に従って、リモートコピー143を実行する(S141)。続いて、プロセッサ225Aは、リモートコピー143が終了するのを待機モードで待ち受ける(S142)。やがて、プロセッサ225Aは、リモートコピー143が終了すると(S142:YES)、第二のストレージシステム102Bに差分バッファ入れ替え開始指示を送信する(S143)。
続いて、プロセッサ225Aは、第二のストレージシステム102Bからの差分バッファ入れ替え終了報告を受信するのを待機モードで待ち受ける(S144)。やがて、プロセッサ225Aは、第二のストレージシステム102Bからの差分バッファ入れ替え終了報告を受信すると(S144:YES)、この後、再び、リモートコピー143を実行し(S141)、リモートコピー143が終了するのを待ち受ける待機モードに戻り(S142)、この後同様の処理を繰り返す(S141〜S144)。
次に、第二の実施の形態における第二のストレージシステム102Bのコピー管理処理(リモートサイト側)の一例について説明する。図29は、この第二のストレージシステム102Bにおけるコピー管理処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、初期時、コピー管理を実行するプログラムであるコピー管理プログラム231Bを実行することにより、図29に示す第二のコピー管理処理手順RT13に従って、第一のストレージシステム102Aから差分バッファ入れ替え開始指示を受信するのを待機モードで待ち受ける(S151)。やがて、プロセッサ225Bは、第一のストレージシステム102Aから差分バッファ入れ替え開始指示を受信すると(S151:YES)、受信差分バッファ131Cと適用差分バッファ131Dとの内容を入れ替える(S152)。
続いて、プロセッサ225Bは、第一のストレージシステム102Aに差分バッファ入れ替え終了報告を送信する(S153)。続いて、プロセッサ225Bは、ローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ332を「OFF」に変更する(S154)。続いて、プロセッサ225Bは、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー145を実行する(S155)。
続いて、プロセッサ225Bは、ローカルコピー145が終了するのを待機モードで待ち受ける(S156)。やがて、プロセッサ225Bは、ローカルコピー145が終了すると(S156:YES)、ローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ332を「ON」に変更する(S157)。
続いて、プロセッサ225Bは、ローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ333が「OFF」であるか否かをチェックする(S158)。
そして、プロセッサ225Bは、ローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ333が「OFF」でない場合(S158:NO)には、当該ソースボリュームのコピー制御フラグ332が「OFF」になるのを待機モードで待ち受ける。これに対して、プロセッサ225Bは、ローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームの実行待ちフラグ333が「OFF」である場合、又は「OFF」になった場合(S158:YES)には、この後、再び、第一のストレージシステム102Aから差分バッファ入れ替え開始指示を受信するのを待ち受ける待機モードに戻り(S151)、この後同様の処理を繰り返す(S151〜S158)。
なお、プロセッサ225Bは、ステップS154でローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ332を「OFF」に変更し、ステップS157でローカルコピー制御情報240における、差分バッファ入れ替え開始指示に対応するボリュームのローカルコピー制御フラグ332を「ON」に変更する。このように、第二の実施の形態では、第一の実施の形態における図15に示す第二のコピー管理処理手順RT4と逆になっているが、その理由としては、ローカルコピー145の実行が適用差分バッファ131Dの内容を第二のボリューム群111Bに適用することであり、第二のボリューム群111Bがスナップショットのソースボリューム群となるため、ローカルコピー145の実行中にデータ整合性が保証されないからである。
次に、第二の実施の形態における第一のストレージシステム102Aのリモートコピー処理の一例について説明する。図30は、この第一のストレージシステム102Aにおけるリモートコピー処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、所定のタイミングで、コピー管理プログラム231Aによってリモートコピー143を実行するプログラムであるリモートコピープログラム232を実行することにより、図30に示すリモートコピー処理手順RT14に従って、キャプチャ差分バッファ131Aと転送差分バッファ131Bとの内容を入れ替える(S161)。
続いて、プロセッサ225Aは、転送差分バッファ131Bの要素があるか否かをチェックする(S162)。そして、プロセッサ225Aは、転送差分バッファ131Bの要素がない場合(S162:NO)には、この後、図30に示すリモートコピー処理手順RT14を終了する(S168)。これに対して、プロセッサ225Aは、転送差分バッファ131Bの要素がある場合(S162:YES)には、転送差分バッファ131Bの最初の要素を調査対象とする(S163)。
続いて、プロセッサ225Aは、調査対象の転送差分バッファ131Bの要素のデータを第二のストレージシステム102Bに送信する(S164)。続いて、プロセッサ225Aは、調査対象の転送差分バッファ131Bの要素のデータを削除する(S165)。
続いて、プロセッサ225Aは、転送差分バッファ131Bの最後の要素まで調査対象としたか否かをチェックする(S166)。そして、プロセッサ225Aは、転送差分バッファ131Bの最後の要素まで調査対象としていない場合(S166:NO)には、転送差分バッファ131Bの次の要素を調査対象として(S167)、この後、再び、調査対象の転送差分バッファ131Bの要素のデータを第二のストレージシステム102Bに送信し(S164)、この後同様の処理を繰り返す(S164〜S166)。
これに対して、プロセッサ225Aは、転送差分バッファ131Bの最後の要素まで調査対象とした場合(S166:YES)には、この後、図30に示すリモートコピー処理手順RT14を終了する(S168)。
次に、第二の実施の形態における第二のストレージシステム102Bのローカルコピー処理の一例について説明する。図31は、この第二のストレージシステム102Bにおけるローカルコピー処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、第一のストレージシステム102Aから差分バッファ入れ替え開始指示を受信すると、コピー管理プログラム231Bによってローカルコピー145を実行するプログラムであるローカルコピープログラム237を実行することにより、図31に示すローカルコピー処理手順RT15に従って、適用差分バッファ131Dの要素があるか否かをチェックする(S171)。そして、プロセッサ225Bは、適用差分バッファ131Dの要素がない場合(S171:NO)には、この後、図31に示すローカルコピー処理手順RT15を終了する(S177)。これに対して、プロセッサ225Bは、適用差分バッファ131Dの要素がある場合(S171:YES)には、適用差分バッファ131Dの最初の要素を調査対象とする(S172)。
続いて、プロセッサ225Bは、調査対象の適用差分バッファ131Dの要素のデータを、当該要素が示すボリュームの記憶領域に記憶する(S173)。続いて、プロセッサ225Aは、調査対象の適用差分バッファ131Dの要素のデータを削除する(S174)。
続いて、プロセッサ225Bは、適用差分バッファ131Dの最後の要素まで調査対象としたか否かをチェックする(S175)。そして、プロセッサ225Bは、適用差分バッファ131Dの最後の要素まで調査対象としていない場合(S175:NO)には、適用差分バッファ131Dの次の要素を調査対象として(S176)、この後、再び、調査対象の適用差分バッファ131Dの要素のデータを、当該要素が示すボリュームの記憶領域に記憶し(S173)、この後同様の処理を繰り返す(S173〜S175)。
これに対して、プロセッサ225Bは、適用差分バッファ131Dの最後の要素まで調査対象とした場合(S175:YES)には、この後、図31に示すローカルコピー処理手順RT15を終了する(S177)。
このようにして第二の実施の形態における計算機システム100では、第二のストレージシステム102Bに、書き込み対象のデータを蓄積する受信バッファ131C及び適用差分バッファ131Dを有することで、第二のボリューム群111Bの整合性を保証するために必要な書き込み対象のデータを保持しているため、常に、データ整合性の取れたボリュームを構成可能なリモートコピーシステムを構成することができる。
(3)第三の実施の形態
第三の実施例では、マーカを使用する方法について説明する。第三の実施例における計算機システム100は、マーカを使用する点を除いて、第一または第二の実施の形態における計算機システム100と同様に構成されている。マーカは、ボリュームの状態を表す識別子で、ホストコンピュータ101等がある時点で第一のストレージシステム102Aに対して、マーカ作成指示を行う。例えば、ホストコンピュータ101は、所定のボリューム群において「ある重要なデータが書き込まれた」などの条件が満たされた時点で、指定マーカ作成指示を行う。その後、計算機システム100では、リモートサイトにある第二のストレージシステム102Bでリモートコピーシステムの運用中に第二のボリューム群111Bのスナップショットを作成する際に、マーカを使用する方法によって、特定の条件が満たされたボリューム群のスナップショットを作成する。
図32は、第三の実施形態におけるマーカの構造を示している。マーカは、所定のボリューム群の状態を表す用途として用いられる。所定のボリューム群111と一対一に対応する記憶領域302をマーカ領域として割り当てる。例えば、計算機システム100では、記憶制御装置201Aのメモリ224A上に記憶領域302を確保する方法や、ボリューム群111の一部に記憶領域302を確保する方法が考えられる。
図33は、第三の実施の形態における第一のストレージシステム102Aのマーカ処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。プロセッサ225Aは、ホストコンピュータ101や管理端末104、その他保守端末223A、223Bやプログラムから、ユーザやプログラムにより、マーカ作成指示を受信すると、マーカ作成処理を実行するプログラムであるマーカ制御プログラム234を実行することにより、図33に示すマーカ処理手順RT16に従って、マーカ作成指示に対応するボリュームのマーカ領域に指定マーカを書き込み(S181)、この後、図33に示すマーカ処理手順RT16を終了する(S182)。
次に、第三の実施の形態における第一のストレージシステム102Aのコピー管理処理(ローカルサイト側)の一例について説明する。図35は、この第一のストレージシステム102Aにおけるコピー管理処理に関するプロセッサ225Aの具体的な処理手順を示したフローチャートである。
プロセッサ225Aは、所定のタイミングで、コピー管理を実行するプログラムであるコピー管理プログラム231Aを実行することにより、図35に示す第一のコピー管理処理手順RT17に従って、リモートコピー122を実行する(S191)。続いて、プロセッサ225Aは、リモートコピー122が終了するのを待機モードで待ち受ける(S92)。やがて、プロセッサ225Aは、リモートコピー122が終了すると(S192:YES)、リモートコピーのソースボリュームのマーカ領域のデータを、リモートコピーのターゲットボリュームのマーカ領域に適用する(S193)。
この場合、プロセッサ225Aは、例えば、ボリューム111上の記憶領域にマーカ領域を割り当てた場合、リモートコピーによる書き込み対象のデータの第二のストレージシステム102Bへの転送と同様に、マーカ領域に適用する。また、プロセッサ225Aは、例えば、メモリ224A上の記憶領域302にマーカ領域を割り当てた場合、適用時にマーカ領域のデータを第二のストレージシステム102Bにネットワーク103を通して転送し、第二のストレージシステム102Bに第一のストレージシステム102Aから転送されたデータをローカルコピーの実行前にメモリ224B上の記憶領域302に書き込むことにより、マーカ領域に適用する。さらに、プロセッサ225Aは、リモートコピーの実行中においても、マーカ領域に適用する。
続いて、プロセッサ225Aは、第二のストレージシステム102Bにローカルコピー開始指示を送信する(S194)。続いて、プロセッサ225Aは、第二のストレージシステム102Bからのローカルコピー終了報告を受信するのを待機モードで待ち受ける(S195)。やがて、プロセッサ225Aは、第二のストレージシステム102Bからのローカルコピー終了報告を受信すると(S195:YES)、この後、再び、リモートコピー122を実行し(S191)、リモートコピー122が終了するのを待ち受ける待機モードに戻り(S192)、この後同様の処理を繰り返す(S191〜S195)。
なお、本実施の形態では、第一の実施の形態におけるコピー管理処理に関するプロセッサ225Aの具体的な処理手順に適用した場合について述べたが、第二の実施の形態におけるコピー管理処理に関するプロセッサ225Aの具体的な処理手順に適用した場合にも同様である。
次に、第三の実施の形態における第二のストレージシステム102Bの拡張スナップショット処理の一例について説明する。図35は、この第二のストレージシステム102Bにおける拡張スナップショット処理に関するプロセッサ225Bの具体的な処理手順を示したフローチャートである。
プロセッサ225Bは、ホストコンピュータ101や管理端末104、その他保守端末223A、223Bやプログラムから、ユーザやプログラムにより、指定マーカの入力を受信すると、指定マーカの入力によるスナップショット125を実行するプログラムであるスナップショット拡張プログラム238を実行することにより、図35に示す拡張スナップショット処理手順RT18に従って、ペア情報235Bを参照することにより、指定マーカの入力に対応するソースボリュームが第二のボリューム群111Bのボリュームであるか否かをチェックする(S201)。
そして、プロセッサ225Bは、指定マーカの入力に対応するソースボリュームが第二のボリューム群111Bのボリュームでない場合(S101:NO)には、この後、図35に示す拡張スナップショット処理手順RT18を終了する(S106)。これに対して、プロセッサ225Bは、指定マーカの入力に対応するソースボリュームが第二のボリューム群111Bのボリュームである場合(S201:YES)には、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ332が「ON」であるか否かをチェックする(S202)。
そして、プロセッサ225Bは、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ332が「ON」でない場合(S202:NO)には、当該ソースボリュームのローカルコピー制御フラグ332が「ON」になるのを待機モードで待ち受ける。これに対して、プロセッサ225Bは、ローカルコピー制御情報240における、スナップショット作成指示に対応するソースボリュームのローカルコピー制御フラグ332が「ON」である場合、又は「ON」になった場合(S202:YES)には、第二のボリューム群111Bのボリュームにおいて、マーカを表すデータと、指定マーカが等しいか否かをチェックする(S203)。
そして、プロセッサ225Bは、第二のボリューム群111Bのボリュームにおいて、マーカを表すデータと、指定マーカが等しくない場合(S203:NO)には、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ332が「OFF」であるか否かをチェックする(S204)。そして、プロセッサ225Bは、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ332が「OFF」でない場合(S204:NO)には、当該ソースボリュームのローカルコピー制御フラグ332が「OFF」になるのを待機モードで待ち受ける。これに対して、プロセッサ225Bは、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームのローカルコピー制御フラグ332が「OFF」である場合、又は「OFF」になった場合(S204:YES)には、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームのコピー制御フラグ332が「ON」であるか否かをチェックし(S202)、この後同様の処理を繰り返す(S202〜S204)。
これに対して、プロセッサ225Bは、第二のボリューム群111Bのボリュームにおいて、マーカを表すデータと、指定マーカが等しい場合(S203:YES)には、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームの実行待ちフラグ333を「ON」に変更する(S205)。
続いて、プロセッサ225Bは、指定マーカの入力に対応するソースボリュームから、対応するターゲットボリュームへのスナップショット125を実行する(S206)。続いて、プロセッサ225Bは、ローカルコピー制御情報240における、指定マーカの入力に対応するソースボリュームの実行待ちフラグ333を「OFF」に変更する(S207)。やがて、プロセッサ225Bは、この後、図35に示す拡張スナップショット処理手順RT18を終了する(S208)。
このようにして、第三の実施の形態における計算機システム100では、第二のボリューム群111Bのボリュームにおいて、マーカを表すデータと、指定マーカが一致し、かつローカルコピー制御情報240における、指定マーカの入力に対応するローカルコピー制御フラグ332が「ON」であるときにスナップショットを作成することができる。
本発明は、ホストコンピュータとストレージシステムとをネットワークにより接続し、ホストコンピュータで処理されるデータを、ネットワークを介して送受信してストレージシステムに格納するコンピュータシステムに広く適用することができる。
第一の実施の形態による計算機システムの概略的な構成を示すブロック図である。 計算機システムの内部の概略的な構成を示すブロック図である。 更新ビットマップ及び差分ビットマップの説明に供する概念図である。 ペア情報の説明に供する概念図である。 サイドファイルの説明に供する概念図である。 ローカルコピー制御情報の説明に供する概念図である。 リモートコピーシステムの動作の説明に供する概念図である。 リモートコピーシステムの動作の説明に供する概念図である。 第一〜第四のボリューム群の更新状態の説明に供する概念図である。 I/Oアクセス処理手順を示すフローチャートである。 I/Oアクセス処理手順を示すフローチャートである。 I/Oアクセス処理手順を示すフローチャートである。 I/Oアクセス処理手順を示すフローチャートである。 コピー管理処理手順を示すフローチャートである。 コピー管理処理手順を示すフローチャートである。 リモートコピー処理手順を示すフローチャートである。 ローカルコピー処理手順を示すフローチャートである。 スナップショット処理手順を示すフローチャートである。 バックグラウンドコピー処理手順を示すフローチャートである。 拡張スナップショット処理手順を示すフローチャートである。 第二の実施の形態による計算機システムの概略的な構成を示すブロック図である。 計算機システムの内部の概略的な構成を示すブロック図である。 差分バッファの説明に供する概念図である。 第一〜第三のボリューム群及び差分バッファの更新状態の説明に供する概念図である。 I/Oアクセス処理手順を示すフローチャートである。 I/Oアクセス処理手順を示すフローチャートである。 I/Oアクセス処理手順を示すフローチャートである。 コピー管理処理手順を示すフローチャートである。 コピー管理処理手順を示すフローチャートである。 リモートコピー処理手順を示すフローチャートである。 ローカルコピー処理手順を示すフローチャートである。 マーカの説明に供する概念図である。 マーカ処理手順を示すフローチャートである。 コピー管理処理手順を示すフローチャートである。 拡張スナップショット処理手順を示すフローチャートである。
符号の説明
100……計算機システム、101……ホストコンピュータ、102A……第一のストレージシステム、102B……第二のストレージシステム、103……ネットワーク、104……管理端末、111A〜111D……第一〜第四のボリューム群、112A、112C、112D……更新ビットマップ、112B……差分ビットマップ、121……リモートコピーのペア関係、122、141……リモートコピー、123……ローカルコピーのペア関係、124、142……ローカルコピー、125……スナップショット、201A、201B……記憶制御装置、202A、202B……記憶装置、224A、224B……メモリ、225A、225B……プロセッサ、231A、231B……コピー管理プログラム、232……リモートコピープログラム、233A、233B……I/O制御プログラム、234……マーカ制御プログラム、235A、235B……ペア情報、236……サイドファイル、237……ローカルコピープログラム、238……スナップショット拡張プログラム、239……スナップショットプログラム、240……ローカルコピー制御情報

Claims (22)

  1. 上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、前記第一のストレージシステムから送信される前記データを記憶する第二のボリュームを有する第二のストレージシステムとを含む計算機システムであって、
    前記第一のストレージシステムは、前記第一のボリュームに記憶された前記データを前記第二のストレージシステムの前記第二のボリュームに転送するデータ転送部を備え、
    前記第二のストレージシステムは、スナップショット作成指示に基づいて、前記第二のボリュームのスナップショットを第三のボリュームに作成するスナップショット作成部を備え、
    前記スナップショット作成部は、前記データ転送部により前記第一のボリュームに記憶されるデータのコピーが前記第二のボリュームに転送されているときに前記スナップショット作成指示を受信した場合、前記転送が終了するまで、前記第二のボリュームのスナップショットの前記第三のボリュームへの作成を遅延させる
    ことを特徴とする計算機システム。
  2. 前記スナップショット作成部は、前記データ転送部により前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記スナップショット作成指示を受信した場合、即時に前記第二のボリュームのスナップショットを前記第三のボリュームに作成することを特徴とする請求項1に記載の計算機システム。
  3. 前記データ転送部は、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送することを特徴とする請求項1に記載の計算機システム。
  4. 前記第二のストレージシステムは、前記第二のボリュームに記憶された前記データを第四のボリュームに転送する第二のデータ転送部を備え、
    前記第二のデータ転送部は、前記第一のボリュームから前記第二のボリュームに前記データの転送が終了すると、前記第二のボリュームから前記第四のボリュームに前記データの転送を開始し、
    前記データ転送部は、前記第二のボリュームから前記第四のボリュームに前記データの転送が終了すると、前記第一のボリュームから前記第二のボリュームに前記データの転送を開始する
    ことを特徴とする請求項3に記載の計算機システム。
  5. 前記第一のストレージシステムは、
    前記第一のボリュームに新たに記憶された更新対象のデータの内容を記録する第一の更新ビットマップと、
    前記第二のストレージシステムに転送する転送対象のデータの内容を記録する差分ビットマップと
    を備え、
    前記データ転送部は、一定期間ごとに前記更新ビットマップ及び前記差分ビットマップの内容を入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送する
    ことを特徴とする請求項3に記載の計算機システム。
  6. 前記第二のストレージシステムは、前記第三のボリュームに新たに記憶すべき更新対象のデータの内容を記録する第二の更新ビットマップを備え、
    前記スナップショット作成部は、スナップショット作成指示に基づいて、前記第二のビットマップのすべてのビットを、前記第三のボリュームに新たに記憶すべきという内容に変更し、その後、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送する
    ことを特徴とする請求項1に記載の計算機システム。
  7. 前記スナップショット作成部は、
    前記第二のボリュームへの書込み要求を受信したときに、当該書込み要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記書き込み要求に対応するデータを前記第二のボリュームの記憶領域に書き込む
    ことを特徴とする請求項6に記載の計算機システム。
  8. 前記スナップショット作成部は、前記第三のボリュームへのアクセス要求を受信したときに、当該アクセス要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記アクセス要求に対応するデータを、前記第三のボリュームの記憶領域から読み出し、又は前記第三のボリュームの記憶領域に書き込むことを特徴とする請求項6に記載の計算機システム。
  9. 前記第二のストレージシステムは、
    前記第一のストレージシステムから転送された前記データを前記第二のボリュームに転送する第三の転送部と、
    前記第一のストレージシステムから転送された前記データを記憶する受信差分バッファと、
    前記第二のボリュームに適用する適用対象のデータを記憶する適用差分バッファと
    を備え、
    前記第三のデータ転送部は、一定期間ごとに前記受信差分バッファ及び前記適用差分バッファを入れ替えることにより、前記第一のストレージシステムから転送された前記データをまとめて、前記第二のボリュームに適用する
    ことを特徴とする請求項3に記載の計算機システム。
  10. 前記第一のストレージシステムは、
    前記第一のボリュームに新たに記憶された更新対象のデータを記憶するキャプチャ差分バッファと、
    前記第二のストレージシステムに転送する転送対象のデータを記憶する転送差分バッファと
    を備え、
    前記データ転送部は、一定期間ごとに前記キャプチャ差分バッファ及び前記転送差分バッファを入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムに転送する
    ことを特徴とする請求項9に記載の計算機システム。
  11. 前記スナップショット作成部は、前記上位装置から送信された指定マーカと、前記第二のボリュームのマーカ領域に記憶されたマーカが一致し、かつ前記データ転送部により前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記第二のボリュームのスナップショットを前記第三のボリュームに作成することを特徴とする請求項1に記載の計算機システム。
  12. 上位装置から送信されるデータを記憶する第一のボリュームを有する第一のストレージシステムと、前記第一のストレージシステムから送信される前記データを記憶する第二のボリュームを有する第二のストレージシステムとを含む計算機システムのスナップショット作成方法であって、
    前記第一のボリュームに記憶された前記データを前記第二のストレージシステムの前記第二のボリュームに転送する第一のステップと、
    スナップショット作成指示に基づいて、前記第二のボリュームのスナップショットを第三のボリュームに作成する第二のステップと
    を備え、
    前記第二のステップでは、前記第一のステップにおいて前記第一のボリュームに記憶されるデータのコピーが前記第二のボリュームに転送されているときに前記スナップショット作成指示があった場合前記転送が終了するまで、前記第二のボリュームのスナップショットの前記第三のボリュームへの作成を遅延させる
    ことを特徴とするスナップショット作成方法。
  13. 前記第二のステップでは、前記第一のステップにおいて前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記スナップショット作成指示を受信した場合、即時に前記第二のボリュームのスナップショットを前記第三のボリュームに作成することを特徴とする請求項12に記載のスナップショット作成方法。
  14. 前記第一のステップでは、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送することを特徴とする請求項12に記載のスナップショット作成方法。
  15. 前記第二のボリュームに記憶された前記データを第四のボリュームに転送する第三のステップを備え、
    前記第三のステップでは、前記第一のボリュームから前記第二のボリュームに前記データの転送が終了すると、前記第二のボリュームから前記第四のボリュームに前記データの転送を開始し、
    前記第一のステップでは、前記第二のボリュームから前記第四のボリュームに前記データの転送が終了すると、前記第一のボリュームから前記第二のボリュームに前記データの転送を開始する
    ことを特徴とする請求項14に記載のスナップショット作成方法。
  16. 前記第一のステップでは、一定期間ごとに、前記第一のボリュームに新たに記憶された更新対象のデータの内容を記録する第一の更新ビットマップ及び前記第二のストレージシステムに転送する転送対象のデータの内容を記録する差分ビットマップの内容を入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムの前記第二のボリュームに転送することを特徴とする請求項14に記載のスナップショット作成方法。
  17. 前記第二のステップでは、スナップショット作成指示に基づいて、前記第三のボリュームに新たに記憶すべき更新対象のデータの内容を記録する第二のビットマップのすべてのビットを、前記第三のボリュームに新たに記憶すべきという内容に変更し、その後、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送することを特徴とする請求項12に記載のスナップショット作成方法。
  18. 前記第二のステップでは、前記第二のボリュームへの書込み要求を受信したときに、当該書込み要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記書き込み要求に対応するデータを前記第二のボリュームの記憶領域に書き込むことを特徴とする請求項17に記載のスナップショット作成方法。
  19. 前記第二のステップでは、前記第三のボリュームへのアクセス要求を受信したときに、当該アクセス要求に対応する前記第二のビットマップのビットが、前記第三のボリュームに新たに記憶すべきという内容に変更されている場合には、前記第二のビットマップのビットに対応する前記第二のボリュームの記憶領域のデータを前記第三のボリュームに転送した後に、前記アクセス要求に対応するデータを、前記第三のボリュームの記憶領域から読み出し、又は前記第三のボリュームの記憶領域に書き込むことを特徴とする請求項17に記載のスナップショット作成方法。
  20. 前記第一のストレージシステムから転送された前記データを前記第二のボリュームに転送する第四のステップを備え、
    前記第四のステップでは、一定期間ごとに、前記第一のストレージシステムから転送された前記データを記憶する受信差分バッファ及び前記第二のボリュームに適用する適用対象のデータを記憶する適用差分バッファを入れ替えることにより、前記第一のストレージシステムから転送された前記データをまとめて、前記第二のボリュームに適用する
    ことを特徴とする請求項14に記載のスナップショット作成方法。
  21. 前記第一のステップでは、一定期間ごとに、前記第一のボリュームに新たに記憶された更新対象のデータを記憶するキャプチャ差分バッファ及び前記第二のストレージシステムに転送する転送対象のデータを記憶する転送差分バッファを入れ替えることにより、前記第一のボリュームに一定期間書き込まれた前記データをまとめて、前記第二のストレージシステムに転送することを特徴とする請求項20に記載のスナップショット作成方法。
  22. 前記第二のステップでは、前記上位装置から送信された指定マーカと、前記第二のボリュームのマーカ領域に記憶されたマーカが一致し、かつ前記第一のステップにおいて前記第一のボリュームから前記第二のボリュームに前記データを転送していないときに、前記第二のボリュームのスナップショットを前記第三のボリュームに作成することを特徴とする請求項12に記載のスナップショット作成方法。
JP2006213896A 2006-08-04 2006-08-04 計算機システム及びそのスナップショット作成方法 Expired - Fee Related JP4942418B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006213896A JP4942418B2 (ja) 2006-08-04 2006-08-04 計算機システム及びそのスナップショット作成方法
US11/527,446 US7725668B2 (en) 2006-08-04 2006-09-27 Computer system and snapshot creation method thereof, delaying snapshot creation until pending transfer between volumes is complete
EP07250023A EP1892614B1 (en) 2006-08-04 2007-01-04 Computer system and snapshot creation method thereof
CN2007101055374A CN101118507B (zh) 2006-08-04 2007-05-25 计算机系统及其快照生成方法
US12/786,464 US7953947B2 (en) 2006-08-04 2010-05-25 Creating a snapshot based on a marker transferred from a first storage system to a second storage system
US13/118,765 US8112600B2 (en) 2006-08-04 2011-05-31 Creating a snapshot based on a marker transferred from a first storage system to a second storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006213896A JP4942418B2 (ja) 2006-08-04 2006-08-04 計算機システム及びそのスナップショット作成方法

Publications (3)

Publication Number Publication Date
JP2008040762A JP2008040762A (ja) 2008-02-21
JP2008040762A5 JP2008040762A5 (ja) 2009-07-23
JP4942418B2 true JP4942418B2 (ja) 2012-05-30

Family

ID=38610870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006213896A Expired - Fee Related JP4942418B2 (ja) 2006-08-04 2006-08-04 計算機システム及びそのスナップショット作成方法

Country Status (4)

Country Link
US (3) US7725668B2 (ja)
EP (1) EP1892614B1 (ja)
JP (1) JP4942418B2 (ja)
CN (1) CN101118507B (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4842720B2 (ja) * 2006-06-29 2011-12-21 株式会社日立製作所 ストレージシステム及びデータ複製方法
JP5401041B2 (ja) * 2008-02-21 2014-01-29 株式会社日立製作所 ストレージシステム及びコピー方法
JP5302582B2 (ja) * 2008-07-09 2013-10-02 株式会社日立製作所 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法
JP5156518B2 (ja) * 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
JP4679635B2 (ja) * 2008-12-29 2011-04-27 富士通株式会社 ストレージ装置、バックアップ装置、バックアップ方法およびバックアップシステム
TWI526823B (zh) * 2009-01-23 2016-03-21 普安科技股份有限公司 單一架構下進行資料卷複製的方法及其裝置
US20110246731A1 (en) * 2009-03-18 2011-10-06 Hitachi, Ltd. Backup system and backup method
JP4951652B2 (ja) 2009-06-24 2012-06-13 株式会社日立製作所 コンピュータシステムのリモートコピー方法及びコンピュータシステム
CN102103530B (zh) * 2009-12-16 2013-08-14 成都市华为赛门铁克科技有限公司 快照方法、设备及系统
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
JP2012058863A (ja) * 2010-09-07 2012-03-22 Nec Corp ディスク装置、および、ディスク装置へのデータ複製方法、プログラム
US8396833B2 (en) * 2010-09-10 2013-03-12 International Business Machines Corporation Inode management in redirect-on-write file system
JP5542241B2 (ja) * 2011-03-24 2014-07-09 株式会社日立製作所 計算機システム及びデータバックアップ方法
JP5776267B2 (ja) * 2011-03-29 2015-09-09 日本電気株式会社 分散ファイルシステム
US8463746B2 (en) * 2011-03-30 2013-06-11 International Business Machines Corporation Method and system for replicating data
US8751758B2 (en) * 2011-07-01 2014-06-10 International Business Machines Corporation Delayed instant copy operation for short-lived snapshots
JP5853649B2 (ja) * 2011-11-30 2016-02-09 富士通株式会社 ストレージ装置,制御装置及びプログラム
US9146685B2 (en) 2013-02-11 2015-09-29 International Business Machines Corporation Marking local regions and providing a snapshot thereof for asynchronous mirroring
US10311151B2 (en) * 2013-02-21 2019-06-04 Hitachi Vantara Corporation Object-level replication of cloned objects in a data storage system
US9417815B1 (en) 2013-06-21 2016-08-16 Amazon Technologies, Inc. Capturing snapshots of storage volumes
US9772907B2 (en) 2013-09-13 2017-09-26 Vmware, Inc. Incremental backups using retired snapshots
US9514002B2 (en) * 2013-09-13 2016-12-06 Vmware, Inc. Incremental backups using retired snapshots
US9323764B2 (en) * 2013-11-12 2016-04-26 International Business Machines Corporation Copying volumes between storage pools
US10120617B2 (en) 2013-11-12 2018-11-06 International Business Machines Corporation Using deterministic logical unit numbers to dynamically map data volumes
WO2015102875A1 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods of using data forwarding
EP3090344B1 (en) 2013-12-30 2018-07-18 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
ES2652262T3 (es) * 2013-12-30 2018-02-01 Stratus Technologies Bermuda Ltd. Método de retardar puntos de comprobación inspeccionando paquetes de red
US9405483B1 (en) 2014-03-11 2016-08-02 Amazon Technologies, Inc. Optimized write performance at block-based storage during volume snapshot operations
US10394491B2 (en) * 2016-04-14 2019-08-27 International Business Machines Corporation Efficient asynchronous mirror copy of thin-provisioned volumes
US10353813B2 (en) 2016-06-29 2019-07-16 Western Digital Technologies, Inc. Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
US10235287B2 (en) 2016-06-29 2019-03-19 Western Digital Technologies, Inc. Efficient management of paged translation maps in memory and flash
US10175896B2 (en) 2016-06-29 2019-01-08 Western Digital Technologies, Inc. Incremental snapshot based technique on paged translation systems
US10229048B2 (en) 2016-06-29 2019-03-12 Western Digital Technologies, Inc. Unified paging scheme for dense and sparse translation tables on flash storage systems
US11216361B2 (en) 2016-06-29 2022-01-04 Western Digital Technologies, Inc. Translation lookup and garbage collection optimizations on storage system with paged translation table
US10430121B2 (en) 2016-08-22 2019-10-01 International Business Machines Corporation Efficient asynchronous mirror copy of fully provisioned volumes to thin-provisioned volumes
US10162563B2 (en) 2016-12-02 2018-12-25 International Business Machines Corporation Asynchronous local and remote generation of consistent point-in-time snap copies
US10505903B1 (en) 2017-07-14 2019-12-10 EMC IP Holding Company LLC System and method of obtaining data from private cloud behind enterprise firewall
US10116764B1 (en) * 2017-07-18 2018-10-30 EMC IP Holding Company LLC Method for state based snapshot difference with restart capability
US10223210B2 (en) * 2017-07-29 2019-03-05 International Business Machines Corporation Asynchronous local and remote generation of consistent point-in-time snap copies in consistency groups
CN110018987B (zh) * 2017-11-08 2023-03-21 阿里巴巴集团控股有限公司 快照创建方法、装置及系统
US10402302B1 (en) * 2018-03-13 2019-09-03 Red Hat Israel, Ltd. Reproduction of testing scenarios in a continuous integration environment
CN109324929B (zh) * 2018-09-17 2021-11-09 郑州云海信息技术有限公司 一种快照创建方法、装置、设备及可读存储介质
US11100132B2 (en) * 2018-10-11 2021-08-24 International Business Machines Corporation Intelligent space release in asynchronous mirror journal volumes
CN110008065A (zh) * 2019-04-11 2019-07-12 苏州浪潮智能科技有限公司 一种一致性组快照管理方法及相关装置
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US69893A (en) * 1867-10-15 Improvement in bridles
US6131148A (en) 1998-01-26 2000-10-10 International Business Machines Corporation Snapshot copy of a secondary volume of a PPRC pair
US6434681B1 (en) 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
JP4076326B2 (ja) * 2001-05-25 2008-04-16 富士通株式会社 バックアップシステム、データベース装置、データベース装置のバックアップ方法、データベース管理プログラム、バックアップ装置、バックアップ方法および、バックアッププログラム
JP3730907B2 (ja) * 2001-12-04 2006-01-05 日本電気株式会社 ディスクアレイ装置間の遠隔データコピー方式
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7127577B2 (en) * 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US7165145B2 (en) * 2003-07-02 2007-01-16 Falconstor Software, Inc. System and method to protect data stored in a storage system
US7254683B2 (en) * 2003-11-03 2007-08-07 International Business Machines Corporation Speculative data mirroring apparatus method and system
JP4703959B2 (ja) * 2003-12-03 2011-06-15 株式会社日立製作所 記憶装置システムおよびそのレプリケーション作成方法
US7231502B2 (en) * 2004-02-04 2007-06-12 Falcon Stor Software, Inc. Method and system for storing data
JP4483342B2 (ja) * 2004-02-27 2010-06-16 株式会社日立製作所 システム復旧方法
JP4549709B2 (ja) 2004-03-23 2010-09-22 株式会社日立製作所 ストレージ装置
US7461100B2 (en) 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US20060018505A1 (en) * 2004-07-22 2006-01-26 Dell Products L.P. Method, system and software for enhanced data protection using raw device backup of copy-on-write snapshots
JP4508798B2 (ja) 2004-08-09 2010-07-21 株式会社日立製作所 ストレージリモートコピー方式
JP2006072635A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd データ処理システムおよびそのコピー処理方法
US7680839B1 (en) * 2004-09-30 2010-03-16 Symantec Operating Corporation System and method for resynchronizing mirrored volumes
US8078813B2 (en) 2004-09-30 2011-12-13 Emc Corporation Triangular asynchronous replication
JP2006164162A (ja) * 2004-12-10 2006-06-22 Fujitsu Ltd コピー制御装置および方法
US20060143412A1 (en) * 2004-12-28 2006-06-29 Philippe Armangau Snapshot copy facility maintaining read performance and write performance
US7363444B2 (en) * 2005-01-10 2008-04-22 Hewlett-Packard Development Company, L.P. Method for taking snapshots of data
US7778976B2 (en) * 2005-02-07 2010-08-17 Mimosa, Inc. Multi-dimensional surrogates for data management
US7401251B1 (en) * 2005-09-29 2008-07-15 Emc Corporation Architecture for managing failover and recovery after failover in a data storage environment

Also Published As

Publication number Publication date
JP2008040762A (ja) 2008-02-21
US20100235591A1 (en) 2010-09-16
US20080034176A1 (en) 2008-02-07
US8112600B2 (en) 2012-02-07
US20110258408A1 (en) 2011-10-20
EP1892614A3 (en) 2010-03-24
CN101118507B (zh) 2012-08-29
EP1892614B1 (en) 2011-05-18
CN101118507A (zh) 2008-02-06
EP1892614A2 (en) 2008-02-27
US7725668B2 (en) 2010-05-25
US7953947B2 (en) 2011-05-31

Similar Documents

Publication Publication Date Title
JP4942418B2 (ja) 計算機システム及びそのスナップショット作成方法
JP4477950B2 (ja) リモートコピーシステム及び記憶装置システム
US7966463B2 (en) Asynchronous remote copy system and control method for the same
US8001344B2 (en) Storage control apparatus, storage control program, and storage control method
US8392681B2 (en) Journal volume backup to a storage device
JP4993913B2 (ja) 記憶制御装置及びそのデータ管理方法
JP4727437B2 (ja) データベースを有するストレージシステムの記憶制御方法
JP4800056B2 (ja) ストレージシステム及びその制御方法
JP4756992B2 (ja) ストレージシステム及び記憶制御方法
US7373470B2 (en) Remote copy control in a storage system
US20070113034A1 (en) Storage remote copy system
JP2005301497A (ja) ストレージ管理装置、リストア方法及びそのプログラム
US8024537B2 (en) Storage system, remote copy and management method therefor
JP5159356B2 (ja) リモートコピーシステム及び計算機システム
JP2007179342A (ja) ストレージシステム及びスナップショット管理方法
US8555012B2 (en) Data storage apparatus
JP2006268139A (ja) データ複製装置、方法及びプログラム並びに記憶システム
US20100082924A1 (en) Storage controller having virtual volume
JP7050707B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム
JP2004220472A (ja) 外部記憶装置のデータ回復方法及び装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120228

R150 Certificate of patent or registration of utility model

Ref document number: 4942418

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees