(57)【特許請求の範囲】
【請求項１】
負荷分散の対象である複数の仮想マシンを実行する第１の情報処理装置と、
前記第１の情報処理装置に接続された第２の情報処理装置と、
を有し、
前記複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンは、
前記第１の仮想マシンに対するアクセスの数が第１の閾値を超えた場合、前記第１の仮想マシンに対するアクセスの数より大きい第２の閾値を、前記第２の情報処理装置に送信し、
前記複数の仮想マシンの各々は、
前記第２の情報処理装置から前記第２の閾値を受信した場合、アクセスの数の閾値を前記第１の閾値から前記第２の閾値に変更し、
アクセスの数の閾値を前記第２の閾値に変更した後、前記第１の閾値を含む閾値データを前記第２の情報処理装置から受信した場合、アクセスの数の閾値を前記第１の閾値に戻し、
前記第２の情報処理装置は、
前記第１の仮想マシンから受信した前記第２の閾値を、前記複数の仮想マシンの各々に送信し、
前記第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記第１の情報処理装置において実行される仮想マシンの台数が前記第２の台数に増やされた場合、前記第１の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
情報処理システム。
【請求項２】
前記第２の情報処理装置は、
前記第１の閾値の監視レベル以外の各監視レベルについて、当該監視レベルと前記第２の台数との和を前記第１の閾値に乗じた値を、前記第２の台数で除することによって閾値を算出する、
処理をさらに実行し、
前記閾値データは、
前記第１の閾値と、前記第１の閾値の監視レベル以外の各監視レベルの閾値とを含む、
請求項１記載の情報処理システム。
【請求項３】
前記第２の情報処理装置は、
前記第１の閾値の監視レベルと前記第２の閾値の監視レベルとの差に前記第１の台数を加えることで前記第２の台数を算出する、
処理をさらに実行する請求項１又は２記載の情報処理システム。
【請求項４】
前記第２の閾値は、
前記閾値データに含まれる、前記第１の閾値より大きい閾値のうち最小の閾値である、
請求項２又は３記載の情報処理システム。
【請求項５】
前記第１の情報処理装置において実行される仮想マシンの台数を管理し、且つ、前記第１の情報処理装置及び前記第２の情報処理装置に接続された第３の情報処理装置
をさらに有し、
前記第１の情報処理装置において実行される仮想マシンの台数を、前記第１の台数から前記第２の台数に増やすための処理は、
前記第１の情報処理装置において実行される仮想マシンの台数を、前記第１の台数から前記第２の台数に増やすことを前記第３の情報処理装置に要求する処理を含む、
請求項１乃至４のいずれか１つ記載の情報処理システム。
【請求項６】
情報処理装置であって、
他の情報処理装置において実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他の情報処理装置において実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
情報処理装置。
【請求項７】
コンピュータが、
他のコンピュータにおいて実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他のコンピュータにおいて実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他のコンピュータにおいて実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
処理を実行するオートスケール方法。
【請求項８】
コンピュータに、
他のコンピュータにおいて実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他のコンピュータにおいて実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他のコンピュータにおいて実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
処理を実行させるオートスケールプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オートスケール技術に関する。
【背景技術】
【０００２】
利用者の端末からの要求に応じてサービスを提供するクラウドシステムには、利用者の端末からのアクセス数の増加に応じて、仮想マシンの台数を増やす又は回線を増強するといったオートスケールの機能を備えるものがある。但し、災害などのイベントの発生時に利用者の端末からのアクセス数が急激に増加すると、オートスケールがアクセス数の急激な増加に追従できないことがある。この原因の一つに、アクセスログの解析を行う時間間隔が長いことがある。
【０００３】
一方で、アクセスログの解析を行う時間間隔を短くした場合には、アクセス数が閾値を超えると、閾値を超えたことを通知するためのアラームが短い時間間隔で頻繁に発生する。特に複数の仮想マシンに負荷が分散されているような場合、複数の仮想マシンの各々で頻繁にアラームが発生する。これにより、アラームの発生を監視するサーバ等の処理負荷が増大する。また、アラームの発生によってネットワークトラフィックが増大し、他の通信の通信速度を低下させることもある。
【０００４】
従来技術を利用したとしても、このような問題に対処することはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−８８７９７号公報
【特許文献２】特開２００６−３０２２４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、アクセス数に応じてオートスケールを実行するシステムにおいて、アクセスログの解析を行う時間間隔を短くした場合に問題が生じることを抑制するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理システムは、負荷分散の対象である複数の仮想マシンを実行する第１の情報処理装置と、第１の情報処理装置に接続された第２の情報処理装置とを有する。そして、複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンは、第１の仮想マシンに対するアクセスの数が第１の閾値を超えた場合、第１の仮想マシンに対するアクセスの数より大きい第２の閾値を、第２の情報処理装置に送信し、複数の仮想マシンの各々は、第２の情報処理装置から第２の閾値を受信した場合、アクセスの数の閾値を第１の閾値から第２の閾値に変更し、アクセスの数の閾値を第２の閾値に変更した後、第１の閾値を含む閾値データを第２の情報処理装置から受信した場合、アクセスの数の閾値を第１の閾値に戻し、第２の情報処理装置は、第１の仮想マシンから受信した第２の閾値を、複数の仮想マシンの各々に送信し、第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、第１の情報処理装置において実行される仮想マシンの台数が第２の台数に増やされた場合、第１の閾値を含む閾値データを、複数の仮想マシンの各々に送信する。
【発明の効果】
【０００８】
１つの側面では、アクセス数に応じてオートスケールを実行するシステムにおいて、アクセスログの解析を行う時間間隔を短くした場合に問題が生じることを抑制できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態におけるシステムの概要を示す図である。
【図２】図２は、監視サーバの機能ブロック図である。
【図３】図３は、閾値管理データ格納部に格納されるデータの一例を示す図である。
【図４】図４は、ＶＭ管理データ格納部に格納されるデータの一例を示す図である。
【図５】図５は、タスク管理データ格納部に格納されるデータの一例を示す図である。
【図６】図６は、クラウド管理サーバの機能ブロック図である。
【図７】図７は、ＬＢ管理データ格納部に格納されるデータの一例を示す図である。
【図８】図８は、ＶＭの機能ブロック図である。
【図９】図９は、閾値テーブル格納部に格納される閾値テーブルの一例を示す図である。
【図１０】図１０は、閾値格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、アクセスログ格納部に格納されるアクセスログの一例を示す図である。
【図１２】図１２は、初期状態において管理者が指定する閾値をＶＭに設定する処理の処理フローを示す図である。
【図１３】図１３は、運用中にＶＭが実行する処理の処理フローを示す図である。
【図１４】図１４は、運用中に監視サーバが実行する処理の処理フローを示す図である。
【図１５】図１５は、運用中にクラウド管理サーバが実行する処理の処理フローを示す図である。
【図１６】図１６は、運用中にＶＭが実行する処理の処理フローを示す図である。
【図１７】図１７は、閾値テーブル格納部に格納される閾値テーブルの一例を示す図である。
【図１８】図１８は、運用中にシステムにおいて行われる処理の処理フローを示す図である。
【図１９】図１９は、閾値及びアクセス数の変化について説明するための図である。
【図２０】図２０は、コンピュータのハードウエア構成図である。
【図２１】図２１は、運用サーバのハードウエア構成図である。
【発明を実施するための形態】
【００１０】
図１に、第１の実施の形態におけるシステムの概要を示す。例えばインターネットであるネットワーク１０には、無線又は有線によってユーザ端末９１乃至９３が接続される。ユーザ端末９１乃至９３は、運用サーバ５の処理によって提供されるサービスを利用するユーザの端末であり、スマートフォン又はパーソナルコンピュータ等である。
【００１１】
ロードバランス装置７は、ユーザ端末９１乃至９３からのアクセスを、運用サーバ５におけるＶＭ（Virtual Machine）１ｖ乃至３ｖに振り分けることで、ＶＭ１ｖ乃至３ｖの負荷を平準化する。ＶＭ１ｖ乃至３ｖは、ユーザ端末９１乃至９３からのアクセスに応じた処理を実行する。本実施の形態におけるＶＭはグループ化されており、同じグループに属する複数のＶＭは同じ役割を有する。例えば、或る検索サイト用の複数のＶＭは同じグループに属し、その検索サイトの負荷は、１台のロードバランス装置７によってその複数のＶＭに分散される。
【００１２】
監視サーバ１は、ＶＭ１ｖ乃至３ｖに設定すべき閾値をＶＭ１ｖ乃至３ｖに通知する。また、監視サーバ１は、負荷が閾値を超えたＶＭからアラームを受信した場合、クラウド管理サーバ３にスケールアウト要求を送信する。監視サーバ１からスケールアウト要求を受信した場合、クラウド管理サーバ３は、運用サーバ５にＶＭを追加配備する。
【００１３】
なお、図１においてユーザ端末の数及びＶＭの数は３であるが、数に限定は無い。また、監視サーバ１、クラウド管理サーバ３及びロードバランス装置７はＶＭであってもよい。
【００１４】
図２に、監視サーバ１の機能ブロック図を示す。監視サーバ１は、監視部１１と、閾値管理データ格納部１２と、ＶＭ管理データ格納部１３と、タスク管理データ格納部１４とを含む。
【００１５】
監視部１１は、閾値管理データ格納部１２に格納されているデータ、ＶＭ管理データ格納部１３に格納されているデータ及びタスク管理データ格納部１４に格納されているデータに基づき、ＶＭ１ｖ乃至３ｖに設定すべき閾値を管理する処理を実行する。
【００１６】
図３に、閾値管理データ格納部１２に格納されるデータの一例を示す。図３の例では、グループの識別情報と、そのグループに属するＶＭに設定される、監視レベル０の閾値（単位は回数毎秒）とが格納される。本実施の形態においては、監視レベル０以外の監視レベルの閾値は監視レベル０の閾値等を用いて算出される。これについては後で説明する。
【００１７】
図４に、ＶＭ管理データ格納部１３に格納されるデータの一例を示す。図４の例では、運用サーバ５において実行される各ＶＭについて、ＶＭが属するグループの識別情報と、ＶＭのＩＰアドレスとが格納される。本実施の形態においては、主に、グループに属するＶＭの台数を計数するために本データが使用される。
【００１８】
図５に、タスク管理データ格納部１４に格納されるデータの一例を示す。図５の例では、タスクの識別情報と、グループの識別情報と、タスクの進捗状況を示す情報とが格納される。本実施の形態におけるタスクとは、クラウド管理サーバ３が実行するスケールアウトである。タスクの進捗状況は、クラウド管理サーバ３からの完了通知によって確認される。
【００１９】
図６に、クラウド管理サーバ３の機能ブロック図を示す。クラウド管理サーバ３は、ＶＭ管理部３１と、ＶＭ管理データ格納部３２と、ＬＢ（Load Balancer）管理データ格納部３３とを含む。ＶＭ管理データ格納部３２に格納されるデータは、ＶＭ管理データ格納部１３に格納されるデータと同じである。
【００２０】
ＶＭ管理部３１は、ＶＭ管理データ格納部３２に格納されるデータ及びＬＢ管理データ格納部３３に格納されているデータに基づき、運用サーバ５において実行されているＶＭ１ｖ乃至３ｖを管理する処理を実行する。
【００２１】
図７に、ＬＢ管理データ格納部３３に格納されるデータの一例を示す。図７の例では、グループの識別情報と、グループに属するＶＭに処理を振り分けるロードバランス装置７の識別情報と、ロードバランス装置７の識別情報と、ロードバランス装置７のＩＰ（Internet Protocol）アドレスとが格納される。
【００２２】
図８に、運用サーバ５において実行されるＶＭ１ｖ乃至３ｖの機能ブロック図を示す。図８の例では、ＶＭは、処理部５１と、閾値テーブル格納部５２と、閾値格納部５３と、アクセスログ格納部５４とを含む。
【００２３】
処理部５１は、ユーザ端末９１乃至９３からのアクセスに応じた処理を実行する。また、処理部５１は、閾値テーブル格納部５２に格納されるデータ、閾値格納部５３に格納されるデータ及びアクセスログ格納部５４に格納されるデータに基づき、アクセス数が閾値を超えたことを検出する。なお、本実施の形態における「アクセス数」とは、単位時間あたりのアクセス数のことである。
【００２４】
図９に、閾値テーブル格納部５２に格納される閾値テーブルの一例を示す。図９の例では、監視レベルと、閾値とが格納される。監視レベル０の閾値は、監視サーバ１の閾値管理データ格納部１２に格納される閾値と同じである。
【００２５】
図１０に、閾値格納部５３に格納されるデータの一例を示す。図１０の例では、実際に設定されている閾値とその監視レベルとが格納される。
【００２６】
図１１に、アクセスログ格納部５４に格納されるアクセスログの一例を示す。図１１の例では、アクセスがあった時刻の情報と、アクセスに関するその他の情報とが格納される。但し、アクセスログは図１１のようなデータフォーマットには限られない。
【００２７】
次に、図１２乃至図１９を用いて、本実施の形態のシステムにおいて行われる処理について説明する。まず、図１２を用いて、初期状態において管理者が指定する閾値をＶＭに設定する処理について説明する。初期状態においては、各ＶＭの閾値テーブル格納部５２には閾値テーブルが格納されておらず、また、閾値格納部５３には閾値が格納されていないものとする。
【００２８】
監視サーバ１における監視部１１は、監視レベル０の閾値の入力を管理者から受け付ける（図１２：ステップＳ１）。ここでは、特定のグループについて閾値が入力されたものとし、監視部１１は、入力された閾値を特定のグループの識別情報に対応付けて閾値管理データ格納部１２に格納する。
【００２９】
監視部１１は、監視レベル０の閾値と特定のグループに属するＶＭの台数とに基づき、他の監視レベル（ここでは、監視レベル０以外の監視レベル）の閾値を算出する（ステップＳ３）。特定のグループに属するＶＭの台数は、ＶＭ管理データ格納部１３に格納されたデータにより特定される。監視レベル０以外の監視レベルの閾値は、監視レベル０の閾値＊（ＶＭの台数＋監視レベル）／ＶＭの台数によって算出される。
【００３０】
監視部１１は、各監視レベル（ここでは、監視レベル０及び監視レベル０以外の各監視レベル）の閾値を含むデータを、特定のグループに属する各ＶＭに送信する（ステップＳ７）。各ＶＭの宛先ＩＰアドレスは、ＶＭ管理データ格納部１３に格納されたデータによって特定される。
【００３１】
特定のグループに属する各ＶＭの処理部５１は、各監視レベルの閾値を含むデータを受信し、閾値テーブルを生成する（ステップＳ９）。そして、処理部５１は、生成した閾値テーブルを閾値テーブル格納部５２に格納する。
【００３２】
処理部５１は、閾値テーブル格納部５２から監視レベル０の閾値を読み出して閾値格納部５３に格納し、アクセス数が監視レベル０の閾値を超えないか監視する（ステップＳ１１）。本実施の形態においては、アクセスログ格納部５４に格納されたアクセスログを予め定められた時間間隔で解析することでアクセス数が算出される。
【００３３】
次に、図１３乃至図１９を用いて、運用中にシステムにおいて行われる処理について説明する。
【００３４】
まず、或るグループに属するＶＭ（ここでは、ＶＭ１ｖとする）は、監視を実行中である（図１３：ステップＳ１２）。
【００３５】
ＶＭ１ｖの処理部５１は、監視サーバ１から監視レベルの変更通知を受信したか判定する（ステップＳ１３）。監視レベルの変更通知を受信した場合（ステップＳ１３：Ｙｅｓルート）、処理部５１は、変更後の監視レベルの閾値を変更通知から読み出す。そして、処理部５１は、閾値格納部５３に格納されている閾値を、変更後の監視レベルの閾値に変更し（ステップＳ１５）、ステップＳ１２の処理に戻る。
【００３６】
一方、監視レベルの変更通知を受信していない場合（ステップＳ１３：Ｎｏルート）、処理部５１は、ＶＭ１ｖに対するアクセスの数が閾値格納部５３に格納されている閾値を超えたか判定する（ステップＳ１７）。
【００３７】
ＶＭ１ｖに対するアクセスの数が閾値格納部５３に格納されている閾値を超えていない場合（ステップＳ１７：Ｎｏルート）、ステップＳ１２の処理に戻る。一方、ＶＭ１ｖに対するアクセスの数が閾値格納部５３に格納されている閾値を超えた場合（ステップＳ１７：Ｙｅｓルート）、処理部５１は、閾値テーブルから、アクセス数以上の閾値のうち最小の閾値に対応する監視レベルを特定する（ステップＳ１９）。
【００３８】
処理部５１は、ステップＳ１９において特定した監視レベル及びその監視レベルの閾値を含むアラームを監視サーバ１に送信する（ステップＳ２１）。そして処理を終了する。なお、アラームは閾値を含まなくてもよい。
【００３９】
アラームの送信先である監視サーバ１の処理については、図１４を用いて説明する。
【００４０】
まず、監視サーバ１の監視部１１は、ＶＭ１ｖからアラームを受信する（図１４：ステップＳ３１）。
【００４１】
監視部１１は、アラームの送信元のＶＭが属するグループを、ＶＭ管理データ格納部１３から特定する（ステップＳ３３）。アラームには送信元のＶＭのＩＰアドレスが含まれるので、ＩＰアドレスをキーにしてＶＭ管理データ格納部１３からグループを特定することができる。
【００４２】
監視部１１は、受信したアラームに含まれる監視レベル及び閾値を含む変更通知を、特定したグループに属する各ＶＭに送信する（ステップＳ３５）。グループに属するＶＭは、ＶＭ管理データ格納部１３に格納されたデータによって特定される。変更通知を受信したＶＭが実行する処理については、図１３を用いて説明したとおりである。
【００４３】
監視部１１は、特定したグループに属するＶＭを追加配備することを要求するスケールアウト要求を、クラウド管理サーバ３に送信する（ステップＳ３７）。スケールアウト要求は、特定したグループの識別情報と、追加配備するＶＭの台数（本実施の形態においては、変更後の監視レベルと変更前の監視レベルとの差によって算出される）とを含む。また、監視部１１は、新規のタスクの識別情報に対応付けて、タスクの進捗状況を示す情報「ｐｒｏｃｅｅｄｉｎｇ」をタスク管理データ格納部１４に格納する。スケールアウト要求を受信したクラウド管理サーバ３の処理については、後で説明する。
【００４４】
監視部１１は、クラウド管理サーバ３から、スケールアウトが完了したことを示す完了通知を受信したか否かによって、スケールアウトが完了したか否かを判定する（ステップＳ３９）。
【００４５】
スケールアウトが完了していない場合（ステップＳ３９：Ｎｏルート）、ステップＳ３９の処理に戻る。一方、スケールアウトが完了した場合（ステップＳ３９：Ｙｅｓルート）、監視部１１は、完了通知に含まれる、追加配備されたＶＭの識別情報と、ＩＰアドレスと、グループの識別情報とを、ＶＭ管理データ格納部１３に格納する。そして、監視部１１は、ステップＳ３３において特定したグループの監視レベル０の閾値と、そのグループにおけるスケールアウト後のＶＭの台数とに基づき、監視レベル０以外の監視レベルの閾値を算出する（ステップＳ４３）。ステップＳ４３においては、ステップＳ３で説明した計算方法によって監視レベル０以外の監視レベルの閾値が算出される。そして、監視部１１は、タスク管理データ格納部１４に格納されている、タスクの進捗状況を示す情報を「ｐｒｏｃｅｅｄｉｎｇ」から「ｄｏｎｅ」に変更する。
【００４６】
監視部１１は、各監視レベルの閾値を含むデータを、ステップＳ３３において特定したグループに属する各ＶＭ（追加配備されたＶＭを含む）に送信する（ステップＳ４５）。そして処理は終了する。
【００４７】
ここで、図１５を用いて、ステップＳ３７において送信されたスケールアウト要求を受信したクラウド管理サーバ３が実行する処理について説明する。
【００４８】
まず、クラウド管理サーバ３におけるＶＭ管理部３１は、スケールアウト要求を監視サーバ１から受信する（図１５：ステップＳ５１）。
【００４９】
ＶＭ管理部３１は、スケールアウト要求に含まれる情報に基づき、ステップＳ３３において特定したグループのＶＭを指定された台数だけ運用サーバ５に追加配備するための処理を実行する（ステップＳ５３）。ステップＳ５３においては、運用サーバ５において新たにＶＭを起動する処理、及び、追加配備されたＶＭに対しても処理を振り分けることをロードバランス装置７（ロードバランス装置７はＬＢ管理データ格納部３３に格納されたデータによって特定される）に要求する処理が実行される。追加配備されたＶＭの閾値は、監視レベル０の閾値に設定され、追加配備されたＶＭは運用を開始する。
【００５０】
ＶＭ管理部３１は、スケールアウトが完了すると、スケールアウトが完了したことを示し且つグループの識別情報を含む完了通知を監視サーバ１に送信する（ステップＳ５５）。そして処理は終了する。完了通知は、追加配備されたＶＭの識別情報と、ＶＭのＩＰアドレスと、ＶＭが属するグループの識別情報とを含む。
【００５１】
次に、図１６及び図１７を用いて、ステップＳ４５において送信されたデータを受信したＶＭ（ここでは、ＶＭ１ｖとする）が実行する処理について説明する。
【００５２】
まず、ＶＭ１ｖの処理部５１は、各監視レベルの閾値を含むデータを監視サーバ１から受信する（図１６：ステップＳ６１）。
【００５３】
処理部５１は、ステップＳ６１において受信したデータで、閾値テーブル格納部５２に格納されている閾値テーブルを更新する（ステップＳ６３）。処理部５１は、閾値テーブル格納部５２から監視レベル０の閾値を読み出して閾値格納部５３に格納する。そして処理は終了する。
【００５４】
例えば、更新前の閾値テーブルが図９に示したような状態であるとする。すると、更新後の閾値テーブルは、例えば図１７に示すようになる。図１７に示すように、監視レベル０の閾値は更新前と変わらないが、監視レベル０以外の監視レベルの閾値は、ＶＭの台数が増えたことによって更新前よりも小さくなっている。
【００５５】
次に、図１３乃至図１７を用いて説明した一連の処理について、図１８に示すフローチャートによって説明を追加する。ここでは、監視サーバ１、ＶＭ１ｖ及びＶＭ２ｖの動作を例にして説明を行う。
【００５６】
運用中において、ＶＭ１ｖの処理部５１はＶＭ１ｖのアクセスログ格納部５４に格納されたアクセスログを監視し（図１８：ステップＳ７１）、また、ＶＭ２ｖの処理部５１はＶＭ２ｖのアクセスログ格納部５４に格納されたアクセスログを監視する（ステップＳ７３）。上で述べたように、本実施の形態においては、アクセスログ格納部５４に格納されたアクセスログを予め定められた時間間隔で解析することで単位時間当たりのアクセス数が算出される。
【００５７】
ここで、ＶＭ１ｖの処理部５１は、アクセス数が監視レベル０の閾値を超えたことを検出する（ステップＳ７５）。
【００５８】
ＶＭ１ｖの処理部５１は、閾値テーブルから、アクセス数以上である閾値のうち最小の閾値に対応する監視レベル（以下、新規の監視レベルと呼ぶ）を特定し、新規の監視レベル及び新規の監視レベルの閾値を監視サーバ１に通知する（ステップＳ７７）。
【００５９】
監視サーバ１の監視部１１は、ＶＭ１ｖから新規の監視レベル及び新規の監視レベルの閾値を受信する（ステップＳ７９）。
【００６０】
監視部１１は、ＶＭ１ｖと同じグループに属する各ＶＭに新規の監視レベル及び新規の監視レベルの閾値を含む変更通知を送信する（ステップＳ８１）。
【００６１】
これに応じ、ＶＭ１ｖの処理部５１は変更通知を受信し、閾値格納部５３に格納されている閾値を変更通知に含まれる新規の閾値で更新する（ステップＳ８３）。また、ＶＭ２ｖの処理部５１は変更通知を受信し、閾値格納部５３に格納されている閾値を変更通知に含まれる新規の閾値で更新する（ステップＳ８５）。
【００６２】
一方、監視サーバ１の監視部１１は、スケールアウト要求をクラウド管理サーバ３に送信し（ステップＳ８７）、スケールアウトが完了するまで待機する（ステップＳ８９）。
【００６３】
監視部１１は、スケールアウト後のＶＭ台数に基づいて算出された、各監視レベルの閾値を含むデータを、スケールアウトの完了後にＶＭ１ｖ及びＶＭ２ｖに送信する（ステップＳ９１）。
【００６４】
これに応じ、ＶＭ１ｖの処理部５１は各監視レベルの閾値を含むデータを受信し、受信したデータによって閾値テーブルを更新する（ステップＳ９３）。また、ＶＭ２ｖの処理部５１は各監視レベルの閾値を含むデータを受信し、受信したデータによって閾値テーブルを更新する（ステップＳ９５）。
【００６５】
図１９を用いて、閾値及びアクセス数の変化について説明する。まず、或るグループに属するＶＭが２台である状態において、各ＶＭの監視レベル０の閾値が１０に設定されているとする。そして、アクセス数が増加して１ＶＭ当たりのアクセス数が１８（すなわち、１グループ当たりのアクセス数が３６）に達すると、アラームが監視サーバ１に通知される。
【００６６】
すると、監視サーバ１の処理によって各ＶＭの閾値は２０に変更される。この状態においてはアラームは発生しない。また、監視サーバ１及びクラウド管理サーバ３の処理によって、２台のＶＭが追加配備される。破線のＶＭは、配備中のＶＭであることを表す。
【００６７】
そして、２台のＶＭの追加配備が完了すると、１グループ当たりのアクセス数は変わらないが、１ＶＭ当たりのアクセス数は９になる。従って、閾値を１０に戻したとしてもアラームは発生しない。
【００６８】
以上のように、監視レベル０の閾値を超えるアクセス回数になった場合に、グループ内の全ＶＭの閾値をアラームを発生させない閾値に変更するため、アクセスログの解析を行う時間間隔を短くしたとしてもアラームの大量発生によってシステム内のネットワークに負荷をかけることがない。また、アラームが大量に発生することが無いため、監視サーバ１の負荷が増大することがない。さらに、ＶＭを追加配備した後は閾値を監視レベル０の閾値に戻すため、さらにアクセス数が増大したことを検知できずにＶＭの処理性能が劣化してしまうことを防げる。
【００６９】
また、本実施の形態のように、アクセスログの監視をＶＭ自身が行うようにすれば、アクセスログを他の装置（例えば監視サーバ１）に送信しなくてもよいため、アクセスログの取得及び解析を行う時間間隔を短くしたとしてもネットワークへの負荷が増大することがない。
【００７０】
また、監視サーバ１において生成した各監視レベルの閾値を各ＶＭに配布するため、各ＶＭに対して監視ツールを導入したりその設定を行わなくてもよい。
【００７１】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した監視サーバ１、クラウド管理サーバ３及びＶＭ１ｖ乃至３ｖの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７２】
また、上で説明したデータ構造は一例であって、上記のようなデータ構造でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７３】
また、監視サーバ１から各ＶＭにＶＭ台数の情報を通知することで、閾値テーブルを生成するための閾値を各ＶＭにおいて算出してもよい。
【００７４】
また、監視サーバ１及びクラウド管理サーバ３を複数設け、複数のサーバによって処理を分担してもよい。
【００７５】
なお、上で述べた監視サーバ１、クラウド管理サーバ３及びロードバランス装置７は、コンピュータ装置であって、図２０に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７６】
また、上で述べた運用サーバ５は、コンピュータ装置であって、図２１に示すように、ＣＰＵ５０１と、メモリ５０２と、ＨＤＤ５０３とがバス５０４によって接続されている。その他のハードウエアがバス５０４に接続されていてもよい。ＶＭ１ｖ乃至３ｖを実現するためのデータ及びプログラムはＨＤＤ５０３に格納されており、メモリ５０２にロードされてＣＰＵ５０１によって上記プログラムが実行されることによってＶＭ１ｖ乃至３ｖが実現される。
【００７７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７８】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）負荷分散の対象である複数の仮想マシンを実行する第１の情報処理装置と、（Ｂ）第１の情報処理装置に接続された第２の情報処理装置とを有する。そして、複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンは、（ａ１）第１の仮想マシンに対するアクセスの数が第１の閾値を超えた場合、第１の仮想マシンに対するアクセスの数より大きい第２の閾値を、第２の情報処理装置に送信し、複数の仮想マシンの各々は、（ａ２）第２の情報処理装置から第２の閾値を受信した場合、アクセスの数の閾値を第１の閾値から第２の閾値に変更し、（ａ３）アクセスの数の閾値を第２の閾値に変更した後、第１の閾値を含む閾値データを第２の情報処理装置から受信した場合、アクセスの数の閾値を第１の閾値に戻し、第２の情報処理装置は、（ｂ１）第１の仮想マシンから受信した第２の閾値を、複数の仮想マシンの各々に送信し、（ｂ２）第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、（ｂ３）第１の情報処理装置において実行される仮想マシンの台数が第２の台数に増やされた場合、第１の閾値を含む閾値データを、複数の仮想マシンの各々に送信する。
【００７９】
このようにすれば、例えばアクセス数が増加してから仮想マシンを増設するまでの間に、第１の閾値を超えたことを示すアラームが第２の情報処理装置に対して大量に通知されることがなくなり、また、大量のアラームを第２の情報処理装置が処理する必要が無くなる。すなわち、アクセスログの解析を行う時間間隔を短くした場合に問題が生じることを抑制することができるようになる。さらに、仮想マシンの台数の増加後に閾値は第１の閾値に戻されるので、処理性能の劣化を抑制できるようになる。
【００８０】
また、第２の情報処理装置は、（ｂ４）第１の閾値の監視レベル以外の各監視レベルについて、当該監視レベルと第２の台数との和を第１の閾値に乗じた値を、第２の台数で除することによって閾値を算出する処理をさらに実行してもよい。そして、閾値データは、第１の閾値と、第１の閾値の監視レベル以外の各監視レベルの閾値とを含んでもよい。このようにすれば、仮想マシンの台数の増加後にも適切な閾値を設定できるようになる。
【００８１】
また、第２の情報処理装置は、（ｂ５）第１の閾値の監視レベルと第２の閾値の監視レベルとの差に第１の台数を加えることで第２の台数を算出する処理をさらに実行してもよい。このようにすれば、仮想マシンの台数を増やせばアクセスの数が第１の閾値を超えないようになる。
【００８２】
また、第２の閾値は、第１の閾値より大きい閾値のうち最小の閾値であってもよい。これにより、必要最小限の仮想マシンを増やすことになるので、第２の情報処理装置の資源を無駄に消費することが無くなる。
【００８３】
また、本情報処理システムは、（Ｃ）第１の情報処理装置において実行される仮想マシンの台数を管理し、且つ、第１の情報処理装置及び第２の情報処理装置に接続された第３の情報処理装置をさらに有してもよい。そして、第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理は、（ｂ２１）第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすことを第３の情報処理装置に要求する処理を含んでもよい。このように、第３の情報処理装置を別に設けることで、第２の情報処理装置の負荷の状態に影響されることなく、仮想マシンの台数の制御を適切に行えるようになる。
【００８４】
本実施の形態の第２の態様に係るオートスケール方法は、（Ｄ）他のコンピュータにおいて実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、複数の仮想マシンの各々に送信し、（Ｅ）他のコンピュータにおいて実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、（Ｆ）他のコンピュータにおいて実行される仮想マシンの台数が第２の台数に増やされた場合、変更前の閾値であり且つ第１の閾値より小さい閾値である第２の閾値を含む閾値データを、複数の仮想マシンの各々に送信する処理を含む。
【００８５】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００８６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８７】
（付記１）
負荷分散の対象である複数の仮想マシンを実行する第１の情報処理装置と、
前記第１の情報処理装置に接続された第２の情報処理装置と、
を有し、
前記複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンは、
前記第１の仮想マシンに対するアクセスの数が第１の閾値を超えた場合、前記第１の仮想マシンに対するアクセスの数より大きい第２の閾値を、前記第２の情報処理装置に送信し、
前記複数の仮想マシンの各々は、
前記第２の情報処理装置から前記第２の閾値を受信した場合、アクセスの数の閾値を前記第１の閾値から前記第２の閾値に変更し、
アクセスの数の閾値を前記第２の閾値に変更した後、前記第１の閾値を含む閾値データを前記第２の情報処理装置から受信した場合、アクセスの数の閾値を前記第１の閾値に戻し、
前記第２の情報処理装置は、
前記第１の仮想マシンから受信した前記第２の閾値を、前記複数の仮想マシンの各々に送信し、
前記第１の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記第１の情報処理装置において実行される仮想マシンの台数が前記第２の台数に増やされた場合、前記第１の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
情報処理システム。
【００８８】
（付記２）
前記第２の情報処理装置は、
前記第１の閾値の監視レベル以外の各監視レベルについて、当該監視レベルと前記第２の台数との和を前記第１の閾値に乗じた値を、前記第２の台数で除することによって閾値を算出する、
処理をさらに実行し、
前記閾値データは、
前記第１の閾値と、前記第１の閾値の監視レベル以外の各監視レベルの閾値とを含む、
付記１記載の情報処理システム。
【００８９】
（付記３）
前記第２の情報処理装置は、
前記第１の閾値の監視レベルと前記第２の閾値の監視レベルとの差に前記第１の台数を加えることで前記第２の台数を算出する、
処理をさらに実行する付記１又は２記載の情報処理システム。
【００９０】
（付記４）
前記第２の閾値は、
前記閾値データに含まれる、前記第１の閾値より大きい閾値のうち最小の閾値である、
付記２又は３記載の情報処理システム。
【００９１】
（付記５）
前記第１の情報処理装置において実行される仮想マシンの台数を管理し、且つ、前記第１の情報処理装置及び前記第２の情報処理装置に接続された第３の情報処理装置
をさらに有し、
前記第１の情報処理装置において実行される仮想マシンの台数を、前記第１の台数から前記第２の台数に増やすための処理は、
前記第１の情報処理装置において実行される仮想マシンの台数を、前記第１の台数から前記第２の台数に増やすことを前記第３の情報処理装置に要求する処理を含む、
付記１乃至４のいずれか１つ記載の情報処理システム。
【００９２】
（付記６）
情報処理装置であって、
他の情報処理装置において実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他の情報処理装置において実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他の情報処理装置において実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
情報処理装置。
【００９３】
（付記７）
コンピュータが、
他のコンピュータにおいて実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他のコンピュータにおいて実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他のコンピュータにおいて実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
処理を実行するオートスケール方法。
【００９４】
（付記８）
コンピュータに、
他のコンピュータにおいて実行されている複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンから受信した第１の閾値を、前記複数の仮想マシンの各々に送信し、
前記他のコンピュータにおいて実行される仮想マシンの台数を、第１の台数から第２の台数に増やすための処理を実行し、
前記他のコンピュータにおいて実行される仮想マシンの台数が前記第２の台数に増やされた場合、変更前の閾値であり且つ前記第１の閾値より小さい閾値である第２の閾値を含む閾値データを、前記複数の仮想マシンの各々に送信する、
処理を実行させるオートスケールプログラム。
【００９５】
（付記９）
プロセッサとメモリとを含むハードウエアを有し且つ当該ハードウエア上において負荷分散の対象である複数の仮想マシンを実行する情報処理装置であって、
前記複数の仮想マシンのうちいずれかの仮想マシンである第１の仮想マシンは、
前記第１の仮想マシンに対するアクセスの数が第１の閾値を超えた場合、前記第１の仮想マシンに対するアクセスの数より大きい第２の閾値を、前記情報処理装置に接続された他の情報処理装置に送信し、
前記複数の仮想マシンの各々は、
前記他の情報処理装置から前記第２の閾値を受信した場合、アクセスの数の閾値を前記第１の閾値から前記第２の閾値に変更し、
アクセスの数の閾値を前記第２の閾値に変更した後、前記第１の閾値を含む閾値データを前記他の情報処理装置から受信した場合、アクセスの数の閾値を前記第１の閾値に戻す、
ことを特徴とする情報処理装置。
【符号の説明】
【００９６】
１  監視サーバ    ３  クラウド管理サーバ
５  運用サーバ    ７  ロードバランス装置
９１，９２，９３  ユーザ端末    １０  ネットワーク
１ｖ，２ｖ，３ｖ  ＶＭ    １１  監視部
１２  閾値管理データ格納部    １３  ＶＭ管理データ格納部
１４  タスク管理データ格納部    ３１  ＶＭ管理部
３２  ＶＭ管理データ格納部    ３３  ＬＢ管理データ格納部
５１  処理部    ５２  閾値テーブル格納部
５３  閾値格納部    ５４  アクセスログ格納部
【図１】
0006597324.tif 000002
【図２】
0006597324.tif 000003
【図３】
0006597324.tif 000004
【図４】
0006597324.tif 000005
【図５】
0006597324.tif 000006
【図６】
0006597324.tif 000007
【図７】
0006597324.tif 000008
【図８】
0006597324.tif 000009
【図９】
0006597324.tif 000010
【図１０】
0006597324.tif 000011
【図１１】
0006597324.tif 000012
【図１２】
0006597324.tif 000013
【図１３】
0006597324.tif 000014
【図１４】
0006597324.tif 000015
【図１５】
0006597324.tif 000016
【図１６】
0006597324.tif 000017
【図１７】
0006597324.tif 000018
【図１８】
0006597324.tif 000019
【図１９】
0006597324.tif 000020
【図２０】
0006597324.tif 000021
【図２１】
0006597324.tif 000022