(57)【要約】【課題】事前診断の精度をより向上させる。【解決手段】過去のＶＭが作成できた場合の、当該ＶＭの構成を指定すれパラメータの値を記憶するテーブルの値と、今回入力されたＶＭの構成を指定するパラメータの値とからは、指定された構成のＶＭが構成できないと判断される場合でも、現実にはＶＭが構成できた場合、テーブルの値を変更する。例えば、ＶＭが作成できた実績を記憶するテーブル４０２に、ＣＰＵの性能の最大値が２．５ＧＨｚまでが記憶され、今回のパラメータではＣＰＵの性能の最大値が４．０ＧＨｚの場合でも現実にはＶＭが構成できた場合、テーブルに記憶された２．５ＧＨｚを、４．０ＧＨｚに変更する。【選択図】図１６
2015099500.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンの構成を指定する指定値を受信する受信部と、
仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部と、
前記受信された指定値、前記記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断する判断部と、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する変更部と、
を備えた記憶部更新装置。
【請求項２】
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新プログラム。
【請求項３】
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記複数の指定値に含まれないことにより前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値に前記受信された指定値が追加されるように、前記記憶部の記憶内容を変更する
請求項２に記載の記憶部更新プログラム。
【請求項４】
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記複数の指定値に含まれることにより前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できないという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値から前記受信された指定値と同じ値の指定値が削除されるように、前記記憶部の記憶内容を変更する
請求項２に記載の記憶部更新プログラム。
【請求項５】
前記記憶部には、現実に構成されなかった仮想マシンの構成を指定する少なくとも１つの指定値が記憶され、
前記受信された指定値が前記記憶された指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記受信された指定値と一致する前記記憶された指定値が削除されるように、前記記憶部の記憶内容を変更する
請求項２に記載の記憶部更新プログラム。
【請求項６】
前記記憶部には、各々異なる複数の指定値が記憶され、
前記処理は、
前記複数の指定値の各々に対応して、当該指定値と一致する指定値が受信された回数を計数し、
前記複数の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する指定値が削除されるように前記記憶部の記憶内容を変更する
ことを含む請求項１６に記載の記憶部更新プログラム。
【請求項７】
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新方法
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶部更新装置、プログラム、及び方法に関する。
【背景技術】
【０００２】
クラウド環境下で、仮想マシン（ＶＭ（Virtual Machine））等のシステムを構築することが一般化する前は、システムを構築するのは、豊富な経験を持った管理者であった。経験を持った管理者では、システムの構築に関連した入力パラメータの設定においてミスが少なかった。しかし、クラウド環境下で、一般ユーザにもシステムを構築することが可能となると、システムが構築される頻度が格段に増加する。これとともに、システムの構築に関連した入力パラメータの設定において、ミスが発生する状況が飛躍的に増加した。
【０００３】
そこで、従来、入力パラメータと、当該入力パラメータに従ったＶＭが作成できた又はできなかったのかの作成処理結果との対応関係が蓄積される。パラメータが入力された場合、蓄積された作成処理結果に基づいて、当該入力されたパラメータに従ってＶＭを作成できるか否かを事前に診断することが行われていた。
【０００４】
例えば、過去において仮想ＣＰＵの性能値の最大値として２ＧＨｚが指定された場合において、ＶＭが作成できなかった場合、仮想ＣＰＵの性能値の最大値＝２ＧＨｚとＶＭ作成できなかったこととが、対応関係として記憶される。新たにユーザが仮想ＣＰＵの性能値の最大値として３ＧＨｚをパラメータに指定した場合、過去の対応関係から、ＶＭ作成できないことが事前に診断され、ユーザに報知される。
【０００５】
このように、上記対応関係を蓄積すればするほど、事前診断の精度が向上するものと考えられていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2006-181263号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、クラウド環境下では、ＶＭの仮想ＣＰＵに割り当てられる量が変動する。例えば、クラウド環境内の実際のＣＰＵが、性能の高いＣＰＵに代えられたり、既に作成されたＶＭが消滅したりする。よって、上記例で、例えば、仮想ＣＰＵの性能値の最大値が例えば、４ＧＨｚに増加する場合がある。しかし、上記例では、仮想ＣＰＵの性能値の最大値＝２ＧＨｚとＶＭ作成できなかったこととの対応関係が記憶されているので、ユーザが仮想ＣＰＵの性能値の最大値として３ＧＨｚを指定した場合、ＶＭ作成できないことが事前にユーザに報知される。
このように、上記対応関係の蓄積量が多くなっても、事前診断の精度が向上しない場合もある。
【０００８】
１つの側面として、仮想マシンが構成できるか否かの事前診断の精度をより向上させることが目的である。
【課題を解決するための手段】
【０００９】
1つの態様では、受信部は、仮想マシンの構成を指定する指定値を受信する。記憶部は、仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する。判断部は、受信された指定値、記憶部に記憶された記憶内容、及び受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、受信された指定値及び記憶内容からは現実の結果が生じない矛盾が生じているか否かを判断する。変更部は、矛盾が生じていると判断された場合、矛盾が生じないように、記憶内容を変更する。
【発明の効果】
【００１０】
１つの側面として、仮想マシンが構成できるか否かの事前診断の精度をより向上させることができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】診断装置１２とクラウド管理システム１４とを備えた管理システム１０を示す図である。
【図２】診断装置１２のブロック図である。
【図３】（Ａ）は、診断装置１２の機能部を示し、（Ｂ）は、診断装置１２の診断学習プログラムの各プロセスを示す図である。
【図４】（Ａ）は、状態管理テーブル４０１を示し、（Ｂ）は、正常時パラメータ管理テーブル４０２を示し、（Ｃ）は、異常時パラメータ管理テーブル４０３を示す図である。
【図５】（Ａ）は、相互関係テーブル(正常系)４０４及びパラメータ間関係テーブル(正常系)４０５を示し、（Ｂ）は、パラメータ間関係テーブル(異常系)４０６及び相互関係テーブル(異常系)４０７を示し、（Ｃ）は、相互関係チェックリスト４０８を示す図である。
【図６】（Ａ）は、仮想サーバ（ＶＭ）の作成（配備）の際に、作成するＶＭの内容を指定する指定値を設定するための設定ウィンドウ７０を示し、（Ｂ）は、仮想サーバ（ＶＭ）の構成変更の際に、変更するＶＭの内容を指定する指定値を設定するための設定ウィンドウ９０を示す図である。
【図７】システム（物理サーバ２６、２８・・・３０）の管理者が設定の変更を指示したときにスタートする、変更された内容に従って、状態管理テーブル４０１を更新する処理の一例を示すフローチャートである。
【図８】診断装置１２が実行する事前の診断及び実行結果を学習する診断学習処理の一例を示すフローチャートである。
【図９】図８の診断学習処理のステップ１１２の事前診断処理の一例を示すフローチャートである。
【図１０】図９の事前診断処理のステップ１２６の正常実績チェック処理の一例を示すフローチャートである。
【図１１】図９の事前診断処理のステップ１２８の異常実績チェック処理の一例を示すフローチャートである。
【図１２】図９の事前診断処理のステップ１３０の相互関係チェック処理の一例を示すフローチャートである。
【図１３】図８の診断学習処理のステップ１１８の実行結果処理の一例を示すフローチャートである。
【図１４】図１３の実行結果処理のステップ２０２の正常時パラメータ管理テーブルの更新処理の一例を示すフローチャートである。
【図１５】図１３の実行結果処理のステップ２０４の異常時パラメータ管理テーブルの更新処理の一例を示すフローチャートである。
【図１６】（Ａ）は、ＶＭが作成されたとき（正常時）の正常時パラメータ管理テーブルの更新処理の様子を示し、（Ｂ）は、ＶＭが作成されたとき（正常時）の異常時パラメータ管理テーブルの更新処理の様子を示す図である。
【図１７】図１３の実行結果処理のステップ２０６のパラメータ間関係テーブル(正常系)４０５の更新処理の一例を示すフローチャートである。
【図１８】（Ａ）及び（Ｃ）は、パラメータ間関係テーブル(正常系)４０５の更新処理の様子を示し、（Ｂ）及び（Ｄ）は、相互関係チェックリスト４０８の更新処理の様子を示す図である。
【図１９】図１３の実行結果処理のステップ２１４の異常原因のパラメータを取得する取得処理の一例を示すフローチャートである。
【図２０】（Ａ）及び（Ｃ）は、ＶＭが作成されなかったときの相互関係テーブル(異常系)４０７の更新処理の様子を示し、（Ｂ）及び（Ｄ）は、パラメータ間関係テーブル(正常系)４０５の更新処理の様子を示し、（Ｅ）は、相互関係チェックリスト４０８が更新される様子を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
図１には、診断装置１２とクラウド管理システム１４とを備えた管理システム１０が示されている。診断装置１２には、インターネット等のネットワーク２２を介して、複数のユーザ端末１６、１８、・・・２０が接続されている。クラウド管理システム１４には、ローカルエリアネットワーク等のネットワーク２４を介して、複数の物理サーバ２６、２８、・・・３０が接続される。
診断装置１２は、本開示の技術の記憶部更新装置の一例である。
【００１３】
複数のユーザ端末１６、１８、・・・２０、例えば、ユーザ端末１６からは、後述するように、管理システム１０の診断装置１２に、仮想サーバ等の仮想マシン（ＶＭ（Virtual Machine））を作成するように指示する。ユーザ端末１６は、当該指示をする際、どのような内容のＶＭを作成するのかを指示するための指定値を診断装置１２に送信する。例えば、ユーザ端末１６は、管理システム１０に、ＣＰＵ（中央処理装置：Central Processing Unit）の性能として、例えば、３ＧＨｚ等の指定値を送信する。
【００１４】
診断装置１２は、受信した指定値に基づいて、当該指定値において指定された内容のＶＭをクラウド管理システム１４が作成することができるか否かを、ＶＭを現実に作成する前に、事前診断する。
【００１５】
複数のユーザ端末１６、１８、・・・２０、診断装置１２、クラウド管理システム１４、及び複数の物理サーバ２６、２８、・・・３０は同様の構成であるので、以下、診断装置１２の構成のみを説明する。
【００１６】
図２には、診断装置１２のブロック図が示されている。図２に示すように、診断装置１２は、ＣＰＵ３２、ＲＯＭ（Read Only Memory）３４、及びメモリ（ＲＡＭ（Random Access Memory））３６が、バス３８を介して相互に接続されている。バス３８には更に、２次記憶装置４０、及び磁気ディスクドライブ装置４２が接続されている。なお、磁気ディスクドライブ装置４２には、磁気ディスク４４が内蔵されている。診断装置１２は、表示制御部４６、表示制御部４６に接続された表示装置４８、入力装置５０、及び通信制御部５２を備えている。通信制御部５２には、複数のユーザ端末１６、１８・・・２０、及びクラウド管理システム１４が接続されている。２次記憶装置４０には、後述する種々のテーブル（４０１〜４０８）が設けられている。
２次記憶装置４０は、本開示の技術の記憶部の一例である。
【００１７】
表示装置４８としては、液晶表示装置（ＬＣＤ）、ブラウン管（ＣＲＴ）、有機エレクトロルミネセンス表示装置（ＯＥＬＤ）、プラズマディスプレイパネル（ＰＤＰ）、電界放出ディスプレイ（ＦＥＤ）等が適用できる。入力装置５０としては、キーボード（keyboard）やマウス（mouse）などが適用できる。
【００１８】
図３（Ａ）には、診断装置１２の機能部が示されている。診断装置１２は、例えば、ユーザ端末１６から入力した信号から、上記指定値（パラメータ）を抽出する入力パラメータ抽出処理部６２を備えている。また、上記機能部は、２次記憶装置４０内のテーブルと上記抽出されたパラメータとに基づいて、上記事前診断を行う事前診断処理部６４を備えている。更に、上記機能部は、実行結果学習処理部６６を備えている。
実行結果学習処理部６６は、本開示の技術の判断部及び変更部の一例である。
【００１９】
ＲＯＭ３４には、診断学習プログラムが記憶されている。ＣＰＵ３２は、ＲＯＭ３４から診断学習プログラムを読み出してメモリ３６に展開し、診断学習プログラムが有するプロセスを実行する。
【００２０】
図３（Ｂ）には、診断学習プログラムのプロセスが示されている。診断学習プログラムのプロセスは、入力パラメータ抽出処理プロセス６３、事前診断処理プロセス６５、及び実行結果学習処理プロセス６７を有する。
【００２１】
なお、ＣＰＵ３２が、図３（Ｂ）に示す上記プロセス６３〜６７の各々を実行することにより、図３（Ａ）の上記各部６２〜６６として動作する。
ＲＯＭ３４は、本開示の技術の記憶媒体の一例である。
【００２２】
なお、ここでは診断学習プログラムをＲＯＭ３４から読み出す場合を例示したが、必ずしも最初からＲＯＭ３４に記憶させておく必要はない。例えば、診断装置１２に接続させたＳＳＤ（Solid State Drive）、ＤＶＤディスク、ＩＣカード、光磁気ディスク、ＣＤ−ＲＯＭなどの任意の「可搬型の記憶媒体」に先ずは診断学習プログラムを記憶させておいてもよい。そして、診断装置１２がこれらの可搬型の記憶媒体からは診断学習プログラムを取得して実行するようにしてもよい。また、通信回線を介して診断装置１２に接続される他のコンピュータ又はサーバ装置等の記憶部に診断学習プログラムを記憶させておいてもよい。この場合、診断装置１２は他のコンピュータ又はサーバ装置等から診断学習プログラムを取得して実行する。
【００２３】
図４及び図５には、２次記憶装置４０に設けられた種々のテーブルが示されている。
図４（Ａ）には、状態管理テーブル４０１が示されている。状態管理テーブル４０１には、物理サーバ２６、２８・・・３０の状態の内容を示す情報が記憶される。物理サーバ２６、２８・・・３０の状態は、プール毎にオーバーコミットの設定の有無を示す情報、申請プロセスが行われるか否かを示す情報、及び課金するかしないかを示す情報等によって定まる。図４（Ａ）に示すように、状態管理テーブル４０１には、プール毎にオーバーコミットの設定の有無を示す情報、申請プロセスが行われるか否かを示す情報、及び課金するかしないかを示す情報等を記憶するための各領域が設けられている。例えば、過去のある時点では、物理サーバ２６、２８・・・３０の状態は、状態Ａであった。即ち、プールＡ及びプールＢの各々の物理サーバに対しては、オーバーコミットの設定が無く（ＯＦＦ）であり、申請プロセスが行われ（ＯＮ）、及び課金はされない（ＯＦＦ）という状態であった。
【００２４】
本実施形態では、性能（スペック）が比較的高い物理サーバとして、物理サーバ２６、２８等がプールＡとしてグループ化さている。また、性能（スペック）が比較的低い物理サーバとして、物理サーバ３０等がプールＢとしてグループ化さている。状態Ａでは、プールＡについてはオーバーコミットの設定がＯＦＦである。よって、プールＡにおけるＯＦＦの情報によって、プールＡに設けるＶＭの仮想ＣＰＵに割り当てられる最大値は、物理サーバ２６、２８のＣＰＵが割り当てられる最大値以下であったことが示される。
【００２５】
申請プロセスが行われることが設定（ＯＮ）されているので、ＶＭの設定の申請に、ユーザ装置側で許可があったのかが判断されたことが示されている。課金はされないことが設定（ＯＦＦ）されているので、課金が行われなかったことが示されている。
【００２６】
物理サーバ２６、２８・・・３０の状態は、管理者が状況に応じて変更する場合がある。異なる状態の各状態の内容が、状態管理テーブル４０１に記憶される。なお、現在の状態は、状態Ｃであり、過去に同様な内容の状態がない。
【００２７】
図４（Ｂ）には、正常時パラメータ管理テーブル４０２が示されている。正常とは、後述するように、上記指定値に従ったＶＭが作成できたことを意味する。正常時パラメータ管理テーブル４０２は、状態管理テーブル４０１（図４（Ａ））で認識される状態毎に、例えば、ユーザ端末１６のユーザが指定した指定値の正常な範囲が記憶される。この範囲は、時間の経過で増えていく。例えば、状態Ａにおいては、ＣＰＵの性能の正常な範囲の最大値として指定できる値が、３ＧＨｚまでであったことが記憶されている。
【００２８】
図４（Ｃ）には、異常時パラメータ管理テーブル４０３が示されている。異常とは、上記指定値に従ったＶＭが作成できなかったことを意味する。異常時パラメータ管理テーブル４０３には、状態管理テーブル４０１（図４（Ａ））で認識される状態毎に、上記異常が発生した要因となった指定値が記憶される。指定値の記憶数は、時間の経過で増えていく。例えば、状態Ａでは、ＣＰＵの性能の指定値が４ＧＨｚや３．５ＧＨｚであったため、異常が発生したことが示されている。
【００２９】
図５（Ａ）には、相互関係テーブル(正常系)４０４及びパラメータ間関係テーブル(正常系)４０５が示されている。
【００３０】
図５（Ａ）の上側のテーブルである相互関係テーブル(正常系)４０４には、上記正常時における、計算資源（リソース：ｒｅｓｏｕｒｃｅ）の要求量と供給可能な計算資源の量との相互関係を示す情報が記憶されている。即ち、例えば、ＣＰＵ及びメモリに対応して表ＣＰＵ-メモリが記憶されている。また、ＣＰＵ及びＣＰＵプール残容量に対応して、表ＣＰＵ-ＣＰＵプールが記憶されている。「表」は、当該表ＣＰＵ-ＣＰＵプールが記憶されている領域とパラメタ間関係テーブル(正常系)４０５の後述する領域とがリンクされていることを意味する。
【００３１】
ここで、ＣＰＵプール残容量（単にＣＰＵプールという）について説明する。ユーザが指定する指定値の１つとしての配備先プールには、ＶＭをどのプールに作成するのかを指定する値が指定される。例えば、プールＡが指定されたとする。ＣＰＵプール残容量は、プールＡにおいて作成されるＶＭの仮想ＣＰＵに割り当てられる計算資源の残容量をいう。
【００３２】
図５（Ａ）の相互関係テーブル(正常系)４０４における上記相互関係を示す情報が記憶されている各領域に対応して、パラメータ間関係テーブル(正常系)がリンクされている。例えば、図５（Ａ）における表ＣＰＵ-ＣＰＵプールに対応して、図５（Ａ）に示すパラメータ間関係テーブル(正常系)４０５がリンクされている。パラメータ間関係テーブル(正常系)４０５には、ＶＭの仮想ＣＰＵに割り当てる割り当て量と、プールにおいて作成されるＶＭの仮想ＣＰＵに割り当てられる残容量との間の３つのパターンの各々において、次の情報が記憶されている。即ち、ＶＭが正常に作成できたことがあったのかなかったのかを示す情報（「あり」、「なし」）が記憶されている。例えば、図５（Ａ）のパラメータ間関係テーブル(正常系)４０５の上側の行においては、次の内容が記憶されている。即ち、ＣＰＵ（ＶＭの仮想ＣＰＵに割り当てる割り当て量）>ＣＰＵプール（プールにおいて作成されるＶＭの仮想ＣＰＵに割り当てられる残容量）に対応して、「なし」が記憶されている。よって、ある状態で、（ＶＭのＣＰＵに割り当てる割り当て量）>（プールにおいて作成されるＶＭのＣＰＵに割り当てられる残容量）の関係で、ＶＭが作成されたことはなかったことが示されている。
【００３３】
図５（Ｂ）には、相互関係テーブル(異常系)４０６及びパラメータ間関係テーブル(異常系)４０７が示されている。相互関係テーブル(異常系)４０６及びパラメータ間関係テーブル(異常系)４０７は、ＶＭが指定された内容で作成できなかった場合（異常）におけるテーブルである点で、図５（Ａ）に示すテーブルと異なるだけであるので、その詳細な説明を省略する。図５（Ｂ）のパラメータ間関係テーブル(異常系)４０７内の上側の行においては、（ＶＭのＣＰＵに割り当てる割り当て量）>（プールＡにおいて作成されるＶＭのＣＰＵに割り当てられる残容量）に対応して、「あり」が記憶されている。よって、ある状態で、（ＶＭのＣＰＵに割り当てる割り当て量）>（プールＡにおいて作成されるＶＭのＣＰＵに割り当てられる残容量）の関係で、ＶＭが作成されなかったことがあることが示されている。
【００３４】
図５（Ｃ）には、相互関係チェックリスト４０８が示されている。相互関係チェックリスト４０８は、相互関係テーブル（異常系）４０６及びパラメータ間関係テーブル（異常系）４０７により、相互関係で異常があると認識されたものを抽出したテーブルである。診断装置１２は、パラメータ間関係テーブル（異常系）４０７が更新される毎に、相互関係で異常があると認識されたものを抽出し、相互関係チェックリスト４０８に記憶する。
【００３５】
次に、本実施形態の作用を説明する。
例えば、ユーザ端末１６には、ＶＭの作成（配備）及び構成変更を管理システム１０に指示するための指示プログラムが記憶されている。本指示プログラムが実行されると、ユーザ端末１６の表示装置４８の画面には、ＶＭの作成（配備）の場合には、図６（Ａ）に示す、配備するＶＭの内容を指定する指定値を指定するための設定ウィンドウ７０が表示される。
【００３６】
図６（Ａ）に示すように、設定ウィンドウ７０には次の各指定値を指定するための領域７２〜８２が設けられている。領域７２には、仮想マシン名が指定される。領域７４には、ＣＰＵの性能（ＧＨｚ）が指定される。領域７６には、ＣＰＵの数が指定される。領域７８には、メモリ容量（ＧＢ）が指定される。領域８０には、ディスクサイズ（２次記憶装置の容量）（ＧＢ）が指定される。領域８２には、配備先プールが指定される。
【００３７】
また、本指示プログラムが実行されると、ユーザ端末１６の表示装置４８の画面には、ＶＭの構成変更の場合には、図６（Ｂ）に示す、変更するＶＭの内容を指定する指定値を指定するための設定ウィンドウ９０が表示される。
【００３８】
図６（Ｂ）に示すように、設定ウィンドウ９０には次の各指定値を指定するための領域９２〜１００が設けられている。領域９２には、構成を変更する対象仮想マシンが指定される。領域９４には、ＣＰＵの性能（ＧＨｚ）が指定される。領域９６には、ＣＰＵの数が指定される。領域９８には、メモリ容量（ＧＢ）が指定される。領域１００には、追加ディスクサイズ（２次記憶装置の容量）（ＧＢ）が指定される。
【００３９】
図７には、システム（物理サーバ２６、２８・・・３０）の管理者が設定の変更を指示したときにスタートする、変更された内容に従って状態管理テーブル４０１を更新する状態管理テーブル更新処理の一例がフローチャートとして示されている。
【００４０】
状態管理テーブル更新処理がスタートすると、ステップ１０２で、診断装置１２は、クラウド管理システム１４から、変更された設定の内容を取得する。ステップ１０４で、診断装置１２は、取得された内容と同じ状態が状態管理テーブル４０１に記憶されているか否かを判断する。取得された内容と同じ状態が状態管理テーブル４０１に記憶されていると判断された場合には、状態管理テーブル更新処理は終了する。一方、取得された内容と同じ状態が状態管理テーブル４０１に記憶されていないと判断された場合には、診断装置１２は、ステップ１０６で、ステップ１０２により取得された内容を状態管理テーブル４０１に登録（記憶）する。例えば、今回の状態管理テーブル更新処理が実行される前までには、状態管理テーブル４０１には、図４（Ａ）に示すように、状態Ａ、状態Ｂの各内容のみが記憶されていたとする。そして、今回、変更された設定お内容が、オーバーコミットが各プールＡ、ＢについてＯＮ、申請プロセスがＯＮ、課金がＯＮであったとする。この状態は、状態Ａ、Ｂとは異なる。即ち、新しい状態である。よって、ステップ１０４の判定結果が否定判定となる。そこで、状態Ｃとして、ステップ１０２により取得された内容（オーバーコミットが各プールＡ、ＢについてＯＮ、申請プロセスがＯＮ、課金がＯＮ）が記憶される。
【００４１】
以上より、状態管理テーブル４０１には、システム（物理サーバ２６、２８・・・３０）の設定の内容が状態毎に記憶される。
【００４２】
ところで、複数のユーザ端末１６、１８、・・・２０（図１参照）、例えば、ユーザ端末１６から、管理システム１０の診断装置１２に、ＶＭの作成や既に作成されたＶＭの構成の変更が指示される。
【００４３】
例えば、ユーザ端末１６において、指示プログラムがスタートしてＶＭの作成が指定された場合、ユーザ端末１６の表示装置４８に、図６（Ａ）に示す設定ウィンドウ７０が表示される。ユーザは入力装置５０を介して、領域７２に仮想マシン名を、領域７４にＣＰＵの性能を指定し、領域７６にＣＰＵの数、領域７８にメモリ容量（ＧＢ）を指定するための各指定値を入力する。その後、図示しない送信ボタンがオンされると、これらの指定値（以下、パラメータという）が、ＶＭの作成の指示を示すコマンドと共に送信される。
【００４４】
また、ユーザ端末１６において、指示プログラムがスタートしてＶＭの構成変更が指定された場合、ユーザ端末１６の表示装置４８に、図６（Ｂ）に示す設定ウィンドウ９０が表示される。ユーザは入力装置５０を介して、領域９２に構成を変更する対象仮想マシンを、領域９４にＣＰＵの性能（ＧＨｚ）を、領域９６にＣＰＵの数を、領域９８にメモリ容量（ＧＢ）を、領域１００に追加ディスクサイズ（ＧＢ）を指定するための各指定値を入力する。その後、図示しない送信ボタンがオンされると、これらのパラメータが、ＶＭの構成変更の指示を示すコマンドと共に、診断装置１２に送信される。
【００４５】
上記各パラメータと共に、ＶＭの作成及び構成変更の各コマンドが診断装置１２で受信されると、図８の診断学習処理がスタートする。ＶＭの作成及び構成変更の各コマンドが診断装置１２で受信された場合の診断学習処理はそれぞれ同様であるので、以下、ＶＭの作成のコマンドが受信された場合を例にとり説明する。
【００４６】
図８のステップ１１０で、入力パラメータ抽出処理部６２は、入力されたパラメータを抽出する。これにより、上記各パラメータがどのような内容であるのかが抽出される。ステップ１１４で、事前診断処理部６４は、ステップ１１２で抽出されたパラメータに基づいて、当該パラメータに従ってＶＭが作成されるか（正常）又は作成されない（異常）かを事前に判断する。
【００４７】
次のステップ１１４で、事前診断処理部６４は、ステップ１１０で抽出されたパラメータをクラウド管理システム１４に送信して、当該パラメータに従ってＶＭの作成処理の依頼をする。
【００４８】
クラウド管理システム１４は、依頼された内容でＶＭの作成処理を実行する。依頼された内容でＶＭが作成できた場合、ＶＭが作成されたことを示す正常信号を診断装置１２に送信する。また、依頼された内容でＶＭが作成できなかった場合、ＶＭが作成されなかったことを示す異常信号を診断装置１２に送信する。
【００４９】
ステップ１１６で、実行結果学習処理部６６は、上記正常信号又は異常信号を受信することにより、結果を取得する。ステップ１１８で、実行結果学習処理部６６は、取得した結果に基づいて、実行結果処理を実行する。
【００５０】
次に、図９を参照して、図８のステップ１１２の事前診断処理の具体的内容を説明する。図９のステップ１２２で、事前診断処理部６４は、クラウド管理システム１４の設定状態を取得する。即ち、事前診断処理部６４は、クラウド管理システム１４に、システム（物理サーバ２６、２８・・・３０）の設定状態を知らせるように指示する。指示されたクラウド管理システム１４は、現在のシステムの設定状態を調べ、現在の設定状態を診断装置１２に送信する。これにより、事前診断処理部６４は、クラウド管理システム１４の設定状態を取得する。
【００５１】
ステップ１２４で、事前診断処理部６４は、ステップ１２２で取得された設定状態と、状態管理テーブル４０１の内容とを比較して、取得した設定状態に対応する状態識別情報（状態ｉ）を状態管理テーブル４０１から取得する。なお、ステップ１２２で取得された設定状態が状態管理テーブル４０１にない場合には、事前診断処理部６４は、ステップ１２２で取得された設定状態を状態管理テーブル４０１に追加する。
【００５２】
事前診断処理部６４は、ステップ１２６で正常実績チェック処理、ステップ１２８で異常実績チェック処理、ステップ１３０で、相互関係チェック処理を実行する。ステップ１３２で、事前診断処理部６４は、ユーザ端末１６にフィードバックする。
【００５３】
次に、ステップ１２６、１２８、１３０の各処理を説明する。
図１０には、図９のステップ１２６の正常実績チェック処理の一例がフローチャートとして示されている。ステップ１４２で、事前診断処理部６４は、後述するフラグＦｐと、入力された各パラメータを識別する変数ｐとをそれぞれ０に初期化する。ステップ１４４で、事前診断処理部６４は、変数ｐを１インクリメントする。例えば、ｐ＝１でＣＰＵの最大値、ｐ＝２でＣＰＵ最小値が識別される。
【００５４】
ステップ１４６で、正常時パラメータ管理テーブル４０２（図４（Ｂ））内の状態ｉの欄内のパラメータｐに対応する値ｖｉを取得する。例えば、ｐ＝１であるとする。この場合、状態ｉ＝状態Ａにおいて、ＣＰＵの最大値＝３ＧＨｚが、値ｖｉとして取得される。ステップ１４８で、事前診断処理部６４は、入力されたパラメータの内の変数ｐで識別される値ｖｐを取得する。即ち、上記例では、ＣＰＵの最大値（ｖｐ）が入力パラメータから取得される。
【００５５】
ステップ１５０で、事前診断処理部６４は、上記取得されたｖｉ、ｖｐに基づいて、ｖｐが正常値か否かを判断する。正常時パラメータ管理テーブル４０２には、ＣＰＵの最大値＝３ＧＨｚが記憶されている。これは、過去、ＣＰＵの最大値＝３ＧＨｚまでで正常だったことが示される。即ち、今回の入力パラメータ内のＣＰＵの最大値の指示値（ｖｐ）が、３ＧＨｚ以下であれば、ＶＭが作成される（正常）と判断できる。逆に、今回の入力パラメータ内のＣＰＵの最大値の指示値（ｖｐ）が、３ＧＨｚを超えている場合には、ＶＭが作成されない（異常）と判断できる。
【００５６】
ステップ１５０の判定結果が肯定判定の場合には、正常実績チェック処理はステップ１５２に進む。ステップ１５０の判定結果が否定判定の場合には、ステップ１５４で、変数ｐに対応するフラグＦｐが１にセットされる。フラグＦｐに１が設定されているか否かを判断することにより、入力されたパラメータの内、どのパラメータが異常な値なのかを認識することができる。
【００５７】
ステップ１５２で、変数ｐが、入力されたパラメータの総数Ｐに等しいか否か判断する。ステップ１５２の判定結果が否定判定の場合には、正常値か否か判断されていないパラメータがあるので、ステップ１４４に戻る。一方、全てのパラメータについて正常値か否かの判断がされた場合には、ステップ１５２の判定結果が肯定判定となる。よって、正常実績チェック処理は終了し、処理は図９のステップ１２８に移行される。
【００５８】
図１１には、図９のステップ１２８の異常実績チェック処理の一例がフローチャートとして示されている。ステップ１６２で、事前診断処理部６４は、後述するフラグＧｐ及び変数ｐを０に初期化する。ステップ１６４で、事前診断処理部６４は、変数ｐを１インクリメントする。
【００５９】
ステップ１６６で、事前診断処理部６４は、異常時パラメータ管理テーブル４０３（図４（Ｃ））内の状態ｉの欄内のパラメータｐに対応する異常実績値ｗｉを取得する。例えば、上記のように、ｐ＝１により、ＣＰＵの最大値が識別される。そこで、ステップ１６６では、異常時パラメータ管理テーブル４０３内の状態ｉ（例えば、状態Ａ）のＣＰＵにおける過去において異常であると判断された値として、４ＧＨｚが取得される。なお、異常時パラメータ管理テーブル４０３に示すように、状態ｉ＝状態Ａ及びＣＰＵに対応して、複数の値が記憶されている場合には、各々について以下の処理が実行される。ステップ１７０で、事前診断処理部６４は、値ｗｉ＝値ｖｐか否かを判断する。即ち、入力されたパラメータ内の変数ｐにより識別される値ｖｐが過去、異常な値であったのかが判断される。
【００６０】
ステップ１７０の判定結果が肯定判定の場合には、ステップ１７２で、事前診断処理部６４は、変数ｐにより識別されるフラグＧｐを１にセットする。よって、フラグＧｐに１が設定されているか否かを判断することにより、入力されたパラメータの内、どのパラメータが異常な値なのかを認識することができる。
【００６１】
ステップ１７４で、変数ｐが、入力されたパラメータの総数Ｐに等しいか否か判断する。ステップ１７４の判定結果が否定判定の場合には、異常値か否か判断されていないパラメータがあるので、ステップ１６４に戻る。一方、全てのパラメータについて異常値か否かの判断がされた場合には、ステップ１７４の判定結果が肯定判定となる。よって、異常実績チェック処理は終了し、処理は図９のステップ１３０に移行される。
【００６２】
図１２には、図９のステップ１３０の相互関係チェック処理の一例がフローチャートとして示されている。
【００６３】
図１２のステップ１８２で、事前診断処理部６４は、後述するフラグＨｑと、相互関係チェックリスト４０８（図５（Ｃ））内のチェック対象を識別する変数ｑを０に初期化する。ステップ１８４で、事前診断処理部６４は、変数ｑを１インクリメントする。なお、ｑが０から１増える毎に、相互関係チェックリスト４０８の上から順に各チェック対象の項目が識別される。
【００６４】
ステップ１８６で、変数ｑにより識別されるチェック対象の項目、即ち、異常関係を取得する。例えば、ｑ＝１の場合には、ＣＵＰ>ＣＰＵプールの関係を取得する。
【００６５】
ステップ１９０で、事前診断処理部６４は、入力されたパラメータの中のチェック項目ｑに対応する値ｖｑ１を取得する。上記例では、値ｖｑ１として、ＣＰＵの性能の最大値、即ち、ＶＭにおける仮想ＣＰＵに割り当てが要求される値が取得される。また、事前診断処理部６４は、本ステップ１９６で配置先プールが識別され、クラウド管理システム１４から、当該識別されたプールにおいてＶＭの仮想ＣＰＵに割り当てられる残容量の値を取得して、これを値ｖｑ２とする。
【００６６】
ステップ１９２で、値ｖｑ１、値ｖｑ２が、ステップ１８６で取得された異常関係を満足するか否かを判断する。即ち、上記例では、値ｖｑ１>値ｖｑ２が成立するか否かが判断される。例えば、値ｖｑ１＝３．５ＧＨｚであり、値ｖｑ２＝１．０ＧＨｚであったとする。この場合、ステップ１９２の判定結果が肯定判定となり、ステップ１９４に進む。また、例えば、値ｖｑ１＝３．５ＧＨｚであり、値ｖｑ２＝１００．０ＧＨｚであったとする。この場合、ステップ１９２の判定結果が否定判定となり、ステップ１９６に進む。
【００６７】
ステップ１９４で、事前診断処理部６４は、フラグＨｑに１をセットする。フラグＨｐに１が設定されているか否かを判断することにより、相互関係チェックリスト４０８の各チェック対象の内、どのチェック項目が成立しているか否かを認識することができる。
【００６８】
ステップ１９６で、事前診断処理部６４は、変数ｑが、チェック項目の総数Ｑか否かを判断する。ステップ１９６の判定結果が否定判定の場合には、未だ成立しているか否かについて判断されていないチェック項目があるので、ステップ１８４に戻る。一方、全てのチェック項目についてチェックした場合には、ステップ１９６の判定結果が肯定判定となる。この場合には、相互関係チェック処理は終了し、処理は、図９のステップ１３２に移行される。
【００６９】
ステップ１３２で、事前診断処理部６４は、フィードバック処理を実行する。具体的には、上記各フラグＦｐ（Ｆ１〜ＦＰ）、各Ｇｐ（Ｇ１〜ＧＰ）、Ｈｑ（Ｈ１〜ＨＱ）に１がセットされているか否かを判断し、どの異常が成立しているのかを判定し、ユーザ端末１６にその内容を知らせる。
【００７０】
ステップ１３２の処理が終了すると、事前診断処理が終了し、処理は図８のステップ１１４に移行される。ステップ１１４で、事前診断処理部６４は、ステップ１１０で抽出されたパラメータをクラウド管理システム１４に送信して、当該パラメータに従ってＶＭの作成処理の依頼をする。
【００７１】
クラウド管理システム１４は、依頼された内容でＶＭの作成処理を実行する。依頼された内容でＶＭが作成できた場合、ＶＭが作成されたことを示す正常信号を診断装置１２に送信する。また、依頼された内容でＶＭが作成できなかった場合、ＶＭが作成されなかったことを示す異常信号を診断装置１２に送信する。
【００７２】
ステップ１１６で、実行結果学習処理部６６は、上記正常信号又は異常信号を受信することにより、結果を取得する。ステップ１１８で、実行結果学習処理部６６は、取得した結果に基づいて、実行結果処理を実行する。
【００７３】
図１３には、図８の診断学習処理のステップ１１８の実行結果処理の一例がフローチャートとして示されている。
図１３のステップ２００で、実行結果学習処理部６６は、実行結果が正常か、即ち、パラメータの内容に従ってＶＭが作成できたか否かを判断する。
【００７４】
パラメータの内容に従ってＶＭが作成できた場合には、実行結果処理はステップ２０２に進む。ステップ２０２で、実行結果学習処理部６６は、正常時パラメータ管理テーブル４０２（図４（Ｂ））における正常値の範囲を更新する。即ち、前回までにおいて正常時パラメータ管理テーブル４０２に記憶されていた正常の範囲が、今回のＶＭの作成（正常）により拡大する場合がある。即ち、今回の事前診断ではパラメータの値は、正常時パラメータ管理テーブル４０２における正常値の範囲外であるので、異常と判断されている。しかし、今回はＶＭが作成された（正常）。そこで、次回以降の事前診断において、パラメータの値が今回の範囲内であれば、パラメータの値は正常の値と判断されるように、実行結果学習処理部６６は、正常時パラメータ管理テーブル４０２における正常値の範囲を更新する。
【００７５】
図１４には、図１３のステップ２０２の正常時パラメータ管理テーブル４０２の更新処理の一例がフローチャートとして示されている。
ステップ２３２で、実行結果学習処理部６６は、変数ｐを０に初期化し、ステップ２３４で、変数ｐを１インクリメントする。ステップ２３６で、実行結果学習処理部６６は、入力されたパラメータから変数ｐで識別される値ｖｐと、正常時パラメータ管理テーブル４０２（図４（Ｂ））の状態ｉにおける変数ｐで識別される値ｖｉを取得する。
【００７６】
ステップ２３８で、実行結果学習処理部６６は、値ｖｐが、正常時パラメータ管理テーブル４０２上では異常値か否かを判断する。ステップ２３８の判定結果が肯定判定であった場合、ステップ２４０で、実行結果学習処理部６６は、値ｖｉに、値ｖｐをセットする。
【００７７】
この処理を図１６（Ａ）を参照して更に説明する。図１６（Ａ）には、ＶＭが作成されたとき（正常時）の正常時パラメータ管理テーブル４０２の更新処理の様子が示されている。入力されたパラメータから変数ｐで識別される値ｖｐ（ＣＰＵの最大値）が４．０ＧＨｚであり、正常時パラメータ管理テーブル４０２の状態ｉ（例えば、状態Ｃ）における変数ｐで識別される値ｖｉが、２．５ＧＨｚであったとする。事前診断処理ではｖｐは正常値と判断されない（図１０のステップ１５０が否定判定）。しかし、今回はＶＭが作成された（正常）。即ち、値ｖｐと値ｖｉとの関係からはＶＭが作成されないのに、ＶＭが作成された矛盾が生じている。よって、値ｖｉが値ｖｐ＝４．０ＧＨｚであれば、次回以降の事前診断において、パラメータの値が今回の範囲内であれば、パラメータの値は正常と判断されるように、ステップ２４０で、値ｖｉに、値ｖｐがセットされる。これにより矛盾が生じない。
【００７８】
ステップ２３８の判定結果が否定判定の場合、更新処理は、ステップ２４２に進む。ステップ２４０の処理が実行された後も、更新処理は、ステップ２４２に進む。
ステップ２４２で、実行結果学習処理部６６は、変数ｐが入力されたパラメータの総数Ｐに等しいか否かを判断する。ステップ２４２の判定結果が否定判定の場合には、更新処理の判断がされていないパラメータがあるので、更新処理はステップ２３４に戻る。
【００７９】
一方、ステップ２４２の判定結果が肯定判定の場合には、更新処理は終了し、実行結果処理は図１３ステップ２０４に進む。
図１３ステップ２０４で、実行結果学習処理部６６は、今回の入力されたパラメータの値が異常時パラメータ管理テーブル４０３内に記憶されている場合には、当該値を異常時パラメータ管理テーブル４０３（図４（Ｃ））から削除する。即ち、今回の入力されたパラメータの値が異常時パラメータ管理テーブル４０３内に記憶されている場合には、事前診断では、異常の値と判断されている（図１１のステップ１７０）。しかし、今回の入力されたパラメータでＶＭが作成された（正常）。よって、次回以降の事前診断で、異常と判断されないように、異常時パラメータ管理テーブル４０３から、今回の入力されたパラメータの値を削除する。
【００８０】
上記ステップ２０４の処理を詳細に説明する。図１５には、図１３のステップ２０４の異常時パラメータ管理テーブルの更新処理の一例がフローチャートとして示されている。
ステップ２５２で、実行結果学習処理部６６は、変数ｐを０に初期化し、ステップ２５４で、変数ｐを１インクリメントする。ステップ２５６で、実行結果学習処理部６６は、入力されたパラメータから変数ｐで識別される値ｖｐを取得する。
【００８１】
ステップ２５８で、実行結果学習処理部６６は、値ｖｐが、異常時パラメータ管理テーブル４０３のパラメータｐに対応する領域に記憶されているか否かを判断する。ステップ２５８の判定結果が肯定判定であった場合、ステップ２６０で、実行結果学習処理部６６は、異常時パラメータ管理テーブル４０３から値ｖｐを削除する。
【００８２】
この処理を図１６（Ｂ）を参照して更に説明する。図１６（Ｂ）には、ＶＭが作成されたとき（正常時）の異常時パラメータ管理テーブル４０３の更新処理の様子が示されている。入力されたパラメータから変数ｐで識別される値ｖｐ（ＣＰＵの性能を示す値）が４．０ＧＨｚであり、異常時パラメータ管理テーブル４０３の状態ｉ（例えば、状態Ｃ）における変数ｐで識別される値ｖｉが、４．０ＧＨｚであったとする。
【００８３】
事前診断処理ではｖｐは異常値と判断される（図１１のステップ１７０が否定判定）。しかし、今回はＶＭが作成された（正常）。即ち、値ｖｐと値ｖｉとの関係からはＶＭが作成されないのに、ＶＭが作成された矛盾が生じている。よって、異常時パラメータ管理テーブル４０３から値ｖｐ＝４．０ＧＨｚが削除されれば、次回以降の事前診断において、パラメータの値が今回の値ｖｐ＝４．０ＧＨｚであっても異常値と判断されない。即ち、矛盾が生じない。ステップ２６０で、実行結果学習処理部６６は、異常時パラメータ管理テーブル４０３から値ｖｐを削除する。
【００８４】
ステップ２５８の判定結果が否定判定の場合、更新処理は、ステップ２６２に進む。ステップ２６０後も、更新処理は、ステップ２６２に進む。
ステップ２６２で、実行結果学習処理部６６は、変数ｐが入力されたパラメータの総数Ｐに等しいか否かを判断する。ステップ２６２の判定結果が否定判定の場合には、更新処理の判断がされていないパラメータがあるので、更新処理はステップ２５４に戻る。
【００８５】
一方、ステップ２６２の判定結果が肯定判定の場合には、更新処理は終了し、実行結果処理は、図１３のステップ２０６に進む。
ステップ２０６で、実行結果学習処理部６６は、パラメータ間関係テーブル（正常系）４０５（図５（Ａ）の下側）を更新する。即ち、実行結果学習処理部６６は、今回の入力されたパラメータ間の関係がパラメータ間関係テーブル（正常系）４０５（図５（Ａ）の下側）になければ、パラメータ間関係テーブル（正常系）４０５に、今回の入力されたパラメータ間の関係を追加する。
【００８６】
図１７には、図１３のステップ２０６のパラメタ間関係テーブル(正常系)４０５の更新処理の一例がフローチャートとして示されている。
図１７のステップ２７２で、実行結果学習処理部６６は、相互関係テーブル（正常系）４０４の相互関係を識別する変数ｒを０に初期化し、ステップ２７４で、実行結果学習処理部６６は、変数ｒを１インクリメントする。
【００８７】
ステップ２７６で、実行結果学習処理部６６は、入力されたパラメータの中の、変数ｒで識別される相互関係ｒに対応する値ｖｉ、ｖｒを取得する。例えば、変数ｒで識別される相互関係ｒが、ＣＰＵ＜ＣＰＵプールの場合には、実行結果学習処理部６６は、入力されたパラメータの中からＣＰＵの性能の値ｖｉを取得する。また、実行結果学習処理部６６は、クラウド管理システム１４に問い合わせて、配備先プールを示す値から得られるプールにおいて仮想ＣＰＵに割り当てられる残容量ｖｒを取得する。
【００８８】
ステップ２７８で、実行結果学習処理部６６は、ＣＰＵの性能の値ｖｉと、プールにおいてＣＰＵに割り当てられる残容量ｖｒとの関係をｍとする。例えば、ＣＰＵの性能の値ｖｉ＜残容量ｖｒ、即ち、ＣＰＵ＜ＣＰＵプールをｍとする。
【００８９】
ステップ２８０で、実行結果学習処理部６６は、相互関係ｍに対応する関係が、パラメータ間関係テーブル（正常系）４０５に「なし」と記憶されているか否かを判断する。ステップ２８０の判定結果が肯定判定の場合、ステップ２９０で、実行結果学習処理部６６は、「なし」を「あり」に変更する。
【００９０】
図１８（Ａ）及び図１８（Ｃ）には、パラメータ間関係テーブル（正常系）４０５の更新処理の様子が示されている。上記のように、入力されたパラメータの中から得られたパラメータ間の相互関係がＣＰＵ＜ＣＰＵプールであった。このパラメータに従ってＶＭが作成された場合には、パラメータ間関係テーブル（正常系）４０５に、当該関係に対応して「あり」に変更する。
ステップ２９２で、実行結果学習処理部６６は、変数ｒが相互関係テーブル（正常系）４０４の相互関係の総数Ｒとなったか否かを判断する。ステップ２９２の判定結果が否定判定の場合、ステップ２７４に戻る。ステップ２９２の判定結果が肯定判定の場合、更新処理は終了し、実行結果処理は図１３のステップ２０８に移行される。
【００９１】
ステップ２０８で、実行結果学習処理部６６は、ステップ２０６で、新情報が追加されたか否かを判断する。ステップ２０８の判定結果が否定判定の場合には、実行結果処理は終了し、診断学習処理も終了する。
【００９２】
ステップ２０８の判定結果が肯定判定の場合、ステップ２１０で、実行結果学習処理部６６は、相互関係テーブル（異常系）４０６からのリンクを介して、パラメータ間関係テーブル（異常系）４０７にも、上記相互関係ｍが存在するか否かを判断する。ステップ２１０の判定結果が否定判定の場合、実行結果処理は終了し、診断学習処理が終了する。
【００９３】
ステップ２１０の判定結果が肯定判定の場合、ステップ２１２で、実行結果学習処理部６６は、上記テーブル４０６、４０７の更新に従って更新される相互関係チェックリスト４０８から該当する相互関係を削除する。相互関係チェックリスト４０８は、パラメータ間関係テーブル（異常系）４０６及び相互関係テーブル（異常系）４０７の内容に基づいて抽出された異常の相互関係の項目を記憶するテーブルである。今回のＶＭ作成ができた相互関係は、異常の相互関係の項目でなく、相互関係チェックリスト４０８には記憶されない関係である。即ち、ステップ２１０の判定結果が肯定判定の場合には、矛盾が生じている。そこで、図１８（Ｂ）及び図１８（Ｄ）に示すように、実行結果学習処理部６６は、相互関係チェックリスト４０８から該当する相互関係を削除する。次回以降の事前診断の処理で、異常な関係であると判断されないようにするためである。なお、ステップ２１２の処理が終了すると、診断学習処理が終了する。
【００９４】
図１３のステップ２００の判定結果が否定判定の場合、即ち、入力されたパラメータに従ったＶＭが作成できなかった場合（異常）には、実行結果処理はステップ２１４に進む。ステップ２１４で、実行結果学習処理部６６は、正常時パラメータ管理テーブル４０２の内容と、今回実行した入力パラメータとを比較し、異常となった原因であるパラメータを特定する。
図１９には、図１３のステップ２１４の原因パラメータを取得処理の一例がフローチャートとして示されている。
図１９のステップ３０２で、実行結果学習処理部６６は、変数ｐを０に初期化し、ステップ３０４で、変数ｐを１インクリメントする。
【００９５】
ステップ３０６で、実行結果学習処理部６６は、変数ｐで識別されるパラメータの値ｖｐと、正常時パラメータ管理テーブル４０２から、状態ｉの変数ｐで識別される値ｖｉとを取得する。ステップ３０８で、実行結果学習処理部６６は、パラメータの値ｖｐが正常時パラメータ管理テーブル４０２上では異常値か否かを判断する。例えば、パラメータの値ｖｐ＝ＣＰＵの性能の値＝４ＧＨｚであり、値ｖｉ＝２．５ＧＨｚであったとする。パラメータの値ｖｐ＝ＣＰＵの性能の値＝４ＧＨｚ＞値ｖｉ＝２．５ＧＨｚであり、値ｖｐが異常の原因と考えられる。そこで、ステップ３１０で、実行結果学習処理部６６は、パラメータの値ｖｐ＝ＣＰＵの性能の値（＝４ＧＨｚ）が異常の原因のパラメータとして、メモリ３６に記憶する。
【００９６】
ステップ２１６で、実行結果学習処理部６６は、相違部分のみを異常時パラメータ管理テーブル４０３（図４（Ｃ））に記憶する。即ち、メモリ３６に記憶された異常の原因のパラメータが異常時パラメータ管理テーブル４０３に記憶されていない場合にのみ、異常の原因のパラメータが異常時パラメータ管理テーブル４０３に記憶（追加）される。以後、ＶＭ作成のコマンドと共に送信されたパラメータに、異常の原因のパラメータが含まれている場合、異常時パラメータ管理テーブル４０３には、当該異常の原因のパラメータが記憶されているので、以後の事前診断では異常と診断される。よって、以後の事前診断の精度を向上させることができる。
【００９７】
ステップ２１８で、同一異常パターンに対する重み付けを更新する。
ここで、重みづけとは、異常時パラメータ管理テーブル４０３における各値に付された（）内の値である。具体的には、当該パラメータの値で過去異常となった回数である。状態ＡにおけるＣＰＵに対応して、４ＧＨｚ（１）とあり、これは、ＣＰＵの性能の値が４ＧＨｚで過去１回、異常となったことを示す。
【００９８】
ステップ２２０で、実行結果学習処理部６６は、重み付けの状態を確認し、異常発生率が閾値未満の異常パターンを、異常時パラメータ管理テーブル４０３から削除する。これにより２次記憶装置４０のメモリ容量を有効活用することができる。
【００９９】
ここで、異常発生率は、各状態の、ＶＭの構成を定める要素毎のパラメータ毎の異常の発生回数に対する今回のパラメータでの異常の合計値のパーセントとすることができる。例えば、今回の異常が、状態ＡにおけるＣＰＵの性能の値＝４ＧＨｚである場合には、状態ＡにおけるＣＰＵの値を原因とする異常の回数は、１＋２＝３であり、今回のＣＰＵの値を原因とする異常の回数は、１である。よって、異常発生率は、３３パーセントである。閾値が１パーセントとすると、上記例では、閾値未満とは判断されない。よって、今回の異常の、状態ＡにおけるＣＰＵの性能の値＝４ＧＨｚは削除されない。
【０１００】
ステップ２２２で、実行結果学習処理部６６は、パラメータ間関係テーブル（異常系）４０６に基づいて、相互関係テーブル(異常系)４０７の内容を更新する。
【０１０１】
ステップ２２２の処理の具体的な内容は、図１７に示す更新処理と、ほぼ同様であり、以下の点で異なる。即ち、図１７における更新処理におけるステップ２７２では、相互関係テーブル（正常系）４０４を用いているのに対し、ステップ２２２では、相互関係テーブル（異常系）４０６を用いる点で相違する。また、図１７における更新処理におけるステップ２８０では、パラメータ間関係テーブル（正常系）４０５を用いるのに対し、ステップ２２２では、パラメータ間関係テーブル(異常系)４０７が用いられる点で相違する。
【０１０２】
図２０（Ａ）及び図２０（Ｃ）には、ステップ２２２においてパラメータ間関係テーブル(異常系)４０７が更新される様子が示されている。例えば、変数ｒにより識別される相互関係がＣＰＵ＜ＣＰＵプールであった場合、パラメータ間関係テーブル(異常系)４０７において、ＣＰＵ＜ＣＰＵプールに対応して「なし」となっているか判断される。図２０（Ａ）に示す例では、パラメータ間関係テーブル(異常系)４０７において、ＣＰＵ＜ＣＰＵプールに対応して「なし」が記憶されている。そこで、図２０（Ｃ）に示すように、ＣＰＵ＜ＣＰＵプールに対応して「あり」に変更される。
【０１０３】
ステップ２２４で、実行結果学習処理部６６は、パラメータ間関係テーブル(異常系)４０７に信情報が追加されたか否かを判断する。ステップ２２４の判定結果が否定判定の場合には、実行結果処理、診断学習処理が終了する。
【０１０４】
図２０（Ｃ）に示すように、ＣＰＵ＜ＣＰＵプールに対応して「あり」に変更された場合には、ステップ２２４の判定結果は肯定判定となる。この場合、ステップ２２６で、実行結果学習処理部６６は、相互関係テーブル（正常系）４０４からのリンクを介してパラメータ間関係テーブル（正常系）４０５にも、追加された相互関係について「あり」となっているか否かを判断する。パラメータ間関係テーブル（正常系）４０５にも、追加された相互関係について「あり」となっていると判断された場合、ステップ２２８で、実行結果学習処理部６６は、追加された相互関係について「なし」とする。
【０１０５】
また、ステップ２２８で、実行結果学習処理部６６は、図２０（Ｅ）に示すように、相互関係チェックリスト４０８に該当する相互関係を追加する。今回のＶＭ作成ができなかった相互関係は、異常の相互関係の項目である。そこで、実行結果学習処理部６６は、相互関係チェックリスト４０８に上記相互関係を追加して、次回以降の事前診断の処理で、上記相互関係が生ずる場合に、異常と判断されるようにするためである。なお、ステップ２２８の処理が終了すると、診断学習処理も終了する。
【０１０６】
次に、本実施形態の効果を説明する。
（第１の効果）
本実施形態では、入力されたパラメータが異常時パラメータ管理テーブル４０３に記憶され、事前診断で、パラメータが異常な値であると診断された場合でも、ＶＭが作成できた場合、当該パラメータが異常時パラメータ管理テーブル４０３から削除される。従って、次回以降に、上記削除されたパラメータが含まれたパラメータが入力された場合、異常時パラメータ管理テーブル４０３からは当該パラメータが既に削除されているので、事前診断では、パラメータが異常な値であるとは診断されない。従って、本実施形態は、事前診断の精度をより向上させることができるという、効果を有する。
【０１０７】
また、本実施形態では、入力されたパラメータが正常時パラメータ管理テーブル４０２に記憶されておらず、事前診断で、パラメータが異常な値であると診断された場合でも、ＶＭが作成できる場合がある。この場合、当該パラメータまで正常の範囲が拡大されるように、正常時パラメータ管理テーブル４０２が更新される。従って、次回以降に、上記追加されたパラメータが含まれたパラメータが入力された場合、正常時パラメータ管理テーブル４０２には当該パラメータが既に追加されているので、事前診断では、パラメータが異常な値であるとは診断されない。従って、本実施形態は、事前診断の精度をより向上させることができるという、効果を有する。
【０１０８】
更に、入力されたパラメータが異常時パラメータ管理テーブル４０３に記憶されていないため、当該パラメータが異常な値と事前診断されていない場合でも、ＶＭが作成されなかった場合、異常時パラメータ管理テーブル４０３に当該パラメータを追加する。よって、次回以降に、入力されたパラメータに、上記異常時パラメータ管理テーブル４０３に追加されたパラメータが含まれている場合、当該パラメータが異常な値と事前診断される。従って、本実施形態は、事前診断の精度をより向上させることができるという、効果を有する。
【０１０９】
また、実施形態では、ＶＭが作成されなかった場合の、計算資源を要求する量と計算資源を供給できる量との相互関係が、相互関係チェックリスト４０８に記憶されている。事前診断で、入力されたパラメータから、ＶＭ作成できないという相互関係が成立すると診断された場合でも、ＶＭが作成できた場合、当該相互関係が相互関係チェックリスト４０８から削除される。従って、次回以降に、パラメータから上記削除された相互関係が成立しても、相互関係チェックリスト４０８には当該相互関係が既に削除されているので、事前診断では、入力されたパラメータから、ＶＭ作成できないという相互関係が成立すると診断されない。従って、本実施形態は、事前診断の精度をより向上させることができるという、効果を有する。
【０１１０】
更に、実施形態では、事前診断で、入力されたパラメータから、ＶＭ作成できないという相互関係が成立しないと診断された場合でも、ＶＭが作成できなった場合、当該相互関係が相互関係チェックリスト４０８に追加される。従って、次回以降に、パラメータから上記削除された相互関係が成立した場合、相互関係チェックリスト４０８には当該相互関係が既に追加されているので、事前診断では、入力されたパラメータから、ＶＭ作成できないという相互関係が成立すると診断される。従って、本実施形態は、事前診断の精度をより向上させることができるという、効果を有する。
【０１１１】
（第２の効果）
本実施形態では、異常時パラメータ管理テーブル４０３に記憶されているパラメータであっても、そのパラメータにおいてＶＭが作成されなかった回数（発生率）が閾値未満の場合、当該パラメータが異常時パラメータ管理テーブル４０３から削除される。よって、本実施形態は、メモリ容量を有効活用することができるという、効果を有する。
【０１１２】
（第３の効果）
本実施形態では、入力されたパラメータと各テーブルの内容とに基づいて、事前診断をしているので、ユーザは、自身が指定したパラメータによりＶＭが作成されるか又はされないかの予測結果を知ることができる。よって、本実施形態は、専門家でない一般ユーザに、自身が入力したパラメータのどこに異常の原因があったのかを認識させる情報を提供することができる、という効果を有する。
【０１１３】
次に、本実施形態の変形例を説明する。
(第１の変形例）
本実施形態は、入力されたパラメータが異常時パラメータ管理テーブル４０３に記憶されていないため、事前診断で、パラメータが異常な値であると診断されなかった場合でも、ＶＭが作成できなかった場合、次の処理を実行することができる。入力されたパラメータにおけるＣＰＵの最大値が３ＧＨｚであり、正常時パラメータ管理テーブル４０２には、ＣＰＵの最大値として４ＧＨｚが記憶さていた場合でも、ＶＭが作成されなかった場合、本実施形態は、次の処理を実行することができる。即ち、本実施形態は、正常時パラメータ管理テーブル４０２のＣＰＵの最大値として、３ＧＨｚより所定値（例えば、０．１ＧＨｚ）小さい値に限縮することができる。よって、次回以降に、入力されたパラメータにおけるＣＰＵの最大値が３ＧＨｚの場合、事前診断では、パラメータが異常な値であると診断される。従って、第１の変形例は、事前診断の精度をより向上させることができるという、効果を有する。
【０１１４】
(第２の変形例）
本実施形態は、相互関係チェックリスト４０８として、異常があると認識された相互関係がリストされている。当該相互関係チェックリスト４０８を、相互関係チェックリスト（異常系）４０８とする。本開示の技術は、従って、第１の変形例は、事前診断の精度をより向上させることができるという、効果を有する。
【０１１５】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１１６】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
仮想マシンの構成を指定する指定値を受信する受信部と、
仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部と、
前記受信された指定値、前記記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断する判断部と、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する変更部と、
を備えた記憶部更新装置。
【０１１７】
（付記２）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記判断部により、前記受信された指定値が前記複数の指定値に含まれないことにより前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更部は、前記複数の指定値に前記受信された指定値が追加されるように、前記記憶部の記憶内容を変更する
付記１に記載の記憶部更新装置。
【０１１８】
（付記３）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記判断部により、前記受信された指定値が前記複数の第２の指定値に含まれることにより前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できないという矛盾が生じていると判断された場合、
前記変更部は、前記複数の指定値から前記受信された指定値と同じ値の指定値が削除されるように、前記記憶部の記憶内容を変更する
付記１に記載の記憶部更新装置。
【０１１９】
（付記４）
前記記憶部には、現実に構成されなかった仮想マシンの構成を指定する少なくとも１つの指定値が記憶され、
前記判断部により、前記受信された指定値が前記記憶された指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更部は、前記受信された指定値と一致する前記記憶された指定値が削除されるように、前記記憶部の記憶内容を変更する
付記１に記載の記憶部更新装置。
【０１２０】
（付記５）
前記記憶部には、各々異なる複数の指定値が記憶され、
前記複数の指定値の各々に対応して、当該指定値と一致する指定値が受信された回数を計数する計数部と、
前記変更部は、前記複数の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する指定値が削除されるように前記記憶部の記憶内容を変更する
付記４に記載の記憶部更新装置。
【０１２１】
（付記６）
仮想マシンの構成を指定する指定値を受信する受信部と、
仮想マシンが現実に構成された各々異なる複数の第１の指定値を、当該第１の指定値に従った仮想マシンが構成されたことが認識されるように記憶すると共に、前記仮想マシンが現実に構成されなかった少なくとも１つの第２の指定値を、当該第２の指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶する記憶部と、
前記受信された指定値、前記記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断する判断部と、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する変更部と、
を備えた記憶部更新装置。
【０１２２】
（付記７）
前記判断部により、前記受信された指定値が前記第２の指定値に一致するため、前記第１の指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更部は、前記複数の第１の指定値に前記受信された指定値が追加されると共に前記受信された指定値と一致する前記第２の値が削除されるように、前記記憶部の記憶内容を変更する
付記６に記載の記憶部更新装置。
【０１２３】
（付記８）
前記判断部により、前記受信された指定値が前記第１の指定値に一致するため、前記第１の指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できなかったという矛盾が生じていると判断された場合、
前記変更部は、前記複数の第１の指定値から前記受信された指定値が削除されると共に前記受信された指定値が前記第２の指定値として追加されるように、前記記憶部の記憶内容を変更する
付記７に記載の記憶部更新装置。
【０１２４】
（付記９）
前記記憶部には、各々異なる複数の第２の指定値が記憶され、
前記複数の第２の指定値の各々に対応して、当該第２の指定値と一致する指定値が受信された回数を計数する計数部と、
前記変更部は、前記複数の第２の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する第２の指定値が削除されるように前記記憶部の記憶内容を変更する
付記８に記載の記憶部更新装置。
【０１２５】
（付記１０）
仮想マシンの構成を指定すると共に供給を要求する計算資源の量を指定する指定値を受信する受信部と、
仮想マシンの構成を指定しかつ供給を要求する計算資源の量を指定した少なくとも１つの指定値及び計算資源の供給可能な量の関係を、当該指定値に従った仮想マシンが構成されたか否かが認識されるように、記憶する記憶部と、
前記受信された指定値、前記記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断する判断部と、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する変更部と、
を備えた記憶部更新装置。
【０１２６】
（付記１１）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前記判断部により、前記受信された指定値に基づいて前記関係が成立するため、前記記憶された指定値に従った仮想マシンが構成できないのに、現実には前記仮想マシンが構成できた判断した場合、
前記変更部は、前記関係が削除されるように、前記記憶部に記憶された内容を変更する
付記１０に記載の記憶部更新装置。
【０１２７】
（付記１２）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前記判断部により、前記受信された指定値に基づいて前記関係が成立しないため、前記仮想マシンが構成できるのに、現実には前記仮想マシンが構成できなかったと判断された場合、
前記変更部は、前記受信された指定値及び前記計算資源の供給可能な量との関係が追加されるように、前記記憶部に記憶された内容を変更する
付記１０に記載の記憶部更新装置。
【０１２８】
（付記１３）
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンの構成を指定した少なくとも１つの指定値を、当該第２の指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新プログラム。
【０１２９】
（付記１４）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記複数の指定値に含まれないことにより前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値に前記受信された指定値が追加されるように、前記記憶部の記憶内容を変更する
付記１３に記載の記憶部更新プログラム。
【０１３０】
（付記１５）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記記複数の指定値に含まれることにより前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できないという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値から前記受信された指定値と同じ値の指定値が削除されるように、前記記憶部の記憶内容を変更する
付記１３に記載の記憶部更新プログラム。
【０１３１】
（付記１６）
前記記憶部には、現実に構成されなかった仮想マシンの構成を指定する少なくとも１つの指定値が記憶され、
前記受信された指定値が前記記憶された指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記受信された指定値と一致する前記記憶された指定値が削除されるように、前記記憶部の記憶内容を変更する
付記１３に記載の記憶部更新プログラム。
【０１３２】
（付記１７）
前記記憶部には、各々異なる複数の指定値が記憶され、
前記処理は、
前記複数の指定値の各々に対応して、当該指定値と一致する指定値が受信された回数を計数し、
前記複数の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する指定値が削除されるように前記記憶部の記憶内容を変更する
ことを含む付記１６に記載の記憶部更新プログラム。
【０１３３】
（付記１８）
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンが現実に構成された各々異なる複数の第１の指定値を、当該第１の指定値に従った仮想マシンが構成されたことが認識されるように記憶すると共に、前記仮想マシンが現実に構成されなかった少なくとも１つの第２の指定値を、当該第２の指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新プログラム。
【０１３４】
（付記１９）
前記受信された指定値が前記第２の指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の第１の指定値に前記受信された指定値が追加されると共に前記受信された指定値と一致する前記第２の値が削除されるように、前記記憶部の記憶内容を変更する
付記１８に記載の記憶部更新プログラム。
【０１３５】
（付記２０）
前記判断部により、前記受信された指定値が前記第１の指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できなかったという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の第１の指定値から前記受信された指定値が削除されると共に前記受信された指定値が前記第２の指定値として追加されるように、前記記憶部の記憶内容を変更する
付記１９に記載の記憶部更新プログラム。
【０１３６】
（付記２１）
前記記憶部には、各々異なる複数の第２の指定値が記憶され、
前記処理は、
前記複数の第２の指定値の各々に対応して、当該第２の指定値と一致する指定値が受信された回数を計数し、
前記複数の第２の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する第２の指定値が削除されるように前記記憶部の記憶内容を変更する
ことを含む付記２０に記載の記憶部更新プログラム。
【０１３７】
（付記２２）
コンピュータに、
受信された仮想マシンの構成を指定すると共に供給を要求する計算資源の量を指定する指定値と、仮想マシンの構成を指定しかつ供給を要求する計算資源の量を指定した少なくとも１つの指定値及び計算資源の供給可能な量の関係を、当該指定値に従った仮想マシンが構成されたか否かが認識されるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新プログラム。
【０１３８】
（付記２３）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前記受信された指定値に基づいて前記関係が成立するため、前記記憶された指定値に従った仮想マシンが構成できないのに、現実には前記仮想マシンが構成できた判断した場合、
前記変更では、前記コンピュータは、前記関係が削除されるように、前記記憶部に記憶された内容を変更する
付記２２に記載の記憶部更新プログラム。
【０１３９】
（付記２４）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前前記受信された指定値に基づいて前記関係が成立しないため、前記仮想マシンが構成できるのに、現実には前記仮想マシンが構成できなかったと判断された場合、
前記変更では、前記コンピュータは、前記受信された指定値及び前記計算資源の供給可能な量との関係が追加されるように、前記記憶部に記憶された内容を変更する
付記２２に記載の記憶部更新プログラム。
【０１４０】
（付記２５）
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新方法。
【０１４１】
（付記２６）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記複数の第２の指定値に含まれないことにより前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値に前記受信された指定値が追加されるように、前記記憶部の記憶内容を変更する
付記２５に記載の記憶部更新方法。
【０１４２】
（付記２７）
前記記憶部には、現実に構成された仮想マシンの構成を指定する各々異なる複数の指定値が記憶され、
前記受信された指定値が前記複数の指定値に含まれることにより前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できないという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の指定値から前記受信された指定値と同じ値の指定値が削除されるように、前記記憶部の記憶内容を変更する
付記２５に記載の記憶部更新方法。
【０１４３】
（付記２８）
前記記憶部には、現実に構成されなかった仮想マシンの構成を指定する少なくとも１つの指定値が記憶され、
前記受信された指定値が前記記憶された指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記第受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記受信された指定値と一致する前記記憶された指定値が削除されるように、前記記憶部の記憶内容を変更する
付記２５に記載の記憶部更新方法。
【０１４４】
（付記２９）
前記記憶部には、各々異なる複数の指定値が記憶され、
前記処理は、
前記複数の指定値の各々に対応して、当該指定値と一致する指定値が受信された回数を計数し、
前記複数の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する指定値が削除されるように前記記憶部の記憶内容を変更する
ことを含む付記２８に記載の記憶部更新方法。
【０１４５】
（付記３０）
コンピュータに、
受信された仮想マシンの構成を指定する指定値、仮想マシンが現実に構成された各々異なる複数の第１の指定値を、当該第１の指定値に従った仮想マシンが構成されたことが認識されるように記憶すると共に、前記仮想マシンが現実に構成されなかった少なくとも１つの第２の指定値を、当該第２の指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新方法。
【０１４６】
（付記３１）
前記受信された指定値が前記第２の指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できないのに、現実には前記受信された指定値に従った仮想マシンが構成できたという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の第１の指定値に前記受信された指定値が追加されると共に前記受信された指定値と一致する前記第２の値が削除されるように、前記記憶部の記憶内容を変更する
付記３０に記載の記憶部更新方法。
【０１４７】
（付記３２）
前記判断部により、前記受信された指定値が前記第１の指定値に一致するため、前記受信された指定値に従った仮想マシンが構成できるのに、現実には前記受信された指定値に従った仮想マシンが構成できなかったという矛盾が生じていると判断された場合、
前記変更では、前記コンピュータは、前記複数の第１の指定値から前記受信された指定値が削除されると共に前記受信された指定値が前記第２の指定値として追加されるように、前記記憶部の記憶内容を変更する
付記３１に記載の記憶部更新方法。
【０１４８】
（付記３３）
前記記憶部には、各々異なる複数の第２の指定値が記憶され、
前記処理は、
前記複数の第２の指定値の各々に対応して、当該第２の指定値と一致する指定値が受信された回数を計数し、
前記複数の第２の指定値の各々に対応して前記計数された複数の回数の発生率の内、所定値以下の発生率がある場合、前記所定値以下の発生率に対応する第２の指定値が削除されるように前記記憶部の記憶内容を変更する
ことを含む付記３２に記載の記憶部更新方法。
【０１４９】
（付記３４）
コンピュータに、
受信された仮想マシンの構成を指定すると共に供給を要求する計算資源の量を指定する指定値と、仮想マシンの構成を指定しかつ供給を要求する計算資源の量を指定した少なくとも１つの指定値及び計算資源の供給可能な量の関係を、当該指定値に従った仮想マシンが構成されたか否かが認識されるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む処理を実行させる記憶部更新方法。
【０１５０】
（付記３５）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前記受信された指定値に基づいて前記関係が成立するため、前記記憶された指定値に従った仮想マシンが構成できないのに、現実には前記仮想マシンが構成できた判断した場合、
前記変更では、前記コンピュータは、前記関係が削除されるように、前記記憶部に記憶された内容を変更する
付記３４に記載の記憶部更新方法。
【０１５１】
（付記３６）
前記記憶部には、前記関係が、前記記憶された指定値に従った仮想マシンが構成されなかったことが認識されるように、記憶され、
前記受信された指定値に基づいて前記関係が成立しないため、前記仮想マシンが構成できるのに、現実には前記仮想マシンが構成できなかったと判断された場合、
前記変更では、前記コンピュータは、前記受信された指定値及び前記計算資源の供給可能な量との関係が追加されるように、前記記憶部に記憶された内容を変更する
付記３４に記載の記憶部更新方法。
【０１５２】
（付記３７）
コンピュータに、所定の処理を実行させる記憶部更新プログラムを記憶する記憶媒体であって、
前記所定の理は、
受信された仮想マシンの構成を指定する指定値、仮想マシンの構成を指定した少なくとも１つの指定値を、当該指定値に従った仮想マシンが構成されたか否かが認識できるように、記憶する記憶部に記憶された記憶内容、及び前記受信された指定値に従った仮想マシンが構成できた否かの現実の結果に基づいて、前記受信された指定値及び前記記憶内容からは前記現実の結果が生じない矛盾が生じているか否かを判断し、
前記矛盾が生じていると判断された場合、前記矛盾が生じないように、前記記憶内容を変更する
ことを含む記憶媒体。
【符号の説明】
【０１５３】
１２    診断装置
３２    ＣＰＵ
５２    通信制御部    
６６    実行結果学習処理部
【図１】
2015099500.tif 000003
【図２】
2015099500.tif 000004
【図３】
2015099500.tif 000005
【図４】
2015099500.tif 000006
【図５】
2015099500.tif 000007
【図６】
2015099500.tif 000008
【図７】
2015099500.tif 000009
【図８】
2015099500.tif 000010
【図９】
2015099500.tif 000011
【図１０】
2015099500.tif 000012
【図１１】
2015099500.tif 000013
【図１２】
2015099500.tif 000014
【図１３】
2015099500.tif 000015
【図１４】
2015099500.tif 000016
【図１５】
2015099500.tif 000017
【図１６】
2015099500.tif 000018
【図１７】
2015099500.tif 000019
【図１８】
2015099500.tif 000020
【図１９】
2015099500.tif 000021
【図２０】
2015099500.tif 000022