JP6015522B2 - 仮想マシン管理装置および仮想マシン管理方法 - Google Patents

仮想マシン管理装置および仮想マシン管理方法 Download PDF

Info

Publication number
JP6015522B2
JP6015522B2 JP2013070658A JP2013070658A JP6015522B2 JP 6015522 B2 JP6015522 B2 JP 6015522B2 JP 2013070658 A JP2013070658 A JP 2013070658A JP 2013070658 A JP2013070658 A JP 2013070658A JP 6015522 B2 JP6015522 B2 JP 6015522B2
Authority
JP
Japan
Prior art keywords
mac address
virtual machine
switch
allocation plan
machine management
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
JP2013070658A
Other languages
English (en)
Other versions
JP2014195174A (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 JP2013070658A priority Critical patent/JP6015522B2/ja
Publication of JP2014195174A publication Critical patent/JP2014195174A/ja
Application granted granted Critical
Publication of JP6015522B2 publication Critical patent/JP6015522B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

本発明は、仮想マシンのネットワークアドレスを管理する仮想マシン管理装置および仮想マシン管理方法に関する。
クラウド環境等では、物理サーバ(物理マシン)上で複数の仮想マシン(VM:Virtual Machine)を動作させるサーバ仮想化技術が用いられる。例えば、仮想化したサーバをインフラストラクチャとしてユーザに提供するIaaS(Infrastructure as a Service)事業者が管理するデータセンタでは、物理サーバあたり複数のVMを動作させる。
各VMは、それぞれ仮想ネットワークインタフェースカード(仮想NIC:Network Interface Card)を有しているため、ネットワーク内では、多数のMACアドレスが存在することになる。
上記の仮想NICと外部ネットワークとの間にはスイッチが設けられる。スイッチは、VM側から受信したフレーム転送のために、学習テーブル(転送先MACアドレスと接続ポートの対応表)を保持している。また、各物理マシンを管理する管理サーバは、VMの作成・削除・移動等の管理を行う。管理サーバは、VM作成時にはVM上の仮想NICにMACアドレスを割り当てる。
上記のスイッチは、受信したフレームの転送のために、転送先MACアドレスおよび接続ポートの対応表である学習テーブルを保持している。スイッチは、一般的に転送対象MACアドレスの検索スピード向上のためにハッシュテーブルを用いる。この学習テーブルは、MACアドレスと、MACアドレスから求めたハッシュ値、および接続先ポートの情報によって構成されている。この学習テーブルにおいては、ハッシュ値に対して学習できる数に上限がある。
MACアドレスの割り当てとして、仮想環境下においてVM作成時に仮想NICに対して重複を避ける技術が開示されている。この技術では、割り当てるMACアドレスを管理するテーブルを一元的に管理せず、各物理サーバ内にMACアドレス管理用の共有テーブルを設け、VM同士でMACアドレスの使用状況を共有する(例えば、下記特許文献1参照。)。
特開2010−147929号公報
しかしながら、上記従来の技術では、下記の問題を有する。
1)スイッチにおけるMACアドレス学習不可の発生
仮想環境下ではVMに割り当てられるMACアドレス数が増大し、スイッチ学習の際に一つのハッシュ値に対するMACアドレスの学習数が上限を超えてしまうことがある。この場合、スイッチは、受信したパケットについて、学習されていないMACアドレスと認識するため(ハッシュコリジョン)、他の全ポートにパケットを転送してしまうフラッディングが生じ、ネットワーク輻輳を生じる。この点は、スイッチの機能を上げる等により、学習可能なMACアドレス数を増やせるが、データセンタ内の機器コストが増大する。
2)スイッチにおいてMACアドレスの検索性能を考慮した学習ができない
スイッチが同一数のMACアドレスを学習する際に、各ハッシュ値に対する学習数の偏りが生じると、ハッシュ値に対する学習数が均一の場合と比較して、検索回数が増え、MACアドレスの検索性能が悪くなる。
特許文献1の技術では、MACアドレスの重複は避けることができるが、各スイッチにおける上記1)、2)の問題を解決することはできない。
一つの側面では、ネットワーク内のスイッチの学習不可を防止し、検索効率を向上できるMACアドレスを仮想マシンに割り当てることを目的とする。
一つの案では、ネットワーク内の複数の仮想マシンに割り当てるMACアドレスを管理する仮想マシン管理装置は、前記ネットワークの情報と前記ネットワーク内のスイッチの情報を用いて、前記スイッチの学習テーブルと同じ学習数のテーブル列数を有し、前記MACアドレスの割り当てを行うための割り当て計画テーブルを作成する作成手段と、前記MACアドレスを前記スイッチのハッシュ関数を用いて、前記割り当て計画テーブルの該当するハッシュ値のテーブル列に所定の順序を有して登録する登録手段と、前記テーブル列数の範囲内に登録されたMACアドレスを所定の順序を有して読み出し、前記仮想マシンに割り当てる割り当て手段と、を有する。
一つの実施形態によれば、ネットワーク内のスイッチの学習不可を防止し、検索効率を向上できるMACアドレスを仮想マシンに割り当てることができる。
図1は、実施の形態にかかる仮想マシン管理装置を含むデータセンタの全体構成を示す図である。 図2は、実施の形態にかかる管理サーバによるMACアドレスの管理を説明するブロック図である。 図3は、実施の形態にかかる管理サーバのハードウェア構成例を示す図である。 図4は、実施の形態にかかる管理サーバの機能構成を示すブロック図である。 図5は、スイッチ種別が異なる構成例を示す図である。 図6は、ネットワーク情報テーブルの内容を示す図表である。 図7は、スイッチ情報テーブルの内容を示す図表である。 図8は、割り当て計画テーブルの内容を示す図表である。 図9は、非優先テーブルの内容を示す図表である。 図10は、実施例1によるテーブル作成の処理手順を示すシーケンス図である。 図11は、実施例1によるテーブル作成の処理手順を示すフローチャートである。 図12は、実施例1による仮想マシンに対するMACアドレス割り当ての処理手順を示すシーケンス図である。 図13は、実施例1による仮想マシンに対するMACアドレス割り当ての処理手順を示すフローチャートである。 図14は、スイッチによる各VMのMACアドレスの学習手順を説明するシーケンス図である。 図15は、実施の形態2において用いられる優先度テーブル内容を示す図表である。 図16は、実施例2によるテーブル作成の処理手順を示すシーケンス図である。 図17は、実施例2によるテーブル作成の処理手順を示すフローチャートである。 図18は、実施例2において作成する各テーブルの内容を示す図表である。 図19は、実施例2による仮想マシンに対するMACアドレスの割り当ての処理手順を示すシーケンス図である。 図20は、実施例2による仮想マシンに対するMACアドレス割り当ての処理手順を示すフローチャートである。
(実施の形態)
(ネットワークの全体構成例)
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。図1は、実施の形態にかかる仮想マシン管理装置を含むデータセンタの全体構成を示す図である。データセンタ100は、外部(ユーザ)にサービスを提供する業務ネットワーク(NW)側100aと、データセンタ100内部の管理を行う保守ネットワーク(NW)側100bとに分けられる。
業務NW側100aには、複数の物理マシンA〜D(101)を有する。各物理マシンA〜D(101)は、それぞれ複数の仮想マシン(VM)102と、仮想ネットワークインタフェースカード(NIC)103とを有する。各物理マシン101(仮想NIC103)は、スイッチ(例えば、レイヤ2スイッチ)105、およびルータ106を介して外部NW107に接続される。
保守NW100b側には、各物理マシンA〜D(101)を管理する管理サーバ(仮想マシン管理装置)110と、管理サーバ110を運用者により操作する保守端末111が設けられている。
(MACアドレス管理について)
図2は、実施の形態にかかる管理サーバによるMACアドレスの管理を説明するブロック図である。管理サーバ110は、制御部201と、メモリ202とを含む。
制御部201は、VM102に対し、割り当て計画情報を作成してMACアドレスの割り当てを行う。割り当て計画情報は、MACアドレスから求めたハッシュ値と、このハッシュ値に対応するMACアドレスと、VM102への割り当て可否状況とを含む。制御部201は、作成した割り当て計画情報を割り当て計画テーブル210として、メモリ202に格納する。この割り当て計画テーブル210は、スイッチ105が有する学習テーブル相当のものを作成する。
管理サーバ110の制御部201は、ハッシュ値を求める際は、スイッチ105が有するハッシュ関数を用いる。割り当て計画テーブル210は、ハッシュ値(1〜N)と、ハッシュ値に対応したMACアドレスからなる。図2の例では、一つのハッシュ値(行)に対し、複数(テーブル列数3)のMACアドレスが割り当てられる。例えば、ハッシュ値1には、MAC1,MAC3,MAC9が割り当てられている。
そして、制御部201は、割り当て計画テーブル210の最小の列(1列目)、および行(1行目)を起点として、図2の矢印に示す走査方向Aを有して順次MACアドレスを選択し、VM102の作成時に割り当てる。走査方向Aは、1列目のハッシュ値1〜NについてそれぞれMACアドレスを割り当てた後、ハッシュ値1に戻り、2列目のハッシュ値1〜NについてそれぞれMACアドレスを割り当てていく。
制御部201は、割り当て計画テーブル210上で順次「未使用」のMACアドレスを割り当てていく。これにより、スイッチ105のMACアドレスの学習が学習数(テーブル列数)の範囲内に収まり、スイッチ105は、ハッシュ値に対してほぼ均一にMACアドレスを割り当てることができる。
管理サーバ110(制御部201)は、この割り当て計画テーブル210に基づき、各物理マシンA〜D(101)のVM102(仮想NIC103)に対して所定の順序を有してMACアドレスを払い出す。ここで、管理サーバ110は、割り当て計画テーブル210に登録されていないMACアドレスについては、VM102への割り当て(払い出し)を行わない。これにより、VM102には、スイッチ105の学習不可が起きないMACアドレスを割り当てることができる。
スイッチ105は、各VM102に割り当てられたMACアドレスに基づき学習を行う。スイッチ105の学習テーブルは、割り当て計画テーブル210の内容と同じMACアドレスを学習することになる。この際、スイッチ105は、図2に示すように、最小の列から順に割り当てられたVM102のMACアドレスを学習することになり、MACアドレス検索時に行う検索を効率的に行うことができるようになる。すなわち、割り当て計画テーブル210およびスイッチ105の学習テーブル内において、検索方向Aに沿った割り当てが行われるため、割り当てられたMACアドレスの格納位置がばらつくことがなく、MACアドレスの検索効率を向上できるようになる。
(管理サーバのハードウェア構成例)
図3は、実施の形態にかかる管理サーバのハードウェア構成例を示す図である。管理サーバ110は、制御部であるCPU(Central Processing Unit)201と、メモリ202と、NIC303とを含む。
CPU201は、メモリ202のうち、ROM等の不揮発領域に格納された制御プログラムに基づき、MACアドレスの割り当ておよび払い出し等にかかる制御を実行する。CPU201は、ネットワーク(業務NW100a)情報の収集、スイッチ105のスイッチ情報の収集、メモリ202内の各種テーブル(上記割り当て計画テーブル210を含む)の作成、VM102に対するMACアドレスの割り当て(払い出し)等を行う。
メモリ202には、スイッチ105のNW情報を格納するネットワーク情報テーブルと、各スイッチ105の情報を格納するスイッチ情報テーブル、上記の割り当て計画テーブル210、MACアドレスの割り当ての優先度を示す複数の優先度テーブル(実施例2参照)等を格納する。例えば、これらの情報は書き換え可能な不揮発の領域に格納される。また、RAM等の揮発領域に一次格納し、メモリ202の不揮発領域に保持する構成としてもよい。
NIC303は、保守NW100bを介して物理マシン101および保守端末111等と通信を行う。業務NW100aの情報、およびスイッチ105の情報は、保守端末111等を介して外部から入力される。保守端末111からは、管理サーバ110に対して割り当て計画テーブル210の作成要求や、VM作成要求が送信される。管理サーバ110は、各VM102に対してMACアドレスの割り当て(払い出し)を行い、保守端末111に対して割り当て計画テーブル210の作成応答や、VM作成応答を返答する。
(管理サーバの機能構成)
図4は、実施の形態にかかる管理サーバの機能構成を示すブロック図である。管理サーバ110は、要求受付部401と、メモリ制御部402と、VM制御部403と、通信制御部404等を含む。
要求受付部401は、保守NW100bを介して保守端末111を操作する運用者からの管理指示(テーブル作成要求やVM作成要求等)を受け付け、処理結果を保守端末111に応答する(通知手段)。メモリ制御部402は、メモリ202内の各テーブルの作成および削除の機能(作成手段)と、MACアドレスの登録等の機能(登録手段)を有する。VM制御部403は、VM102の作成・追加・削除・MACアドレスの割り当て等を行う。通信制御部404は、NIC303および保守NW100bを介して物理マシン101との通信や接続を行う。図4に記載の管理サーバ110内の各構成部は、図3に記載のCPU201がメモリ202等に格納された制御プログラムにより機能実行することができる。
以下、異なるスイッチ種別に対応する各実施例についてそれぞれ説明する。図5は、スイッチ種別が異なる構成例を示す図である。この図5に示す基本構成は、図1と同様であるが、スイッチ105の種別が異なるネットワークNW1,NW2をそれぞれ示している。
ネットワークNW1は、物理マシン101に接続されるスイッチ105が全て同一のスイッチ(SW1)105aである。この構成例(実施例1)では、各スイッチSW1(105a)は全て同じ学習数(テーブル列数)を有し、同一のハッシュ値を用いることができる。
ネットワークNW2は、物理マシンC,Dそれぞれに対応の一対のスイッチ(SW1)105aに対し、一対のスイッチ105aに接続されるスイッチ(SW2)105bのスイッチ種別が異なる。この構成例(実施例2)では、スイッチSW1とSW2とでハッシュ値に対応する学習数(テーブル列数)と、MACアドレスを用いたハッシュ値の算出の仕方が、スイッチSW1とSW2とで異なる。
(実施例1)
(MACアドレス管理に用いる各テーブル内容)
はじめに、実施例1では、図5のNW1(スイッチ種別が全て同一)に適用するMACアドレスの割り当て構成について説明する。図6〜図9は、それぞれメモリに格納される4つの各テーブル内容を示す図表である。これら4つのテーブルは、実施例1,2に共通して用いられる。
図6は、ネットワーク情報テーブルの内容を示す図表である。ネットワーク(NW)情報テーブル601は、業務NW100a内に存在するスイッチ105の情報を保持する。このネットワーク情報テーブル601は、業務NWを区別するためのNW識別子と、NW識別子別のNW内に存在するスイッチ種類を示すスイッチ(SW)識別子の情報を含む。図5に示したNW1,NW2のそれぞれのSW識別子が保持される。
図7は、スイッチ情報テーブルの内容を示す図表である。スイッチ(SW)情報テーブル701は、ハッシュ関数等、スイッチ105の内部情報(SW情報)を保持する。図示のように、各スイッチに固有の情報としてSW識別子毎に、スイッチで使用されるハッシュ関数、学習可能MACアドレス数、ハッシュ値bit数、テーブル列数の情報を含む。ハッシュ値bit数が2であれば22=4を意味する。
NW情報テーブル601と、SW情報テーブル701の内容は、予め保守端末111等を介してメモリ202に格納しておく。
図8は、割り当て計画テーブルの内容を示す図表である。割り当て計画テーブル210は、VM102へ割り当てるMACアドレスの候補と、使用状況を保持する。この割り当て計画テーブル210には、図示のように、MACアドレスから求めたハッシュ値、およびハッシュ値に対応するMACアドレス、MACアドレスの使用状況等を含む。使用状況は、「未使用」、あるいは「使用中」(VM102へ払い出し済みを示す)を示す識別子からなる。この割り当て計画テーブル210のMACアドレス使用状況(横軸)の列数は、スイッチ情報テーブル701のテーブル列数に一致し、同数(例えば、図8の3列数は、図7のテーブル列数3に対応する)を有して生成する。
図9は、非優先テーブルの内容を示す図表である。非優先テーブル901は、割り当て計画テーブル210のテーブル列数を超え、割り当て計画テーブル210への登録が不可能であったMACアドレスを保持する。非優先テーブル901に割り当てられたMACアドレスはフラッディングの要因となるため、VM102に対してMACアドレスの割り当て(払い出し)を行わない。
(割り当て計画テーブルの作成とMACアドレスの登録)
図10は、実施例1によるテーブル作成の処理手順を示すシーケンス図である。管理サーバ110のメモリ制御部402が行う割り当て計画テーブル210の作成について説明する。
はじめに、クラウドの運用者は、保守端末111の操作により、管理対象ネットワークを指定して、管理サーバ110に対してテーブル作成要求を送信する(ステップS1001)。この際、実施例1では、対象NWのNW識別子(NW1)と、所定の割り当てMACアドレス範囲(MAC1〜12)を指定する。
管理サーバ110のメモリ制御部402は、テーブル作成要求により、NW1内に存在するスイッチの種別(スイッチ識別子)を得るため、NW情報テーブル601に対してNW識別子(NW1)を入力としてNW情報取得要求を送信する(ステップS1002)。NW情報テーブル601は、メモリ制御部402に対してスイッチ識別子SW1を応答する(ステップS1003)。
また、メモリ制御部402は、スイッチ情報(ハッシュ関数、テーブル列数)を得るため、SW情報テーブル701に対してSW識別子SW1を入力として、SW情報取得要求を送信する(ステップS1004)。SW情報テーブル701は、メモリ制御部402に対してSW情報(ハッシュ関数A(x)、テーブル列数3)を応答する(ステップS1005)。
この後、メモリ制御部402は、割り当て計画テーブル210を作成するために、取得したハッシュ関数と、MACアドレスからハッシュ値を算出する(ステップS1006)。そして、メモリ制御部402は、割り当て計画テーブル210に対して、算出したハッシュ値と、対応するMACアドレスを入力として割り当て計画テーブル登録を行う(ステップS1007)。図8の例では、ハッシュ値数4とテーブル列数3により合計12(MAC1〜MAC12)のMACアドレスが登録可能である。あるMACアドレスは、ハッシュ値演算により、このハッシュ値に対応する一つの行位置に登録される。例えば、MAC1は、ハッシュ値2の行に登録される。
そして、メモリ制御部402は、登録しようとするMACアドレスが該当するハッシュ値(行)におけるテーブル列数の範囲内であればMACアドレス(MAC1〜MAC12)を割り当て計画テーブル210に登録する(ステップS1008)。この際、登録できた全てのMACアドレスの使用状況の識別子は「未使用」とする。割り当て計画テーブル210は、登録の応答(登録OK/または登録NG)をメモリ制御部402に応答する(ステップS1009)。
そして、メモリ制御部402は、登録の応答を受けて(ステップS1010:OK/NG)、割り当て計画テーブル210へのMACアドレスの登録を、MACアドレス範囲分(MAC1〜MAC12)まで繰り返し行う(ステップS1006〜ステップS1010)。
ここで、メモリ制御部402は、割り当て計画テーブル210に対するMACアドレスの登録結果がNGの場合(該当するハッシュ値の行のテーブル列数の範囲外の場合)には(ステップS1010:NG)、このMACアドレスを非優先テーブル901に登録する(ステップS1011)。そして、メモリ制御部402は、非優先テーブル901からの登録の応答を受ける(ステップS1012)。
図9の例では、MACアドレス11,12が割り当て計画テーブル210に登録できなかったことを示す。図8の割り当て計画テーブル210には、ハッシュ値3,4に一つずつ空きがあるが、これらMACアドレス11,12は、ハッシュ値が1または2に該当するため、割り当て計画テーブル210に登録できない。
この後、管理サーバ110(メモリ制御部402)は、保守端末111に対して割り当て計画テーブル210の作成の登録結果(各MACアドレス1〜12の登録結果(OK/NG))を通知する(ステップS1013)。非優先テーブル901にMACアドレスが登録されている場合は、クラウドの運用者に対し、割り当て計画テーブル210の登録に失敗したMACアドレス(MAC11,12)の情報も通知する。以上の処理により、割り当て計画テーブル210は、作成直後の状態では、割り当てられた各MACアドレスの使用状況の識別子は、全て「未使用」となる。
図11は、実施例1によるテーブル作成の処理手順を示すフローチャートである。管理サーバ110のメモリ制御部402が行う割り当て計画テーブル210の作成および登録にかかる処理内容を示す。
はじめに、メモリ制御部402は、保守端末111から対象NWのNW識別子(NW1)と、所定の割り当てMACアドレス範囲(MAC1〜12)の指定を受ける(ステップS1101)。これにより、NW情報テーブル601からNW識別子(NW1)に対応するSW識別子SW1を取得する(ステップS1102)。また、SW情報テーブル701からSW識別子SW1に対応するSW情報(ハッシュ関数A(x)、テーブル列数3)を取得する(ステップS1103)。この後、メモリ制御部402は、取得したハッシュ関数と、MACアドレスからハッシュ値を算出する(ステップS1104)。
次に、メモリ制御部402は、割り当て計画テーブル210に、ハッシュ値に該当する行にMACアドレスを一つずつ登録する(ステップS1105)。登録できたMACアドレスの使用状況の識別子は「未使用」とする。
そして、メモリ制御部402は、割り当て計画テーブル210に対するMACアドレスの登録結果を判断し(ステップS1106)、登録できた場合(該当するハッシュ値のテーブル列数範囲内の場合)には(ステップS1106:OK)、ステップS1108に移行する。登録できなかった場合(該当するハッシュ値の行のテーブル列数の範囲外の場合)には(ステップS1106:NG)、このMACアドレスを非優先テーブル901に登録する(ステップS1107)。
ステップS1108では、指定範囲内のMACアドレス(MAC1〜12)に対して処理を終えたか判断し、未処理分があれば(ステップS1108:No)、ステップS1104に戻る。処理済みであれば(ステップS1108:Yes)、ステップS1109に移行する。
ステップS1109では、非優先テーブル901が存在するか判断する。非優先テーブル901にMACアドレスが登録されていなければ(ステップS1109:No)、割り当て計画テーブル210の作成が正常完了したことを保守端末に通知し、処理終了となる。一方、非優先テーブル901にMACアドレスが登録されている場合(ステップS1109:Yes)、割り当て計画テーブル210の登録に失敗したMACアドレス(MAC11,12)の情報を保守端末111に通知してから(ステップS1110)、処理終了する。
(仮想マシンに対するMACアドレス割り当て)
次に、仮想マシン(VM)102に対するMACアドレスの割り当て処理について説明する。管理サーバ110のVM制御部403が行う処理について説明する。
図12は、実施例1による仮想マシンに対するMACアドレスの割り当ての処理手順を示すシーケンス図である。はじめに、クラウドの運用者はVM102を作成する際に、保守端末111から管理サーバ110に対してVM作成要求(例えば、VM1〜10)を送信する(ステップS1201)。
管理サーバ110のVM制御部403は、各VM102に割り当てるMACアドレスを取得するため、メモリ制御部402に対し、MACアドレス割り当て要求を送信する(ステップS1202)。メモリ制御部402は、割り当て計画テーブル210を参照し、割り当て計画テーブル210の小さな番号の列から順に、走査方向Aに走査してMACアドレスの使用状況が「未使用」のMACアドレスを検索する。そして、「未使用」のMACアドレスがあれば(図のMAC3)、MACアドレスの使用状況を「未使用」から「使用中」に変更し、このMACアドレスをVM制御部403に応答する(ステップS1203)。
例えば、VM1〜VM10の順にMACアドレスを割り当てる際、図示の割り当て計画テーブル210に基づき、はじめに、VM1にMAC2を割り当て、次に2番目のVM2にMAC1を割り当て、6番目のVM6にMAC3を割り当てる。図の割り当て計画テーブル210には、5番目のVM5までのMACアドレスの割付が終わった状態であり、VM6に対するMAC3の割り当て時の状態を示している。そして、VM6に対してMACアドレス(MAC3)を割り当て、使用状況を「未使用」から「使用中」に変更する。
この後、VM制御部403は、VM識別子(VM6)と、取得したMACアドレス(MAC3)を入力として、物理マシン101にVM作成要求を送信し(ステップS1204)、物理マシン101は、実行結果をVM制御部403に応答する(ステップS1205)。この後、VM制御部403は、保守端末111にVM作成結果を応答する(ステップS1206)。以上により、VM102に対して最適なMACアドレスを払い出すことができる。
図13は、実施例1による仮想マシンに対するMACアドレス割り当ての処理手順を示すフローチャートである。管理サーバ110のVM制御部403が行う仮想マシンに対するMACアドレス割り当ての処理内容を示す。はじめに、VM制御部403は、保守端末111からVM102のVM作成要求(例えば、VM1〜10)を受け付ける(ステップS1301)。
これにより、VM制御部403は、メモリ制御部402に対し、MACアドレス割り当て要求を送信し、メモリ制御部402により割り当て計画テーブル210を検索し、MACアドレスの使用状況が「未使用」のMACアドレスを抽出する(ステップS1302)。そして、VM制御部403は、VM102に割り当て可能なMACアドレスがあるか判断する(ステップS1303)。
割り当て可能なMACアドレスがあれば(ステップS1303:Yes)、VM制御部403は、MACアドレス使用状況を「未使用」から「使用中」に変更し、抽出したMACアドレスでVM102を作成する(ステップS1304)。例えば、VM6に対してMAC3を割り当て(払い出し)、処理を終了する。一方、割り当て可能なMACアドレスがなければ(ステップS1303:No)、処理を終了する。処理終了時、VM制御部403は、保守端末111にVM作成結果を応答する。
(仮想マシン作成後のスイッチ学習について)
次に、仮想マシン(VM)102作成後のスイッチ学習について説明する。図14は、スイッチによる各VMのMACアドレスの学習手順を説明するシーケンス図である。管理サーバ110により作成された各VM1〜10(102)は、スイッチ(スイッチ1)105aに対し、通信を行いスイッチ1(105a)はMACアドレスの学習を行う(ステップS1401a〜ステップS1401n)。
これにより、スイッチ1(105a)の学習テーブル1410には、管理サーバ110が作成した割り当て計画テーブル210(図8,図12参照)と同じ内容のMACアドレスが保持される。
以上の実施例1によれば、管理サーバ110がネットワーク内のスイッチ105が有する学習テーブルと同様のテーブル、例えばテーブルサイズ(ハッシュ関数毎の列数)を有する割り当て計画テーブル210を作成する。そして、この割り当て計画テーブル210に対しスイッチ105のハッシュ関数を用いて、複数のVM102(仮想NIC103)に割り当て可能なMACアドレスを登録する。登録したMACアドレスは、VM作成要求により、VMに対して割り当て(払い出され)る。
割り当て計画テーブル210の作成時に、スイッチ105が有する学習数(テーブル列数)を用い、所定のMACアドレスの範囲に対して登録できないMACアドレスを非優先扱いとする。これにより、VM102に割り当てるMACアドレス数が増大しても、スイッチ105の学習数(テーブル列数)を超えた分についてはVM102に割り当てない。これにより、VM102には、スイッチ105の学習不可が起きないMACアドレスが割り当てられ、スイッチ105における学習不可、およびフラッディングの発生を防止できる。
また、VM102に対するMACアドレスの割り当てに割り当て計画テーブル210を用い、検索時の走査方向Aについて、はじめに、行方向のハッシュ値1〜Nの順に沿って、若い番号のテーブル列数の1列目の未使用のMACアドレスを検索する。この後、再度ハッシュ値1に戻り次の2列目の未使用のMACアドレスを検索する。
この際、既存のようなMACアドレスのランダムな払い出しはせず、テーブル列数の1列目から順に未使用のMACアドレスをVM102に規則性を有し割り当てていく。これにより、スイッチ105の学習を所定の学習数(テーブル列数)の範囲内に収めることができる。また、一つのハッシュ値に対するMACアドレス学習数の偏りがなく、均一に割り当てることができる。また、各スイッチ105における学習テーブル内のMACアドレスの格納位置のばらつきを抑え、MACアドレス(フレーム転送先ポート)の検索を効率化できるようになる。
(実施例2)
(MACアドレス管理に用いる各テーブル内容)
実施例2では、図5のNW2(異なるスイッチ種別)に適用するMACアドレスの割り当て構成について説明する。実施例2においても、実施例1同様に、図6〜図9に示した4つの各テーブル(NW情報テーブル601、SW情報テーブル701、割り当て計画テーブル210、非優先テーブル901)を用いる。
実施例2は、スイッチSW1(105a)とスイッチSW2(105b)はスイッチ種別が異なり、学習数(テーブル列数に相当)が異なる。このため、割り当て計画テーブル210は、SW1用と、SW2用の2つが作成される。この実施例2では、異なる種別のスイッチ105に対応した複数の割り当て計画テーブル210を用いて、MACアドレスの割り当て(および検索)を効率的に行うために、優先度を持つ3つの優先度テーブルを用いる。
図15は、実施の形態2において用いられる優先度テーブル内容を示す図表である。優先度テーブル1501は、メモリ202に格納される。これら優先度テーブル1501は、各スイッチ105単位に作成された割り当て計画テーブル210に基づきメモリ制御部402が作成する。
図15の(a)は、最優先テーブルの内容を示す図表である。最優先テーブル1501aは、MACアドレス割り当ての際に最も優先的に選択される。図15の(b)は、優先テーブル1501bの内容を示す図表である。優先テーブル1501bは、MACアドレス割り当ての際に最優先テーブル1501aの次に優先的に選択される。図15の(c)は、非優先テーブル1501cの内容を示す図表である。非優先テーブル1501cは、VM102へのMACアドレス割り当て不可として、保守者(保守端末111)に通知される。図15の(a)〜(c)に示す複数のテーブル1501a〜1501cは、優先度別の領域に区切った一つの優先度テーブル1501として作成してもよい。
(割り当て計画テーブル、優先度テーブルの作成と、MACアドレスの登録)
図16は、実施例2によるテーブル作成の処理手順を示すシーケンス図である。管理サーバ110のメモリ制御部402が行う割り当て計画テーブル210および優先度テーブル1501の作成について説明する。図16の各処理のうち、実施例1(図10と共通する処理内容)については、同一の符号を付してある。また、便宜上、一部の処理内容、例えば、ハッシュ値算出(ステップS1006)等については図示を省略してある。
実施例2においても、割り当て計画テーブル210の作成までの処理(ステップS1001〜ステップS1009)は、実施例1と同様の処理である。この際、ステップS1004〜ステップS1009の各処理は、スイッチ105(105a,105b)の数分の処理を繰り返し行う。
そして、メモリ制御部402は、割り当て計画テーブル210の作成(ステップS1009)が終わると、次に、優先度テーブル1501の作成を行う。メモリ制御部402は、割り当て計画テーブル210登録時の応答(各SW105a,105bの割り当て計画テーブル210において何番目の列に登録されたか)により、このMACアドレスをどの優先度テーブル1501(最優先テーブル1501a、優先テーブル1501b、非優先テーブル1501cのいずれに)に登録すべきか優先度を判定する。そして、メモリ制御部402は、優先度の判定結果に基づき、対応する優先度テーブル1501にMACアドレスを登録する(ステップS1601a〜ステップS1601c)。
優先度の判定基準は以下の通りである。
最優先:SW1とSW2の全ての割り当て計画テーブル210でハッシュ値に対して1番目(1列目)に登録されたMACアドレス。
優先:SW1またはSW2のいずれかの割り当て計画テーブル210でハッシュ値に対して2番目(2列目)以降に登録されたMACアドレス。但し、SW1およびSW2のいずれかの割り当て計画テーブル210においてもテーブル列数は超えないこと。
非優先:SW1またはSW2の割り当て計画テーブル210でテーブル列数を超えたMACアドレス。
優先度の判定の結果、最優先であれば、該当するMACアドレスを最優先テーブル1501aに登録する(ステップS1601a)。判定結果が優先であれば、該当するMACアドレスを優先テーブル1501bに登録する(ステップS1601b)。判定結果が非優先であれば、該当するMACアドレスを非優先テーブル1501cに登録する(ステップS1601c)。各優先度テーブル1501は、登録後にメモリ制御部402に応答を返す(ステップS1602a〜ステップS1602c)。ステップS1007〜ステップS1602の処理は、MACアドレス範囲分だけ繰り返し行う。
図17は、実施例2によるテーブル作成の処理手順を示すフローチャートである。管理サーバ110のメモリ制御部402が行う優先度テーブル1501の作成および登録にかかる処理内容を主に記載してある。図17において、実施例1と同様(図11参照)の割り当て計画テーブル210の作成に関する処理(ステップS1101〜ステップS1105)については、実施例1と同じ処理を行う。便宜上、実施例1の一部の処理の記載を省略してある。
ステップS1105により割り当て計画テーブル210の作成後、メモリ制御部402は、SW1とSW2の全ての割り当て計画テーブル210でハッシュ値に対して1番目(1列目)の登録のMACアドレスであるか判断する(ステップS1705)。このMACアドレスが1番目の登録であれば(ステップS1705:Yes)、最優先テーブル1501aにこのMACアドレスを登録する(ステップS1706)。一方、このMACアドレスが1番目の登録でなければ(ステップS1705:No)、ステップS1707に移行する。
ステップS1707では、SW1とSW2のいずれかの割り当て計画テーブル210のテーブル列数を超えたMACアドレスがあるか判断する(ステップS1707)。判断の結果、SW1とSW2のいずれにおいてもテーブル列数を超えていないMACアドレスであれば(ステップS1707:No)、列数2列目以降に登録されたMACアドレスに相当し、このMACアドレスを優先テーブル1501bに登録する(ステップS1708)。一方、SW1またはSW2のいずれかのテーブル列数を超えたMACアドレスであれば(ステップS1707:Yes)、このMACアドレスを非優先テーブル1501cに登録する(ステップS1709)。
ステップS1706,ステップS1708,ステップS1709の処理後、指定範囲内のMACアドレス(MAC1〜10)に対して処理を終えたか判断し(ステップS1710)、未処理分があれば(ステップS1710:No)、ステップS1105に戻り、処理を終えていれば(ステップS1710:Yes)、以上のテーブル作成処理を終了する。
(各テーブルの作成例)
図18は、実施例2において作成する各テーブルの内容を示す図表である。実施例2における各テーブルの作成例について具体的に説明する。MACアドレス指定範囲は、MAC01〜10、SW識別子は、SW1(105a)、SW2(105b)(図5参照)とし、SW1(105a)の列数(テーブル列数)は3、SW2(105b)の列数は2である。対応して、割り当て計画テーブル210として、SW1(105a)用の3列を有する割り当て計画テーブル210aと、SW2(105b)用の2列を有する割り当て計画テーブル210bを作成する。
割り当て計画テーブル210aは、SW1(105a)の学習テーブルと同じ内容となり、割り当て計画テーブル210bは、SW2(105b)の学習テーブルと同じ内容となる。
図の横方向には、SW1の割り当て計画テーブル210a、SW2の割り当て計画テーブル210b、最優先テーブル1501a、優先テーブル1501b、非優先テーブル1501cを示す。図の縦軸には、各MACアドレス(MAC01〜10)についての登録例を示す。
MACアドレス1(MAC01)は、SW1の割り当て計画テーブル210aの1列目、SW2の割り当て計画テーブル210bでも1列目であるため、このMAC01を最優先テーブル1501aに割り当てる。
MACアドレス3(MAC03)は、SW1の割り当て計画テーブル210aでは2列目、SW2の割り当て計画テーブル210bでも2列目であるため、このMAC03を優先テーブル1501bに割り当てる。
MACアドレス4(MAC04)は、SW1の割り当て計画テーブル210aでは2列目、SW2の割り当て計画テーブル210bでは登録されていない(列数を超えている)ため、このMAC04を非優先テーブル1501cに割り当てる。
図18の一番下の行には、全てのMACアドレス(MAC01〜10)の登録状態を示す。非優先テーブル1501cに割り当てられたMACアドレスはフラッディングの要因となるため、VM102に対してMACアドレスの割り当て(払い出し)を行わない。
(仮想マシンに対するMACアドレス割り当て)
次に、仮想マシン(VM)102に対するMACアドレスの割り当て処理について説明する。管理サーバ110のVM制御部403が行う処理について説明する。
図19は、実施例2による仮想マシンに対するMACアドレスの割り当ての処理手順を示すシーケンス図である。図19に示す各処理は、実施例1(図12)の処理と同じであり、実施例1と同一の符号を付してある。
実施例2において実施例1と異なるのは、VM102作成時に実施例1では、割り当て計画テーブル210を検索するのに対し、実施例2では、優先度テーブル1501を検索する点である。
保守端末111から管理サーバ110に対してVM作成要求(例えば、VM1〜10)を送信した後(ステップS1201)、管理サーバ110のVM制御部403は、各VM102に割り当てるMACアドレスを取得するため、メモリ制御部402に対し、MACアドレス割り当て要求を送信する(ステップS1202)。
そして、メモリ制御部402は、優先度テーブル1501を最優先テーブル1501a、優先テーブル1501bの順にMACアドレスを検索する。はじめに、最優先テーブル1501aの小さな番号の列から順にMACアドレスの使用状況が「未使用」のMACアドレスを検索する。最優先テーブル1501aが全て「使用中」であれば、次に、優先テーブル1501bの小さな番号の列から順にMACアドレスの使用状況が「未使用」のMACアドレスを検索する。
そして、「未使用」のMACアドレスがあれば(図のMAC07)、このMACアドレスの使用状況を「未使用」から「使用中」に変更し、このMACアドレスをVM制御部403に応答する(ステップS1203)。
この後、VM制御部403は、VM識別子と、取得したMACアドレス(MAC07)を入力として、物理マシン101にVM作成要求を送信し(ステップS1204)、物理マシン101は、実行結果をVM制御部403に応答する(ステップS1205)。この後、VM制御部403は、保守端末111にVM作成結果を応答する(ステップS1206)。以上により、VM102に対して最適なMACアドレスを払い出すことができる。
図20は、実施例2による仮想マシンに対するMACアドレス割り当ての処理手順を示すフローチャートである。管理サーバ110のVM制御部403が行う仮想マシンに対するMACアドレス割り当ての処理内容を示す。実施例2の図20に示す処理は、基本的に実施例1(図13)と同様であるが、実施例1では割り当て計画テーブル210を検索したのに対し、実施例2では、優先度テーブル1501を検索する点が異なる。
はじめに、VM制御部403は、保守端末111からVM102のVM作成要求(例えば、VM1〜10)を受け付ける(ステップS2001)。
これにより、VM制御部403は、メモリ制御部402に対し、MACアドレス割り当て要求を送信し、メモリ制御部402により優先度テーブル1501のうちはじめに最優先テーブル1501aを検索し、MACアドレスの使用状況が「未使用」のMACアドレスを抽出する(ステップS2002)。そして、VM制御部403は、VM102に割り当て可能なMACアドレスがあるか判断する(ステップS2003)。
最優先テーブル1501aに割り当て可能なMACアドレスがあれば(ステップS2003:Yes)、MACアドレス使用状況を「未使用」から「使用中」に変更し、最優先テーブル1501aから抽出したMACアドレスでVM102を作成し(ステップS2004)、該当するVM102にこの抽出したMACアドレスを割り当て(払い出し)、処理を終了する。
一方、最優先テーブル1501aにて割り当て可能なMACアドレスがなければ(ステップS2003:No)、次に、メモリ制御部402により優先度テーブル1501のうち優先テーブル1501bを検索し、MACアドレスの使用状況が「未使用」のMACアドレスを抽出する(ステップS2005)。そして、VM制御部403は、VM102に割り当て可能なMACアドレスがあるか判断する(ステップS2006)。
優先テーブル1501bに割り当て可能なMACアドレスがあれば(ステップS2006:Yes)、MACアドレス使用状況を「未使用」から「使用中」に変更し、優先テーブル1501bから抽出したMACアドレスでVM102を作成する(ステップS2007)。そして、該当するVM102にこの抽出したMACアドレスを割り当て(払い出し)、処理を終了する。優先テーブル1501bに割り当て可能なMACアドレスがなければ(ステップS2006:No)、処理を終了する。
以上の実施例2によれば、実施例1と同様の効果を有する。加えて、実施例2によれば、学習数(テーブル列数)が異なる種別のスイッチ(SW1,2)が混在した場合に対応できるようになる。特に、優先度テーブルを用いて、スイッチ種別毎に異なる学習数(テーブル列数)を考慮して割り当て計画テーブルに登録する各MACアドレスの優先度を判断する。これにより、優先度が高いMACアドレスの検索を効率化できるとともに、非優先のMACアドレスは払い出さないため、いずれか一方のスイッチ(SW1,2)に登録できないMACアドレスによるフラッディングの発生を防止できる。
そして、以上説明した実施の形態によれば、クラウド環境において物理サーバ上に複数の仮想マシンを動作させるデータセンタ等のサーバ仮想化技術において、仮想マシン毎に設けられる複数の仮想MICに対するMACアドレスの割り当てを効率的に行うことができる。特に、ネットワーク内のスイッチの性能を上げることなく、スイッチが学習可能なMACアドレス数を管理サーバの管理処理により効率的に増やすことができる。そして、低コストにデータセンタ内のMACアドレスの割り当てを行うことができ、MACアドレスの検索性能も向上できるようになる。
また、スイッチの学習テーブル相当の割り当て計画テーブルを管理サーバに作成して、割り当て計画テーブルに登録されていないMACアドレスについては、VMへ払い出しを行わない。これにより、VMには、スイッチの学習不可が起きないMACアドレスが割り当てられ、スイッチの学習不可を防ぐことができる。
なお、本実施の形態で説明した仮想マシン管理方法は、予め用意されたプログラムをコンピュータで実行することにより実現することができる。また、このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネット等のネットワークを介して配布してもよい。
上述した各実施の形態に関し、さらに以下の付記を開示する。
(付記1)ネットワーク内の複数の仮想マシンに割り当てるMACアドレスを管理する仮想マシン管理装置において、
前記ネットワークの情報と前記ネットワーク内のスイッチの情報を用いて、前記スイッチの学習テーブルと同じ学習数のテーブル列数を有し、前記MACアドレスの割り当てを行うための割り当て計画テーブルを作成する作成手段と、
前記MACアドレスを前記スイッチのハッシュ関数を用いて、前記割り当て計画テーブルの該当するハッシュ値のテーブル列に所定の順序を有して登録する登録手段と、
前記テーブル列数の範囲内に登録されたMACアドレスを所定の順序を有して読み出し、前記仮想マシンに割り当てる割り当て手段と、
を有することを特徴とする仮想マシン管理装置。
(付記2)前記登録手段は、
前記MACアドレスが前記割り当て計画テーブルが有するハッシュ値に対するテーブル列数を超える場合、前記割り当て計画テーブルに前記MACアドレスを登録しないことを特徴とする付記1に記載の仮想マシン管理装置。
(付記3)前記作成手段は、
前記スイッチの情報として、前記ハッシュ関数の情報と、前記学習数と、前記ハッシュ値のビット数、および前記テーブル列数とを収集し、前記割り当て計画テーブルを、前記ハッシュ関数の情報と、前記学習数と、前記ハッシュ値のビット数、および前記テーブル列数に基づくテーブルサイズを有して作成することを特徴とする付記1または2に記載の仮想マシン管理装置。
(付記4)前記登録手段は、
前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して前記MACアドレスを登録することを特徴とする付記1〜3のいずれか一つに記載の仮想マシン管理装置。
(付記5)前記割り当て手段は、
前記割り当て計画テーブルの各MACアドレス毎に、前記仮想マシンに対する割り当ての有無を保持し、
前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して未割り当て状態のMACアドレスを、割り当て要求された前記仮想マシンに割り当てることを特徴とする付記1〜4のいずれか一つに記載の仮想マシン管理装置。
(付記6)前記MACアドレスが前記割り当て計画テーブルに登録されていない場合、当該MACアドレスの割り当て要求が行えないことを外部に通知する通知手段を有することを特徴とする付記1〜5のいずれか一つに記載の仮想マシン管理装置。
(付記7)前記作成手段は、
前記ネットワークの情報として、当該ネットワークに設けられる前記スイッチの種別を収集し、当該スイッチの種別に対応する数の割り当て計画テーブルをそれぞれ作成し、
前記スイッチの種別が複数の場合には、さらに、
テーブルサイズが異なり複数作成される前記割り当て計画テーブルにそれぞれ登録される前記MACアドレスのテーブル列の位置に基づいて、前記MACアドレス毎の割り当ての優先度テーブルを作成し、
前記割り当て手段は、
優先度が高い前記MACアドレスから順に前記仮想マシンに割り当てる
ことを特徴とする付記1〜6のいずれか一つに記載の仮想マシン管理装置。
(付記8)前記登録手段は、
前記MACアドレスが前記割り当て計画テーブルが有するハッシュ値に対するテーブル列数を超える場合、前記割り当て計画テーブルに前記MACアドレスを登録せずに、非優先テーブルに登録することを特徴とする付記1に記載の仮想マシン管理装置。
(付記9)ネットワーク内の複数の仮想マシンに割り当てるMACアドレスを管理する仮想マシン管理方法において、
前記ネットワークの情報と前記ネットワーク内のスイッチの情報を用いて、前記スイッチの学習テーブルと同じ学習数のテーブル列数を有し、前記MACアドレスの割り当てを行うための割り当て計画テーブルを作成する作成工程と、
前記MACアドレスを前記スイッチのハッシュ関数を用いて、前記割り当て計画テーブルの該当するハッシュ値のテーブル列に所定の順序を有して登録する登録工程と、
前記テーブル列数の範囲内に登録されたMACアドレスを所定の順序を有して読み出し、前記仮想マシンに割り当てる割り当て工程と、
を含むことを特徴とする仮想マシン管理方法。
(付記10)前記登録工程は、
前記MACアドレスが前記割り当て計画テーブルが有するハッシュ値に対するテーブル列数を超える場合、前記割り当て計画テーブルに前記MACアドレスを登録しないことを特徴とする付記9に記載の仮想マシン管理方法。
(付記11)前記登録工程は、
前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して前記MACアドレスを登録することを特徴とする付記9または10に記載の仮想マシン管理方法。
(付記12)前記割り当て工程は、
前記割り当て計画テーブルの各MACアドレス毎に、前記仮想マシンに対する割り当ての有無を保持し、
前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して未割り当て状態のMACアドレスを、割り当て要求された前記仮想マシンに割り当てることを特徴とする付記9〜11のいずれか一つに記載の仮想マシン管理方法。
100 データセンタ
101 物理マシン
102 仮想マシン(VM)
103 仮想NIC
105 スイッチ(SW)
105a スイッチ(SW1)
105b スイッチ(SW2)
106 ルータ
110 管理サーバ
111 保守端末
201 制御部(CPU)
202 メモリ
210 割り当て計画テーブル
401 要求受付部
402 メモリ制御部
403 VM制御部
404 通信制御部
601 ネットワーク情報テーブル
701 スイッチ情報テーブル
901 非優先テーブル
1410 SWの学習テーブル
1501 優先度テーブル
1501a 最優先テーブル
1501b 優先テーブル
1501c 非優先テーブル

