(57)【要約】【課題】クラウドサービスにおけるサービスの品質の低下等を防止しつつ、複数の仮想マシンをサーバに効率的に設定する。【解決手段】複数の仮想マシンが設定されたサーバと、複数の仮想マシンのいずれかに対応付けられ、対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置であって、アプリケーションが実行された実行時間と、当該アプリケーションの実行によってネットワークを介して送受信された伝送データ量の実行時間中の平均値とを算出し、算出した実行時間および平均値に基づき、アプリケーションの実行によって複数の仮想マシンのそれぞれに発生する負荷の予測値を算出し、算出した予測値に基づいてサーバに発生する負荷の予測値を算出し、算出した予測値の負荷を処理するのに必要なネットワークの容量を算出する。【選択図】図３
2012108717.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置であって、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析部と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測部と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出するネットワーク容量算出部と、を有する予測装置。
【請求項２】
請求項１に記載の予測装置において、
前記利用パターン分析部は、前記実行時間および前記平均値を所定の期間単位で算出し、
前記需要予測部は、前記所定の期間単位で算出された前記実行時間および前記平均値のうち、直近の期間の前記実行時間および前記平均値を用いて、前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する予測装置。
【請求項３】
請求項２に記載の予測装置において、
前記ネットワークには、前記アプリケーションが起動したことを通知する起動通知コマンドと、当該アプリケーションの実行の終了を通知する終了通知コマンドとを送受信するための第１の論理リンクと、前記伝送データを送受信するための第２の論理リンクとが設定され、
前記利用パターン分析部は、前記起動通知コマンドと前記終了通知コマンドとの間の時間の前記所定の期間中の合計を前記実行時間として算出し、当該起動通知コマンドと当該終了通知コマンドとの間に前記第２の論理リンクによって送受信されたデータ量の前記所定の期間中の合計を前記伝送データ量として前記平均値を算出する予測装置。
【請求項４】
複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置における予測方法であって、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析処理と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測処理と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出する処理と、を有する予測方法。
【請求項５】
請求項４に記載の予測方法において、
前記利用パターン分析処理は、前記実行時間および前記平均値を所定の期間単位で算出する処理であり、
前記需要予測処理は、前記所定の期間単位で算出された前記実行時間および前記平均値のうち、直近の期間の前記実行時間および前記平均値を用いて、前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する処理である予測方法。
【請求項６】
請求項５に記載の予測方法において、
前記ネットワークには、前記アプリケーションが起動したことを通知する起動通知コマンドと、当該アプリケーションの実行の終了を通知する終了通知コマンドとを送受信するための第１の論理リンクと、前記伝送データを送受信するための第２の論理リンクとが設定され、
前記利用パターン分析処理は、前記起動通知コマンドと前記終了通知コマンドとの間の時間の前記所定の期間中の合計を前記実行時間として算出し、当該起動通知コマンドと当該終了通知コマンドとの間に前記第２の論理リンクによって送受信されたデータ量の前記所定の期間中の合計を前記伝送データ量として前記平均値を算出する処理である予測方法。
【請求項７】
複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置に、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析機能と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測機能と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出する機能と、を実現させるためのプログラム。
【請求項８】
請求項７に記載のプログラムにおいて、
前記利用パターン分析機能は、前記実行時間および前記平均値を所定の期間単位で算出する機能であり、
前記需要予測機能は、前記所定の期間単位で算出された前記実行時間および前記平均値のうち、直近の期間の前記実行時間および前記平均値を用いて、前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する機能であるプログラム。
【請求項９】
請求項８に記載のプログラムにおいて、
前記ネットワークには、前記アプリケーションが起動したことを通知する起動通知コマンドと、当該アプリケーションの実行の終了を通知する終了通知コマンドとを送受信するための第１の論理リンクと、前記伝送データを送受信するための第２の論理リンクとが設定され、
前記利用パターン分析機能は、前記起動通知コマンドと前記終了通知コマンドとの間の時間の前記所定の期間中の合計を前記実行時間として算出し、当該起動通知コマンドと当該終了通知コマンドとの間に前記第２の論理リンクによって送受信されたデータ量の前記所定の期間中の合計を前記伝送データ量として前記平均値を算出する機能であるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化技術に基づいて構築されたクラウドサービスシステムにおける負荷を予測する予測装置、予測方法およびプログラムに関する。
【背景技術】
【０００２】
クラウドサービスを提供する際には、仮想化技術に基づいて複数の仮想マシンをサーバに設定し、さらに、複数の仮想マシンが設定された複数のサーバを多重化したクラウド基盤を構築する。そして、クラウドサービスの利用者は、複数の仮想マシンのいずれが割り当てられ、割り当てられた仮想マシンにインストールされたアプリケーションを利用者端末を用いてネットワークを介して実行する。
【０００３】
クラウドサービスにおいては、多様なサービスを多数の利用者に提供するために、サービス品質の低下を防止しつつ、複数の仮想マシンをサーバに効率的に設定することが求められる。サービス品質の低下は例えば、サーバやネットワークにおいて過負荷が発生することによって引き起こされる。
【０００４】
サービスの品質の低下等を防止しつつ、複数の仮想マシンをサーバに効率的に設定するためには、利用者の利用パターンを正確に把握して利用者の需要を予測することが重要となる。
【０００５】
ここで、利用者の需要を予測するための従来技術としては、例えば無線ネットワークやＷｅｂサーバにおいて利用者の利用パターンを分析するものがある。
【０００６】
無線ネットワークにおいて利用者の利用パターンを分析する方法としては例えば、利用者をグループ分けし、グループ毎に決定したグループプロファイルと、グループのメンバの利用パターンの変化に基づきサービス品質レベルを動的に決定する方法がある。また、受信側の利用環境の設定に基づいて無線装置の利用パターンを監視して記録する方法がある。
【０００７】
また、Ｗｅｂサーバにおいて利用者の利用パターンを分析する方法としては例えば、Ｗｅｂサーバ上でＷｅｂマップを受け取り、セッション中に利用者からアクセスされたＷｅｂページを判別し、Ｗｅｂページの利用パターンを特定する方法がある。
【０００８】
なお、ＭａｐＲｅｄｕｃｅによるクラウド基盤の負荷を静的に予測して最適化する方法が例えば、非特許文献１に開示されている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Archana Ganapathi, Yanpei Chen, Armando Fox, Randy Katz, David Patterson ,”Statistics-Driven Workload Modeling for the Cloud”, ICDE Workshops 2010,pp87〜92
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したような無線ネットワークやＷｅｂサーバにおいて利用者の利用パターンを分析する方法は、ハードウェアやネットワークレベルでの監視や分析に関する方法であり、仮想化技術に基づいたクラウド基盤上で適用することは難しいという問題点がある。
【００１１】
また、非特許文献１に開示されている方法は、汎用的なクラウド基盤に適したものではない。
【００１２】
本発明は、クラウドサービスにおけるサービスの品質の低下等を防止しつつ、複数の仮想マシンをサーバに効率的に設定することを可能にする予測装置、予測方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明の予測装置は、複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置であって、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析部と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測部と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出するネットワーク容量算出部と、を有する。
【００１４】
また、上記目的を達成するために本発明の予測方法は、複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置における予測方法であって、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析処理と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測処理と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出する処理と、を有する。
【００１５】
また、上記目的を達成するために本発明のプログラムは、複数の仮想マシンが設定されたサーバと、前記複数の仮想マシンのいずれかに対応付けられ、該対応付けられた仮想マシンにインストールされたアプリケーションをネットワークを介して起動させて実行する複数の利用者端末とを備えたシステムに発生する負荷を予測する予測装置に、
前記アプリケーションが実行された実行時間と、当該アプリケーションの実行によって前記複数の仮想マシンのそれぞれと前記複数の利用者端末のそれぞれとの間で前記ネットワークを介して送受信された伝送データのデータ量である伝送データ量の前記実行時間中の平均値とを算出する利用パターン分析機能と、
前記算出された実行時間および平均値に基づき、前記アプリケーションの実行によって前記複数の仮想マシンのそれぞれに発生する負荷の予測値を算出する需要予測機能と、
前記算出された予測値に基づいて前記サーバに発生する負荷の予測値を算出し、該算出した予測値の負荷を処理するのに必要な前記ネットワークの容量を算出する機能と、を実現させる。
【発明の効果】
【００１６】
本発明では、複数の仮想マシンのそれぞれに発生する負荷の予測値を算出し、その予測値に基づいて複数の仮想マシンが設定されたサーバに発生する負荷の予測値を算出する。さらに、本発明では、サーバに発生する負荷を処理するのに必要なネットワークの容量を算出する。
【００１７】
これらの算出値を用いて、複数の仮想マシン間で負荷のピークが分散するように、複数の仮想マシンのそれぞれを利用者に割り当てることにより、サーバに多くの仮想マシンを設定できるとともに、サーバやネットワークの過負荷を回避することができる。
【００１８】
従って、クラウドサービスにおけるサービスの品質の低下等を防止しつつ、複数の仮想マシンをサーバに効率的に設定することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】ネットワークに過負荷が発生したときの状態を説明するための図であり、（ａ）はネットワークに流れる伝送データ量の推移の一例を示す図、（ｂ）は（ａ）に示す時刻ｔ１におけるサーバのキューの状態の一例を示す図である。
【図２】本発明の予測装置を適用したクラウドサービスシステムの実施の一形態の構成を示すブロック図である。
【図３】図２に示したサーバの構成の一例を示すブロック図である。
【図４】図３に示したネットワークに設定された制御用リンクと伝送データ用リンクとを説明するための図である。
【図５】図４に示した制御用リンクによって送受信される制御用コマンドの種類を説明するための図である。
【図６】図５に示した制御用コマンドを送受信する際のシーケンス図である。
【図７】図３に示した利用パターン分析部の動作の詳細を説明するための図である。
【図８】図３に示したネットワーク容量算出部の動作の詳細を説明するための図であり、（ａ）は伝送データ量の推移の一例を示す図、（ｂ）は伝送データ量の推移の他の例を示す図である。
【図９】図２〜図８に示したクラウドサービスシステムの動作を説明するためのフローチャートである。
【図１０】図２〜図８に示したクラウドサービスシステムにおいて予測装置における算出値を用いて複数の仮想マシンのそれぞれを利用者に割り当てた状態の一例を説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２１】
まず、本発明の概要について説明する。
【００２２】
本発明では、クラウド基盤を構成するサーバや、サーバとクラウドサービスの利用者が利用する利用者端末との間を接続するネットワークに発生する負荷を予測する。
【００２３】
図１は、ネットワークに過負荷が発生したときの状態を説明するための図であり、（ａ）はネットワークに流れる伝送データ量の推移の一例を示す図、（ｂ）は（ａ）に示す時刻ｔ１におけるサーバのキューの状態の一例を示す図である。
【００２４】
図１（ａ）に示す伝送データ量が、クラウド基盤を構成するサーバと、複数の利用者のそれぞれが利用する利用者端末とを接続するネットワークを流れる伝送データ量であるとする。この場合、例えば時刻ｔ１では、伝送データ量がネットワークの容量、つまり所定の閾値に達している。
【００２５】
このとき、サーバのキューに蓄積されたデータは図１（ｂ）に示すように、キューの容量まで達することになり、データが損失したり、ネットワークの速度が低下したりする。その結果、クラウドサービスのサービス品質が低下してしまう。
【００２６】
本発明では、利用者の利用パターンを分析することによってサーバやネットワークに発生する負荷を予測する。この予測に基づき、サーバに設定された複数の仮想マシン毎に負荷のピークが分散されるように、複数の仮想マシンのそれぞれを利用者に割り当てれば、サーバやネットワークに発生する過負荷を回避し、サービス品質の低下を回避することができる。
【００２７】
図２は、本発明の予測装置を適用したクラウドサービスシステムの実施の一形態の構成を示すブロック図である。
【００２８】
本実施形態のクラウドサービスシステムは図２に示すように、予測装置１１−１〜１１−ｎのそれぞれを備えるサーバ１０−１〜１０−ｎと、サーバ１０−１〜１０−ｎと接続された受付装置３０と、インターネット４０を介して受付装置３０に接続された利用者端末２０−１〜２０−ｎとを備えている。なお、後述するように、サーバ１０−１〜１０−ｎのそれぞれには、複数の仮想マシンが設定されている。
【００２９】
利用者端末２０−１〜２０−ｎのそれぞれは、サーバ１０−１〜１０−ｎのそれぞれに設定された複数の仮想マシンのいずれかと対応付けられ、対応付けられた仮想マシンにインストールされたアプリケーションを起動させて実行する。
【００３０】
受付装置３０は、利用者端末２０−１〜２０−ｎとサーバ１０−１〜１０−ｎとの間の通信を制御する。
【００３１】
図３は、図２に示したサーバ１０−１の構成の一例を示すブロック図である。なお、サーバ１０−２〜サーバ１０−ｎも同様の構成である。
【００３２】
図２に示したサーバ１０−１には図３に示すように、仮想マシン１２−１〜１２−ｎが設定されている。
【００３３】
仮想マシン１２−１〜１２−ｎのそれぞれには、複数のアプリケーションがインストールされている。仮想マシン１２−１〜１２−ｎのそれぞれは、利用者端末２０−１〜２０−ｎのそれぞれとの間で、インストールされたアプリケーションを制御するための制御用コマンドや、アプリケーションの実行によって発生する伝送データをネットワーク５０を介して送受信する。なお、制御用コマンドの詳細については後述する。
【００３４】
ネットワーク５０は、ポート１５によってサーバ１０−１と接続され、サーバ１０−１内において仮想マシン１２−１〜１２−ｎ毎に分岐されている。そして、サーバ１０−１内には、仮想マシン１２−１〜１２−ｎのそれぞれが、利用者端末２０−１〜２０−ｎのそれぞれと送受信する制御用コマンドや伝送データをキャプチャするためのインターフェース１３−１〜１３−ｎが設けられている。
【００３５】
予測装置１１−１は、データベース１１ｂを備えた収集部１１ａと、利用パターン分析部１１ｃと、需要予測部１１ｄと、ネットワーク容量算出部１１ｅとを備えている。
【００３６】
収集部１１ａは、インターフェース１３−１〜１３−ｎを介して制御用コマンドや伝送データを収集する。そして、収集部１１ａは、収集した制御用コマンドや伝送データを分析することにより、実行されたアプリケーションと、その実行によって送受信された伝送データ量と、その実行時間とを示す情報をログとしてデータベース１１ｂに記憶する。
【００３７】
利用パターン分析部１１ｃは、データベース１１ｂに記憶されたログから、所定の期間中の実行時間および伝送データ量を複数のアプリケーション毎に算出する。また、利用パターン分析部１１ｃは、算出した実行時間および伝送データ量から、実行時間中の伝送データ量の平均値を複数のアプリケーション毎に算出する。
【００３８】
上述したように利用パターン分析部１１ｃは、データベース１１ｂに記憶されたログから、複数のアプリケーション毎に実行時間および伝送データ量を算出する。これらを正確に算出するためには、複数のアプリケーションのそれぞれが起動した時刻と実行を終了した時刻とを把握する必要がある。
【００３９】
そのため、本実施形態では、制御用コマンドを送受信する第１の論理リンクである制御用リンクと、伝送データを送受信する第２の論理リンクである伝送データ用リンクとの２つの論理リンクをネットワーク５０に設定する。
【００４０】
図４は、図３に示したネットワーク５０に設定された制御用リンクと伝送データ用リンクとを説明するための図である。なお、図４においては、説明をわかりやすくするために、図２に示した受付装置３０やインターネット４０、図３に示したポート１５やブリッジ１６の記載を省略している。
【００４１】
利用者端末２０−１〜２０−ｎのそれぞれと仮想マシン１２−１〜１２−ｎのそれぞれとは図４に示すように、ネットワーク５０に設定された制御用リンク５１および伝送データ用リンク５２で接続されている。なお、制御用リンク５１と伝送データ用リンク５２とは、仮想マシンのフォト番号等によって区別される。
【００４２】
次に、図４に示した制御用リンク５１によって送受信される制御用コマンドの詳細について説明する。
【００４３】
図５は、図４に示した制御用リンク５１によって送受信される制御用コマンドの種類を説明するための図である。また、図６は、図５に示した制御用コマンドを送受信する際のシーケンス図である。なお、図６においては、利用者端末２０−１と仮想マシン１２−１との間の通信を一例として示している。
【００４４】
図５および図６を参照しながら、利用者端末２０−１と仮想マシン１２−１との間の制御用リンク５１による通信について説明する。
【００４５】
まず、利用者端末２０−１は、仮想マシン１２−１と接続する（ステップＳ１）。
【００４６】
そして、利用者端末２０−１は、利用者端末を識別するための端末識別情報を含む認証情報を仮想マシン１２−１へ送信する（ステップＳ２）。
【００４７】
利用者端末２０−１から送信された認証情報を受信した仮想マシン１２−１は、受信した認証情報に基づいて認証を行う。
【００４８】
そして、仮想マシン１２−１は、認証に成功すると、その旨を示すAUTHENTICATION OKコマンドを利用者端末２０−１へ送信する（ステップＳ３）。
【００４９】
次に、仮想マシン１２−１は、仮想マシン１２−１にインストールされているアプリケーションのリストを含むLISTコマンドを利用者端末２０−１へ送信する（ステップＳ４）。
【００５０】
仮想マシン１２−１から送信されたLISTコマンドを受信した利用者端末２０−１は、受信したLISTコマンドに含まれるリストが示すアプリケーションのいずれかの選択を利用者から受け付ける。
【００５１】
そして、利用者端末２０−１は、選択されたアプリケーションを通知するためのAPP STARTコマンドを仮想マシン１２−１へ送信する（ステップＳ５）。なお、ここでは、アプリケーションａが選択されたものとする。
【００５２】
利用者端末２０−１から送信されたAPP STARTコマンドを受信した仮想マシン１２−１は、受信したAPP STARTコマンドにて通知されたアプリケーションａを起動する。
【００５３】
そして、仮想マシン１２−１は、アプリケーションａが正しく起動したことを通知するための起動通知コマンドであるAPP START SUCCESSコマンドを利用者端末２０−１へ送信する（ステップＳ６）。
【００５４】
仮想マシン１２−１から送信されたAPP START SUCCESSコマンドを受信した利用者端末２０−１は、利用者からの指示に応じてアプリケーションａを実行する。
【００５５】
そして、利用者端末２０−１は、アプリケーションａの終了の指示を利用者から受け付けると、アプリケーションの実行の終了を通知するための終了通知コマンドであるCLOSEコマンドを仮想マシン１２−１へ送信する（ステップＳ７）。
【００５６】
この後、利用者端末２０−１は、利用者からの指示に応じ、LISTコマンドに含まれるリストが示すアプリケーションのうち、アプリケーションａ以外のアプリケーションｂの選択を受け付けることも可能である。
【００５７】
この場合、利用者端末２０−１は、アプリケーションｂが選択されたことを通知するためのAPP STARTコマンドを仮想マシン１２−１へ送信する（ステップＳ８）。
【００５８】
そして、利用者端末２０−１から送信されたAPP STARTコマンドを受信した仮想マシン１２−１は、受信したAPP STARTコマンドにて通知されたアプリケーションｂを起動させる。
【００５９】
そして、仮想マシン１２−１は、上述したステップＳ６の動作と同様に、APP START SUCCESSコマンドを利用者端末２０−１へ送信する（ステップＳ９）。
【００６０】
図５および図６を参照しながら説明した上記の例において、APP START SUCCESSコマンドからCLOSEコマンドまでの間は、伝送データ用リンク５２によって伝送データが送受信されている。
【００６１】
利用パターン分析部１１ｃは、APP START SUCCESSコマンドからCLOSEコマンドまでの間の時間の合計を実行時間として算出する。また、利用パターン分析部１１ｃは、APP START SUCCESSコマンドからCLOSEコマンドまでの間に伝送データ用リンク５２によって送受信されたデータ量の合計を伝送データ量として算出する。
【００６２】
なお、実行されたアプリケーションを示す情報は、APP START SUCCESSに含まれているため、ログによって識別することが可能である。
【００６３】
以下に、図３に示した利用パターン分析部１１ｃの動作の詳細について説明する。
【００６４】
図７は、図３に示した利用パターン分析部１１ｃの動作の詳細を説明するための図である。以降、仮想マシン１２−１〜１２−ｎのそれぞれにｘ個のアプリケーション（アプリケーション１、２、・・・、ｉ・・・、ｘ）がインストールされており、期間Ｐの間にｙ個のログが収集されたものとして説明する。なお、期間Ｐは、仮想マシンを使う利用者数および頻度等に基づいて１日間や１週間等、任意に決めることができる。
【００６５】
まず、データベース１１ｂに記憶されたログの形式を以下の式（１）に示す。
【００６６】
【数１】
2012108717.tif 000003
【００６７】
式（１）の左辺は、期間Ｐにおいてｄ番目に収集されたログのベクトル値を示している。また、式（１）の右辺において、dp1は、ｘ個のアプリケーションのうちの実行されたアプリケーションを示し、dp2はその実行によって送受信された伝送データ量を示し、dp3はその実行時間を示している。
【００６８】
上記の式（１）に示したログから、アプリケーションｉの期間Ｐ中の実行時間を以下に示す式（２）を用いて算出することができる。また、アプリケーションｉの期間Ｐ中の伝送データ量を以下に示す式（３）を用いて算出することができる。
【００６９】
【数２】
2012108717.tif 000004
【００７０】
【数３】
2012108717.tif 000005
【００７１】
なお、上記の式（２）を用いることにより、ｘ個のアプリケーションのうちの同一のアプリケーションが期間Ｐ中に複数回実行されても、期間Ｐ中にアプリケーションｉが実行された時間の合計を実行時間として算出することが可能である。同様に、上記の式（３）を用いることにより、ｘ個のアプリケーションのうちの同一のアプリケーションが期間Ｐ中に複数回実行されても、期間Ｐ中にアプリケーションｉが実行されたことによって送受信されたデータ量の合計を伝送データ量として算出することが可能である。
【００７２】
また、アプリケーションｉの伝送データ量の実行時間中の平均値は、上記の式（２）および式（３）から、以下に示す式（４）を用いて算出することができる。
【００７３】
【数４】
2012108717.tif 000006
【００７４】
再度、図３を参照すると、需要予測部１１ｄは、利用パターン分析部１１ｃにて算出された複数のアプリケーション毎の実行時間と、伝送データ量の実行時間中の平均値とから、実行時間の予測値と、伝送データ量の実行時間中の平均値の予測値とを複数のアプリケーション毎に算出する。さらに、需要予測部１１ｄは、算出した予測値から、仮想マシン１２−１〜１２−ｎのそれぞれに発生する負荷の予測値を算出する。なお、需要予測部１１ｄは、予測アルゴリズムとして、例えばホルトの線形方法を利用し、パラメータとして反映レベルとトレンドという２つを用いる。
【００７５】
以下に、図３に示した需要予測部１１ｄの動作の詳細について説明する。ここでは、上述した期間Ｐの１つ後の期間である期間（Ｐ＋１）における予測値を算出する場合について説明する。
【００７６】
期間（Ｐ＋１）におけるアプリケーションｉの実行時間の予測値は、以下に示す式（５）を用いて算出することができる。
【００７７】
【数５】
2012108717.tif 000007
【００７８】
なお、上記の式（５）において反映レベルのパラメータであるＬPtは以下に示す式（６）にて表され、トレンドパラメータであるｂPtは以下に示す式（７）にて表される。式（６）および式（７）においては、０≦α≦１かつ、０≦β≦１である。
【００７９】
【数６】
2012108717.tif 000008
【００８０】
【数７】
2012108717.tif 000009
【００８１】
次に、期間（Ｐ＋１）におけるアプリケーションｉの伝送データ量の実行時間中の平均値の予測値は、以下に示す式（８）を用いて算出することができる。
【００８２】
【数８】
2012108717.tif 000010
【００８３】
なお、上記の式（８）において反映レベルのパラメータであるＬPeは以下に示す式（９）で表され、トレンドパラメータであるｂpeは以下に示す式（７）にて表される。式（９）および式（１０）においては、０≦α≦１かつ、０≦β≦１である。
【００８４】
【数９】
2012108717.tif 000011
【００８５】
【数１０】
2012108717.tif 000012
【００８６】
上述した実行時間の予測値と、伝送データ量の実行時間中の平均値の予測値とから、アプリケーションｉを実行することによって仮想マシンに発生する負荷の予測値は以下に示す式（１１）を用いて算出することができる。
【００８７】
【数１１】
2012108717.tif 000013
【００８８】
また、上記の式（１１）から、ｘ個のアプリケーションがインストールされた仮想マシンに発生する負荷の予測値は以下に示す式（１２）を用いて算出することができる。
【００８９】
【数１２】
2012108717.tif 000014
【００９０】
また、ｘ個のアプリケーションがインストールされた仮想マシンの実行時間の予測値は以下に示す式（１３）を用いて算出することができる。
【００９１】
【数１３】
2012108717.tif 000015
【００９２】
なお、利用者の利用パターンは、時間に応じて変化すると考えられる。そのため、期間（Ｐ＋１）の予測値を算出する場合には、期間Ｐおよび期間（Ｐ−１）のように直近の値を用いて予測値を算出することが重要である。
【００９３】
再度、図３を参照すると、ネットワーク容量算出部１１ｅは、需要予測部１１ｄにて算出された予測値に基づき、サーバ１０−１に発生する負荷の予測値を算出する。そして、ネットワーク容量算出部１１ｅは、算出した予測値の負荷を処理するのに必要なネットワーク５０の平均容量および最大容量を算出する。さらに、ネットワーク容量算出部１１ｅは、仮想マシン１２−１〜１２−ｎのいずれかを割り当てられた利用者の全てが同時に接続した場合に、算出した予測値の負荷を処理するのに必要なネットワーク５０の同時接続時平均容量、および、同時接続時最大容量を算出する。
【００９４】
以下に、ネットワーク容量算出部１１ｅの動作の詳細について説明する。
【００９５】
図８は、図３に示したネットワーク容量算出部１１ｅの動作の詳細を説明するための図であり、（ａ）は伝送データ量の推移の一例を示す図、（ｂ）は伝送データ量の推移の他の例を示す図である。なお、ここでは、サーバ１０−１に設定された仮想マシンの数をｋ個とする。
【００９６】
期間（Ｐ＋１）にサーバ１０−１に発生する負荷の予測値は、上記の式（１２）から、以下に示す式（１４）を用いて算出することができる。
【００９７】
【数１４】
2012108717.tif 000016
【００９８】
ここで、図８（ａ）に示すように、期間（Ｐ＋１）において伝送データ量が均一であると仮定した場合を考えてみる。この場合、期間（Ｐ＋１）をτ秒とすると、上記の式（１４）にて算出された予測値の負荷を処理するのに必要なネットワーク５０の平均容量は、以下に示す式（１５）を用いて算出することができる。
【００９９】
【数１５】
2012108717.tif 000017
【０１００】
また、図８（ｂ）に示すように、期間（Ｐ＋１）のτ秒間のうちのα秒間に伝送データ量のピークが発生し、その伝送データ量が期間（Ｐ＋１）全体の伝送データ量のβ％を占めると仮定した場合を考えてみる。この場合、上記の式（１４）にて算出された予測値の負荷を処理するのに必要なネットワーク５０の最大容量は、以下に示す式（１６）を用いて算出することができる。
【０１０１】
【数１６】
2012108717.tif 000018
【０１０２】
従って、ｋ個の仮想マシンのいずれかを割り当てられた利用者の全てが同時に接続してきた場合に、その利用者数をγとすると、上記の式（１４）にて算出された予測値の負荷を処理するのに必要なネットワーク５０の同時接続時平均容量は、以下に示す式（１７）を用いて算出することができる。
【０１０３】
【数１７】
2012108717.tif 000019
【０１０４】
また、ｋ個の仮想マシンのいずれかを割り当てられた利用者の全てが同時に接続した場合に、その利用者数をγとすると、上記の式（１４）にて算出された予測値の負荷を処理するのに必要なネットワーク５０の同時接続時最大容量は、以下に示す式（１８）を用いて算出することができる。
【０１０５】
【数１８】
2012108717.tif 000020
【０１０６】
再度、図３を参照すると、割当装置１４は、予測装置１１−１にて算出された予測値やネットワークの容量に基づき、仮想マシン１２−１〜１２−ｎのそれぞれの負荷が分散されるように、仮想マシン１２−１〜１２−ｎのそれぞれを利用者に割り当てる。
【０１０７】
以下に上記のように構成されたクラウドサービスシステムの動作について説明する。
【０１０８】
図９は、図２〜図８に示したクラウドサービスシステムの動作を説明するためのフローチャートである。
【０１０９】
収集部１１ａは、インターフェース１３−１〜１３−ｎを介して制御用コマンドや伝送データを収集する（ステップＳ２１）。
【０１１０】
そして、収集部１１ａは、収集した制御用コマンドや伝送データを分析することにより、実行されたアプリケーションと、その実行によって送受信された伝送データ量と、その実行時間とを示す情報をログとして上記の式（１）に示した形式でデータベース１１ｂに記憶する（ステップＳ２２）。
【０１１１】
次に、利用パターン分析部１１ｃは、データベース１１ｂに記憶されたログから、所定の期間中の実行時間を複数のアプリケーション毎に上記の式（２）を用いて算出する（ステップＳ２３）。
【０１１２】
また、利用パターン分析部１１ｃは、データベース１１ｂに記憶されたログから、所定の期間中の伝送データ量を複数のアプリケーション毎に上記の式（３）を用いて算出する（ステップＳ２４）。
【０１１３】
さらに、利用パターン分析部１１ｃは、ステップＳ２３およびステップＳ２４にて算出した実行時間および伝送データ量から、伝送データ量の実行時間中の平均値を複数のアプリケーション毎に上記の式（４）を用いて算出する（ステップＳ２５）。
【０１１４】
次に、需要予測部１１ｄは、ステップＳ２３において算出された実行時間から、複数のアプリケーション毎に実行時間の予測値を上記の式（５）〜（７）を用いて算出する（ステップＳ２６）。
【０１１５】
次に、需要予測部１１ｄは、ステップＳ２５において算出された伝送データ量の実行時間中の平均値から、伝送データ量の実行時間中の平均値の予測値を複数のアプリケーション毎に上記の式（８）〜（１０）を用いて算出する（ステップＳ２７）。
【０１１６】
また、需要予測部１１ｄは、ステップＳ２６およびステップＳ２７にて算出した予測値から、発生する負荷の予測値を仮想マシン１２−１〜１２−ｎ毎に上記の式（１１）および式（１２）を用いて算出する（ステップＳ２８）。
【０１１７】
次に、ネットワーク容量算出部１１ｅは、ステップＳ２８において算出された負荷の予測値から、サーバ１０−１に発生する負荷の予測値を上記の式（１４）を用いて算出する（ステップＳ２９）。
【０１１８】
そして、ネットワーク容量算出部１１ｅは、ステップＳ２９にて算出された予測値の負荷を処理するのに必要なネットワーク５０の平均容量を上記の式（１５）を用いて算出する（ステップＳ３０）。
【０１１９】
また、ネットワーク容量算出部１１ｅは、ステップＳ２９にて算出された予測値の負荷を処理するのに必要なネットワーク５０の最大容量を上記の式（１６）を用いて算出する（ステップＳ３１）。
【０１２０】
また、ネットワーク容量算出部１１ｅは、仮想マシン１２−１〜１２−ｎの全ての利用者が同時に接続した場合に、ステップＳ２９にて算出された予測値の負荷を処理するのに必要なネットワーク５０の同時接続時平均容量を上記の式（１７）を用いて算出する（ステップＳ３２）。
【０１２１】
また、ネットワーク容量算出部１１ｅは、仮想マシン１２−１〜１２−ｎの全ての利用者が同時に接続した場合に、ステップＳ２９にて算出された予測値の負荷を処理するのに必要なネットワーク５０の同時接続時最大容量を上記の式（１８）を用いて算出する（ステップＳ３３）。
【０１２２】
そして、割当装置１４は、予測装置１１−１にて算出された予測値やネットワークの容量を用いて、仮想マシン１２−１〜１２−ｎのそれぞれの負荷が分散されるように、仮想マシン１２−１〜１２−ｎのそれぞれを利用者に割り当てる（ステップＳ３４）。
【０１２３】
このように本実施形態において予測装置１１−１は、アプリケーションが実行された実行時間と、当該アプリケーションの実行によって仮想マシン１２−１〜１２−ｎのそれぞれと利用者端末２０−１〜２０−ｎのそれぞれとの間でネットワーク５０を介して送受信された伝送データのデータ量である伝送データ量の実行時間中の平均値とを算出する。
【０１２４】
また、予測装置１１−１は、算出された実行時間および平均値に基づき、アプリケーションの実行によって仮想マシン１２−１〜１２−ｎのそれぞれに発生する負荷の予測値を算出する。
【０１２５】
そして、予測装置１１−１は、算出された予測値に基づいてサーバ１０−１に発生する負荷の予測値を算出し、算出した予測値の負荷を処理するのに必要なネットワーク５０の容量を算出する。
【０１２６】
図１０は、図２〜図８に示したクラウドサービスシステムにおいて予測装置１１−１における算出値を用いて複数の仮想マシンのそれぞれを利用者に割り当てた状態の一例を説明するための図である。
【０１２７】
図１０において、例えば「昼型ユーザ」とは、主に日中帯にクラウドサービスを利用する利用パターンの利用者のことである。また、例えば「ライトユーザ」とは、「ヘビーユーザ」に比べてクラウドサービスの利用時間が短い利用パターンの利用者のことである。
【０１２８】
図１０に示すように、仮想マシン１２−１〜１２−５のそれぞれに割り当てられた利用者の利用パターンには偏りがない。例えば、昼型ユーザばかりが割り当てられていたり、ヘビーユーザばかりが割り当てられていたりしていない。これにより、複数の仮想マシン間で負荷のピークが分散し、サーバに多くの仮想マシンを設定できるとともに、サーバやネットワークの過負荷を回避することができる。
【０１２９】
従って、クラウドサービスにおけるサービスの品質の低下等を防止しつつ、複数の仮想マシンをサーバに効率的に設定することが可能となる。
【０１３０】
なお、本実施形態においては、サーバ内に予測装置を設けた場合について説明したが、予測装置をサーバの外部に設けてもよい。
【０１３１】
また、本発明においては、予測装置内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを予測装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを予測装置に読み込ませ、実行するものであっても良い。予測装置にて読取可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、予測装置に内蔵されたＨＤＤなどを指す。
【符号の説明】
【０１３２】
１０−１〜１０−ｎ    サーバ
１１〜１〜１１−ｎ    予測装置
１１ａ    収集部
１１ｂ    データベース
１１ｃ    利用パターン分析部
１１ｄ    需要予測部
１１ｅ    ネットワーク容量算出部
１２−１〜１２−ｎ    仮想マシン
１３−１〜１３−ｎ    インターフェース
１４    割当装置
１５    ポート
１６    ブリッジ
２０−１〜２０−ｎ    利用者端末
３０    受付装置
４０    インターネット
５０    ネットワーク
５１    制御用リンク
５２    伝送データ用リンク
【図１】
2012108717.tif 000021
【図２】
2012108717.tif 000022
【図３】
2012108717.tif 000023
【図４】
2012108717.tif 000024
【図５】
2012108717.tif 000025
【図６】
2012108717.tif 000026
【図７】
2012108717.tif 000027
【図８】
2012108717.tif 000028
【図９】
2012108717.tif 000029
【図１０】
2012108717.tif 000030