JP5602775B2 - 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム - Google Patents

通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム Download PDF

Info

Publication number
JP5602775B2
JP5602775B2 JP2012008937A JP2012008937A JP5602775B2 JP 5602775 B2 JP5602775 B2 JP 5602775B2 JP 2012008937 A JP2012008937 A JP 2012008937A JP 2012008937 A JP2012008937 A JP 2012008937A JP 5602775 B2 JP5602775 B2 JP 5602775B2
Authority
JP
Japan
Prior art keywords
server
virtual machine
client device
client
communication control
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
JP2012008937A
Other languages
English (en)
Other versions
JP2013149076A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012008937A priority Critical patent/JP5602775B2/ja
Publication of JP2013149076A publication Critical patent/JP2013149076A/ja
Application granted granted Critical
Publication of JP5602775B2 publication Critical patent/JP5602775B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラムに関する。
従来、インターネットを始めとするネットワーク上のリソースを用いて、各種サービスをユーザに提供するコンピュータ利用形態として、クラウドコンピューティングが普及しつつある。ネットワークに接続されたクライアントは、ネットワーク上のサーバ内に作成された複数の仮想マシン(VM:Virtual Machine)を利用して、クラウドコンピューティングを実現する。上記ネットワークにおいて、クラウド用の仮想マシンは、サーバ管理者または管理用のソフトウェアによって集中的に管理される。例えば、オープンソースを用いたOpenstack方式では、仮想マシンの管理は、仮想マシン管理機能を有するソフトウェアが、一元的に行っている。また、ネットワークコントローラと呼ばれる機能が、仮想スイッチや仮想ルータ等の仮想ネットワークを提供し、IP(Internet Protocol)アドレスやVLAN−ID(Virtual Local Area Network−IDentification)を集中的に管理している。
"DOCOMO Euro Research Atelier"、[online]、[平成24年1月4日検索]、インターネット<URL:http://www.facebook.com/photo.php?fbid=180895138670951&set=a.161315133962285.36546.150800645013734&type=1&theater>
しかしながら、上述した従来の方式では、サーバ管理者が、作成済みの仮想マシンを仮想スイッチに登録させる処理を、手動で行う必要がある。また、何れの仮想スイッチに何れの仮想マシンを接続するかの設計についても、管理者が行わなければならない。更に、サーバでの仮想マシンの利用状況の変化等により、使用中のリソースに偏りが発生した場合には、管理者は、リソースが平滑化されるように、仮想マシンの移動や仮想ネットワークの再設定を行う必要がある。また、クライアントが仮想マシンや仮想ネットワークを利用する際、管理者は、CPU(Central Processing Unit)、メモリ、HDD(Hard Disk Drive)等のリソースを事前に確保しておかなければならない。これにより、管理者に掛かる負担が増大する。併せて、従来の方式では、管理用のサーバがリソース管理を集中的に行うため、特に、ネットワークに収容する仮想マシンの数が増加した場合、サーバの負荷が増大する。
開示の実施例は、上記に鑑みてなされたものであって、サーバ管理者の負担を軽減すると共に、サーバの負荷を低減することができる通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本願の開示する通信制御システムは、一つの態様において、クライアント装置と、該クライアント装置に対してサービスを提供する複数のサーバ装置とを有する通信制御システムである。前記複数のサーバ装置のそれぞれは、通知部と作成部とを有する。前記通知部は、前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する。前記作成部は、前記クライアント装置からの要求に応じて、前記クライアント装置用の仮想マシンを作成する。前記クライアント装置は、選択部と要求部とを有する。前記選択部は、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する。前記要求部は、前記選択部により選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する。
また、本願の開示するクライアント装置は、一つの態様において、複数のサーバ装置からサービスの提供を受けるクライアント装置である。前記クライアント装置は、選択部と要求部とを有する。前記選択部は、前記複数のサーバ装置のそれぞれに作成された仮想マシンのリソース状況を前記複数のサーバ装置から通知されると、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する。前記要求部は、前記選択部により選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する。
更に、本願の開示するサーバ装置は、一つの態様において、クライアント装置に対してサービスを提供するサーバ装置である。前記サーバ装置は、通知部と作成部と算出部と検索部と移動部とを有する。前記通知部は、前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する。前記作成部は、前記クライアント装置からの仮想マシン作成要求に応じて、前記クライアント装置用の仮想マシンを作成する。前記算出部は、前記サーバ装置以外の他のサーバ装置に作成された仮想マシンの起動数を前記他のサーバ装置毎に取得し、前記起動数を用いて、各サーバ装置における仮想マシンの起動数の平均値を算出する。前記検索部は、前記サーバ装置における仮想マシンの起動数が、前記算出部により算出された平均値を超える場合、複数のサーバ装置の中から、前記仮想マシンの起動数の最も少ないサーバ装置を検索する。前記移動部は、前記サーバ装置において起動されている仮想マシンを、前記サーバ装置から、前記検索部により検索された前記他のサーバ装置に、移動する。
また、本願の開示する通信制御方法は、一つの態様において、クライアント装置と、該クライアント装置に対してサービスを提供する複数のサーバ装置とを有する通信制御システムで実行される通信制御方法である。前記通信制御方法は、通知工程と選択工程と要求工程と作成工程とを含む。前記通知工程では、前記複数のサーバ装置のそれぞれが、前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する。前記選択工程では、前記クライアント装置が、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する。前記要求工程では、前記クライアント装置が、前記選択工程にて選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する。前記作成工程では、前記サーバ装置が、前記クライアント装置からの要求に応じて、前記クライアント装置用の仮想マシンを作成する。
更に、本願の開示する通信制御プログラムは、一つの態様において、コンピュータを上記クライアント装置として機能させる。すなわち、前記通信制御プログラムは、複数のサーバ装置からサービスの提供を受けるクライアント装置で実行される通信制御プログラムである。前記通信制御プログラムは、選択ステップと要求ステップとをコンピュータに実行させる。前記選択ステップでは、前記コンピュータは、前記複数のサーバ装置のそれぞれに作成された仮想マシンのリソース状況を前記複数のサーバ装置から通知されると、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する。前記要求ステップでは、前記コンピュータは、前記選択ステップにて選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する。
本願の開示する通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラムは、サーバ管理者の負担を軽減すると共に、サーバの負荷を低減することができるという効果を奏する。
図1は、通信制御システムの概略構成を示す図である。 図2は、クライアントの機能構成を示すブロック図である。 図3は、サーバの機能構成を示すブロック図である。 図4は、通信制御システムの実行する仮想マシン作成処理を説明するためのフローチャートである。 図5は、リソース再配置処理の概要を説明するための図である。 図6は、通信制御システムの実行するリソース再配置処理を説明するためのフローチャートである。 図7は、通信制御プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
以下に、本願の開示する通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラムの実施例を、図面を参照しながら詳細に説明する。なお、以下の実施例により本願の開示する通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラムが限定されるものではない。
まず、本願の開示する一実施例に係る通信制御システムの構成を説明する。図1は、通信制御システム1の概略構成を示す図である。図1に示すように、通信制御システム1は、後述するクライアント10と、サーバ20、30、40、50、60とを有する。クライアント10とサーバ20、30、40、50、60とは、ルータR1またはルータR2を介して、各種信号やデータの送受信が可能である。
また、サーバ20、30、40、50、60は、ルータR1またはルータR2を介して、相互に各種信号やデータの送受信が可能である。サーバ20は、一つまたは複数の仮想マシン20a−1、2、・・・、n(nは自然数)を内部に作成し、仮想スイッチ20bにより、各仮想マシンの起動、停止等の切替え制御を行う。また、エージェント20cは、サーバ20の通信機能を実現し、例えば、クライアント10を送信元とするリソース確認要求をルータR1から受信すると、該要求に対する応答として、リソース確認応答を返信する。各サーバ20、30、40、50、60間では、エージェントを介して、起動中の仮想マシンの数やリソース使用状況(例えば、CPU使用率、メモリ使用量)を随時交換している。
なお、他のサーバ30、40、50、60の概略構成は、上述したサーバ20の構成と同様である。したがって、共通する構成要素には、末尾が同一の参照符号を用いると共に、その詳細な説明は省略する。
図2は、クライアント10の機能構成を示すブロック図である。図2に示すように、クライアント10は、リソース確認要求部11とサーバ選択部12と仮想マシン作成要求部13とを有する。これら各構成部分は、一方向又は双方向に、信号やデータの入出力が可能なように接続されている。リソース確認要求部11は、仮想マシンのリソース確認要求を、クラウドネットワークCに向けてブロードキャストする。サーバ選択部12は、仮想マシンのリソース状況を用いて、複数のサーバ20、30、40、50、60の中から、使用されているリソースの最も少ないサーバを選択する。仮想マシン作成要求部13は、選択されたサーバに対して、クライアント10用の仮想マシンの作成を要求する。
図3は、サーバ20の機能構成を示すブロック図である。図3に示すように、サーバ20は、リソース状況通知部21と仮想マシン作成部22と起動数平均値算出部23とサーバ検索部24と仮想マシン移動制御部25とを有する。これら各構成部分は、一方向又は双方向に、信号やデータの入出力が可能なように接続されている。リソース状況通知部21は、各サーバ20、30、40、50、60に作成された仮想マシンのリソース状況をクライアント10に通知する。仮想マシン作成部22は、クライアント10からの要求に応じて、クライアント10の用いる仮想マシンを作成する。起動数平均値算出部23は、他のサーバ30、40、50、60に作成された仮想マシンの起動数をサーバ毎に取得し、該起動数を用いて、各サーバ20、30、40、50、60における仮想マシンの起動数の平均値を算出する。サーバ検索部24は、自サーバ20における仮想マシンの起動数が、算出された平均値を超える場合、複数のサーバ30、40、50、60の中から、仮想マシンの起動数の最も少ないサーバを検索する。仮想マシン移動制御部25は、自サーバ20において起動されている仮想マシンを、自サーバ20から、検索されたサーバに、移動する。
以上、サーバ20の機能構成を説明したが、他のサーバ30、40、50、60の機能構成は、上述したサーバ20の構成と同様である。したがって、共通する構成要素には、末尾が同一の参照符号を用いると共に、その詳細な説明は省略する。
次に、通信制御システム1の動作を説明する。
図4は、通信制御システム1の実行する仮想マシン作成処理を説明するためのフローチャートである。S1では、クライアント10のリソース確認要求部11は、クラウドネットワークCに対して、クライアント10用の仮想マシンの作成を希望する旨を伝えるため、リソース確認要求メッセージをブロードキャスト送信する。リソース確認要求メッセージには、クライアント10が作成を所望する仮想マシンのスペックを示す情報が含まれる。スペックを示す情報は、例えば、CPU性能(クロック周波数、コア数、バス速度等)、メモリ容量、HDD容量である。なお、リソース確認要求メッセージの送信は、クラウドネットワークC内に存在するサーバ20、30、40、50、60の内、特定のサーバを宛先とする配信(マルチキャスト)であってもよい。
S2では、各サーバ20、30、40、50、60のリソース状況通知部は、エージェントにより、クライアント10から上記メッセージを受信すると、自サーバ装置内に仮想マシンを作成可能なサーバは、リソース確認応答メッセージを返信する。リソース確認応答メッセージには、自サーバの現在のリソース状況と、リソース確認要求メッセージにより要求されたスペックの仮想マシンの作成可否とを示す情報が含まれる。また、リソース状況を示す情報は、例えば、自サーバ内に作成または起動されている仮想サーバの数、CPU使用率、使用可能なメモリ容量、HDD容量である。なお、サーバ内に複数の仮想マシンが存在する場合、CPU使用率、使用可能なメモリ容量、HDD容量は、各仮想マシン毎の個別の値であってもよいし、サーバ内の全ての仮想マシンについての合計値であってもよい。
S3では、クライアント10のサーバ選択部12は、S2で返信された複数のリソース確認応答メッセージの受信に伴い、リソース状況を基に、メッセージ送信元のサーバの中から、仮想マシンを作成するのに最適なサーバを選択する。すなわち、サーバ選択部12は、各サーバ20、30、40、50、60に作成された仮想マシンのリソース状況を用いて、複数のサーバ20、30、40、50、60の中から、使用されているリソースの最も少ないサーバを選択する。このとき選択されるサーバの条件として、クライアント10は、上記のリソース状況以外に、ホップ数や遅延時間の条件を付加することもできる。例えば、クライアント10は、クライアント10からのホップ数が所定値(例えば、3〜5)以下であるサーバ、あるいは、クライアント10との通信の遅延時間が所定の閾値(例えば、10〜100ms)以下であるサーバを、選択するものとしてもよい。これにより、よりユーザの現在位置に近いサーバに仮想マシンが作成されることとなる。
以下、本実施例では、サーバ20、30、40、50、60の内、最適なサーバとして、サーバ20が選択されたものとする。
S4では、クライアント10の仮想マシン作成要求部13は、S3で選択されたサーバ20のエージェント20cに対して、VM作成要求メッセージを送信する。このVM作成要求メッセージには、暗号化処理が施され、仮想マシンの作成に使用されるID、パスワードが含まれている。サーバ20の仮想マシン作成部22は、VM作成要求メッセージを受信すると、上記ID、パスワードを用いて、クライアント10用に仮想マシンを作成する(S5)。なお、VM作成要求を受けたサーバ20は、仮想マシンの作成に先立ち、要求元であるクライアント10に対して、ステータス(VM作成開始またはVM作成不能)を報告するものとしてもよい。
サーバ20は、仮想マシンの作成を完了すると、クライアント10にその旨を知らせるため、VM作成完了メッセージを送信する(S6)。VM作成完了メッセージには、クラウドネットワークC内において仮想マシンを識別するためのVM識別子が含まれる。すなわちS6では、サーバ20は、仮想スイッチ20bを管理するコントローラに対し、仮想ネットワークへの接続設定を行うと共に、ネットワーク内で一意となるVM識別子に、アクセス先のIPアドレス等を付して、仮想マシンの作成完了及びその位置をクライアント10へ報告する。
仮想マシンの作成完了後は、クライアント10は、各種メッセージにより、仮想マシンの挙動を制御する。例えば、クライアント10は、クラウドネットワークCに向けてVM検索要求メッセージを送信し、当該メッセージに対するエージェントからの応答を待機する。これにより、クライアント10は、応答のあったサーバを特定することができるため、現在、自装置の仮想マシンが何れのサーバに存在するかを簡易迅速に検知することができる。また、クライアント10は、検索されたサーバに対して、VM識別子を含むVM起動要求メッセージを起動命令としてユニキャスト送信することで、クラウドネットワークC上に存在する、自装置用の仮想マシンを起動させる。同様に、クライアント10は、起動されたサーバに対して、VM識別子を含むVM停止要求メッセージを停止命令としてユニキャスト送信することで、自装置用の仮想マシンを停止させる。
続いて、図5、図6を参照しながら、通信制御システム1がサーバ間の負荷を平滑化するために実行されるリソース再配置処理について説明する。
図5は、リソース再配置処理の概要を説明するための図である。図5に示すように、サーバ20、30、40には、それぞれ4つの仮想マシンが作成されている。図5において、斜線のハッチングの施された仮想マシン(VM)は起動中であることを示し、ハッチングの施されていない仮想マシン(VM)は停止中であることを示す。各サーバ20、30、40に作成された4つの仮想マシンの内、サーバ20では、全ての仮想マシン20a−1、2、3、4が起動されている。また、サーバ30、40では、4台中3台の仮想マシンが起動されており、1台は停止している。サーバ50、60は、それぞれ3つの仮想マシンを内部に有し、サーバ50では、全ての仮想マシン50a−1、2、3が起動しているが、サーバ60では、2台の仮想マシン60a−1、2が起動している。また、破線で示す矢印Y1は、起動中の仮想マシンが、サーバ20(仮想マシン20a−4)からサーバ60(仮想マシン60a−3)に移動したことを示す。これにより、クラウドネットワークC内におけるリソースの再配置が実現される。その結果、リソースは平滑化される。
具体的には、各サーバ20、30、40、50、60のエージェントは、他のエージェントと情報交換をしており、クラウドネットワークC内の各サーバの平均VM起動数が “3”であることを事前に把握している。サーバ20は、自装置のVM起動数が“4”に達し、平均VM起動数である“3”を超えたことから、リソースに余裕が無くなったものと判断し、仮想マシン20a−4の移動先を検索する。検索の結果、サーバ20は、他のサーバの内、サーバ60のVM起動数が、平均値を下回る“2”であることを検知する。したがって、サーバ20は、サーバ60に仮想マシンを1台移動させる。
図6は、通信制御システム1の実行するリソース再配置処理を説明するためのフローチャートである。S11では、各サーバ20、30、40、50、60は、他のサーバから、自サーバ以外の仮想マシンの起動数を収集する。各サーバの起動数平均値算出部23、33、43、53、63は、S11で収集された仮想マシンの起動数を基に、クラウドネットワークC内の全てのサーバの平均起動数を算出する(S12)。なお、このとき算出される起動数は、必ずしも全てのサーバについての平均値である必要はなく、例えば、仮想マシンの移動元のサーバ(図5のサーバ20)を除いたサーバについての平均値であってもよい。
S13では、各サーバの起動数平均値算出部23、33、43、53、63は、自サーバにおいて現在起動されている仮想マシンの数が、S12で算出された平均起動数を超過しているか否かを判定する。当該判定の結果、起動中の仮想マシンの数が各サーバの平均起動数以下である場合(S13;No)には、通信制御システム1は、リソース再配置処理を終了するが、仮想マシンの起動数が平均起動数を上回る場合(S13;Yes)には、S14の処理に移行する。
本実施例では、図5に示したように、サーバ20における仮想マシンの起動数である“4”がネットワーク全体の平均起動数である“3”を上回っている。したがって、S14では、サーバ20のサーバ検索部24は、クラウドネットワークC内に存在する、自装置以外の全てのサーバ30、40、50、60の中から、仮想マシンの起動数が最も少ないサーバを検索する。本実施例では、図5に示したように、起動中の仮想マシンが2台であるサーバ60が仮想マシン起動数の最小値をとることから、移動先のサーバとして、サーバ60が検索される。
S15では、サーバ20の仮想マシン移動制御部25は、仮想マシン20a−4を、サーバ20から、S14で検索されたサーバ60に移動させる。具体的には、仮想マシン移動制御部25は、移動対象の仮想マシン20a−4のVM識別子を含むVM移動開始メッセージをサーバ60宛に送信することで、移動先となるサーバ60のエージェント60cに上記VM識別子を登録する。移動した仮想マシンは、サーバ60において、仮想マシン60a−3として機能する。仮想マシン20a−4の移動完了後、サーバ60は、サーバ20に対して、移動が完了したことを通知するメッセージ(VM移動完了メッセージ)を送信する。サーバ20は、当該メッセージの受信により、仮想マシン20a−4が正常にサーバ60に移動したことを検知する。サーバ20は、VM移動完了メッセージの受信を契機として、仮想マシン20a−4に関する情報をエージェント20cから消去する。
なお、サーバ20は、仮想マシンの移動完了の検知後、VM識別子と併せて、サーバ60のIDをクライアント10宛に送信することで、仮想マシンの移動先をクライアント10に通知する。クライアント10は、この通知を受けると、以降、仮想マシンを使用するためのサーバとして、IDを通知されたサーバへのアクセスを開始する。これにより、クライアント10用の仮想マシンがクラウドネットワークC内で移動しても、クライアント10は、自装置用の仮想マシンを自ら探索することなく、容易かつ確実に仮想マシンの使用を継続することができる。その結果、通信制御システム1の利便性が向上する。
上述したように、通信制御システム1は、上述した一連のリソース再配置処理を実行することで、起動している仮想マシンの偏在を緩和する。これにより、通信制御システム1は、クラウドネットワークC内に存在する全ての仮想マシンに対して、より高い処理性能を発揮可能なリソースの提供が可能となる。すなわち、サーバ20、30、40、50、60内に存在する各エージェントは、リソース状況として、サーバ内に何台の仮想マシンを現在保持しているか、その内アクティブな仮想マシンは何台あるか、CPU使用率、メモリ残量等の情報を相互に交換している。各サーバ20、30、40、50、60は、自装置のリソース状況が悪化した場合、他のサーバへ仮想マシンを移動させる要求を送出する。そして、リソースに余裕のある他のサーバが、仮想マシンを引き取ることで、ネットワーク全体でのリソースの均一化を図る。仮想マシンを移動させた場合の仮想ネットワークへの接続及び登録は、移動先のサーバのエージェントが自動的に行う。
仮想マシンの管理に関し、仮想マシンは、各サーバのリソース状況の変化に伴い、サーバ間を移動する。このため、クライアント10が、自装置用に作成された仮想マシンにアクセスする際、当該仮想マシンが、最初に作成されたサーバから移動していることがある。この場合、クライアント10は、上記仮想マシンを検索するため、仮想マシンの作成時に受領したVM識別子を含むVM検索要求メッセージを、クラウドネットワークCに送信する。当該VM識別子の割り当てられた仮想マシンを保持するサーバが、当該メッセージに応答することで、クライアント10は、自装置用の仮想マシンの位置やアクセス先のIPアドレス等を容易に検知することができる。
また、クライアントと仮想マシン間の遅延に基づくマイグレーションに関し、クライアント10は、以下の処理を実行することもできる。すなわち、クライアント10は、仮想マシンに接続した際、ホップ数や遅延時間が所定値よりも大きいと判断すると、クラウドネットワークCに対して、自装置用の仮想マシンを自装置近隣のサーバに移動することができないかの問合せメッセージを発信する。近隣のサーバのエージェントが、当該問合せメッセージを受けると、自サーバのリソースに余裕がある場合、クライアント10を受入れ可能であることを示すメッセージをクライアント10に返信する。クライアント10は、当該メッセージの受信に伴い、現在自装置の仮想マシンを収容しているサーバに対し、受入れ可能となった近隣のサーバへ仮想マシンを移動させるための移動指示メッセージを送信する。当該メッセージを受信したサーバは、クライアント10用の仮想マシンを、近隣のサーバに移動させる。
以上説明したように、通信制御システム1は、クライアント10と、クライアント10に対してサービスを提供する複数のサーバ20、30、40、50、60とを有する。複数のサーバ20、30、40、50、60は、各サーバに作成された仮想マシンのリソース状況をクライアント10に通知するリソース状況通知部21を有する。クライアント10は、サーバ選択部12と仮想マシン作成要求部13とを有する。サーバ選択部12は、上記仮想マシンのリソース状況を用いて、複数のサーバ20、30、40、50、60の中から、使用されているリソースの最も少ないサーバ20を選択する。仮想マシン作成要求部13は、サーバ選択部12により選択されたサーバに対して、クライアント10の用いる仮想マシンの作成を要求する。サーバ20は、クライアント10からの要求に応じて、クライアント10用の仮想マシンを作成する仮想マシン作成部22を有する。
また、サーバ20は、起動数平均値算出部23とサーバ検索部24と仮想マシン移動制御部25とを更に有するものとしてもよい。起動数平均値算出部23は、サーバ20以外の他のサーバ30、40、50、60に作成された仮想マシンの起動数をサーバ毎に取得し、上記起動数を用いて、上記各サーバにおける仮想マシンの起動数の平均値を算出する。サーバ検索部24は、自サーバ20における仮想マシンの起動数が、起動数平均値算出部23により算出された平均値を超える場合、他のサーバ30、40、50、60の中から、上記仮想マシンの起動数の最も少ないサーバを検索する。仮想マシン移動制御部25は、自サーバ20において起動されている仮想マシンを、自サーバ20から、サーバ検索部24により検索されたサーバに、移動する。
更に、クライアント10の仮想マシン作成要求部13は、サーバ20により作成された仮想マシンの識別子を用いて、複数のサーバ20、30、40、50、60に対して、クライアント10用の仮想マシンの位置の検索を要求するものとしてもよい。
これにより、通信制御システム1は、ユーザが、クラウドネットワークCに対して仮想マシンの作成要求を行うだけで、クラウドネットワークCが仮想マシンや仮想ネットワークのコンフィグ迄を完了する自律的なシステムの提供を可能とする。その際、サーバ20、30、40、50、60間においてリソースが自動的に平滑化されるため、公平なサービスの提供が可能となる。また、仮想マシンは、クライアント10に比較的近い位置に作成されるため、ユーザは、ネットワークに対する快適なアクセス環境を享受することができる。その結果、クラウド用仮想マシン、及び仮想ネットワーク(仮想スイッチ、仮想ルータ)を自律的に管理する分散型クラウドネットワーク管理システムが実現される。
通信制御システム1の適用例として、通常は、クライアントの仮想マシンが国内のデータセンタ内に存在し、当該クライアントのユーザが海外出張等で遠方に移動した場合に、特に好適である。通信制御システム1は、遅延時間やホップ数を基に、仮想マシンをユーザの近くに移動できないかを自発的に判断し、リソースが空いている場合には、仮想マシンをユーザ付近のサーバに移動させる。これにより、複数の国に跨がったネットワークサービスの提供は元より、仮想マシンに低遅延でアクセス可能なサービスの提供が可能となる。例えば、ユーザが海外出張する際、自国のサーバではなく、出張先の国のサーバへ自分の仮想マシンが移動するので、遅延の少ない環境での仮想マシンの使用が可能となる。また、仮想マシンは、仮想スイッチにより制御されるため、通信制御システム1は、仮想マシンの移動制御に際し、ユーザ側の設定変更を意識する必要がない。
上述したように、通信制御システム1によれば、仮想マシンや仮想ネットワークを提供するサーバ内に実装されたソフトウェアとしてのエージェントが、エージェントがインストールされたサーバ間で、相互にリソース情報の交換を行う。これにより、通信制御システム1は、ネットワーク内の全体のリソースを勘案した上で、ネットワーク内で次に仮想マシンを追加するのに最適な場所を特定し、仮想マシンの作成及び仮想ネットワークの構築を自動的に行う。したがって、従来行われていた、人手を介した仮想マシン、仮想ネットワークの設備設計や設備管理が不要となる。また、エージェントが、仮想マシン及び仮想スイッチが搭載されているサーバのリソース状況を判断し、リソースが空いているサーバへ仮想マシンを移動させることで、ネットワーク負荷の分散を図ることが可能となる。
特に、通信制御システム1は、ネットワーク内にリソースを追加する場合、エージェントを有するサーバをネットワーク内に追加するだけで、以降、エージェントが、サーバに内蔵されたCPU、メモリ、HDDをリソースとして自動的に追加する。その際、通信制御システム1は、必要に応じて、仮想マシンや仮想ネットワークを移動させるため、新たなサーバリソースの追加が容易となる。従来の方式では、リソースは、一元的に管理されているため、管理対象の仮想マシンの台数や仮想ネットワークの台数が多くなると、特定のサーバに負荷が集中することとなる。本実施例に係る通信制御システム1では、リソースの管理が各サーバのエージェントに分散されるため、特定のサーバへの集中は回避される。更に、新規に作成される仮想マシンは、サーバとクライアント間のホップ数や遅延時間を考慮して、クライアントの近くに作成される。このため、ユーザは、クライアントを介して、通信速度の高い快適なアクセス環境を享受することができる。
[通信制御プログラム]
図7は、通信制御プログラムによる情報処理がコンピュータ100を用いて具体的に実現されることを示す図である。図7に例示するように、コンピュータ100は、例えば、メモリ101と、CPU102と、ハードディスクドライブインタフェース103と、ディスクドライブインタフェース104と、シリアルポートインタフェース105と、ビデオアダプタ106と、ネットワークインタフェース107とを有し、これらの各部はバスBによって接続される。
メモリ101は、図7に例示するように、ROM(Read Only Memory)101a及びRAM(Random Access Memory)101bを含む。ROM101aは、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース103は、図7に例示するように、ハードディスクドライブ108に接続される。ディスクドライブインタフェース104は、図7に例示するように、ディスクドライブ109に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ109に挿入される。シリアルポートインタフェース105は、図7に例示するように、例えばマウス110、キーボード111に接続される。ビデオアダプタ106は、図7に例示するように、例えばディスプレイ112に接続される。
ここで、図7に例示するように、ハードディスクドライブ108は、例えば、OS(Operating System)108a、アプリケーションプログラム108b、プログラムモジュール108c、プログラムデータ108dを記憶する。すなわち、開示の実施例に係る通信制御プログラムは、コンピュータ100によって実行される指令が記述されたプログラムモジュール108cとして、例えばハードディスクドライブ108に記憶される。具体的には、上記実施例で説明したリソース確認要求部11、サーバ選択部12、仮想マシン作成要求部13、リソース状況通知部21、仮想マシン作成部22、起動数平均値算出部23、サーバ検索部24、及び仮想マシン移動制御部25と同様の情報処理を実行する各種手順が記述されたプログラムモジュール108cが、ハードディスクドライブ108に記憶される。また、通信制御プログラムによる情報処理に用いられるデータは、プログラムデータ108dとして、例えばハードディスクドライブ108に記憶される。そして、CPU102が、ハードディスクドライブ108に記憶されたプログラムモジュール108cやプログラムデータ108dを必要に応じてRAM101bに読み出し、上記各種手順を実行する。
なお、通信制御プログラムに係るプログラムモジュール108cやプログラムデータ108dは、ハードディスクドライブ108に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ109等を介してCPU102によって読み出されてもよい。あるいは、通信制御プログラムに係るプログラムモジュール108cやプログラムデータ108dは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース107を介してCPU102によって読み出されてもよい。
なお、上記実施例では、仮想マシン作成処理の実行に際してクライアント10がサーバを選択する基準として、クライアント10は、使用リソースが最少のサーバを選択する態様を例示した。しかしながら、かかる態様に限らず、クライアント10は、CPU使用率が最も低いサーバ、あるいは、メモリやHDDの空き容量が最も多いサーバを、仮想マシン作成の要求先として選択するものとしてもよい。また、クライアント10は、CPU使用率や空き容量を組み合わせて、使用してもよい。その際、CPU使用率の比重を他のパラメータよりも大きくする等の重み付けを行ってもよい。更に、クライアント10は、サーバ内に作成されている仮想マシンの数や起動中の仮想マシンの数を、上述の各種パラメータと組み合わせて用いてもよい。例えば、クライアント10は、まず、自サーバ内に存在する起動中の仮想マシンの数が最少の値をとるサーバを選択する。そして、クライアント10は、当該値が同一である場合に初めて、他のパラメータであるCPU使用率、空きメモリ容量等を参照するものとしてもよい。
また、上記実施例では、図4のS2において、自サーバ装置内に仮想マシンを作成可能なサーバが、リソース確認要求に対するリソース確認応答メッセージをクライアント10に返信するものとした。しかしながら、リソース確認応答メッセージを返信するサーバは、必ずしも、クラウドネットワークC内に設置された全てのサーバ20、30、40、50、60である必要はない。すなわち、自サーバ装置内に仮想マシンを作成可能なサーバの内、クライアント10の要求するスペックを満たす仮想マシンを作成可能なサーバのみが、リソース確認応答メッセージをクライアント10に返信するものとしてもよい。
例えば、クライアント10がクラウドネットワークCに対して、CPUの周波数として3GHz以上、メモリ容量として3GB以上、及びHDD容量として100GB以上のスペックを要求した場合を想定する。この場合、クラウドネットワークC内に存在するサーバ20、30、40、50、60の内、これらの条件を満たす仮想マシンをクライアント10に提供することのできる一つまたは複数のサーバが、リソース状況を応答する。これにより、選択されてもクライアント10からの要求を満たすことのできないサーバ、換言すれば、仮想マシンを作成するサーバに選択される可能性の低いサーバが、リソース確認応答メッセージを返信する処理が不要となる。その結果、当該メッセージの送信に伴うネットワーク負荷が軽減される。また、クライアント10が各サーバからのリソース状況の収集を完了するために要する待機時間が短縮される。
更に、上述のリソース再配置処理では、各サーバ20、30、40、50、60は、仮想マシンの起動数に基づき、仮想マシンの移動の要否及び移動先を決定するものとした。しかしながら、各サーバ20、30、40、50、60は、仮想マシンのリソース使用状況、ひいては、CPU使用率、メモリやHDDの使用容量等を参照して、仮想マシンの移動の要否及び移動先を決定するものとしてもよい。また、これらのパラメータ(例えば、各サーバにおける起動数、リソース使用量、CPU使用率、メモリやHDDの使用容量)を組み合わせてもよい。各サーバ20、30、40、50、60は、パラメータを組み合わせる際、適宜重み付けを行ってもよい。
例えば、サーバ20が、仮想マシンの移動の要否あるいは移動先を決定するための指標として、CPU使用率を用いる場合、サーバ20は、自装置のCPU使用率とネットワーク内の各サーバのCPU使用率の平均値とを監視する。監視の結果、サーバ20の収容する仮想マシンが使用するCPUの使用率が、ネットワーク全体におけるCPU使用率を上回る場合には、サーバ20は、仮想マシンの移動を決定する。サーバ20は、クラウドネットワークC内で最もCPU使用率の低いサーバを検索し、検索されたサーバを空きリソースに余裕のあるサーバと判断する。サーバ20は、当該サーバ宛に、VM移動開始メッセージを送信することで、移動対象の仮想マシンのVM識別子を移動先のサーバに登録する。そして、サーバ20は、仮想マシンを当該サーバに移動させる。これにより、CPU使用率の高かった移動元のサーバ20における仮想マシンのCPU使用率は減少し、CPU使用率の低かった移動先のサーバにおける仮想マシンのCPU使用率は増加する。したがって、クラウドネットワークC内に存在するサーバ間におけるCPU使用率のバラつきは、緩和(平滑化)される。その結果、各サーバの負荷が分散される。
また、クライアント10及びサーバ20、30、40、50、60の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は、図示のものに限らず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することもできる。例えば、リソース確認要求部11と仮想マシン作成要求部13、あるいは、サーバ検索部24と仮想マシン移動制御部25をそれぞれ1つの構成要素として統合してもよい。反対に、仮想マシン作成要求部13に関し、クライアント10用の仮想マシンの作成を要求する部分と、クライアント10用の仮想マシンの位置検索を要求する部分とに分散してもよい。更に、ハードディスクドライブ108を、クライアント10の外部装置としてネットワークやケーブル経由で接続するようにしてもよい。
1 通信制御システム
10 クライアント
11 リソース確認要求部
12 サーバ選択部
13 仮想マシン作成要求部
20、30、40、50、60 サーバ
20a−1、20a−2、20a−3、・・・、20a−n 仮想マシン(VM)
30a−1、30a−2、30a−3、・・・、30a−n 仮想マシン(VM)
40a−1、40a−2、40a−3、・・・、40a−n 仮想マシン(VM)
50a−1、50a−2、50a−3、・・・、50a−n 仮想マシン(VM)
60a−1、60a−2、60a−3、・・・、60a−n 仮想マシン(VM)
20b、30b、40b、50b、60b 仮想スイッチ
20c、30c、40c、50c、60c エージェント
21、31、41、51、61 リソース状況通知部
22、32、42、52、62 仮想マシン作成部
23、33、43、53、63 起動数平均値算出部
24、34、44、54、64 サーバ検索部
25、35、45、55、65 仮想マシン移動制御部
100 コンピュータ
101 メモリ
101a ROM
101b RAM
102 CPU
103 ハードディスクドライブインタフェース
104 ディスクドライブインタフェース
105 シリアルポートインタフェース
106 ビデオアダプタ
107 ネットワークインタフェース
108 ハードディスクドライブ
108a OS
108b アプリケーションプログラム
108c プログラムモジュール
108d プログラムデータ
109 ディスクドライブ
110 マウス
111 キーボード
112 ディスプレイ
B バス
C クラウドネットワーク
R1、R2 ルータ
Y1 仮想マシンの移動を示す矢印