Claims (11)

  1. ネットワーク内の複数の仮想マシンに割り当てるMACアドレスを管理する仮想マシン管理装置において、
    前記ネットワークの情報と前記ネットワーク内のスイッチの情報を用いて、前記スイッチの学習テーブルと同じ学習数のテーブル列数を有し、前記MACアドレスの割り当てを行うための割り当て計画テーブルを作成する作成手段と、
    前記MACアドレスを前記スイッチのハッシュ関数を用いて、前記割り当て計画テーブルの該当するハッシュ値のテーブル列に所定の順序を有して登録する登録手段と、
    前記テーブル列数の範囲内に登録されたMACアドレスを所定の順序を有して読み出し、前記仮想マシンに割り当てる割り当て手段と、
    を有することを特徴とする仮想マシン管理装置。
  2. 前記登録手段は、
    前記MACアドレスが前記割り当て計画テーブルが有するハッシュ値に対するテーブル列数を超える場合、前記割り当て計画テーブルに前記MACアドレスを登録しないことを特徴とする請求項1に記載の仮想マシン管理装置。
  3. 前記作成手段は、
    前記スイッチの情報として、前記ハッシュ関数の情報と、前記学習数と、前記ハッシュ値のビット数、および前記テーブル列数とを収集し、前記割り当て計画テーブルを、前記ハッシュ関数の情報と、前記学習数と、前記ハッシュ値のビット数、および前記テーブル列数に基づくテーブルサイズを有して作成することを特徴とする請求項1または2に記載の仮想マシン管理装置。
  4. 前記登録手段は、
    前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して前記MACアドレスを登録することを特徴とする請求項1〜3のいずれか一つに記載の仮想マシン管理装置。
  5. 前記割り当て手段は、
    前記割り当て計画テーブルの各MACアドレス毎に、前記仮想マシンに対する割り当ての有無を保持し、
    前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して未割り当て状態のMACアドレスを、割り当て要求された前記仮想マシンに割り当てることを特徴とする請求項1〜4のいずれか一つに記載の仮想マシン管理装置。
  6. 前記MACアドレスが前記割り当て計画テーブルに登録されていない場合、当該MACアドレスの割り当て要求が行えないことを外部に通知する通知手段を有することを特徴とする請求項1〜5のいずれか一つに記載の仮想マシン管理装置。
  7. 前記作成手段は、
    前記ネットワークの情報として、当該ネットワークに設けられる前記スイッチの種別を収集し、当該スイッチの種別に対応する数の割り当て計画テーブルをそれぞれ作成し、
    前記スイッチの種別が複数の場合には、さらに、
    テーブルサイズが異なり複数作成される前記割り当て計画テーブルにそれぞれ登録される前記MACアドレスのテーブル列の位置に基づいて、前記MACアドレス毎の割り当ての優先度テーブルを作成し、
    前記割り当て手段は、
    優先度が高い前記MACアドレスから順に前記仮想マシンに割り当てる
    ことを特徴とする請求項1〜6のいずれか一つに記載の仮想マシン管理装置。
  8. ネットワーク内の複数の仮想マシンに割り当てるMACアドレスを管理する仮想マシン管理方法において、
    前記ネットワークの情報と前記ネットワーク内のスイッチの情報を用いて、前記スイッチの学習テーブルと同じ学習数のテーブル列数を有し、前記MACアドレスの割り当てを行うための割り当て計画テーブルを作成する作成工程と、
    前記MACアドレスを前記スイッチのハッシュ関数を用いて、前記割り当て計画テーブルの該当するハッシュ値のテーブル列に所定の順序を有して登録する登録工程と、
    前記テーブル列数の範囲内に登録されたMACアドレスを所定の順序を有して読み出し、前記仮想マシンに割り当てる割り当て工程と、
    を含むことを特徴とする仮想マシン管理方法。
  9. 前記登録工程は、
    前記MACアドレスが前記割り当て計画テーブルが有するハッシュ値に対するテーブル列数を超える場合、前記割り当て計画テーブルに前記MACアドレスを登録しないことを特徴とする請求項8に記載の仮想マシン管理方法。
  10. 前記登録工程は、
    前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して前記MACアドレスを登録することを特徴とする請求項8または9に記載の仮想マシン管理方法。
  11. 前記割り当て工程は、
    前記割り当て計画テーブルの各MACアドレス毎に、前記仮想マシンに対する割り当ての有無を保持し、
    前記スイッチの前記MACアドレスの検索時の走査方向に一致する所定の順序を有して未割り当て状態のMACアドレスを、割り当て要求された前記仮想マシンに割り当てることを特徴とする請求項8〜10のいずれか一つに記載の仮想マシン管理方法。
