(57)【要約】【課題】無停止でのストレージ間のデータ移行を実行する際に、移行元に特別な機能を必要であること、再転送が発生すること、およびストレージ間のデータ移行にかかる所要時間が増加すること。【解決手段】前述した問題を解決するために、データ移行制御システムは、１または複数の仮想計算機を実行する仮想計算機サーバと、データを格納するブロックを有する第１記憶手段および第２記憶手段と、を有するデータ移行制御システムであって、仮想計算機サーバは、仮想計算機それぞれによる第１記憶手段のブロックへの書込アクセスの頻度を測定する性能情報管理手段と、仮想計算機による書込アクセスを第１記憶手段と第２記憶手段の双方への書込アクセスに変換する書込アクセス制御手段と、を有し、第２記憶手段は、性能情報管理手段の測定結果に基づいてブロックのデータを第２記憶手段のブロックにコピーするデータ移行実行手段を有する。【選択図】      図１
2014010540.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の仮想計算機を実行する仮想計算機サーバと、
データを格納するブロックを有する第１記憶手段および第２記憶手段と、
を有するデータ移行制御システムであって、
仮想計算機サーバは、
前記仮想計算機それぞれによる前記第１記憶手段の前記ブロックへの書込アクセスの頻度を測定する性能情報管理手段と、前記仮想計算機による前記第１記憶手段への書込アクセスを前記第１記憶手段と前記第２記憶手段の双方への書込アクセスに変換する書込アクセス制御手段とを有し、
前記第２記憶手段は、
前記性能情報管理手段の測定結果に基づいて前記ブロックのデータを前記第２記憶手段の前記ブロックにコピーし、コピー中に書込アクセスの発生によりコンフリクト状態を検出し、前記コンフリクト状態を検出した場合には再度コピーするデータ移行実行手段を有する、
データ移行制御システム
【請求項２】
前記データ移行実行手段は、
前記測定の結果が相対的に小さい前記ブロックから優先して前記データ移行実行手段に該前記ブロックのデータを前記第２記憶手段へコピーし、コピー中に書込アクセスの発生によりコンフリクト状態を検出し、前記コンフリクト状態を検出した場合には再度コピーする、
請求項１記載のデータ移行制御システム
【請求項３】
前記書込アクセス制御手段はさらに、前記データ移行実行手段が前記ブロックのコピーを完了した以降は前記仮想計算機による前記第１記憶手段への書込アクセスを前記第２記憶手段へのアクセスに変換する、
請求項１または２記載のデータ移行制御システム
【請求項４】
前記書込アクセス制御手段はさらに、前記データ移行実行手段が前記ブロックのデータのコピーが開始して所定の時間、前記仮想計算機の該ブロックへの書込アクセスを遅延させることを特徴とする、
請求項１ないし３のいずれか１項記載のデータ移行制御システム
【請求項５】
前記第１記憶手段および前記第２記憶手段の前記ブロックには、前記仮想計算機のイメージデータが格納されていることを特徴とする、
請求項１ないし４のいずれか１項記載のデータ移行制御システム
【請求項６】
１または複数の仮想計算機を実行する仮想計算機サーバが、
前記仮想計算機それぞれによる第１記憶手段のブロックへの書込アクセスの頻度を測定し、前記仮想計算機による前記第１記憶手段への書込アクセスを前記第１記憶手段と第２記憶手段の双方への書込アクセスに変換し、
前記第２記憶手段が、
性能情報管理手段の測定結果に基づいて前記ブロックのデータを前記第２記憶手段の前記ブロックにコピーし、コピー中に書込アクセスの発生によりコンフリクト状態を検出し、前記コンフリクト状態を検出した場合には再度コピーする、
データ移行制御方法。
【請求項７】
１または複数の仮想計算機を実行する仮想計算機サーバに、
前記仮想計算機それぞれによる第１記憶手段のブロックへの書込アクセスの頻度を測定させ、前記仮想計算機による前記第１記憶手段への書込アクセスを前記第１記憶手段と第２記憶手段の双方への書込アクセスに変換させ、
前記第２記憶手段に、
性能情報管理手段の測定結果に基づいて前記ブロックのデータを前記第２記憶手段の前記ブロックにコピーさせ、コピー中に書込アクセスの発生によりコンフリクト状態を検出させ、前記コンフリクト状態を検出した場合には再度コピーさせる、
データ移行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージに保存された仮想マシン環境を、仮想マシンの停止を回避しつつ他ストレージに移動させるシステム、方法、およびプログラムに関する。
【背景技術】
【０００２】
計算機に関する仮想化とは、物理的な計算機である仮想計算機サーバが複数の論理的な仮想計算機を提供することで、ユーザが１個の物理的な計算機を独立した複数の論理的な計算機として利用する手法であり、今日では広く一般に用いられている。仮想計算機はそれぞれ異なる業務を独立して行うことができる。仮想化されたＩＴシステムでは、仮想計算機のＯＳやアプリケーションは、仮想ディスクにインストールされる場合がある。仮想ディスクとは、仮想計算機からは１個の物理ドライブとして認識され利用されるが、その実体は仮想計算機サーバ等のファイルシステムに保存されたファイルである等、論理的なものとして管理されるものである。多数の仮想ディスクを一括して管理するには、大容量かつ高速な保存メディアである専用のストレージを接続して利用することが適している。ストレージはさらに可用性、バックアップ性などに優れており、重要な基幹業務システムにおいては今日広く用いられている。
【０００３】
ところで、近年のＩＴシステムの大規模化に伴い仮想計算機はますます増える傾向にある。さらに業務にかかるデータ量も同様である。その結果ストレージの容量や速度についてひっ迫が従来よりも発生しやすいという問題がある。ひっ迫したストレージは、高速で大容量なものにリプレース等する必要が生じる。しかしながら一方でデータ量が大きくなることにより、ストレージをリプレース（移行）のために移行元であるストレージから移行先であるストレージにデータをコピーすることに要する時間が年々長くなってきているという問題もある。
【０００４】
ストレージを移行する方法の一つは、そのストレージを利用する仮想計算機等を停止させてデータを一旦静止させてから、ストレージ間でコピーを行う方法が考えられる。すなわち仮想化システムでは、仮想計算機を停止させた後、ストレージにあるデータを新しい移行先のストレージにコピーし、さらに仮想計算機の設定を変更して移行先のストレージを利用するようにして、最後に仮想計算機を再開させることで、移行が完了する。しかし仮想計算機が担う業務が停止するため、重要な基幹システムにおいては業務を停止させずにストレージを移行する技術が求められる。
【０００５】
【特許文献１】特開２０１０‐１２３０５５  特許文献１では、業務アプリケーションから送信されるアクセス要求の発行先を、移行元ストレージのデバイスノードから移行先ストレージのデバイスノードに切替える。そして、移行元ストレージのデータを移行先ストレージへと複製する。その一方で、データの複製中に発行された、ストレージ格納データに対する読込処理又は書込処理の要求を、デバイスノードに転送し、移行元ストレージに対して処理を実行する。さらに、移行元ストレージで実行された書込処理の対象データが既に複製済みのときに、その対象データを移行先ストレージへ再複製する。そして、データの複製が完了したときに、デバイスノードへのアクセス要求の転送を中止する。
【０００６】
他にも、従来のデータ移行の制御方法として、移行先ストレージから移行元ストレージにストレージ機能を利用してデータをコピーする制御が存在する。
【０００７】
【非特許文献１】ｉＳｔｏｒａｇｅ  ＤａｔａＭｉｇｒａｔｉｏｎ（ｈｔｔｐ：／／ｗｗｗ．ｎｅｃ．ｃｏ．ｊｐ／ｐｒｏｄｕｃｔｓ／ｉｓｔｏｒａｇｅ／ｐｒｏｄｕｃｔ／ｓａｎ／ｓｏｆｔｗａｒｅ／ｄｍ＿ｍ／ｉｎｄｅｘ．ｓｈｔｍｌ）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、これら本技術の実現に必要な追加機能は、移行元と移行先の両方のストレージにそれぞれ要求される。例えば移行元が対応する機能を有さない通常のストレージの場合、本技術を用いてデータ移行することはできず、他の方法がない限り無停止でのデータ移行が不可能である。したがってシステム構築時にこれら本技術に必要な機能を持つストレージが予め採用されている必要がある。
【０００９】
さらに、特許文献１の発明が実現する方式によると、コピー後の新たなデータ書き込みにより双方のストレージ間でデータ不整合の解消が必要である。したがって移行先ストレージが移行元ストレージからデータを再転送する必要があるが、ディスクに書込みを頻繁に行う仮想計算機については頻繁に再転送が発生することになり、データ移行の所要時間が増加する。また無理にコピーを進めてもストレージに余計な負荷がかかり他へ悪影響が起こりうる。
【００１０】
したがって、本発明が解決しようとする課題は、無停止でのストレージ間のデータ移行を実行する際に、移行元に特別な機能を必要であること、再転送が発生すること、およびストレージ間のデータ移行にかかる所要時間が増加することである。
【課題を解決するための手段】
【００１１】
前述した問題を解決するために、データ移行制御システムは、
１または複数の仮想計算機を実行する仮想計算機サーバと、
データを格納するブロックを有する第１記憶手段および第２記憶手段と、
を有するデータ移行制御システムであって、
仮想計算機サーバは、
仮想計算機それぞれによる第１記憶手段のブロックへの書込アクセスの頻度を測定する性能情報管理手段と、仮想計算機による第１記憶手段への書込アクセスを第１記憶手段と第２記憶手段の双方への書込アクセスに変換する書込アクセス制御手段と、
を有し、
第２記憶手段は、
性能情報管理手段の測定結果に基づいてブロックのデータを第２記憶手段のブロックにコピーし、コピー中に書込アクセスの発生によりコンフリクト状態を検出し、コンフリクト状態を検出した場合には再度コピーする、データ移行実行手段を有する。
【発明の効果】
【００１２】
本発明は、無停止でのストレージ間のデータ移行を実行する際に、移行元には特別な機能を必要とせず再転送の発生を従来よりも少なくし、ストレージ間のデータ移行にかかる所要時間を短縮する効果がある。
【００１３】
第一の理由は、本発明の主機能が移行先ストレージのみにあるためである。第二の理由は、仮想計算機の書込アクセス頻度の計測結果に基づいて、論理ディスクのうち低負荷・低使用頻度の仮想計算機が利用する仮想ディスクを保存する部分の領域から優先して移行するためである。第三の理由は、所要時間がかかる原因であった移行中のデータと競合する書込アクセスが引き起こしたデータ不整合を解消するためのデータ再転送が削減されるためである。
【００１４】
さらに、業務負荷のピークが異なる仮想計算機が複数格納されたストレージの論理ディスクを移行対象とする環境において、仮想計算機のレスポンスを低下させない効果もある。
【００１５】
理由はデータの待ち合わせを行わずストレージ間でデータの再転送を行うからである。
【発明を実施するための形態】
【００１６】
（第１の実施形態）
本発明の第１の実施形態の構成を、図１を用いて説明する。本実施形態におけるデータ移行制御システムは、第１記憶手段１００、第２記憶手段２００、仮想計算機サーバ４００、仮想計算機３００、及びネットワーク１を有する。
【００１７】
第１記憶手段は、ホストポート５０１を有する。
【００１８】
第２記憶手段は、ホストポート５０２、データ移行実行手段２０２を有する。
【００１９】
仮想計算機サーバ４００は、性能情報管理手段４０１と書込アクセス制御手段４０２を有する。
【００２０】
図示しない管理者は、第１記憶手段から第２記憶手段へ、データ移行を指示する。
【００２１】
仮想計算機３００は、仮想的なコンピュータであり、仮想デバイスを通じて仮想計算機サーバ４００が管理するデバイスに入出力（Ｉ／Ｏ）をすることができる。仮想計算機３００は、仮想ディスクを持ち、この仮想ディスクが有する記憶領域にＯＳやアプリケーションをインストールし、また業務データ等を保存し、業務を行うことができる。仮想ディスクの実体は例えば通常のファイルである。仮想ディスクは、本実施形態では、以後述べる仮想計算機サーバ４００に接続する外部の記憶領域に保持され、仮想デバイスを通じて仮想計算機３００からＩ／Ｏをされる。仮想ディスクは、仮想計算機サーバ４００にとっては通常のファイルと同等に扱うことができるので、コピーや移動や削除の対象となることができる。なお、仮想ディスクは、通常は仮想計算機３００に対して１対１に割り当てられ、マウントされ、占有されるものであり、複数の仮想計算機３００に同時にマウントされ共有され使用されることはないものとする。即ち仮想計算機が、他の仮想計算機を介して当該他の仮想計算機３００ａに割り当てられている仮想ディスクを、仮想ネットワークを通じて利用する場合は、当該他の仮想計算機３００ａが仮想ディスクを利用しているのであって、当該仮想計算機３００が仮想ディスクを利用しているわけではない。仮想計算機３００は複数個（例えば仮想計算機３００から仮想計算機３００ｎまで）存在してもよい。
【００２２】
仮想計算機サーバ４００は、仮想計算機３００を１個ないし複数個同時に実行することができる機能を持つサーバである。仮想計算機サーバ４００はハイパバイザという仮想計算機３００を実行するためのソフトウェアを有している。仮想計算機３００によるデバイスへのＩ／Ｏは原則としてハイパバイザに管理され、ハイパバイザが仮想計算機３００に提供する仮想的なハードウェア環境を通じてなされる。したがってこの場合、ハイパバイザが、仮想計算機３００に接続されたストレージに保存される仮想ディスクへの、仮想計算機３００による読み書きＩ／Ｏも仲介する。なお仮想計算機３００のＩ／Ｏがハイパバイザに管理されない方式も存在する。
【００２３】
性能情報管理手段４０１は、仮想計算機３００による仮想ディスクへの書込アクセス頻度（書込アクセス回数／秒、Ｉ／Ｏ頻度ともいう）を、仮想計算機３００ごとに監視、取得する。取得した書き込みアクセス頻度の情報は、リクエストに応じて提供される。図２に一例を示す。表４０１ａは仮想計算機３００ごとの書込アクセスの頻度を表している。ここで得られる情報は、後述する優先度管理テーブル２０３において、書込アクセス回数／秒が小さい順にその仮想計算機３００の優先度を高く設定するために用いられる。
【００２４】
書込アクセス制御手段４０２は、仮想計算機サーバ４００にストレージである記憶手段が複数接続されていた場合に、その中から指定された記憶手段について、仮想計算機３００による当該一の記憶手段への書込アクセスを、当該一及び他の記憶手段の双方、又は他の記憶手段のみのいずれかの書込アクセスに変換する。当該一の記憶手段の書込みが行われたブロックに対応する他の記憶手段のブロックを特定するため、本実施形態では、記憶手段はそれぞれ同じサイズの論理ボリュームを有する。あるいは記憶手段間のブロック対応関係を示す表を別に有し、適宜参照できるようにしてもよい。
【００２５】
本手段の目的の一つは、移行完了後のブロックのデータ一貫性の維持である。つまり本手段は、移行元と移行先の双方の記憶手段のデータが両方とも同じように更新されるように、移行元への書込みを移行元と移行先の双方の書込みに変換ためのものとして機能する。すなわち、本願において、仮想計算機３００による第１記憶手段１００への書込アクセスは、第１記憶手段１００にあるブロックに対して任意データを当該ブロックの任意の位置に上書きするとともに、その任意データを移行先の記憶手段の当該ブロックに対応するブロックの同位置に上書きする。両方の記憶手段から書き込み完了が返却されたことを確認して仮想計算機３００へ書き込み成功を返却する。いったんコピーが終わった移行元と移行先のブロックは、それぞれのブロックに同一データが書き込まれ一貫性が維持される。移行が完了したブロックについては以後データの再転送は不要となり性能向上に寄与する。
【００２６】
本手段のもう一つの目的は、すべてのブロックについてコピー完了後の記憶手段の切り替えである。すなわち移行完了前は移行元と移行先の双方に書込アクセスをし、移行完了後は移行先の記憶手段にのみ書込アクセスをする。そして移行元の記憶手段には書込アクセスがなされないので取り外してもよい（ＩＯエラーにならない）ことになる。これにより、移行を完全に完了させることができる。
【００２７】
第１記憶手段１００と第２記憶手段２００はそれぞれ、記憶媒体を有する、いわゆるストレージである。各記憶手段はそれが有する記憶領域を、より小さな論理ディスク１０１、２０１を単位として論理的に分割されている。論理ディスク１０１、２０１は各々ブロックに細分化され、ブロック単位でデータを保存管理する。ブロックはすべて同一サイズの固定長である。ブロックにはアドレスが付与されている。さらに、第１記憶手段１００と第２記憶手段２００はそれぞれ１つ以上のＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）等を接続するホストポート５０１、５０２を有しており、このホストポート５０１、５０２を通じてコンピュータ等は前述のブロックのデータにアクセス（読み取り、書き込み）をすることができる。記憶媒体は、ハードディスクに限られず、例えばＳＳＤなどであってもよい。本実施形態では、第１記憶手段１００と第２記憶手段２００は仮想計算機サーバ４００に接続され、仮想計算機３００の有する仮想ディスクは第１記憶手段１００の論理ディスク１０１に保存されている。
【００２８】
（第２の実施形態）
本発明の第２の実施形態の構成を、図３を用いて説明する。本実施形態におけるデータ移行制御システムは、第１記憶手段１００、第２記憶手段２００、仮想計算機サーバ４００、仮想計算機３００、データ移行制御手段３２０、及びネットワーク１を有する。
【００２９】
第１記憶手段は、ホストポート５０１を有する。
【００３０】
第２記憶手段は、ホストポート５０２、データ移行実行手段２０２、優先度管理テーブル２０３、データ移行ペア管理テーブル２０４、データ移行差分マップ２０５、を有する。
【００３１】
仮想計算機サーバ４００は、性能情報管理手段４０１と書込アクセス制御手段４０２を有する。
【００３２】
図示しない管理者は、第１記憶手段１００から第２記憶手段２００へ、データ移行を指示する。
【００３３】
データ移行実行手段２０２は、優先度管理テーブル２０３の示す優先度が高い仮想計算機３００から順番に、その仮想計算機３００が占有する仮想ディスクが有するブロックを、データ移行ペア管理テーブル２０４が示す移行先の記憶装置にコピーする。同一の仮想ディスクが占有する複数のブロック間に優先順位はないが、後述のデータ移行差分マップ２０５により、未コピーのものがコピーされる。さらにブロックのコピー中にそのブロックに書込アクセスの発生があった時はそのブロックについてコンフリクトである旨を検出し、データ移行差分マップ２０５におけるそのブロックの状態を「ＣＯＮＦＬＩＣＴ」にし、以後適切にデータを再コピーされるようにする。再コピーが必要になる理由は、コピーは移行元の記憶手段のブロックからデータを読み取ってバッファに一時記憶しそれを移行先の記憶手段のブロックに書込むことから構成されるので、コピーの最中にストレージの外部から書込アクセスがあるとコピーバッファにあるデータが古くなってしまうためである。なおコピーは記憶手段に備わるホストポート５０１、５０２を介して直接行われるようにしてもよい。この場合仮想計算機サーバ４００がデータ移行のためのデータ読み書きをしないので、当該サーバがボトルネックになることは無く、スループットが向上することが考えられる。
【００３４】
データ移行ペア管理テーブル２０４は、移行元である第１記憶手段１００のブロック毎に、そのアドレスのブロックを占有する仮想ディスクを使用する仮想計算機と、データ移行の開始が設定された後においては移行元と移行先それぞれの記憶手段及び論理ディスクと、及び移行の開始を示す移行フラグとをそれぞれ有する。移行フラグは移行対象であるか否かを示す。
【００３５】
データ移行差分マップ２０５は、ブロック毎に、前述のデータ移行実行手段２０２がコピーを完了させたか否か、あるいはコピーを完了したがデータが不一致であるか否かを示す状態を保持する領域である。データ移行実行手段２０２はこの領域を参照し、移行が開始してないか、あるいはデータが不一致であるブロックを、前述の順序に従いコピーする。データ移行差分マップ２０５はデータ移行ペア管理テーブル２０４の生成後に、移行の対象であるブロックを列挙することにより生成される。図４の表２０５ａに初期状態を例示する。ブロックはアドレス０Ｘ００００００００から０ＸＦＦＦＦＦ０００まであり、各アドレスがブロックを参照する。ブロックはその移行のステージごとに状態が決定し、本テーブルでブロック毎に管理されている。図５はブロックの状態遷移を表す。ＮＵＬＬは移行が開始していない状態を表し、移行対象である場合にはコピーを要する。ＭＩＧＲＡＴＩＮＧはコピーが開始し、まだ完了していないことを表す。ＲＥＡＤＹはコピーが完了し、そのブロックは移行が完了したことを表す。ＣＯＮＦＬＩＣＴはコピーの最中にストレージの外部から書込アクセスがあり、コピーバッファにあるデータが古くなってしまったから再転送を要することを意味する。ブロックの初期状態はＮＵＬＬである。コピーが始まるとＭＩＧＲＡＴＩＮＧに移行する。仮想計算機３００からの書込アクセスがなければデータ移行が完了した状態であるＲＥＡＤＹに遷移する。ＭＩＧＲＡＴＩＮＧの状態で仮想計算機３００から書込アクセスが発生した場合、データの整合性を確保するため、ＣＯＮＦＬＩＣＴに遷移する。ＣＯＮＦＬＩＣＴの状態で再度データ移行のデータ転送を行った場合ＭＩＧＲＡＴＩＮＧの状態に遷移し、ゲストＯＳからの書込アクセスがなければデータ移行が完了した状態であるＲＥＡＤＹに遷移する。データ移行が行われていない状態であるＮＵＬＬの領域に書込アクセスが書き込まれた場合、書込アクセス制御手段４０２により移行元と移行先のデータが一致したかのように思え状態をＲＥＡＤＹにしてもよさそうであるが、本実施形態ではＲＥＡＤＹには移行させない。なぜならば、書き込んだデータのサイズが、１つのマップアドレスであらわされるブロックのサイズよりも小さいと未書込みの領域が残存しておりその部分においてはコピーが必要だからである。
【００３６】
優先度管理テーブル２０３は前述の性能情報管理手段４０１が、仮想計算機３００ごとに計測した書込アクセス頻度に基づいて、その値が小さい仮想計算機３００の優先順位が高くなるように設定されている。図６の表２０３ａ一例を示す。優先度管理テーブル２０３は、例えば外部からの要求に応じてテーブルの内容を更新してもよいし、一定時間間隔で前述の計測を行わせ、それに基づいて自身のテーブルを更新するようにしてもよい。計測は例えば短い場合は１秒間隔や、０．１秒間隔であってもよいし、長い場合は１時間間隔や１日間隔であってもよい。計測結果は、記憶手段毎や論理ディスク毎にさらに分類されていてもよい。管理者は、計測の負荷、仮想計算機３００の数、書込アクセス頻度の変動が発生する頻度等に応じて、適切な間隔を選択すべきであり、これにより本願発明の実施をより適した形で実施できるようになる。
【００３７】
データ移行制御手段３２０は、データ移行の開始を本システムの管理者から受け付けるために設けられたインタフェース、及び開始に付随する初期化等を各手段に行わせることを担当する。データ移行制御手段３２０がデータ移行の開始を受け付けると、データ移行差分マップ２０５の生成、更新等をし、データ移行実行手段２０２にデータ移行開始を指示する。
【００３８】
データ移行制御手段３２０の動作について、図８のフローチャートＳ１００を用いて説明する。
【００３９】
管理者は、移行元と移行先を指定し、データ移行制御手段３２０にデータ移行の開始を指示する（Ｓ１００）。本実施形態において、移行元と移行先は管理者が決定する。本実施形態では移行元は第１記憶手段１００、移行先は第２記憶手段２００である。第１記憶手段１００の対象となる論理ディスクは１、第２記憶手段２００の対象となる論理ディスクは３である。管理者は、本ステップの実施を、図示しない指示画面を介して行ってもよいし、コマンドを入力することにより実施してもよい。本実施形態において、移行元と移行先に指定された論理ディスクは、同一のブロックサイズ、同一のブロック数とされているものとする。また、仮想計算機３００の停止や、記憶手段の特別なモード切替は本実施形態において必須ではない。したがってその仮想計算機３００と記憶手段により実現される業務の停止も原則として発生しない。但し、後に述べる再転送の多発が懸念される場合には、好適な時間帯、すなわち業務負荷が低く、記憶手段への単位時間当たりの書込アクセス回数が少ない時間帯を選択する方が、再転送の回数を減少させる効果が得られて移行の所要時間短縮などで利点がある場合がある。
【００４０】
データ移行制御手段３２０はデータ移行ペア管理テーブル２０４を生成する（Ｓ１０１）。図７の表２０４ａを参照して生成方法について説明する。移行の対象となる第１記憶手段１００のブロック毎に、そのブロックに格納される仮想ディスクと、それを使用する仮想計算機３００を特定する。仮想計算機３００は、移行元仮想計算機の列に格納される。なお、値がマイナス（−）になっているのは、そのブロックに仮想ディスクが格納されていないことを示す。例えば仮想ディスクではないデータが格納されているときは、値がマイナスであってもコピーするようにしてもよいし、またデータは格納されていないときはコピーしないようにしてもよい。さらに、データ移行対象の移行フラグを１に変更し、移行対象であることをこの表を参照するものが認識しうる状態にする。さらにデータ移行制御手段３２０は、移行の対象であるブロックを列挙することによりデータ移行差分マップ２０５も生成する。データ移行差分マップ２０５のすべてのブロックの状態はＮＵＬＬであるとする。
【００４１】
データ移行実行手段２０２は、データ移行ペア管理テーブル２０４を参照し、どの記憶手段のどの論理ディスクに対して、仮想計算機３００からの書込アクセスを行えばいいかを特定し、その特定結果に基づき書込アクセス制御手段４０２を動作させる（Ｓ１０２）。本願においては、仮想計算機３００から第１記憶手段１００への書込アクセスを、第２記憶手段２００における対応するブロックに対しても同様に行い、第１記憶手段１００と第２記憶手段２００の間の、移行が完了しているブロックのデータの一貫性を維持させる。
【００４２】
データ移行実行手段２０２は、優先度管理テーブル２０３を参照し仮想計算機３００のデータ移行の優先度を取得し、優先度の高い順に仮想計算機３００を特定する（Ｓ１０３）。優先度管理テーブル２０３は、例えば外部から参照されたときに更新されるようにしてもよいし、例えば一定時間間隔で更新されるようにしてもよい。いずれにしても、書込アクセス頻度の計測結果に基づく優先度が各仮想計算機３００に与えられるので、データ移行実行手段２０２はそれを取得する。図７の例において「仮想計算機５」の書込アクセス頻度がもっとも低く、これにより優先度が最も高い。
【００４３】
データ移行実行手段２０２は、データ移行ペア管理テーブル２０４に基づき、Ｓ１０３で特定した仮想計算機３００が利用する仮想ディスクが格納されているブロック群の一覧を取得し、データ移行差分マップ２０５を参照して前述のブロック群の中からさらに移行をすべきブロックを任意の数だけ選択し、選択結果に基づいて同マップを更新する（Ｓ１０４）。移行すべきブロックとは、仮想計算機３００が利用する仮想ディスクが格納されたブロック群のなかで、データ移行差分マップ２０５における状態がＮＵＬＬまたはＣＯＮＦＬＩＣＴのブロックである。ＮＵＬＬとはコピーがまだなされてない状態を意味する。ＣＯＮＦＬＩＣＴのブロックは前回のコピーにより再転送が必要となった状態を意味する。なお、記憶手段の性能や、仮想計算機３００による書込アクセスの頻度によっては、一度に複数のブロックを選択するようにしてもよい。そして、同マップにおけるそれらブロックの状態を、ＭＩＧＲＡＴＩＮＧに変更する。なお一度に複数のブロックをＭＩＧＲＡＴＩＮＧにすれば、処理の効率は向上するが、一方で仮想計算機３００による書込アクセスを拾いやすくなり、再転送を要するブロックの発生頻度が高くなると考えられる。状態の変更により、同ブロックは移行中であることを示す。図７の例において、「仮想計算機５」の占有するのは「０Ｘ２Ｆ００００００」以降の領域であるので、データ移行差分マップ２０５における対応するブロックの状態を参照し、ＮＵＬＬまたはＣＯＮＦＬＩＣＴのブロックを任意の数だけ選択し、ＭＩＧＲＡＴＩＮＧに遷移させる。
【００４４】
データ移行実行手段２０２は、前のステップでＭＩＧＲＡＴＩＮＧ状態に遷移したブロックについてデータ移行ペア管理テーブル２０４に基づきデータをコピーする。コピーは具体的には、データ移行実行手段２０２が一旦コピー対象のブロックのデータを読み取り、図示しないバッファに蓄積し、その後移行先の対応するブロックに対してそのバッファに蓄積したデータを書込むことで行われる。
【００４５】
データ移行実行手段２０２は、コピー中のそのブロックに仮想計算機３００からの書込アクセスがされたかどうかをチェックする。具体的な方法は記憶手段のアーキテクチャにより決定するがその方法の一例を挙げれば、データ移行実行手段２０２がコピーを試みる際データ移行差分マップ２０５において状態をＭＩＧＲＡＴＩＮＧに変更したブロックのアドレスを、メモリ上若しくはレジスタ上のチェック用の変数領域に、コピーが完了するまで保持させ、仮想計算機３００からの書込アクセスによりデータとともに書込先のアドレスを受け取ったコントローラは、保持している変数の値と比較し、両者が一致した場合はデータ移行実行手段２０２に対しそのブロックが「ＣＯＮＦＬＩＣＴ」となった旨を検出し通知するようにしてもよい。ＣＯＮＦＬＩＣＴ状態になったために転送されることになったブロックのコピー中に書込アクセスが発生した場合にもそれは同様に検出される。
【００４６】
データ移行実行手段２０２は、そのブロックのコピーが完了するまでにそのブロックに対して書込アクセスが検出されなかった場合（Ｓ１０６の結果がＹＥＳの場合）は、データ移行差分マップ２０５の状態をＲＥＡＤＹに変更する。これによりそのブロックは移行が完了する。以後書込アクセスがあっても、書込アクセス制御手段４０２により、第１記憶手段１００と第２記憶手段２００には同一のデータが書き込まれることになるので、これ以上のコピーは不要である。
【００４７】
データ移行実行手段２０２は、そのブロックのコピーが完了するまでにそのブロックに対して書込アクセスが検出された場合（Ｓ１０６の結果がＮＯの場合）は、データ移行差分マップ２０５の状態をＣＯＮＦＬＩＣＴに変更する。ＣＯＮＦＬＩＣＴとはすなわち第１記憶手段１００と第２記憶手段２００の間にデータの不一致が発生した恐れがあることを意味する。実際にデータが不一致となったか否かを確認するまでもなく、データ移行実行手段２０２は再転送を要すると判断する。
その後、フローはＳ１０３に戻る。但し、優先度管理テーブル２０３が一定時間で更新されるようになっている場合、かつ前回そのテーブルを参照していからその一定時間が経過していないときには、フローはＳ１０４に戻る。
【００４８】
データ移行実行手段２０２は、データ移行差分マップ２０５を参照し、データ移行差分マップ２０５の移行状態がすべてＲＥＡＤＹであるか否かを確認する。確認の方法としては、すべてのブロックの数を状態毎にカウントする方法の他、状態毎にその状態に該当するブロックの数を管理する変数をマップとは別に設けてデータ移行差分マップ２０５に対する書込みがなされた際にその関数の呼び出しに伴いカウントを増減させるようにしてもよい。
【００４９】
データ移行差分マップ２０５の状態がすべてＲＥＡＤＹであれば（Ｓ１０９がＹＥＳ）、  データ移行実行手段２０２は、データ移行制御手段３２０に対してデータ移行の完了通知をする（Ｓ１１０）。これにより第１記憶手段１００から第２記憶手段２００への、仮想計算機３００の動作を停止させることなく、指示された論理ディスク１０１のデータの移行が完了する。データ移行差分マップ２０５の状態がすべてＲＥＡＤＹでない場合（Ｓ１０９がＮＯ）、残りのブロックについてコピーが必要であるので、Ｓ１０３に戻ってデータ移行差分マップ２０５がすべてＲＥＡＤＹになるまで繰り返す。なお優先度管理テーブル２０３が更新されていない場合には優先度を再度取得する利益がないのでその場合にはＳ１０４に戻るようにしても構わない。
【００５０】
（第２の実施形態による効果）
本実施形態により、管理者は、業務負荷のピークが異なる仮想計算機３００が複数格納されたストレージの論理ディスクを移行対象とする環境において、仮想計算機３００のレスポンスを低下させず、かつ移行の所要時間を短縮させることができる。仮想計算機３００の書込アクセス頻度を計測結果に基づいて、低頻度の仮想計算機３００が利用する仮想ディスクが割り当てられた領域から優先して移行することで、移行中のデータと競合する書込アクセスが引き起こしたデータ不整合を解消するためのデータ再転送を削減することができるからである。
【００５１】
さらに、本実施形態は第２記憶手段２００と仮想計算機サーバ４００にのみ特殊な機能を有し、第１記憶手段１００に特別な機能を必要としない。その理由は、仮想計算機サーバ４００が書込アクセス制御手段４０２を有し、データ転送中の競合（ＣＯＮＦＬＩＣＴ）の検出が第２記憶手段２００で検出可能になったからである。この効果により予め移行機能を備えた第１記憶手段１００を導入していないシステムにおいても、仮想計算機３００を停止させずにストレージの移行をすることが可能となる。
【００５２】
（第３の実施形態）
本発明の第２の実施形態は、第１の実施形態のすべての構成を引き継ぐ。異なる点は、書込アクセス制御手段４０２はさらに、データ移行実行手段２０２がブロックのデータのコピーが開始して所定の時間、仮想計算機３００の当該ブロックへの書込アクセスを遅延させることを特徴とする。本実施形態においても、優先度管理テーブル２０３により書込アクセスの少ない仮想計算機３００の有する仮想ディスクに対応するブロックから優先して移行を実施することについても共通している。しかしながら最も書込アクセスの少ない仮想計算機３００においても頻繁に書込アクセスが発生している状況を想定すると、データの再転送が頻発してしまうおそれがある。そこで仮想計算機３００の書込アクセスを遅延させることでデータ移行差分マップ２０５におけるＣＯＮＦＬＩＣＴ状態になるブロックの発生を抑える必要が生じる。
【００５３】
この問題点に対し書込アクセス制御手段４０２は、仮想計算機３００からの書込アクセスの要求があった際には、即座に記憶手段に書込アクセスを行わずに任意の時間ウェイトをし、実際に記憶手段に書込アクセスを実施することを内部で遅らせる。これにより書込アクセス回数／秒が低下し、コンフリクトの可能性が低減することにより、再転送の機会が減少することが期待できる。ストレージの応答が遅延することに起因するアプリケーションの応答遅延が発生するため、遅延量は適切な量に設定しなければならない点に留意が必要である。
【００５４】
結果として再転送の頻度が低下し記憶手段同士の不要な転送を抑えられる。そしてストレージの負荷が軽減できることで、一定の条件が整ったときには全体としてサービスレベルが低下することのトレードオフで、所要時間の短縮が図れることになる。なお遅延は一定時間であってもよいし、あるいは移行によるコピーが完了するまで遅延させるようにしてもよい。遅延を挿入する時間帯があらかじめ決められていてもよいし、VMへの処理リクエストの多寡に基づいて決められてもよい。
【００５５】
（第３の実施形態による効果）
本実施形態により、仮想計算機３００の書込アクセスが一向に下がらない環境においても、本発明をより強制的に効率よく実施することができる。仮想計算機３００の書込アクセスを遅延させることにより、移行中のブロックへの書込が発生しにくくなり、競合（ＣＯＮＦＬＩＣＴ）発生による再転送の頻度をより少なくすることができ、再転送のための記憶装置間のデータ転送が減ることになるためである。
【図面の簡単な説明】
【００５６】
【図１】第１の実施形態における構成の概略図である。
【図２】性能情報管理手段の具体例である。
【図３】第２の実施形態における構成の概略図である。
【図４】データ移行差分マップの具体例である。
【図５】データ移行差分マップにおける状態遷移を示す図である。
【図６】優先度管理テーブルの具体例である。
【図７】データ移行ペア管理テーブルの具体例である。
【図８】処理の流れを示すフローチャートである。
【符号の説明】
【００５７】
１      ネットワーク
１００  第１記憶手段
１０１  論理ディスク
１０２  仮想ディスク
２００  第２記憶手段
２０１  論理ディスク
２０２  データ移行実行手段
２０３  優先度管理テーブル
２０４  データ移行ペア管理テーブル
２０５  データ移行差分マップ
３００  仮想計算機
３２０  データ移行制御手段
４００  仮想計算機サーバ
４０１  性能情報管理手段
４０２  書込アクセス制御手段
５０１  ホストポート
５０２  ホストポート
【図１】
2014010540.tif 000003
【図２】
2014010540.tif 000004
【図３】
2014010540.tif 000005
【図４】
2014010540.tif 000006
【図５】
2014010540.tif 000007
【図６】
2014010540.tif 000008
【図７】
2014010540.tif 000009
【図８】
2014010540.tif 000010