Claims (7)

  1. クライアント装置と、該クライアント装置に対してサービスを提供する複数のサーバ装置とを有する通信制御システムであって、
    前記複数のサーバ装置のそれぞれは、
    前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する通知部と、
    前記クライアント装置からの要求に応じて、前記クライアント装置用の仮想マシンを作成する作成部とを有し、
    前記クライアント装置は、
    前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する選択部と、
    前記選択部により選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する要求部と
    を有することを特徴とする通信制御システム。
  2. 前記サーバ装置は、
    前記サーバ装置以外の他のサーバ装置に作成された仮想マシンの起動数を前記他のサーバ装置毎に取得し、前記起動数を用いて、各サーバ装置における仮想マシンの起動数の平均値を算出する算出部と、
    前記サーバ装置における仮想マシンの起動数が、前記算出部により算出された平均値を超える場合、前記他のサーバ装置の中から、前記仮想マシンの起動数の最も少ないサーバ装置を検索する検索部と、
    前記サーバ装置において起動されている仮想マシンを、前記サーバ装置から、前記検索部により検索された前記他のサーバ装置に、移動する移動部と
    を更に有することを特徴とする請求項1に記載の通信制御システム。
  3. 前記クライアント装置の要求部は、前記サーバ装置により作成された仮想マシンの識別子を用いて、前記複数のサーバ装置に対して、前記クライアント装置用の仮想マシンの位置の検索を要求することを特徴とする請求項1に記載の通信制御システム。
  4. 複数のサーバ装置からサービスの提供を受けるクライアント装置であって、
    前記複数のサーバ装置のそれぞれに作成された仮想マシンのリソース状況を前記複数のサーバ装置から通知されると、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する選択部と、
    前記選択部により選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する要求部と
    を有することを特徴とするクライアント装置。
  5. クライアント装置に対してサービスを提供するサーバ装置であって、
    前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する通知部と、
    前記クライアント装置からの仮想マシン作成要求に応じて、前記クライアント装置用の仮想マシンを作成する作成部と、
    前記サーバ装置以外の他のサーバ装置に作成された仮想マシンの起動数を前記他のサーバ装置毎に取得し、前記起動数を用いて、各サーバ装置における仮想マシンの起動数の平均値を算出する算出部と、
    前記サーバ装置における仮想マシンの起動数が、前記算出部により算出された平均値を超える場合、複数のサーバ装置の中から、前記仮想マシンの起動数の最も少ないサーバ装置を検索する検索部と、
    前記サーバ装置において起動されている仮想マシンを、前記サーバ装置から、前記検索部により検索された前記他のサーバ装置に、移動する移動部と
    を有することを特徴とするサーバ装置。
  6. クライアント装置と、該クライアント装置に対してサービスを提供する複数のサーバ装置とを有する通信制御システムで実行される通信制御方法であって、
    前記複数のサーバ装置のそれぞれが、前記サーバ装置に作成された仮想マシンのリソース状況を前記クライアント装置に通知する通知工程と、
    前記クライアント装置が、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する選択工程と、
    前記クライアント装置が、前記選択工程にて選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する要求工程と、
    前記サーバ装置が、前記クライアント装置からの要求に応じて、前記クライアント装置用の仮想マシンを作成する作成工程と
    を含むことを特徴とする通信制御方法。
  7. 複数のサーバ装置からサービスの提供を受けるクライアント装置で実行される通信制御プログラムであって、
    前記複数のサーバ装置のそれぞれに作成された仮想マシンのリソース状況を前記複数のサーバ装置から通知されると、前記仮想マシンのリソース状況を用いて、前記複数のサーバ装置の中から、使用されているリソースの最も少ないサーバ装置を選択する選択ステップと、
    前記選択ステップにて選択されたサーバ装置に対して、前記クライアント装置用の仮想マシンの作成を要求する要求ステップと
    をコンピュータに実行させるための通信制御プログラム。
