(57)【特許請求の範囲】
【請求項１】
第１の物理サーバと、第１のストレージ装置と、それらを接続する第１のネットワークと、を有する第１のシステムと、
第２の物理サーバと、第２のストレージ装置と、それらを接続する第２のネットワークと、を有する第２のシステムと、
前記第１のシステムと前記第２のシステムとを管理する管理計算機と、
を備える計算機システムであって、
前記管理計算機は、
前記第２の物理サーバから前記第１の物理サーバへ移行されるべき仮想サーバを指定する情報を受け付けると、前記仮想サーバが使用する記憶領域を格納するとともに、前記第２のストレージ装置に存在する移行対象ボリュームを特定し、
前記第２のストレージ装置と前記第１のストレージ装置間の外部接続機能によって、前記第１のストレージ装置に、前記移行対象ボリュームに関連付けて前記移行対象ボリュームの移行先となる移行先ボリュームを設定し、
前記仮想サーバと前記移行対象ボリュームに格納されている前記記憶領域との接続関係を特定し、
前記仮想サーバを前記第２の物理サーバから第１の物理サーバに移行させる際、前記移行先ボリュームに前記接続関係を設定し、
前記管理計算機は、さらに、
前記第１の物理サーバと前記第２の物理サーバ夫々の構成情報を管理する第１の管理プログラムと、
前記第１のストレージ装置と前記第２のストレージ装置夫々の構成情報を管理する第２の管理プログラムと、
を備え、
前記第１の管理プログラムが前記第２の物理サーバから取得した構成情報であって、前記第２の物理サーバが前記移行対象ボリュームに接続する際の当該移行対象ボリュームの位置情報として、前記第２の物理サーバのポートのポート情報と、当該ポートを前記移行対象ボリュームに対応させるＬＵＮとを含む、第１の構成情報における前記ポート情報及び前記ＬＵＮと、前記第２の管理プログラムが前記第２のストレージ装置から取得した構成情報であって、前記第２の物理サーバを前記第２のストレージ装置にアクセス可能にするための第１のドメイン情報として、前記ポート情報と前記ＬＵＮとを含む、第２の構成情報における前記ポート情報及び前記ＬＵＮと、を照合することにより、前記移行対象ボリュームの識別情報を取得し、
前記第１の管理プログラムは、前記第１の物理サーバから、前記第１の物理サーバが使用するポートのポート情報を含む第３の構成情報を取得し、
前記第２の管理プログラムは、前記第１のストレージ装置から、前記第１の物理サーバと前記第２の物理サーバとを含む複数のサーバが使用する各ポートのポート名と、当該ポートに提供する前記第１のストレージ装置のＬＵＮの情報とを有する第２のドメイン情報を含む第４の構成情報を取得し、
前記管理計算機は、
第３の構成情報から前記第１の物理サーバが使用するポート名を取得し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれるか否かについて前記第２のドメイン情報が有するポート名と比較し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれる場合、前記第２のドメイン情報に含まれる全てのボリューム情報と重複しないようにボリュームごとに一意なＬＵＮを設定して前記移行先ボリュームを定義し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれない場合、前記第１の物理サーバが使用するポートに接続された前記第１のストレージ装置のポートに前記移行先ボリュームを定義する、
計算機システム。
【請求項２】
第１のストレージ装置と前記第２のストレージ装置とがファイバチャネルインタフェースで接続され、
前記管理計算機は、
前記第１のストレージ装置に仮想ボリュームを前記移行先ボリュームとして設定し、
前記移行先ボリュームに前記移行対象ボリュームをマッピングすることにより、前記移行対象ボリュームに前記移行先ボリュームを関連付け、
前記第２の物理サーバの前記仮想サーバと前記移行対象ボリュームとの接続を切断し、
前記第１の物理サーバから前記移行先ボリュームへのパスを設定し、
前記移行先ボリュームに前記接続関係を持つように前記記憶領域を前記第１の物理サーバの前記仮想サーバに接続し、
前記第１の物理サーバの前記仮想サーバが前記移行先ボリュームにアクセスすることにより、前記移行対象ボリュームの前記記憶領域にアクセスできるにする、請求項１記載の計算機システム。
【請求項３】
前記管理計算機は、前記第１の物理サーバに前記第２の物理サーバの前記仮想サーバを作成する、請求項２記載の計算機システム。
【請求項４】
前記管理計算機は、前記第１のストレージ装置に前記移行先ボリュームとは異なる他ボリュームを設定し、
当該移行先ボリュームを前記第１のストレージ装置のコピー機能によって前記他ボリュームにコピーし、
前記他ボリュームに前記第１の物理サーバの前記仮想サーバを接続する、請求項２記載の計算機システム。
【請求項５】
前記第１の物理サーバはサーバを仮想化する第１の仮想化プログラムを有し、
前記第２の物理サーバはサーバを仮想化する第２の仮想化プログラムを有し、
前記管理計算機は、
前記第１の仮想化プログラムと前記第２の仮想化プログラムとに、前記移行対象ボリュームを共有させ、
前記仮想サーバを前記第２の物理サーバから前記第１の物理サーバに無停止で移行し、
前記第２の仮想化プログラムからの前記移行対象ボリュームに対する前記共有を解除し、
前記第２の物理サーバから前記移行対象ボリュームに対するアクセスを遮断し、
前記移行対象ボリュームと前記移行先ボリュームに同一の識別情報を設定する、請求項２記載の計算機システム。
【請求項６】
前記管理計算機は、
前記第２の物理サーバが前記移行対象ボリュームにアクセスする際、前記第１の物理サーバも前記移行先ボリュームを介して前記移行対象ボリュームにアクセスできるようにするとともに、前記第１のストレージ装置の前記移行対象ボリュームに対するキャッシュデータを無効化する、請求項５記載の計算機システム。
【請求項７】
前記管理計算機は、
前記移行対象ボリュームが前記第２の物理サーバへの接続に使用していたポート名を前記移行先ボリュームに対するポートに引き継がせ、
前記移行対象ボリュームの識別情報を移行先ボリュームに複写し、
前記第２の物理サーバを前記移行先ボリュームに接続するパスを前記第２の物理サーバと前記移行対象ボリュームとを接続するパスの交替パスとして設定し、
前記第２の物理サーバを前記移行先ボリュームに接続するパスが確立された段階で、前記第２の物理サーバと前記移行対象ボリュームとのパスを削除し
前記仮想サーバを前記第２の物理サーバから前記第１の物理サーバに無停止で移行する、請求項２記載の計算機システム。
【請求項８】
前記第１の物理サーバはサーバを仮想化する第１の仮想化プログラムを有し、
前記第２の物理サーバはサーバを仮想化する第２の仮想化プログラムを有し、
前記管理計算機は、
前記第１の仮想化プログラムと前記第２の仮想化プログラムとに、前記移行先ボリュームを共有させ、
前記第２の仮想化プログラムからの前記移行先ボリュームに対する前記共有を解除し、
前記第２の物理サーバから前記移行先ボリュームに対するアクセスを遮断する、請求項７記載の計算機システム。
【請求項９】
前記第２の物理サーバと前記第２のストレージ装置とを接続するネットワークと前記第１の物理サーバと前記第１のストレージ装置とを接続するネットワークとを相互接続する通信路を有する、請求項７記載の計算機システム。
【請求項１０】
前記管理計算機は、
前記第２の物理サーバに前記移行先ボリュームを接続するパスを設定し、
前記第２の物理サーバのサーバ仮想化プログラムに前記移行先ボリュームを認識させ、この際、当該サーバ仮想化プログラムは、前記移行先ボリュームに前記移行対象ボリュームとは異なる識別子が設定されていることから、当該移行先ボリュームを前記移行対象ボリュームとは異なるボリュームと認識し、さらに、当該移行先ボリュームの前記仮想サーバが使用する記憶領域の存在が隠された空のボリュームとして認識するものであり、
前記第２の物理サーバに、前記移行対象ボリュームの前記記憶領域を前記移行対象ボリュームへコピーすることを要求し、この際、前記第２のストレージ装置は、前記記憶領域を前記移行対象ボリュームから前記移行先ボリュームにコピーすることなく、前記第２の物理サーバに対して前記コピーの要求に対する応答を行い、前記記憶領域を前記移行対象ボリュームから前記移行先ボリュームに移行されたように前記第２の物理サーバに認識させる、請求項２記載の計算機システム。
【請求項１１】
前記移行対象ボリュームがスナップショットである場合、前記管理計算機は、
前記スナップショットの親ボリュームを前記移行対象ボリュームとともに移行する、請求項１記載の計算機システム。
【請求項１２】
第１の物理サーバと、第１のストレージ装置と、それらを接続する第１のネットワークと、を有する第１のシステムと、
第２の物理サーバと、第２のストレージ装置と、それらを接続する第２のネットワークと、を有する第２のシステムと、
前記第１のシステムと前記第２のシステムとを管理する管理計算機と、
を備え、前記第２の物理サーバから前記第１の物理サーバに仮想サーバを移行することに合わせて、前記第１のストレージ装置と前記第２のストレージ装置との間の外部接続機能により、前記仮想サーバが使用する記憶領域を前記第２のストレージ装置から前記第１のストレージ装置に移行する、計算機システムにおける仮想サーバの移行制御方法であって、
前記管理計算機は、
前記第２の物理サーバから前記第１の物理サーバへ移行されるべき前記仮想サーバを指定する情報を受け付けると、前記仮想サーバが使用する記憶領域を格納するとともに、前記第２のストレージ装置に存在する移行対象ボリュームを特定し、
前記第２のストレージ装置と前記第１のストレージ装置間の外部接続機能によって、前記第１のストレージ装置に、前記移行対象ボリュームに関連付けて前記移行対象ボリュームの移行先となる移行先ボリュームを設定し、
前記仮想サーバと前記移行対象ボリュームに格納されている前記記憶領域との接続関係を特定し、
前記仮想サーバを前記第２の物理サーバから第１の物理サーバに移行させる際、前記移行先ボリュームに前記接続関係を設定し、
前記第１の物理サーバと前記第２の物理サーバ夫々の構成情報を管理する第１の管理プログラムと、前記第１のストレージ装置と前記第２のストレージ装置夫々の構成情報を管理する第２の管理プログラムとに基づいて、前記第１の管理プログラムが前記第２の物理サーバから取得した構成情報であって、前記第２の物理サーバが前記移行対象ボリュームに接続する際の当該移行対象ボリュームの位置情報として、前記第２の物理サーバのポートのポート情報と、当該ポートを前記移行対象ボリュームに対応させるＬＵＮとを含む、第１の構成情報を取得させる一方、前記第２の管理プログラムが前記第２のストレージ装置から取得した構成情報であって、前記第２の物理サーバを前記第２のストレージ装置にアクセス可能にするための第１のドメイン情報として、前記ポート情報と前記ＬＵＮとを含む、第２の構成情報を取得させ、
前記第１の構成情報における前記ポート情報及び前記ＬＵＮと、第２の構成情報における前記ポート情報及び前記ＬＵＮと、を照合することにより、前記移行対象ボリュームの識別情報を取得し、
前記第１の管理プログラムは、前記第１の物理サーバから、前記第１の物理サーバが使用するポートのポート情報を含む第３の構成情報を取得し、
前記第２の管理プログラムは、前記第１のストレージ装置から、前記第１の物理サーバと前記第２の物理サーバとを含む複数のサーバが使用する各ポートのポート名と、当該ポートに提供する前記第１のストレージ装置のＬＵＮの情報とを有する第２のドメイン情報を含む第４の構成情報を取得し、
前記管理計算機は、
第３の構成情報から前記第１の物理サーバが使用するポート名を取得し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれるか否かについて前記第２のドメイン情報が有するポート名と比較し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれる場合、前記第２のドメイン情報に含まれる全てのボリューム情報と重複しないようにボリュームごとに一意なＬＵＮを設定して前記移行先ボリュームを定義し、
前記第２のドメイン情報に前記第１の物理サーバが使用するポート名が含まれない場合、前記第１の物理サーバが使用するポートに接続された前記第１のストレージ装置のポートに前記移行先ボリュームを定義する、
計算機システムにおける仮想サーバの移行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、及び、計算機システムの仮想サーバ移行制御方法に係り、詳しくは、複数の物理サーバ間で仮想サーバを移行することに合わせて、複数のストレージ装置間で仮想サーバが使用する記憶領域を移行させることを特徴とする計算機システム、及び、その仮想サーバ移行方法に関するものである。
【背景技術】
【０００２】
近年、サーバ仮想化技術が普及し、複数の仮想サーバを単一のハードウェア（物理サーバ）上に統合することが一般的となっている。さらに、単に設備投資を削減する目的にとどまらず、設定済み仮想サーバのテンプレート管理によって、ユーザへのサーバの導入をたかだか、仮想サーバが使用する仮想ディスクのコピーの作成のみで完了させてしまう技術や、障害発生および負荷の不均衡などのホットスポットを検出して、動的に、仮想サーバの論理構成を変更することによって、ホットスポットを解消する技術が開発される等情報システムをより柔軟に運用することが可能となっている。
【０００３】
しかし、サーバ仮想化とは、新たな抽象化層を物理サーバに導入することであり、これにより、物理サーバの構成管理が複雑化する側面がある。例えば、従来のサーバ仮想化技術を用いない場合と比較して、どのサーバがどのボリュームを使用しているのかを、物理サーバやストレージ装置の構成情報のみから把握することは困難になった。
【０００４】
したがって、必然的に、これら仮想サーバにおいて、時々刻々と変化する記憶領域と仮想サーバとの接続関係や仮想サーバのリソース使用状況を仮想サーバ管理ソフトウェアにより管理される必要が生じる。また、仮想サーバの重要な構成要素の一つである、ストレージ資源の管理のために、仮想サーバ管理ソフトウェアの機能を拡張することがこころみられており、そのために、仮想記憶域やストレージ装置を操作する機能を仮想サーバ管理ソフトウェアに持たせる手法がとられている。
【０００５】
例えば、あるサーバ仮想化ソフトウェアベンダが提供している、ストレージとの連携を果たす機能は、ストレージベンダとの協業に基づいて、仮想サーバ管理ソフトウェアやサーバ仮想化ソフトウェアに、提携ベンダ製のストレージ装置が解釈できるコマンドを送受信する動作を持たせたものとなっている。これにより、ストレージ装置が、仮想サーバが使用しているボリュームを検出し、従来はサーバ仮想化ソフトウェアが行っていた記憶域のコピーなどの処理を肩代わりすることができるようになっている。
【０００６】
また、ある仮想サーバ管理ソフトウェアは、業界標準のストレージ管理プロトコルＳＭＩ−Ｓ (Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｉｔｉａｔｉｖｅ  −  Ｓｐｅｃｉｆｉｃａｔｉｏｎ)を使ってストレージ装置を管理する機構を実装している。これにより、ＳＭＩ−Ｓをサポートする物理サーバであれば、仮想サーバが使用しているボリュームを物理サーバ内で特定でき、仮想サーバの構成変更と連携させて、ストレージ装置が持つコピー機能やシンプロビジョニング機能を利用することができる。
【０００７】
仮想サーバ管理ソフトウェアが提供する機能により、仮想サーバを異なる物理サーバへ移行でき、そして、仮想サーバの仮想記憶域（仮想ディスク）を異なるストレージ装置へ移行することができる。同移行方式は、物理サーバ間のネットワークやストレージ装置間のネットワークを経由して、仮想サーバが利用しているデータを転送元から転送先に転送することにより、仮想サーバが実行する業務に対して致命的な悪影響が無いようにしている（特許文献１）。
【０００８】
なお、ファイバチャネルインタフェースで他のディスクアレイ（外部ストレージ）を接続し、その論理ボリュームをマッピングすることにより、機種の異なる複数のディスクアレイを1つのディスクアレイであるかのように扱うことが知られている(特許文献２)。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第７４８４２０８号
【特許文献２】特許第４７０４６５９号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
既述の仮想記憶域の移行においては、計算機システムは、業務に必要なデータの転送と、移行に必要なデータの転送とを、物理サーバを経由して同じネットワークで行うために、いずれかの性能劣化が避けられない。
【００１１】
また、計算機システムは、移行のために、物理サーバの演算リソースを消費しなければならず、通常業務に必要な演算性能の劣化を避けることができない。近年、情報システムへの依存度が高まるにつれ、システムが抱えるデータ量は増大の一途を辿っており、仮想サーバ移行においても、仮想記憶域の移行にかかる作業負荷や所要時間が課題となっている。このように、仮想サーバを柔軟に運用するためには、仮想サーバが使用する記憶領域を効率的に運用管理することが求められている。
【００１２】
計算機システムが、大量の仮想サーバを新しい環境に移行しようとしても、ストレージ装置の機能を利用することにより、ストレージ装置を跨って仮想ディスクを効率的に移行できる。これにより、物理サーバ上の仮想化ソフトウェアが主体となっていた従来の移行機能に比べて、情報システムの業務における性能への悪影響を極小化すると同時に、より高速な仮想サーバ、及び、仮想ディスクの移行の処理が可能となる。
【００１３】
ストレージ装置を管理するためのストレージ管理ソフトウェアによってストレージ装置の機能が適用される対象は、一般に、ボリュームと呼ばれる論理的な単位であり、そして、一つのボリュームにはファイル化された仮想ディスクが複数格納されている可能性がある。ボリュームは物理サーバにストレージ資源を割り当てるときの基本的な単位である。
【００１４】
ストレージ管理ソフトウェアは、どの物理サーバ（仮想サーバ）にどのボリュームが割り当てられているかを知ることができても、仮想サーバの移行に伴ってストレージ装置間を移行されるべき対象の仮想ディスク（ファイル）がどのボリュームに格納されているかまでをすぐには把握できない。
【００１５】
ストレージ管理ソフトウェアが、ファイルシステムを調べることによりボリューム内にどの仮想ディスクが格納されているかを判別できたとしても、使用状況、例えば、ボリュームが実際に仮想サーバへ接続されて、仮想ディスクが使用されていたか否かまでを知ることができない。このように、ストレージ管理ソフトウェアは、ボリュームに保持される情報としての、仮想ディスクまでを意識しておらず、計算機システムが、移行処理の際に、ストレージの機能を単に使用するだけでは、移行の後で、移行前の仮想サーバとその仮想ディスクの接続関係を維持することができない。
【００１６】
さらに、ストレージの機能によって、仮想サーバの移行に伴って仮想ディスクが移行される元のボリュームと移行先ボリュームの識別子が異なる場合がある。ベンダや機種が異なるストレージ装置を跨る場合、識別子を付与する規則が異なる可能性があるため、移行先ボリュームを物理サーバは移行元と同じボリュームであると認識できなくなる可能性がある。
【００１７】
物理サーバの仮想化ソフトウェアが使用する識別子は、ストレージの機能を設定するためのストレージ管理ソフトウェアが管理用途のためにボリュームに付与した識別子と異なる可能性がある。これは、ストレージ機能がベンダ独自のものであった場合に特に顕著である等、ストレージ機能が特殊な管理体系を必要としていた場合に生じる。
【００１８】
したがって、計算機システムが、ストレージの機能を使用して仮想ディスクを移行する際には、システム管理者が移行後のボリュームの内容を逐一確認し、大量の仮想サーバの中から移行対象となる仮想サーバの仮想ディスクを特定した上で、移行先仮想サーバへ仮想ディスクを再度接続しなければならないなど、作業量が増大し、人手に頼ることで再接続作業を誤る危険性も高まるなど、管理者への負荷が大きいものであった。
【００１９】
また、仮想化プログラムには仮想サーバを異なる物理サーバ上に移行する、仮想サーバ移行機能を有するものが多い。この移行は、システム管理者によって行われることもあるが、例えば、負荷分散機能により、自動的に実行されることもある。これにより、仮想サーバの物理サーバ上の配置は任意のタイミングで変更されることがあり、いざ、仮想サーバを移行しようとしたときには、仮想サーバや仮想ディスクが他の物理サーバやストレージ装置に移動してしまっていることが考えられる。そこで、仮想サーバ移行機能が働かないように負荷分散設定を解除するなどの方法が考えられるが、これでは本来サーバ仮想化技術が提供していたシステムの柔軟性が損なわれる上に、管理者に余分な負担が強いられるという課題がある。したがって、計算機システムは仮想サーバの移行機能をキャンセルし難いため、一層、仮想サーバの移行の後で、移行前の仮想サーバとその仮想ディスクの接続関係を維持することができないことになる。
【００２０】
そこで、本発明は、複数の物理サーバ間で仮想サーバを移行させる際、複数のストレージ装置間の連携機構を利用して、仮想サーバが使用している記憶領域を複数のストレージ装置間で移行させても、移行前の仮想サーバと記憶領域との接続関係を仮想サーバの移行後にも維持することができる計算機システム、及び、複数の物理サーバ間で仮想サーバを移行させるための制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００２１】
既述の目的を達成するために、本発明に係る計算機システム及びそれの仮想サーバ移行制御方法は、仮想サーバの移行元のハードウエア・ソフトウェア環境から仮想サーバおよび仮想ディスクの構成情報を取得しておき、構成情報を用いてボリュームを対象としたストレージ機能による移行設定を行い、さらに構成情報を用いて移行先における仮想サーバおよび仮想ディスクの接続関係の再構築を行うことを特徴とするものである。
【発明の効果】
【００２２】
本発明によれば、複数の物理サーバ間で仮想サーバを移行させる際、複数のストレージ装置間の連携機構を利用して、仮想サーバが使用している記憶領域を複数のストレージ装置間で移行させても、移行前の仮想サーバと記憶領域との接続関係を仮想サーバの移行後にも維持することができる計算機システム、及び、複数の物理サーバ間で仮想サーバを移行させるための制御方法を提供することができる。
【図面の簡単な説明】
【００２３】
【図１ａ】本発明の実施形態における計算機システムのブロック構成図である。
【図１ｂ】ストレージ装置のブロック構成図である。
【図１ｃ】管理計算機のブロック構成図である。
【図２】ボリューム定義テーブルを示す。
【図３】割り当て管理テーブルを示す。
【図４】ストレージドメイン定義テーブルを示す。
【図５】ポート管理テーブルを示す。
【図６】仮想ディスク管理テーブルを示す。
【図７】本発明の実施形態における物理サーバ情報を示す。
【図８】ボリューム管理テーブルを示す。
【図９】ストレージドメイン管理テーブルを示す。
【図１０】ボリュームマッピングテーブルを示す。
【図１１】ゾーン管理テーブルを示す。
【図１２】移行対象マッピングテーブルを示す。
【図１３】ボリューム接続設計テーブルを示す。
【図１４】本発明の実施形態における管理対象となる装置の接続構成を示す。
【図１５ａ】仮想サーバと仮想ディスクとの接続関係を示す第１のブロック図である。
【図１５ｂ】仮想サーバと仮想ディスクとの接続関係を示す第２のブロック図である。
【図１６】本発明の第１の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。
【図１７】図１６の計算機システムの処理フローダイアグラムである。
【図１８】本発明の第２の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。
【図１９】図１８の計算機システムの処理フローダイアグラムである。
【図２０】本発明の第３の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。
【図２１】図２０の計算機システムの処理フローダイアグラムである。
【図２２】本発明の第４の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムの第１のブロック図である。
【図２３】本発明の第４の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムの第２のブロック図である。
【図２４】図２４は本発明の第四の実施形態における処理フローダイアグラムを示す。
【発明を実施するための形態】
【００２４】
（実施形態１）
本実施形態は、仮想サーバおよびその仮想ディスクを異なる物理サーバおよびストレージ装置へ移行する方法を提供する。
【００２５】
１．物理構成および論理構成
図１（ａ）は、本実施形態の計算機システムの構成を示す。本計算機システムは、第１の物理サーバ１０、第２の物理サーバ２０、第１のストレージ装置１００、第２のストレージ装置２００、および管理コンピュータ５００を、それぞれ一つ以上含む。
【００２６】
第１の物理サーバ１０は、仮想化プログラム１４およびオペレーティングシステム１３をメモリ１２に格納し、ＣＰＵ１１は、それらプログラムによって要求される処理を行う。第１の物理サーバ１０は、イーサネット（登録商標）インタフェース１６、およびファイバチャネルインタフェース１５を備える。
【００２７】
第１の物理サーバ１０は、インターネットインタフェース（イーサネット（登録商標）インタフェース）１６を介して、より正確にはイーサネット（登録商標）インタフェース１６が備える一つ以上のネットワークポートを使用して、他の物理サーバ、または、クライアントコンピュータと接続し、内部で稼働するプログラムが使用するデータの送受信を他の物理サーバ等と行う。
【００２８】
イーサネット（登録商標）インタフェース１６は単一であってもよいし、別のコンピュータを接続する機能を有するものであれば、管理用、サービス用など用途により複数備えていてもよい。また、同インタフェースはイーサネット（登録商標）規格に限るものではなく、別のコンピュータと接続する機能を実現することができれば、他の規格に準拠するものであってもよい。
【００２９】
第１の物理サーバ１０は、ファイバチャネルインタフェース１５を介して、より正確にはファイバチャネルインタフェース１５が備える一つ以上のネットワークポートを使用して、ストレージ装置またはネットワーク機器（例えば、ファイバチャネルスイッチ５５）と相互に接続し、内部で稼働するプログラムが使用するデータの送受信をストレージ装置等と行う。
【００３０】
ファイバチャネルインタフェース１５は一つであってもよいし、ストレージ装置やストレージ装置との間に介在するネットワーク機器と相互に接続できるのであれば、用途により複数備えてもよい。また、同インタフェースはファイバチャネル規格に限るものではなく、ストレージ装置と接続するための機能有するものであれば、例えばイーサネット（登録商標）やインフィニバンド、ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（登録商標））など他の規格に準拠するものであってもよい。
【００３１】
第１の物理サーバ１０は、ハードウェアを制御し、さらに上位に位置するプログラムにより情報処理を実現するための基本的なプログラムである、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ，ＯＳ）１３を稼働させている。
【００３２】
また、同物理サーバ１０上には仮想化プログラム１４が稼働しており、一つのハードウェアを論理的に一つ以上の仮想的な領域に分割する機能を実現している。仮想化プログラム１４により分割された仮想的なハードウェア領域で、仮想サーバ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ，ＶＭ）が稼働し、仮想サーバ上でアプリケーションプログラムが稼働している。アプリケーションプログラムが稼働するために、仮想サーバ内部で、適切なＯＳを稼働させるようにしてもよい。ハードウェアを抽象化するという点において、ＯＳ１３と仮想化プログラム１４の機能は類似しており、仮想化プログラム１４はＯＳ１３の一部分として物理サーバに実装されてもよい。
【００３３】
第２の物理サーバ２０は、第１の物理サーバ１０と協調して、仮想サーバや仮想ディスクの移行処理を行うための基本的な構成（仮想化プログラム１４やＯＳ１３）を持つという点で、第１の物理サーバと同じハードウェア構成を有している。ただし、その他の目的の部分で、第２の物理サーバは、第１の物理サーバ１０と異なる構成を有していてもよい。第１のストレージ装置１００は、ＳＡＮ上の機器（例えば、第１の物理サーバ１０）に対し、ボリュームと呼ばれる論理的な単位ごとに構成される記憶域を提供する。第１のストレージ装置１００は、ＨＤＤ１０１等の記憶装置等の各構成要素を集中的に制御するストレージコントローラ１５０を備える。
【００３４】
図１（ｂ）に示すように、ストレージコントローラ１５０は、ファイバチャネルインタフェース１５５を介して、より正確にはファイバチャネルインタフェース１５５上のネットワークポートを使用して、第１の物理サーバ１０上のプログラム、及び／又は、アプリケーションによる処理が必要とするデータを送受信する。
【００３５】
本実施形態では、ストレージコントローラ１５０は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）規格に従って物理サーバへ記憶域を提供する。ストレージコントローラ１５０は、物理記憶装置である例えばＨＤＤ１０１やＳＳＤ１０２と接続するためのＳＡＴＡ(Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ)インタフェース１５７またはＳＡＳ(Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ)インタフェース１５６、および管理コンピュータ５００と接続するためのイーサネット（登録商標）インタフェース１５４を備える。これら物理記憶装置および別のコンピュータへ接続するためのネットワークインタフェースについては、本実施形態に述べる規格に限定するものではなく、それぞれ同じ目的を達成することのできる機能を有するものであれば別の規格に準拠するものでもよい。
【００３６】
ストレージコントローラ１５０のメモリ１５２には、応答プログラム１６０、リダイレクトプログラム１６１、ボリューム制御プログラム１６２、ボリューム定義テーブル１６３、割り当て管理テーブル１６４、ストレージドメイン定義テーブル１６５、ストレージ管理プロバイダ１６６、およびポート管理テーブル１６７が格納され、ＣＰＵ１５１によりそれらプログラムの処理に必要な演算が行われる。キャッシュ１５３は物理記憶装置（ＨＤＤ１０１やＳＳＤ１０２）に対してデータの読み込みおよび書き込みを行う際に、一時的にデータを保存する。
【００３７】
応答プログラム１６０は、物理サーバや他のストレージ装置からの少なくともＲＥＡＤ  ＣＡＰＡＣＩＴＹ／ＲＥＡＤ／ＷＲＩＴＥコマンドに応答する。
【００３８】
リダイレクトプログラム１６１は、本実施形態において外部接続と称するストレージ仮想化機能を提供するもので、第１のストレージ装置１００へのアクセスを他のストレージ装置へリダイレクトする処理を実装する。同プログラムの詳細な挙動については後述する。
【００３９】
ボリューム制御プログラム１６２は、第１のストレージ装置１００が備える物理記憶装置の記憶域をボリュームとして物理サーバに提供するための、ボリュームの生成・削除・構成変更処理を実装したものである。各ボリュームの構成は、ボリューム制御プログラム１６２によりボリューム定義テーブル１６３上のレコードとして管理される。
【００４０】
図２に示すボリューム定義テーブル１６３は、ボリュームを装置内、システム内で一意に識別するためのデバイス識別子１６３ａ、属性を表すボリュームタイプ１６３ｂ、当該ボリュームが他のボリュームと関連付けられている場合に関連元ボリュームを表すソースデバイス１６３ｃ、物理サーバへ接続されているか否かを示すホスト割り当てフラグ１６３ｄ、および現在のボリュームの状態を示すステータス１６３ｅを記録する各フィールドを有する。
【００４１】
ボリューム制御プログラム１６２はボリュームごとにキャッシュ１５３の有効／無効化を設定でき、これを、ボリューム定義テーブル１６３においてステータス１６３ｅとして保持してもよいし、キャッシュの設定を保持するフィールドを別に有してもよい。ボリューム定義テーブル１６３で管理されるボリュームタイプ１６３ｂについては、第１のストレージ装置１００が提供する機能と合わせて後述する。
【００４２】
前述の通り、物理記憶装置の各領域は、ボリュームとして管理される。図３に示す割り当て管理テーブル１６４は、ボリュームにおける番地（セグメント番号）と、物理記憶装置（物理ディスクドライブ）のＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）とを関連づける役割を持ち、ボリューム制御プログラム１６２により作成・変更される。物理サーバからボリュームへのアクセスは、ボリュームセグメント番号１６４ａを指定して実行され、応答プログラム１６０が同割り当て管理テーブル１６４の各フィールドを参照して実際の物理ディスクドライブ上のＬＢＡ領域を特定し、アクセスを行うことでデータの読み書きが可能となる。図３におけるテーブルの各フィールドは、ボリュームがＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）技術を用いて構成される場合の一例を夫々示している。
【００４３】
物理サーバによるボリュームへのアクセスは、ボリューム制御プログラム１６２により編集される、ストレージドメイン定義テーブル１６５（図４参照）が定めるアクセス範囲に従って制御される。ストレージ装置は複数の物理サーバに対してストレージ資源を提供しており、様々な物理サーバが非同期に発行する読み書き結果ボリューム内に保持するデータの整合性を保証するため、物理サーバとボリュームを関連付けてアクセスを制御する必要がある。これは、一般にＬＵＮマスキングと呼ばれる、ファイバチャネルを用いたストレージ管理における基本的な技術により実現される。
【００４４】
本実施形態においては、ストレージドメイン定義テーブル１６５は、ストレージ装置側のネットワークポート名１６５ｂに対し、一つ以上の物理サーバのネットワークポート名１６５ｃを指定することにより、物理サーバがストレージ装置にアクセス可能な範囲を定義しており、これをストレージドメインと呼ぶことにする。ストレージドメインにはストレージ装置内で一意なドメイン名１６５ａが付与される。
【００４５】
同時に、ボリュームごとに一意なＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ，論理ユニット番号）１６５ｄが設定されており、ホスト（物理サーバ）ポート名フィールド１６５ｃに含まれる物理サーバからは、このＬＵＮ１６５ｄにより、ボリュームがディスクドライブとして識別される。このようにボリュームがストレージドメインと関連づけられる際には、必ずＬＵＮ１５４ｄが設定されるが、他方で、どのボリュームとも関連づけられていないストレージドメインが存在してもよい。ボリュームと物理サーバ（のネットワークポート）をＬＵＮにより関連づけた論理的なアクセス経路がパスと呼ばれ、パスは、ストレージ装置内で一意なパス識別子１６５ｆを持つ。
【００４６】
ストレージ管理プロバイダ１６６（図１（ｂ）参照）は、管理コンピュータ５００からストレージ装置１００が管理されるためのインタフェースを提供する。具体的には、ストレージ管理プロバイダ１６６は、管理コンピュータ５００上のストレージ管理プログラムに、ストレージ装置１００内のボリューム制御プログラム１６２の操作や、ボリューム定義テーブル１６３やストレージドメイン定義テーブル１６５を参照させるといった手続きを、遠隔から実行させるためのコマンドあるいはＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を提供する。
【００４７】
同管理プロバイダ１６６は、ストレージ装置を提供するベンダにより、当初から組み込まれている。ストレージ管理プロバイダ１６６と通信する手段は、ストレージ管理機能を実現できるものに限り、ＨＴＭＬ、ＸＭＬといった言語、或いは、ＳＭＩ−Ｓなどの管理プロトコルを用いる。ストレージ管理インタフェースは、物理サーバ１０やファイバチャネルスイッチ５５などにも実装され、管理コンピュータの管理ソフトウェアによる構成の参照および設定を可能にする。
【００４８】
管理プロバイダ１６６をストレージコントローラに実装するための形態としては、ＯＳ上で動作するアプリケーションソフトウェアやエージェントであってもよいし、または、ストレージ装置を制御するために用いられる他のプログラムの一部の機能であってもよい。さらには、専用のハードウェア（集積回路チップなど）に実装されてもよい。
【００４９】
ストレージコントローラ１５０内のファイバチャネルインタフェース１５５に搭載される全てのポートは、ボリューム管理プログラム１６２により、ポート管理テーブル１６７(図５)で管理されている。ポート管理テーブル１６７は、各ポートに一意なポート名１６７ａ、管理者によって任意に設定されるエイリアス１６７ｂ、ポート属性１６７ｃ、および到達可能なポート名のリスト１６７ｄを保持する。ポート属性１６７ｃは、ポート名１６７ａで識別されるポートに付与されるものである。
【００５０】
ポート属性１６７ｃには、例えば、ポートが物理サーバからのアクセスを受け付けるときには、「Ｔａｒｇｅｔ」が、ポートが外部接続用に構成されている場合は、「Ｅｘｔｅｒｎａｌ」が設定される。到達可能なポート名リスト１６７ｄは、当該ポートとデータ送受信可能な状態にあるポート名を保持する。したがって、論理的に、両ポートの接続性が確保されていれば、実際にデータの送受信が両ポート間で行われていなくても、ポート名リスト１６７ｄにポート情報を記載することができる。ただし、後述のように、ネットワークスイッチがゾーンによってアクセス制御を行って、データの送受信が許可されていない範囲には、たとえ、ストレージのポートに物理的に接続されているポートであっても、当該ポートはポート名リスト１６７ｄに記載されてはならない。
【００５１】
また、図４に示すストレージドメイン定義テーブルにおいてストレージドメインを定義する際には、管理者は、ストレージ側ポート名１６５ｂに対応するレコードをポート管理テーブル１６７から取得し、当該ストレージ側ポートと接続するポートをポート名リスト１６７ｄの中から選択して、これをホスト側ポート名１６５ｃとしてもよい。
【００５２】
第１のストレージ装置１００のストレージコントローラ１５０内の各プログラムにより、ストレージの特徴的な機能が実現される。この特徴的な機能の一つとしての外部接続機能は次のように実現される。第２のストレージ装置２００のボリュームが、第１のストレージ装置と第２のストレージ装置間のネットワーク５２を介して、第１のストレージ装置内１００のボリュームであるかのように第１の物理サーバ１０に提供される。
【００５３】
従来は、第１と第２のストレージ装置との間で、長時間を必要とする、ボリューム間データコピーが行わなければ、第２のストレージ装置が提供するボリュームを、第１の物理サーバが利用できなかったが、外部接続機能は、ボリューム間データコピーを必要としないものであって、第１の物理サーバ１０から第１のストレージ装置１００へ行われたアクセスを、第１のストレージ装置１００および第２のストレージ装置２００を相互接続するネットワークへリダイレクトし、さらには、第２のストレージ装置２００からの応答を第１のストレージ装置１００が中継して第１の物理サーバへ応答することにより実現される。
【００５４】
外部接続機能をストレージ装置に実装する方法として、次のことが想定される。外部接続を適用する対象となる第２のストレージ装置２００内のボリュームを、第２の物理サーバ２０への接続するポートとは論理的に異なるポートから利用できるようにしておく。このときのやり方は、物理サーバに対してボリュームを提供する場合と同じである。さらに、第１のストレージ装置１００と第２のストレージ装置２００の間を相互に接続するネットワーク（例えば通信路５２）を設け、対象ボリュームを第１のストレージ装置１００内のある外部接続用ボリュームへ論理的に関連づけておく。
【００５５】
この外部接続用ボリュームは、第１のストレージ装置１００内に定義されていながら、実際の物理記憶装置（例えば、物理ドライブ１０１、１０２）が割り当てられないという点で仮想ボリュームと呼ばれる。ただし、仮想ボリュームであっても、第１のストレージ装置１００内の他のボリュームと同じようにキャッシュやコピー機能を利用できる。外部接続用のボリュームの定義はボリューム制御プログラム１６２により行われ、ボリューム定義テーブル１６３に登録される。例えば、図２においてデバイス識別子１６３ａが「２０：０１」のボリュームを外部接続用ボリュームとすると、ボリュームタイプ１６３ｂには「Ｅｘｔｅｒｎａｌ」が設定され、ソースデバイスフィールド１６３ｃには、第２のストレージ装置２００内のボリュームへアクセスするために必要な情報が登録される。
【００５６】
図２は、ソースデバイスフィールド１６３ｃは、第１のストレージ装置のストレージポート（エイリアス「ＳＰｏｒｔ＃２」）からＬＵＮ１を介してアクセスできるボリュームが、第２のストレージ装置２００にある（物理記憶装置を持つ）ボリュームであることを示している。これにより、第１の物理サーバ１０から外部接続用ボリューム「２０：０１」へアクセスが発行されたときには、応答プログラム１６０がボリュームタイプフィールド１６３ｂを参照して、外部接続されたボリュームであることを判別し、リダイレクトプログラム１６１がソースデバイスへアクセスを転送することにより第２のストレージ装置２００内のボリュームの読み書きが可能となる。
【００５７】
ストレージのコピー機能としては、ＳＡＮを経由してストレージ装置間でボリュームの複製を作成するレプリケーション機能、広域ネットワークを利用して異なるサイトのストレージ装置間でボリュームの複製を作成するリモートコピー機能、ストレージ装置内部でボリュームの複製を作成するボリュームバックアップ機能がある。
【００５８】
ストレージの容量を効率化機能としては、特定ボリュームへの変更部分のみを別ボリュームとして保存するボリュームスナップショット機能、複数のボリュームを束ねてプール化し、物理サーバからの書き込み要求に応じてボリュームよりも細かな単位ごとにボリュームへ容量を追加していくボリュームシンプロビジョニング機能がある。
【００５９】
ストレージの移行機能としては、ボリュームのコピーと、識別情報の切り替え、および、アクセス経路の切り替えを連動させて、筐体内に定義されたあるボリュームが保持する内容を、別のボリュームへ無停止で移行するオンラインボリュームマイグレーション機能がある。
【００６０】
これらの機能はボリュームを対象として適用され、ボリューム管理テーブル５５７のボリュームタイプ５５７ｄにおいて管理される。
【００６１】
第２のストレージ装置２００は、ストレージ資源をボリュームとして物理サーバ２０に提供するという機能性を実現する点で、第１のストレージ装置１００と同様の構成を有する。ただし、外部接続機能は本実施形態の移行方式に必須ではないため、第１のストレージ装置は同機能を備えなくてもよい。その他のストレージ特有の機能の搭載状態は、第１のストレージ装置と第２のストレージ装置との間で同じでなくともよい。
【００６２】
ファイバチャネルを用いた通信路（ストレージエリアネットワーク）５０は、第１の物理サーバ１０を、第１のストレージ装置１００が提供するストレージ資源へアクセスさせ、第１の物理サーバ１０が使用するデータを転送させるためのものである。同ネットワークには、複数の物理サーバ１０または複数のストレージ装置１００を相互に接続させるために、例えば、ファイバチャネルスイッチ５５が存在していてもよい。また、同ネットワークに接続された装置が解釈可能であれば、物理サーバ１０上のアプリケーションによる利用を目的とするのではなく、例えば、装置自体を制御するための制御情報を転送する目的で同ネットワークが使用されてもよい。
【００６３】
さらに、以下に記述する全てのネットワークを構成するための接続規格はファイバチャネルに限るものではなく、物理サーバとストレージ装置、ストレージ装置同士の相互接続が可能であれば、例えば、イーサネット（登録商標）やインフィニバンドなど他の規格に準拠するに代えてもよい。
【００６４】
ファイバチャネルを用いた通信路５１は、第２の物理サーバ２０を第２のストレージ装置２００が提供するストレージ資源へアクセスさせ、第２の物理サーバ２０が使用するデータを第２の物理サーバに転送するためのネットワークである。
【００６５】
さらに、第１のストレージ装置１００と第２のストレージ装置２００を相互に接続し、第１のストレージ装置に外部接続機能を使用可能にさせる目的で、通信路５０および通信路５１の間に、通信路５２が設けられている。図１（ａ）に示す通り、通信路５２はファイバチャネルスイッチ５５およびファイバチャネルスイッチ６５を相互に接続する形態から構成されてもよいし、第１のストレージ装置１００のネットワークポートと第２のストレージ装置２００のネットワークポートとを直接的に接続する形態から構成されてもよい。上記ストレージ装置間を相互に接続すること以外、例えば、第１の物理サーバ１０と第２のストレージ装置２００との相互の通信は必須ではないために、この相互通信を可能とすることは通信路５２を追加する理由にはならない。
【００６６】
ファイバチャネルを用いたネットワークは、個々のネットワークアダプタ（ホストバスアダプタ、ＨＢＡ）上の各ネットワークポートに、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）と呼ばれる一意なアドレスを静的に持つ。ＷＷＮは複数の装置に跨って一つであり、同じネットワーク上で重複しない。また、ネットワークポートがネットワークに接続された際には、トポロジに応じて、アービトレイテッドループ物理アドレス、またはネイティブアドレス識別子と呼ばれる動的なアドレスがポートに付与される。これらのアドレスは、アクセス制御により許可される範囲内で公開されており、同一のネットワークへ論理的に接続された任意の機器から参照され得る。本実施形態は、特に断らない限り、ＷＷＮやそのエイリアス（ネットワーク上の機器において使用される別名）を用いるが、本実施形態が開示する技術および方法は、付与されるアドレスの種別により限定されるものではない。前述のアドレスは、ＩＰネットワークにおける、ＭＡＣアドレスとＩＰアドレスに相当するものであり、本実施形態の適用範囲をファイバチャネルに限定するものではない。
【００６７】
図１（ａ）に示すように、管理コンピュータ５００は、少なくともメモリ５１２上のプログラムを実行するためのＣＰＵ５１１、および、情報システムの他の装置と通信を行うためのイーサネット（登録商標）インタフェース５１６を備え、他の装置の管理のために必要な処理を行う。
【００６８】
管理コンピュータ５００がイーサネット（登録商標）インタフェース５１６を介して、正確には、インタフェース上のネットワークポートを使用して、接続する通信路９０は、主に、管理コンピュータ５００が情報システムの他の装置（例えば第１の物理サーバ１０、第１のストレージ装置１００、ファイバチャネルスイッチ５５など）の構成を管理するために、必要なデータを当該他の装置と送受信するためのネットワークを構成する。
【００６９】
このネットワークは単一である必要はない。クライアントコンピュータが要求する処理に必要なネットワークが構成されるために、例えば、物理的に異なるイーサネット（登録商標）インタフェースまたは同インタフェースが備えるネットワークポートが別途用意されてもよいし、ネットワークが仮想ＬＡＮ技術を用いて論理的に分割されるものでもよい。物理サーバ同士が相互に通信を行うための、同種のネットワークが存在してもよい。また、通信路９０に、各装置を相互に接続するためのイーサネット（登録商標）スイッチ９１などが存在してもよい。
【００７０】
管理コンピュータ５００はメモリ５１２上に、それぞれ少なくとも一つ以上のＯＳ５１３および管理プログラム５１４と、少なくとも一つ以上の移行制御プログラム５１５を格納する。詳細なプログラム構成を図１（ｃ）に示す。管理プログラム５１４は、それぞれ少なくとも一つ以上の物理サーバ管理プログラム５５１、ストレージ管理プログラム５５６、ネットワーク管理プログラム５５４に分類される。管理プログラム５１４が移行制御プログラム５１５と適切に通信できるのであれば、これらプログラムは、異なる管理コンピュータ５００や管理コンピュータ以外の他の装置に存在して動作してもよいし、管理対象に応じて複数の場所に分かれていてもよい。管理プログラム５１４は、各装置を開発・製造したベンダにより提供されるか、あるいは、開発・製造された装置と互換性を持つものである。
【００７１】
物理サーバ管理プログラム５５１は、物理サーバおよび物理サーバに構成された仮想サーバを管理する。例えば、第１の物理サーバ１０に対しては、この物理サーバ上の仮想化ソフトウェア１４またはＯＳ１３が実装する物理サーバ管理プロバイダと通信することにより、物理サーバの構成情報および性能情報を取得し、そして、その構成を変更する。物理サーバ管理プロバイダは、サーバを提供するベンダにより、当初から物理サーバに組み込まれている。物理サーバ管理プログラム５５１は、主に、仮想ディスク管理テーブル５５２および物理サーバ情報５５３を用いて、物理サーバの構成および性能情報を管理する。仮想ディスク管理テーブル５５２の詳細を図６に示す。仮想ディスク管理テーブル５５２は、仮想サーバに接続された仮想ディスクの配置を記録するためのものであり、仮想サーバが配置されている物理サーバ識別子５５２ａ、仮想サーバ識別子５５２ｂ、ボリューム共有グループ５５２ｃ、仮想ディスク識別子５５２ｄ、仮想ディスクタイプ５５２ｅ、ファイルシステムにおける仮想ディスク位置を示すパス５５２ｆ、格納先論理ボリューム５５２ｇ、物理サーバに対する格納先ディスクドライブの接続位置５５２ｈ、同ディスクドライブに付与されたデバイス識別子５５２ｉ、およびネットワークインタフェース上の接続先ポート名５５２ｊを保持する。これらの構成情報は全て物理サーバ上のＯＳまたは仮想化プログラムから取得することができる。
【００７２】
ボリューム共有グループ５５２ｃは、複数の物理サーバから同一のボリュームへ接続する構成のことを指し、負荷分散やメンテナンスのために、物理サーバ間で仮想サーバの移行を可能にするための物理サーバのグループのことである。
【００７３】
仮想ディスクには複数の形式がある。第１の形式は、物理サーバにマウントされたボリューム（物理サーバは物理ディスクドライブと認識）内にファイルが格納されている形式である。物理サーバはボリュームを物理ディスクドライブと認識する。第１の形式の仮想ディスクには、例えば、固定容量、可変容量、さらに差分容量で夫々作成されることが可能なファイルが含まれる。第２の形式は、ボリュームを仮想サーバに物理ディスクドライブとして接続する形式である。
【００７４】
仮想ディスクがファイル形式から構成されているのであれば、仮想ディスク管理テーブル５５２は、さらにディレクトリ構造上の位置を示すパス５５２ｆを保持する。物理サーバからディスクドライブ内をさらに一つ以上の論理ボリューム（あるいはパーティション）に分割してファイルシステムが構成されることがあり、物理サーバは、これを管理するために格納先となる論理ボリューム５５２ｇを保持する。
【００７５】
ディスクドライブの接続位置５５２ｈは、ＳＣＳＩ規格に従い、ＯＳまたは仮想化プログラムが決定するＬＵＮに、ターゲットおよびＳＣＳＩバスの識別番号を組み合わせて表現される。
【００７６】
ＳＡＮ（例えば通信路５０や通信路５１）に接続するために使用されているポート名（ＷＷＮ）は接続先ポート名フィールド５５２ｊに保持される。接続先ポート名５５２ｊについて、複数のアクセス経路が存在する場合、例えば、信頼性や性能を高める目的でマルチパスまたはリンクアグリゲーションが導入されている場合においては、フィールド５５２ｊに複数のポート名を登録するか、複数レコードに分割して保持してもよい。
【００７７】
ディスクドライブには、オペレーティングシステムまたは仮想化プログラムにより、例えば、物理サーバがストレージ装置から取得できるデバイス識別子１６３ａを用いて、一意なデバイス番号５５２ｉが付与される。
【００７８】
仮想ディスク管理テーブルは、さらに、内蔵ディスクドライブかあるいはＳＡＮを経由したストレージ装置か、を判別するフラグや、それらの接続インタフェースの種類（例えばＩＤＥやＳＣＳＩなど）、ファイルシステムの種類を保持してもよいし、あるいはファイル形式の仮想ディスクがネットワーク上のファイルサーバに保持されている場合には、それを判別するフラグを保持してもよい。ただし、これらの構成情報は、物理サーバ上のＯＳまたは仮想化プログラムにより管理可能なものに限られる。
【００７９】
図７に示す物理サーバ情報５５３は、物理サーバおよび仮想サーバの性能情報を記録する目的で、物理サーバごとに作成されたレコードと、当該物理サーバ上の仮想サーバについて作成されたテーブルが関連付けられたものである。
【００８０】
物理サーバの性能情報には、例えば、物理サーバ識別子５５３ａに対応する、論理ＣＰＵコア数５５３ｃ、メモリ容量５５３ｄ、ネットワーク帯域５５３ｅ、ディスクＩＯ帯域５５３ｆ、およびＳＡＮ接続用のポート名リスト５５３ｇが、物理サーバ管理プログラム５５１によって情報が取得された時刻５５３ｂととともに保持される。これらの物理サーバの性能情報には、必要に応じて、物理サーバ管理プログラム５５１が取得できるものに限って、他のパラメータが保持されてもよい。
【００８１】
仮想サーバの性能情報には、例えば、物理サーバ上の仮想サーバ識別子５５３ｈに対応して割り当てられた、論理ＣＰＵコア数５５３ｊ、ＣＰＵの平均利用率５５３ｋ、メモリ容量５５４ｍ、ネットワーク帯域５５３ｎ、ネットワーク平均転送量５５３ｐ、ディスクＩＯ帯域５５３ｑ、ディスク平均ＩＯ量５５３ｒ、ディスク使用率５５３ｓと、が、仮想サーバの状態（例えば稼働中、停止中など）５５３ｉとともに保持される。仮想サーバの性能情報には、必要に応じて、物理サーバ管理プログラム５５１が取得できるものに限って、他のパラメータが保持されてもよい。
【００８２】
例えば、仮想化プログラム１４が、仮想サーバに割り当てるメモリを仮想サーバ等の負荷に応じて動的に変更する技術（メモリバルーニング）を用いている場合、動的メモリ容量を仮想サーバ性能情報に加えてもよい。物理サーバ管理プログラム５５１は、これら物理サーバ上の仮想サーバについての性能情報を総計することにより、物理サーバ上で消費されているリソースの利用量や、性能を算出する。ただし、仮想化プログラムやＯＳが仮想サーバとは別に物理サーバのリソースを消費する場合は、このことを計算に加味してもよい。
【００８３】
ストレージ管理プログラム５５６は、ストレージ装置を管理する。例えば、ストレージ管理プログラムは、第１のストレージ装置１００のストレージコントローラ１５０内に備わっているストレージ管理プロバイダ１６６と通信することにより、ストレージ装置の構成情報を取得し、そして、その構成変更を行うことができる。
【００８４】
本実施形態において、ストレージ管理プログラム５５６は、ボリューム管理テーブル５５７、ストレージドメイン管理テーブル５５８、およびボリュームマッピングテーブル５５９を用いて、ストレージ装置の構成を管理する（図１（ｃ）参照）。その他、必要であればストレージコントローラ１５０が有する割り当て管理テーブル１６４や、ポート管理テーブル１６７を参照し、これらの設定を変更することができる。
【００８５】
図８に示すボリューム管理テーブル５５７は、ストレージ装置がストレージコントローラに備えるボリューム定義テーブル１６３の内容に相当する構成情報を保持する。ただし、ボリューム管理テーブルは、ボリューム定義テーブル１６３の内容に加えて、ストレージ装置を一意に識別するためのストレージシリアル番号５５７ｂ、および、ストレージ管理プログラム５５６が対象とする全てのストレージ装置についてのボリュームを一意に識別するためのボリューム名５５７ａを保持する。
【００８６】
これらの識別子を加えるのは、例えば、第１のストレージ装置１００のボリューム定義テーブル１６３が同装置内のボリュームについてのみ管理するのに対し、ボリューム管理テーブル５５７は、一つ以上のストレージ装置についてボリュームを管理する必要があるためである。
【００８７】
ボリューム名５５７ａは一意であれば、ストレージ管理プログラム５５６の管理計算機への実装に応じて命名規則が異なってもよい。例えば、ストレージ管理プログラム５５６は、ボリューム管理テーブル５５７にレコードを追加する時にボリューム名を連番となるように生成してもよいし、あるいは、ストレージシリアル番号５５７ｂとデバイス識別子５５７ｃを組み合わせてボリューム名を生成してもよい。
【００８８】
また、ストレージ管理プログラム５５６は、ボリューム制御プログラム１６２を操作し、ボリュームごとにキャッシュの有効化／無効化を設定でき、この情報を同ボリューム管理テーブル５５７に保持してもよい。
【００８９】
図９に示すストレージドメイン管理テーブル５５８は、ストレージ装置がストレージコントローラに備えるストレージドメイン定義テーブル１６５の内容に相当する構成情報を保持する。ストレージドメイン管理テーブル５５８は、ボリューム管理テーブル５５７の場合と同じ理由で、さらに、ストレージ装置を一意に識別するためのストレージシリアル番号５５８ｂ、および、全てのストレージ装置についてボリュームを一意に識別するためのボリューム名５５８ｇを保持する。
【００９０】
図１０に示すボリュームマッピングテーブル５５９は、管理計算機又はサーバが複数のストレージ装置に跨ってストレージ機能を使用するのに備えて、ボリューム間の接続関係を保持する。同テーブルは、マッピング元ストレージシリアル番号５５９ａ、マッピング元ボリューム名５５９ｂ、マッピング元ポート名５５９ｃ、マッピング先ストレージシリアル番号５５９ｆ、マッピング先ボリューム名５５９ｇ、マッピング先ポート名５５９ｈを、マッピングタイプ５５９ｄおよびステータス５５９ｅとともに保持する。
【００９１】
例えば、始めのレコードは、シリアル番号「２０１」の装置内にあるボリューム名「１０２２０」のボリュームを外部接続機能により、シリアル番号「１０１」の装置内のボリューム名「００４０１」のボリュームへ対応付けており、状態が「オンライン」であることを示している。これにより、ボリューム名「００４０１」で管理される（仮想）ボリュームへのアクセスは、外部接続機能によりボリューム名「１０２２０」で管理されるボリュームへ正常にリダイレクトされている状態であることがわかる。また、二行目のレコードは、ストレージ装置間を跨るボリュームコピー（レプリケーション）の適用を示した例である。
【００９２】
ネットワーク管理プログラム５５４は、ネットワーク装置を管理する。例えば、ファイバチャネルスイッチ５５が備えるネットワーク管理プロバイダと通信することにより、ネットワーク装置から構成情報を取得し、そして、その構成情報の変更を行う。同管理プロバイダは、ネットワーク装置を提供するベンダにより、当初から装置へ組み込まれているものである。
【００９３】
本実施形態において、ネットワーク管理プログラム５５４は、主にゾーン管理テーブル５５５を用いて、ファイバチャネルスイッチ５５により制御されるアクセス範囲を管理する（図１（ｃ）参照）。
【００９４】
前述したストレージドメインのように、ストレージ装置内では、物理サーバからアクセスし得る範囲を制御する技術が用いられている。同様の目的で、ネットワーク上のスイッチは、ストレージ装置や物理サーバを跨ってアクセス可能な範囲を制御する機能を備える。
【００９５】
ファイバチャネルを用いたストレージネットワーク管理においては、ゾーニングと呼ばれるアクセス制御技術が知られている。ゾーニングには、大別して二つの方式がある。一つはスイッチが備えるネットワークポート名（またはエイリアス）を用いて、特定のポートに物理的に接続されたネットワーク上の装置のみに相互接続を許可する固定的な範囲（ゾーン）を定義する、ハードウェアゾーニングである。もう一つは、ネットワーク上の装置が有するネットワークポート名（またはエイリアス）を用いて、物理的にスイッチのどのポートに接続されていても、当該ポート名を持つ装置のみが相互接続できる範囲を定義する、ソフトウェアゾーニングである。
【００９６】
図１１に示すゾーン管理テーブル５５５は、ゾーンを一意に識別するためのゾーン名５５５ａ、ファイバチャネルスイッチを一意に識別するためのスイッチ識別子５５５ｂ、および一つ以上のポートを表すポート名リスト５５５ｄとともにゾーンタイプ５５５ｃ（ハードウェアゾーンまたはソフトウェアゾーン）を保持する。いずれのゾーンタイプであっても、同じ形式のテーブルにより管理され得る。
【００９７】
移行制御プログラム５１５は、本発明に特徴的なプログラムであり、物理サーバ管理プログラム５５１、ストレージ管理プログラム５５６、ネットワーク管理プログラム５５４と連携して、仮想サーバの物理サーバ間移行と、仮想ディスクのストレージ装置間移行を実現する。移行は、移行元と移行先との相互接続が可能な接続手段（例えばＩＰネットワークやプロセス間通信など）と、公開される管理用インタフェースを用いて行われる。移行制御プログラム５１５は、対象マッピングテーブル５４９およびボリューム接続設計テーブル５５０を用いて、仮想サーバと仮想ディスクの接続関係を管理し、移行の前後でこの接続関係を維持するように動作する。
【００９８】
図１２に示す対象マッピングテーブル５４９は仮想サーバと仮想ディスク、さらにはボリュームとの接続関係を管理するためのものであり、少なくとも、物理サーバ管理プログラム５５１が認識し得る仮想ディスクの数に等しいレコードを保持する。したがって各レコードには、物理サーバ識別子５４９ａ、仮想サーバ識別子５４９ｃ、仮想ディスク識別子５４９ｄ、および格納先ボリューム名５４９ｋを必ず含む。
【００９９】
移行に必要であれば、管理ソフトウェア５１４から間接的に取得できるもの、または、管理プロバイダから直接的に取得できるものに限り、他の識別パラメータを同レコードに含んでもよい。例えば、ボリューム共有グループ５４９ｂ、ファイルシステム上のパス５４９ｅ、ディスクドライブの接続位置５４９ｆ、物理サーバ側ポート５４９ｇ、ゾーン名５４９ｈ、ストレージ側ポート５４９ｉ、ストレージドメイン５４９ｊなどを含む。
【０１００】
また、物理サーバ管理プログラム５５１、ストレージ管理プログラム５５６、ネットワーク管理プログラム５５４が複数あり、識別子が重複する恐れのあるときには、同対象マッピングテーブル５４９を作成する移行制御プログラム５１５により、重複しないものへ変更する手続きを含んでもよい。
【０１０１】
図１３に示すボリューム接続設計テーブル５５０は、移行対象のボリュームを、移行先において物理サーバへどのように接続するかという設定を保持するものである。同テーブル５５０は、移行された（または、移行が予定された）ボリューム名５５０ａに対し、移行先ボリューム名５５０ｂ、移行先の物理サーバ識別子５５０ｃ、ディスクドライブの接続位置５５０ｅ、接続先物理サーバのポート５５０ｄを保持し、移行先においてボリュームと物理サーバ上のポートの間に定義されるパスと等しい数のレコードが作成されている。
【０１０２】
２．構成情報の取得方法
管理コンピュータが、ストレージ装置の機能を使用して、仮想サーバの移行を行うには、移行元の或る仮想サーバが移行対象に指定されたときに、このストレージ機能を適用すべきボリューム、すなわち、当該仮想サーバが使用している仮想ディスクを格納している移行対象ボリュームを特定する必要がある。ところが、前述の通り、ストレージ、サーバ、ネットワーク等の各装置を管理するためのプログラムは、基本的には、サーバ・ネットワーク・ストレージといったそれぞれが担当する層を管理するように特化され、かつ、そのように設計されている。そのため、システムを構成する複数の層を跨って管理を行うことができるプログラムは一般に存在しない。
【０１０３】
さらに、ストレージ管理プログラム５５６が移行対象ボリュームに対してストレージ機能を適用するには、管理者は、ストレージ管理プログラム５５６が解釈可能な識別子（例えば、ボリューム名５５７ａ）により対象ボリュームを指定しなければならない。しかし、仮想ディスクの所在を管理する物理サーバ管理プログラム５５１が、物理ディスクドライブとしてボリュームを特定するために使用している識別子は、ストレージ管理プログラム５５６が使用する識別子と同じであるとの保証はない。例えば、物理サーバはＳＣＳＩ  Ｉｎｑｕｉｒｙコマンドの応答が含むデバイス識別子又はこれを基にボリューム固有の識別子（例えば、デバイス番号５５２ｉ）を生成するのに対し、ストレージ管理プログラム５５６は、独自に管理用の論理的な識別子としてボリューム名５５７ａを生成している。
【０１０４】
この理由として、ストレージ装置に、物理サーバに、公開しないボリュームが存在するため、これらボリュームを論理的に区別しなければならないこと等があげられる。例えば、コピーされたボリュームなど、コピー元ボリュームと物理的に異なるボリュームにコピー元ボリュームのデバイス識別子を引き継がせ、物理サーバが構成変更を意識させないようにアクセス先ボリュームを変更する機能、即ち、オンラインボリュームマイグレーション機能をストレージ装置に実装する際には、ＳＣＳＩ規格が定めるデバイス識別子は同じになるが、ストレージ管理上、コピー元ボリュームとコピー先ボリュームとは違うボリュームとして操作されなくてはならず、デバイス識別子（物理サーバへ公開する識別子）とは別に管理用の識別子を持たなければならない。
【０１０５】
そこで、管理コンピュータは、デバイス固有の識別子に基づくのではなく、ボリュームを物理サーバに接続する際の位置情報をもとに、ボリュームの識別、ボリュームの特定を行う。例えば、ＳＣＳＩ規格においてＨＢＡポートごとに付与される、ＬＵＮが位置情報に該当する。デバイス固有の識別子が全ての装置を跨って一意であるのに対し、ＬＵＮはイニシエータ（物理サーバ側）のポートに対して一意である。
【０１０６】
デバイス固有の識別子が必ず一意であることと併せて、デバイス固有の識別子は、ボリュームに記録された内容と一対一に対応させることができる。デバイス固有の識別子は、例えば、複数の物理サーバからボリュームを共有するときや、同一ボリュームに対して複数パスを制御するマルチパスソフトウェアを構成するときに、物理サーバから見てボリュームの同一性を識別するために使用される。サーバは、接続されたボリュームの内容を全て読み込んで、ボリューム同士を比較するまでもなく、Ｉｎｑｕｉｒｙコマンドにより、デバイス固有の識別子をもとに、ボリュームの同一性を調べることができる。このようなデバイス固有の識別子はふつう、サーバ装置内部での識別動作に使用されており、装置外の管理プログラムに対して公開されていない。そのため、このデバイス固有の識別子を調べる場合は、Ｉｎｑｕｉｒｙコマンドを発行し得るプログラム（エージェント）を物理サーバに導入し、特別にインタフェースを設ける必要がある。
【０１０７】
一方で、ＬＵＮは、物理サーバからアクセスが可能なように、単に何番目に接続されているボリューム（論理ユニット）かを示す動的なアドレスの一種であり、複数のサーバを跨ってボリュームの内容を識別する用途には使われない。例えば、ある物理サーバにマウントされていたボリュームを、以前とは異なるＬＵＮを付与して、他の物理サーバで使用することができるようにする等、物理サーバがボリュームに接続する際のルートを変更することができる。
【０１０８】
ポートを表す識別子と、ＬＵＮは、ＳＣＳＩプロトコルが定める、各装置間での接続を実現するために必要なアドレス情報であり、管理コンピュータ５００上の管理プログラム５１４により、各装置の管理プロバイダを経由して容易に取得できる。このように、管理プロバイダや管理プログラムがアドレス情報の特定を装置外のネットワークを経由する点でアウトオブバンド方式である。
【０１０９】
図１４に物理サーバ１０、ファイバチャネルスイッチ５５、ストレージ装置１００の構成を例示する。管理サーバ５００上の管理プログラム５１４は、各装置上の管理プロバイダ１４ｃ、５５ａ、１６６を通して各装置における構成情報を取得する。
【０１１０】
仮想サーバ１７は、仮想化プログラム１４が提供する論理空間１７ａ上で稼働する。仮想化プログラム１４の実装方式は多様である。物理サーバが備えるハードウェアは、ある論理的に分割されたハードウェアとしてユーザに提供される。論理的に分割されたハードウェアは論理空間１７ａ上で動作する。
【０１１１】
同図に示すように、例えば、ディスクへのアクセスは、ストレージスタック１４ａと呼ばれる階層化された構造によって抽象化されたハードウェアを介して行われる。ハードウェアが分割された論理空間で稼働することを内容とする仮想サーバもまた同様に、仮想サーバのＯＳが実現するストレージスタック１７ｂを介して、仮想ディスクへアクセスする。
【０１１２】
同図の場合、仮想サーバ１７が使用する仮想ディスク１４ｅは、仮想プログラム１４のストレージスタックによって、論理ボリューム１４ｄ上に定義されるファイルシステムのファイルとして管理される。仮想サーバ１７からは、仮想ディスク１４ｅがストレージスタック１７ｂを経由して接続された物理ディスクドライブであるかのように認識される。
【０１１３】
仮想化プログラム１４の実装の如何によっては、主に、論理ボリュームに対するアクセスがストレージスタックの複数のレイヤを介することによるオーバヘッドを避ける目的で、ファイル形式を介さず直接的に論理ボリュームへのアクセスを提供する形式もある（パススルーディスク形式）。
【０１１４】
ストレージスタック１４ａの論理ボリュームマネージャ以下の階層では、記憶域は一つのボリューム（または物理ディスクドライブ）として管理されている。マルチパスドライバは、同一のボリュームに対する複数のパスを制御し、ディスクアクセスの負荷分散やフェイルオーバを実現する。デバイスドライバやポートドライバは、ストレージ装置やネットワークアダプタの差異を吸収し、それら機器のサーバへの実装の方式によらず、上位層からは同様にＲＥＡＤ／ＷＲＩＴＥコマンドによるアクセスされることを可能にする。
【０１１５】
前述の通り、管理コンピュータは、ボリュームの特定情報として、ボリュームの接続の位置の特定情報である、デバイスドライバ（または論理ボリュームマネージャ）から取得できるＬＵＮと、ポートドライバから取得できるポートＷＷＮとを用いている。マルチパスドライバにより使用されるパスが動的に変更される場合、ポート情報が上位レイヤに対し隠蔽されることがあるため、マルチパスドライバが管理しているパス制御情報を参照して、現在使用されているポートが特定される。
【０１１６】
一方、ストレージ装置１００にはストレージドメイン１００ｂが定義されており、ストレージドメインは、ホスト（物理サーバ１０）側ポート１５ａと関連づけられている。さらに、同ストレージドメイン１００ｂにおいて、ボリューム１００ａを物理サーバ１０（またはホスト側ポート１５ａ）に対してどのＬＵＮで提供するかが定義されている。
【０１１７】
また、仮想化プログラム１４は、仮想サーバ１７が使用している仮想ディスク１４ｅが、どのＬＵＮを付与された物理ディスクドライブに格納されているかの情報を保持している。ここで、ホスト側ポート１５ａについて、物理サーバ１０で使用しているＬＵＮと、ストレージ装置１００側で設定しているＬＵＮとを比較することにより、仮想サーバ１７が使用しているストレージ装置１００内のボリュームが一意に特定される。
【０１１８】
ファイバチャネルスイッチ５５は、ゾーンによりネットワーク上の複数の機器に対する、各種のアクセス制御を行っている。複数の装置が仮想サーバ、仮想ディスクの移行に関係する場合、例えば、移行元のスイッチと移行先のスイッチで、共有ボリュームに同じようにアクセスできるようにゾーンを構成してもよい。そのためには、ネットワーク管理プログラム５５４が、管理プロバイダ５５ａを介してゾーン構成情報を取得し、ゾーン管理テーブル５５を作成しておく必要がある。
【０１１９】
仮想サーバと仮想ディスク、および、仮想ディスクを格納するボリュームは、必ず一対一に対応するとは限らない。そこで、仮想サーバをサーバ間で移行し、それに伴い、仮想ディスクをストレージ間で移行する際には、複数の仮想サーバと複数のボリュームの相互の依存関係が加味されることが必要である。そこで、仮想サーバとボリュームの関係を示す構成例を説明する。図１５（ａ）に示すように、仮想サーバが複数の仮想ディスクを持つこと、あるいは複数の仮想ディスクが同じボリュームに格納されていること、さらには、仮想ディスクの種別により、依存関係は多様に存在する。
【０１２０】
図１５（ａ）において、仮想サーバ７０２ａは、複数の仮想ディスク７０２ｇおよび７０２ｉを別のボリューム７０２ｆおよび７０２ｈに格納する。したがって、仮想サーバ７０２ａが移行対象に指定された場合は、ボリューム７０２ｆおよび７０２ｈの両方も移行対象となることを管理コンピュータは検出する。
【０１２１】
さらに、ボリューム７０２ｈは仮想サーバ７０２ｂが使用している仮想ディスク７０２ｊをも格納しているため、仮想サーバ７０２ａが移行対象に指定された場合は、仮想サーバ７０２ｂも移行対象となる可能性がある。
【０１２２】
また、同様に同一のボリューム７０２ｋを共有している仮想サーバ７０２ｃおよび仮想サーバ７０２ｄが異なる物理サーバ上にあった場合、管理コンピュータは、これを適切に検出して移行を行わなければならない。
【０１２３】
複数の仮想化プログラムが同じボリュームを共有する際には、ボリューム共有サービス１４ｂが動作する（ボリューム共有サービス１４ｂの詳細については実施形態２において後述する）。
【０１２４】
これら仮想サーバとボリュームの依存関係は、仮想ディスク管理テーブル５５２が保持する対応関係が総合的に解析されることによって明らかとなる。
【０１２５】
さらに、仮想サーバ７０２ｅのように、仮想ディスクがファイル形式ではなく、ボリューム７０２ｏを直接的に利用するパススルーディスク形式であった場合についても同様である。これら仮想ディスクの種別は、仮想ディスク管理テーブル５５２の仮想ディスクタイプ５５２ｅから判別される。
【０１２６】
一方、図１５（ｂ）に示すように、ストレージの機能も仮想サーバの移行に合わせて移行対象となる。仮想サーバ７０２ｐはボリューム７０２ｓを使用しているが、７０２ｓおよび７０２ｔはボリュームバックアップ機能を使用しているコピーペアの関係にあるため、必要に応じて、これら二つのボリュームは移行先ストレージ装置に同時に移行される。
【０１２７】
仮想サーバ７０２ｑが使用しているボリューム７０２ｖは、ボリュームスナップショット機能を使用して作成した、親ボリューム７０２ｕのスナップショット（子）であるため、移行の際に、スナップショットを親ボリューム７０２ｕに統合されるか、あるいは、スナップショット関係が維持されたまま両方のボリュームが同時に移行される。
【０１２８】
さらに、仮想サーバ７０２ｒが使用しているボリューム７０２ｘは、もともとボリューム７０２ｗに外部接続されたもの、または、ストレージ装置間でコピーされたものであるため、必要に応じて統合されるか、または、両者の関係が維持されたまま移行されればよい。これらの構成は、ボリューム管理テーブル５５７およびボリュームマッピングテーブル５５９から明らかである。
【０１２９】
このように、仮想サーバ、仮想ディスク、および、ボリュームは多様な依存関係を有する。図１の計算機システムの移行方式では、これらの依存関係を検出する方法を提供する。ただし、検出された依存関係をもとに、同時移行の必要が生じる組み合わせを列挙するのに留め、実際の移行を進むか否かを管理者に委ねてもよい。
【０１３０】
３．移行方法
移行のためのシステムを図１６に示す。管理コンピュータの移行制御プログラム５１５は、第２の物理サーバ２０（ソース物理サーバ：仮想サーバ移行元）上で稼働していた仮想サーバ７００ａを、第１の物理サーバ１０（デスティネーション物理サーバ：仮想サーバ移行先）へ移行する。同時に、仮想サーバ７００ａが使用する仮想ディスクを格納していた第２のストレージ装置２００内のボリューム７００ｂを、第１のストレージ装置１００内のボリューム７００ｄへと移行し、移行元仮想サーバ７００ａで元々使用されていた仮想ディスク７００ｇを移行先仮想サーバ７００ｆに再接続する。これにより、計算機システムは、仮想サーバおよびその仮想ディスクの移行前の接続関係を維持しながら、ストレージ装置の機能、換言すれば、複数のストレージ間の連携機能であり、例えば、既述の外部接続機能を利用して、仮想サーバ及び仮想ディスクを移行元とは異なる物理サーバおよびストレージ装置へ移行することができる。
【０１３１】
移行前の状態では、第２の物理サーバ２０と第２のストレージ装置２００とは相互に接続され、仮想サーバ７００ａは第２の物理サーバ２０上で、仮想サーバ７００ａの仮想ディスクは、第２のストレージ装置２００で稼働していた。このとき、第２の物理サーバ２０、第２のネットワークスイッチ６５、第２のストレージ装置２００は、それぞれ管理コンピュータ５００上の物理サーバ管理プログラム５５１、ネットワーク管理プログラム５５４、ストレージ管理プログラム５５６により管理されている。
【０１３２】
移行の処理を行うために、移行制御プログラム５１５は、それら管理プログラム５１４を通じて、移行元である第２の物理サーバ２０、第２のストレージ装置２００、第２のネットワークスイッチ６５から夫々の構成情報を取得する。取得した構成情報を、移行制御プログラム５１５は、対象マッピングテーブル５４９において管理し、移行管理者が移行したい仮想サーバ７００ａを指定すると、対応する仮想ディスクを格納するボリューム７００ｂを特定する。
【０１３３】
続けて、管理者は、管理コンピュータ５００に対して、移行先物理サーバ、そして、必要に応じてストレージ装置を指定する。指定した内容を移行制御プログラム５１５はボリューム接続設計テーブル５５０に保持する。同テーブルには、移行先物理サーバのみならず、論理的な位置やネットワークポートに関するフィールドがあるが、これらは移行制御プログラム５１５が特定のアルゴリズムにしたがって算出するようにしてもよいし、管理者が設定してもよい。アルゴリズムは公知の内容でよく、少なくとも移行対象仮想サーバについて物理サーバ情報５５３を参照し見積もった要求リソースの総容量を、移行先物理サーバおよび移行先ストレージ装置が空き容量として有するか否かを判別できる能力を有するものであればよい。
【０１３４】
移行先として第１の物理サーバ１０および第１のストレージ装置１００が指定、或いは、決定されたとき、移行制御プログラム５１５は、各管理プログラム５１４を経由して、第１のネットワークスイッチ５５を含む各装置を操作し、第１のストレージ装置１００のストレージ資源を第１の物理サーバ１０へ正常に提供できるよう通信路を設定する。この設定には、第１のネットワークスイッチ５５におけるゾーニングや、第１のストレージ装置１００におけるストレージドメインの設定が含まれる。必要であれば、管理コンピュータ或いは管理者は、移行処理の前に第１の物理サーバ１０、第１のストレージ装置１００、および第１のネットワークスイッチ５５を、それぞれの管理プログラム５１４の管理対象として新規に登録しておき、各装置を管理コンピュータ５００から操作可能な状態にする手順を行ってもよい。この登録が既にある場合には、装置の論理構成を正確にするために、管理コンピュータは、最新の構成情報を取得する手順を実施し、各管理テーブルを更新しておくようにしてもよい。
【０１３５】
管理コンピュータは、ボリューム７００ｂが保持するデータをストレージ装置２００，１００間で移行させるために、第１のストレージ装置１００と第２のストレージ装置間の連携機能、例えば、第１のストレージ装置１００が有する外部接続機能を使用する。対象マッピングテーブル５４９において移行対象のボリューム７００ｂを識別するボリューム名５４９ｋは、もともとストレージ管理プログラム５５６で付与していた識別子５５７ａであるため、管理コンピュータは、ボリューム名を使用してストレージ管理プログラム５５６から第１のストレージ装置１００の外部接続機能の設定を行うことができる。
【０１３６】
管理コンピュータは、第２の物理サーバ２０上の仮想サーバ７００ａと全ての仮想ディスクとの接続７００ｃを切断し、仮想サーバ７００ａを第１の物理サーバ１０に移行する。移行手段は、第２の物理サーバ２０の仮想化プログラム２４が有する仮想サーバを、静止化する機能（仮想サーバを一時的に停止し、管理用の情報やメモリの内容を、ファイル形式で保存する機能）を使ってネットワーク（通信路９０）上を転送してもよいし、第１の物理サーバ１０に主要な設定情報を引き継いで、移行元仮想サーバとは別の仮想サーバを作成する方法でもよい。
【０１３７】
主要な設定情報とは、例えば、仮想サーバの識別子や所有者などの管理に関わる情報や、仮想ＣＰＵ数、仮想メモリや仮想記憶域のインタフェース構成などの仮想ハードウェアに関わる情報のことであり、少なくとも、移行対象仮想サーバが達成すべき機能を再現するための目的を果たすものである。これらの設定情報は仮想ディスク管理テーブル５５２、および、物理サーバ情報５５３において管理され、移行元・移行先物理サーバに反映される。ただし、仮想サーバの再作成が行なわれることにより、仮想サーバの識別子が変更される場合は、それに合わせて、管理コンピュータは、仮想ディスク管理テーブル５５２における仮想サーバ識別子５５２ｂや、対象マッピングテーブル５４９における仮想サーバ識別子５４９ｃを修正する。
【０１３８】
ボリューム７００ｂが第１のストレージ装置１００へ移行され、第１の物理サーバからボリューム７００ｄとして識別されるようになった後、移行制御プログラム５１５は、ボリューム７００ｄ内に格納する仮想ディスク７００ｇを、第１の物理サーバ１０に移行した仮想サーバ７００ｆへ再度接続する。
【０１３９】
移行の後において、仮想サーバと仮想ディスクとの適切な接続関係を再現するために、移行制御プログラム５１５は、移行元で作成しておいた対象マッピングテーブル５４９を参照し、同一レコードに記載された仮想サーバ識別子５４９ｃに対応する仮想ディスク識別子５４９ｄを持つ仮想ディスクを検出する。ここで移行制御プログラム５１５が検出した仮想ディスク識別子５４９ｄは、移行先物理サーバを管理する物理サーバ管理プログラム５５１に送信され、仮想ディスク管理テーブル５５２に設定され、次いで、この設定情報は、物理サーバ管理プログラム５５１から仮想サーバの移行先物理サーバ内のエージェントプログラムに送られ、当該物理サーバのメモリの管理テーブルに反映される。
【０１４０】
仮想ディスク識別子５４９ｄが仮想ディスクに記載されておらず、識別子を調べることができない場合は、ファイルシステム上のパス５４９ｅを使用すればよい。ただし、論理ボリューム上の位置（マウントポイントやドライブレターなど）は、ボリューム接続設計テーブル５５０を参照し、移行先の設定に合わせて変換する必要がある。
【０１４１】
移行先物理サーバに対する仮想ディスク管理テーブル５５２に設定された値は、既述のとおり、移行先物理サーバ管理プログラム５５１により実際に物理サーバ上のＯＳや仮想化プログラムへ反映される。同様に、例えば、ディスクドライブの位置など、ボリューム接続設計テーブル５５０に設定されている値は、移行制御プログラム５１５を介して物理サーバ管理プログラム５５１によって設定される。さらに、仮想ディスク管理テーブル５５２や物理サーバ情報５５３に設定されるべき情報であり、対象マッピングテーブル５４９およびボリューム接続設計テーブル５５０で保持されていない値は、仮想サーバと仮想ディスクとの接続関係の再設定に直接必要とされない付加的な情報である。そのため、前述の接続関係に関わる情報が物理サーバに反映されるときに、移行先物理サーバ１００上のＯＳや仮想化プログラムにより、この情報が自動的に補完されてもよいし、移行制御プログラム５１５や物理サーバ管理プログラム５５１によって自動的に補完されてもよい。
【０１４２】
詳細な移行手順について、図１７に示す処理フローダイアグラムにより説明する。ステップ７０１ａにおいて、移行作業を実施する管理者は、移行制御プログラム５１５に、移行対象の仮想サーバを指定する。
【０１４３】
移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、移行元である第２の物理サーバ２０の仮想サーバ識別子５５２ｂおよびその仮想ディスク識別子５５２ｄなどの管理情報を事前に取得しておく。物理サーバ管理プログラム５５１は、常に最新の構成情報を管理できるように、第２の物理サーバ２０上の管理プロバイダを定期的に呼び出して管理テーブルを更新するが、移行の際にこの更新作業を行ってもよい。
【０１４４】
移行制御プログラム５１５は、ステップ７０１ａにおいて、管理プログラム５１４から情報を取得するための認証に必要であれば、管理プログラム５１４に登録された管理者権限の入力を管理者に求めてもよい。既述のように、管理コンピュータが、計算機システムを構成する各装置からその構成情報を取得するのは、アウトオブバンド方式に基づいているために、セキュリティを高め、管理ネットワーク９０において送受信される情報の第三者による傍受を防止することが重要となる。
【０１４５】
同ステップ７０１ａにおいて、移行制御プログラム５１５は、まず空の対象マッピングテーブル５４９を作成し、管理者が仮想サーバを移行対象に指定したことを契機に、一つのレコードを作成する。当該レコードには、物理サーバ識別子５４９ａ、仮想サーバ識別子５４９ｃ、仮想ディスク識別子５４９ｄ、ファイルシステム上のパス５４９ｅ、ディスクドライブ位置５４９ｆ、ホスト側ポート５４９ｇなど、移行元物理サーバ２０に関連する情報が仮想ディスク管理テーブル５５２から複写される。
【０１４６】
ステップ７０１ｂにおいて、移行制御プログラム５１５は、物理サーバ管理プログラム５５１、ストレージ管理プログラム５５６、および、ネットワーク管理プログラム５５４が提供する第２の物理サーバ２０、第２のストレージ装置２００、および、ファイバチャネルスイッチ６５の各構成情報を参照し、ステップ７０１ａにおいて指定された移行対象仮想サーバおよび仮想ディスクについて、対象マッピングテーブル５４９を編集し、移行対象ボリューム名５４９ｋを特定する。
【０１４７】
対象マッピングテーブル５４９には、ステップ７０１ａにおいて、移行対象となる仮想ディスクが格納されているディスクドライブの位置５４９ｆと、ホスト側ポート５４９ｇが保持されている。これらの情報に対し、移行制御プログラム５１５は、ストレージ管理プログラム５５６を経由する等してストレージドメイン管理テーブル５５８を参照し、ホスト側ポート名リスト５５８ｄおよびＬＵＮ５５８ｅと比較することにより、移行対象のボリューム名５５８ｇを特定する。
【０１４８】
特定されたボリューム名５５８ｇは、対象マッピングテーブル５４９のボリューム名フィールド５４９ｋに複写される。また、移行対象ボリュームが接続されているポート５４９ｉ、ストレージドメイン５４９ｊ、さらには対応するゾーン名５４８ｈについても、特定されたボリュームに関連するストレージ側ポート５５８ｃ、ストレージドメイン名５５８ａ、ゾーン名５５５ａの値が複写される。
【０１４９】
ここで、移行制御プログラム５１５は、前述の図１５（ａ）および（ｂ）に示すような、仮想サーバと仮想ディスク等の依存関係を検出し、同時に移行すべき仮想サーバおよびボリュームを新たなレコードとして対象マッピングテーブル５４９へ追加してもよい。その依存関係が検出される方法として、移行制御プログラム５１５が、特定されたボリュームをキー値として、仮想ディスク管理テーブル５５２やボリューム管理テーブル５５７を検索し、同時に移行すべき仮想サーバの情報を逆引きすることがある。
【０１５０】
ステップ７０１ｃにおいて、管理者は移行制御プログラム５１５に対し、移行対象仮想サーバごとに少なくとも移行先である第１の物理サーバ１０、および、必要であれば移行先となる第１のストレージ装置１００を指定する。移行先ボリュームは、後述するように自動的に作成されるので、本ステップでは指定されない。このために、移行制御プログラム５１５は、物理サーバ管理プログラム５５１およびストレージ管理プログラム５５６を通じて、各装置の構成情報を事前に取得しておく。
【０１５１】
さらに、移行制御プログラム５１５はステップ７０１ｂにおいて特定された移行対象ボリュームについて、管理者の指定に従ってボリューム接続設計テーブル５５０を作成する。ボリューム接続設計テーブル５５０は、どの第１の物理サーバ１０の、どの位置に移行先ボリュームを接続するかという移行設定を保持する。ボリューム接続設計テーブル５５０には、移行対象のボリューム名５５０ａに対し、管理者が入力するか、または、移行制御プログラム５１５が特定のアルゴリズムに従って入力した移行先物理サーバ識別子５５０ｃ、移行先ストレージシリアル番号５５０ｄ、ディスクドライブ位置５５０ｅ、ホスト側ポート名５５０ｆが記入される。
【０１５２】
移行制御プログラム５１５は、ストレージ管理プログラム５５６に、他のボリュームと重複しないボリュームを移行先ボリュームとして発行させ、ストレージ管理プログラム５５６は、移行先ボリューム名フィールド５５０ｂにこれを記入する。ボリューム接続設計テーブル５５０の設定項目を入力するための方法は、例えば、次のようなものである。
【０１５３】
ステップ７０１ａにおいて管理者が移行対象として指定した仮想サーバについて、管理者が、ステップ７０１ｂにおいて作成された対象マッピングテーブル５４９を参照することで、移行対象ボリューム名５４９ｆを取得でき、これによって、ボリューム接続設計テーブル５５０の移行対象ボリューム名５５０ａが判明する。
【０１５４】
ステップ７０１ｃにおいて、管理者が、移行先物理サーバ５５０ｃを指定すると、移行制御プログラム５１５は、移行先物理サーバ５５０ｃが使用するポート名を物理サーバ情報５５３のポート名リスト５５３ｇから取得する。
【０１５５】
移行制御プログラム５１５は、これをキーにして、移行先ストレージ装置１００におけるストレージドメイン管理テーブル５５８のホスト側ポート名リスト５５８ｄと比較する。移行先物理サーバのポート名を含むストレージドメインが既に定義されている場合は、移行先物理サーバ５５０ｃに接続されているボリューム名５５８ｇやそのＬＵＮ５５８ｅ、ストレージドメイン名５５８ａがわかる。この場合、既存のストレージドメインにおいて他の既存ボリュームと重複しないようにＬＵＮを付与して新たな移行先ボリュームを定義すればよい。
【０１５６】
ストレージドメイン管理テーブル５５８に、該当するレコードが存在しない場合は、移行制御プログラム５１５は、ポート管理テーブル１６７から、移行先物理サーバが接続可能なポート名１６７ｄに移行先物理サーバ１０のポート名を含むレコードを検索する。これにより、移行制御プログラム５１５が移行先物理サーバと接続するポートを検出できれば、管理者は、当該ストレージ側ポートに新しくストレージドメインを作成して移行先ボリュームを新たに定義する。
【０１５７】
ストレージ側ポートの使用状況は、ポート管理テーブル１６７において管理されており、ストレージ管理プログラム５５６はこれを参照することができる。ただし、これらボリューム接続設計テーブル５５０に定義される構成情報は、ステップ７０１ｃの段階では装置へ未だ反映されないため、装置の構成変更は実際には行われない。
【０１５８】
以上により、移行制御プログラム５１５は、移行先ストレージシリアル番号５５０ｄ、ディスクドライブ位置５５０ｅを設定できる。移行先物理サーバと移行先ボリュームの間には、物理サーバ１０が備えるポート数やストレージ装置１００が備えるポートの数によって、複数のパスが存在してもよく、ボリューム接続設計テーブル５５０には、定義されるパスの数だけレコードが作成される。
【０１５９】
ステップ７０１ｄにおいて、移行制御プログラム５１５は、ネットワーク管理プログラム５５４を用いてファイバチャネルスイッチ５５および６５の構成情報を取得して、ＳＡＮ上で外部接続用の経路が構成可能であり、かつボリューム接続設計テーブル５５０に指定された構成が可能であることを確認する。より具体的には、移行制御プログラム５１５は、ファイバチャネル上のゾーン構成と、ストレージ装置におけるストレージドメイン構成を参照し、ストレージ装置間の外部接続７００ｅおよび移行先ストレージ装置１００から移行先物理サーバ１０へストレージ資源を提供する際の物理的な接続性とが得られることや、これが各装置の仕様に制限されないこと、識別子が重複しないことを検証する。
【０１６０】
検証結果が不適である場合、移行制御プログラム５１５は、仮想サーバの移行のための当該仮想サーバの指定を解除するか、管理者によって指定された値を変更することによって、対象マッピングテーブル５４９およびボリューム接続設計テーブル５５０を修正する。
【０１６１】
ステップ７０１ｅにおいて、移行制御プログラム５１５は、対象マッピングテーブル５４９およびボリューム接続設計テーブル５５０を基に、移行のための設定を作業者に対して提示する。移行制御プログラム５１５は、移行のための設定に対して、管理者からの承認が得られれば次のステップ７０１ｆに進むが、得られない場合はステップ７０１ａへ戻り、再度、この設定をやり直す。なお、管理者の承認が得られた場合、仮想化プログラム１４が有する仮想サーバ移行機能により移行対象の仮想サーバが、移行先以外の他の物理サーバ２０へ移行されることを禁止するようにしてもよい。
【０１６２】
ステップ７０１ｆにおいて、移行制御プログラム５１５は、ストレージ管理プログラム５５６を通じ、ボリューム接続設計テーブル５５０にしたがってボリュームマッピングテーブル５５９、ストレージドメイン管理テーブル５５８、およびボリューム管理テーブル５５７を設定する。ストレージ管理プログラム５５６は、移行制御プログラム５１５が施した設定にしたがって第１のストレージ装置１００および第２のストレージ装置２００の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。
【０１６３】
即ち、移行制御プログラム５１５は、ストレージ管理プログラム５５６を介して、ファイバチャネルインタフェース７００ｅで第１のストレージ装置１００および第２のストレージ装置２００を接続し、移行先ボリューム７００ｂを仮想ボリュームとして設定し、移行対象ボリューム７００ｂを移行先ボリューム７００ｄにマッピングし、そして、後述のとおり移行先仮想サーバ７００ｆを移行先ボリューム７００ｄに接続することによって、移行先仮想サーバ７００ｆは移行先ボリューム７００ｄにアクセスすることによって移行対象ボリューム７００ｂにアクセスすることができる。
【０１６４】
ステップ７０１ｇにおいて、ストレージ管理プログラム５５６は、外部接続のための設定を完了すると、移行制御プログラム５１５に対して完了通知を発行する。
【０１６５】
外部接続の後、さらに移行対象ボリュームの実体が第２のストレージ装置２００から第１のストレージ装置１００に移行される必要がある場合には、移行制御プログラム５１５は、ストレージ管理プログラム５５６を介して、第１のストレージ装置１００の装置内コピー機能を使って、移行対象ボリューム７００ｄの複製ボリュームを作成し、移行対象ボリューム７００ｂから複製ボリュームへのコピーが完了したところで、複製ボリュームを正ボリュームとしての新たな移行先ボリュームに設定すればよい。移行制御プログラムは、装置内コピー機能に代えて、第１のストレージ装置１００及び／又は第２のストレージ装置２００のオンライマイグレーション機能を使って、移行対象ボリューム７００ｂを、移行先ボリューム７００ｄ（仮想ボリューム）を介して、第１のストレージ装置１００の他の実ボリューム（新たな移行先ボリューム）にコピーすることもでき、この形態では、ボリュームを停止させることなくボリュームの移行が可能になる。新たな移行先ボリュームが設定されると、第１のストレージ装置１００と第２のストレージ装置との外部接続は解放されて、仮想ボリューム７０３ｄと移行済仮想ボリューム７０３ｇとの接続が解放され、その際、新たな移行先ボリュームと仮想ボリューム７０３ｇとの接続が設定される。
【０１６６】
ステップ７０１ｈでは、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、移行対象ボリューム７００ｂを使用する全ての移行元仮想サーバ７００ａと当該移行元サーバが接続する仮想ディスクとの当該接続を切断し、仮想サーバ７００ａを削除する。
【０１６７】
ステップ７０１ｉにおいて、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、移行先物理サーバ１０上に移行元仮想サーバ７００ａと同じ識別子を持つ仮想サーバ７００ｆを復元する。前述の通り、ステップ７０１ｉは仮想サーバの識別子を変更するようにしてもよい。この場合、物理サーバ管理プログラム５５１は、変更した識別子を再度登録し直す。
【０１６８】
ステップ７０１ｊにおいて、移行制御プログラム５１５は、ボリューム接続設計テーブルに保持されている情報にしたがい、ストレージ管理プログラム５５６を用いて、移行先物理サーバ１０から移行先ボリューム７００ｄへのパスを設定する。
【０１６９】
ステップ７０１ｋにおいて、移行制御プログラム５１５は、対象マッピングテーブル５４９を参照し、物理サーバ管理プログラム５５１を用いて、仮想ディスク７００ｇと仮想サーバ７００ｆの接続関係７００ｈを復元する。
【０１７０】
ステップ７０１ｊにおいてパスが設定されると、移行先物理サーバ１０は、移行先ボリューム７００ｄを検出することができる。この段階では、復元された仮想サーバ７００ｆには仮想ディスクが接続されておらず、移行先物理サーバ１０の仮想ディスク管理テーブル５５２について、仮想ディスク識別子５５２ｄやそのタイプ５５２ｅに値が記入されていない。
【０１７１】
そこで、ステップ７０１ｋでは、移行制御プログラム５１５は、検出された移行先ボリューム７００ｄの中から適切な仮想ディスク７００ｇを選び出し、仮想ディスク管理テーブル５５２に記入する。このとき、適切な仮想ディスク７００ｇを選ぶには、検出された移行先ボリューム７００ｄ内の仮想ディスク識別子を調べ、対象マッピングテーブル５４９に保持されている仮想ディスク識別子５４９ｄに合致するものを選んでもよいし、ファイルシステム上のパス５４９ｅとして保持されているファイル名に合致するものを選んでもよい。
【０１７２】
ただし、ファイルシステム上のパス５４９ｅは、移行の前後でドライブレター等ファイルシステム上の位置が変化していることを加味し、移行制御プログラム５１５は、ボリューム接続設計テーブル５５０が保持するディスクドライブ位置５５０ｅに等しいものへ変換した上でファイル名（またはファイルシステム上のパス）の照合処理を行う。仮想ディスク管理テーブル５５２において設定した仮想ディスクの識別子を元に、仮想化プログラム１４に変更が反映され、仮想サーバ７００ｆは仮想ディスク７００ｇを使用して稼働できるようになる。
【０１７３】
本実施形態が提供する移行システムは、ストレージ装置が有する移行機能を活用して、仮想サーバ、および、仮想ディスクを異なる物理サーバおよびストレージ装置へ移行することができる。また、移行先仮想サーバを再作成する方法は、移行元および移行先物理サーバ間に大容量のデータ転送用ネットワーク（通信路９０）を敷設することを必要とせず、移行に伴う、イーサネット（登録商標）ワーク構成への変更を最小限にとどめることができる。また、管理者は移行対象の仮想サーバと移行先物理サーバを指定するだけでよく、ストレージ装置の機能を使用するための設定作業のための他の作業負荷は生じない。
【０１７４】
またさらに、この実施形態によれば、第１のストレージ装置と第２のストレージ装置との間の外部接続によって、第２のストレージ装置は、移行対象ボリュームから移行先ボリュームへのコピーの完了を待たずして、仮想サーバが移行される先の物理サーバへ移行元ボリュームを提供することができる。
【０１７５】
（実施形態２）
第２の実施形態では、仮想化プログラムが提供する仮想サーバ移行機能と、ストレージ装置が提供する外部接続機能と、を連携させて、仮想サーバおよびその仮想ディスクを無停止で移行させるシステムが提供される。本実施形態は、仮想化プログラムによる仮想サーバ無停止移行機能を利用する。同移行機能は、移行元および移行先の物理サーバ上の仮想化プログラムが、仮想ディスクを格納したボリュームを共有し、仮想サーバの状態や設定情報、メモリ上のデータがネットワーク経由で転送されるだけで、仮想サーバを停止することなくその移行を可能にするというものである。
【０１７６】
仮想サーバを無停止で異なる物理サーバ上へ移行するには、仮想サーバで実行中のアプリケーションの状態やメモリ上で使用中のデータを転送し引き継ぐ必要があり、仮想化プログラムが協調して動作する仕組みが必要となる。
【０１７７】
また、この仮想化プログラムが提供する移行機能は、複数物理サーバに対する負荷分散機能や、高信頼化機能（フェイルオーバ機能）と合わせて使用される場合も多く、仮想ディスクの移行時間を待つことが許されないために、仮想ディスクを格納するボリュームを共有する構成をとる。
【０１７８】
本実施形態の物理構成および論理構成は、図１に示す実施形態１の構成と同じである。ただし、共有ボリュームを構成するために、移行元となる第２の物理サーバ２０および移行先となる第１の物理サーバ１０の仮想化プログラム１４では、図１４に示すボリューム共有サービス１４ｂが必ず稼働している。また、同一のボリュームを共有する物理サーバは一つのグループとし、仮想ディスク管理テーブル５５２において、ボリューム共有グループ名５５２ｃにより識別される（図６参照）。
【０１７９】
ボリュームを共有するには、ボリュームに保持したデータの一貫性を保証する仕組みが必要である。これは、複数の物理サーバから無秩序に書き込みが行われた場合、ある物理サーバが使用している記憶領域が、他の物理サーバによって上書きされてしまうためである。
【０１８０】
そこで、同じボリューム共有グループに属する複数の物理サーバ上のボリューム共有サービス１４ｂは、ストレージスタック１４ａにおけるファイルシステム層や、論理ボリューム層で排他制御を行ってボリュームに保存されるデータの整合性を保証する。例えば、ファイルシステム層において各物理サーバや各仮想サーバがアクセスしてよい領域を排他的に設ける、あるいは論理ボリューム層やデバイスドライバ層で、ボリュームに予約やロックを行い、一つの物理サーバが一時的にボリュームを占有する、といった仕組みがある。そのため本実施形態においては、例えば通信路９０を使用してボリューム共有サービス１４ｂが記憶域の予約に関する制御情報を送受信する。あるいは、ストレージ装置が、ボリュームに対するロック情報（例えばＳＣＳＩ規格で定義される予約）を、複数の物理サーバ装置間で同期させる仕組みを備える。
【０１８１】
本実施形態において提供される仮想サーバおよび仮想ディスクの移行方法の概念図を図１８に示す。移行前の状態において第２の物理サーバ２０上の仮想サーバ７０３ａは、第２のストレージ装置２００内のボリューム７０３ｂに格納されている仮想ディスクを使用していたとする。本実施形態では仮想サーバ７０３ａが移行対象に指定された場合、移行制御プログラム５１５は管理プログラムから構成情報を取得し、ボリューム７０３ｂを特定する。続けて、移行制御プログラム５１５は、ボリューム７０３ｂを第１のストレージ装置１００内の仮想ボリューム７０３ｄへ関連づけるよう、外部接続設定７００ｅを行う。
【０１８２】
さらに、移行制御プログラム５１５は、同ボリューム７０３ｄを第１の物理サーバ１０から利用可能にすることで、第１の物理サーバ１０および第２の物理サーバ２０の両方から同じボリューム７０３ｂにアクセスできるようにし、同ボリューム７０３ｂを共有ボリュームに設定する。そして、仮想化プログラム１４および２４の間で仮想サーバ無停止移行機能７０３ｈを利用し、第２の物理サーバ２０上の仮想サーバ７０３ａを第１の物理サーバ１０上へ移行する。
【０１８３】
本実施形態では、仮想化プログラムが有する仮想サーバ無停止移行機能により、仮想サーバと仮想ディスクの接続関係が管理・維持されるため、実施形態１におけるステップ７０１ｋのようにこれを再構築する手順は不要である。
【０１８４】
移行制御プログラム５１５は、ボリューム７０３ｂ内に仮想ディスクを格納する、全ての仮想サーバを移行し終えたとき、共有ボリューム設定を解除する。必要であれば、移行制御プログラム５１５は、第１のストレージ装置１００が有するオンラインボリュームマイグレーション機能を使用して、移行元ボリューム７０３ｂが保持するデータを第１のストレージ装置１００内の別のボリュームへ移行する手順を行ってもよい。
【０１８５】
仮想サーバ移行機能７０３ｈが、共有ボリュームの排他制御を行うために、ストレージ装置が有するボリュームのロック機能を必要とする場合、移行元ボリューム７０３ｂに対するロック状態を取得し、第１のストレージ装置１００内の仮想ボリューム７０３ｄに対するロック状態と同期させてもよい。例えば、移行制御プログラム５１５が、ストレージ管理プログラム５５６を用いて、移行元ボリューム７０３ｂ、および、仮想ボリューム７０３ｄに対するロック状態を管理し、さらに、物理サーバ管理プログラム５５１を用いて、仮想化プログラム２４および１４のボリューム共有サービスのロック制御と同期させる。また、移行制御プログラム５１５が、外部接続７０３ｅを設定した際に、ストレージ装置１００においてボリューム７０３ｂおよび７０３ｄ間のロック状態の整合をとるようにしてもよい。
【０１８６】
また、共有ボリュームが構成される際には、ボリュームに複数の物理サーバから別々の経路によりアクセスされる環境で、夫々の物理サーバがアクセスするボリュームが実は同じボリュームであることが認識されなければならない。ボリュームの同一性とは、本質的には、夫々のボリュームが保持している属性等の内容が同じであることを指し、共有ボリュームが構成されるための事前要件として内容の確認が行われる必要がある。
【０１８７】
しかし、一般に、ボリュームが実装されるための処理には多くのコストを要するために、移行制御プログラム５１５が、ボリュームの内容を全て読み込み比較する、という識別手法は現実的でない。そこで、次に述べる二通りのアプローチがある。
【０１８８】
一つは、複数のボリュームに同じ一意な識別情報を書き込んでおくことである。この結果、外部接続によるマッピングが施されたボリュームの組（例えば、ボリューム７０３ｂおよび７０３ｄ）は、夫々が別のストレージ装置に存在しても、同一の識別情報を有するために、物理サーバに同一のボリュームと識別される。
【０１８９】
他のアプローチは、物理サーバがボリュームの識別に使用するボリュームに固有なデバイス識別子（ＳＣＳＩ  Ｉｎｑｕｉｒｙ応答に含まれるボリューム固有の識別子）を用いるものである。
【０１９０】
ボリュームに固有なデバイス識別子は、全てのボリュームに対して一意であるから、ボリュームの保持する内容と一対一に対応する。外部接続によりお互いにマッピングされたボリュームの組（例えば、ボリューム７０３ｂおよび７０３ｄ）では、夫々のデバイス識別子が異なるために、両者のボリュームが同一ボリュームとは認識されない。このように、デバイス識別子が同じであることを要求する、ボリュームの実装システムでは、共有ボリュームを構成するための要件としての、マッピング７０３ｅが行われる際に、仮想ボリューム７０３ｄが移行元ボリューム７０３ｂの識別子を引き継ぐ手順を移行手順に追加される。識別子の引き継ぎについては実施形態３にて後述する。
【０１９１】
さらに、異なるストレージ装置を経由して共有ボリュームが構成されるために、移行期間中に移行元および移行先両方のストレージ装置にアクセスが行われる場合は、夫々のストレージがキャッシュを持つことによりデータの不整合が発生する可能性がある。キャッシュは、ストレージ装置がボリュームの内容を更新する前に、高速な記憶装置（キャッシュメモリ）にデータを一時的に保存し、物理サーバのリード・ライトアクセスに対する応答性能を高めるための仕組みである。
【０１９２】
仮想サーバが、第２のストレージ装置２００から移行対象ボリュームへアクセスした場合は１段階のキャッシュとなるが、第１のストレージ装置１００からアクセスした場合には、外部接続機能７０３ｆにより２段階のキャッシュを経ることになる。キャッシュはストレージ装置ごとに独立しているため、ストレージ装置１００でキャッシュしたデータが、外部接続を経由して共有ボリューム７０３ｂに記録されるのと非同期で、ストレージ装置２００でキャッシュしたデータが共有ボリューム７０３ｂに記録されることにより、共有ボリューム７０３ｂのデータに不整合が生じるおそれがある。したがって、仮想サーバの移行の際に、外部接続機能を持つ方の装置（本実施形態ではストレージ装置１００）でキャッシュを無効化することとした。
【０１９３】
このための詳細な手順を、図１９に示す処理フローダイアグラムに基づいて説明する。ステップ７０１ａからステップ７０１ｆは実施形態１における処理と同じである。ただし、ステップ７０１ｂが、移行制御プログラム５１５が物理サーバ管理プログラム５５１を用いて、仮想化プログラム２４および１４の両方においてボリューム共有サービス１４ｂが有効化されているか、ボリューム共有が可能かを検証する手順を含んでもよい。
【０１９４】
ステップ７０４ｇにおいて、外部接続設定が完了すると、ストレージ管理プログラム５５６は、移行制御プログラム５１５に対して設定完了通知を発行し、物理サーバ１０からマッピング先仮想ボリューム７０３ｄへのパスを設定する。移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、必要であれば、ボリューム共有サービス１４ｄを有効化し、ボリューム７０３ｂを共有ボリュームとして構成する。
【０１９５】
ステップ７０４ｈにおいて、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、対象マッピングテーブル５４９に定義された仮想サーバ７０３ａを第１の物理サーバ１０へ移行する。
【０１９６】
ステップ７０４ｉにおいて、移行制御プログラム５１５は、対象マッピングテーブル５４９の仮想サーバ識別子５４９ｃを、物理サーバ管理プログラム５５１を通じて物理サーバ情報５５３から取得できる移行元物理サーバ２０上の仮想サーバ識別子５５３ｈと比較して、移行対象ボリューム７０３ｂを使用する全ての仮想サーバ７０３ａが移行されたか否かを判定する。移行元物理サーバ２０上に、移行対象仮想サーバ７０３ａが残っていれば、移行制御プログラム５１５は、ステップ７０４ｈへ戻って仮想サーバの無停止移行処理を繰り返す。
【０１９７】
ステップ７０４ｊにおいて、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、移行元物理サーバ２０におけるボリューム共有構成を解除し、移行元物理サーバ２０からボリューム７０３ｂへのアクセスを遮断する。ステップ７０４ｊが、ストレージ管理プログラム５５６により当該パス設定を解除する手順や、ネットワーク管理プログラム５５４によりゾーン構成を変更してアクセスを禁止する手順を含んでもよい。
【０１９８】
ステップ７０４ｋにおいて、移行制御プログラム５１５は、既述のとおり、ストレージ管理プログラム５５６により、ボリューム７０３ｂの内容をオンラインボリュームマイグレーション機能により第１のストレージ装置１００内の別のボリュームに移行する。
【０１９９】
本実施形態による構成情報の管理システムは、移行対象に指定した仮想サーバが使用しているボリュームに対して、選択的かつ自動的にストレージの機能を適用する。したがって、このシステムは、仮想化プログラムが有する仮想サーバの無停止移行機能と連携して、ストレージ装置が有する外部接続機能やオンラインボリュームマイグレーション機能を活用しながら、仮想サーバを停止することなくこれを移行できる。また、実施形態３に述べるマルチパスソフトウェアの導入が不要である。
【０２００】
（実施形態３）
第３の実施形態は、ストレージ装置のボリューム無停止移行機能を用いた、仮想サーバおよびその仮想ディスクの移行方法を提供する。ストレージ装置のボリューム無停止移行機能とは、外部接続されたボリュームに対するパス交替とボリューム識別子の引継ぎにより、移行対象のボリュームを異なるストレージ装置へボリュームに対する仮想サーバのアクセスを無停止で移行する機能である。
【０２０１】
外部接続機能は、例えば、第２のストレージ装置２００内にあるボリュームを、第１のストレージ装置１００内の仮想ボリュームであるかのように関連付ける技術であるため、ボリュームが保持する内容は同一であっても、物理サーバから認識できるボリュームの識別子（ＳＣＳＩ  Ｉｎｑｕｉｒｙ応答に含まれるデバイス識別子）は異なる。
【０２０２】
そこで、外部接続が設定される際に、仮想ボリュームがボリュームの識別子を引き継ぐことにより、物理サーバからボリュームの変更を意識させることなく、ストレージ装置間でボリュームを移行させることができる。さらに、移行制御プログラム５１５は、物理サーバからのボリューム７０３ｂに対するアクセスを停止することなく、ボリュームにアクセスするためのストレージ装置側ポートを切り替える必要があるため、切り替え先ポートに切り替え元ポート名を引き継がせ、マルチパスドライバによりアクセスパスを動的に切り替える処理を行う。
【０２０３】
移行制御プログラム５１５は、ポート識別情報を引き継ぐために、例えば、ポートに複数のポート識別子を付与できるＮＰＩＶ（Ｎ＿Ｐｏｒｔ  ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を利用する。
【０２０４】
本実施形態に係る移行方法の概念を図２０に示す。本実施形態は、通信路５２を、移行元および移行先ネットワークを相互接続するために、両者の間に敷設する点において、前述の第１および第２の実施形態と異なる。これは、第１の物理サーバ１０が第２のストレージ装置２００へ接続する、または、第２の物理サーバ２０が第１のストレージ装置１００へ接続する必要が生じるためである。
【０２０５】
移行対象として仮想サーバ７０５ａが指定されると、管理コンピュータ５００上の移行制御プログラム５１５により、仮想サーバ７０５ａが利用している第２のストレージ装置２００内にあるボリューム７０５ｂが特定される。
【０２０６】
移行制御プログラム５１５は、ストレージ管理プログラム５５６を用いて、ボリューム７０５ｂを移行先となる第１のストレージ装置１００内のボリューム７０５ｄへの外部接続７０５ｅを設定する。さらに、ボリューム識別子７０５ｆをボリューム７０５ｄへ付与する（７０５ｇ）。
【０２０７】
外部接続に続く一連の処理が完了した後、移行制御プログラム５１５は、仮想化プログラム２４が有するストレージスタックのうち、マルチパスドライバ層で、アクセスを移行元のストレージ装置２００へのパス７０５ｃから移行先のストレージ装置１００へのパス７０５ｉへ切り替えると、仮想化プログラム２４のファイルシステム層や仮想サーバ７０５ａにアクセス先ボリュームが変更されたことを察知されずに、ボリューム７０５ｂに対するアクセスを継続させることができる。
【０２０８】
ただし、移行元ストレージ装置１００のストレージコントローラ１５０内のキャッシュが有効になっている場合、実施形態２と同様に、キャッシュ上のデータを移行対象ボリューム７０５ｂへ適用するタイミングの如何によっては、ボリュームが保持するデータに不整合が生じる可能性がある。そのため、移行制御プログラム５１５は、第１のストレージ装置１００におけるキャッシュを無効化しておくことで、このキャッシュの不整合を回避する必要がある。
【０２０９】
このボリューム移行処理により、ボリューム７０５ｂが移行先ストレージ装置１００からアクセス可能となるため、移行制御プログラム５１５は、仮想化プログラム２４および１４が提供する仮想サーバ移行機能を使用するなどして、第１の物理サーバ１００へ移行対象仮想サーバ７０５ａを移行する。このとき、ボリューム７０５ｄを共有ボリュームとして構成する。この仮想サーバの移行方法については第２の実施形態で記載した方法と同じである。詳細な移行手順を図２１に示す処理フローダイアグラムにおいて説明する。ステップ７０１ａからステップ７０１ｅは実施形態１における処理と同じである。
【０２１０】
ただし、ステップ７０１ｂは、移行制御プログラム５１５が物理サーバ管理プログラム５５１を用いて、仮想化プログラム２４および１４の両方においてボリューム共有サービス１４ｂが有効化されているか、ボリューム共有が可能かを検証する手順を含んでもよい。さらに、マルチパスドライバにより実現されるパス交替機能が利用可能かを調べる手順を含んでも良い。
【０２１１】
ステップ７０６ｆは、移行元物理サーバ２０へパス交替機能を導入する。既に複数パスを制御できるマルチパスドライバが移行元物理サーバ２０に導入されているか、または、ＯＳのパス交替機能が有効化されていれば、このステップは省略されてもよい。ただし、交替パスの導入について、物理サーバの再起動を必要とする実装形態が一般的であるため、このステップの開始までに、それを完了させておかなければならない。
【０２１２】
ステップ７０６ｇにおいて、移行制御プログラム５１５は、ストレージ管理プログラム５５６を通じ、ボリューム接続設計テーブル５５０にしたがってボリュームマッピングテーブル５５９を設定する。ストレージ管理プログラム５５６は、ボリュームマッピングテーブル５５９にしたがって第１のストレージ装置１００および第２のストレージ装置２００の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。
【０２１３】
ステップ７０６ｈにおいて、外部接続設定が完了すると、ストレージ管理プログラム５５６は、移行制御プロラグム５１５に対して設定完了通知を発行し、移行元ボリューム７０５ｂの識別情報７０５ｆを移行先ボリューム７０５ｄへ複写する（７０６ｈ）。
【０２１４】
ステップ７０６ｉにおいて、移行制御プログラム５１５は、ストレージ管理プログラム５５６を用いて、移行元ボリューム７０５ｂが物理サーバ２０への接続に使用していたポート名を、移行先ボリューム７０５ｄが使用するポートへ引き継がせる。さらに、移行元物理サーバ２０上のポートに対し、移行先仮想ボリューム７０５ｄへ接続するパス７０５ｉを定義する。
【０２１５】
次に、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、新たに設定されたパスをステップ７０６ｆにおいて構成された交替パスに加え、一方、接続が確立された段階で移行元ボリューム７０５ｂへの既存のパス７０５ｃを削除する。これにより、移行制御プログラム５１５は、移行対象仮想サーバ７０５ａからのボリューム７０５ｂに対するアクセスを停止させることなく、アクセス先を移行元ストレージ装置２００から移行先ストレージ装置１００に変更する。以降のステップ７０４ｇから７０４ｋは、第２の実施形態において仮想化プログラム２４および１４の有する機能を用いて仮想サーバ無停止移行を行う手順と同じである。
【０２１６】
本実施形態に述べた移行手順は、まずボリュームの無停止移行を行った後で、仮想化プログラムが有する仮想サーバ無停止移行機能を使用した。しかしながら、これを逆の順で行っても、本実施形態において必要となる機能には差異が生じず、同様に仮想サーバおよび仮想ディスクの移行が実現されるため、必ずしも上述の移行手順に限定されるものではない。
【０２１７】
本実施形態が提供する移行方法は、異なるストレージ装置を経由して共有ボリュームを構成する必要がなく、実施形態２において片側のキャッシュを無効化することによる性能劣化を切り替え時にのみ来たすという程度に不利益を最小限にとどめることができる。
【０２１８】
（実施形態４）
第４の実施形態は、仮想化プログラムが有する仮想ディスク無停止移行機能と、ストレージ装置の外部接続機能とを連携させた、仮想サーバおよびその仮想ディスクの移行方法を提供する。本実施形態は、実施形態３に述べるようなボリューム識別子の引き継ぎを行わない。仮想化プログラムの中には、ファイル形式の仮想ディスクを別のボリュームに、当該ボリュームに対する仮想サーバからのアクセスを無停止で移行する機能を有するものがある。外部接続機能を使用すると、マッピング先（移行先）ボリュームにはマッピング元（移行元）ボリュームとは別の識別子が付与される。そのため、物理サーバからは外部接続されたこれらのボリュームを、内容は同じであっても別のものとして識別する。そこで、移行制御プログラム５１５は、外部接続によりマッピングされたボリュームの組に対して、仮想化プログラムが有する仮想ディスク無停止移行機能を用いて、ボリューム内部の仮想ディスクを移行する。
【０２１９】
第４の実施形態によって提供される移行方法のシステムは、上記ボリューム間の仮想ディスク無停止移行のコピー動作を、実際にはコピーさせず、ストレージ装置が有する外部接続機能により代替する。代替処理の実現にあたっては、図２２に示すように、仮想化プログラム２４およびストレージコントローラ２５０に、本実施形態に特徴的な構造である、インタセプタ５１５ａおよびコマンドトラッカ（１５０ａおよび２５０ａ）が追加される。後述するように、コマンドトラッカ１５０ａ、２５０ａは、物理サーバがボリュームに対して要求コマンドを発行されたことを検出・解釈し、コマンドを応答する機能を実現する。
【０２２０】
ここで、仮想化プログラムが提供する仮想ディスク無停止移行機能の通常の動作、即ち、インタセプタ５１５ａやコマンドトラッカが存在しない形態での動作を説明する。移行制御プログラム５１５は、仮想ディスクを格納しているボリュームとは別のボリュームを仮想化プログラム２４に認識させ、利用可能な状態にしておく。仮想ディスクの移行は、物理サーバ管理プログラム５５１が、仮想化プログラム２４に対し、ある仮想サーバの仮想ディスクを指定し、別のボリュームへ移動するよう要求することから開始される。
【０２２１】
仮想ディスクのボリューム上の位置は、ファイルシステム７０７ｈにおいて、どのボリュームの、どの記録先番地（セグメント番号）に当たるかを認識することによって管理されている。仮想化プログラム２４は、ファイルシステム７０７ｈで管理している当該仮想ディスクの記録先番地を参照し、移行先の記録先番地の指定と合わせて、仮想ディスクの移行処理を行うコマンドを生成する。このコマンドは、データムーバ７０７ｉと呼ばれる、コピー処理を担当するコンポーネントへ伝えられる。データムーバ７０７ｉはストレージ装置に対してＳＣＳＩコマンドを発行し、仮想ディスクを保持するデータ領域を、移行元ボリュームから移行先ボリュームへコピーするようストレージ装置へ要求する。
【０２２２】
ストレージ装置では、移行元ストレージコントローラ２５０において、データムーバ７０７ｉからコピーを要求するＳＣＳＩコマンドを受け、移行先ストレージコントローラ１５０と連携してコピー処理を行う。必要であれば、コピー処理の進捗状況が、ストレージコントローラ１５０や２５０から、データムーバ７０７ｉへ逐次通知される。コピーが完了すれば、移行先ストレージコントローラ１５０がその旨をデータムーバ７０７ｉに対し応答する。コピー完了応答を受けたデータムーバ７０７ｉは、ファイルシステム７０７ｈにおいて管理されている仮想ディスクの記録先番地を変更する。これにより、当該仮想サーバは、移行先のボリュームにある仮想ディスクを使用して稼働するようになる。以上が、仮想ディスク無停止移行機能を使用した際に行われる、通常の移行動作である。
【０２２３】
本実施形態の概念を図２３に示す。同図において、移行が行われる以前には、第２の物理サーバ２０上の仮想サーバ７０８ａが使用する仮想ディスク７０８ｂが、第２のストレージ装置２００内のボリューム７０８ｃ内に格納されている。本実施形態は、通信路５２を、移行元および移行先ネットワークを相互接続する目的で敷設する点において、前述の第１および第２の実施形態と異なる。これは、第２の物理サーバ２０が第１のストレージ装置１００へ接続する必要が生じるためである。
【０２２４】
仮想サーバ７０８ａが移行対象に指定され、ボリューム７０８ｄが移行先ボリュームに指定された場合、まず、ボリューム７０８ｃが移行対象であることが特定され、ボリューム７０８ｃは、移行先である第１のストレージ装置１００が有する外部接続機能を用いて、移行先ボリューム７０８ｄへマッピングされる。
【０２２５】
次に、移行先ボリューム７０８ｄがストレージ管理プログラム５５６により移行元物理サーバ２０へ接続されると、ボリュームの識別子が異なるために、仮想化プログラム２４は移行元ボリューム７０８ｃとは別のボリュームとして認識する。ただし、このとき、移行元物理サーバ２０上の仮想化プログラム２４が認識するファイルシステムに対し、移行制御プログラム５１５によって制御されるインタセプタ５１５ａが干渉し、ボリューム７０８ｄ内の全ての仮想ディスク７０８ｈの存在が隠蔽される。これにより、ボリューム７０８ｄが追加されたときには、仮想ディスクを全く保持しない、空の新規追加ボリュームとしてファイルシステムに認識される。
【０２２６】
なお、このように、インタセプタ５１５ａは、ファイルシステムが保持／管理しているファイル（仮想ディスク）の記録先番地を制御する機能を持つ。ファイルシステムは、ファイルを抽象化したメタデータ（例えば、ファイルの開始番地と記録長）として管理しており、読み込みの際に参照する、あるいは新規書き込みの際に空の記録先番地を問い合わせるなどの場合にメタデータを使用する。インタセプタ５１５ａはこのメタデータを作成・消去したり、書き換えたりすることができる。例えば、実際には記録済みファイルのメタデータを削除して空であるように見せかけたり、空きの領域として特定の番地を応答して新規書き込み先を指定したり、といった制御を可能とする。
【０２２７】
さらに、物理サーバ管理プログラム５５１が第２の物理サーバ２０上の仮想化プログラム２４に対して、仮想ディスク７０８ｂを、ボリューム７０８ｄへコピーするよう要求する。この仮想ディスクをコピーする際に第２の物理サーバ２０から発行されるＳＣＳＩコマンドは移行元のコマンドトラッカ２５０ａによりトラップされるために実際のコピー７０８ｆは行われず、即座に移行先のコマンドトラッカ１５０ａが、仮想化プログラム２４に対しコピー処理の完了を応答する。コマンドトラッカ２５０ａがトラップ動作を行うか否かを決定する条件判定のために必要であれば、コマンドトラッカ２５０ａが第２のストレージ装置２００から第１のストレージ装置１００へのコピーを実施する前に、移行先のストレージ装置１００が移行先および移行元ボリュームが外部接続されたボリュームの組であることを検出する手順をさらに行ってもよい。
【０２２８】
移行先ボリューム７０８ｄは始め、空のボリュームとして物理サーバ２０へマウントされる。データが作成される時や移動される時には、仮想化プログラム２４内のデータムーバ７０７ｉが、何も記録されていない空白の領域から、データの記録先番地を選び出す。仮想化プログラム２４は、ボリューム７０８ｃおよびボリューム７０８ｄが同じ内容をもつことを知らないため、仮想ディスク７０８ｂが存在する番地とは関係なく別の番地をコピー先として確保してしまう可能性がある。これを避けるために、インタセプタ５１５ａは、論理ボリュームマネージャの下層にあるデータムーバ７０７ｉによって行われる、このコピー先番地を指定する手順に干渉し、７０８ｄにおける仮想ディスクのコピー先番地が必ずボリューム７０８ｃにおけるコピー元番地と同じになるよう制御する。これにより、ボリューム７０８ｃおよび７０８ｄのデータ配置は必ず同じとなる。
【０２２９】
仮想化プログラム２４が仮想ディスク移行７０８ｆの完了通知を受け取った時には、データムーバ７０７ｉにより正常な手続きとして仮想ディスクの記録先番地が変更されており、仮想ディスク７０８ｂが隠蔽され、仮想ディスク７０８ｈの番地がファイルシステムに公開される。
上記の一連の操作により、実際には仮想ディスクのコピーを行うことなく、仮想化プログラム２４には仮想ディスクが移行されたように認識される。詳細な移行手順について、図２４に示す処理フローダイアグラムにおいて説明する。
【０２３０】
ステップ７０１ａからステップ７０１ｅは実施形態３における処理と同じである。ステップ７０９ｆにおいて、移行制御プログラム５１５は、ストレージ管理プログラム５５６を通じ、ボリューム接続設計テーブル５５０にしたがってボリュームマッピングテーブル５５９を設定する。ストレージ管理プログラム５５６は、ボリュームマッピングテーブル５５９にしたがって第１のストレージ装置１００および第２のストレージ装置２００の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。ただし、必要であれば、ステップ７０９ｆに、移行制御プログラム５１５により、移行元物理サーバ２０に対してインタセプタ５１５ａを導入する手順や、移行元ストレージ装置２００に対してコマンドトラッカ２５０ａの有効化を指令する手順を含んでもよい。
【０２３１】
ステップ７０９ｇにおいて、ストレージ管理プログラム５５６は、移行先ボリューム７０８ｄを物理サーバ２０へ接続するパス７０８ｇを定義する。次に、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、新たに接続されたボリューム７０８ｄを仮想化プログラム２４から検出させる。このとき、仮想化プログラム２４は、ボリューム固有のデバイス識別子が異なるために、移行先ボリューム７０８ｄを、移行元ボリューム７０８ｃとは異なるボリュームとして認識する。また、このとき、インタセプタ５１５ａが移行先ボリューム７０８ｄ内の仮想ディスクの存在を隠蔽するため、移行先ボリューム７０８ｄは空のボリュームと認識される。これにより、システムは、移行元ボリューム７０８ｃが格納する仮想ディスクに対して仮想化プログラム２４が有する仮想ディスク無停止移行機能が適用できる状態となる。
【０２３２】
ステップ７０９ｈにおいて、移行制御プログラム５１５は、対象マッピングテーブル５４９およびボリューム接続設計テーブル５５０を参照し、物理サーバ管理プログラム５５１を用いて、移行対象ボリューム７０８ｃ内の仮想ディスクについて移行要求を発行させる。移行すべき仮想ディスクは対象マッピングテーブル５４９の、仮想ディスク識別子５４９ｄにより特定できる。このとき、前述の方法により、実際にはコピー動作を行うことなく仮想ディスクは移行先ボリューム７０８ｄへ移行される。
【０２３３】
ステップ７０９ｉにおいて、移行制御プログラム５１５は、物理サーバ管理プログラム５５１を用いて、移行対象ボリューム７０８ｃを参照し、移行対象の仮想ディスクが残っているかを判別する。残っていなければ次のステップに進むが、残っていれば前のステップ７０９ｈへ戻り、仮想ディスクの移行を反復的に行う。
【０２３４】
以降のステップは、移行先ボリューム７０８ｄを用いて共有ボリュームを構成し、移行元物理サーバ２０上の全ての仮想サーバ７０８ａを、移行先物理サーバ１０へ移行するものであり、実施形態３における７０４ｇからステップ７０４ｋと同じである。
【０２３５】
本実施形態が提供する移行方法により、移行先ボリュームが移行元ボリュームから識別情報を引き継ぐ機能を持たない場合においても、無停止に対象ボリュームを移行できる。
【０２３６】
なお、ボリュームの移行とは、仮想サーバの移行先物理サーバから移行対象ボリュームの仮想ディスクにアクセスできる状態をいい、移行先ストレージ装置の実ボリュームを移行先ボリュームとして設定して、移行対象ボリュームが移行される場合の他、移行対象ボリュームが移行先ストレージ装置の仮想ボリュームにマッピングされる状態を含むものである。
【符号の説明】
【０２３７】
10：第１の物理サーバ
11：ＣＰＵ
12：メモリ
13：オペレーティングシステム
14：仮想化プログラム
15：ファイバチャネルインタフェース
16：イーサネット（登録商標）インタフェース
17：仮想サーバ
20：第２の物理サーバ
50：第１のストレージエリアネットワーク
51：第２のストレージエリアネットワーク
90：管理ネットワーク
100：第１のストレージ装置
150：第１のストレージコントローラ
160：応答プログラム
161：リダイレクトプログラム
162：ボリューム制御プログラム166：ストレージ管理プロバイダ
200：第２のストレージ装置
250：第２のストレージコントローラ
500：管理コンピュータ
515：移行制御プログラム
549：対象マッピングテーブル
550：ボリューム接続設計テーブル
551：物理サーバ管理プログラム
554：ネットワーク管理プログラム
556：ストレージ管理プログラム
【図１ａ】
0005976842.tif 000002
【図１ｂ】
0005976842.tif 000003
【図１ｃ】
0005976842.tif 000004
【図２】
0005976842.tif 000005
【図３】
0005976842.tif 000006
【図４】
0005976842.tif 000007
【図５】
0005976842.tif 000008
【図６】
0005976842.tif 000009
【図７】
0005976842.tif 000010
【図８】
0005976842.tif 000011
【図９】
0005976842.tif 000012
【図１０】
0005976842.tif 000013
【図１１】
0005976842.tif 000014
【図１２】
0005976842.tif 000015
【図１３】
0005976842.tif 000016
【図１４】
0005976842.tif 000017
【図１５ａ】
0005976842.tif 000018
【図１５ｂ】
0005976842.tif 000019
【図１６】
0005976842.tif 000020
【図１７】
0005976842.tif 000021
【図１８】
0005976842.tif 000022
【図１９】
0005976842.tif 000023
【図２０】
0005976842.tif 000024
【図２１】
0005976842.tif 000025
【図２２】
0005976842.tif 000026
【図２３】
0005976842.tif 000027
【図２４】
0005976842.tif 000028