(57)【要約】  スナップショット機能が適用されたボリュームを新しいストレージ装置へ移行する際に、移行元ストレージ装置のスナップショットデータ圧縮方法に依存せず、しかも、ホスト計算機とストレージ装置の間のデータの授受を止めることなしに移行する方法として、  まず、スナップショットの元となるボリューム（ＰＶＯＬ）のデータ移行後、新しい世代のＳＶＯＬから順に移行する。この時の各ＳＶＯＬの移行対象データは移行元ストレージ装置内の全データである。移行先ストレージへコピーされたＳＶＯＬデータは、移行先ストレージ装置内で１つ新しい世代のＳＶＯＬデータと比較し、その比較結果に基づいて差分管理情報を作成する。差分がある場合には、ＶＯＬ割当管理テーブルを更新し、プール内に割当てられた領域に差分データを格納する。
2014112062.tif 000002
【特許請求の範囲】
【請求項１】
現在のデータとともに過去のある時点のデータを第ｎ世代（ｎは２以上の整数）にわたって管理する他のストレージ装置に接続されるストレージ装置であって、
コントローラと、
少なくとも１の記憶装置とを有し、
前記コントローラは、
前記他のストレージ装置から、少なくともある時点の第ｎ世代のデータと前記第ｎ世代より過去の時点の第ｎ−１世代のデータとを取得し、
前記第ｎ世代のデータと前記第ｎ−１世代のデータとの間の差分データの有無を判断し、
前記判断結果から前記第ｎ世代に対する前記第ｎ−１世代のデータの差分情報を生成して前記記憶装置に格納する
ことを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記コントローラは、更に、前記第ｎ世代のデータと前記第ｎ−１世代のデータとの間の差分データの有無を判断した後で、
前記他のストレージ装置から取得した、前記ｎ−１世代（ｎは３以上の整数）より過去の時点の第ｎ−２世代のデータと
前記第ｎ−１世代のデータとの間の差分データの有無を判断し、
前記判断結果から前記第ｎ−１世代に対する前記第ｎ−２世代のデータの差分情報を生成して前記記憶装置に格納する
ことを特徴とするストレージ装置。
【請求項３】
請求項１記載のストレージ装置であって、
前記コントローラは、
前記第ｎ世代より新しい第ｎ＋１世代のデータとして現在の状態のデータを取得する
ことを特徴とするストレージ装置。
【請求項４】
請求項１記載のストレージ装置であって、
前記第ｎ世代（ｎは３以上の整数）のデータは現在の状態のデータとし、
前記コントローラは、更に、
前記第ｎ−１世代より過去の時点の第ｎ−２世代のデータを取得し、
前記第ｎ世代のデータと前記第ｎ−２世代のデータとの間の差分データの有無を判断し、
前記判断結果から前記第ｎ世代に対する前記第ｎ−２世代のデータの差分情報を生成して前記記憶装置に格納する
ことを特徴とするストレージ装置。
【請求項５】
請求項１記載のストレージ装置であって、
前記コントローラは、
前記記憶装置が提供する記憶領域にプール領域を設け、
前記第ｎ−１世代のデータについて、
前記第ｎ世代と同じデータについては取得した前記第ｎ世代のデータを参照し、
前記第ｎ世代と異なるデータについては前記差分情報に基づき前記プール領域に格納するとともに該格納したデータを参照するように管理する
ことを特徴とするストレージ装置。
【請求項６】
請求項５記載のストレージ装置であって、
前記コントローラは、
前記他のストレージ装置からのデータ取得中において該取得の対象となるデータに対する更新要求を受けた場合に、既に取得済みのデータに対しては当該更新要求によるデータ更新を実行し、
未移行のデータに対しては当該更新要求によるデータ更新を実行しない
ことを特徴とするストレージ装置。
【請求項７】
現在のデータとともに過去のある時点のデータを第ｎ世代（ｎは３以上の整数）にわたって管理する他のストレージ装置に接続されるストレージ装置であって、
コントローラと、
少なくとも１の記憶装置とを有し、
前記コントローラは、
前記他のストレージ装置から、現在の情報のデータである第ｎ世代のデータ、前記第ｎ世代より過去の時点の第ｎ−１世代のデータ及び前記第ｎ−１世代より過去の時点の第ｎ−ｍ世代（ｍは２以上の整数で、ｎ＞ｍ）までのデータを取得し、
前記第ｎ世代から前記第ｎ−ｍ世代までの各データの中で、第ｎ−ｍ＋１世代以上のデータと一致するデータがあるかを判定し、当該一致するデータの中から最もｎに近い世代のデータとデータ共有することを示す情報を生成して前記記憶装置に格納する
ことを特徴とするストレージ装置。
【請求項８】
現在のデータとともに過去のある時点のデータを第ｎ世代（ｎは２以上の整数）にわたって管理する第１のストレージ装置から第２のストレージ装置へのデータ移行方法であって、
前記第１のストレージ装置からある時点の第ｎ世代のデータを取得するステップと、
前記第１のストレージ装置から前記第ｎ世代より過去の時点の第ｎ−１世代のデータを取得して前記第ｎ世代のデータとの比較により差分データの有無を判断するステップと、
前記差分データが有る場合には前記第ｎ世代に対する前記第ｎ−１世代のデータの差分情報を生成して保存するステップと
を有することを特徴とするデータ移行方法。
【請求項９】
請求項８記載のデータ移行方法であって、更に、
前記第ｎ世代のデータと前記第ｎ−１世代のデータとの間の差分データの有無を判断する前記ステップの後で、前記第１のストレージ装置から取得した前記ｎ−１世代（ｎは３以上の整数）より過去の時点の第ｎ−２世代のデータと、前記第ｎ−１世代のデータとの間の差分データの有無を判断するステップと、
前記差分データが有る場合には前記第ｎ−１世代に対する前記第ｎ−２世代のデータの差分情報を生成して保存するステップと
を有することを特徴とするデータ移行方法。
【請求項１０】
請求項８記載のデータ移行方法であって、更に、
前記第ｎ世代より新しい第ｎ＋１世代のデータとして現在の状態のデータを取得するステップと
を有することを特徴とするデータ移行方法。
【請求項１１】
請求項８記載のデータ移行方法であって、
前記第ｎ世代（ｎは３以上の整数）のデータは現在の状態のデータとし、更に、
前記第１のストレージ装置から前記第ｎ−１世代より過去の時点の第ｎ−２世代のデータを取得するステップと、
前記第ｎ世代のデータと前記第ｎ−２世代のデータとの比較により差分データの有無を判断するステップと、
前記差分データが有る場合には前記第ｎ世代に対する前記第ｎ−２世代のデータの差分情報を生成して保存するステップと
を有することを特徴とするデータ移行方法。
【請求項１２】
請求項８記載のデータ移行方法であって、更に、
前記第ｎ−１世代のデータの中で前記第ｎ世代と異なるデータについては前記差分情報に基づき第２のストレージ装置が備えるプール領域に格納するステップと
を有することを特徴とするデータ移行方法。
【請求項１３】
請求項１２記載のデータ移行方法であって、更に、
前記第１のストレージ装置からのデータ取得中において該取得の対象となるデータに対する更新要求を受けた場合に、当該更新要求によるデータ更新を未移行のデータではなく既に移行済みのデータに対してのみ実行するステップと
を有することを特徴とするデータ移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット機能を持つストレージ装置の移行方法に関し、具体的には、スナップショットデータに対する差分管理情報及び割り当て管理情報を外部に出力する機能を持たないストレージ装置から、別のストレージ装置へスナップショットを移行する方法に関するものである。
【背景技術】
【０００２】
ストレージ装置が有するスナップショット機能は、あるボリュームの過去のある時点でのデータを保持する機能である。スナップショットの元となるボリュームをＰＶＯＬ（Primary  Volume）、過去のデータを保持するボリュームをＳＶＯＬ（Secondary  Volume）と呼ぶ。容量効率化のため、各ＳＶＯＬは、ＰＶＯＬ又は自分よりも新しく取得したＳＶＯＬ、との差分データのみ、その実データをプールに保存する。ストレージ装置は、差分管理情報及びＶＯＬ割当管理情報を参照し、ＳＶＯＬデータの格納位置を特定する。
移行元のストレージ装置で移行元のボリュームにスナップショット機能が適用されている場合、移行先のストレージ装置でもスナップショット機能の処理が継続されることが望まれる。【０００３】
スナップショット管理されるデータの移行として、例えば、移行先ストレージ装置内に、ＰＶＯＬ、ＳＶＯＬ及びプールを用意し、移行元ストレージから、最も古い世代（第１世代）のＳＶＯＬデータを移行先ストレージのＰＶＯＬへコピーする。次に、移行元ストレージ装置内で、２番目に古い世代（第２世代）のＳＶＯＬと第１世代のＳＶＯＬとの差分管理情報及びＶＯＬ割当管理情報を参照し、第２世代のＳＶＯＬデータの中から差分があるデータのみを移行先ストレージのＰＶＯＬへ転送する。この転送されたデータを移行先ストレージのＰＶＯＬへ書き込み、移行先ストレージ装置が持つスナップショット機能によって第１世代のＳＶＯＬを復元する。この処理を繰り返していくことで、移行先ストレージ装置に移行元ストレージ装置のスナップショットを復元し、スナップショット機能を移行する技術がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８１２０６号公報                                      （米国特許出願公開第２００９／０１９３２０６号明細書）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記、特許文献１に開示される技術において差分管理情報及びＶＯＬ割当管理情報は、ストレージ装置内の管理情報である。よって、一般のストレージ装置では外部へ出力する機能を有していない。また、ストレージ装置やスナップショット機能の種類に依存するために移行先ストレージ装置によってはコピーされた管理情報をそのまま使用することはできない場合がある。
よって本発明では、差分があるデータのみを移行先ストレージ装置へ転送する特別な機能を不要とするスナップショット機能の移行を実現することを課題とする。
【課題を解決するための手段】
【０００６】
そこで、本発明では、ＰＶＯＬのデータ移行後、新しい世代のＳＶＯＬから順に移行する。この時、各ＳＶＯＬの移行対象データは、移行元ストレージ装置内の差分管理情報によらず、全データである。移行先ストレージへコピーされたある世代のＳＶＯＬのデータについては、移行先ストレージ装置内で１つ新しい世代のＳＶＯＬデータと比較され、その比較結果に基づいてこの１つ新しい世代に対する差分情報を作成する。差分がある場合には、ＶＯＬ割当管理テーブルを更新し、プール内に割当てられた領域にその差分情報を格納する。
【発明の効果】
【０００７】
本発明によれば、ホスト計算機、移行元ストレージ装置、ネットワーク装置などの既設の装置が特殊な機能を必要とすることなしに、移行元ストレージ装置のスナップショットデータの格納方法に依らずして、ホスト計算機とストレージ装置の間のデータの授受を止めることなく、スナップショット機能が適用されたボリュームを新しいストレージ装置へ移行することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例１から実施例３に係る計算機システム全体のブロック図である。
【図２Ａ】図２Ａは、実施例１の概要の内、移行動作の前半部分を示すブロック図である。
【図２Ｂ】図２Ｂは、実施例１の概要の内、移行動作の後半部分を示すブロック図である。
【図３】図３は、移行先ストレージ装置の機能を示す概念図である。
【図４】図４は、移行元ストレージ装置の機能を示す概念図である。
【図５】図５は、ＶＯＬ管理テーブルのデータ構成を示す概念図である。
【図６】図６は、スナップショットペア管理テーブルのデータ構成を示す概念図である。
【図７】図７は、スナップショットデータ管理テーブルのデータ構成を示す概念図である。
【図８】図８は、ＶＯＬ割当管理テーブルのデータ構成を示す概念図である。
【図９】図９は、移行管理テーブルのデータ構成を示す概念図である。
【図１０】図１０は、スナップショット移行処理を示すフロー図である。
【図１１】図１１は、ＳＶＯＬ移行処理を示すフロー図である。
【図１２】図１２は、ＳＶＯＬ参照処理を示すフロー図である。
【図１３】図１３は、スナップショットデータのスロット格納位置検索処理を示すフロー図である。
【図１４】図１４は、スナップショットペア情報の出力処理を示すフロー図である。
【図１５】図１５は、移行中ＶＯＬへの更新処理を示すフロー図である。
【図１６Ａ】図１６Ａは、実施例２の概要の内、移行動作の前半部分を示すブロック図である。
【図１６Ｂ】図１６Ｂは、実施例２の概要の内、移行動作の後半部分を示すブロック図である。
【図１７】図１７は、実施例３におけるスナップショットデータ管理テーブルのデータ構成を示す概念図である。
【発明を実施するための形態】
【０００９】
まず、本発明における各実施例の説明に入る前に、各実施例に共通した本発明のシステム構成について、図１により記述する。
【システム構成】
【００１０】
図１は、実施例１から実施例３に係る計算機システム全体のブロック図である。図１に示す計算機システム１は、全体として本発明の各実施例に共通するシステム構成である。本計算機システム１は、ホスト計算機２、管理計算機３、２台のストレージ装置４Ａ、４Ｂ、ＳＡＮ（Storage  Area  Network）５及びＬＡＮ（Local  Area  Network）６を備えて構成される。ホスト計算機２は、ＳＡＮ５を介して各ストレージ装置４Ａ、４Ｂとそれぞれ接続され、管理計算機３は、ＬＡＮ６を介してホスト計算機２及び各ストレージ装置４Ａ、４Ｂとそれぞれ接続されている。
【００１１】
ホスト計算機２は、ＣＰＵ１０、メモリ１１、記憶装置１２、インタフェース制御部１３及び複数のポート１４を備えて構成される。ＣＰＵ１０は、ホスト計算機２全体の動作制御を司るプロセッサであり、記憶装置１２に格納された各種プログラムをメモリ１１に読み出して実行する。メモリ１１は、ホスト計算機２の起動時にＣＰＵ１０により記憶装置１２から読み出された各種プログラムを記憶するために用いられ、その他にＣＰＵ１０のワークメモリとしても用いられる。
【００１２】
記憶装置１２は、例えば、ＨＤＤ（Hard  Disk  Drive）又はＳＳＤ（Solid  State  Drive）から構成され、各種プログラムや制御データを記憶保持するために用いられる。インタフェース制御部１３は、ホスト計算機２をＬＡＮ６に接続するためのアダプタであり、各ポート１４は、ホスト計算機２をＳＡＮ５に接続するためのアダプタである。
【００１３】
管理計算機３は、ホスト計算機２及び各ストレージ装置４Ａ、４Ｂを管理するための計算機であり、ＣＰＵ２０、メモリ２１、記憶装置２２、インタフェース制御部２３、入力装置２４及び表示装置２５を備えて構成される。ＣＰＵ２０は、管理計算機３全体の動作制御を司るプロセッサであり、記憶装置２２に格納された各種プログラムをメモリ２１に読み出して実行する。メモリ２１は、管理計算機３の起動時にＣＰＵ２０により記憶装置２２から読み出された各種プログラムを記憶するために用いられ、その他にＣＰＵ２０のワークメモリとしても用いられる。
【００１４】
記憶装置２２は、例えば、ＨＤＤ又はＳＳＤから構成され、各種プログラムや制御データを記憶保持するために用いられる。インタフェース制御部２３は、管理計算機３をＬＡＮ６に接続するためのアダプタである。入力装置２４は、例えばキーボード及びマウス等から構成され、表示装置２５は、例えば液晶ディスプレイ等から構成される。
【００１５】
ストレージ装置４Ａ、４Ｂは、複数の記憶装置３０Ａ、３０Ｂと、記憶装置３０Ａ、３０Ｂに対するデータの入出力を制御するコントロール部３１Ａ、３１Ｂとから構成される。なお、これ以降、同一番号内でＡとＢを使い分けている場合、それぞれ、移行元ストレージ装置４Ａ内、移行先ストレージ装置４Ｂ内の部品あるいは機能を指す。
【００１６】
記憶装置３０Ａ、３０Ｂは、例えば、ＨＤＤ又はＳＳＤから構成される。複数の記憶装置３０Ａ、３０Ｂにより１つのＲＡＩＤ（Redundant  Array  of  Inexpensive  Disks）グループが構成され、１又は複数のＲＡＩＤグループが提供する記憶領域上に、１又は複数の論理ユニットが設定される。そして、ホスト計算機２からのデータは、この論理ユニット内に所定の大きさのブロックを単位として格納される。
【００１７】
コントロール部３１Ａ、３１Ｂは、ＣＰＵ４０Ａ，４０Ｂ、メモリ４１Ａ、４１Ｂ、不揮発メモリ４２Ａ、４２Ｂ、キャッシュメモリ４３Ａ、４３Ｂ、複数のホスト側ポート４４Ａ，４４Ｂ、複数の記憶装置側ポート４５Ａ、４５Ｂ及びインタフェース制御部４６Ａ、４６Ｂを備えて構成される。
【００１８】
ＣＰＵ４０Ａ、４０Ｂは、ストレージ装置４Ａ、４Ｂ全体の動作制御を司るプロセッサであり、不揮発メモリ４２Ａ、４２Ｂに格納された各種プログラムをメモリ４１Ａ，４１Ｂに読み出して実行する。メモリ４１Ａ、メモリ４１Ｂは、ストレージ装置４Ａ、４Ｂの起動時にＣＰＵ４０Ａ、４０Ｂにより不揮発メモリ４３Ａ、４３Ｂから読み出された各種プログラムを記憶するために用いられるほか、ＣＰＵ４０Ａ、４０Ｂのワークメモリとしても用いられる。
【００１９】
不揮発メモリメモリ４２Ａ、４２Ｂは、各種プログラムや制御データを記憶保持するために用いられる。キャッシュメモリ４３Ａ、４３Ｂは、主としてホスト計算機２と記憶装置３０Ａ、３０Ｂの間で授受されるデータを一時的に格納するために用いられる。ホスト側ポート４４Ａ、４４Ｂは、ストレージ装置４Ａ、４ＢをＳＡＮ５に接続するためのアダプタであり、記憶装置側ポート４５Ａ、４５Ｂは、記憶装置３０Ａ、３０Ｂに対するアダプタである。インタフェース制御部４６Ａ、４６Ｂは、ストレージ装置４Ａ、４ＢをＬＡＮ６に接続するためのアダプタである。
【００２０】
なお、本実施例の場合、ストレージ装置４Ａは移行対象ボリュームの移行元であり、ストレージ装置４Ｂは移行対象ボリュームの移行先である。以下、それぞれを移行元ストレージ装置４Ａ、移行先ストレージ装置４Ｂと呼ぶ。
【実施例１】
【００２１】
図２Ａ及び図２Ｂは、実施例１の概要を示した図である。
図１のＣＰＵ４０Ａ、４０Ｂはそれぞれ、記憶装置３０Ａ、３０Ｂの記憶領域をＶＯＬ、プールとして提供している。
移行元ストレージ装置４Ａ内に、移行対象となるスナップショットのＰＶＯＬ１５０Ａ、第１世代ＳＶＯＬ１５１Ａ、第２世代ＳＶＯＬ１５２Ａ、第３世代ＳＶＯＬ１５３Ａ及びこれらのボリュームのデータを格納するプール１６０Ａが存在する。【００２２】
移行先ストレージ装置４Ｂ内に、上記移行対象となるＰＶＯＬ１５０Ａ、各ＳＶＯＬ１５１Ａ〜１５３Ａに対応する、ＰＶＯＬ１５０Ｂ、第１世代ＳＶＯＬ１５１Ｂ、第２世代ＳＶＯＬ１５２Ｂ、第３世代ＳＶＯＬ１５３Ｂ、また、これらのボリュームのデータを格納するプール１６０Ｂ、移行元ストレージ装置４Ａから移行先ストレージ装置４ＢへコピーしたＳＶＯＬデータ１５００及び後述するスナップショットデータ管理テーブル４２２Ｂ、が存在する。【００２３】
各ＳＶＯＬの中で、第１世代ＳＶＯＬ１５１Ａ、１５１Ｂが最も古く、続いて、第２世代ＳＶＯＬ１５２Ａ、１５２Ｂ、第３世代ＳＶＯＬ１５３Ａ、１５３Ｂ、の順に新しくなる。ＰＶＯＬ及び各ＳＶＯＬは、ホスト計算機２（図１）からのＩＯを受け付けることができる。【００２４】
図２Ａは、移行元ストレージ装置４Ａの第２世代ＳＶＯＬ１５２Ａを、移行先ストレージ装置４Ｂの第２世代ＳＶＯＬ１５２Ｂに移行する動作の前半部分を示す。まず、移行元ストレージ装置４Ａの第２世代ＳＶＯＬの全領域のデータを移行先ストレージ装置４Ｂへコピーする。次に、移行先ストレージ装置４Ｂ内で、今コピーしてきたデータ１５００と第２世代ＳＶＯＬより１つ新しい第３世代ＳＶＯＬ１５３Ｂのデータとを比較し、差分の有無をチェックする。【００２５】
図２Ｂは、移行元ストレージ装置４Ａの第２世代ＳＶＯＬ１５２Ａを、移行先ストレージ装置４Ｂの第２世代ＳＶＯＬ１５２Ｂに移行する動作の後半部分を示す。上記差分の有無チェックの結果に基づき、各スロットの差分の有無をスナップショットデータ管理テーブル４２２Ｂに設定する（図２Ｂでは「２ｎｄ」の列）。差分有りと判定されたスロットには、プール１６０Ｂから第２世代ＳＶＯＬ１５２Ｂへ必要な容量を割り当てて、移行元ストレージ装置４Ａからコピーしてきたデータ１５００の該当するスロットのデータ（図２Ｂでは、データ“Ｃ”が該当）を格納する。
（２．各種データの構成）【００２６】
図３は、移行先ストレージ装置４Ｂの各種制御プログラム及び各種管理情報テーブルを示している。移行先ストレージ装置４Ｂの不揮発メモリ４２Ｂには、ＶＯＬ管理テーブル４２０Ｂ、スナップショットペア管理テーブル４２１Ｂ、スナップショットデータ管理テーブル４２２Ｂ、ＶＯＬ割当管理テーブル４２３Ｂ、移行管理テーブル４２４Ｂ、スナップショット制御部４２５Ｂ、ＩＯコマンド制御処理部４２６Ｂ、ＶＯＬ移行処理部４２７Ｂ、スナップショット移行処理部４２８Ｂ及びスナップショットペアＩＦ処理部４２９Ｂが格納される。【００２７】
図４は、移行元ストレージ装置４Ａの各種制御プログラム及び各主管情報テーブルを示している。移行元ストレージ装置４Ａの不揮発メモリ４２Ａには、ＶＯＬ管理テーブル４２０Ａ、スナップショットペア管理テーブル４２１Ａ、スナップショットデータ管理テーブル４２２Ａ、ＶＯＬ割当管理テーブル４２３Ａ、スナップショット制御処理部４２５Ａ、ＩＯコマンド処理部４２６及びスナップショットペアＩＦ処理部４２９Ａが格納される。【００２８】
ＶＯＬ管理テーブル４２０Ａ、４２０Ｂは、移行元ストレージ装置４Ａ、移行先ストレージ装置４Ｂ内のそれぞれのボリュームを管理するための情報を含み、その具体的な情報として、図５に示すとおり、ＶＯＬ番号４２００、ＶＯＬ属性４２０１及びＶＯＬサイズ４２０２を格納している。【００２９】
図５において、ＶＯＬ番号４２００は、移行元ストレージ装置４Ａ及び移行先ストレージ装置４Ｂのそれぞれの中で、ボリュームを特定するための番号である。ＶＯＬ属性４２０１は、各ボリュームが、通常ＶＯＬであるか、スナップショットＰＶＯＬであるか、スナップショットＳＶＯＬであるかを示す。ＶＯＬサイズ４２０２は、ホスト計算機２や管理計算機３などに提供するＶＯＬの論理的な大きさを表す。【００３０】
スナップショットペア管理テーブル４２１Ａ、４２１Ｂは、移行元ストレージ装置４Ａ、移行先ストレージ装置４Ｂ内のそれぞれのスナップショットペアを管理するための情報を含み、その具体的な情報として、図６に示すとおり、スナップショット番号４２１０、ＰＶＯＬ番号４２１１、ＳＶＯＬ番号４２１２及びスナップショット世代番号４２１３を格納している。【００３１】
図６において、スナップショット番号４２１０は、移行元ストレージ装置４Ａ及び移行先ストレージ装置４Ｂのそれぞれの中で、スナップショットのペアを特定するための番号である。ＰＶＯＬ番号４２１１は、当該スナップショットペアのＰＶＯＬとなるボリュームを特定するための番号であり、ＶＯＬ管理テーブル４２０Ａ、４２０Ｂ内のＶＯＬ番号４２００により定まる番号である。ＳＶＯＬ番号４２１２は、当該スナップショットペアのＳＶＯＬとなるボリュームを特定するための番号であり、ＶＯＬ管理テーブル４２０Ａ、４２０Ｂ内のＶＯＬ番号４２００により定まる番号である。スナップショット世代番号４２１３は、ＰＶＯＬ番号４２１１が同じであるスナップショットペアの中で、スナップショットペアが作成された順番を特定するための番号である。【００３２】
本明細書の説明上では、数字が小さいほど、スナップショットペアが作成された時間が早いことを表す。スナップショット世代番号が０００１のＳＶＯＬのことを「第１世代ＳＶＯＬ」と呼び、スナップショット世代番号が０００２のＳＶＯＬのことを「第２世代ＳＶＯＬ」と呼ぶ。以下同様に、スナップショット世代番号がｎのＳＶＯＬのことを「第ｎ世代ＳＶＯＬ」と呼ぶ。【００３３】
スナップショットデータ管理テーブル４２２Ａ、４２２Ｂは、スナップショットのＳＶＯＬの各データが、他のＳＶＯＬ又はＰＶＯＬとの間に差分データがあるかどうかを管理するための情報を含み、その具体的な情報として、図７に示すとおり、ＰＶＯＬ番号４２２０、スロット番号４２２１及び各世代のＳＶＯＬ間の差分情報４２２２を格納している。【００３４】
図７において、ＰＶＯＬ番号４２２０は、スナップショットペア管理テーブル４２１Ａ、４２１Ｂ内のＰＶＯＬ番号４２１１で定まる番号と同じ番号を示し、スナップショットのＰＶＯＬとなるボリュームを特定する。スロット番号４２２１は、各ボリュームの論理的なアドレスを特定するための番号であり、スロットはスナップショットのデータ格納先を管理する最小単位である。各世代のＳＶＯＬ間の差分情報４２２２は、ある世代のＳＶＯＬに対して、その次の世代のＳＶＯＬの同じスロットのデータに差分があるかないかを示す。具体的には、第１世代ＳＶＯＬの列は、第１世代ＳＶＯＬと第２世代のＳＶＯＬとの間の差分情報を示し、第２世代ＳＶＯＬの列は、第２世代ＳＶＯＬと第３世代ＳＶＯＬとの間の差分情報を示し、第ｎ世代ＳＶＯＬの列は、第ｎ世代ＳＶＯＬと第ｎ＋１世代ＳＶＯＬとの間の差分情報を示す。ただし、第ｎ＋１世代ＳＶＯＬの列が存在しない場合、第ｎ世代ＳＶＯＬの列は、第ｎ世代ＳＶＯＬとＰＶＯＬとの間の差分情報を示す。【００３５】
ＶＯＬ割当管理テーブル４２３Ａ、４２３Ｂは、各ボリュームの各スロットがプールのどこに割り当てられているかを示す情報を含み、その具体的情報として、図８に示すとおり、ＶＯＬ番号４２３０、スロット番号４２３１、割当有無４２３２、ＰＯＯＬ番号４２３２及びＰＯＯＬ内スロット番号４２３４を格納している。【００３６】
図８において、ＶＯＬ番号４２３０は、ＶＯＬ管理テーブル４２０Ａ、４２０Ｂ内のＶＯＬ番号４２００で定まる番号と同じ番号を示す。スロット番号４２３１は、スナップショットデータ管理テーブル４２２Ａ、４２２Ｂ内のスロット番号４２２１で定まる番号と同じ番号を示し、各ボリュームの論理的なアドレスを特定する。割当有無４２３２は、各スロットに対して、プール内に割り当てられた領域が有るか無いかを示す。割当有りの場合、プール内に割り当てられた領域が有ることを示し、割当無しの場合、プール内に割り当てられた領域が無いことを示す。ＰＯＯＬ番号４２３３は、各スロットに対して、領域を割り当てたプールを特定するための番号を示す。ＰＯＯＬ内スロット番号４２３４は、各スロットに割り当てたプール内の論理的なアドレスを特定するための番号を示す。【００３７】
移行管理テーブル４２４Ｂは、ＶＯＬの移行状態を管理する情報を含み、その具体的情報として、図９に示すとおり、ＶＯＬ番号４２４０、移行状態４２４１、ＶＯＬ終端スロット番号４２４２及び移行完了スロット番号４２４３を格納している。【００３８】
図９において、ＶＯＬ番号４２４０は、移行先ストレージ装置４２Ｂ内のＶＯＬ管理テーブル４２０Ｂ内のＶＯＬ番号４２００で定まる番号と同じ番号を示し、移行先ストレージ装置４２Ｂ内のボリュームを特定する。移行状態４２４１は、各ボリュームの移行状態を示す。「完了」の場合は、既に移行先ストレージ装置への移行が完了したことを示し、「移行中」の場合は、現在移行処理中であることを示し、「移行前」の場合は、まだ移行が開始されていないことを示す。ＶＯＬ終端スロット番号４２４２は、各ＶＯＬ内の一番後端のスロット番号を示す。移行完了スロット番号４２４３は、各ＶＯＬ内のスロットの中で、先頭のスロットから移行が完了したスロットまでを示す。例えば、この値が５０００のとき、先頭１スロットから５０００スロットまでが移行完了しており、次に移行すべきスロットは５００１スロットであることを示している。【００３９】
スナップショット制御処理部４２５Ａ、４２５Ｂは、スナップショットペア管理テーブル４２１Ａ、４２１Ｂ、スナップショットデータ管理テーブル４２２Ａ、４２２Ｂ及びＶＯＬ割当管理テーブル４２３Ａ、４２３Ｂの情報に基づいて、スナップショットＳＶＯＬの参照処理の際の、アクセスデータ格納位置特定処理、及び、ＰＶＯＬ、ＳＶＯＬの更新処理の際の、データコピー要否判定処理並びにコピー処理を行うためのプログラムである。【００４０】
ＩＯコマンド処理部４２６Ａ、４２６Ｂは、ホスト計算機２からのＩＯ処理要求に応じてリード処理、ライト処理を行うためのプログラムである。
ＶＯＬ移行処理部４２７Ｂは、移行管理テーブル４２４Ｂの情報に基づき、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂへボリュームを移行する処理を行うためのプログラムである。【００４１】
スナップショット移行処理部４２８Ｂは、ホスト計算機２又は管理計算機３の指示によって、スナップショット機能を移行するためのプログラムである。
スナップショットペアＩＦ処理部４２９Ａ、４２９Ｂは、ホスト計算機２又は管理計算機３又は移行先ストレージ装置４Ｂのいずれかによって、移行元ストレージ装置４Ａ、４Ｂ内のスナップショットペア管理テーブル４２１Ａ、４２１Ｂに格納している情報を参照するためのプログラムである。
（３．スナップショット移行処理）【００４２】
図１０は、スナップショット移行処理の手順を示す。スナップショットの移行処理は、管理計算機３から、移行したいスナップショットペア、又は、ＰＶＯＬ、ＳＶＯＬを選択することで、実施される。以下に、この処理手順の各ステップを順に説明する。【００４３】
ステップ４２８０１において、移行先ストレージ装置４Ｂは、移行元ストレージ装置４Ａ内の、移行するスナップショットペア情報を取得する。このとき、移行元ストレージ装置４Ａの不揮発メモリ４２Ａ内に格納されるスナップショットペアＩＦ処理部４２９Ａによるスナップショットペア情報出力処理４２９０（図１４に基づき後述）により、移行元ストレージ装置４Ａは、移行先ストレージ装置４Ｂ内にスナップショットペア管理テーブル４２１Ｂを作成するために必要な情報を移行先ストレージ装置４Ｂへ出力する。【００４４】
ステップ４２８０２において、移行先ストレージ装置４Ｂは、取得したスナップショットペア情報を基にＰＶＯＬ、ＳＶＯＬペアを作成する。即ち、移行先ストレージ装置４Ｂ内に、ＰＶＯＬ、ＳＶＯＬに対応するボリュームを作成し、ＶＯＬ管理テーブル４２０Ｂに、ＶＯＬ番号４２００、ＶＯＬ属性４２０１及びＶＯＬサイズ４２０２を設定し、スナップショットペア管理テーブル４２１Ｂに、スナップショット番号４２１０、ＰＶＯＬ番号４２１１、ＳＶＯＬ番号４２１２及びスナップショット世代番号４２１３を設定し、移行管理テーブル４２４Ｂに、ＶＯＬ番号４２４０、移行状態４２４１、ＶＯＬ終端スロット番号４２４２及び移行完了スロット番号４２４３を設定する。【００４５】
ステップ４２８０３において、ＰＶＯＬを移行する。ＰＶＯＬの移行手順は、この移行処理は、ボリュームの領域の先頭から順次、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂへデータをコピーすることで行われる。このとき、データのコピー処理は、移行先ストレージ装置４Ｂから移行元ストレージ装置４Ａのデータを読み出すようにして実行してもよいし、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂに対して書き出すようにして実行してもよい。また、ホスト計算機２や管理計算機３によって実行されてもよい。例えば、米国特許出願公開第２０１２／００３６３３０号明細書に記載の技術を適応することも可能である。具体的には移行先ストレージ装置の外部ボリュームとして、移行元ストレージ装置内のボリュームをマッピングし、移行するボリュームのInquiry情報を移行先ストレージ装置の移行先ボリュームに設定する。そして、移行先ストレージ装置のボリュームに対する、リード・ライトキャッシュをオフにすることによって、既設の装置に特殊な機能を必要とすることなく、また、ホスト計算機とストレージ装置の間のデータの授受を止めずに、移行対象ボリュームを新しいストレージ装置へ移行することができる。
移行中のボリュームは、移行先ストレージ装置４Ｂ内の移行管理テーブル４２４Ｂにより管理される。データのコピーを実施した分だけ、移行完了スロット番号４２４３を更新する。ＰＶＯＬの移行が完了後、移行管理テーブル４２４Ｂ内の完了したＰＶＯＬのＶＯＬ番号４２４０に対応する移行状態４２４１を「完了」に設定する。【００４６】
ステップ４２８０４では、スナップショットペア管理テーブル４２１Ｂ及び移行管理テーブル４２４Ｂのデータに基づき、前のステップで移行したＰＶＯＬとスナップショットペアとなるＳＶＯＬの中から、最もスナップショット世代番号の大きなＳＶＯＬ（すなわち、最も新しいＳＶＯＬ）を選択する。【００４７】
ステップ４２８０５では、未移行ＳＶＯＬが存在するかどうかを判定する。未移行ＳＶＯＬが存在すれば（Ｙｅｓ）、ＳＶＯＬ移行処理ステップ４２８０６（図１１に基づき後述）へと進み、未移行ＳＶＯＬが存在しなければ（Ｎｏ）、スナップショットの移行処理は完了する。
ＳＶＯＬ移行処理４２８０６の完了後は、再び、ステップ４２８０４へと戻り、ステップ４２８０５において、未移行ＳＶＯＬなしと判定されるまでこの移行処理を繰り返す。【００４８】
図１１は、前述した図１０のステップ４２８０６におけるＳＶＯＬ移行処理の手順を示す。以下に、この処理手順の各ステップを順に説明する。
ステップ４２８０６１において、移行対象となるＳＶＯＬのデータ１５００を、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂへとコピーする。このとき、データのコピー処理は、移行先ストレージ装置４Ｂから、移行元ストレージ装置４Ａのデータを読み出すようにして実行してもよいし、移行元ストレージ装置４Ａから、移行先ストレージ装置４Ｂに対して書き出すようにして実行してもよい。また、ホスト計算機２や管理計算機３によって実行されてもよい。移行元ストレージ装置４Ａ内の、スナップショットＳＶＯＬのデータは、ＳＶＯＬデータ参照処理（図１２に基づき後述）によってデータの格納位置を特定し、移行先ストレージ装置４Ｂへと転送される。【００４９】
ステップ４２８０６２では、スナップショットペア管理テーブル４２１Ｂの情報に基づき、移行対象ＳＶＯＬを含む行のＰＶＯＬ番号４２１１及びスナップショット世代番号４２１３を参照し、参照したＰＶＯＬ番号と同じ番号のＰＶＯＬ番号を含む行の中から、参照したスナップショット世代番号よりも１つ大きなスナップショット世代番号を含む行を検索し、見つけた行のＳＶＯＬ番号４２１２を参照する。１つ大きなスナップショット世代番号を含む行が見つからなかった場合、即ち、移行対象ＳＶＯＬのスナップショット世代番号が最も大きかった場合には、ＰＶＯＬ番号４２１１を参照する。参照したＶＯＬ番号のＶＯＬのデータと、ステップ４２８０６１で移行元ストレージ装置４Ａからコピーしてきたデータと、を比較する。例えば、図２Ａの場合においては、参照するＳＶＯＬ番号である第３世代ＳＶＯＬ１５３Ｂにより特定されるボリュームのデータ“Ｄ”、“Ｂ”、“Ｅ”、と、移行元ストレージ装置４Ａからコピーしてきた移行対象データ１５００の“Ｄ”、“Ｂ”、“Ｃ”、と、を比較する。【００５０】
ステップ４２８０６３では、前ステップで比較した結果を基に、データが一致しなかったスロットのデータについてのみ（図２Ａではデータ“Ｃ”のみ）、プール１６０Ｂから、移行先ＳＶＯＬ（図２Ｂでは１５２Ｂ）に容量を割当てることにより、データを格納する。ここで、容量割り当て処理は、ＶＯＬ割当管理テーブル４２３Ｂに各値を登録することにより実現する。【００５１】
ステップ４２８０６４では、ステップ４２８０６２で比較した結果を基に、スナップショットデータ管理テーブル４２２Ｂの、該当するＰＶＯＬ番号とスロット番号の行と、該当する第ｎ世代ＳＶＯＬの差分の列の項に、一致しなかったスロットには差分ありの情報を、一致したスロットには差分なしの情報を、それぞれ設定する。【００５２】
移行対象となる第ｎ世代ＳＶＯＬの全領域のデータについて、上記ステップ４２８０６１から４２８０６４までの処理が完了すれば、第ｎ世代ＳＶＯＬの移行が完了し、図１０のステップ４２８０４に戻る。ステップ４２８０６１から４２４０６４までの処理については、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂへのデータコピーのペースに合わせて逐次的に行ってもよい。【００５３】
図１２は、スナップショットＳＶＯＬ参照処理の手順を示す。スナップショットＳＶＯＬの参照処理は、ホスト計算機２からのＩＯ処理時、及び、移行元ストレージ装置４Ａから移行先ストレージ装置４ＢへのＳＶＯＬデータの移行処理時などである。以下に、この処理手順の各ステップを順に説明する。【００５４】
ステップ４２６０１において、スロットの格納位置検索処理（図１３に基づき後述）を実行する。
ステップ４２６０２において、前ステップで特定したスロット格納位置からデータを参照する。【００５５】
図１３は、前述した図１２のステップ４２０６１の、スロット格納位置検索処理のフロー図である。以下に、この検索処理の各ステップを順に説明する。
ステップ４２６０１１において、スロット格納位置検索対象のＳＶＯＬを選択し、ＶＯＬ管理テーブル４２０Ａ、４２０Ｂから、ＳＶＯＬのＶＯＬ番号を取得する。【００５６】
ステップ４２６０１２において、前ステップで取得したＳＶＯＬのＶＯＬ番号と、スナップショットデータ管理テーブル４２２Ａ、４２２Ｂから、検索対象のスロットの差分の有無を参照する。
ステップ４２６０１３において、差分ありか差分なしかを判定する。差分なしの場合（Ｙｅｓ）は、ステップ４２６０１４へ進む。差分ありの場合（Ｎｏ）は、ステップ４２６０１６へ進む。【００５７】
ステップ４２６０１４では、スナップショットペア管理テーブル４２１Ｂの情報に基づき、現在選択中のＳＶＯＬを含む行のＰＶＯＬ番号４２１１と、スナップショット世代番号４２１３を参照し、参照したＰＶＯＬ番号と同じ番号のＰＶＯＬ番号を含む行の中から、参照したスナップショット世代番号よりも、１つ大きなスナップショット世代番号を含む行を検索し、見つけた行のＳＶＯＬ番号を選択しＳＶＯＬ番号を取得する。１つ大きなスナップショット世代番号を含む行が見つからなかった場合、即ち、現在選択中のＳＶＯＬのスナップショット世代番号が最も大きかった場合は、ＰＶＯＬを選択しＰＶＯＬ番号を取得する。【００５８】
ステップ４２６０１５では、選択したボリュームがＳＶＯＬであるかどうかを判定する。ＳＶＯＬであった場合（Ｙｅｓ）は、ステップ４２６０１２に戻って処理を繰り返す。ＳＶＯＬでなかった場合（Ｎｏ）は、ステップ４２６０１７へ進む。【００５９】
ステップ４２６０１６では、ＶＯＬ割当管理テーブル４２３Ａ，４２３Ｂの情報に基づき、選択したＳＶＯＬのＶＯＬ番号及び検索するスロット番号を含む行の、ＰＯＯＬ番号及びＰＯＯＬ内スロット番号を参照し、検索するスロットのデータ格納位置を取得する。【００６０】
ステップ４２６０１７では、選択したＰＶＯＬの対象スロットのデータ格納位置を検索し、スロットのデータ格納位置を取得する。【００６１】
図１４は、スナップショットペア情報出力処理のフロー図４２９０である。管理計算機３又は移行先ストレージ装置４Ｂから、移行元ストレージ装置４Ａへ、ペア情報参照のリクエストがあった際に、スナップショットペアＩＦ処理部４２９Ａによって実施される処理である。
ステップ４２９０１では、移行元スナップショットペア管理テーブル４２１Ａから、スナップショットペアのＰＶＯＬ番号４２１１、ＳＶＯＬ番号４２１２及びスナップショット世代番号４２１３を参照し、リクエストがあった外部装置に対して出力する。【００６２】
図１０から図１４で説明されるスナップショット移行処理は、ＰＶＯＬと、同一ＰＶＯＬのスナップショットペアになっている全ＳＶＯＬのデータをスロット単位でまとめて、移行先ストレージ装置４Ｂへコピーし、移行先ストレージ装置４Ｂ内でコピーしたデータ同士を比較し、スナップショットデータ管理テーブル４２２Ｂ、ＶＯＬ割当管理テーブル４２３Ｂに値を設定することによっても実現可能である。【００６３】
図１５は、移行先ストレージ装置内で受け取った、移行中の各ＶＯＬへの更新処理のフロー図４２６０である。以下に、この更新処理の各ステップを順に説明する。
ステップ４２６０１において、移行管理テーブル４２４Ｂの移行状態４２４１を参照する。その結果、「未移行」であればステップ４２６０２へ進み、「移行中」であればステップ４２６０３へ進み、「移行済」であればステップ４２６０４へ進む。【００６４】
ステップ４２６０２（未移行）では、移行先ストレージ装置４Ｂでは更新処理を行わず、移行元ストレージ装置４Ａのみ更新処理を行う。
ステップ４２６０３（移行中）では、更に、移行完了スロット番号４２４３を参照し、更新対象スロットが移行完了しているかどうかを判定する。その結果、移行完了していれば（Ｙｅｓ）、ステップ４２６０４へ進み、移行完了していなければ（Ｎｏ）、ステップ４２６０２へ進む。【００６５】
ステップ４２６０４（移行済）では、移行先ストレージ装置４Ｂと移行元ストレージ装置４Ａの両方のＶＯＬのデータを更新する。
このように処理することにより、ＶＯＬの移行中に障害が発生した場合においても、いつでも、移行元ストレージ装置４Ａからデータを復元できる状態を保つことができる。
【実施例２】
【００６６】
本発明における実施例２は、移行先ストレージ装置４Ｂ内のスナップショットの各世代のＳＶＯＬのデータに対してＰＶＯＬのデータとの差分データのみを管理し、共通データは、ＰＶＯＬのデータを参照するように、各スロットのデータを管理するケースである。【００６７】
図１６Ａ及び図１６Ｂは、本発明における実施例２の概要図である。
移行元ストレージ装置４Ａ内に、移行対象となるスナップショットのＰＶＯＬ１５０Ａ、第１世代ＳＶＯＬ１５１Ａ、第２世代ＳＶＯＬ１５２Ａ、第３世代ＳＶＯＬ１５３Ａ及びこれらのボリュームのデータを格納するプール１６０Ａが存在する。【００６８】
移行先ストレージ装置４０Ｂ内に、移行対象の各ＰＶＯＬ、ＳＶＯＬに対応するＰＶＯＬ１５０Ｂ、第１世代ＳＶＯＬ１５１Ｂ、第２世代ＳＶＯＬ１５２Ｂ、第３世代ＳＶＯＬ１５３Ｂ、これらのボリュームのデータを格納するプール１６０Ｂ、移行元ストレージ装置４Ａから移行先ストレージ装置４ＢへコピーしたＳＶＯＬデータ１５００及びスナップショットデータ管理テーブル４２２Ｂが存在する。【００６９】
各ＳＶＯＬの中で、第１世代ＳＶＯＬ１５１Ａ、１５１Ｂが最も古く、続いて、第２世代ＳＶＯＬ１５２Ａ、１５２Ｂ、第３世代ＳＶＯＬ１５３Ａ、１５３Ｂ、の順に新しくなる。ＰＶＯＬ及び各ＳＶＯＬは、ホストからのＩＯを受け付けることができる。【００７０】
図１６Ａは、移行元ストレージ装置４Ａから第２世代ＳＶＯＬ１５２Ａを、移行先ストレージ装置４Ｂの第２世代ＳＶＯＬ１５２Ｂに移行する動作の前半部分を示している。まず、移行元ストレージ装置４Ａの第２世代ＳＶＯＬの全領域のデータを移行先ストレージ装置４Ｂへコピーする。次に、移行先ストレージ装置４Ｂ内で、今コピーしてきたデータ１５００とＰＶＯＬ１５０Ｂのデータを比較し、差分の有無をチェックする。【００７１】
図１６Ｂは、移行元ストレージ装置４Ａから第２世代ＳＶＯＬ１５２Ａを、移行先ストレージ装置４Ｂの第２世代ＳＶＯＬ１５２Ｂに移行する動作の後半部分を示している。上記差分の有無チェックの結果に基づき、各スロットの差分の有無を、スナップショットデータ管理テーブル４２２Ｂに設定する。差分有りと判定されたスロットには、プール１６０Ｂから第２世代ＳＶＯＬ１５２Ｂへ必要な容量を割り当てて、移行元ストレージ装置４Ａからコピーしてきたデータ１５００の該当するスロットのデータを格納する。【００７２】
本実施例２において、スナップショットデータ管理テーブル４２２Ｂにおける各世代のＳＶＯＬの差分情報４２２２は、各世代のＳＶＯＬとＰＶＯＬとのスロット毎の差分有無の情報を示す。
また、本実施例２は、移行元ストレージ装置４Ａ内のスナップショット機能に関わるテーブルのデータ構造及びスナップショット機能の実現方法に依らない。【００７３】
本実施例２では、各フローの処理が以下のように変更になる。図１１のステップ４２８０６２において、移行対象ＳＶＯＬがどの世代であっても、コピーしたデータとＰＶＯＬデータとを比較する。図１３のステップ４２６０１４において、どの世代のＳＶＯＬを選択していてもＰＶＯＬを選択する。【００７４】
本実施例２は、実施例１と比較して、以下のような差異による効果を奏する。
実施例１では、ＳＶＯＬが２世代以上存在して、あるスロットの各世代間の差分がない場合、第１世代ＳＶＯＬのデータを参照するためには、スナップショットデータ管理テーブル４２２Ｂを２回以上参照しなくてはならない。更に世代数が増えれば、スナップショットデータ管理テーブル４２２Ｂの参照回数も増えるため、各ＳＶＯＬの世代間のアクセス性能に差が生じる。これに対し、実施例２では、各ＳＶＯＬの世代間の階層関係がないため、どの世代のＳＶＯＬのどのデータであっても、スナップショットデータ管理テーブル４２２Ｂを参照する回数は１回に抑えられ、ＳＶＯＬ間のアクセス性能の差がなくなるという効果が得られる。このスナップショット機能のデータ管理方法は、ホスト計算機２が、同じ仮想マシンを複数同時に高速に立ち上げるときに必要なボリュームとしてスナップショットのＳＶＯＬを使用する際に適している。一方で、本実施例２は、ＰＶＯＬのデータが更新される度に、全世代のＳＶＯＬに対して更新前のデータがコピーされるので、実施例１が容量効率の点では優れていると思われる。
【実施例３】
【００７５】
本発明における実施例３は、移行先ストレージ装置４Ｂのスナップショット機能の実現方法として、３世代以上のＳＶＯＬがあったとき、その間の世代のＳＶＯＬのスロットには差分があり、その前後のＳＶＯＬ又はＰＶＯＬでデータを共有しているケースである。【００７６】
本実施例３におけるデータ共有の実現方法として、例えば、スナップショットデータ管理テーブル４２２Ｂの各世代ＳＶＯＬの差分の列に、どの世代のＳＶＯＬとデータを共有しているかを管理しておく方法などがある。【００７７】
図１７は、実施例３における、スナップショットデータ管理テーブル４２２Ｂを示す。各世代のＳＶＯＬのデータ共有情報４２２２は、各世代のＳＶＯＬの各スロットがどの世代のＳＶＯＬ又はＰＶＯＬとデータを共有しているかを示す情報である。【００７８】
ＳＶＯＬ移行の際に、移行元ストレージ装置４Ａから移行先ストレージ装置４Ｂへコピーしたデータ１５００を、移行先ストレージ装置４Ｂ内で、移行対象ＳＶＯＬと同じＰＶＯＬをスナップショットペアとするＳＶＯＬのうち、移行済みのすべてのＳＶＯＬ及びＰＶＯＬとデータを比較する。
比較した結果を基に、スナップショットデータ管理テーブル４２２Ｂに、一致しているデータの内、最も新しい世代のＳＶＯＬと共有していると設定する。また、ＰＶＯＬのデータと一致している場合は、ＰＶＯＬと共有していると設定する。そしてまた、一致するデータがない場合は、共有なしと設定する。【００７９】
本実施例３は、実施例１及び実施例２と比較して、以下のような差異による効果を奏する。
実施例１では、ある世代のＳＶＯＬデータと次の世代のＳＶＯＬデータの間の差分情報を管理するものである。そのため、ある第ｎ世代ＳＶＯＬと第ｎ−２世代ＳＶＯＬの同じスロットのデータに差分がなく、第ｎ−１Ｎ＋１世代ＳＶＯＬの同じスロットのデータのみに差分がある場合、第ｎ世代ＳＶＯＬのスロットと第ｎ−２世代ＳＶＯＬのスロットは、プール内に別々に領域が割り当てられることになる。【００８０】
これに対し、実施例３では、第ｎ世代ＳＶＯＬのスロットと第ｎ−２世代ＳＶＯＬのスロットに対して、プールに割り当てられる領域は１つであり、実施例１よりも容量効率が良い。このスナップショット機能のデータ管理方法は、スナップショットに使用する容量をなるべく削減したい場合に適している。ただし、実施例３では、全ての世代のＳＶＯＬ間で一致するデータがあるかないかを判定する必要があるため、スナップショット移行処理にかかるＣＰＵの処理オーバーヘッドが実施例１及び実施例２に比べて大きくなる。【００８１】
本実施例１〜３では、移行先ストレージ装置４Ｂ内のスナップショット実現方法として、ＰＶＯＬ又はＰＶＯＬにより近い世代のＳＶＯＬが主体となってデータを管理し、それより、古い世代のＳＶＯＬは、ＰＶＯＬ又は新しい世代のＳＶＯＬとの差分データのみをプールで管理する方法をとっている。この点、最も古い世代のＳＶＯＬが主体となってデータを管理し、ＰＶＯＬ又は新しい世代のＳＶＯＬのデータは、より古い世代のＳＶＯＬとの差分データのみをプールで管理する方法であってもよい。その場合、移行手順を逆にすることで実現可能となる。具体的には、図１０のステップ４２８０３において、最も古い世代のＳＶＯＬを移行し、ステップ４２８０４において、未移行のＳＶＯＬの内、最も古い世代のＳＶＯＬを選択する。ステップ４２８０５において、未移行ＳＶＯＬがなしと判定された後、最後にＰＶＯＬを移行してスナップショット移行処理を終了する。図１１のステップ４２８０６２において、移行対象ＳＶＯＬより１つ古い世代のＳＶＯＬのデータと比較する。図１３のステップ４２６０１４において、スナップショット管理テーブルから１つ古い世代のＳＶＯＬを選択する。ステップ４２６０１５において、最古世代ＳＶＯＬ以外を選択したかどうかを判定する。ステップ４２６０１７において、最古世代ＳＶＯＬの対象スロットのデータ格納位置を検索し、対象スロットのデータ格納位置を取得する。【００８２】
図７において、実施例１では、第ｎ世代ＳＶＯＬの列は、第ｎ世代ＳＶＯＬと第ｎ−１世代ＳＶＯＬとの間の差分情報を示す。実施例２では、第ｎ世代ＳＶＯＬの列は、第ｎ世代ＳＶＯＬと第１世代ＳＶＯＬのデータを示す。
実施例３では、スナップショットデータ管理テーブル４２２Ｂの第ｎ世代ＳＶＯＬの列には、一致しているデータの内、最も古い世代のＳＶＯＬと共有していると設定する。
また、本実施例１〜３は、移行元ストレージ装置４Ａ内のスナップショット機能に関わるテーブルのデータ構造及びスナップショット機能の実現方法に依らない。
実施例３の構成によっても、実施例１、２と同様の効果を得ることができる。
【符号の説明】
【００８３】
２：ホスト計算機
３：管理計算機
４Ａ：移行元ストレージ装置
４Ｂ：移行先ストレージ装置
５：ＳＡＮ
６：ＬＡＮ
１０、２０、４０Ａ、４０Ｂ：ＣＰＵ
１１、２１、４１Ａ、４１Ｂ：メモリ
１２、２２、３０Ａ、３０Ｂ：記憶装置
１３、２３、４６Ａ、４６Ｂ：インタフェース制御部
１４、４４Ａ、４４Ｂ、４５Ａ、４５Ｂ：ポート
３１Ａ、３１Ｂ：コントロール部
４２Ａ、４２Ｂ：不揮発メモリ
４３Ａ、４３Ｂ：キャッシュメモリ
【図１】
2014112062.tif 000003
【図２Ａ】
2014112062.tif 000004
【図２Ｂ】
2014112062.tif 000005
【図３】
2014112062.tif 000006
【図４】
2014112062.tif 000007
【図５】
2014112062.tif 000008
【図６】
2014112062.tif 000009
【図７】
2014112062.tif 000010
【図８】
2014112062.tif 000011
【図９】
2014112062.tif 000012
【図１０】
2014112062.tif 000013
【図１１】
2014112062.tif 000014
【図１２】
2014112062.tif 000015
【図１３】
2014112062.tif 000016
【図１４】
2014112062.tif 000017
【図１５】
2014112062.tif 000018
【図１６Ａ】
2014112062.tif 000019
【図１６Ｂ】
2014112062.tif 000020
【図１７】
2014112062.tif 000021
【手続補正書】
【提出日】平成28年6月1日(2016.6.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現在のデータとともに過去のある時点のデータをｎ世代（ｎは３以上の整数）にわたって管理する他のストレージ装置に接続されるストレージ装置であって、
コントローラと、
少なくとも１の記憶装置とを有し、
前記コントローラは、
前記他のストレージ装置から、ある時点の第ｎ世代のデータと、前記第ｎ世代より過去の時点の第ｎ−１世代のデータと、前記第ｎ−１世代より過去の時点の第ｎ−２世代のデータを取得し、
前記第ｎ世代のデータを前記記憶装置に格納し、
前記第ｎ世代のデータと前記第ｎ−１世代のデータとの間の差分データの有無を判断する第１の判断を実行し、
前記第１の判断の結果から前記第ｎ世代に対する前記第ｎ−１世代のデータの第１差分情報を生成し、前記第ｎ−１世代のデータのうち前記第ｎ世代のデータと一致するデータは当該第ｎ世代のデータとデータ共有することを示す情報を生成して、前記記憶装置に格納し、
前記第１の判断を実行した後で、前記第ｎ−１世代のデータと前記第ｎ−２世代のデータとの間の差分データの有無を判断する第２の判断を実行し、
前記第２の判断の結果から前記第ｎ−１世代に対する前記第ｎ−２世代のデータの第２差分情報を生成し、前記第ｎ−２世代のデータのうち前記第ｎ世代と前記第ｎ−１世代の少なくともいずれか一つと一致するデータは最もｎに近い世代のデータとデータ共有することを示す情報を生成して、前記記憶装置に格納する
ことを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置であって、
前記コントローラは、
前記第ｎ世代より新しい第ｎ＋１世代のデータとして現在の状態のデータを取得する
ことを特徴とするストレージ装置。
【請求項３】
請求項１記載のストレージ装置であって、
前記コントローラは、
前記記憶装置が提供する記憶領域にプール領域を設け、
前記第ｎ−１世代のデータについて、
前記第ｎ世代と異なるデータについては前記第１差分情報に基づき前記プール領域に格納するとともに該格納したデータを参照するように管理し、
前記第ｎ−２世代のデータについて、
前記第ｎ−１世代と異なるデータについては前記第２差分情報に基づき前記プール領域に格納するとともに該格納したデータを参照するように管理する
ことを特徴とするストレージ装置。
【請求項４】
請求項３記載のストレージ装置であって、
前記コントローラは、
前記他のストレージ装置からのデータ取得中において該取得の対象となるデータに対する更新要求を受けた場合に、既に取得済みのデータに対しては当該更新要求によるデータ更新を実行し、
未移行のデータに対しては当該更新要求によるデータ更新を実行しない
ことを特徴とするストレージ装置。
【請求項５】
現在のデータとともに過去のある時点のデータをｎ世代（ｎは３以上の整数）にわたって管理する第１のストレージ装置から第２のストレージ装置へのデータ移行方法であって、
前記第１のストレージ装置から、ある時点の第ｎ世代のデータと、前記第ｎ世代より過去の時点の第ｎ−１世代のデータと、前記第ｎ−１世代より過去の時点の第ｎ−２世代のデータを取得する第１のステップと、
前記第ｎ世代のデータを前記第２のストレージ装置が備える記憶装置に格納する第２のステップと、
前記第ｎ世代のデータと前記第ｎ−１世代のデータとの間の差分データの有無を判断する第３のステップと、
前記第２のステップで前記差分データが有る場合には前記第ｎ世代に対する前記第ｎ−１世代のデータの第１差分情報を生成し、前記第ｎ−１世代のデータのうち前記第ｎ世代のデータと一致するデータは当該第ｎ世代のデータとデータ共有することを示す情報を生成し、保存する第４のステップと、
前記第２のステップを実行した以降で、前記第ｎ−１世代のデータと前記第ｎ−２世代のデータとの間の差分データの有無を判断する第５のステップと、
前記第５のステップで前記差分データが有る場合には前記第ｎ−１世代に対する前記第ｎ−２世代のデータの第２差分情報を生成し、前記第ｎ−２世代のデータのうち前記第ｎ世代と前記第ｎ−１世代の少なくともいずれか一つと一致するデータは最もｎに近い世代のデータとデータ共有することを示す情報を生成し、保存する第６のステップと
を有するデータ移行方法。
【請求項６】
請求項５記載のデータ移行方法であって、更に、
前記第ｎ世代より新しい第ｎ＋１世代のデータとして現在の状態のデータを取得する第７のステップ
を有するデータ移行方法。
【請求項７】
請求項５記載のデータ移行方法であって、更に、
前記第ｎ−１世代のデータの中で前記第ｎ世代と異なるデータについては前記第１差分情報に基づき第２のストレージ装置が備えるプール領域に格納する第８のステップと、
前記第ｎ−２世代のデータの中で前記第ｎ−１世代と異なるデータについては前記第２差分情報に基づき第２のストレージ装置が備えるプール領域に格納する第９のステップと
を有するデータ移行方法。
【請求項８】
請求項７記載のデータ移行方法であって、更に、
前記第１のストレージ装置からのデータ取得中において該取得の対象となるデータに対する更新要求を受けた場合に、当該更新要求によるデータ更新を未移行のデータではなく既に移行済みのデータに対してのみ実行する第１０のステップ
を有するデータ移行方法。
【国際調査報告】
2014112062.tif 000022
2014112062.tif 000023