[go: up one dir, main page]

JP2017033331A - 代理応答プログラム、代理応答装置及び代理応答方法 - Google Patents

代理応答プログラム、代理応答装置及び代理応答方法 Download PDF

Info

Publication number
JP2017033331A
JP2017033331A JP2015153247A JP2015153247A JP2017033331A JP 2017033331 A JP2017033331 A JP 2017033331A JP 2015153247 A JP2015153247 A JP 2015153247A JP 2015153247 A JP2015153247 A JP 2015153247A JP 2017033331 A JP2017033331 A JP 2017033331A
Authority
JP
Japan
Prior art keywords
virtual machine
suspended
response
access
communication
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.)
Pending
Application number
JP2015153247A
Other languages
English (en)
Inventor
一真 北野
Kazuma Kitano
一真 北野
陽介 近藤
Yosuke Kondo
陽介 近藤
凌 清水
Ryo Shimizu
凌 清水
智 大柚
Satoshi Oyu
智 大柚
知昭 増田
Tomoaki Masuda
知昭 増田
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 JP2015153247A priority Critical patent/JP2017033331A/ja
Priority to US15/214,537 priority patent/US10191760B2/en
Publication of JP2017033331A publication Critical patent/JP2017033331A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

【課題】サスペンドまたは一時停止中の仮想マシンへのアクセスについてタイムアウトが発生することを抑制する。【解決手段】コンピュータに、仮想マシンのアイドル状態が検知された場合、仮想マシンをサスペンドまたは一時停止することを依頼し、仮想マシンをサスペンドまたは一時停止するときに、端末装置と仮想マシンとの間の通信を制御する通信制御装置の設定情報を、端末装置からサスペンドまたは一時停止される仮想マシンに対するアクセスをコンピュータに転送するように変更し、サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、サスペンドまたは一時停止された仮想マシンによる端末装置に対する通信応答に関する通信応答設定情報に基づいて、端末装置に対する応答を送信し、アクセスの転送に応答して、サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、ことを有する処理を実行させる代理応答プログラム。【選択図】図5

Description

