(57)【要約】      （修正有）【課題】仮想計算機において仮想デバイスの適切なタイムアウト時間を算出する。【解決手段】タイムアウト時間テーブルと仮想計算機構成テーブルとを読み込む（Ｓ８１）。タイムアウト時間テーブルと仮想計算機構成テーブルとに基づき、物理ディスクに対応する仮想ディスクに、その物理ディスク固有のタイムアウト時間を対応づける（Ｓ８２）。メモリに保持された、仮想計算機と物理計算機との間のソフトウェアの処理に要する時間と、仮想計算機構成テーブルとに基づき、物理計算機毎にマージンを算出する。物理計算機上の各仮想計算機に対応づけて、マージン対応を作成する（Ｓ８３）。仮想計算機構成テーブルとマージン対応テーブルとに基づき、物理ディスクの固定のタイムアウト時間に各仮想ディスクのマージンを加え、仮想計算機仮想ディスクのタイムアウト時間を算出する（Ｓ８４）。【選択図】図８
2014191723.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出する仮想デバイスタイムアウト時間算出装置であって、
前記物理計算機による前記物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持する物理タイムアウト時間取得保持手段と、
前記物理計算機と前記仮想計算機の間のソフトウェア構成を保持するソフトウェア構成保持手段と、
前記対象仮想デバイスを含む、前記物理計算機で動作する仮想計算機の動作状況を保持する動作状況保持手段と、
前記物理デバイスタイムアウト時間と前記ソフトウェア構成と前記動作状況とに基づいて、前記対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出するタイムアウト時間算出手段と、
を有する仮想デバイスタイムアウト時間算出装置。
【請求項２】
前記タイムアウト時間算出手段により算出された前記仮想デバイスタイムアウト時間を前記対象仮想デバイスに対応する前記仮想計算機に設定する設定手段を更に有する、請求項１に記載の仮想デバイスタイムアウト時間算出装置。
【請求項３】
前記タイムアウト時間算出手段は、前記仮想計算機の起動時に、該仮想計算機が認識する仮想デバイスを対象仮想デバイスとして前記仮想デバイスタイムアウト時間を算出する、請求項１に記載の仮想デバイスタイムアウト時間算出装置。
【請求項４】
前記タイムアウト時間算出手段は、ライブマイグレーションによって前記物理計算機上の仮想計算機の構成が変更されるとき、新たな構成において前記物理計算機上の全ての仮想計算機が認識する仮想デバイスを対象仮想デバイスとして前記仮想デバイスタイムアウト時間を算出する、請求項１に記載の仮想デバイスタイムアウト時間算出装置。
【請求項５】
前記仮想デバイスタイムアウト時間は、前記ソフトウェア構成に基づく前記物理計算機と前記仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間と、前記動作状況に基づく前記対象仮想デバイスの遅延見込み時間と、前記物理デバイスタイムアウト時間と、を含む、請求項１に記載の仮想デバイスタイムアウト時間算出装置。
【請求項６】
前記遅延見込み時間は、前記動作状況を統計演算することにより得られる値である、請求項５に記載の仮想デバイスタイムアウト時間算出装置。
【請求項７】
前記仮想デバイスタイムアウト時間算出装置は前記物理計算機に実装される、請求項１に記載の仮想デバイスタイムアウト時間算出装置。
【請求項８】
物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出する方法であって、
前記物理計算機による前記物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持する物理タイムアウト時間取得保持ステップと、
前記物理計算機と前記仮想計算機の間のソフトウェア構成を保持するソフトウェア構成保持ステップと、
前記対象仮想デバイスを含む、前記物理計算機で動作する仮想計算機の動作状況を保持する動作状況保持ステップと、
前記物理デバイスタイムアウト時間と前記ソフトウェア構成と前記動作状況とに基づいて、前記対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出するタイムアウト時間算出ステップと、
を有する方法。
【請求項９】
物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出するプログラムであって、
前記物理計算機による前記物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持し、
前記物理計算機と前記仮想計算機の間のソフトウェア構成を保持し、
前記対象仮想デバイスを含む、前記物理計算機で動作する仮想計算機の動作状況を保持し、
前記物理デバイスタイムアウト時間と前記ソフトウェア構成と前記動作状況とに基づいて、前記対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機が認識する仮想デバイスのタイムアウト時間を算出する技術に関する。
【背景技術】
【０００２】
汎用インタフェースを持つ電子計算機においては、システム立ち上げ時に、汎用デバイスドライバの初期化プログラムが各デバイスのタイムアウト時間を設定する。汎用インタフェースに接続されるデバイスは多岐にわたるが、明示的に指定しない限り、接続されたデバイスによらず予め決められた初期値のタイムアウト時間が適用される。
【０００３】
これに関して、例えば汎用インタフェースにハードディスクが接続されている場合には下記のような問題が発生する。
【０００４】
汎用デバイスドライバが設定するタイムアウト時間がディスクのデータ書き込みあるいはデータ読み出し（以下「ディスクＩ／Ｏ」ともいう）に要する時間よりも短い場合、ディスクへのアクセス要求に対してディスクから適切な応答が返る可能性が残されているにも関わらず、無応答障害が検出されてしまう場合がある。
【０００５】
また、汎用デバイスドライバが設定するタイムアウト時間がディスクＩ／Ｏに要する時間よりも大幅に長い場合、ディスクが応答を返せないような障害が発生したとき、その障害を検出してエラー処理を行うまでに要する時間が無用に長くなってしまう。特に、要求を発行したアプリケーションが、ディスクからの応答を待つ方式のディスクＩ／Ｏ（同期Ｉ／Ｏ）を発行した場合には、アプリケーションは長い間応答を待って動作できない状態となってしまう。
【０００６】
上述のように適切なタイムアウト時間が設定されていないと様々な不具合が発生する。
【０００７】
一方、デバイスに応じて適切なタイムアウト時間を設定するにはデバイス固有のドライバを組み込むか、手動によりデバイス毎のタイムアウト時間を設定する必要があり、その作業は煩雑となる。
【０００８】
この問題に関して特許文献１では、各デバイスの内部にそのデバイス自身の適切なタイムアウト時間を保持させ、汎用インタフェースにはデバイス側からシステム側にそのタイムアウト時間を伝える手段を予め用意しておくという技術が開示されている。これにより、システム側が各デバイスに応じて適切なタイムアウト時間を設定することが可能となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−８４６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、近年では、物理計算機のリソースを有効活用するため、特許文献１では想定されていないような仮想計算機という技術が実現されている。そのためソフトウェアで再現した複数の仮想計算機が物理計算機上で動作することがある。
【００１１】
これらの仮想計算機が認識する各種デバイスは、多種多様なデバイスを抽象的に表現した実デバイス上の仮想的なデバイス（仮想デバイス）である。そのため、同じ仮想デバイスであってもそれが動作している実デバイスにより適切なタイムアウト時間は様々となる。また、その実デバイスを駆動する物理計算機上のドライバが設定する初期値のタイムアウト時間も様々となる。また、物理計算機上での仮想計算機の動作環境も様々であり、仮想計算機の動作速度もそれによって変わる。
【００１２】
このような環境では、例えば、仮想計算機と物理計算機の間に存在する種々のソフトウェアが処理に要する時間が異なり、一意に定まらないため、特許文献１に記載された技術を仮想環境に適用し、固有のタイムアウト時間を仮想デバイスに保持させることでは対応できない。
【００１３】
また、例えば、物理ディスクを複数の仮想ディスクが共用する場合、どれだけの仮想ディスクが物理ディスクを共用するかによって物理ディスク全体のＩ／Ｏ処理量が異なる。物理ディスクの備えるＩ／Ｏ帯域に加わるＩ／Ｏ処理量が変われば、Ｉ／Ｏのレスポンスも変化する。このような場合もやはり、特許文献１の技術では適切に対応できない。
【００１４】
従って、本発明の第一の目的は、物理計算機上で仮想計算機が動作するような状況において仮想デバイスの適切なタイムアウト時間を算出することである。
【００１５】
また、仮想計算機においては、物理計算機を更新する場合や、ライブマイグレーションにより動的に物理計算機を変更する場合など、仮想デバイスが配置されている物理デバイスが変更となることがある。このときに以下のような問題が発生する。
【００１６】
例えば、ある物理計算機の物理ディスクドライバが設定するタイムアウト時間が１８秒であるとする。そして、仮想計算機の仮想ディスクドライバが設定するタイムアウト時間は、上記１８秒に、仮想計算機と物理計算機間に存在する種々のソフトウェアが処理に要する時間を加え、２４秒に設定されているとする。
【００１７】
そのような状況において、仮想計算機が配置されている物理計算機のサポートが終了するため、仮想計算機を引き継ぐ形で物理計算機が更新され、その際に物理計算機に接続される物理ディスクも変更されるという場合を想定する。そして、新たに導入される固有のディスクドライバが設定するタイムアウト時間が６０秒であるとする。
【００１８】
この場合、新たな環境においては、物理計算機の物理ディスクは最大で６０秒間は正常な応答を返す可能性がある。しかし、それにも関わらず、煩雑な作業を避けて物理計算機の更新前のままタイムアウト時間の設定を２４秒にしておけば、仮想計算機は２４秒で無応答障害を検出してしまうことになる。
【００１９】
また別の例として、物理計算機のサポートが終了するため、物理計算機を更新し、物理計算機に接続される物理ディスクも変更される場合を想定する。そして、その固有の物理ディスクドライバが設定するタイムアウト時間が３秒であるとする。
【００２０】
この場合、仮想計算機と物理計算機間のソフトウェア処理において、無限ループ等により仮想計算機へ正常なリターンが返らなくなったとき、仮想計算機は無応答障害を検出するまで２４秒間を要し、その間、つまり物理ディスクドライバが設定する物理ディスク固有のタイムアウト時間の３秒を過ぎても２４秒経過するまでは、無応答障害が検出されないことになる。
【００２１】
このように、物理デバイス上に仮想デバイスを構築するような環境においては、対象の仮想デバイスを実現する物理デバイスが変更された場合、適切なタイムアウト時間が大幅に変化してしまい、タイムアウト時間の設定を変更しないと仮想計算機を含むシステムとして適切な動作を行えない場合がある。
【００２２】
従って、本発明の第二の目的は、仮想デバイスが実現される物理デバイスが変更された場合においても、適切な仮想デバイスのタイムアウト時間を算出することにある。
【課題を解決するための手段】
【００２３】
仮想デバイスタイムアウト時間算出装置は、物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出する装置である。仮想デバイスタイムアウト時間算出装置は、物理計算機による物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持する物理タイムアウト時間取得保持手段と、物理計算機と仮想計算機の間のソフトウェア構成を保持するソフトウェア構成保持手段と、対象仮想デバイスを含む、物理計算機上で動作する仮想計算機の動作状況を保持する動作状況保持手段と、物理デバイスタイムアウト時間とソフトウェア構成と動作状況とに基づいて、対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出するタイムアウト時間算出手段と、を有する。
【００２４】
仮想デバイスタイムアウト時間算出手段は、タイムアウト時間算出装置により算出された仮想デバイスタイムアウト時間を対象仮想デバイスに対応する仮想計算機に設定する設定手段を更に備えてもよい。
【００２５】
タイムアウト時間算出手段は、仮想計算機の起動時に、仮想計算機が認識する仮想デバイを対象仮想デバイスとして仮想デバイスタイムアウト時間を算出してもよい。
【００２６】
タイムアウト時間算出手段は、ライブマイグレーションによって物理計算機上の仮想計算機の構成が変更されるとき、新たな構成において物理計算機上の全ての仮想計算機が認識する仮想デバイスを対象仮想デバイスとして仮想デバイスタイムアウト時間を算出してもよい。
【００２７】
仮想デバイスタイムアウト時間は、ソフトウェア構成に基づく物理計算機と仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間と、動作状況に基づく対象仮想デバイスの遅延見込み時間と、物理デバイスタイムアウト時間と、を含む。
【００２８】
遅延見込み時間は、動作状況を統計演算することにより得られる値である。
【００２９】
仮想デバイスタイムアウト時間算出装置は、物理計算機に実装されてもよい。
【００３０】
物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出する方法であって、方法は、物理計算機による前記物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持する物理タイムアウト時間取得保持ステップと、物理計算機と仮想計算機の間のソフトウェア構成を保持するソフトウェア構成保持ステップと、対象仮想デバイスを含む、物理計算機上で動作する仮想計算機の動作状況を保持する動作状況保持ステップと、物理デバイスタイムアウト時間とソフトウェア構成と動作状況とに基づいて、対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出するタイムアウト時間算出ステップと、を有する。
【００３１】
物理計算機上の仮想計算機が認識する物理デバイス上の対象仮想デバイスにアクセスするシステムにおける仮想デバイスのタイムアウト時間を算出するプログラムであって、プログラムは、物理計算機による物理デバイスへのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持し、物理計算機と仮想計算機の間のソフトウェア構成を保持し、対象仮想デバイスを含む、物理計算機上で動作する仮想計算機の動作状況を保持し、物理デバイスタイムアウト時間とソフトウェア構成と動作状況とに基づいて、対象仮想デバイスの無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出する。
【発明の効果】
【００３２】
本発明によれば、物理計算機上で仮想計算機が動作するような状況において仮想デバイスの適切なタイムアウト時間の算出が可能となる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態に係る仮想デバイスタイムアウト時間算出装置を含むシステムの構成図である。
【図２】仮想計算機を実装する物理計算機の変更について説明するための図である。
【図３】タイムアウト時間テーブルの一例である。
【図４】仮想計算機構成テーブルの一例である。
【図５】タイムアウト時間対応テーブルの一例である。
【図６】マージン対応テーブルの一例である。
【図７】仮想デバイスタイムアウト時間テーブルの一例である。
【図８】仮想デバイスタイムアウト算出部の処理の一例を示すフローチャートである。
【図９】各仮想計算機の仮想計算機タイムアウト時間設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００３４】
本発明の一つの実施形態について図面を参照して説明する。
【００３５】
以下の説明では、オペレーティングシステムという用語を用いる場合があるが、説明で用いるオペレーティングシステムとは、厳密にカーネルのみを示すものではなく、例えば、仮想計算機の作成・動作のため等の周辺ソフトウェアも含めたものである。
【００３６】
以下の説明では、物理計算機用又は仮想計算機用オペレーティングシステム、又は、これらが有する機能を実現する処理部等を動作の主体として説明する場合があるが、これらの処理部は、プロセッサがソフトウェアプログラムを実行することにより、実現される仮想的な処理部であってもよい。
【００３７】
以下では、１つの物理計算機と、これに接続される物理デバイスとして１つの物理ディスクと、を有するシステムについて説明するが、これに限定されるものではない。システム上の物理計算機の数や、物理計算機に接続される物理デバイスの数及び種類は、どのようであってもよい。また、物理計算機上の仮想計算機の数、及び、物理ディスク上の仮想ディスクの数についても、以下の例には限られるものではない。
【００３８】
以下では、物理ディスクが保持する情報をテーブルとして説明する場合があるが、これら情報はテーブルとして保持されるものには限られない。
【００３９】
図１は、本実施形態に係る仮想デバイスタイムアウト時間算出装置を含むシステム１の構成図である。
【００４０】
システム１は、仮想デバイスタイムアウト時間算出装置が実装される物理計算機４００と、物理計算機４００に接続される物理ディスクと４５０とを有する。なお、物理ディスク４５０は、図示例では物理計算機４００の外部に接続されているが、物理計算機４００の内部設けられていてもよい。
【００４１】
物理計算機４００は、主記憶装置４１０とプロセッサ４４０とを有する。主記憶装置４１０には、物理計算機用オペレーティングシステム（以下、物理計算機用ＯＳという）４３０が記憶される。そして、プロセッサ４４０が、物理計算機用ＯＳ４３０の処理を実行することにより、種々の機能が実現される。
【００４２】
物理計算機用ＯＳ４３０は、物理ディスクドライバ４３３と、仮想・物理間通信インタフェース４３１と、仮想ディスクタイムアウト算出部４３２と、マージン算出部４３４とを含む。
【００４３】
物理ディスクドライバ４３３は、物理ディスク４５０を制御するとともに、物理計算機用ＯＳ４３０と物理ディスク４５０との間のインタフェースを提供する。
【００４４】
仮想・物理間通信インタフェース４３１は、物理計算機用ＯＳ４３０と、物理計算機４００上に実現される仮想計算機（５００Ａ又は５００B）の仮想計算機用ＯＳ（５１０Ａ又は５１０Ｂ）との間の通信を行うインタフェースである。
【００４５】
マージン算出部４３４は、物理計算機４００と各仮想計算機（５００Ａ及び５００Ｂ）との間のソフトウェア構成と、物理計算機４００上で動作する仮想計算機（５００Ａ及び５００Ｂ）の動作状況とに基づいて、後述する、仮想デバイスタイムアウト時間の算出にて考慮すべきマージンを算出する。具体的な例は、後に詳述する。
【００４６】
仮想ディスクタイムアウト算出部４３２は、物理ディスク４５０に固有に設定される物理デバイスタイムアウト時間と、マージン算出部４３４で算出されたマージンとに基づいて、対象仮想ディスク（４５１Ａ及び／又は４５１Ｂ）の無応答障害の検出に用いるべき仮想デバイスタイムアウト時間を算出する。
【００４７】
また、仮想ディスクタイムアウト算出部４３２は、算出した仮想デバイスタイムアウト時間を、その対象となる仮想ディスク（４５１Ａ及び／又は４５１Ｂ）に対応する仮想計算機（５００Ａ及び／又は５００Ｂ）に設定する。
【００４８】
次に、仮想計算機（５００Ａ及び５００B）について説明する。なお、仮想計算機５００Ａと仮想計算機５００Ｂとは、基本構成が同じであるため、ここでの説明においては、代表して仮想計算機５００Aについてのみ説明し、仮想計算機５００Bの説明を省略する。
【００４９】
仮想計算機５００Ａは、プロセッサ４４０が物理計算機用ＯＳ４３０を起動することにより、実現される。具体的には、主記憶装置４１０に、仮想計算機用論理区画４２０Aが設定され、そこに仮想計算機５００Ａが実現される。
【００５０】
仮想計算機５００Aは、仮想計算機用オペレーティングシステム（以下、仮想計算機用ＯＳという）５１０Aと、タイムアウト時間設定処理部５２０Aとを含む。
【００５１】
仮想計算機用ＯＳ５１０Aは、仮想ディスクドライバ５１２Ａと、タイムアウト時間設定インタフェース５１１Ａと、仮想・物理間通信インタフェース５１３Ａと、を有する。
【００５２】
仮想ディスクドライバ５１２Ａは、自身の仮想計算機５００Ａが認識する仮想ディスク４５１Ａを制御するとともに、仮想計算機用ＯＳ５１０Ａと仮想ディスク４５１Ａとの間のインタフェースを提供する。
【００５３】
タイムアウト時間設定インタフェース５１１Ａは、仮想計算機５００Ａが認識する仮想ディスク４５１Ａのタイムアウト時間を、仮想計算機５００Ａに設定するためのインタフェースである。
【００５４】
仮想・物理間インタフェース５１３Ａは、仮想計算機５００Ａの仮想計算機用ＯＳ５１０Ａと、物理計算機用ＯＳ４３０との通信を行うインタフェースである。
【００５５】
物理ディスク４５０には、仮想ディスク（４５１A及び４５１B）が設定され、そのそれぞれに仮想計算機ディスクイメージ（４５２A及び４５２B）が実現される。なお、仮想計算機ディスクイメージ（４５２A及び４５２B）は、それぞれ、仮想計算機（５００A及び５００Ｂ）に接続される仮想ディスク（４５１Ａ及び４５１B）のイメージファイルである。
【００５６】
また、物理ディスク４５０は、タイムアウト時間テーブル４５３と、仮想計算機構成テーブル４５４と、タイムアウト時間対応テーブル４５５と、マージン対応テーブル４５６と、仮想デバイスタイムアウト時間テーブル４５７とを有する。
【００５７】
タイムアウト時間テーブル４５３は、物理計算機４００による物理ディスク４５０へのアクセスにおける無応答障害の検出に用いるべき物理デバイスタイムアウト時間を保持するテーブルである。
【００５８】
仮想計算機構成テーブル４５４は、物理計算機４００と、物理計算機４００上に実現される各仮想計算機（５００Ａ及び５００B）の間のソフトウェア構成を保持するテーブルである。
【００５９】
タイムアウト時間対応テーブル４５５は、仮想計算機（５００Ａ及び５００B）と、各仮想計算機（５００Ａ及び５００B）を実現する物理計算機４００固有のタイムアウト時間とが対応づけられたテーブルである。
【００６０】
マージン対応テーブル４５６は、仮想計算機（５００Ａ及び５００B）毎のマージンが設定されるテーブルである。詳細は後述する。
【００６１】
仮想デバイスタイムアウト時間テーブル４５７は、仮想計算機（５００Ａ及び５００B）毎に、仮想ディスクのタイムアウト時間が設定されるテーブルである。
【００６２】
図２は、仮想計算機を実装する物理計算機が変更された場合を説明するための図である。以下、同じネットワーク３００上の他のシステムYの物理計算機ｙ上で動作する仮想計算機４２０Ｂが、システム１の物理計算機４００に移行される場合を説明する。
【００６３】
ネットワーク３００には、仮想計算機４２０Bの移行元の物理計算機ｙを有するシステムYと、仮想計算機４２０Bの移行先となる物理計算機４００を有するシステム１とが接続されている。移行元のシステムYの構成は、システム１の構成と基本的に同じである。システムYの物理計算機yには、仮想計算機用論理区画４２０Bが設定され、その内部に仮想計算機５００Bが実現される。また、システムYの物理計算機ｙには、仮想計算機５００Bが認識する仮想ディスク４５１Ｂを有する物理ディスクzが接続されている。
【００６４】
以下、ネットワーク３００を介して、仮想計算機４２０Bを、移行元の物理計算機yから移行先の物理計算機４００に移行する場合の処理を説明する。
（＊）物理計算機用ＯＳ（ｙａ）は、仮想計算機５００Bを実現するためのデータと、仮想計算機５００Bが認識する仮想ディスク４５１Bの仮想計算機ディスクイメージ（４５２Ｂ）とを、物理計算機４００の物理計算機用ＯＳ４３０に送信する。
（＊）物理計算機用ＯＳ４３０は、仮想計算機５００Bを実現するためのデータと、仮想ディスクイメージ４５２Ｂとを受信する。そして、物理計算機用ＯＳ４３０は、受信したデータを物理ディスク４５０に保持する。
（＊）物理計算機用ＯＳ４３０は、主記憶４１０Ａ内に仮想計算機用論理区画４２０Ｂを設定する。
（＊）物理計算機用ＯＳ４３０は、受信したデータに基づき、仮想計算機用論理区画４２０Bに仮想計算機５００Bを実現する。
（＊）物理計算機用ＯＳ４３０は、受信したデータに基づき、物理ディスク４５０に、仮想ディスク４５１Bを設定し、仮想ディスクイメージ４５２Bを実現する。
【００６５】
図３は、タイムアウト時間テーブル４５３の一例である。
【００６６】
テーブル４５３には、物理ディスクの物理ディスク名と、物理ディスクの固有のタイムアウト時間とが対応づけて設定される。具体的には、例えば、物理ディスク４５０の固有のタイムアウト時間は、１５秒である。
【００６７】
図4は、仮想計算機構成テーブル４５４の一例である。
【００６８】
テーブル４５４には、仮想計算機の仮想計算機名と、仮想計算機に接続される仮想ディスクの仮想ディスク名と、仮想ディスク内に実現される仮想計算機ディスクイメージファイル名と、仮想ディスクイメージファイルのデータが保持される物理ディスク名と、仮想計算機と仮想ディスクとの間の通信のＩ／Ｏ帯域使用量（Mb/sec）とが設定される。Ｉ／Ｏ帯域使用量（Mb/sec）には、例えば、動作状況の統計演算としての過去（又は、過去のある期間）に測定されたＩ／Ｏ帯域使用量（Mb/sec）の平均値や、事前テストにおいて測定されたＩ／Ｏ帯域使用量（Mb/sec）の値が設定されてもよい。具体的には、例えば、仮想計算機５００Ａは、物理ディスク４５０内の仮想ディスクイメージ４５２Ａを含む仮想ディスク４５１Ａを認識する。
【００６９】
図５は、タイムアウト時間対応テーブル４５５の一例である。
【００７０】
テーブル４５５には、物理計算機が実現する仮想計算機の仮想計算機名と、仮想計算機が認識する仮想ディスクの仮想ディスク名とが、その物理計算機に接続される物理ディスクのタイムアウト時間に対応づけて設定される。具体的には、例えば、仮想計算機５００Ａが認識する仮想ディスク４５１Ａを有する物理ディスク４５０の固有のタイムアウト値は、１５秒である。
【００７１】
マージン算出部４３４により算出される、マージンの計算式の一例を示す。
【数１】
2014191723.tif 000003
【００７２】
マージンの計算式は、例えば、物理ディスク４５０又は主記憶装置４１０の図示しないメモリ上に保持される。マージンは、ソフトウェア構成に基づく物理計算機と仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間と、動作状況に基づく対象仮想デバイスの遅延見込み時間に応じて算出される。ここで、物理計算機と仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間は、ソフトウェアの構成に依存し、ソフトウェアの動作状況（例えば、アクセス頻度）には、依存しない値である。また、遅延見込み時間は、動作状況を統計演算することにより得られる値である。なお、仮想計算機と物理計算機との間のソフトウェアの処理に要する時間は、例えば、予め測定されてメモリ上に保持されていてもよい。
【００７３】
上式においては、マージンは、仮想計算機と物理計算機との間のソフトウェアの処理に要する時間に、物理計算機上に実現される仮想計算機の数と、動作状況の統計演算された値としての、物理計算機上の仮想計算機及び仮想ディスク間のＩ／Ｏ帯域使用量の総量とを掛け合わせた値の１０分の１の時間を加えて計算される。この場合は、同じ物理計算機に実装された仮想計算機に対しては、同じマージンの値が設定されてもよい。具体的には、マージンは、仮想計算機と物理計算機との間のソフトウェアの処理に要する時間（５秒）＋仮想計算機数（２台）×仮想ディスク間の総Ｉ／Ｏ帯域使用量（１５＋５０＝６５Mb/sec）より、１８秒と算出される。なお、上述の計算式は一例である。このため、マージンは、ソフトウェア構成に基づく物理計算機と仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間と、動作状況に基づく対象仮想デバイスの遅延見込み時間に応じて算出されるものであれば、どのようなものであってもよい。
【００７４】
図６は、マージン対応テーブル４５６の一例である。
【００７５】
マージン対応テーブル４５６には、仮想計算機の仮想計算機名と、その仮想計算機が実現される物理計算機のマージンとが対応づけられる。具体的には、仮想計算機５００Ａ及び仮想計算機５００Bには、これら仮想計算機（５００Ａ及び５００B）を実現する物理計算機４００のマージン（１８秒）が対応づけられている。
【００７６】
図７は、仮想デバイスタイムアウト時間テーブル４５７の一例である。
【００７７】
テーブル４５７は、仮想計算機の仮想計算機名と、仮想計算機に認識される仮想ディスク名と、仮想デバイスタイムアウト時間とが対応づけられる。本例では、仮想計算機５００Ａに認識される仮想ディスク４５１Ａの仮想デバイスタイムアウト時間は、仮想計算機が実現される物理ディスクに依存する固有値として設定されたタイムアウト時間（１５秒）に、仮想計算機を実現する物理ディスクのマージン（１８秒）を加えた値（３３秒）である。
【００７８】
図８は、仮想ディスクタイムアウト算出部４３２の処理の一例を示すフローチャートである。
【００７９】
この処理は、物理計算機４００上で仮想計算機（５００Ａ及び／又は５００B）が起動する際に行われる。例えば、この処理は、物理計算機の更新や、ライブマイグレーションによる物理計算機の動的変更を契機におこなわれてもよい。
【００８０】
ステップS８１で、仮想ディスクタイムアウト算出部４３２は、主記憶装置４１０の図示しないメモリに、タイムアウト時間テーブル４５３と仮想計算機構成テーブル４５４とを読み込む。
【００８１】
ステップS８２で、仮想ディスクタイムアウト算出部４３２は、タイムアウト時間対応テーブル４５５を作成する。具体的には、例えば、仮想ディスクタイムアウト算出部４３２は、タイムアウト時間テーブル４５３と仮想計算機構成テーブル４５４と基づき、物理ディスクに対応する仮想ディスクに、その物理ディスク固有のタイムアウト時間を対応づける。
【００８２】
ステップS８３で、仮想ディスクタイムアウト算出部４３２は、マージン対応テーブル４５５を作成する。具体的には、例えば、以下の処理が行われる。
（＊）仮想ディスクタイムアウト算出部４３２は、マージン算出部４３４に処理を渡す。
（＊）マージン算出部４３４は、メモリに保持された、仮想計算機と物理計算機との間のソフトウェアの処理に要する時間と、仮想計算機構成テーブル４５４とに基づき、マージン計算式によって物理計算機毎にマージンを算出する。
（＊）マージン算出部４３４は、算出された物理計算機毎のマージンを仮想ディスクタイムアウト算出部４３２に渡す。
（＊）仮想ディスクタイムアウト算出部４３２は、渡されたマージンを、物理計算機４１０上の各仮想計算機に対応づけて、マージン対応４５５を作成する。
【００８３】
ステップS８４で、仮想ディスクタイムアウト算出部４３２は、仮想デバイスタイムアウト時間テーブル４５７を作成する。具体的には、例えば、仮想ディスクタイムアウト算出部４３２は、仮想計算機構成テーブル４５３とマージン対応テーブル４５５とに基づき、物理ディスクの固定のタイムアウト時間に各仮想ディスクのマージンを加え、仮想計算機仮想ディスクのタイムアウト時間を算出し、仮想デバイスタイムアウト時間テーブル４５７を作成する。
【００８４】
ステップS８５で、仮想ディスクタイムアウト算出部４３２は、作成した仮想デバイスタイムアウト時間テーブル４５７に基づき、各仮想計算機（５００Ａ及び５００B）の仮想・物理間通信インタフェース（５１３Ａ及び５１３B）へ、対応する仮想デバイスタイムアウト時間を送信し、処理を終了する。具体的には、例えば、仮想デバイスタイムアウト時間の送信は、物理計算機用ＯＳ４３０の仮想・物理管通信インタフェース４３１を介して、各仮想計算機（５００Ａ及び５００B）が有する仮想計算機用ＯＳ（５１０Ａ及び５１０B）の仮想・物理間通信インタフェース（５１３Ａ及び５１３B）に送信される。
【００８５】
上記処理により、物理計算機上で仮想計算機を動作させる場合に、仮想デバイスの適切なタイムアウト時間の算出が可能となる。
【００８６】
特に、仮想デバイスタイムアウト時間は、物理デバイスタイムアウト時間と、ソフトウェア構成に基づく物理計算機と仮想計算機の間のソフトウェア処理に要するソフトウェア処理時間と、動作状況に基づく対象仮想ディスクの遅延見込み時間に応じて算出される。このため、物理計算機上で稼働する仮想計算機の状態を考慮した適切な仮想デバイスタイムアウト時間の算出が可能となる。また、遅延見込み時間は、動作状況を統計演算することにより得られる値であるため、実際に物理計算機上で稼働する仮想計算機の動作状況に基づいた適切な仮想デバイスタイムアウト時間が算出可能になる。
【００８７】
また、仮想デバイスが実現される物理デバイスが変更された場合においても、適切な仮想デバイスタイムアウト時間を算出が可能となる。具体的には、物理計算機を更新する場合や、ライブマイグレーションにより動的に物理計算機を変更する場合においても、仮想デバイスの適切なタイムアウト時間の算出が、仮想計算機の起動時に自動的に行われることで、適切なタイミングで適切な仮想デバイスタイムアウト時間の算出が可能となる。
【００８８】
また、仮想デバイスタイムアウト時間算出装置が、物理計算機に実装されていることで、仮想計算機の起動時の仮想デバイスタイムアウト時間の算出がよりスムースに実現可能となる。
【００８９】
図９は、各仮想計算機（５００Ａ及び５００B）の仮想計算機タイムアウト時間設定処理の一例を示すフローチャートである。
【００９０】
ステップS９１で、仮想・物理間通信インタフェース（５１３Ａ及び５１３B）は、図９のステップS８５において、仮想ディスクタイムアウト算出部４３２が送信した仮想デバイスタイムアウト時間を受信する。
【００９１】
ステップS９２で、仮想・物理間通信インタフェース（５１３Ａ及び５１３B）は、受信した仮想デバイスタイムアウト時間をタイムアウト時間設定インタフェース（５１１Ａ及び５１１B）に渡す。
【００９２】
ステップS９３で、仮想計算機用ＯＳ（５１０Ａ及び５１０B）は、タイムアウト時間設定インタフェース（５１１Ａ及び５１１B）が受信した仮想デバイスタイムアウト時間を、仮想ディスクドライバ（５１２Ａ及び５１２B）に設定する。
【００９３】
上記処理により、仮想デバイスタイムアウト時間が算出された後、仮想計算機に自動的に設定されるため、設定のための処理が煩雑になることを防ぐことができる。
【００９４】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記した実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【００９５】
上述のマージン計算式は、一例であり、これに限定されることはない。システムの設計時にシステムに好適な式を適宜設定すればよい。例えば、仮想計算機のそれぞれに、Ｉ／Ｏ帯域使用量の制限が設けられている場合には、その制限値をマージン計算式に含めることにしてもよい。
【符号の説明】
【００９６】
１                  システム
４００              物理計算機
４２０Ａ（４２０Ｂ）仮想計算機用論理区画
４３０              物理計算機用オペレーティングシステム
４３１              仮想・物理管通信インタフェース
４３２              仮想ディスクタイムアウト算出部
４３３              物理ディスクドライバ
４３４              マージン算出部
４４０              プロセッサ
４５０              物理ディスク
４５１Ａ（４５１Ｂ）仮想ディスク
４５２Ａ（４５２Ｂ）仮想計算機ディスクイメージ          
４５３              タイムアウト時間テーブル            
４５４              仮想計算機構成テーブル              
４５５              タイムアウト時間対応テーブル        
４５６              マージン対応テーブル                
４５７              仮想デバイスタイムアウト時間テーブル
５００Ａ（５００Ｂ）仮想計算機                          
５１０Ａ（５１０Ｂ）仮想計算機オペレーティングシステム  
５１１Ａ（５１１Ｂ）タイムアウト時間設定インタフェース  
５１２Ａ（５１２Ｂ）仮想ディスクドライバウ              
５１３Ａ（５１３Ｂ）仮想・物理間通信インタフェース      
５２０Ａ（５２０Ｂ）タイムアウト時間設定処理部          
【図１】
2014191723.tif 000004
【図２】
2014191723.tif 000005
【図３】
2014191723.tif 000006
【図４】
2014191723.tif 000007
【図５】
2014191723.tif 000008
【図６】
2014191723.tif 000009
【図７】
2014191723.tif 000010
【図８】
2014191723.tif 000011
【図９】
2014191723.tif 000012