(57)【特許請求の範囲】
【請求項１】
ストレージシステムにネットワークを介して接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備えるホスト計算機と、
前記ホスト計算機に通信路を介して接続されるインターフェースと、データを格納するディスク装置と、前記ディスク装置へのデータの入出力を制御する制御装置と、情報を格納するメモリと、を備えるストレージシステムと、
を備える計算機システムにおいて、
前記ディスク装置は、前記ホスト計算機によってアクセスされるデータを格納する第１の領域と、前記第１の領域に格納されたデータの更新データを格納する第２の領域と、前記第１の領域に格納されたデータの複製を格納する第３の領域とを備え、
前記制御装置は、領域登録処理部と、出力処理部と、生成処理部と、反映処理部と、マーカ処理部、を備え、
前記領域登録処理部は、前記ホスト計算機から取得した前記第１の領域におけるデータ格納範囲を特定する情報からエントリを生成して、管理テーブルに登録し、
前記出力処理部は、前記ホスト計算機からのデータの更新要求に基づいて、前記第１の領域に格納されたデータを更新し、
前記生成処理部は、前記更新要求に係る更新データからエントリを生成して前記第２の領域に格納し、
前記マーカ処理部は、前記管理テーブルに登録されているエントリのデータ格納範囲を指定する前記ホスト計算機からのマーカの生成要求に基づいて、前記指定されたエントリのデータ格納範囲を示す情報及び当該データ格納範囲の更新データを前記第３の領域に反映することの許可の情報を含むマーカを生成して前記第２の領域に格納し、
前記反映処理部は、前記マーカを参照して、当該マーカよりも前に前記第２の領域に格納され当該マーカが示すデータ格納範囲の更新データを含むエントリを特定し、当該特定した更新データを前記第３の領域に反映することを特徴とする計算機システム。
【請求項２】
前記領域登録処理部は、前記管理テーブルに、前記第１の領域におけるデータ格納範囲を特定する情報と当該データ格納範囲を識別する識別子とを含むエントリを登録し、
前記生成処理部は、前記管理テーブルを参照して、前記ホスト計算機からの更新要求に係る更新データのアドレスが含まれるデータ格納範囲の識別子を特定し、前記第２の領域における当該更新データのエントリに、当該更新データ及び当該特定した識別子を格納し、
前記マーカは、前記データ格納範囲を示す情報として、前記管理テーブルに登録されている当該データ格納範囲の識別子を含み、
前記反映処理部は、前記マーカに含まれている前記識別子と同一の識別子を含むエントリの更新データを前記第３の領域に反映することを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記第２の領域は、前記第１領域におけるデータ格納範囲の識別子を設定されたエントリと、前記第１領域におけるデータ格納範囲の識別子を設定されていないエントリと、を格納し、
前記反映処理部は、
前記第２の領域において、更新データを前記第３の領域へ反映することを許可することを示す情報を含む最新のエントリを探索し、
前記最新のエントリにおいて前記第１領域におけるデータ格納範囲の識別子が設定されていない場合、当該エントリ以前に前記第２領域に格納され前記第１領域におけるデータ格納範囲の識別子が設定されていないエントリ、に含まれる更新データを、前記第３の領域に反映することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記管理テーブルにおける前記エントリは、前記データ格納範囲を識別する識別子を含み、
前記生成処理部は、前記第２の領域における更新データのエントリに、当該更新データ及び前記ホスト計算機から取得した当該更新データの前記第１の領域におけるアドレス情報を格納し、
前記マーカは、前記データ格納範囲を示す情報として、前記管理テーブルに登録されている当該データ格納範囲の識別子を含み、
前記反映処理部は、前記管理テーブルを参照して、前記マーカに含まれている前記識別子が識別するデータ格納範囲を特定し、当該データ格納範囲に含まれるアドレスの更新データを前記第３の領域に反映することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記ディスク装置は、前記ホスト計算機によって処理されるファイルを構成するデータ格納し、
前記ホスト計算機は、前記ファイルをクローズするときに、当該ファイルを構成するデータに対応する前記マーカ生成要求を前記ストレージシステムに送信することを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記ディスク装置は、前記ホスト計算機で稼動するアプリケーションソフトウェアによって生成されたファイルを構成するデータを、前記第１の領域のうち、前記アプリケーションソフトウェアに関係する領域に格納し、
前記ホスト計算機は、前記アプリケーションソフトウェアが前記ファイルを用いた処理を終了するときに、当該ファイルを構成するデータに対応する前記マーカ生成要求を前記ストレージシステムに送信することを特徴とする請求項１に記載の計算機システム。
【請求項７】
ストレージシステムにネットワークを介して接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備えるホスト計算機と、
前記ホスト計算機にネットワークを介して接続されるインターフェースと、データを格納する第１のディスク装置と、前記第１のディスク装置へのデータの入出力を制御する第１の制御装置と、情報を格納するメモリと、を備える第１のストレージシステムと、
前記第１のストレージシステムにネットワークを介して接続されるインターフェースと、データを格納する第２のディスク装置と、前記第２のディスク装置へのデータの入出力を制御する第２の制御装置と、情報を格納するメモリとを備えた第２のストレージシステムと、
を備える計算機システムにおいて、
前記第１のディスク装置は、前記ホスト計算機によってアクセスされるデータを格納する第１の領域と、前記第１の領域に格納されたデータの更新データを格納する第２の領域と、を備え、
前記第２のディスク装置は、前記更新データの複製を格納する第４の領域と、前記第１の領域に格納されたデータの複製を格納する第５の領域と、を備え、
前記第１の制御装置は、領域登録処理部と、出力処理部と、生成処理部と、マーカ処理部と、送信処理部と、を備え、
前記第２の制御装置は、受信処理部と、反映処理部と、を備え、
前記領域登録処理部は、前記ホスト計算機から取得した前記第１の領域におけるデータ格納範囲を特定する情報からエントリを生成して、管理テーブルに登録し、
前記出力処理部は、前記ホスト計算機からのデータの更新要求に基づいて、前記第１の領域に格納されたデータを更新し、
前記生成処理部は、前記更新要求に係る更新データからエントリを生成して前記第２の領域に格納し、
前記マーカ処理部は、前記管理テーブルに登録されているエントリのデータ格納範囲を指定する前記ホスト計算機からのマーカの生成要求に基づいて、前記指定されたエントリのデータ格納範囲を示す情報及び当該データ格納範囲の更新データを前記第５の領域に反映することの許可の情報を含むマーカを生成して前記第２の領域に格納し、
前記送信処理部は、前記第２の領域における前記エントリ及び前記マーカを、前記第２のストレージシステムに送信し、
前記受信処理部は、前記第１のストレージシステムから送信された前記エントリ及び前記マーカを前記第４の領域に格納し、
前記反映処理部は、前記第１のストレージシステムから送信されたマーカを参照して、当該マーカよりも前に前記第２の領域に格納された当該マーカが示すデータ格納範囲のエントリを特定し、当該特定したエントリの更新データを前記第５の領域に反映することを特徴とする計算機システム。
【請求項８】
前記ホスト計算機のプロセッサは、
前記ディスク装置に格納されたデータの格納されている領域の情報を管理し、
データが格納されている前記ディスク装置の領域の情報を、前記ストレージシステムに要求し、
前記ストレージシステムから送信された前記領域の情報を、対応するデータの識別子に対応付けて、前記メモリに格納することを特徴とする請求項１に記載の計算機システム。
【請求項９】
前記ホスト計算機のプロセッサは、前記ホスト計算機によって処理されるファイルをクローズするときに、当該ファイルを構成するデータが格納されている領域 の情報を指示して、当該データの複製の格納を許可する情報を含むマーカの生成要求を送信することを特徴とする請求項８に記載の計算機システム。
【請求項１０】
前記ホスト計算機のプロセッサは、
ファイルを処理するアプリケーションソフトウェアを実行し、
前記アプリケーションソフトウェアが前記ファイルを用いた処理を終了するときに、前記ファイルを構成するデータが格納されている領域の情報を指示して、当該データの複製の格納を許可する情報を含むマーカの生成要求を送信することを特徴とする請求項８に記載の計算機システム。
【請求項１１】
ストレージシステムにネットワークを介して接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメ モリとを備えるホスト計算機と、前記ホスト計算機に通信路を介して接続されるインターフェースと、データを格納するディスク装置と、前記ディスク装置への データの入出力を制御する制御装置と、情報を格納するメモリと、を備えるストレージシステムと、を備える計算機システムで実行されるデータ複製方法において、
前記ホスト計算機から取得した前記第１の領域におけるデータ格納範囲を特定する情報からエントリを生成して、管理テーブルに登録する第１のステップと、
前記ホスト計算機からのデータの更新要求に基づいて、前記第１の領域に格納されたデータを更新する第２のステップと、
前記更新要求に係る更新データからエントリを生成して前記第２の領域に格納する第３のステップと、
前記管理テーブルに登録されているエントリのデータ格納範囲を指定する前記ホスト計算機からのマーカの生成要求に基づいて、前記指定されたエントリのデータ格納範囲を示す情報及び当該データ格納範囲の更新データを前記第３の領域に反映することの許可の情報を含むマーカを、前記第２の領域に格納する第４のステップと、
前記マーカを参照して、当該マーカよりも前に前記第２の領域に格納され当該マーカが示すデータ格納範囲の更新データを含むエントリを特定し、当該特定した更新データを前記第３の領域に反映する第５のステップと、を備えることを特徴とするデータ複製方法。
【請求項１２】
前記第１のステップは、前記管理テーブルに、前記第１の領域におけるデータ格納範囲を特定する情報と当該データ格納範囲を識別する識別子とを含むエントリを登録し、
前記第３のステップは、前記管理テーブルを参照して、前記ホスト計算機からの更新要求に係る更新データのアドレスが含まれるデータ格納範囲の識別子を特定し、前記第２の領域における当該更新データのエントリに、当該更新データ及び当該特定した識別子を格納し、
前記マーカは、前記データ格納範囲を示す情報として、前記管理テーブルに登録されている当該データ格納範囲の識別子を含み、
前記第５のステップは、前記マーカに含まれている前記識別子と同一の識別子を含むエントリの更新データを前記第３の領域に反映することを特徴とする請求項１１に記載のデータ複製方法。
【請求項１３】
前記第２の領域は、前記第１領域におけるデータ格納範囲の識別子を設定されたエントリと、前記第１領域におけるデータ格納範囲の識別子を設定されていないエントリと、を格納し、
前記第５のステップは、
前記第２の領域において、更新データを前記第３の領域へ反映することを許可することを示す情報を含む最新のエントリを探索し、
前記最新のエントリにおいて前記第１領域におけるデータ格納範囲の識別子が設定されていない場合、当該エントリ以前に前記第２領域に格納され前記第１領域におけるデータ格納範囲の識別子が設定されていないエントリ、に含まれる更新データを、前記第３の領域に反映することを特徴とする請求項１２に記載のデータ複製方法。
【請求項１４】
前記管理テーブルにおける前記エントリは、前記データ格納範囲を識別する識別子を含み、
前記第３のステップは、前記第２の領域における更新データのエントリに、当該更新データ及び前記ホスト計算機から取得した当該更新データの前記第１の領域におけるアドレス情報を格納し、
前記マーカは、前記データ格納範囲を示す情報として、前記管理テーブルに登録されている当該データ格納範囲の識別子を含み、
前記第５のステップは、前記管理テーブルを参照して、前記マーカに含まれている前記識別子が識別するデータ格納範囲を特定し、当該データ格納範囲に含まれるアドレスの更新データを前記第３の領域に反映することを特徴とする請求項１１に記載のデータ複製方法。
【請求項１５】
前記ディスク装置は、前記ホスト計算機によって処理されるファイルを構成するデータを格納し、
前記ホスト計算機は、前記ファイルをクローズするときに、当該ファイルを構成するデータに対応する前記マーカ生成要求を前記ストレージシステムに送信することを特徴とする請求項１１に記載のデータ複製方法。
【請求項１６】
前記ディスク装置は、前記ホスト計算機で稼動するアプリケーションソフトウェアによって生成されたファイルを構成するデータを、前記第１の領域のうち、前記アプリケーションソフトウェアに関係する領域に格納し、
前記ホスト計算機は、前記アプリケーションソフトウェアが前記ファイルを用いた処理を終了するときに、前記マーカ生成要求を前記ストレージシステムに送信することを特徴とする請求項１１に記載のデータ複製方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムにおけるデータのバックアップ及びデータのリカバリに関する。
【背景技術】
【０００２】
ストレージシステムに格納するデータに関し、災害や障害によってデータが消失するリスクを低減するために、ストレージシステムに格納されたデータの複製作成し、これを格納する方法が知られている。この複製を作成する技術の一つに、ジャーナルを用いたバックアップ・リストア及びリモートコピー技術がある。
【０００３】
例えば、ジャーナルを使ったバックアップ・リストア技術には次のようなものが知られている。すなわち、ストレージシステムは、複数のジャーナルエントリと一つ以上のデータボリュームの少なくとも一つのスナップショットのジャーナルを維持する。ジャーナルとスナップショットの各々に発生順に固有な順序番号を割り当てることにより、スナップショットに適用すべきジャーナルを見つけることが容易になる。ジャーナルスペースが枯渇するオーバーフロー条件を検出し、ジャーナルスペースを回復する（特許文献１、参照。）。
【０００４】
また、ジャーナルを使ったリモートコピー技術には、次のようなものが知られている。すなわち、上位装置に接続された正記憶システムに、２台以上の副記憶システムが接続される。副記憶システムは、それぞれ、独自のタイミングで正記憶システムからデータ更新のジャーナルを読み所定の論理ボリュームに保存し、そして、独自のタイミングで論理ボリューム内のジャーナルに基づき、正記憶システム内のデータの複製を生成して、副論理ボリュームに保存する。正記憶システムは、副記憶システムの双方がジャーナルを読んでリストアするまで、そのジャーナルを保持する。ジャーナルリードのタイミングはジャーナル量、処理負担などに応じて制御される（特許文献２、参照。）。
【特許文献１】特開２００５−１８７３８号公報
【特許文献２】特開２００５−１７４１９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述の特許文献１に記載の技術では、ジャーナルデータからスナップショットを回復するときに、ジャーナル内に存在する指定された時点以前のデータすべてを副ボリュームに書き込む。しかし、ジャーナル内に複数のプログラムのデータが混在する場合は、あるプログラムにおいてチェックポイントであっても、他のプログラムからはその時点でファイルを更新中のため、整合性がとれてない状態となる可能性が生じる問題がある。プログラムはそれぞれ個別に稼働するので、複数のプログラムのチェックポイントを一致させることは困難である。プログラム毎に使用するファイルを格納するボリュームとジャーナルを分離すればこの問題を回避できるが、ボリュームやジャーナルの利用効率が低下してしまう。
【０００６】
本発明の目的は、複数のプログラムでボリュームやジャーナルを共有しつつ、各プログラムが使用するデータに関して、それぞれのプログラムのチェックポイント時点におけるデータを副ボリュームに保持することができる手段を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ストレージシステムにネットワークを介して接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリとを備えるホスト計算機と、前記ホスト計算機に通信路を介して接続されるインターフェースと、データを格納するディスク装置と、前記ディスク装置へのデータの入出力を制御する制御装置と、情報を格納するメモリと、を備えるストレージシステムとを備える計算機システムである。前記ディスク装置は、前記ホスト計算機によってアクセスされるデータを格納する第１の領域と、前記第１の領域に格納されたデータの更新データを格納する第２の領域と、前記第１の領域に格納されたデータの複製を格納する第３の領域とを備える。前記制御装置は、領域登録処理部と、出力処理部と、生成処理部と、反映処理部と、マーカ処理部を備える。前記領域登録処理部は、前記ホスト計算機から取得した前記第１の領域におけるデータ格納範囲を特定する情報からエントリを生成して、管理テーブルに登録する。前記出力処理部は、前記ホスト計算機からのデータの更新要求に基づいて、前記第１の領域に格納されたデータを更新する。前記生成処理部は、前記更新要求に係る更新データからエントリを生成して前記第２の領域に格納する。前記マーカ処理部は、前記管理テーブルに登録されているエントリのデータ格納範囲を指定する前記ホスト計算機からのマーカの生成要求に基づいて、前記指定されたエントリのデータ格納範囲を示す情報及び当該データ格納範囲の更新データを前記第３の領域に反映することの許可の情報を含むマーカを生成して前記第２の領域に格納する。前記反映処理部は、前記マーカを参照して、当該マーカよりも前に前記第２の領域に格納され当該マーカが示すデータ格納範囲の更新データを含むエントリを特定し、当該特定した更新データを前記第３の領域に反映する。
【発明の効果】
【０００８】
本発明によれば、ジャーナルデータに、複数のプログラムのデータが混在していても、各々のプログラムのチェックポイント時点のデータを副ボリュームに保持することができる。これによって、複数のプログラムでボリュームやジャーナルを共有しつつ、正ボリュームのデータの複製を、共有しているそれぞれのプログラムから整合性がとれた状態で保存することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１０】
本発明の実施の形態は、ホスト１とストレージシステム２とが通信路を介して接続されて構成された計算機システムにおいて、実行される処理として実現される。
【００１１】
以下に、本発明による実施の形態を説明する。
（第１実施形態）
図１は、本発明の第１の実施の形態の計算機システムの構成ブロック図である。
【００１２】
この計算機システムは、ホスト１と、ホスト１に接続されたストレージシステム２と、ホスト１とストレージシステム２とを接続するための通信路３とを含む。
【００１３】
ホスト１は、ストレージシステム２に要求を発行し、ストレージシステム２からその要求の結果を受け取る。具体的には、ホスト１は、ストレージシステム２のディスクドライブ２５に格納されているデータの読み書き等を要求する。
【００１４】
ホスト１は、メモリ１１、プロセッサ１２及び入出力インターフェース（Ｉ／Ｆ）１３を備える。これらメモリ１１プロセッサ１２及び入出力Ｉ／Ｆ１３は、バス１４によって互いに接続されている。
【００１５】
メモリ１１は、プログラム及びプログラムが使用する情報を格納する。なお、メモリ１１は、ＲＡＭ等の揮発性の記憶装置でもよいし、ハードディスク等の不揮発性の記憶装置でもよいし両者を組み合わせた構成であってもよい。
【００１６】
プロセッサ１２は、メモリ１１に格納されているプログラムを読み込んで、そのプログラムに規定された処理を実行する。
【００１７】
入出力Ｉ／Ｆ１３は、通信路３に接続され、通信路３を介してストレージシステム２とでデータを送受信する。入出力Ｉ／Ｆ１３は、例えばホストチャネルアダプタによって構成される。
【００１８】
メモリ１１は、オペレーティングシステム及びアプリケーションプログラム（ＯＳ／ＡＰ）１００と、ジャーナル反映領域登録要求処理部１１００、チェックポイント要求処理部１２００、反映領域識別子管理テーブル１１０及びジョブ管理テーブル１２０等のプログラムを格納している。これらのプログラムがプロセッサ１２に読み込まれて実行されることによって、それぞれの機能が実行される。
【００１９】
ＯＳ／ＡＰ１００は、ストレージシステム２のファイルにアクセスを要求するアプリケーションプログラムと、当該アプリケーションプログラムからのアクセス要求に従って、ストレージシステム２にファイルの入出力を要求するオペレーションシステムとを含んでいる。
【００２０】
ジャーナル反映領域登録要求処理部１１００は、ストレージシステム２に格納されているデータに関し、どのデータがどの領域に格納されているかの情報を管理する。
【００２１】
チェックポイント要求処理部１２００は、ストレージシステム２に対してチェックポイントの生成を要求する。
【００２２】
反映領域識別子管理テーブル１１０は、ストレージシステム２に格納されているデータに関し、どのデータがどの領域に格納されているかという情報を格納するテーブルである。
【００２３】
ジョブ管理テーブル１２０は、ストレージシステム２に格納されているデータに関し、どのデータがどのアプリケーションプログラムによって使用されているかという情報を格納するテーブルである。
【００２４】
通信路３は、ホスト１とストレージシステム２とでデータを送受信可能に接続する通信経路である。通信路３は、例えば光ファイバケーブルやスイッチ等を備える。
【００２５】
ストレージシステム２は、ホスト１からの要求に従って、ディスクドライブ２５に格納されているデータを読み書きする。
【００２６】
ストレージシステム２は、制御装置２０とディスクドライブ２５と、共有メモリ２７とを備える。
【００２７】
制御装置２０は、ホスト１から通信路３を介して送信された要求を受け取り、当該要求に従った処理を実行する。
【００２８】
制御装置２０は、メモリ２１と、プロセッサ２２と、チャネルアダプタ２３と、ディスクアダプタ２４と、共有メモリ２７とを備える。
【００２９】
メモリ２１は、プログラム及びプログラムが使用する情報を格納する。なお、メモリ２１は、ＲＡＭ等の揮発性の記憶装置でもよいし、ハードディスク等の不揮発性の記憶装置でもよいし両者を組み合わせた構成であってもよい。
【００３０】
プロセッサ２２は、メモリ２１に格納されているプログラムを読み込んで、そのプログラムに規定された処理を実行する。
【００３１】
チャネルアダプタ２３は、通信路３に接続され、通信路３を介してホスト１とでデータを送受信する。
【００３２】
ディスクアダプタ２４は、プロセッサ２２によって実行される処理の要求に従って、ディスクドライブ２５とでデータを送受信する。
【００３３】
ディスクドライブ２５は、物理的な記憶領域である一以上のハードディスクドライブからなる記憶装置である。
【００３４】
共有メモリ２７は、ストレージシステム２の構成や制御に関する情報が格納されている。
【００３５】
なお、制御装置２０やディスクドライブ２５は、一つのストレージシステム２に複数備えられていてもよい。また、チャネルアダプタ２３は、一つのストレージシステム２０に複数備えられていてもよい。また、共有メモリ２７は、複数のストレージシステム２０間で共有するデータを格納してもよい。
【００３６】
次に、これら各部の詳細を説明する。
【００３７】
メモリ２１は、反映領域登録処理部２１００、入出力処理部２２００と、ジャーナル生成処理部２３００、マーカ記録処理部２４００及びジャーナル反映処理部２５００等のプログラムを格納している。これらのプログラムがプロセッサ２２に読み込まれて実行されることによって、それぞれの機能が実行される。
【００３８】
反映領域登録処理部２１００は、ディスクドライブ２５の論理ボリューム２６に格納されているデータに関し、どのデータがどの領域に格納されているかの情報を管理する。
【００３９】
入出力処理部２２００は、他のプログラムからの要求又はホスト１からの要求に従って、ディスクアダプタ２４を介して、ディスクドライブ２５の論理ボリューム２６に格納されているデータを入出力する。
【００４０】
ジャーナル生成処理部２３００は、ジャーナルデータ２００を生成する。
【００４１】
マーカ記録処理部２４００は、チェックポイント及びマーカをジャーナルデータ２００に記録する。
【００４２】
ジャーナル反映処理部２５００は、後述する差分反映処理を実行する。
【００４３】
ディスクドライブ２５は、物理的な記憶領域を論理的に分割した一以上の論理ボリュームを備える。本実施の形態では、主ボリューム２６ｐ、ジャーナルボリューム２６ｊ及び副ボリューム２６ｓの三つの論理ボリューム２６が構成されている。
【００４４】
なお、ディスクドライブ２５一つに一つの論理ボリュームを設定してもよいし、ディスクドライブ２５を論理的に分割した複数の領域それぞれを論理ボリュームに設定してもよい。また、ディスクドライブ２５をＲＡＩＤ（Redundant Arrays of Inexpensive Disks）型ディスクアレイとして設定し、複数のディスクドライブ２５に跨った領域を論理ボリューム２６としてもよい。なお、ホスト１は、論理ボリューム２６を、あたかも単一の物理的なボリュームとしてアクセスする。
【００４５】
論理ボリューム２６は、ホスト１のアプリケーションプログラムがアクセスするファイル２３０を格納している。なお、一つの論理ボリューム２６に複数のファイル２３０を格納できる。
【００４６】
ホスト１のアプリケーションプログラムがアクセスするファイル２３０を格納する論理ボリューム２６を、正ボリューム２６pと呼ぶ。
【００４７】
また、この正ボリューム２６ｐに格納されているファイル２３０への更新の処理要求があった場合は、制御装置２０は、そのファイル２３０の更新履歴であるジャーナルデータ２００を、正ボリューム２６ｐとは異なる論理ボリューム２６に格納する。この論理ボリュームをジャーナルボリューム２６ｊと呼ぶ。
【００４８】
また、制御装置２０は、正ボリューム２６ｐの内容の複製を、正ボリュームとは異なる論理ボリューム２６にコピーして正ボリューム２６ｓのバックアップを作成する。この論理ボリューム２６を副ボリューム２６ｓと呼ぶ。また、この正ボリューム２６ｐと副ボリューム２６ｓとの関係を、コピーペアと呼ぶ。
【００４９】
共有メモリ２７は、反映領域管理テーブル２２０と、ペア管理テーブル２４０とを格納している。
【００５０】
反映領域管理テーブル２２０は、反映領域登録処理部２１００によって管理される情報、すなわち、どのデータがどの領域に格納されているかの情報が格納される。
【００５１】
ペア管理テーブル２４０は、正ボリューム２６ｐと副ボリューム２６ｓとがコピーペアである場合に、その正ボリューム２６ｐ及び副ボリューム２６ｓの情報が格納される。
【００５２】
次に、正ボリューム２６ｓ及び副ボリューム２６ｐの複製の処理を説明する。
【００５３】
制御装置２０は、正ボリューム２６ｐに関し、ある時点での正ボリューム２６ｐに格納されているデータすべての複製を副ボリューム２６ｓにバックアップする。この時点で、正ボリューム２６ｐと副ボリューム２６ｓとの内容が等しくなる。
【００５４】
その後、ホスト１から正ボリューム２６ｐのファイル２３０に対する更新要求があった場合は、制御装置２０は、当該ファイル２３０に対する更新履歴をジャーナルボリューム２６ｊに格納する。ジャーナルボリュームに格納される更新履歴データをジャーナルデータ２００と呼ぶ。ジャーナルデータ２００には、更新要求の度に更新履歴が蓄積される。
【００５５】
その後、制御装置２０は、このジャーナルデータ２００を利用して差分反映処理を実行する。差分反映処理は、ジャーナルデータ２００に格納された更新履歴を、副ボリューム２６ｓに反映させる。これによって、副ボリューム２６ｓの内容が、差分反映処理時点での正ボリューム２６ｓの内容と等しくなる。
【００５６】
図２は、ペア管理テーブル２４０の説明図である。
【００５７】
前述のように、正ボリューム２６ｐと副ボリューム２６ｓとでコピーペアが設定されている。ペア管理テーブル２４０は、このコピーペアの対応関係を格納する。このペア管理テーブル２４０は、共有メモリ２７又はメインメモリ２１に格納されている。
【００５８】
ペア管理テーブル２４０は、ストレージシステム２内において論理ボリュームを一意に識別できる識別子を含むエントリ２４１を含む。エントリ２４１は、ペア管理テーブル２４０は、コピーペアとなっている正ボリューム２６ｐを含むストレージシステムの識別子と、正ボリューム２６ｐとなっている論理ボリュームの識別子と、副ボリューム２６ｓを含むストレージシステムの識別子と、副ボリューム２６ｓとなっている論理ボリュームの識別子とを含む。
【００５９】
次に、本実施形態の動作について説明する。
【００６０】
前述のように構成されたストレージシステム２において、ジャーナルデータ２００に格納されたデータを用いて、前回の差分反映処理以降に格納された差分履歴データを用いて副ボリューム２６ｓに差分反映処理をする。この差分反映処理によって、差分反映処理時点での最新のデータが副ボリューム２６ｓに格納に反映される。この副ボリューム２６ｓに反映されたデータをスナップショットと呼ぶ。
【００６１】
一般的に、差分反映処理は、主ボリューム２６ｐに対する出力処理とは非同期に行われる。従って、副ボリューム２６ｓに反映されたスナップショットの内容は、データの出力処理が完了していないものや、業務アプリケーションによって作業途中であるものが含まれる。具体的には、ファイルの終わりを示すマークがないために余分なデータを読み込んでしまったり、ファイルの一部が消失されていたり、ファイル内に含まれている自己ファイル内の他の位置へのポインタが正しい位置を示していない等の問題が生ずる。
【００６２】
副ボリューム２６ｓに反映されたスナップショットにあるファイル等のデータを正しく格納するためには、ファイルにアクセスしていたアプリケーションプログラムがファイルのアクセスを終了した状態にするファイルのクローズ処理や、ホスト１のバッファに残っている出力データをすべてストレージシステム２に出力して、アプリケーションが扱っていたファイルの内容と論理ボリューム２６内のファイルの内容とを一致させるフラッシュ処理等がされたファイルとする必要がある。
【００６３】
しかし、ジャーナルデータの取得対象である正ボリューム２６ｐに、複数のファイル２３０が格納されており、それぞれのファイル２３０を異なるアプリケーションソフトウェアがアクセスする場合がある、このような場合は、すべてのファイル２３０を同じタイミングでアクセスを終了して、同じチェックポイントを設定することができない場合が多い。
【００６４】
複数のファイル２３０を同じチェックポイントで扱うことができなければ、ファイルのアクセスを終了するタイミングがファイル２３０によって異なるので、チェックポイント以前のジャーナルデータをすべて副ボリューム２６ｓに反映すると、未完了のファイルデータが存在することとなり、内容を正しく読むことができないファイル２３０が生じてしまう。
【００６５】
このため、本実施の形態は、以下のような処理を実行する。
【００６６】
図３は、本実施形態の計算機システムにおける処理の説明図である。
【００６７】
本実施形態の計算機システムでは、ホスト１から主ボリューム２６ｐに対する出力要求があったときに、更新データをジャーナルデータ２００として格納する。そして、このジャーナルデータ２００に格納されたデータを、副ボリューム２６ｓに反映させる。
【００６８】
この前段階の処理として、ホスト１は、主ボリューム２６ｐに格納されているファイル２３０はどの領域に属しているかを取得して、これを反映領域識別子管理テーブル１１０に格納する。
【００６９】
この後、ホスト１は、ストレージシステム２の正ボリューム２６ｐに対して出力処理を実行し、更新履歴データをジャーナルデータ２０１としてジャーナルボリューム２６ｊに格納させる。このとき、ジャーナルデータ２０１には、設定された反映領域識別子が更新データと共に格納される。またさらに、所定のタイミングで、ジャーナルデータ２０１にチェックポイントを設定する。
【００７０】
この後、ジャーナルデータ２０１を用いて副ボリューム２６ｓにスナップショットを作成するときは、ジャーナルデータ２０１に格納されたデータのうち、反映領域識別子２２２が設定されているデータのみを反映させる。
【００７１】
以下に、この処理を説明する。
【００７２】
まず、ジャーナル反映領域登録要求処理部１１００は、ジャーナルデータ２００の取得対象となっている正ボリューム２６ｐに格納されているカタログ２５０から、ファイル２３０のアロケーション情報を取得する（処理Ｓ０１）。そして、取得したアロケーション情報を、当該正ボリューム２６ｐを備えるストレージシステム２の反映領域登録処理部２１００に転送する（処理Ｓ０２）。
【００７３】
なお、アロケーション情報とは、ファイル２３０が割り当てられている一又は複数の正ボリューム２６ｐの論理ボリューム識別子と、ファイル２３０が割り当てられている正ボリューム２６ｐ内の一又は複数の領域のデータアドレスと、ファイル２３０のデータ長と、を含む情報である。
【００７４】
反映領域登録処理部２１００は、ジャーナル反映領域登録要求処理部１１００から転送されたアロケーション情報を受け取ると、転送されたアロケーション情報に対して反映領域識別子２２２とエントリを割り当てる。そして、アロケーション情報と割り当てられた反映領域識別子２２２とを、共有メモリ２７の反映領域管理テーブル２２０に格納する（処理Ｓ０３）。そして、割り当てられた反映領域識別子２２２を、ジャーナル反映領域登録要求処理部１１００に送信する（処理Ｓ０４）。
【００７５】
なお、反映領域識別子２２２とは、アロケーション情報をストレージシステム２内で一意に識別する識別子である。
【００７６】
ジャーナル反映領域登録処理部１１００は、ファイル識別子１１２と反映領域登録処理部２１００から送信された反映領域識別子２２２とを、メモリ１１の反映領域識別子管理テーブル１１０に格納する（処理Ｓ０５）。なお、ファイル識別子１１２とは、ファイル２３０をホスト１内で一意に識別するファイル名称などの識別子である。
【００７７】
次に、ホスト１のＯＳ／ＡＰ１００からの出力要求があった場合は（処理Ｓ０６）、出力処理部２２００は、更新データを主ボリューム２６ｐに書き込む（処理Ｓ０７）。このとき、ジャーナル生成処理部２３００は、ジャーナルデータ２００のエントリ２０１を生成して更新データを格納する（処理Ｓ０８）。なお、出力要求がファイル２３０に対する出力要求である場合は、ジャーナルデータ２０１に、ファイル２３０に対応する反映領域識別子２２２を反映領域管理テーブル２２０から取得して、ジャーナルデータ２００のエントリ２０１に格納する。
【００７８】
次に、チェックポイント要求に基づいて、チェックポイントをジャーナルデータ２００に挿入する処理を実行する。
【００７９】
ＯＳ／ＡＰ１００は、ストレージシステム２の主ボリューム２６ｐに対してアクセスしている。ここで、ＯＳ／ＡＰ１００は、ファイルをクローズするタイミング、又は、アプリケーションプログラムの実行単位であるジョブが終了するタイミングで、チェックポイント要求を発行する（処理Ｓ０９）。このチェックポイント要求は、チェックポイント要求処理部１２００が受け取る。
【００８０】
チェックポイント要求処理部１２００は、クローズするファイル２３０又は終了するジョブのファイル２３０に対応する反映領域識別子２２２を反映領域識別子管理テーブル１１０から取得する（処理Ｓ１０）。そして、取得した反映領域識別子２２２を、ストレージシステム２のマーカ記録処理部２４００に転送する（処理Ｓ１１）。
【００８１】
マーカ記録処理部２４００は、転送された反映領域識別子２２２を受け取ると、チェックポイントを示すジャーナルデータ２００のエントリ２０１を生成して、ジャーナルデータ２００に格納する（処理Ｓ１２）。このエントリ２０１は、反映領域識別子２２２を含み、チェックポイント識別フラグ２０８が「ＯＮ」に設定される。
【００８２】
このように、反映領域識別子２２２を含み、かつ、チェックポイント識別フラグ２０８が「ＯＮ」であるチェックポイントを、本実施の形態では「マーカ」と呼ぶ。このマーカは、マーカに含まれる反映領域識別子２２２で示されるすべてのデータ、すなわち、ホスト１によって処理される単位であるファイルが、クローズされていることを示す。従って、このマーカが記録された以前の更新データのうち、マーカに含まれる反映領域識別子２２２で示されるすべてのデータは、処理が完了したデータとして副ボリューム２６ｓに反映させることができる。
【００８３】
図３の例では、ホスト１からのデータＡに対する更新要求が、ジャーナルデータ２００のエントリ（Ａ１）及びエントリ（Ａ２）として格納されている。また、ホスト１からのデータＢに対する更新要求が、ジャーナルデータ２００のエントリ（Ｂ１）及びエントリ（Ｂ２）として格納されている。また、ホスト１からのデータＡに対するチェックポイント要求が、ジャーナルデータ２００のチェックポイント（Ａ）として格納されている。すなわち、このチェックポイント（Ａ）が、データＡのチェックポイントを示す識別子となる。
【００８４】
一方、データＢに対するチェックポイント要求はまだなされていないため、データＢのチェックポイント対応するジャーナルデータは格納されていない。
【００８５】
この結果、ストレージシステム２において、チェックポイント（Ａ）以前に格納されたデータＡのエントリ（エントリ（Ａ１）及びエントリ（Ａ２））は、ホスト１において完了しているデータであることがわかる。一方、データＢについてはチェックポイントがまだ格納されていないので、ホスト１において完了しているデータではないことがわかる。
【００８６】
その後、ジャーナルデータ２００から、反映領域識別子２２２を設定した領域のデータを副ボリューム２６ｓに反映する処理を実行する。
【００８７】
ジャーナル反映処理部２５００は、ジャーナルデータ２００から、チェックポイント識別フラグ２０８がＯＮであるエントリ２０１を検索する。チェックポイント識別フラグ２０８がＯＮであるエントリ２０１があると、そのエントリ２０１に格納されている反映領域識別子２２２を取得する。そして、そのエントリ２０１より以前に格納されたエントリ２０１から、取得した反映領域識別子２２２と同じ反映領域識別子２２２を持つエントリ２０１を検索する。そして、検索されたエントリ２０１に含まれる更新データを、副ボリューム２６ｓに反映する。
【００８８】
以上のように、本実施の形態の計算機システムは、正ボリューム２６ｐの一部の領域に対して、領域を識別するための反映領域識別子２２２を設定する。そして、当該領域に含まれるデータに対するチェックポイントを設定するときに、反映領域識別子２２２を付加したジャーナルエントリをマーカとして追加する。その後、ジャーナルデータを副ボリュームに反映するときに、マーカエントリに付加された識別子２２２が示す領域のみをスナップショットデータとして反映する。このようにすることによって、ホスト１側で完了したファイルのみを副ボリューム２ｓに反映させることができる。
【００８９】
図４は、ジャーナルデータ２００の一例の説明図である。
【００９０】
ジャーナルデータ２００は、エントリ２０１が順次格納されている。
【００９１】
ストレージシステム２において、正ボリューム２６ｐに対する出力要求、すなわち、データの書き込み要求や更新要求があったとき、制御部２０は、この要求を処理する毎に、ジャーナルデータ２００に新たなエントリ２０１を追加して格納する。
【００９２】
ジャーナルデータ２００は、更新データ２０２、論理ボリューム識別子２０３、データアドレス２０４、データ長２０５、順序番号２０６、反映領域識別子２０７及びチェックポイント識別子２０８を含むエントリ２０１を含む。
【００９３】
更新データ２０２は、出力要求によって正ボリューム２６ｐに書き込まれる更新履歴データの内容である。
【００９４】
論理ボリューム識別子は、更新データが書き込まれる正ボリューム２６ｐの論理ボリュームをストレージシステム２内で一意に識別する識別子である。
【００９５】
データアドレス２０４は、正ボリューム２６ｐにおける更新データが格納されている位置であるブロックアドレスである。
【００９６】
データ長２０５は、更新データのデータ長である。
【００９７】
順序番号２０６は、ジャーナルデータの格納された順序を保証するための通し番号である。なお、この順序番号２０６は、共有メモリ２７又はメモリ２１に格納され、ジャーナルデータ２００毎に管理されている。
【００９８】
反映領域識別子２０７は、更新データが属するファイル等の領域を識別するための識別子である。
【００９９】
チェックポイント識別フラグ２０は当該エントリがチェックポイントであるかを示す識別子である。具体的には、チェックポイント識別フラグ２０８が「ＯＮ」に設定されている場合は、そのエントリはチェックポイントであることを示す。また、チェックポイント識別フラグ２０８が「ＯＦＦ」に設定されている場合は、そのエントリはチェックポイントではないエントリ、例えば、更新データであることを示す。
【０１００】
なお、図４の例では、エントリ２０１Ａ乃至２０１Ｅが格納されている。例えば、エントリ２０１Ａは、論理ボリューム識別子２０３に「１１１１」が、データアドレス２０４に「Ａ１」が、データ長２０５に「４０９６」が、順序番号２０６に「１」が、反映識別子２０７に「ＩＤＡ」が、チェックポイント識別フラグ２０８に「ＯＦＦ」が、それぞれ格納されている。
【０１０１】
図５は、反映領域識別子管理テーブル１１０の一例の説明図である。
【０１０２】
反映領域識別子管理テーブル１１０は、ホスト１のジャーナル反映領域登録要求処理部１１００によって管理される。
【０１０３】
反映領域識別子管理テーブル１１０は、ファイル識別子１１２と反映領域識別子１１３とを含むエントリ１１１を含む。
【０１０４】
ファイル識別子１１２は、ファイル２３０をホスト１内で一意に識別するファイル名称などの識別子である。
【０１０５】
反映領域識別子１１３は、ファイル識別子が示すファイルのアロケーション情報である。この反映領域識別子１１３は、反映領域登録処理部２１００によって、決定された反映領域識別子２２２が格納される。
【０１０６】
図の例では、二つのエントリ１１１Ａ及び１１１Ｂが示されている。エントリ１１１Ａは、ファイル識別子１１２が「ファイルＡ」のファイルに対して、反映領域識別子１１３に「ＩＤＡ」が設定されている。
【０１０７】
図６は、反映領域管理テーブル２２０の一例の説明図である。
【０１０８】
反映領域管理テーブル２２０は、ストレージシステム２の反映領域登録処理部２１００によって管理される。
【０１０９】
反映領域管理テーブル２２０は、反映領域識別子２２２と、論理ボリューム識別子２２３と、先頭アドレス２２４と、データ長２２５とを含むエントリ２２１を含む。
【０１１０】
反映領域識別子２２２は、正ボリューム２６ｐである論理ボリュームに格納されている一つ又は複数のデータに対応する識別子である。
【０１１１】
論理ボリューム識別子２２３と、先頭アドレス２２４と、データ長２２５とは、反映領域識別子２２２によって示されるデータのアロケーション情報である。論理ボリューム識別子２２３は、当該領域が属する論理ボリュームの識別子である。先頭アドレス２２４は、当該領域の当該論理ボリュームにおける先頭のアドレスである。データ長２２５は、当該領域に含まれるデータの長さである。
【０１１２】
なお、アロケーション情報が、複数の論理ボリューム又は複数の領域から構成されている場合は、一つのエントリ２２１に、当該反映領域識別子に対応するアロケーション情報（論理ボリューム識別子２２３、先頭アドレス２２４及びデータ長２２５）が複数含まれる。
【０１１３】
図６の例では、二つのエントリ２２１Ａ及び２２１Ｂが示されている。エントリ２２１Ａは、反映領域識別子２２２の「ＩＤＡ」に対して、二つのアロケーション情報が格納されている。一方のアロケーション情報は、論理ボリューム識別子２２３が「Ａ１」、先頭アドレス２２４が「１１１１」、データ長２２５が「４０９６」が設定されている。もう一方は、論理ボリューム識別子２２３が「Ａ２」、先頭アドレス２２４が「１１１１」、データ長２２５が「４０９６」が設定されている。
【０１１４】
図７は、カタログ２５０の説明図である。
【０１１５】
カタログ２５０は、正ボリューム２６ｐに格納され、ストレージシステム２に格納されているファイル２３０が、ストレージシステム内のどの論理ボリュームであるかを示すテーブルである。
【０１１６】
カタログ２５０は、ホスト１から参照されるファイル２３０を識別するファイル名称等のファイル識別子２５１と、ファイル２３０が格納されている論理ボリュームの識別子２５１とを含無エントリ２５３を含む。
【０１１７】
なお。ファイル識別子２５１は、ホスト１から識別される論理ボリューム識別子であり、ストレージシステム２において管理されている論理ボリューム識別子と異なる場合がある。その場合には、ホスト１は、ファイル識別子２５１を指定してストレージシステム２にアクセスする。ストレージシステム２は、この識別子に対応する論理ボリューム識別子を取得する。
【０１１８】
図８は、ジョブ管理テーブル１２０の説明図である。
【０１１９】
ジョブ管理テーブル１２０は、ホスト１のＯＳ／ＡＰ１００において稼働するアプリケーションプログラムのジョブが使用するファイルを示すテーブルである。
【０１２０】
ジョブ管理テーブル１２００は、ホスト１内のジョブを一意に識別するジョブ識別子１２１と、ファイル２３０をホスト１内で一意に識別するファイル識別子１２２とを含むエントリ１２３を含む。
【０１２１】
図９は、ジャーナル反映領域登録要求処理部１１００の処理フローチャートを示す。
【０１２２】
この処理は、ＯＳ／ＡＰ１００がストレージシステム２の正ボリューム２６ｐのファイル２３０にアクセスする前段階の処理として実行される。
【０１２３】
具体的には、ＯＳ／ＡＰ１００が、ファイル２３０をオープンする直前、すなわち、アプリケーションプログラムからファイル２３０をアクセス可能な状態にする直前に実行する。なお、アプリケーションプログラムがファイル２３０に対応するジョブを開始する時点で実行してもよい（ステップＳ１１００）。
【０１２４】
まず、ジャーナル反映領域登録要求処理部１１００は、ストレージシステム２の主ボリューム２６ｐに格納されているカタログ２５０を参照する。そして、ファイル２３０が格納されている正ボリューム２６ｐの論理ボリューム識別子を求める（ステップＳ１１０１）。
【０１２５】
次に、ジャーナル反映領域登録要求部１１００は、求めた正ボリューム２６ｐに格納されているファイル２３０のアロケーション情報を参照する。そして、ファイル２３０が格納されている領域の、正ボリューム２６ｐのアドレスとデータ長を求める（ステップ１１０２）。
【０１２６】
次に、ジャーナル反映領域登録要求処理部１１００は、反映領域登録要求の識別コードを付加したデータ（反映領域登録要求）を反映領域登録処理部２１００に転送する。この反映領域登録要求には、求めた正ボリューム２６ｐの論理ボリューム識別子とアドレスの先頭アドレスとデータ長とを組としたアロケーション情報が含まれる（ステップＳ１１０３）。そして、反映領域登録処理部２１００から、反映領域識別子２２２が返却されるのを待つ（ステップ１１０４）。
【０１２７】
反映登録要求処理部２１００は、転送されたアロケーション情報に対応する領域に対する一意の識別子である反映領域識別子２２２を生成する。そして、生成した反映領域識別子を転送元のジャーナル反映領域登録要求処理部１１００に返却する。
【０１２８】
ジャーナル反映領域登録要求処理部１１００は、反映領域登録処理部２１００から、反映領域識別子２２２が返却されると、反映領域識別子管理テーブル１１０に新たなエントリ１１１を生成する。そして、生成したエントリに、ファイル２３０のファイル識別子１１２と、返却された反映領域識別子２２２とを格納する。（ステップ１１０５）。
【０１２９】
以上のような処理によって、ホスト１の扱うファイル２３０のストレージシステム２の主ボリューム２６ｐでの領域に対応する反映領域識別子２２２が生成される。
【０１３０】
なお、ホスト１において、ジョブを開始する時点で本フローチャートの処理を実行する場合は、そのジョブが使用するすべてのファイル２３０に対応するすべての領域に対応する反映領域識別子を生成してもよい。
【０１３１】
この場は、ジャーナル反映領域登録要求処理部１１００は、カタログ２５０を参照する前に、ジョブ管理テーブル１２０を参照して、該当ジョブの識別子１１２に一致するすべてのエントリに対応するファイル識別子を求める。そして、求めたすべてのファイルに対して、ファイル２３０が格納されている正ボリューム２６ｐに対する論理ボリューム識別子を求める（ステップ１１０１）。次に、求めたすべての正ボリューム２６ｐ内に記憶されているファイルアロケーション情報を参照して、ファイルが格納されている領域の、アドレスとデータ長を求める（ステップ１１０２）。そして、ジョブが使用するすべてのファイルのアロケーション情報を、反映領域登録処理部２１００に転送する（ステップ１１０３）。これを受けて、反映領域登録処理部２１００は、すべてのファイル２３０に対応する反映領域識別子を生成して、ジャーナル反映領域登録要求処理部１１００に返却する（Ｓ１１０４）。これを受けて、ジャーナル反映領域登録要求処理部１１００は、反映領域識別子管理テーブル１１０に、それぞれのファイル２３０に対応するエントリ１１１を生成して、対応するファイル識別子１１２及び反映領域識別子２２２を格納する（Ｓ１１０５）。
【０１３２】
図１０は、反映領域登録処理のフローチャートである。
【０１３３】
反映領域登録処理部２１００は、ホスト１からストレージシステム２に、反映領域登録要求の識別コードを付加したデータ（反映領域登録要求）が送信されたときに（図９のステップＳ１１０３）、本フローチャートの処理を実行する（ステップＳ２１００）。
【０１３４】
反映領域登録処理部２１００は、まず、反映領域管理テーブル２２０に新たなエントリ２２１を生成する（ステップＳ２１０１）。
【０１３５】
次に、反映領域登録処理部２１００は、反映領域管理テーブル内の既存のエントリ２２１を参照して、既存のエントリ２２１の反映領域識別子２２２の何れにも一致しない反映領域識別子２２２を生成する。そして、生成した反映領域識別子２２２を生成したエントリ２２１に格納する（ステップＳ２１０２）。
【０１３６】
次に、反映領域登録処理部２１００は、生成したエントリ２２１に、ホスト１のジャーナル反映領域登録要求処理部１１００から転送されたアロケーション情報に含まれる論理ボリューム識別子、先頭アドレス及びデータ長を、それぞれ、論理ボリューム識別子２２３、先頭アドレス２２４及びデータ長２２５に格納する（ステップＳ２１０３）。
【０１３７】
この反映領域管理テーブル２２０のエントリへの格納が完了したら、反映領域登録処理部２１００は、新たに生成した反映領域識別子２２２をホスト１に送信する（ステップＳ２１０４）。
【０１３８】
以上の処理によって、ホストの要求に係るファイル２３０に対応する反映領域識別子２２２が生成され、ホスト１に送信される。
【０１３９】
図１１は、出力処理のフローチャートである。
【０１４０】
ホスト１のＯＳ／ＡＰ１００のアプリケーションプログラムは、ストレージシステム２のファイル２３０に出力要求を発行する。この出力要求は、出力要求の識別コードを付加した更新データをストレージシステム２に転送することによって行われる。
【０１４１】
ストレージシステム２において、出力処理部２２００は、出力要求の識別コードが付加された更新データが転送された場合に、本フローチャートの処理を実行する（ステップＳ２２００）。
【０１４２】
まず、出力処理部２２０は、ホスト１から転送された更新データを、正ボリューム２６ｐの要求に係る領域に書き込む（ステップ２２０１）。
【０１４３】
このとき、更新データの書き込み先の正ボリューム２６ｐがジャーナル取得対象となっていれば、ジャーナル生成処理部２３００に処理を渡し、ジャーナル生成処理（図１２）を実行する（ステップ２２０２）。
【０１４４】
図１２は、ジャーナル生成処理のフローチャートである。
【０１４５】
ジャーナル生成処理部２３００は、ジャーナル取得対象となっている正ボリューム２６ｐにデータが書き込まれたときに（図１１のステップＳ２２０２）、本フローチャートの処理を実行する（ステップＳ２３００）。
【０１４６】
ジャーナル生成処理部２３００は、まず、ジャーナルデータ２００に新たなエントリ２０１を生成する（ステップＳ２３０１）。
【０１４７】
次に、ジャーナル生成処理部２３００は、生成されたエントリ２０１に、更新データの内容、正ボリューム２６ｐの論理ボリューム識別子、データアドレス及びデータ長を、それぞれ、更新データ２０２、論理ボリューム識別子２０３、データアドレス２０４及びデータ長２０５に格納する（ステップ２３０２）。
【０１４８】
次に、ジャーナル生成処理部は、共有メモリ２７に格納されている順序番号に１を加算して、新たな順序番号２０６に格納する（ステップ２３０３）。
【０１４９】
次に、ジャーナル生成処理部２３００は、反映領域管理テーブル２２０を参照して、更新データのデータアドレスが含まれるエントリ２２１を検索する（ステップＳ２３０４）。そして、更新データのデータアドレスが含まれるエントリ２２１が存在するか否かを判定する（ステップＳ２３０５）。
【０１５０】
更新データのデータアドレスが含まれるエントリ２２１が存在すると判定した場合は、ジャーナル生成処理部２３００は、検索された反映領域識別子２２２を、ステップＳ２３０１で生成したエントリ２０１の反映領域識別子２０７に格納する（ステップ２３０６）。
【０１５１】
以上の処理によって、ホスト１からの出力要求に係る更新データが、主ボリューム２６ｐに書き込まれると共に、ジャーナルデータ２００に格納される。
【０１５２】
図１３は、チェックポイント要求処理のフローチャートである。
【０１５３】
ＯＳ／ＡＰ１００は、ファイルクローズやジョブ終了など、ファイル２３０に対する入出力がなく、ホスト１上に未出力のデータが存在しない状態となったときに、チェックポイント要求を発行する。チェックポイント要求処理部１２００は、このチェックポイント要求を受けて、本フローチャートの処理を実行する（ステップＳ２４００）。
【０１５４】
まず、チェックポイント要求処理部１２００は、ＯＳ／ＡＰ１００からのチェックポイント要求によって指定されたチェックポイント対象のファイル名に対応するエントリ１１１を、反映領域識別子管理テーブル１１０から検索する（ステップＳ１２０１）。
【０１５５】
次に、チェックポイント要求処理部１２００は、検索されたエントリ１１１から、反映領域識別子１１３を取得する。そして、マーカ記録要求の識別コードを付加したデータをストレージシステム２に送信する（ステップＳ１２０２）。
【０１５６】
ストレージシステム２のマーカ記録処理部２４００は、このデータを受信すると、マーカ記録処理を実行する（ステップ１２０３）。
【０１５７】
図１４は、マーカ記録処理のフローチャートである。
【０１５８】
マーカ記録処理部２４００は、マーカ記録要求の識別コードが付加されたデータが転送されると、本フローチャートの処理を実行する（ステップＳ２４００）。
【０１５９】
マーカ記録処理部２４００は、まず、ジャーナルデータ２００に新しくエントリ２０１を生成する（ステップＳ２４０１）。
【０１６０】
次に、マーカ記録処理部２４００は、新しく生成したエントリ２０１のチェックポイント識別フラグ２０８に「ＯＮ」を格納する（ステップＳ２４０２）。また、共有メモリ２７に格納されている順序番号に１を加算して、新たな順序番号２０６に格納する（ステップＳ２４０３）。また、新しく生成したエントリ２０１の反映領域識別子２０７に、ホストから転送された反映領域識別子２２２を格納する（ステップＳ２４０４）。この新しく生成したエントリ２０１がチェックポイントを示し、かつ、マーカとなる。
【０１６１】
以上の処理によって、ジャーナルデータ２００のエントリにマーカが格納される。
【０１６２】
図１５は、ジャーナル反映処理のフローチャートである。
【０１６３】
ジャーナル反映処理部２５００は、ジャーナルデータ２００が格納されているジャーナルボリューム２６ｊの容量が不足したと判定した場合に、本フローチャートの処理を実行する（ステップＳ２５００）。なお、ホスト１からジャーナル反映の要求があったとき、又は、マーカのエントリ２０１がジャーナルデータ２００に格納されたことをジャーナル反映処理部２５００が確認したときに、本フローチャートの処理を実行してもよい。
【０１６４】
まず、ジャーナル反映処理部２５００は、ジャーナルデータ２００から、チェックポイント識別フラグ２０８がＯＮに設定されているエントリ２０１のうち、最も新しいエントリ２０１を検索する（ステップＳ２５０１）。なお、以降はこのエントリ２０１をエントリ２０１ａと呼ぶ。
【０１６５】
ジャーナル反映処理部２５０は、このエントリ２０１aが存在するか否かを判定する（ステップＳ２５０２）。エントリ２０１aが存在すると判定した場合は、そのエントリ２０１ａの格納よりも以前に格納されたエントリ２０１のうち、チェックポイント識別フラグ２０８がＯＦＦであるすべてのエントリ２０１に対して、以降の処理を実行する。なお、エントリ２０１ａの格納よりも以前に格納されたエントリ２０１のうち、チェックポイント識別フラグ２０８がＯＦＦであるエントリ２０１を、以降は、エントリ２０１ｂと呼ぶ。
【０１６６】
なお、エントリ２０１ａが存在しないと判定した場合は、処理を終了する。
【０１６７】
まず、ジャーナル反映処理部２５０は、すべてのエントリ２０１ｂに対してステップＳ２５０４乃至Ｓ２５０６の処理が終了したか否かを判定する（ステップＳ２５０３）。
【０１６８】
すべてのエントリ２０１ｂに対して処理が完了したと判定した場合は、処理を終了する。
【０１６９】
処理が未実行のエントリ２０１ｂがあると判定した場合は、まず、当該エントリ２０１ａに反映領域識別子２０７が設定されているか否かを判定する（ステップ２５０４）。反映領域識別子２０７が設定されていると判定した場合は、ステップＳ２５０５に移行し、設定されていないと判定した場合は、ステップＳ２５０７に移行する。
【０１７０】
ステップＳ２５０５では、ジャーナル反映処理部２５００は、エントリ２０１aの反映領域識別子２０７とエントリ２０１ｂとの反映領域識別子２０７とを比較して、反映領域識別子２０７が等しいか否かを判定する（ステップＳ２５０５）。
【０１７１】
双方の反映領域識別子２０７が等しいと判定した場合は、ジャーナル反映処理部２５００は、当該エントリ２０１ｂの論理ボリューム識別子２０３が示す正ボリューム２６ｐに対応する副ボリューム２６ｓをペア管理テーブル２４０から取得する。そして、副ボリューム２６ｓ内の、当該エントリ２０１ｂのデータアドレス２０４に対応する領域に、エントリ２０１ｂの更新データ２０２を格納する（ステップ２５０６）。
【０１７２】
一方、双方の反映領域識別子２０７が異なると判定した場合は、ステップＳ２５０３に戻り、次のエントリ２０１ｂについての処理を実行する。
【０１７３】
ステップＳ２５０７では、ジャーナル反映処理部２５００は、エントリ２０１ｂに反映領域識別子２０７が設定されているか否かを判定する。反映領域識別子２０７が設定されていないと判定した場合は、ステップＳ２５０６に移行し、当該エントリ２０１ｂの更新データを副ボリューム２６ｓに格納する。反映領域識別子２０７が設定されていないと判定した場合は、処理を終了する。
【０１７４】
以上の処理によって、ジャーナルデータ２００に格納されている更新データのうち、マーカのエントリ２０１ａと、反映領域識別子が等しい更新データのみが副ボリューム２６ｓに格納される。このようにすることによって、ホスト１からのチェックポイント要求時点、すなわち、入出力が完了した状態のファイル２３０のみが、スナップショットデータとして取得できる。
【０１７５】
なお、本実施の形態では、ジャーナル生成処理部２５００が、反映領域管理テーブル２２０を参照して、更新データが反映領域に含まれているか否かを判定する（図１２のステップＳ２３０４）。これに対して、ジャーナル反映処理部２５００が、更新データが反映領域に含まれているか否かを判定してもよい。この場合は、ジャーナル生成処理（図１２）のステップＳ２３０４乃至Ｓ２３０６は実行しない。そして、ジャーナル反映処理（図１４）のステップＳ２５０５において、反映領域管理テーブル２２０を参照して、次のような関係を満たすエントリ２０１を検索する。
データアドレス２２４＜エントリ２０１ｂデータアドレス２０４＜データアドレス２２４＋データ長２２５
このようにすることによって、ホスト１からのデータ出力要求の処理速度を高めることができる。さらに、ジャーナル反映処理は、ストレージシステム２のアイドル地頭を利用して行うことでより処理効率が高まる。
（第２実施形態）
次に、本発明の第２の実施の形態の計算機システムについて説明する。
【０１７６】
図１６は、本発明の第２の実施形態の計算機システムの構成ブロック図である。
【０１７７】
なお、第１の実施の形態と同一の作用をする構成には同一の符号を付し、その説明は省略する。
【０１７８】
第２の実施の形態の計算機システムは、ホスト１と、ストレージシステム２ｐと、ストレージシステム２ｓとを含む。そして、副ボリューム２６ｓが、正ボリューム２６ｐが属するストレージシステム２ｐとは異なるストレージシステム２ｓに存在する点が第１の実施の形態と異なる。
【０１７９】
また、反映領域登録処理部２１００、入出力処理部２２００、ジャーナル生成処理部２３００、マーカ記録処理部２４００は、正ボリューム２６ｐが属するストレージシステム２ｐに備える。また、ジャーナル反映処理部２５００は、副ボリューム２６ｓが属するストレージシステム２ｓに備える。さらに、ストレージシステム２ｓの論理ボリュームには、服ジャーナルボリューム２６ｋ含む。この副ジャーナルボリューム２６ｋは、ストレージシステム２ｐのジャーナルボリューム２６ｊのジャーナルデータ２００の転送先である
さらに、ストレージシステム２ｐには、ジャーナルデータ２００を吹くボリューム２６ｓのあるストレージシステム２ｓに送信するジャーナル送信処理部２６００を含む。また、ストレージシステム２ｓは、ストレージシステム２ｐから送信されたジャーナルデータを受信するジャーナル受信処理部２７００を含む。
【０１８０】
次に、第２の実施の形態の計算機システムの処理を説明する。
【０１８１】
ホスト１から出力要求によって、ジャーナルデータ２００に新たなエントリ２０１が追加されると、ジャーナル送信処理部２６００は、追加されたエントリ２０１を、通信路３ｓを介して転送し、ストレージシステム２ｐから副ジャーナルボリューム２６ｋ内のジャーナルデータ２００に格納する。
【０１８２】
その後、ジャーナル反映処理部２５００は、ジャーナルボリューム２６ｊ内のジャーナルデータ２００ではなく、副ジャーナルボリューム２６ｋ内のジャーナルデータ２００に格納された更新データを、副ボリューム２６ｓに反映する。
【０１８３】
反映領域登録処理部２１００の処理は、前述した図１０の処理とほぼ同じである。なお、前述のように、更新データが反映領域に含まれているか否かの判定を、ストレージシステム２ｓのジャーナル反映処理部２５００が行う場合は、反映領域管理テーブル２２０を、ストレージシステム２ｓにも設ける必要がある。この場合は、ストレージシステム２ｐの反映領域管理テーブル２２０とストレージシステム２ｓの反映領域管理テーブル２２０とを等しくする処理が必要となる。具体的には、反映領域登録処理（図１０）のステップＳ２１０４において、生成した反映領域識別子２２２を、ホスト１に送信すると共に、ストレージシステム２ｓの反映意領域管理テーブルにも送信する。
【０１８４】
なお、生成した反映領域識別子２２２をストレージシステム２ｐのジャーナルデータ２００に格納し、以降に述べる処理によって、反映領域識別子２２２を含むジャーナルデータをストレージシステム２ｓに送信してもよい。
【０１８５】
図１７は、ジャーナル送信処理のフローチャートである。
【０１８６】
ストレージシステム２ｐにおいて、ジャーナル送信処理部２６００は、ジャーナルデータ２００が格納されているジャーナルボリューム２６ｊの容量が不足したと判定した場合、ホスト１からジャーナル送信の要求があったとき、又は、マーカのエントリ２０１がジャーナルデータ２００に格納されたことをジャーナル送信処理部２５００が確認したときに、本フローチャートの処理を実行する（ステップＳ２６００）。なお、本実施の形態では、共有メモリ２７又はメモリ２１内に、すでに送信済みのジャーナルデータエントリ２０１の主ボリューム２６ｐでの位置を格納する。
【０１８７】
まず、ジャーナル送信処理部２６００は、格納された主ボリューム２６ｐの位置にあるエントリ２０１よりも新しく格納されたエントリが存在するか否かを判定する（ステップＳ２６０１）エントリが存在すれば、そのエントリ２０１を、ストレージシステム２ｓに送信する（ステップＳ２６０２）。
【０１８８】
図１８は、ジャーナル受信処理のフローチャートである。
【０１８９】
ジャーナル受信処理部２７００は、ジャーナル送信処理部２６００からエントリ２０１が送信されるのを常に待機している（ステップＳ２７００）。
【０１９０】
そして、ジャーナル送信処理部２６００から、エントリ２０１が送信されたか否かを判定する（ステップＳ２７０１）、エントリが送信されたと判定した場合は、送信されたエントリ２０１を、副ジャーナルボリューム２６ｋ内のジャーナルデータ２００に、新たなエントリを追加して、送信されたエントリ２０１を格納する（ステップＳ２７０２１）。
【０１９１】
以上の処理によって、主ボリューム２６ｐを格納するストレージシステム２ｐと、副ボリューム２６ｓを格納するストレージシステム２ｓとを備える計算機システムにおいても、前述の第１の実施の形態において説明した処理を実行することが可能となる。
【図面の簡単な説明】
【０１９２】
【図１】本発明の第１の実施の形態の計算機システムの構成ブロック図である。
【図２】本発明の第１の実施の形態のペア管理テーブルの説明図である
【図３】本発明の第１の実施の形態の計算機システムの処理の説明図である。
【図４】本発明の第１の実施の形態のジャーナルデータの説明図である
【図５】本発明の第１の実施の形態の反映領域識別子管理テーブルの説明図である。
【図６】本発明の第１の実施の形態の反映領域管理テーブルの説明図である。
【図７】本発明の第１の実施の形態のカタログの説明図である。
【図８】本発明の第１の実施の形態のジョブ管理テーブルの説明図である。
【図９】本発明の第１の実施の形態のジャーナル反映領域登録要求処理のフローチャートである。
【図１０】本発明の第１の実施の形態の反映領域登録処理のフローチャートである。
【図１１】本発明の第１の実施の形態の出力処理のフローチャートである。
【図１２】本発明の第１の実施の形態のジャーナル生成処理のフローチャートである。
【図１３】本発明の第１の実施の形態のチェックポイント要求処理のフローチャートである。
【図１４】本発明の第１の実施の形態のマーカ記録処理のフローチャートである。
【図１５】本発明の第１の実施の形態のジャーナル反映処理のフローチャートである。
【図１６】本発明の第２の実施の形態の計算機システムの構成ブロック図である。
【図１７】本発明の第２の実施の形態のジャーナル送信処理のフローチャートである。
【図１８】本発明の第２の実施の形態のジャーナル受信処理のフローチャートである。
【符号の説明】
【０１９３】
１  ホスト
１１  メモリ
１２  プロセッサ
１３  入出力インターフェース
１００  オペレーティングシステム又はアプリケーションプログラム（ＯＳ／ＡＰ）
１１０  反映領域識別子管理テーブル
２  ストレージシステム
２０  制御装置
２２  プロセッサ
２１  メモリ
２３  チャネルアダプタ
２５  ディスクドライブ
２６  論理ボリューム
２７  共有メモリ
２２０  反映領域管理テーブル
３  通信路
【図１】
0004828917.tif 000002
【図２】
0004828917.tif 000003
【図３】
0004828917.tif 000004
【図４】
0004828917.tif 000005
【図５】
0004828917.tif 000006
【図６】
0004828917.tif 000007
【図７】
0004828917.tif 000008
【図８】
0004828917.tif 000009
【図９】
0004828917.tif 000010
【図１０】
0004828917.tif 000011
【図１１】
0004828917.tif 000012
【図１２】
0004828917.tif 000013
【図１３】
0004828917.tif 000014
【図１４】
0004828917.tif 000015
【図１５】
0004828917.tif 000016
【図１６】
0004828917.tif 000017
【図１７】
0004828917.tif 000018
【図１８】
0004828917.tif 000019