JP2013070658A 2013-03-28 2013-03-28 仮想マシン管理装置および仮想マシン管理方法 Expired - Fee Related JP6015522B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013070658A JP6015522B2 (ja) 2013-03-28 2013-03-28 仮想マシン管理装置および仮想マシン管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070658A JP6015522B2 (ja) 2013-03-28 2013-03-28 仮想マシン管理装置および仮想マシン管理方法

Publications (2)

Publication Number Publication Date
JP2014195174A JP2014195174A (ja) 2014-10-09
JP6015522B2 true JP6015522B2 (ja) 2016-10-26

Family

ID=51840144

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070658A Expired - Fee Related JP6015522B2 (ja) 2013-03-28 2013-03-28 仮想マシン管理装置および仮想マシン管理方法

Country Status (1)

Country Link
JP (1) JP6015522B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017073033A1 (ja) * 2015-10-30 2017-05-04 日本電気株式会社 フロー処理装置、通信システム及びフロー処理方法
CN111026376B (zh) * 2019-11-11 2023-09-29 贝壳技术有限公司 函数配置方法、装置、存储介质及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5609527B2 (ja) * 2010-10-21 2014-10-22 日本電気株式会社 ネットワーク仮想化システム、ノード、ネットワーク仮想化方法、及び、ネットワーク仮想化プログラム

