(57)【要約】【課題】ジャーナルを低コストで保管する。【解決手段】一以上のランダムアクセス型記憶装置に、ボリュームグループと、ジャーナルボリュームとがある。ボリュームグループには、正ボリュームと副ボリュームとで構成されたボリュームペアが含まれる。上位装置から送信されたデータを受信する度に、受信したデータを正ボリュームに書込み、該データの書込み順序と該データとを含んだジャーナルを作成し、該ジャーナルをジャーナルボリュームに書込む。ジャーナルボリュームに蓄積された複数のジャーナルをシーケンシャルアクセス型記憶装置に書く。シーケンシャルアクセス型記憶装置に記録されている複数のジャーナルの各々に記録された書込み順序を基に、各ジャーナル内のデータを、該データを記憶する正ボリュームとボリュームペアを構成する副ボリュームにリストアする。【選択図】図１
2008065503.tif 000002
【特許請求の範囲】
【請求項１】
ランダムアクセスを高速に処理できるタイプの記憶装置であるランダム記憶装置を一つ以上備え、前記一以上のランダム記憶装置に、ボリュームグループと、ジャーナルボリュームとを有し、前記ボリュームグループには、正ボリュームと副ボリュームとで構成されたボリュームペアが含まれ、上位装置から送信されたデータを受信する度に、前記受信したデータを前記正ボリュームに書込み、前記正ボリュームに書かれるデータの書込み順序と該データとを含んだジャーナルを作成し該ジャーナルを前記ジャーナルボリュームに書込むストレージシステムであって、
シーケンシャルアクセスは高速に処理できるがランダムアクセスは高速に処理できないタイプの記憶装置であるシーケンシャル記憶装置を複数個と、
前記ジャーナルボリュームに蓄積された複数のジャーナルを前記複数のシーケンシャル装置の少なくとも一つに書込むバックアップ部と、
前記複数のシーケンシャル装置の少なくとも一つに記録されている前記複数のジャーナルの各々に記録された前記書込み順序を基に、各ジャーナル内のデータを、該データを記憶する前記正ボリュームとボリュームペアを構成する前記副ボリューム又はそれに関わるボリュームにリストアするリストア部と
を備えるストレージシステム。
【請求項２】
前記ボリュームグループが複数個存在し、
前記複数のシーケンシャル装置の各一以上のシーケンシャル装置により各シーケンシャル装置グループが構成され、
各ボリュームグループに各シーケンシャル装置グループが対応付けられており、
前記バックアップ部は、バックアップ対象のジャーナルを、該ジャーナル内のデータを記憶した正ボリュームを含むボリュームグループに対応したシーケンシャル装置グループに書込み、
前記リストア部は、該シーケンシャル装置グループに対応したボリュームグループ内の副ボリューム又はそれに関わるボリュームに、該シーケンシャル装置グループに記録されているジャーナル内のデータをリストアする、
請求項１記載のストレージシステム。
【請求項３】
前記ジャーナルボリュームには、所定の契機でチェックポイントが書込まれ、
前記バックアップ部が、前記ジャーナルボリュームから該チェックポイントをシーケンシャル装置に書く場合に、該シーケンシャル装置のアクセス位置の位置合わせのためのマークを書き、
前記リストア部は、該シーケンシャル装置に記録されたマークの位置をアクセス位置に合わせ、該アクセス位置以降のジャーナル内のデータをリストアしていく、
請求項１記載のストレージシステム。
【請求項４】
前記ボリュームグループが複数個存在し、
前記バックアップ部が、前記複数のボリュームグループの各々の閾値と、各ボリュームグループについての所定種類の値との比較に応じて、バックアップを制御する、
請求項１記載のストレージシステム。
【請求項５】
前記バックアップ部が、第一のボリュームグループの前記所定種類の値が該第一のボリュームグループに対応した第一の閾値を超えた場合に、該第一のボリュームグループ内の正ボリュームのジャーナルをバックアップする、
請求項４記載のストレージシステム。
【請求項６】
シーケンシャル装置ドライブと、どのシーケンシャル装置を前記シーケンシャル装置ドライブにセットするかを制御するセット制御部とを有し、該シーケンシャル装置ドライブが、前記バックアップ部からジャーナルを受けて、該受けたジャーナルを、自分にセットされているシーケンシャル装置に書き込んだり、該シーケンシャル装置から読み出したジャーナルを前記リストア部に送信したりし、
記複数のシーケンシャル装置の各一以上のシーケンシャル装置により各シーケンシャル装置グループが構成され、
各ボリュームグループに各シーケンシャル装置グループが対応付けられており、
前記バックアップ部は、第一のボリュームグループの第一の前記所定種類の値が該第一のボリュームグループに対応した第一の閾値を超えた場合、前記シーケンシャル装置ドライブに、第二の前記所定種類の値が第二の閾値を超えていない第二のボリュームグループに対応した第二のシーケンシャル装置グループのシーケンシャル装置がセットされているならば、該シーケンシャル装置に代えて、前記第一のボリュームグループに対応した第一のシーケンシャル装置グループに属するシーケンシャル装置を前記シーケンシャル装置ドライブにセットさせて、該シーケンシャル装置にバックアップを行う、
請求項４記載のストレージシステム。
【請求項７】
前記所定種類の値とは、それに対応するボリュームグループについてシーケンシャル装置にバックアップされていない一以上のジャーナルのデータ量である、
請求項４記載のストレージシステム。
【請求項８】
前記ジャーナルボリュームには、所定契機でチェックポイントが書込まれ、
前記所定種類の値とは、それに対応するボリュームグループについてシーケンシャル装置に反映されていないチェックポイントの数である、
請求項４記載のストレージシステム。
【請求項９】
前記所定種類の値とは、過去の或る時点でバックアップが行われてからの現時点までの経過時間である、
請求項４記載のストレージシステム。
【請求項１０】
前記ボリュームグループが複数個存在し、
前記バックアップ部が、重要度が高いボリュームグループのジャーナルよりも重要度の低いジャーナルを優先的にシーケンシャル装置にバックアップする、
請求項１記載のストレージシステム。
【請求項１１】
ユーザが各ボリュームグループ毎に各閾値を入力するためのＧＵＩを提供するＧＵＩ提供部と、
該ＧＵＩを介して入力された各閾値を各ボリュームグループに対応付けて設定する閾値設定部と
を更に備えた請求項４記載のストレージシステム。
【請求項１２】
各副ボリューム又はそれに関わるボリューム毎にどのジャーナル内のデータまでをリストアしたかを表すリストア終了ポイントを管理するリストア管理部を更に備え、
前記リストア部は、或るポイントまでのリストアを指定された場合に、リストア先のボリュームに対応したリストア終了ポイントを特定し、該特定されたリストアポイントから該指定されたポイントまでのジャーナル内のデータを前記副ボリューム又はそれに関わるボリュームにリストアする、
請求項１記載のストレージシステム。
【請求項１３】
シーケンシャル装置にバックアップされたジャーナルを前記ジャーナルボリュームから削除するジャーナル削除部を更に備える、
請求項１記載のストレージシステム。
【請求項１４】
前記ボリュームグループが複数個あり、
前記複数のシーケンシャル装置の各一以上のシーケンシャル装置で構成された各シーケンシャル装置グループがあり、
複数のジャーナルボリュームから構成される一つのジャーナルプールに、前記複数のボリュームグループ内の各正ボリュームのジャーナルが書かれ、
前記バックアップ部は、該ジャーナルプールから或るボリュームグループのジャーナルを選出して同一シーケンシャル装置グループに書き、
前記リストア部は、該同一シーケンシャル装置グループから各ジャーナルを読み出し、各ジャーナル内のデータを、前記或るボリュームグループの副ボリューム又はそれに関わるボリュームにリストアする、
請求項１記載のストレージシステム。
【請求項１５】
前記ボリュームグループが複数個あり、
複数のジャーナルボリュームから構成されるジャーナルプールが複数個あり、
前記複数のシーケンシャル装置の各一以上のシーケンシャル装置で構成された各シーケンシャル装置グループがあり、
前記複数のボリュームグループに、それぞれ、前記複数のジャーナルプールと複数のシーケンシャル装置グループとが対応付けられており、
前記複数のボリュームグループのうちの或るボリュームグループについてのジャーナルは、該或るボリュームグループに対応した或るジャーナルプール内のジャーナルボリュームに書かれ、
前記バックアップ部は、前記或るジャーナルプールのうちの或るジャーナルボリューム内のジャーナルを、該或るジャーナルプールに対応した或るシーケンシャル装置グループのシーケンシャル装置にバックアップし、
前記リストア部は、前記或るシーケンシャル装置グループのシーケンシャル装置から読み出されたジャーナル内のデータを、該或るシーケンシャル装置グループに対応した前記或るボリュームグループ内の副ボリューム又はそれに関わるボリュームにリストアする、
請求項１記載のストレージシステム。
【請求項１６】
前記ジャーナルボリュームには、所定の契機でチェックポイントが書込まれ、
前記ボリュームグループが複数個存在し、
前記複数のシーケンシャル装置の各一以上のシーケンシャル装置により各シーケンシャル装置グループが構成され、
各ボリュームグループに各シーケンシャル装置グループが対応付けられており、
前記バックアップ部は、バックアップ対象のジャーナルを、該ジャーナル内のデータを記憶した正ボリュームを含むボリュームグループに対応したシーケンシャル装置グループのシーケンシャル装置に書込み、その際、前記チェックポイントを該シーケンシャル装置に書く場合に、該シーケンシャル装置のアクセス位置の位置合わせのためのマークを書き、
前記リストア部は、該シーケンシャル装置に記録されたマークの位置をアクセス位置に合わせ、該アクセス位置以降のジャーナル内のデータを、該シーケンシャル装置を有するシーケンシャル装置グループに対応したボリュームグループ内の副ボリューム又はそれに関わるボリュームにリストアしていく、
請求項１記載のストレージシステム。
【請求項１７】
前記バックアップ部が、前記複数のボリュームグループの各々の閾値と、各ボリュームグループについてそれぞれ更新される所定種類の値との比較に応じて、バックアップを制御する、
請求項１６記載のストレージシステム。
【請求項１８】
前記バックアップ部は、前記第一のボリュームグループより優先度が低い第三のボリュームグループに対応したシーケンシャル装置グループのシーケンシャル装置が前記シーケンシャル装置ドライブにセットされていた場合には、該シーケンシャル装置を、前記第一のボリュームグループに対応した第一のシーケンシャル装置グループのシーケンシャル装置に切替える、
請求項６記載のストレージシステム。
【請求項１９】
シーケンシャル装置ドライブと、どのシーケンシャル装置を前記シーケンシャル装置ドライブにセットするかを制御するセット制御部とを有し、該シーケンシャル装置ドライブが、前記バックアップ部からジャーナルを受けて、該受けたジャーナルを、自分にセットされているシーケンシャル装置に書き込んだり、該シーケンシャル装置から読み出したジャーナルを前記リストア部に送信したりし、
記複数のシーケンシャル装置の各一以上のシーケンシャル装置により各シーケンシャル装置グループが構成され、
各ボリュームグループに各シーケンシャル装置グループが対応付けられており、
前記リストア部は、前記第一のボリュームグループより優先度が低い第二のボリュームグループに対応したシーケンシャル装置グループのシーケンシャル装置が前記シーケンシャル装置ドライブにセットされていた場合には、該シーケンシャル装置を、前記第一のボリュームグループに対応した第一のシーケンシャル装置グループのシーケンシャル装置に切替える、
請求項１記載のストレージシステム。
【請求項２０】
ランダムアクセスを高速に処理できるタイプの記憶装置であるランダム記憶装置を一つ以上と、シーケンシャルアクセスは高速に処理できるがランダムアクセスは高速に処理できないタイプの記憶装置であるシーケンシャル記憶装置を複数個とを備えたストレージシステムが実行する方法であって、
（Ａ）上位装置から送信されたデータを受信する度に、前記受信したデータを、前記一以上のランダム記憶装置に設けられたボリュームグループ中のボリュームペアを構成する正ボリュームに書き、前記正ボリュームに書かれるデータの書込み順序と該データとを含んだジャーナルを作成し、該ジャーナルを、前記一以上のランダム記憶装置に設けられたジャーナルボリュームに書込み、
（Ｂ）前記ジャーナルボリュームに蓄積された複数のジャーナルを前記複数のシーケンシャル装置の少なくとも一つに書込み、
（Ｃ）前記複数のシーケンシャル装置の少なくとも一つに記録されている前記複数のジャーナルの各々に記録された前記書込み順序を基に、各ジャーナル内のデータを、該データを記憶する前記正ボリュームとボリュームペアを構成する前記副ボリューム又はそれに関わるボリュームにリストアする、
バックアップ／リストア方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのバックアップ及びリカバリに関するものである。
【背景技術】
【０００２】
ストレージシステムにおけるバックアップ／リカバリ方法として、例えば、CDP（Continuous Data Protection）と呼ばれる方法が知られている。データの更新履歴を一連のジャーナルとして蓄積することにより、障害や誤操作等によりリカバリが必要となった場合には、蓄積されているジャーナルを用いて任意時点のデータイメージに戻すことができる。
【０００３】
例えば文献１（特開２００４−２５２６８６号公報）では、CDPの実現方式が示されている。ホストからのデータ更新時に、ストレージシステムが、更新データと更新前データをディスク上のジャーナルボリュームに取得し、さらに、データの組と識別子を関連付けるようにする。リストア時には、データに関連付けられた識別子を用いて特定時点にリストアする。これによりホストに負荷をかけずにリストアすることが可能となる。
【特許文献１】特開２００４−２５２６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
法規制などにより長期間保管しなければならない電子データが急増しており、中でもフォレンジック対応では、全ジャーナルデータを記録しておくことが必要である。従来のディスクベースのCDPでは、全ジャーナルデータをディスクに取り続けると莫大な容量となりコストがかかるという問題がある。ディスク容量には限りがあるため、取得データがあふれた場合は過去のジャーナルデータを削除しなければならない。そのため、短期間分のデータしか保管できないという問題がある。
【０００５】
ホストによってジャーナルデータをテープに格納する方法も考えられる。しかし、この場合は、ホストに大きな負荷がかかり低性能になるという問題がある。また、テープからのリストア効率は何ら考慮されていない。これは、テープに限らず、他種のシーケンシャルアクセス型の記憶装置（シーケンシャルアクセスは高速に処理できるがランダムアクセスは高速に処理できないタイプの記憶装置）についても同様であり得る。
【０００６】
従って、本発明の目的は、ジャーナルを低コストで保管することにある。
【０００７】
本発明の別の目的は、上位装置に負荷をかけずにジャーナルをバックアップすることにある。
【０００８】
本発明の更なる目的は、効率良くリストアできるようにジャーナルをバックアップすることにある。
【０００９】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本発明に従うストレージシステムは、ランダムアクセスを高速に処理できるタイプの記憶装置であるランダム記憶装置を一つ以上と、シーケンシャルアクセスは高速に処理できるがランダムアクセスは高速に処理できないタイプの記憶装置であるシーケンシャル記憶装置を複数個と、バックアップ部と、リストア部とを備える。
【００１１】
前記一以上のランダム記憶装置に、ボリュームグループと、ジャーナルボリュームとがある。前記ボリュームグループには、正ボリュームと副ボリュームとで構成されたボリュームペアが含まれる。ストレージシステムは、上位装置から送信されたデータを受信する度に、前記受信したデータを前記正ボリュームに書込み、前記正ボリュームに書かれるデータの書込み順序と該データとを含んだジャーナルを作成し、該ジャーナルを前記ジャーナルボリュームに書込むことができる。
【００１２】
バックアップ部は、このようにして前記ジャーナルボリュームに蓄積された複数のジャーナルを、前記複数のシーケンシャル装置の少なくとも一つに書込む。リストア部は、前記複数のシーケンシャル装置の少なくとも一つに記録されている前記複数のジャーナルの各々に記録された前記書込み順序を基に、各ジャーナル内のデータを、該データを記憶する前記正ボリュームとボリュームペアを構成する前記副ボリューム又はそれに関わるボリュームにリストアする。ここで、副ボリュームに関わるボリュームとは、例えば、該ボリュームにリストアされたデータが該副ボリュームに反映されるようなボリュームである。このボリュームにリストアされた場合、該ボリュームのデータが、一又は複数のボリュームを経由して、或いは、該ボリュームを正ボリュームとして前記副ボリュームとペアにされることで、前記副ボリュームにコピーされてよい。
【００１３】
ストレージシステムは、一又は複数のストレージサブシステムで構成することができる。すなわち、正ボリュームと副ボリュームは、一つのストレージサブシステムに存在しても良いし、別々のストレージサブシステムに存在しても良い。
【００１４】
上述した各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【００１５】
本発明によれば、ジャーナルを低コストで保管することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の幾つかの実施例を説明する。なお、以下、ランダム装置として、ディスク装置（例えばハードディスク等のディスク型記憶装置）とするが、他種の記憶装置、例えばフラッシュメモリであってもよい。また、シーケンシャル装置として、テープ（例えば磁気テープ媒体）とするが、他種の記憶装置であっても良い。
【実施例１】
【００１７】
本発明の第一実施例の概要を説明する。
【００１８】
ストレージサブシステムが、コントローラと、ディスク装置と、テープライブラリとを備える。コントローラは、ジャーナル取得を制御するジャーナル制御プログラムと、テープへの格納を制御するテープ格納制御プログラムとを実行する。ディスク装置上に、一以上のジャーナルボリュームから成るジャーナルプールが用意される。ジャーナルボリュームとは、ジャーナルが格納される論理ボリュームである。
【００１９】
ジャーナル制御プログラムは、上位装置（例えばホスト計算機或いは他のストレージサブシステム）からのライトアクセスに応じて、ジャーナルデータを取得し、ジャーナルプールへジャーナルデータを蓄積していく。コンシステンシーグループとその優先度があらかじめ設定される。コンシステンシーグループは、少なくとも一つのボリュームペアで構成され、各ボリュームペアは、正ボリュームと副ボリュームとを備える。正ボリュームは、上位装置に提供されライトアクセスの発生する論理ボリュームである。副ボリュームは、正ボリュームの複製となる論理ボリュームである。コンシステンシーグループとは、一以上の正ボリュームと一以上の副ボリュームとの間で整合性をとる必要のあるボリューム群である。コンシステンシーグループは、ディスク装置上に用意される。
【００２０】
テープ格納制御プログラムは、コンシステンシーグループ単位で、テープライブラリにコピーされていない一以上のジャーナルデータの総量（以下、これを単に「データ量」と呼ぶことがある）を監視する。テープ格納制御プログラムは、各コンシステンシーグループの優先度に応じて、ジャーナルプールからテープへのコピーの制御を行なう。
【００２１】
具体的には、第一の例として、テープ格納制御プログラムは、1つのジャーナルプールを複数のコンシステンシーグループが使用する場合には、そのジャーナルプールから、同一コンシステンシーグループの正ボリュームのジャーナルデータを選出し、同一テープグループに格納する。副ボリュームへのリストアの際には、該副ボリュームを有するコンシステンシーグループに対応した上記同一テープグループからジャーナルを読み出し、該ジャーナル内のデータを副ボリュームにリストアする。
【００２２】
また、第二の例として、テープ格納制御プログラムは、コンシステンシーグループ毎にテープグループを分けることにより、正ボリュームのジャーナルのバックアップ（コピー）の際には、該正ボリュームを有するコンシステンシーグループに対応したテープグループに、ジャーナルをバックアップする。副ボリュームへのリストアの際には、該副ボリュームを有するコンシステンシーグループに対応したテープグループからジャーナルを読み出し、該ジャーナル内のデータを副ボリュームにリストアする。
【００２３】
以上、この第一実施例によれば、ディスク装置よりもビットコストが一般的に低いテープでジャーナルデータが保管されるので、ジャーナルデータの保管を低コストで行うことができる。
【００２４】
また、ジャーナルボリュームからテープへのバックアップは、ストレージサブシステム内で行なうことができ、故に、上位装置に負荷をかけずに行うことができる。
【００２５】
さらに、リストア単位に応じたテープ格納を行なうことにより効率の良い高速なリストアを実現できる。具体的には、上記第二の例によれば、一つのコンシステンシーグループに、専用のテープグループが割り当てられ、該テープグループに格納されているジャーナルは、全て、該コンシステンシーグループ内の副ボリュームにリストアされるデータを含んだジャーナルとすることができる。このため、シーケンシャルに読み出されたジャーナル内のデータを順次に副ボリュームにリストアすればよく、リストアの際にテープの先送りや巻き戻しが頻発してしまうといったことが生じないようにすることができる。
【００２６】
以下、本発明の第一実施例について詳述する。なお、以下、同種の要素については同一の親番号（例えば、ディスク装置には１２）を付し、同種の要素を区別して説明する場合は、親番号と子符号との組み合わせ（例えば１２ａ、１２ｂ）で区別することにする。
【００２７】
図１は、本発明の第一実施例に係る計算機システムの構成例を示した図である。
【００２８】
1は、ストレージサブシステムであり、11は、ストレージサブシステム1を制御するコントローラであり、12a、12bは、ホスト２からのデータを格納するディスク装置であり、13は、テープライブラリ装置である。テープライブラリ装置13は、テープ132a、132bへのアクセスを行なうテープドライブ131a、131b、…と、実際にデータを格納するテープ132a、132b、…とを備える。テープドライブの数は、テープの数に比してだいぶ少ない。コントローラ11は、ジャーナル取得を制御するジャーナル制御プログラム117と、テープへの格納を制御するテープ格納制御プログラム118とを備える。
【００２９】
2は、ストレージサブシステム1にアクセスするホスト計算機（以下、ホスト）であり、21は、ホスト上で動作するアプリケーションプログラムであり、22は、ストレージサブシステム1へチェックポイント取得等の指示を行なう指示プログラムである。ホスト2は複数台接続してもよい。各プログラム２１、２２は、ホスト２のＣＰＵで実行される。
【００３０】
3は、ストレージサブシステム1の管理を行なう管理端末であり、31は、管理端末3で動作するストレージサブシステム1の管理を行なう管理プログラムである。ホスト2は、管理端末を兼ねることができ、ホスト2上で管理プログラム31を動作させてもよい。また、指示プログラム22は管理端末3に配置してもよく、ストレージサブシステム1へのOut-of-bandによる指示も可能である。
【００３１】
図2は、コントローラ11の構成の一例を示す図である。
【００３２】
コントローラ11は、メモリ111、CPU112、上位IF113、下位IF114、IF115及びブリッジ116を備える。IFは、インターフェースの略である。
【００３３】
メモリ111は、ストレージサブシステム1の制御を行なうための制御プログラムや制御情報、管理情報等のストレージサブシステム1の制御に必要な各種情報が格納される。また、アクセスの高速化のためホストからのデータを一時的に格納するキャッシュメモリとしても使用される。ジャーナル制御プログラム117は、ディスクの構成情報や管理情報を記述する管理テーブル1171や、ディスクに対するIO処理やディスクの管理を行なうディスク制御モジュール1172を備える。テープ格納制御プログラム118は、リストアを同時に行なう単位であるコンシステンシーグループを管理するCTG管理テーブル1181、テープへの格納の優先度を管理する優先度管理テーブル1182、テープの使用状況を管理するテープ管理テーブル1183、テープに対するIO処理やテープの管理を行なうテープ制御モジュール118４を備える。
【００３４】
CPU112は、各種制御プログラムを実行しストレージサブシステム1の制御を行なう。上位IF 113は、ホスト２とコントローラ11間の入出力制御を行ない、下位IF114は、コントローラ11とディスク装置12間の入出力制御を行なう。
【００３５】
テープライブラリ装置13は、上位IF113または下位IF114と接続され、上位IF113と接続される場合は、上位IF113がコントローラ11とテープライブラリ装置13間の入出力制御を行なう。下位IF114と接続される場合は、下位IF114がコントローラ11とテープライブラリ装置13間の入出力制御を行なう。ホスト２やディスク装置12との接続には、ファイバチャネル(Fibre Channel)、SCSI(Small Computer System Interface)、iSCSI(Internet Small Computer System
Interface)、Infiniband、SATA(Serial ATA)、SAS(Serial Attached SCSI)等の様々なIFを適用することができる。ホスト２側をフロントエンド、ディスク装置１２側をバックエンドと呼ぶこともある。本実施例では簡単のため上位IF113及び下位IF114はそれぞれ1つとしているが、複数を備えてもよい。
【００３６】
IF115は、ホスト２からのデータの入出力とは別に設けられたIFであり、ストレージサブシステム1の管理用ポートとして用いられる。IF115においても、様々なIFを適用することが可能であり、特にネットワーク機器の普及しているLAN接続が好適である。ブリッジ116は、CPU112とメモリ111間のデータ転送や上位IF113とメモリ111間のデータ転送等の各種データ転送を制御する。コントローラ11は、負荷分散（ロードバランス）やフェイルオーバのためにストレージサブシステム1内に複数備えても良い。
【００３７】
次に、論理ボリュームに関して説明する。
【００３８】
図3は、論理ボリュームの割り当てを模式的に示した図である。
【００３９】
通常、ディスク領域は、論理ボリューム(LU：Logical Unit)という単位でホストから認識される。ストレージサブシステム1は、ホスト２から使用されるボリュームを仮想的に定義し、構築することができる。この論理ボリュームを仮想LUNと呼ぶ。これに対し、装置内の物理的な格納先を表すボリュームを内部LUNと呼ぶ。
【００４０】
図3において、14は、仮想LUNであり、141a、141bは、内部LUNである。複数台のディスク装置12からRAIDグループが形成され、１つのRAIDグループに複数の内部LUNを定義することができる。仮想LUNは、実際にデータを格納するための領域が必要な場合には、装置内の物理的な格納先を表す内部LUNとマッピングされる。複数の内部LUNを統合し、１つの仮想ディスクLUNとマッピングすることもできる。データのマイグレーションなどによりデータの格納先が変更された場合は、仮想LUNと内部LUNのマッピングを切替えることにより 、目的のデータへのアクセスが可能となる。また、ボリュームを使用していないときは、内部LUNが割り当てられていなくてもよい。仮想LUNと内部LUNの対応関係は自由にすることができる。
【００４１】
図４は、論理ボリューム構成の一例を示した図である。
【００４２】
144は、同時にリストアする単位であるコンシステンシーグループであり、145は、ジャーナルデータを格納するための領域であるジャーナルプールである。
【００４３】
ストレージサブシステム1は、1つまたは複数のコンシステンシーグループ１４４を設定でき、コンシステンシーグループには、複数のボリューム14が含まれる。例えば、アプリケーションプログラム21が、複数ボリュームを使用している場合には、その全てのボリュームが或る特定の同一時点のデータを有さなければ意味をなさない場合がある。この場合は、アプリケーションプログラム21が使用する全てのボリュームを一括でリストアする必要があるため、これらのボリュームを同一コンシステンシーグループに設定する必要がある。
【００４４】
本実施例では、ホストが普段使用するボリュームをオンラインボリューム（正ボリュームと呼んで良い）と呼び、オンラインボリュームのある時点の複製データを格納するボリュームを複製ボリューム（副ボリュームと呼んで良い）と呼ぶ。コンシステンシーグループ１４４は、オンラインボリュームと複製ボリュームを含む。ホストからのチェックポイント指示に応じて、オンラインボリュームの内容を複製ボリュームに反映するようにしても良い。複製ボリュームは、格納されているデータがどの時点のチェックポイントの内容かがわかるように、チェックポイントIDと関連付けて管理されている。
【００４５】
ジャーナルプール１４５は、1つまたは複数の内部ボリューム14１を含むことができる。ジャーナルプール１４５は、ストレージサブシステム1に1つとしてもよいし、コンシステンシーグループ毎に対応するジャーナルプールを割り当てるようにしてもよい。
【００４６】
次に、テープグループに関して説明する。ストレージサブシステム1は、大容量のデータを格納するため、前述したテープライブラリ装置13を有している。テープライブラリ装置13には、複数のテープ132が存在し、それら複数のテープをグループ分けしたものをテープグループと呼ぶ。
【００４７】
図5は、テープグループの一例を示した図である。
【００４８】
142は、テープグループである。テープグループ１４２には、1つまたは複数のテープ132が含まれる。テープグループは、ユーザが管理プログラム31を通じてあらかじめ作成するようにしても良いし、ストレージサブシステム1が必要に応じて自動的に空きテープをテープグループに割り当てるようにしても良い。
【００４９】
図6はCTG管理テーブルの一例を示す図である。なお、CTGとは、コンシステンシーグループの略である。
【００５０】
CTG管理テーブル1181は、コンシステンシーグループに属するディスクやテープの割り当てを管理するためのテーブルである。コンシステンシーグループを識別するためのIDであるCTG-ID1181aや、コンシステンシーグループに属するディスクのLUN（具体的には、オンラインボリュームのＬＵＮ1181bと、それとペアを成す複製ボリュームのＬＵＮ1181f）が記述される。また、テープへ格納することの優先度1181cや、コンシステンシーグループに割り当てられたテープグループの識別子1181dや、対応するジャーナルプールの識別子1181eが記述される。ジャーナルプールをシステムで1つとする場合にはジャーナルプールの識別子1181eには、全て同じ値が設定される。なお、どのジャーナルプールのどのジャーナルボリュームが属するかは、例えば、図１５に例示するジャーナルプール管理テーブル（他種の形式の情報でも良い）５１５２で管理される。このテーブル５１５２は、例えば、ジャーナル制御プログラム１１７が、管理テーブル１１７１の全部或いは一部、又は、それとは別のものとして保持してよい。
【００５１】
図７は、優先度管理テーブルの一例を示す図である。
【００５２】
優先度管理テーブル1182は、当該優先度がどのような基準値を持つかを管理するためのテーブルである。本実施例では、一例として、コピー閾値1182bと切替閾値1182cとがある。コピー閾値1182bは、コピー（ジャーナルボリュームからテープへのコピー）を開始するかどうかを判断するための閾値である。切替閾値1182cは、他のテープグループのテープが使用中である等の理由により当該テープグループのテープがテープドライブを使用できない場合に、他のテープグループのテープの使用を中断する等して、目的のテープをテープドライブに装填し、テープを切替えてコピーを開始するかどうかを判断するための閾値である。
【００５３】
コピー閾値1182bと切替閾値1182cは、それぞれ閾値の評価基準として、データ量、またはチェックポイント数、またはその両方を用いることができる。ここで、「データ量」とは、対応するコンシステンシーグループの複数のジャーナルのうち、ジャーナルボリュームからテープにコピーされていない一以上のジャーナルのデータ量の合計である。「チェックポイント数」とは、対応するコンシステンシーグループの複数のチェックポイントのうち、ジャーナルボリュームからテープに反映されていないチェックポイントの数である。ここで、コピーではなく「反映」という言葉を使用しているのは、チェックポイントそれ自体がコピーされても良いし、それ自体をコピーすることに代えて、後述するテープマーク（例えばファイルマーク）がテープに記録されてもよいからである。
【００５４】
さて、優先度の設定方法の一例に関して説明する。
【００５５】
図８は、管理プログラム31の管理画面の一例を示した図である。
【００５６】
ユーザは、管理プログラム31を操作し、コンシステンシーグループ毎に優先度を設定することができる。言い換えれば、管理プログラム３１が、管理画面３１１（ＧＵＩの一種）を表示し、該管理画面３１１を介して、予め用意された優先度に従う複数のデータ量と複数のＣＰ（チェックポイント）数との選択を受け付ける。或いは、ユーザ所望のデータ量及び／又はＣＰ数を閾値とするためのカスタム設定も、該管理画面３１１を介して受け付けることができる。
【００５７】
優先度は、データ量とチェックポイント数のうちの一方又は両方を基準とするかを選択できる。チェックポイント数を選択した場合、Aが最も優先度が高く、B、C、D、という順に優先度が低くなる。優先度の評価基準をデータ量で行なう場合には、1が最も優先度が高く、２、３、４、という順に優先度は低くなる。選択した優先度に応じて基準となるデータ量やチェックポイント数が自動的に決まることになる。
【００５８】
これに対して、ユーザがデータ量やチェックポイント数を細かく設定したい場合には、カスタム設定を選択することもできる。優先度を識別するためのIDであるPriority-IDを入力し、次回設定時に選択することも可能である。カスタム設定を選択した場合は、データ量またはチェックポイント数、またはその両方を設定することができる。ユーザは、コピー閾値と切替閾値をそれぞれ入力することができる。
【００５９】
管理プログラム31は、入力された値（データ量及び／又はＣＰ数）を、ストレージサブシステム1に送信し、テープ格納制御プログラム１１８が、その入力値を、優先度管理テーブル1182及びCTG管理テーブル1181に反映させる。
【００６０】
図9は、テープ管理テーブルの一例を示した図である。
【００６１】
テープ管理テーブル１１８３には、各テープドライブ１３１毎に、テープドライブ番号と、使用中テープグループ番号とが記述される。未使用テープドライブには、空きを示す記号が記述される。これにより、どのテープドライブにどのテープグループのテープが使用中であるかや、どのテープドライブが未使用であるかを判別することができる。
【００６２】
図10は、ジャーナルの構成例を示した図である。
【００６３】
ジャーナルには、ホスト2とストレージサブシステム1でチェックポイントを一意に識別するためのチェックポイントID119aや、コンシステンシーグループを識別するCTG番号119bや、テープへ格納済みかどうかを表す格納済みフラグ119cが含まれる。また、ジャーナルには、そのジャーナルの取得順序を示すシーケンス番号119dや、論理ボリュームのLUNとそのアドレスを示すアドレス情報119eや、対象データのデータ長119fや、対象データ119gが含まれる。
【００６４】
CTG番号119bは、アドレス情報119dとCTG管理テーブル1181から求めることもできる。CTG番号119bは、後述するテープ格納処理において、検索を高速化するためのものであり、コンシステンシーグループ毎にジャーナルプールが設定されている場合は不要である。
【００６５】
格納済みフラグ１１９ｃは、例えば、そのジャーナルがテープにコピーされた場合に、オンとされる。つまり、格納済みであることを意味する値に設定される。
【００６６】
アドレス情報119eは、そのジャーナルに含まれる対象データ119gが書かれる位置を表す情報である。具体的には、例えば、このジャーナルが、或るオンラインボリュームに書かれることになる対象データ（書込み対象データ）119gについてジャーナルである場合には、このジャーナルに含まれるアドレス情報119eは、その対象データ119gの書込み先となる上記或るオンラインボリュームのＬＵＮと、そこでのＬＢＡ（論理ブロックアドレス）となる。
【００６７】
次に、ジャーナル取得処理について説明する。
【００６８】
図1１は、ジャーナル取得処理の一例を示すフローチャートである。
【００６９】
ジャーナル制御プログラム117は、ホスト２から受領したコマンドが、チェックポイント取得指示かどうかを判断する（ステップ８０１）。チェックポイント取得は、アプリケーションプログラム21またはユーザによって指示されるものであり、リストア時の目印に使用される。アプリケーションプログラムが指示する場合は、指示プログラム22を通じて、ストレージサブシステム1に、対象コンシステンシーグループ番号とチェックポイントIDを送信する。ユーザが指示する場合は、管理プログラム31を通じて、ストレージサブシステム1に、対象コンシステンシーグループ番号とチェックポイントIDを送信する。受領したコマンドがチェックポイント取得指示の場合は（ステップ８０１でＹＥＳ）、ステップ807に進み、そうではない場合は（ステップ８０１でＮＯ）、ステップ８０２に進む。
【００７０】
チェックポイント取得指示の場合は、ジャーナル制御プログラム117は、チェックポイント情報を、ジャーナルプールへ書き込む（ステップ８０７）。具体的には、例えば、ジャーナル制御プログラム117は、チェックポイントID、対象となるCTG番号、シーケンス番号とを含んだジャーナルを格納する。ジャーナルプールがコンシステンシーグループ毎に分かれている場合には、ジャーナル制御プログラム117は、CTG管理テーブル1181を参照し、対象となるＣＴＧ番号に対応するジャーナルプールを特定し、該ジャーナルプール内のジャーナルボリュームに書き込む。そのジャーナルプールに属するジャーナルボリュームは、図１５に例示したテーブル５１５２を参照することにより、特定することができる。なお、そのテーブル５１５２には、未使用であるとか、満杯であるなどのステータスが更に記録されても良い。
【００７１】
さて、上記受領したコマンドがチェックポイント取得指示ではない場合、ジャーナル制御プログラム117は、受領したコマンドがライトIOかどうか判断する（ステップ８０２）。ライトIOでなければ（ステップ８０２でＮＯ）、終了する。
【００７２】
受領したコマンドがライトIOの場合（ステップ８０２でＹＥＳ）、ジャーナル制御プログラム117は、ジャーナルデータ格納用のキャッシュメモリ領域を確保する(ステップ803)。このキャッシュメモリ領域は、メモリ１１１から確保される。
【００７３】
次に、ジャーナル制御プログラム117は、確保したキャッシュメモリ領域に、ジャーナルデータを作成する。具体的にはCTG番号、シーケンス番号、アドレス情報、データ長を格納する(ステップ804)。
【００７４】
次に、ジャーナル制御プログラム117は、対象ライトデータを、確保したキャッシュメモリ領域にコピーする(ステップ805)。つまり、上記ジャーナルに、対象ライトデータ（対象データ）を含める。
【００７５】
次に、ジャーナル制御プログラム１１７は、作成されたジャーナルデータを、ジャーナルプールへ書き込む(ステップ806)。ジャーナルプールがコンシステンシーグループ毎に分かれている場合には、CTG管理テーブル1181を参照し、対応するジャーナルプールに書き込む。
【００７６】
以上の処理は、コンシステンシーグループのオンラインボリュームに更新が生じる都度に（つまり新たにデーが書かれる都度に）、行われる。これにより、ジャーナルデータがジャーナルプールに蓄積されていく。
【００７７】
次に、テープ格納処理に関して説明する。テープ格納制御プログラム118は、テープ格納処理を定期的に繰り返すことにより、ジャーナルプールに格納されたジャーナルデータの閾値管理を行なう。
【００７８】
図12は、テープ格納処理の一例を示した図である。
【００７９】
テープ格納制御プログラム118は、対象となるコンシステンシーグループ毎に、ジャーナルプールに格納されたジャーナルデータが切替閾値を超えたかどうか判定する(ステップ901)。切替閾値を超えていれば（ステップ９０１でＹＥＳ）、ステップ907に進み、切替処理を実施する。一方、切替閾値を超えていなければ（ステップ９０１でＮＯ）、ステップ９０２に進む。なお、切替閾値を超えているか否かは、例えば、対象となるコンシステンシーグループに対応した優先度に対応する切替閾値を特定し、且つ、対象となるコンシステンシーグループに対応するジャーナルについてのデータ量及び／又はＣＰ数をジャーナルプールから特定し、そのデータ量及び／又はＣＰ数と、特定された切替閾値としてのデータ量及び／又はＣＰ数とを比較することにより、判別することができる。
【００８０】
次に、テープ格納制御プログラム118は、対象となるコンシステンシーグループのジャーナルデータがコピー閾値を超えたかどうか判定する(ステップ902)。コピー閾値を超えていれば（ステップ９０２でＹＥＳ）、ステップ９０３に進み、コピー閾値を超えていなければ（ステップ９０２でＮＯ）、処理を終了する。なお、コピー閾値を超えているか否かは、例えば、対象となるコンシステンシーグループに対応した優先度に対応するコピー閾値を特定し、且つ、対象となるコンシステンシーグループに対応するジャーナルについてのデータ量及び／又はＣＰ数をジャーナルプールから特定し、そのデータ量及び／又はＣＰ数と、特定されたコピー閾値としてのデータ量及び／又はＣＰ数とを比較することにより、判別することができる。
【００８１】
ステップ９０３では、テープ格納制御プログラム118は、テープドライブが使用可能かどうか判定する。これは、テープ管理テーブル１１８３を参照することにより可能である。全てのテープドライブにおいて他のテープグループのテープを使用中の場合は使用不可である（ステップ９０３でＮＯ）。既に目的のテープがテープドライブに装填されている場合や、空きテープドライブが存在する場合は、テープドライブを使用可能である（ステップ９０３でＹＥＳ）。この場合、目的のテープを空きテープドライブに装填する。
【００８２】
ステップ９０３でＹＥＳの場合、テープ格納制御プログラム118は、ジャーナルデータを読み出すのに必要なサイズのキャッシュメモリ領域を確保する(ステップ904)。ここでは、例えば、格納済みフラグがオフであるジャーナルのデータ量合計以上の容量のキャッシュメモリ領域が確保することができる。
【００８３】
次に、テープ格納制御プログラム118は、ジャーナルプールから、対象コンシステンシーグループ（コピー閾値を超えたコンシステンシーグループ）のジャーナルデータをキャッシュメモリ領域に読み出し、テープへの書き込みを行なう(ステップ905)。その際、書込み対象がチェックポイント情報の場合には、該チェックポイント情報に代えて又は加えて、リストア時のデータ検索を高速化するための目印であるテープマーク（例えばファイルマーク或いはセットマーク）の目印を書き込んでおく。テープマークは、ジャーナルをテープに書き込む場合に発行するライトコマンドとは異なる種類のライトコマンドにより書き込むことができる。テープへの書き込み中に空きテープ容量がなくなった場合には、同一テープグループのテープに切替えて書き込みを行なうことができる。または、一定のチェックポイント毎に、テープを切替えるようにしても良い。なお、どのテープグループにどのテープが属するかは、例えば、図１６に例示するテープグループ管理テーブル２１５２を参照することにより、判別することができる。このテーブル２１５２は、テープ格納制御プログラム118が保持して良い。
【００８４】
次に、テープ格納制御プログラム118は、ジャーナルプールの対象ジャーナルデータの格納済みフラグをONにする(ステップ906)。ジャーナル制御プログラムは、ジャーナルプールを、定期的に（或いはテープ格納制御プログラムからのテープ格納処理終了通知を契機に）参照し、格納済みフラグがONのジャーナルデータを削除し、ディスク領域を解放することができる。
【００８５】
次に、切替処理に関して説明する。テープドライブ数がテープグループ数より多い場合は、各テープグループに必ず1つ以上のテープドライブを割り当てることができるため切替処理は不要である。しかし、本実施例では、テープドライブ数よりテープグループ数の方が多いため、テープドライブに使用するテープグループの切替が必要である。
【００８６】
図13は、切替処理の一例を示した図である。
【００８７】
テープ格納制御プログラム118は、テープドライブが切替せずに使用可能かどうかを判定する(ステップ1001)。これは、テープ管理テーブル１１８３を参照することにより、行うことができる。既に目的のテープがテープドライブに装填されている場合や、空きテープドライブが存在する場合は、テープドライブを使用可能である（ステップ１００１でＹＥＳ）。この場合、目的のテープを空きテープドライブに装填し、ステップ1006に進む。一方、全てのテープドライブにおいて他のテープグループのテープを使用中の場合は（ステップ１００１でＮＯ）、次のステップ１００２に進む。
【００８８】
ステップ１００２では、テープ格納制御プログラム118は、現在使用中のテープグループで切替閾値以下のテープグループが存在するかどうかを判定する(ステップ1002)。これは、例えば、各テープドライブに対応した各テープグループをテープ管理テーブル１１８３から特定し、特定された各テープグループに対応した各コンシステンシーグループをＣＴＧ管理テーブル１１８１から特定し、特定した各コンシステンシーグループについて、前述したような、切替閾値から特定されるデータ量及び／又はＣＰ数と、特定されたデータ量及び／ＣＰ数とを比較することにより、判定することができる。存在する場合はステップ1009に進む。存在しない場合は、ステップ1003に進む。
【００８９】
切替閾値以下のテープグループが存在する場合（ステップ１００２でＹＥＳ）、テープ格納制御プログラム118は、切替候補として、当該テープグループを選択する(ステップ1009)。切替閾値以下のテープグループが複数存在する場合は、ジャーナルプールに蓄積されたデータ量及び／又はCP数が切替閾値から最も離れた（最も少ない）テープグループを選択することができる。
【００９０】
切替閾値以下のテープグループが存在しない場合（ステップ１００２でＮＯ）、テープ格納制御プログラム118は、現在使用中のテープグループの中で、対象テープグループ（ステップ１００２でＮＯとなったコンシステンシーグループ）よりも優先度の低いテープグループが存在するかどうかを判定する(ステップ1003)。優先度の低いテープグループが存在しない場合は、終了する。
【００９１】
優先度の低いテープグループが存在する場合は（ステップ１００３でＹＥＳ）、テープ格納制御プログラム118は、切替候補として、当該テープグループを選択する(ステップ1004)。優先度の低いテープグループが複数存在する場合は、最も優先度の低いものを選択することができる。同一優先度のテープグループが複数存在する場合は、ジャーナルプールに蓄積されたデータ量またはCP数が閾値から最も離れた（最も少ない）テープグループを選択することができる。
【００９２】
次に、テープ格納制御プログラム118は、選択されたテープグループのテープと対象テープグループのテープを切替える(ステップ1005)。具体的には、選択されたテープグループのテープの使用を中断し、テープをアンロードし、テープをテープドライブから元のスロットに移動し、代わりに、対象テープグループのテープをテープドライブに装填する。このときテープ管理テーブル1183を書き換える。
【００９３】
この後は、前述したステップ９０４〜９０６と同様の処理が行われる（ステップ１００６〜１００８）。
【００９４】
以上のようにして、使用テープグループの切替を行なうことができる。
【００９５】
次に、リストア処理に関して説明する。リストア処理は、アプリケーションプログラム21またはユーザによって指示される。アプリケーションプログラム２１が指示する場合は、例えば、指示プログラム22を通じて、ストレージサブシステム1に、対象コンシステンシーグループ番号とリストアするチェックポイントID（リストアCP-ID）を送信する。ユーザが指示する場合は、管理プログラム31を通じて、ストレージサブシステム1に、対象コンシステンシーグループ番号とリストアするチェックポイントID（リストアCP-ID）を送信する。リストア先を変更したい場合には、リストア先のLUNを指定しても良い。
【００９６】
図１４は、リストア処理の一例を示した図である。
【００９７】
リストア指示を受領すると、テープ格納制御プログラム118は、指定されたコンシステンシーグループ番号とリストア先ボリュームの現在のチェックポイントIDから対応するテープグループのテープを特定する(ステップ1101)。
【００９８】
次に、テープ格納制御プログラム118は、対象テープ（特定されたテープ）をテープドライブに準備する(ステップ1102)。全テープドライブが使用中の場合は、使用中テープグループのうち最も優先度の低いテープグループを選択し切替を行なってよい。
【００９９】
次に、テープ格納制御プログラム118は、テープからチェックポイントIDをサーチする(ステップ1103)。本実施例では、テープには、チェックポイントの位置にテープマークが記録されるので、このサーチでは、テープマークの検索が行われる。リストア先ボリュームのチェックポイントIDと同一のチェックポイントIDが見つからない場合は、エラーを返す。
【０１００】
リストア先ボリュームのチェックポイントIDと同一のチェックポイントIDが見つかると、テープ格納制御プログラム118は、ジャーナルデータをテープから読み出し、該ジャーナルデータ内のデータを、リストア先ボリュームへ反映させる(ステップ1104)。なお、図１７に例示するように、リストア管理テーブル３１５２に、各リストア先ボリュームのＬＵＮ毎に、どこまでリストアしているかを表すリストア終了ポイントが記録される。リストア終了ポイントとしては、例えば、最後に反映されたＣＰのＩＤ（チェックポイントＩＤ）であっても良いし、最後にリストアされたジャーナルのシーケンス番号であっても良いし、それらの組み合わせであってもよい。このリストアでは、データ格納制御プログラム１１８は、リストア終了ポイントと、指定されたチェックポイントＩＤとの間にあるシーケンス番号を有したジャーナルを読み出し、該ジャーナル内のデータを、リストア先ボリュームにリストアする。
【０１０１】
テープ格納制御プログラム118は、指定されたリストアCP-IDまでのジャーナルデータの反映が完了すると(ステップ1105でＹＥＳ)、処理を終了する。リストアCP-IDが完了していない場合は（ステップ１１０５でＮＯ）、ステップ1106に進む。
【０１０２】
ステップ１１０６では、テープ格納制御プログラム118は、対象テープのテープデータが終了かどうかを判定する。テープデータが終了していれば（ステップ１１０６でＹＥＳ）、ステップ1102に進み、次のテープ（例えばテープＩＤが次のＩＤのテープ）に切替える。テープデータがまだ残っている場合は（ステップ１１０６でＮＯ）、ステップ1104に戻り、ジャーナルデータを反映させる処理を続行する。なお、複数テープドライブが使用できる場合には、複数本のテープをそれぞれのテープドライブから同時並列に読み出してもよい。
【０１０３】
以上のようにして、リストア時に、同一テープには、同一コンシステンシーグループのデータのみが存在するため、必要なデータのみを連続して高速に読み出すことができる。
【０１０４】
以上により、ストレージサブシステム１は、ジャーナルデータをビットコストの低いテープに移行することにより長期のジャーナルデータを低コストで取得できる。また、ストレージサブシステム内でジャーナルの移行処理を行なうことによりホストに負荷をかけずに高速に格納できる。さらに、リストア単位であるコンシステンシーグループに応じたテープ格納を行なうことにより効率の良い高速なリストアを実行できる。
【０１０５】
なお、本実施例では、ジャーナルをテープに書く場合、シーケンス番号が連続しているジャーナルを、テープの連続した領域に書いていく。その際、或るシーケンス番号のジャーナルをその次のシーケンス番号のジャーナルよりもテープの先頭側に書く。こうすることで、必要なジャーナルをシーケンシャルに読み出すことができ、以って、リストアの際にテープの先送りや巻き戻しが頻発してしまうことを防ぐことができる。更新順序（書込み順序）を表す情報として、シーケンス番号が採用されているが、それに代えて、他種の情報、例えば、書込み日時（タイムスタンプ）であってもよい。
【０１０６】
また、本実施例では、或るコンシステンシーグループについてのリストア先ボリュームは、前述したように、その或るコンシステンシーグループ内の複製ボリュームに限らず、他のボリュームであっても良いが、該他のボリュームは、複製ボリュームに関わるボリュームであるべきである。なぜなら、該或るコンシステンシーグループにおいて、コンシステンシーを保つためである。他のボリュームにリストアされた場合、該他のボリュームのデータが、一又は複数のボリュームを経由して、或いは、該他のボリュームを正ボリュームとし該複製ボリュームを副ボリュームとしたペアを形成することにより、コピーが行われても良い。前者の場合、例えば、一つの正ボリュームに複数の副ボリュームが関連付けられた方式（マルチターゲット方式）でも良いし、一つの正ボリュームに副ボリュームが関連付けられ、該副ボリュームに、該副ボリュームを正ボリュームとして別の副ボリュームが関連付けられた方式（マルチホップ方式）でも良い。マルチホップ方式及びマルチターゲット方式でのコピーは、例えば、特開2006-065624号公報や特開2006-065629号公報（US出願番号 10/972,246）に開示の技術を採用できる。これは、ジャーナルについても同様である。すなわち、ジャーナルボリュームから直ちにテープにコピーすることに代えて、例えば、第一のジャーナルボリュームから第二のジャーナルボリュームにジャーナルをコピーし、第二のジャーナルボリュームからジャーナルをテープにコピーしても良い。「ジャーナルボリュームからテープにコピーする」という言葉は、それらどちらの意味を含んでも良い。
【０１０７】
また、複数のジャーナルボリュームを有するジャーナルプールにおいて、ジャーナル格納プログラムはあるジャーナルボリュームがジャーナルデータで一杯になると次のジャーナルボリュームにジャーナルデータを格納するように順次格納先ボリュームを切替えていくような格納を行なうようにしてもよい。このとき、あるジャーナルボリュームがジャーナルデータで一杯になったのを契機に該当ボリュームに関するテープへの格納処理を開始するようにしても良い。
【実施例２】
【０１０８】
以下、本発明の第二実施例について、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する。これは、以下の第三実施例の説明でも同様である。
【０１０９】
図１８は、コピー閾値及びそれと比較される値の説明図である。
【０１１０】
図示のように、コピー閾値は、データ量及び／又はＣＰ数に代えて又は加えて、経過時間でも良い。コンシステンシーグループについての経過時間とは、該コンシステンシーグループのジャーナルのコピーが或る過去の時点（例えば最後の時点）に行われてからの現時点までの経過時間である。この経過時間が、コピー閾値を超えた場合に、コピーが実行される。
【０１１１】
例えば、高い優先度に、コピー閾値として、短い経過時間を設定しおくと、頻繁にコピーが行われるようにすることができ、一方、それよも低い優先度に、コピー閾値として、それよりも長い経過時間をしておく、ことになり、コピーが行われる頻度を少なくすることができる。
【実施例３】
【０１１２】
第三実施例では、ＤＬＣＭ（Data Life Cycle Management）（或いはＩＬＭ（Information Lifecycle Management））の視点で、ジャーナルのテープへのバックアップが制御される。
【０１１３】
図１８は、ＤＬＣＭ管理テーブルの構成例を示す。
【０１１４】
ＤＬＣＭ管理テーブル４１５２には、ＣＴＧ−ＩＤとＤＬＣＭ重要度との対応関係が記録されている。すなわち、どのコンシステンシーグループにどんなＤＬＣＭ重要度が設定されているかが記録される。
【０１１５】
ここで、ＤＬＣＭ重要度とは、ＤＬＣＭに従う重要度であり、例えば、データの重要性、データの使用頻度などを表す値である。ＤＬＣＭ重要度として設定される値は、一種類であっても良いし複数種類であっても良い。ＤＣＬＭ重要度は、ＤＬＣＭに従う重要度という点で、前述した「優先度」とは意味が異なる。ＤＣＬＭ重要度は時間経過やアクセス頻度に伴って値を変化させていくことができる。例えば、アクセス頻度の低いボリュームはストレージ装置内部でＤＣＬＭ重要度を低い値に変化させることができる。また、データが格納されてからの経過時間によって徐々にＤＣＬＭ重要度を低い値に変化させていくこともできる。
【０１１６】
このＤＬＣＭ管理テーブル４１５２は、テープ格納制御プログラム１１８が保持して良い。テープ格納制御プログラム１１８は、ＤＬＣＭ重要度が高いコンシステンシーグループよりもＤＬＣＭ重要度が低いコンシステンシーグループのジャーナルを、優先的に、テープにバックアップし、その後、そのジャーナルを、ジャーナルボリュームから削除する。すなわち、ＤＬＣＭ重要度の高いコンシステンシーグループのジャーナルは、ディスク装置に蓄積され、ＤＬＣＭ重要度の低いコンシステンシーグループのジャーナルは、テープにマイグレーションされる。
【０１１７】
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、各種テーブルは、テーブル代えて他種の形式の情報であっても良い。
【図面の簡単な説明】
【０１１８】
【図１】本発明の第一実施例に係る計算機システムの構成例を示した図である。
【図２】ストレージサブシステム１のコントローラの構成例を示した図である。
【図３】論理ボリュームの割り当ての一例を示した図である。
【図４】論理ボリューム構成の一例を示した図である。
【図５】テープグループの割り当ての一例を示したである。
【図６】CTG管理テーブルの一例を示した図である。
【図７】優先度管理テーブルの一例を示した図である。
【図８】管理画面の一例を示した図である。
【図９】テープ管理テーブルの構成例を示した図である。
【図１０】ジャーナルの構成例を示した図である。
【図１１】ジャーナル取得処理の一例を示したフローチャートである。
【図１２】テープ格納処理の一例を示したフローチャートである。
【図１３】切替処理の一例を示したフローチャートである。
【図１４】リストア処理の一例を示したフローチャートである。
【図１５】ジャーナルプール管理テーブルの構成例を示す図である。
【図１６】テープグループ管理テーブルの構成例を示す図である。
【図１７】リストア管理テーブルの構成例を示す図である。
【図１８】本発明の第二実施例でコピー閾値及びそれと比較される値の説明図。
【図１９】ＤＬＣＭ管理テーブルの構成例を示す。
【符号の説明】
【０１１９】
1…ストレージサブシステム、11…コントローラ、111…メモリ、112…CPU、113…上位IF、114…下位IF、115…IF、116…ブリッジ、117…ジャーナル制御プログラム、118…テープ格納制御プログラム、1171…管理テーブル、1172…ディスク制御モジュール、1181…CTG管理テーブル、1182…優先度管理テーブル、1183…テープ管理テーブル、1184…テープ制御モジュール、12…ディスク装置、13…テープライブラリ装置、131…テープ、14…論理ボリューム、2…ホスト、21…アプリケーションプログラム、22…指示プログラム、3…管理端末、31…管理プログラム、
【図１】
2008065503.tif 000003
【図２】
2008065503.tif 000004
【図３】
2008065503.tif 000005
【図４】
2008065503.tif 000006
【図５】
2008065503.tif 000007
【図６】
2008065503.tif 000008
【図７】
2008065503.tif 000009
【図８】
2008065503.tif 000010
【図９】
2008065503.tif 000011
【図１０】
2008065503.tif 000012
【図１１】
2008065503.tif 000013
【図１２】
2008065503.tif 000014
【図１３】
2008065503.tif 000015
【図１４】
2008065503.tif 000016
【図１５】
2008065503.tif 000017
【図１６】
2008065503.tif 000018
【図１７】
2008065503.tif 000019
【図１８】
2008065503.tif 000020
【図１９】
2008065503.tif 000021