JP2006119745A - コンピュータシステム及びコンピュータシステムの制御方法 - Google Patents

コンピュータシステム及びコンピュータシステムの制御方法 Download PDF

Info

Publication number
JP2006119745A
JP2006119745A JP2004304648A JP2004304648A JP2006119745A JP 2006119745 A JP2006119745 A JP 2006119745A JP 2004304648 A JP2004304648 A JP 2004304648A JP 2004304648 A JP2004304648 A JP 2004304648A JP 2006119745 A JP2006119745 A JP 2006119745A
Authority
JP
Japan
Prior art keywords
storage system
data
journal
update
storage
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.)
Pending
Application number
JP2004304648A
Other languages
English (en)
Inventor
Kenta Futase
健太 二瀬
Takashi Arakawa
敬史 荒川
Takanari Iwamura
卓成 岩村
Yoshihiro Azumi
義弘 安積
Yusuke Hirakawa
裕介 平川
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 JP2004304648A priority Critical patent/JP2006119745A/ja
Priority to US11/015,194 priority patent/US7590809B2/en
Priority to EP04030285A priority patent/EP1650659A1/en
Publication of JP2006119745A publication Critical patent/JP2006119745A/ja
Pending legal-status Critical Current

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/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
    • 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/2069Management of state, configuration or failover
    • 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
    • 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/2082Data synchronisation
    • 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/2066Optimisation of the communication load

Abstract

【課題】リモートコピー技術を利用してデータをバックアップするマルチターゲット構成のコンピュータシステムにおいて、主サイトに障害が発生したときに、残る二つの副サイト間で、全データをコピーすることなく新たなペアを形成する。
【解決手段】 第1の副サイトは、同期リモートコピーによって主サイトと関連付けられる。第2の副サイトは、非同期リモートコピーによって主サイトと関連付けられる。前記第1の副サイトの記憶システムは、ホストコンピュータから書き込まれたデータの領域を示す差分ビットマップを備える。前記主サイトのホストコンピュータに障害が発生した時、前記差分ビットマップが示す領域のデータのみを、前記第2の副サイトの記憶システムに転送する。
【選択図】 図1

Description

