JP2007066162A - ストレージシステム及びストレージシステムの管理方法 - Google Patents
ストレージシステム及びストレージシステムの管理方法 Download PDFInfo
- Publication number
- JP2007066162A JP2007066162A JP2005253440A JP2005253440A JP2007066162A JP 2007066162 A JP2007066162 A JP 2007066162A JP 2005253440 A JP2005253440 A JP 2005253440A JP 2005253440 A JP2005253440 A JP 2005253440A JP 2007066162 A JP2007066162 A JP 2007066162A
- Authority
- JP
- Japan
- Prior art keywords
- data
- control device
- volume
- storage control
- journal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2058—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2069—Management of state, configuration or failover
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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/2076—Synchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/855—Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
Abstract
【課題】 簡易な構成で、システムの冗長性を確保する。
【解決手段】 正記憶制御装置1と第1副記憶制御装置2とは同期方式で、正記憶制御装置1と第2副記憶制御装置3とは非同期読出し方式で、接続される。正記憶制御装置1は、更新データに管理番号(SEQ#)を設定し(S3)、ジャーナルデータを保存する(S4)。正記憶制御装置1は、更新データを第1副記憶制御装置2に送信する(S5)。第1副記憶制御装置2は、更新データを第1副ボリューム2Aに書き込み(S6)、差分をビットマップテーブル2B,2Cで管理する(S7)。正記憶制御装置1が停止すると(S13)、第1副記憶制御装置2が新たに正記憶制御装置となる。第1副記憶制御装置2から第2副記憶制御装置3に差分コピーが行われる(S16)。
【選択図】 図1
【解決手段】 正記憶制御装置1と第1副記憶制御装置2とは同期方式で、正記憶制御装置1と第2副記憶制御装置3とは非同期読出し方式で、接続される。正記憶制御装置1は、更新データに管理番号(SEQ#)を設定し(S3)、ジャーナルデータを保存する(S4)。正記憶制御装置1は、更新データを第1副記憶制御装置2に送信する(S5)。第1副記憶制御装置2は、更新データを第1副ボリューム2Aに書き込み(S6)、差分をビットマップテーブル2B,2Cで管理する(S7)。正記憶制御装置1が停止すると(S13)、第1副記憶制御装置2が新たに正記憶制御装置となる。第1副記憶制御装置2から第2副記憶制御装置3に差分コピーが行われる(S16)。
【選択図】 図1
Description
本発明は、ストレージシステム及びストレージシステムの管理方法に関する。
ストレージシステムは、例えば、ディスクアレイサブシステム等と呼ばれる記憶制御装置を少なくとも1つ備えており、ホストコンピュータ(以下、「ホスト」)に、データストレージサービスを提供する。記憶制御装置は、多数のディスクドライブをアレイ状に配設し、RAID(Redundant Array of Independent Disks)に基づく記憶領域を構築することができる。
また、いわゆるディザスタリカバリシステムとして知られているように、広域災害等に備えて、メインサイトから遠く離れた場所にバックアップサイトを設置することも可能である。バックアップサイトには、バックアップ用の記憶制御装置が設置され、この記憶制御装置にはメインサイトと同一のデータ群が記憶される。これにより、メインサイトが障害等で停止した場合でも、バックアップサイトによってデータ処理サービスを継続することができる。しかし、メインサイトが復旧する前に、唯一のバックアップサイトに障害が発生した場合には、データ処理サービスをホストに提供することができない。
そこで、バックアップサイトを複数設け、メインサイトが停止した場合でも、システムの冗長性を確保できるようにした技術も提案されている(特許文献1)。この文献に記載の従来技術では、その段落番号0008〜0010に記載されているように、正記憶制御装置に複数の副記憶制御装置をそれぞれ接続する。正記憶制御装置の記憶内容が更新された場合、この更新内容は直ちに一方の副記憶制御装置に送信され、一方の副記憶制御装置の記憶内容に反映される。また、正記憶制御装置の記憶内容はジャーナルデータとして保存され、他方の副記憶制御装置は、このジャーナルデータを適宜読出して、自己の記憶内容に反映させる。そして、一方の副記憶制御装置は、正記憶制御装置からのデータ更新命令に基づいてジャーナルデータを作成し、このジャーナルデータを保存する。正記憶制御装置が停止した場合、他方の副記憶制御装置は、一方の副記憶制御装置からジャーナルデータを読出し、自己の記憶内容を更新させる。
他の従来技術としては、プライマリサイトの第1記憶装置の記憶内容とローカルサイトの第3記憶装置の記憶内容とをリモートコピーによって常時同期させておき、一方、第1記憶装置の記憶内容とリモートサイトの第2記憶装置の記憶内容とを周期的に一致させておく技術も知られている(特許文献2)。そして、プライマリサイトが被災した場合は、第1記憶装置の記憶内容と第2記憶装置の記憶内容との差分データのみを、第3記憶装置から第2記憶装置にリモートコピーさせる。
特開2005−84953号公報
特開2005−78453号公報
前記第1,第2の文献に記載の技術では、正記憶制御装置が停止した場合でも、複数の記憶制御装置によって冗長性を確保することができ、ストレージシステムの信頼性が向上する。しかし、前記第1の文献では、一方の副記憶制御装置は、データ更新が行われるたびに、ジャーナルデータを生成する必要があるため、一方の副記憶制御装置の負荷が増大する。また、一方の記憶制御装置内にジャーナルデータを保存するためのボリュームを用意する必要があり、構造が複雑化するという問題がある。
前記第2の文献に記載の技術では、第1記憶装置内で正ボリュームの複製ボリュームを作成し、この複製されたボリュームの記憶内容と第2記憶装置内のボリュームの記憶内容とを一致させる。従って、ボリューム複製処理等が必要であり、第1記憶装置の記憶内容と第2記憶装置の記憶内容とが不一致となる期間が比較的長くなる。また、正ボリュームと同容量の複製用ボリュームを予め用意しておく必要がある。
本発明は上記課題に鑑みてなされたもので、その目的は、一つの記憶制御装置が停止した場合でも、複数の記憶制御装置によって冗長性を確保し、かつ、比較的簡易な構成でデータの整合性を維持することができるようにしたストレージシステム及びストレージシステムの管理方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムでは、第1記憶制御装置に第2記憶制御装置及び第3記憶制御装置がそれぞれ接続されている。そして、第1記憶制御装置は、第1データボリュームと、この第1データボリュームの更新履歴を管理する第1ジャーナルボリュームと、上位装置が第1データボリュームにライトデータを書き込んだ場合に、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第1ジャーナルボリュームに記憶させ、かつ、ライトデータを第2記憶制御装置に送信させる第1制御部とを備える。第2記憶制御装置は、第1データボリュームに関係づけられる第2データボリュームと、第1制御部から受信したライトデータを第2データボリュームに記憶させ、かつ、ライトデータの記憶位置を差分管理テーブルに記憶させる第2制御部とを備える。第3記憶制御装置は、第1データボリュームに関係づけられる第3データボリュームと、第1ジャーナルボリュームに関係づけられる第2ジャーナルボリュームと、第1ジャーナルボリュームからジャーナルデータを読み出して第2ジャーナルボリュームに記憶させ、かつ、第2ジャーナルボリュームに記憶されたジャーナルデータに基づいて第3データボリュームの記憶内容を更新させる第3制御部とを備える。そして、第1記憶制御装置から第2記憶制御装置に切り替えられた場合、第2制御部は、差分管理テーブルに基づいて、差分データを第3記憶制御装置に送信し、差分データを第3ボリュームに記憶させる。
即ち、第1記憶制御装置は、上位装置からライトデータを受信すると、このライトデータ(アドレス情報も含む)に管理番号を設定してジャーナルデータを保存すると共に、このライトデータを第2記憶制御装置に送信する。管理番号とは、データ更新の順序を管理するための番号であり、例えば、データ更新のたびに一つずつ増加する連続した番号として生成される。第2記憶制御装置は、第1データボリュームの更新と同期して、第2データボリュームを更新させる。第3記憶制御装置は、第1ジャーナルボリュームに記憶されているジャーナルデータを適当なタイミングで取得することにより、第3データボリュームを更新させる。従って、第1データボリュームと第2データボリュームとの内容は同期しており、第1データボリュームまたは第2データボリュームと第3データボリュームとは、その記憶内容に差異が生じる可能性がある。第2記憶制御装置は、ライトデータの記憶位置を差分管理テーブルに記憶させる。差分管理テーブルには、所定の時点以降において、第2データボリュームに行われたデータ更新が管理される。
災害等によって第1記憶制御装置の機能が停止したような場合、第1記憶制御装置から第2記憶制御装置に切り替えられ、第2記憶制御装置がメイン記憶制御装置として使用される。第2データボリュームには、第1データボリュームと同一内容が記憶されているため、第2記憶制御装置は、第1記憶制御装置が行っていたストレージサービスを引き続き提供することができる。第2制御部は、差分管理テーブルに記憶されている内容に基づいて差分データを検出し、この差分データを第3記憶制御装置に送信させる。第3記憶制御装置は、受信された差分データを第3ボリュームに記憶させる。これにより、第2データボリュームのバックアップが形成され、ストレージシステムの冗長性が維持される。
一つの実施形態では、第2制御部は、第2データボリュームを正ボリューム、第3データボリュームを副ボリュームとするコピーペアが形成された場合に、第1記憶制御装置から第2記憶制御装置への切替が完了した旨を上位装置に通知する。即ち、第2データボリュームと第3データボリュームとの記憶内容が一致するよりも前に、上位装置に切替完了を通知する。これにより、切替時間を短くすることができ、使い勝手が向上する。
一つの実施形態では、第1記憶制御装置から第2記憶制御装置に切り替えられた場合、第2制御部は、上位装置が第2データボリュームにライトデータを書き込むと、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第3ジャーナルボリュームに記憶させる。そして、第3制御部は、第3ジャーナルボリュームからジャーナルデータを読み出して第2ジャーナルボリュームに記憶させ、かつ、第2ジャーナルボリュームに記憶されたジャーナルデータに基づいて第3データボリュームの記憶内容を更新させる。即ち、第1記憶制御装置から第2記憶制御装置に切り替えられた場合、第2記憶制御装置は、第1記憶制御装置が行っていたと同様に、ジャーナルデータを生成して第3ジャーナルボリュームに記憶させる。第3記憶制御装置は、第1記憶制御装置に対して行っていたと同様に、第3ジャーナルボリュームからジャーナルデータを読み出して、第3データボリュームの記憶内容を更新させる。第2記憶制御装置がジャーナル管理を開始する場合、差分管理テーブルは不要となる。従って、差分管理テーブルを消去し、メモリ資源の空き領域を増大させることもできる。
一つの実施形態では、差分管理テーブルは複数設けられており、第2制御部は、複数の差分管理テーブルを切り替えながら使用する。例えば、第1差分管理テーブルと第2差分管理テーブルとの2つのテーブルを予め用意しておき、最初は第1差分管理テーブルを使用して差分を管理し、第1差分管理テーブルが満杯になった場合に、第1差分管理テーブルから第2差分管理テーブルに切り替えることもできる。この場合、第1差分管理テーブルの記憶内容は、それを保持する必要が無くなった時点で消去可能である。これにより、管理可能な差分データ量を増大させることができる。
一つの実施形態では、差分管理テーブルは複数設けられており、第2制御部は、第1記憶制御装置から第2記憶制御装置に切り替えられた場合、複数の差分管理テーブルのそれぞれの記憶内容に基づいて差分データを検出し、この検出された差分データを第3記憶制御装置に送信して、第3ボリュームに記憶させる。複数の差分管理テーブルを交互に切替ながら使用する場合、切替前の差分管理テーブルの記憶内容が不要となる前に、第1記憶制御装置から第2記憶制御装置への切替が行われる可能性がある。この場合、現在使用中の差分管理テーブルの記憶内容と前回使用されていた差分管理テーブルに記憶されている内容とを合計して、差分データを検出する。これにより、第2データボリュームと第3データボリュームとの記憶内容を一致させることができる。
一つの実施形態では、第1制御部は、上位装置から受信したライトデータに設定される管理番号の値が予め設定されている切替閾値に達した場合に、第2制御部に切替指示を発行し、かつ、第3制御部によって第1ジャーナルボリュームから読み出されたジャーナルデータに設定されている管理番号の値が予め設定されている消去閾値に達した場合に、第2制御部に消去指示を発行する。そして、第2制御部は、切替指示を受信した場合に、複数の差分管理テーブルのうち使用する差分管理テーブルを切り替え、消去指示を受信した場合に、複数の差分管理テーブルのうち現在使用中の差分管理テーブルの前に使用されていた差分管理テーブルの記憶内容を消去させる。
切替閾値は、複数の差分管理テーブルを切り替えさせるための切替指示の発行に使用される。消去閾値は、前回使用されていた差分管理テーブルの記憶内容を消去させるための消去指示の発行に使用される。切替閾値と消去閾値とは、それぞれ異なる値に設定してもよいし、同一の値に設定してもよい。両閾値を同一値に設定する場合は、記憶量を低減することができる。
なお、一つの実施形態では、第1,第2及び第3制御部は、第1,第2及び第2データボリュームの対応関係と第1,第2ジャーナルボリュームの対応関係とをそれぞれ予め把握している。従って、第1記憶制御装置から前記第2記憶制御装置に切り替える場合に、第2記憶制御装置は、第2データボリュームと第3データボリュームとのコピーペアを早期に形成することができ、切替時間を短くすることができる。
これに代えて、他の実施形態では、第2制御部は、第1データボリュームと第2データボリュームとの対応関係を予め把握していおり、第3制御部は、第1データボリュームと第3データボリュームとの対応関係及び第1ジャーナルボリュームと第2ジャーナルボリュームとの対応関係を予め把握している。第1記憶制御装置から第2記憶制御装置に切り替える場合に、第2制御部は、第3制御部から第2データボリュームと第3データボリュームとの対応関係を確認するための確認情報を取得し、この取得した確認情報に基づいて、第2データボリュームと第3データボリュームとによりコピーペアを形成する。即ち、第2制御部は、第3制御部から取得した確認情報に基づいて、第2ボリュームと同期させるべき第3ボリュームの存在を確認し、コピーペアを形成する。これにより、第2制御部及び第3制御部は、それぞれ第1記憶制御装置との対応関係のみを保持すればよく、対応関係を記憶するための記憶量を低減することができる。
本発明の他の観点に従うストレージシステムの管理方法は、第1記憶制御装置に第2記憶制御装置及び第3記憶制御装置がそれぞれ接続されたストレージシステムを管理するための方法であって、第1記憶制御装置の有する第1データボリュームに上位装置がライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、生成されたジャーナルデータを第1記憶制御装置の有する第1ジャーナルボリュームに記憶させるステップと、ライトデータを第1記憶制御装置から第2記憶制御装置に送信させるステップと、第1記憶制御装置から第2記憶制御装置に送信されたライトデータを第2記憶制御装置の有する第2データボリュームに記憶させるステップと、ライトデータが第2データボリュームに記憶された記憶位置を差分管理テーブルに登録させるステップと、所定のタイミングが到来した場合に、第3記憶制御装置から第1記憶制御装置にアクセスし、第1ジャーナルボリュームに記憶されているジャーナルデータを取得するステップと、取得されたジャーナルデータを第3記憶制御装置の有する第2ジャーナルボリュームに記憶させるステップと、第2ジャーナルボリュームに記憶されたジャーナルデータに基づいて、第3記憶制御装置の有する第3データボリュームの記憶内容を更新させるステップと、を含む。
さらに、第1記憶制御装置に障害が発生したか否かを監視するステップと、第1記憶制御装置に障害が発生した場合に、差分管理テーブルの記憶内容に基づいて、差分データを第3記憶制御装置に送信させ、差分データを第3ボリュームに記憶させるステップと、第2データボリュームを正ボリュームとし、第3データボリュームを副ボリュームとするコピーペアを形成させるステップと、コピーペアが形成された場合に、第1記憶制御装置から第2記憶制御装置への切替が完了した旨を上位装置に通知するステップと、上位装置が第2データボリュームにライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、生成されたジャーナルデータを第2記憶制御装置の有する第3ジャーナルボリュームに記憶させるステップと、所定のタイミングが到来した場合に、第3記憶制御装置から第2記憶制御装置にアクセスし、第3ジャーナルボリュームに記憶されているジャーナルデータを取得するステップと、取得されたジャーナルデータを第2ジャーナルボリュームに記憶させるステップと、第2ジャーナルボリュームに記憶されたジャーナルデータに基づいて、第3データボリュームの記憶内容を更新させるステップと、を含むこともできる。
本発明の手段、機能、ステップの少なくとも一部は、マイクロコンピュータにより読み込まれて実行されるコンピュータプログラムとして構成できる場合がある。このようなコンピュータプログラムは、例えば、ハードディスクや光ディスク等のような記憶媒体に固定して流通させることができる。または、インターネット等のような通信ネットワークを介して、コンピュータプログラムを供給することもできる。
以下、図面に基づき、本発明の実施の形態を説明する。図1は、本実施形態の全体概念を示す説明図である。図1(a)は、通常時の状態を示す。ストレージシステムは、例えば、「第1記憶制御装置」に該当する正記憶制御装置1と、「第2記憶制御装置」に該当する第1副記憶制御装置2と、「第3記憶制御装置」に該当する第2副記憶制御装置3と、「上位装置」に該当するホストコンピュータ4とを備えて構成可能である。
正記憶制御装置1は、正ボリューム(P-VOL)1A及び正ジャーナルボリューム(P-JV)1Bとを備えている。「第1データボリューム」に該当する正ボリューム1Aは、ホスト4によって使用されるデータを記憶しており、ホスト4によって更新される。「第1ジャーナルボリューム」に該当する正ジャーナルボリューム1Bは、正ボリューム1Aの更新履歴を管理する。正ジャーナルボリューム1Bに記憶されるジャーナルデータは、例えば、更新データ(ライトデータ)と管理番号(SEQ#)とを対応付けることにより、構成される。
第1副記憶制御装置2は、正記憶制御装置1と通信可能に接続されており、「第2データボリューム」に該当する第1副ボリューム(S-VOL)2Aと複数の差分管理テーブル2B,2Cとを備えている。なお、図中では、差分管理テーブルを「BM(BitMap)」と表示する。第1副ボリューム2Aは、正ボリューム1Aとコピーペアを形成しており、正ボリューム1Aの更新内容が直ちに反映されるようになっている。
第1差分管理テーブル2B,第2差分管理テーブル2Cは、所定時点(差分管理が開始された時点)以降において、第1副データボリューム2Aに書き込まれるライトデータの位置をそれぞれ管理する。記憶位置の管理単位としては、例えば、ブロック単位、トラック単位等を挙げることができる。例えば、あるブロックについてデータが更新された場合、そのブロックに対応するビットに「1」を設定することができる。これにより、第1副データボリューム2Aのどの部分でデータが更新された否かを管理できる。
ここで、第1副記憶制御装置2は、例えば、正記憶制御装置1に比較的近い場所に設置することができる。正記憶制御装置1へのデータ更新内容は、直ちに第1副記憶制御装置2に送信される。第1副記憶制御装置2と正記憶制御装置1との間では、いわゆる同期方式でデータ書き込みが行われるようになっている。正記憶制御装置1にライトコマンドが発行された場合、正記憶制御装置1は、このライトコマンド及びライトデータを第1副記憶制御装置2に転送し、第1副記憶制御装置2からの処理完了報告を得てから、ホスト4に処理完了を報告する。従って、ライトコマンドを同期方式で処理する場合、第1副記憶制御装置2から正記憶制御装置1への応答遅延に注目する必要がある。正記憶制御装置1と第1副記憶制御装置2とが比較的近い場所に設置されている場合、両者の間の遅延は事実上無視することができる。
第2副記憶制御装置3は、正記憶制御装置1と通信可能に接続されており、第2副ボリューム3A及び副ジャーナルボリューム3Bを備えている。第2副記憶制御装置3は、例えば、正記憶制御装置1の設置場所から遠く離れた場所に設けることができる。第2副ボリューム3Aは「第3データボリューム」に、副ジャーナルボリューム3Bは「第2ジャーナルボリューム」に、それぞれ該当する。第2副記憶制御装置3は、所定のタイミングで随時、正記憶制御装置1のジャーナルボリューム1Bからジャーナルデータを読出し、副ジャーナルボリューム3Bに記憶させる。
第2副記憶制御装置3は、副ジャーナルボリューム3Bに記憶されたジャーナルデータに基づいて、第2副ボリューム3Aの記憶内容を更新させる。従って、正ボリューム1Aの記憶内容と第1副ボリューム2Aの記憶内容とが事実上リアルタイムで同期しているのに対して、正ボリューム1Aの記憶内容と第2副ボリューム3Aの記憶内容との間には差分が生じる。第2副記憶制御装置3が正記憶制御装置1から全てのジャーナルデータを読み出すことにより、正ボリューム1Aの記憶内容と第2副ボリューム3Aの記憶内容とは一致する。
第1副記憶制御装置2と第2副記憶制御装置3とも通信可能に接続されている。但し、正記憶制御装置1が正常に稼動している通常時には、各副記憶制御装置2,3間で特別な通信を行う必要はない。各記憶制御装置1,2,3間を接続する通信ネットワークとしては、例えば、SAN(Storage Area Network)やLAN(Local Area Network)等を使用可能である。
図1(b)は、正記憶制御装置1に障害が発生して停止した場合を示す。第1副記憶制御装置2は、停止した正記憶制御装置1に代わって、正記憶制御装置となる。正記憶制御装置となった記憶制御装置2は、第2副記憶制御装置3とデータ通信を行い、ボリューム2Aとボリューム3Aとによってコピーペアを形成させる。
全体動作について説明する。まず、図1(a)に示すように、ホスト4は、正ボリューム1Aにアクセスしてデータを書き込む(S1)。正記憶制御装置1は、ホスト4から受信した更新データ(ライトデータ)を正ボリューム1Aに書き込む(S2)。
正記憶制御装置1は、更新データに管理番号(SEQ#)を設定する(S3)。この管理番号は、更新の順序を管理するための番号であり、正ボリューム1Aに更新データが書き込まれるたびに自動的に値が増加する。正記憶制御装置1は、管理番号と更新データとを対応付けてジャーナルデータを生成し、このジャーナルデータを正ジャーナルボリューム1Bに記憶させる(S4)。
また、正記憶制御装置1は、ホスト4から受信した更新データ5を、第1副記憶制御装置2に送信させる(S5)。この更新データ5には、データ本体と、このデータ本体を格納すべきアドレスとが含まれている。第1副記憶制御装置2は、更新データ5を第1副ボリューム2Aに書き込む(S6)。第1副記憶制御装置2は、第1副ボリューム2Aの更新位置を、差分管理テーブル2B,2Cのうちカレントテーブルとして選択されている方に記憶させる(S7)。各テーブル2B,2Cは、正記憶制御装置1からの切替指示に基づいて、交互に切り替えられて使用される。
第1副記憶制御装置2は、更新データを第1副ボリューム2Aに書き込むと、書き込み完了を正記憶制御装置1に報告する。これにより、正記憶制御装置1は、正ボリューム1Aへのデータ更新が完了した旨をホスト4に報告する。
一方、第2副記憶制御装置3は、例えば、比較的短い周期で正記憶制御装置1にアクセスし、正ジャーナルボリューム1Bからジャーナルデータ6を読み出す(S8)。第2副記憶制御装置3は、この読出したジャーナルデータ6を副ジャーナルボリューム3Bに記憶させる(S9)。第2副記憶制御装置3は、ジャーナルデータ6の順番を確認してから、第2副ボリューム3Aに更新データを反映させる(S10)。第2副記憶制御装置3は、副ジャーナルボリューム3Bによって、管理番号を管理する(S11)。
正記憶制御装置1は、第2副記憶制御装置3によって正ジャーナルボリューム1Bから取り出されたジャーナルデータ6の管理番号を監視している。この取り出されたジャーナルデータ6の管理番号が、予め設定されている所定の切替閾値に達した場合、正記憶制御装置1は、第1副記憶制御装置2に切替指示を与える(S12)。この切替指示を受信すると、第1副記憶制御装置2は、現在使用中の差分管理テーブルを別の差分管理テーブルに切り替える。
図1(b)に示すように、何らかの障害が発生して正記憶制御装置1が停止した場合は(S13)、第1副記憶制御装置が新たに正記憶制御装置となる。しかし、説明の便宜上、以下の説明でも、そのまま第1副記憶制御装置2と呼ぶ。従って、ホスト4のアクセス先は、正記憶制御装置1から第1副記憶制御装置2に切り替えられる(S14)。正記憶制御装置1に接続されるホスト4と第1副記憶制御装置2に接続されるホスト4とが異なる場合、正記憶制御装置1に接続されるホスト4から第1副記憶制御装置2に接続されるホスト4に、使用するホストを切り替えることもできる。
第1副記憶制御装置2は、第1差分管理テーブル2Bの記憶内容と第2差分管理テーブル2Cの記憶内容との論理和をとってマージし(S15)、差分データを検出する。そして、第2副記憶制御装置2は、この検出された差分データを第1副ボリューム2Aから読出して、第2副記憶制御装置3に送信させる(S16)。第2副記憶制御装置3は、受信した差分データを第2副ボリューム3Aに記憶させる。
ボリューム2A,3A間での差分コピーが完了すると、第1副ボリューム2Aと第2副ボリューム3Aの記憶内容が一致する。第1副記憶制御装置2は、差分コピーが完了すると、ホスト4に、記憶装置間の切替が完了した旨を報告する。また、詳細は後述するが、第1副記憶制御装置2は、正記憶制御装置1と同様に動作するべく、ジャーナル管理を開始する。第1副記憶制御装置2は、ホスト4からライトコマンドを受信すると、ジャーナルデータを作成し、これを保存する。
第2副記憶制御装置3は、正記憶制御装置となった第1副記憶制御装置2にアクセスしてジャーナルデータを取り出し、このジャーナルデータに基づいて、第2副ボリューム3Aの記憶内容を更新させる。
このように本実施形態では、正記憶制御装置1,第1副記憶制御装置2及び第2副記憶制御装置3をそれぞれ相互に接続し、正ボリューム1Aの記憶内容を第1副ボリューム2A及び第2副ボリューム3Aにそれぞれ記憶させ、正記憶制御装置1が停止した場合には、第1副記憶制御装置2と第2副記憶制御装置3とでシステムの冗長性を確保する構成とした。従って、信頼性が向上する。
本実施形態では、第1副記憶制御装置2は、所定時点以降における第1副ボリューム2Aのデータ更新を差分管理テーブル2B,2Cによって管理し、正記憶制御装置1の停止時には、差分データを第2副記憶制御装置3に転送して記憶させる構成とした。従って、第1副ボリューム2Aと第2副ボリューム3Aとの間でいわゆる全コピーを行う場合に比べて、ペア形成時間を短くすることができる。また、第1副記憶制御装置2は、第2副記憶制御装置3が第2副ボリューム3Aをどこまで更新したかを管理する仕組みを備えず、所定時点以降の差分データを送信する。従って、制御構造を簡素化できる。
本実施形態では、正記憶制御装置となる第1副記憶制御装置2と第2副記憶制御装置3とを非同期読出し方式(UR方式とも呼ぶ)で接続する構成とした。即ち、各ボリューム2A,3A間に一時的な差分が生じるのを許容し、コピー元の記憶制御装置2によって差分データをジャーナルデータとして管理する構成とした。従って、各ボリューム2A,3Aによってコピーペアを形成した時点で、ホスト4に切替完了を報告することができ、切替時間を短くして使い勝手や信頼性を向上させることができる。以下、本実施形態をさらに詳述する。
図2は、本発明に係るストレージシステムの全体構成を示す説明図である。図1との対応関係を述べると、正記憶制御装置100は図1中の正記憶制御装置1に、第1副記憶制御装置200は図1中の第1副記憶制御装置2に、第2副記憶制御装置300は図1中の第2副記憶制御装置3に、ホスト10Aは図1中のホスト4に、それぞれ対応する。
このストレージシステムは、少なくとも一つ以上の正記憶制御装置100と、複数の副記憶制御装置200,300と、ホスト10A,10B,10C及び管理端末20A,20B,20Cを備えて構成することができる。ホスト10A,10B,10C及び管理端末20A,20B,20Cは、少なくとも一部が同一であってもよい。例えば、ホスト10Aとホスト10B、管理端末20Aと管理端末20Bとは、それぞれ同一の装置であってもよい。
正記憶制御装置100は、通常の運用時において、ホスト10Aにデータ入出力サービスを提供する装置である。詳細は後述するが、正記憶制御装置100は、コントローラ110と、記憶部120とを備えて構成可能である。記憶部120には、正ジャーナルボリューム131と、複数の正データボリューム132,133を設けることができる。ホスト10Aは、例えば、メインフレームマシンやサーバマシン等のようなコンピュータ装置であり、コントローラ110を介して、データボリューム132,133にアクセスし、データの読み書きを行う。
正記憶制御装置100は、例えば、SANやインターネット等のような通信ネットワーク510,520を介して、各副記憶制御装置200,300とそれぞれ接続することができる。詳細は後述するが、正記憶制御装置100は、ホスト10Aによって行われたデータ更新に関する情報を、積極的にまたは消極的に、各副記憶制御装置200,300にそれぞれ供給する。
第1副記憶制御装置200は、正記憶制御装置100と同様に、コントローラ210と、記憶部220とを備えて構成可能である。記憶部220には、例えば、複数の第1副データボリューム232,233を設けることができる。これら各第1副データボリューム232,233は、それぞれ正データボリューム132,133に関係づけられており、両ボリューム間の記憶内容は一致する。第1副記憶制御装置200は、正記憶制御装置100といわゆる同期方式で接続されており、正データボリューム132,133へのデータ更新は、直ちに第1副データボリューム232,233に反映される。ホスト10Bは、バックアップ用のホストコンピュータである。
第1副記憶制御装置200は、例えば、正記憶制御装置100に比較的近い場所に設けることができる。正記憶制御装置100と第1副記憶制御装置200間の距離を短くすることにより、各記憶制御装置100,200間でのデータ授受に要する遅延等を少なくすることができ、正記憶制御装置100の応答性を高めることができる。
第2副記憶制御装置300も、正記憶制御装置100と同様に、コントローラ310と、記憶部320とを備えて構成することができる。記憶部320には、例えば、副ジャーナルボリューム331と、複数の第2副データボリューム332,333とを設けることができる。各第2副データボリューム332,333は、それぞれ正データボリューム132,133と関係づけられている。正データボリューム132,133と第2副データボリューム332,333とは、両者の記憶内容の不一致を許容する方式で、接続されている。この方式を本明細書では、非同期読出し方式(UR方式)と呼ぶ場合がある。非同期読出し方式では、正記憶制御装置100に保存されているジャーナルデータを第2副記憶制御装置300が定期的にまたは不定期に読み出して、自己のボリューム332,333に反映させる。第2副記憶制御装置300は、例えば、SANやインターネット等の通信ネットワーク530を介して、第1副記憶制御装置200に接続されている。ホスト10Cは、バックアップ用のホストコンピュータである。
管理端末20A,20B,20Cは、それぞれが接続されている記憶制御装置100,200,300の構成等を管理したり、各記憶制御装置100,200,300の内部情報を取得するためのコンピュータ装置である。なお、後述のように、ホスト10A,10B,10Cに設けられたストレージ管理プログラム12によって、各記憶制御装置100,200,300に各種の指示等を与えることができる。従って、管理端末20A,20B,20Cは必ずしも必要ではない。
ホスト10Aが正データボリューム132,133を更新するたびに、正記憶制御装置100から第1副記憶制御装置200に、更新情報D10が送信される。この更新情報D10は、更新されたデータ及び格納先のアドレス情報を含む。
一方、ホスト10Aが正データボリューム132,133を更新するたびに、別の更新情報D20が生成され、正ジャーナルボリューム131に記憶される。この更新情報D20も、管理番号及び更新データを含むことができる。更新情報D20は、ジャーナルデータと呼ぶこともできる。第2副記憶制御装置300は、正記憶制御装置100にアクセスして、更新情報D20、即ち、ジャーナルデータD20を読出し、副ジャーナルボリューム331に記憶させる。
図3は、ストレージシステムのハードウェア構成を示すブロック図である。正記憶制御装置100が設けられている正サイトの構成を示すが、第1副記憶制御装置200が設けられている第1副サイト及び第2副記憶制御装置300が設けられている第2副サイトも、同様の構成を備えることができる。
ホスト10Aは、マイクロプロセッサやメモリ等を備えたコンピュータ装置であり、例えば、アプリケーションプログラム11と、ストレージ管理プログラム12と、HBA(Host Bus Adapter)13とを備えて構成可能である。
アプリケーションプログラム11は、図外に設けられたクライアント端末にデータ処理サービスを提供するプログラムであり、例えば、顧客管理プログラム、売上げ管理プログラム、電子メール管理プログラム等である。ストレージ管理プログラム12は、正記憶制御装置100(及び副記憶制御装置200,300)に対して各種の指示を与えるプログラムである。HBA13は、正記憶制御装置100(及び副記憶制御装置200,300)とのデータ通信を行うためのインターフェース制御部である。各HBA13は、SAN等のネットワークCN1を介して、正記憶制御装置100のポート111Aにそれぞれ接続されている。
アプリケーションプログラム11及びHBA13は、それぞれ複数ずつ設けることができ、それぞれ独立して動作させることができる。また、HBA13を複数設けることにより、いずれか一方の通信経路に障害が発生した場合でも、他方の通信経路を介して、正記憶制御装置100にアクセスすることができる。
管理端末20Aは、マイクロプロセッサやメモリ等を備えたコンピュータ装置であり、ストレージ管理部21が設けられている。ストレージ管理部21は、正記憶制御装置100の構成変更を指示したり、正記憶制御装置100の各種状態を読み出して端末画面に表示させるものである。
正記憶制御装置100は、例えば、少なくとも一つ以上のチャネルアダプタ111と、少なくとも一つ以上のディスクアダプタ112と、少なくとも一つ以上のキャッシュメモリ113と、少なくとも一つ以上の共有メモリ114と、接続部115,116と、サービスプロセッサ117と、記憶部120とを備えて構成可能である。図2に示したコントローラ110は、チャネルアダプタ111と、ディスクアダプタ112と、各メモリ113,114によって構成することができる。
チャネルアダプタ(以下、CHA)111は、ホスト10Aとの間のデータ授受を行うための上位通信制御部であり、例えば、マイクロプロセッサやローカルメモリ、データ転送回路等を備えて構成することができる。CHA111は、少なくとも一つ以上の通信ポート111Aを備えている。いずれか一つまたは複数の通信ポート111Aは、ネットワークCN1を介して、ホスト10AのHBA13に接続されている。また、別の複数の通信ポート111Aは、ネットワーク510,520を介して、各副記憶制御装置200,300にそれぞれ接続されている。
ディスクアダプタ(以下、DKA)112は、記憶部120との間のデータ授受を行うための下位通信制御部であり、例えば、マイクロプロセッサやローカルメモリ、データ転送回路等を備えて構成可能である。DKA112は、CHA111と別体の制御基板として構成することもできるし、同一の制御基板上にCHA111の機能とDKA112の機能とを混載することもできる。
キャッシュメモリ113は、例えば、ホスト10Aによって使用されるユーザデータや一時的な管理用の情報等を記憶するメモリである。共有メモリ114は、例えば、正記憶制御装置100を制御するための各種制御情報を記憶するメモリである。制御情報の一部は、CHA111やDKA112のローカルメモリにもコピーされる。キャッシュメモリ113及び共有メモリ114は、それぞれ別々のメモリ基板として構成してもよいし、同一のメモリ基板上にキャッシュメモリ113と共有メモリ114と混載してもよい。
接続部115は、各CHA111,各DKA112,キャッシュメモリ113及び共有メモリ114を相互に接続するためのものである。接続部115は、例えば、バスやクロスバスイッチ等として構成される。接続部116は、各DKA112とディスクドライブ121とをそれぞれ接続するためのものである。
サービスプロセッサ(以下、SVP)117は、正記憶制御装置100の各種状態を監視したり、管理端末20Aからの指示に応じて制御情報を書き換えるものである。SVP117は、例えば、装置内ネットワークCN3を介して、各CHA111にそれぞれ接続されている。SVP117は、いずれか一つのCHA111を介して、DKA112や共有メモリ114等の情報を得ることもできる。なお、装置内ネットワークCN3によって、SVP117を、各CHA111及び各DKA112にそれぞれ接続させる構成でもよい。
記憶部120は、複数のディスクドライブ121を備えている。ディスクドライブ121としては、例えば、ハードディスクドライブ、半導体メモリドライブ、ホログラフィックメモリドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープドライブ等を挙げることができる。ディスクドライブ121の有する物理的な記憶領域を仮想化することにより、少なくとも一つ以上の論理的な記憶領域を生成することができる。この論理的な記憶領域は、論理ボリュームと呼ばれる。ホスト10Aは、論理ボリュームをアクセス対象としてアクセスする。上述した各ボリューム131,132,133は、それぞれ論理ボリュームである。
先に正記憶制御装置100内の動作について簡単に説明する。ホスト10Aがリードコマンドを発行した場合、CHA111は、ホスト10Aから要求されたデータがキャッシュメモリ113上に存在するか否かを確認する。そのデータがキャッシュメモリ113上に記憶されている場合、CHA111は、そのデータをキャッシュメモリ113から読み出して、ホスト10Aに送信する。これに対し、ホスト10Aから要求されたデータがキャッシュメモリ113上に存在しない場合、CHA111は、そのデータの読出しをDKA112に要求する。CHA111からDKA112への指示は、共有メモリ114を介して行われる。共有メモリ114を随時参照しているDKA112は、CHA111からの指示を発見すると、そのデータをディスクドライブ121から読み出して、キャッシュメモリ113に記憶させる。これをステージング処理と呼ぶ。ステージング処理の完了は、共有メモリ114を介して、CHA111に通知される。ステージングの際に、DKA112は、物理アドレスを論理アドレス(LBA:Logical Block Address)に変換する。
ホスト10Aがライトコマンドを発行した場合、CHA111は、キャッシュメモリ113の空き容量等を確認し、ライトデータの受信が可能であれば、ホスト10Aからライトデータを受信する。CHA111は、受信したライトデータをキャッシュメモリ113に記憶させる。また、CHA111は、そのデータを論理ボリュームに書き込みべき旨をDKA112に指示する。この指示は、共有メモリ114を介して行われる。共有メモリ114を介して各種指示や報告を伝達することにより、比較的簡単な構成で、複数のCHA111,DKA112をそれぞれ独立して並行的に動作させることができる。
DKA112は、共有メモリ114を介してライトコマンドを発見すると、キャッシュメモリ113に記憶されているライトデータを論理ボリュームに書き込む。より詳しくは、DKA112は、そのライトデータの論理アドレスを物理アドレスに変換し、書き込みが要求された論理ボリュームを構成するディスクドライブ121の所定の場所にライトデータを記憶させる。その論理ボリュームがRAID構成を有する場合、ライトデータは複数のディスクドライブ121に分散して書き込まれる。キャッシュメモリ113からディスクドライブ121へのデータ転送をディステージ処理と呼ぶ。ディステージ処理の完了は、共有メモリ114を介して、CHA111に通知される。ディステージ処理は、正記憶制御装置100の処理負荷やキャッシュメモリ113の空き容量等に基づいて、適当なタイミングで行うことができる。ライトコマンドの受信時に直ちにディステージ処理を行う必要はない。
CHA111は、ホスト10Aからのライトコマンド及びライトデータを、第1副記憶制御装置200に転送する。そして、第1副記憶制御装置200から書き込み完了の報告を受信すると、CHA111は、ホスト10Aに、ライトコマンドの処理が完了した旨を報告する。従って、正記憶制御装置100及び第1副記憶制御装置200のそれぞれにライトデータが保持された場合に、ホスト10Aにライトコマンドの処理が完了した旨が通知される。
さらに、CHA111は、ライトコマンド及びライトデータに管理番号を対応付けて、ジャーナルデータを生成し、このジャーナルデータを正ジャーナルボリューム131に記憶させる。このジャーナルデータは、第2副記憶制御装置300からの読出し要求に基づいて、正記憶制御装置100から第2副記憶制御装置300に転送される。
図4は、各ボリュームの関係を模式的に示す説明図である。正サイト、即ち、正記憶制御装置100の有する各ボリューム131,132,133は、それぞれ同一のジャーナルグループ130に属している。ジャーナルグループ130とは、ジャーナルデータが共通に管理されるグループである。データボリューム132,133のデータ更新が互いに整合していなければならない場合、これら各データボリューム132,133は同一のグループ130に所属する。各データボリューム132,133に対するデータ更新の履歴は、正ジャーナルボリューム131によってそれぞれ管理される。
同様に、第1副サイトにおいても、ジャーナルグループ230が設けられており、このジャーナルグループ230には、各第1副データボリューム232,233がそれぞれ所属している。第1副データボリューム232,233は、正データボリューム132,133に関係づけられており、各第1副データボリューム232,233の記憶内容は、正データボリューム132,133の記憶内容とほぼリアルタイムで一致する。このジャーナルグループ230を、第1副ジャーナルグループと呼ぶ場合もある。
第2副サイトにおいても、ジャーナルグループ330が設けられており、このジャーナルグループ330内には、副ジャーナルボリューム331,各第2副データボリューム332,333がそれぞれ設けられている。各第2副データボリューム332,333は、正データボリューム132,133に関係づけられており、時間差は生じるものの、各第2副データボリューム332,333の記憶内容は、正データボリューム132,133の記憶内容と一致するようになっている。各第2副データボリューム332,333のデータ更新の履歴は、副ジャーナルボリューム331によってそれぞれ管理される。
図5は、ジャーナルボリュームとデータボリュームとの関係を示す説明図である。ジャーナルボリュームは、ジャーナルグループ内に存在する各データボリュームへのデータ更新をそれぞれ管理する。ジャーナルボリュームの記憶領域の先頭側には、更新情報領域が設けられており、この更新情報領域に続く記憶領域には、ライトデータ領域が設けられている。
ライトデータ領域には、各データボリュームに書き込まれたライトデータのコピーが記憶される。更新情報領域には、ライトデータ領域に記憶されているライトデータの格納先アドレスと管理番号とが対応付けられて記憶されている。この管理番号及びジャーナルボリューム内での格納先アドレスからなる情報を、更新管理情報と呼ぶ場合がある。管理番号は、各データ更新についてそれぞれ発行される番号であり、更新順序を管理するためのものである。
更新情報領域及びライトデータ領域は、それぞれ繰り返して使用される。即ち、更新情報領域の終端アドレスまで使用された場合、先頭アドレスに戻って新たな更新管理情報(管理番号及び格納先アドレス)が上書きで記憶される。同様に、ライトデータ領域も、終端アドレスまで使用された場合、ライトデータ領域の先頭アドレスに戻って新たなライトデータを上書きで記憶される。
図6は、正データボリュームへのデータ更新に伴って、各副データボリュームのデータが更新される様子を模式的に示す説明図である。ここでは、説明の便宜上、正データボリューム132を例に挙げて説明する。
正記憶制御装置100は、ホスト10AからライトコマンドD1及びライトデータD2を受信すると、ライトデータを正データボリューム132に書き込む。同時に、正記憶制御装置100は、このデータ更新を管理するための管理番号D3を生成する。管理番号D3は、例えば、各データ更新のたびに一つずつ値が増加するようにして生成される。
正記憶制御装置100は、管理番号D3とライトコマンドD1及びライトデータとによって、ジャーナルデータD20を生成する。このジャーナルデータD20は、正ジャーナルボリューム131に記憶される。また、正記憶制御装置100は、ライトコマンドD1及びライトデータD2によって、更新データD10を生成する。この更新データD10は、第1副記憶制御装置200に送信される。更新データD10とジャーナルデータD20とは、共通の情報を含んで構成されるが、各副記憶制御装置200,300へ供給されるタイミングはそれぞれ異なる。
さらに、正記憶制御装置100は、切替判定部110Aと、消去判定部110Bと、閾値記憶部110Cとを備えている。各判定部110A,110Bは、例えば、コンピュータプログラムとして構成することができる。閾値記憶部110Cは、例えば、共有メモリ114等に設けることができる。
切替判定部110Aは、第2記憶制御装置300によって正ジャーナルボリューム131から読み出されたジャーナルデータD20中の管理番号が、閾値記憶部110Cに記憶されている閾値に達したか否かを判定する。その管理番号が閾値に達した場合(SEQ#≧閾値)、切替判定部110Aは、第1副記憶制御装置100に切替指示を与える。
消去判定部110Bは、ホスト10Aからのライト要求に応じて生成された管理番号D3が、閾値記憶部110Cに記憶されている閾値に達したか否かを判定する。生成された管理番号が閾値に達した場合、消去判定部110Bは、第1副記憶制御装置100に消去指示を与える。
第1副記憶制御装置200は、更新データD10を受信すると、ライトデータD2を第1副データボリューム232に書き込む。また、第1副記憶制御装置200は、ライトデータD2の記憶位置を、差分管理テーブルT10中のビットマップテーブルBM1,BM2のいずれか一方に記憶させる。差分管理テーブルT10については、後述する。
ビットマップテーブルBM1,BM2は、切替部210Aによって切り替えられる。切替部210Aは、正記憶制御装置100からの切替指示に基づいて、カレントテーブルとして使用されるビットマップテーブルを選択する。二つのビットマップテーブルBM1,BM2は、交互に使用される。切替部210Aによって選択されているビットマップテーブルが、カレントテーブルとなる。
また、第1副記憶制御装置200は、正記憶制御装置100から消去指示を受信すると、切替前のビットマップテーブルをリセットし、その記憶内容を消去させる。
一方、第2副記憶制御装置300は、比較的短い周期で、正ジャーナルボリューム131からジャーナルデータD20を読み出し、読出したジャーナルデータD20を副ジャーナルボリューム331に記憶させる。第2副記憶制御装置300は、管理番号D3に基づいてジャーナルデータの順番が揃ったことを確認し、ジャーナルデータD20に示されているデータ更新の内容を第2副データボリューム332に反映させる。この反映処理を、リストア処理とも呼ぶ。
図7は、正ジャーナルボリューム131と副ジャーナルボリューム331との関係を模式的に示す説明図である。上述の通り、各ジャーナルボリューム131,331は、それぞれ更新情報領域及びライトデータ領域を備えている。
正ジャーナルボリューム131の更新情報領域には、複数の更新管理情報(管理番号+格納先アドレス)を記憶可能である。これら各更新管理情報のうち、更新情報領域の最も先頭側に位置する更新管理情報が含む管理番号は、ジャーナルボリューム131に記憶されている最古の管理番号であり、ジャーナルボリューム131から消去されたジャーナルデータの次のジャーナルデータに設定されている。更新情報領域の最後に記憶されている更新管理情報が含む管理番号は、ジャーナルボリューム131に記憶されている最新の管理番号であり、最も最近行われたデータ更新に設定されている。
副ジャーナルボリューム331の更新情報領域にも、複数の更新管理情報を記憶可能である。更新情報領域の最も先頭側に記憶されている更新管理情報に含まれる管理番号は、パージ済の管理番号を示す。パージ済管理番号とは、正記憶制御装置100に消去が指示された最後のジャーナルデータに設定されている管理番号の次の番号である。リストア済管理番号とは、第2副データボリューム332に反映済のジャーナルデータの最後を示す番号である。コピー済管理番号とは、正ジャーナルボリューム131から副ジャーナルボリューム331にコピーされたジャーナルデータの末尾を示す番号である。
正ジャーナルボリューム131に記憶されているジャーナルデータと副ジャーナルボリューム331に記憶されているジャーナルデータとの間には、差分が生じる。この差分は、時間の経過につれて解消する。副ジャーナルボリューム331に記憶されているジャーナルデータは、適当なタイミングで、第2副データボリューム332に反映される。この反映に応じて、リストア済管理番号は繰り下がっていく。リストア済のジャーナルデータは、保持する必要がない。そこで、第2副記憶制御装置300は、正記憶制御装置100に、不要なジャーナルデータの末尾の管理番号を明示して、消去を指示する。
図8は、第1副記憶制御装置200によって使用される差分管理テーブルT10の構成を示す説明図である。この差分管理テーブルT10は、例えば、第1副記憶制御装置200の共有メモリ等に記憶させることができる。
差分管理テーブルT10は、各ジャーナルグループ毎にそれぞれ用意される。図に示すように、ジャーナルグループ#1のためにテーブルT11が、ジャーナルグループ#2のためにテーブルT12が、それぞれ用意されている。
各ジャーナルグループを管理する差分管理テーブルには、複数のビットマップテーブルをそれぞれ含ませることができる。即ち、各ジャーナルグループは、複数のビットマップテーブルBM1,BM2によって差分が管理される。
ビットマップテーブルBM1,BM2では、差分管理対象のボリューム232,233を、例えば、ブロック単位やトラック単位等のように、所定の管理単位毎にそれぞれ区切り、各管理単位毎にそれぞれ1ビットずつの差分管理ビットを設定する。そして、データの更新が行われた場合、その更新位置(ライトデータの記憶位置)に対応する差分管理ビットを「1」に設定する。更新されていない場所については、差分管理ビットは「0」に設定される。従って、差分管理ビットが「1」に設定されている管理単位に対応する範囲のデータが、所定の時点以降に発生した差分データとなる。所定の時点とは、差分管理が開始された時点である。差分管理は、ユーザによる手動操作によって、または自動的に開始させることができる。
ここで、ビットマップテーブルBM1,BM2の構成方法としては、種々のものが考えられる。例えば、比較的大きな記憶領域を有するビットマップテーブルを用意し、このビットマップテーブルの記憶領域をボリューム数で分割し、各ボリューム毎にそれぞれ割り当てることができる。また、ビットマップテーブルの記憶領域をジャーナルグループ数で分割して各ジャーナルグループにそれぞれ割当て、さらに、これら各ジャーナルグループ毎の記憶領域を該ジャーナルグループに属するボリューム数で分割し、各ボリュームにそれぞれ割り当てることもできる。あるいは、各ジャーナルグループの各ボリューム毎にそれぞれ個別にビットマップテーブルを用意してもよいし、各ビットマップテーブルのサイズをそれぞれ変えることもできる。
次に、図9は、正記憶制御装置100によって使用されるペア管理テーブルを示す説明図である。このペア管理テーブルT21は、例えば、正記憶制御装置100の共有メモリ114等に記憶させることができる。後述の他のペア管理テーブルT22,T23も同様であるが、ペア管理テーブルT21は、正データボリューム132,133と第1副データボリューム232,233及び第2副データボリュームとの対応関係を管理するためのものである。なお、第1副記憶制御装置200の使用するペア管理テーブルT22には、ビットマップテーブルBM1,BM2を使用するための情報も設けられる。
さて、ペア管理テーブルT21は、正データボリュームに関する情報と、その正データボリュームに対応する第1副データボリュームに関する情報と、その正データボリュームに対応する第2副データボリュームに関する情報と含んで構成される。
正データボリュームに関する情報には、例えば、正データボリュームを識別するためのボリューム番号(P-VOL#)と、その正データボリュームの属性と、その正データボリュームが属するジャーナルグループの番号とが含まれる。
正データボリュームに対応する第1副データボリュームに関する情報には、例えば、その正データボリュームに対応付けられている第1副データボリュームを特定するためのボリューム番号(第1S-VOL#)と、その第1副データボリュームの属するジャーナルグループを特定するための第1副ジャーナルグループ番号と、その第1副データボリュームとその正データボリュームとのペア種別を示す情報と、その第1副データボリュームとその正データボリュームとのペア状態を示す情報とが含まれる。
同様に、正データボリュームに対応する第2副データボリュームに関する情報には、例えば、その正データボリュームに対応付けられている第2副データボリュームを特定するためのボリューム番号(第2S-VOL#)と、その第2副データボリュームの属するジャーナルグループを特定するための第2副ジャーナルグループ番号と、その第2副データボリュームとその正データボリュームとのペア種別を示す情報と、その第2副データボリュームとその正データボリュームとのペア状態を示す情報とが含まれる。
ここで、ボリューム属性には、例えば、「正」と「未使用」とがある。「正」の属性が設定されたボリュームは、正データボリュームとして使用されていることを示す。「未使用」の属性が設定されたボリュームは、ボリュームとして用意はされているが、正データボリュームとしては使用されていないボリュームを示す。なお、これ以外の属性を採用することもできる。
ペア種別には、例えば、「同期」と「非同期」を挙げることができる。「同期」とは、上述のように、正データボリュームへのデータ更新と副データボリュームへのデータ更新とが同期して行われることを示す。「非同期」とは、上述のように、正データボリュームへのデータ更新時期と副データボリュームへのデータ更新時期とが同期していないことを示す。「非同期」の場合、副記憶制御装置側から正記憶制御装置100にジャーナルデータを読出しに行き、読出したジャーナルデータに基づいて副データボリュームへのデータ更新(リストア)が行われる。
ペア状態には、例えば、「ペア」、「サスペンド」、「シンプレックス」等を挙げることができる。「ペア」とは、二つのボリュームがコピーペアを形成しており、コピー元ボリューム(正データボリューム)の記憶内容がコピー先ボリューム(副データボリューム)に反映される状態を示す。「サスペンド」とは、コピーペアは形成されているがコピーを停止している状態であり、コピー元ボリュームに生じたデータ更新は、コピー元で差分管理されている状態を示す。「シンプレックス」とは、コピーペアに関与しない通常のボリュームであることを示す。
図10は、第1副記憶制御装置200により使用されるペア管理テーブルT22を示す説明図である。このペア管理テーブルT22は、例えば、第1副記憶制御装置200の共有メモリ等に記憶させることができる。ペア管理テーブルT22は、ペア管理テーブルT21と同様に、第1副データボリューム232,233と正データボリューム132,133及び第2副データボリューム332,333との対応関係を管理する。
ペア管理テーブルT22は、第1副データボリュームに関する情報と、その第1副データボリュームに対応する正データボリュームに関する情報と、その正データボリュームに対応する第2副データボリュームに関する情報と、ビットマップテーブルBM1,BM2を使用するための情報とを含んで構成される。ここでは、ビットマップテーブルを各ボリューム毎に区切って使用する例を示す。「カレントBM#」とは、そのボリュームの差分を現在管理しているビットマップテーブル(カレントテーブル)を識別するためのテーブル番号である。「BMアドレス」とは、そのボリュームの差分を管理する領域の開始アドレスを示す情報である。
図11は、第2副記憶制御装置300により使用されるペア管理テーブルT23を示す説明図である。このペア管理テーブルT23は、例えば、第2副記憶制御装置300の共有メモリ等に記憶させることができる。ペア管理テーブルT23は、ペア管理テーブルT21,T22と同様に、第2副データボリューム332,333と正データボリューム132,133及び第1副データボリューム232,233との対応関係を管理する。
ペア管理テーブルT23は、第2副データボリュームに関する情報と、その第2副データボリュームに対応する正データボリュームに関する情報と、その正データボリュームに対応する第1副データボリュームに関する情報と含んで構成される。
図12は、正記憶制御装置100がライトコマンドを受信した場合の処理の概要を示すフローチャートである。後述する以下の各フローチャートでも同様であるが、フローチャートには、本発明を当業者が実施可能な程度に処理の概要が示されており、実際のプログラムとは異なる。
正記憶制御装置100は、ホスト10Aからライトコマンドを受信したか否かを監視している(S21)。ライトコマンドを受信した場合(S21:YES)、正記憶制御装置100は、ホスト10Aから受信したライトデータを、指定された正データボリュームの指定されたアドレスに書き込む(S22)。
また、正記憶制御装置100は、そのライトデータについて管理番号を新たに取得し(S23)、続いて後述のビットマップテーブル切替指示処理を行った後(S24)、ジャーナルデータを生成する(S25)。正記憶制御装置100は、この生成したジャーナルデータを正ジャーナルボリューム131に記憶させる(S26)。上述の通り、ジャーナルボリュームには、ジャーナルデータが生成順に記憶されていく。
次に、正記憶制御装置100は、ライトデータを第1副記憶制御装置200に送信する(S27)。そして、正記憶制御装置100は、第1副記憶制御装置200からの書込完了報告を待つ(S28)。正記憶制御装置100は、第1副記憶制御装置200からライトデータの書込完了報告を受領すると(S28:YES)、ホスト10Aにライトコマンドの処理が完了した旨を報告する(S29)。
第1副記憶制御装置200の動作に着目する。第1副記憶制御装置200は、正記憶制御装置100からライトデータを受信すると(S31:YES)、このライトデータを、対応する第1副データボリュームの所定の場所に書き込む(S32)。所定の場所とは、そのライトデータを書き込むべきアドレスであり、ライトコマンドにより明示されている。
次に、第1副記憶制御装置200は、そのライトデータの記憶位置に対応する差分管理ビットを「1」に設定することにより、ビットマップデータを生成し(S33)、この生成したビットマップデータを現在使用されているビットマップテーブルに記憶させる(S34)。そして、第1副記憶制御装置200は、ライトデータを第1副データボリュームに記憶させた旨を、正記憶制御装置100に通知する(S35)。
次に、図13は、第2副記憶制御装置300によるデータ更新処理を示すフローチャートである。第2副記憶制御装置300は、比較的短い周期で、正記憶制御装置100にジャーナルデータの読出しを要求することができる(S41)。
正記憶制御装置100は、第2副記憶制御装置300からの読出し要求を受信すると(S42:YES)、正ジャーナルボリューム131からジャーナルデータを読出し(S43)、後述のビットマップテーブル消去指示処理を行った後(S44)、読出したジャーナルデータを第2副記憶制御装置300に送信する(S45)。ここで、正記憶制御装置100は、第2副記憶制御装置300によって保持されている最新の管理番号以降の管理番号が設定されているジャーナルデータを、第2副記憶制御装置300に供給する。既に送信済のジャーナルデータは、第2副記憶制御装置300に送信されない。
第2副記憶制御装置300は、正記憶制御装置100からジャーナルデータを取得すると(S46)、このジャーナルデータに設定されている管理番号を共有メモリ等に記憶させる(S47)。そして、第2副記憶制御装置300は、そのジャーナルデータを副ジャーナルボリューム331に書き込む(S48)。第2副記憶制御装置300は、適当なタイミングで、副ジャーナルボリューム331に記憶されたジャーナルデータを第2副データボリュームに反映させる(S49)。即ち、第2副記憶制御装置300は、正記憶制御装置100からジャーナルデータを取得すると同時に、第2副データボリュームを更新させる必要は必ずしもない。
図14は、図12中にS24で示されたビットマップテーブル切替指示処理を示すフローチャートである。正記憶制御装置100は、新たに取得された管理番号が閾値に達したか否かを判定する(S51)。管理番号が閾値に達していない場合(S51:NO)、図12に示す処理に戻る。
管理番号が閾値に達した場合(S51:YES)、正記憶制御装置100は、第1副記憶制御装置200にビットマップテーブルの切替を指示する(S52)。第1副記憶制御装置200は、この切替指示を受信すると(S53)、カレントビットマップテーブルを切り替える(S54)。即ち、第1副記憶制御装置200は、現在使用中のビットマップテーブルから待機中のビットマップテーブルに切り替え、ペア管理テーブルT22中のカレントビットマップテーブルを示す情報を更新させる(S55)。
図15は、図13中にS44で示されたビットマップテーブル消去指示処理を示すフローチャートである。正記憶制御装置100は、第2副記憶制御装置300によって読み出されたジャーナルデータの管理番号が閾値に達したか否かを判定する(S61)。管理番号が閾値に達していない場合(S61:NO)、図13に示す処理に戻る。
管理番号が閾値に達した場合(S61:YES)、正記憶制御装置100は、第1副記憶制御装置200にビットマップテーブルの消去を指示する(S62)。第1副記憶制御装置200は、この消去指示を受信すると(S63)、現在使用中のビットマップテーブルの前に使用されていたビットマップテーブル(切替前のビットマップテーブル)の記憶内容を消去させる(S64)。即ち、そのビットマップテーブルの各差分管理ビットには、それぞれ「0」が設定される。
図16は、ビットマップテーブルの切替タイミングと消去タイミングとの関係を模式的に示す説明図である。横軸は時間の経過を、縦軸は管理番号をそれぞれ示す。また、図中の太い実線は、ホスト10Aからのライト要求毎に取得される管理番号の変化を、図中の波線は、第2副記憶制御装置300によって読み出されたジャーナルデータの管理番号の変化を、それぞれ示す。なお、切替閾値及び消去閾値は、それぞれ「1000」に設定されているものとする。
実線のグラフに着目する。ライトコマンドが受信されるたびに、管理番号の値が増大していく。管理番号の値が「1000」ずつ増加するたびに、ビットマップテーブルBM1とBM2とは交互に切り替えられていく。図中の右側には、カレントビットマップテーブルとして選択されたビットマップテーブルの番号が示されている。
波線のグラフに着目する。第2副記憶制御装置300によって読み出されたジャーナルデータの管理番号の値が「1000」ずつ増加するたびに、切替前のビットマップテーブルの内容が消去される。例えば、時刻t2では、カレントビットマップテーブルがBM1からBM2に切り替わっており、切替前のテーブルBM1の記憶内容が消去される。
切替指示のタイミングt1と消去指示のタイミングt2との間には、ある程度のずれが生じる。このずれの量は、ホスト10Aによる更新頻度や、正記憶制御装置100と第2副記憶制御装置300との間の通信状況等によって変化する。既に差分管理に使用されたビットマップテーブルは、いったん記憶内容が消去されてから、再度使用される。そのビットマップテーブルについて消去指示が与えられるよりも前に、切替指示が与えられないように、ビットマップテーブルのサイズ等を決定することができる。
次に、障害等の発生によって、正記憶制御装置100から第1副記憶制御装置200に切り替えられる場合を説明する。図17は、正記憶制御装置100から第1副記憶制御装置200に切り替えられる様子を示す模式図である。
上述のように、正記憶制御装置100は、その内部が物理的にも論理的にも冗長化されており、データの消失等を抑制している。しかし、例えば、災害等の障害によって、正記憶制御装置100は停止する可能性がある。
正記憶制御装置100に障害が発生して停止すると、正記憶制御装置100に代わって、第1副記憶制御装置200がメイン記憶制御装置として選択される。第1副記憶制御装置200は、新たな正記憶制御装置となり、第1副記憶制御装置200の置かれているサイトが正サイトとなる。
第1副記憶制御装置200の有する各第1副データボリューム232,233は、それぞれ正データボリュームとなり、第2副記憶制御装置300の有する各第2副データボリューム332,333とコピーペアを形成する。ここで、第1副データボリューム232,233と第2副データボリューム332,333とは、いわゆる非同期読出し方式によって、コピーペアを形成する。第2副記憶制御装置300の視点から見ると、第2副記憶制御装置300のジャーナルデータ取得元は、正記憶制御装置100から第1副記憶制御装置200に切り替えられることになる。後述のように、正記憶制御装置100から第1副記憶制御装置200に切り替わる際に、第1副記憶制御装置200は、ジャーナルボリュームを生成し、ジャーナルデータによる差分管理を開始する。
メイン記憶制御装置が切り替えられる場合の処理を図18のフローチャートに基づいて説明する。例えば、第1副サイトのホスト10Bまたは管理端末20Bは、正記憶制御装置100に障害が発生したことを検出すると(S71:YES)、メインホストを正サイトのホスト10Aから第1副サイトのホスト10Bに切り替える(S72)。説明の便宜上、ホスト10Bが記憶制御装置への指示を行うものとして説明するが、管理端末20Bを用いても良い。
メインホストの切替は、自動的に行うことも可能であるし、システム管理者等のユーザによって手動操作で行うこともできる。例えば、ホスト10Aとホスト10Bとの間のハートビート通信の停止等に基づいて、正サイトの障害を検出し、ホスト10Aからホスト10Bに自動的に切り替えることが考えられる。また、例えば、正サイトの管理者から第1副サイトの管理者に、電子メールや電話等で切替を指示することにより、手動操作で切り替えることも可能である。
なお、正記憶制御装置100のみに障害が発生し、ホスト10Aが正常に稼動しており、かつ、ホスト10Aと第1副記憶制御装置200との間に通信経路を設定できる場合には、ホスト10Aをそのままメインホストとして使用することもできる。この場合、メイン記憶制御装置のみが、正記憶制御装置100から第1副記憶制御装置200に切り替えられる。ここでは、災害等により、正サイトのホスト10A及び正記憶制御装置100の両方が機能を停止したものとして説明する。
第1副サイトのホスト10Bは、第2副サイトの第2副記憶制御装置300に、切替を指示する(S73)。第2副記憶制御装置300は、第1副サイトからの切替指示を受信すると(S74)、第2副データボリューム332,333にコピーペアの削除をそれぞれ指示する(S75)。これにより、各第2副データボリューム332,333は、それぞれ正データボリューム132,133とのコピーペアを解消し、シンプレックス状態に以降する。
第1副サイトのホスト10Bは、第1副データボリューム232,233に向けて、サスペンドコマンドを発行する(S76)。これにより、各第1副データボリューム232,233は、正データボリューム132,133とのコピーペアを解消し、サスペンド状態に移行する。ホスト10Bから第1副データボリューム232,233に対するデータ更新は、差分管理テーブルT10によって管理される。
ホスト10Bは、第1副データボリューム232,233に対してResyncコマンドを発行する(S77)。続いて、ホスト10Bは、第1副ジャーナルグループを正ジャーナルグループに変更し(S78)、第1副データボリューム232,233のボリューム属性をそれぞれ正データボリュームに変更させる(S79)。
そして、ホスト10Bは、第1副記憶制御装置200を介して、各ビットマップテーブルBM1,BM2の内容をマージさせ(S80)、マージ後のビットマップテーブルに基づいて、差分データを第1副記憶制御装置200から第2副記憶制御装置300に送信させる(S81)。
ここで、各ビットマップテーブルBM1,BM2の記憶内容をマージさせるのは、図16に示したように、ビットマップテーブルの切替タイミングと消去タイミングとの間にずれが生じるためである。従って、カレントビットマップテーブル及び前回使用されていたビットマップテーブルの両方を考慮して差分コピーを開始させる。
第2副記憶制御装置300は、差分データを受信すると(S82)、第2副データボリューム332,333に記憶させる(S83)。
図19は図18に続くフローチャートである。ホスト10Bは、第2副データボリューム332,333に向けて、状態変更コマンドを発行する(S84)。第2副記憶制御装置300は、この状態変更コマンドを受信すると(S85)、第2副データボリューム332,333のペア状態を「ペア」に変更させる(S86)。
また、ホスト10Bは、正データボリュームとなった第1副データボリューム232,233に向けて状態変更コマンドを発行し、各第1副データボリューム232,233のペア状態を「ペア」に変更させる(S87)。さらに、ホスト10Bは、第1副記憶制御装置200にジャーナルボリュームを用意させる(S88)。
これにより、記憶制御装置100から記憶制御装置200への切替が正常に完了するため、第1副記憶制御装置200からホスト10Bに切替完了が報告される(S89)。このように、正記憶制御装置となった第1副記憶制御装置200と第2副記憶制御装置300とを、非同期読出し方式で接続することにより、短時間で切替を完了できる。
第1副記憶制御装置200は、正記憶制御装置100が行っていたと同様に、ホスト10Bからのライト要求(更新要求)を受け付けるたびにジャーナルデータを生成し、このジャーナルデータをジャーナルボリューム231に記憶させる(S90)。
第2副記憶制御装置300は、障害発生前に正記憶制御装置100との間で行っていたように、比較的短い周期で、第1副記憶制御装置200にジャーナルデータの読出しを要求する(S91)。第1副記憶制御装置200は、ジャーナルデータの読出し要求を受信すると(S92)、ジャーナルボリューム231からジャーナルデータを読出し(S93)、このジャーナルデータを第2副記憶制御装置300に送信する(S94)。
第2副記憶制御装置300は、ジャーナルデータを受信してジャーナルボリューム331に記憶させ(S95)、適当なタイミングを見計らって、第2副ボリューム332,333の記憶内容を更新させる(S96)。
本実施例は、上述のように構成されるため、以下の効果を奏する。まず、本実施例では、本実施形態では、第1副記憶制御装置200は、第1副ボリューム232,233のデータ更新をビットマップテーブルBM1,BM2によって管理し、正記憶制御装置100から第1副記憶制御装置200への切替時には、第1副記憶制御装置200から第2副記憶制御装置3に差分データのみをコピーさせる構成とした。従って、第1副ボリューム2Aと第2副ボリューム3Aとの間でいわゆる全コピーを行う場合に比べて、ペア形成時間を短くすることができる。また、第1副記憶制御装置200は、第2副記憶制御装置300が第2副ボリューム332,333をどこまで更新したかを管理する仕組みを備えず、所定時点以降の差分データを送信する。従って、制御構造を簡素化できる。
本実施形態では、複数のビットマップテーブルBM1,BM2を、不要となった記憶内容を消去しながら、交互に切り替えて使用する構成とした。従って、いずれか一方のビットマップテーブルを使用している間に、他方のビットマップテーブルをリセットさせて再使用に備えさせることができ、ビットマップテーブルのサイズを比較的小さくすることができる。これにより、差分管理に使用する管理情報(ビットマップテーブル)を低減することができ、第2記憶制御装置200のメモリ資源を有効に利用することができる。
本実施形態では、正記憶制御装置となる第1副記憶制御装置200と第2副記憶制御装置300とを非同期読出し方式(UR方式とも呼ぶ)で接続する構成とした。即ち、コピー元ボリュームとコピー先ボリュームとの間に一時的な差分が生じるのを許容し、コピー元の記憶制御装置200によって差分をジャーナルデータとして管理する構成とした。従って、比較的速やかにホスト10Bに切替完了を報告することができ、切替時間を短くして使い勝手や信頼性を向上させることができる。
図20に基づいて本発明の第2実施例を説明する。本実施例を含む以下の実施例は、第1実施例の変形例に相当する。本実施例では、4台の記憶制御装置を用いてストレージシステムの冗長性を向上させている。
図20(a)は通常時の状態を示す説明図である。このストレージシステムでは、正記憶制御装置100,第1副記憶制御装置200,第2副記憶制御装置300に加えて、第3副記憶制御装置400が設けられている。
第1実施例で述べたように、正記憶制御装置100と第1副記憶制御装置200とは同期方式で接続されており、正記憶制御装置100と第2副記憶制御装置300とは非同期読出し方式で接続されている。
図20(b)は、正記憶制御装置100に障害等が発生して停止した場合を示す説明図である。この場合、第1実施例と同様に、第1副記憶制御装置200が正記憶制御装置となり、第2副記憶制御装置300と非同期読出し方式で接続される。また、第1副記憶制御装置200は、第3副記憶制御装置400とも非同期読出し方式で接続される。
図20(c)は、第1副記憶制御装置200に障害等が発生して停止した場合を示す説明図である。この場合、第2副記憶制御装置300が正記憶制御装置となり、第3副記憶制御装置400と非同期読出し方式で接続される。
このように。4台の記憶制御装置を用いてストレージシステムを構成する場合は、2度の障害が立て続けに発生した場合でも、ストレージシステムの冗長性を確保することができ、信頼性をさらに向上させることができる。なお、本発明は、4台の記憶制御装置で運用する場合に限らず、5台以上の記憶制御装置を用いる場合にも適用可能である。
図21に基づいて、第3実施例を説明する。本実施例では、各記憶制御装置100,200,300の対応関係を各記憶制御装置100,200,300がそれぞれ保持するのではなく、各副記憶制御装置200,300は正記憶制御装置100との対応関係のみを保持する。
図21は、第3実施例のストレージシステムで実行される処理の一部を示すフローチャートである。このフローチャートは、図18で説明したフローチャートに対応しており、共通のステップを含んでいる。そこで、共通のステップの説明を省略し、特徴的なステップを中心に説明する。
S79の後、ホスト10Bは、第2副記憶制御装置300にペア確認情報の送信を要求する(S101)。ペア確認情報とは、第1副データボリューム232,233と第2副データボリューム332,333との対応関係を確認するための情報である。
ここで、ペア確認情報としては、例えば、製品番号やM.VOL番号等を挙げることができる。製品番号とは、正記憶制御装置100の装置識別番号である。M.VOL番号とは、第2副データボリューム332,333に対応する相手方ボリュームのボリューム番号である。これら正記憶制御装置100の装置識別番号及び第2副データボリューム332,333に対応する相手方ボリュームのボリューム番号は、それぞれ第2副記憶制御装置300によって保持されている。
第2副記憶制御装置300は、ペア確認情報の取得要求を受信すると(S102)、ペア確認情報を第1副記憶制御装置200に送信する(S103)。第1副記憶制御装置200は、ペア確認情報を取得すると(S104)、このペア確認情報と第1副記憶制御装置200に予め記憶されているペア確認情報とが一致するか否かを判定する(S105)。
両方のペア確認情報が一致する場合(S105:YES)、その第2副記憶制御装置300は、第1副記憶制御装置200と対応しており、接続可能な場合である。そこで、第1副記憶制御装置200は、S80以降のステップを実行する。これに対し、両方のペア確認情報が不一致の場合(S105:NO)、その第2副記憶制御装置300は、第1副記憶制御装置200に対応していない場合である。そこで、エラー処理が行われる(S106)。このエラー処理では、例えば、エラーメッセージをユーザに通知することができる。
このように、ペア確認情報に基づいて、第1副記憶制御装置200と第2副記憶制御装置300とが対応するか否かを確認し、両者を接続させる構成とすることにより、各副記憶制御装置200,300で管理されるペア管理テーブルT22,T23の情報量を削減することができる。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、通信プロトコルとして、SANやLANを例示したが、これに限定されるものではなく、例えば、iSCSI、ESCON(登録商標)、FICON(登録商標)等の他のプロトコルにも適用することができる。
1…正記憶制御装置、1A…正ボリューム、1B…正ジャーナルボリューム、2…副記憶制御装置、2A…副ボリューム、2B,2C…差分管理テーブル、3…副記憶制御装置、3A…副ボリューム、3B…副ジャーナルボリューム、4…ホストコンピュータ、5…管理番号、6…更新データ、7…ジャーナルデータ、10A,10B,10C…ホストコンピュータ、11…アプリケーションプログラム、12…ストレージ管理プログラム、13…ホストバスアダプタ、20A,20B,20C…管理端末、21…ストレージ管理部、100…正記憶制御装置、110…コントローラ、110A…切替判定部、110B…消去判定部、110C…閾値記憶部、111…チャネルアダプタ、111A…ポート、112…ディスクアダプタ、113…キャッシュメモリ、114…共有メモリ、115,116…接続部、117…サービスプロセッサ、120…記憶部、121…ディスクドライブ、130…ジャーナルグループ、131…正ジャーナルボリューム、132,133…正データボリューム、200…第1副記憶制御装置、210…コントローラ、220…記憶部、230…ジャーナルグループ、231…ジャーナルボリューム、232,233…副データボリューム、300…第2副記憶制御装置、310…コントローラ、320…記憶部、330…ジャーナルグループ、331…副ジャーナルボリューム、332,333…副データボリューム、400…副記憶制御装置、510,520,530…通信ネットワーク
Claims (8)
- 第1記憶制御装置に第2記憶制御装置及び第3記憶制御装置がそれぞれ接続されたストレージシステムにおいて、
前記第1記憶制御装置は、第1データボリュームと、この第1データボリュームの更新履歴を管理する第1ジャーナルボリュームと、上位装置が前記第1データボリュームにライトデータを書き込んだ場合に、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを前記第1ジャーナルボリュームに記憶させ、かつ、前記ライトデータを前記第2記憶制御装置に送信させる第1制御部とを備え、
前記第2記憶制御装置は、前記第1データボリュームに関係づけられる第2データボリュームと、前記第1制御部から受信した前記ライトデータを前記第2データボリュームに記憶させ、かつ、前記ライトデータの記憶位置を差分管理テーブルに記憶させる第2制御部とを備え、
前記第3記憶制御装置は、前記第1データボリュームに関係づけられる第3データボリュームと、前記第1ジャーナルボリュームに関係づけられる第2ジャーナルボリュームと、前記第1ジャーナルボリュームから前記ジャーナルデータを読み出して前記第2ジャーナルボリュームに記憶させ、かつ、前記第2ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて前記第3データボリュームの記憶内容を更新させる第3制御部とを備え、
前記第1記憶制御装置から前記第2記憶制御装置に切り替えられた場合、前記第2制御部は、前記差分管理テーブルに基づいて、差分データを前記第3記憶制御装置に送信し、前記差分データを前記第3ボリュームに記憶させるストレージシステム。 - 前記第2制御部は、前記第2データボリュームを正ボリューム、前記第3データボリュームを副ボリュームとするコピーペアが形成された場合に、前記第1記憶制御装置から前記第2記憶制御装置への切替が完了した旨を前記上位装置に通知する請求項1に記載のストレージシステム。
- 前記第1記憶制御装置から前記第2記憶制御装置に切り替えられた場合、前記第2制御部は、前記上位装置が前記第2データボリュームにライトデータを書き込むと、このライトデータに管理番号を設定してジャーナルデータを生成し、このジャーナルデータを第3ジャーナルボリュームに記憶させ、
前記第3制御部は、前記第3ジャーナルボリュームから前記ジャーナルデータを読み出して前記第2ジャーナルボリュームに記憶させ、かつ、前記第2ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて前記第3データボリュームの記憶内容を更新させる請求項1に記載のストレージシステム。 - 前記差分管理テーブルは複数設けられており、
前記第2制御部は、前記複数の差分管理テーブルを切り替えながら使用する請求項1に記載のストレージシステム。 - 前記差分管理テーブルは複数設けられており、
前記第2制御部は、前記第1記憶制御装置から前記第2記憶制御装置に切り替えられた場合、前記複数の差分管理テーブルのそれぞれの記憶内容に基づいて差分データを検出し、この検出された差分データを前記第3記憶制御装置に送信して、前記第3ボリュームに記憶させる請求項1に記載のストレージシステム。 - 前記第1制御部は、前記上位装置から受信したライトデータに設定される管理番号の値が予め設定されている切替閾値に達した場合に、前記第2制御部に切替指示を発行し、かつ、前記第3制御部によって前記第1ジャーナルボリュームから読み出された前記ジャーナルデータに設定されている管理番号の値が予め設定されている消去閾値に達した場合に、前記第2制御部に消去指示を発行し、
前記第2制御部は、前記切替指示を受信した場合に、前記複数の差分管理テーブルのうち使用する差分管理テーブルを切り替え、前記消去指示を受信した場合に、前記複数の差分管理テーブルのうち現在使用中の差分管理テーブルの前に使用されていた差分管理テーブルの記憶内容を消去させる請求項5に記載のストレージシステム。 - 第1記憶制御装置に第2記憶制御装置及び第3記憶制御装置がそれぞれ接続されたストレージシステムを管理するための方法であって、
第1記憶制御装置の有する第1データボリュームに上位装置がライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、
前記生成されたジャーナルデータを前記第1記憶制御装置の有する第1ジャーナルボリュームに記憶させるステップと、
前記ライトデータを前記第1記憶制御装置から前記第2記憶制御装置に送信させるステップと、
前記第1記憶制御装置から前記第2記憶制御装置に送信されたライトデータを前記第2記憶制御装置の有する第2データボリュームに記憶させるステップと、
前記ライトデータが前記第2データボリュームに記憶された記憶位置を差分管理テーブルに登録させるステップと、
所定のタイミングが到来した場合に、前記第3記憶制御装置から前記第1記憶制御装置にアクセスし、前記第1ジャーナルボリュームに記憶されている前記ジャーナルデータを取得するステップと、
前記取得されたジャーナルデータを前記第3記憶制御装置の有する第2ジャーナルボリュームに記憶させるステップと、
前記第2ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて、前記第3記憶制御装置の有する第3データボリュームの記憶内容を更新させるステップと、
を含んだことを特徴とするストレージシステムの管理方法。 - さらに、前記第1記憶制御装置に障害が発生したか否かを監視するステップと、
前記第1記憶制御装置に障害が発生した場合に、前記差分管理テーブルの記憶内容に基づいて、差分データを前記第3記憶制御装置に送信させ、前記差分データを前記第3ボリュームに記憶させるステップと、
前記第2データボリュームを正ボリュームとし、前記第3データボリュームを副ボリュームとするコピーペアを形成させるステップと、
前記コピーペアが形成された場合に、前記第1記憶制御装置から前記第2記憶制御装置への切替が完了した旨を前記上位装置に通知するステップと、
前記上位装置が前記第2データボリュームにライトデータを書き込んだ場合には、このライトデータに管理番号を設定してジャーナルデータを生成するステップと、
前記生成されたジャーナルデータを前記第2記憶制御装置の有する第3ジャーナルボリュームに記憶させるステップと、
所定のタイミングが到来した場合に、前記第3記憶制御装置から前記第2記憶制御装置にアクセスし、前記第3ジャーナルボリュームに記憶されている前記ジャーナルデータを取得するステップと、
前記取得されたジャーナルデータを前記第2ジャーナルボリュームに記憶させるステップと、
前記第2ジャーナルボリュームに記憶された前記ジャーナルデータに基づいて、前記第3データボリュームの記憶内容を更新させるステップと、
を含んだ請求項8に記載のストレージシステムの管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005253440A JP2007066162A (ja) | 2005-09-01 | 2005-09-01 | ストレージシステム及びストレージシステムの管理方法 |
US11/254,717 US7421550B2 (en) | 2005-09-01 | 2005-10-21 | Storage system and storage system management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005253440A JP2007066162A (ja) | 2005-09-01 | 2005-09-01 | ストレージシステム及びストレージシステムの管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007066162A true JP2007066162A (ja) | 2007-03-15 |
Family
ID=37805718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005253440A Pending JP2007066162A (ja) | 2005-09-01 | 2005-09-01 | ストレージシステム及びストレージシステムの管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7421550B2 (ja) |
JP (1) | JP2007066162A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282241A (ja) * | 2007-05-11 | 2008-11-20 | Hitachi Ltd | 記憶制御装置、記憶制御装置の制御方法及び情報処理システム |
JP2009151636A (ja) * | 2007-12-21 | 2009-07-09 | Nomura Research Institute Ltd | 業務継続システム |
JP2009151635A (ja) * | 2007-12-21 | 2009-07-09 | Nomura Research Institute Ltd | 業務継続システム |
WO2010122675A1 (ja) * | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | 計算機システム及びバックアップ方法 |
WO2010122676A1 (ja) * | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | 計算機システム、及び、それを用いたバックアップ方法 |
JP2011076130A (ja) * | 2009-09-29 | 2011-04-14 | Hitachi Ltd | ストレージクラスタ環境でのリモートコピー制御方法及びシステム |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571292B2 (en) * | 2006-03-21 | 2009-08-04 | International Business Machines Corporation | Producing tertiary instant virtual copies without volume suspension |
US7590811B1 (en) * | 2006-08-30 | 2009-09-15 | Emc Corporation | Methods and system for improving data and application availability in clusters |
US7702953B2 (en) * | 2007-01-04 | 2010-04-20 | International Business Machines Corporation | Storage management in cascaded replication of data |
US8015343B2 (en) | 2008-08-08 | 2011-09-06 | Amazon Technologies, Inc. | Providing executing programs with reliable access to non-local block data storage |
US8250031B2 (en) * | 2008-08-26 | 2012-08-21 | Hitachi, Ltd. | Low traffic failback remote copy |
JP4907630B2 (ja) * | 2008-10-23 | 2012-04-04 | 株式会社日立製作所 | ジャーナルを利用したリモートコピーを行う計算機システム |
US20110246731A1 (en) * | 2009-03-18 | 2011-10-06 | Hitachi, Ltd. | Backup system and backup method |
WO2011125126A1 (ja) * | 2010-04-07 | 2011-10-13 | 株式会社日立製作所 | 非同期リモートコピーシステム、及び、記憶制御方法 |
US8271438B2 (en) | 2010-04-07 | 2012-09-18 | Hitachi, Ltd. | Asynchronous remote copy system and storage control method |
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 |
WO2016068870A1 (en) * | 2014-10-28 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Media controller with coordination buffer |
WO2018011882A1 (ja) * | 2016-07-12 | 2018-01-18 | 株式会社日立製作所 | 計算機システム及びストレージ装置の制御方法 |
US11099934B2 (en) * | 2018-08-24 | 2021-08-24 | International Business Machines Corporation | Data rebuilding |
CN116974454A (zh) * | 2022-04-21 | 2023-10-31 | 戴尔产品有限公司 | 用于数据处理的方法、电子设备和计算机程序产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7130975B2 (en) | 2003-06-27 | 2006-10-31 | Hitachi, Ltd. | Data processing system |
JP4374953B2 (ja) | 2003-09-09 | 2009-12-02 | 株式会社日立製作所 | データ処理システム |
JP4021823B2 (ja) | 2003-09-01 | 2007-12-12 | 株式会社日立製作所 | リモートコピーシステム及びリモートコピーの方法 |
JP4489455B2 (ja) * | 2004-02-16 | 2010-06-23 | 株式会社日立製作所 | ディスク制御装置及びディスク制御装置の制御方法 |
-
2005
- 2005-09-01 JP JP2005253440A patent/JP2007066162A/ja active Pending
- 2005-10-21 US US11/254,717 patent/US7421550B2/en active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282241A (ja) * | 2007-05-11 | 2008-11-20 | Hitachi Ltd | 記憶制御装置、記憶制御装置の制御方法及び情報処理システム |
JP2009151636A (ja) * | 2007-12-21 | 2009-07-09 | Nomura Research Institute Ltd | 業務継続システム |
JP2009151635A (ja) * | 2007-12-21 | 2009-07-09 | Nomura Research Institute Ltd | 業務継続システム |
WO2010122675A1 (ja) * | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | 計算機システム及びバックアップ方法 |
WO2010122676A1 (ja) * | 2009-04-23 | 2010-10-28 | 株式会社日立製作所 | 計算機システム、及び、それを用いたバックアップ方法 |
JPWO2010122676A1 (ja) * | 2009-04-23 | 2012-10-25 | 株式会社日立製作所 | 計算機システム、及び、それを用いたバックアップ方法 |
US8583884B2 (en) | 2009-04-23 | 2013-11-12 | Hitachi, Ltd. | Computing system and backup method |
JP5456767B2 (ja) * | 2009-04-23 | 2014-04-02 | 株式会社日立製作所 | 計算機システム及びバックアップ方法 |
US8745006B2 (en) | 2009-04-23 | 2014-06-03 | Hitachi, Ltd. | Computing system and backup method using the same |
JP5564494B2 (ja) * | 2009-04-23 | 2014-07-30 | 株式会社日立製作所 | 計算機システム、及び、それを用いたバックアップ方法 |
JP2011076130A (ja) * | 2009-09-29 | 2011-04-14 | Hitachi Ltd | ストレージクラスタ環境でのリモートコピー制御方法及びシステム |
Also Published As
Publication number | Publication date |
---|---|
US20070050574A1 (en) | 2007-03-01 |
US7421550B2 (en) | 2008-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4738941B2 (ja) | ストレージシステム及びストレージシステムの管理方法 | |
JP2007066162A (ja) | ストレージシステム及びストレージシステムの管理方法 | |
US7165163B2 (en) | Remote storage disk control device and method for controlling the same | |
CN101174197B (zh) | 信息系统及信息系统的数据转发方法 | |
US8332361B2 (en) | Data processing system and storage subsystem provided in data processing system | |
US8234471B2 (en) | Remote copy method and remote copy system | |
US7203806B2 (en) | Remote storage disk control device with function to transfer commands to remote storage devices | |
US8285824B2 (en) | Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized | |
US8255649B2 (en) | Remote copy control method and system in storage cluster environment | |
US7908510B2 (en) | Storage system and method of designing disaster recovery constitution | |
JP2004264973A (ja) | ストレージシステムの制御方法、ストレージシステム、情報処理装置、管理コンピュータ、及びプログラム | |
US20100036896A1 (en) | Computer System and Method of Managing Backup of Data | |
US20140149666A1 (en) | Storage system and virtualization method | |
JP2009116809A (ja) | 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法 | |
JP2005157739A (ja) | ディスクアレイ装置及びディスクアレイ装置の障害回避方法 | |
JP2007086972A (ja) | ストレージシステム、二重化制御方法、及びプログラム | |
JP2008186142A (ja) | リモートバックアップ方法及びストレージシステム | |
JP4911198B2 (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御方法 | |
JP2008269374A (ja) | ストレージシステムおよびその制御方法 | |
JP4454299B2 (ja) | ディスクアレイ装置及びディスクアレイ装置の保守方法 | |
US7836157B2 (en) | File sharing system and file sharing system setting method | |
JP6230707B2 (ja) | ストレージシステム | |
US8281089B2 (en) | Storage system and its initial copy method | |
US11308122B2 (en) | Remote copy system |