Also Published As

Publication number Publication date
JP2014195174A (ja) 2014-10-09

Similar Documents

Publication Publication Date Title
US10698739B2 (en) Multitenant access to multiple desktops on host machine partitions in a service provider network
CN105531970B (zh) 用于在网络中部署工作负荷的方法和系统
US9003002B2 (en) Efficient port management for a distributed network address translation
US9300731B2 (en) Connection following during network reconfiguration
US8417929B2 (en) System for selecting a server from a plurality of server groups to provide a service to a user terminal based on a boot mode indicated in a boot information from the user terminal
JP6160253B2 (ja) 仮想機械管理装置、仮想機械管理方法及び情報処理システム
WO2012100544A1 (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群系统
JP2018519687A (ja) クラウド・ネットワーキングのためのマルチテナント認識型動的ホスト構成プロトコル(dhcp)機構
CN106031116A (zh) 一种ns与vnf的关联方法、装置及系统
JP6330923B2 (ja) オーケストレータ装置、システム、仮想マシンの作成方法及びプログラム
JP6616957B2 (ja) 通信システム及び通信方法
CN108132827B (zh) 一种网络切片资源映射方法、相关设备及系统
CN113676511B (zh) 一种云存储方法、系统、设备及存储介质
CN109286562A (zh) 基于业务流和业务路径特性的业务迁移
JP2020521398A (ja) Cgnの転送・制御分離
JP6015522B2 (ja) 仮想マシン管理装置および仮想マシン管理方法
US20140222896A1 (en) Distributed processing system and management method of distributed processing system
CN106878052B (zh) 一种用户迁移方法和装置
JP2016019270A (ja) 通信方法及び通信プログラム
US10637738B1 (en) Network traffic logs with integrated product identifiers
US11277376B2 (en) Systems and methods for utilizing an internet protocol (IP) address scanning model to identify available IP addresses
KR20170014804A (ko) 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법
JP6627808B2 (ja) 仮想マシン移動制御方法と通信システムとコントローラ及びプログラム
JP6669807B2 (ja) 計算機システムおよび計算機
CN110347473B (zh) 一种跨数据中心分布的虚拟化网元虚拟机分配方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160819

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160912

R150 Certificate of patent or registration of utility model

Ref document number: 6015522

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees