(57)【要約】【課題】本発明のストレージシステムは、移行先のスナップショット機能を利用することにより、差分データを移行先ボリュームに書込む処理によって、移行先の記憶制御装置内にデータ及びスナップショット構成を移行させる。【解決手段】移行制御部４Ｃは、移行先記憶制御装置２内に、移行元ボリューム５Ａと移行元スナップショットボリューム５Ｂ及びプール５Ｃに対応する移行先ボリューム７Ａと移行先スナップショットボリューム７Ｂ及びプール７Ｃを、それぞれ用意させる。移行制御部４Ｃは、移行対象世代の更新履歴を、移行先ボリューム７Ａへの差分データの書込み処理として再現する。移行先記憶制御装置２は、移行先ボリューム７Ａの更新に応じて、スナップショットボリューム７Ｂを構築する。【選択図】図１
2009181206.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶制御装置と第２記憶制御装置とを備えるストレージシステムであって、
前記第１記憶制御装置は、ホストコンピュータにより使用される第１ボリュームと、この第１ボリュームの所定時点の記憶内容をイメージとして記憶する少なくとも一つ以上の第１スナップショットボリュームと、前記第１ボリュームに関する差分を管理するための第１スナップショット制御部であって、前記第１ボリュームが更新される場合には、更新対象データを前記各第１スナップショットボリュームのうち所定世代の第１スナップショットボリュームに退避させ、かつ、前記第１ボリュームにおける更新位置を管理する、第１スナップショット制御部と、
をそれぞれ備えており、
前記第２記憶制御装置は、第２ボリュームと、この第２ボリュームの所定時点の記憶内容をイメージとして記憶する少なくとも一つ以上の第２スナップショットボリュームと、前記第２ボリュームに関する差分を管理するための第２スナップショット制御部であって、前記第２ボリュームが更新される場合には、更新対象データを前記各第２スナップショットボリュームのうち所定世代の第２スナップショットボリュームに退避させ、かつ、前記第２ボリュームにおける更新位置を管理する、第２スナップショット制御部と、
をそれぞれ備えており、
前記第１記憶制御装置から前記第２記憶制御装置に、データ及びスナップショットに関する構成をそれぞれ移行させるための移行制御部であって、（１）前記各第１スナップショットボリュームのうち最古世代の第１スナップショットボリュームの記憶内容を前記第２ボリューム内に復元し、（２）前記最古世代から最新世代に向けて順番に、（２−１）移行対象世代の第１スナップショットボリュームの内容と前記移行対象世代の第１スナップショットボリュームよりも一世代新しい前記第１スナップショットボリュームの内容との間の差分データを検出し、（２−２）この検出された差分データを前記第２記憶制御装置に転送して前記第２ボリュームに書き込ませる、移行制御部を、備えるストレージシステム。
【請求項２】
前記移行制御部は、前記（１）を実行する前に、（０）前記第２記憶制御装置に所定の指示を与えることにより、前記第２ボリューム及び前記各世代の第２スナップショットボリュームを前記第２記憶制御装置内に予め生成させる、請求項１に記載のストレージシステム。
【請求項３】
前記移行制御部は、前記（０）において、前記第２ボリュームと前記各世代の第２スナップショットボリュームとの関係を、差分管理を停止させるためのペア状態にそれぞれ設定し、前記（２−２）の実行前に、前記移行対象世代に対応する第２スナップショットボリュームと前記第２ボリュームとの関係を、前記差分管理を実行させるためのサスペンド状態に変更する、請求項２に記載のストレージシステム。
【請求項４】
前記移行制御部は、（３）前記最新世代の第１スナップショットボリュームに関する前記差分データを前記最新世代に対応する第２スナップショットボリュームに移行中に、前記ホストコンピュータから更新要求が生じた場合には、この更新要求によって生じる新たな差分データを管理しておき、この管理される新たな差分データを前記最新世代に対応する前記第２スナップショットボリュームに書き込ませる、請求項１〜請求項３のいずれかに記載のストレージシステム。
【請求項５】
前記移行制御部は、前記（３）において、前記最新世代の前記第１スナップショットボリュームから前記最新世代に対応する前記第２スナップショットボリュームに移行中の差分データについて、前記ホストコンピュータが更新を要求した場合には、ビジー応答を前記ホストコンピュータ返し、前記移行中の差分データ以外について前記ホストコンピュータが更新を要求した場合には、この前記移行中の差分データ以外の更新要求に関する差分データを前記新たな差分データとして管理する、
請求項４に記載のストレージシステム。
【請求項６】
前記移行制御部は、前記移行中の差分データを管理するための管理テーブルと、前記新たな差分データを管理するための別の管理テーブルとを使用することができる、請求項５に記載のストレージシステム。
【請求項７】
前記移行制御部は、前記第１記憶制御装置または前記第２記憶制御装置のいずれか一方に設けられている、請求項１〜請求項６のいずれかに記載のストレージシステム。
【請求項８】
前記第１記憶制御装置及び前記第２記憶制御装置は、筐体内に交換不能に固定されている複数の記憶デバイスをそれぞれ備えている、請求項１〜請求項７のいずれかに記載のストレージシステム。
【請求項９】
第１記憶制御装置から第２記憶制御装置にデータ及びスナップショットに関する構成を移行させるための移行方法であって、
前記第１記憶制御装置及び前記第２記憶制御装置は、指定された時点におけるボリュームの記憶内容をイメージとしてスナップショットボリュームに記憶させるためのスナップショット機能をそれぞれ備えており、
前記第２記憶制御装置内に、前記第１記憶制御装置内の第１ボリュームに対応する第２ボリュームと、前記第１記憶制御装置の各世代の第１スナップショットボリュームにそれぞれ対応する第２スナップショットボリュームとを、それぞれ生成させるための準備ステップと、
前記各世代の前記第１スナップショットボリュームのうち所定の第１スナップショットボリュームの内容及び前記第１ボリュームの内容に基づいて、前記第１記憶制御装置から前記第２記憶制御装置にデータをコピーさせることにより、最古世代の記憶内容を前記第２ボリュームに復元させる最古世代復元ステップと、
移行対象世代の第１スナップショットボリュームの内容と前記移行対象世代の第１スナップショットボリュームよりも一世代新しい前記第１スナップショットボリュームの内容との間の差分データを検出する差分データ検出ステップと、
前記検出された差分データを、前記第１記憶制御装置から前記第２記憶制御装置に転送することにより、前記第２ボリュームに書き込ませるコピーステップと、
前記移行対象世代を前記最古世代から最新世代に遡らせながら、前記差分データ検出ステップと前記コピーステップとを繰り返させるステップと、
をそれぞれ実行する、スナップショット構成の移行方法。
【請求項１０】
前記移行対象世代が前記最新世代に到達した場合には、移行中に前記ホストコンピュータから発行される更新要求を管理し、この更新要求に関する新たな差分データを検出し、この新たな差分データを前記最新世代に対応する第２スナップショットボリュームに書き込ませるステップを備える請求項９に記載のスナップショット構成の移行方法。
【請求項１１】
第１記憶制御装置から第２記憶制御装置にデータ及びスナップショットに関する構成を移行させるための移行方法であって、
前記第１記憶制御装置及び前記第２記憶制御装置は、指定された時点におけるボリュームの記憶内容をイメージとしてスナップショットボリュームに記憶させるためのスナップショット機能をそれぞれ備えており、
前記第２記憶制御装置内に、前記第１記憶制御装置内の第１ボリュームに対応する第２ボリュームと、前記第１記憶制御装置の各世代の第１スナップショットボリュームにそれぞれ対応する第２スナップショットボリュームとを、それぞれ生成させるための準備ステップであって、前記第２ボリュームと前記各第２スナップショットボリュームとの関係を、差分管理を停止させるためのペア状態にそれぞれ設定させる準備ステップと、
前記各世代の前記第１スナップショットボリュームのうち所定の第１スナップショットボリュームの内容及び前記第１ボリュームの内容に基づいて、前記第１記憶制御装置から前記第２記憶制御装置にデータをコピーさせることにより、最古世代の記憶内容を前記第２ボリュームに復元させる最古世代復元ステップと、
前記第２ボリュームと移行対象世代の前記第２スナップショットボリュームとの関係を、差分管理を実行するためのサスペンド状態に変更させる状態変更ステップと、
前記移行対象世代の第１スナップショットボリュームの内容と前記移行対象世代の第１スナップショットボリュームよりも一世代新しい前記第１スナップショットボリュームの内容との間の差分データを検出する差分データ検出ステップと、
前記検出された差分データを、前記第１記憶制御装置から前記第２記憶制御装置に転送する差分データ転送ステップと、
前記第２記憶制御装置の有する前記スナップショット機能を用いることにより、前記差分データを前記第２ボリュームに書き込む前に、前記差分データによって更新される旧データを前記移行対象世代に対応する前記第２スナップショットボリュームにコピーして退避させる退避ステップと、
前記差分データを前記第２ボリュームに書き込ませるコピーステップと、
前記移行対象世代を前記最古世代から最新世代に遡らせながら、前記状態変更ステップと前記差分データ検出ステップと前記差分データ転送ステップと前記退避ステップと前記コピーステップとをそれぞれ繰り返させるためのステップと、
をそれぞれ実行する、スナップショット構成の移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びスナップショット構成の移行方法に関する。
【背景技術】
【０００２】
ストレージシステムを構成する記憶制御装置は、ホストコンピュータ（以下、ホスト）に、比較的大容量の記憶領域を提供する。記憶制御装置は、例えば、ハードディスクデバイスのような記憶デバイスを、ＲＡＩＤ（Redundant Array of Independent Disks）に基づいて構成することにより、冗長化された記憶領域を生成可能である。ホストは、この冗長化された記憶領域上に設けられる論理ボリュームを利用する。
【０００３】
ところで、装置の老朽化や保守等のために、既存の古い記憶制御装置を新しい記憶制御装置に置き換える場合がある。この場合、旧記憶制御装置で管理されているデータを新記憶制御装置に移行させる（特許文献１）。
【０００４】
さらに、ボリュームの更新位置及び更新前の旧データを管理することにより、ボリュームの所定時点におけるデータイメージを管理することができる、スナップショット機能も知られている（特許文献２）。
【特許文献１】特開平１１−１８４６４１号公報
【特許文献２】特開２００７−２１３３４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
旧記憶制御装置を新記憶制御装置に置き換える場合、旧記憶制御装置によって管理されているデータを新記憶制御装置に移行させるだけでは不十分である。旧記憶制御装置内でスナップショット機能が使用されていた場合、スナップショットに関する構成も旧記憶制御装置から新記憶制御装置に移行させる必要がある。
【０００６】
旧記憶制御装置内に保存されているスナップショット管理情報等を、新記憶制御装置に転送することも考えられるが、この場合には、旧記憶制御装置及び新記憶制御装置にそれぞれスナップショット構成を移行させるための特別な仕組みを追加しなければならず、移行処理が複雑化する。
【０００７】
近年では、記憶制御装置の大衆化が進んでおり、より安価かつより簡易な構成で、旧記憶制御装置から新記憶制御装置への移行が求められている。しかし、従来技術による移行方法では、スナップショット構成を新記憶制御装置に引き継がせるために、特別な専用の機能を必要とするため、市場要求に応えることができない。
【０００８】
本発明は上記課題に鑑みてなされたもので、その目的は、より簡易な構成で、第１記憶制御装置から第２記憶制御装置にデータ及びスナップショット構成を簡単に移行させることができるようにしたストレージシステム及びスナップショット構成の移行方法を提供することにある。本発明の他の目的は、移行元の第１記憶制御装置におけるスナップショット作成時の更新要求を、移行先の第２記憶制御装置に対して再現することにより、第２記憶制御装置が備えるスナップショット機能を利用して、スナップショット構成を移行させることができるようにしたストレージシステム及びスナップショット構成の移行方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００９】
上記課題を解決すべく、本発明の第１観点に従うストレージシステムは、第１記憶制御装置と第２記憶制御装置とを備えるストレージシステムであって、第１記憶制御装置は、ホストコンピュータにより使用される第１ボリュームと、この第１ボリュームの所定時点の記憶内容をイメージとして記憶する少なくとも一つ以上の第１スナップショットボリュームと、第１ボリュームに関する差分を管理するための第１スナップショット制御部であって、第１ボリュームが更新される場合には、更新対象データを各第１スナップショットボリュームのうち所定世代の第１スナップショットボリュームに退避させ、かつ、第１ボリュームにおける更新位置を管理する、第１スナップショット制御部と、をそれぞれ備えており、第２記憶制御装置は、第２ボリュームと、この第２ボリュームの所定時点の記憶内容をイメージとして記憶する少なくとも一つ以上の第２スナップショットボリュームと、第２ボリュームに関する差分を管理するための第２スナップショット制御部であって、第２ボリュームが更新される場合には、更新対象データを各第２スナップショットボリュームのうち所定世代の第２スナップショットボリュームに退避させ、かつ、第２ボリュームにおける更新位置を管理する、第２スナップショット制御部と、をそれぞれ備えており、第１記憶制御装置から第２記憶制御装置に、データ及びスナップショットに関する構成をそれぞれ移行させるための移行制御部であって、（１）各第１スナップショットボリュームのうち最古世代の第１スナップショットボリュームの記憶内容を第２ボリューム内に復元し、（２）最古世代から最新世代に向けて順番に、（２−１）移行対象世代の第１スナップショットボリュームの内容と移行対象世代の第１スナップショットボリュームよりも一世代新しい第１スナップショットボリュームの内容との間の差分データを検出し、（２−２）この検出された差分データを第２記憶制御装置に転送して、第２ボリュームに書き込ませる、移行制御部を、備える。
【００１０】
第２観点では、第１観点において、移行制御部は、（１）を実行する前に、（０）第２記憶制御装置に所定の指示を与えることにより、第２ボリューム及び各世代の第２スナップショットボリュームを第２記憶制御装置内に予め生成させる。
【００１１】
第３観点では、第２観点において、移行制御部は、（０）において、第２ボリュームと各世代の第２スナップショットボリュームとの関係を、差分管理を停止させるためのペア状態にそれぞれ設定し、（２−２）の実行前に、移行対象世代に対応する第２スナップショットボリュームと第２ボリュームとの関係を、差分管理を実行させるためのサスペンド状態に変更する。
【００１２】
第４観点では、第１〜第３観点のいずれかにおいて、移行制御部は、（３）最新世代の第１スナップショットボリュームに関する差分データを最新世代に対応する第２スナップショットボリュームに移行中に、ホストコンピュータから更新要求が生じた場合には、この更新要求によって生じる新たな差分データを管理しておき、この管理される新たな差分データを最新世代に対応する第２スナップショットボリュームに書き込ませる。
【００１３】
第５観点では、第４観点において、移行制御部は、（３）において、最新世代の第１スナップショットボリュームから最新世代に対応する第２スナップショットボリュームに移行中の差分データについて、ホストコンピュータが更新を要求した場合には、ビジー応答をホストコンピュータ返し、移行中の差分データ以外についてホストコンピュータが更新を要求した場合には、この移行中の差分データ以外の更新要求に関する差分データを新たな差分データとして管理する。
【００１４】
第６観点では、第５観点において、移行制御部は、移行中の差分データを管理するための管理テーブルと、新たな差分データを管理するための別の管理テーブルとを使用することができる。
【００１５】
第７観点では、第１〜第６観点のいずれかにおいて、移行制御部は、第１記憶制御装置または第２記憶制御装置のいずれか一方に設けられている。
【００１６】
第８観点では、第１記憶制御装置及び第２記憶制御装置は、筐体内に交換不能に固定されている複数の記憶デバイスをそれぞれ備えている。
【００１７】
本発明の第９観点に従う、スナップショット構成の移行方法は、第１記憶制御装置から第２記憶制御装置にデータ及びスナップショットに関する構成を移行させるための移行方法であって、第１記憶制御装置及び第２記憶制御装置は、指定された時点におけるボリュームの記憶内容をイメージとしてスナップショットボリュームに記憶させるためのスナップショット機能をそれぞれ備えており、第２記憶制御装置内に、第１記憶制御装置内の第１ボリュームに対応する第２ボリュームと、第１記憶制御装置の各世代の第１スナップショットボリュームにそれぞれ対応する第２スナップショットボリュームとを、それぞれ生成させるための準備ステップと、各世代の第１スナップショットボリュームのうち所定の第１スナップショットボリュームの内容及び第１ボリュームの内容に基づいて、第１記憶制御装置から第２記憶制御装置にデータをコピーさせることにより、最古世代の記憶内容を第２ボリュームに復元させる最古世代復元ステップと、移行対象世代の第１スナップショットボリュームの内容と移行対象世代の第１スナップショットボリュームよりも一世代新しい第１スナップショットボリュームの内容との間の差分データを検出する差分データ検出ステップと、検出された差分データを、第１記憶制御装置から第２記憶制御装置に転送することにより、第２ボリュームに書き込ませるコピーステップと、移行対象世代を最古世代から最新世代に遡らせながら、差分データ検出ステップとコピーステップとを繰り返させるステップと、をそれぞれ実行する。
【００１８】
第１０観点では、第９観点において、移行対象世代が最新世代に到達した場合には、移行中にホストコンピュータから発行される更新要求を管理し、この更新要求に関する新たな差分データを検出し、この新たな差分データを最新世代に対応する第２スナップショットボリュームに書き込ませるステップを備える。
【００１９】
本発明の第１１観点に従う、スナップショット構成の移行方法は、第１記憶制御装置から第２記憶制御装置にデータ及びスナップショットに関する構成を移行させるための移行方法であって、第１記憶制御装置及び第２記憶制御装置は、指定された時点におけるボリュームの記憶内容をイメージとしてスナップショットボリュームに記憶させるためのスナップショット機能をそれぞれ備えており、第２記憶制御装置内に、第１記憶制御装置内の第１ボリュームに対応する第２ボリュームと、第１記憶制御装置の各世代の第１スナップショットボリュームにそれぞれ対応する第２スナップショットボリュームとを、それぞれ生成させるための準備ステップであって、第２ボリュームと各第２スナップショットボリュームとの関係を、差分管理を停止させるためのペア状態にそれぞれ設定させる準備ステップと、各世代の第１スナップショットボリュームのうち所定の第１スナップショットボリュームの内容及び第１ボリュームの内容に基づいて、第１記憶制御装置から第２記憶制御装置にデータをコピーさせることにより、最古世代の記憶内容を第２ボリュームに復元させる最古世代復元ステップと、第２ボリュームと移行対象世代の第２スナップショットボリュームとの関係を、差分管理を実行するためのサスペンド状態に変更させる状態変更ステップと、移行対象世代の第１スナップショットボリュームの内容と移行対象世代の第１スナップショットボリュームよりも一世代新しい第１スナップショットボリュームの内容との間の差分データを検出する差分データ検出ステップと、検出された差分データを、第１記憶制御装置から第２記憶制御装置に転送する差分データ転送ステップと、第２記憶制御装置の有するスナップショット機能を用いることにより、差分データを移行対象世代に対応する第２ボリュームに書き込む前に、差分データによって更新される旧データを移行対象世代に対応する第２スナップショットボリュームにコピーして退避させる退避ステップと、差分データを第２ボリュームに書き込ませるコピーステップと、移行対象世代を最古世代から最新世代に遡らせながら、状態変更ステップと差分データ検出ステップと差分データ転送ステップと退避ステップとコピーステップとをそれぞれ繰り返させるためのステップと、をそれぞれ実行する。
【００２０】
本発明の手段及びステップの少なくとも一部は、コンピュータプログラムとして構成することができる。このコンピュータプログラムは、記憶媒体や通信媒体を介して流通させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に述べるように、移行元の第１記憶制御装置１で生じたスナップショットに関する更新要求を、第１記憶制御装置１がホストコンピュータであるかのようにして、移行先の第２記憶制御装置２に対して再現する。これにより、第２記憶制御装置は、第２記憶制御装置の備えるスナップショット機能を用いて、スナップショット構成を生成する。なお、図１に示す構成及び以下の説明は、本発明の理解及び実施に役立つように本発明の概要を示しており、本発明の範囲は、図１に示す構成に限定されない。
【００２２】
ストレージシステムは、例えば、第１記憶制御装置１と、第２記憶制御装置２と、少なくとも一つのホスト３とを備えている。ホスト３と第１記憶制御装置１とは、ホストＩ／Ｏ（Input/Output）用の通信経路ＣＮ１を介して相互通信可能に接続されている。ホスト３と第１記憶制御装置１とは、例えば、ｉＳＣＳＩ（internet Small Computer System Interface）やＦＣＰ（Fibre Channel Protocol）のような通信プロトコルを用いて、双方向通信を行う。第１記憶制御装置１と第２記憶制御装置２とは、移行用の通信経路ＣＮ２を介して相互通信可能に接続されている。第１記憶制御装置１と第２記憶制御装置２とは、例えば、ＦＣＰのような通信プロトコルを用いて、双方向通信を行う。
【００２３】
ホスト３は、例えば、サーバコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、携帯情報端末（携帯電話を含む）のようなコンピュータ装置として構成される。ホスト３は、記憶制御装置に記憶されたデータを利用するアプリケーションプログラム３Ａを備える。さらに、ホスト３は、第１記憶制御装置１から第２記憶制御装置２への移行を指示するための管理部３Ｂを備えることもできる。
【００２４】
第１記憶制御装置１は、移行元の記憶制御装置である。第１記憶制御装置１は、例えば、コントローラ４と、記憶デバイス搭載部５とを備えている。コントローラ４は、第１記憶制御装置１の動作を制御するものであり、例えば、マイクロプロセッサやメモリ、データ転送回路等を備えて構成される。
【００２５】
コントローラ４は、例えば、コマンド処理部４Ａと、スナップショット制御部４Ｂと、移行制御部４Ｃとを備えている。コマンド処理部４Ａは、ホスト３から発行されるリードコマンドやライトコマンドを処理し、その処理結果をホスト３に送信する。
【００２６】
スナップショット制御部４Ｂは、スナップショット取得時点における第１ボリューム５Ａのデータイメージを管理する。スナップショット取得後に、ホスト３によって更新された箇所及び更新前のデータは、プール５Ｃ内に記憶される。各第１スナップショットボリューム５Ｂは、それぞれのスナップショットが取得された各世代毎に、第１ボリューム５Ａの記憶内容を論理的に保持する。
【００２７】
スナップショット制御部４Ｂは、第１ボリューム５Ａの更新箇所及び更新内容のみを管理する。従って、ボリューム全体のコピーを作成する場合よりも少ない記憶容量を消費するだけで、特定時点のデータをホスト３に提供できる。消費する記憶容量が少ないため、ホスト３は、定期的に又は不定期にスナップショットを作成させることができ、これにより、ユーザの操作ミス等で失われたデータを、簡単に復元することができる。
【００２８】
移行制御部４Ｃは、第１記憶制御装置１から第２記憶制御装置２へ、データ及びスナップショット構成を移行させる。スナップショット構成とは、取得された各スナップショットに関する構成を意味する。移行制御部４Ｃは、例えば、移行先の記憶制御装置２を管理する機能４Ｃ１と、各世代のライト要求を再現する機能４Ｃ２と、移行中に発生したホスト３からのＩ／Ｏ要求に対応する機能４Ｃ３とを備える。
【００２９】
機能４Ｃ１は、例えば、第２記憶制御装置２内に、第２ボリューム７Ａ及び各第２スナップショットボリューム７Ｂをそれぞれ生成させる。また、機能４Ｃ１は、第２ボリューム７Ａと各第２スナップショットボリューム７Ｂとの間の関係を制御する。
【００３０】
機能４Ｃ２は、各世代の第１スナップショットボリューム５Ｂによって管理されている、各世代の更新要求を最古世代から最新世代に遡りながらそれぞれ再現し、第２記憶制御装置２にライトコマンドを発行する。即ち、第１記憶制御装置１は、第２記憶制御装置２に対してホストコンピュータ３のように振る舞い、第２記憶制御装置２にライトコマンドを発行する。第１記憶制御装置１から発行されるライトコマンドに従って、第２記憶制御装置２内のスナップショット制御部６Ｂは、各世代の第２スナップショットボリューム７Ｂを順番に生成する。
【００３１】
記憶デバイス搭載部５は、複数の記憶デバイスを備えている。記憶デバイスとしては、例えば、ハードディスクデバイスやフラッシュメモリデバイスのような、書き換え可能な不揮発性の記憶デバイスが用いられる。各記憶デバイスの物理的記憶領域を利用することにより、第１ボリューム５Ａやプール５Ｃが生成される。プール５Ｃは、各第１スナップショットボリューム５Ｂに記憶領域を提供し、この記憶領域にスナップショット管理情報が格納される。
【００３２】
第２記憶制御装置２は、移行先の記憶制御装置である。第２記憶制御装置２は、第１記憶制御装置１と同様に、コントローラ６及び記憶デバイス搭載部７を備える。コントローラ６は、第２記憶制御装置２の動作を制御する。記憶デバイス搭載部７は、複数の記憶デバイスを備えており、記憶デバイスの記憶領域はプール７Ｃで管理される。プール７Ｃは、第２ボリューム７Ａ及び各第２スナップショットボリューム７Ｂに、記憶領域をそれぞれ提供する。
【００３３】
コマンド処理部６Ａは、移行中においては、第１記憶制御装置１から発行されるコマンドを処理し、その処理結果を第１記憶制御装置１に送信する。即ち、コマンド処理６Ａは、第１記憶制御装置１から送信されたライトデータを第２ボリューム７Ａに書込み、書込みが完了した旨を第１記憶制御装置１に報告する。第１記憶制御装置１から第２記憶制御装置２への移行が完了し、ホスト３が第２記憶制御装置２にアクセス可能になった場合、コマンド処理部６Ａは、ホスト３から発行されるコマンドを処理する。
【００３４】
スナップショット制御部６Ｂは、第１記憶制御装置１内のスナップショット制御部４Ｂと同様に、スナップショット取得時点における第２ボリューム７Ａのデータイメージを、第２スナップショットボリューム７Ｂによって管理する。第１記憶制御装置１よって更新された箇所及び更新前のデータは、プール７Ｃ内に記憶される。各第２スナップショットボリューム７Ｂは、それぞれのスナップショットが取得された各世代毎に、第２ボリューム７Ａの記憶内容を論理的に保持する。
【００３５】
第１記憶制御装置１及び第２記憶制御装置２は、例えば、複数の記憶デバイスが筐体内に交換不能に固定されている小型の記憶制御装置として構成することができる。例えば、比較的小型の筐体内に、制御基板と複数の記憶デバイスとを、ユーザによる交換が不能なようにそれぞれ固定することにより、各記憶制御装置１，２を形成できる。この筐体には、交換用の記憶デバイスを着脱可能に取り付けるための取付部を設けてもよい。
【００３６】
本実施形態の動作を説明する。第１記憶制御装置１は、ストレージシステムに既に設けられている記憶制御装置であり、ホスト３によって利用されている。例えば、第１記憶制御装置１が老朽化したり、第１記憶制御装置１を修理する必要が生じた場合、ユーザは、第２記憶制御装置２をストレージシステムに追加する。ユーザは、第１記憶制御装置１と第２記憶制御装置２とを通信経路ＣＮ２を介して接続する。そして、以下に述べるように、第１記憶制御装置１から第２記憶制御装置２に、データ及びスナップショット構成が移行される。
【００３７】
移行制御部４Ｃは、第２記憶制御装置２のコントローラ６に指示を与えることにより、第２記憶制御装置２内に、第１記憶制御装置１内と同様に、第２ボリューム７Ａ、各第２スナップショットボリューム７Ｂ及びプール７Ｃをそれぞれ生成させる。即ち、第２ボリューム７Ａは第１ボリューム５Ａに、各第２スナップショットボリューム７Ｂは各第１スナップショットボリューム５Ｂに、プール７Ｃはプール５Ｃに、それぞれ対応する。
【００３８】
移行制御部４Ｃは、第２ボリューム７Ａと各第２スナップショットボリューム７Ｂとをペア状態に設定する。ペア状態とは、ペアを構成するボリュームの記憶内容が等しい状態を示す。従って、第２ボリューム７Ａと第２スナップショットボリューム７Ｂとがペア状態に設定された場合、差分管理は停止される。第２ボリューム７Ａが更新されても、第２スナップショットボリューム７Ｂの内容は変化しない。尚、第２スナップショットボリューム７Ｂは、ここでは差分情報が格納される記憶領域である。
【００３９】
移行制御部４Ｃは、第１ボリューム５Ａの記憶内容と所定の第１スナップショットボリューム５Ｂで管理されているデータイメージとに基づいて、最古世代（Ｖａ３）の記憶内容を第２ボリューム７Ａ内に再現する。即ち、最古世代の第１ボリューム５Ａのデータを第２記憶制御装置２に転送して、第２ボリューム７Ａに書き込む。これにより、第２ボリューム７Ａは、第１ボリューム５Ａについてスナップショットが最初に取得された時の記憶内容を保持する。
【００４０】
移行制御部４Ｃは、第２ボリューム７Ａと最古世代の第２スナップショットボリューム７Ｂ（Ｖｂ３）との関係をサスペンド状態に変更する。サスペンド状態とは、ペア状態を停止して差分管理を実行させる状態である。
【００４１】
サスペンド状態に設定されると、第２ボリューム７Ａの更新位置及び更新される旧データは、プール７Ｃに保存される。即ち、第２スナップショットボリューム７Ｂによって、第２ボリューム７Ａの更新履歴が管理される。
【００４２】
移行制御部４Ｃは、最古世代（Ｖａ１）と一つ新しい世代（Ｖａ２）との間の差分データを検出し、この検出された差分データを第２記憶制御装置２に転送して、第２ボリューム７Ａにコピーする。
【００４３】
第２ボリューム７Ａと最古世代の第２スナップショットボリューム７Ｂ（Ｖｂ３）とは、サスペンド状態に設定されているため、第２ボリューム７Ａに差分データが書き込まれると、差分データによって更新される前の旧データは、最古世代の第２スナップショットボリューム７Ｂ（Ｖｂ３）に退避する。つまり、第１記憶制御装置１内において最古世代の第１スナップショットボリューム５Ｂ（Ｖａ３）が生成された時の状況が、第２記憶制御装置２内で再現され、最古世代の第２スナップショットボリューム７Ｂ（Ｖｂ３）が生成される。
【００４４】
同様にして、移行制御部４Ｃは、第２ボリューム７Ａと世代（Ｖｂ２）の第２スナップショットボリューム７Ｂ（Ｖｂ２）との関係をサスペンド状態に変更させ、さらに、世代（Ｖａ２）と一つ新しい世代（Ｖａ１）との差分データを検出して、この差分データを第２ボリューム７Ａにコピーする。差分データが第２ボリューム７Ａに書き込まれる前に、旧データは第２スナップショットボリューム７Ｂ（Ｖｂ２）に退避する。第１記憶制御装置１内において第１スナップショットボリューム５Ｂ（Ｖａ２）が生成された時の状況が、第２記憶制御装置２内で再現され、第２スナップショットボリューム７Ｂ（Ｖｂ２）が生成される。
【００４５】
このように、移行制御部４Ｃは、最古世代から最新世代に順番に遡るようにして、各世代で生じた差分データを第２ボリューム７Ａにコピーする。これにより、第２記憶制御装置２内では、スナップショット制御部６Ｂによって、各世代の第２スナップショットボリューム７Ｂがそれぞれ作成される。
【００４６】
つまり、本実施形態では、第１記憶制御装置１で生じた第１ボリューム５Ａの更新履歴をなぞることにより、第２記憶制御装置２の有するスナップショット機能を利用して、各世代のスナップショットボリューム７Ｂを自動的に生成させる。
【００４７】
さて、移行制御部４Ｃは、最新世代（Ｖａ１）のスナップショットボリュームの移行が開始されると、移行中にホスト３から発行されるＩ／Ｏ要求に対応する。例えば、ホスト３が移行中の差分データに関する更新要求（ライトコマンド）を発行した場合、移行制御部４Ｃは、ホスト３にビジー応答を返す。ホスト３が移行中の差分データ以外のデータに関する更新要求を発行した場合、移行制御部４Ｃは、この更新要求によって生じる新たな差分データの位置（例えば、ブロックアドレス）を管理する。そして、移行制御部４Ｃは、新たな差分データを第２ボリューム７Ａにコピーさせる。これにより、最新世代の第２スナップショットボリューム７Ｂ（Ｖｂ１）の内容も変化する。
【００４８】
即ち、本実施形態では、移行元の第１記憶制御装置１と移行先の第２記憶制御装置２とのそれぞれにおいて、スナップショット機能が同時に動作している。スナップショット管理は、第１記憶制御装置１によって管理される。
【００４９】
このように構成される本実施形態によれば、移行先の第２記憶制御装置２が有するスナップショット制御部６Ｂを利用することにより、第１記憶制御装置１内のスナップショット構成を第２記憶制御装置２内に自動的に生成させることができる。
【００５０】
従って、例えば、プール５Ｃからプール７Ｃにスナップショット管理情報をコピーしたり、プール７Ｃにコピーされたスナップショット管理情報を第２ボリューム７Ａに対応付けたりするための、特別なプログラムを用いずに、第１記憶制御装置１から第２記憶制御装置２にボリュームデータ及びスナップショット構成を移行させることができる。本実施形態によれば、比較的安価かつ簡易に、データ及びスナップショット構成を移行させることができるため、ユーザの使い勝手も向上する。
【００５１】
本実施形態では、ホスト３から第１記憶制御装置１へのアクセスを停止させることなく、第１記憶制御装置１から第２記憶制御装置２にデータ及びスナップショット構成を移行させることができる。従って、ユーザに意識させずに移行作業を行うことができ、ユーザの使い勝手が向上する。本方式では、新旧ストレージシステム間で、タイムスタンプ（スナップショットを実施した日時）等の属性情報にずれが発生するため、これら情報については、データ及び構成情報の移行完了後に別途移行する機構を装備する。この移行方法については、新ストレージシステム上の当該情報を書き換える方法と、オリジナルの情報は変えずに対応表で別管理する方法がある。
【００５２】
本実施形態では、ホスト３を介さずに、第１記憶制御装置１と第２記憶制御装置２とによって移行処理を行うことができる。従って、ホスト３に負担をかけずに、第１記憶制御装置１から第２記憶制御装置２へデータ及びスナップショット構成を移すことができ、ユーザの使い勝手が向上する。以下、本実施形態を詳細に説明する。
【実施例１】
【００５３】
図２は、本実施例によるストレージシステムの全体構成を示すブロック図である。このストレージシステムは、第１記憶制御装置１０と、第２記憶制御装置２０と、ホスト３０とを備えている。
【００５４】
図１との対応関係を説明する。第１記憶制御装置１０は図１中の第１記憶制御装置１に、第２記憶制御装置２０は図１中の第２記憶制御装置２に、ホスト３０は図１中のホスト３に、第１コントローラ１１０は図１中の第１コントローラ４に、第２コントローラ２１０は図１中の第２コントローラ６に、第１記憶デバイス搭載部１２０は図１中の第１記憶デバイス搭載部５に、第２記憶デバイス搭載部２２０は図１中の第２記憶デバイス搭載部７に、通信経路ＣＮ１０は図１中の通信経路ＣＮ１に、通信経路ＣＮ２は図１中の通信経路ＣＮ２に、それぞれ対応する。
【００５５】
図３に示すコマンド処理プログラム１３１は図１中のコマンド処理部４Ａに、図３に示すスナップショット制御プログラム１３２は図１中のスナップショット制御部４Ｂに、図３に示す移行制御プログラム１３３は図１中の移行制御部４Ｃに、それぞれ対応する。図３に示す第１ボリューム１２５は図１中の第１ボリューム５Ａに、図３に示す第１スナップショットボリューム１２６は図１中の第１スナップショットボリューム５Ｂに、図３に示す第１プール１２７は図１中の第１プール５Ｃに、それぞれ対応する。
【００５６】
図５に示すコマンド処理プログラム２３１は図１中のコマンド処理部６Ａに、図５に示すスナップショット制御プログラム２３２は図１中のスナップショット制御部６Ｂに、図５に示す第２ボリューム２２５は図１中の第２ボリューム７Ａに、図５に示す第２スナップショットボリューム２２６は図１中の第２スナップショットボリューム７Ｂに、図５に示す第２プール２２７は図１中の第２プール７Ｃに、それぞれ対応する。
【００５７】
図２に戻る。ホスト３０は、図１で述べたホスト３と同様に、例えば、サーバコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ等のコンピュータ装置として構成され、通信経路ＣＮ１０を介して、第１記憶制御装置１０に接続される。
【００５８】
第１記憶制御装置１０は、コントローラ１１０と、記憶デバイス搭載部１２０とに大別することができる。コントローラ１１０は、第１記憶制御装置１０の動作を制御するものである。コントローラ１１０は、例えば、第１通信制御部１１１と、第２通信制御部１１２と、キャッシュメモリ１１３と、マイクロプロセッサ１１４と、制御メモリ１１５と、データ転送制御部１１６とを備えている。
【００５９】
第１通信制御部１１１は、ホスト３０及び第２記憶制御装置２０と通信を行うための通信制御回路である。第１通信制御部１１１は、例えば、ｉＳＣＳＩやＦＣＰを用いて、ホスト３０や第２記憶制御装置２０と通信する。
【００６０】
第２通信制御部１１２は、各記憶デバイス１２１とそれぞれ通信を行うための通信制御回路である。第２通信制御部１１２は、例えば、ＦＣＰを用いて、各記憶デバイス１２１と通信する。なお、第２通信制御部１１２，２１２にそれぞれエキスパンダを接続し、エキスパンダを介して、第１記憶制御装置１０と第２記憶制御装置２０とが通信を行う構成でもよい。
【００６１】
キャッシュメモリ１１３は、ホスト３０から受信したデータや記憶デバイス１２１から読み出したデータ等を記憶するためのメモリである。制御メモリ１１５は、後述する各種プログラムや制御情報を記憶するためのメモリである。
【００６２】
マイクロプロセッサ１１４は、制御メモリ１１５に記憶されたコンピュータプログラムを読み込んで実行することにより、後述するコマンド処理機能、スナップショット制御機能、移行制御機能をそれぞれ実現する。
【００６３】
データ転送制御部１１６は、例えば、ＤＭＡ（Direct Memory Access）回路として構成される。各通信制御部１１１，１１２は、データ転送制御部１１６を用いることにより、マイクロプロセッサ１１４を介さずにキャッシュメモリ１１３に直接アクセスすることができる。
【００６４】
記憶デバイス搭載部１２０は、複数の記憶デバイス１２１を備えている。記憶デバイス１２１としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
【００６５】
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。
記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（MagnetoresistiveRandom
Access Memory）、相変化メモリ（Ovonic Unified Memory）、ＲＲＡＭ（Resistance RAM）」等の種々のメモリデバイスを利用可能である。なお、記憶デバイスの種類は、上記のものに限定されず、将来製品化される他の種類の記憶デバイスも利用可能であろう。
【００６６】
一つまたは複数の記憶デバイス１２１の有する物理的記憶領域を一つのグループ１２２として仮想化することができる。この仮想化された物理的記憶領域１２２には、一つまたは複数の論理デバイス（ＬＤＥＶ）１２３を設けることができる。
【００６７】
論理デバイス１２３にＬＵＮ（Logical Unit Number）を設定することにより、論理ボリュームが生成される。ホスト３０と論理ボリュームとの間のアクセス経路が設定されることにより、ホスト３０は論理ボリュームにアクセスして使用することができる。
【００６８】
第２記憶制御装置２０は、第１記憶制御装置１０と同様に、コントローラ２１０と記憶デバイス搭載部２２０とに大別される。コントローラ２１０は、第１通信制御部２１１と、第２通信制御部２１２と、キャッシュメモリ２１３と、マイクロプロセッサ２１４と、制御メモリ２１５と、データ転送制御部２１６とを備える。コントローラ２１０は、第１記憶制御装置１０のコントローラ１１０と同様に構成可能であるため、詳細な説明は省略する。
【００６９】
記憶デバイス搭載部２２０は、複数の記憶デバイス２２１を備えている。グループ２２２には一つまたは複数の論理デバイス２２３が設けられる。記憶デバイス搭載部２２０は、第１記憶制御装置１０の記憶デバイス搭載部１２０と同様に構成可能であるため、詳細な説明は省略する。
【００７０】
図３は、第１記憶制御装置１０の制御メモリ１１５に記憶されているコンピュータプログラム等と、記憶構成とを模式的に示す説明図である。図３の上側に示すように、制御メモリ１１５には、例えば、コマンド処理プログラム１３１と、スナップショット制御プログラム１３２と、移行制御プログラム１３３と、移行制御管理テーブル１３４とがそれぞれ記憶されている。
【００７１】
コマンド処理プログラム１３１は、ホスト３０から発行されるリードコマンドやライトコマンドを処理し、その処理結果をホスト３０に送信するためのコンピュータプログラムである。
【００７２】
スナップショット制御プログラム１３２は、ホスト３０によって指定されるボリュームについて、ホスト３０によって指定された時点のスナップショットを取得するためのコンピュータプログラムである。
【００７３】
移行制御プログラム１３３は、第１記憶制御装置１０の更新履歴を第２記憶制御装置２０へのライトコマンドに変換することにより、第２記憶制御装置２０の有するスナップショット制御機能を利用して、第１記憶制御装置１０のデータ及びスナップショット構成を、第２記憶制御装置２０内に設けるためのコンピュータプログラムである。移行制御管理テーブル１３４は、データ及びスナップショット構成の移行を管理するためのテーブルである。
【００７４】
図３の下側に示すように、第１記憶制御装置１０内には、ホスト３０によって利用される第１ボリューム１２５が設けられる。第１記憶制御装置１０には、記憶領域をプールとして管理するためのプール１２７を備えている。
【００７５】
プール１２７で管理されている記憶領域を使用することにより、各世代（Ｖａ１〜Ｖａ３）の第１スナップショットボリューム１２６が生成される。各第１スナップショットボリューム１２６は、それぞれのスナップショットを取得した時点における第１ボリューム１２５の記憶内容を論理的に保持している。
【００７６】
スナップショットの作成後に、ホスト３０が第１ボリューム１２５を更新すればするほど、スナップショットボリューム１２６が管理すべきスナップショット管理情報は、増大する。スナップショットボリューム１２６の記憶容量が固定されている場合、その固定された記憶容量を使い切ってしまうと、それ以上差分を管理することができなくなる。また、スナップショットボリューム１２６の記憶容量が固定されていると、ホスト３０による第１ボリューム１２５の更新量が少ない場合、使用されない無駄な記憶領域が生じることになる。そこで、本実施例では、プール１２７で記憶領域をまとめて管理し、必要な分の記憶領域をスナップショットボリューム１２６に割り当てることにより、効率的にスナップショットボリューム１２６を生成する。
【００７７】
図４は、移行制御管理テーブル１３４の構成を模式的に示す説明図である。移行制御管理テーブル１３４は、例えば、複数のビットマップテーブル（以下、ビットマップ）１３４Ａ〜１３４Ｃから構成することができる。
【００７８】
移行候補ビットマップ１３４Ａは、移行対象となる論理ブロックを示すための管理テーブルである。第１ボリューム１２５は複数の論理ブロックから構成されており、移行候補ビットマップ１３４Ａは、各論理ブロックに対応するビットを備えている。第１ボリューム１２５から第２ボリューム２２５にデータを移行させる論理ブロックには、「１」がセットされる。移行対象以外の論理ブロックには、「０」がセットされる。
【００７９】
移行中ビットマップ１３４Ｂは、現在移行処理中の論理ブロックを示すための管理テーブルである。移行処理中の論理ブロックには「１」がセットされる。移行処理中ではない論理ブロックには「０」がセットされる。
【００８０】
移行残ビットマップ１３４Ｃは、移行させるべき論理ブロックであって、未だ移行対象となっていない論理ブロックを示すための管理テーブルである。即ち、移行残ビットマップ１３４Ｃは、第１記憶制御装置１０から第２記憶制御装置２０への移行中に、ホスト３０によって更新された論理ブロックを管理する。
【００８１】
具体的な使用方法を説明する。最新世代の第１スナップショットボリューム１２６（Ｖａ１）と第１ボリューム１２５との間で差分を生じている論理ブロックには、移行候補ビットマップ１３４Ａにおいて「１」がセットされる。
【００８２】
第１コントローラ１１０は、移行候補ビットマップ１３４Ａにおいて「１」がセットされている論理ブロックを一つ選択する。第１コントローラ１１０は、その選択された論理ブロックについて、移行中ビットマップ１３４Ｂのビットを「１」にセットする。同時に、第１コントローラ１１０は、選択された論理ブロックについて、移行候補ビットマップ１３４Ａのビットをリセットする。
【００８３】
第１コントローラ１１０は、移行中ビットマップ１３４Ｂにおいて「１」にセットされた論理ブロックのデータを、第１ボリューム１２５から第２ボリューム２２５にコピーさせる。コピー終了後に、第１コントローラ１１０は、コピーの終了した論理ブロックについて、移行中ビットマップ１３４Ｂのビットをリセットする。
【００８４】
最新世代の移行を開始した後で、ホスト３０が第１ボリューム１２５を更新した場合、更新された論理ブロックについて、移行残ビットマップ１３４Ｃのビットに「１」がセットされる。
【００８５】
移行候補ビットマップ１３４Ａの全ビットが「０」になると、移行残ビットマップ１３４Ｃの値が移行候補ビットマップ１３４Ａにコピーされる。移行残ビットマップ１３４Ｃはリセットされる。
【００８６】
図５は、第２記憶制御装置２０の制御メモリ２１５に記憶されているコンピュータプログラムと、第２記憶制御装置２０の記憶構造とを模式的に示す説明図である。制御メモリ２１５には、コマンド処理プログラム２３１と、スナップショット制御プログラム２３２とが記憶されている。
【００８７】
コマンド処理プログラム２３１は、コマンド発行装置から発行されるコマンドを処理し、その処理結果をコマンド発行装置に返すためのコンピュータプログラムである。ここで、コマンド発行装置は、第１記憶制御装置１０とホスト３０とが該当する。第１記憶制御装置１０から第２記憶制御装置２０にデータ及びスナップショット構成を移行している期間では、第１記憶制御装置１０がコマンド発行装置となる。移行が完了して、第１記憶制御装置１０が第２記憶制御装置２０に置き換えられた後は、ホスト３０がコマンド発行装置となる。
【００８８】
スナップショット制御プログラム２３２は、指定されるボリュームについて、指定された時点のスナップショットを取得するためのコンピュータプログラムである。本実施例では、第１記憶制御装置１０から第２記憶制御装置２０にデータ及びスナップショット構成を移行させる前に、第１記憶制御装置１０からの指示によって、第２記憶制御装置２０内に、第２ボリューム２２５と各第２スナップショットボリューム２２６とプール２２７とが予め生成される。
【００８９】
スナップショット制御プログラム２３２は、第１記憶制御装置１０の第１ボリューム１２５から第２ボリューム２２５にデータがコピーされると、更新対象の旧データを所定世代の第２スナップショットボリューム２２６に退避させる。
【００９０】
図６は、正ボリュームとスナップショットボリューム（図中、「V-VOL」）との関係を示す説明図である。正ボリュームとスナップショットボリュームとは、サスペンド状態またはペア状態のいずれかに設定される。本実施例では、第１ボリューム１２５及び第２ボリューム２２５が、それぞれ正ボリュームとなる。
【００９１】
図６（１）は、サスペンド状態を示す。サスペンド状態では、正ボリュームで生じた差分がスナップショットボリュームによって管理される。ホスト３０が正ボリュームを更新すると、更新される前の旧データは、スナップショットボリュームに退避する。スナップショット管理情報は、旧データの元の位置と旧データとを対応付けて管理する。従って、スナップショット管理情報を参照することにより、更新前の状態を論理的に復元することができる。
【００９２】
図６（２）は、ペア状態を示す。ペア状態では、正ボリュームの内容とスナップショットボリュームの内容が一致しているものとして扱われ、正ボリュームで生じた差分は管理されない。従って、ホスト３０が正ボリュームを更新しても、更新前の旧データはスナップショットボリュームに格納されない。
【００９３】
図７は、スナップショットボリュームを用いて、指定された世代の記憶内容を復元する様子を示す説明図である。図７では、最古世代（Ｖ３）における正ボリュームの記憶内容を復元する様子が示されている。
【００９４】
図７（１）は、最古世代のスナップショットを取得したときの正ボリュームの記憶内容を示す。論理ブロック（以下、ブロック）Ｂ１にはデータ「ａ」が、ブロックＢ２にはデータ「ｂ」が、ブロック３にはデータ「ｃ」が、ブロックＢ４にはデータ「ｄ」がそれぞれ記憶されている。
【００９５】
図７（２）に示すように、ホスト３０がブロックＢ１のデータを「Ａ」に更新する場合、旧データ「ａ」は、最古世代（Ｖ３）のスナップショットボリュームに退避する。
【００９６】
この後、ホスト３０から新たなスナップショットの取得が要求され、最古世代（Ｖ３）から次世代（Ｖ２）に切り替わる。図７（３）に示すように、ホスト３０が、ブロックＢ２を新データ「Ｂ」に、ブロックＢ３を新データ「Ｃ」に、それぞれ更新する場合、旧データ「ｂ」，「ｃ」は、次世代のスナップショットボリュームに退避する。
【００９７】
この後、ホスト３０は、さらに別のスナップショットの取得を要求し、次世代（Ｖ２）から最新世代（Ｖ１）に切り替わる。図７（４）に示すように、ホスト３０がブロックＢ３を新データ「Ｑ」で更新する場合、旧データ「Ｃ」は、最新世代のスナップショットボリュームに退避する。
【００９８】
図７（５）は、現在の正ボリュームの記憶状態を示す。ブロックＢ１〜Ｂ３は過去にそれぞれ更新されており、ブロックＢ４のみが更新されていない。
【００９９】
図７の右側に示すように、最古世代における正ボリュームの記憶内容を復元する場合、最古世代から最新世代までスナップショットボリュームを順番に遡り、各世代で管理されているスナップショット管理情報を正ボリュームの記憶内容に適用する。これにより、最古世代における正ボリュームの記憶内容が論理的に復元される（図７中のV3VOL）。
【０１００】
即ち、正ボリュームの記憶内容を基礎として、各世代の更新履歴を順番に適用することにより、所望の世代の記憶内容を復元することができる。
【０１０１】
各世代のスナップショットボリューム及び正ボリュームから抽出されるデータを、正ボリュームとは別の論理ボリュームに書き込むことにより、指定された世代（この例では、最古世代）の記憶内容を実体化させることができる。
【０１０２】
なお、最古世代の記憶内容を実体化させない場合でも、最古世代における正ボリュームの記憶内容は論理的に復元されているので、リードアクセスは可能である。図７では、最古世代の記憶内容を復元して実体化する場合を述べたが、他の世代についても同様に行うことができる。
【０１０３】
図８は、本実施例による移行処理を示すフローチャートである。以下のフローチャートは、本発明の理解及び実施に必要な程度で各処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。いわゆる当業者であれば、図示されたステップを一部変更したり、順番を入れ替えたり、削除したりすることができるであろう。以下の説明では、図８を中心に説明し、適宜図９〜図１３を参照する。
【０１０４】
移行処理は、移行元である第１記憶制御装置１０の第１コントローラ１１０により、主導される。第１コントローラ１１０は、移行処理の開始に先立って、移行準備を整える（Ｓ１０）。まず、第１コントローラ１１０は、通信経路ＣＮ２０を介して、第２コントローラ２１０に移行処理の前準備を指示する（Ｓ１０）。
【０１０５】
即ち、第１コントローラ１１０は、移行対象のスナップショット構成を特定し、この特定された移行対象のスナップショット構成を受け入れるための構成を、移行先である第２記憶制御装置２０内に用意させるべく、第２コントローラ２１０に指示を与える。
【０１０６】
移行対象のスナップショット構成としては、移行させるべき第１ボリューム１２５及び各第１スナップショットボリューム１２６と、各第１スナップショットボリューム１２６に記憶領域を提供するプール１２７とが含まれる。サスペンド状態に設定されている第１スナップショットボリューム１２６のみが移行対象として選択される。
【０１０７】
第２コントローラ２１０は、移行対象のスナップショット構成を受け入れるための構成として、第１ボリューム１２５に対応する第２ボリューム１２６と、各第１スナップショットボリューム１２６にそれぞれ対応する各第２スナップショットボリューム２２６と、第１プール１２７に対応する第２プール２２７とを、第２記憶制御装置２０内にそれぞれ構築する（Ｓ１０）。
【０１０８】
なお、第１コントローラ１１０は、移行処理の開始に先立って、ホスト３０に対し、第１ボリューム１２５のみへのリードアクセス及びライトアクセスを許可し、各第１スナップショットボリューム１２６へのライトアクセスを禁止する（Ｓ１０）。ホスト３０から各第１スナップショットボリューム１２６へのリードアクセスは許可してもよい。
【０１０９】
このようなアクセス制御は、例えば、第１ボリューム１２５のアクセス属性及び各第１スナップショットボリューム１２６のアクセス属性をそれぞれ管理するためのテーブルを用いることにより、実現することができる。第１ボリューム１２５のアクセス属性は「リード及びライトの両方とも可能」に設定され、各第１スナップショットボリューム１２６のアクセス属性は「リードオンリー」に設定される。
【０１１０】
なお、各第１スナップショットボリューム１２６へのリードアクセスも禁止する場合は、各第１スナップショットボリューム１２６のアクセス属性を「リードアクセス及びライトアクセスの両方とも禁止」に設定するか、あるいは、「隠蔽」に設定する。「隠蔽」とは、ホスト３０に第１スナップショットボリューム１２６の存在を見せず、隠してしまうための属性である。
【０１１１】
第１コントローラ１１０は、第２記憶制御装置２０側の準備が整ったことを確認すると、最古世代における第１ボリューム１２５の記憶内容を、第２ボリューム１２６に実体化させる（Ｓ１１）。尚、実体化とは、第１ボリューム１２５の記憶内容を第２ボリューム１２６に書き込むことや、受信した内容に基づきデータを再現すること等を意味する。
【０１１２】
図９に示すように、第１コントローラ１１０は、第２コントローラ２１０に指示することにより、第２ボリューム２２５と各第２スナップショットボリューム２２６との関係をそれぞれペア状態に設定させる。
【０１１３】
図１０に示すように、第１コントローラ１１０は、最古世代における第１ボリューム１２５のデータを、第２記憶制御装置２０に送信して第２ボリューム２２５に書き込むことにより、第２ボリューム２２５内に最古世代の記憶内容を実体化させる（Ｓ１１）。
【０１１４】
第２ボリューム２２５と各第２スナップショットボリューム２２６とは、それぞれペア状態に設定されており、差分管理が停止している。従って、第２ボリューム２２５に最古世代のデータが書き込まれても、各第２スナップショットボリューム２２６に影響は生じない。
【０１１５】
第１コントローラ１１０は、移行処理の対象世代として最古世代（Ｖ３）を設定する（Ｓ１２）。第１コントローラ１１０は、最古世代において生じた差分データを検出する（Ｓ１３）。第１コントローラ１１０は、第２コントローラ２１０に指示を与えることにより、最古世代に対応する第２スナップショットボリューム２２６（Ｖｂ３）をサスペンド状態に変更させる（Ｓ１４）。これにより、第２記憶制御装置２０では、差分管理が開始され、第２ボリューム２２５への更新に応じて、第２スナップショットボリューム２２６（Ｖｂ３）の内容が変化する。なお、Ｓ１３とＳ１４の順番を入れ替えてもよい。
【０１１６】
第１コントローラ１１０は、Ｓ１３で検出した差分データを第２記憶制御装置２０に転送して第２ボリューム２２５にコピーする（Ｓ１５）。第２記憶制御装置２０では、差分管理が開始されているため、Ｓ１５で第２ボリューム２２５が更新されると、第２ボリューム２２５に記憶されていた旧データが最古世代の第２スナップショットボリューム２２６（Ｖｂ３）に退避する。
【０１１７】
図１１に示すように、第１コントローラ１１０は、移動対象世代である最古世代の第１スナップショットボリューム１２６（Ｖａ３）とそれより１つ新しい世代の第１スナップショットボリューム１２６（Ｖａ２）との間で差分の生じているブロックを検出する。第１コントローラ１１０は、この差分の生じているブロックに対応する第１スナップショットボリューム（Ｖａ２）のデータ「Ａ」を、差分データとして検出する（Ｓ１３）。
【０１１８】
第１コントローラ１１０は、差分データ「Ａ」を第２ボリューム２２５にコピーさせると（Ｓ１５）、第２ボリューム２２５に記憶されていた旧データ「ａ」は、最古世代に対応する第２スナップショットボリューム２２６（Ｖｂ３）に退避する。このスナップショット制御は、第２コントローラ２１０によって行われる。
【０１１９】
この結果、最古世代に対応する第２スナップショットボリューム２２６（Ｖｂ３）は、最古世代の第１スナップショットボリューム１２６（Ｖａ３）と同一構成となる。つまり、第１コントローラ１１０は、第１スナップショットボリューム１２６及び第１ボリューム１２５に基づいて（更新履歴に基づいて）、第１ボリューム１２５で生じた最古世代の更新を、第２ボリューム２２５への差分データ（更新データ）の書込み処理として、再現する。
【０１２０】
移行対象世代に関する全ての差分データが、第２ボリューム２２５にコピーされると、その移行対象世代の第２スナップショットボリューム２２６が完成する（Ｓ１６）。移行対象世代の移行が完了すると（S16:YES）、第１コントローラ１１０は、全ての世代の移行が完了したか否かを判定する（Ｓ１７）。全世代の移行が完了した場合は、本処理は終了する。
【０１２１】
未だ移行されていない世代がある場合（S17:NO）、第１コントローラ１１０は、移行対象世代を一つ新しくする（Ｓ１８）。この例では、移行対象世代は、最古世代（Ｖ３）から次世代（Ｖ２）に切り替わる（Ｓ１８）。
【０１２２】
第１コントローラ１１０は、移行対象世代が最新世代（Ｖ１）に到達したか否かを判定する（Ｓ１９）。移行対象世代が最新世代に到達してない場合（S19:NO）、Ｓ１３に戻り、上述のＳ１３〜Ｓ１８を繰り返す。
【０１２３】
移行対象世代が最新世代に到達した場合（S19:YES）、第１コントローラ１１０は、最新世代の移行処理を実行する（Ｓ２０）。最新世代の移行処理については、図１４，図１５を参照して後述する。
【０１２４】
図１２は、最古世代（Ｖ３）よりも一つ後の世代（Ｖ２）を第１記憶制御装置１０から第２記憶制御装置２０に移行させる様子を示す。第１コントローラ１１０は、移行対象世代に対応する第２スナップショットボリューム２２６（Ｖｂ２）をサスペンド状態に設定する。これにより、第２スナップショットボリューム２２６（Ｖｂ２）の内容は、第２ボリューム２２５で生じた更新に応じて変化する。
【０１２５】
第１コントローラ１１０は、移行対象世代の第１スナップショットボリューム１２６（Ｖａ２）とその一つ後の第１スナップショットボリューム１２６（Ｖａ１）との間で差分を生じているブロックを検出し、このブロックに記憶されている第１スナップショットボリューム１２６（Ｖａ１）のデータを差分データとして、第２ボリューム２２５にコピーさせる。
【０１２６】
図１２に示す例では、第２ボリューム２２６にデータ「Ｂ」，「Ｃ」が書き込まれ、この書込みに応じて、旧データ「ｂ」，「ｃ」が移行対象世代に対応する第２スナップショットボリューム２２６（Ｖｂ２）に退避する。
【０１２７】
図１３は、最新世代の移行を示す。最新世代も、上述の仕組みに従って移行処理が行われる。即ち、移行対象世代（Ｖ１）に対応する第２スナップショットボリューム２２６（Ｖｂ１）は、サスペンド状態に設定される。第１コントローラ１１０は、第１ボリューム１２５の最新世代で生じた更新を、第２ボリューム２２５への差分データの書込みとして再現する。第２コントローラ２１０は、第２ボリューム２２５への差分データの書込みに応じて、最新世代に対応する第２スナップショットボリューム２２６（Ｖｂ１）に旧データを退避させる。
【０１２８】
最古世代から最新世代に向けて順番に、移行対象世代で生じた差分データを検出し、この差分データを第２ボリュームに書き込ませることにより、第２記憶制御装置２０内に、第１記憶制御装置１０内のスナップショット構成と同一のスナップショット構成を生成させることができる。
【０１２９】
従って、本実施例では、第１プール１２７に格納されているスナップショット管理情報を第２プール２２７にコピーしたり、スナップショット管理情報と第２ボリュームとの関連づけを行ったりする必要がない。
【０１３０】
次に、最新世代の移行処理について説明する。本実施例では、ホスト３０からのアクセスを停止させずに、第１記憶制御装置１０から第２記憶制御装置２０にデータ及びスナップショット構成を移行させる。従って、本実施例では、移行処理中に、ホスト３０が第１ボリューム１２５にアクセスする可能性がある。そこで、本実施例では、移行処理中に生じたアクセスを、以下に述べるように管理する。
【０１３１】
図１４は、移行処理中における、ホスト３０からのアクセス要求（Ｉ／Ｏ要求）を処理するためのフローチャートである。第１コントローラ１１０は、ホスト３０からのアクセス要求がライト要求であるか否かを判定する（Ｓ３０）。ライト要求ではない場合（S30:NO）、第１コントローラ１１０は、ホスト３０からのアクセス要求を処理し、その結果をホスト３０に送信する（Ｓ３１）。つまり、ホスト３０が第１ボリューム１２５にリードコマンドを発行した場合（S30:NO）、第１コントローラ１１０は、要求されたデータを第１ボリューム１２５から読出して、ホスト３０に送信する（Ｓ３１）。
【０１３２】
ホスト３０からのアクセス要求がライト要求の場合（S30:YES）、第１コントローラ１１０は、移行中のブロックへのライト要求であるか否かを判定する（Ｓ３２）。移行中のブロックへのライト要求である場合（S32:YES）、第１コントローラ１１０は、ホスト３０にビジー応答を返す（Ｓ３３）。ビジー応答を受領したホスト３０は、時間をおいて再びライト要求を発行する。
【０１３３】
移行中のブロックへのライト要求ではない場合（S32:NO）、第１コントローラ１１０は、ライト要求の対象となっているブロックについて、移行残ビットマップ１３４Ｃに「１」をセットする（Ｓ３４）。そして、第１コントローラ１１０は、そのライト要求を処理し、その結果をホスト３０に返す（Ｓ３５）。即ち、第１コントローラ１１０は、対象ブロックのデータを更新し、更新が完了した旨をホスト３０に報告する（Ｓ３５）。
【０１３４】
図１５は、図８中にＳ２０で示す最新世代の移行処理を示す。第１コントローラ１１０は、移行候補ビットマップ１３４Ａ，移行中ビットマップ１３４Ｂ，移行残ビットマップ１３４Ｃをそれぞれリセットする（Ｓ４０）。
【０１３５】
第１コントローラ１１０は、最新世代の第１スナップショットボリューム１２６（Ｖａ１）と第１ボリューム１２５との間で差分を生じているブロックを抽出し（Ｓ４１）、この抽出されたブロックについて、移行候補ビットマップ１３４Ａに「１」をセットする（Ｓ４２）。
【０１３６】
第１コントローラ１１０は、移行候補ビットマップ１３４Ａにおいて「１」がセットされている論理ブロックを一つ選択する（Ｓ４３）。第１コントローラ１１０は、その選択された論理ブロックについて、移行中ビットマップ１３４Ｂのビットを「１」にセットする（Ｓ４４）。同時に、第１コントローラ１１０は、選択された論理ブロックについて、移行候補ビットマップ１３４Ａのビットをリセットする（Ｓ４５）。
【０１３７】
第１コントローラ１１０は、移行中ビットマップ１３４Ｂにおいて「１」にセットされた論理ブロックのデータを、第１ボリューム１２５から第２ボリューム２２５にコピーさせる（Ｓ４６）。コピー終了後に、第１コントローラ１１０は、コピーの終了した論理ブロックについて、移行中ビットマップ１３４Ｂのビットをリセットする。
【０１３８】
第１コントローラ１１０は、移行候補ビットマップ１３４Ａの全ビットが「０」になっているか否かを判定する（Ｓ４７）。移行候補ビットマップ１３４Ａが「１」にセットされているビットを有する場合（S47:NO）、Ｓ４４に戻る。
【０１３９】
移行候補ビットマップ１３４Ａの全ビットが「０」の場合（S47:YES）、第１コントローラ１１０は、移行残ビットマップ１３４Ｃの全ビットが「０」であるか否かを判定する（Ｓ４８）。
【０１４０】
移行残ビットマップ１３４Ｃの全ビットが「０」の場合（S48:YES）、移行すべきデータが残っていないため、本処理を終了する。移行残ビットマップ１３４Ｃにおいて「１」にセットされているビットがある場合（S48:NO）、第１コントローラ１１０は、移行残ビットマップ１３４Ｃの値を移行候補ビットマップ１３４Ａにコピーして（Ｓ４９）、Ｓ４４に戻る。
【０１４１】
図１５に示す処理により、移行中に生じた新たな差分データについても、第１記憶制御装置１０から第２記憶制御装置２０に移行させることができる。即ち、本実施例では、第１記憶制御装置１０及び第２記憶制御装置２０の両方において、スナップショット機能が同時に作動しており、ホスト３０からのアクセス要求を処理しながら、データ及びスナップショット構成を移行させることができる。
【０１４２】
本実施例は上述の構成を備えるため、以下の効果を奏する。移行先の第２記憶制御装置２０が有するスナップショット機能を利用することにより、第１記憶制御装置１０内のスナップショット構成を第２記憶制御装置２０内に自動的に生成させることができる。
【０１４３】
従って、本実施例では、少なくとも移行先の記憶制御装置に特別なプログラムを設ける必要がなく、第１記憶制御装置１０から第２記憶制御装置２０への書込み処理によって、データ及びスナップショット構成を移行させることができる。従って、比較的安価かつ簡易に、データ及びスナップショット構成を移行させることができ、ユーザの使い勝手も向上する。
【０１４４】
本実施例では、ホスト３０から第１記憶制御装置１０へのアクセスを停止させることなく、第１記憶制御装置１０から第２記憶制御装置２０にデータ及びスナップショット構成を移行させることができる。従って、ユーザに意識させずに移行作業を行うことができ、ユーザの使い勝手が向上する。
【０１４５】
本実施例では、ホスト３０を介さずに、第１記憶制御装置１０と第２記憶制御装置２０とによって移行処理を行うことができる。従って、ホスト３０に負担をかけずに、第１記憶制御装置１０から第２記憶制御装置２０へデータ及びスナップショット構成を移すことができ、ユーザの使い勝手が向上する。
【０１４６】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１４７】
【図１】本発明の実施形態の全体構成を示す説明図である。
【図２】実施例に係るスナップショットボリュームの全体構成を示すブロック図である。
【図３】第１記憶制御装置のプログラム構成及びボリューム構成を示す説明図である。
【図４】移行制御管理テーブルを示す説明図である。
【図５】第２記憶制御装置のプログラム構成及びボリューム構成を示す説明図である。
【図６】正ボリュームとスナップショットボリュームとの関係を示す説明図である。
【図７】正ボリューム及び各スナップショットボリュームを用いて、指定された世代の記憶内容を復元する様子を示す説明図である。
【図８】移行処理を示すフローチャートである。
【図９】移行先の記憶制御装置にスナップショット構成を受け入れるための構成を準備させる様子を示す説明図である。
【図１０】移行先ボリュームに最古世代の記憶内容を実体化させる様子を示す説明図である。
【図１１】最古世代で生じた差分データを移行先ボリュームに書き込むことにより、移行先のスナップショット機能を利用して最古世代のスナップショットボリュームを生成させる様子を示す説明図である。
【図１２】次の世代で生じた差分データを移行先ボリュームに書き込むことにより、移行先のスナップショット機能を利用して次の世代のスナップショットボリュームを生成させる様子を示す説明図である。
【図１３】最新世代で生じた差分データを移行先ボリュームに書き込むことにより、移行先のスナップショット機能を利用して最新世代のスナップショットボリュームを生成させる様子を示す説明図である。
【図１４】移行中のアクセス要求を処理するためのフローチャートである。
【図１５】図８中のＳ２０の詳細を示すフローチャートである。
【符号の説明】
【０１４８】
１：移行元記憶制御装置、２：移行先記憶制御装置、３：ホストコンピュータ、３Ａ：アプリケーションプログラム、３Ｂ：管理部、４：コントローラ、４Ａ：コマンド処理部、４Ｂ：スナップショット制御部、４Ｃ：移行制御部、５：記憶デバイス搭載部、５Ａ：移行元ボリューム、５Ｂ：移行元スナップショットボリューム、５Ｃ：プール、６：コントローラ、６Ａ：コマンド処理部、６Ｂ：スナップショット制御部、７：記憶デバイス搭載部、７Ａ：移行先ボリューム、７Ｂ：移行先スナップショットボリューム、７Ｃ：プール、１０：第１記憶制御装置（移行元記憶制御装置）、２０：第２記憶制御装置（移行先記憶制御装置）、３０：ホスト、１１０：第１コントローラ、１１１：第１通信制御部、１１２：第２通信制御部、１１３：キャッシュメモリ、１１４：マイクロプロセッサ、１１５：制御メモリ、１１６：データ転送制御部、１２０：記憶デバイス搭載部、１２１：記憶デバイス、１２２：グループ、１２３：論理デバイス、１２５：第１ボリューム、１２６：第１スナップショットボリューム、１２７：プール、１３１：コマンド処理プログラム、１３２：スナップショット制御プログラム、１３３：移行制御プログラム、１３４：移行制御管理テーブル、１３４Ａ：移行候補ビットマップ、１３４Ｂ：移行中ビットマップ、１３４Ｃ：移行残ビットマップ、２１０：コントローラ、２１１：第１通信制御部、２１２：第２通信制御部、２１３：キャッシュメモリ、２１４：マイクロプロセッサ、２１５：制御メモリ、２１６：データ転送制御部、２２０：記憶デバイス搭載部、２２１：記憶デバイス、２２５：第２ボリューム、２２６：第２スナップショットボリューム、２２７：プール、２３１：コマンド処理プログラム、２３２：スナップショット制御プログラム。
【図１】
2009181206.tif 000003
【図２】
2009181206.tif 000004
【図３】
2009181206.tif 000005
【図４】
2009181206.tif 000006
【図５】
2009181206.tif 000007
【図６】
2009181206.tif 000008
【図７】
2009181206.tif 000009
【図８】
2009181206.tif 000010
【図９】
2009181206.tif 000011
【図１０】
2009181206.tif 000012
【図１１】
2009181206.tif 000013
【図１２】
2009181206.tif 000014
【図１３】
2009181206.tif 000015
【図１４】
2009181206.tif 000016
【図１５】
2009181206.tif 000017