JP2012008937A 2012-01-19 2012-01-19 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム Expired - Fee Related JP5602775B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012008937A JP5602775B2 (ja) 2012-01-19 2012-01-19 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012008937A JP5602775B2 (ja) 2012-01-19 2012-01-19 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2013149076A JP2013149076A (ja) 2013-08-01
JP5602775B2 true JP5602775B2 (ja) 2014-10-08

Family

ID=49046524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012008937A Expired - Fee Related JP5602775B2 (ja) 2012-01-19 2012-01-19 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム

Country Status (1)

Country Link
JP (1) JP5602775B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6133804B2 (ja) * 2014-02-20 2017-05-24 日本電信電話株式会社 ネットワーク制御装置、通信システム、ネットワーク制御方法、および、ネットワーク制御プログラム
JP6277853B2 (ja) * 2014-05-12 2018-02-14 富士通株式会社 制御装置、通信装置、および、通信方法
JP6660905B2 (ja) * 2017-03-17 2020-03-11 Kddi株式会社 分散型コンテナ配置の最適化方法およびシステム
JP6744260B2 (ja) * 2017-07-14 2020-08-19 日本電信電話株式会社 仮想サーバ構成変更方法および仮想サーバ構成変更システム
JP2019022078A (ja) * 2017-07-18 2019-02-07 日本電信電話株式会社 仮想サーバ編成方法および仮想サーバ編成システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060704A1 (en) * 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
WO2008102739A1 (ja) * 2007-02-23 2008-08-28 Nec Corporation 仮想サーバシステム及び物理サーバ選択方法
CN101998629B (zh) * 2009-08-28 2014-05-21 国际商业机器公司 搜索虚拟资源的位置的方法、装置和***
JP5559582B2 (ja) * 2010-03-25 2014-07-23 株式会社日立システムズ 仮想計算機資源構成変更システムと方法およびプログラム