本発明は、代理応答プログラム、代理応答装置及び代理応答方法に関する。
クラウドコンピューティングは、データセンタ内の物理マシン(情報処理装置)上に仮想化基盤(以下ハイパーバイザ)により複数の仮想マシンを配備し、配備された仮想マシンでサービスシステムを構築する。そして、サービスシステムを利用する利用者の端末装置は、ネットワークを介して仮想マシンにアクセスしサービスシステムを利用する。利用者は、物理マシン上に必要な仮想マシンを配備することで所望のサービスシステムを構築することができ、物理マシンのハードウエアリソースを有効に活用しながら、所望のサービスシステムを柔軟に構築できる。
クラウドコンピューティングでは、物理マシン上に特定の仮想マシンを集約するなどにより、物理マシンであるハードウエアを効率的に利用することができ、省エネ、省資源化を図ることができる。例えば、ハイパーバイザは、CPU資源を複数の仮想マシンで共用させ、またCPUを使用していない仮想マシンからCPUを必要とする仮想マシンにCPUの割当を変更するなどを行う。また、メモリ資源についても、ハイパーバイザは、メモリ内の不要不急のデータを外部のストレージ装置に移動するなどしてメモリを解放し、メモリを必要とする仮想マシンに割当を変更する制御を行う。
近年、物理マシンの限られたハードウエアリソースを有効に利用するために、アイドル状態の仮想マシンをサスペンドまたは一時停止(ポーズ)することでCPUやメモリなどのリソースを動的に開放することが提案されている。この場合、ハイパーバイザは、開放したCPUやメモリをアクティブ状態の別の仮想マシンに割り当てる。そして、利用者が仮想マシンの使用を再開する際、サスペンドまたは一時停止した仮想マシンをレジューム(解除)して、開放したリソースを元に戻し、仮想マシンを通常稼働状態に復帰させることが求められる。以下の特許文献1には仮想マシンのサスペンドとレジュームが記載されている。
ここで、仮想マシンのサスペンドは、アプリケーションやOSレベルの動的サスペンドのようにCPUやメモリが解放されないものとは異なり、CPUやメモリの開放を伴う。
特開2010−224914号公報
しかしながら、仮想マシンでWebサービスシステムを構築する場合、クライアント端末からWebサービスシステムのAPI(Application Program Interface)にアクセスする事例が増えている。WebサービスのAPIは非同期処理が主流であり、Webサービスから通信応答がない場合のタイムアウト時間が非常に短く(たとえば3秒程度)、サスペンドされた仮想マシンのWebサービスに送信されてくるアクセス要求に適切に応答することが困難になっている。非同期処理では、クライアント端末からWebサービスのAPIに対して何らかの要求を送信してきた場合、Webサービスは、短時間で受信応答をクライアント端末に返信し、バックグランドで要求に対する処理を実行する。
しかしながら、Webサービスシステムを構築する仮想マシンを、それがアイドル状態の場合サスペンドして物理マシンのハードウエアのリソースを有効活用しようとした場合、クライアント端末からのAPIへの要求を受信してから仮想マシンをレジュームしたのでは、上記の短いタイムアウト時間内に応答することができない場合がある。
そこで、第1の側面では、仮想マシンをサスペンドした場合に、クライアント端末からのサスペンドまたは一時停止中の仮想マシン宛てに送信されるアクセスに適切なタイミングで応答する代理応答プログラム、代理応答装置及び代理応答方法を提供することを目的とする。
一つの開示は、コンピュータに、仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを前記コンピュータに転送するように変更し、前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、ことを有する処理を実行させる代理応答プログラムである。
一つの側面によれば、仮想マシンをサスペンドまたは一時停止した場合、代理応答プログラムにより、クライアント端末からのアクセスに適切なタイミングで応答する。
本実施の形態における代理応答装置と仮想マシン群を有するクラウドコンピューティングシステムの概略を示す図である。 仮想マシンVM03の構成例を示す図である。 代理応答装置24の構成例を示す図である。 仮想マシンVM03のWebサービスの非同期処理を示すフローチャート図である。 本実施の形態における全体の動作の概略を示すシーケンス図である。 図5の処理S1のより詳細なシーケンス図である。 図5の処理S2の詳細なシーケンス図である。 代理応答装置24が保持するサスペンド仮想マシンテーブルの一例を示す図である。 代理応答装置24が採取した通信応答設定情報を登録した通信応答設定管理テーブルTBL4の具体例を示す図である。 代理応答装置の通信設定の変更例を示す図である。 クライアント端末から送信されたアクセスのパケットの一例を示す図である。 クライアント端末からのアクセスに対する代理応答装置の処理を示すフローチャート図である。 コネクション情報管理テーブルと代理受信データ管理テーブルの具体例を示す図である。
仮想マシンをサスペンドするとは、ゲストOSで開いていた書類や起動していたアプリケーションなどをそっくりそのままの状態でディスクに保存して停止する動作であり、電源を落として再起動しても元の状態に戻すことができる。また、仮想マシンを一時停止(ポーズ)するとは、ゲストOSで開いていた書類や起動していたアプリケーションなどをメモリに保存して停止するので、一時停止に要する時間は短いが、電源を落とすと再起動しても元の状態に戻すことはできない。但し、サスペンドも一時停止もメモリ領域やCPU負荷を開放するのは同じである。また、サスペンドも一時停止もそれを解除することで元の状態で仮想マシンが動作を再開する。
以下の実施の形態では、サスペンドと一時停止を合わせてサスペンドと称して説明する。
図1は、本実施の形態における代理応答装置と仮想マシン群を有するクラウドコンピューティングシステムの概略を示す図である。クラウドコンピューティングシステムのサーバ施設SFには、物理マシンである情報処理装置PM1上にハイパーバイザHV1によって生成された複数の仮想マシンVM03,VM04,VM05を有する。これらの仮想マシンにより利用者が希望するサービスシステムが構築される。
例えば、図1の例では、仮想マシン14(VM03)によりWebサービスシステムが構築されている。物理マシンPM1は、図示されないが、複数の物理マシンを有し、それぞれの物理マシンPM1上に複数の仮想マシンが生成される。
また、サーバ施設SFには、物理マシンPM1上に生成する仮想マシンを管理する仮想マシン管理サーバ20と、仮想マシンがアイドル状態か否かを監視するアイドル監視装置22と、サスペンドされた仮想マシンに代わって代理応答する代理応答装置24とが、ハイパーバイザHV0により物理マシンPM0上に仮想マシンとして生成される。仮想マシン管理サーバ、アイドル監視装置、代理応答装置は、必ずしも仮想マシンである必要はなく、物理マシンでもよい。
物理マシンPM1上に生成された仮想マシンVM03,VM04,VM05らは、仮想マシンのネットワークNW_VM(以下第1のネットワークと称する。)を介して、通信制御装置12に接続される。第1のネットワークは、例えばLANまたはVLANである。図中、3つの仮想マシンそれぞれのIPアドレスの例(IP03,IP04,IP05)が示されている。さらに、代理応答装置24は、第1のネットワークNW_VMにも接続され、そのIPアドレスの例はIP14である。
一方、物理マシンPM0上に生成された仮想マシンである仮想マシン管理サーバ20、アイドル監視装置22、代理応答装置24は、管理用ネットワークNW_ADM(以下第2のネットワークと称する。)を介して通信制御装置12に接続される。第2ネットワークには、物理マシンPM0,PM1にも接続される。第2のネットワークも、例えばLANまたはVLANである。図中、3つの仮想マシンそれぞれのIPアドレスの例(IP10,IP12,IP13)が示されている。
通信制御装置12は、例えばネットワークスイッチであり、第1、第2のネットワークそれぞれについて、ネットワークに接続されている仮想マシンなどのIPアドレスとMACアドレスの対応を有するARP(Address Resolution Protocol、アープ)テーブルを有する。ARPテーブルは、通信制御装置が受信したアクセスのパケットを第1、第2のネットワーク内のどの仮想マシンに転送するかを規定する通信設定情報の一つである。
通信制御装置12は、インターネット(例えばVPN(Virtual Private Network))やイントラネットなどのネットワークNETを介して、例えば、クライアント端末10_1,10_2に接続された別の通信制御装置11に接続される。
全体の概略的な動作について、具体例を示しながら説明する。例えばクライアント端末10_1が仮想マシン管理サーバ20にアクセスして、希望する仮想マシンの起動を要求すると、仮想マシン管理サーバ20は、第2のネットワークNW_ADMを介して物理マシンPM1のハイパーバイザHV1に希望する仮想マシンの起動を依頼し、例えば仮想マシンVM03を起動させる。この仮想マシンVM03は、Webサービスシステムを構築し、自動ビルドWebサービスのプログラム(例jenkins)が動作している。そして、仮想マシンVM03によるWebサービスシステムは、クライアント端末からの、仮想マシンVM03のIPアドレス(IP03)を含むURLを有するアクセス要求を、受け付けるように設定されている。
一方、クライアント端末10_2には、例えば、ソースコード管理プログラム(例git)が動作し、あるプログラムのソースコードが更新された場合、自動ビルドWebサービスのジョブ実行用WebAPI(Jenkins)を呼び出すように設定されている。そこで、クライアント端末10_2が、仮想マシンVM03のURLを有するアクセスで、自動ビルドWebサービスのジョブ実行用WebAPIを呼び出すアクセスを、仮想マシンVM03に向けて送信すると、通信制御装置11,ネットワークNET、通信制御装置12を経由して、そのアクセスが仮想マシンVM03に届く。このアクセスに応答して、仮想マシンVM03のWebサービスプログラムがビルドジョブを実行する。
仮想マシン管理サーバ20は、第2のネットワークNW_ADMを介して、物理マシンPM1のハイパーバイザHV1から、仮想マシン群VM03−VM06の動作情報などの監視情報を受信する。また、アイドル監視装置22は、仮想マシン管理サーバ20が収集した仮想マシンの監視情報などに基づいて、どの仮想マシンがアイドル状態か否かを判定する。
仮想マシン管理サーバ20は、必要に応じて、監視中の仮想マシンについてサスペンド処理を、ハイパーバイザHV1に要求する。逆に、仮想マシン管理サーバ20は、サスペンド中の仮想マシンのレジューム処理を、ハイパーバイザHV1に要求する。これらの要求に応じて、ハイパーバイザHV1は、対象の仮想マシンを起動状態からサスペンド状態に制御し、逆にサスペンド状態の仮想マシンをレジュームする。
ハイパーバイザHV1は、ある仮想マシンのサスペンド要求を受信すると、対象の仮想マシンのゲストOSのメモリ内のデータとCPU内のコンテキスト(レジスタ値)をスワップファイルとして大容量のストレージに退避し、その仮想マシンに割り当てられていた物理マシンPM1のCPU及びメモリ領域を開放し、他の仮想マシンへ割当可能な状態にする。その結果、サスペンド対象の仮想マシンの動作が停止する。この仮想マシンのサスペンドは、CPUやメモリの開放を伴い、他の仮想マシンに割り当て可能な状態を生みだし、仮想マシンの起動状態を維持しながら行われる仮想マシンのゲストOSのサスペンドとは異なる。
また、ハイパーバイザHV1は、指定されたサスペンド中の仮想マシンのレジューム要求を受信すると、対象の仮想マシンを起動し、物理マシンPM1のCPU及びメモリ領域を確保し、ストレージに退避していたスワップファイルを確保したメモリ領域にロードし、CPU内のレジスタに設定する。
図1のクラウドコンピューティングシステムは、プライベートクラウド環境で構築されている。すなわち、クライアント端末との間のネットワークNETがプライベートなネットワークであり、クライアント端末10は、サーバ施設SFと同じ企業や行政組織などに属している。そのため、クライアント端末から攻撃されるおそれがなく、低コスト化の要請から、クライアント端末からサービスシステムを構築する仮想マシン群VM03−VM05に対し、NAT(Network Address Translation)装置などのセキュリティ機能を有する装置を介することなく、仮想マシンのIPアドレスで直接アクセス可能である。
上記のように、仮想マシンが直接外部のネットワークNETに接続されるプライベートクラウド環境化では、クライアント端末から送信されるアクセスは、仮想マシンVM03−VM05のIPアドレスに向けて送信されるので、仮想マシンをサスペンドすると、通信経路途中の通信制御装置12は、仮想マシンとの通信が不可能と判断しそのアクセスを破棄するおそれがある。
また、仮想マシンのレジューム処理時間を短くすることが考えられるが、レジューム処理では、ハイパーバイザHV1は、アクティブ状態の仮想マシンに割り当てられているCPUやメモリ領域を開放して、レジューム対象の仮想マシンに再割当する処理などを実行する。その場合、物理マシンPM1上で起動中の仮想マシンの動作状態に応じて、ハイパーバイザの動作負荷が動的に変化するので、このレジューム処理に要する時間は予測困難であり想定以上に長くなる場合がある。特に、サスペンドにより多くのリソースを開放できる仮想マシンは、逆にレジューム処理も長い時間を要することが予測される。
さらに、前述のとおり、Webサービスにおいて、クライアント端末からAPIを指定するアクセスに応答して、仮想マシンは非同期で処理し、通信応答がない場合のタイムアウト時間は短い。したがって、サスペンド中の仮想マシン宛てのアクセスが発生すると、レジューム処理に要する時間がタイムアウト時間を超えて長くなる場合、アクセスに対して最初の応答をタイムアウト時間内に返信することができない。
そこで、本実施の形態では、代理応答装置24を設ける。代理応答装置24は、第2のネットワークNW_ADMを介して仮想マシン管理サーバにアイドル状態の仮想マシンのサスペンドを依頼し、通信制御装置12のネットワーク設定を変更してサスペンドする仮想マシン宛てのアクセスが代理応答装置に届くようにする。そして、代理応答装置は、クライアント端末が送信したサスペンド中の仮想マシン宛てのアクセスを第1のネットワークNW_VMを経由して受信し、そのアクセスに対して代理応答し、代理応答と並行してサスペンド中の仮想マシンのレジュームを仮想マシン管理サーバに依頼する。そして、代理応答装置は、通信制御装置のネットワーク設定を元に戻し、代理応答した接続履歴や応答履歴のデータをレジューム後の仮想マシンに転送して、仮想マシンにWebサービスを引き継がせる。これらの動作は後で詳述する。なお、上述した仮想マシンのサスペンド以外に、例えば、仮想マシンの一時停止が行なわれる場合も本実施の形態が適用可能である。
図2は、仮想マシンVM03の構成例を示す図である。本実施の形態では、仮想マシンVM03は、Webサービスシステムを構築する。仮想マシンVM03は、ハイパーバイザHV1によって割り当てられたCPU141、メモリ142、ネットワークインターフェース(NIC)143、補助記憶装置であるストレージ144を有する。NIC143は、IPアドレスがIP03であり、第1のネットワークNW_VMに接続されている。そして、ストレージ144内には、WebサービスプログラムWEB_PRG、ゲストOS(G−OS1)、種々の通信応答設定情報TBL141、コネクションログLOG1、受信ログLOG2などが格納されている。
通信応答設定情報TBL141は、通信プロトコルがTCP/IP、HTTPの場合であれば、アクセスが許可されている送信元IPアドレスや開放している送信先ポート番号などを含むファイアウオール設定、アクセスが許可されるURLを含むWebサーバ設定、アクセスが許可される認証情報、そして、アプリケーションの応答設定(アクセス内のメソッド(一種のコマンド)に対する応答内容)などが含まれる。
コネクションログLOG1は、例えば、仮想マシンVM03への全てのアクセスのログを有し、受信ログLOG2は、例えば、アクセスに含まれている要求内容と応答内容を有する。
図3は、代理応答装置24の構成例を示す図である。代理応答装置24は、例えばハイパーバイザHV1によって割り当てられたCPU241、メモリ242、ネットワークインターフェース(NIC)243、ストレージ244を有する。NIC243には、第1のネットワークNW_VMと、第2のネットワークNW_ADMの両方が接続され、それぞれのIPアドレスはIP13,IP14である。そして、ストレージ244内には、代理応答プログラムRRES_PRG、ゲストOS(G−OS2)、サスペンド仮想マシン管理テーブルTBL3、通信応答設定管理テーブルTBL4、コネクション管理テーブルTBL5、代理受信データ管理テーブルTBL5などが格納されている。
代理応答プログラムは、代理応答装置がサスペンド中の仮想マシン宛てのアクセスに代理応答する基本的な動作を規定する。サスペンド仮想マシン管理テーブルTBL3は、サスペンド中の仮想マシンを特定する情報(仮想マシンIDやIPアドレスなど)を格納する。通信応答設定管理テーブルTBL4は、代理応答装置がサスペンドされる仮想マシンから採取した通信応答設定情報TBL141の情報を格納する。コネクション管理テーブルTBL5は、例えば、代理応答装置が受信した全てのアクセスのログを有し、代理受信データ管理テーブルTBL6は、例えば、アクセスに含まれている要求内容と応答内容を有する。
図4は、仮想マシンVM03のWebサービスの非同期処理を示すフローチャート図である。非同期処理は、仮想マシンVM03内のWebサービスプログラムWEB_PRGの機能の一つである。仮想マシンは、WebサービスのAPI用のURLへの処理要求を有するアクセスを受信すると(S10のYES)、アクセス元のクライアント端末に応答メッセージを返信する(S11)。この応答メッセージは、要求されている処理が完了する前にタイムアウト時間内で返信する。そして、仮想マシンはAPIを実行する(S12)。
APIを実行中に、アクセス元のクライアント端末から処理状態確認API宛てのアクセスを受信すると(S13のYES)、仮想マシンVM03は、現在の処理状態を返信する(S14)。そして、API処理が終了しない間は(S15のNO)、処理S13,S14を繰り返す。
API処理が終了すれば(S15のYES)、仮想マシンVM03は、処理結果をアクセス元のクライアント端末に返信する(S16)。
後述するとおり、仮想マシンは、Webサービスの別のURLへの処理要求(例えばトップページの表示要求)を有するアクセスを受信した場合も、同様に、短時間で応答メッセージを返信した後、処理要求に対応する応答を返信する。
[本実施の形態における全体の動作]
図5は、本実施の形態における全体の動作の概略を示すシーケンス図である。図5には、アイドル状態検知装置22が仮想マシン14のアイドル状態を検知してから代理応答装置24がアイドル状態の仮想マシン14をサスペンドして代理応答状態になるまでの処理S1と、サスペンドされた仮想マシン14宛てのアクセスを開始してから代理応答装置24が代理応答し仮想マシン14のレジュームが完了するまでの処理S2とが示される。
[サスペンドし代理応答状態までの処理S1]
図6は、図5の処理S1のより詳細なシーケンス図である。また、図7は、図5の処理S2の詳細なシーケンス図である。以下、図5,図6を参照して、処理S1について説明する。
処理S1では、アイドル状態検知装置22が、仮想マシン管理サーバ20が収集した仮想マシンの状態情報などに基づいて、アイドル状態の仮想マシンを検知する(S20)。各仮想マシンVM03−VM05がアイドル状態か否かの判断方法の一例は、例えば特開2014−191368号公報に記載され、その記載を引用により本明細書の開示に含める。これによれば、処理を実行しないモニタ用仮想マシンを同じ物理マシンPM1上に起動し、モニタ用仮想マシンの動作状態(例えば、CPU使用量、メモリ使用量、データI/O量、データ転送量)を収集し、モニタ用仮想マシンの動作状態と相関する仮想マシンはアイドル状態にあると判断する。
アイドル状態検知装置22は、仮想マシン14がアイドル状態であることを検知すると、代理応答装置24にその旨を通知する(S21)。この通知には、アイドル状態の仮想マシンのIDやIPアドレスなど、その仮想マシンを一意に識別できる情報が含まれる。これに応答して、代理応答装置24は、第1のネットワークNW_VM経由で、仮想マシン14内のエージェントプログラム(図示せず)を介して仮想マシンの通信応答設定情報を採取する(S22)。
そして、代理応答装置24は、アイドル状態と通知された仮想マシンのID情報を、図3に示したサスペンド仮想マシンテーブルTBL3に追加する(S22_1)さらに、採取した通信応答設定情報を、図3に示した通信応答設定管理テーブルTBL4に新たなサスペンド中仮想マシンのレコードとして追加する(S22_2)。
図8は、代理応答装置24が保持するサスペンド仮想マシンテーブルの一例を示す図である。図8には、仮想マシン管理テーブルTBL1と、アクティブ仮想マシン管理テーブルTBL2と、サスペンド仮想マシン管理テーブルTBL3とが示される。仮想マシン管理テーブルTBL1は、例えば、仮想マシン管理サーバ20が保持する。このテーブルには、仮想マシンのID(VM_ID)と、それぞれのIPアドレスと、それぞれの状態(アクティブかサスペンドか)が格納される。
アクティブ仮想マシン管理テーブルTBL2には、アクティブ状態の仮想マシンについて、アクティブ仮想マシンID(アクティブVM_ID)と、仮想マシンのID(VM_ID)と、それぞれのIPアドレスと、それぞれの状態(アクティブかサスペンドか)が格納される。図8の例では、仮想マシンVM04,VM05がアクティブ状態の仮想マシンとして登録されている。アクティブ管理マシン管理テーブルTBL2は、例えば、仮想マシン管理サーバ20が保持する。
そして、サスペンド仮想マシン管理テーブルTBL3には、サスペンド状態の仮想マシンについて、サスペンド仮想マシンID(サスペンドVM_ID)と、仮想マシンのID(VM_ID)と、それぞれのIPアドレスと、それぞれの状態(アクティブかサスペンドか)が格納される。図8の例では、仮想マシンVM03、VM06がサスペンド状態の仮想マシンとして登録されている。サスペンド仮想マシン管理テーブルTBL3は、例えば、仮想マシン管理サーバ20と、アイドル状態検知装置22と、代理応答装置24が、共に保持し、アイドル状態検知装置22からのアイドル状態の通知に基づいて更新される。
代理応答装置が仮想マシンから採取する仮想マシンの通信応答設定情報の例は、例えば以下のとおりである。この例は、仮想マシン14(VM03)へのアクセスが、TCP/IPとHTTPの通信プロトコルで行われると仮定する。
採取する通信応答設定情報は、以下を含む。
(1)ファイアアウォール設定(例えば、Linux(登録商標)の/etc/sysconfi/iptablesの情報)に含まれる、アクセスが許可される送信元IPアドレスや解放している送信先ポート番号
(2)Webサーバ設定(例えば、Linuxの/etc/httpd/confの情報)に含まれる、アクセスが許可されるURL
(3)認証設定 (例えば、Linuxの/etc/httpd/htpasswdの情報)に含まれる、アクセスが許可されるアカウント情報(IDとパスワードなどの認証情報)
(4)アプリケーション応答設定(例えば、プログラムjenkinsの/etc/jenkins/comfing.xmlの情報)
上記の通信応答設定は、仮想マシン14(VM03)のWebサービスへのアクセスを許可するための情報である、接続先IPアドレス(IPプロトコル)、ポート番号(TCPプロトコル)、URLとアカウント情報(HTTPプロトコル)を有し、さらに、アプリケーションレベルの通信応答設定の情報を含む。採用されるプロトコルの種類に応じて、上記の通信応答設定の情報は異なる。例えば、sshプロトコルによるアクセスの場合、通信応答設定情報には接続元として許可するサーバ鍵情報なども含まれる。
図6に戻り、代理応答装置24は、サスペンド仮想マシン管理テーブルのサスペンド仮想マシンと関連付けて、採取した通信応答設定情報を、自身が保持する通信応答設定管理テーブルに、新たなサスペンド中仮想マシンのレコードとして追加する(S22_2)。通信応答設定管理テーブルの具体例は、以下のとおりである。
図9は、代理応答装置24が採取した通信応答設定情報を登録した通信応答設定管理テーブルTBL4の具体例を示す図である。図9には、サスペンドVM_IDが「S00003」の仮想マシンVM03から採取した通信応答設定情報の具体例が示される。
まず、テーブルTBL4には、仮想マシン14(VM03)のID「VM03」(またはIPアドレス「IP03」(図示せず))と、アクセスが許可されている送信元IPアドレス「IP001」「IP002」と、MACアドレス「MAC03」が登録される。MACアドレスは、仮想マシン14のNICに設定されているMACアドレスである。また、IPアドレスは、IPプロトコルのヘッダに含まれるアクセス元IP情報である。
さらに、テーブルTBL4には、TCPアクセス設定として、開放されているポート番号「8080」が記憶される。テーブル内のTCPアクセス設定によれば、アクセスのTCPヘッダ内のポート番号が「8080」の場合はアクセスを許可され、それ以外のポート番号「*」の場合は拒否される。
また、テーブルTBL4には、HTTPアクセス設定が2つ記憶される。第1の設定は、アクセスのURLが「URL1」の場合、認証されることはなく(Auth=None)、HTTPコマンドの一種である接続メソッドが「GET」であればアクセスを許可され、例えば初期画面のHTMLファイルをクライアント端末に返信する設定である。第2の設定は、アクセスのURLが「URL2」で要求するAPIが「Jenkins」の場合、認証がBASIC認証で行われ、その際のアカウント情報(認証情報)はUserIDが「admin」、パスワードが「*****」であり、接続メソッドが「POST」であればアクセスを許可され、その接続メソッド「POST」のデータDATA2に応じた処理が実行されるという設定である。
テーブル内のアプリケーション設定によれば、HTTPアクセス設定の第1の設定の場合、URLと接続メソッドが一致すれば認証情報による認証を省略して、レスポンスコード「200 OK」を返信することが設定されている。また、第2の設定の場合、URLと接続メソッドが一致し、認証情報による認証もパスすれば、レスポンスコード「202 Accepted」を返信することが設定されている。さらに、第2の設定の場合、アプリケーションは、接続メソッド「POST」のデータDATA2が「name=job001」の場合は「POST」の要求に対しイネーブルになり、「name=job002」の場合はディセーブルになることが設定されている。
図5,6に戻り、代理応答装置24は、通信制御装置12の通信設定を、仮想マシン14宛てのアクセスを代理応答装置24に転送するよう変更する(S23)。具体的には、通信制御装置12が保持するARPテーブルやルーティングテーブルを変更する。
図1、図3に示したとおり、代理応答装置24のNICは、仮想マシン14(VM03)のLAN、NET_VMにも接続されている。そこで、具体例として、通信制御装置のARPテーブルを次のように変更する。
図10は、代理応答装置の通信設定の変更例を示す図である。図10には、変更前のARPテーブルTBL10と変更後のARPテーブル11の例が示されている。変更前のARPテーブルTBL10では、仮想マシン14(VM03)のIPアドレス「IP03」に対して、仮想マシン14(VM03)のMACアドレス「MAC03」が設定されている。これにより、通信制御装置12は、仮想マシン14(VM03)のIPアドレス「IP03」をアクセス先とするIPパケットに、仮想マシン14(VM03)のMACアドレス「MAC03」を送信先MACアドレスとして付加して、第1のネットワークNET_VM内の仮想マシン14(VM03)に転送する。または、通信制御装置12は、MACアドレス「MAC03」に対応するポートからIPパケットを出力する。
変更後のARPテーブルTBL11では、仮想マシン14(VM03)のIPアドレス「IP03」に対して、代理応答装置24のMACアドレス「MAC05」が設定されている。これにより、変更後、通信制御装置12は、仮想マシン14(VM03)のIPアドレス「IP03」をアクセス先とするIPパケットに、代理応答装置24のMACアドレス「MAC05」を送信先MACアドレスとして付加して、第1のネットワークNET_VM内の代理応答装置24に転送することになる。または、通信制御装置12は、MACアドレス「MAC05」に対応するポートからIPパケットを出力することになる。
図5,図6に戻り、代理応答装置24は、アイドル状態の通知S21で通知されたアイドル状態の仮想マシンID(またはIPアドレス)に対応する仮想マシンをサスペンドするよう、仮想マシン管理サーバ20に依頼する(S24)。これに応答して、仮想マシン管理サーバ20は、仮想マシン管理テーブルTBL1を参照して、対象の仮想マシン14(VM03)をサスペンドするよう、仮想マシン14(VM03)を生成するハイパーバイザHV1に要求する(S25)。そして、サスペンド後、代理応答装置24は、サスペンド完了通知を受信する(S26)。サスペンド処理は前述したとおりである。
以上により、代理応答装置24は、仮想マシン14(VM03)宛てのアクセスに対して代理応答可能な状態になる(S27)。
[代理応答し仮想マシンのレジュームが完了するまでの処理S2]
図5,図7を参照して、代理応答装置による代理応答処理と、仮想マシン14をレジュームするまでの処理について説明する。
図11は、クライアント端末から送信されたアクセスのパケットの一例を示す図である。パケットPK1は、IPプロトコルについて送信元IPアドレス「IP002」と送信先IPアドレス「IP03」を、TCPプロトコルについて送信元ポート番号「67883」と送信先ポート番号「8080」を有する。さらに、パケットPK1は、HTTPプロトコルについて、送信先URL「URL1」と接続メソッド「GET」を有する。これらは、それぞれのプロトコルのヘッダ(IPヘッダ、TCPヘッダ、HTTPヘッダ)に格納される。したがって、パケットPK1は、図9の通信応答設定管理テーブルTBL4のHTTPアクセス設定に含まれる、第1のアクセス設定に対応するパケットである。
パケットPK2は、IPプロトコル、TCPプロトコルについての情報は、パケットPK1と同じであり、HTTPプロトコルについて、送信先URL「URL2/Jenkins」、認証種類「BASIC」、認証情報(アカウント情報)「User=Admin、PW=*****」、接続メソッド「POST」を有する。さらに、接続メソッド「POST」に添付されるデータ「DATA2(job001)」を有する。パケットPK2は、図9の通信応答設定管理テーブルTBL4のHTTPアクセス設定に含まれる、第2のアクセス設定に対応するパケットである。
図5,図6に戻り、クライアント端末10が、仮想マシン14(VM03)のWebサービス宛てのアクセスを開始する(S30)。このアクセスは、例えば、図11に示したパケットである。通信制御装置12は、このアクセスのパケットの送信先IPアドレスが「IP03」であるので、自身が保有するARPテーブルTBL11を参照し、IPアドレス「IP03」に対応して登録されているMACアドレス「MAC05」に、第1のネットワークNW_VMを介してパケットを転送する。
代理応答装置14は、受信したアクセスが接続を許可するか否かの判定と、許可できる場合にどのような応答メッセージを返信すべきかの判断を行う。
図12は、クライアント端末からのアクセスに対する代理応答装置の処理を示すフローチャート図である。図12の各工程番号は、図7内の工程S40,S42,S43に対応する処理であることを示す。
代理応答装置24は、クライアント端末から送信されたアクセスのパケットの受信に応答して、図8のサスペンド仮想マシン管理テーブルTBL3を参照し、パケット内の送信先IPアドレス「IP03」に基づいて、IPアドレス「IP03」に対応する仮想マシンがサスペンド中の仮想マシンとして登録されているか確認する(S40)。存在しない場合(S40のNO)は、そのアクセス開始要求を破棄する。登録されている場合、サスペンド状態の仮想マシン14(VM03)宛てのアクセスであることを確認する。
次に、代理応答装置24は、自身が保持する通信応答設定管理テーブルTBL4を参照する(S41)。さらに、代理応答装置24は、通信応答設定管理テーブルTBL4に基づいて、代理受信したアクセスの通信を許可するか否かを判定する(S42)。具体的には、図12に示されるとおり、受信パケット内の送信元IPアドレスが、通信応答設定管理テーブルTBL4内のアクセスを許可されているIPアドレス(図9中はIP001,IP002)と一致するか否か判定する(S42_1)。一致すれば接続先IPアドレスが正しいことが確認される。
さらに、図12に示されるとおり、受信パケット内の接続先ポート番号が、通信応答設定管理テーブルTBL4内のTCPアクセス設定内のポート番号「8080」と一致するか否か判定する(S42_2)。一致すれば接続先ポート番号が正しいことが確認される。いずれかが一致しない場合、そのアクセス要求は正しくないので、例えば、アクセス要求のパケットを破棄し、何も応答しない。ここまではTCP/IPプロトコルに基づいてアクセス要求を許可するか否かの判定である。
代理応答装置24は、代理受信したアクセス要求を許可すると判定したら(S42)、次に、通信応答設定テーブルTBL4に基づいて、アクセス要求に対してどのような応答メッセージを返信すべきかの判断を行う(S43)。この応答内容の判断S43は、HTTPプロトコルに基づいて行われる。
具体的には、図12に示されるとおり、代理応答装置24は、受信パケットのHTTPヘッダ内の接続先URLと、通信応答設定管理テーブルTBL4のHTTPアクセス設定内の接続先URLとが一致するか否か判定する(S43_1)。一致すれば接続先URLが正しいことを確認する(S43_1のYES)。不一致であれば、接続先URLが正しくないことを確認する(S43_1のNO)。この場合、レスポンスコード「404 Not Found」が応答内容であると判断され、その応答が返信される。
さらに、代理応答装置24は、受信パケットのHTTPヘッダ内の接続メソッドと、通信応答設定管理テーブルTBL3のHTTPアクセス設定内の、接続先URLに対応する接続メソッドとが一致するか否か判定する(S43_2)。例えば、図11の受信パケットPK1の場合は、URLが「URL1」で接続メソッドが「GET」であり、通信応答設定管理テーブルTBL4内の第1の設定における「URL1」に対応する接続メソッドも「GET」であるので、接続メソッドは一致すると判定される。図11の受信パケットPK2の場合も、同様の判断が行われる。不一致の場合(S43_2のNO)、レスポンスコード「405 Method Not Allowed」が応答内容であると判断され、その応答が返信される。
また、代理応答装置24は、認証情報が正しいか否かを判定する(S43_3)。例えば、図11の受信パケットPK2の場合は、認証種類「BASIC」とその認証情報「User=Admin, PW=*****」が、通信応答設定管理テーブルTBL3のHTTPアクセス設定内の第2の設定における認証種類「BASIC」とその認証情報「User=Admin, PW=*****」と一致すると判定される。一方、受信パケットPK1の場合は、認証種類と認証情報が含まれていないが、管理テーブルTBL3のHTTPアクセス設定内の第1の設定には認証設定がないので、一致すると判定される。不一致の場合(S43_3のNO)、レスポンスコード「401 Unauthorized」が応答内容であると判断され、その応答が返信される。
認証情報も正しい場合(S43_3のYES)、代理応答装置24は、通信応答設定管理テーブルTBL4内のアプリケーション設定に示されているレスポンスコード「200 OK」または「202 Accepted」のいずれかを、アクセス要求のURLに対応するレスポンスコードを応答内容と判断し、その応答を返信する。
上記のアクセス要求が正しくない場合の3つのレスポンスコードは、それぞれ、HTTPステータスコードで定義されている、パケットが要求するURLのリソースがない場合の「404 Not Found」、許可されてないメソッドの場合の「405 Method Not Allowed」、認証が正しくない場合の「401 Unauthorized」に対応する。したがって、代理応答装置24は、管理テーブルTBL3を参照することなくどのリスポンスコードで応答すべきか判断することができる。
一方、アクセス要求が正しい場合の2つのレスポンスコードについては、HTTPアクセス設定の第1の設定の場合の「200 OK」、第2の設定の場合の「202 Accepted」それぞれを、受信応答設定管理テーブルTBL4の設定に基づいて判断する。第1の設定は、接続先URLが「URL1」とのみ設定されAPI宛てではない。一方、第2の設定は、接続先URLが「URL2/Jenkins」でありAPI宛てである。第1の設定のようにAPI宛てでなくても、非同期処理してレスポンスコードを短時間で応答することがある。
代理応答装置24は、通信応答設定管理テーブルTBL4を参照して、受信パケットの内容と照合するだけであり、これらのレスポンスコードを短いタイムアウト時間内に返信することができる。これらのレスポンスコードは、代理応答装置が返信する最初の応答である。代理応答装置24は、仮に、応答内容を判断できない場合は、再送要求(リトライ要求)などを返信するようにしてもよい。
図7に戻り、代理応答装置24は、アクセス要求が適切であると判断して、レスポンスコード「200 OK」または「202 Accepted」を応答した場合、アクセスが要求している処理を行って必要な応答を行う必要がある。ただし、代理応答装置24は、アクセスが要求している処理を行うことはできない。
そこで、サスペンド中の仮想マシンをレジュームして代理応答を終了するために、代理応答装置24は、アクセス先のサスペンド中の仮想マシン14(VM03)のレジューム依頼を仮想マシン管理サーバ20に送信する(S31)。これに応答して、仮想マシン管理サーバ20は、仮想マシン14(VM03)のレジューム処理を物理マシンPM1のハイパーバイザHV1に依頼する(S32)。
そして、代理応答装置24は、自身が保持するコネクション情報管理テーブルにアクセス要求による接続を登録する(S44)。コネクション情報管理テーブルは、代理応答装置がサスペンド中の仮想マシンに代わって代理受信した全てのコネクションのログを格納する。また、代理応答装置24は、自身が保持する代理受信データ管理テーブルに代理受信内容と応答内容を含む代理受信ログを登録する(S45)。
図7の例では、代理応答装置24が決定した応答内容で代理応答を、クライアント端末宛てに返信している(S33)。さらに、クライアント端末から継続してアクセスが発生すると、代理応答装置24は、そのアクセスに対応する応答を決定し、代理受信データ管理テーブルにその代理受信内容を登録し(S44,S45)、再度代理応答を返信する(S33)。
そのうち、仮想マシン管理サーバ20が、仮想マシン14(VM03)のレジュームが完了したことをハイパーバイザHV1から受信すると(S34)、代理応答装置24にレジューム完了検知を送信する(S35)。これに応答して、代理応答装置24は、通信制御装置12に通信設定変更を要求する(S36)。通信制御装置12は、ARPテーブル内のIPアドレス「IP03」に対応するMACアドレスを代理応答装置の「MAC05」から仮想マシン14(VM03)の「MAC03」に書き換えて、図10のARPテーブルTBL11からTBL10に変更する。さらに、代理応答装置24は、コネクション情報管理テーブルTBL5と代理受信データ管理テーブルTBL6の情報を、レジュームした仮想マシン14(VM03)に転送し(S37)、仮想マシンはその情報を記憶する。
この結果、通信制御装置は、以降のIPアドレス「IP03」宛てのアクセス要求を、レジュームされた仮想マシン14(VM03)に転送する。また、仮想マシン14(VM03)は、コネクション情報と代理受信データを参照し、保留になっているアクセス要求に対する処理を実行し、処理結果をアクセス要求元のクライアント端末に返信する(S38)。例えば、仮想マシン14は、HTTPアクセス設定の第1の設定のURL1宛てのアクセス要求に対しては、初期画像のHTMLファイルを返信し、第2の設定のURL2/Jenkins宛てのアクセス要求に対しては、APIのJenkinsを実行し、実行結果を応答する。
代理応答装置24は、アクセスを受信した際、サスペンド仮想マシン管理テーブルを参照して、アクセス先の仮想マシンがサスペンド中であることを確認した時点で(S40)、その仮想マシンのレジューム依頼を仮想マシン管理サーバ20に送信してもよい。それにより、いち早く仮想マシンのレジューム処理を開始することができる。
図13は、コネクション情報管理テーブルと代理受信データ管理テーブルの具体例を示す図である。コネクション情報管理テーブルTBL5の例では、コネクションID(例えばセッションID)毎に、宛先の仮想マシンID、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、トランスポート層のプロトコルの種類、接続状態(切断または受信中)、応答状態(応答済み、未応答)などのコネクションログが記録される。この応答状態に応じて、仮想マシン14は、どのコネクションが未応答であるかを検出し、アクセスに対する応答内容を決定して応答する。
代理受信データ管理テーブルTBL6の例では、コネクションID毎に、受信データIDと、宛先の仮想マシンID、受信時刻、アプリケーション層のプロトコルの種類、URL、認証データ、受信データ、応答データなどの代理受信データとそれに対する応答内容のログが記録される。この応答データに応じて、仮想マシン14は、アクセス要求のどの処理を再開し、処理結果を応答すべきかを決定し、処理を再開することができる。
以上のとおり、本実施の形態によれば、物理マシン上に複数の仮想マシンを起動し、仮想マシンによるサービスシステムを構築するクラウドコンピューティングにおいて、複数のクライアント端末からアクセス要求を受けるサービスシステムの仮想マシンがアイドル状態の場合、その仮想マシンをサスペンドして仮想マシンのCPUやメモリのリソースを開放する。サスペンド中に発生するアクセス要求に対しては、代理応答装置がアクセス要求を受付、非同期処理して短時間で最初の応答を返信する。したがって、アクセス要求に対してタイムアウトが発生することが抑制され、レジューム後に仮想マシンがアクセス要求のAPIを実行しても、クライアント端末側によって通常の応答動作と区別されることはない。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
コンピュータに、
仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを前記コンピュータに転送するように変更し、
前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
ことを有する処理を実行させる代理応答プログラム。
(付記2)
前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、さらに、前記通信応答設定情報に基づいて、前記転送されたアクセスを許可できるか否かを確認し、前記転送されたアクセスの送信元及び送信先情報を有するコネクションデータを記録する、
ことを前記コンピュータに実行させる、付記1に記載の代理応答プログラム。
(付記3)
前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、さらに、前記通信応答設定情報に基づいて、前記転送されたアクセスに対する応答内容を識別し、前記転送されたアクセスの受信データと前記受信データ対応する前記端末装置に対する応答データとを記録する、ことを前記コンピュータに実行させる、付記2に記載の代理応答プログラム。
(付記4)
前記仮想マシンのレジュームが完了した際に、
前記通信制御装置の設定情報を前記変更前の状態に戻し、
記録した前記コネクションデータと前記受信データと前記応答データとを、前記レジュームが完了した仮想マシンに送信する、ことを前記コンピュータに実行させる、付記3に記載の代理応答プログラム。
(付記5)
前記仮想マシンをサスペンドまたは一時停止する際に、前記端末装置から前記通信応答設定情報を取得する、ことを前記コンピュータに実行させる、付記1に記載の代理応答プログラム。
(付記6)
前記通信制御装置の設定情報を変更することは、前記通信制御装置内の前記仮想マシンの第1のMACアドレスと前記仮想マシンの第1のIPアドレスの対応情報を、前記コンピュータの第2のMACアドレスと前記仮想マシンの第1のIPアドレスの対応情報に変更することを含む、付記1に記載の代理応答プログラム。
(付記7)
前記仮想マシンのサスペンドまたは一時停止は、前記仮想マシンのゲストオペレーティングシステムを前記仮想マシンが構築されている物理マシンのメモリから退避させて前記仮想マシンに割り当てられていたメモリとプロセッサとを開放することを含む、付記1に記載の代理応答プログラム。
(付記8)
前記仮想マシンと前記端末装置は、同じ企業体または組織体に属する、付記1に記載の代理応答プログラム。
(付記9)
前記端末装置に対する応答の送信を、非同期処理で前記コンピュータに実行させる、付記1に記載の代理応答プログラム。
(付記10)
仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを自身に転送するように変更し、
前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
処理を有する代理応答方法。
(付記11)
プロセッサと、
仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを自身に転送するように変更し、
前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
処理を前記プロセッサに実行させる代理応答プログラムと、を有する代理応答装置。
SF:サーバ施設
PM0,PM1:物理マシン、情報処理装置
VM03−VM05:仮想マシン
10:クライアント端末
12:通信制御装置、L3スイッチ
20:仮想マシン管理サーバ
22:アイドル監視装置
24:代理応答装置

Claims (9)

  1. コンピュータに、
    仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
    前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置からの前記サスペンドまたは一時停止される仮想マシンに対するアクセスを前記コンピュータに転送するように変更し、
    前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
    前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
    ことを有する処理を実行させる代理応答プログラム。
  2. 前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、さらに、前記通信応答設定情報に基づいて、前記転送されたアクセスを許可できるか否かを確認し、前記転送されたアクセスの送信元及び送信先情報を有するコネクションデータを記録する、
    ことを前記コンピュータに実行させる、請求項1に記載の代理応答プログラム。
  3. 前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、さらに、前記通信応答設定情報に基づいて、前記転送されたアクセスに対する応答内容を識別し、前記転送されたアクセスの受信データと前記受信データ対応する前記端末装置に対する応答データとを記録する、ことを前記コンピュータに実行させる、請求項2に記載の代理応答プログラム。
  4. 前記仮想マシンのレジュームが完了した際に、
    前記通信制御装置の設定情報を前記変更前の状態に戻し、
    記録した前記コネクションデータと前記受信データと前記応答データとを、前記レジュームが完了した仮想マシンに送信する、ことを前記コンピュータに実行させる、請求項3に記載の代理応答プログラム。
  5. 前記仮想マシンをサスペンドまたは一時停止する際に、前記端末装置から前記通信応答設定情報を取得する、ことを前記コンピュータに実行させる、請求項1に記載の代理応答プログラム。
  6. 前記仮想マシンのサスペンドまたは一時停止は、前記仮想マシンのゲストオペレーティングシステムを前記仮想マシンが構築されている物理マシンのメモリから退避させて前記仮想マシンに割り当てられていたメモリとプロセッサとを開放することを含む、請求項1に記載の代理応答プログラム。
  7. 前記仮想マシンと前記端末装置は、同じ企業体または組織体に属する、請求項1に記載の代理応答プログラム。
  8. 仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
    前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを自身に転送するように変更し、
    前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
    前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
    処理を有する代理応答方法。
  9. プロセッサと、
    仮想マシンのアイドル状態が検知された場合、前記仮想マシンをサスペンドまたは一時停止することを依頼し、
    前記仮想マシンをサスペンドまたは一時停止するときに、端末装置と前記仮想マシンとの間の通信を制御する通信制御装置の設定情報を、前記端末装置から前記サスペンドまたは一時停止される仮想マシンに対するアクセスを自身に転送するように変更し、
    前記サスペンドまたは一時停止された仮想マシンに対するアクセスが転送された場合、前記サスペンドまたは一時停止された仮想マシンによる前記端末装置に対する通信応答に関する通信応答設定情報に基づいて、前記端末装置に対する応答を送信し、
    前記アクセスの転送に応答して、前記サスペンドまたは一時停止された仮想マシンをレジュームすることを依頼する、
    処理を前記プロセッサに実行させる代理応答プログラムと、を有する代理応答装置。
