(57)【要約】【課題】複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理の実行を可能とする。【解決手段】バックアップサーバ１６は、  受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ複数の仮想マシンのうちの他の仮想マシンより、他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部５０と、受け付けた仮想マシン識別情報により識別される仮想マシンに、受け付けたセッションの識別情報により識別されるセッションの取得要求を通知する通知部５２と、セッションの識別情報により識別されるセッションを取得すると、取得したセッションを他の仮想マシンに送信する送信部５４と、を含む。【選択図】図６
2018109867.tif 000002
【特許請求の範囲】
【請求項１】
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータに実行させることを特徴とするセッション管理プログラム。
【請求項２】
前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする請求項１に記載のセッション管理プログラム。
【請求項３】
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータが実行することを特徴とするセッション管理方法。
【請求項４】
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、
受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、
を含むことを特徴とする情報処理装置。
【請求項５】
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、を含む情報処理装置、及び
前記仮想マシン識別情報を、リクエストを前記複数の仮想マシンの何れかに振り分ける負荷分散装置及び前記情報処理装置に送信する送信部を含む監視装置、
を備えたことを特徴とする情報処理システム。
【請求項６】
前記仮想マシン識別情報を受け付けた場合に、前記仮想マシン識別情報により識別される仮想マシンに対するリクエストの振り分けを停止する振分部を含む前記負荷分散装置を更に備えた、
ことを特徴とする請求項５に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システムに関する。
【背景技術】
【０００２】
従来、複数のサーバ装置を備えるシステムにおけるセッション管理方法が提案されている。例えば、第１のサーバ装置がリクエストを受信した受信時刻及びクライアントにレスポンスを返信した返信時刻よりも、第１のサーバ装置から第２のサーバ装置へセッション情報を移動した移動時刻が遅い場合、以下の処理を行う技術が提案されている。この技術では、この場合、第１のサーバ装置が、セッション情報の移動先を示す移動先情報に基づいて、新たに受信したリクエストを第２のサーバ装置へ割り振る。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０３８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、Hypertext Transfer Protocol（ＨＴＴＰ）等のステートレスなプロトコルを使用する場合、異なるリクエスト間でセッション情報を引き継ぐことによってステートフルな処理が実現される。
【０００５】
また、複数の仮想マシンが稼動する情報処理システムによりＷｅｂサービス等のサービスを提供する場合、仮想マシンのリソース状況、及びリクエストの実行件数等に応じて、一部の仮想マシンを停止する場合がある。この場合、停止対象とする仮想マシンが保持する最新のセッション情報を他の仮想マシンが用いないと、停止対象とする仮想マシンで実行された処理を、他の仮想マシンで継続して実行することができない。
【０００６】
一つの側面では、本発明は、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理の実行を可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様として、受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付ける。また、前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける。また、受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知する。そして、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する。
【発明の効果】
【０００８】
一つの側面として、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を実行することができる、という効果を有する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る情報処理システムの概略構成を示すブロック図である。
【図２】実施形態に係るロードバランサの機能ブロック図である。
【図３】振分管理テーブルの一例を示す図である。
【図４】実施形態に係る仮想マシンの機能ブロック図である。
【図５】セッション管理テーブルの一例を示す図である。
【図６】実施形態に係るバックアップサーバの機能ブロック図である。
【図７】バックアップ管理テーブルの一例を示す図である。
【図８】実施形態に係る監視サーバの機能ブロック図である。
【図９】実施形態に係るロードバランサとして機能するコンピュータの概略構成を示すブロック図である。
【図１０】実施形態に係る仮想マシンとして機能するコンピュータの概略構成を示すブロック図である。
【図１１】実施形態に係るバックアップサーバとして機能するコンピュータの概略構成を示すブロック図である。
【図１２】実施形態に係る監視サーバとして機能するコンピュータの概略構成を示すブロック図である。
【図１３】実施形態に係るスケールイン処理の一例を示すフローチャートである。
【図１４】実施形態に係る振分制御処理の一例を示すフローチャートである。
【図１５】実施形態に係るリクエスト実行処理の一例を示すフローチャートである。
【図１６】実施形態に係る停止処理の一例を示すフローチャートである。
【図１７】実施形態に係るセッション管理処理の一例を示すフローチャートである。
【図１８】実施形態に係る仮想マシンを停止するまでの一連の処理の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、開示の技術の実施形態の一例を詳細に説明する。なお、以下の実施形態では、開示の技術を、ステートレスなプロトコルの一例としてのHypertext Transfer Protocol（ＨＴＴＰ）によりサービスを提供し、かつステートフルな処理が実現される情報処理システムに適用した形態例について説明する。
【００１１】
まず、図１を参照して、本実施形態に係る情報処理システム１０の構成を説明する。図１に示すように、情報処理システム１０は、ロードバランサ１２、複数（図１に示す例では３台）の仮想マシン１４Ａ〜１４Ｃ、情報処理装置の一例としてのバックアップサーバ１６、及び監視サーバ１８を含む。なお、以下では、仮想マシン１４Ａ〜１４Ｃを区別せずに総称する場合は、符号の末尾のアルファベットを省略する。また、仮想マシン１４の台数は３台に限定されず、２台でもよいし、４台以上でもよい。
【００１２】
ロードバランサ１２は、Local Area Network（ＬＡＮ）等のネットワーク２０、及びWide Area Network（ＷＡＮ）等のネットワーク２２に接続される。また、仮想マシン１４、バックアップサーバ１６、及び監視サーバ１８は、ネットワーク２０に接続される。
【００１３】
ロードバランサ１２は、ネットワーク２２に接続された複数のクライアント端末２４の各々から送信されたＨＴＴＰリクエスト（以下、「リクエスト」という）を受け付け、受け付けたリクエストを仮想マシン１４の何れかに負荷分散して振り分ける。
【００１４】
仮想マシン１４は、例えばＷｅｂアプリケーションサーバを稼動させ、ロードバランサ１２により振り分けられたリクエストに応じた処理を実行する。そして、仮想マシン１４は、リクエストに応じた処理の実行結果を、ＨＴＴＰレスポンス（以下、「レスポンス」という）として、ロードバランサ１２を介して、リクエストの送信元のクライアント端末２４に返信する。
【００１５】
バックアップサーバ１６は、仮想マシン１４の所定の記憶領域に記憶されたセッション情報のバックアップ及びリカバリに関する処理を実行する。監視サーバ１８は、仮想マシン１４のリソース状況を監視する。
【００１６】
次に、図２を参照して、本実施形態に係るロードバランサ１２の機能的な構成を説明する。図２に示すように、ロードバランサ１２は、受付部３０、振分部３２、及び変更部３４を含む。また、ロードバランサ１２の所定の記憶領域には、振分管理テーブル３６が記憶される。
【００１７】
振分管理テーブル３６には、リクエストの振分け先の仮想マシン１４に関する情報が記憶される。図３に、振分管理テーブル３６の一例を示す。図３に示すように、振分管理テーブル３６には、リクエストのＨＴＴＰセッション（以下、「セッション」という）を識別するセッションIdentification（ＩＤ）と、リクエストの振り分け先の仮想マシン１４を示す振分先仮想マシンとが対応付けて記憶される。なお、「振分先仮想マシン」の例としては、Internet Protocol（ＩＰ）アドレス、及びホスト名等の仮想マシン１４を識別する情報が挙げられる。
【００１８】
受付部３０は、クライアント端末２４から送信されたリクエストを受け付ける。また、受付部３０は、監視サーバ１８から送信された停止対象とする仮想マシン１４（以下、「停止対象仮想マシン１４」という）を識別する仮想マシン識別情報を受け付ける。
【００１９】
振分部３２は、受付部３０によりリクエストが受け付けられると、例えば、リクエストのＨＴＴＰヘッダのＣｏｏｋｉｅ情報として設定されたセッションＩＤを取得する。そして、振分部３２は、振分管理テーブル３６を参照し、取得したセッションＩＤに対応する仮想マシン１４に、受付部３０により受け付けられたリクエストを振り分ける。すなわち、本実施形態に係るロードバランサ１２は、各仮想マシン１４が正常に稼動している場合は、同一のセッションＩＤを有する一連の処理に関するリクエストを、同一の仮想マシン１４に振り分ける。
【００２０】
また、振分部３２は、受付部３０により受け付けられたリクエストにセッションＩＤが含まれていない場合、何れかの仮想マシン１４にリクエストを振り分ける。仮想マシン１４は振り分けられたリクエストに応じた処理を実行し、実行結果をクライアント端末２４に返信する際にレスポンスのＨＴＴＰヘッダにセッションＩＤを挿入する。ロードバランサ１２は、仮想マシン１４から送信されたレスポンスのＨＴＴＰヘッダを参照し、セッションＩＤ及び振分け先の仮想マシン１４を識別する情報を振分管理テーブル３６に追加する。
【００２１】
また、振分部３２は、受付部３０により仮想マシン識別情報が受け付けられると、停止対象仮想マシン１４へのリクエストの振り分けを停止する。例えば、振分部３２は、停止対象仮想マシン１４へのヘルスチェックを停止することによって、停止対象仮想マシン１４へのリクエストの振り分けを停止する。この場合、振分部３２は、取得したセッションＩＤに対応する振分管理テーブル３６の振分先仮想マシンが停止対象仮想マシン１４の場合でも、リクエストを停止対象仮想マシン１４以外の仮想マシン１４に振り分ける。
【００２２】
また、変更部３４は、受付部３０により仮想マシン識別情報が受け付けられると、リクエストの振り分け先を、仮想マシン識別情報により識別される停止対象仮想マシン１４以外の仮想マシン１４に変更する。本実施形態では、変更部３４は、振分管理テーブル３６の振分先仮想マシン列に停止対象仮想マシン１４を示す情報が記憶されているレコードの振分先仮想マシン列を、停止対象仮想マシン１４以外の仮想マシン１４に変更する。
【００２３】
なお、変更部３４が、振分管理テーブル３６の振分先仮想マシン列を何れの仮想マシン１４に変更するかは特に限定されない。例えば、変更部３４は、停止対象仮想マシン１４以外の仮想マシン１４の何れかをランダムに選択し、振分先仮想マシン列を選択した仮想マシン１４に変更してもよい。また、例えば、変更部３４は、振分先仮想マシン列の停止対象仮想マシン１４以外の各仮想マシン１４の個数が均等になるように、振分先仮想マシン列を停止対象仮想マシン１４以外の仮想マシン１４に変更してもよい。
【００２４】
次に、図４を参照して、本実施形態に係る仮想マシン１４の機能的な構成を説明する。図４に示すように、仮想マシン１４は、受付部４０、実行部４２、送信部４４、及び停止部４６を含む。また、仮想マシン１４の所定の記憶領域には、セッション管理テーブル４８が記憶される。
【００２５】
セッション管理テーブル４８には、セッション毎にセッション情報が記憶される。図５に、セッション管理テーブル４８の一例を示す。図５に示すように、セッション管理テーブル４８には、セッションＩＤと、セッション情報とが対応付けて記憶される。なお、ここでいうセッション情報とは、一連の処理を実行するために異なるリクエスト間で引き継がれる情報を意味する。例えば、ショッピングサイトでは、カートに入れられた商品を示す情報、及び商品の個数等が、セッション情報に該当する。
【００２６】
受付部４０は、ロードバランサ１２により振り分けられたリクエストを受け付ける。また、受付部４０は、監視サーバ１８から送信された停止対象仮想マシン１４を識別する仮想マシン識別情報を受け付ける。また、受付部４０は、バックアップサーバ１６から送信された、セッションＩＤにより識別されるセッション情報の取得要求（以下、「セッション取得要求」という）を受け付ける。また、受付部４０は、バックアップサーバ１６から送信されたセッション情報を受け付ける。
【００２７】
実行部４２は、受付部４０により受け付けられたリクエストに応じた処理を実行する。実行部４２は、リクエストにセッションＩＤが含まれる場合、セッション管理テーブル４８を参照し、リクエストに含まれるセッションＩＤに対応するセッション情報を用いて、リクエストに応じた処理を実行する。また、実行部４２は、リクエストに応じた処理の実行に伴い、セッション情報が更新された場合、セッション管理テーブル４８のリクエストに含まれるセッションＩＤに対応するセッション情報を更新する。そして、実行部４２は、リクエストに応じた処理の実行結果を、ロードバランサ１２を介して、リクエストの送信元のクライアント端末２４に返信する。
【００２８】
なお、本実施形態に係る実行部４２は、セッション管理テーブル４８にリクエストに含まれるセッションＩＤに対応するレコードが記憶されていない場合、送信部４４に対し、セッション情報のリカバリ要求の送信を指示する。そして、この場合、実行部４２は、リカバリ要求に応じてバックアップサーバ１６から送信され、受付部４０により受け付けられたセッション情報を用いてリクエストに応じた処理を実行し、セッション管理テーブル４８を更新する。
【００２９】
送信部４４は、受付部４０により停止対象仮想マシン１４を識別する仮想マシン識別情報が受け付けられた場合、セッション管理テーブル４８の全レコードをバックアップサーバ１６に送信する。また、送信部４４は、例えば、１０分に１回等の定期的なタイミングで、セッション管理テーブル４８の全レコードをバックアップサーバ１６に送信する。また、送信部４４は、受付部４０によりセッション取得要求が受け付けられた場合、セッション管理テーブル４８を参照し、セッション取得要求に含まれるセッションＩＤに対応するセッション情報をバックアップサーバ１６に送信する。
【００３０】
また、送信部４４は、実行部４２がリクエストに応じた処理を実行する際に、セッション管理テーブル４８に、リクエストに含まれるセッションＩＤに対応するレコードが記憶されていない場合、セッション情報のリカバリ要求をバックアップサーバ１６に送信する。この場合、送信部４４は、リカバリ要求に、リクエストに含まれるセッションＩＤを含めて、バックアップサーバ１６に送信する。
【００３１】
停止部４６は、受付部４０により停止対象仮想マシン１４を識別する仮想マシン識別情報が受け付けられた場合、送信部４４によるセッション管理テーブル４８の全レコードの送信処理が完了した後、自装置を停止する。
【００３２】
次に、図６を参照して、本実施形態に係るバックアップサーバ１６の機能的な構成を説明する。図６に示すように、バックアップサーバ１６は、受付部５０、通知部５２、及び送信部５４を含む。また、バックアップサーバ１６の所定の記憶領域には、バックアップ管理テーブル５６が記憶される。
【００３３】
バックアップ管理テーブル５６は、セッション情報のバックアップ及びリカバリに用いられるテーブルである。図７に、バックアップ管理テーブル５６の一例を示す。図７に示すように、バックアップ管理テーブル５６には、セッションＩＤと、セッション情報と、セッション情報を保持する仮想マシン１４を識別する情報と、バックアップ状況とが対応付けて記憶される。
【００３４】
受付部５０は、監視サーバ１８から送信された停止対象仮想マシン１４を識別する仮想マシン識別情報を受け付ける。また、受付部５０は、仮想マシン１４から送信されたセッション情報のリカバリ要求を受け付ける。また、受付部５０は、仮想マシン１４から送信されたセッション管理テーブル４８のレコード（すなわち、セッションＩＤ及びセッション情報）を受け付ける。また、受付部５０は、受け付けたセッションＩＤ、セッション情報、及びセッション情報の送信元の仮想マシン１４を識別する情報を、バックアップ管理テーブル５６に記憶する。また、この記憶に伴い、受付部５０は、バックアップ管理テーブル５６のバックアップ状況列を更新する。
【００３５】
通知部５２は、受付部５０により受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン１４に、受付部５０により受け付けられたリカバリ要求に含まれるセッションＩＤにより識別されるセッション情報の取得要求を通知する。本実施形態では、受付部５０によりリカバリ要求が受け付けられると、通知部５２は、バックアップ管理テーブル５６を参照し、リカバリ要求に含まれるセッションＩＤに対応する仮想マシン１４に対してセッション情報の取得要求を通知する。
【００３６】
また、通知部５２は、受付部５０が停止対象仮想マシン１４から送信されるセッション管理テーブル４８の全レコードの受信処理を開始した後、停止対象仮想マシン１４以外の仮想マシン１４から送信されたリカバリ要求を受け付けた場合、以下に示す処理を行う。この場合、通知部５２は、受付部５０がリカバリ要求に含まれるセッションＩＤに対応するセッション情報を未受信の場合、停止対象仮想マシン１４にセッション情報の取得要求を通知する。
【００３７】
送信部５４は、通知部５２による取得要求の通知に対する返信として、受付部５０がセッション情報を受け付けると、受け付けたセッション情報をリカバリ要求の送信元の仮想マシン１４に送信する。
【００３８】
次に、図８を参照して、本実施形態に係る監視サーバ１８の機能的な構成を説明する。図８に示すように、監視サーバ１８は、取得部６０及び送信部６２を含む。
【００３９】
取得部６０は、例えば１分に１回等の定期的なタイミングで、各仮想マシン１４から、各仮想マシン１４が処理を実行したリクエストの件数を取得し、単位時間当たりのリクエストの実行件数を算出する。送信部６２は、取得部６０により算出された実行件数が予め定められた閾値未満の仮想マシン１４を停止対象仮想マシン１４とする。そして、送信部６２は、停止対象仮想マシン１４を識別する仮想マシン識別情報をロードバランサ１２、停止対象仮想マシン１４、及びバックアップサーバ１６に送信する。なお、例えば、取得部６０により算出された実行件数が予め定められた閾値未満の仮想マシン１４が複数台存在する場合は、送信部６２は、実行件数が最も少ない仮想マシン１４を停止対象仮想マシン１４とする形態が例示される。
【００４０】
なお、例えば、取得部６０は、各仮想マシン１４の単位時間当たりのＣＰＵ使用率及びメモリ使用率を取得してもよい。そして、送信部６２は、取得部６０により取得されたＣＰＵ使用率及びメモリ使用率が予め定められた閾値未満の仮想マシン１４を停止対象仮想マシン１４としてもよい。また、この場合の閾値は、ＣＰＵ使用率及びメモリ使用率の双方で同じ値としてもよいし、異なる値としてもよい。
【００４１】
ロードバランサ１２は、例えば図９に示すコンピュータ８０で実現することができる。コンピュータ８０は、Central Processing Unit（ＣＰＵ）８１、一時記憶領域としてのメモリ８２、及び不揮発性の記憶部８３を備える。また、コンピュータ８０は、表示装置及び入力装置等の入出力装置８４を備える。また、コンピュータ８０は、記録媒体８８に対するデータの読み込みと書き込みとを制御するＲｅａｄ／Ｗｒｉｔｅ（Ｒ／Ｗ）部８５、及びネットワークに接続されるネットワークＩ／Ｆ８６を備える。ＣＰＵ８１、メモリ８２、記憶部８３、入出力装置８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続される。
【００４２】
記憶部８３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部８３には、コンピュータ８０をロードバランサ１２として機能させるための振分制御プログラム９０が記憶される。振分制御プログラム９０は、受付プロセス９１、振分プロセス９２、及び変更プロセス９３を有する。また、記憶部８３は、振分管理テーブル３６が記憶される情報記憶領域９４を有する。
【００４３】
ＣＰＵ８１は、振分制御プログラム９０を記憶部８３から読み出してメモリ８２に展開し、振分制御プログラム９０が有するプロセスを実行する。ＣＰＵ８１は、受付プロセス９１を実行することで、図２に示す受付部３０として動作する。ＣＰＵ８１は、振分プロセス９２を実行することで、図２に示す振分部３２として動作する。ＣＰＵ８１は、変更プロセス９３を実行することで、図２に示す変更部３４として動作する。これにより、振分制御プログラム９０を実行したコンピュータ８０が、ロードバランサ１２として機能することになる。なお、振分制御プログラム９０が有するプロセスを実行するＣＰＵ８１は、ハードウェアである。
【００４４】
また、振分制御プログラム９０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００４５】
仮想マシン１４は、例えば図１０に示すコンピュータ１００で実現することができる。コンピュータ１００は、ＣＰＵ１０１、一時記憶領域としてのメモリ１０２、及び不揮発性の記憶部１０３を備える。また、コンピュータ１００は、表示装置及び入力装置等の入出力装置１０４を備える。また、コンピュータ１００は、記録媒体１０８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部１０５、及びネットワークに接続されるネットワークＩ／Ｆ１０６を備える。ＣＰＵ１０１、メモリ１０２、記憶部１０３、入出力装置１０４、Ｒ／Ｗ部１０５、及びネットワークＩ／Ｆ１０６は、バス１０７を介して互いに接続される。なお、仮想マシン１４には、ＣＰＵ１０１、メモリ１０２、及び記憶部１０３等の各々の一部が、仮想的なハードウェアとして割り当てられる。
【００４６】
記憶部１０３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部１０３には、コンピュータ１００を仮想マシン１４として機能させるための仮想マシン制御プログラム１１０が記憶される。仮想マシン制御プログラム１１０は、受付プロセス１１１、実行プロセス１１２、送信プロセス１１３、及び停止プロセス１１４を有する。また、メモリ１０２は、セッション管理テーブル４８が記憶される情報記憶領域１１５を有する。
【００４７】
ＣＰＵ１０１は、仮想マシン制御プログラム１１０を記憶部１０３から読み出してメモリ１０２に展開し、仮想マシン制御プログラム１１０が有するプロセスを実行する。ＣＰＵ１０１は、受付プロセス１１１を実行することで、図４に示す受付部４０として動作する。ＣＰＵ１０１は、実行プロセス１１２を実行することで、図４に示す実行部４２として動作する。ＣＰＵ１０１は、送信プロセス１１３を実行することで、図４に示す送信部４４として動作する。ＣＰＵ１０１は、停止プロセス１１４を実行することで、図４に示す停止部４６として動作する。これにより、仮想マシン制御プログラム１１０を実行したコンピュータ１００が、仮想マシン１４として機能することになる。なお、仮想マシン制御プログラム１１０が有するプロセスを実行するＣＰＵ１０１は、ハードウェアである。
【００４８】
バックアップサーバ１６は、例えば図１１に示すコンピュータ１２０で実現することができる。コンピュータ１２０は、ＣＰＵ１２１、一時記憶領域としてのメモリ１２２、及び不揮発性の記憶部１２３を備える。また、コンピュータ１２０は、表示装置及び入力装置等の入出力装置１２４を備える。また、コンピュータ１２０は、記録媒体１２８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部１２５、及びネットワークに接続されるネットワークＩ／Ｆ１２６を備える。ＣＰＵ１２１、メモリ１２２、記憶部１２３、入出力装置１２４、Ｒ／Ｗ部１２５、及びネットワークＩ／Ｆ１２６は、バス１２７を介して互いに接続される。
【００４９】
記憶部１２３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部１２３には、コンピュータ１２０をバックアップサーバ１６として機能させるためのセッション管理プログラム１３０が記憶される。セッション管理プログラム１３０は、受付プロセス１３１、通知プロセス１３２、及び送信プロセス１３３を有する。また、記憶部１２３は、バックアップ管理テーブル５６が記憶される情報記憶領域１３４を有する。
【００５０】
ＣＰＵ１２１は、セッション管理プログラム１３０を記憶部１２３から読み出してメモリ１２２に展開し、セッション管理プログラム１３０が有するプロセスを実行する。ＣＰＵ１２１は、受付プロセス１３１を実行することで、図６に示す受付部５０として動作する。ＣＰＵ１２１は、通知プロセス１３２を実行することで、図６に示す通知部５２として動作する。ＣＰＵ１２１は、送信プロセス１３３を実行することで、図６に示す送信部５４として動作する。これにより、セッション管理プログラム１３０を実行したコンピュータ１２０が、バックアップサーバ１６として機能することになる。なお、セッション管理プログラム１３０が有するプロセスを実行するＣＰＵ１２１は、ハードウェアである。
【００５１】
また、セッション管理プログラム１３０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００５２】
監視サーバ１８は、例えば図１２に示すコンピュータ１４０で実現することができる。コンピュータ１４０は、ＣＰＵ１４１、一時記憶領域としてのメモリ１４２、及び不揮発性の記憶部１４３を備える。また、コンピュータ１４０は、表示装置及び入力装置等の入出力装置１４４を備える。また、コンピュータ１４０は、記録媒体１４８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部１４５、及びネットワークに接続されるネットワークＩ／Ｆ１４６を備える。ＣＰＵ１４１、メモリ１４２、記憶部１４３、入出力装置１４４、Ｒ／Ｗ部１４５、及びネットワークＩ／Ｆ１４６は、バス１４７を介して互いに接続される。
【００５３】
記憶部１４３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部１４３には、コンピュータ１４０を監視サーバ１８として機能させるためのスケールインプログラム１５０が記憶される。スケールインプログラム１５０は、取得プロセス１５１及び送信プロセス１５２を有する。
【００５４】
ＣＰＵ１４１は、スケールインプログラム１５０を記憶部１４３から読み出してメモリ１４２に展開し、スケールインプログラム１５０が有するプロセスを実行する。ＣＰＵ１４１は、取得プロセス１５１を実行することで、図８に示す取得部６０として動作する。ＣＰＵ１４１は、送信プロセス１５２を実行することで、図８に示す送信部６２として動作する。これにより、スケールインプログラム１５０を実行したコンピュータ１４０が、監視サーバ１８として機能することになる。なお、スケールインプログラム１５０が有するプロセスを実行するＣＰＵ１４１は、ハードウェアである。
【００５５】
また、スケールインプログラム１５０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００５６】
次に、本実施形態に係る情報処理システム１０の作用を説明する。監視サーバ１８がスケールインプログラム１５０を実行することで、図１３に示すスケールイン処理を実行する。図１３に示すスケールイン処理は、例えば監視サーバ１８の電源がオン状態とされた場合等にＣＰＵ１４１により実行される。
【００５７】
図１３に示すスケールイン処理のステップＳ１０で、取得部６０は、各仮想マシン１４から、各仮想マシン１４が処理を実行したリクエストの件数を取得する。ステップＳ１２で、取得部６０は、仮想マシン１４毎に、ステップＳ１０で取得されたリクエストの件数を、前回リクエストの件数を取得してから今回リクエストの件数を取得するまでの時間で除算することで、単位時間当たりのリクエストの実行件数を算出する。
【００５８】
次のステップＳ１４で、送信部６２は、ステップＳ１２で算出された単位時間当たりのリクエストの実行件数が閾値未満の仮想マシン１４が存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１８に移行し、肯定判定となった場合は、処理はステップＳ１６に移行する。
【００５９】
ステップＳ１６で、送信部６２は、単位時間当たりのリクエストの実行件数が閾値未満の仮想マシン１４を停止対象仮想マシン１４とする。そして、送信部６２は、停止対象仮想マシン１４を識別する仮想マシン識別情報をロードバランサ１２、停止対象仮想マシン１４、及びバックアップサーバ１６に送信する。ステップＳ１８で、取得部６０は、所定期間（例えば１分）の間、待機する。ステップＳ１８の処理が終了すると処理はステップＳ１０に戻る。
【００６０】
また、ロードバランサ１２が振分制御プログラム９０を実行することで、図１４に示す振分制御処理を実行する。図１４に示す振分制御処理は、例えば上記スケールイン処理のステップＳ１６で監視サーバ１８から送信された仮想マシン識別情報をロードバランサ１２が受信した場合にＣＰＵ８１により実行される。
【００６１】
図１４に示す振分制御処理のステップＳ３０で、受付部３０は、監視サーバ１８から送信された仮想マシン識別情報を受け付ける。次のステップＳ３２で、振分部３２は、ステップＳ３０で受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン１４へのリクエストの振り分けを停止する。
【００６２】
次のステップＳ３４で、変更部３４は、振分管理テーブル３６の振分先仮想マシン列に停止対象仮想マシン１４を示す情報が記憶されているレコードの振分先仮想マシン列を、停止対象仮想マシン１４以外の仮想マシン１４に変更する。ステップＳ３４の処理が終了すると、振分制御処理が終了する。
【００６３】
また、仮想マシン１４が仮想マシン制御プログラム１１０を実行することで、図１５に示すリクエスト実行処理、及び図１６に示す停止処理を実行する。図１５に示すリクエスト実行処理は、例えばロードバランサ１２により振り分けられたリクエストを仮想マシン１４が受信した場合にＣＰＵ１０１により実行される。また、図１６に示す停止処理は、例えば上記スケールイン処理のステップＳ１６で監視サーバ１８から送信された仮想マシン識別情報を仮想マシン１４が受信した場合にＣＰＵ１０１により実行される。
【００６４】
図１５に示すリクエスト実行処理のステップＳ５０で、受付部４０は、ロードバランサ１２により振り分けられたリクエストを受け付ける。次のステップＳ５２で、実行部４２は、ステップＳ５０で受け付けられたリクエストに含まれるセッションＩＤを取得する。次のステップＳ５４で、実行部４２は、セッション管理テーブル４８に、ステップＳ５２で取得されたセッションＩＤに対応するレコードが記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ６０に移行し、否定判定となった場合は、処理はステップＳ５６に移行する。
【００６５】
ステップＳ５６で、送信部４４は、ステップＳ５２で取得されたセッションＩＤに対応するセッション情報のリカバリ要求をバックアップサーバ１６に送信する。次のステップＳ５８で、受付部４０は、ステップＳ５６で送信されたリカバリ要求に対応するセッション情報を受信するまで待機する。受付部４０が、バックアップサーバ１６から送信されたセッション情報を受信すると、ステップＳ５８の判定が肯定判定となり、処理はステップＳ６２に移行する。
【００６６】
一方、ステップＳ６０で、実行部４２は、セッション管理テーブル４８を参照し、ステップＳ５２で取得されたセッションＩＤに対応するセッション情報を取得する。ステップＳ６２で、実行部４２は、セッション情報を用いて、リクエストに応じた処理を実行する。そして、実行部４２は、リクエストに応じた処理の実行結果を、ロードバランサ１２を介して、リクエストの送信元のクライアント端末２４に返信する。ステップＳ６２の処理が終了すると、リクエスト実行処理が終了する。
【００６７】
図１６に示す停止処理のステップＳ７０で、受付部４０は、監視サーバ１８から送信された停止対象仮想マシン１４を識別する仮想マシン識別情報を受け付ける。次のステップＳ７２で、送信部４４は、セッション管理テーブル４８の全レコードを１レコードずつ順次バックアップサーバ１６に送信する処理を開始する。
【００６８】
次のステップＳ７４で、受付部４０は、バックアップサーバ１６から送信されたセッション取得要求を受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ７８に移行し、肯定判定となった場合は、処理はステップＳ７６に移行する。ステップＳ７６で、送信部４４は、セッション管理テーブル４８を参照し、ステップＳ７４で受信されたセッション取得要求に含まれるセッションＩＤに対応するセッション情報を取得し、取得したセッション情報をバックアップサーバ１６に送信する。
【００６９】
ステップＳ７８で、送信部４４は、ステップＳ７２で開始されたセッション管理テーブル４８の全レコードを送信する処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ７４に戻り、肯定判定となった場合は、処理はステップＳ８０に移行する。ステップＳ８０で、停止部４６は、自装置を停止する。ステップＳ８０の処理が終了すると、停止処理が終了する。
【００７０】
また、バックアップサーバ１６がセッション管理プログラム１３０を実行することで、図１７に示すセッション管理処理を実行する。図１７に示すセッション管理処理は、例えばバックアップサーバ１６の電源がオン状態とされた場合等にＣＰＵ１２１により実行される。
【００７１】
図１７に示すセッション管理処理のステップＳ１００で、受付部５０は、仮想マシン１４から定期的に送信されるセッション管理テーブル４８の全レコードを受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１０４に移行し、肯定判定となった場合は、処理はステップＳ１０２に移行する。
【００７２】
ステップＳ１０２で、受付部５０は、ステップＳ１００で受信された全レコードの各々のセッションＩＤ及びセッション情報を、バックアップ管理テーブル５６に記憶する。また、受付部５０は、バックアップ管理テーブル５６に記憶した各レコードの仮想マシン列に、ステップＳ１００で受信された全レコードの送信元の仮想マシン１４を識別する情報を記憶する。
【００７３】
ステップＳ１０４で、受付部５０は、上記スケールイン処理のステップＳ１６で監視サーバ１８から送信された仮想マシン識別情報を受け付けたか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１００に戻り、肯定判定となった場合は、処理はステップＳ１０６に移行する。
【００７４】
ステップＳ１０６で、受付部５０は、上記停止処理のステップＳ７２でバックアップサーバ１６により送信が開始されるセッション管理テーブル４８の全レコードを受信する処理を開始する。受付部５０は、以降の処理と並列に、バックアップサーバ１６により１レコードずつ順次送信されたレコードを受信すると、１レコード受信する毎に、受信したレコードのセッションＩＤ及びセッション情報をバックアップ管理テーブル５６に記憶する。また、受付部５０は、受信したレコードのセッションＩＤ及びセッション情報のバックアップ管理テーブル５６への記憶が完了した場合、レコードのバックアップ状況列を「完了」に更新する。
【００７５】
なお、受付部５０は、後述するステップＳ１１６の処理により、バックアップ状況列が「完了」になっているレコードについては、受信したレコードのセッションＩＤ及びセッション情報をバックアップ管理テーブル５６に記憶しなくてもよい。
【００７６】
ステップＳ１０８で、受付部５０は、仮想マシン１４から送信されたセッション情報のリカバリ要求を受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１２２に移行し、肯定判定となった場合は、処理はステップＳ１１０に移行する。ステップＳ１１０で、送信部５４は、バックアップ管理テーブル５６を参照し、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応するバックアップ状況列が「完了」になっているか否かを判定する。すなわち、送信部５４は、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応するセッション情報を受信済みであるか否かを判定する。この判定が肯定判定となった場合は、処理はステップＳ１１８に移行し、否定判定となった場合は、処理はステップＳ１１２に移行する。
【００７７】
ステップＳ１１２で、通知部５２は、バックアップ管理テーブル５６を参照し、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応する仮想マシン列の仮想マシン１４にセッション情報の取得要求を送信する。すなわち、通知部５２は、停止対象仮想マシン１４にセッション情報の取得要求を送信する。ステップＳ１１４で、受付部５０は、セッション情報を受信するまで待機する。
【００７８】
上記ステップＳ１１２の処理により送信された取得要求を停止対象仮想マシン１４が受信すると、上記停止処理のステップＳ７４の判定が肯定判定となり、ステップＳ７６の処理によりセッション情報がバックアップサーバ１６に送信される。停止対象仮想マシン１４により送信されたセッション情報を受付部５０が受信すると、ステップＳ１１４の判定が肯定判定となり、処理はステップＳ１１６に移行する。
【００７９】
ステップＳ１１６で、受付部５０は、ステップＳ１１４で受信されたセッション情報を、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応付けてバックアップ管理テーブル５６に記憶する。また、受付部５０は、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応するバックアップ状況列を「完了」に更新する。
【００８０】
一方、ステップＳ１１８で、送信部５４は、バックアップ管理テーブル５６を参照し、ステップＳ１０８で受信されたリカバリ要求に含まれるセッションＩＤに対応するセッション情報を取得する。ステップＳ１２０で、送信部５４は、セッション情報を、ステップＳ１０８で受信されたリカバリ要求の送信元の仮想マシン１４に送信する。ステップＳ１２２で、受付部５０は、ステップＳ１０６で開始された全セッション情報の受信処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ１０８に戻り、肯定判定となった場合は、処理はステップＳ１２４に移行する。
【００８１】
ステップＳ１２４で、受付部５０は、バックアップ管理テーブル５６を更新する。具体的には、受付部５０は、バックアップ管理テーブル５６の全レコードのバックアップ状況列にＮＵＬＬ値を記憶することによって、バックアップ状況列を初期化する。また、受付部５０は、ステップＳ１０４で受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン１４を示す情報が仮想マシン列に記憶されているバックアップ管理テーブル５６のレコードについては以下に示す処理を行う。すなわち、受付部５０は、このレコードについては、ロードバランサ１２からセッションＩＤに対応する新たな振分け先の仮想マシン１４を識別する情報を取得し、仮想マシン列に取得した情報を記憶する。ステップＳ１２４の処理が終了すると、セッション管理処理が終了する。
【００８２】
次に、図１８を参照して、停止対象仮想マシン１４を停止するまでの一連の処理の流れの一例を説明する。なお、ここでは、停止対象仮想マシン１４以外の仮想マシン１４で、ロードバランサが新たなリクエストの振り分け先として選択した仮想マシン１４を他の仮想マシン１４という。また、セッションＩＤが「sessionA」のリクエストに応じた処理が既に停止対象仮想マシン１４で実行され、停止対象仮想マシン１４のセッション管理テーブル４８にセッションＩＤが「sessionA」のセッション情報が記憶されている場合について説明する。また、バックアップサーバ１６のバックアップ管理テーブル５６にもセッションＩＤが「sessionA」のセッション情報が記憶されている場合について説明する。
【００８３】
図１８に示すステップＳ２００で、監視サーバ１８は、上記スケールイン処理のステップＳ１６の処理により、停止対象仮想マシン１４を識別する仮想マシン識別情報をロードバランサ１２、停止対象仮想マシン１４、及びバックアップサーバ１６に送信する。ステップＳ２０２で、ロードバランサ１２は、仮想マシン識別情報を受信すると、上記振分制御処理により、リクエストの振り分け先を他の仮想マシン１４に変更する。
【００８４】
一方、ステップＳ２０４で、停止対象仮想マシン１４は、仮想マシン識別情報を受信すると、上記停止処理のステップＳ７２の処理により、セッション管理テーブル４８の全レコードを１レコードずつ順次バックアップサーバ１６に送信する処理を開始する。また、ステップＳ２０６で、バックアップサーバ１６は、仮想マシン識別情報を受信すると、上記セッション管理処理のステップＳ１０６の処理により、セッション管理テーブル４８の全レコードを受信する処理を開始する。
【００８５】
次に、ステップＳ２０８で、クライアント端末２４は、「sessionA」のセッションＩＤを含むリクエストをロードバランサ１２に送信する。ステップＳ２１０で、ロードバランサ１２は、クライアント端末２４から送信されたリクエストを他の仮想マシン１４に振り分ける。前述したように、「sessionA」のセッションＩＤを含むリクエストは、停止対象仮想マシン１４で実行されていたため、この時点で、セッションＩＤが「sessionA」のセッション情報は、他の仮想マシン１４のセッション管理テーブル４８には記憶されていない。
【００８６】
従って、ステップＳ２１２で、上記リクエスト実行処理のステップＳ５６の処理により、他の仮想マシン１４は、ロードバランサ１２により振り分けられた処理を実行する際に用いるセッション情報のリカバリ要求をバックアップサーバ１６に送信する。すなわち、ステップＳ２１２で、他の仮想マシン１４は、セッションＩＤが「sessionA」のセッション情報のリカバリ要求をバックアップサーバ１６に送信する。
【００８７】
なお、ここでは、ステップＳ２１２が実行される時点で、ステップＳ２０６で開始された受信処理において、セッションＩＤが「sessionA」のセッション情報の受信処理が未完了である場合について説明する。
【００８８】
ステップＳ２１４で、バックアップサーバ１６は、上記セッション管理処理のステップＳ１１２の処理により、ステップＳ２１２で送信されたリカバリ要求に含まれるセッションＩＤのセッション情報の取得要求を停止対象仮想マシン１４に送信する。ステップＳ２１６で、停止対象仮想マシン１４は、上記停止処理のステップＳ７６の処理により、ステップＳ２１４で送信された取得要求に含まれるセッションＩＤに対応するセッション情報をバックアップサーバ１６に送信する。
【００８９】
ステップＳ２１８で、バックアップサーバ１６は、上記セッション管理処理のステップＳ１２０の処理により、ステップＳ２１６で送信されたセッション情報を他の仮想マシン１４に送信する。他の仮想マシン１４は、上記リクエスト実行処理のステップＳ６２の処理により、ステップＳ２１８で送信されたセッション情報を用いて、リクエストに応じた処理を実行する。そして、ステップＳ２２０で、他の仮想マシン１４は、実行した処理の処理結果を、ロードバランサ１２を介して、クライアント端末２４に返信する。
【００９０】
一方、ステップＳ２０４で開始された全レコードを送信する処理が終了すると、ステップＳ２２２で、停止対象仮想マシン１４は、上記停止処理のステップＳ８０の処理により、自装置を停止する。
【００９１】
以上説明したように、本実施形態によれば、受け付けたリクエストに応じた処理を実行する複数の仮想マシン１４のうち、停止対象の仮想マシン１４を識別する仮想マシン識別情報を受け付ける。また、複数の仮想マシン１４のうちの他の仮想マシン１４より、他の仮想マシン１４が処理を実行する際に用いるセッション情報のリカバリ要求を受け付ける。そして、受け付けたリカバリ要求に対応するセッション情報が、受け付けた仮想マシン識別情報により識別される仮想マシン１４が保持するセッション情報である場合に、以下に示す処理を行う。この場合、仮想マシン識別情報により識別される仮想マシン１４に、受け付けたリカバリ要求に対応するセッション情報の取得要求を通知する。さらに、通知した取得要求に対応するセッション情報を取得すると、取得したセッション情報を他の仮想マシン１４に送信する。従って、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を実行することができる。
【００９２】
また、本実施形態によれば、停止対象の仮想マシン１４により送信される停止対象の仮想マシン１４が保持する全セッション情報の受信を開始した後に、以下の処理を行う。すなわち、他の仮想マシン１４よりリカバリ要求を受け付けた場合で、かつリカバリ要求に対応するセッション情報が未受信である場合に、仮想マシン識別情報により識別される仮想マシン１４にセッション情報の取得要求を通知する。従って、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を早期に実行することができる。
【００９３】
また、本実施形態によれば、ロードバランサ１２が、仮想マシン識別情報を受け付けた場合に、仮想マシン識別情報により識別される仮想マシン１４に対するリクエストの振り分けを停止する。これにより、新たなリクエストが停止対象の仮想マシン１４に振り分けられなくなる。従って、停止対象の仮想マシン１４を早期に停止することができる。
【００９４】
なお、上記実施形態では、１台の仮想マシン１４上で１プロセスのＷｅｂアプリケーションサーバが稼動する場合について説明したが、これに限定されない。例えば、１台の仮想マシン１４上で複数プロセスのＷｅｂアプリケーションサーバが稼動する形態としてもよい。
【００９５】
また、上記実施形態では、１台の仮想マシン１４を停止対象とする場合について説明したが、これに限定されない。例えば、全ての仮想マシン１４の一部の複数台の仮想マシン１４を停止対象とする形態としてもよい。
【００９６】
また、上記実施形態では、振分制御プログラム９０及び仮想マシン制御プログラム１１０が、記憶部８３及び記憶部１０３に予め記憶（インストール）されている態様を説明したが、これに限定されない。振分制御プログラム９０及び仮想マシン制御プログラム１１０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
【００９７】
また、上記実施形態では、セッション管理プログラム１３０及びスケールインプログラム１５０が、記憶部１２３及び記憶部１４３に予め記憶（インストール）されている態様を説明したが、これに限定されない。セッション管理プログラム１３０及びスケールインプログラム１５０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
【００９８】
以上の実施形態に関し、更に以下の付記を開示する。
【００９９】
（付記１）
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータに実行させることを特徴とするセッション管理プログラム。
【０１００】
（付記２）
前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記１に記載のセッション管理プログラム。
【０１０１】
（付記３）
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータが実行することを特徴とするセッション管理方法。
【０１０２】
（付記４）
前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記３に記載のセッション管理方法。
【０１０３】
（付記５）
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、
受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、
を含むことを特徴とする情報処理装置。
【０１０４】
（付記６）
前記通知部は、前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記５に記載の情報処理装置。
【０１０５】
（付記７）
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、を含む情報処理装置、及び
前記仮想マシン識別情報を、リクエストを前記複数の仮想マシンの何れかに振り分ける負荷分散装置及び前記情報処理装置に送信する送信部を含む監視装置、
を備えたことを特徴とする情報処理システム。
【０１０６】
（付記８）
前記仮想マシン識別情報を受け付けた場合に、前記仮想マシン識別情報により識別される仮想マシンに対するリクエストの振り分けを停止する振分部を含む前記負荷分散装置を更に備えた、
ことを特徴とする付記７に記載の情報処理システム。
【０１０７】
（付記９）
前記通知部は、前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記７又は付記８に記載の情報処理システム。
【０１０８】
（付記１０）
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータに実行させることを特徴とするセッション管理プログラムを記憶した記憶媒体。
【符号の説明】
【０１０９】
１０  情報処理システム
１２  ロードバランサ
１４Ａ〜１４Ｃ  仮想マシン
１６  バックアップサーバ
１８  監視サーバ
３０、４０、５０  受付部
３２  振分部
３４  変更部
３６  振分管理テーブル
４２  実行部
４４、５４、６２  送信部
４６  停止部
４８  セッション管理テーブル
５２  通知部
５６  バックアップ管理テーブル
６０  取得部
８０、１００、１２０、１４０  コンピュータ
８１、１０１、１２１、１４１  ＣＰＵ
８２、１０２、１２２、１４２  メモリ
８３、１０３、１２３、１４３  記憶部
８８、１０８、１２８、１４８  記録媒体
９０  振分制御プログラム
１１０  仮想マシン制御プログラム
１３０  セッション管理プログラム
１５０  スケールインプログラム
【図１】
2018109867.tif 000003
【図２】
2018109867.tif 000004
【図３】
2018109867.tif 000005
【図４】
2018109867.tif 000006
【図５】
2018109867.tif 000007
【図６】
2018109867.tif 000008
【図７】
2018109867.tif 000009
【図８】
2018109867.tif 000010
【図９】
2018109867.tif 000011
【図１０】
2018109867.tif 000012
【図１１】
2018109867.tif 000013
【図１２】
2018109867.tif 000014
【図１３】
2018109867.tif 000015
【図１４】
2018109867.tif 000016
【図１５】
2018109867.tif 000017
【図１６】
2018109867.tif 000018
【図１７】
2018109867.tif 000019
【図１８】
2018109867.tif 000020