本発明は、コンピュータシステムにおけるリモートコピーを利用したディザスタリカバリに関する。
データストレージ市場では、大量のデータを格納した記憶システムが災害等で破壊されてもデータを喪失しない、いわゆるディザスタリカバリシステムが要求されている。このような市場の要求に応えるべく、リモートコピー技術を利用してデータをバックアップするコンピュータシステムが提供されている。これは、十分に離れた二つの地点に設置された記憶システムに同一のデータを格納するものである。一方の記憶システムのデータが更新されると、その更新は、リモートコピーによってもう一方の記憶システムに反映される。このため、二つの記憶システムのデータの同一性が確保される。
さらにデータの安全性を高めるため、相互に十分に離れた三つの地点に記憶システムを設置するコンピュータシステムが開示されている(特許文献1参照)。このコンピュータシステムでは、通常の業務に使用される第1の記憶システムと、遠隔地の第2の記憶システムとの間のデータの同一性は、同期リモートコピーによって確保される。一方、第1の記憶システムと、遠隔地の第3の記憶システムとの間のデータの同一性は、非同期リモートコピーによって確保される。
災害等に起因する障害によって第1の記憶システムを業務に使用することができなくなった場合、第2の記憶システムが第1の記憶システムの業務を引き継ぐ。このとき、第2の記憶システムも使用することができない場合は、第3の記憶システムが第1の記憶システムの業務を引き継ぐ。その結果、深刻な災害が発生した場合でも、データの喪失を防ぐことができる。
このように三つの地点に記憶システムを設置するコンピュータシステムでは、通常の運用時には、第2の記憶システムと第3の記憶システムとの間でデータが複製されない。このため、第2の記憶システムと第3の記憶システムとの間では、データの同一性が保証されない。したがって、第1の記憶システムの業務を第2の記憶システムが引き継いだ後で、さらに第2の記憶システムに障害が発生した場合、第3の記憶システムが第2の記憶システムの業務を引き継ぐことができない。
このため、第1の記憶システムの業務を引き継いだ第2の記憶システムの運用が開始される前に、第2の記憶システムと第3の記憶システムとの間のデータの同一性を確保する。第2の記憶システムの運用が開始された後は、第2の記憶システムのデータの更新をリモートコピーによって第3の記憶システムに反映させる。その結果、第2の記憶システムに障害が発生したときに、第3の記憶システムが第2の記憶システムの業務を引き継ぐことができる。
特開2003−122509号公報
上記のように、第1の記憶システムの業務を第2の記憶システムが引き継ぐときに、第2の記憶システムのデータを全て第3の記憶システムに複製すれば、これらの記憶システムのデータの同一性が確保される。しかし、このように全てのデータを複製することは、長い時間を要する。特に、近年の大容量の記憶システムでは、数時間以上を要する場合がある。全てのデータの複製が終了するまで、第2の記憶システムを業務に使用することができないとすれば、長時間のシステム停止によって深刻な経済的損失が発生するおそれがある。
第1の発明は、第1のホストコンピュータと通信可能に接続された第1の記憶システムと、第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備え、前記第1のホストコンピュータから前記第1の記憶システムに書き込まれたデータは、同期リモートコピーによって前記第2の記憶システムに転送され、非同期リモートコピーによって前記第3の記憶システムに転送されるコンピュータシステムにおいて、前記第2の記憶システムは、第1の差分ビットマップを備え、前記第2のホストコンピュータからデータが書き込まれると、前記第2のホストコンピュータからデータが書き込まれた領域に対応する前記第1の差分ビットマップのビットを更新し、前記第1の差分ビットマップの更新された前記ビットに対応する領域のデータを、前記第3の記憶システムに転送することを特徴とする。
第2の発明は、第1のホストコンピュータと通信可能に接続された第1の記憶システムと、第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備える、前記第1の記憶システムに格納されているデータは、同期リモートコピーによって、前記第2の記憶システムに転送され、前記第1の記憶システムに格納されているデータは、非同期リモートコピーによって、前記第3の記憶システムに転送され、前記第1のホストコンピュータ及び前記第1の記憶システムが正常に稼動しているときは、前記第2のホストコンピュータが前記第2の記憶システムにデータを書き込まないコンピュータシステムにおいて;前記第1の記憶システムは、前記第1のホストコンピュータから前記データの書き込み命令を受信すると、当該データの書き込みの順序を識別する更新順序識別子と、当該データとを第1のジャーナルレコードとして格納し、当該更新順序識別子及び当該データを、前記同期リモートコピーによって前記第2の記憶システムに転送し、前記第1のジャーナルレコードを前記非同期リモートコピーによって前記第3の記憶システムに転送し;前記第2の記憶システムは、前記第1の記憶装置から転送された前記更新順序識別子及び前記データを第2のジャーナルレコードとして格納し、前記第1及び第2の記憶システム間の前記同期リモートコピーによるデータの転送を停止し、前記第2のホストコンピュータからデータを書き込まれると、当該書き込まれたデータと、前記第1の記憶システムから転送された更新順序識別子と連続する更新順序識別子とを、前記第2のジャーナルレコードとして格納し、前記第2のジャーナルレコードを、前記第3の記憶システムに転送し;前記第3の記憶システムは、前記第1の記憶システムから受信した前記第1のジャーナルレコードを格納し、前記第2の記憶システムから受信した前記第2のジャーナルレコードを格納し、前記格納した第1及び第2のジャーナルレコードのデータを、前記更新順序識別子の順に格納することを特徴とする。
本発明によれば、第2の記憶システムに格納されたデータのうち、第3の記憶システムに格納されていないデータ(すなわち、差分データ)のみが、第3の記憶システムに転送され、複製される。さらに、第2の記憶システムには、第1の記憶システムの業務を引き継いだ後に第2の記憶システムにおいて更新されたデータに関する情報が記録される。このため、第1の記憶システムに障害が発生すると、直ちに、第2の記憶システムが業務を引き継ぐことができる。その結果、本発明によれば、長時間のシステム停止による経済的損失を抑えながら、災害等によるデータの喪失を防ぐことができる。
<システムの構成>
図1は、本発明の第1の実施の形態のコンピュータシステムの機能ブロック図である。
本実施の形態のコンピュータシステムは、複数の記憶システム100及び複数のホストコンピュータ180を含む。図1には、本実施の形態のコンピュータシステムに含まれる三つの記憶システム(100A、100B及び100C)を示す。以後、記憶システム100Aを単に記憶システムAと記載する。同様にして、記憶システム100Bを記憶システムB、記憶システム100Cを記憶システムCと記載する。これらの記憶システム100は、接続パス200を介して相互に通信可能に接続される。
記憶システム100は、後で詳細に説明するように(図2)、制御部(記憶装置制御装置)と、記憶装置によって構成される記憶領域とを備える。各記憶システム100は、接続パス190を介してホストコンピュータ180に接続され、データを記憶領域に格納する。記憶システムAは、ホストコンピュータ180A(ホストコンピュータA)に接続され、記憶システムBは、ホストコンピュータ180B(ホストコンピュータB)に接続され、記憶システムCは、別のホストコンピュータ(図示省略)に接続される。
これらの記憶システム100は、災害等による障害発生時のバックアップのため、地理的に離して配置される。例えば、記憶システムBは、記憶システムAから100km程度の比較的近距離に配置され、記憶システムCは、記憶システムAから数100km以上の比較的遠距離に配置される。
本実施の形態では、通常時(すなわち、システムに障害が発生せず、正常に稼動しているとき)には、記憶システムAが使用される。通常時には、ホストコンピュータBは、記憶システムBを使用しない。記憶システムA又はホストコンピュータAに障害が発生したときには、記憶システムBが記憶システムAに代わって使用される。さらに、記憶システムB又はホストコンピュータBに障害が発生したときには、記憶システムCが記憶システムBに代わって使用される。なお、このように、冗長部位(例えば、記憶システムB又は記憶システムC)を障害部位(例えば、記憶システムA)に代わって運用することをフェイルオーバーという。
後述するように、通常時には、同期リモートコピーによって、記憶システムAのデータの複製が記憶システムBに格納される。さらに、非同期リモートコピーによって、記憶システムAのデータの複製が記憶システムCに格納される。以後、複製元の記憶システムを正記憶システム、複製先の記憶システムを副記憶システムと記載する。すなわち、通常時には、記憶システムAが正記憶システムであり、記憶システムB及びCが副記憶システムである。また、リモートコピーによって関連付けられる二つの記憶システム100又は論理ボリューム(後述)を、ペアと記載する。すなわち、通常時には、記憶システムAと記憶システムBはペアであり、記憶システムAと記憶システムCもペアである。
同期リモートコピーによれば、正記憶システムAのデータが同期的に副記憶システムBに複製される。すなわち、正記憶システムAは、ホストコンピュータAからデータの書込命令を受信すると、当該書込命令に係るデータを格納する。さらに、当該データがリモートコピーの対象であれば、正記憶システムAは、接続パス200を介して副記憶システムBに当該データを転送する。副記憶システムBは、当該転送されたデータを格納する。その後、データの格納の完了を正記憶システムAに通知する。正記憶システムAは、当該格納完了通知を受信すると、ホストコンピュータAに当該データの書込完了を通知する。その結果、ホストコンピュータが当該データの書込完了の通知を受信したときには、正記憶システムAと副記憶システムBの当該データは必ず一致している。
一方、非同期リモートコピーによれば、正記憶システムAのデータが非同期的に副記憶システムCに複製される。すなわち、正記憶システムAは、ホストコンピュータAからデータの書込命令を受信すると、当該書込命令に係るデータを格納する。このデータの格納が終了すると、正記憶システムAは、ホストコンピュータAに当該データの書込完了を通知する。さらに、当該データがリモートコピーの対象であれば、正記憶システムAは、接続パス200を介して副記憶システムCに当該データを転送する。副記憶システムCは、当該転送されたデータを格納する。その後、データの格納の完了を正記憶システムAに通知する。この転送は、正記憶システムAの当該データが格納された後直ちに実行されてもよいが、任意の時間経過後に実行されてもよい。例えば、接続パス200の通信が混雑しているときは、混雑が解消した後で転送されてもよい。正記憶システムAは、副記憶システムCからデータの格納完了の通知を受信したか否かに関らず、ホストコンピュータAにデータの書込完了を通知する。その結果、ホストコンピュータがデータの書込完了の通知を受信しても、正記憶システムAと副記憶システムCのデータが一致していない場合がある。
本実施の形態において、非同期リモートコピーは、ジャーナル(後述)を転送することによって実行される。
なお、本実施の形態において、ホストコンピュータ180による記憶システム100のデータの更新は、ホストコンピュータ180が発行するライト(書き込み)命令によって実行される。また、正記憶システムAから副記憶システムBへのデータの転送及び更新は、リモートライト命令によって実行される。正記憶システムAから副記憶システムCへのデータの転送及び更新は、ジャーナルリード処理によって実行される。
ホストコンピュータ180は、少なくとも、CPU(図示省略)及びメモリ(図示省略)を備える。メモリに格納された各種のプログラム(アプリケーションプログラム)をCPUが実行することによって、様々な機能が実現される。ホストコンピュータ180は、例えば、PC、ワークステーション又はメインフレームコンピュータ等である。
ホストコンピュータAは、正記憶システムAを使用して、企業や個人等のユーザに提供する処理(業務)を実行する。さらに、ホストコンピュータAは、正記憶システムAを保守・管理するためのコンピュータとしても使用される。
接続パス190は、LAN等の汎用ネットワーク又はFC(SANを含む)等のストレージ専用接続である。ホストコンピュータAと正記憶システムAは、接続パス190を介して、所定の通信プロトコルによって通信する。ホストコンピュータAは、接続パス190によって正記憶システムAの制御部に接続され、論理ボリューム(後述)に対するアクセス命令を発行する。
ホストコンピュータBは、ホストコンピュータAと同様に構成され、副記憶システムBに接続される。ホストコンピュータBは、通常時(すなわち、ホストコンピュータA及び記憶システムAが正常に稼動しているとき)は、企業や個人等のユーザに提供する処理を実行しない。しかし、ホストコンピュータA又は正記憶システムAに障害が発生すると、ホストコンピュータBは、記憶システムBを使用して、企業や個人等のユーザに提供する処理をホストコンピュータAに代わって実行する。
なお、ホストコンピュータA又は正記憶システムAに障害が発生した場合とは、正常に稼動しない場合であり、災害等による障害が発生した場合のほか、保守のための計画停止も含む。
ホストコンピュータBは、さらに、差分形成指示部260を備える。差分形成指示部260は、ホストコンピュータBのメモリ(図示省略)に格納され、CPU(図示省略)によって実行されるプログラムである。差分形成指示部260は、ホストコンピュータBがホストコンピュータAに代わって使用されるときに、記憶システムBを正記憶システム、記憶システムCを副記憶システムとするペアを形成する。このとき、差分形成指示部260は、所定の条件が満たされる場合、記憶システムBに格納された全てのデータを記憶システムCに複製せず、差分データのみを複製することによってペアを形成する。本発明は、この差分データの管理及び差分データを用いたペア形成に関する。差分形成指示部260が実行する処理については、後で詳細に説明する。
接続パス200は、LAN等の汎用ネットワーク又はFC(SANを含む)等のストレージ専用接続である。記憶システム100は、接続パス200を介して、所定の通信プロトコルによって相互に通信する。記憶システム100は、制御部が接続パス200を介して相互に通信することによって、データをリモートコピーする。
本実施の形態において、記憶システム100は、リモートコピーの対象となるデータが更新されるときに、その更新についてのジャーナルを作成して記憶領域に格納し、このジャーナルに基づいてデータを複製する。各記憶システム100がジャーナルを保持する。後述するように、非同期リモートコピーによるペアにおいては、正記憶システム100から副記憶システム100にジャーナルが転送され、このジャーナルのデータが副記憶システム100に反映される。その結果、正記憶システム100のデータの更新が副記憶システム100のデータに反映される。
図1に示すように、正記憶システム100A及び副記憶システム100Bは、命令受信部210、リードライト部220及び差分形成部265を備える。副記憶システム100Cは、ジャーナルリード(JNLRD)部240、リードライト部220、リストア部250及び差分形成部265を備える。これらは、記憶システム100の制御部に設けられたメモリ(図示省略)に格納され、CPU(図示省略)によって実行されるプログラムによって実現される。
各記憶システム100の記憶領域は、論理ボリューム230に分割されて管理される。論理ボリューム230とは、ホストコンピュータ180によって一つのディスクドライブとして認識される論理的な領域である。一つの論理ボリューム230は、一つの記憶装置内の領域であってもよい。また、一つの論理ボリューム230は、論理アドレスと物理アドレスの変換によって、複数の記憶装置の領域に対応付けられてもよい。
本実施の形態において、正記憶システムAの論理ボリューム230は、DATA1、DATA2、DATA3及びJNL−A等と名付けられる。同様に、副記憶システムBの論理ボリューム230は、data1、data2、data4及びJNL−B等と名付けられる。副記憶システムCの論理ボリューム230は、COPY1、COPY2、data5及びJNL−C等と名付けられる。
ホストコンピュータAが正記憶システムAにデータの更新の命令を発行すると、正記憶システムAは、当該データを更新すると共に、ジャーナルを作成してJNL−Aに格納する(270)。次に、正記憶システムAは、当該データを副記憶システムBに同期リモートコピーする(275)。副記憶システムBは、当該データを更新する(280)。
さらに、正記憶システムAから副記憶システムCにジャーナルが転送されることによって、当該データが非同期リモートコピーされる(285)。この転送は、副記憶システムCのJNLRD部240が実行するジャーナルリード処理によって実現される。あるいは、正記憶システムAがジャーナルの転送を命令してもよい。
副記憶システムCは、転送されたジャーナルのデータに基づいて、当該データの更新を反映させる(290)。このようにジャーナルのデータに基づいてデータの更新を反映させる処理をリストアという。これらの処理については、後で詳細に説明する。
処理対象のデータは、いずれかの論理ボリューム230に格納されている。記憶システム100における論理ボリューム230の容量及び物理的な格納位置(物理アドレス)は、記憶システム100に接続された保守用のコンピュータ(図示省略)又はホストコンピュータ180を用いて設定することができる。各論理ボリューム230の物理アドレスは、後述するボリューム情報400に格納される。物理アドレスは、例えば、記憶システム100内の一つ以上の記憶装置を識別する番号(記憶装置番号)、及び、記憶装置内の記憶領域を一意に示す値、例えば、記憶装置の記憶領域の先頭からの位置を示す値によって構成される。以下の説明では、物理アドレスは、記憶装置番号及び記憶装置の記憶領域の先頭からの位置の組とする。
記憶システム100に格納されるデータは、論理ボリューム230を識別する番号(論理ボリューム番号)、及び、記憶領域を一意に示す値、例えば、論理ボリュームの記憶領域の先頭からの位置(論理アドレス内位置)を示す値によって一意に識別される。以下、論理ボリューム番号及び論理アドレス内位置を示す値の組を論理アドレスとする。ホストコンピュータ180は、論理アドレスを指定して、記憶システム100に格納されたデータを参照又は更新する。
以下、リモートコピーの際に複製元となる論理ボリューム230を正論理ボリューム、複製先となる論理ボリューム230を副論理ボリュームとする。また、正論理ボリュームと副論理ボリュームの組によってペアを定義する。ペアとなる正論理ボリュームと副論理ボリュームの関係及びそれらの状態等は、後述するペア情報500に格納される。
また、非同期リモートコピーによって正論理ボリュームのデータの更新を副論理ボリュームに反映する際に、正論理ボリュームにおけるデータ更新順序に従って副論理ボリュームのデータを更新するために、グループという管理単位を設ける。
例えば、ホストコンピュータ180が、第一の正論理ボリュームの第一のデータを更新し、その後、その第一のデータを読み出し、その第一のデータの数値を用いて、第二の正論理ボリュームの第二のデータを更新する場合がある。その後、正論理ボリュームから副論理ボリュームへの非同期リモートコピーが実行されるときに、第一の正論理ボリュームについてのリモートコピーと、第二の正論理ボリュームについてのリモートコピーとが独立に行われると、第一のデータが複製される前に、第二のデータが複製される場合がある。この場合、第二のデータが複製された後、第一のデータが複製される前に、システム障害等によってリモートコピーが停止すると、第一の副論理ボリュームと第二の副論理ボリュームとの間のデータ整合性が失われる。
このように非同期リモートコピーが途中で停止した場合にも、第一の副論理ボリュームと第二の副論理ボリュームとの間のデータ整合性を保つために、データの更新順序を維持する必要のある論理ボリューム230を同じグループに登録する。そして、データの更新毎に、後述するグループ情報600における更新番号を割り当て、更新番号順に副論理ボリュームに対するデータの複製を実行する。なお、更新番号の代わりに更新時刻を用いてもよい。
例えば、図1では、正記憶システムAの論理ボリュームDATA1及び論理ボリュームDATA2から副記憶システムCの論理ボリュームCOPY1及び論理ボリュームCOPY2へデータが非同期リモートコピーされる際に、データの更新順序が維持される必要がある。このため、正記憶システムAには、論理ボリュームDATA1、論理ボリュームDATA2及びこれらに対応するジャーナル論理ボリュームJNL−Aからなるグループ2(以下、グループ番号がnであるグループをグループnと記載する)が設けられる(図11参照)。一方、副記憶システムCには、論理ボリュームDATA1の複製である論理ボリュームCOPY1、論理ボリュームDATA2の複製である論理ボリュームCOPY2、及び、これらに対応するジャーナル論理ボリュームJNL−Cからなるグループ1が設けられる(図13参照)。
一方、正記憶システムAと副記憶システムBとの間には、本来、グループを設ける必要がない。同期リモートコピーが中断しても、データの整合性が失われることがないためである。しかし、本発明では、後で詳細に説明するように(図29〜図32)、正記憶システムAに障害が発生したときに、副記憶システムB及びCがペアを構成するために、副記憶システムBにもジャーナル論理ボリューム230が設けられる。副記憶システムBのジャーナル論理ボリューム230と、副記憶システムCのジャーナル論理ボリューム230とを整合させるために、正記憶システムAと副記憶システムBとの間にも、グループが設けられる。
すなわち、正記憶システムAには、論理ボリュームDATA1、論理ボリュームDATA2及びこれらに対応するジャーナル論理ボリュームJNL−Aからなるグループ1が設けられる(図11参照)。一方、副記憶システムBには、論理ボリュームDATA1の複製である論理ボリュームdata1、論理ボリュームDATA2の複製である論理ボリュームdata2、及び、これらに対応するジャーナル論理ボリュームJNL−Bからなるグループ1が設けられる(図12参照)。
正記憶システムAは、正論理ボリュームDATA1及びDATA2のデータを更新する際に、後述するジャーナルを作成し、正記憶システムA内の論理ボリューム230に格納する。本実施の形態では、グループ毎にジャーナルのみを格納する論理ボリューム(以下、ジャーナル論理ボリュームと記載する)を設ける。図1では、グループ1のジャーナル論理ボリュームは、JNL−Aである。
副記憶システムCのグループ1にも、ジャーナル論理ボリュームJNL−Cを設ける。このジャーナル論理ボリュームJNL−Cは、正記憶システムAから副記憶システムCに転送されたジャーナルを格納するために使用される。転送されたジャーナルをジャーナル論理ボリュームJNL−Cに格納することによって、例えば、正記憶システムAからジャーナルを受信した時に副記憶システムCの負荷が高い場合に、副論理ボリュームCOPY1及びCOPY2のデータを更新せず、副記憶システムCの負荷が低くなった後に更新することもできる。あるいは、接続パス200が複数ある場合、これらを介して正記憶システムAから副記憶システムCへのジャーナルの転送を多重に行い、接続パス200の転送能力を有効に利用することができる。
この場合、更新番号が小さいジャーナルより先に更新番号が大きいジャーナルが副記憶システムCに到達することがある。この場合、更新番号が大きいジャーナルは、更新番号が小さいジャーナルが到達するまで、ジャーナル論理ボリュームJNL−Cに格納される。その後、更新番号の順に、ジャーナルの内容が副論理ボリュームCOPY1及びCOPY2に反映される。すなわち、更新番号の順に、副論理ボリュームCOPY1及びCOPY2にジャーナルのデータが書き込まれる。こうして、副論理ボリュームCOPY1及びCOPY2のデータが、正論理ボリュームDATA1及びDATA2のデータと同様に更新される。
一方、副記憶システムBにも、ジャーナル論理ボリュームJNL−Bが設けられる。正記憶システムAと副記憶システムBとの間では、同期リモートコピーが実行される。同期リモートコピーは、途中で停止しても、上記のようにデータ整合性が失われる問題を生じない。したがって、通常は、副記憶システムBにジャーナル論理ボリュームJNL−Bを設ける必要はない。しかし、本発明では、ホストコンピュータA又は正記憶システムAに障害が発生した場合に、記憶システムBと記憶システムCとの間にペアを形成する。このとき、差分データのみを複製してペアを形成するために、ジャーナル論理ボリュームJNL−Bが使用される。このジャーナル論理ボリュームJNL−Bを使用したペア形成については、後で詳細に説明する。
<記憶システムの構成>
図2は、本発明の第1の実施の形態のコンピュータシステムを構成する記憶システム100の構成を示すブロック図である。
本実施の形態において、記憶システム100は、一つ以上のホストアダプタ(CHA)110、一つ以上のディスクアダプタ(DKA)120、一つ以上のキャッシュメモリ(CACHE)130、一つ以上の共有メモリ(SM)140、一つ以上の記憶装置150、一つ以上のスイッチ(SWITCH)160、及び、一つ以上の接続線170によって構成される。
ホストアダプタ110、ディスクアダプタ120、キャッシュメモリ130及び共有メモリ140は、スイッチ160によって相互に接続される。ディスクアダプタ120及び記憶装置150は、接続線170によって相互に接続される。さらに、記憶システム100の設定、監視、保守等を行うための保守端末(図示省略)が全てのホストアダプタ110及びディスクアダプタ120に専用線によって接続される。
記憶装置150は、例えば、ハードディスクドライブ(HDD)である。複数の記憶装置150がRAIDを構成してもよい。物理ボリュームは、記憶装置150によって提供される物理的な記憶領域である。物理ボリュームには、論理的な記憶領域である論理ボリューム230を対応させることができる。
ホストアダプタ110及びディスクアダプタ120は、命令受信部210等のプログラムを格納し、これらが実行する処理を制御する制御部(記憶装置制御装置)である。ホストアダプタ110及びディスクアダプタ120は、プロセッサ(図示省略)及びメモリ(図示省略)を備える。プロセッサがメモリに格納されたプログラムを実行することによって、これらの処理を制御する。例えば、命令受信部210、ジャーナルリード部240、差分形成部265及びリストア部のプログラムは、ホストアダプタ110のメモリに格納され、ホストアダプタ110のプロセッサによって実行される。また、リードライト部220のプログラムは、ディスクアダプタ120のメモリに格納され、ディスクアダプタ120のプロセッサによって実行される。
ホストアダプタ110は、ホストコンピュータ180と通信を行うための通信インターフェース(図示省略)を備え、入出力命令を送受信することによって、ホストコンピュータ180とキャッシュメモリ130との間のデータ転送を制御する。ホストアダプタ110は、接続パス190によってホストコンピュータ180と接続され、接続パス200によって他の記憶システム100と接続される。
ディスクアダプタ120は、記憶装置150に対するデータの読み出し(リード)、書き込み(ライト)等を制御すると共に、キャッシュメモリ130と記憶装置150との間のデータ転送を制御する。
キャッシュメモリ130は、ホストコンピュータ180から受信したデータ又は記憶装置150から読み出したデータを一時的に記憶する。
共有メモリ140は、記憶システム100内の全てのホストアダプタ110及びディスクアダプタ120が共有して使用するメモリであり、主に制御情報等を記憶する。
なお、ホストアダプタ110は、キャッシュメモリ130及び共有メモリ140を介して、ディスクアダプタ120に対するデータのリード又はライトの命令をすることができる。また、ホストアダプタ110は、直接ディスクアダプタ120に対してデータのリード又はライトの命令をすることもできる。
キャッシュメモリ130及び共有メモリ140は、各ホストアダプタ110又はディスクアダプタ120の内部に設けられてもよい。
ユーザ(システム管理者等)は、記憶システム100に接続される保守端末又はホストコンピュータ180等を使用して、所定のユーザインターフェースを介して、記憶システム100を管理することができる。記憶システム100の管理とは、例えば、複数の記憶装置150の増減の設定、RAID構成の設定、接続パス190又は200の設定、論理ボリューム230の設定、記憶システム100の動作状態の確認、障害発生時の障害部位の特定、障害監視対象及び内容の設定、又は、障害情報の通知先の設定等である。なお、保守端末は、記憶システム100に内蔵されてもよいし、記憶システム100の外部に接続されてもよい。
<ジャーナルの構成>
ジャーナルは、記憶システム100に格納されるリモートコピー対象データ(正論理ボリューム)の更新時に、当該データ更新に関する情報として作成されるデータであり、ライトデータ及び更新情報300からなる。
ライトデータは、ホストコンピュータ180が正論理ボリュームのデータを更新する際に正論理ボリュームに書き込むデータの複製である。
更新情報300は、更新毎のライトデータ及びジャーナル自体を管理する情報である。更新情報300は、ライト命令を受信した時刻(更新時刻)、グループ番号、更新番号(後述するグループ情報600の更新番号)、ライト命令の論理アドレス、ライトデータのデータサイズ、及び、ライトデータを格納したジャーナル論理ボリュームの論理アドレス等を含む。
更新時刻及び更新番号は、データ更新の識別子である。すなわち、更新時刻及び更新番号によってデータの更新順序が識別される。データ更新順序は、更新時刻又は更新番号のいずれか一方のみによって識別されてもよい。また、ホストコンピュータ180からのライト命令内に当該ライト命令の作成時刻が含まれる場合は、ライト命令を受信した時刻の代わりに、当該ライト命令の作成時刻を更新時刻として使用してもよい。
なお、一回の更新に関する更新情報300と、その更新情報300に対応するライトデータとの組を、一つのジャーナルレコードとする。
図3は、本発明の第1の実施の形態のジャーナルにおける更新情報300の説明図である。
図3の例において、更新情報300は、1999年3月17日の22時20分10秒に受信したライト命令に関するものである(301)。当該ライト命令は、ライトデータを論理ボリューム番号1の論理ボリューム(正論理ボリューム#1)の記憶領域の先頭から700の位置に格納する命令である(304)。また、このライトデータのデータサイズは300である(305)。ジャーナルのライトデータは、論理ボリューム番号4の論理ボリューム(ジャーナル論理ボリューム#4)の記憶領域の先頭から1500の位置に格納される(306)。論理ボリューム番号1の論理ボリュームはグループ1に属し(302)、当該更新は、グループ1のデータ複製開始から4番目のデータ更新である(303)。
図4は、本発明の第1の実施の形態の更新情報300(図3)とライトデータとの関係の説明図である。
図4は、正論理ボリューム#1の記憶領域340及びジャーナル論理ボリューム#4の記憶領域350を示す。ジャーナル論理ボリュームの記憶領域は、例えば、更新情報300を格納する更新情報領域と、ライトデータを格納するライトデータ領域とに分割される。
更新情報領域には、先頭から、更新番号の順に更新情報300が格納される。更新情報300が更新情報領域の終端に達すると、再び更新情報領域の先頭から格納される。図4の例において、更新情報300は、領域310に格納される。
ライトデータ領域には、先頭からライトデータが格納される。ライトデータがライトデータ領域の終端に達すると、再びライトデータ領域の先頭から格納される。図4の例において、ライトデータは、当該ライトデータに対応する更新情報300に含まれる論理アドレス306及びデータサイズ305によって指定される領域330に格納される(380)。
ジャーナル論理ボリュームの記憶領域に占める更新情報領域とライトデータ領域との割合は、所定の値に固定されていてもよいし、保守端末又はホストコンピュータ180によって設定可能であってもよい。
正論理ボリューム#1に格納されるライトデータは、ライト命令に含まれる論理アドレス(304)及びデータサイズ(305)によって指定されるデータ更新領域320に格納される(360、370)。これらの情報は、ポインタ情報700として保持される(図14参照)。
なお、本実施の形態において、ジャーナル論理ボリュームは、図4に示すように更新情報領域とライトデータ領域とに分割される。しかし、ジャーナル論理ボリュームを分割せず、記憶領域の先頭から、更新情報300及びそれに対応するライトデータを格納してもよい。すなわち、最初の更新に関する更新情報300をジャーナル論理ボリュームの先頭の領域に格納し、それに続く領域に最初の更新に関するライトデータを格納し、それに続く領域に2番目の更新に関する更新情報300を格納し、それに続く領域に2番目の更新に関するライトデータを格納してもよい。
<ボリューム情報の構成>
次に、記憶システム100が保持するボリューム情報400について説明する。
図5は、本発明の第1の実施の形態の記憶システムAによって保持されるボリューム情報400の説明図である。図6は、本発明の第1の実施の形態の記憶システムBによって保持されるボリューム情報400の説明図である。図7は、本発明の第1の実施の形態の記憶システムCによって保持されるボリューム情報400の説明図である。
ボリューム情報400は、各記憶システム100に含まれる論理ボリューム230を管理する情報であり、論理ボリューム番号401、ボリューム状態402、フォーマット形式403、容量404、同期ペア番号405、非同期ペア番号406及び物理アドレス407(記憶装置番号407a及び先頭からの位置407b)を含む。ボリューム情報400は、ホストアダプタ110及びディスクアダプタ120から参照可能なメモリ、例えば、共有メモリ140に格納される。
ボリューム情報400において、ボリューム状態402の値は、“正常”、“正”、“副”、“異常”又は“未使用”のいずれかである。
ボリューム状態402が“正常”又は“正”である論理ボリューム230は、ホストコンピュータ180から正常にアクセス可能な論理ボリュームである。
ボリューム状態402が“副”である論理ボリューム230は、ホストコンピュータ180からのアクセスを許可してもよい。
ボリューム状態402が“正”である論理ボリューム230は、正論理ボリュームである。すなわち、リモートコピーの際のデータの複製元である。
ボリューム状態402が“副”である論理ボリューム230は、副論理ボリュームである。すなわち、リモートコピーの際のデータの複製先である。
ボリューム状態402が“異常”である論理ボリューム230は、障害によって正常にアクセスできない論理ボリュームである。障害とは、例えば、論理ボリューム230を構成する記憶装置150の故障等である。
ボリューム状態402が“未使用”である論理ボリューム230は、使用されていない論理ボリュームである。
ボリューム情報400において、同期ペア番号405及び非同期ペア番号406は、各論理ボリューム230に存在するペアを当該論理ボリューム230内で一意に識別する番号である。これらの番号は、後述するペア情報500を特定する際に使用される。これらの番号は、ボリューム状態402が“正”又は“副”の場合(すなわち、当該論理ボリュームがペアを構成する場合)に有効である。
一方、ボリューム状態402が“正”又は“副”のいずれでもない論理ボリューム230(すなわち、ペアを構成しない論理ボリューム230)の同期ペア番号405及び非同期ペア番号406は、参照されない。したがって、このような論理ボリューム230の同期ペア番号405及び非同期ペア番号406は、いかなる値でもよい。図5〜図7では、ペアを構成しない論理ボリューム230の同期ペア番号405及び非同期ペア番号406を「−」と表示する。
なお、同期ペアのみに属する論理ボリューム230の非同期ペア番号406、及び、非同期ペアのみに属する論理ボリューム230の同期ペア番号405の値は、無効値(たとえば、“0”)である。
図5において、例えば、論理ボリューム番号1の論理ボリューム230は、フォーマット形式が「OPEN3」であり(403)、容量が3GBであり(404)、記憶装置番号1の記憶装置150の記憶領域の先頭からデータが格納されており(407)、ホストコンピュータ180からアクセス可能であり、正論理ボリュームである(402)。
<ペア情報の構成>
次に、記憶システム100が保持するペア情報500について説明する。
図8は、本発明の第1の実施の形態の記憶システムAによって保持されるペア情報500の説明図である。図9は、本発明の第1の実施の形態の記憶システムBによって保持されるペア情報500の説明図である。図10は、本発明の第1の実施の形態の記憶システムCによって保持されるペア情報500の説明図である。
ペア情報500は、各記憶システム100に含まれる論理ボリューム230のペアを管理する情報であり、ペア番号501、ペア状態502、正記憶システム番号503、正論理ボリューム番号504、副記憶システム番号505、副論理ボリューム番号506、グループ番号507、コピー済みアドレス508及び差分ビットマップ(BM)位置509を含む。ペア情報500は、ホストアダプタ110及びディスクアダプタ120から参照可能なメモリ、例えば、共有メモリ140に格納される。
ペア情報500において、ペア番号501は、各記憶システム100に存在するペアの当該記憶システム100内における一意の識別子である。ペア番号501は、ボリューム情報400の同期ペア番号405及び非同期ペア番号406と対応する。
ペア状態502の値は、“正常”、“異常”、“未使用”、"コピー未”、“コピー中”のいずれかである。
“正常”は、正論理ボリューム230のリモートコピーが正常に行われていることを示す。
“異常”は、障害のため、正論理ボリューム230についてのリモートコピーを行うことができないことを示す。障害とは、例えば、接続パス200の断線等である。
“未使用”は、当該ペア番号501に対応するペアが存在しないことを示す。すなわち、当該ペア番号501に対応するペア情報は有効でない。
“コピー中”は、初期コピー処理が実行中であることを示す。ここで、初期コピー処理とは、論理ボリューム230のペアを形成する際に実行される最初のリモートコピーの処理である。
“コピー未”は、初期コピー処理がまだ実行されていないことを示す。
正記憶システム番号503は、当該ペアに属する正論理ボリューム230を含む正記憶システム100を特定する番号である。
正論理ボリューム番号504は、正記憶システム100内で当該ペアに属する正論理ボリューム230を特定する番号である。
副記憶システム番号505は、当該ペアに属する副論理ボリューム230を含む副記憶システム100を特定する番号である。
副論理ボリューム番号506は、副記憶システム100内で当該ペアに属する副論理ボリューム230を特定する番号である。
グループ番号507は、正記憶システム100においては、正論理ボリューム230が属するグループ番号である。副記憶システムにおいては、副論理ボリューム230が属するグループ番号である。
コピー済みアドレス508は、初期コピー処理において使用される。
差分BM位置509は、当該ペアに対応する差分BMの格納位置を示す。差分BM位置509は、例えば、共有メモリ140における格納位置である。差分BMについては、後で詳細に説明する。
図8において、例えば、ペア番号501が“1”のペアは、正記憶システムA内の論理ボリューム番号1の正論理ボリューム230と、副記憶システムB内の論理ボリューム番号1の副論理ボリューム230とによって構成されるペアであり、リモートコピーは正常に行われている。また、当該ペアに対応する差分BMは、位置“aaa”に格納される。ここで、“aaa”は、共有メモリ140内の所定のアドレスである。
<グループ情報の構成>
次に、記憶システム100が保持するグループ情報600について説明する。
図11は、本発明の第1の実施の形態の記憶システムAによって保持されるグループ情報600の説明図である。図12は、本発明の第1の実施の形態の記憶システムBによって保持されるグループ情報600の説明図である。図13は、本発明の第1の実施の形態の記憶システムCによって保持されるグループ情報600の説明図である。
グループ情報600は、グループ番号601、グループ状態602、ペア集合603、ジャーナル論理ボリューム番号604、更新番号605、複製種類606、相手記憶システム番号607及び相手グループ番号608を含む。グループ情報600は、ホストアダプタ110及びディスクアダプタ120から参照可能なメモリ、例えば、共有メモリ140に格納される。
グループ情報600において、グループ番号601は、記憶システム100に含まれる論理ボリューム230が属するグループの当該記憶システム100内における一意の識別子である。グループ番号601は、ペア情報500のグループ番号507に対応する。
グループ状態602の値は、“正常”、“異常”、“未使用”、“停止”、“準備中”のいずれかである。
“正常”は、ペア集合のうち少なくとも一つのペア状態が“正常”であることを示す。
“異常”は、ペア集合のうちすべてのペア状態502が“異常”であることを示す。
“未使用”は、当該グループ番号601に対応するグループが存在しないことを示す。すなわち、当該グループ番号601に対応するグループ情報は有効でない。
“停止”は、正記憶システム100においては、ジャーナルレコードの作成を一時的に行わないことを示す。これは、グループ状態602が“正常”の場合に、ジャーナルレコードの作成を一時的に停止したいときに適用される。一方、副記憶システム100においては、“停止”は、ジャーナルリード処理を一時的に行わないことを示す。これは、グループ状態602が“正常”の場合に、正記憶システム100からジャーナルレコードを読み出すことを一時的に停止したいときに適用される。
“準備中”は、ペア若しくはグループの設定又は初期コピー処理が終了していないことを示す。
ペア集合603は、グループ番号601に対応するグループに属する全てのペアのペア番号501である。
ジャーナル論理ボリューム番号604は、当該グループ番号601のグループに属するジャーナル論理ボリューム230の論理ボリューム番号401を示す。当該グループに属するジャーナル論理ボリューム230が存在しない場合は、無効値(例えば、“0”)となる。
更新番号605は、初期値が「1」であり、ジャーナルが更新されるたびに1ずつ加算される。更新番号605は、ジャーナルレコードの更新情報300に更新番号303として複製され、後述するリストア処理においてデータの更新順序を維持するために使用される。
複製種類606は、リモートコピーの方式を示す情報であり、“同期”又は“非同期”のいずれかである。複製種類606が“同期”の場合、当該グループに含まれるペアにおいては同期リモートコピーが実行される。一方、複製種類606が“非同期”の場合、当該グループに含まれるペアにおいては非同期リモートコピーが実行される。
相手記憶システム番号607は、正記憶システム100においては、当該グループに属するペアの副論理ボリューム230を含む記憶システム100の記憶システム番号である。副記憶システムにおいては、相手記憶システム番号607は、当該グループに属するペアの正論理ボリューム230を含む記憶システム100の記憶システム番号である。
相手グループ番号608は、正記憶システムにおいては、当該グループに属するペアの副論理ボリューム230が属するグループ番号601である。副記憶システムにおいては、相手グループ番号608は、当該グループに属するペアの正論理ボリューム230が属するグループ番号601である。
図12において、例えば、グループ番号601が「1」のグループは、ペア番号501が「1」及び「2」のペアに属する論理ボリューム230によって構成される(603)。すなわち、論理ボリューム番号が「1」及び「2」の正論理ボリューム230と、論理ボリューム番号が「4」のジャーナル論理ボリューム230とによって構成されている(ペア情報500参照)。また、これらの論理ボリューム230では、正常に同期データ複製処理が行われている(602、606)。
<ポインタ情報の構成>
次に、記憶システム100が保持するポインタ情報700について説明する。
図14は、本発明の第1の実施の形態の記憶システムAが保持するポインタ情報700の説明図である。図16は、本発明の第1の実施の形態の記憶システムBが保持するポインタ情報700の説明図である。図17は、本発明の第1の実施の形態の記憶システムCが保持するポインタ情報700の説明図である。また、図15は、本発明の第1の実施の形態のポインタ情報700(図14)に対応するジャーナル論理ボリューム230(ジャーナル論理ボリューム#4)の構成の説明図である。
ポインタ情報700は、ジャーナル論理ボリューム230を管理する情報であり、更新情報領域先頭アドレス701、ライトデータ領域先頭アドレス702、更新情報最新アドレス703、更新情報最古アドレス704、ライトデータ最新アドレス705、ライトデータ最古アドレス706、リード開始アドレス707、リトライ開始アドレス708を含む。
ポインタ情報700において、更新情報領域先頭アドレス701は、ジャーナル論理ボリューム230の更新情報300を格納する記憶領域(更新情報領域)の先頭の論理アドレスである。
ライトデータ領域先頭アドレス702は、ジャーナル論理ボリューム230のライトデータを格納する記憶領域(ライトデータ領域)の先頭の論理アドレスである。
更新情報最新アドレス703は、次に格納されるジャーナルレコードの、更新情報300が格納される領域の先頭の論理アドレスである。
更新情報最古アドレス704は、最古の(すなわち、更新番号303が小さい)ジャーナルレコードの更新情報300が格納される領域の先頭の論理アドレスである。
ライトデータ最新アドレス705は、次に格納されるジャーナルレコードの、ライトデータが格納される領域の先頭の論理アドレスである。
ライトデータ最古アドレス706は、最古の(すなわち、更新番号303が小さい)ジャーナルのライトデータが格納される領域の先頭の論理アドレスである。
リード開始アドレス707及びリトライ開始アドレス708は、後述するジャーナルリード受信処理において使用される。
図14及び図15に示すポインタ情報700の例では、ジャーナルの更新情報領域は、論理ボリューム番号4の論理ボリューム(ジャーナル論理ボリューム#4)の先頭から位置699までの記憶領域である。一方、ジャーナルのライトデータ領域は、ジャーナル論理ボリューム#4の位置700から位置2699までの記憶領域である。
ジャーナルの更新情報300は、ジャーナル論理ボリューム#4の位置50から位置249までの記憶領域に格納されており、次のジャーナルレコードの更新情報300は、位置250から始まる領域に格納される。
ジャーナルのライトデータは、ジャーナル論理ボリューム#4の位置1300から位置2199までの記憶領域に格納されており、次のジャーナルレコードのライトデータは、位置2200から始まる記憶領域に格納される。
上記のボリューム情報400、ペア情報500、グループ情報600、及びポインタ情報700は、共有メモリ140に格納されていることが望ましい。しかし、これらの情報は、共有メモリ140以外の場所に格納されてもよい。例えば、これらの情報は、キャッシュメモリ130、ホストアダプタ110、ディスクアダプタ120又は記憶装置150に、集中して又は分散して格納されてもよい。
本実施の形態では、一つのグループに一つのジャーナル論理ボリューム230が割り当てられる。しかし、一つのグループに複数のジャーナル論理ボリューム230が割り当てられてもよい。例えば、一つのグループに二つのジャーナル論理ボリューム230を割り当て、ジャーナル論理ボリューム230毎にポインタ情報700を設け、交互にジャーナルレコードを格納する。これによって、ジャーナルレコードの記憶装置150への書き込みが分散され、性能が向上することが期待される。さらに、ジャーナルレコードの読み出し性能も向上する。
あるいは、一つのグループに二つのジャーナル論理ボリューム230を割り当て、通常は一つのジャーナル論理ボリューム230のみを使用する。もう一方のジャーナル論理ボリューム230は、使用しているジャーナル論理ボリューム230の性能が低下した場合又は障害のため使用できない場合などに使用される。性能が低下する場合とは、例えば、ジャーナル論理ボリューム230の記憶領域が、複数の記憶装置150によって構成されるRAIDであり、そのRAIDを構成する記憶装置150の一台が故障した場合である。
<命令受信処理の動作>
次に、命令受信部210が実行する命令受信処理の動作を、図18を参照して説明する。命令受信処理は、記憶システム100がホストコンピュータ180から命令を受信したときに実行される。ジャーナル作成処理(図19)、リモートライト命令受信処理(図21)、ジャーナル複製処理(図22)及びジャーナルリード受信処理(図23)は、命令受信処理のサブルーチンである。
図18は、本発明の第1の実施の形態の命令受信処理のフローチャートである。
以下の(1)〜(7)は、正記憶システム100Aが、ホストコンピュータ180からリモートコピー対象の論理ボリューム230に対するアクセス命令を受信した場合の動作の説明である。
(1)正記憶システム100A内のホストアダプタ110(以下、ホストアダプタAとする)は、ホストコンピュータ180からアクセス命令を受信する。アクセス命令は、リード(データの読み出し)、ライト(データの書き込み)及び後述するジャーナルリード(ジャーナルの読み出し)等の命令、論理アドレス、並びに、データ量等を含む。以下、アクセス命令に含まれる論理アドレスを論理アドレスA、アクセス命令に含まれる論理ボリュームを論理ボリュームA、アクセス命令に含まれる論理ボリューム内の位置を論理ボリューム内位置A、アクセス命令に含まれるデータ量をデータ量Aとする(S1800)。
(2)ホストアダプタAは、受信したアクセス命令が、ライト命令、ジャーナルリード命令又はリモートライト命令のいずれであるかを判定する(S1810、S1815,S1825)。S1815において、アクセス命令がジャーナルリード命令であると判定された場合は、図23において後述するジャーナルリード受信処理を実行する(S2300)。S1825において、アクセス命令がリモートライト命令であると判定された場合は、後述するリモートライト命令受信処理を実行する(S2100)。受信したアクセス命令が上記のいずれの命令でもない場合は、従来と同様の処理を実行する。例えば、リード命令の場合は、従来のリード処理を実行する(S1830)。
(3)S1810において、アクセス命令がライト命令であると判定された場合は、論理ボリュームAのボリューム情報400を参照し、ボリューム状態402が“正常”又は“正”であるか否かを判定する(S1840)。その結果、論理ボリュームAのボリューム状態402が、“正常”又は“正”のいずれでもない場合は、論理ボリュームAにアクセスすることができないため、ホストコンピュータ180に異常終了を報告する(S1845)。
(4)S1840において、論理ボリュームAのボリューム状態402が“正常”又は“正”のいずれかであると判定された場合、ホストアダプタAは、キャッシュメモリ130を確保し、ホストコンピュータ180にデータ受信の準備ができたことを通知する。ホストコンピュータ180は、その通知を受け、ライトデータを正記憶システム100Aに送信する。ホストアダプタAは、ライトデータを受信し、当該キャッシュメモリ130に格納する(S1850)。
(5)ホストアダプタAは、論理ボリュームAのボリューム情報400、ペア情報500及びグループ情報600を参照し、論理ボリュームAが非同期リモートコピーの対象であり、かつ、正常であるか否かを判定する(S1860)。
S1860において、論理ボリュームAのボリューム状態402が“正”、論理ボリュームAの非同期ペア番号406のペアのペア状態502が“正常”、かつ、当該ペアが属するグループのグループ状態602が“正常”であると判定された場合は、論理ボリュームAが非同期リモートコピーの対象であり、かつ、正常であるため、後述するジャーナル作成処理を実行する(S1900)。
(6)S1860において、論理ボリュームAが非同期リモートコピーの対象でないか、又は、正常でない場合、ホストアダプタAは、論理ボリュームAが同期リモートコピーの対象であり、かつ、正常であるか否かを判定する(S1863)。また、ジャーナル作成処理(S1900)が成功した場合も、S1863の判定を実行する。S1863において、ホストアダプタAは、論理ボリュームAのボリューム情報400、ペア情報500及びグループ情報600を参照する。
S1863において、論理ボリュームAのボリューム状態402が“正”、論理ボリュームAの同期ペア番号405のペアのペア状態502が“正常”、かつ、当該ペアが属するグループのグループ状態602が“正常”であると判定された場合は、論理ボリュームAが同期リモートコピーの対象であり、かつ、正常である。この場合、ホストアダプタAは、同期ペア番号405のペアの副記憶システムBに、ホストコンピュータ180から受信したライトデータを格納するリモートライト命令を送信する(S1865)。
リモートライト命令とは、ホストコンピュータ180から受信したライトデータを副記憶システムに同期リモートコピーによって格納する命令である。このリモートライト命令は、ライト命令、論理アドレス(論理ボリューム番号は、同期ペア番号405のペアの副論理ボリュームB、論理ボリューム内位置は論理ボリューム内位置A)、データ量A、及び、S1900で使用された更新番号303を含む。
なお、更新番号303の代わりに、ホストコンピュータ180からライト命令を受信した時刻(更新時刻)301が含まれてもよい。
一方、ジャーナル作成処理(S1900)が成功しなかった場合は、更新番号303として、無効を示す数値“0”が含まれる。
(7)S1863において、論理ボリュームAが同期リモートコピーの対象でないか、又は、正常でないと判断された場合、ホストアダプタAは、ディスクアダプタ120に対して、「ライトデータを論理アドレスAに対応する記憶装置150の記憶領域に書き込む」ことを命令し(S1870)、ホストコンピュータ180に終了報告する(S1880)。リモートライト命令(S1865)に対する応答を受信した後も、同様にS1870を実行する。その後、ディスクアダプタ120は、リードライト処理を実行して、上記の記憶領域にライトデータを格納する。
リードライト処理は、ディスクアダプタ120のリードライト部220が、ホストアダプタ110又はディスクアダプタ120からの命令を受けて実行する処理である。具体的には、指定されたキャッシュメモリ130のデータを、指定された論理アドレスに対応する記憶装置150内の記憶領域に書き込む処理、及び、指定された論理アドレスに対応する記憶装置150内の記憶領域から、指定されたキャッシュメモリ130にデータを読み出す処理等である。
なお、図18の例では、論理ボリュームAが同期リモートコピー及び非同期リモートコピーのいずれの対象にもなっている場合、先にジャーナル作成処理(S1900)が実行され、その後、リモートライト処理(S1865)が実行される。これは、ジャーナル作成処理(S1900)によって取得された更新番号303が、リモートライト処理(S1865)の際に使用されるためである。
しかし、更新番号303を先に取得し、これをジャーナル作成処理(S1900)及びリモートライト処理(S1865)に使用する場合は、ジャーナル作成処理(S1900)及びリモートライト処理(S1865)のいずれを先に実行してもよい。
<ジャーナル作成処理の動作>
次に、ジャーナル作成処理(S1900)について説明する。
図19は、本発明の第1の実施の形態のジャーナル作成処理のフローチャートである。
(1)ホストアダプタAは、ジャーナル論理ボリューム230のボリューム状態402が“正常”であるか否かを判定する(S1910)。S1910において、ボリューム状態402が“異常”であると判定された場合は、ジャーナル論理ボリューム230にジャーナルを格納することができないため、グループ状態602を“異常”に変更し、処理を終了する(S1915)。この場合、ジャーナル論理ボリューム230を正常な論理ボリュームに変更する処理等を実行する。
(2)S1910において、ジャーナル論理ボリューム230が正常であると判定された場合、ジャーナル論理ボリューム230にジャーナルを格納することができる。このため、ジャーナル作成処理を継続する。ジャーナル作成処理の内容は、当該ジャーナル作成処理が初期コピー処理から呼び出された場合と、命令受信処理から呼び出された場合とで異なる(S1920)。ここで、初期コピー処理とは、論理ボリューム230のペアを形成する際に実行される最初のリモートコピーの処理である。ジャーナル作成処理が命令受信処理から呼び出された場合は、S1930以降の処理を実行する。ジャーナル作成処理が初期コピー処理から呼び出された場合は、S1970以降の処理を実行する。
(3)ジャーナル作成処理が命令受信処理から呼び出された場合、ホストアダプタAは、ペア情報500のペア状態502を参照して、ライト対象の論理アドレスAにおいて初期コピー処理が実行されたか否かを判定する(S1930)。
論理ボリュームAのペア状態502が“コピー未”の場合は、ライト対象の論理アドレスAにおいて初期コピー処理が実行されていない。すなわち、後で初期コピー処理が実行されてジャーナルレコードが作成されるため、ここではジャーナルレコードを作成せずに、ジャーナル作成不要として処理を終了する(S1935)。
論理ボリュームAのペア状態502が“コピー中”の場合は、コピー済みアドレス508と論理アドレス内位置Aとを比較する。コピー済みアドレス508が論理アドレス内位置Aと等しい又はそれより小さい場合は、ライト対象の論理アドレスAにおいて初期コピー処理が実行されていない。すなわち、後で初期コピー処理によってジャーナルレコードが作成されるため、ここではジャーナルレコードを作成せずに、ジャーナル作成不要として処理を終了する(S1935)。
一方、論理ボリュームAのペア状態が“コピー中”かつコピー済みアドレス508が論理アドレス内位置Aより大きい場合、又は、論理ボリュームAのペア状態が“正常”の場合は、既にライト対象の論理アドレスAにおいて初期コピー処理が完了している。このため、ジャーナル作成処理を継続する。
(4)次に、ホストアダプタAは、ジャーナルレコードをジャーナル論理ボリューム230に格納することができるか否かを判定する。すなわち、ポインタ情報700を参照して、更新情報領域に未使用の領域があるか否かを判定する(S1940)。ポインタ情報700の更新情報最新アドレス703と更新情報最古アドレス704とが等しい場合は、更新情報領域に未使用領域が存在しないため、ジャーナルレコードをジャーナル論理ボリューム230に格納することができない。このため、ジャーナルレコードの作成に失敗して処理を終了する(S1990)。
S1940において、更新情報領域に未使用の領域が存在すると判定された場合は、ポインタ情報700を参照して、ライトデータ領域にライトデータを格納することができるか否かを判定する(S1945)。ライトデータ最古アドレス706が、ライトデータ最新アドレス705からライトデータ最新アドレスにデータ量Aを足した数値までの範囲内にある場合、当該ライトデータをライトデータ領域に格納することができない。すなわち、ジャーナルレコードをジャーナル論理ボリューム230に格納することができないため、ジャーナルレコードの作成に失敗して処理を終了する(S1990)。
S1945においてライトデータ領域にライトデータを格納することができると判定された場合は、ジャーナルをジャーナル論理ボリューム230に格納することができるため、ステップ1950に進む。
(5)次に、ホストアダプタAは、更新番号303、更新情報300を格納する論理アドレス、及び、ライトデータを格納する論理アドレスを取得し、更新情報300をキャッシュメモリ130内に作成する(S1950)。更新番号303は、対象グループのグループ情報600の更新番号605に「1」を加算した値とする。そして、当該更新番号605も、更新番号303と同じ値に更新する。更新情報300を格納する論理アドレスは、ポインタ情報700の更新情報最新アドレス703とする。そして、更新情報最新アドレス703の値を、現在の値に更新情報300のサイズを加算した値に更新する。ライトデータを格納する論理アドレスは、ポインタ情報700のライトデータ最新アドレス705とする。そして、ライトデータ最新アドレス705の値を、現在の値にデータ量Aを加算した値に更新する。
ホストアダプタAは、上記のようにして取得した数値に加えて、グループ番号601、ライト命令を受信した時刻(更新時刻)、ライト命令に含まれる論理アドレスA、及び、ライト命令に含まれるデータ量Aを、それぞれ、グループ番号302、更新時刻301、ライト命令の論理アドレス304、及び、ライトデータのデータサイズ305として、更新情報300に設定する。
例えば、図11のグループ情報600及び図14のポインタ情報700が示す状態において、「グループ1に属する正論理ボリューム#1(論理ボリューム番号が「1」の論理ボリューム230)の位置800から始まる記憶領域に、データサイズが「100」のデータを書き込む」ライト命令を受信した場合、図20に示す更新情報300が作成される。このとき、グループ情報600の更新番号605は、「6」となる。また、更新情報300のサイズが「50」であれば、ポインタ情報700の更新情報最新アドレス703は、「300」となる。また、ライトデータ最新アドレス705は、「2300」となる。
(6)次に、ホストアダプタAは、ディスクアダプタ120に、ジャーナルレコードの更新情報300及びライトデータを記憶装置150に書き込むことを命令し、正常終了する(S1960)。
(7)一方、ジャーナル作成処理が初期コピー処理から呼び出された場合は、S1970以降の処理を実行する。
まず、ホストアダプタAは、ジャーナルレコードを作成することができるか否かを判定する。このため、ポインタ情報700を参照して、更新情報領域に未使用の領域があるか否かを判定する(S1970)。ポインタ情報700の更新情報最新アドレス703と更新情報最古アドレス704とが等しい場合は、更新情報領域に未使用領域が存在しないため、ジャーナルレコードを作成することができない。このため、ジャーナルレコードの作成に失敗して処理を終了する(S1990)。
一方、ポインタ情報700の更新情報最新アドレス703と更新情報最古アドレス704とが異なる場合は、ジャーナルレコードを作成することができるため、S1980に進む。
なお、初期コピー処理では、ジャーナルのライトデータは、正論理ボリュームからリードされるため、ライトデータ領域は使用されない。このため、ライトデータ領域に未使用の領域があるか否かを判定する必要はない。
(8)次に、ホストアダプタAは、更新情報300をキャッシュメモリ130内に作成する(S1980)。更新情報300のライト命令を受信した時刻(更新時刻)301は、更新番号303を取得した時刻とする。グループ番号302は、論理ボリューム230の同期ペア番号405が属するグループ番号とする。更新番号303は、グループ情報600の更新番号605に「1」を加算した値とする。そして、当該更新番号605も、更新番号303と同じ値に更新する。ライト命令の論理アドレス304及びライドデータを格納したジャーナル論理ボリュームの論理アドレス306は、初期コピー処理対象の論理アドレス(ペア情報500のコピー済みアドレス508)とする。ライトデータのデータサイズ305は、初期コピー処理の単位サイズとする。更新情報300を格納する論理アドレスは、ポインタ情報700の更新情報最新アドレス703とする。そして、更新情報最新アドレス703の値を、現在の値に更新情報300のサイズを加算した値に更新する。
(9)次に、ホストアダプタAは、ディスクアダプタ120に、更新情報300を記憶装置150に書き込むことを命令し、正常終了する(S1985)。
上記の説明において、更新情報300は、キャッシュメモリ130内に格納されるが、更新情報300は、共有メモリ140又は他のメモリ内に格納されてもよい。
ライトデータは、記憶装置150に非同期に書き込まれてもよい。すなわち、ライトデータは、S1960又はS1985の直後に記憶装置150に書き込まれなくてもよい。ただし、ホストコンピュータ180が、論理アドレスAにライト命令を再び発行し、キャッシュメモリ130内に格納されたジャーナルレコードのライトデータが上書きされる場合、ホストコンピュータ180からライトデータを受信する前に、記憶装置150に書き込む必要がある。あるいは、ライトデータを別のキャッシュメモリに退避させ、この退避させたキャッシュメモリの位置を更新情報300に記憶し、後で更新情報300のジャーナル論理ボリューム230の論理アドレスに対応する記憶装置150に書き込みを行ってもよい。
上記のジャーナル作成処理において、ジャーナルは、記憶装置150に格納されるが、ジャーナル用にあらかじめ一定量のキャッシュメモリをキャッシュメモリ130に用意してもよい。この場合、ジャーナルは、当該キャッシュメモリに優先的に格納され、当該キャッシュメモリに格納しきれない分が記憶装置150に格納される。ジャーナル用のキャッシュメモリの量は、例えば、保守端末から設定することができる。
<リモートライト命令受信処理の動作>
図21は、本発明の第1の実施の形態のリモートライト命令受信処理(S2100)のフローチャートである。
図21は、副記憶システムBのホストアダプタBが、正記憶システムAからリモートライト命令を受信したときの処理を示す。リモートライト命令は、ライト命令、論理アドレス(副論理ボリュームB、論理ボリューム内位置A)、データ量A及び更新番号を含む。リモートライト命令に含まれる更新番号は、ジャーナル作成処理(S1900)によって取得された更新番号303である。
(1)副記憶システムB内のホストアダプタBは、論理ボリュームBのボリューム情報400を参照し、副論理ボリュームBのボリューム状態402が“副”であるか否かを判定する(S2110)。S2110において、論理ボリュームBのボリューム状態が“副”ではないと判定された場合は、論理ボリュームBにアクセスすることができない。このため、正記憶システムAに異常終了を報告する(S2115)。
(2)S2110において、論理ボリュームBのボリューム状態402が“副”であると判定された場合は、論理ボリュームBにアクセスすることができる。このため、ホストアダプタBは、キャッシュメモリ130を確保し、正記憶システムAにデータ受信の準備ができたことを通知する。正記憶システムAは、その通知を受けると、ライトデータを副記憶システムBに送信する。ホストアダプタBは、ライトデータを受信し、当該キャッシュメモリ130に格納する(S2120)。
(3)次に、リモートライト命令に含まれる更新番号を参照する。この更新番号が無効値(すなわち、“0”)である場合は、正記憶システムAにおいてジャーナルが作成されていないため、ジャーナル複製処理(S2200)を実行しない(S2130)。
(4)一方、リモートライト命令に含まれる更新番号が有効値(すなわち、“0”以外)である場合は、ジャーナル論理ボリューム230のボリューム状態402を参照する。ジャーナル論理ボリューム230のボリューム状態402が“異常”であると判定された場合は、ジャーナル論理ボリューム230にジャーナルを格納することができない。このため、ジャーナル複製処理(S2200)を実行しない(S2140)。
(5)一方、S2140において、ジャーナル論理ボリューム230のボリューム状態が“正常”であると判定された場合は、ジャーナル論理ボリューム230にジャーナルを格納することができるため、ジャーナル複製処理S2200を実行する(図22参照)。
(6)ホストアダプタBは、ディスクアダプタ120に対して、「ライトデータをリモートライト命令の論理アドレスに対応する記憶装置150の記憶領域に書き込む」ことを命令する(S2160)。その後、正記憶システムAに終了を報告する(S2170)。その後、当該ディスクアダプタ120は、リードライト処理によって、上記の記憶領域にライトデータを格納する。
<ジャーナル複製処理の動作>
図22は、本発明の第1の実施の形態のジャーナル複製処理(S2200)のフローチャートである。
(1)ホストアダプタBは、ジャーナルレコードをジャーナル論理ボリューム230に格納することができるか否かを判定する。具体的には、ポインタ情報700を参照し、更新情報領域に未使用の領域があるか否かを判定する(S2210)。ポインタ情報700の更新情報最新アドレス703と更新情報最古アドレス704とが等しい場合は、更新情報領域に未使用の領域が存在しないため、最古のジャーナルレコードの記憶領域を開放し、更新情報領域を確保する(S2215)。
次に、ポインタ情報700を参照して、ライトデータ領域にライトデータを格納することができるか否かを判定する(S2220)。ライトデータ最古アドレス706の値が、ライトデータ最新アドレス705から、ライトデータ最新アドレス705にデータ量Aを加算した値までの範囲にある場合、当該ライトデータをライトデータ領域に格納することができない。このため、最古のジャーナルレコードから順にジャーナルレコードの記憶領域を開放し、ライトデータを格納するための領域を確保する(S2225)。
(2)次に、ホストアダプタBは、更新情報300をキャッシュメモリ130内に作成する(S2230)。
このとき、更新情報300におけるライト命令を受信した時刻(更新時刻)301は、リモートライト命令に含まれる更新時刻とする。
グループ番号302は、論理ボリュームBが属するペアが属するグループのグループ番号とする。
更新番号303は、リモートライト命令に含まれる更新番号とする。
ライト命令の論理アドレス304は、リモートライト命令に含まれる論理アドレスとする。
ライトデータのデータサイズ305は、リモートライト命令に含まれるデータ量Aとする。
ライドデータを格納したジャーナル論理ボリュームの論理アドレス306は、ポインタ情報700のライトデータ最新アドレス705とする。そして、そのライトデータ最新アドレス705の値にライトデータのサイズを加算して、ライトデータ最新アドレス705を更新する。
更新情報300を格納する論理アドレスは、ポインタ情報700の更新情報最新アドレス703とする。そして、その更新情報最新アドレス703の値に更新情報300のサイズを加算して、更新情報最新アドレス703を更新する。
(3)ホストアダプタBは、ディスクアダプタ120に対して、「更新情報300及びライトデータを記憶装置150に書き込む」ことを命令し、ジャーナルの作成に成功して処理を終了する(S2240)。その後、ディスクアダプタ120は、リードライト処理によって、記憶装置150に更新情報300及びライトデータを書き込み、キャッシュメモリ130を開放する。
このように、本実施の形態のコンピュータシステムにおいて、副記憶システムBは、古いジャーナルレコードの記憶領域を順次開放しながら、常に新しい複数のジャーナルを保持する。
<ジャーナルリード受信処理の動作>
図23は、本発明の第1の実施の形態のジャーナルリード受信処理(S2300)のフローチャートである。
図23を参照して、以下の(1)〜(8)において、正記憶システムAが副記憶システムCからジャーナルリード命令を受信した場合に実行される処理を説明する。
(1)正記憶システムA内のホストアダプタAは、副記憶システムCからアクセス命令を受信する。アクセス命令は、ジャーナルリード命令であることを示す識別子、命令の対象のグループ番号、リトライ指示の有無を含む。以下、アクセス命令に含まれるグループ番号をグループ番号Dとする(S2300)。
(2)ホストアダプタAは、グループ番号Dのグループ状態602が“正常”であるか否かを判定する(S2310)。S2310において、グループ状態が“正常”でない(例えば、“異常”である)と判定された場合は、副記憶システムCにグループ状態を通知し、処理を終了する(S2315)。このとき、副記憶システムCは、ジャーナルリード処理を終了する。
(3)S2310において、グループ番号Dのグループ状態602が“正常”であると判定された場合、ホストアダプタAは、ジャーナル論理ボリューム230のボリューム状態402を判定する(S2320)。
S2320において、ジャーナル論理ボリューム230のボリューム状態402が“正常”でない(例えば“異常”である)と判定された場合は、グループ状態602を“異常”に変更し、副記憶システム100Cにグループ状態を通知し、処理を終了する(S2325)。このとき、副記憶システム100Cは、ジャーナルリード処理を終了する。
(4)一方、S2320において、ジャーナル論理ボリューム230のボリューム状態402が“正常”であると判定された場合は、ジャーナルリード命令がリトライ指示であるか否かを判定する(S2330)。
(5)S2330において、ジャーナルリード命令がリトライ指示であると判定された場合、ホストアダプタAは、前回送信したジャーナルレコードを再度、副記憶システムCに送信する。ホストアダプタAは、キャッシュメモリ130を確保し、ディスクアダプタ120に対して、「ポインタ情報700のリトライ開始アドレス708から、更新情報300のサイズの情報を読み出して、キャッシュメモリ130に格納する」ことを命令する。
ディスクアダプタ120のリードライト処理は、記憶装置150から更新情報300を読み出してキャッシュメモリ130に格納し、ホストアダプタAに、更新情報300のリード終了を通知する。
ホストアダプタAは、更新情報300のリード終了の通知を受けると、更新情報300から、ライト命令の論理アドレス304及びライトデータのデータサイズ305を取得し、キャッシュメモリ130を確保する。そして、ディスクアダプタ120に対して、「ライトデータを読み出してキャッシュメモリに格納する」ことを命令する(S2340)。
ディスクアダプタ120のリードライト処理は、記憶装置150からライトデータを読み出してキャッシュメモリ130に格納し、ホストアダプタAに、ライトデータのリード終了を通知する。
ホストアダプタAは、ライトデータのリード終了の通知を受けると、更新情報300及びライトデータを副記憶システムCに送信し、ジャーナルレコードが格納されたキャッシュメモリ130を開放して、処理を終了する(S2345)。
(6)S2330において、ジャーナルリード命令がリトライ指示でないと判定された場合、ホストアダプタAは、送信していないジャーナルレコードが存在するか否かを判定し、存在する場合は、ジャーナルレコードを副記憶システムCに送信する。具体的には、ホストアダプタAは、ポインタ情報700のリード開始アドレス707と更新情報最新アドレス703とを比較する(S2350)。
リード開始アドレス707が更新情報最新アドレス703と等しい場合は、全てのジャーナルレコードを副記憶システムCに送信済みである。このため、副記憶システムCに“ジャーナル無”の情報を送信し(S2360)、前回のジャーナルリード命令のときに副記憶システムCに送信したジャーナルレコードの記憶領域を開放する(S2390)。
ジャーナルレコードの記憶領域の開放処理は、ポインタ情報700の更新情報最古アドレス704に、リトライ開始アドレス708を設定する。更新情報最古アドレス704がライトデータ領域先頭アドレス702となった場合は、更新情報最古アドレス704を0とする。ポインタ情報700のライトデータ最古アドレス706は、前回のジャーナルリード命令に応じて送信したライトデータのデータサイズ305を加算した値に更新される。ライトデータ最古アドレス706は、ジャーナル論理ボリューム230の容量以上の論理アドレスとなった場合は、ライトデータ領域先頭アドレス702を減じた値に更新される。
(7)S2350において、リード開始アドレス707が更新情報最新アドレス703と異なる場合は、未送信のジャーナルレコードが存在する。この場合、ホストアダプタAは、キャッシュメモリ130を確保し、ディスクアダプタ120に対して、「ポインタ情報700のリード開始アドレス707から、更新情報300のサイズの情報を読み出して、キャッシュメモリ130に格納する」ことを命令する。
ディスクアダプタ120のリードライト処理は、記憶装置150から更新情報300を読み出してキャッシュメモリ130に格納し、ホストアダプタAに更新情報300のリード終了を通知する。
ホストアダプタAは、更新情報300のリード終了の通知を受けると、更新情報300から、ライト命令の論理アドレス304及びライトデータのデータサイズ305を取得し、キャッシュメモリ130を確保する。そして、ディスクアダプタ120に対して、「ライトデータを読み出してキャッシュメモリ130に格納する」ことを命令する(S2370)。
ディスクアダプタ120のリードライト処理は、記憶装置150からライトデータを読み出してキャッシュメモリ130に格納し、ライトデータのリード終了をホストアダプタAに通知する。
ホストアダプタAは、ライトデータのリード終了の通知を受けると、更新情報300及びライトデータを副記憶システムCに送信し(S2380)、ジャーナルレコードが格納されたキャッシュメモリ130を開放する。そして、ポインタ情報700のリトライ開始アドレス708にリード開始アドレス707の値を設定し、その後、リード開始アドレス707の値を、送信したジャーナルの更新情報300のサイズを加算した値に更新する。
(8)ホストアダプタAは、前回のジャーナルリード命令のときに副記憶システムCに送信したジャーナルレコードの記憶領域を開放する(S2390)。
上記のジャーナルリード受信処理では、正記憶システムAは、ジャーナルレコードを一つずつ副記憶システムCに送信していたが、複数のジャーナルレコードを同時に副記憶システムCに送信してもよい。一つのジャーナルリード命令によって送信されるジャーナルレコードの数は、副記憶システムCがジャーナルリード命令によって指定してもよいし、グループ登録の際等に、ユーザが正記憶システムA及び副記憶システムCに対して指定してもよい。さらに、正記憶システムAと副記憶システムCの間の接続パス200の転送能力又は負荷等に応じて、一つのジャーナルリード命令によって送信されるジャーナルレコードの数を動的に変更してもよい。また、ジャーナルレコードの数を考慮する代わりに、ジャーナルレコードのライトデータのサイズを考慮してジャーナルレコードの転送量を指定してもよい。
上記のジャーナルリード受信処理では、ジャーナルレコードを記憶装置150から読み出してキャッシュメモリ130に格納するが、ジャーナルがキャッシュメモリ130内に存在する場合は、この手順は不要である。
上記のジャーナルリード受信処理では、ジャーナルレコードの記憶領域を、次のジャーナルリード命令(リトライ指示を除く)の処理のときに開放するが、副記憶システムCにジャーナルレコードを送信した直後に開放してもよい。また、副記憶システムCが開放してよいジャーナルレコードの更新番号をジャーナルリード命令内に含め、正記憶システムAがその命令に従ってジャーナルレコードの記憶領域を開放してもよい。
<ジャーナルリード処理の動作>
図24は、本発明の第1の実施の形態のジャーナルリード処理のフローチャートである。
ジャーナルリード処理は、ジャーナルリード(JNLRD)部240によって実行される処理である。
図24を参照して、以下の(1)〜(6)において、副記憶システムCのホストアダプタCが、正記憶システムAからジャーナルレコードを読み出し、ジャーナル論理ボリューム230に格納する手順を説明する。
(1)副記憶システムCのホストアダプタCは、グループ状態602が“正常”、かつ、複製種類606が“非同期”であれば、ジャーナルレコードを格納するキャッシュメモリ130を確保し、ジャーナルリード命令であることを示す識別子、命令対象の正記憶システムAのグループ番号及びリトライ指示の有無を含むアクセス命令を正記憶システムAに送信する。以下、アクセス命令に含まれるグループ番号をグループ番号Cとする(S2400)。
(2)ホストアダプタCは、正記憶システムAからの応答及びジャーナルレコードを受信する。ホストアダプタCは、受信した応答が“ジャーナル無”であるか否かを判定する(S2420)。受信した応答が“ジャーナル無”である場合、正記憶システムAには指定したグループのジャーナルレコードが存在しない。このため、所定の時間の後、正記憶システムAにジャーナルリード命令を送信する(S2425)。
(3)正記憶システムAからの応答が“グループ状態602が異常”又は“グループ状態602が未使用”の場合は、副記憶システムCのグループ状態を、当該応答で受信したグループ状態602に変更し、ジャーナルリード処理を終了する(S2430、S2435)。
(4)正記憶システムAからの応答が上記のいずれでもない場合、すなわち、“正常終了”の場合は、ジャーナル論理ボリューム230のボリューム状態402が正常であるか否かを判定する(S2440)。ジャーナル論理ボリューム230のボリューム状態402が“異常”の場合は、ジャーナル論理ボリューム230にジャーナルを格納することができない。このため、グループ状態602を“異常”に変更し、処理を終了する(S2445)。この場合、ジャーナル論理ボリューム230を正常な論理ボリュームに変更する等の処理を実行し、グループの状態を正常に戻す。
(5)S2440において、ジャーナル論理ボリュームのボリューム状態が“正常”であると判定された場合は、後述するジャーナル格納処理(S2500)を実行する。ジャーナル格納処理(S2500)が正常に終了した場合は(S2450)、S2400に戻り、次のジャーナルリード命令を送信する。このとき、所定の時間が経過した後で、次のジャーナルリード命令を送信してもよい。
次のジャーナルリード命令は、所定の時間間隔で定期的に送信されてもよい。あるいは、受信したジャーナルの個数、接続パス200の通信量、副記憶システムCが保持しているジャーナルの容量、又は、副記憶システム100Cの負荷等によって定められるタイミングで送信されてもよい。あるいは、正記憶システムAが保持しているジャーナルの容量又は正記憶システムAのポインタ情報700を副記憶システムCから読み出し、その数値に基づいて定められるタイミングで送信されてもよい。
上記の情報の転送は、専用の命令によって実行されてもよいし、ジャーナルリード命令の応答に含まれてもよい。その後の処理は、S2400以降と同じである。
(6)一方、ジャーナル格納処理(S2500)が正常に終了しない場合は(S2450)、ジャーナル論理ボリューム230の未使用領域が足りないため、受信したジャーナルレコードを破棄し、所定の時間後にリトライ指示を含むジャーナルリード命令を送信する(S2455)。あるいは、ジャーナルレコードをキャッシュメモリ130に格納し、所定の時間後に、再度ジャーナル格納処理を実行する。これは、後述するリストア処理250が実行されることによって、所定の時間後には、ジャーナル論理ボリューム230に未使用領域が増えている可能性があるためである。この場合、ジャーナルリード命令にリトライ指示の有無を含める必要はない。
<ジャーナル格納処理の動作>
図25は、本発明の第1の実施の形態のジャーナル格納処理(S2500)のフローチャートである。
(1)ホストアダプタCは、ジャーナルレコードをジャーナル論理ボリューム230に格納することができるか否かを判定する。具体的には、ポインタ情報700を参照し、更新情報領域に未使用の領域があるか否かを判定する(S2510)。ポインタ情報700の更新情報最新アドレス703と更新情報最古アドレス704とが等しい場合は、更新情報領域に未使用の領域が存在しないため、ジャーナルレコードの作成に失敗して処理を終了する(S2520)。
(2)S2510において、更新情報領域に未使用の領域が存在すると判定された場合は、ポインタ情報700を参照し、ライトデータ領域にライトデータを格納することができるか否かを判定する(S2530)。ライトデータ最古アドレス706の値が、ライトデータ最新アドレス705の値から、ライトデータ最新アドレス705にデータ量Aを加算した値までの範囲にある場合、ライトデータ領域にライトデータを格納することができない。このため、ジャーナルレコードの作成に失敗して処理を終了する(S2520)。
(3)ジャーナルレコードをジャーナル論理ボリューム230に格納することができる場合、ホストアダプタCは、受信した更新情報300のグループ番号302及びライトデータを格納したジャーナル論理ボリュームの論理アドレス306を変更する。グループ番号302は、副記憶システムCのグループ番号に変更し、ジャーナル論理ボリュームの論理アドレス306は、ポインタ情報700のライトデータ最新アドレス705に変更する。
さらに、ホストアダプタCは、ポインタ情報700の更新情報最新アドレス703を、更新情報最新アドレスの値に更新情報300のサイズを加算した値に変更し、ライトデータ最新アドレス705を、ライトデータ最新アドレスの値にライトデータのサイズを足した値に変更する。
さらに、ホストアダプタCは、グループ情報600の更新番号605を、受信した更新情報300の更新番号303に変更する(S2540)。
(4)ホストアダプタCは、ディスクアダプタ120に対して、「更新情報300及びライトデータを記憶装置150に書き込む」ことを命令し、ジャーナルレコードの作成に成功して処理を終了する(S2550)。その後、ディスクアダプタ120は、リードライト処理によって、記憶装置150に更新情報300及びライトデータを書き込み、キャッシュメモリ130を開放する。
上記のジャーナル格納処理では、ジャーナルを記憶装置150に格納したが、ジャーナル用にあらかじめ一定量のキャッシュメモリ130を用意し、当該キャッシュメモリ130にジャーナルを格納してもよい。この場合、ジャーナルレコードは、当該キャッシュメモリ130に優先的に格納され、当該キャッシュメモリ130に格納しきれない分が記憶装置150に格納される。ジャーナル用のキャッシュメモリ130の量は、例えば、保守端末から指定する。
<リストア処理の動作>
図26は、本発明の第1の実施の形態のリストア処理のフローチャートである。
リストア処理は、リストア部250によって実行される処理である。
図26を参照して、以下の(1)〜(6)において、副記憶システムCのホストアダプタCがジャーナルを利用してデータを更新するリストア処理の手順について説明する。なお、リストア処理は、副記憶システムCのディスクアダプタ120が実行してもよい。
(1)ホストアダプタCは、グループ番号Cのグループ状態602が“正常”又は“停止”であるか否かを判定する(S2610)。S2610において、グループ状態が“正常”又は“停止”のいずれでもない(例えば、“異常”である)と判定された場合は、リストアすることができないため、リストア処理を終了する(S2615)。
(2)S2610において、グループ状態が“正常”又は“停止”であると判定された場合は、ジャーナル論理ボリューム230のボリューム状態402が正常であるか否かを判定する(S2620)。S2620において、ジャーナル論理ボリューム230のボリューム状態402が“異常”であると判定された場合は、ジャーナル論理ボリューム230にアクセスすることができない。このため、グループ状態を“異常”に変更し、処理を終了する(S2625)。
(3)S2620において、ジャーナル論理ボリューム230のボリューム状態402が“正常”であると判断された場合は、次に、リストア処理対象のジャーナルレコードが存在するか否かを判定する。具体的には、ホストアダプタCは、ポインタ情報700の更新情報最古アドレス704と更新情報最新アドレス703とを比較する。更新情報最古アドレスと更新情報最新アドレスとが等しい場合、リストア処理対象のジャーナルレコードは存在しないため、リストア処理を終了し、所定の時間後、リストア処理を再開する(S2630)。
(4)S2630において、リストア処理対象のジャーナルレコードが存在すると判定された場合、最古(最小)の更新番号303を有するジャーナルレコードに対して次の処理を実行する。最古(最小)の更新番号303を有するジャーナルレコードの更新情報300は、ポインタ情報700の更新情報最古アドレス704が示す位置から始まる領域に格納されている。ホストアダプタCは、キャッシュメモリ130を確保し、ディスクアダプタ120に対して、「更新情報最古アドレス704から更新情報300のサイズの情報を読み出してキャッシュメモリ130に格納する」ことを命令する。
ディスクアダプタ120のリードライト処理は、記憶装置150から更新情報300を読み出してキャッシュメモリ130に格納し、更新情報300のリード終了をホストアダプタCに通知する。
ホストアダプタCは、更新情報300のリード終了の通知を受けると、更新情報300から、ライトデータを格納したジャーナル論理ボリュームの論理アドレス306及びライトデータのデータサイズ305を読み出す。そして、キャッシュメモリ130を確保して、ディスクアダプタ120に対して、「ライトデータを読み出してキャッシュメモリ130に格納する」ことを命令する。
ディスクアダプタ120のリードライト処理は、記憶装置150からライトデータを読み出してキャッシュメモリ130に格納し、ホストアダプタに通知する(S2640)。
(5)ホストアダプタCは、更新情報300の更新する副論理ボリューム230の論理アドレス(ライト命令の論理アドレス304)を参照し、ディスクアダプタ120に対して、「副論理ボリューム230にライトデータを書き込む」ことを命令する(S2650)。ディスクアダプタCのリードライト処理は、副論理ボリューム230の論理アドレスに対応する記憶装置150にデータを書き込み、キャッシュメモリ130を開放し、ホストアダプタCにライト処理完了を通知する。
(6)ホストアダプタCは、ディスクアダプタ120のライト処理完了の通知を受けると、ジャーナルレコードの記憶領域を開放する。すなわち、ポインタ情報700の更新情報最古アドレス704を、更新情報300のサイズを加算した値に変更する。更新情報最古アドレス704がライトデータ領域先頭アドレス702と同一になった場合は、更新情報最古アドレス704を0とする。
さらに、ポインタ情報700のライトデータ最古アドレス706を、ライトデータのサイズを加算した値に変更する。ライトデータ最古アドレス706は、ジャーナル論理ボリューム230の容量に含まれない論理アドレスとなった場合、ライトデータ領域先頭アドレス702を減じた値に更新される。その後、ホストアダプタCは、次のリストア処理を開始する(S2660)。
上記のリストア処理では、記憶装置150からジャーナルレコードを読み出してキャッシュメモリ130に格納したが、ジャーナルがキャッシュメモリ130に存在する場合は、この手順は不要である。
本実施の形態では、非同期リモートコピーの際のジャーナルリード受信処理及びジャーナルリード処理において、正記憶システムAが、ポインタ情報700を参照して、副記憶システムCに送信するジャーナルレコードを指定したが、副記憶システムCが、正記憶システムAから送信されるジャーナルレコードを指定してもよい。例えば、副記憶システムCが正記憶システムAに発行するジャーナルリード命令に、更新番号の指定を追加する。この場合、正記憶システムAのジャーナルリード受信処理において、副記憶システムCが指定した更新番号の更新情報300に対応する論理アドレスを求めるために、正記憶システムAの共有メモリ140内に、更新番号と更新情報300を格納した論理アドレスとを対応付けるテーブル又は検索手段等を設ける。
また、本実施の形態のジャーナルリード受信処理及びジャーナルリード処理では、ジャーナルレコードの転送のためにジャーナルリード命令を用いるが、通常のリード命令を用いてもよい。例えば、正記憶システムAのグループ情報600及びポインタ情報700をあらかじめ副記憶システムCに転送する。副記憶システムCは、これらの情報に基づいて、正記憶システムAのジャーナル論理ボリューム230のデータ(すなわち、ジャーナルレコード)を、リード命令によって読み出す。
また、本実施の形態のジャーナルリード受信処理では、更新番号の順に、副記憶システムCが正記憶システムAにジャーナルレコードを送信するが、更新番号の順に送信しなくてもよい。また、正記憶システムAが副記憶システムCに対して複数のジャーナルリード命令を送信してもよい。これらの場合、副記憶システムCのリストア処理において更新番号順にジャーナルレコードを処理してデータを更新するために、副記憶システムCに、更新番号と更新情報300を格納した論理アドレスとを対応付けるテーブル又は検索手段等を設ける。
また、本実施の形態のジャーナルリード受信処理及びジャーナルリード処理では、副記憶システムCが正記憶システムAに対してジャーナルリード命令を送信してジャーナルレコードを取得するが、正記憶システムAが副記憶システムCに対して、ジャーナルレコードを格納するライト命令を送信してもよい。このジャーナルレコードを格納するライト命令は、専用の命令(ジャーナルライト命令)によってなされてもよいし、通常のライト命令によってなされてもよい。例えば、副記憶システムCのグループ情報600及びポインタ情報700があらかじめ正記憶システムAに転送される。正記憶システムAは、これらの情報に基づいて、副記憶システムCのジャーナル論理ボリューム230にデータ(すなわち、ジャーナルレコード)を書き込む。
本実施の形態では、正記憶システムAのジャーナル論理ボリュームの記憶容量と、副記憶システムBのジャーナル論理ボリュームの記憶容量と、副記憶システムCのジャーナル論理ボリュームの記憶容量とは、同じであるが、これらは異なっていてもよい。
以上のように、本実施の形態のコンピュータシステムにおいて、副記憶システムB及びCには、正記憶システムAに格納されたデータの複製が格納される。正記憶システムAは、複製対象データを更新する際、副記憶システムB内の該当するデータの更新を命令すると共に、当該更新に関する情報をジャーナルレコードとして格納する。副記憶システムBは、正記憶システムAからの命令を受けると、該当するデータを更新する(同期リモートコピー)。副記憶システムCは、正記憶システムAからジャーナルレコードを取得し、取得したジャーナルレコードを用いて、正記憶システムAのデータ更新順序に従って該当するデータを更新する(非同期リモートコピー)。その結果、副記憶システムB及びCは、データの整合性を維持しつつ、正記憶システムAのデータの複製を保持する。
<ビットマップ(BM)差分形成>
次に、本発明の第1の実施の形態において、ホストコンピュータAに障害が発生した場合のフェイルオーバーの手順を説明する。
記憶システムAと記憶システムBは、通常の運用において、同期リモートコピーによるペアを形成する。すなわち、記憶システムBには、同期リモートコピーによって、記憶システムAと全く同じデータが格納されている。このため、ホストコンピュータAに障害が発生すると、ホストコンピュータBが記憶システムBを使用してホストコンピュータAの業務を引き継ぐことができる。
一方、記憶システムAと記憶システムCは、通常の運用において、非同期リモートコピーによるペアを形成する。このため、ホストコンピュータAに障害が発生したときに、ホストコンピュータB又は記憶装置Bを使用することができない場合は、記憶装置Cに接続されたホストコンピュータ(図示省略)が記憶装置Cを使用してホストコンピュータAの業務を引き継ぐことができる。
しかし、記憶システムBと記憶システムCは、通常の運用において、ペアを形成しない。すなわち、記憶システムBと記憶システムCとの間では、データの同一性が保証されない。したがって、ホストコンピュータBがホストコンピュータAの運用を引き継いだ後、さらにホストコンピュータB又は記憶システムBに障害が発生したときに、記憶装置Cに接続されたホストコンピュータは、記憶装置Cを使用してホストコンピュータBの業務を引き継ぐことができない。
そこで、ホストコンピュータBがホストコンピュータAの運用を引き継いだとき、記憶システムBと記憶システムCは、新たなペアを形成する。すなわち、データの同一性が確保される。その後、ホストコンピュータB又は記憶システムBに障害が発生したときに、記憶装置Cに接続されたホストコンピュータがホストコンピュータBの業務を引き継ぐことができる。このため、システムの耐障害性が向上する。
本発明では、記憶システムBと記憶システムCとの間に新たなペアを形成する際に、記憶システムBのデータのうち、記憶システムCに格納されていないデータ(すなわち、差分データ)のみを記憶システムCに転送して複製する。以下、このように差分データのみを複製することによってペア形成することを、差分形成と記載する。
本実施の形態では、差分ビットマップ(BM)を参照して、差分形成する。以下、これをビットマップ差分形成と記載する。
差分ビットマップとは、論理ボリューム230内のデータが更新(書き込み)された領域を示すフラグの集合である。例えば、論理ボリューム230を構成する論理ブロック(セクタ)ごとに一つのビットが割り当てられる。その論理ボリューム230が属するペアの状態が「サスペンド」のとき、その論理ボリューム230のデータの更新は、ペアの相手方の論理ボリュームに反映されない。この状態において、その論理ボリューム230内の論理ブロックが更新されると、その論理ブロックに割り当てられたビットの値が「0」から「1」に変化する。なお、差分ビットマップのビットは、任意の大きさの領域に割り当てることができる。例えば、複数の論理ブロック(トラック等)ごとに一つのビットが割り当てられてもよい。その場合は、一つのビットに割り当てられた領域に含まれるいずれかのデータが更新されたとき、そのビットの値が「0」から「1」に変化する。また、データが更新されたときに、ビットの値が「1」から「0」に変化してもよい。
差分ビットマップは、各論理ボリューム230に、その論理ボリューム230が属するペアの数ずつ設けられる。例えば、図1の記憶システムAの論理ボリュームDATA1は、記憶システムBの論理ボリュームdata1及び記憶システムCの論理ボリュームCOPY1とペアを構成する。このため、DATA1は、data1とのペアに対応する差分ビットマップと、COPY1とのペアに対応する差分ビットマップとを有する。
差分ビットマップは、共有メモリ140内に格納される。ペア情報500の差分BM位置509は、各差分ビットマップが格納された位置(アドレス)である。なお、差分ビットマップは、キャッシュメモリ130又はその他のメモリに格納されてもよい。
次に、図27及び図28を参照して、ビットマップ差分形成の手順を説明する。
なお、ビットマップ差分形成が実行されるには、記憶システムAが正常に動作していることが必要である。したがって、以下のビットマップ差分形成の説明においては、ホストコンピュータAに障害等が発生し、記憶システムAは正常に動作しているものとする。
図27は、本発明の第1の実施の形態のビットマップ差分形成のフローチャートである。図28は、本発明の第1の実施の形態のビットマップ差分形成の説明図である。
図28は、例として、論理ボリュームDATA1及びdata1のペア、並びに、論理ボリュームDATA1及びCOPY1のペアを示す。また、図28のS2701〜S2707は、図27のフローチャートのステップ番号に対応する。
なお、図27のフローチャートの各手順は、ホストコンピュータBの差分形成指示部Bの指示に従って、記憶システムBの差分形成部B等が実行するものである。
ホストコンピュータAの障害等によってビットマップ差分形成が開始すると、ホストコンピュータBの差分形成指示部260(以下、「差分形成指示部B」とする)は、記憶システムBの差分形成部265(以下、「差分形成部B」とする)に対して、記憶システムAのホストI/Oを一時保留することを指示する(S2701)。これを受けて、差分形成部Bは、記憶システムAに対して、ホストI/Oを一時保留することを指示する。その結果、ホストコンピュータAから記憶装置Aに対するデータの書き込み及び読み出しが停止される。すなわち、以後、記憶システムAのデータは、ホストコンピュータAによって更新されない。
次に、差分形成指示部Bは、差分形成部Bに対して、記憶システムA及びBのペア(すなわち、DATA1及びdata1のペア)のサスペンドを指示する(S2702)。その結果、当該ペアは存続するが、当該ペアにおいて、同期リモートコピーによるデータの転送が停止する。サスペンドされた時点で、DATA1及びdata1には、全く同じデータが格納されている。また、DATA1のdata1に対する差分ビットマップ2801、及び、data1のDATA1に対する差分ビットマップ2802は、全てのビットが「0」である。なお、この時点では、data1とCOPY1の間にペアが形成されていないため、data1のCOPY1に対する差分ビットマップ2803は、まだ存在していない。
次に、ホストコンピュータBが、記憶システムBを使用してアプリケーションの運用を開始する(S2703)。すなわち、ホストコンピュータBが、記憶システムBを使用して、ホストコンピュータAの業務を引き継ぐ。以後、記憶システムB内のdata1のデータは、ホストコンピュータBによって更新される。このとき、更新されたデータに対応する、差分ビットマップ2802内のビットの値が、「0」から「1」に変更される。
次に、差分形成指示部Bは、記憶システムCに対して、記憶システムA及びCの間のペアの削除を指示する(S2704)。記憶システムCのジャーナルリード部240は、ペア削除指示を受けると、記憶システムAに対して、ジャーナル論理ボリュームJNL−Aに格納されたジャーナルレコードの転送を要求する。そして、記憶システムAから転送されたジャーナルレコードを、記憶システムCのジャーナル論理ボリュームJNL−Cに格納する。ペアの削除は、ペア削除指示が発行された時点でJNL−Aに格納されていた全てのジャーナルレコードがJNL−Cに転送され、さらにJNL−Cに転送されたすべてのジャーナルレコードがリストアされた時点で終了する。JNL−Cに格納されたジャーナルレコードは、記憶システムCのリストア部250によってCOPY1に反映される。
差分形成指示部Bは、ペア削除が終了したか否かを判定する(S2705)。具体的には、ペア削除指示(S2704)が発行された時点でJNL−Aに格納されていた全てのジャーナルが、S2705の時点でJNL−Cに転送されていれば、ペア削除が終了したと判定される。ペア削除が終了していない場合は、ペア削除を続行し、再びペア削除が終了したか否かを判定する(S2705)。
S2705においてペア削除が終了したと判定された場合、差分形成指示部Bは、差分形成部Bに対して、記憶システムB及びCの間に非同期リモートコピーのペアを形成することを指示する(S2706)。すなわち、data1とCOPY1の間にペアを形成する。このとき、差分形成部Bは、共有メモリ140内に、data1のCOPY1に対する差分ビットマップ2803を生成する。
次に、記憶システムBは、記憶システムAに対する差分ビットマップを、記憶システムCに対する差分ビットマップとして使用して、差分データを記憶システムCに反映させる(S2707)。具体的には、data1のDATA1に対する差分ビットマップ2802の各ビットの値を差分ビットマップ2803に複製する。そして、差分形成部Bは、論理ボリュームdata1に含まれるデータのうち、対応する差分ビットマップ2803のビットの値が「1」であるデータ(すなわち、S2702のサスペンドの後にホストコンピュータBによって更新された差分データ)を、記憶システムCの論理ボリュームCOPY1に転送し、COPY1を更新する。その結果、サスペンド(S2702)後にホストコンピュータBによってなされた記憶システムBのデータの更新が、記憶システムCに反映される。
以上でビットマップ差分形成を終了する(S2708)。以後、記憶システムB及びCは、非同期リモートコピーによるペアとして運用される。なお、S2701からS2706までのいずれかのステップで異常が発生した場合は、ビットマップ差分形成に失敗する。この場合、記憶システムBの論理ボリュームdata1のデータを全て記憶システムCの論理ボリュームCOPY1に転送し、複製することによって、記憶システムB及びCの間にペアを形成する。
一般に、記憶システムA及びBのペアの状態をサスペンドにした後、記憶システムB及びCの間にペアを形成するためには、論理ボリューム230の全データを記憶システムBから記憶システムCにコピーする必要がある。このコピーは、通常、長い時間を要する。
しかし、上記のビットマップ差分形成によれば、差分ビットマップを参照して、更新されたデータのみを複製することによって記憶システムB及びCの間にペアを形成する。このため、ペアの形成に要する時間を短縮することができる。
なお、図27において、ホストI/Oの一時保留(S2701)は、記憶システムA及びBのペアのサスペンド(S2702)を契機として実行されてもよい。例えば、記憶システムAは、記憶システムBからサスペンドの指示を受けると、サスペンドを実行する前に、ホストI/Oを保留する。その結果、S2701を省略することができる。
また、図27において、S2701又はS2702のいずれにおいてもホストI/Oの一時保留を省略することができる。ただし、この場合は、記憶システムAが、障害が発生したホストコンピュータAから、望ましくない更新(例えば、無意味なデータの書き込み)を受ける場合がある。その更新は、記憶システムAとCのペアの削除が終了する(S2705)前になされた場合は、記憶システムCに反映される。このため、記憶システムCのこのような望ましくない更新を取り消すことが必要になる。
そこで、サスペンド(S2702)の後、記憶システムAのDATA1内のデータがホストコンピュータAから更新された場合、当該データに対応する差分ビットマップ2801のビットの値を「1」とする。そして、S2706において、差分ビットマップ2801と差分ビットマップ2802とを融合して差分ビットマップ2803に複製する。すなわち、差分ビットマップ2801のビットと、それに対応する差分ビットマップ2802のビットの値の少なくとも一方が「1」(すなわち、更新された)であるときは、これらのビットに対応する差分ビットマップ2803のビットを「1」とする。
具体的には、差分ビットマップ2801と差分ビットマップ2802の各ビットの論理和を算出し、その値を差分ビットマップ2803に複製してもよい。また、差分ビットマップ2802の各ビットの値を差分ビットマップ2803に複製したあとで、差分ビットマップ2801と差分ビットマップ2803の各ビットの論理和を算出し、その値を新たな差分ビットマップ2803の値としてもよい。
なお、各差分ビットマップにおいて、データが更新されたことを示すビットの値が「0」である場合は、論理和を算出する代わりに、論理積を算出する。
その後、差分形成部Bは、論理ボリュームdata1に含まれるデータのうち、対応する差分ビットマップ2803のビットの値が「1」であるデータを、記憶システムCの論理ボリュームCOPY1に転送する。その結果、差分ビットマップ2801によって示される領域のデータと、差分ビットマップ2802によって示される領域のデータが、data1からCOPY1に転送され、転送されたデータによってCOPY1が更新される。
このため、例えば、記憶システムAが、ホストコンピュータAから無意味なデータを書き込まれ、そのデータが記憶システムCにも書き込まれた場合でも、その後、記憶システムBのデータを書き込むことによって、本来のデータに戻すことができる。
<ジャーナル差分形成>
次に、本発明の第2の実施の形態について説明する。本発明の第1の実施の形態のうち、図1から図26に示す構成は、本発明の第2の実施の形態にも適用される。このため、これらの構成の説明は省略する。
本発明の第2の実施の形態は、記憶システムBと記憶システムCの間でペアを形成する際に、ジャーナルを使用して差分形成する点で、差分ビットマップを使用する第1の実施の形態(ビットマップ差分形成)と異なる。このように、ジャーナルを使用した差分形成を、以下、ジャーナル差分形成と記載する。
なお、ジャーナル差分形成は、ビットマップ差分形成と異なり、ホストコンピュータA又は記憶システムAのいずれに障害が発生した場合にも実行することができる。
以下、図29及び図30を参照して、ジャーナル差分形成について説明する。
図29は、本発明の第2の実施の形態のジャーナル差分形成のフローチャートである。図30は、本発明の第2の実施の形態のジャーナル差分形成の説明図である。
これらの図の説明において、ビットマップ差分形成と共通する部分については、説明を省略する。また、図30において、S2901等のステップ番号は、図29のフローチャートのステップ番号に対応する。
最初に、本実施の形態における通常時(すなわち、障害が発生していないとき)の動作を説明する。
記憶システムAは、ホストコンピュータAからの書き込み命令によってデータを更新されると、同期リモートコピーによって当該更新を記憶システムBに反映させる。さらに、当該更新を非同期リモートコピーによって記憶システムCに反映させるために、当該データに関するジャーナルレコードを作成して、ジャーナル論理ボリューム230(JNL−A)に格納する。さらに、記憶システムAは、このとき作成したジャーナルレコードの更新番号303を、記憶システムBへの同期リモートコピーの際に、当該データと共に転送する。
記憶システムBは、転送されたデータ及び更新番号303に基づいてジャーナルレコードを作成して、ジャーナル論理ボリューム230(JNL−B)に格納する。
記憶システムAは、ジャーナル論理ボリュームJNL−Aに格納されたジャーナルレコードを記憶システムCに転送した後、当該ジャーナルレコードを消去する。
しかし、記憶システムBは、通常時にはジャーナルを使用しない。このため、ジャーナル論理ボリュームJNL−Bに空き容量がなくなると、古いジャーナルレコード(すなわち、更新番号303の小さいジャーナルレコード)から順に消去して、新たなジャーナルレコードを格納する。
次に、ホストコンピュータA又は記憶システムAに障害が発生した場合のジャーナル差分形成について説明する。
なお、図29のフローチャートの各手順は、ホストコンピュータBの差分形成指示部Bの指示に従って、記憶システムBの差分形成部B等が実行するものである。
ジャーナル差分形成が開始すると、ホストコンピュータBの差分形成指示部Bは、記憶システムBの差分形成部Bに対して、記憶システムA及びBのペアをサスペンドすることを指示する(S2901)。
次に、差分形成指示部Bは、ホストコンピュータBによるアプリケーションの運用開始を指示する(S2902)。以後、ホストコンピュータBは、記憶システムBを使用して、アプリケーションを運用する。これによって、ホストコンピュータAの業務がホストコンピュータBに引き継がれる。
記憶システムBは、ホストコンピュータBからデータを更新されると、当該更新に関するジャーナルレコードを作成して、ジャーナル論理ボリュームJNL−Bに格納する。このとき、当該ジャーナルレコードには、記憶システムA及びBのペアがサスペンドされる前にJNL−Bに最後に格納されたジャーナルレコードの更新番号303(以下、「最大更新番号初期値」と記載する)から連続する更新番号303が与えられる。
JNL−Bに新たなジャーナルレコードを格納する空き容量がない場合は、古いジャーナルレコード(すなわち、更新番号の小さいジャーナルレコード)から順に消去して、新たなジャーナルレコードを格納する。
図30の例では、サスペンド(S2901)の時点で、JNL−Bには、更新番号「40」から「100」までのジャーナルレコードが格納されている。すなわち、「40」から「100」までの更新番号は、記憶システムAから記憶システムBに転送されたものである。したがって、最大更新番号初期値は「100」である。
その後、ホストコンピュータBの運用が開始され、ホストコンピュータBが記憶システムBのデータを更新すると、記憶システムBは、当該更新に関するジャーナルレコードを作成してJNL−Bに格納する。このとき、記憶システムBは、「101」以降の更新番号を、更新の順に新しいジャーナルレコードに与える。図30に示す時点では、記憶システムBにおいて、サスペンド(S2901)後に、10個のジャーナルレコードが作成され、最大更新番号303は「110」である。このとき、更新番号303が「40」のジャーナルレコードも消去されずに残っているため、最小更新番号303は「40」である。
なお、記憶システムBにおけるジャーナル作成の手順は、ジャーナル作成処理(図19)と同様である。
次に、差分形成指示部Bは、差分形成部Bに、記憶システムCの一時停止を指示する(S2903)。差分形成部Bは、記憶システムCの差分形成部265に、一時停止を指示する。以後、記憶システムAは、ジャーナルレコードを作成し続けるが、記憶システムCは、記憶システムAからジャーナルレコードを受け取らない。記憶システムCは、JNL−Cに格納されたジャーナルレコードを保持し続けるが、当該ジャーナルレコードを論理ボリュームに反映させるリストア処理を一時停止する。
図30の例では、記憶システムCのジャーナル論理ボリュームJNL−Cには、更新番号303が「60」から「80」までのジャーナルレコードが格納されている。すなわち、JNL−Cの最小更新番号303は「60」であり、最大更新番号303は「80」である。
なお、記憶システムA及びCは、非同期リモートコピーによるペアを形成する。このため、記憶システムCは、更新番号303の順にジャーナルレコードを受信するとは限らない。したがって、障害が発生した状況によっては、JNL−Cに格納されたジャーナルレコードに欠落がある(すなわち、更新番号303が連続しない)場合がある。この場合は、更新番号303が連続する範囲内での最大値を、JNL−Cの更新番号303の最大値(すなわち、最大更新番号303)とする。
例えば、図30において、JNL−Cに、更新番号303が「60」から「80」までのジャーナルレコードが連続して格納され、更新番号303が「81」のジャーナルレコードが格納されず、更新番号303が「82」のジャーナルレコードが格納されている場合、最大更新番号303は、「80」である。
一方、記憶システムAのジャーナル論理ボリュームJNL−Aには、更新番号303が「60」から「105」までのジャーナルレコードが格納されている。すなわち、JNL−Aの最小更新番号303は「60」であり、最大更新番号303は「105」である。これらのジャーナルレコードのうち、更新番号303が「60」から「80」までのものは、すでに記憶システムAから記憶システムCに転送されている。また、更新番号303が「101」から「105」までのものは、サスペンド(S2901)後に作成されたものであるため、障害が発生したホストコンピュータAから書き込まれた無意味なデータを含む可能性がある。
次に、差分形成部Bは、ジャーナル論理ボリュームJNL−Cの最小更新番号303がジャーナル論理ボリュームJNL−Bの最大更新番号初期値以下であり、かつ、JNL−Bの最小更新番号303がJNL−Cの最大更新番号303に「1」を加算した値以下であるか否かを判定する(S2904)。
S2904の判定の結果が「No」である場合(すなわち、ジャーナル論理ボリュームJNL−Cの最小更新番号303がジャーナル論理ボリュームJNL−Bの最大更新番号初期値より大きいか、又は、JNL−Bの最小更新番号303がJNL−Cの最大更新番号303に「1」を加算した値より大きい場合)は、ジャーナル差分形成に必要な一つ以上のジャーナルレコードが不足しているため、ジャーナル差分形成に失敗して処理を終了する(S2910)。この場合、記憶システムBの論理ボリュームdata1のデータを全て記憶システムCの論理ボリュームCOPY1に転送し、格納することによって、記憶システムB及びCの間にペアを形成する。
一方、S2904の判定の結果が「Yes」である場合は、ジャーナル差分形成に必要なジャーナルレコードが全てそろっている。このため、差分形成指示部Bは、差分形成部Bに対して、記憶システムB及びCの間に非同期リモートコピーによるペアを形成することを指示する(S2905)。
図30の例では、JNL−Cの最小更新番号303は「60」であり、これは、JNL−Bの最大更新番号初期値の「100」以下である。さらに、JNL−Bの最小更新番号303は「40」であり、これは、JNL−Cの最大更新番号303に「1」を加算した値「81」以下である。このため、S2904の判定の結果は「Yes」である。
仮に、JNL−Bの最小更新番号303が「90」であれば、これは、JNL−Cの最大更新番号303に「1」を加算した値「81」より大きい。このとき、更新番号303が「81」から「89」までのジャーナルレコードは、JNL−B及びJNL−Cのいずれにも存在しないため、これらのジャーナルレコードを用いてペアを形成することができない。このため、ペアの形成に失敗して処理を終了する(S2910)。
次に、差分形成部Bは、JNL−Cの最大更新番号303がJNL−Bの最大更新番号初期値以下であるか否かを判定する(S2906)。
S2906の判定の結果が「Yes」である場合は、JNL−Bのジャーナルレコードのうち、更新番号303がJNL−Cの最大更新番号303に「1」を加算した値以上であるジャーナルレコードを、JNL−Cに転送し、格納する。そして、記憶システムCは、リストア処理によって、JNL−Cの内容をCOPY1に反映させる。具体的には、JNL−Cに格納されたジャーナルレコードのデータを、更新番号303の順にCOPY1に格納する(S2907)。
一方、S2906の判定の結果が「No」である場合は、JNL−Bのジャーナルレコードのうち、更新番号303がJNL−Bの最大更新番号初期値に「1」を加算した値以上であるジャーナルレコードを、JNL−Cに転送し、格納する。そして、記憶システムCは、リストア処理によって、JNL−Cの内容をCOPY1に反映させる。具体的には、JNL−Cに格納されたジャーナルレコードのデータを、更新番号303の順にCOPY1に格納する(S2908)。
S2907又はS2908の結果、ホストコンピュータAによって更新されたデータ及びホストコンピュータBによって更新されたデータが、更新された順序に従って、記憶システムCに反映(書き込み)される。
図30の例では、JNL−Cの最大更新番号303は「80」であり、これは、JNL−Bの最大更新番号初期値の「100」以下である。このため、S2906の判定の結果は「Yes」である。したがって、更新番号303が「81」以上のジャーナルレコードをJNL−BからJNL−Cに転送し、格納する(S2907)。
仮に、JNL−Bの最大更新番号初期値が「70」であれば、JNL−Cの最大更新番号303は「80」であるため、S2906の判定の結果は「No」である。したがって、更新番号303が「71」以上のジャーナルレコードをJNL−BからJNL−Cに転送し、格納する(S2908)。
この場合、S2908が実行される前は、JNL−Cに格納された更新番号303が「71」から「80」までのジャーナルレコードは、サスペンド(S2901)後にホストコンピュータAによって更新されたデータを含む。すなわち、これらのジャーナルレコードは、無意味なデータを含む可能性がある。しかし、S2908において、これらのジャーナルレコードがJNL−Bに格納されたジャーナルレコードによって置き換えられることによって、無意味なデータがCOPY1に書き込まれることが防止される。
以上で、ジャーナル差分形成を終了する(S2909)。以後、記憶システムB及びCは、非同期リモートコピーによるペアとして運用される。なお、S2901からS2908までのいずれかのステップで異常が発生した場合は、ジャーナル差分形成に失敗する。この場合、S2910と同様に、論理ボリュームdata1の全データを複製することによって、記憶システムB及びCの間にペアを形成する。
上記のジャーナル差分形成によれば、記憶システムA及びBのペアの状態をサスペンドにした後、直ちにホストコンピュータの運用を開始することができ、システムが停止している時間を短縮することができる。
さらに、ジャーナル差分形成によれば、更新されたデータのみを複製することによって記憶システムB及びCの間にペアを形成するため、ペアの形成に要する時間を短縮することができる。
さらに、ジャーナル差分形成によれば、データが順序された順序に従って差分形成されるため、差分形成が中断しても、データの整合性が失われない。
<ジャーナル+ビットマップ差分形成>
次に、本発明の第3の実施の形態について説明する。本発明の第1及び第2の実施の形態のうち、図1から図26に示す構成は、本発明の第3の実施の形態にも適用される。このため、これらの構成の説明は省略する。
本発明の第3の実施の形態は、記憶システムBと記憶システムCの間でペアを形成する際に、ジャーナルを使用して差分形成し、ジャーナルレコードに不足がある場合は、差分ビットマップによってその不足を補って差分形成する点で、第1及び第2の実施の形態のいずれとも異なる。このように、ジャーナルと差分ビットマップを使用した差分形成を、以下、ジャーナルBM差分形成と記載する。
なお、ジャーナルBM差分形成は、ジャーナル差分形成と同様に、ホストコンピュータA又は記憶システムAのいずれに障害が発生した場合にも実行することができる。
以下、図31及び図32を参照して、ジャーナルBM差分形成について説明する。
図31は、本発明の第3の実施の形態のジャーナルBM差分形成のフローチャートである。図32は、本発明の第3の実施の形態のジャーナルBM差分形成の説明図である。
図32のうち、図28又は図30と共通する部分については、説明を省略する。また、図32において、S3101等のステップ番号は、図31のフローチャートのステップ番号に対応する。
本実施の形態における通常時(すなわち、障害が発生していないとき)の動作は、本発明の第2の実施の形態と同様であるので、説明を省略する。
なお、図31のフローチャートの各手順は、ホストコンピュータBの差分形成指示部Bの指示に従って、記憶システムBの差分形成部B等が実行するものである。
ホストコンピュータA又は記憶システムAに障害が発生して、ジャーナルBM差分形成が開始すると、ホストコンピュータBの差分形成指示部Bは、記憶システムBの差分形成部Bに対して、記憶システムA及びBのペアをサスペンドすることを指示する(S3101)。
次に、差分形成指示部Bは、ホストコンピュータBによるアプリケーションの運用開始を指示する(S3102)。以後、ホストコンピュータBは、記憶システムBを使用して、アプリケーションを運用する。これによって、ホストコンピュータAの業務がホストコンピュータBに引き継がれる。
記憶システムBは、ホストコンピュータBからデータを更新されると、当該更新に関するジャーナルレコードを作成して、ジャーナル論理ボリュームJNL−Bに格納する。このとき、当該ジャーナルレコードには、記憶システムA及びBのペアがサスペンドされる前にJNL−Bに最後に格納されたジャーナルレコードの更新番号303(以下、「最大更新番号初期値」と記載する)から連続する更新番号303が与えられる。
JNL−Bに新たなジャーナルレコードを格納する空き容量がない場合は、古いジャーナルレコード(すなわち、更新番号303の小さいジャーナルレコード)から順に消去して、新たなジャーナルレコードを格納する。このとき、消去するジャーナルレコードを、差分ビットマップ3201に反映させる。具体的には、差分ビットマップ3201のビットのうち、消去されるジャーナルレコードに含まれるデータに対応するビットの値を、「1」とする。すなわち、差分ビットマップ3201は、JNL−Bから消去されたジャーナルレコードのデータが格納された領域を示す。
なお、サスペンド(S3101)の時点でJNL−Bに格納されているジャーナルレコードの更新番号303の最小値を、「最小更新番号初期値」とする。
図32の例では、サスペンド(S3101)の時点で、JNL−Bには、更新番号「40」から「100」までのジャーナルレコードが格納されている。すなわち、「40」から「100」までの更新番号は、記憶システムAから記憶システムBに転送されたものである。したがって、最小更新番号初期値は「40」、最大更新番号初期値は「100」である。
その後、ホストコンピュータBの運用が開始され、ホストコンピュータBが記憶システムBのデータを更新すると、記憶システムBは、当該更新に関するジャーナルレコードを作成してJNL−Bに格納する。このとき、記憶システムBは、「101」以降の更新番号を、更新の順に新しいジャーナルレコードに与える。図30に示す時点では、記憶システムBにおいて、サスペンド(S3101)後に、50個のジャーナルレコードが作成され、最大更新番号303は「150」である。このとき、更新番号303が「40」から「89」までのジャーナルレコードは、新たなジャーナルレコードを格納するために消去されている。このため、最小更新番号303は「90」である。
差分ビットマップ3201には、上記のように、ホストコンピュータBによるデータの更新が直接反映されるのではなく、JNL−Bから消去されるジャーナルレコード(図32の例では、更新番号303が「40」から「89」までのジャーナルレコード)のデータが反映される。その点を除けば、差分ビットマップ3201は、差分ビットマップ2802(図28)と同じである。
以降の処理のうち、S3103〜S3109は、それぞれ、S2903〜S2909(図29)と同じであるので、説明を省略する。
S3104の判定の結果が「No」である場合(すなわち、ジャーナル論理ボリュームJNL−Cの最小更新番号303がジャーナル論理ボリュームJNL−Bの最大更新番号初期値より大きいか、又は、JNL−Bの最小更新番号303がJNL−Cの最大更新番号303に「1」を加算した値より大きい場合)は、ジャーナル差分形成に必要な一つ以上のジャーナルレコードが不足している。この場合、本実施の形態では、ジャーナルレコードの不足を、差分ビットマップ3201で補うことができるか否かを判定する。具体的には、JNL−Cの最小更新番号303がJNL−Bの最大更新番号初期値以下であり、かつ、JNL−Bの最小更新番号初期値がJNL−Cの最大更新番号303に「1」を加算した値以下であるか否かを判定する(S3110)。
S3110の判定の結果が「No」である場合は、一つ以上の不足しているジャーナルレコードのデータが差分ビットマップ3201に反映されていない。すなわち、ジャーナルレコードの不足を差分ビットマップ3201で補うことができないため、ジャーナルBM差分形成に失敗して処理を終了する(S3115)。この場合、記憶システムBの論理ボリュームdata1のデータを全て記憶システムCの論理ボリュームCOPY1に転送し、複製することによって、記憶システムB及びCの間にペアを形成する。
一方、S3110の判定の結果が「Yes」である場合は、全ての不足したジャーナルレコードのデータが差分ビットマップ3201に反映されている。すなわち、ジャーナルレコードの不足を差分ビットマップ3201で補うことができる。このため、差分形成指示部Bは、差分形成部Bに対して、記憶システムB及びCの間に非同期リモートコピーによるペアを形成することを指示する(S3111)。
図32の例では、JNL−Cの最小更新番号303は「60」であり、これは、JNL−Bの最大更新番号初期値の「100」以下である。しかし、JNL−Bの最小更新番号303は「90」であり、これは、JNL−Cの最大更新番号303に「1」を加算した値「81」以下ではない。このため、S3104の判定の結果は「No」である。
一方、JNL−Bの最小更新番号初期値は「40」であり、これは、JNL−Cの最大更新番号303に「1」を加算した値「81」以下である。このため、S3110の判定の結果は「Yes」である。
仮に、JNL−Bの最小更新番号初期値が「85」であれば、これは、JNL−Cの最大更新番号303に「1」を加算した値「81」より大きい。このとき、更新番号303が「81」から「84」までのジャーナルレコードは、JNL−B及びJNL−Cのいずれにも存在しない。さらに、これらのジャーナルレコードのデータは、差分ビットマップ3201に反映されていない。したがって、差分ビットマップ3201は、ジャーナルレコードの不足を補うことができない。このため、ジャーナルBM差分形成に失敗して処理を終了する(S3115)。
次に、JNL−Cに格納されたジャーナルレコードのうち、更新番号303がJNL−Bの最小更新番号初期値より小さいジャーナルレコードを、リストア処理によって論理ボリュームCOPY1に反映させる(S3112)。これは、差分形成指示部Bがリストア処理に指示することによって実行される。このとき、JNL−Cに格納されたジャーナルレコードのうち、更新番号303がJNL−Bの最小更新番号初期値以上のジャーナルレコードは、論理ボリュームCOPY1に反映させずに、破棄する。
S3112のリストア処理によって、JNL−Cに格納されたジャーナルレコードのデータが、更新番号303の順に、COPY1に格納される。
図32の例では、JNL−Bの最小更新番号初期値が「40」であり、これより小さい更新番号303のジャーナルレコードは、JNL−Cに存在しない。このため、JNL−Cの全てのジャーナルレコードを、COPY1に反映させずに、破棄する。
次に、差分形成指示部Bは、差分形成部Bに、差分ビットマップ3201を使用したビットマップ差分形成を指示する(S3113)。具体的には、論理ボリュームdata1に含まれるデータのうち、対応する差分ビットマップ3201のビットの値が「1」であるデータを、論理ボリュームCOPY1に転送し、COPY1を更新する。その手順は、図27のS2706と同様である。
図32の例では、S3113が実行された後のCOPY1は、更新番号303が「40」から「89」までのジャーナルレコード(既に消去されている)によってリストア処理されたときと同じ状態になる。
次に、差分形成指示部Bは、差分形成部Bに、JNL−Bに格納されたジャーナルレコードを、JNL−Cに転送することを指示する(S3114)。
図32の例では、更新番号303が「90」から「150」までのジャーナルレコード(すなわち、JNL−Bに格納された全てのジャーナルレコード)が、JNL−Cに転送され、格納される。その後、S3112のリストア処理と同様にして、これらのジャーナルレコードに含まれるデータが論理ボリュームCOPY1に反映される。
以上で、ジャーナルBM差分形成を終了する(S3109)。以後、記憶システムB及びCは、非同期リモートコピーによるペアとして運用される。なお、S3101からS3114までのいずれかのステップで異常が発生した場合は、ジャーナルBM差分形成に失敗する。この場合、S3115と同様に、論理ボリュームdata1の全データを複製することによって、記憶システムB及びCの間にペアを形成する。
上記のジャーナルBM差分形成によれば、記憶システムA及びBのペアの状態をサスペンドにした後、直ちにホストコンピュータの運用を開始することができ、システムが停止している時間を短縮することができる。
さらに、ジャーナルBM差分形成によれば、更新されたデータのみを複製することによって記憶システムB及びCの間にペアを形成するため、ペアの形成に要する時間を短縮することができる。
さらに、ジャーナルBM差分形成は、所定の条件を満たしていれば、ジャーナルレコードの不足のためにジャーナル差分形成を実行できない場合でも、実行することができる。
本発明の第1の実施の形態のコンピュータシステムの機能ブロック図である。 本発明の第1の実施の形態のコンピュータシステムを構成する記憶システムの構成を示すブロック図である。 本発明の第1の実施の形態のジャーナルにおける更新情報の例の説明図である。 本発明の第1の実施の形態の更新情報とライトデータとの関係の説明図である。 本発明の第1の実施の形態の記憶システムが保持するボリューム情報の説明図である。 本発明の第1の実施の形態の別の記憶システムが保持するボリューム情報の説明図である。 本発明の第1の実施の形態のさらに別の記憶システムが保持するボリューム情報の説明図である。 本発明の第1の実施の形態の記憶システムが保持するペア情報の説明図である。 本発明の第1の実施の形態の別の記憶システムが保持するペア情報の説明図である。 本発明の第1の実施の形態のさらに別の記憶システムが保持するペア情報の説明図である。 本発明の第1の実施の形態の記憶システムが保持するグループ情報の説明図である。 本発明の第1の実施の形態の別の記憶システムが保持するグループ情報の説明図である。 本発明の第1の実施の形態のさらに別の記憶システムが保持するグループ情報の説明図である。 本発明の第1の実施の形態の記憶システムが保持するポインタ情報の説明図である。 本発明の第1の実施の形態のポインタ情報に対応するジャーナル論理ボリュームの構成の説明図である。 本発明の第1の実施の形態の別の記憶システムが保持するポインタ情報の説明図である。 本発明の第1の実施の形態のさらに別の記憶システムが保持するポインタ情報の説明図である。 本発明の第1の実施の形態の命令受信処理のフローチャートである。 本発明の第1の実施の形態のジャーナル作成処理のフローチャートである。 本発明の第1の実施の形態のジャーナルにおける更新情報の別の例の説明図である。 本発明の第1の実施の形態のリモートライト命令受信処理のフローチャートである。 本発明の第1の実施の形態のジャーナル複製処理のフローチャートである。 本発明の第1の実施の形態のジャーナルリード受信処理のフローチャートである。 本発明の第1の実施の形態のジャーナルリード処理のフローチャートである。 本発明の第1の実施の形態のジャーナル格納処理のフローチャートである。 本発明の第1の実施の形態のリストア処理のフローチャートである。 本発明の第1の実施の形態のビットマップ差分形成のフローチャートである。 本発明の第1の実施の形態のビットマップ差分形成の説明図である。 本発明の第2の実施の形態のジャーナル差分形成のフローチャートである。 本発明の第2の実施の形態のジャーナル差分形成の説明図である。 本発明の第3の実施の形態のジャーナルBM差分形成のフローチャートである。 本発明の第3の実施の形態のジャーナルBM差分形成の説明図である。
符号の説明
100 記憶システム
110 ホストアダプタ(CHA)
120 ディスクアダプタ(DKA)
130 キャッシュメモリ(CACHE)
140 共有メモリ(SM)
150 記憶装置(HDD)
160 スイッチ(SWITCH)
170 接続線
180 ホストコンピュータ
190、200 接続パス
210 命令受信部
220 リードライト部
230 論理ボリューム
240 ジャーナルリード(JNLRD)部
250 リストア部
260 差分形成指示部
265 差分形成部
300 更新情報
400 ボリューム情報
500 ペア情報
600 グループ情報
700 ポインタ情報

Claims (16)

  1. 第1のホストコンピュータと通信可能に接続された第1の記憶システムと、
    第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、
    前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備え、
    前記第1のホストコンピュータから前記第1の記憶システムに書き込まれたデータは、
    同期リモートコピーによって前記第2の記憶システムに転送され、
    非同期リモートコピーによって前記第3の記憶システムに転送されるコンピュータシステムにおいて、
    前記第2の記憶システムは、
    第1の差分ビットマップを備え、
    前記第2のホストコンピュータからデータが書き込まれると、
    前記第2のホストコンピュータからデータが書き込まれた領域に対応する前記第1の差分ビットマップのビットを更新し、
    前記第1の差分ビットマップの更新された前記ビットに対応する領域のデータを、前記第3の記憶システムに転送することを特徴とするコンピュータシステム。
  2. 前記第2の記憶システムが前記第1の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第3の記憶システムに転送する前に、
    前記第1の記憶システムは、前記第1のホストコンピュータから前記第1の記憶システムへのデータの書き込みを停止し、
    前記第2の記憶システムは、前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送を停止し、
    前記第1及び第3の記憶システムは、非同期リモートコピーによるデータの転送を完了することを特徴とする請求項1に記載のコンピュータシステム。
  3. 前記第1の記憶システムは、前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送が停止する前に、前記第1のホストコンピュータから前記第1の記憶システムへのデータの書き込みを停止することを特徴とする請求項2に記載のコンピュータシステム。
  4. 前記第1の記憶システムは、第2の差分ビットマップを備え、
    前記第2の記憶システムは、前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送を停止し、
    前記第1の記憶システムは、前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送が停止した後で前記第1のホストコンピュータからデータが書き込まれた領域に対応する前記第2の差分ビットマップのビットを更新し、
    前記第1及び第3の記憶システムは、非同期リモートコピーによるデータの転送を完了し、
    前記第2の記憶システムは、前記第2の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第3の記憶システムに転送することを特徴とする請求項1に記載のコンピュータシステム。
  5. 第1のホストコンピュータと通信可能に接続された第1の記憶システムと、
    第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、
    前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備えるコンピュータシステムにおいて;
    前記第1の記憶システムは、前記第1のホストコンピュータから前記データの書き込み命令を受信すると、
    当該データの書き込みの順序を識別する更新順序識別子と、当該データとを第1のジャーナルレコードとして格納し、
    当該更新順序識別子及び当該データを、同期リモートコピーによって前記第2の記憶システムに転送し、
    前記第1のジャーナルレコードを非同期リモートコピーによって前記第3の記憶システムに転送し;
    前記第2の記憶システムは、
    前記第1の記憶装置から転送された前記更新順序識別子及び前記データを第2のジャーナルレコードとして格納し、
    前記第1及び第2の記憶システム間の前記同期リモートコピーによるデータの転送を停止し、
    前記第2のホストコンピュータからデータを書き込まれると、当該書き込まれたデータと、前記第1の記憶システムから転送された更新順序識別子と連続する更新順序識別子とを、前記第2のジャーナルレコードとして格納し、
    前記第2のジャーナルレコードを、前記第3の記憶システムに転送し;
    前記第3の記憶システムは、
    前記第1の記憶システムから受信した前記第1のジャーナルレコードを格納し、
    前記第2の記憶システムから受信した前記第2のジャーナルレコードを格納し、
    前記格納した第1及び第2のジャーナルレコードのデータを、前記更新順序識別子の順に格納することを特徴とするコンピュータシステム。
  6. 前記第3の記憶システムは、
    前記第1の記憶システムから受信した前記第1のジャーナルレコードの格納が終了した後で、
    前記第2の記憶システムから受信した前記第2のジャーナルレコードを格納することを特徴とする請求項5に記載のコンピュータシステム。
  7. 前記第2の記憶システムは、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値以下である場合は、当該第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値より大きい更新順序識別子を有する前記第2のジャーナルレコードを、前記第3の記憶システムに転送し、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きい場合は、当該第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きい更新順序識別子を有する前記第2のジャーナルレコードを、前記第3の記憶システムに転送することを特徴とする請求項5に記載のコンピュータシステム。
  8. 前記第2の記憶システムは、
    第3の差分ビットマップを備え、
    前記第2のジャーナルレコードが消去されるとき、当該第2のジャーナルレコードに対応するデータが格納された領域に対応する前記第3の差分ビットマップのビットを更新し、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最小値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きいか、又は、前記第2の記憶システムに格納された第2のジャーナルレコードの更新順序識別子の最小値が、前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値に1を加算した値より大きい場合は、前記第3の差分ビットマップの更新された前記ビットに対応する領域のデータを、前記第3の記憶システムに転送し、
    前記第3の記憶システムは、前記第2のジャーナルレコードのデータを格納する前に、前記第2の記憶システムから転送された前記第3の差分ビットマップの更新された前記ビットに対応する領域のデータを格納することを特徴とする請求項7に記載のコンピュータシステム。
  9. 第1のホストコンピュータと通信可能に接続された第1の記憶システムと、
    第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、
    前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備え、
    前記第1のホストコンピュータから前記第1の記憶システムに書き込まれたデータは、
    同期リモートコピーによって前記第2の記憶システムに転送され、
    非同期リモートコピーによって前記第3の記憶システムに転送されるコンピュータシステムの制御方法であって、
    前記第2の記憶システムは、第1の差分ビットマップを備え、
    前記第2のホストコンピュータから前記第2の記憶システムにデータが書き込まれる手順と、
    前記第2のホストコンピュータからデータが書き込まれた領域に対応する前記第1の差分ビットマップのビットを更新する手順と、
    前記第1の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第2の記憶システムから前記第3の記憶システムに転送する手順と、を含むことを特徴とするコンピュータシステムの制御方法。
  10. 前記第1の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第2の記憶システムから前記第3の記憶システムに転送する手順の前に、
    前記第1のホストコンピュータから前記第1の記憶システムへのデータの書き込みを停止する手順と、
    前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送を停止する手順と、
    前記第1及び第3の記憶システム間の非同期リモートコピーによるデータの転送を完了する手順と、を実行することを特徴とする請求項9に記載のコンピュータシステムの制御方法。
  11. 前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送を停止する手順の前に、前記第1のホストコンピュータから前記第1の記憶システムへのデータの書き込みを停止する手順を実行することを特徴とする請求項10に記載のコンピュータシステムの制御方法。
  12. 前記第1の記憶システムは、第2の差分ビットマップを備え、
    前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送を停止する手順と、
    前記第1及び第2の記憶システム間の同期リモートコピーによるデータの転送が停止した後で前記第1のホストコンピュータからデータが書き込まれた領域に対応する前記第2の差分ビットマップのビットを更新する手順と、
    前記第1及び第3の記憶システム間の非同期リモートコピーによるデータの転送を完了する手順と、
    前記第2の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第2の記憶システムから前記第3の記憶システムに転送する手順と、を実行することを特徴とする請求項9に記載のコンピュータシステムの制御方法。
  13. 第1のホストコンピュータと通信可能に接続された第1の記憶システムと、
    第2のホストコンピュータ及び前記第1の記憶システムと通信可能に接続された第2の記憶システムと、
    前記第1及び第2の記憶システムと通信可能に接続された第3の記憶システムと、を備えるコンピュータシステムの制御方法であって、
    前記第1のホストコンピュータから前記データの書き込み命令を受信すると、前記第1の記憶システムが、当該データの書き込みの順序を識別する更新順序識別子と、当該データとを第1のジャーナルレコードとして格納する手順と、
    当該更新順序識別子及び当該データを、同期リモートコピーによって前記第1の記憶システムから前記第2の記憶システムに転送する手順と、
    前記第1のジャーナルレコードを、非同期リモートコピーによって前記第1の記憶システムから前記第3の記憶システムに転送する手順と、
    前記第1の記憶装置から前記第2の記憶システムに転送された前記更新順序識別子及び前記データを前記第2の記憶システムに第2のジャーナルレコードとして格納する手順と、
    前記第1及び第2の記憶システム間の前記同期リモートコピーによるデータの転送を停止する手順と、
    前記第2の記憶システムが、前記第2のホストコンピュータによって書き込まれたデータと、前記第1の記憶システムから転送された更新順序識別子と連続する前記更新順序識別子とを、前記第2のジャーナルレコードとして格納する手順と、
    前記第2のジャーナルレコードを、前記第2の記憶システムから前記第3の記憶システムに転送する手順と、
    前記第1の記憶システムから前記第3の記憶システムに転送された前記第1のジャーナルレコードを前記第3の記憶システムに格納する手順と、
    前記格納した第1のジャーナルレコードのデータを、前記更新順序識別子の順に、前記第3の記憶システムに格納する手順と、
    前記第2の記憶システムから前記第3の記憶システムに転送された前記第2のジャーナルレコードを前記第3の記憶システムに格納する手順と、
    前記格納した第2のジャーナルレコードのデータを、前記更新順序識別子の順に、前記第3の記憶システムに格納する手順と、を含むことを特徴とするコンピュータシステムの制御方法。
  14. 前記第1の記憶システムから前記第3の記憶システムに転送された前記第1のジャーナルレコードを前記第3の記憶システムに格納する手順を実行した後で、前記第2の記憶システムから前記第3の記憶システムに転送された前記第2のジャーナルレコードを前記第3の記憶システムに格納する手順を実行することを特徴とする請求項13に記載のコンピュータシステムの制御方法。
  15. 前記第2のジャーナルレコードを、前記第2の記憶システムから前記第3の記憶システムに転送する手順において、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値以下である場合は、当該第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値より大きい前記更新順序識別子を有する前記第2のジャーナルレコードを、前記第2の記憶システムから前記第3の記憶システムに転送し、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きい場合は、当該第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きい前記更新順序識別子を有する前記第2のジャーナルレコードを、前記第2の記憶システムから前記第3の記憶システムに転送することを特徴とする請求項13に記載のコンピュータシステムの制御方法。
  16. 前記第2の記憶システムは、第3の差分ビットマップを備え、
    前記第2のジャーナルレコードが消去されるとき、当該第2のジャーナルレコードに対応するデータが格納された領域に対応する前記第3の差分ビットマップのビットを更新する手順と、
    前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最小値が、前記第1の記憶システムから前記第2の記憶システムに転送された更新順序識別子の最大値より大きいか、又は、前記第2の記憶システムに格納された第2のジャーナルレコードの更新順序識別子の最小値が、前記第3の記憶システムに格納された第1のジャーナルレコードの更新順序識別子の最大値に1を加算した値より大きい場合は、前記第3の差分ビットマップの更新された前記ビットに対応する領域のデータを、前記第2の記憶システムから前記第3の記憶システムに転送する手順と、を含み、
    前記格納した第2のジャーナルレコードのデータを前記更新順序識別子の順に前記第3の記憶システムに格納する手順を実行する前に、前記第2の記憶システムから転送された前記第3の差分ビットマップの更新された前記ビットに対応する領域のデータを前記第3の記憶システムに格納する手順を実行することを特徴とする請求項15に記載のコンピュータシステムの制御方法。
JP2004304648A 2004-10-19 2004-10-19 コンピュータシステム及びコンピュータシステムの制御方法 Pending JP2006119745A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004304648A JP2006119745A (ja) 2004-10-19 2004-10-19 コンピュータシステム及びコンピュータシステムの制御方法
US11/015,194 US7590809B2 (en) 2004-10-19 2004-12-17 Remote copy system
EP04030285A EP1650659A1 (en) 2004-10-19 2004-12-21 Remote copy system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004304648A JP2006119745A (ja) 2004-10-19 2004-10-19 コンピュータシステム及びコンピュータシステムの制御方法

Publications (1)

Publication Number Publication Date
JP2006119745A true JP2006119745A (ja) 2006-05-11

Family

ID=35447251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004304648A Pending JP2006119745A (ja) 2004-10-19 2004-10-19 コンピュータシステム及びコンピュータシステムの制御方法

Country Status (3)

Country Link
US (1) US7590809B2 (ja)
EP (1) EP1650659A1 (ja)
JP (1) JP2006119745A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199426A (ja) * 2008-02-22 2009-09-03 Nec Corp 論理ディスク再構築装置、ディスクアレイ装置、及び論理ディスク再構築方法
JP2013186557A (ja) * 2012-03-06 2013-09-19 Nec Corp データベースの非同期レプリケーション方式
JP2013232174A (ja) * 2012-05-01 2013-11-14 Hitachi Ltd データマイグレーション時のトラフィック削減
JP2014041454A (ja) * 2012-08-22 2014-03-06 Hitachi Systems Ltd ディザスタリカバリシステム、ディザスタリカバリ方法、およびプログラム
EP2871576A1 (en) 2013-11-11 2015-05-13 Fujitsu Limited Data allocation method, data allocation program, and information processing system
JP2017167602A (ja) * 2016-03-14 2017-09-21 富士通株式会社 ストレージシステム
JP2018010495A (ja) * 2016-07-14 2018-01-18 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
US11321005B2 (en) 2017-11-28 2022-05-03 Nec Platforms, Ltd. Data backup system, relay site storage, data backup method, and control program for relay site storage

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005026773D1 (de) * 2005-03-09 2011-04-21 Sap Ag Protokollierung von systemübergreifenden Aktivitäten in einem verteilten System
JP2006293850A (ja) * 2005-04-13 2006-10-26 Hitachi Ltd リモートコピーシステムおよびリモートコピー方法
US7603581B2 (en) * 2006-03-17 2009-10-13 International Business Machines Corporation Remote copying of updates to primary and secondary storage locations subject to a copy relationship
US9383938B2 (en) * 2006-04-18 2016-07-05 International Business Machines Corporation Method, system, and apparatus for re-conveying input/output operations utilizing a sequential-access data storage device secondary communication port
KR101223642B1 (ko) * 2007-10-19 2013-01-17 삼성전자주식회사 방송 서비스와 관련된 부가 데이터 전송 방법 및 그장치와, 방송 서비스와 관련된 부가 데이터 수신 방법 및그 장치
JP2009104488A (ja) * 2007-10-24 2009-05-14 Hitachi Ltd ストレージ装置及びその制御方法並びにストレージシステム
JP2009230558A (ja) * 2008-03-24 2009-10-08 Seiko Epson Corp 印刷システム、プリンタ、及びドライバプログラム
JP2010020570A (ja) * 2008-07-11 2010-01-28 Hitachi Ltd 情報処理システム及びデータ回復方法
US10025523B1 (en) * 2009-12-28 2018-07-17 EMC IP Holding Company LLC Techniques for processing data requests directed to virtualized devices
WO2011125127A1 (ja) * 2010-04-07 2011-10-13 株式会社日立製作所 非同期リモートコピーシステム、及び、記憶制御方法
US9317423B2 (en) * 2013-01-07 2016-04-19 Hitachi, Ltd. Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof
US9213753B2 (en) * 2013-11-18 2015-12-15 Hitachi, Ltd. Computer system
US9665633B2 (en) 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
DE112018001985T5 (de) * 2017-04-12 2019-12-19 Sumitomo Electric Industries, Ltd. Relais-Einrichtung, Transferverfahren und Computerprogramm
US11093170B2 (en) * 2019-04-02 2021-08-17 EMC IP Holding Company LLC Dataset splitting based on workload footprint analysis
US11422904B2 (en) * 2020-11-27 2022-08-23 Vmware, Inc. Identifying fault domains for delta components of a distributed data object

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4689137B2 (ja) * 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US7194590B2 (en) * 2001-02-28 2007-03-20 Hitachi, Ltd. Three data center adaptive remote copy
US7130975B2 (en) 2003-06-27 2006-10-31 Hitachi, Ltd. Data processing system
JP4021823B2 (ja) 2003-09-01 2007-12-12 株式会社日立製作所 リモートコピーシステム及びリモートコピーの方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199426A (ja) * 2008-02-22 2009-09-03 Nec Corp 論理ディスク再構築装置、ディスクアレイ装置、及び論理ディスク再構築方法
JP2013186557A (ja) * 2012-03-06 2013-09-19 Nec Corp データベースの非同期レプリケーション方式
JP2013232174A (ja) * 2012-05-01 2013-11-14 Hitachi Ltd データマイグレーション時のトラフィック削減
JP2014041454A (ja) * 2012-08-22 2014-03-06 Hitachi Systems Ltd ディザスタリカバリシステム、ディザスタリカバリ方法、およびプログラム
EP2871576A1 (en) 2013-11-11 2015-05-13 Fujitsu Limited Data allocation method, data allocation program, and information processing system
JP2017167602A (ja) * 2016-03-14 2017-09-21 富士通株式会社 ストレージシステム
JP2018010495A (ja) * 2016-07-14 2018-01-18 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
US11321005B2 (en) 2017-11-28 2022-05-03 Nec Platforms, Ltd. Data backup system, relay site storage, data backup method, and control program for relay site storage

Also Published As

Publication number Publication date
US7590809B2 (en) 2009-09-15
US20060085609A1 (en) 2006-04-20
EP1650659A1 (en) 2006-04-26

Similar Documents

Publication Publication Date Title
JP2006119745A (ja) コンピュータシステム及びコンピュータシステムの制御方法
EP2120147B1 (en) Data mirroring system using journal data
JP4124348B2 (ja) 記憶システム
EP1624376B1 (en) Storage system and data processing system
JP4476683B2 (ja) データ処理システム
EP2120146B1 (en) Data mirroring system using journal data
JP4887893B2 (ja) 計算機システム及び計算機システムの制御方法
US7330861B2 (en) Remote copying system and method of controlling remote copying
US7827367B2 (en) Backup control method for acquiring plurality of backups in one or more secondary storage systems
US6282610B1 (en) Storage controller providing store-and-forward mechanism in distributed data storage system
US6754792B2 (en) Method and apparatus for resynchronizing paired volumes via communication line
JP5486793B2 (ja) リモートコピー管理システム、方法及び装置
JP2005084953A (ja) データ処理システム
JP5331892B2 (ja) ストレージシステム及びストレージシステムにおけるデータ複製方法
JP2005309793A (ja) データ処理システム
JP4124374B2 (ja) 記憶システム
US20060259722A1 (en) Remote copy system
JP4249240B2 (ja) 記憶システム
JP2006065629A (ja) データ処理システム及び方法
JP4618777B2 (ja) データ処理システム及びそのデータ処理システムに備えられる記憶サブシステム
JP2021174392A (ja) リモートコピーシステム及びリモートコピー管理方法
JP4249247B2 (ja) 記憶システム