JP2015153247A 2015-08-03 2015-08-03 代理応答プログラム、代理応答装置及び代理応答方法 Pending JP2017033331A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015153247A JP2017033331A (ja) 2015-08-03 2015-08-03 代理応答プログラム、代理応答装置及び代理応答方法
US15/214,537 US10191760B2 (en) 2015-08-03 2016-07-20 Proxy response program, proxy response device and proxy response method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015153247A JP2017033331A (ja) 2015-08-03 2015-08-03 代理応答プログラム、代理応答装置及び代理応答方法

Publications (1)

Publication Number Publication Date
JP2017033331A true JP2017033331A (ja) 2017-02-09

Family

ID=57986157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015153247A Pending JP2017033331A (ja) 2015-08-03 2015-08-03 代理応答プログラム、代理応答装置及び代理応答方法

Country Status (2)

Country Link
US (1) US10191760B2 (ja)
JP (1) JP2017033331A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109796A (ja) * 2017-12-20 2019-07-04 株式会社日立システムズ 仮想サーバリモート接続システムおよび仮想サーバリモート接続方法
JP2023532370A (ja) * 2020-07-06 2023-07-27 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウドコンピューティング環境における非同期操作の管理

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873516B (zh) * 2012-12-14 2018-02-16 中兴通讯股份有限公司 提高云计算资源池中物理服务器使用率的ha方法和系统
JP7030412B2 (ja) * 2017-01-24 2022-03-07 キヤノン株式会社 情報処理システム、及び制御方法
CN108632323A (zh) * 2017-03-24 2018-10-09 广州杰赛科技股份有限公司 虚拟机与终端通信分配方法、自动连接方法及系统
WO2020061805A1 (en) * 2018-09-26 2020-04-02 Intel Corporation Power Off and Power On Method and Apparatus For an In-Vehicle System
US10860363B1 (en) * 2019-03-14 2020-12-08 Amazon Technologies, Inc. Managing virtual machine hibernation state incompatibility with underlying host configurations
US11593168B2 (en) * 2019-06-26 2023-02-28 Red Hat, Inc. Zero copy message reception for devices via page tables used to access receiving buffers
US11677629B2 (en) * 2021-02-01 2023-06-13 Microsoft Technology Licensing, Llc Unobservable node identification
US11860802B2 (en) * 2021-02-22 2024-01-02 Nutanix, Inc. Instant recovery as an enabler for uninhibited mobility between primary storage and secondary storage
US11575656B1 (en) * 2022-02-09 2023-02-07 coretech It, UAB Customer data handling in a proxy infrastructure
CN115460106B (zh) * 2022-08-30 2023-06-30 南京赛宁信息技术有限公司 网络靶场中提高资源利用率的虚拟机监控方法与系统
CN117880368A (zh) * 2023-12-12 2024-04-12 天翼云科技有限公司 基于Jenkins的网络流量转发方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288285A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd サービス要求代行方法、サービス要求代行サーバ、及び、サービス要求代行システム
US20050044430A1 (en) * 2003-08-20 2005-02-24 Cheshire Stuart D. Method and apparatus for implementing a sleep proxy for services on a network
US20110307887A1 (en) * 2010-06-11 2011-12-15 International Business Machines Corporation Dynamic virtual machine shutdown without service interruptions
JP2012243096A (ja) * 2011-05-19 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> ゲストos管理装置、ゲストos管理方法及びゲストos管理プログラム
JP2014164479A (ja) * 2013-02-25 2014-09-08 Fujitsu Ltd 制御装置,制御方法,および制御プログラム
JP2015049838A (ja) * 2013-09-04 2015-03-16 カシオ電子工業株式会社 通信システム、通信制御装置、通信制御方法、および、プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5066542B2 (ja) 2009-03-24 2012-11-07 株式会社エヌ・ティ・ティ・データ インスタンス管理システム及びコンピュータプログラム
US9361145B1 (en) * 2014-06-27 2016-06-07 Amazon Technologies, Inc. Virtual machine state replication using DMA write records

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288285A (ja) * 2002-03-28 2003-10-10 Fujitsu Ltd サービス要求代行方法、サービス要求代行サーバ、及び、サービス要求代行システム
US20050044430A1 (en) * 2003-08-20 2005-02-24 Cheshire Stuart D. Method and apparatus for implementing a sleep proxy for services on a network
US20110307887A1 (en) * 2010-06-11 2011-12-15 International Business Machines Corporation Dynamic virtual machine shutdown without service interruptions
JP2012243096A (ja) * 2011-05-19 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> ゲストos管理装置、ゲストos管理方法及びゲストos管理プログラム
JP2014164479A (ja) * 2013-02-25 2014-09-08 Fujitsu Ltd 制御装置,制御方法,および制御プログラム
JP2015049838A (ja) * 2013-09-04 2015-03-16 カシオ電子工業株式会社 通信システム、通信制御装置、通信制御方法、および、プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109796A (ja) * 2017-12-20 2019-07-04 株式会社日立システムズ 仮想サーバリモート接続システムおよび仮想サーバリモート接続方法
JP2023532370A (ja) * 2020-07-06 2023-07-27 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウドコンピューティング環境における非同期操作の管理
JP7658685B2 (ja) 2020-07-06 2025-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション クラウドコンピューティング環境における非同期操作の管理

Also Published As

Publication number Publication date
US20170039083A1 (en) 2017-02-09
US10191760B2 (en) 2019-01-29

Similar Documents

Publication Publication Date Title
JP2017033331A (ja) 代理応答プログラム、代理応答装置及び代理応答方法
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
EP3405878B1 (en) Virtual network, hot swapping, hot scaling, and disaster recovery for containers
US10719369B1 (en) Network interfaces for containers running on a virtual machine instance in a distributed computing environment
US9817687B2 (en) System and method for isolated virtual image and appliance communication within a cloud environment
US8886927B2 (en) Method, apparatus and system for preventing DDoS attacks in cloud system
JP6047577B2 (ja) トラフィックディレクタ環境におけるロードバランシングおよびデータ圧縮の柔軟性を提供するためのシステムおよび方法
US10348812B2 (en) Sticky session data migration
US20100332212A1 (en) Method and apparatus for sleep and wake of computer devices
WO2014057380A2 (en) Virtual firewall mobility
US8549639B2 (en) Method and apparatus for diagnosing and mitigating malicious events in a communication network
WO2013145522A1 (ja) 情報処理装置、情報処理方法及びプログラム
US10110684B1 (en) Transparent network service migration across service devices
JP5983782B2 (ja) コンピュータシステム、通信制御サーバ、通信制御方法およびプログラム
WO2017210641A1 (en) Live migration of virtual machine
WO2023207189A1 (zh) 负载均衡方法及系统、计算机存储介质、电子设备
CN112398689A (zh) 网络恢复方法、装置、存储介质及电子设备
JP2008271242A (ja) ネットワーク監視装置、ネットワーク監視用プログラム、およびネットワーク監視システム
JP6489239B2 (ja) 通信装置、システム、方法、及びプログラム
JP2013218449A (ja) クラウドコンピューティングシステム
JP5736346B2 (ja) 仮想化装置、仮想化制御方法、仮想化装置制御プログラム
JP5590222B2 (ja) 情報処理装置、および障害対応プログラム
US20170017520A1 (en) System and control method
US20230146880A1 (en) Management system and management method
JP5691248B2 (ja) タスク引継プログラム、処理装置及びコンピュータ・システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190723