Also Published As

Publication number Publication date
JP2013149076A (ja) 2013-08-01

Similar Documents

Publication Publication Date Title
US10171567B2 (en) Load balancing computer device, system, and method
Son et al. Priority-aware VM allocation and network bandwidth provisioning in software-defined networking (SDN)-enabled clouds
US8386825B2 (en) Method and system for power management in a virtual machine environment without disrupting network connectivity
US9600319B2 (en) Computer-readable medium, apparatus, and method for offloading processing from a virtual switch to a physical switch
JP6556875B2 (ja) ソフトウェアディファインドデータセンタ及びそこにおけるサービスクラスタの配置方法
US9632839B2 (en) Dynamic virtual machine consolidation
JP5602775B2 (ja) 通信制御システム、クライアント装置、サーバ装置、通信制御方法、及び通信制御プログラム
CN103999031B (zh) 云服务器的虚拟私有存储阵列服务
US8566822B2 (en) Method and system for distributing hypervisor functionality over multiple physical devices in a network and configuring sub-hypervisor to control the virtual machines
KR101473317B1 (ko) 클라우드 컴퓨팅 시스템 및 클라우드 컴퓨팅 시스템에서의 트래픽 분산 방법 및 제어 방법
JP6636142B2 (ja) スケールアウト関連付けの方法および装置、ならびにシステム
WO2012100544A1 (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群***
US20090300614A1 (en) Virtual-machine control system and virtual-machine moving method
US20130067484A1 (en) Information processing apparatus, information processing method, recording medium and information processing system
RU2676452C1 (ru) Контроллер, способ управления и программа
WO2014032233A1 (zh) 虚拟机热迁移的***和方法
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20180026855A1 (en) Network management system, device, and method
WO2012173641A1 (en) Decentralized management of virtualized hosts
WO2021120633A1 (zh) 一种负载均衡方法及相关设备
JP5758358B2 (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法
EP3258655B1 (en) Method and apparatus for determining nsd to be uploaded
US20210211381A1 (en) Communication method and related device
TWI520524B (zh) A method and system for controlling virtual machine network access and flow through a controller to generate a secure virtual isolation group
JP2017045301A (ja) コンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140811

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140820

R150 Certificate of patent or registration of utility model

Ref document number: 5602775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees