(57)【要約】  管理計算機は、ストレージの構成情報と、ホスト計算機およびＶＭの構成情報と、ＶＭのサービスレベルの情報と、ストレージ装置およびネットワークの性能情報を記憶する。ストレージ構成の変化によってホスト計算機がボリュームアクセスに使用するアクセスパスが変更された際に、ホスト計算機の上で動作するＶＭのＩ／Ｏ性能が変化する可能性がある。管理計算機はストレージの状態変化を検知した場合には、ＶＭに定義されているサービスレベルの充足状況の変化を算出し、ＶＭを動作させるのに適切なホスト計算機を選出する。
2016121005.tif 000002
【特許請求の範囲】
【請求項１】
複数のホスト計算機と、１以上のストレージ装置を有するストレージシステムがネットワークで接続されて構成される計算機システムを管理するための管理計算機であって、
前記ストレージシステムは、ホスト計算機からのアクセスパスが複数設けられたボリュームを有し、
前記管理計算機は、前記ボリューム及び前記ホスト計算機の構成情報と、前記計算機システムの性能情報と、前記ホスト計算機で実行される対象物の要求サービスレベルを管理しており、
前記管理計算機は、前記ストレージシステムの構成に変化があったことを検知すると、
前記構成情報と前記性能情報に基づいて、前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、管理計算機。
【請求項２】
前記管理計算機は、
前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを、前記ホスト計算機から前記対象物がアクセスする前記ボリュームへの前記アクセスパスごとに算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスの情報を選出する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項３】
前記管理計算機は、
前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスが存在する場合、前記アクセスパスの情報を前記ホスト計算機に通知する、
ことを特徴とする、請求項２に記載の管理計算機。
【請求項４】
前記ストレージ装置は、前記ホスト計算機からの前記複数のアクセスパスのうち、優先的に使用すべきアクセスパスを前記ホスト計算機に通知するよう構成されており、
前記管理計算機は、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスが存在する場合、前記ストレージ装置に、前記アクセスパスの情報を優先的に使用すべきアクセスパスとして前記ホスト計算機に通知させる、
ことを特徴とする、請求項２に記載の管理計算機。
【請求項５】
前記管理計算機は、前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出するとき、
前記ボリュームへのアクセスパスが存在する前記ホスト計算機について、前記提供可能なサービスレベルを算出する
ことを特徴とする、請求項１に記載の管理計算機。
【請求項６】
前記管理計算機は、前記ボリュームへのアクセスパスが存在しない前記ホスト計算機が存在した場合、
前記ストレージ装置の設定変更を行うことで、前記ホスト計算機へのアクセスパスを形成できるか判定し、
前記アクセスパスを形成できる場合、前記ボリュームへのアクセスパスが存在しない前記ホスト計算機についても、前記提供可能なサービスレベルを算出する
ことを特徴とする、請求項１に記載の管理計算機。
【請求項７】
前記管理計算機は、検知した前記ストレージシステムの構成の変化が、前記ホスト計算機から前記ボリュームへのアクセスパス数が減少する変化であった場合、
前記対象物を実行している前記ホスト計算機で前記対象物を実行した場合に、前記要求サービスレベルを満たすことができるか判定し、
前記要求サービスレベルを満たすことができないと判定された場合にのみ、
前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項８】
前記管理計算機は、
前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機が存在しないと判定された場合、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算が存在しない旨を、前記管理計算機が有する入出力装置に出力する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項９】
前記管理計算機は、
前記ホスト計算機が前記ボリュームにアクセスする際に使用する前記アクセスパスを変更することで、前記対象物を前記ホスト計算機で実行した場合に提供可能なサービスレベルが現在のサービスレベルより向上すると判定された場合、
前記対象物を実行した場合に提供可能なサービスレベルが現在のサービスレベルより向上する前記アクセスパスの情報を出力することを特徴とする、請求項２に記載の管理計算機。
【請求項１０】
前記対象物は、仮想計算機であることを特徴とする、請求項１に記載の管理計算機。
【請求項１１】
前記サービスレベルは、前記対象物が前記ボリュームにアクセスする際の、Ｉ／Ｏレスポンスタイムであることを特徴とする、請求項１に記載の管理計算機。
【請求項１２】
前記ストレージシステムは、第１論理ユニットを有する第１ストレージ装置と、第２論理ユニットを有する第２ストレージ装置を含み、
前記第１論理ユニットと前記第２論理ユニットはいずれも、前記ホスト計算機から、同一の前記ボリュームとしてアクセス可能に構成されており、
前記ホスト計算機は、前記第１論理ユニットへのアクセスが不可能になった場合、アクセス先を前記第２のボリュームに切り替えるように構成されている、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項１３】
前記管理計算機は、前記第１論理ユニットへのアクセスが不可能になった場合、前記ストレージシステムの構成に変化があったと判断する、
ことを特徴とする、請求項１２に記載の管理計算機。
【請求項１４】
前記ホスト計算機が、複数の前記対象物を実行しており、
前記管理計算機は、検知した前記ストレージシステムの構成の変化が、前記ボリュームへのアクセスパス数が減少する変化であった場合、前記ボリュームを使用している対象物が前記要求サービスレベルを満たしているか判定し、
前記ボリュームを使用している対象物が前記要求サービスレベルを満たしていない場合、
前記ボリュームを使用している対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを、前記ホスト計算機で実行されている対象物ごとに算出し、
前記ボリュームを使用している対象物に加えて、前記ホスト計算機で実行されているすべての対象物について、前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、請求項７に記載の管理計算機。
【請求項１５】
複数のホスト計算機と、１以上のストレージ装置を有するストレージシステムがネットワークで接続されて構成される計算機システムの管理方法であって、
前記ストレージシステムは、前記ホスト計算機からのアクセスパスが複数設けられたボリュームを有し、
前記計算機システムを管理する管理計算機は、前記ボリューム及び前記ホスト計算機の構成情報と、前記計算機システムの性能情報と、前記ホスト計算機で実行される対象物の要求サービスレベルを管理する計算機であって、
前記管理計算機は、前記ストレージシステムの構成に変化があったことを検知すると、
１）前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
２）前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、計算機システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置を含む計算機システムの管理技術に関する。
【背景技術】
【０００２】
ハードウェア障害に対し、アプリケーションの可用性を向上させる技術としてストレージ装置をＨＡ（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ）構成とする技術がある。特許文献１では、第１のストレージ装置の第１の実ボリュームと、第１のストレージ装置と接続した第２のストレージ装置の第２の実ボリュームの２つの実ボリュームに同一の仮想ボリュームＩＤを付与することでホスト計算機に対して１つの仮想ボリュームを提供し、ホスト計算機が第１の実ボリュームに対して書き込みを行った場合には、第１のストレージ装置は第１の実ボリュームにデータを書き込むとともに、第２のストレージ装置にデータを転送し、第２のストレージ装置が受信したデータを第２の実ボリュームに書き込むことでＨＡ構成を実現する技術が開示されている。【０００３】
一方で、ホスト計算機の性能向上により、例えば物理的なホスト計算機の上で仮想的なホスト計算機（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）を動作させることが可能となっている。さらにホスト計算機間でＶＭが動作するホスト計算機を変更する技術（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅｓｏｕｒｃｅ  Ｓｃｈｅｄｕｌｅｒ）が知られている（例えば非特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１４／００２１３６号
【非特許文献】
【０００５】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ.ｖｍｗａｒｅ.ｃｏｍ／ｐｄｆ／ｖｍｗａｒｅ＿ｄｒｓ＿ｗｐ.ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１によれば、ＨＡ構成を構築する第１の実ボリュームと第２の実ボリュームは、ホスト計算機からは同一のボリュームとして認識される。また、ＨＡ構成を構築する各実ボリュームに対するアクセスパスは、ホスト計算機からは単一の仮想ボリュームに対する複数の交替パスとして認識される。そのため、ＨＡを構成する或る実ボリュームへのパスが障害等の理由によってホスト計算機から利用不可となった場合には、ホスト計算機が有するパス管理機能によって利用するパスの切り替えが行われ、ホスト計算機は異なる実ボリュームに対してＩ／Ｏを継続する。【０００７】
しかしながら、上記の処理によってホスト計算機は複数のストレージ上の、複数のボリュームに対してＩ／Ｏを発行することが可能となるが、逆に実際にアクセスする実ボリュームが配置されるストレージ装置を意識することができないこととなる。【０００８】
ここで、Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙの観点から、距離の離れたデータセンタに配置されたストレージ装置の実ボリューム間でＨＡ構成を構築する場合がある。この場合であっても、実ボリュームに障害が発生し、アクセス不能となった場合には、ホスト計算機は遠隔のデータセンタのストレージ装置の実ボリュームにアクセス先を変更し、Ｉ／Ｏを継続することができる。しかし、アクセスパス変更後、ホスト計算機は遠隔のデータセンタに対し、アクセスを行うこととなりボリュームへのＩ／Ｏ性能が低下する。【０００９】
このとき、ホスト計算機の上でＶＭを動作させている場合には、実際のアクセス先となっているストレージ装置が属するデータセンタ内のホスト計算機にＶＭを移動させることによって、ＶＭからのＩ／Ｏ性能を回復することができる。しかしながら、ＶＭがアクセスするボリュームがＨＡ構成である場合には、ホスト計算機はアクセスするボリュームが実際に配置されているストレージ装置を意識することができず、Ｉ／Ｏ性能を回復することができる適切なＶＭ移動先のホスト計算機を選択することができない。【００１０】
本発明は上記の課題を鑑みてなされたものであり、ストレージ装置の構成状態が変化した場合であっても、ＶＭが動作する適切なホスト計算機を選択することができる管理計算機および計算機システムの管理方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１様態である管理計算機は、複数のホスト計算機と、１以上のストレージ装置を有するストレージシステムがネットワークで接続されて構成される計算機システムを管理する。ストレージシステムは、ホスト計算機からのアクセスパスが複数設けられたボリュームを有している。管理計算機は、ボリューム及びホスト計算機の構成情報と、計算機システムの性能情報と、前記ホスト計算機で実行される対象物（オブジェクト）の要求サービスレベルを管理している。【００１２】
管理計算機は、ストレージシステムの構成に変化があったことを検知すると、構成情報と性能情報に基づいて、対象物を各ホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、算出した結果に基づいて、要求サービスレベルを満たすことができるホスト計算機を選出する。
【発明の効果】
【００１３】
本発明によれば、ストレージ装置の状態が変化した場合に、適切なＶＭの配置やストレージへのアクセスパスを選択することができる。
【図面の簡単な説明】
【００１４】
【図１】計算機システムの構成図である。
【図２】ホスト計算機の論理的な構成を示すブロック図である。
【図３】ストレージ装置の論理的な構成を示すブロック図である。
【図４】仮想ストレージ装置と、ストレージ装置およびホスト計算機の論理的な構成を示すブロック図である。
【図５】管理計算機の記憶資源の内部構成を示すブロック図である。
【図６】ボリュームを管理するテーブルの例である。
【図７】ＨＡ構成の関係を管理するテーブルの例である。
【図８】ボリュームと、物理リソースの関係を管理するテーブルの例である。
【図９】物理リソースの種別を管理するテーブルの例である。
【図１０】ストレージとホスト計算機間の物理的な接続を管理するテーブルの例である。
【図１１】ボリュームに対して発行されているＩ／Ｏ量の情報を管理するテーブルの例である。
【図１２】物理リソースの性能情報を管理するテーブルの例である。
【図１３】ネットワークの性能情報を管理するテーブルの例である。
【図１４】ホスト計算機がストレージに対してアクセスする際に利用するパスを管理するテーブルの例である。
【図１５】ボリュームとＶＭの関係を管理するテーブルの例である。
【図１６】ＶＭのサービスレベルを管理するテーブルの例である。
【図１７】ホスト計算機間の接続関係を管理するテーブルの例である。
【図１８】ホスト計算機とＶＭの関係を管理するテーブルの例である。
【図１９】実施例１にかかるＶＭのホスト計算機間移動プランを生成する処理を示すフローチャートである。
【図２０】ＶＭのホスト計算機間移動を行った場合の影響を見積もる処理を示すフローチャートである。
【図２１】実施例１および実施例２にかかる、ＶＭ移動先のホスト計算機を特定する処理を示すフローチャートである。
【図２２】実施例２および実施例３にかかる、ＶＭのホスト計算機間移動プランを生成する処理を示すフローチャートである。
【図２３】実施例３にかかる、ＶＭ移動先のホスト計算機を特定する処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。なお、以下の説明では、「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００１６】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、実際にはプログラムは、計算機またはコントローラに含まれるプロセッサ（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェースデバイス（例えば通信ポート）を用いながら行う。そのためプログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する管理システム（例えば、管理用計算機（例えばサーバ））が行う処理であると理解して良い。ただし、説明が冗長になることを防ぐため、処理の主語がプログラムとして説明することがある。またプログラムは、プログラムソースから各計算機または各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００１７】
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、管理計算機が有するシリアルインタフェースやイーサーネットインタフェース（イーサーネットは登録商標）に、ディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用計算機を入出力デバイスの代替手段として用いる構成を採ってもよい。この場合管理計算機は、表示用情報を表示用計算機に送信することで表示用計算機に表示を行わせ、また入力用情報を表示用計算機から受信することで、表示用計算機から情報入力を受け付ける。
【００１８】
以後、計算機システムを管理し、ストレージシステムを管理制御する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機も含め）が管理システムである。
【００１９】
また、以下の説明では、「時刻」という言葉を用いるが、時刻は年、月、日といった情報も指し示しても良く、当然ながら時、分、秒（含む小数点以下の秒）を指し示しても良い。
【実施例１】
【００２０】
（１−１）本実施の形態の概要
ホスト計算機の上で動作するＶＭは、そのディスクイメージをホスト計算機が保持する記憶領域や、ストレージ装置のボリュームに保持する。ホスト計算機がＶＭのディスクイメージにアクセスできなくなった場合には、ＶＭを動作させることができなくなる。ＶＭの可用性を向上させるために、ＶＭのディスクイメージを格納するボリュームに、二台（またはそれ以上）のストレージ装置にデータを二重化（ミラーリング）するＨＡ構成を用いることで、ＶＭのディスクイメージを保護していることがある。ＨＡ構成が用いられている場合、ホスト計算機は、データがミラーリングされている複数のボリュームのうち一方のボリュームにアクセスできなくなった場合には、自動的に別のボリュームにアクセス先を変更し、ボリュームへのＩ／Ｏを継続することができる。【００２１】
さらに、Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙの観点から、地理的に離れたストレージ装置間でＨＡ構成を構築することもある。遠隔のデータセンタ間の複数のストレージ装置によるＨＡ構成においては、ホスト計算機が使用するボリュームへのパスによっては、ホスト計算機からボリュームへのアクセス時間が大きく異なる。例えばホスト計算機と同一データセンタ内のストレージ装置に対してアクセスするパスを利用した場合は、ボリュームへのアクセス時間が短いが、遠隔のデータセンタ内のストレージ装置に対してアクセスするパスを利用した場合には、ボリュームへのアクセス時間が長い。【００２２】
このような環境において、同一データセンタ内のストレージ装置の実ボリュームの障害等によって、ホスト計算機が遠隔のデータセンタ内のストレージへのアクセスパスを利用する状況となった場合、ボリュームへのアクセス時間は長くなる。【００２３】
ボリュームへのアクセス時間は、実際にボリュームを保持しているストレージと同一のデータセンタ内のホスト計算機上でＶＭを動作させるように、ＶＭを移動させることで改善することができる。しかし、ホスト計算機、またはＶＭからは、実ボリュームの配置（地理的位置）を把握することができない。これにより、実ボリュームの配置を考慮せずにＶＭを移動すると、ボリュームを保持するストレージと同じデータセンタ内のホスト計算機ではなく、異なるデータセンタのホスト計算機に対してＶＭが移動されることもあり得る。その場合、結果的にボリュームへのアクセス時間を改善することができない。【００２４】
前述のケースはストレージ装置でＨＡ構成を構築している場合に限らず、発生し得る。ただし、以下においては、ストレージ装置でＨＡ構成が構築されている環境において、ストレージの状況が変化したことによりボリュームへの一部のアクセスパスが利用不可となった場合において、ＶＭを動作させるための適切なホスト計算機を選出する方法の例を中心に説明する。【００２５】
（１−２）計算機システムのハードウェア構成
図１は実施例１に係る計算機システムの構成例を示す。計算機システムは少なくとも、１以上のホスト計算機１００を含む計算機群１、管理計算機１００、そして１以上のストレージ装置３００を含むストレージシステム３が、ネットワークで相互結合されて構成される。ストレージ装置３００は、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの第１の通信ネットワーク４１０を介して、管理計算機１００およびホスト計算機２００に接続されている。また、ストレージ装置３００は、例えばＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの第２の通信ネットワーク４２０を介してホスト計算機２００に接続されている。なお、第１の通信ネットワーク４１０、および第２の通信ネットワーク４２０は一体に形成されていてもよい。また、ホスト計算機２００と、管理計算機１００は同一計算機であってもよい。図１では、２台のホスト計算機、２台のストレージ装置、１台の管理計算機を含む計算機システムを例示するが、これは装置の数を限定するものではない。また各装置が地理的に異なった場所に配置されていてもよい。たとえば図１に示されている２台のストレージ装置３００がそれぞれ、異なった場所に配置されていてもよい。【００２６】
管理計算機１００は、例えば記憶資源１１０と、ＣＰＵ１２０と、入出力装置（入出力デバイス）１３０と、Ｉ／Ｆ１４０とを有する。Ｉ／Ｆ１４０は、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ）である。【００２７】
記憶資源１１０は、例えばＤＲＡＭ等のメモリである。ただし記憶資源１１０にＨＤＤ等の補助記憶装置が含まれていてもよい。記憶資源１１０は、後述するコンピュータプログラムや、種々の情報を記憶する。コンピュータプログラムはＣＰＵ１２０で実行される。【００２８】
管理計算機１００は、ストレージ装置３００とホスト計算機２００の構成情報や、性能情報等の種々の情報を取得し、それらの情報をもとにストレージ装置３００とホスト計算機２００を管理するための処理を行う。なお、別の実施形態として、ストレージ装置３００と、ホスト計算機２００を異なる管理計算機１００で管理することとし、それらの管理計算機１００が互いに通信することとしてもよい。また、ホスト計算機２００が複数台ある場合には、それらのホスト計算機２００を異なる管理計算機１００で管理することとし、それらの管理計算機１００が互いに通信することとしてもよい。なお、複数の管理計算機１００が存在し、それらが互いに通信する管理システムを構築する場合には、すべての管理計算機１００がすべてのコンピュータプログラムや、種々の情報を保持する必要はなく、管理システム全体で後述するコンピュータプログラムと種々の情報を保持していればよい。【００２９】
ホスト計算機２００は、例えば記憶資源２１０と、ＣＰＵ２２０と、通信インタフェース（以下、Ｃ−Ｉ／Ｆと記載）２３０と、管理インタフェース（以下、Ｍ−Ｉ／Ｆと記載）２４０を含んで構成される。【００３０】
記憶資源２１０は、例えばＤＲＡＭ等のメモリである。ただし記憶資源２１０はＨＤＤ等の補助記憶装置を含んでもよい。記憶資源２１０は例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、動作中のＶＭの実行時イメージなどを記憶する。ＣＰＵ２２０は記憶資源２１０に記憶されたコンピュータプログラムを実行する。Ｃ−Ｉ／Ｆ２３０は例えば、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）である。Ｍ−Ｉ／Ｆ２４０は例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ）である。【００３１】
ストレージ装置３００は、例えば複数の物理記憶リソース群を含むディスク装置３７０と、ディスク装置３７０に接続されたコントローラ３１０を有する。【００３２】
コントローラ３１０は、例えばＣＰＵ３２０と、ＣＰＵ３２０に接続されたメモリ３３０と、Ｃ−Ｉ／Ｆ３４０と、Ｍ−Ｉ／Ｆ３５０と、デバイスインタフェース（以下、Ｄ−Ｉ／Ｆと記載）３６０を含む。【００３３】
メモリ３３０は、ＣＰＵ３２０で実行されるコンピュータプログラム、および種々の情報を記憶する。【００３４】
Ｃ−Ｉ／Ｆ３４０は、第２の通信ネットワーク４２０で通信するための通信インタフェースデバイスである。本明細書では、Ｃ−Ｉ／Ｆ３４０のことを、「ポート」または「ストレージポート」と呼ぶこともある。【００３５】
Ｍ−Ｉ／Ｆ３５０は、第１の通信ネットワーク４１０で通信するための通信インタフェースデバイスであり、例えば、ＮＩＣである。【００３６】
Ｄ−Ｉ／Ｆ３６０は、コントローラ３１０がディスク装置３７０と通信するための通信インタフェースデバイスである。Ｄ−Ｉ／Ｆ３６０は、ディスク装置３７０が含む物理リソース３８０の種類毎に用意されていてもよい。【００３７】
以上が、本実施例に係る計算機システムのハードウェア等の構成例である。なお、前述のＭ−Ｉ／Ｆ、Ｃ−Ｉ／Ｆなどに用いられる通信インタフェースデバイスは、ＨＢＡやＮＩＣに限らない。通信インタフェースデバイスは、例えば、それらのＩ／Ｆが接続されるネットワークの種類や、それらＩ／Ｆを有する装置の種類によって異なる。【００３８】
続いて、ホスト計算機２００とストレージ装置３００の論理構成について説明する。図２はホスト計算機２００の論理構成を示す。ホスト計算機２００は、仮想的なホスト計算機であるＶＭ２００１を論理的に生成し、かつ動作させることができるハイパバイザ（ｈｙｐｅｒｖｉｓｏｒ：以下ＨＶとも呼ぶ）２００２を有する。ＨＶ２００２は一度に複数のＶＭ２００１を動作させることができる。それぞれのＶＭ２００１は、あたかもスタンドアローンの物理計算機のようにアプリケーションプログラム（ＡＰ）２００５を実行することができる。またホスト計算機２００では、交替パスプログラム２００３が実行されている。交替パスプログラム２００３は、ホスト計算機２００からあるボリューム（論理ユニット）へのアクセス経路（パスと呼ばれる）が複数存在する場合にそれを認識し、論理ボリュームにアクセスする際に、複数のパスのなかから使用するパスを選択する機能を持つ。またボリュームへのアクセス時にあるパスが使用できなかった場合、複数の中から別のパス（交替パス）を選択して、この交替パスを用いたアクセスを行う。交替パスプログラム２００３はこれらの処理を、ＶＭ２００１やＡＰ２００５から透過的に実施する。【００３９】
図３はストレージ装置３００の論理構成を示す。ストレージ装置３００は、ディスク装置３７０の内部に物理記憶媒体である物理リソース３８０を複数有する。【００４０】
物理リソース３８０は、例えばＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）―ＨＤＤ、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）―ＨＤＤなどの物理記憶媒体である。【００４１】
また、物理リソース３８０は、ストレージ装置３００に接続されている外部のストレージ装置（非図示）に作成された実ボリュームをマウントし、或るストレージ装置３００の記憶領域として扱う外部ボリュームであってもよい。【００４２】
ストレージ装置３００は、一つ以上の物理リソース３８０から１以上のプール３７５を構成している。またストレージ装置３００は、プール３７５を構成する物理リソース３８０の記憶領域を用いて論理ユニット３９０を作成することができる。ここで、論理ユニット３９０はあらかじめ物理記憶領域が確保された論理ユニットであってもよく、あるいはシンプロビジョニング技術によって形成される論理ユニット３９０であってもよい。シンプロビジョニングとは、初期状態では論理ユニットに割り当てるべき物理記憶領域を確保せず、仮想的な記憶領域をホスト計算機２００に提供する技術である。ホスト計算機２００から仮想的な記憶領域に対するアクセス要求を受け付けた時点で、その記憶領域に対して割り当てるべき物理記憶領域を確保する。【００４３】
プール３７５は論理ユニット３９０を生成することができる記憶領域である。具体的には、複数の物理３８０から構成されるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）グループであってもよいし、シンプロビジョニングの論理ユニット３９０に書き込みがなされた際に動的に記憶領域を提供するシンプロビジョニングプールであってもよい。シンプロビジョニングプールの場合には、プール３７５は１種以上の物理リソース３８０から構成されていてもよい。【００４４】
図３において、２つのストレージ装置３００はホスト計算機２００に対し、ホスト計算機２００がアクセスする論理ユニット３９０が、見かけ上単一の仮想的なストレージ装置内のボリュームであるように、みせかけることができる。この仮想的なストレージ装置のことを、仮想ストレージ装置５００と呼ぶ。また仮想的なストレージ装置内のボリュームのことを、仮想論理ユニット５１０と呼ぶ。ストレージ装置３００のユーザ（管理者）は、ストレージ装置３００内の論理ユニット３９０を、仮想ストレージ３００内の仮想論理ユニット５１０にマッピングすることができる。【００４５】
またストレージ装置３００は後述するＨＡ構成が設定されている複数の論理ユニット３９０を、単一の仮想論理ユニット５１０であるかのようにして、ホスト計算機２００に対して提供することができる。ＨＡ構成が設定されている場合には、ＨＡ構成が設定されているすべての論理ユニット３９０は或る仮想ストレージ５００内の、１つの仮想論理ユニット５１０にマッピングされる。【００４６】
仮想ストレージ装置５００を構成する各ストレージ装置３００はメモリ３３０に、仮想ストレージ装置５００の識別情報と、実際のストレージ装置３００の識別情報のマッピングテーブルを持つ。また同様にメモリ３３０に、仮想論理ユニット５１０の識別情報と実際の論理ユニット３９０の識別情報のマッピングテーブルを持つ。仮想論理ユニット５１０、ＨＡ構成の具体的な内容については、以下で図４を用いて説明する。【００４７】
なお、本明細書においては、仮想論理ユニットを仮想ボリューム、論理ユニットを実ボリューム、仮想論理ユニットと論理ユニットを総称してボリュームと記載することもある。【００４８】
図４は、ストレージ装置３００および、仮想ストレージ装置５００とホスト計算機２００間の論理的な関係を示す模式図である。図４の上段（ａ）は、ストレージ装置３００とホスト計算機２００間の物理的な接続関係を示している。なおここでは、ストレージ装置３００（ａ）内の論理ユニット３９０（ａ）と、ストレージ装置３００（ｂ）内の論理ユニット３９０（ｂ）はＨＡ構成が設定されている例について説明する。ただし、本実施例に係る計算機システムにおいては、ＨＡ構成が設定されていない論理ユニット３９０が含まれていてもよい。【００４９】
ホスト計算機２００（ａ）および２００（ｂ）は、各々ストレージ装置３００（ａ）および３００（ｂ）のＣ−Ｉ／Ｆ３４０と物理的に接続されている。さらに論理ユニット３９０（ａ）と論理ユニット３９０（ｂ）は、各々ホスト計算機２００（ａ）と２００（ｂ）に対してＬＵＮマスキングなどの設定がされている。ただし図４の例では、ホスト計算機２００（ａ）と２００（ｂ）はいずれも、論理ユニット３９０（ａ）と３９０（ｂ）にアクセスすることができるような、ＬＵＮマスキングの設定がされているものとする。【００５０】
ホスト計算機２００（ａ）と２００（ｂ）上では、ＶＭ２００１が動作している。また、ＶＭ２００１の管理ソフトウェアからの指示により、ホスト計算機２００（ａ）で動作していたＶＭ２００１を、ホスト計算機２００（ｂ）で実行させる（ＶＭ２００１を移動する）こともできる。【００５１】
図４では、ある１つのＶＭ２００１のディスクイメージのデータは論理ユニット３９０（ａ）と３９０（ｂ）に二重化された状態で保持されている例を示している。例えば、ストレージ装置３００（ａ）が、ホスト計算機２００（ａ）から論理ユニット３９０（ａ）に対するデータ書き込み要求を受け取った場合には、ストレージ装置３００（ａ）は、論理ユニット３９０（ａ）に対してデータ書き込みを行った上で、同じデータをストレージ装置３００（ｂ）にも書き込む。具体的にはストレージ装置３００（ａ）はストレージ装置３００（ｂ）に、そのデータの書き込みを指示するコマンドを送信する。ストレージ装置３００（ｂ）は、ストレージ装置３００（ａ）からデータ書き込みのコマンドを受けとると、論理ユニット３９０（ｂ）に対してデータ書き込みを行い、ストレージ装置３００（ａ）に結果（書き込みが完了した旨）を通知する。ストレージ装置３００（ａ）は論理ユニット３９０（ａ）と３９０（ｂ）の両方に書き込みがなされたことを確認した後、ホスト計算機２００（ａ）にデータ書き込みの結果（書き込みが完了した旨）を通知する。【００５２】
ＶＭ２００１のライトデータは、ストレージ装置３００（ａ）、３００（ｂ）によって論理ユニット３９０（ａ）と３９０（ｂ）に二重化されるため、ＶＭ２００１がディスクイメージのデータを読み出す際には、論理ユニット３９０（ａ）と３９０（ｂ）のいずれにアクセスしてもよい。ＶＭ２００１がストレージ装置３００（ａ）に対し、論理ユニット３９０（ａ）のデータを読み出すためのリードコマンドを発行すると、ストレージ装置３００（ａ）は論理ユニット３９０（ａ）からデータを読み出して、ＶＭ２００１に返送する。一方、ＶＭ２００１がストレージ装置３００（ｂ）に対し、論理ユニット３９０（ｂ）のデータを読み出すためのリードコマンドを発行すると、ストレージ装置３００（ｂ）は論理ユニット３９０（ｂ）からデータを読み出して、ＶＭ２００１に返送する。【００５３】
図４の上段（ａ）に示されたような物理構成が構築されている場合に、ホスト計算機２００（ａ）と２００（ｂ）上で稼働するＶＭ２００１またはＡＰ２００５が認識するストレージ構成の概念図を図４の下段（ｂ）に示す。この構成の場合、ＶＭ２００１またはＡＰ２００５は、ストレージ装置３００（ａ）に論理ユニット３９０（ａ）が存在し、ストレージ装置３００（ｂ）に論理ユニット３９０（ｂ）が存在するということは認識しない。逆に１つの仮想論理ユニット５１０が存在すると認識する。本明細書ではこのように、論理ユニット３９０（ａ）と３９０（ｂ）にデータが二重化され、かつ論理ユニット３９０（ａ）と３９０（ｂ）が、単一の（同一の）仮想論理ユニット５１０としてホスト計算機２００（正確にはＶＭ２００１またはＡＰ２００５）に認識されるように構成されている（ストレージ装置３００の管理者によって設定されている）状態のことを、「ＨＡ構成が設定されている」と呼ぶ。【００５４】
ＨＡ構成が設定されている論理ユニット３９０（ａ）と３９０（ｂ）はいずれも、同一の識別情報を有する。具体的には、仮想ストレージ装置５００の識別子と仮想論理ユニット５１０の識別子を、識別情報として有する。仮に、仮想ストレージ装置５００の識別子がＸであり、仮想論理ユニット５１０の識別子がｘである場合について説明する。ホスト計算機２００（ａ）と２００（ｂ）上で実行される交替パスプログラム２００３は、ストレージ装置３００（ａ）と３００（ｂ）に、論理ユニット３９０（ａ）と３９０（ｂ）の識別情報を問い合わせると、ストレージ装置３００（ａ）は、論理ユニット３９０（ａ）の属するストレージ装置の識別子がＸで、論理ユニット３９０（ａ）の識別子がｘである旨を返却する。ストレージ装置３００（ｂ）も同様に、論理ユニット３９０（ｂ）の属するストレージ装置の識別子がＸで、論理ユニット３９０（ｂ）の識別子がｘである旨を返却する。これにより、ホスト計算機２００（ａ）と２００（ｂ）上で実行される交替パスプログラム２００３は、論理ユニット３９０（ａ）と３９０（ｂ）が同一ボリューム（仮想論理ユニット５１０）であり、この仮想論理ユニット５１０に対しては、仮想ストレージ装置５００が有するＣ−Ｉ／Ｆ５２０（ａ）と５２０（ｂ）を経由する２つのアクセスパスが存在すると認識する。交替パスプログラム２００３は、ＶＭ２００１またはＡＰ２００５に対し、仮想論理ユニット５１０のみを提供する。そのため、ＶＭ２００１またはＡＰ２００５は、仮想論理ユニット５１０にマッピングされている論理ユニット３９０（ａ）と論理ユニット３９０（ｂ）の存在は認識しない。さらに論理ユニット３９０（ａ）と論理ユニット３９０（ｂ）が異なるストレージ装置（ストレージ装置３００（ａ）、３００（ｂ））にあることも認識しない。【００５５】
ホスト計算機２００（ａ）と２００（ｂ）が第１の通信ネットワークで接続されている場合、ＶＭ２００１の管理ソフトウェアはＶＭ２００１をホスト計算機２００（ａ）から２００（ｂ）に移動させることができる（逆も可能である）。ただし、ＶＭ２００１のディスクイメージの格納されている論理ユニット３９０が、ホスト計算機（ｂ）がアクセスできない（アクセスパスがない）論理ユニット３９０であった場合、ホスト計算機２００（ａ）で実行されていたＶＭ２００１をホスト計算機２００（ｂ）に移動すると、ＶＭ２００１をホスト計算機２００（ｂ）で実行できない。そのため、ＶＭ２００１が移動可能な条件は、ホスト計算機２００（ａ）と２００（ｂ）が第１の通信ネットワークで接続されていることに加え、ホスト計算機２００（ａ）と２００（ｂ）が同一ボリューム（論理ユニットまたは仮想論理ユニット）に対してアクセス可能な状態にある（アクセスパスがある）ことが条件になる。図４の構成の場合、ホスト計算機２００（ａ）と２００（ｂ）が第１の通信ネットワークで接続されており、かつホスト計算機２００（ａ）と２００（ｂ）が同一ボリューム（論理ユニットまたは仮想論理ユニット）に対するアクセスパスが存在するので、ホスト計算機２００（ａ）と２００（ｂ）でＶＭ２００１の移動が可能である。【００５６】
続いて、管理計算機１００で管理している各種管理情報について説明する。図５は管理計算機１００の記憶資源１１０が持つコンピュータプログラムと種々の情報を表す論理的な構成図である。【００５７】
記憶資源１１０が記憶するコンピュータプログラムには、ＶＭ移動プラン生成プログラム１１０１と、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２と、ＶＭ移動先ホスト計算機探索プログラム１１０３が含まれる。【００５８】
記憶資源１１０が記憶する情報には、ストレージの構成情報として、ボリューム構成情報テーブル１１１１と、ＨＡ構成管理テーブル１１１２と、ページ管理テーブル１１１３と、リソース種別テーブル１１１４と、ストレージホスト接続管理テーブル１１１５が含まれる。【００５９】
記憶資源１１０が記憶する情報には、性能情報として、Ｉ／Ｏ量管理テーブル１１２１と、リソースＩ／Ｏ性能テーブル１１２２と、ネットワーク性能管理テーブル１１２３が含まれる。【００６０】
記憶資源１１０が記憶する情報には、ホスト計算機２００およびＶＭ２００１の情報として、ボリュームアクセスパス管理テーブル１１３１と、ＶＭボリューム対応関係管理テーブル１１３２と、ＳＬＡ管理テーブル１１３３と、ホスト計算機間接続管理テーブル１１３４と、ＶＭ配置管理テーブル１１３５が含まれる。各テーブルには、管理計算機１００が管理している全ホスト計算機２００のＶＭ２００１、全ストレージ装置３００の論理ユニット３９０（もしくは仮想論理ユニット５１０）についての情報が格納される。【００６１】
（１−３）各種テーブルの内容
図６は管理計算機１００の記憶資源１１０に記憶されているボリューム構成情報テーブル１１１１の内容を示す図表である。ボリューム構成情報テーブル１１１１は、論理ユニット３９０および、仮想論理ユニット５１０の構成情報を管理するテーブルであって、図６に示すように、ストレージＩＤ１１１１０１、ボリュームＩＤ１１１１０２、仮想ストレージフラグ１１１１０３、仮想ストレージＩＤ１１１１０４、仮想ボリュームＩＤ１１１１０５、閉塞状態１１１１０６の情報を含む。【００６２】
ストレージＩＤ１１１１０１は、ストレージ装置３００または、仮想ストレージ装置５００の識別情報である。ボリュームＩＤ１１１１０２は論理ユニット３９０または、仮想論理ユニット５１０の識別情報である。【００６３】
仮想ストレージフラグ１１１１０３は、当該レコードが仮想ストレージ装置５００に関する情報を表す場合には“ｔｒｕｅ”の値が、仮想化されていない通常のストレージ装置３００に関する情報を表す場合には“ｆａｌｓｅ”の値が設定される。【００６４】
仮想ストレージＩＤ１１１１０４は、仮想ストレージフラグ１１１１０３が“ｆａｌｓｅ”であり、かつ、論理ユニット３９０が仮想論理ユニット５１０にマッピングされている場合に、論理ユニット３９０に対応する仮想論理ユニット５１０を有する仮想ストレージ装置５００の識別情報が設定される。それ以外の場合には、対応する値がないことを示すために、例えば“−”の値が設定される。【００６５】
仮想ボリュームＩＤ１１１１０５は、仮想ストレージフラグ１１１１０３が“ｆａｌｓｅ”であり、かつ、論理ユニット３９０が仮想論理ユニット５１０にマッピングされている場合に、論理ユニット３９０に対応する仮想論理ユニット５１０の識別情報が設定される。それ以外の場合には、対応する値がないことを示すために、例えば“−”の値が設定される。【００６６】
閉塞状態１１１１０６は、論理ユニット３９０または、仮想論理ユニット５１０が利用できない状態である場合には“ｔｒｕｅ”が設定され、それ以外の場合には“ｆａｌｓｅ”が設定される。仮想論理ユニット５１０に複数の論理ユニット３９０がマッピングされている場合には、対応するすべての論理ユニット３９０が利用できない状態である場合に、“ｔｒｕｅ”が設定される。【００６７】
管理計算機１００は定期的に、ストレージ装置３００と通信し、ストレージ装置３００からボリューム構成情報テーブル１１１１に保持すべき情報を取得し、ボリューム構成情報テーブル１１１１の内容を更新する。もしくはユーザが管理計算機１００を用いて情報取得操作を行った時に、ストレージ装置３００からボリューム構成情報テーブル１１１１に保持すべき情報を取得するようにしてもよい。【００６８】
図７は管理計算機１００の記憶資源１１０に記憶されているＨＡ構成管理テーブル１１１２の内容を示す図表である。ＨＡ構成管理テーブル１１１２は論理ユニット３９０間で設定されているＨＡ構成の構成情報を管理するテーブルであって、図７に示すように、第１ストレージＩＤ１１１２０１、第１実ボリュームＩＤ１１１２０２、第２ストレージＩＤ１１１２０３、第２実ボリュームＩＤ１１１２０４、ＨＡ状態１１１２０５、マスタボリューム番号１１１２０６の情報を含む。【００６９】
第１ストレージＩＤ１１１２０１と第２ストレージＩＤ１１１２０３は、ＨＡ構成が設定されている論理ユニット３９０を含むストレージ装置３００の識別情報である。【００７０】
第１ボリュームＩＤ１１１２０２と第２ボリュームＩＤ１１１２０４は、ＨＡ構成が設定されている論理ユニット３９０の識別情報である。第１ボリュームＩＤ１１１２０２で特定される論理ユニット３９０は、第１ストレージＩＤ１１１２０１で特定されるストレージ装置３００に属する。第２ボリュームＩＤ１１１２０４で特定される論理ユニット３９０は、第２ストレージＩＤ１１１２０３で特定されるストレージ装置３００に属する。【００７１】
ＨＡ状態１１１２０５は、ＨＡの状態を表す情報であり、例えば正常にデータが二重化されている“Ｒｕｎｎｉｎｇ”や、何らかの原因によりデータの二重化が停止されている“Ｓｕｓｐｅｎｄ”などの値が設定される。【００７２】
マスタボリューム番号１１１２０６はＨＡ構成が設定されている論理ユニット３９０の中でマスタとなっている論理ユニットの番号を表す。ＨＡ構成のマスタとは、ペア状態が“Ｓｕｓｐｅｎｄ”となった際に必ず最新のデータを保持する論理ユニット３９０である。そのために、ストレージ装置３００は、例えばＨＡ構成の論理ユニット３９０に書き込みがあった場合には、必ずマスタの論理ユニット３９０に初めに書き込むなどの制御を行う。マスタボリューム番号１１１２０６に、“１”が設定されている場合には第１ボリュームＩＤ１１１２０２が指す論理ユニット３９０がマスタとなっていることを示す。マスタボリューム番号１１１２０６に、“２”が設定されている場合には第２ボリュームＩＤ１１１２０４が指す論理ユニット３９０がマスタとなっていることを示す。【００７３】
なお、本実施例では、ＨＡ構成が２つの論理ユニット３９０間で設定されている場合について示したが、これはＨＡ構成を組むことができる論理ユニットの数を限定するものではない。例えば、ＨＡ構成管理テーブル１１１２は３以上の論理ユニット３９０の情報と、ＨＡ状態、マスタの情報から構成されていてもよい。【００７４】
管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ストレージ装置３００と通信し、ＨＡ構成管理テーブル１１１２に保持される情報を更新する。【００７５】
図８は管理計算機１００の記憶資源１１０に記憶されているページ管理テーブル１１１３の内容を示す図表である。ページ管理テーブル１１１３は、論理ユニット３９０の論理的なアドレス空間に対する、記憶領域（物理リソース３８０上の領域）の割り当て単位であるページと、ページに割り当てられているプール３７５および物理リソース３８０との対応関係の情報を保持する。図８に示すように、ページ管理テーブル１１１３は、ストレージＩＤ１１１３０１、ボリュームＩＤ１１１３０２、ページＩＤ１１１３０３、プールＩＤ１１１３０４、物理リソースＩＤ１１１３０５の情報を含む。【００７６】
ストレージＩＤ１１１３０１は、当該レコードで情報が保持される論理ユニット３９０を有するストレージ装置３００の識別情報である。【００７７】
ボリュームＩＤ１１１３０２は、当該レコードで情報が保持される論理ユニット３９０の識別情報である。【００７８】
ページＩＤ１１１３０３は、論理ユニット３９０の論理アドレス空間の中における、ページの位置を表す番号である。【００７９】
プールＩＤ１１１３０４は、論理ユニット３９０のページに割り当てられる物理リソース３８０の属するプール３７５の識別情報である。【００８０】
物理リソースＩＤ１１１３０５は、論理ユニット３９０のページに割り当てられている物理リソース３８０の識別情報である。また物理リソース３８０の識別情報に加えて、ページに割り当てられている物理リソースの領域を特定するための情報（ＬＢＡなど）が物理リソースＩＤ１１１３０５に含まれていてもよい。また論理ユニット３９０がシンプロビジョニングの論理ユニットであり、まだページに物理リソース３８０の領域が割り当てられていない場合には、“Ｎ／Ａ”の値が設定される。【００８１】
管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ストレージ装置３００と通信し、ページ管理テーブル１１１３に保持される情報を更新する。【００８２】
図９は管理計算機１００の記憶資源１１０に記憶されているリソース種別テーブル１１１４の内容を示す図表である。リソース種別テーブル１１１４は、プール３７５を構成する物理リソース３８０と、その物理リソース３８０を構成する記憶媒体の種類の情報を保持する。図９に示すように、リソース種別テーブル１１１４は、ストレージＩＤ１１１４０１、物理リソースＩＤ１１１４０２、物理リソース種別１１１４０３の情報を含む。【００８３】
ストレージＩＤ１１１４０１は、ストレージ装置３００の識別情報である。【００８４】
物理リソースＩＤ１１１４０２は、物理リソース３８０の識別情報である。【００８５】
物理リソース種別１１１４０３は、物理リソース３８０を構成する記憶媒体の種類を表す情報である。【００８６】
管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ストレージ装置３００と通信し、リソース種別テーブル１１１４に保持される情報を更新する。【００８７】
図１０は管理計算機１００の記憶資源１１０に記憶されているストレージホスト接続管理テーブル１１１５の内容を示す図表である。ストレージホスト接続管理テーブル１１１５は、ホスト計算機１００から、論理ユニット３９０までアクセスするためのパスの構成情報を表すテーブルであって、図１０に示すように、ホストＩＤ１１１５０１、ストレージＩＤ１１１５０２、ストレージポートＩＤ１１１５０３、ボリュームＩＤ１１１５０４の情報を含む。【００８８】
ホストＩＤ１１１５０１は、ホスト計算機１００の識別情報である。【００８９】
ストレージＩＤ１１１５０２は、ストレージ装置３００の識別情報である。【００９０】
ストレージポートＩＤ１１１５０３は、ホスト計算機２００が物理的に接続しているＣ−Ｉ／Ｆ３４０の識別情報である。図１０では、Ｃ−Ｉ／Ｆ３４０としてＨＢＡが利用されている場合の例として、ストレージポートＩＤ１１１５０３にＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）が格納される態様が示されている。【００９１】
ボリュームＩＤ１１１５０４は、論理ユニット３９０の識別情報である。【００９２】
管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ストレージ装置３００と通信し、ストレージホスト接続管理テーブル１１１５に保持される情報を更新する。【００９３】
図１１は管理計算機１００の記憶資源１１０に記憶されているＩ／Ｏ量管理テーブル１１２１の内容を示す図表である。Ｉ／Ｏ量管理テーブル１１２１は、論理ユニット３９０に対して行われたＩ／Ｏ量の情報を保持するテーブルである。Ｉ／Ｏ量管理テーブル１１２１を参照することにより、論理ユニット３９０に対して行われたＩ／Ｏ量の統計情報がページ単位でわかる。例えば、Ｉ／Ｏ量管理テーブル１１２１は、図１１に示すようにストレージＩＤ１１２１０１、ボリュームＩＤ１１２１０２、ページＩＤ１１２１０３、１秒あたり平均Ｉ／Ｏデータ量１１２１０４の情報を保持する。【００９４】
ストレージＩＤ１１２１０１は、ストレージ装置３００の識別情報である。【００９５】
ボリュームＩＤ１１２１０２は、論理ユニット３９０の識別情報である。【００９６】
ページＩＤ１１２１０３は、論理ユニット３９０の論理アドレス空間の中で、ページの位置を表す番号である。【００９７】
１秒あたり平均Ｉ／Ｏデータ量１１２１０４は、当該レコードのページＩＤ１１２１０３が指すページに対してＩ／Ｏデータ量情報取得の前から一定期間（例えば１０分）内に行われた総Ｉ／Ｏデータ量の時間当たり算術平均を、単位を１秒として表した統計情報である。【００９８】
ストレージ装置３００は、ページごとに単位時間あたりのＩ／Ｏデータ量をモニタしている。管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ストレージ装置３００と通信し、Ｉ／Ｏ量管理テーブル１１２１に保持される情報を更新する。【００９９】
図１２は管理計算機１００の記憶資源１１０に記憶されているリソースＩ／Ｏ性能テーブル１１２２の内容を示す図表である。リソースＩ／Ｏ性能テーブル１１２２は、物理リソース３８０の実体である物理記憶媒体のリソース種類毎の性能情報を保持するテーブルである。図１２に示すように、リソースＩ／Ｏ性能テーブル１１２２はリソース種別１１２２０１、単位時間当たりのＩ／Ｏデータ量１１２２０２，応答時間１１２２０３の情報を含む。【０１００】
リソース種別１１２２０１は、物理リソース３８０の実体である物理記憶媒体の種類を表す。【０１０１】
単位時間当たりのＩ／Ｏデータ量１１２２０２は、単位時間（例えば１秒）の間に物理記憶媒体に対して発行されるＩ／Ｏデータ量の情報を表す。【０１０２】
応答時間１１２２０３は、リソース種別１１２２０１が示す種類の物理記憶媒体に対し、単位時間内に１１２２０２に示す量のＩ／Ｏが発行された場合のＩ／Ｏ応答時間（コントローラ３１０等の、物理リソース３８０に対するＩ／Ｏ要求の発行元が、物理リソース３８０にＩ／Ｏ要求を発行してから応答を受領するまでの所要時間）を表す。応答時間１１２２０３の値としては、例えばカタログ記載のスペックなどの情報を用いてもよいし、ストレージ装置３００から測定した値を用いてもよい。【０１０３】
図１３は管理計算機１００の記憶資源１１０に記憶されているネットワーク性能管理テーブル１１２３の内容を示す図表である。ネットワーク性能管理テーブル１１２３は、ホスト計算機２００とストレージ装置３００の間で通信を行う場合の、ネットワークの性能情報を表すテーブルである。例えば図１３に示すように、ネットワーク性能管理テーブル１１２３は、ホストＩＤ１１２３０１、ストレージＩＤ１１２３０２、ストレージポートＩＤ１１２３０３、ＲＴＴ１１２３０４の情報を含む。【０１０４】
ホストＩＤ１１２３０１は、ホスト計算機２００の識別情報である。【０１０５】
ストレージＩＤ１１２３０２は、ストレージ装置３００の識別情報である。【０１０６】
ストレージポートＩＤ１１２３０３は、ホスト計算機２００が物理的に接続しているＣ−Ｉ／Ｆ３４０の識別情報である。本実施例では、Ｃ−Ｉ／Ｆ３４０としてＨＢＡが利用されている場合の例として、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）を図示する。【０１０７】
ＲＴＴ１１２３０４は、ホスト計算機２００からＣ−Ｉ／Ｆ３４０に通信する場合の通信ネットワークのＲＴＴ（Ｒｏｕｎｄ−Ｔｒｉｐ  Ｔｉｍｅ）である。この値は、例えばホスト計算機２００で応答時間を計測させ、その情報を定期的に管理計算機１００が収集するなどの方法で取得することができる。【０１０８】
例えば、管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ホスト計算機２００と通信し、ネットワーク性能管理テーブル１１２３に保持される情報を取得する。【０１０９】
図１４は管理計算機１００の記憶資源１１０に記憶されているボリュームアクセスパス管理テーブル１１３１の内容を示す図表である。ボリュームアクセスパス管理テーブル１１３１は、ホスト計算機２００から論理ユニット３９０へのパスの状態情報を示すテーブルである。図１４に示すように、ボリュームアクセスパス管理テーブル１１３１は、ホストＩＤ１１３１０１、ストレージＩＤ１１３１０２、ボリュームＩＤ１１３１０３、ストレージポートＩＤ１１３１０４、ステータス１１３１０５の情報を含む。【０１１０】
ホストＩＤ１１３１０１は、ホスト計算機２００の識別情報である。【０１１１】
ストレージＩＤ１１３１０２は、ホスト計算機２００がアクセスする論理ユニット３９０を有するストレージ装置３００、もしくは仮想論理ユニット５１０を有する仮想ストレージ装置５００の識別情報である。【０１１２】
ボリュームＩＤ１１３１０３は、ホスト計算機２００がアクセスする論理ユニット３９０もしくは仮想論理ユニット５１０の識別情報である。【０１１３】
ストレージポートＩＤ１１３１０４は、ホスト計算機２００が論理ユニット３９０にアクセスする際に利用するストレージ装置３００のＣ−Ｉ／Ｆ３４０、もしくは仮想ストレージ装置５００のＣ−Ｉ／Ｆ５２０の識別情報である。図１４の例で、（ホストＩＤ１１３１０１、ストレージＩＤ１１３１０２、ボリュームＩＤ１１３１０３）がそれぞれ、（ＨＶ１、１００、１０１）の行（レコード）のストレージポートＩＤ１１３１０４には、２つのＩＤ（“１１．１１．１１．１１．１１．１１．１１．１１”と“２２．２２．２２．２２．２２．２２．２２．２２”）が格納されている。以下、説明が冗長になることを防ぐため、ＩＤが“１１．１１．１１．１１．１１．１１．１１．１１”のストレージポートを「ポート１」、ＩＤが“２２．２２．２２．２２．２２．２２．２２．２２”のストレージポートを「ポート２」と呼ぶ。【０１１４】
図１４の例では、ホストＩＤがＨＶ１のホスト計算機２００は、ポート１を経由する経路（アクセスパス）を用いてボリューム（ボリュームＩＤが１０１のボリューム。本実施例ではこれは仮想論理ユニット５１０である）にアクセスすることもできるし、またポート２を経由する経路を用いてボリュームにアクセスすることもできる（ホスト計算機２００から仮想論理ユニット５１０へのアクセスパスが２本あり、それらがいずれも利用可能な状態にある）ことを表している。【０１１５】
なお、本実施例に係る計算機システムでは、仮想ストレージ装置５００のＣ−Ｉ／Ｆ５２０の識別情報には、ストレージ装置３００のＣ−Ｉ／Ｆ３４０の識別情報と同じものが用いられる。図４を用いて説明する。図４の構成例では、ホスト計算機２００から論理ユニット３９０（ａ）へのアクセスパスとして、Ｃ−Ｉ／Ｆ３４０（ａ）を経由するアクセスパスがあり、ホスト計算機２００から論理ユニット３９０（ｂ）へのアクセスパスとして、Ｃ−Ｉ／Ｆ３４０（ｂ）を経由するアクセスパスがある。ストレージ装置３００（ａ）、３００（ｂ）はさらに、ホスト計算機２００から仮想論理ユニット５１０へのアクセスパスとして、Ｃ−Ｉ／Ｆ５２０（ａ）を経由するアクセスパスと、Ｃ−Ｉ／Ｆ５２０（ｂ）を経由するアクセスパスの２つがあるように見せかけている。この構成において、Ｃ−Ｉ／Ｆ３４０（ａ）の識別情報はＣ−Ｉ／Ｆ５２０（ａ）の識別情報と同じで、またＣ−Ｉ／Ｆ３４０（ｂ）の識別情報はＣ−Ｉ／Ｆ５２０（ｂ）の識別情報と同じである。【０１１６】
ステータス１１３１０５は、ホストＩＤ１１３１０１が指すホスト計算機２００から、ボリュームＩＤ１１３１０３が指す論理ユニット３９０もしくは仮想論理ユニット５１０へのアクセスに利用されるパスの状態の情報である。ステータス１１３１０５には、“Ｕｎａｖａｉｌａｂｌｅ”、“Ｐｒｉｍａｒｙ”、“Ｓｅｃｏｎｄａｒｙ”のいずれかの値が設定される。“Ｕｎａｖａｉｌａｂｌｅ”は、パスが利用不能な状態であることを表す。“Ｐｒｉｍａｒｙ”は、論理ユニット３９０もしくは仮想論理ユニット５１０へのアクセス時間が他のパスに比べ相対的に短く、優先的に利用されるべきことを表す。“Ｓｅｃｏｎｄａｒｙ”は、論理ユニット３９０もしくは仮想論理ユニット５１０へのアクセス時間が他のパスに比べ相対的に長く、優先的に利用されるべきでないことを表す。【０１１７】
ストレージ装置３００は、論理ユニット３９０（もしくは仮想論理ユニット５１０）へのアクセスパスが複数ある場合、ホスト計算機２００に対して優先的に使用すべきパスを通知することができる。この通知はたとえば、ＳＣＳＩ  Ｐｒｉｍａｒｙ  Ｃｏｍｍａｎｄｓ−３の仕様で規格化されている、ＡＬＵＡ（Ａｓｙｍｍｅｔｒｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ａｃｃｅｓｓ）に従って行われる。例えば、２本以上のパスが利用可能な状態にある場合には、ストレージ装置３００はホスト計算機２００に対して、特定の１本のパスを優先的に使用するよう通知することができる。この場合管理計算機１００は、優先して使用するように通知されたパスのステータス１１３１０５に対して“Ｐｒｉｍａｒｙ”を設定し、それ以外の利用可能なパスのステータス１１３１０５には“Ｓｅｃｏｎｄａｒｙ”を設定する。【０１１８】
ストレージ装置３００に対して論理ユニット３９０からホスト計算機２００へのパスが追加されたことを検知したときや、ホスト計算機２００の設定変化を検知したとき、または定期的に、管理計算機１００はホスト計算機２００と通信し、ホスト計算機２００が記憶するパス設定情報（図示せず）を取得する。パス設定情報は、パスの優先度情報を利用するか否かを含む。【０１１９】
管理計算機１００は、ホスト計算機２００がストレージ装置３００から通知されるパスの優先度情報を利用する場合には、利用可能なパスのステータス１１３１０５に対して、ストレージ装置３００から取得したパスの優先度情報（“Ｐｒｉｍａｒｙ”または“Ｓｅｃｏｎｄａｒｙ”）を設定する。ホスト計算機２００がパスの優先度情報を利用しない場合には、すべての利用可能なパスに“Ｐｒｉｍａｒｙ”の情報を設定する。【０１２０】
管理計算機１００は、上述のホスト計算機２００から取得したパスの優先度利用情報と、ストレージ装置３００から取得したストレージホスト接続管理テーブル１１１５の情報より、ボリュームアクセスパス管理テーブル１１３１を生成する。また、ボリュームアクセスパス管理テーブル１１３１に、ホスト計算機２００から仮想論理ユニット５１０へのアクセスパスの情報が登録される場合、この仮想論理ユニット５１０にマッピングされる論理ユニット３９０とホスト計算機２００間のアクセスパスの情報は登録されない。【０１２１】
図１５は管理計算機１００の記憶資源１１０に記憶されているＶＭボリューム対応関係管理テーブル１１３２の内容を示す図表である。ＶＭボリューム対応関係管理テーブル１１３２は、ＶＭ２００１が使用している論理ユニット３９０もしくは仮想論理ユニット５１０（つまり、ＶＭ２００１のディスクイメージを格納する論理ユニット３９０もしくは仮想論理ユニット５１０）の情報を示すテーブルである。図１５に示すように、ＶＭボリューム対応関係管理テーブル１１３２は、ＶＭ  ＩＤ１１３２０１、ストレージＩＤ１１３２０２、ボリュームＩＤ１１３２０３の情報を含む。本実施例では、複数のＶＭ２００１が１つの論理ユニット３９０（もしくは仮想論理ユニット５１０）にディスクイメージを格納することはなく、各ＶＭ２００１がそれぞれ１つの論理ユニット３９０（もしくは仮想論理ユニット５１０）を使う態様について説明する。ただし複数のＶＭ２００１が１つの論理ユニット３９０（もしくは仮想論理ユニット５１０）にディスクイメージを格納する構成を採用してもよい。【０１２２】
ＶＭ  ＩＤ１１３２０１は、ＶＭ２００１の識別情報である。【０１２３】
ストレージＩＤ１１３２０２は、ＶＭ２００１のディスクイメージが格納される論理ユニット３９０を有するストレージ装置３００の識別番号、もしくはＶＭ２００１のディスクイメージが格納される仮想論理ユニット５１０を有する仮想ストレージ装置５００の識別番号である。【０１２４】
ボリュームＩＤ１１３２０３は、ＶＭ２００１のディスクイメージが格納される論理ユニット３９０もしくは仮想論理ユニット５１０の識別番号である。【０１２５】
例えば、管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ホスト計算機２００と通信し、ＶＭ２００１とＶＭ２００１のディスクイメージが格納される論理ユニット３９０（または仮想論理ユニット５１０）のペアの情報を取得し、ＶＭボリューム対応関係管理テーブル１１３２に格納する。なお、以下では、あるＶＭ２００１のディスクイメージが格納される論理ユニット３９０（または仮想論理ユニット５１０）のことを、「ＶＭ２００１に対応する論理ユニット３９０（または仮想論理ユニット５１０）」と呼ぶこともある。あるいは、ある論理ユニット３９０（または仮想論理ユニット５１０）にＶＭ２００１のディスクイメージが格納されている場合、そのＶＭ２００１のことを、「論理ユニット３９０（または仮想論理ユニット５１０）に対応するＶＭ２００１」と呼ぶこともある。【０１２６】
図１６は管理計算機１００の記憶資源１１０に記憶されているＳＬＡ管理テーブル１１３３の内容を示す図表である。ＳＬＡ管理テーブル１１３３は、ＶＭ２００１毎に設定されているＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）情報を管理するテーブルである。図１６に示すように、例えばＳＬＡ管理テーブル１１３３は、ＶＭ  ＩＤ１１３３０１、要求サービスレベル１１３３０２を含む。【０１２７】
ＶＭ  ＩＤ１１３３０１は、ＶＭ２００１の識別情報である。【０１２８】
要求サービスレベル１１３３０２には、ＶＭ２００１に求められるサービスレベルの最悪値が登録される。図１６では、ＳＬＡの指標（ｍｅｔｒｉｃｓ）として、レスポンスタイム（論理ユニットに対するＩ／Ｏ応答時間）が用いられる場合の例が示されている。そのため、要求サービスレベル（要求最悪レスポンスタイム）１１３３０２には、ＶＭ２００１に求められる、論理ユニット３９０（もしくは仮想論理ユニット５１０）に対するＩ／Ｏレスポンスタイムの最悪値（最大値）が登録される。【０１２９】
なお、レスポンスタイムはＳＬＡの指標の一例であり、ＳＬＡ管理テーブル１１３３では例えば、ＭＢ／ｓといった性能情報を表す指標を管理してもよく、また、ＲＴＯ（ｒｅｃｏｖｅｒｙ  ｔｉｍｅ  ｏｂｊｅｃｔｉｖｅ）などの性能以外の指標を管理してもよい。【０１３０】
原則として、各ＶＭ２００１は、ユーザあるいはアプリケーションプログラムに対して提供可能なサービスレベルが要求サービスレベル１１３３０２以上であることが求められる。ＳＬＡの指標としてレスポンスタイム（論理ユニットに対するＩ／Ｏ応答時間）が用いられる場合、各ＶＭ２００１の論理ユニット３９０（もしくは仮想論理ユニット５１０）に対するＩ／Ｏレスポンスタイムは、要求サービスレベル（要求最悪レスポンスタイム）１１３３０２に登録されている値以内であることが求められる。これは計算機システムの環境（構成）が変動した場合、たとえばストレージ装置３００の構成が変化した場合でも同じである。【０１３１】
例えば、管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ホスト計算機２００と通信したり、ユーザからの入力値を保持しておくことにより、ＳＬＡ管理テーブル１１３３に保持すべき情報を取得し、ＳＬＡ管理テーブル１１３３に情報を格納する。【０１３２】
図１７は管理計算機１００の記憶資源１１０に記憶されているホスト計算機間接続管理テーブル１１３４の内容を示す図表である。ホスト計算機間接続管理テーブル１１３４は、第１の通信ネットワーク４１０で接続されているホスト計算機２００の組み合わせの情報を示すテーブルである。先にも述べたとおり、２つのホスト計算機２００間でＶＭ２００１を移動させることができる条件の１つとして、２つのホスト計算機２００が第１の通信ネットワーク４１０で接続されていることが挙げられる。そのため、ホスト計算機間接続管理テーブル１１３４には、ＶＭ２００１の移動先候補となり得るホスト計算機２００の情報が格納されているといえる。【０１３３】
図１７に示すように、ホスト計算機間接続管理テーブル１１３４は、移行元ホストＩＤ１１３４０１、移行先ホストＩＤ１１３４０２の情報を含む。移行元ホストＩＤ１１３４０１は、ＶＭ２００１が動作しており、ＶＭ２００１の移動元となるホスト計算機２００の識別情報である。【０１３４】
移行先ホストＩＤ１１３４０２は、移行元ホストＩＤ１１３４０１の上で動作しているＶＭ２００１を移動させることができるホスト計算機２００の識別情報である。【０１３５】
例えば、管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ホスト計算機２００と通信したり、ユーザからの入力値を保持しておくことにより、ホスト計算機間の接続情報の情報を取得し、ホスト計算機間接続管理テーブル１１３４に情報を格納する。【０１３６】
図１８は管理計算機１００の記憶資源１１０に記憶されているＶＭ配置管理テーブル１１３５の内容を示す図表である。ＶＭ配置管理テーブル１１３５は、ＶＭ２００１と、ＶＭ２００１が動作しているホスト計算機２００の組み合わせを示すテーブルである。図１８に示すように、ＶＭ配置管理テーブル１１３５は、ＶＭＩＤ１１３５０１、ホストＩＤ１１３５０２の情報を含む。【０１３７】
ＶＭＩＤ１１３５０１は、ＶＭ２００１の識別情報である。【０１３８】
ホストＩＤ１１３５０２は、ＶＭ２００１が動作しているホスト計算機２００の識別情報である。【０１３９】
例えば、管理計算機１００は定期的に、もしくはユーザから情報取得の操作（指示）を受け付けたことを契機に、ホスト計算機２００と通信したり、ユーザからの入力値を保持しておくことにより、ホスト計算機２００上で動作しているＶＭ２００１の情報を取得し、ＶＭ配置管理テーブル１１３５の情報を更新する。【０１４０】
（１−４）各装置の動作の詳細
ストレージ装置３００の構成が変化した際に、管理計算機１００がＶＭ２００１の適切な移動先ホスト計算機２００を特定するための処理である、ＶＭ移動プラン生成処理の詳細を図１９、図２０、図２１のフローチャートを用いて説明する。図１９は、ＶＭ移動プラン生成処理の全体を表すＶＭ移動プラン生成プログラム１１０１である。図２０は、ＶＭ移動プラン生成プログラムから呼び出されるサブプログラムである、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２である。図２１は、ＶＭ移動プラン生成プログラムから呼び出されるサブプログラムである、ＶＭ移動先ホスト計算機探索プログラム１１０３である。【０１４１】
図１９を元にＶＭ移動プラン生成プログラム１１０１の処理を説明する。以下、動作の主体をＶＭ移動プラン生成プログラム１１０１として説明する。【０１４２】
ＶＭ移動プラン生成プログラム１１０１は、例えば、ボリューム構成情報テーブル１１１１や、ＨＡ構成管理テーブル１１１２など、ストレージ装置３００の構成情報を保持するテーブルの変化を監視することによって、ストレージ装置３００の構成変更を検知する（Ｓ１０００）。【０１４３】
ＶＭ移動プラン生成プログラム１１０１を動作させる契機は、一定間隔での自動実行であってもよいし、管理計算機１００に対してストレージ装置３００、もしくは仮想ストレージ装置５００の構成変更操作が指示され、管理計算機１００が構成変更処理を行ったときであってもよい。または、ストレージ装置３００や、ホスト計算機２００や、他の管理計算機１００から、ストレージ装置３００にて発生した障害の情報や、構成変更の情報を通知されたときであってもよい。【０１４４】
なお、Ｓ１０００でストレージ装置３００の構成変更の内容を検知する方法としては、ストレージ装置３００や、ホスト計算機２００や、他の管理計算機１００や、管理計算機１００が具備する入出力装置１３０によって通知される情報によってもよい。この場合には、管理計算機１００はストレージ装置３００より構成情報を取得するなどの手段によって、記憶資源１１０に記憶する種々の情報を更新し、Ｓ１０１０以降の処理を行う。【０１４５】
次に、ＶＭ移動プラン生成プログラム１１０１は、検知したストレージ装置３００の構成変更の内容がホスト計算機２００から、論理ユニット３９０、もしくは、仮想論理ユニット５１０へのパスが減少する構成変化であるか否かを判定する。本実施例では、その一例として、Ｓ１０１０では、ボリューム構成情報テーブル１１１１の閉塞状態１１１１０６を参照し、論理ユニット３９０、もしくは、仮想論理ユニット５１０が閉塞状態となったか否かを判定する。【０１４６】
Ｓ１０１０の結果が否定的であり、パスが増加している、または、数に変化がない場合には、ストレージ装置３００に対して発生した構成変更がＶＭ２００１に影響を与えないと判断し、処理を終了する。ここで、ＶＭ２００１に与える影響とは、ＶＭ２００１が提供可能なサービスレベルの変化（減少）である。本実施例では、その一例としてレスポンスタイムを想定し、以降の説明を行う。【０１４７】
Ｓ１０１０の結果が肯定的である場合には、さらにＶＭ移動プラン生成プログラム１１０１は、ボリューム構成情報テーブル１１１１を参照し、ホスト計算機２００から利用することができなくなった対象が論理ユニット３９０であるかを判断する（Ｓ１０２０）。【０１４８】
Ｓ１０２０の結果が否定的であった場合、ホスト計算機２００から利用することができなくなった対象は仮想論理ユニット５１０である。この場合、ホスト計算機２００は仮想論理ユニット５１０の実体を意識しないため、例えばバックアップ装置（図示せず）などから閉塞した論理ユニット３９０のバックアップデータを、それ以外の論理ユニット３９０に対してリストアし、リストア先の論理ユニット３９０に対して、仮想論理ユニット５１０の識別情報を付加することによって、ホスト計算機２００に対しては一時的に仮想論理ユニット５１０が使用可能となったように見せることができる（Ｓ１０４０）。【０１４９】
このとき、リストア先となるストレージ装置３００は、アクセス不能となった論理ユニット３９０を有していたストレージ装置３００と同一であってもよいし、異なってもよい。その選択の観点としては例えば、ＶＭ２００１に定義されているサービスレベルを満たす物理リソース３９０や、機能を有することなどがある。【０１５０】
また、ホスト計算機２００から利用不能となった仮想論理ユニット３９０は、ＨＡ構成である場合もある。この場合には、少なくとも１つの論理ユニット３９０にデータがリストアされていればＩ／Ｏを継続することが可能である。ただし、１つの論理ユニット３９０にのみデータをリストアした場合、保証できる可用性が変化する。そのため、リストア対象の論理ユニット３９０に対してＨＡ構成を設定するか否か、また設定する場合にはそのＨＡ構成を構成する論理ユニット３９０の数や配置などの構成、およびＨＡ構成を設定するタイミングを決定する必要がある。その場合、ＶＭ２００１に定義されているサービスレベルや、利用できるストレージ装置３００の物理リソース３９０や機能によって決定することが望ましい。【０１５１】
Ｓ１０２０の結果が肯定的であった場合、ＶＭ移動プラン生成プログラム１１０１は、ボリューム構成情報テーブル１１１１とＨＡ構成管理テーブル１１１２を参照し、さらに閉塞した論理ユニット３９０にＨＡ構成が設定されているかを判断する（Ｓ１０３０）。ＨＡ構成が設定されている場合には、論理ユニット３９０が閉塞すると、ホスト計算機２００の交替パスプログラム２００３からは、仮想論理ユニット５１０へのアクセスパスの一つが利用不可となった（アクセスパス数が減少した）と認識される。そのためＳ１０３０の結果が肯定的であった場合（Ｓ１０３０：Ｙｅｓ）には、ホスト計算機２００は利用するパスを切り替え、仮想論理ユニット５１０にマッピングされている別の論理ユニット３９０をアクセスしている状態となっている。【０１５２】
一方で、ＨＡ構成が設定されていない場合（Ｓ１０３０：Ｎｏ）、ホスト計算機２００から利用不能となった論理ユニット３９０は仮想化されていない状態である。この場合には、閉塞の原因となった障害を回復させるか、代替の論理ユニット３９０にデータをリストアする必要がある。そのため、閉塞した論理ユニット３９０がＨＡを構成していない場合には、ＶＭ移動プラン生成プログラム１１０１は、論理ユニット３９０が利用不能となった旨を入出力装置１３０等に出力し、終了する。【０１５３】
次にＶＭ移動プラン生成プログラム１１０１はＳ１０５０を実行する。Ｓ１０５０が実行される場合とは、仮想論理ユニット５１０にマッピングされた論理ユニット３９０の１つにホスト計算機２００がアクセスできなくなり、ホスト計算機２００から仮想論理ユニット５１０にマッピングされた或る論理ユニット３９０へのパスから、別の論理ユニット３９０へのパスに切り替えられた状況である。そのため、ＶＭ移動プラン生成プログラム１１０１は、ホスト計算機２００が利用するパスの切り替えによるＶＭ２００１への影響を把握するために、まず、ＶＭボリューム対応関係管理テーブル１１３２を参照し、仮想論理ユニット５１０（対応する論理ユニット３９０の１つが閉塞した仮想論理ユニット５１０）に対応するＶＭ２００１を特定する。【０１５４】
次に、ＶＭ移動プラン生成プログラム１１０１は、ストレージ装置３００の状態（構成状態）の変化が、ホスト計算機２００上で動作する各ＶＭ２００１に影響を与えているか判定する（Ｓ１０６０）。具体的には、現時点（Ｓ１０６０実行時点。つまりストレージ装置３００の構成が変化した時点ともいえる）でホスト計算機２００上で稼働している各ＶＭ２００１が提供可能なサービスレベルを算出する（見積もる）ことで、ストレージ装置３００の状態の変化が各ＶＭ２００１に影響を与えているか判定する。本実施例では、サービスレベルの一例としてＶＭ２００１のレスポンスタイムの見積もりを行う場合を示す。レスポンスタイムの見積もりの具体的な方法は、後述するＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２の処理内容を説明する際に説明する。Ｓ１０６０では、ＶＭ移動プラン生成プログラム１１０１はＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２の呼び出しを行う。呼び出しを行う際、ＶＭ移動プラン生成プログラム１１０１はＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２に対し、引数として、Ｓ１０５０で特定したＶＭ２００１の識別情報、およびこのＶＭ２００１を動作させているホスト計算機２００の識別情報を渡す。Ｓ１０６０でＶＭ移動プラン生成プログラム１１０１がＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２を呼び出した結果、ＶＭ移動プラン生成プログラム１１０１はＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２から、引数で指定したホスト計算機２００上で稼働している各ＶＭ２００１が提供可能なサービスレベル（レスポンスタイム）を受領する。【０１５５】
ＶＭ移動プラン生成プログラム１１０１は、Ｓ１０６０の結果と、ＳＬＡ管理テーブル１１３３の内容を比較し、ホスト計算機２００上で動作する各ＶＭ２００１が、要求するサービスレベルを満たしているか否かを判定する（Ｓ１０７０）。例えば、Ｓ１０６０の結果が、要求サービスレベル（要求最悪レスポンスタイム）１１３３０２よりも大きい場合は、当該ＶＭのサービスレベルを満たしていないと判定する。【０１５６】
Ｓ１０７０の結果が肯定的であった場合では、ホスト計算機２００が利用するパス切り替え後の仮想論理ユニット５１０へのパスであってもＶＭ２００１に設定されたサービスレベルを満たしており、ＶＭ移動プラン生成プログラム１１０１は正常に終了する。【０１５７】
Ｓ１０７０の結果が否定的であった場合には、ＶＭ移動プラン生成プログラム１１０１は、ＶＭ２００１が要求されるサービスレベルを満たすことができる、移動先ホスト計算機２００を探索する（Ｓ１０８０）。Ｓ１０８０では、ＶＭ移動プラン生成プログラム１１０１はＶＭ移動先ホスト計算機探索プログラム１１０３を呼び出すことで、ＶＭ２００１の要求サービスレベル（ＳＬＡ管理テーブル１１３３で管理されている要求サービスレベル１１３３０２）を満たすことができるホスト計算機２００（これを「移動先ホスト計算機２００」と呼ぶ）を探索する。ＶＭ移動先ホスト計算機探索プログラム１１０３を呼び出す際、ＶＭ移動プラン生成プログラム１１０１はＶＭ移動先ホスト計算機探索プログラム１１０３に、移動対象となるＶＭ２００１の識別情報を引数として渡す。ＶＭ移動先ホスト計算機探索プログラム１１０３は、引数で指定されたＶＭ２００１を移動する場合に適切なホスト計算機２００（ＶＭ２００１に対して要求されているサービスレベルを満たすことができるホスト計算機２００）を探索し、呼び出し元プログラムに、探索したホスト計算機２００の情報を返却するプログラムである。ただし適切なホスト計算機２００がない場合には、ＶＭ２００１の移動先となる適切なホスト計算機２００が見つからなかった旨が返却される。ＶＭ移動先ホスト計算機探索プログラム１１０３で行われる処理の詳細は後述する。【０１５８】
次にＶＭ移動プラン生成プログラム１１０１は、Ｓ１０８０の結果より、ＶＭ２００１の要求サービスレベルを満たすことができる適切な移動先ホスト計算機２００が見つかったか、否かを判定する（Ｓ１０９０）。【０１５９】
Ｓ１０９０の結果が肯定的であった場合には、ＶＭ移動プラン生成プログラム１１０１は入出力装置１３０に、ＶＭ２００１の要求サービスレベルを満たすために、ＶＭ２００１の移動を推奨する旨、及びＶＭ２００１の移動先としてＳ１０８０で特定されたホスト計算機２００の情報を出力し、処理を終了する（Ｓ１１００）。一方で、ＶＭ移動プラン生成プログラム１１０１は、Ｓ１０９０の結果が否定的であった場合には、ＶＭ２００１の要求サービスレベルを満たすホスト計算機２００がないことを入出力装置１３０に出力し、終了する。【０１６０】
続いて図２０を用いてＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２の詳細を説明する。ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、指定されたホスト計算機２００の上で、指定されたＶＭ２００１を動作させた場合において、指定されたＶＭ２００１、および指定されたホスト計算機２００上で動作する他のＶＭ２００１のＩ／Ｏ性能を見積もるプログラムである。本実施例では、Ｉ／Ｏ性能としてレスポンスタイムを見積もる例を説明する。【０１６１】
ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は呼び出し元のプログラム（ＶＭ移動プラン生成プログラム１１０１など）から、ＶＭ２００１の識別情報と、ホスト計算機２００の識別情報を引数（入力情報）として受信する（Ｓ２０００）。以下では、この引数で指定されたＶＭ２００１のことを「ターゲットＶＭ」と呼び、また引数で指定されたホスト計算機２００のことを「ターゲットホスト」と呼ぶ。ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットＶＭがターゲットホストに移動した場合の、ターゲットホスト上で動作する各ＶＭ２００１（ターゲットＶＭを含む）のＩ／Ｏ性能見積もりを行う。【０１６２】
まず、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ＶＭボリューム対応関係管理テーブル１１３２の情報を用いて、ターゲットＶＭのディスクイメージが格納されている仮想論理ユニット５１０もしくは論理ユニット３９０、及びターゲットホスト上で動作する各ＶＭ２００１のディスクイメージが格納されている仮想論理ユニット５１０もしくは論理ユニット３９０を特定する（Ｓ２０１０）。なお、ＶＭ２００１のディスクイメージが格納されているボリュームが仮想論理ユニット５１０である場合には、ここでは仮想論理ユニット５１０が特定される。【０１６３】
次に、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットホストから、Ｓ２０１０で特定した仮想論理ユニット５１０もしくは論理ユニット３９０へのアクセスに利用できるパスを特定する（Ｓ２０２０）。特定する方法としては、例えば、ボリュームアクセスパス管理テーブル１１３１を参照し、ターゲットホストから、Ｓ２０１０で特定した仮想論理ユニット５１０もしくは論理ユニット３９０への利用できるパスを特定する方法がある。このとき、ボリュームアクセスパス管理テーブル１１３１のステータス１１３１０５が“Ｐｒｉｍａｒｙ”に設定されているパスがあれば、ステータス１１３１０５が“Ｐｒｉｍａｒｙ”に設定されているパスを選択し、なければ“Ｓｅｃｏｎｄａｒｙ”に設定されているパスを選択する。これは、ホスト計算機２００はストレージ装置３００が通知するパスのステータス情報に従って、利用するパスを選択する（ステータス１１３１０５が“Ｐｒｉｍａｒｙ”に設定されているパスを優先的に使用する）ためである。【０１６４】
なお、パスを特定する方法は、ボリュームアクセスパス管理テーブル１１３１を参照する方法に限らない。例えば、ターゲットＶＭが動作しているホスト計算機２００と、ターゲットホストが同一の場合には、管理計算機１００はこのホスト計算機２００から、仮想論理ユニット５１０もしくは論理ユニット３９０にアクセスする際に利用しているパスの情報を取得してもよい。【０１６５】
次に、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットＶＭがターゲットホストに移動した場合について、ターゲットＶＭ、および、ターゲットホスト上で動作する各ＶＭ２００１について、状態の変化をシミュレートする（Ｓ２０３０）。本実施例では具体的には、ターゲットＶＭがターゲットホストに移動した場合の、各ＶＭのＩ／Ｏレスポンスタイムを見積もる。以下に、Ｉ／Ｏレスポンスタイムの見積もり方法の例を説明する。ＶＭのＩ／Ｏレスポンスタイムは、ＶＭ（ホスト計算機２００）が論理ユニット３９０に対してＩ／Ｏリクエストを発行してから、ストレージ装置３００がＶＭに応答を返却するまでの時間である。この時間は、ＶＭ２００１の動作するホスト計算機２００とストレージ装置３００の間のネットワーク４２０のＲＴＴ（以下、「ネットワークレイテンシ」と呼ぶ）と、ストレージ装置３００内で発生するレイテンシ（論理ユニット３９０の応答時間と呼ぶ）の和から算出される。まず、後者の論理ユニット３９０の応答時間の算出（推定）方法について説明する。【０１６６】
論理ユニット３９０の応答時間は、例えば次に示す（ａ１）〜（ａ５）を行うことで推定できる。【０１６７】
（ａ１）ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットＶＭが現在データアクセスを行っている論理ユニット３９０（ターゲットＶＭがターゲットホストにまだ移動していない場合にアクセスする論理ユニット３９０）を特定し、特定した論理ユニット３９０に対して発行されたＩ／Ｏ量を特定する。以下では、ターゲットＶＭが現在データアクセスを行っている論理ユニット３９０のことを、「移動前ＬＵ」と呼ぶ。【０１６８】
具体的には以下の流れで特定が行われる。ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ＶＭ配置管理テーブル１１３５を参照することで、現在ターゲットＶＭが実行されているホスト計算機２００を特定し、さらに、ボリュームアクセスパス管理テーブル１１３１とボリューム構成情報テーブル１１１１の情報を用いて移動前ＬＵを特定する。なお、ターゲットＶＭがデータアクセスを行っているボリュームが仮想論理ユニット５１０の場合には、ストレージホスト接続管理テーブル１１１５及びボリュームアクセスパス管理テーブル１１３１を参照することで、移動前ＬＵを特定する。具体的には、ボリュームアクセスパス管理テーブル１１３１のステータス１１３１０５が“Ｐｒｉｍａｒｙ”と設定されているパスに接続されている論理ユニット３９０を、ストレージホスト接続管理テーブル１１１５の情報を用いて特定する。【０１６９】
次に、Ｉ／Ｏ量管理テーブル１１２１を参照し、ターゲットＶＭが移動前ＬＵの各ページに対してなされたＩ／Ｏ量の統計値（１秒あたり平均Ｉ／Ｏデータ量１１２１０４）を、ページ毎に特定する。【０１７０】
（ａ２）次に、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットＶＭがターゲットホストに移動したと仮定した場合にデータアクセスがなされる論理ユニット３９０を特定する。これは、Ｓ２０１０で特定した論理ユニット３９０の情報と、Ｓ２０２０で特定したパスの情報をもとに、ストレージホスト接続管理テーブル１１１５及びボリュームアクセスパス管理テーブル１１３１を参照することで、特定できる。以下では、ターゲットＶＭがターゲットホストに移動したと仮定した場合にデータアクセスがなされる論理ユニット３９０のことを、「移動後ＬＵ」と呼ぶ。【０１７１】
（ａ３）次に、（ａ１）で特定したＩ／Ｏ量の統計値（ターゲットＶＭが移動前ＬＵに発行していたＩ／Ｏ量の統計値）の情報と、Ｉ／Ｏ量管理テーブル１１２１に保持されている、移動後ＬＵのＩ／Ｏ量の統計値の情報から、ターゲットＶＭがターゲットホストに移動したと仮定した場合に、移動後ＬＵに発行するデータＩ／Ｏ量を見積もる。これはたとえばターゲットＶＭのＩ／Ｏ特性がリード主体（ライトが殆どない）である場合には、Ｉ／Ｏ量管理テーブル１１２１に格納されている、移動後ＬＵのデータＩ／Ｏ量に対して、（ａ１）で特定されたＩ／Ｏ量の統計値を加算したものを、見積もり値とするとよい。またターゲットＶＭのリード比率（全Ｉ／Ｏに対するリードの割合）がＲ（０≦Ｒ≦１）であることが分かっている場合には、Ｉ／Ｏ量管理テーブル１１２１に格納されている、移動後ＬＵのページ毎のデータＩ／Ｏ量に、（（ａ１）で特定されたＩ／Ｏ量の統計値×Ｒ）を加算することで見積もるとよい。なお、ここでのデータＩ／Ｏ量の見積もりはページ毎に行う。【０１７２】
（ａ４）次に（ａ４）では、ターゲットＶＭがターゲットホストに移動した後の、各物理リソース３８０に対して発行されるＩ／Ｏの応答時間を見積もる。見積もりには主に、ターゲットＶＭがターゲットホストに移動した後の、各論理ユニットの各ページに対するデータＩ／Ｏ量の統計値（見積もり値）と、リソース性能テーブル１１２２に保持されている、単位時間当たりのＩ／Ｏデータ量１１２２０２と応答時間１１２２０３の関係を用いる。見積もり方法の概略を以下に説明する。【０１７３】
ターゲットＶＭがターゲットホストに移動した後の、移動後ＬＵの各ページのデータＩ／Ｏ量（見積もり値）は、（ａ３）で特定された値とする。一方、それ以外の論理ユニットのデータＩ／Ｏ量については、論理ユニットにアクセスするＶＭ２００１の移動がないため、変動がないはずである。そのため、その他の論理ユニットの各ページのデータＩ／Ｏ量の見積もり値として、Ｉ／Ｏ量管理テーブル１１２１に保持されている情報を採用する。【０１７４】
ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、ターゲットＶＭがターゲットホストに移動した後の各論理ユニットのページ毎のデータＩ／Ｏ量（見積もり値）と、ページ管理テーブル１１１３を用いることで、各物理リソース３８０に対して発行されるデータＩ／Ｏ量を算出する（ページ管理テーブル１１１３には各物理リソースと、各物理リソースがマッピングされているページの関係が管理されているため、物理リソースがマッピングされているページに対するデータＩ／Ｏ量の和を算出することで、物理リソース３８０に対して発行されるデータＩ／Ｏ量を算出できる）。さらに、リソース性能テーブル１１２２を参照し、各物理リソース３８０に対して発行されるＩ／Ｏの応答時間を見積もる。【０１７５】
（ａ５）次に、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、レスポンスタイムの変化をシミュレートする対象のＶＭ２００１毎に、それらのＶＭ２００１がデータアクセスを行う論理ユニット３９０を特定する。対象のＶＭ２００１がＳ２０００で指定されたＶＭ（ターゲットＶＭ）であった場合は（ａ２）で特定した論理ユニット３９０であり、それ以外の場合には、（ａ１）と同様の方法で特定する。さらに、特定した論理ユニット３９０の情報をもとに、ページ管理テーブル１１１３を参照し、シミュレート対象のＶＭ２００１がアクセスする物理リソース３８０（１または複数）を特定する。そして（ａ４）で見積もった情報に基づき、シミュレート対象のＶＭ２００１がアクセスする各物理リソース３８０に対するデータＩ／Ｏの応答時間を特定し、それらの物理リソース３８０の応答時間の最大値を選択する。ここで選択された応答時間の最大値が、シミュレート対象のＶＭ２００１がアクセスする論理ユニット３９０の応答時間の推定値と決定される。【０１７６】
なお、上で述べたとおり、（ａ１）ではターゲットＶＭが現在（ターゲットホストに移動する前）データアクセスを行っている論理ユニット３９０が特定される。また（ａ２）では移動後ＬＵを特定する。（ａ１）と（ａ２）を実行した結果、（ａ１）と（ａ２）で特定される論理ユニット３９０が同一である場合がある。これはＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２がＶＭ移動プラン生成プログラム１１０１（Ｓ１０６０）から呼び出された場合である。この場合、ＶＭ２００１が移動した際の性能を見積もるわけではないため、（ａ２）の後、上で説明した（ａ３）、（ａ４）、（ａ５）の代わりに、以下で説明する（ａ４’）と（ａ５’）の処理が行うことで、各ＶＭ２００１が現在アクセスしている論理ユニット３９０の応答時間を見積もる。【０１７７】
（ａ４’）ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、Ｉ／Ｏ量管理テーブル１１２１に保持されている各ページのデータＩ／Ｏ量の統計値と、ページ管理テーブル１１１３に保持されている情報を参照することで、各物理リソース３８０に対して発行されるデータＩ／Ｏ量を算出する。加えてリソース性能テーブル１１２２を参照することで、各物理リソース３８０に対して発行されるＩ／Ｏの応答時間を見積もる。【０１７８】
（ａ５’）次に、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、レスポンスタイムの変化をシミュレートする対象のＶＭ２００１毎に、それらのＶＭ２００１がデータアクセスを行う論理ユニット３９０を特定する。さらに、特定した論理ユニット３９０の情報とページ管理テーブル１１１３の情報を用いて、シミュレート対象のＶＭ２００１がアクセスする物理リソース群を特定する。そして（ａ４’）の情報をもとに、シミュレート対象のＶＭ２００１がアクセスする各物理リソース３８０に対するデータＩ／Ｏの応答時間を特定し、それらの物理リソース３８０の応答時間の最大値にストレージ装置３００とホスト計算機２００の間のネットワーク４２０のＲＴＴを加算したものを、シミュレート対象のＶＭ２００１の応答時間として算出する。【０１７９】
このようにして、各ＶＭ２００１がアクセスする論理ユニット３９０の応答時間が推定できる。この論理ユニット３９０の応答時間に、ネットワークレイテンシを加算したものを、ＶＭ２００１のＩ／Ｏレスポンスタイムとして算出する。ネットワークレイテンシを見積もる際には、ネットワーク性能管理テーブル１１２３のＲＴＴ１１２３０４に格納されている値を利用する。つまり、シミュレート対象のＶＭ２００１が動作するホスト計算機２００のホストＩＤ１１２３０１と、シミュレート対象のＶＭ２００１がアクセスする論理ユニット３９０が存在するストレージ装置３００のストレージＩＤ１１２３０２に対応するＲＴＴ１１２３０４の値を、ネットワークレイテンシの推定値とする。【０１８０】
以上の方法により、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２は、指定されたＶＭ２００１、および、指定されたホスト計算機２００上で動作するＶＭ２００１のＩ／Ｏレスポンスタイムの見積もり値を算出し、処理を終了する。なお、レスポンスタイムの見積もりの精度を向上させるために、ネットワークのＲＴＴや、物理リソース３８０の応答時間以外の情報を用いてもよい。例えば、Ｃ−Ｉ／Ｆ５２０や、ＣＰＵ３２０の負荷状況による処理時間の変化などを用いることもできる。また、先に示した見積もり算出方法は、ネットワークのＲＴＴや、物理記憶媒体の応答時間の算出方法の一例であって、算出方法を限定するものではない。例えば、Ｉ／Ｏ量と物理記憶媒体の応答時間の変化の傾向のデータを測定するなどの方法であってもよい。【０１８１】
次に図２１を用いてＶＭ移動先ホスト計算機探索プログラム１１０３の詳細を説明する。ＶＭ移動先ホスト計算機探索プログラム１１０３は、引数で指定されたＶＭ２００１を移動させる場合に、適切な（ＶＭ２００１の要求サービスレベルを満たす）ホスト計算機２００を探索するプログラムである。【０１８２】
ＶＭ移動先ホスト計算機探索プログラム１１０３はまず、移動対象のＶＭ２００１の識別情報を、呼び出し元プログラムから引数として受信する（Ｓ３０００）。以下、呼び出し元プログラムから受信した引数で特定されるＶＭ２００１のことを「ターゲットＶＭ」と呼ぶ。続いてＶＭ移動先ホスト計算機探索プログラム１１０３は、ターゲットＶＭの識別情報と、ＶＭボリューム対応関係管理テーブル１１３２の情報を参照することで、ターゲットＶＭのディスクイメージが格納されている仮想論理ユニット５１０、もしくは、論理ユニット３９０を特定する（Ｓ３０１０）。【０１８３】
次に、ＶＭ移動先ホスト計算機探索プログラム１１０３は、ＶＭ配置管理テーブル１１３５を参照することで、ターゲットＶＭが動作しているホスト計算機２００を特定する。そのうえで、ホスト計算機間接続管理テーブル１１３４を参照し、特定したホスト計算機２００と第１の通信ネットワークで接続されているすべてのホスト計算機２００を特定する（Ｓ３０２０）。【０１８４】
また、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ３０１０で特定した仮想論理ユニット５１０と、ボリュームアクセスパス管理テーブル１１３１の情報をもとに、Ｓ３０２０で特定したホスト計算機群のなかから、ＶＭ２００１を移動させることができるホスト計算機２００を絞りこむ（Ｓ３０３０）。つまりここの処理では、Ｓ３０１０で特定した仮想論理ユニット５１０にアクセス可能な（アクセスパスが存在する）ホスト計算機２００が特定される。【０１８５】
次に、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ３０３０で特定したすべてのホスト計算機２００に対して、Ｓ３０４０〜Ｓ３０６０を行うことにより、ターゲットＶＭを移動させたとしても、ターゲットＶＭ及びその他のＶＭ２００１の要求サービスレベルを満たすことができる、ＶＭ２００１の移動先候補のホスト計算機２００を特定する。【０１８６】
まずＳ３０４０ではＶＭ移動先ホスト計算機探索プログラム１１０３は、ホスト計算機２００の識別情報と、ターゲットＶＭの識別情報を引数として指定して、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２を呼び出す。ＶＭ移動先ホスト計算機探索プログラム１１０３は、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２の返却した結果と、ＳＬＡ管理テーブル１１３３の情報を比較することで、移動対象のＶＭ２００１及びホスト計算機２００上で稼働するすべてのＶＭ２００１が要求サービスレベルを満たすか否かを判定する（Ｓ３０５０）。その結果が肯定的であった場合には、ＶＭ移動先ホスト計算機探索プログラム１１０３は見積もりを算出したホスト計算機２００を、ターゲットＶＭの移動先候補のホスト計算機２００として選択する（Ｓ３０６０）。また、Ｓ３０５０の結果が否定的であった場合には、見積もりを算出したホスト計算機２００をターゲットＶＭの移動先候補のホスト計算機２００としては選出しない。【０１８７】
Ｓ３０３０で特定したすべてのホスト計算機２００に対して、Ｓ３０４０〜Ｓ３０６０の処理が行われた後、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ３０４０〜Ｓ３０６０の結果、ターゲットＶＭの移動先候補のホスト計算機２００が１以上見つかったか否かを判定する（Ｓ３０７０）。Ｓ３０７０の結果が否定的であった場合には、ＶＭ移動先ホスト計算機探索プログラム１１０３、ターゲットＶＭの適切な移動先ホスト計算機２００がない旨を、呼び出し元のプログラム（ＶＭ移動プラン生成プログラム１１０１）に返却して、処理を終了する。【０１８８】
一方で、Ｓ３０７０の結果が肯定的であった場合には、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ３０６０で選択された移動先候補のホスト計算機２００の中から１つのホスト計算機２００を選択し（Ｓ３０８０）、選択されたホスト計算機２００の情報（ホストＩＤ等の識別子）を呼び出し元のプログラムに返却し、処理を終了する。このときの選択方法には、様々な方法を用いることができる。たとえばＳ３０４０で算出した見積もり性能が最も高いホスト計算機２００であってもよい。あるいはホスト計算機２００の計算機リソースの使用率などの情報を用いて選択してもよい。【０１８９】
前述のＶＭ移動プラン生成プログラム１１０１の処理Ｓ１０７０、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２の処理Ｓ２０３０、ＶＭ移動先ホスト計算機探索プログラム１１０３の処理Ｓ３０５０において、本実施例ではＶＭ２００１のレスポンスタイムの見積もり算出方法と、レスポンスタイムが要求値を満たしているか否かの判定方法を示した。これは、ＶＭ２００１のホスト計算機２００間の移動あるいは論理ユニット３９０へのパスの切り替えによって発生する、ＶＭ２００１が提供可能なサービスレベルへの影響を見積もり、ＶＭ２００１が要求サービスレベルを満たすか否かの判定を行う処理の一例である。サービスレベルの指標として、レスポンスタイム以外の指標が用いられている場合であっても、上で説明した方法と同様のことが実現できる。例えば、サービスレベル指標としてＲＴＯがＳＬＡ管理テーブル１１３３に定められている場合には、Ｓ２０３０にて、ＶＭ２００１の移動後あるいはパス切り替え後のデータ書き込み時間の変化を見積もり、Ｓ１０７０やＳ３０５０では、その結果がＳＬＡ管理テーブル１１３３に登録されている値を満たすことが可能か否かを判定すればよい。【０１９０】
以上で説明したように、本実施例によれば、ストレージ装置の構成変更によって、ホスト計算機から利用できるパスが減少した際には、計算機システム内のホスト計算機のうち、ＶＭの要求サービスレベルを満たすことができるホスト計算機を選択することができる。
【実施例２】
【０１９１】
（２−１）本実施の形態の概要
続いて実施例２の説明を行うる。実施例２に係る計算機システムの構成や、当該計算機システムで管理される管理情報等は、実施例１において説明した計算機システムと同様であるため、図示は省略する。また実施例２に係る計算機システムで実行されるプログラムのうち、ＶＭ移動プラン生成プログラム１１０１の動作が実施例１で説明したものと若干異なるが、それ以外のプログラムの動作は、実施例１で説明したものと同様である。そのため以下では、ＶＭ移動プラン生成プログラム１１０１の動作のうち、実施例１で説明したものと異なる点を中心に説明する。実施例１では、Ｓ１０１０の結果がホスト計算機から利用できるパスが増加する、もしくは変わらない場合には（Ｓ１０１０：Ｎｏの場合）、ＶＭ２００１のサービスレベルには影響しないため、ＶＭ移動プラン生成プログラム１１０１はとくに処理を行わなかった。一方、本実施例においては、ＶＭ移動プラン生成プログラム１１０１は、Ｓ１０１０の結果がホスト計算機から利用できるパスが増加する、もしくは変わらない場合に、例えばＶＭ２００１のサービスレベルを向上させることが可能か否か（たとえばＳＬＡの指標としてレスポンスタイムが用いられている場合、レスポンス性能を向上させることが可能か否か）を判定する。そして、サービスレベルを向上させることができるホスト計算機（ＶＭ２００１の移動先ホスト計算機２００）の情報を出力する。以下では実施例１と同様、ＳＬＡの指標としてレスポンスタイムが用いられている場合について説明する。【０１９２】
（２−２）各装置の動作の詳細
図２２は、本実施例におけるＶＭ移動プラン生成プログラム１１０１の動作を示す。まず、本実施例におけるＶＭ移動プラン生成プログラム１１０１は、実施例１と同様に、Ｓ１０００までの処理を行う。次に、ＶＭ移動プラン生成プログラム１１０１は、Ｓ１０００でストレージ構成変更を検知したか、否かを判定する（Ｓ４０００）。ＶＭ移動プラン生成プログラム１１０１は、構成変更を検知した場合には次にＳ４０１０の処理を行い、構成変更を検知していない場合には次にＳ４０７０の処理を実行する。【０１９３】
Ｓ４０１０ではＶＭ移動プラン生成プログラム１１０１は、検知した構成変更が、ホスト計算機２００が認識する論理ユニット３９０もしくは仮想論理ユニット５１０へのパスを増加させる操作であるか、否かを判定する。本実施例では、パスを増加させる操作がＨＡ構成を設定する操作であった場合の例について、以降の説明を行う。【０１９４】
Ｓ４０１０の判定結果が否定的であった場合には、ＶＭ移動プラン生成プログラム１１０１は、検知したストレージ装置３００の構成変更によって、ホスト計算機２００が認識するパスの数が変化したか否かを判定する（Ｓ４０２０）。その方法としては、ボリュームアクセスパス管理テーブル１１３１の変化を監視するなどがある。Ｓ４０２０の結果が肯定的であり、パスの増減がない場合には、ＶＭ移動プラン生成プログラム１１０１は次にＳ４０７０の処理を実行する。一方で、Ｓ４０２０の結果が否定的であり、パスの数が減少している場合には、ＶＭ移動プラン生成プログラム１１０１は実施例１で説明したＳ１０１０以降の処理を実行する。【０１９５】
Ｓ４０１０の判定結果が肯定的であった場合には、ＶＭ移動プラン生成プログラム１１０１はＶＭボリューム対応関係管理テーブル１１３２を参照し、構成変更によってホスト計算機２００からのパスが増加した仮想論理ユニット５１０に対応するＶＭ２００１を特定する（Ｓ４０３０）。以下、ここで特定されたＶＭ２００１のことを「ターゲットＶＭ」と呼ぶ。【０１９６】
次に、ＶＭ移動プラン生成プログラム１１０１は、ターゲットＶＭの識別情報を引数としてＶＭ移動先ホスト計算機探索プログラム１１０３を呼び出し、ターゲットＶＭを動作させる場合に適切なホスト計算機２００を探索する（Ｓ４０４０）。【０１９７】
次に、ＶＭ移動プラン生成プログラム１１０１は、ＶＭ配置管理テーブル１１３５を参照し、Ｓ４０４０で特定したホスト計算機２００が、現在ターゲットＶＭ（Ｓ４０３０で特定したＶＭ２００１）が動作中のホスト計算機と異なるか、否かを判定する（Ｓ４０５０）。Ｓ４０５０の結果が否定的であった場合には、ターゲットＶＭはすでに適切なホスト計算機２００の上で動作していることから、ＶＭ移動プラン生成プログラム１１０１は、Ｓ４０６０の処理を行わず、Ｓ４０７０の処理に実行を移す。一方で、Ｓ４０５０の結果が肯定的である場合には、ＶＭ移動プラン生成プログラム１１０１は、Ｓ４０４０で探索されたホスト計算機２００にターゲットＶＭを移動させたほうが適切であると判断し、ターゲットＶＭをＳ４０４０で選択したホスト計算機２００に移動させることを推奨する旨を、入出力装置１３０等に出力する。【０１９８】
次に、ＶＭ移動プラン生成プログラム１１０１はＳ４０７０以降の処理にて、ストレージ装置３００の状態変化によって、適切な論理ユニット３９０、もしくは、仮想論理ユニット５１０へのパスが変化したか否かを判定し、適切なパスが変化している場合には、ホスト計算機２００に適切なパスを利用させるようにする。【０１９９】
ＶＭ移動プラン生成プログラム１１０１は、管理計算機１００が管理するすべてのＶＭ２００１について、Ｓ４０７０〜Ｓ４１００の処理を行う。ＶＭ移動プラン生成プログラム１１０１は、Ｓ４０７０でホスト計算機２００が利用するパスを変更することにより、ＶＭ２００１のサービスレベルが現在のサービスレベルより向上するか否かを判定する（Ｓ４０７０）。具体的にはＶＭ２００１の論理ユニット３９０（もしくは仮想論理ユニット５１０）に対するＩ／Ｏレスポンス性能が現状より向上するか（レスポンスタイムが現状より短縮されるか）判定する。判定の方法は例えば、ＶＭボリューム対応関係管理テーブル１１３２と、ボリュームアクセスパス管理テーブル１１３１、ホスト計算機間接続管理テーブル１１３４より、ＶＭ２００１が移動できるホスト計算機２００と、ＶＭ２００１の関連する論理ユニット３９０へのパスの組み合わせを特定する。そのうえで、特定したホスト計算機２００、論理ユニット３９０へのパス、ＶＭ２００１の各組み合わせについて、ＶＭ  Ｉ／Ｏ性能見積もりプログラム１１０２のＳ２０３０の見積もり算出処理と同様の処理を行えば良い。【０２００】
Ｓ４０７０の結果が否定的な場合、ＶＭ２００１は適切なホスト計算機２００の上で、適切なパスを用いてＩ／Ｏを発行していることとなるため、ＶＭ移動プラン生成プログラム１１０１は判定対象のＶＭ２００１に対して特別な処理を行わない。【０２０１】
一方で、Ｓ４０７０の結果が肯定的な場合、ＶＭ２００１は適切でないホスト計算機２００の上で動作している、もしくは、適切でないパスを用いてＩ／Ｏを発行していることとなる。そのため、ＶＭ移動プラン生成プログラム１１０１は、次にＳ４０８０にてＳ４０７０の結果の内容より、ＶＭ２００１が適切なホスト計算機２００の上で動作しているか、否かを判定する。ＶＭ２００１が適切なホスト計算機２００の上で動作していない場合には（Ｓ４０８０：Ｙｅｓ）、ＶＭ移動プラン生成プログラム１１０１は、ＶＭ２００１を移動させることを推奨する旨を入出力装置１３０に出力する（Ｓ４０９０）。【０２０２】
さらに、ＶＭ移動プラン生成プログラム１１０１は、Ｓ４０７０の結果より、ＶＭ２００１が利用すべき適切なパスの情報を入出力装置１３０に出力する（Ｓ４１００）。パスの情報としては、たとえばホスト計算機２００の識別情報、論理ユニット３９０（もしくは仮想論理ユニット５１０）の識別情報、Ｃ−Ｉ／Ｆ３４０の識別情報のセットを出力するとよい。ただしそれ以外の情報を出力するようにしてもよい。たとえば、ＳＣＳＩ  Ｐｒｉｍａｒｙ  Ｃｏｍｍａｎｄｓ−５の仕様で規格化されている、Ｃｏｎｇｌｏｍｅｒａｔｅ  ＬＵＮｓの論理ユニット間の関係を表す情報を含むこととしてもよい。【０２０３】
またＳ４１００で、パスの情報を入出力装置１３０に出力することに加えて（あるいは情報を出力することに代えて）、管理計算機１００は、ホスト計算機２００がＳ４１００で選出したパスを利用するよう、ホスト計算機２００に対して、論理ユニット３９０または仮想論理ユニット５１０へのＩ／Ｏに利用するパスの情報を通知してもよい。また、ホスト計算機２００がＳ４１００で選出したパスを使用するように、Ｓ４１００においてＶＭ移動プラン生成プログラム１１０１が、ホスト計算機２００に返却するパスの優先度の設定を変更する処理をストレージ装置３００に対して行ってもよい。このようにすると、優先的に使用すべきパスの情報がストレージ装置３００からホスト計算機２００に通知されるので、ホスト計算機は通知されたパスを使用して論理ユニットにアクセスするようになる。【０２０４】
以上、本実施例によれば、ストレージ装置の構成変更によってホスト計算機から利用できるパスが増加した際には、ＶＭの要求サービスレベルを満たすことのできるホスト計算機として、現在ＶＭを実行しているホスト計算機よりも適切なホスト計算機が存在する場合には、ＶＭを移動させるべき適切なホスト計算機を選択することができる。【０２０５】
また、本実施例によれば、ＶＭのサービスレベルに悪影響を与えるストレージ装置の状態変化が発生しなかった場合でも、ＶＭを動作させるべき適切なホスト計算機、およびパスを選択することができる。あるいは、ストレージ装置がホスト計算機に通知するパスの優先度情報を適切に変更することができる。
【実施例３】
【０２０６】
（３−１）本実施の形態の概要
続いて実施例３の説明を行う。実施例３に係る計算機システムの構成や、当該計算機システムで管理される管理情報等は、実施例１または２において説明したものと同様であるため、図示は省略する。実施例３に係る計算機システムでは、ＶＭ移動先ホスト計算機探索プログラム１１０３の動作が、実施例１または２で説明したものと若干異なるが、それ以外は実施例１または２で説明したものと同様である。そのため以下では、実施例１または実施例２と異なる点について中心に説明する。実施例１および実施例２では、Ｓ３０３０においてＶＭ移動先ホスト計算機探索プログラム１１０３が、ＶＭ２００１のディスクイメージが格納された論理ユニット３９０もしくは仮想論理ユニット５１０に対してアクセス可能な（アクセスパスがある）ホスト計算機２００を選択する例を説明した。一方、本実施例においては、例えばホスト計算機２００が論理ユニット３９０もしくは仮想論理ユニット５１０に対してアクセスできない理由がストレージ装置３００の設定にある場合には、ホスト計算機２００から論理ユニット３９０もしくは仮想論理ユニット５１０に対してアクセス可能とするためのストレージ装置３００の設定変更を行うことを条件として、当該ホスト計算機２００もＶＭ２００１の移動先として選択可能とする。【０２０７】
（３−２）各装置の動作の詳細
図２３は、本実施例におけるＶＭ移動先ホスト計算機探索プログラム１１０３の動作を示す。まず、本実施例におけるＶＭ移動先ホスト計算機探索プログラム１１０３は、実施例１と同様に図２１のＳ３０００からＳ３０２０までの処理を行う。次に、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ３０２０で特定した各ホスト計算機２００に対して、Ｓ３０１０で特定した論理ユニット３９０、もしくは、仮想論理ユニット５１０へのパスの有無を確認する（Ｓ５０００）。その結果、パスがある場合には実施例１のＳ３０３０と同様、ＶＭ２００１の移動先候補のホスト計算機２００とする。一方、パスが無い場合にはＳ５０１０以降の処理を行う。【０２０８】
次に、ＶＭ移動先ホスト計算機探索プログラム１１０３は、ネットワーク性能管理テーブル１１２３と、ボリューム構成情報テーブル１１１１を参照し、Ｓ３０２０で特定したホスト計算機２００から接続されており、かつ、Ｓ３０１０で特定した論理ユニット３９０、もしくは、仮想論理ユニット５１０に対応する論理ユニット３９０を有するストレージ装置５１０の内、一つを選択する（Ｓ５０１０）。例えば、ストレージ装置３００の選択の基準としては、ホスト計算機２００からのアクセス時間などを用いてもよい。【０２０９】
ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ５０１０の条件を満たすストレージ装置３００があるか、否かを判定し（Ｓ５０２０）、ない場合には判定対象のホスト計算機２００をＶＭ２００１の移動先候補から除外する。ある場合には、当該ホスト計算機２００に対して、さらにＳ５０３０以降の処理を行う。【０２１０】
次に、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ５０２０にて特定したストレージ装置３００の設定変更を行うことで、ホスト計算機２００からＳ３０１０で特定した論理ユニット３９０、もしくは、仮想論理ユニット５１０に対してアクセス可能となるか否か（アクセスパスを形成できるか否か）を判定する（Ｓ５０３０）。ここで、ストレージ装置３００の設定変更とは、例えばＬＵＮマスキングの設定変更である。設定変更が可能かどうかの判定としては、例えばホスト計算機２００が接続しているＣ−Ｉ／Ｆ３４０に対して、Ｓ３０１０で特定した論理ユニット３９０もしくは仮想論理ユニット５１０を、ホスト計算機３００からアクセス可能にするためのＬＵＮマスキング設定が可能か、否かである。これらは一例であって、他のストレージ装置設定変更操作であってもよい。【０２１１】
Ｓ５０３０の結果が否定的であった場合には、ＶＭ移動先ホスト計算機探索プログラム１１０３は、Ｓ５０３０で検査したストレージ装置３００を候補から外したうえで、再度Ｓ５０１０の処理を行う。【０２１２】
一方で、Ｓ５０３０の結果が肯定的であった場合には、ＶＭ移動先ホスト計算機探索プログラム１１０３は、ストレージ装置３００に対する設定変更を行うことを、ＶＭ２００１の移動先ホスト計算機として選択する際の条件として管理計算機１００の記憶資源１１０に保持し（Ｓ５０４０）、そのうえで、ホスト計算機２００を、ＶＭ２００１を移動させることができるホスト計算機として選択する（Ｓ５０５０）。その後ＶＭ移動先ホスト計算機探索プログラム１１０３は、図２１のＳ３０４０以降の処理を行う。【０２１３】
本実施例において、ＶＭ移動プラン生成プログラム１１０１は、Ｓ１１００において、ＶＭ２００１の移行先ホスト計算機２００を出力する際にＳ５０４０で記憶資源１１０に保持した条件を移動先ホスト計算機２００の情報とともに通知する。【０２１４】
なお、管理計算機１００がストレージ装置３００の構成を変更する権限を有する場合には、例えばＳ５０４０を実行するタイミングや、Ｓ１１００を実行するタイミングでＳ５０３０にて必要と判断したストレージ構成変更操作をストレージ装置３００に対して指示することも可能である。ここで示したストレージ設定変更を行うタイミングは一例であって、これ以外のタイミングでストレージ設定変更が行われてもよい。例えば、管理計算機１００は、ＶＭ２００１と、移動先のホスト計算機２００と、Ｓ５０４０で記憶資源１１０に保持した必要なストレージ設定変更操作を対応付けて記憶することによって、任意のタイミングでストレージ変更操作を行ってもよい。例えばＶＭ２００１がホスト計算機２００に実際に移動されたときであってもよい。【０２１５】
以上が実施例３の説明である。本実施例によれば、ストレージ構成変更や、ストレージの状態変化の内容によって、ストレージ装置の設定変更を行うことを加味したうえで、ＶＭの要求サービスレベルを満たすことが可能なホスト計算機として、現状ＶＭが実行されているホスト計算機よりも適切なホスト計算機が存在するか否かを判定し、現状よりも適切なホスト計算機が存在する場合には、必要なストレージ装置の設定変更指針と、ＶＭ移動先のホスト計算機を提示することができる。【０２１６】
以上、本発明の実施例を説明してきたが、これは本発明の説明のための例示であって、本発明を上で説明した実施例に限定する趣旨ではない。本発明は、他の種々の形態でも実施可能である。【０２１７】
上で説明した各実施例では、各ホスト計算機でＶＭが動作し、管理計算機はストレージ装置の構成変更などの状態変化が発生した際に、ＶＭに求められるサービスレベルを満たすことができる移動先のホスト計算機を、入出力デバイスに出力することで、ユーザ（管理者）に通知する例を説明してきた。ただしホスト計算機間で移動対象となる対象物（オブジェクト）はＶＭに限定されない。たとえばＶＭが動作していない計算機システムにおいても、本発明は有効である。ＶＭが動作していない計算機システムでは、管理計算機が、ストレージ装置の状態変化が発生した際に、上で説明した実施例と同様の方法でアプリケーションプログラム（ＡＰ）のサービスレベルを満たすことができる移動先のホスト計算機を探索し、その結果を入出力デバイスに出力するようにしてもよい。この場合、ユーザは通知内容に基づいて、移動先ホスト計算機でＡＰを実行させるように、計算機システムの構成を変更することができる。【０２１８】
また、上で説明した各実施例では、たとえば図４に示された構成、つまりＨＡ構成が設定された２つの論理ユニットがマッピングされた単一仮想論理ユニットに、ＶＭがアクセスする構成における処理を中心に説明したが、これ以外の構成であっても本発明は実施可能である。たとえば、ホスト計算機からのアクセスパスが複数ある論理ユニット（仮想論理ユニットではない）にＶＭまたはＡＰがアクセスする構成において本発明を実施しても、効果的である。【０２１９】
図４を用いて説明する。たとえば図４の下段（ｂ）では、各ホスト計算機２００が仮想ストレージ装置５００の仮想論理ユニット５１０にアクセスする構成が示されているが、この仮想ストレージ５００が１台のストレージ装置３００で、仮想論理ユニット５１０が１つの論理ユニット３９０である構成を想定する。ここで、ホスト計算機２００（ａ）から論理ユニットへのアクセスパスは、ストレージポート５２０（ａ）を経由するパス（これを「パスＡ」と呼ぶ）と、ストレージポート５２０（ｂ）を経由するパス（これを「パスＢ」と呼ぶ）の２つがある。【０２２０】
ホスト計算機２００とストレージ装置３００のネットワーク構成によっては、パスＡのネットワーク性能（レイテンシ）とパスＢのネットワーク性能が等しくない場合もあり得る。たとえばパスＢのネットワーク性能がパスＡのネットワーク性能よりも著しく悪かったとする。その場合、パスＡ（たとえばＣ−Ｉ／Ｆ）に障害が発生し、ホスト計算機２００（ａ）が論理ユニットにアクセスするパスをパスＢに切り替えると、Ｉ／Ｏ性能（レスポンス性能）が低下するため、ホスト計算機上で実行される対象物（ＶＭあるいはＡＰ）が、要求サービスレベルを満たせない可能性がある。【０２２１】
本発明を用いると、管理計算機はパスＡに障害が発生したことを検知し、それを契機に、ホスト計算機２００（ｂ）でＶＭあるいはＡＰを実行させることで要求サービスレベルを満たすことができるか否か判定し、要求サービスレベルを満たすことができる場合、それをユーザに通知することができる。【０２２２】
また、上で説明した各実施例では、管理計算機は、ＶＭ（あるいはＡＰ等の、ホスト計算機で実行される対象物）の移動先を入出力デバイスに出力する例を中心に説明したが、それだけでなく、管理計算機がホスト計算機に対してＶＭ（あるいはＡＰ等）の移動指示を発行することで、ホスト計算機にＶＭ（あるいはＡＰ等）の移動を行わせるようにしてもよい。
【符号の説明】
【０２２３】
１００…管理計算機、２００…ホスト計算機、３００…ストレージ装置、５００…仮想ストレージ装置
【図１】
2016121005.tif 000003
【図２】
2016121005.tif 000004
【図３】
2016121005.tif 000005
【図４】
2016121005.tif 000006
【図５】
2016121005.tif 000007
【図６】
2016121005.tif 000008
【図７】
2016121005.tif 000009
【図８】
2016121005.tif 000010
【図９】
2016121005.tif 000011
【図１０】
2016121005.tif 000012
【図１１】
2016121005.tif 000013
【図１２】
2016121005.tif 000014
【図１３】
2016121005.tif 000015
【図１４】
2016121005.tif 000016
【図１５】
2016121005.tif 000017
【図１６】
2016121005.tif 000018
【図１７】
2016121005.tif 000019
【図１８】
2016121005.tif 000020
【図１９】
2016121005.tif 000021
【図２０】
2016121005.tif 000022
【図２１】
2016121005.tif 000023
【図２２】
2016121005.tif 000024
【図２３】
2016121005.tif 000025
【手続補正書】
【提出日】平成29年6月2日(2017.6.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のホスト計算機と、１以上のストレージ装置を有するストレージシステムがネットワークで接続されて構成される計算機システムを管理するための管理計算機であって、
前記ストレージシステムは、ホスト計算機からのアクセスパスが複数設けられたボリュームを有し、
前記管理計算機は、前記ボリューム及び前記ホスト計算機の構成情報と、前記計算機システムの性能情報と、前記ホスト計算機で実行される対象物の要求サービスレベルを管理しており、
前記管理計算機は、前記ストレージシステムの構成に変化があったことを検知すると、
前記構成情報と前記性能情報に基づいて、前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、管理計算機。
【請求項２】
前記管理計算機は、
前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを、前記ホスト計算機から前記対象物がアクセスする前記ボリュームへの前記アクセスパスごとに算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスの情報を選出する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項３】
前記管理計算機は、
前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスが存在する場合、前記アクセスパスの情報を前記ホスト計算機に通知する、
ことを特徴とする、請求項２に記載の管理計算機。
【請求項４】
前記ストレージ装置は、前記ホスト計算機からの前記複数のアクセスパスのうち、優先的に使用すべきアクセスパスを前記ホスト計算機に通知するよう構成されており、
前記管理計算機は、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記アクセスパスが存在する場合、前記ストレージ装置に、前記アクセスパスの情報を優先的に使用すべきアクセスパスとして前記ホスト計算機に通知させる、
ことを特徴とする、請求項２に記載の管理計算機。
【請求項５】
前記管理計算機は、前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出するとき、
前記ボリュームへのアクセスパスが存在する前記ホスト計算機について、前記提供可能なサービスレベルを算出する
ことを特徴とする、請求項１に記載の管理計算機。
【請求項６】
前記管理計算機は、前記ボリュームへのアクセスパスが存在しない前記ホスト計算機が存在した場合、
前記ストレージ装置の設定変更を行うことで、前記ホスト計算機へのアクセスパスを形成できるか判定し、
前記アクセスパスを形成できる場合、前記ボリュームへのアクセスパスが存在しない前記ホスト計算機についても、前記提供可能なサービスレベルを算出する
ことを特徴とする、請求項１に記載の管理計算機。
【請求項７】
前記管理計算機は、検知した前記ストレージシステムの構成の変化が、前記ホスト計算機から前記ボリュームへのアクセスパス数が減少する変化であった場合、
前記対象物を実行している前記ホスト計算機で前記対象物を実行した場合に、前記要求サービスレベルを満たすことができるか判定し、
前記要求サービスレベルを満たすことができないと判定された場合にのみ、
前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項８】
前記管理計算機は、
前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機が存在しないと判定された場合、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機が存在しない旨を、前記管理計算機が有する入出力装置に出力する、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項９】
前記管理計算機は、
前記ホスト計算機が前記ボリュームにアクセスする際に使用する前記アクセスパスを変更することで、前記対象物を前記ホスト計算機で実行した場合に提供可能なサービスレベルが現在のサービスレベルより向上すると判定された場合、
前記対象物を実行した場合に提供可能なサービスレベルが現在のサービスレベルより向上する前記アクセスパスの情報を出力することを特徴とする、請求項２に記載の管理計算機。
【請求項１０】
前記対象物は、仮想計算機であることを特徴とする、請求項１に記載の管理計算機。
【請求項１１】
前記サービスレベルは、前記対象物が前記ボリュームにアクセスする際の、Ｉ／Ｏレスポンスタイムであることを特徴とする、請求項１に記載の管理計算機。
【請求項１２】
前記ストレージシステムは、第１論理ユニットを有する第１ストレージ装置と、第２論理ユニットを有する第２ストレージ装置を含み、
前記第１論理ユニットと前記第２論理ユニットはいずれも、前記ホスト計算機から、同一の前記ボリュームとしてアクセス可能に構成されており、
前記ホスト計算機は、前記第１論理ユニットへのアクセスが不可能になった場合、アクセス先を前記第２論理ユニットに切り替えるように構成されている、
ことを特徴とする、請求項１に記載の管理計算機。
【請求項１３】
前記管理計算機は、前記第１論理ユニットへのアクセスが不可能になった場合、前記ストレージシステムの構成に変化があったと判断する、
ことを特徴とする、請求項１２に記載の管理計算機。
【請求項１４】
前記ホスト計算機が、複数の前記対象物を実行しており、
前記管理計算機は、検知した前記ストレージシステムの構成の変化が、前記ボリュームへのアクセスパス数が減少する変化であった場合、前記ボリュームを使用している対象物が前記要求サービスレベルを満たしているか判定し、
前記ボリュームを使用している対象物が前記要求サービスレベルを満たしていない場合、
前記ボリュームを使用している対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを、前記ホスト計算機で実行されている対象物ごとに算出し、
前記ボリュームを使用している対象物に加えて、前記ホスト計算機で実行されているすべての対象物について、前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、請求項７に記載の管理計算機。
【請求項１５】
複数のホスト計算機と、１以上のストレージ装置を有するストレージシステムがネットワークで接続されて構成される計算機システムの管理方法であって、
前記ストレージシステムは、前記ホスト計算機からのアクセスパスが複数設けられたボリュームを有し、
前記計算機システムを管理する管理計算機は、前記ボリューム及び前記ホスト計算機の構成情報と、前記計算機システムの性能情報と、前記ホスト計算機で実行される対象物の要求サービスレベルを管理する計算機であって、
前記管理計算機は、前記ストレージシステムの構成に変化があったことを検知すると、
１）前記対象物を前記複数のホスト計算機のそれぞれで実行した場合に提供可能なサービスレベルを算出し、
２）前記算出した結果に基づいて、前記対象物を実行した場合に前記要求サービスレベルを満たすことができる前記ホスト計算機を選出する、
ことを特徴とする、計算機システムの管理方法。
【国際調査報告】
2016121005.tif 000026
2016121005.tif 000027
2016121005.tif 000028
2016121005.tif 000029
2016121005.tif 000030
2016121005.tif 000031