(57)【要約】【課題】ストレージの世代毎のバックアップを低コストで採取するストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法を提供する。【解決手段】所定のストレージの世代バックアップの作成を行うストレージ制御装置であって、指示された時点における所定のストレージの全データと指示された期間における所定のストレージの差分データとの少なくともいずれかのスナップショットを作成する第１コピー部と、所定のストレージの全データと指示された期間における所定のストレージの差分データとの少なくともいずれかのミラーを作成するコピー部と、第１コピー部と第２コピー部のいずれか一方に所定のストレージの全データのコピーを実行させ、他方に世代間の所定のストレージの差分のデータのコピーを実行させる制御部とを備えた。【選択図】図１
2007334709.tif 000002
【特許請求の範囲】
【請求項１】
所定のストレージの世代バックアップの作成を行うストレージ制御装置であって、
指示された時点における前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのスナップショットを作成する第１コピー部と、
前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのミラーを作成する第２コピー部と、
前記第１コピー部と前記第２コピー部のいずれか一方に前記所定のストレージの全データのコピーを実行させ、他方に世代間の前記所定のストレージの差分のデータのコピーを実行させる制御部と
を備えるストレージ制御装置。
【請求項２】
請求項１に記載のストレージ制御装置において、
前記制御部は、最初の世代における前記所定のストレージの全データのスナップショットの作成を前記第１コピー部に実行させ、世代間における前記所定のストレージの差分データのミラーの作成を前記第２コピー部に実行させることを特徴とするストレージ制御装置。
【請求項３】
請求項１に記載のストレージ制御装置において、
前記制御部は、前記所定のストレージの全データのミラーの作成を前記第２コピー部に実行させ、世代間における前記所定のストレージの差分データのスナップショットの作成を前記第１コピー部に実行させることを特徴とするストレージ制御装置。
【請求項４】
所定のストレージの世代バックアップの作成をコンピュータに実行させるストレージ制御プログラムであって、
指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、
該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップと
をコンピュータに実行させるストレージ制御プログラム。
【請求項５】
所定のストレージの世代バックアップの作成を行うストレージ制御方法であって、
指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、
該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップと
を実行するストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージのバックアップを世代毎に採取するストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法に関するものである。
【背景技術】
【０００２】
通常、コンピュータシステムにおいては、障害やオペレーションミスからのデータ復旧のためにバックアップを採取している。バックアップの採取に用いられる、拡張されたコピー機能として、ＯＰＣ（One Point Copy）やＥＣ（Equivalent Copy）がある。ＯＰＣは、主に、スナップショットを作成するものであり、コピー先のストレージのデータは、指示された時点におけるコピー元のストレージのデータとなる。ＥＣは、主に、ミラーを作成するものであり、コピー先のストレージのデータは、指示された期間においてコピー元のストレージのデータに同期する。
【０００３】
なお、本発明の関連ある従来技術として、ある時点のスナップショットイメージを保存するデータ保持部と、その後の更新データ、更新領域、世代を保存する別のデータ保持部とを備えたスナップショットイメージの世代管理方法がある（例えば、特許文献１参照）。
【特許文献１】特開２００５−２９２８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
バックアップデータからの復旧を考えた場合、細かな時間間隔で複数世代のバックアップを採取することが望ましい。しかしながら、従来の技術においては、複数世代のバックアップを採取する場合には、バックアップ元と同容量のボリュームを世代数分用意する必要があった。また、特許文献１のような技術では、予め現在の世代のストレージとバックアップのストレージに同時に書き込むミラーリング機能とその経路の構成を新たに用意する必要がある。また、最初のコピーから時間が経過した場合、更新データの数が増大し、リストア処理の負荷が増大する。
【０００５】
本発明は上述した問題点を解決するためになされたものであり、ストレージの世代毎のバックアップを低コストで採取するストレージ制御装置、ストレージ制御プログラム、ストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明は、所定のストレージの世代バックアップの作成を行うストレージ制御装置であって、指示された時点における前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのスナップショットを作成する第１コピー部と、前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのミラーを作成する第２コピー部と、前記第１コピー部と前記第２コピー部のいずれか一方に前記所定のストレージの全データのコピーを実行させ、他方に世代間の前記所定のストレージの差分のデータのコピーを実行させる制御部とを備えたものである。
【０００７】
また、本発明に係るストレージ制御装置において、前記制御部は、最初の世代における前記所定のストレージの全データのスナップショットの作成を前記第１コピー部に実行させ、世代間における前記所定のストレージの差分データのミラーの作成を前記第２コピー部に実行させることを特徴とするものである。
【０００８】
また、本発明に係るストレージ制御装置において、前記制御部は、前記所定のストレージの全データのミラーの作成を前記第２コピー部に実行させ、世代間における前記所定のストレージの差分データのスナップショットの作成を前記第１コピー部に実行させることを特徴とするものである。
【０００９】
また、本発明は、所定のストレージの世代バックアップの作成をコンピュータに実行させるストレージ制御プログラムであって、指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップとをコンピュータに実行させるものである。
【００１０】
また、本発明は、所定のストレージの世代バックアップの作成を行うストレージ制御方法であって、指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップとを実行するものである。
【発明の効果】
【００１１】
本発明によれば、ストレージの世代毎のバックアップを低コストで採取することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１３】
実施の形態１．
本実施の形態においては、ＯＰＣ（第１コピー部による処理）と差分ＥＣ（第２コピー部による処理）を用いて世代バックアップ処理および世代リストア処理を行うストレージ制御装置について説明する。最初の世代のユーザディスク全てのバックアップの採取においてはＯＰＣを用い、その後の世代のバックアップの採取においてはＥＣにより前の世代との差分だけをコピーする差分ＥＣを用いる。
【００１４】
まず、本実施の形態に係るストレージ制御装置を用いたストレージ装置の構成について説明する。
【００１５】
図１は、実施の形態１に係るストレージ装置の構成の一例を示すブロック図である。このストレージ装置１は、ホスト２に接続される。ストレージ装置１は、ＣＡ（Channel Adaptor）１１、ＣＭ（Centralized Module）１２（ストレージ制御装置）、ディスク１３を備える。ＣＭ１２は、ＣＰＵ（Central Processing Unit）２１（第１コピー部、第２コピー部、制御部）、キャッシュメモリ（Cache）２２、ＦＣ（Fibre Channel）制御部（ＦＣ）２３を備える。
【００１６】
ホスト２は、オペレータの操作を受け付けるとともに、ストレージ装置１へのアクセスを行う。ＣＡ１１は、ホスト２とのインタフェースの制御を行う。ＦＣ制御部２３は、ディスク１３とのインタフェースの制御を行う。キャッシュメモリ２２は、ユーザデータや制御データを格納する。ＣＰＵ２１は、キャッシュメモリ２２、ＦＣ制御部２３、ＣＡ１１に対する資源管理やコピー制御を行う。
【００１７】
本実施の形態に係るディスク１３は、コピー元となるユーザディスク、ＯＰＣによるユーザディスク全体のコピーのコピー先となるＯＰＣディスク、ＥＣによる差分コピーのコピー先となる差分ＥＣディスクＡ、差分ＥＣディスクＢ、差分ＥＣディスクＣで構成される。
【００１８】
次に、本実施の形態に係る制御データについて説明する。
【００１９】
キャッシュメモリ２２は、制御データとして、コピーセッション管理情報、ＬＢＡ（Logical Block Address）変換テーブル、世代管理テーブルを格納する。
【００２０】
まず、コピーセッション管理情報について説明する。図２は、実施の形態１に係るコピーセッション管理情報の構造の一例を示す表である。１回のＯＰＣや１回の差分ＥＣなど、コピーの処理の単位をセッションと呼び、ＯＰＣセッション、差分ＥＣセッションＡなどと呼ぶ。コピーセッション管理情報は、セッション識別子、セッション種別、セッションステイタス、コピー対象範囲（コピー元ＬＵＮ（Logical Unit Number）、コピー先ＬＵＮ、コピー元コピー対象開始ＬＢＡ、コピー先コピー対象開始ＬＢＡ、コピー対象ＬＢＡ数）、未コピー領域を示すＢｉｔＭａｐで構成される。セッション識別子は、そのセッションを示すユニークな番号である。セッション種別は、ＯＰＣ、ＥＣ、差分ＯＰＣ、差分ＥＣなどの値を持つ。セッションステイタスは、セッションの状態を表し、稼働中（Ａｃｔｉｖｅ）、一時停止中（Ｓｕｓｐｅｎｄ）などの値を持つ。
【００２１】
次に、ＬＢＡ変換テーブルについて説明する。図３は、実施の形態１に係るＬＢＡ変換テーブルの構造の一例を示す表である。このＬＢＡ変換テーブルは、差分ＥＣディスク上にてデータの格納位置を示す情報を保持する。ここでは、ユーザディスク上のＬＢＡを示す論理ＬＢＡと差分ＥＣディスク上に実際に格納されている物理ＬＢＡが対応付けられている。
【００２２】
次に、世代管理テーブルについて説明する。図４は、実施の形態１に係る世代管理テーブルの構造の一例を示す表である。この世代管理テーブルは、セッション間の世代を管理するものであり、世代番号、採取時刻（セッションが設定された時刻）、セッション識別子で構成される。セッション識別子は、最初の世代だけがＯＰＣセッションの識別子であり、その後の世代が差分ＥＣセッションの識別子である。
【００２３】
次に、本実施の形態に係る世代バックアップ処理について説明する。
【００２４】
世代バックアップ処理は、世代バックアップ開始処理、世代切り替え処理、世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理、差分ＥＣ管理処理を含む。ここで、ＯＰＣセッションは、ＯＰＣセッション開始時におけるユーザディスクの全データのスナップショットをＯＰＣディスクに作成するものである。また、差分ＥＣセッションは、差分ＥＣセッション開始から差分ＥＣセッション一時停止までの間、差分ＥＣセッション開始時からのユーザディスクの差分データのミラーを、対応する差分ＥＣディスクに作成するものである。
【００２５】
まず、世代バックアップ開始処理について説明する。図５は、実施の形態１に係る世代バックアップ開始処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由の世代バックアップ処理の指示を受信すると（Ｓ１１１）、ＯＰＣセッション開始および差分ＥＣセッションＡ開始の設定を行う（Ｓ１１２）。次に、ＣＰＵ２１によるＯＰＣセッションは、ユーザディスク全体のバックアップを開始する（Ｉｎｉｔｉａｌ  コピー処理）（Ｓ１１３）。次に、ＣＰＵ２１による差分ＥＣセッションＡは、ＷｒｉｔｅＩ／Ｏが発行されるまで待機し（Ｓ１１４）、このフローは終了する。
【００２６】
次に、世代切り替え処理について説明する。ここでは、差分ＥＣセッションＡが稼働中で差分ＥＣセッションＢに切り替える場合について説明する。図６は、実施の形態１に係る世代切り替え処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由の世代切り替えの指示を受信すると（Ｓ１５１）、差分ＥＣセッションＡ一時停止および差分ＥＣセッションＢ開始の設定を行う（Ｓ１５２）。次に、ＣＰＵ２１による差分ＥＣセッションＡは、リカバリのためのリストアの指示があるまで状態を保持し（Ｓ１５３）、ＣＰＵ２１による差分ＥＣセッションＢは、ＷｒｉｔｅＩ／Ｏが発行されるまで待機し（Ｓ１５４）、このフローは終了する。
【００２７】
次に、世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理について説明する。図７は、実施の形態１に係る世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由でユーザディスクに対するＷｒｉｔｅＩ／Ｏの指示を受信すると（Ｓ２１１）、Ｉ／Ｏ範囲においてＯＰＣディスクへのバックアップが完了しているか否かの判断を行う（Ｓ２１２）。完了している場合（Ｓ２１２，Ｙｅｓ）、処理Ｓ２１４へ移行する。一方、完了していない場合（Ｓ２１２，Ｎｏ）、ＣＰＵ２１は、更新前データをＯＰＣディスクへコピーする（Ｓ２１３）。次に、ＣＰＵ２１は、ＷｒｉｔｅＩ／Ｏを実行する（Ｓ２１４）。次に、ＣＰＵ２１は、現在稼働中の差分ＥＣセッションの確認を行い（Ｓ２１５）、確認された稼働中の差分ＥＣディスクへ更新データのコピーを行い（Ｓ２１６）、このフローは終了する。
【００２８】
次に、差分ＥＣ管理処理について説明する。
【００２９】
差分ＥＣ管理処理は、差分ＥＣセッションを管理する処理である。ＣＰＵ２１は、ユーザディスク上の位置情報（論理ＬＢＡ）と差分ＥＣディスク上に格納された物理位置情報（物理ＬＢＡ）の対応関係をＬＢＡ変換テーブルとして記憶し、制御に用いる。また、差分ＥＣセッション中、コピー元であるユーザディスクに更新が行われた場合、ＣＰＵ２１は、コピー先である差分ＥＣディスクの空き領域に前詰めで更新データを格納する。
【００３０】
ここでは、差分ＥＣセッション中、ホスト２からＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏが発行された場合の動作について説明する。
【００３１】
コピー元に対するＷｒｉｔｅＩ／Ｏ発行時、ＣＰＵ２１は、更新データをコピー先に格納する。このとき、ＣＰＵ２１は、更新データをコピー先の物理ディスク上の空き領域に格納する。
【００３２】
また、コピー先に対するＷｒｉｔｅＩ／Ｏ発行時、ＣＰＵ２１は、既にコピー先の物理ディスク上に該当データが存在するか否かのチェックを行う。存在する場合、ＣＰＵ２１は、その領域に対して更新データを反映する。一方、存在しない場合、ＣＰＵ２１は、コピー先の物理ディスク上の空き領域に更新データを格納する。
【００３３】
また、コピー先に対するＲｅａｄＩ／Ｏ発行時でデータａを要求された場合、コピー先の世代ｎの物理ディスク上でデータａに対応するデータｂの検索を行う。データｂが存在する場合、ＣＰＵ２１は、物理ディスク上に存在するデータｂを転送する。データｂが存在しない場合、世代（ｎ−ｍ）（ｍ＝１，２，３…）の物理ディスク上でデータａに対応するデータの検索を行う。該当するデータｂが存在した場合、ＣＰＵ２１は、データｂを転送する。全ての世代の物理ディスクを検索しても該当するデータが存在しない場合、ＣＰＵ２１は、ＯＰＣディスク上のデータを転送する。
【００３４】
次に、上述した世代バックアップ処理の具体例について説明する。
【００３５】
図８は、実施の形態１に係る世代バックアップ処理の具体的な動作の一例を示す図である。まず、時刻ＴＡにおいて、ストレージ制御装置１は、ホスト２からの世代バックアップ処理の指示を受信したとする。このとき、ＣＰＵ２１は、世代バックアップ開始処理を実行することにより、ＯＰＣセッションと差分ＥＣセッションＡを開始する。ＯＰＣセッションは、ユーザディスクからＯＰＣディスクへのバックアップを開始する。差分ＥＣセッションＡは、ＷｒｉｔｅＩ／Ｏが行われない限り待機する。
【００３６】
次に、時刻ＴＢにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ａ））を受信したとする。このとき、ＯＰＣセッションは、Ｉ／Ｏ範囲において、ユーザディスクからＯＰＣディスクへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ａ）ｏｌｄ）をＯＰＣディスクへコピーする。差分ＥＣセッションＡは、ユーザディスクの更新データ（ＷＴ（ａ））を差分ＥＣディスクＡへコピーする。
【００３７】
次に、時刻ＴＣにおいて、ストレージ制御装置１は、ホスト２からの世代切り替え処理の指示を受信したとする。このとき、ＣＰＵ２１は、差分ＥＣセッションＡを一時停止とし、同時に次の世代の差分データを記録する差分ＥＣセッションＢを開始する。以降、差分ＥＣセッションＢは、ユーザディスクの更新データを差分ＥＣディスクＢへコピーする。
【００３８】
次に、時刻ＴＤにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ｂ））を受信したとする。このとき、ＯＰＣセッションは、Ｉ／Ｏ範囲において、ユーザディスクからＯＰＣディスクへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ｂ）ｏｌｄ）をＯＰＣディスクへコピーする。差分ＥＣセッションＢは、ユーザディスクの更新データ（ＷＴ（ｂ））を差分ＥＣディスクＢへコピーする。
【００３９】
次に、時刻ＴＥにおいて、ストレージ制御装置１は、ホスト２からの世代切り替え処理の指示を受信したとする。このとき、ＣＰＵ２１は、差分ＥＣセッションＢを一時停止とし、同時に次の世代の差分データを記録する差分ＥＣセッションＣを開始する。以降、差分ＥＣセッションＣは、ユーザディスクの更新データを差分ＥＣディスクＣへコピーする。
【００４０】
次に、時刻ＴＦにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ｃ））を受信したとする。このとき、ＯＰＣセッションは、Ｉ／Ｏ範囲において、ユーザディスクからＯＰＣディスクへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ｃ）ｏｌｄ）をＯＰＣディスクへコピーする。差分ＥＣセッションＣは、ユーザディスクの更新データ（ＷＴ（ｃ））を差分ＥＣディスクＣへコピーする。
【００４１】
以降、バックアップを採取したい時刻において、世代切り替え処理を行う。
【００４２】
上述した世代バックアップ処理によれば、差分ＥＣディスクには、更新が行われたデータのみが格納され、更新量が少ない場合、ユーザディスクよりもディスク容量を小さくすることが可能である。また、ＯＰＣと差分ＥＣを用いて実現することにより、ホスト２からのアクセスを停止することなく、世代毎のバックアップを採取することができる。
【００４３】
次に、実施の形態１に係る世代リストア処理について説明する。
【００４４】
世代リストア処理は、障害発生時などにＯＰＣディスクと差分ＥＣディスクに保存されたバックアップデータのうち指定した世代のバックアップデータからユーザディスクを復元する処理である。世代リストア処理は、リストア開始処理、世代リストア中Ｉ／Ｏ処理を含む。
【００４５】
次に、本実施の形態に係るリストア開始処理について説明する。図９は、実施の形態１に係るリストア開始処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由のリストア指定時刻を含む世代リストア処理の指示を受信すると（Ｓ３１１）、リストア指定時刻以前の差分ＥＣディスクにまだリストアを実施していないデータが存在するか否かの判断を行う（Ｓ３１２）。ここで、リストア指定時刻は、リストアによりユーザディスクをいつの状態に戻すかを表す時刻である。リストアを実施していないデータが存在する場合（Ｓ３１２，Ｙｅｓ）、ＣＰＵ２１は、差分ＥＣディスク上の該当データを時系列で古いものから順にＯＰＣディスクに反映（マージ処理）し（Ｓ３１３）、処理Ｓ３１２に戻る。一方、リストアを実施していないデータが存在しない場合（Ｓ３１２，Ｎｏ）、ＣＰＵ２１は、ＯＰＣディスクからユーザディスクにリストアし（Ｓ３１４）、このフローは終了する。
【００４６】
次に、本実施の形態に係る世代リストア中Ｉ／Ｏ処理について説明する。図１０は、実施の形態１に係る世代リストア中Ｉ／Ｏ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、世代リストア処理中のユーザディスクに対するＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏを受信した場合（Ｓ３５１）、Ｉ／Ｏ範囲においてユーザディスクへのリストアが完了しているか否かの判断を行う（Ｓ３５２）。
【００４７】
完了している場合（Ｓ３５２，Ｙｅｓ）、処理Ｓ３５６へ移行する。一方、完了していない場合（Ｓ３５２，Ｎｏ）、ＣＰＵ２１は、Ｉ／Ｏ範囲においてリストア指定時刻以前の差分ＥＣディスクにまだリストアを実施していないデータが存在するか否かの判断を行う（Ｓ３５３）。リストアを実施していないデータが存在する場合（Ｓ３５３，Ｙｅｓ）、ＣＰＵ２１は、Ｉ／Ｏ範囲においてリストア指定時刻以前の複数世代の差分ＥＣディスクのうち時系列で最も新しいデータを検索し、そのデータをユーザディスクにリストアし（Ｓ３５４）、処理Ｓ３５６へ移行する。一方、リストアを実施していないデータが存在しない場合（Ｓ３５３，Ｎｏ）、ＣＰＵ２１は、ＯＰＣディスクのデータをユーザディスクにリストアし（Ｓ３５５）、処理Ｓ３５６へ移行する。次に、世代リストア処理を完了し（Ｓ３５６）、指示されたＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏを実行し（Ｓ３５７）、このフローは終了する。
【００４８】
次に、上述した世代リストア処理の具体例について説明する。
【００４９】
図１１は、実施の形態１に係る世代リストア処理の具体的な動作の一例を示す図である。ここでは、９：００に世代バックアップ開始処理によりＯＰＣセッションと差分ＥＣセッションＡが開始され、１０：００に世代切り替え処理により差分ＥＣセッションＡから差分ＥＣセッションＢに切り替えられ（差分ＥＣディスクＡへのコピーが完了）、１１：００に世代切り替え処理により差分ＥＣセッションＢから差分ＥＣセッションＣに切り替えられ（差分ＥＣディスクＢへのコピーが完了）、その後、リストア指定時刻を１１：００としたリストア指示が行われた場合について説明する。
【００５０】
まず、リストア開始処理について説明する。ＣＰＵ２１は、ＯＰＣディスク（ＷＴ（ａ）ｏｌｄ、ＷＴ（ｂ）ｏｌｄ、ＷＴ（ｃ）ｏｌｄ）と１０：００に作成された差分ＥＣディスクＡから、差分ＥＣディスクＡに更新データ（ＷＴ（ａ））が存在するかをチェックする（Ｓ３１２）。存在する場合、該当するデータをＯＰＣディスクにマージする（Ｓ３１３）。次に、ＣＰＵ２１は、１１：００に作成された差分ＥＣディスクＢに更新データ（ＷＴ（ｂ））が存在するかをチェックする（Ｓ３１２）。存在する場合、ＣＰＵ２１は、該当するデータをＯＰＣディスクに更にマージする（Ｓ３１３）。次に、ＣＰＵ２１は、ＯＰＣディスク（ＷＴ（ａ）、ＷＴ（ｂ）、ＷＴ（ｃ）ｏｌｄ）からユーザディスクへリストアする（Ｓ３１４）。
【００５１】
次に、世代リストア中Ｉ／Ｏ処理について説明する。まず、ＣＰＵ２１は、Ｉ／Ｏ該当範囲がリストア済みかチェックし（Ｓ３５２）、リストア済みであればそのままＩ／Ｏを実行する（Ｓ３５７）。リストアがまだ行われていない場合、ＣＰＵ２１は、リストア指定時刻１１：００に対応する差分ＥＣディスクＢに更新データが存在するかをチェックする（Ｓ３５３）。差分ＥＣディスクＢに更新データが存在する場合、差分ＥＣディスクＢ上の更新データをユーザディスクにリストアし（Ｓ３５４）、Ｉ／Ｏを実行する（Ｓ３５７）。差分ＥＣディスクＢに更新データが存在しない場合、チェックした差分ＥＣディスクＢの１世代前である差分ＥＣディスクＡに更新データが存在するかをチェックする（Ｓ３５３）。差分ＥＣディスクＡに更新データが存在する場合、差分ＥＣディスクＡ上の更新データをユーザディスクにリストアし（Ｓ３５４）、Ｉ／Ｏを実行する（Ｓ３５７）。差分ＥＣディスクＡに更新データが存在しない場合、チェックした差分ＥＣディスクＡ以前の差分ＥＣディスクがないことを確認し、ＯＰＣディスクのデータをユーザディスクにリストアし（Ｓ３５５）、ユーザディスクに対してＩ／Ｏを実行する（Ｓ３５７）。
【００５２】
上述した世代リストア処理によれば、ユーザディスクがオンラインの状態で世代リストア処理を行う場合、世代リストア処理中のＩ／Ｏの発行に対して世代リストア中Ｉ／Ｏ処理を行う。この処理により、ユーザからのＩ／Ｏを停止することなく、世代リストア処理を実行することが可能になる。また、ユーザからの見かけ上は、リストア指示を発行した時点で世代リストア処理を完了したように見える。
【００５３】
次に、テープバックアップ処理について説明する。
【００５４】
テープバックアップ処理は、上述した世代バックアップ処理により得られるＯＰＣディスクのデータ、複数の世代の差分ＥＣディスクのデータ、ＬＢＡ変換テーブルをテープにコピーするものである。このうち、差分ＥＣディスクのデータ、ＬＢＡ変換テーブルは、ホスト２から直接参照できないため、ホスト２が使用する特殊コマンドを用意する。特殊コマンドは、差分ＥＣディスクからのデータのＲｅａｄ、差分ＥＣディスクへのデータのＷｒｉｔｅ、差分ＥＣディスクのＬＢＡ変換テーブルのＲｅａｄ、差分ＥＣディスクのＬＢＡ変換テーブルのＷｒｉｔｅである。
【００５５】
図１２は、実施の形態１に係るテープバックアップ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２からの通常Ｒｅａｄコマンドに従って、ＯＰＣディスクのデータをテープにバックアップする（Ｓ４１１）。次に、ＣＰＵ２１は、ホスト２からの特殊コマンドに従って、差分ＥＣディスクのデータをテープにバックアップする（Ｓ４１２）。次に、ＣＰＵ２１は、ホスト２からの特殊コマンドに従って、ＬＢＡ変換テーブルをテープにバックアップし（Ｓ４１３）、このフローは終了する。
【００５６】
上述したテープバックアップ処理によれば、従来、膨大な時間がかかっていたテープへの世代毎の全てのデータのバックアップと比べて、差分ＥＣディスクのバックアップはサイズが小さくなるとともに、処理時間を短縮することができる。
【００５７】
実施の形態２．
本実施の形態においては、ＥＣ（第２コピー部による処理）と差分ＯＰＣ（第１コピー部による処理）を用いて世代バックアップ処理および世代リストア処理を行うストレージ制御装置について説明する。つまり、世代バックアップ処理中はＥＣによるコピーを行うとともに、世代毎のバックアップの採取においてはＯＰＣにより前の世代との差分だけをコピーする差分ＯＰＣを用いる。
【００５８】
まず、本実施の形態に係るストレージ制御装置を用いたストレージ装置の構成について説明する。
【００５９】
本実施の形態に係るストレージ装置の構成は、実施の形態１と同様である。本実施の形態に係るディスク１３は、コピー元となるユーザディスク、ＥＣによるユーザディスク全体のコピーのコピー先となるＥＣディスク、ＯＰＣによる差分コピーのコピー先となる差分ＯＰＣディスクＡ、差分ＯＰＣディスクＢ、差分ＯＰＣディスクＣで構成される。
【００６０】
次に、本実施の形態に係る制御データについて説明する。
【００６１】
制御データは、実施の形態１と同様、コピーセッション管理情報、ＬＢＡ変換テーブル、世代管理テーブルである。コピーセッション管理情報は、実施の形態１と同様である。ＬＢＡ変換テーブルは、差分ＯＰＣディスク上にてデータの格納位置を示す情報を保持する。ここでは、ユーザディスク上のＬＢＡを示す論理ＬＢＡと差分ＯＰＣディスク上に実際に格納されている物理ＬＢＡが対応付けられている。
【００６２】
次に、世代管理テーブルについて説明する。図１３は、実施の形態２に係る世代管理テーブルの構造の一例を示す表である。この世代管理テーブルの構造は、実施の形態１と同様であるが、セッション識別子は、最初の世代だけがＥＣセッションの識別子であり、その後の世代が差分ＯＰＣセッションの識別子である。
【００６３】
次に、本実施の形態に係る世代バックアップ処理について説明する。
【００６４】
世代バックアップ処理は、実施の形態１と同様、世代バックアップ開始処理、世代切り替え処理、世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理、差分ＯＰＣ管理処理、差分ＯＰＣ削除処理を含む。ここで、ＥＣセッションは、ＥＣセッション中、ユーザディスクにＥＣディスクを同期させるようにコピーするものである。また、差分ＯＰＣセッションは、差分ＯＰＣセッション開始時から差分ＯＰＣセッション停止時までのユーザディスクのデータの差分を、対応する差分ＯＰＣディスクにコピーするものである。
【００６５】
まず、世代バックアップ開始処理について説明する。図１４は、実施の形態２に係る世代バックアップ開始処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由の世代バックアップ処理の指示を受信すると（Ｓ５１１）、ＥＣセッション開始および差分ＯＰＣセッションＡ開始の設定を行う（Ｓ５１２）。次に、ＣＰＵ２１によるＥＣセッションは、ユーザディスク全体のミラーリング処理を開始する（Ｉｎｉｔｉａｌ  コピー処理）（Ｓ５１３）。次に、ＣＰＵ２１による差分ＯＰＣセッションＡは、ＷｒｉｔｅＩ／Ｏが発行されるまで待機し（Ｓ５１４）、このフローは終了する。
【００６６】
次に、世代切り替え処理について説明する。ここでは、差分ＥＣセッションＡが稼働中で差分ＥＣセッションＢに切り替える場合について説明する。図１５は、実施の形態２に係る世代切り替え処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由の世代切り替えの指示を受信すると（Ｓ５５１）、差分ＯＰＣセッションＡ一時停止および差分ＯＰＣセッションＢ開始の設定を行う（Ｓ５５２）。次に、ＣＰＵ２１による差分ＯＰＣセッションＡは、リカバリのためのリストアの指示があるまで状態を保持し（Ｓ５５３）、ＣＰＵ２１による差分ＯＰＣセッションＢは、ＷｒｉｔｅＩ／Ｏが発行されるまで待機し（Ｓ５５４）、このフローは終了する。
【００６７】
次に、世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理について説明する。図１６は、実施の形態２に係る世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由でユーザディスクに対するＷｒｉｔｅＩ／Ｏの指示を受信すると（Ｓ６１１）、Ｉ／Ｏ範囲において現在稼働中の差分ＯＰＣディスクへのバックアップが完了しているか否かの判断を行う（Ｓ６１２）。完了している場合（Ｓ６１２，Ｙｅｓ）、処理Ｓ６１４へ移行する。一方、完了していない場合（Ｓ６１２，Ｎｏ）、ＣＰＵ２１は、更新前データを稼働中の差分ＯＰＣディスクへコピーする（Ｓ６１３）。次に、ＣＰＵ２１は、ＷｒｉｔｅＩ／Ｏを実行する（Ｓ６１４）。次に、ＣＰＵ２１は、ＥＣディスクへ更新データのコピーを行い（Ｓ６１６）、このフローは終了する。
【００６８】
次に、差分ＯＰＣ管理処理について説明する。
【００６９】
差分ＯＰＣ管理処理は、差分ＯＰＣセッションを管理する処理である。ＣＰＵ２１は、ユーザディスク上の位置情報（論理ＬＢＡ）と差分ＯＰＣディスク上に格納された物理位置情報（物理ＬＢＡ）の対応関係をＬＢＡ変換テーブルとして記憶し、制御に用いる。また、差分ＯＰＣセッション中、コピー元であるユーザディスクに更新が行われた場合、ＣＰＵ２１は、コピー先である差分ＯＰＣディスクの空き領域に前詰めで更新データを格納する。
【００７０】
ここでは、差分ＯＰＣセッション中、ホスト２からＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏが発行された場合の動作について説明する。
【００７１】
コピー元に対するＷｒｉｔｅＩ／Ｏ発行時、ＣＰＵ２１は、更新前のデータをコピー先の物理ディスク上の空き領域に格納する。
【００７２】
また、コピー先に対するＷｒｉｔｅＩ／Ｏ発行時、ＣＰＵ２１は、更新前のデータをコピー先の物理ディスク上の空き領域に格納する。
【００７３】
また、コピー先に対するＲｅａｄＩ／Ｏ発行時でデータａを要求された場合、コピー先の世代ｎの物理ディスク上でデータａに対応するデータｂの検索を行う。データｂが存在する場合、ＣＰＵ２１は、物理ディスク上に存在するデータｂを転送する。データｂが存在しない場合、ＣＰＵ２１は、ユーザディスク上のデータを転送する。
【００７４】
次に、差分ＯＰＣ管理処理について説明する。
【００７５】
ＣＰＵ２１は、不要になった世代の差分ＯＰＣディスクを削除する。また、ＣＰＵ２１は、ある世代の差分ＯＰＣディスクを削除した後、そのディスクを次の世代のＯＰＣディスクとして使用することができる。従って、少ないディスク本数で世代管理を行うことができる。
【００７６】
次に、上述した世代バックアップ処理の具体例について説明する。
【００７７】
図１７は、実施の形態２に係る世代バックアップ処理の具体的な動作の一例を示す図である。まず、時刻ＴＡにおいて、ストレージ制御装置１は、ホスト２からの世代バックアップ処理の指示を受信したとする。このとき、ＣＰＵ２１は、世代バックアップ開始処理を実行することにより、ＥＣセッションと差分ＯＰＣセッションＡを開始する。ＥＣセッションは、ユーザディスクからＥＣディスクへのミラーリング（同期）を開始する。差分ＯＰＣセッションＡは、ＷｒｉｔｅＩ／Ｏが行われない限り待機する。
【００７８】
次に、時刻ＴＢにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ａ））を受信したとする。このとき、ＥＣセッションは、ユーザディスクからＥＣディスクへのミラーリング（ＷＴ（ａ））を行う。差分ＯＰＣセッションＡは、Ｉ／Ｏ範囲において、ユーザディスクから差分ＯＰＣディスクＡへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ａ）ｏｌｄ）を差分ＯＰＣディスクＡへコピーする。
【００７９】
次に、時刻ＴＣにおいて、ストレージ制御装置１は、ホスト２からの世代切り替え処理の指示を受信したとする。このとき、ＣＰＵ２１は、差分ＯＰＣセッションＡを一時停止とし、同時に次の世代の差分データを記録する差分ＯＰＣセッションＢを開始する。以降、差分ＯＰＣセッションＢは、ユーザディスクの更新データを差分ＯＰＣディスクＢへコピーする。
【００８０】
次に、時刻ＴＤにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ｂ））を受信したとする。このとき、ＥＣセッションは、ユーザディスクからＥＣディスクへのミラーリング（ＷＴ（ｂ））を行う。差分ＯＰＣセッションＢは、Ｉ／Ｏ範囲において、ユーザディスクから差分ＯＰＣディスクＢへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ｂ）ｏｌｄ）を差分ＯＰＣディスクＢへコピーする。
【００８１】
次に、時刻ＴＥにおいて、ストレージ制御装置１は、ホスト２からの世代切り替え処理の指示を受信したとする。このとき、ＣＰＵ２１は、差分ＯＰＣセッションＢを一時停止とし、同時に次の世代の差分データを記録する差分ＯＰＣセッションＣを開始する。以降、差分ＯＰＣセッションＣは、ユーザディスクの更新データを差分ＯＰＣディスクＣへコピーする。
【００８２】
次に、時刻ＴＦにおいて、ストレージ制御装置１は、ホスト２からのＷｒｉｔｅＩ／Ｏ（ＷＴ（ｃ））を受信したとする。このとき、ＥＣセッションは、ユーザディスクからＥＣディスクへのミラーリング（ＷＴ（ｃ））を行う。差分ＯＰＣセッションＣは、Ｉ／Ｏ範囲において、ユーザディスクから差分ＯＰＣディスクＣへのコピーが行われていないデータがあれば、更新前データ（ＷＴ（ｃ）ｏｌｄ）を差分ＯＰＣディスクＣへコピーする。
【００８３】
以降、バックアップを採取したい時刻において、世代切り替え処理を行う。
【００８４】
上述した世代バックアップ処理によれば、差分ＯＰＣディスクには、更新が行われたデータのみが格納され、更新量が少ない場合、ユーザディスクよりもディスク容量を小さくすることが可能である。また、ＥＣと差分ＯＰＣを用いて実現することにより、ホスト２からのアクセスを停止することなく、世代毎のバックアップを採取することができる。
【００８５】
次に、本実施の形態に係る世代リストア処理について説明する。
【００８６】
世代リストア処理は、障害発生時などにＥＣディスクと差分ＯＰＣディスクに保存されたバックアップデータのうち指定した世代のバックアップデータからユーザディスクを復元する処理である。世代リストア処理は、実施の形態１と同様、リストア開始処理、世代リストア中Ｉ／Ｏ処理を含む。
【００８７】
次に、本実施の形態に係るリストア開始処理について説明する。図１８は、実施の形態２に係るリストア開始処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２あるいはＬＡＮ経由のリストア指定時刻を含む世代リストア処理の指示を受信すると（Ｓ７１１）、リストア指定時刻以前の差分ＯＰＣディスクにまだリストアを実施していないデータが存在するか否かの判断を行う（Ｓ７１２）。ここで、リストア指定時刻は、リストアによりユーザディスクをいつの状態に戻すかを表す時刻である。リストアを実施していないデータが存在する場合（Ｓ７１２，Ｙｅｓ）、ＣＰＵ２１は、差分ＯＰＣディスク上の該当データを時系列で新しいものから順にユーザディスクに反映（マージ処理）し（Ｓ７１３）、処理Ｓ７１２に戻る。一方、リストアを実施していないデータが存在しない場合（Ｓ７１２，Ｎｏ）、このフローは終了する。
【００８８】
次に、本実施の形態に係る世代リストア中Ｉ／Ｏ処理について説明する。図１９は、実施の形態２に係る世代リストア中Ｉ／Ｏ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、世代リストア処理中のユーザディスクに対するＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏを受信した場合（Ｓ７５１）、Ｉ／Ｏ範囲においてユーザディスクへのリストアが完了しているか否かの判断を行う（Ｓ７５２）。
【００８９】
完了している場合（Ｓ７５２，Ｙｅｓ）、処理Ｓ７５６へ移行する。一方、完了していない場合（Ｓ７５２，Ｎｏ）、ＣＰＵ２１は、Ｉ／Ｏ範囲においてリストア指定時刻以前の差分ＯＰＣディスクにまだリストアを実施していないデータが存在するか否かの判断を行う（Ｓ７５３）。リストアを実施していないデータが存在する場合（Ｓ７５３，Ｙｅｓ）、ＣＰＵ２１は、Ｉ／Ｏ範囲においてリストア指定時刻以前の複数世代の差分ＯＰＣディスクのうち時系列で最も古いデータを検索し、そのデータをユーザディスクにリストアし（Ｓ７５４）、処理Ｓ７５６へ移行する。一方、リストアを実施していないデータが存在しない場合（Ｓ７５３，Ｎｏ）、処理Ｓ７５６へ移行する。次に、世代リストア処理を完了し（Ｓ７５６）、指示されたＲｅａｄＩ／ＯまたはＷｒｉｔｅＩ／Ｏを実行し（Ｓ７５７）、このフローは終了する。
【００９０】
次に、上述した世代リストア処理の具体例について説明する。
【００９１】
図２０は、実施の形態２に係る世代リストア処理の具体的な動作の一例を示す図である。ここでは、９：００に世代バックアップ開始処理によりＥＣセッションと差分ＯＰＣセッションＡが開始され、１０：００に世代切り替え処理により差分ＯＰＣセッションＡから差分ＯＰＣセッションＢに切り替えられ（差分ＯＰＣディスクＢへのコピーが開始）、１１：００に世代切り替え処理により差分ＯＰＣセッションＢから差分ＯＰＣセッションＣに切り替えられ（差分ＯＰＣディスクＣへのコピーが開始）、その後、リストア指定時刻を１１：００としたリストア指示が行われた場合について説明する。
【００９２】
まず、リストア開始処理について説明する。ＣＰＵ２１は、ＯＰＣディスク（ＷＴ（ａ）、ＷＴ（ｂ）、ＷＴ（ｃ））とリストア指定時刻１１：００にコピーが開始された差分ＯＰＣディスクＣから、差分ＯＰＣディスクＣにバックアップデータ（ＷＴ（ｃ）ｏｌｄ）が存在するかをチェックする（Ｓ７１２）。存在する場合、該当するデータをユーザディスクにマージする（Ｓ７１３）。次に、ＣＰＵ２１は、１０：００にコピーが開始された差分ＯＰＣディスクＢにバックアップデータ（ＷＴ（ｂ）ｏｌｄ）が存在するかをチェックする（Ｓ７１２）。存在する場合、ＣＰＵ２１は、該当するデータをユーザディスクに更にマージする（Ｓ７１３）。
【００９３】
次に、世代リストア中Ｉ／Ｏ処理について説明する。まず、ＣＰＵ２１は、Ｉ／Ｏ該当範囲がリストア済みかチェックし（Ｓ７５２）、リストア済みであればそのままＩ／Ｏを実行する（Ｓ７５７）。リストアがまだ行われていない場合、ＣＰＵ２１は、リストア指定時刻１０：００に対応する差分ＯＰＣディスクＣにバックアップデータが存在するかをチェックする（Ｓ７５３）。バックアップデータが存在する場合、差分ＯＰＣディスクＣ上のバックアップデータをユーザディスクにリストアし（Ｓ７５４）、Ｉ／Ｏを実行する（Ｓ７５７）。バックアップデータが存在しない場合、チェックした差分ＯＰＣディスクＣの１世代前である差分ＯＰＣディスクＢにバックアップデータが存在するかをチェックする（Ｓ７５３）。バックアップデータが存在する場合、差分ＯＰＣディスクＢ上のバックアップデータをユーザディスクにリストアし（Ｓ７５４）、Ｉ／Ｏを実行する（Ｓ７５７）。バックアップデータが存在しない場合、リストア指定時刻までのリストアが完了したことを確認し、ユーザディスクに対してＩ／Ｏを実行する（Ｓ７５７）。
【００９４】
上述した世代リストア処理によれば、ユーザディスクがオンラインの状態で世代リストア処理を行う場合、世代リストア処理中のＩ／Ｏの発行に対して世代リストア中Ｉ／Ｏ処理を行う。この処理により、ユーザからのＩ／Ｏを停止することなく、世代リストア処理を実行することが可能になる。また、ユーザからの見かけ上は、リストア指示を発行した時点で世代リストア処理を完了したように見える。
【００９５】
次に、テープバックアップ処理について説明する。
【００９６】
テープバックアップ処理は、実施の形態１と同様であるが、上述した世代バックアップ処理により得られるＥＣディスクのデータ、複数の世代の差分ＯＰＣディスクのデータ、ＬＢＡ変換テーブルをテープにコピーするものである。特殊コマンドは、差分ＯＰＣディスクからのデータのＲｅａｄ、差分ＯＰＣディスクへのデータのＷｒｉｔｅ、差分ＯＰＣディスクのＬＢＡ変換テーブルのＲｅａｄ、差分ＯＰＣディスクのＬＢＡ変換テーブルのＷｒｉｔｅである。
【００９７】
図２１は、実施の形態２に係るテープバックアップ処理の動作の一例を示すフローチャートである。まず、ＣＰＵ２１は、ホスト２からの通常Ｒｅａｄコマンドに従って、ＥＣディスクのデータをテープにバックアップする（Ｓ８１１）。次に、ＣＰＵ２１は、ホスト２からの特殊コマンドに従って、差分ＯＰＣディスクのデータをテープにバックアップする（Ｓ８１２）。次に、ＣＰＵ２１は、ホスト２からの特殊コマンドに従って、ＬＢＡ変換テーブルをテープにバックアップし（Ｓ８１３）、このフローは終了する。
【００９８】
上述したテープバックアップ処理によれば、従来、膨大な時間がかかっていたテープへの世代毎の全てのデータのバックアップと比べて、差分ＯＰＣディスクのバックアップはサイズが小さくなるとともに、処理時間を短縮することができる。
【００９９】
実施の形態３．
本実施の形態においては、実施の形態１と実施の形態２の両方を用いて世代バックアップ処理および世代リストア処理を行うストレージ制御装置について説明する。
【０１００】
まず、本実施の形態に係るストレージ制御装置を用いたストレージ装置の構成、制御データは、実施の形態１および実施の形態２と同様である。また、本実施の形態に係るストレージ制御装置は、実施の形態１の世代バックアップ処理と実施の形態２の世代バックアップ処理を同時に行う。
【０１０１】
次に、本実施の形態に係る世代リストア処理について説明する。
【０１０２】
まず、ＣＰＵ２１は、リストア指定時刻を含む世代リストア処理の指示を受信すると、リストア指定時刻と世代バックアップ処理開始時刻の差、および現在時刻とリストア指定時刻の差を比較する。つまり、ＣＰＵ２１は、リストア指定時刻が世代バックアップ処理開始時刻と現在時刻のどちらに近いかを判断する。リストア指定時刻が世代バックアップ処理開始時刻に近い場合（所定の時刻より古い場合）、ＣＰＵ２１は、実施の形態１の世代リストア処理を行う。一方、リストア指定時刻が現在時刻に近い場合（所定の時刻より新しい場合）、ＣＰＵ２１は、実施の形態２の世代リストア処理を行う。
【０１０３】
次に、本実施の形態に係る世代リストア処理の具体例について説明する。
【０１０４】
図２２は、実施の形態３に係る世代リストア処理の具体的な動作の一例を示す図である。ここでは、９：００に、実施の形態１の世代バックアップ開始処理により、ＯＰＣセッションと差分ＥＣセッションＡが開始されるとともに、実施の形態２の世代バックアップ開始処理により、ＥＣセッションと差分ＯＰＣセッションＡが開始されるとする。次に、１０：００に、実施の形態１の世代切り替え処理により差分ＥＣセッションＡから差分ＥＣセッションＢに切り替えられるとともに、実施の形態２の世代切り替え処理により差分ＯＰＣセッションＡから差分ＯＰＣセッションＢに切り替えられるとする。次に、１１：００に、実施の形態１の世代切り替え処理により差分ＥＣセッションＢから差分ＥＣセッションＣに切り替えられるとともに、実施の形態２の世代切り替え処理により差分ＯＰＣセッションＢから差分ＯＰＣセッションＣに切り替えられるとする。
【０１０５】
現在時刻１２：００の世代リストア処理の指示において、リストア指定時刻が１０：００である場合、ＣＰＵ２１は、リストア指定時刻が世代バックアップ処理開始時刻の方に近いと判断し、実施の形態１の世代リストア処理を行う。現在時刻１２：００の世代リストア処理の指示において、リストア指定時刻が１１：００である場合、ＣＰＵ２１は、リストア指定時刻が現在時刻の方に近いと判断し、実施の形態２の世代リストア処理を行う。
【０１０６】
上述した世代リストア処理によれば、２つの世代リストア処理のうち、処理の少ない方を選択することができ、世代リストア処理の時間を短縮することができる。
【０１０７】
なお、第１コピーステップは、実施の形態におけるＯＰＣセッションとＥＣセッションの少なくともいずれかに対応する。また、第２コピーステップは、実施の形態における差分ＥＣセッションと差分ＯＰＣセッションの少なくともいずれかに対応する。また、リストアステップは、実施の形態における世代リストア処理に対応する。
【０１０８】
また、本実施の形態に係るストレージ制御装置は、ストレージ装置に容易に適用することができ、ストレージ装置の性能をより高めることができる。ここで、ストレージ装置には、例えばディスク装置、ディスクアレイ装置等が含まれ得る。
【０１０９】
更に、ストレージ制御装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ストレージ制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ストレージ制御装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【０１１０】
（付記１）  所定のストレージの世代バックアップの作成を行うストレージ制御装置であって、
指示された時点における前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのスナップショットを作成する第１コピー部と、
前記所定のストレージの全データと指示された期間における前記所定のストレージの差分データとの少なくともいずれかのミラーを作成する第２コピー部と、
前記第１コピー部と前記第２コピー部のいずれか一方に前記所定のストレージの全データのコピーを実行させ、他方に世代間の前記所定のストレージの差分のデータのコピーを実行させる制御部と
を備えるストレージ制御装置。
（付記２）  付記１に記載のストレージ制御装置において、
前記制御部は、最初の世代における前記所定のストレージの全データのスナップショットの作成を前記第１コピー部に実行させ、世代間における前記所定のストレージの差分データのミラーの作成を前記第２コピー部に実行させることを特徴とするストレージ制御装置。
（付記３）  付記１に記載のストレージ制御装置において、
前記制御部は、前記所定のストレージの全データのミラーの作成を前記第２コピー部に実行させ、世代間における前記所定のストレージの差分データのスナップショットの作成を前記第１コピー部に実行させることを特徴とするストレージ制御装置。
（付記４）  付記１に記載のストレージ制御装置において、
前記制御部は、最初の世代における前記所定のストレージの全データのスナップショットの作成を前記第１コピー部に実行させるとともに、前記所定のストレージの全データのミラーの作成を前記第２コピー部に実行させ、世代間における前記所定のストレージの差分データのミラーの作成を前記第２コピー部に実行させるとともに、世代間における前記所定のストレージの差分データのスナップショットの作成を前記第１コピー部に実行させることを特徴とするストレージ制御装置。
（付記５）  付記２に記載のストレージ制御装置において、
前記第１コピー部により前記全データのスナップショットが作成され、前記第２コピー部により少なくとも一つの前記差分データのミラーが作成された後、リストアの目標時刻を含むリストアの指示を受け取ると、前記制御部は、該目標時刻以前の前記差分データのミラーを古い順に前記全データのスナップショットへ反映し、該反映後の前記全データのスナップショットを前記所定のストレージへ反映することを特徴とするストレージ制御装置。
（付記６）  付記３に記載のストレージ制御装置において、
前記第２コピー部により前記全データのミラーが作成され、前記第１コピー部により少なくとも一つの前記差分データのスナップショットが作成された後、リストアの目標時刻を含むリストアの指示を受け取ると、前記制御部は、該目標時刻以降の前記差分データのスナップショットを新しい順に前記所定のストレージへ反映することを特徴とするストレージ制御装置。
（付記７）  付記４に記載のストレージ制御装置において、
前記第１コピー部により前記全データのスナップショットが作成されるとともに、前記第２コピー部により前記全データのミラーが作成され、前記第２コピー部により少なくとも一つの前記差分データのミラーが作成されるとともに、前記第１コピー部により少なくとも一つの前記差分データのスナップショットが作成された後、リストアの目標時刻を含むリストアの指示を受け取ると、前記制御部は、前記最初の世代の時刻と現在時刻のどちらが前記目標時刻に近いかの判断を行い、前記最初の世代の時刻の方が前記目標時刻に近い場合、該目標時刻以前の前記差分データのミラーを古い順に前記全データのスナップショットへ反映し、該反映後の前記全データのスナップショットを前記所定のストレージへ反映し、前記現在時刻の方が前記目標時刻に近い場合、該目標時刻以降の前記差分データのスナップショットを新しい順に前記所定のストレージへ反映することを特徴とするストレージ制御装置。
（付記８）  付記５または付記７に記載のストレージ制御装置において、
外部から前記所定のストレージに対する読み込みまたは書き込みの指示を受けた場合、前記制御部は、該読み込みまたは書き込みの対象範囲において前記目標時刻以前の前記差分データのミラーから前記所定のストレージに反映されていないデータがある場合、該ミラーの中で最も新しいデータを前記所定のストレージに反映し、前記読み込みまたは書き込みを実行することを特徴とするストレージ制御装置。
（付記９）  付記６または付記７に記載のストレージ制御装置において、
外部から前記所定のストレージに対する読み込みまたは書き込みの指示を受けた場合、前記制御部は、該読み込みまたは書き込みの対象範囲において前記目標時刻以降の前記差分データのスナップショットから前記所定のストレージに反映されていないデータがある場合、該スナップショットの中で最も古いデータを前記所定のストレージに反映し、前記読み込みまたは書き込みを実行することを特徴とするストレージ制御装置。
（付記１０）  付記２、付記４、付記５、付記７、付記８のいずれかに記載のストレージ制御装置において、
外部から前記所定のストレージに対する書き込みの指示を受けた場合、前記制御部は、該書き込みの対象範囲から前記全データのスナップショットへのコピーが完了していない場合、該書き込み前のデータを前記全データのスナップショットにコピーし、前記書き込みを実行することを特徴とするストレージ制御装置。
（付記１１）  付記３、付記４、付記６、付記７、付記９のいずれかに記載のストレージ制御装置において、
外部から前記所定のストレージに対する書き込みの指示を受けた場合、前記制御部は、該書き込みの対象範囲から前記差分データのスナップショットへのコピーが完了していない場合、該書き込み前のデータを前記差分データのスナップショットにコピーし、前記書き込みを実行することを特徴とするストレージ制御装置。
（付記１２）  所定のストレージの世代バックアップの作成をコンピュータに実行させるストレージ制御プログラムであって、
指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、
該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップと
をコンピュータに実行させるストレージ制御プログラム。
（付記１３）  付記１２に記載のストレージ制御プログラムにおいて、
前記第１コピーステップは、最初の世代における前記所定のストレージの全データのスナップショットの作成を行い、
前記第２コピーステップは、世代間における前記所定のストレージの差分データのミラーの作成を行うことを特徴とするストレージ制御プログラム。
（付記１４）  付記１２に記載のストレージ制御プログラムにおいて、
前記第１コピーステップは、前記所定のストレージの全データのミラーの作成を行い、
前記第２コピーステップは、世代間における前記所定のストレージの差分データのスナップショットの作成を行うことを特徴とするストレージ制御プログラム。
（付記１５）  付記１２に記載のストレージ制御プログラムにおいて、
前記第１コピーステップは、最初の世代における前記所定のストレージの全データのスナップショットの作成を行うとともに、前記所定のストレージの全データのミラーの作成を行い、
前記第２コピーステップは、世代間における前記所定のストレージの差分データのミラーの作成を行うとともに、世代間における前記所定のストレージの差分データのスナップショットの作成を行うことを特徴とするストレージ制御プログラム。
（付記１６）  付記２に記載のストレージ制御プログラムにおいて、
前記第１コピーステップにより前記全データのスナップショットが作成され、前記第２コピーステップにより少なくとも一つの前記差分データのミラーが作成された後、更に、リストアの目標時刻を含むリストアの指示を受け取ると、該目標時刻以前の前記差分データのミラーを古い順に前記全データのスナップショットへ反映し、該反映後の前記全データのスナップショットを前記所定のストレージへ反映するリストアステップをコンピュータに実行させることを特徴とするストレージ制御プログラム。
（付記１７）  付記３に記載のストレージ制御プログラムにおいて、
前記第１コピーステップにより前記全データのミラーが作成され、前記第２コピーステップにより少なくとも一つの前記差分データのスナップショットが作成された後、更に、リストアの目標時刻を含むリストアの指示を受け取ると、該目標時刻以降の前記差分データのスナップショットを新しい順に前記所定のストレージへ反映するリストアステップをコンピュータに実行させることを特徴とするストレージ制御プログラム。
（付記１８）  付記４に記載のストレージ制御プログラムにおいて、
前記第１コピーステップにより前記全データのスナップショットが作成されるとともに、前記全データのミラーが作成され、前記第２コピーステップにより少なくとも一つの前記差分データのミラーが作成されるとともに、少なくとも一つの前記差分データのスナップショットが作成された後、更に、リストアの目標時刻を含むリストアの指示を受け取ると、前記最初の世代の時刻と現在時刻のどちらが前記目標時刻に近いかの判断を行い、前記最初の世代の時刻の方が前記目標時刻に近い場合、該目標時刻以前の前記差分データのミラーを古い順に前記全データのスナップショットへ反映し、該反映後の前記全データのスナップショットを前記所定のストレージへ反映し、前記現在時刻の方が前記目標時刻に近い場合、該目標時刻以降の前記差分データのスナップショットを新しい順に前記所定のストレージへ反映するリストアステップをコンピュータに実行させることを特徴とするストレージ制御プログラム。
（付記１９）  所定のストレージの世代バックアップの作成を行うストレージ制御方法であって、
指示された時点における前記所定のストレージの全データのスナップショットと前記所定のストレージの全データのミラーとの少なくともいずれかを作成する第１コピーステップと、
該第１コピーステップの開始以降、世代間における前記所定のストレージの差分データのスナップショットと世代間における前記所定のストレージの差分データのミラーとの少なくともいずれかを作成する第２コピーステップと
を実行するストレージ制御方法。
【図面の簡単な説明】
【０１１１】
【図１】実施の形態１に係るストレージ装置の構成の一例を示すブロック図である。
【図２】実施の形態１に係るコピーセッション管理情報の構造の一例を示す表である。
【図３】実施の形態１に係るＬＢＡ変換テーブルの構造の一例を示す表である。
【図４】実施の形態１に係る世代管理テーブルの構造の一例を示す表である。
【図５】実施の形態１に係る世代バックアップ開始処理の動作の一例を示すフローチャートである。
【図６】実施の形態１に係る世代切り替え処理の動作の一例を示すフローチャートである。
【図７】実施の形態１に係る世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理の動作の一例を示すフローチャートである。
【図８】実施の形態１に係る世代バックアップ処理の具体的な動作の一例を示す図である。
【図９】実施の形態１に係るリストア開始処理の動作の一例を示すフローチャートである。
【図１０】実施の形態１に係る世代リストア中Ｉ／Ｏ処理の動作の一例を示すフローチャートである。
【図１１】実施の形態１に係る世代リストア処理の具体的な動作の一例を示す図である。
【図１２】実施の形態１に係るテープバックアップ処理の動作の一例を示すフローチャートである。
【図１３】実施の形態２に係る世代管理テーブルの構造の一例を示す表である。
【図１４】実施の形態２に係る世代バックアップ開始処理の動作の一例を示すフローチャートである。
【図１５】実施の形態２に係る世代切り替え処理の動作の一例を示すフローチャートである。
【図１６】実施の形態２に係る世代バックアップ中ＷｒｉｔｅＩ／Ｏ処理の動作の一例を示すフローチャートである。
【図１７】実施の形態２に係る世代バックアップ処理の具体的な動作の一例を示す図である。
【図１８】実施の形態２に係るリストア開始処理の動作の一例を示すフローチャートである。
【図１９】実施の形態２に係る世代リストア中Ｉ／Ｏ処理の動作の一例を示すフローチャートである。
【図２０】実施の形態２に係る世代リストア処理の具体的な動作の一例を示す図である。
【図２１】実施の形態２に係るテープバックアップ処理の動作の一例を示すフローチャートである。
【図２２】実施の形態３に係る世代リストア処理の具体的な動作の一例を示す図である。
【符号の説明】
【０１１２】
１  ストレージ装置、２  ホスト、１１  ＣＡ、１２  ＣＭ、１３  ディスク、２１  ＣＰＵ、２２  キャッシュメモリ、２３  ＦＣ制御部。
【図１】
2007334709.tif 000003
【図２】
2007334709.tif 000004
【図３】
2007334709.tif 000005
【図４】
2007334709.tif 000006
【図５】
2007334709.tif 000007
【図６】
2007334709.tif 000008
【図７】
2007334709.tif 000009
【図８】
2007334709.tif 000010
【図９】
2007334709.tif 000011
【図１０】
2007334709.tif 000012
【図１１】
2007334709.tif 000013
【図１２】
2007334709.tif 000014
【図１３】
2007334709.tif 000015
【図１４】
2007334709.tif 000016
【図１５】
2007334709.tif 000017
【図１６】
2007334709.tif 000018
【図１７】
2007334709.tif 000019
【図１８】
2007334709.tif 000020
【図１９】
2007334709.tif 000021
【図２０】
2007334709.tif 000022
【図２１】
2007334709.tif 000023
【図２２】
2007334709.tif 000024