JP6816511B2 - セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム - Google Patents

セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム Download PDF

Info

Publication number
JP6816511B2
JP6816511B2 JP2017000181A JP2017000181A JP6816511B2 JP 6816511 B2 JP6816511 B2 JP 6816511B2 JP 2017000181 A JP2017000181 A JP 2017000181A JP 2017000181 A JP2017000181 A JP 2017000181A JP 6816511 B2 JP6816511 B2 JP 6816511B2
Authority
JP
Japan
Prior art keywords
virtual machine
session
identification information
received
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017000181A
Other languages
English (en)
Other versions
JP2018109867A (ja
Inventor
翼 山本
翼 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017000181A priority Critical patent/JP6816511B2/ja
Priority to US15/849,918 priority patent/US10992760B2/en
Publication of JP2018109867A publication Critical patent/JP2018109867A/ja
Application granted granted Critical
Publication of JP6816511B2 publication Critical patent/JP6816511B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システムに関する。
従来、複数のサーバ装置を備えるシステムにおけるセッション管理方法が提案されている。例えば、第1のサーバ装置がリクエストを受信した受信時刻及びクライアントにレスポンスを返信した返信時刻よりも、第1のサーバ装置から第2のサーバ装置へセッション情報を移動した移動時刻が遅い場合、以下の処理を行う技術が提案されている。この技術では、この場合、第1のサーバ装置が、セッション情報の移動先を示す移動先情報に基づいて、新たに受信したリクエストを第2のサーバ装置へ割り振る。
特開2012−103879号公報
ところで、Hypertext Transfer Protocol(HTTP)等のステートレスなプロトコルを使用する場合、異なるリクエスト間でセッション情報を引き継ぐことによってステートフルな処理が実現される。
また、複数の仮想マシンが稼動する情報処理システムによりWebサービス等のサービスを提供する場合、仮想マシンのリソース状況、及びリクエストの実行件数等に応じて、一部の仮想マシンを停止する場合がある。この場合、停止対象とする仮想マシンが保持する最新のセッション情報を他の仮想マシンが用いないと、停止対象とする仮想マシンで実行された処理を、他の仮想マシンで継続して実行することができない。
一つの側面では、本発明は、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理の実行を可能とすることを目的とする。
一つの態様として、受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付ける。また、前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける。また、受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知する。そして、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する。
一つの側面として、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を実行することができる、という効果を有する。
実施形態に係る情報処理システムの概略構成を示すブロック図である。 実施形態に係るロードバランサの機能ブロック図である。 振分管理テーブルの一例を示す図である。 実施形態に係る仮想マシンの機能ブロック図である。 セッション管理テーブルの一例を示す図である。 実施形態に係るバックアップサーバの機能ブロック図である。 バックアップ管理テーブルの一例を示す図である。 実施形態に係る監視サーバの機能ブロック図である。 実施形態に係るロードバランサとして機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る仮想マシンとして機能するコンピュータの概略構成を示すブロック図である。 実施形態に係るバックアップサーバとして機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る監視サーバとして機能するコンピュータの概略構成を示すブロック図である。 実施形態に係るスケールイン処理の一例を示すフローチャートである。 実施形態に係る振分制御処理の一例を示すフローチャートである。 実施形態に係るリクエスト実行処理の一例を示すフローチャートである。 実施形態に係る停止処理の一例を示すフローチャートである。 実施形態に係るセッション管理処理の一例を示すフローチャートである。 実施形態に係る仮想マシンを停止するまでの一連の処理の流れの一例を示すシーケンス図である。
以下、図面を参照して、開示の技術の実施形態の一例を詳細に説明する。なお、以下の実施形態では、開示の技術を、ステートレスなプロトコルの一例としてのHypertext Transfer Protocol(HTTP)によりサービスを提供し、かつステートフルな処理が実現される情報処理システムに適用した形態例について説明する。
まず、図1を参照して、本実施形態に係る情報処理システム10の構成を説明する。図1に示すように、情報処理システム10は、ロードバランサ12、複数(図1に示す例では3台)の仮想マシン14A〜14C、情報処理装置の一例としてのバックアップサーバ16、及び監視サーバ18を含む。なお、以下では、仮想マシン14A〜14Cを区別せずに総称する場合は、符号の末尾のアルファベットを省略する。また、仮想マシン14の台数は3台に限定されず、2台でもよいし、4台以上でもよい。
ロードバランサ12は、Local Area Network(LAN)等のネットワーク20、及びWide Area Network(WAN)等のネットワーク22に接続される。また、仮想マシン14、バックアップサーバ16、及び監視サーバ18は、ネットワーク20に接続される。
ロードバランサ12は、ネットワーク22に接続された複数のクライアント端末24の各々から送信されたHTTPリクエスト(以下、「リクエスト」という)を受け付け、受け付けたリクエストを仮想マシン14の何れかに負荷分散して振り分ける。
仮想マシン14は、例えばWebアプリケーションサーバを稼動させ、ロードバランサ12により振り分けられたリクエストに応じた処理を実行する。そして、仮想マシン14は、リクエストに応じた処理の実行結果を、HTTPレスポンス(以下、「レスポンス」という)として、ロードバランサ12を介して、リクエストの送信元のクライアント端末24に返信する。
バックアップサーバ16は、仮想マシン14の所定の記憶領域に記憶されたセッション情報のバックアップ及びリカバリに関する処理を実行する。監視サーバ18は、仮想マシン14のリソース状況を監視する。
次に、図2を参照して、本実施形態に係るロードバランサ12の機能的な構成を説明する。図2に示すように、ロードバランサ12は、受付部30、振分部32、及び変更部34を含む。また、ロードバランサ12の所定の記憶領域には、振分管理テーブル36が記憶される。
振分管理テーブル36には、リクエストの振分け先の仮想マシン14に関する情報が記憶される。図3に、振分管理テーブル36の一例を示す。図3に示すように、振分管理テーブル36には、リクエストのHTTPセッション(以下、「セッション」という)を識別するセッションIdentification(ID)と、リクエストの振り分け先の仮想マシン14を示す振分先仮想マシンとが対応付けて記憶される。なお、「振分先仮想マシン」の例としては、Internet Protocol(IP)アドレス、及びホスト名等の仮想マシン14を識別する情報が挙げられる。
受付部30は、クライアント端末24から送信されたリクエストを受け付ける。また、受付部30は、監視サーバ18から送信された停止対象とする仮想マシン14(以下、「停止対象仮想マシン14」という)を識別する仮想マシン識別情報を受け付ける。
振分部32は、受付部30によりリクエストが受け付けられると、例えば、リクエストのHTTPヘッダのCookie情報として設定されたセッションIDを取得する。そして、振分部32は、振分管理テーブル36を参照し、取得したセッションIDに対応する仮想マシン14に、受付部30により受け付けられたリクエストを振り分ける。すなわち、本実施形態に係るロードバランサ12は、各仮想マシン14が正常に稼動している場合は、同一のセッションIDを有する一連の処理に関するリクエストを、同一の仮想マシン14に振り分ける。
また、振分部32は、受付部30により受け付けられたリクエストにセッションIDが含まれていない場合、何れかの仮想マシン14にリクエストを振り分ける。仮想マシン14は振り分けられたリクエストに応じた処理を実行し、実行結果をクライアント端末24に返信する際にレスポンスのHTTPヘッダにセッションIDを挿入する。ロードバランサ12は、仮想マシン14から送信されたレスポンスのHTTPヘッダを参照し、セッションID及び振分け先の仮想マシン14を識別する情報を振分管理テーブル36に追加する。
また、振分部32は、受付部30により仮想マシン識別情報が受け付けられると、停止対象仮想マシン14へのリクエストの振り分けを停止する。例えば、振分部32は、停止対象仮想マシン14へのヘルスチェックを停止することによって、停止対象仮想マシン14へのリクエストの振り分けを停止する。この場合、振分部32は、取得したセッションIDに対応する振分管理テーブル36の振分先仮想マシンが停止対象仮想マシン14の場合でも、リクエストを停止対象仮想マシン14以外の仮想マシン14に振り分ける。
また、変更部34は、受付部30により仮想マシン識別情報が受け付けられると、リクエストの振り分け先を、仮想マシン識別情報により識別される停止対象仮想マシン14以外の仮想マシン14に変更する。本実施形態では、変更部34は、振分管理テーブル36の振分先仮想マシン列に停止対象仮想マシン14を示す情報が記憶されているレコードの振分先仮想マシン列を、停止対象仮想マシン14以外の仮想マシン14に変更する。
なお、変更部34が、振分管理テーブル36の振分先仮想マシン列を何れの仮想マシン14に変更するかは特に限定されない。例えば、変更部34は、停止対象仮想マシン14以外の仮想マシン14の何れかをランダムに選択し、振分先仮想マシン列を選択した仮想マシン14に変更してもよい。また、例えば、変更部34は、振分先仮想マシン列の停止対象仮想マシン14以外の各仮想マシン14の個数が均等になるように、振分先仮想マシン列を停止対象仮想マシン14以外の仮想マシン14に変更してもよい。
次に、図4を参照して、本実施形態に係る仮想マシン14の機能的な構成を説明する。図4に示すように、仮想マシン14は、受付部40、実行部42、送信部44、及び停止部46を含む。また、仮想マシン14の所定の記憶領域には、セッション管理テーブル48が記憶される。
セッション管理テーブル48には、セッション毎にセッション情報が記憶される。図5に、セッション管理テーブル48の一例を示す。図5に示すように、セッション管理テーブル48には、セッションIDと、セッション情報とが対応付けて記憶される。なお、ここでいうセッション情報とは、一連の処理を実行するために異なるリクエスト間で引き継がれる情報を意味する。例えば、ショッピングサイトでは、カートに入れられた商品を示す情報、及び商品の個数等が、セッション情報に該当する。
受付部40は、ロードバランサ12により振り分けられたリクエストを受け付ける。また、受付部40は、監視サーバ18から送信された停止対象仮想マシン14を識別する仮想マシン識別情報を受け付ける。また、受付部40は、バックアップサーバ16から送信された、セッションIDにより識別されるセッション情報の取得要求(以下、「セッション取得要求」という)を受け付ける。また、受付部40は、バックアップサーバ16から送信されたセッション情報を受け付ける。
実行部42は、受付部40により受け付けられたリクエストに応じた処理を実行する。実行部42は、リクエストにセッションIDが含まれる場合、セッション管理テーブル48を参照し、リクエストに含まれるセッションIDに対応するセッション情報を用いて、リクエストに応じた処理を実行する。また、実行部42は、リクエストに応じた処理の実行に伴い、セッション情報が更新された場合、セッション管理テーブル48のリクエストに含まれるセッションIDに対応するセッション情報を更新する。そして、実行部42は、リクエストに応じた処理の実行結果を、ロードバランサ12を介して、リクエストの送信元のクライアント端末24に返信する。
なお、本実施形態に係る実行部42は、セッション管理テーブル48にリクエストに含まれるセッションIDに対応するレコードが記憶されていない場合、送信部44に対し、セッション情報のリカバリ要求の送信を指示する。そして、この場合、実行部42は、リカバリ要求に応じてバックアップサーバ16から送信され、受付部40により受け付けられたセッション情報を用いてリクエストに応じた処理を実行し、セッション管理テーブル48を更新する。
送信部44は、受付部40により停止対象仮想マシン14を識別する仮想マシン識別情報が受け付けられた場合、セッション管理テーブル48の全レコードをバックアップサーバ16に送信する。また、送信部44は、例えば、10分に1回等の定期的なタイミングで、セッション管理テーブル48の全レコードをバックアップサーバ16に送信する。また、送信部44は、受付部40によりセッション取得要求が受け付けられた場合、セッション管理テーブル48を参照し、セッション取得要求に含まれるセッションIDに対応するセッション情報をバックアップサーバ16に送信する。
また、送信部44は、実行部42がリクエストに応じた処理を実行する際に、セッション管理テーブル48に、リクエストに含まれるセッションIDに対応するレコードが記憶されていない場合、セッション情報のリカバリ要求をバックアップサーバ16に送信する。この場合、送信部44は、リカバリ要求に、リクエストに含まれるセッションIDを含めて、バックアップサーバ16に送信する。
停止部46は、受付部40により停止対象仮想マシン14を識別する仮想マシン識別情報が受け付けられた場合、送信部44によるセッション管理テーブル48の全レコードの送信処理が完了した後、自装置を停止する。
次に、図6を参照して、本実施形態に係るバックアップサーバ16の機能的な構成を説明する。図6に示すように、バックアップサーバ16は、受付部50、通知部52、及び送信部54を含む。また、バックアップサーバ16の所定の記憶領域には、バックアップ管理テーブル56が記憶される。
バックアップ管理テーブル56は、セッション情報のバックアップ及びリカバリに用いられるテーブルである。図7に、バックアップ管理テーブル56の一例を示す。図7に示すように、バックアップ管理テーブル56には、セッションIDと、セッション情報と、セッション情報を保持する仮想マシン14を識別する情報と、バックアップ状況とが対応付けて記憶される。
受付部50は、監視サーバ18から送信された停止対象仮想マシン14を識別する仮想マシン識別情報を受け付ける。また、受付部50は、仮想マシン14から送信されたセッション情報のリカバリ要求を受け付ける。また、受付部50は、仮想マシン14から送信されたセッション管理テーブル48のレコード(すなわち、セッションID及びセッション情報)を受け付ける。また、受付部50は、受け付けたセッションID、セッション情報、及びセッション情報の送信元の仮想マシン14を識別する情報を、バックアップ管理テーブル56に記憶する。また、この記憶に伴い、受付部50は、バックアップ管理テーブル56のバックアップ状況列を更新する。
通知部52は、受付部50により受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン14に、受付部50により受け付けられたリカバリ要求に含まれるセッションIDにより識別されるセッション情報の取得要求を通知する。本実施形態では、受付部50によりリカバリ要求が受け付けられると、通知部52は、バックアップ管理テーブル56を参照し、リカバリ要求に含まれるセッションIDに対応する仮想マシン14に対してセッション情報の取得要求を通知する。
また、通知部52は、受付部50が停止対象仮想マシン14から送信されるセッション管理テーブル48の全レコードの受信処理を開始した後、停止対象仮想マシン14以外の仮想マシン14から送信されたリカバリ要求を受け付けた場合、以下に示す処理を行う。この場合、通知部52は、受付部50がリカバリ要求に含まれるセッションIDに対応するセッション情報を未受信の場合、停止対象仮想マシン14にセッション情報の取得要求を通知する。
送信部54は、通知部52による取得要求の通知に対する返信として、受付部50がセッション情報を受け付けると、受け付けたセッション情報をリカバリ要求の送信元の仮想マシン14に送信する。
次に、図8を参照して、本実施形態に係る監視サーバ18の機能的な構成を説明する。図8に示すように、監視サーバ18は、取得部60及び送信部62を含む。
取得部60は、例えば1分に1回等の定期的なタイミングで、各仮想マシン14から、各仮想マシン14が処理を実行したリクエストの件数を取得し、単位時間当たりのリクエストの実行件数を算出する。送信部62は、取得部60により算出された実行件数が予め定められた閾値未満の仮想マシン14を停止対象仮想マシン14とする。そして、送信部62は、停止対象仮想マシン14を識別する仮想マシン識別情報をロードバランサ12、停止対象仮想マシン14、及びバックアップサーバ16に送信する。なお、例えば、取得部60により算出された実行件数が予め定められた閾値未満の仮想マシン14が複数台存在する場合は、送信部62は、実行件数が最も少ない仮想マシン14を停止対象仮想マシン14とする形態が例示される。
なお、例えば、取得部60は、各仮想マシン14の単位時間当たりのCPU使用率及びメモリ使用率を取得してもよい。そして、送信部62は、取得部60により取得されたCPU使用率及びメモリ使用率が予め定められた閾値未満の仮想マシン14を停止対象仮想マシン14としてもよい。また、この場合の閾値は、CPU使用率及びメモリ使用率の双方で同じ値としてもよいし、異なる値としてもよい。
ロードバランサ12は、例えば図9に示すコンピュータ80で実現することができる。コンピュータ80は、Central Processing Unit(CPU)81、一時記憶領域としてのメモリ82、及び不揮発性の記憶部83を備える。また、コンピュータ80は、表示装置及び入力装置等の入出力装置84を備える。また、コンピュータ80は、記録媒体88に対するデータの読み込みと書き込みとを制御するRead/Write(R/W)部85、及びネットワークに接続されるネットワークI/F86を備える。CPU81、メモリ82、記憶部83、入出力装置84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続される。
記憶部83は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部83には、コンピュータ80をロードバランサ12として機能させるための振分制御プログラム90が記憶される。振分制御プログラム90は、受付プロセス91、振分プロセス92、及び変更プロセス93を有する。また、記憶部83は、振分管理テーブル36が記憶される情報記憶領域94を有する。
CPU81は、振分制御プログラム90を記憶部83から読み出してメモリ82に展開し、振分制御プログラム90が有するプロセスを実行する。CPU81は、受付プロセス91を実行することで、図2に示す受付部30として動作する。CPU81は、振分プロセス92を実行することで、図2に示す振分部32として動作する。CPU81は、変更プロセス93を実行することで、図2に示す変更部34として動作する。これにより、振分制御プログラム90を実行したコンピュータ80が、ロードバランサ12として機能することになる。なお、振分制御プログラム90が有するプロセスを実行するCPU81は、ハードウェアである。
また、振分制御プログラム90により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
仮想マシン14は、例えば図10に示すコンピュータ100で実現することができる。コンピュータ100は、CPU101、一時記憶領域としてのメモリ102、及び不揮発性の記憶部103を備える。また、コンピュータ100は、表示装置及び入力装置等の入出力装置104を備える。また、コンピュータ100は、記録媒体108に対するデータの読み込みと書き込みとを制御するR/W部105、及びネットワークに接続されるネットワークI/F106を備える。CPU101、メモリ102、記憶部103、入出力装置104、R/W部105、及びネットワークI/F106は、バス107を介して互いに接続される。なお、仮想マシン14には、CPU101、メモリ102、及び記憶部103等の各々の一部が、仮想的なハードウェアとして割り当てられる。
記憶部103は、HDD、SSD、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部103には、コンピュータ100を仮想マシン14として機能させるための仮想マシン制御プログラム110が記憶される。仮想マシン制御プログラム110は、受付プロセス111、実行プロセス112、送信プロセス113、及び停止プロセス114を有する。また、メモリ102は、セッション管理テーブル48が記憶される情報記憶領域115を有する。
CPU101は、仮想マシン制御プログラム110を記憶部103から読み出してメモリ102に展開し、仮想マシン制御プログラム110が有するプロセスを実行する。CPU101は、受付プロセス111を実行することで、図4に示す受付部40として動作する。CPU101は、実行プロセス112を実行することで、図4に示す実行部42として動作する。CPU101は、送信プロセス113を実行することで、図4に示す送信部44として動作する。CPU101は、停止プロセス114を実行することで、図4に示す停止部46として動作する。これにより、仮想マシン制御プログラム110を実行したコンピュータ100が、仮想マシン14として機能することになる。なお、仮想マシン制御プログラム110が有するプロセスを実行するCPU101は、ハードウェアである。
バックアップサーバ16は、例えば図11に示すコンピュータ120で実現することができる。コンピュータ120は、CPU121、一時記憶領域としてのメモリ122、及び不揮発性の記憶部123を備える。また、コンピュータ120は、表示装置及び入力装置等の入出力装置124を備える。また、コンピュータ120は、記録媒体128に対するデータの読み込みと書き込みとを制御するR/W部125、及びネットワークに接続されるネットワークI/F126を備える。CPU121、メモリ122、記憶部123、入出力装置124、R/W部125、及びネットワークI/F126は、バス127を介して互いに接続される。
記憶部123は、HDD、SSD、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部123には、コンピュータ120をバックアップサーバ16として機能させるためのセッション管理プログラム130が記憶される。セッション管理プログラム130は、受付プロセス131、通知プロセス132、及び送信プロセス133を有する。また、記憶部123は、バックアップ管理テーブル56が記憶される情報記憶領域134を有する。
CPU121は、セッション管理プログラム130を記憶部123から読み出してメモリ122に展開し、セッション管理プログラム130が有するプロセスを実行する。CPU121は、受付プロセス131を実行することで、図6に示す受付部50として動作する。CPU121は、通知プロセス132を実行することで、図6に示す通知部52として動作する。CPU121は、送信プロセス133を実行することで、図6に示す送信部54として動作する。これにより、セッション管理プログラム130を実行したコンピュータ120が、バックアップサーバ16として機能することになる。なお、セッション管理プログラム130が有するプロセスを実行するCPU121は、ハードウェアである。
また、セッション管理プログラム130により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
監視サーバ18は、例えば図12に示すコンピュータ140で実現することができる。コンピュータ140は、CPU141、一時記憶領域としてのメモリ142、及び不揮発性の記憶部143を備える。また、コンピュータ140は、表示装置及び入力装置等の入出力装置144を備える。また、コンピュータ140は、記録媒体148に対するデータの読み込みと書き込みとを制御するR/W部145、及びネットワークに接続されるネットワークI/F146を備える。CPU141、メモリ142、記憶部143、入出力装置144、R/W部145、及びネットワークI/F146は、バス147を介して互いに接続される。
記憶部143は、HDD、SSD、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部143には、コンピュータ140を監視サーバ18として機能させるためのスケールインプログラム150が記憶される。スケールインプログラム150は、取得プロセス151及び送信プロセス152を有する。
CPU141は、スケールインプログラム150を記憶部143から読み出してメモリ142に展開し、スケールインプログラム150が有するプロセスを実行する。CPU141は、取得プロセス151を実行することで、図8に示す取得部60として動作する。CPU141は、送信プロセス152を実行することで、図8に示す送信部62として動作する。これにより、スケールインプログラム150を実行したコンピュータ140が、監視サーバ18として機能することになる。なお、スケールインプログラム150が有するプロセスを実行するCPU141は、ハードウェアである。
また、スケールインプログラム150により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
次に、本実施形態に係る情報処理システム10の作用を説明する。監視サーバ18がスケールインプログラム150を実行することで、図13に示すスケールイン処理を実行する。図13に示すスケールイン処理は、例えば監視サーバ18の電源がオン状態とされた場合等にCPU141により実行される。
図13に示すスケールイン処理のステップS10で、取得部60は、各仮想マシン14から、各仮想マシン14が処理を実行したリクエストの件数を取得する。ステップS12で、取得部60は、仮想マシン14毎に、ステップS10で取得されたリクエストの件数を、前回リクエストの件数を取得してから今回リクエストの件数を取得するまでの時間で除算することで、単位時間当たりのリクエストの実行件数を算出する。
次のステップS14で、送信部62は、ステップS12で算出された単位時間当たりのリクエストの実行件数が閾値未満の仮想マシン14が存在するか否かを判定する。この判定が否定判定となった場合は、処理はステップS18に移行し、肯定判定となった場合は、処理はステップS16に移行する。
ステップS16で、送信部62は、単位時間当たりのリクエストの実行件数が閾値未満の仮想マシン14を停止対象仮想マシン14とする。そして、送信部62は、停止対象仮想マシン14を識別する仮想マシン識別情報をロードバランサ12、停止対象仮想マシン14、及びバックアップサーバ16に送信する。ステップS18で、取得部60は、所定期間(例えば1分)の間、待機する。ステップS18の処理が終了すると処理はステップS10に戻る。
また、ロードバランサ12が振分制御プログラム90を実行することで、図14に示す振分制御処理を実行する。図14に示す振分制御処理は、例えば上記スケールイン処理のステップS16で監視サーバ18から送信された仮想マシン識別情報をロードバランサ12が受信した場合にCPU81により実行される。
図14に示す振分制御処理のステップS30で、受付部30は、監視サーバ18から送信された仮想マシン識別情報を受け付ける。次のステップS32で、振分部32は、ステップS30で受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン14へのリクエストの振り分けを停止する。
次のステップS34で、変更部34は、振分管理テーブル36の振分先仮想マシン列に停止対象仮想マシン14を示す情報が記憶されているレコードの振分先仮想マシン列を、停止対象仮想マシン14以外の仮想マシン14に変更する。ステップS34の処理が終了すると、振分制御処理が終了する。
また、仮想マシン14が仮想マシン制御プログラム110を実行することで、図15に示すリクエスト実行処理、及び図16に示す停止処理を実行する。図15に示すリクエスト実行処理は、例えばロードバランサ12により振り分けられたリクエストを仮想マシン14が受信した場合にCPU101により実行される。また、図16に示す停止処理は、例えば上記スケールイン処理のステップS16で監視サーバ18から送信された仮想マシン識別情報を仮想マシン14が受信した場合にCPU101により実行される。
図15に示すリクエスト実行処理のステップS50で、受付部40は、ロードバランサ12により振り分けられたリクエストを受け付ける。次のステップS52で、実行部42は、ステップS50で受け付けられたリクエストに含まれるセッションIDを取得する。次のステップS54で、実行部42は、セッション管理テーブル48に、ステップS52で取得されたセッションIDに対応するレコードが記憶されているか否かを判定する。この判定が肯定判定となった場合は、処理はステップS60に移行し、否定判定となった場合は、処理はステップS56に移行する。
ステップS56で、送信部44は、ステップS52で取得されたセッションIDに対応するセッション情報のリカバリ要求をバックアップサーバ16に送信する。次のステップS58で、受付部40は、ステップS56で送信されたリカバリ要求に対応するセッション情報を受信するまで待機する。受付部40が、バックアップサーバ16から送信されたセッション情報を受信すると、ステップS58の判定が肯定判定となり、処理はステップS62に移行する。
一方、ステップS60で、実行部42は、セッション管理テーブル48を参照し、ステップS52で取得されたセッションIDに対応するセッション情報を取得する。ステップS62で、実行部42は、セッション情報を用いて、リクエストに応じた処理を実行する。そして、実行部42は、リクエストに応じた処理の実行結果を、ロードバランサ12を介して、リクエストの送信元のクライアント端末24に返信する。ステップS62の処理が終了すると、リクエスト実行処理が終了する。
図16に示す停止処理のステップS70で、受付部40は、監視サーバ18から送信された停止対象仮想マシン14を識別する仮想マシン識別情報を受け付ける。次のステップS72で、送信部44は、セッション管理テーブル48の全レコードを1レコードずつ順次バックアップサーバ16に送信する処理を開始する。
次のステップS74で、受付部40は、バックアップサーバ16から送信されたセッション取得要求を受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップS78に移行し、肯定判定となった場合は、処理はステップS76に移行する。ステップS76で、送信部44は、セッション管理テーブル48を参照し、ステップS74で受信されたセッション取得要求に含まれるセッションIDに対応するセッション情報を取得し、取得したセッション情報をバックアップサーバ16に送信する。
ステップS78で、送信部44は、ステップS72で開始されたセッション管理テーブル48の全レコードを送信する処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップS74に戻り、肯定判定となった場合は、処理はステップS80に移行する。ステップS80で、停止部46は、自装置を停止する。ステップS80の処理が終了すると、停止処理が終了する。
また、バックアップサーバ16がセッション管理プログラム130を実行することで、図17に示すセッション管理処理を実行する。図17に示すセッション管理処理は、例えばバックアップサーバ16の電源がオン状態とされた場合等にCPU121により実行される。
図17に示すセッション管理処理のステップS100で、受付部50は、仮想マシン14から定期的に送信されるセッション管理テーブル48の全レコードを受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップS104に移行し、肯定判定となった場合は、処理はステップS102に移行する。
ステップS102で、受付部50は、ステップS100で受信された全レコードの各々のセッションID及びセッション情報を、バックアップ管理テーブル56に記憶する。また、受付部50は、バックアップ管理テーブル56に記憶した各レコードの仮想マシン列に、ステップS100で受信された全レコードの送信元の仮想マシン14を識別する情報を記憶する。
ステップS104で、受付部50は、上記スケールイン処理のステップS16で監視サーバ18から送信された仮想マシン識別情報を受け付けたか否かを判定する。この判定が否定判定となった場合は、処理はステップS100に戻り、肯定判定となった場合は、処理はステップS106に移行する。
ステップS106で、受付部50は、上記停止処理のステップS72でバックアップサーバ16により送信が開始されるセッション管理テーブル48の全レコードを受信する処理を開始する。受付部50は、以降の処理と並列に、バックアップサーバ16により1レコードずつ順次送信されたレコードを受信すると、1レコード受信する毎に、受信したレコードのセッションID及びセッション情報をバックアップ管理テーブル56に記憶する。また、受付部50は、受信したレコードのセッションID及びセッション情報のバックアップ管理テーブル56への記憶が完了した場合、レコードのバックアップ状況列を「完了」に更新する。
なお、受付部50は、後述するステップS116の処理により、バックアップ状況列が「完了」になっているレコードについては、受信したレコードのセッションID及びセッション情報をバックアップ管理テーブル56に記憶しなくてもよい。
ステップS108で、受付部50は、仮想マシン14から送信されたセッション情報のリカバリ要求を受信したか否かを判定する。この判定が否定判定となった場合は、処理はステップS122に移行し、肯定判定となった場合は、処理はステップS110に移行する。ステップS110で、送信部54は、バックアップ管理テーブル56を参照し、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応するバックアップ状況列が「完了」になっているか否かを判定する。すなわち、送信部54は、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応するセッション情報を受信済みであるか否かを判定する。この判定が肯定判定となった場合は、処理はステップS118に移行し、否定判定となった場合は、処理はステップS112に移行する。
ステップS112で、通知部52は、バックアップ管理テーブル56を参照し、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応する仮想マシン列の仮想マシン14にセッション情報の取得要求を送信する。すなわち、通知部52は、停止対象仮想マシン14にセッション情報の取得要求を送信する。ステップS114で、受付部50は、セッション情報を受信するまで待機する。
上記ステップS112の処理により送信された取得要求を停止対象仮想マシン14が受信すると、上記停止処理のステップS74の判定が肯定判定となり、ステップS76の処理によりセッション情報がバックアップサーバ16に送信される。停止対象仮想マシン14により送信されたセッション情報を受付部50が受信すると、ステップS114の判定が肯定判定となり、処理はステップS116に移行する。
ステップS116で、受付部50は、ステップS114で受信されたセッション情報を、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応付けてバックアップ管理テーブル56に記憶する。また、受付部50は、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応するバックアップ状況列を「完了」に更新する。
一方、ステップS118で、送信部54は、バックアップ管理テーブル56を参照し、ステップS108で受信されたリカバリ要求に含まれるセッションIDに対応するセッション情報を取得する。ステップS120で、送信部54は、セッション情報を、ステップS108で受信されたリカバリ要求の送信元の仮想マシン14に送信する。ステップS122で、受付部50は、ステップS106で開始された全セッション情報の受信処理が完了したか否かを判定する。この判定が否定判定となった場合は、処理はステップS108に戻り、肯定判定となった場合は、処理はステップS124に移行する。
ステップS124で、受付部50は、バックアップ管理テーブル56を更新する。具体的には、受付部50は、バックアップ管理テーブル56の全レコードのバックアップ状況列にNULL値を記憶することによって、バックアップ状況列を初期化する。また、受付部50は、ステップS104で受け付けられた仮想マシン識別情報により識別される停止対象仮想マシン14を示す情報が仮想マシン列に記憶されているバックアップ管理テーブル56のレコードについては以下に示す処理を行う。すなわち、受付部50は、このレコードについては、ロードバランサ12からセッションIDに対応する新たな振分け先の仮想マシン14を識別する情報を取得し、仮想マシン列に取得した情報を記憶する。ステップS124の処理が終了すると、セッション管理処理が終了する。
次に、図18を参照して、停止対象仮想マシン14を停止するまでの一連の処理の流れの一例を説明する。なお、ここでは、停止対象仮想マシン14以外の仮想マシン14で、ロードバランサが新たなリクエストの振り分け先として選択した仮想マシン14を他の仮想マシン14という。また、セッションIDが「sessionA」のリクエストに応じた処理が既に停止対象仮想マシン14で実行され、停止対象仮想マシン14のセッション管理テーブル48にセッションIDが「sessionA」のセッション情報が記憶されている場合について説明する。また、バックアップサーバ16のバックアップ管理テーブル56にもセッションIDが「sessionA」のセッション情報が記憶されている場合について説明する。
図18に示すステップS200で、監視サーバ18は、上記スケールイン処理のステップS16の処理により、停止対象仮想マシン14を識別する仮想マシン識別情報をロードバランサ12、停止対象仮想マシン14、及びバックアップサーバ16に送信する。ステップS202で、ロードバランサ12は、仮想マシン識別情報を受信すると、上記振分制御処理により、リクエストの振り分け先を他の仮想マシン14に変更する。
一方、ステップS204で、停止対象仮想マシン14は、仮想マシン識別情報を受信すると、上記停止処理のステップS72の処理により、セッション管理テーブル48の全レコードを1レコードずつ順次バックアップサーバ16に送信する処理を開始する。また、ステップS206で、バックアップサーバ16は、仮想マシン識別情報を受信すると、上記セッション管理処理のステップS106の処理により、セッション管理テーブル48の全レコードを受信する処理を開始する。
次に、ステップS208で、クライアント端末24は、「sessionA」のセッションIDを含むリクエストをロードバランサ12に送信する。ステップS210で、ロードバランサ12は、クライアント端末24から送信されたリクエストを他の仮想マシン14に振り分ける。前述したように、「sessionA」のセッションIDを含むリクエストは、停止対象仮想マシン14で実行されていたため、この時点で、セッションIDが「sessionA」のセッション情報は、他の仮想マシン14のセッション管理テーブル48には記憶されていない。
従って、ステップS212で、上記リクエスト実行処理のステップS56の処理により、他の仮想マシン14は、ロードバランサ12により振り分けられた処理を実行する際に用いるセッション情報のリカバリ要求をバックアップサーバ16に送信する。すなわち、ステップS212で、他の仮想マシン14は、セッションIDが「sessionA」のセッション情報のリカバリ要求をバックアップサーバ16に送信する。
なお、ここでは、ステップS212が実行される時点で、ステップS206で開始された受信処理において、セッションIDが「sessionA」のセッション情報の受信処理が未完了である場合について説明する。
ステップS214で、バックアップサーバ16は、上記セッション管理処理のステップS112の処理により、ステップS212で送信されたリカバリ要求に含まれるセッションIDのセッション情報の取得要求を停止対象仮想マシン14に送信する。ステップS216で、停止対象仮想マシン14は、上記停止処理のステップS76の処理により、ステップS214で送信された取得要求に含まれるセッションIDに対応するセッション情報をバックアップサーバ16に送信する。
ステップS218で、バックアップサーバ16は、上記セッション管理処理のステップS120の処理により、ステップS216で送信されたセッション情報を他の仮想マシン14に送信する。他の仮想マシン14は、上記リクエスト実行処理のステップS62の処理により、ステップS218で送信されたセッション情報を用いて、リクエストに応じた処理を実行する。そして、ステップS220で、他の仮想マシン14は、実行した処理の処理結果を、ロードバランサ12を介して、クライアント端末24に返信する。
一方、ステップS204で開始された全レコードを送信する処理が終了すると、ステップS222で、停止対象仮想マシン14は、上記停止処理のステップS80の処理により、自装置を停止する。
以上説明したように、本実施形態によれば、受け付けたリクエストに応じた処理を実行する複数の仮想マシン14のうち、停止対象の仮想マシン14を識別する仮想マシン識別情報を受け付ける。また、複数の仮想マシン14のうちの他の仮想マシン14より、他の仮想マシン14が処理を実行する際に用いるセッション情報のリカバリ要求を受け付ける。そして、受け付けたリカバリ要求に対応するセッション情報が、受け付けた仮想マシン識別情報により識別される仮想マシン14が保持するセッション情報である場合に、以下に示す処理を行う。この場合、仮想マシン識別情報により識別される仮想マシン14に、受け付けたリカバリ要求に対応するセッション情報の取得要求を通知する。さらに、通知した取得要求に対応するセッション情報を取得すると、取得したセッション情報を他の仮想マシン14に送信する。従って、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を実行することができる。
また、本実施形態によれば、停止対象の仮想マシン14により送信される停止対象の仮想マシン14が保持する全セッション情報の受信を開始した後に、以下の処理を行う。すなわち、他の仮想マシン14よりリカバリ要求を受け付けた場合で、かつリカバリ要求に対応するセッション情報が未受信である場合に、仮想マシン識別情報により識別される仮想マシン14にセッション情報の取得要求を通知する。従って、複数の仮想マシンのうちの一部の仮想マシンを停止する場合に、最新のセッション情報に基づく処理を早期に実行することができる。
また、本実施形態によれば、ロードバランサ12が、仮想マシン識別情報を受け付けた場合に、仮想マシン識別情報により識別される仮想マシン14に対するリクエストの振り分けを停止する。これにより、新たなリクエストが停止対象の仮想マシン14に振り分けられなくなる。従って、停止対象の仮想マシン14を早期に停止することができる。
なお、上記実施形態では、1台の仮想マシン14上で1プロセスのWebアプリケーションサーバが稼動する場合について説明したが、これに限定されない。例えば、1台の仮想マシン14上で複数プロセスのWebアプリケーションサーバが稼動する形態としてもよい。
また、上記実施形態では、1台の仮想マシン14を停止対象とする場合について説明したが、これに限定されない。例えば、全ての仮想マシン14の一部の複数台の仮想マシン14を停止対象とする形態としてもよい。
また、上記実施形態では、振分制御プログラム90及び仮想マシン制御プログラム110が、記憶部83及び記憶部103に予め記憶(インストール)されている態様を説明したが、これに限定されない。振分制御プログラム90及び仮想マシン制御プログラム110は、CD−ROM、DVD−ROM、USBメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
また、上記実施形態では、セッション管理プログラム130及びスケールインプログラム150が、記憶部123及び記憶部143に予め記憶(インストール)されている態様を説明したが、これに限定されない。セッション管理プログラム130及びスケールインプログラム150は、CD−ROM、DVD−ROM、USBメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータに実行させることを特徴とするセッション管理プログラム。
(付記2)
前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記1に記載のセッション管理プログラム。
(付記3)
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータが実行することを特徴とするセッション管理方法。
(付記4)
前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記3に記載のセッション管理方法。
(付記5)
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、
受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、
を含むことを特徴とする情報処理装置。
(付記6)
前記通知部は、前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記5に記載の情報処理装置。
(付記7)
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、を含む情報処理装置、及び
前記仮想マシン識別情報を、リクエストを前記複数の仮想マシンの何れかに振り分ける負荷分散装置及び前記情報処理装置に送信する送信部を含む監視装置、
を備えたことを特徴とする情報処理システム。
(付記8)
前記仮想マシン識別情報を受け付けた場合に、前記仮想マシン識別情報により識別される仮想マシンに対するリクエストの振り分けを停止する振分部を含む前記負荷分散装置を更に備えた、
ことを特徴とする付記7に記載の情報処理システム。
(付記9)
前記通知部は、前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
ことを特徴とする付記7又は付記8に記載の情報処理システム。
(付記10)
受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
処理をコンピュータに実行させることを特徴とするセッション管理プログラムを記憶した記憶媒体。
10 情報処理システム
12 ロードバランサ
14A〜14C 仮想マシン
16 バックアップサーバ
18 監視サーバ
30、40、50 受付部
32 振分部
34 変更部
36 振分管理テーブル
42 実行部
44、54、62 送信部
46 停止部
48 セッション管理テーブル
52 通知部
56 バックアップ管理テーブル
60 取得部
80、100、120、140 コンピュータ
81、101、121、141 CPU
82、102、122、142 メモリ
83、103、123、143 記憶部
88、108、128、148 記録媒体
90 振分制御プログラム
110 仮想マシン制御プログラム
130 セッション管理プログラム
150 スケールインプログラム

Claims (6)

  1. 受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
    前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
    受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
    前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
    処理をコンピュータに実行させることを特徴とするセッション管理プログラム。
  2. 前記停止対象の仮想マシンにより送信される前記停止対象の仮想マシンが保持する全セッションの受信を開始した後に、前記他のマシンより前記セッションの識別情報を受け付けた場合で、かつ前記セッションの識別情報に対応するセッションが未受信である場合に、前記仮想マシン識別情報により識別される仮想マシンに前記取得要求を通知する、
    ことを特徴とする請求項1に記載のセッション管理プログラム。
  3. 受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、
    前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付け、
    受け付けた前記仮想マシン識別情報により識別される仮想マシンに、受け付けた前記セッションの識別情報により識別されるセッションの取得要求を通知し、
    前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する、
    処理をコンピュータが実行することを特徴とするセッション管理方法。
  4. 受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、
    受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、
    前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、
    を含むことを特徴とする情報処理装置。
  5. 受け付けたリクエストに応じた処理を実行する複数の仮想マシンのうち、停止対象の仮想マシンを識別する仮想マシン識別情報を受け付け、かつ前記複数の仮想マシンのうちの他の仮想マシンより、該他の仮想マシンが処理を実行する際に用いるセッションのうち、該仮想マシンが有していないセッションの識別情報を受け付ける受付部と、受け付けられた前記仮想マシン識別情報により識別される仮想マシンに、受け付けられた前記セッションの識別情報により識別されるセッションの取得要求を通知する通知部と、前記セッションの識別情報により識別されるセッションを取得すると、取得した前記セッションを前記他の仮想マシンに送信する送信部と、を含む情報処理装置、及び
    前記仮想マシン識別情報を、リクエストを前記複数の仮想マシンの何れかに振り分ける負荷分散装置及び前記情報処理装置に送信する送信部を含む監視装置、
    を備えたことを特徴とする情報処理システム。
  6. 前記仮想マシン識別情報を受け付けた場合に、前記仮想マシン識別情報により識別される仮想マシンに対するリクエストの振り分けを停止する振分部を含む前記負荷分散装置を更に備えた、
    ことを特徴とする請求項5に記載の情報処理システム。
JP2017000181A 2017-01-04 2017-01-04 セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム Expired - Fee Related JP6816511B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017000181A JP6816511B2 (ja) 2017-01-04 2017-01-04 セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム
US15/849,918 US10992760B2 (en) 2017-01-04 2017-12-21 Information processing system, session management method, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017000181A JP6816511B2 (ja) 2017-01-04 2017-01-04 セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2018109867A JP2018109867A (ja) 2018-07-12
JP6816511B2 true JP6816511B2 (ja) 2021-01-20

Family

ID=62711835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017000181A Expired - Fee Related JP6816511B2 (ja) 2017-01-04 2017-01-04 セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム

Country Status (2)

Country Link
US (1) US10992760B2 (ja)
JP (1) JP6816511B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246222A (zh) * 2018-09-21 2019-01-18 郑州云海信息技术有限公司 服务请求处理方法、装置、系统及计算机可读存储介质
US10841226B2 (en) * 2019-03-29 2020-11-17 Juniper Networks, Inc. Configuring service load balancers with specified backend virtual networks
JP2022018672A (ja) * 2020-07-16 2022-01-27 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
US11973836B1 (en) 2022-11-08 2024-04-30 Sap Se Coordinated shutdown of cloud computing applications with session handover

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US8583601B1 (en) * 2007-09-28 2013-11-12 Emc Corporation Imminent failure backup
US8856317B2 (en) * 2010-07-15 2014-10-07 Cisco Technology, Inc. Secure data transfer in a virtual environment
JP2012103879A (ja) * 2010-11-10 2012-05-31 Hitachi Ltd セッション管理方法、セッション管理システム及びプログラム
JP2012108685A (ja) * 2010-11-17 2012-06-07 Hitachi Ltd 負荷分散システム
JP2014220675A (ja) * 2013-05-09 2014-11-20 日本電信電話株式会社 通信制御システム
US10348812B2 (en) * 2015-06-22 2019-07-09 Vmware Inc. Sticky session data migration

Also Published As

Publication number Publication date
US10992760B2 (en) 2021-04-27
US20180191840A1 (en) 2018-07-05
JP2018109867A (ja) 2018-07-12

Similar Documents

Publication Publication Date Title
JP6816511B2 (ja) セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
CN106453460B (zh) 一种文件分发方法、装置和系统
US20180176289A1 (en) Information processing device, information processing system, computer-readable recording medium, and information processing method
CN109981768B (zh) 分布式网络存储系统中的io多路径规划方法及设备
US20120331084A1 (en) Method and System for Operation of Memory System Having Multiple Storage Devices
US9736235B2 (en) Computer system, computer, and load balancing method
JP2017129935A (ja) サーバシステム、サーバシステムを制御する方法およびプログラム。
US10812390B2 (en) Intelligent load shedding of traffic based on current load state of target capacity
US20190065262A1 (en) Information processing apparatus, processing distribution method, and storage medium
US20100293266A1 (en) System and method for dynamic control of network management traffic loads
US10516628B2 (en) Transfer device, transfer system, and transfer method
CN108833276B (zh) 优选路径的确定方法及装置、服务器
WO2017040604A1 (en) Systems and methods for remote network topology discovery
JP5544521B2 (ja) 状態管理方法、処理装置、および状態管理プログラム
JP5061671B2 (ja) 演算プログラム、分散処理プログラム、分散処理システムおよび演算処理方法
CN105049463A (zh) 分散数据库、数据共享方法、用于分散数据库的装置
CN107493308B (zh) 一种发送消息的方法和装置及分布式设备集群系统
JP2018013994A (ja) プログラム、コンピュータ及び情報処理方法
JP5747770B2 (ja) データ格納制御装置、データ格納制御プログラムおよびデータ格納制御方法
KR102248991B1 (ko) 블록체인 네트워크의 이웃 노드 연결 제어 장치, 방법 및 프로그램
JP4616035B2 (ja) サーバ負荷分散プログラム,装置および方法
JP6335153B2 (ja) コンピュータ装置、制御方法およびプログラム
JP4909830B2 (ja) サーバアプリケーション監視システム及び監視方法
US9178771B2 (en) Determining the type of a network tier

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R150 Certificate of patent or registration of utility model

Ref document number: 6816511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees