JP6959519B2 - 処理分散プログラム、処理分散装置及び処理分散方法 - Google Patents

処理分散プログラム、処理分散装置及び処理分散方法 Download PDF

Info

Publication number
JP6959519B2
JP6959519B2 JP2017213768A JP2017213768A JP6959519B2 JP 6959519 B2 JP6959519 B2 JP 6959519B2 JP 2017213768 A JP2017213768 A JP 2017213768A JP 2017213768 A JP2017213768 A JP 2017213768A JP 6959519 B2 JP6959519 B2 JP 6959519B2
Authority
JP
Japan
Prior art keywords
application
specific
cpu
specified
packet
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.)
Active
Application number
JP2017213768A
Other languages
English (en)
Other versions
JP2019086957A (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 JP2017213768A priority Critical patent/JP6959519B2/ja
Priority to US16/175,911 priority patent/US10715590B2/en
Publication of JP2019086957A publication Critical patent/JP2019086957A/ja
Application granted granted Critical
Publication of JP6959519B2 publication Critical patent/JP6959519B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Description

本発明は、処理分散プログラム、処理分散装置及び処理分散方法に関する。
仮想マシン(VM:Virtual Machine)を用いたクラウドサービスを提供する事業者(以下、クラウド事業者とも呼ぶ)は、目的に応じた情報処理システムの構築を行う利用者(以下、クラウド利用者とも呼ぶ)に対し、PaaS(Platform as a Service)やIaaS(Infrastructure as a Service)等の各クラウドサービスを提供する。
上記のような各クラウドサービスは、例えば、異なるデータセンターに配備された物理マシンにおいてそれぞれ提供される。そのため、複数のクラウドサービスを利用する情報処理システムが構築された場合、各クラウドサービス間における通信は、例えば、インターネット等の外部ネットワーク(以下、単にネットワークとも呼ぶ)を経由して行われる。
そこで、クラウド事業者は、例えば、各クラウドサービスを提供するデータセンターのそれぞれにゲートウエイ用の仮想マシン(以下、単にGWとも呼ぶ)を配備し、各クラウドサービス間における通信をVPN(Virtual Private Network)を経由させることによって行う。これにより、クラウド事業者は、複数のクラウドサービスを利用する業務システムが構築される場合であっても、各クラウドサービス間における通信のセキュリティを確保することが可能になる(例えば、特許文献1及び2参照)。
特開2012−221049号公報 特開2014−056335号公報
ここで、上記のような各GWでは、例えば、各クラウドサービス(各クラウドサービスを提供する仮想マシン)から送信されるパケットを、各パケットの送信元IPアドレス等から算出されたハッシュ値に基づいて振り分けるソフトウエア(例えば、RSS:Receive Side Scaling)が動作する。これにより、各GWは、例えば、各クラウドサービスから送信されたパケットに対応する処理を、各GWに割り当てられた仮想的なCPU(以下、VCPU:Virtual Central Computing Unitとも呼ぶ)に分散させて行わせることが可能になる。
しかしながら、各クラウドサービスから送信されるパケットは、各パケットの送信元IPアドレス等によって偏ったVCPUに振り分けられる場合がある。そのため、各GWは、この場合、各クラウドサービスから送信されるパケットに対応する処理を効率的に行うことができない。
そこで、クラウド事業者は、例えば、各パケットの送信元IPアドレス等を意図的に変更することにより、各パケットから算出されるハッシュ値を変更し、各パケットに対応する処理を行うVCPUの変更を行う。
しかしながら、各パケットの送信元IPアドレス等を変更するためには、例えば、クラウド利用者(テナント)によって生成されたアプリケーションの修正等が必要になる。そのため、クラウド事業者は、各パケットの振り分け先のVCPUを容易に変更することができない場合がある。
そこで、一つの側面では、本発明は、パケットの振り分け先のCPUを変更することを可能とする処理分散プログラム、処理分散装置及び処理分散方法を提供することを目的とする。
実施の形態の一態様では、所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得し、前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定し、前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出し、前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定し、前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定し、前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定し、特定した前記仮想マシンに対し、前記特定のアプリケーションを移動する、ことをコンピュータに実行させる。
一つの側面によれば、パケットの振り分け先のCPUを変更することを可能とする。
図1は、情報処理システム10の全体構成を示す図である。 図2は、仮想マシン3における処理の具体例について説明する図である。 図3は、GW用仮想マシン35aにおける処理の具体例について説明する図である。 図4は、管理装置1のハードウエア構成を示す図である。 図5は、管理装置1の機能のブロック図である。 図6は、第1の実施の形態における処理分散処理の概略を説明するフローチャート図である。 図7は、第1の実施の形態における処理分散処理の概略を説明するフローチャート図である。 図8は、第1の実施の形態における処理分散処理の概略を説明する図である。 図9は、第1の実施の形態における処理分散処理の概略を説明する図である。 図10は、第1の実施の形態における処理分散処理の概略を説明する図である。 図11は、第1の実施の形態における処理分散処理の概略を説明する図である。 図12は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図13は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図14は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図15は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図16は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図17は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図18は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図19は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。 図20は、仮想マシン情報133の具体例について説明する図である。 図21は、アプリケーション情報131の具体例について説明する図である。 図22は、GW情報132の具体例について説明する図である。 図23は、GW情報132の具体例について説明する図である。 図24は、仮想マシン情報133の具体例について説明する図である。 図25は、アプリケーション情報131の具体例について説明する図である。
[情報処理システムの構成]
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10は、管理装置1と、物理マシン2と、操作端末5とを含む。
操作端末5は、例えば、クラウド事業者が各種操作を行う1台以上の端末であり、インターネットやイントラネット等のネットワークを介して管理装置1や物理マシン2にアクセスを行う端末である。
物理マシン2は、1台以上の物理マシンによって構成され、例えば、CPU、メモリ(DRAM:Dynamic Random Access Memory)及びハードディスク(HDD:Hard Disk Drive)等を有する。そして、物理マシン2の物理リソース(以下、単にリソースとも呼ぶ)は、各処理を実行する複数の仮想マシン3に割当てられる。
仮想化ソフトウエア4(以下、ハイパーバイザ4とも呼ぶ)は、物理マシン2のCPU、メモリ及びハードディスク等を割当てることにより、仮想マシン3を生成する基盤ソフトウエアである。仮想化ソフトウエア4は、図1に示すように、例えば、物理マシン2において動作する。
管理装置1は、各仮想マシン3において動作するアプリケーションの移動等を行う。管理装置1は、例えば、1台以上の物理マシンによって構成される。また、管理装置1は、例えば、物理マシン2において動作する仮想マシン3の一部によって構成される。
[仮想マシンにおける処理の具体例]
次に、仮想マシン3における処理の具体例について説明を行う。図2は、仮想マシン3における処理の具体例について説明する図である。なお、以下、図1で説明した物理マシン2には、PaaSによるサービス(例えば、Cloud Foundry)を提供する物理マシン2a及び物理マシン2bと、IaaSによるサービスを提供する物理マシン2c及び物理マシン2dとが含まれているものとして説明を行う。
図2に示す例において、物理マシン2aには、仮想マシン31aが生成され、物理マシン2bには、仮想マシン35aが生成されている。また、物理マシン2cには、仮想マシン35bが生成され、物理マシン2dには、仮想マシン31bが生成されている。そして、仮想マシン31a、35a、31b及び35bには、それぞれコンテナCON1、CON2、CON3及びCON4が生成されている。
さらに、仮想マシン31aに生成されたコンテナCON1では、各処理を行うアプリケーション(以下、単にAPとも呼ぶ)が動作している。また、仮想マシン31bに生成されたコンテナCON4には、例えば、APによって参照される各種情報を格納するデータベース(以下、単にDBとも呼ぶ)が構築されている。
ここで、例えば、仮想マシン31aと仮想マシン31dとの間の通信は、物理マシン2a及び物理マシン2dの配備位置によってインターネット等の外部ネットワークを経由する場合がある。そのため、クラウド事業者は、図2に示すように、例えば、仮想マシン35aに生成されたコンテナCON2及び仮想マシン35bに生成されたコンテナCON3のそれぞれにおいて、仮想マシン31a(AP)と仮想マシン31b(DB)との間をVPN接続するためのゲートウエイ(以下、単にGW1及びGW2とも呼ぶ)を動作させる。
これにより、クラウド事業者は、仮想マシン31aと仮想マシン31bとの間の通信がインターネット等の外部ネットワークを経由する場合であっても、仮想マシン31aと仮想マシン31bとの間の通信のセキュリティを確保することが可能になる。なお、以下、ゲートウエイとして動作する仮想マシン3をGW用仮想マシン3とも呼ぶ。
[GW用仮想マシンにおける処理の具体例]
次に、GW用仮想マシン35aにおける処理の具体例について説明を行う。図3は、GW用仮想マシン35aにおける処理の具体例について説明する図である。なお、以下、仮想マシン31aには、コンテナCON11、CON12及びCON13が生成されており、それぞれAP11、12及び13が動作しているものとして説明を行う。また、GW用仮想マシン35aには、物理マシン2bからVCPU0とVCPU1とが割当てられているものとして説明を行う。
図3に示す例において、GW用仮想マシン35aでは、AP11、12及び13から送信された各パケットを、AP11、12及び13のIPアドレス(送信元IPアドレス)等から算出されたハッシュ値に基づいてVCPU0及びVCPU1に振り分けるRSS41が動作している。具体的に、図3に示す例において、RSS41は、AP11から送信されたパケット及びAP12から送信されたパケットをVCPU0に振り分け、AP13から送信されたパケットVCPU1に振り分けている。
これにより、GW用仮想マシン35aは、各APから送信されたパケットに対応する処理を各VCPUに分散させて行わせることが可能になる。
しかしながら、各APから送信されるパケットは、各パケットの送信元IPアドレス等によって偏ったVCPUに振り分けられる場合がある。そのため、GW用仮想マシン35aでは、この場合、多くのパケットが振り分けられたVCPUにおいて処理遅延等が発生し、各APから送信されるパケットに対応する処理を効率的に行うことができなくなる。
そこで、クラウド事業者は、例えば、各APのIPアドレス等(各パケットの送信元IPアドレス等)の変更を意図的に行うことにより、各パケットから算出されるハッシュ値を変更し、各パケットに対応する処理を行うVCPUの変更を行う。
しかしながら、各パケットのIPアドレス等を変更するためには、例えば、クラウド利用者(テナント)によって生成されたアプリケーション(例えば、AP11、12または13)の修正等が必要になる。そのため、クラウド事業者は、各パケットの振り分け先のVCPUを容易に変更することができない場合がある。
そこで、本実施の形態における管理装置1は、所定の間隔において、複数の仮想マシン3において動作する複数のアプリケーションごとに、各アプリケーションが複数のVCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得する。
そして、管理装置1は、複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含む情報(以下、アドレス情報とも呼ぶ)から算出されるハッシュ値に基づいて、複数のVCPUのうち、各アプリケーションからパケットが送信されるVCPUを特定する。さらに、管理装置1は、複数のVCPUごとに、複数のアプリケーションのうち、各VCPUにパケットを送信するアプリケーションに対応する通信量を合計することにより、各VCPUが受信するパケットの通信量を算出する。
その後、管理装置1は、複数のVCPUから、算出した通信量が所定閾値を超えるVCPU(以下、特定のVCPUとも呼ぶ)を特定し、複数のアプリケーションのうち、特定のVCPUに対してパケットを送信するアプリケーションから、パケットを送信するVCPUを変更するアプリケーション(以下、特定のアプリケーションとも呼ぶ)を特定する。
そして、管理装置1は、複数の仮想マシン3のうち、特定のアプリケーションを移動した場合に、特定のアプリケーションがパケットを送信するVCPUが変更される仮想マシン3(以下、特定の仮想マシン3とも呼ぶ)を特定し、特定した仮想マシン3に対して特定のアプリケーションを移動する。
すなわち、管理装置1は、仮想マシン3において動作するアプリケーションの修正等に代えて、仮想マシン3間におけるアプリケーションの移動を行うことにより、アプリケーションから送信される各パケットのハッシュ値を変更する。
これにより、管理装置1は、仮想マシン3において動作するアプリケーションの修正等を行うことなく、アプリケーションから送信された各パケットのハッシュ値を変更することが可能になり、各パケットを複数のVCPUに対して適切に振り分けることが可能になる。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図4は、管理装置1のハードウエア構成を示す図である。
管理装置1は、図4に示すように、プロセッサであるCPU101と、メモリ102と、外部インターフェース(以下、I/Oユニットとも呼ぶ)103と、記憶媒体104と、各種情報を表示する表示装置105とを有する。各部は、バス106を介して互いに接続される。
記憶媒体104は、例えば、記憶媒体104内のプログラム格納領域(図示しない)に、各パケットに対応する処理の分散を行う処理(以下、処理分散処理とも呼ぶ)を行うためのプログラム110を記憶する。記憶媒体104は、例えば、HDDであってよい。
また、記憶媒体104は、例えば、処理分散処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行して処理分散処理を行う。
外部インターフェース103は、例えば、物理マシン2と通信を行う。
[情報処理システムの機能]
次に、情報処理システム10の機能について説明する。図5は、管理装置1の機能のブロック図である。
管理装置1は、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、図5に示すように、情報取得部111と、送信先特定部112と、通信量特定部113と、CPU特定部114と、アプリ特定部115と、変更先特定部116と、仮想マシン特定部117と、アプリ移動部118とを含む各種機能を実現する。
また、図4で説明した情報格納領域130には、例えば、アプリケーション情報131と、GW情報132と、仮想マシン情報133とが記憶される。
情報取得部111は、所定の間隔において、複数の仮想マシン3において動作する複数のアプリケーションごとに、各アプリケーションが複数のVCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報131を取得する。そして、情報取得部111は、取得したアプリケーション情報131を情報格納領域130に記憶する。アプリケーション情報131の具体例については後述する。
送信先特定部112は、複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、複数のVCPUのうち、各アプリケーションからパケットが送信されるVCPUを特定する。アドレス情報には、各アプリケーションから送信されるパケットの送信元IPアドレス及び送信先IPアドレスに加え、各アプリケーションから送信されるパケットの送信元ポート番号及び送信先ポート番号が含まれるものであってもよい。
通信量特定部113は、情報格納領域130に記憶されたアプリケーション情報131を参照し、複数のVCPUごとに、複数のアプリケーションのうち、各VCPUにパケットを送信するアプリケーションに対応する通信量を合計することにより、各VCPUが受信するパケットの通信量を算出する。
CPU特定部114は、複数のVCPUから、通信量特定部113が算出した通信量が所定閾値を超える特定のVCPUを特定する。
アプリ特定部115は、複数のアプリケーションのうち、CPU特定部114が特定した特定のVCPUに対してパケットを送信するアプリケーションから、パケットを送信するVCPUを変更する特定のアプリケーションを特定する。
変更先特定部116は、複数のVCPUのうち、アプリ特定部115が特定した特定のアプリケーションがパケットを送信するVCPUの変更先(以下、他のVCPUとも呼ぶ)を特定する。
仮想マシン特定部117は、複数の仮想マシン3のうち、アプリ特定部115が特定した特定のアプリケーションを移動した場合に、特定のアプリケーションがパケットを送信するVCPUが他のVCPUに変更される特定の仮想マシン3を特定する。
アプリ移動部118は、仮想マシン特定部117が特定した仮想マシン3に対し、アプリ特定部115が特定した特定のアプリケーションを移動する。
なお、アプリ移動部118は、管理装置1と異なる物理マシン(例えば、Cloud Foundryを管理する物理マシン)が有する機能であってもよい。また、GW情報132及び仮想マシン情報133についての説明は後述する。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明を行う。図6及び図7は、第1の実施の形態における処理分散処理の概略を説明するフローチャート図である。図8から図11は、第1の実施の形態における処理分散処理の概略を説明する図である。図8から図11を参照しながら、図6及び図7に示す処理分散処理について説明を行う。
管理装置1は、図6に示すように、情報取得タイミングになるまで待機する(S1のNO)。情報取得タイミングは、例えば、1分間隔等の定期的なタイミングであってよい。
そして、情報取得タイミングになった場合(S1のYES)、管理装置1は、複数の仮想マシン3において動作する複数のアプリケーションごとに、各アプリケーションが複数のVCPU(物理マシン2がGW用仮想マシン3に割当てた複数のVCPU)のうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報131を取得する(S2)。
続いて、管理装置1は、複数のアプリケーションごとに、各アプリケーションから送信されるパケットのアドレス情報から算出されるハッシュ値に基づいて、複数のVCPUのうち、各アプリケーションからパケットが送信されるVCPUを特定する(S3)。以下、S3の処理の具体例について説明を行う。
[S3の処理の具体例]
図8は、S3の処理の具体例を説明する図である。具体的に、図8は、アプリケーションからVCPUに対して送信されるパケットの具体例を説明する図である。
アプリケーションからVCPUに対して送信されるパケットには、例えば、データ部(以下、dataとも呼ぶ)の前に、送信先IPアドレス(以下、DA−IPとも呼ぶ)、送信元IPアドレス(以下、SA−IPとも呼ぶ)、送信先ポート番号(以下、DA−Portとも呼ぶ)及び送信元ポート番号(以下、SA−Portとも呼ぶ)を含むヘッダ部が付加されている。
具体的に、図8に示すパケットに含まれるヘッダ部には、送信先IPアドレス、送信元IPアドレス、送信先ポート番号及び送信元ポート番号として、「10.0.1.1」、「10.0.0.1」、「50」及び「1000」がそれぞれ設定されている。
そして、管理装置1は、S3の処理において、例えば、「10.0.1.1」、「10.0.0.1」、「50」及び「1000」を用いることにより、図8に示すパケットに対応するハッシュ値を算出する。その後、管理装置1は、例えば、各ハッシュ値と各VCPUとが対応付けられた対応情報(図示しない)を参照し、算出したハッシュ値に対応するVCPUを特定する。
図6に戻り、管理装置1は、複数のVCPUごとに、複数のアプリケーションのうち、各VCPUにパケットを送信するアプリケーションに対応する通信量を合計することにより、各VCPUが受信するパケットの通信量を算出する(S4)。以下、S4の処理の具体例について説明を行う。
[S4の処理の具体例]
図9は、S4の処理の具体例を説明する図である。
図9に示す例におけるAP11、12及び13は、それぞれ60(Mb/s)、30(Mb/s)及び50(Mb/s)の通信量のパケットをGW用仮想マシン35aに対して送信している。そして、図9に示す例におけるRSS41は、AP11、12及び13のそれぞれから送信されたパケットに対応する処理を全てVCPU0に振り分けている。
そのため、管理装置1は、S4の処理において、VCPU0が受信するパケットの通信量として140(Mb/s)を算出し、VCPU1が受信するパケットの通信量として0(Mb/s)を算出する。
図7に戻り、管理装置1は、複数のVCPUから、S4の処理で算出した通信量が所定閾値を超える特定のVCPUを特定する(S11)。
具体的に、図9に示す例において、例えば、所定閾値が100(Mb/s)である場合、管理装置1は、パケットの通信量が所定閾値を超えているVCPUとしてVCPU0を特定する。
そして、管理装置1は、複数のアプリケーションのうち、S11の処理で特定した特定のVCPUに対してパケットを送信するアプリケーションから、パケットを送信するVCPUを変更する特定のアプリケーションを特定する(S12)。
具体的に、図9に示す例において、管理装置1は、例えば、VCPU0に対してパケットを送信しているAP11、AP12及びAP13のうち、VCPU0に対するパケットの通信量が最も多いアプリケーションであるAP11を特定する。
続いて、管理装置1は、複数の仮想マシン3のうち、S12の処理で特定した特定のアプリケーションを移動した場合に、S12の処理で特定した特定のアプリケーションがパケットを送信するVCPUが変更される特定の仮想マシン3を特定する(S13)。
すなわち、AP11が動作する仮想マシン3を変更した場合、AP11から送信されるパケットの送信元IPアドレスが変更され、AP11から送信されるパケットのハッシュ値が変更され、さらに、AP11から送信されるパケットの送信先のVCPUが変更される可能性がある。そのため、管理装置1は、S13の処理において、AP11が動作する仮想マシン3を変更した場合に、AP11がパケットを送信するVCPUが変更される仮想マシン3の特定を行う。以下、S13の処理の具体例について説明を行う。
[S13の処理の具体例]
図10は、S13の処理の具体例を説明する図である。以下、図2で説明した物理マシン2aにおいてVM32a及びVM33aが生成されているものとして説明を行う。また、以下、VM32aにおいてコンテナCON21が生成され、VM33aにおいてコンテナCON31が生成されているものとして説明を行う。
管理装置1は、例えば、図10の点線に示すように、VCPU0に対してパケットを送信するAP11をVM32a(コンテナCON21)に移動した場合に、AP11からパケットが送信されるVCPUとしてVCPU1を特定する。また、管理装置1は、例えば、図10の点線に示すように、VCPU0に対してパケットを送信するAP11をVM33a(コンテナCON31)に移動した場合に、AP11からパケットが送信されるVCPUとしてVCPU0を特定する。
すなわち、管理装置1は、この場合、AP11をVM32aに移動することによって、AP11からパケットが送信されるVCPUをVCPU0からVCPU1に変更することが可能であると判定する。
図7に戻り、管理装置1は、S13の処理で特定した仮想マシン3に対し、S12の処理で特定した特定のアプリケーションを移動する(S14)。
具体的に、管理装置1は、図11に示すように、S13の処理で特定したVM32aに対して、VM31aにおいて動作していたAP11の移動を行う。
これにより、管理装置1は、仮想マシン3において動作するアプリケーションの修正等を行うことなく、アプリケーションから送信された各パケットのハッシュ値を変更することが可能になり、各パケットを複数のVCPUに対して適切に振り分けることが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図12から図19は、第1の実施の形態における処理分散処理の詳細を説明するフローチャート図である。また、図20から図25は、第1の実施の形態における処理分散処理の詳細を説明する図である。図20から図25を参照しながら、図12から図19に示す処理分散処理の詳細を説明する。
[情報取得処理]
初めに、処理分散処理のうち、仮想マシン情報133を取得する処理(以下、情報取得処理とも呼ぶ)について説明を行う。図12は、情報取得処理を説明するフローチャート図である。
管理装置1の情報取得部111は、図12に示すように、第1情報取得タイミングになるまで待機する(S21のNO)。第1情報取得タイミングは、例えば、1分間隔等の定期的なタイミングであってよい。
そして、第1情報取得タイミングになった場合(S21のYES)、情報取得部111は、仮想マシン3ごとに、リソースの使用可能量を含む仮想マシン情報133を取得する(S22)。その後、情報取得部111は、S22の処理で取得した仮想マシン情報133を情報格納領域130に記憶する(S23)。以下、仮想マシン情報133の具体例について説明を行う。
[仮想マシン情報の具体例]
図20及び図24は、仮想マシン情報133の具体例について説明する図である。
図20等に示す仮想マシン情報133は、仮想マシン情報133に含まれる各情報を識別する「項番」と、仮想マシン3を識別する「VMID」とを項目として有する。また、図20等に示す仮想マシン情報133は、使用可能なVCPUの量(数)を示す「VCPU使用可能量」と、使用可能なメモリの量を示す「メモリ使用可能量」とを項目として有する。
具体的に、図20に示す仮想マシン情報133において、「項番」が「1」である情報には、「VMID」として「VM31a」が設定され、「VCPU使用可能量」として「2(個)」が設定され、「メモリ使用可能量」として「3(Mb)」が設定されている。
また、図20に示す仮想マシン情報133において、「項番」が「2」である情報には、「VMID」として「VM32a」が設定され、「VCPU使用可能量」として「3(個)」が設定され、「メモリ使用可能量」として「4(Mb)」が設定されている。図20に含まれる他の情報についての説明は省略する。
[処理分散処理の詳細]
次に、処理分散処理の詳細について説明を行う。図13から図19は、処理分散処理の詳細を説明するフローチャート図である。
情報取得部111は、図13に示すように、第2情報取得タイミングになるまで待機する(S31のNO)。第2情報取得タイミングは、例えば、1分間隔等の定期的なタイミングであってよい。また、第2情報取得タイミングは、第1情報取得タイミングと同じタイミングであってもよい。
そして、第2情報取得タイミングになった場合(S31のYES)、情報取得部111は、仮想マシン3で動作するアプリケーションごとに、各アプリケーションが複数のVCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報131を取得する(S32)。その後、情報取得部111は、S32の処理で取得したアプリケーション情報131を情報格納領域130に記憶する(S33)。以下、アプリケーション情報131の具体例について説明を行う。
[アプリケーション情報の具体例]
図21及び図25は、アプリケーション情報131の具体例について説明する図である。
図21等に示すアプリケーション情報131は、アプリケーション情報131に含まれる各情報を識別する「項番」と、VCPUを識別する「VCPUID」と、アプリケーションを識別する「アプリID」と、アプリケーションからVCPUに対して送信されるパケットの通信量が設定される「通信量」とを項目として有する。また、図21等に示すアプリケーション情報131は、アプリケーションの動作に要するVCPUの量(数)を示す「VCPU使用量」と、アプリケーションの動作に要するメモリの量を示す「メモリ使用量」と、アプリケーションが動作している仮想マシン3を識別する「VMID」とを項目として有する。
具体的に、図21に示すアプリケーション情報131において、「項番」が「1」である情報には、「VCPUID」として「VCPU0」が設定され、「アプリID」として「AP11」が設定され、「通信量」として「60(Mb/s)」が設定されている。そして、図21に示すアプリケーション情報131において、「項番」が「1」である情報には、「VCPU使用量」として「1(個)」が設定され、「メモリ使用量」として「0.5(Mb)」が設定され、「VMID」として「VM31a」が設定されている。
また、図21に示すアプリケーション情報131において、「項番」が「2」である情報には、「VCPUID」として「VCPU0」が設定され、「アプリID」として「AP12」が設定され、「通信量」として「30(Mb/s)」が設定されている。そして、図21に示すアプリケーション情報131において、「項番」が「2」である情報には、「VCPU使用量」として「1(個)」が設定され、「メモリ使用量」として「0.5(Mb)」が設定され、「VMID」として「VM31a」が設定されている。図21に含まれる他の情報についての説明は省略する。
図13に戻り、管理装置1の送信先特定部112は、仮想マシン3において動作するアプリケーションが追加されているか否かを判定する(S34)。具体的に、送信先特定部112は、S32の処理で取得したアプリケーション情報131に新たな情報(新たなアプリケーションの情報)が追加されているか否かを判定する。
その結果、新たなアプリケーションが追加されていると判定した場合(S34のYES)、送信先特定部112は、S34の処理で追加されていると判定したアプリケーションから送信されるパケットのアドレス情報から算出されるハッシュ値に基づいて、S34の処理で追加されていると判定したアプリケーションが送信するVCPUを特定する(S35)。
そして、送信先特定部112は、S34の処理で追加されていると判定したVCPUを示す情報に基づいて、情報格納領域130に記憶されたアプリケーション情報131を更新する(S36)。
すなわち、S32の処理で取得される情報には、例えば、新たなアプリケーションから送信されたパケットに対応する処理が行われるVCPUを識別する情報(図20に示すアプリケーション情報131において「VCPUID」に設定される情報)が含まれていない場合がある。そのため、送信先特定部112は、例えば、S35の処理において、新たなアプリケーションから送信されるパケットの送信元IPアドレス等(アドレス情報)からハッシュ値を算出する。そして、送信先特定部112は、対応情報(図示しない)を参照し、算出したハッシュ値に対応するVCPUを特定する。その後、送信先特定部112は、S36の処理において、S33の処理において情報格納領域130に記憶したアプリケーション情報131のうち、新たなアプリケーションに対応する「VCPUID」に、特定したVCPUに対応する情報を設定する。
一方、S34の処理において、新たなアプリケーションが追加されていないと判定した場合(S34のNO)、送信先特定部112は、S35及びS36の処理を行わない。
そして、情報取得部111は、図14に示すように、情報格納領域130に記憶されたアプリケーション情報131を参照し、VCPUごとに、各アプリケーションのうち、各VCPUにパケットを送信するアプリケーションに対応する通信量を合計することにより、各VCPUが受信するパケットの通信量を算出する(S41)。
具体的に、図21で説明したアプリケーション情報131において、「VCPUID」に「VCPU0」が設定された情報(「項番」が「1」から「3」である情報)の「通信量」には、それぞれ「60(Mb/s)」、「30(Mb/s)」及び「50(Mb/s)」が設定されている。そのため、情報取得部111は、VCPU0が受信するパケットの通信量として140(Mb/s)を算出する。
一方、図21で説明したアプリケーション情報131において、「VCPUID」に「VCPU1」が設定された情報は存在しない。そのため、情報取得部111は、VCPU1が受信するパケットの通信量として0(Mb/s)を算出する。
さらに、情報取得部111は、情報格納領域130に記憶されたアプリケーション情報131とS41の処理で算出した通信量とを参照し、GW情報132を生成する(S42)。その後、情報取得部111は、生成したGW情報132を情報格納領域130に記憶する(S43)。以下、GW情報132の具体例について説明を行う。
[GW情報の具体例]
図22及び図23は、GW情報132の具体例について説明する図である。
図22等に示すGW情報132は、GW情報132に含まれる各情報を識別する「項番」と、VCPUを識別する「VCPUID」と、アプリケーションからVCPUに対して送信されるパケットの通信量の合計が設定される「通信量」と、VCPUごとに予め定められた所定閾値が設定される「閾値」とを項目として有する。なお、以下、VCPU0及びVCPU1の所定閾値として予め100(Mb/s)が設定されているものとして説明を行う。
具体的に、情報取得部111は、S41の処理において、VCPU0が受信するパケットの通信量として140(Mb/s)を算出している。そのため、情報取得部111は、図22に示すように、「項番」が「1」である情報の「VCPUID」として「VCPU0」を設定し、「通信量」として「140(Mb/s)」を設定し、「閾値」として「100(Mb/s)」を設定する。
また、情報取得部111は、S41の処理において、VCPU1が受信するパケットの通信量として0(Mb/s)を算出している。そのため、情報取得部111は、図22に示すように、「項番」が「2」である情報の「VCPUID」として「VCPU1」を設定し、「通信量」として「0(Mb/s)」を設定し、「閾値」として「100(Mb/s)」を設定する。
図14に戻り、管理装置1の通信量特定部113は、VCPUを1つ特定する(S44)。具体的に、通信量特定部113は、各アプリケーションから送信されたパケットを受信するVCPUを1つ特定する。
そして、通信量特定部113は、S44の処理で特定したVCPUの通信量が所定閾値を超えているか否かを判定する(S45)。すなわち、通信量特定部113は、仮想マシン3において動作するアプリケーションの移動を行う必要があるか否かの判定を行う。
その結果、S44の処理で特定したVCPUの通信量が所定閾値を超えていないと判定した場合(S45のNO)、変更先特定部116は、図17に示すように、S44の処理において全てのVCPUが特定済であるか否かを判定する(S73)。
そして、全てのVCPUが特定済であると判定した場合(S73のYES)、管理装置1は、処理分散処理を終了する。
一方、全てのVCPUが特定済でないと判定した場合(S73のYES)、通信量特定部113は、S44以降の処理を再度行う。
また、S45の処理において、S44の処理で特定したVCPUの通信量が所定閾値を超えていると判定した場合(S45のYES)、管理装置1のアプリ特定部115は、図15に示すように、S44の処理で特定したVCPUにパケットを送信するアプリケーションのうち、後述するS64で特定した対象外アプリケーション以外のアプリケーションを特定する(S51)。
具体的に、例えば、S44の処理で特定したVCPUがVCPU0である場合、通信量特定部113は、図22で説明したGW情報132を参照し、「VCPUID」に「VCPU0」が設定された情報の「通信量」に設定された値である「140(Mb/s)」が「閾値」に設定された値である「100(Mb/s)」を超えていると判定する。そのため、アプリ特定部115は、図21で説明したアプリケーション情報131を参照し、「VCPUID」に「VCPU0」が設定された情報の「アプリID」に設定された情報である「AP11」、「AP12」及び「AP13」を特定する。
そして、アプリ特定部115は、S51の処理で特定したプリケーションのうち、S44の処理で特定したVCPUに対して送信するパケットの通信量が最も多いアプリケーションを特定する(S52)。すなわち、アプリ特定部115は、S44の処理で特定したVCPUに対して送信するパケットの通信量が最も多いアプリケーションを、他の仮想マシン3に移動するアプリケーションの候補として特定する。
具体的に、アプリ特定部115は、図21で説明したアプリケーション情報131を参照し、S51の処理で特定したアプリケーションが「アプリID」に設定された情報(「項番」が「1」、「2」及び「3」である情報)のうち、「通信量」に最大の値が設定された情報の「アプリID」に設定された情報である「AP11」を特定する。
続いて、管理装置1の変更先特定部116は、情報格納領域130に記憶されたGW情報132を参照し、各アプリケーションから送信されるパケットの通信量が最も少ないVCPUを特定する(S53)。すなわち、変更先特定部116は、各アプリケーションから送信されるパケットの通信量が最も少ないVCPUを、S52の処理において特定したアプリケーションから送信されるパケットを受信させるVCPUの変更先の候補として特定する。
具体的に、変更先特定部116は、図22で説明したGW情報132を参照し、「通信量」に設定された値が最も少ない情報の「VCPUID」に設定された「VCPU1」を特定する。
その後、変更先特定部116は、S53の処理で特定したVCPUに対して送信される通信量と、S52の処理で特定したアプリケーションからS44の処理で特定したVCPUに対して送信される通信量との合計値を算出する(S54)。
具体的に、例えば、S53の処理で特定されたVCPUがVCPU1である場合、変更先特定部116は、図22で説明したGW情報132を参照し、「VCPUID」に「VCPU1」が設定された情報の「通信量」に設定された値である「0(Mb/s)」を特定する。また、例えば、S44の処理で特定されたVCPUがVCPU0であって、S52の処理で特定したアプリケーションがAP11である場合、変更先特定部116は、図21で説明したアプリケーション情報131を参照し、「VCPUID」に「VCPU0」が設定され、「アプリID」に「AP11」が設定された情報の「通信量」に設定された値である「60(Mb/s)」を特定する。そして、変更先特定部116は、それぞれ特定した値である0(Mb/s)と60(Mb/s)との合計値である60(Mb/s)を算出する。
続いて、変更先特定部116は、S54の処理で算出した通信量が所定閾値を超えているか否かを判定する(S61)。
すなわち、変更先特定部116は、S52の処理で特定したアプリケーションからS44の処理で特定したVCPUに対して送信されているパケットの送信先を、S53の処理で特定したVCPUに変更した場合、S53の処理で特定したVCPUに対して送信される通信量の合計が所定閾値を超えるか否かの判定を行う。
その結果、S54の処理で算出した通信量が所定閾値を超えていないと判定した場合、(S61のNO)、変更先特定部116は、S44の処理で特定したVCPUに対して送信される通信量から、S52の処理で特定したアプリケーションからS44の処理で特定したVCPUに対して送信される通信量を減算した値を算出する(S62)。
すなわち、S54の処理で算出した通信量が所定閾値を超えていないと判定した場合、変更先特定部116は、S52の処理で特定したアプリケーションからS44の処理で特定したVCPUに対して送信されているパケットの送信先を、S53の処理で特定したVCPUに変更することの決定を行う。ここで、S44の処理で特定したVCPUに対して送信されているパケットの通信量は、S52の処理で特定したアプリケーションをS53の処理で特定したVCPUに対して移動した後であっても、以前として所定閾値を超えている可能性がある。そのため、変更先特定部116は、S44の処理で特定したVCPUに対してパケットの送信を行うアプリケーションの移動をさらに行う必要があるか否かの判定を行うために、S62の処理を行う。
具体的に、S53の処理で特定されたVCPUがVCPU1であって、S54の処理で算出した通信量の合計値が60(Mb/s)である場合、変更先特定部116は、図22で説明したGW情報132を参照し、「VCPUID」に「VCPU1」が設定された情報の「閾値」に設定された値である「100(Mb/s)」が「60(Mb/s)」を超えていないと判定する。そのため、変更先特定部116は、この場合、図22で説明したGW情報132をさらに参照し、「VCPUID」に「VCPU1」が設定された情報の「通信量」に設定された値である「140(Mb/s)」から「60(Mb/s)」を減算した値である「80(Mb/s)」を算出する。
なお、変更先特定部116は、この場合、図23の下線部分に示すように、GW情報132に含まれる情報のうち、「VCPUID」に「VCPU0」が設定された情報の「通信量」に設定された値を、S54の処理で算出した通信量である「60(Mb/s)」に更新する。また、変更先特定部116は、この場合、図23の下線部分に示すように、GW情報132に含まれる情報のうち、「VCPUID」に「VCPU1」が設定された情報の「通信量」に設定された値を、S62の処理で算出した通信量である「80(Mb/s)」に更新する。
そして、変更先特定部116は、S62の処理で算出した通信量が所定閾値を超えているか否かを判定する(S63)。
その結果、S62の処理で算出した通信量が所定閾値を超えていないと判定した場合(S63のNO)、変更先特定部116は、図17に示すように、S44の処理において全てのVCPUが特定済であるか否かを判定する(S73)。すなわち、変更先特定部116は、この場合、S44の処理で特定したVCPUに対してパケットを送信するアプリケーションの移動を終了する。
具体的に、図23で説明したGW情報132において、「VCPUID」が「VCPU0」である情報(「項番」が「1」である情報)の「通信量」及び「閾値」には、それぞれ「80(Mb/s)」及び「100(Mb/s)」が設定されている。そのため、変更先特定部116は、この場合、「通信量」に設定された値が「閾値」に設定された値を超えていないと判定し、S73以降の処理を行う。
そして、全てのVCPUが特定済であると判定した場合(S73のYES)、管理装置1は、処理分散処理を終了する。
一方、全てのVCPUが特定済でないと判定した場合(S73のNO)、通信量特定部113は、S44以降の処理を再度行う。
また、S63の処理において、S62の処理で算出した通信量が所定閾値を超えていると判定した場合(S63のYES)、変更先特定部116は、S52の処理で特定したアプリケーションを対象外アプリケーションとして特定する(S64)。すなわち、変更先特定部116は、この場合、S52の処理で特定したアプリケーションを、S44の処理で特定したVCPUから他のVCPUに移動させることができないアプリケーションとして特定する。
なお、変更先特定部116は、S61の処理において、S54の処理で算出した通信量が所定閾値を超えていると判定した場合についても同様に(S61のYES)、S64の処理を行う。
そして、変更先特定部116は、図17に示すように、S44の処理で特定したVCPUにパケットを送信する全アプリケーションが特定済であるか否かを判定する(S71)。すなわち、変更先特定部116は、S52の処理において、S44の処理で特定したVCPUにパケットを送信するアプリケーションの全ての特定が完了しているか否かの判定を行う。
その結果、S52の処理において、S44の処理で特定したVCPUにパケットを送信するアプリケーションの全ての特定が完了していないと判定した場合(S72のNO)、アプリ特定部115は、S51以降の処理を再度行う。
一方、S52の処理において、S44の処理で特定したVCPUにパケットを送信するアプリケーションの全ての特定が完了していると判定した場合(S72のYES)、変更先特定部116は、S44の処理において全てのVCPUが特定済であるか否かを判定する(S73)。
すなわち、変更先特定部116は、この場合、S44の処理で特定したVCPUに対して送信されるパケットの通信量を所定閾値以下にすることができないと判定し、S44の処理で特定したVCPUに対してパケットを送信するアプリケーションの移動を終了する。
なお、変更先特定部116は、この場合、S44の処理で特定したVCPUに対して送信されるパケットの通信量を所定閾値以下にすることができないと判定した旨の情報を、操作端末5等に出力するものであってもよい。
そして、全てのVCPUが特定済であると判定した場合(S73のYES)、管理装置1は、処理分散処理を終了する。
一方、全てのVCPUが特定済でないと判定した場合(S73のNO)、通信量特定部113は、S44以降の処理を再度行う。
また、S61の処理において、S54で算出した通信量が所定閾値を超えていないと判定した場合、(S61のNO)、管理装置1の仮想マシン特定部117は、図18に示すように、S52で特定したアプリケーションが動作する仮想マシン3及び後述するS91の処理で特定した対象外仮想マシン3以外の仮想マシン3を1つ特定する(S81)。
すなわち、S54の処理で算出した通信量が所定閾値を超えていないと判定した場合、仮想マシン特定部117は、S52の処理で特定したアプリケーションの移動先の仮想マシン3の特定を開始する。
具体的に、例えば、S52の処理で特定したアプリケーションがAP11である場合、各アプリケーションが動作する仮想マシン3のうち、AP11が動作しているVM31a以外の仮想マシン3を特定する。以下、AP11が動作しているVM31a以外の仮想マシン3がVM32a及びVM33aであるものとして説明を行う。
そして、仮想マシン特定部117は、S52の処理で特定したプリケーションをS81の処理で特定した仮想マシン3に移動した場合に、S52の処理で特定したアプリケーションが送信するVCPUを、S52の処理で特定したアプリケーションから送信されるパケットのアドレス情報から算出されるハッシュ値に基づいて特定する(S82)。
その後、仮想マシン特定部117は、S82の処理で特定したVCPUとS53の処理で特定したVCPUとが一致するか否かを判定する(S83)。
その結果、S82の処理で特定したVCPUとS53の処理で特定したVCPUとが一致すると判定した場合(S84のYES)、仮想マシン特定部117は、S81の処理で特定した仮想マシン3を移動先の候補として特定する(S85)。
すなわち、仮想マシン特定部117は、S52の処理で特定したアプリケーションを移動させた場合に、S52の処理で特定したアプリケーションから送信されるパケットの送信先をS53の処理で特定したVCPUにすることできる仮想マシン3を特定する。
一方、S82の処理で特定したVCPUとS53の処理で特定したVCPUとが一致しないと判定した場合(S84のNO)、仮想マシン特定部117は、S85の処理を行わない。
続いて、仮想マシン特定部117は、図19に示すように、S81の処理で特定した仮想マシン3を対象外仮想マシン3として特定する(S91)。
その後、仮想マシン特定部117は、S81の処理において、S52の処理で特定したアプリケーションが動作する仮想マシン3以外の仮想マシン3の全てが特定済であるか否かを判定する(S92)。
その結果、S52の処理で特定したアプリケーションが動作する仮想マシン3以外の仮想マシン3の全てが特定済でないと判定した場合(S92のNO)、仮想マシン特定部117は、S81以降の処理を再度行う。
一方、S52の処理で特定したアプリケーションが動作する仮想マシン3以外の仮想マシン3の全てが特定済であると判定した場合(S92のYES)、仮想マシン特定部117は、S85の処理で特定した移動先の候補が存在するか否かを判定する(S93)。
その結果、S85の処理で特定した移動先の候補が存在しないと判定した場合(S93のNO)、変更先特定部116は、S64以降の処理を再度行う。
すなわち、仮想マシン特定部117は、この場合、S52の処理で特定したアプリケーションを他の仮想マシン3に移動することによって、S44の処理で特定したVCPUに対して送信されるパケットの通信量を所定閾値以下にすることができないと判定する。
一方、S85の処理で特定した移動先の候補が存在すると判定した場合(S93のYES)、仮想マシン特定部117は、情報格納領域130に記憶された仮想マシン情報133を参照し、リソースの使用可能量が最も多い仮想マシン3を特定する(S94)。
すなわち、S85の処理で特定した移動先の候補が複数存在する場合、仮想マシン特定部117は、リソースの使用可能量が最も多い仮想マシン3を、S52の処理で特定したアプリケーションの移動先として特定する。
そして、管理装置1のアプリ移動部118は、S94の処理で特定した仮想マシン3に対し、S52の処理で特定したアプリケーションを移動する(S95)。その後、管理装置1は、処理分散処理を終了する。
なお、アプリ移動部118は、S95の処理を行う場合、他の仮想マシン3に移動したアプリケーションに関する情報に基づいて、アプリケーション情報131及びGW情報132の更新を行う。
具体的に、図21に示すアプリケーション情報131における「アプリID」に「AP11」が設定された情報には、「VCPU使用量」として「1(個)」が設定されており、「メモリ使用量」として「0.5(Mb)」が設定されている。そのため、AP11の移動が行われる場合、移動先の仮想マシン3におけるVCPUの使用可能量及びメモリの使用可能量は、それぞれ1(個)及び0.5(Mb)増加する。一方、移動元の仮想マシン3におけるVCPUの使用可能量及びメモリの使用可能量は、それぞれ1(個)及び0.5(Mb)減少する。
したがって、アプリ移動部118は、この場合、図24の下線部分に示すように、図20で説明した仮想マシン情報133に含まれる情報のうち、AP11の移動元の仮想マシン3である「VM31a」が「VMID」に設定された情報(「項番」が「1」である情報)の「VCPU使用可能量」を「3(個)」に更新し、「メモリ使用可能量」を「3.5(Mb)」に更新する。また、アプリ移動部118は、図24の下線部分に示すように、図20で説明した仮想マシン情報133に含まれる情報のうち、AP11の移動先の仮想マシン3である「VM32a」が「VMID」に設定された情報(「項番」が「2」である情報)の「VCPU使用可能量」を「2(個)」に更新し、「メモリ使用可能量」を「3.5(Mb)」に更新する。
さらに、アプリ移動部118は、この場合、図25の下線部分に示すように、図21で説明したアプリケーション情報131に含まれる情報のうち、「AP11」が「アプリID」に設定された情報(「項番」が「1」である情報)の「VMID」を「VM32a」に更新する。
このように、本実施の形態における管理装置1は、所定の間隔において、複数の仮想マシン3において動作する複数のアプリケーションごとに、各アプリケーションが複数のVCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得する。
そして、管理装置1は、複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、複数のVCPUのうち、各アプリケーションからパケットが送信されるVCPUを特定する。さらに、管理装置1は、複数のVCPUごとに、複数のアプリケーションのうち、各VCPUにパケットを送信するアプリケーションに対応する通信量を合計することにより、各VCPUが受信するパケットの通信量を算出する。
その後、管理装置1は、複数のVCPUから、算出した通信量が所定閾値を超える特定のVCPUを特定し、複数のアプリケーションのうち、特定のVCPUに対してパケットを送信するアプリケーションから、パケットを送信するVCPUを変更する特定のアプリケーションを特定する。
そして、管理装置1は、複数の仮想マシン3のうち、特定のアプリケーションを移動した場合に、特定のアプリケーションがパケットを送信するVCPUが変更される特定の仮想マシン3を特定し、特定した仮想マシン3に対して特定のアプリケーションを移動する。
すなわち、管理装置1は、仮想マシン3において動作するアプリケーションの修正等に代えて、仮想マシン3間におけるアプリケーションの移動を行うことにより、アプリケーションから送信される各パケットのハッシュ値を変更する。
これにより、管理装置1は、仮想マシン3において動作するアプリケーションの修正等を行うことなく、アプリケーションから送信された各パケットのハッシュ値を変更することが可能になり、各パケットを複数のVCPUに対して適切に振り分けることが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPU(Central Computing Unit)のうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得し、
前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定し、
前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出し、
前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定し、
前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定し、
前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定し、
特定した前記仮想マシンに対し、前記特定のアプリケーションを移動する、
ことをコンピュータに実行させることを特徴とする処理分散プログラム。
(付記2)
付記1において、
前記特定のアプリケーションを特定する処理では、
前記特定のCPUに対してパケットを送信するアプリケーションのうち、前記特定のCPUに対して送信されるパケットの通信量が最も多いアプリケーションを、前記特定のアプリケーションとして特定する、
ことを特徴とする処理分散プログラム。
(付記3)
付記1において、
前記特定のアプリケーションを特定する処理では、前記特定のCPUに対して送信されるパケットの通信量が前記所定閾値以下になるまで、前記特定のアプリケーションの特定を繰り返す、
ことを特徴とする処理分散プログラム。
(付記4)
付記1において、さらに、
前記複数のCPUのうち、前記複数のアプリケーションから送信されるパケットの通信量と前記所定閾値との差が、前記特定のアプリケーションから前記特定のCPUに対して送信されるパケットの特定の通信量よりも大きい他のCPUを特定する、
処理をコンピュータに実行させ、
前記特定の仮想マシンを特定する処理では、前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが前記他のCPUに変更される仮想マシンを、前記特定の仮想マシンとして特定する、
ことを特徴とする処理分散プログラム。
(付記5)
付記4において、
前記他のCPUを特定する処理では、
前記差が前記特定の通信量よりも大きいCPUが複数存在する場合、複数存在する前記CPUのうち、前記複数のアプリケーションから送信されるパケットの通信量が最も少ないCPUを、前記他のCPUとして特定する、
ことを特徴とする処理分散プログラム。
(付記6)
付記1において、
前記アプリケーション情報は、各アプリケーションの動作に要するリソースの使用量を含み、さらに、
所定の間隔において、前記複数の仮想マシンごとに、リソースの使用可能量を含む仮想マシン情報を取得する、
処理をコンピュータに実行させ、
前記特定の仮想マシンを特定する処理では、前記複数の仮想マシンのうち、前記使用可能量が前記特定のアプリケーションに対応する前記使用量よりも大きい仮想マシンを、前記特定の仮想マシンとして特定する、
ことを特徴とする処理分散プログラム。
(付記7)
付記6において、
前記特定の仮想マシンを特定する処理では、前記使用可能量が前記特定のアプリケーションの前記使用量よりも大きい仮想マシンが複数存在する場合、複数存在する前記仮想マシンのうち、前記使用可能量が最も大きい仮想マシンを、前記特定の仮想マシンとして特定する、
ことを特徴とする処理分散プログラム。
(付記8)
付記1において、
前記アドレス情報は、各アプリケーションから送信されるパケットの送信元ポート番号と送信先ポート番号とを含む、
ことを特徴とする処理分散プログラム。
(付記9)
付記1において、
前記複数のCPUは、VPN(Virtual Private Network)のゲートウエイとして機能する1以上の仮想マシンに割り当てられたCPUである、
ことを特徴とする処理分散プログラム。
(付記10)
所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得する情報取得部と、
前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定する送信先特定部と、
前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出する通信量特定部と、
前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定するCPU特定部と、
前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定するアプリ特定部と、
前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定する仮想マシン特定部と、
特定した前記仮想マシンに対し、前記特定のアプリケーションを移動するアプリ移動部と、を有する、
ことを特徴とする処理分散装置。
(付記11)
付記10において、さらに、
前記複数のCPUのうち、前記複数のアプリケーションから送信されるパケットの通信量と前記所定閾値との差が、前記特定のアプリケーションから前記特定のCPUに対して送信されるパケットの特定の通信量よりも大きい他のCPUを特定する変更先特定部を有し、
前記仮想マシン特定部は、前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが前記他のCPUに変更される仮想マシンを、前記特定の仮想マシンとして特定する、
ことを特徴とする処理分散装置。
(付記12)
所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得し、
前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定し、
前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出し、
前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定し、
前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定し、
前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定し、
特定した前記仮想マシンに対し、前記特定のアプリケーションを移動する、
ことを特徴とする処理分散方法。
(付記13)
付記12において、さらに、
前記複数のCPUのうち、前記複数のアプリケーションから送信されるパケットの通信量と前記所定閾値との差が、前記特定のアプリケーションから前記特定のCPUに対して送信されるパケットの特定の通信量よりも大きい他のCPUを特定する、
処理をコンピュータに実行させ、
前記特定の仮想マシンを特定する処理では、前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが前記他のCPUに変更される仮想マシンを、前記特定の仮想マシンとして特定する、
ことを特徴とする処理分散方法。
1:管理装置 2:物理マシン
3:仮想マシン 4:仮想化ソフトウエア
5:操作端末

Claims (11)

  1. 所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPU(Central Computing Unit)のうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得し、
    前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定し、
    前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出し、
    前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定し、
    前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定し、
    前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定し、
    特定した前記仮想マシンに対し、前記特定のアプリケーションを移動する、
    ことをコンピュータに実行させることを特徴とする処理分散プログラム。
  2. 請求項1において、
    前記特定のアプリケーションを特定する処理では、
    前記特定のCPUに対してパケットを送信するアプリケーションのうち、前記特定のCPUに対して送信されるパケットの通信量が最も多いアプリケーションを、前記特定のアプリケーションとして特定する、
    ことを特徴とする処理分散プログラム。
  3. 請求項1において、
    前記特定のアプリケーションを特定する処理では、前記特定のCPUに対して送信されるパケットの通信量が前記所定閾値以下になるまで、前記特定のアプリケーションの特定を繰り返す、
    ことを特徴とする処理分散プログラム。
  4. 請求項1において、さらに、
    前記複数のCPUのうち、前記複数のアプリケーションから送信されるパケットの通信量と前記所定閾値との差が、前記特定のアプリケーションから前記特定のCPUに対して送信されるパケットの特定の通信量よりも大きい他のCPUを特定する、
    処理をコンピュータに実行させ、
    前記特定の仮想マシンを特定する処理では、前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが前記他のCPUに変更される仮想マシンを、前記特定の仮想マシンとして特定する、
    ことを特徴とする処理分散プログラム。
  5. 請求項4において、
    前記他のCPUを特定する処理では、
    前記差が前記特定の通信量よりも大きいCPUが複数存在する場合、複数存在する前記CPUのうち、前記複数のアプリケーションから送信されるパケットの通信量が最も少ないCPUを、前記他のCPUとして特定する、
    ことを特徴とする処理分散プログラム。
  6. 請求項1において、
    前記アプリケーション情報は、各アプリケーションの動作に要するリソースの使用量を含み、さらに、
    所定の間隔において、前記複数の仮想マシンごとに、リソースの使用可能量を含む仮想マシン情報を取得する、
    処理をコンピュータに実行させ、
    前記特定の仮想マシンを特定する処理では、前記複数の仮想マシンのうち、前記使用可能量が前記特定のアプリケーションに対応する前記使用量よりも大きい仮想マシンを、前記特定の仮想マシンとして特定する、
    ことを特徴とする処理分散プログラム。
  7. 請求項6において、
    前記特定の仮想マシンを特定する処理では、前記使用可能量が前記特定のアプリケーションの前記使用量よりも大きい仮想マシンが複数存在する場合、複数存在する前記仮想マシンのうち、前記使用可能量が最も大きい仮想マシンを、前記特定の仮想マシンとして特定する、
    ことを特徴とする処理分散プログラム。
  8. 請求項1において、
    前記アドレス情報は、各アプリケーションから送信されるパケットの送信元ポート番号と送信先ポート番号とを含む、
    ことを特徴とする処理分散プログラム。
  9. 請求項1において、
    前記複数のCPUは、VPN(Virtual Private Network)のゲートウエイとして機能する1以上の仮想マシンに割り当てられたCPUである、
    ことを特徴とする処理分散プログラム。
  10. 所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得する情報取得部と、
    前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定する送信先特定部と、
    前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出する通信量特定部と、
    前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定するCPU特定部と、
    前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定するアプリ特定部と、
    前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定する仮想マシン特定部と、
    特定した前記仮想マシンに対し、前記特定のアプリケーションを移動するアプリ移動部と、を有する、
    ことを特徴とする処理分散装置。
  11. 所定の間隔において、複数の仮想マシンにおいて動作する複数のアプリケーションごとに、各アプリケーションが複数のCPUのうちのいずれかに対して送信するパケットの通信量を含むアプリケーション情報を取得し、
    前記複数のアプリケーションごとに、各アプリケーションから送信されるパケットの送信元IPアドレスと送信先IPアドレスとを含むアドレス情報から算出されるハッシュ値に基づいて、前記複数のCPUのうち、各アプリケーションからパケットが送信されるCPUを特定し、
    前記複数のCPUごとに、前記複数のアプリケーションのうち、各CPUにパケットを送信するアプリケーションに対応する前記通信量を合計することにより、各CPUが受信するパケットの通信量を算出し、
    前記複数のCPUから、算出した前記通信量が所定閾値を超える特定のCPUを特定し、
    前記複数のアプリケーションのうち、特定した前記特定のCPUに対してパケットを送信するアプリケーションから、パケットを送信するCPUを変更する特定のアプリケーションを特定し、
    前記複数の仮想マシンのうち、特定した前記特定のアプリケーションを移動した場合に、前記特定のアプリケーションがパケットを送信するCPUが変更される特定の仮想マシンを特定し、
    特定した前記仮想マシンに対し、前記特定のアプリケーションを移動する、
    ことを特徴とする処理分散方法。
JP2017213768A 2017-11-06 2017-11-06 処理分散プログラム、処理分散装置及び処理分散方法 Active JP6959519B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017213768A JP6959519B2 (ja) 2017-11-06 2017-11-06 処理分散プログラム、処理分散装置及び処理分散方法
US16/175,911 US10715590B2 (en) 2017-11-06 2018-10-31 Non-transitory computer-readable storage medium, process distribution apparatus and process distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017213768A JP6959519B2 (ja) 2017-11-06 2017-11-06 処理分散プログラム、処理分散装置及び処理分散方法

Publications (2)

Publication Number Publication Date
JP2019086957A JP2019086957A (ja) 2019-06-06
JP6959519B2 true JP6959519B2 (ja) 2021-11-02

Family

ID=66327810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017213768A Active JP6959519B2 (ja) 2017-11-06 2017-11-06 処理分散プログラム、処理分散装置及び処理分散方法

Country Status (2)

Country Link
US (1) US10715590B2 (ja)
JP (1) JP6959519B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021131782A1 (ja) * 2019-12-26 2021-07-01 ソニーグループ株式会社 情報処理システムおよび情報処理方法、並びにプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8813065B2 (en) * 2010-04-26 2014-08-19 Vmware, Inc. Microcloud platform delivery system
JP2012075070A (ja) * 2010-09-30 2012-04-12 Fujitsu Ltd 管理プログラム、装置及び方法、ルータ、情報処理プログラム及び方法
JP5617586B2 (ja) * 2010-12-10 2014-11-05 富士通株式会社 情報処理プログラム、中継装置及び中継管理装置
JP5675471B2 (ja) 2011-04-05 2015-02-25 株式会社日立製作所 データセンタシステム管理方法、データセンタシステム、及び管理装置
US8891392B2 (en) * 2012-06-21 2014-11-18 Breakingpoint Systems, Inc. Dynamic latency analysis system
JP2014056335A (ja) 2012-09-11 2014-03-27 Nec Commun Syst Ltd 仮想マシン配置システム及び仮想マシン配置方法、並びにコンピュータ・プログラム
JP6020146B2 (ja) * 2012-12-26 2016-11-02 富士通株式会社 情報処理装置,情報処理方法,及び情報処理プログラム
US10120729B2 (en) * 2014-02-14 2018-11-06 Vmware, Inc. Virtual machine load balancing
JPWO2015141337A1 (ja) * 2014-03-19 2017-04-06 日本電気株式会社 受信パケット分散方法、キュー選択器、パケット処理装置、プログラム、およびネットワークインタフェースカード
JP6298711B2 (ja) * 2014-05-19 2018-03-20 株式会社日立製作所 分散処理システム
US10362506B2 (en) * 2014-10-07 2019-07-23 Nec Corporation Communication aggregation system, control device, processing load control method and non-transitory computer readable medium storing program
JP2016134700A (ja) * 2015-01-16 2016-07-25 富士通株式会社 管理サーバ、通信システム、および、経路管理方法
WO2017006384A1 (ja) * 2015-07-03 2017-01-12 富士通株式会社 仮想マシン管理プログラム,仮想マシン管理装置および仮想マシン管理方法

Also Published As

Publication number Publication date
US20190141123A1 (en) 2019-05-09
JP2019086957A (ja) 2019-06-06
US10715590B2 (en) 2020-07-14

Similar Documents

Publication Publication Date Title
US10581884B2 (en) Channel data encapsulation system and method for use with client-server data channels
US10579407B2 (en) Systems and methods for deploying microservices in a networked microservices system
US8863138B2 (en) Application service performance in cloud computing
CN102187315B (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
EP3400535B1 (en) System and method for distributed resource management
US20180034832A1 (en) Systems and Methods for Real-time Configurable Load Determination
US10412154B2 (en) Configuration recommendation for a microservice architecture
US20230231825A1 (en) Routing for large server deployments
EP3596600B1 (en) Systems and methods for compute node management protocols
CN108933829A (zh) 一种负载均衡方法及装置
CN109416646B (zh) 一种容器分配的优化方法及处理设备
CN113094182B (zh) 一种服务的负载均衡处理方法、装置及云端服务器
US20120185529A1 (en) Application server management system, application server management method, management apparatus, application server and computer program
JP2015503158A (ja) データ・センターにおけるロール・インスタンス到達可能性
US20220239632A1 (en) Load balancing and secure tunneling for cloud-based network controllers
JP6959519B2 (ja) 処理分散プログラム、処理分散装置及び処理分散方法
Lee et al. The impact of container virtualization on network performance of IoT devices
US10896067B2 (en) Determining the cost of container-based workloads
KR100584193B1 (ko) 그리드 컴퓨팅 시스템에서 파일기반의 mpi초기화방법을 이용한 그리드 mpi 작업 할당 시스템 및그리드 mpi 작업 할당방법
US10791088B1 (en) Methods for disaggregating subscribers via DHCP address translation and devices thereof
US20230099186A1 (en) Distributed data processing application service in a provider network
JP6928237B2 (ja) 制御プログラム、制御装置及び制御方法
JP6717092B2 (ja) 制御装置および制御装置における処理方法
JP6920612B2 (ja) スケールイン管理プログラム、スケールイン管理装置及びスケールイン管理方法
US11290385B2 (en) Method and traffic processing unit for handling traffic in a communication network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210811

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: 20210907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210920

R150 Certificate of patent or registration of utility model

Ref document number: 6959519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150