次に、本発明の実施の形態について、図面を参照して説明する。
なお、以下の説明において、仮想ネットワーク上のノード(node:節点)を仮想ノード、リンク(Link:通信路)を仮想リンクと言う。
図1は、本発明の第1の実施の形態に係るネットワーク仮想化システム1を含むネットワークシステム4の一例を示すブロック図である。
ネットワークシステム4は、ネットワーク仮想化システム1と設定端末31を含む。
設定端末31は、図示しない装置、又は、システム管理者の指示の基づき、ネットワーク仮想化システム1で実現する仮想化ネットワークの作成の指示をネットワーク仮想化システム1に送る。
ネットワーク仮想化システム1は、設定端末31からの指示を受け取り、後ほど詳細に説明するが、物理ノード(物理ノード21乃至物理ノード26)と物理リンク51のリソースを用いて、仮想ノードと仮想リンクを含む仮想ネットワーク(図1で示す仮想ネットワーク2及び仮想ネットワーク3)を構築する。なお、図1は、点線により、物理ノードと仮想ノードの対応の一例を示している。
次に、仮想ネットワーク2に関して図面を参照して、さらに詳細に説明する。
図2は、図1に示す仮想ネットワーク2の構成の一例をさらに詳細に示した図である。
仮想ネットワークは、一般的に、2つ以上の仮想ノードと1つ以上の仮想リンクを含む。また、各仮想ノードは、仮想リンクに接続するための1つ以上の仮想NIC(Network interface Circuit又はCard、ネットワークインタフェース回路、ネットワークインタフェースカード)を含む。仮想ノードは、仮想リンクを使用して、通信する。
図2に示す仮想ネットワーク2は、3つの仮想ノード及び3つの仮想リンクで構成された例を示している。
例えば、仮想ノード71(Node-A)は、仮想NIC(VIF-A0)と仮想リンク81(Link-AB)を介して仮想ノード72(Node-B)と接続し、仮想NIC(VIF-A1)と仮想リンク83(Link-CA)を介して仮想ノード73(Node-C)と接続する。仮想ノード72と仮想ノード73も、仮想リンク82(Link-BC)を介して接続する。
ただし、本実施の形態に係る仮想ネットワーク2は、仮想リンクを含まない、いわゆる、スタンドアローン(stand-alone)の仮想ノードを含んでも良い。
次に、本実施の形態に係るネットワーク仮想化システム1について、図面を参照して、さらに説明する。
図3は、ネットワーク仮想化システム1の構成の一例をさらに詳細に示したブロック図である。図3において、図1と同じ構成は、同じ番号を付してある。
ネットワーク仮想化システム1は、ドメイン管理装置11(domain:領域)と、1つ以上の物理ノード(物理ノード21乃至物理ノード26)と、物理リンク51とを含む。
ドメイン管理装置11は、図1に示した設定端末31から仮想ネットワークの設定を受け取り、物理ノード21乃至物理ノード26に指示を出し、ネットワーク仮想化システム1に要求された仮想ネットワークを構築する。ドメイン管理装置11は、設定端末31に構築結果の返却も行う。
ただし、ドメイン管理装置11が行う設定は、これに限られるわけではない。例えば、ドメイン管理装置11は、仮想ネットワーク上の仮想の中継リンクとなる物理ノード、つまり仮想ノードの割当ては行わないが仮想リンクの割り当てる物理ノードに、仮想リンクの割当ての指示も行う。
物理リンク51は、物理ノード21乃至物理ノード26を接続する。また、物理リンク51のリソース(resource:資源)が、仮想リンクに割り振られる。なお、本実施の形態に係る物理リンク51は、一般的なネットワークのリンク(例えば、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.3)を使用すればよい。また、物理リンク51は、有線でも無線でもよく、有線と無線とが混在していてもよく、接続方法にも制限はない。そのため、物理リンク51の詳細な説明は、省略する。
設定経路61は、ドメイン管理装置11が、物理ノード21乃至物理ノード26に設定の指示を行い、結果を受け取るための通信の経路である。図3では、説明の便宜のため、設定経路61を、物理リンク51とは別として示している。しかし、本実施の形態に係るネットワーク仮想化システム1は、これに限られず、設定経路61として物理リンク51の一部又は全部を使用しても良い。なお、設定経路61も、一般的なネットワークを使用すればよく、詳細な説明は、省略する。
物理ノード21乃至物理ノード26は、相互に物理リンク51を用いて接続し、物理ネットワークを構成している。物理ノード21乃至物理ノード26は、1つ以上ならば接続する物理リンク51の数に制限がなく、物理リンク51を用いて他の物理ノードに接続していればよい。
図3は、一例として、物理ノード23及び物理ノード25が3つの物理リンク51に接続し、物理ノード21、物理ノード22、物理ノード24、及び、物理ノード26が2つの物理リンク51に接続している場合を示している。
さらに、物理ノード21乃至物理ノード26では、ドメイン管理装置11の指示に基づき、物理ノードの資源(リソース:resource)を割り当てた仮想機械(以下、VM(Virtual Machine)、仮想マシン、又は、仮想Mと言うこともある)が動作している。この仮想M上では、オペレーティングシステム(以下、OS(Operating System)と言う)及びアプリケーションプログラム(Application Program、以下、APプログラムとも言う)が動作している。物理ノード21乃至物理ノード26は、この仮想Mを用いて仮想ノードを実現する。
ネットワーク仮想化システム1は、このように仮想Mで実現されている仮想ノードと物理リンク51に基づく仮想リンクを用いて仮想ネットワーク(例えば、図1に示す仮想ネットワーク2)を実現している。
図3では、一例として、物理ノード21で1個、物理ノード22上で3個、物理ノード24上で0個、その他の物理ノードで2個の仮想M(VM)が動作している。
なお、図1では、本実施の形態に係る仮想Mと仮想ネットワークの仮想ノードとの割当ての一例として、対応関係を点線で示している。
本実施の形態に係る物理ノード21乃至物理ノード26は、ドメイン管理装置11からの指示を、個別に受けてもよく、複数の物理ノードで共通の指示を受けても良い。
また、本実施の形態に係るネットワーク仮想化システム1に含まれる物理ノードの数は、6に限られるわけではなく、5以下でも、7以上でもよい。
さらに、ネットワーク仮想化システム1の上に構築される仮想化ネットワークも2つに限られるわけではなく、1つでも良く、3以上でも良い。
なお、図3に示すネットワーク仮想化システム1が、本実施の形態に係るネットワーク仮想化システム1の最小構成となっている。
次に本発明の実施の形態に係る物理ノードについて図面を参照して説明する。
なお、本実施に形態に係るネットワーク仮想化システム1の物理ノード21乃至物理ノード26は、同じ構成として説明するが、必ずしも同じ構成の装置で実現する必要はない。物理ノード21乃至物理ノード26は、以降で説明する動作を実現することができれば、別の構成の装置(ノード)でもよい。
以下の説明では、一例として、物理ノード21を使用して説明する。
図4は、本発明の実施の形態に係る物理ノード21の構成の一例を示す図である。
なお、説明の便宜のため、以下の説明では、本実施の形態に係る物理ノード21を、サーバ装置のような一般的なコンピュータ装置として説明するが、これに限られるわけではない。
物理ノード21は、物理NIC41と、物理NIC42と、演算装置43と、メモリ44を含む。なお、図4に示す物理ノード21が2つの物理NICを備えているのは、以降の説明において、2種類の動作を行う物理NICを説明する便宜のためである。本実施の形態に係る物理ノード21の物理NICは、2つに限られるわけはなく、1つでも、3つ以上でも良い。
物理NIC41及び物理NIC42は、物理リンク51を介して他の装置と接続する。本実施の形態に係る物理NIC41及び物理NIC42は、接続先の制限がない。ただし、説明の便宜のため、物理NIC41が、ドメイン管理装置11との接続を行い、物理NIC42が他の物理ノードと接続するとして説明する。つまり、本実施の形態に係る仮想化リンクは、物理NIC42に接続する物理リンク51のリソースを使用して実現されることとする。
演算装置43は、図示しない情報処理部(例えば、CPU(Central Processing Unit))と記憶部とを含み、物理ノード21の処理を行う。さらに具体的に説明すると、演算装置43は、以降で説明を行うメモリ44が記憶しているプログラムを実行する。
メモリ44は、演算装置43が本実施の形態を実現するために実行するプログラムを記憶している。メモリ44は、演算装置43がプログラムを実行するための作業領域として使用されてもよい。なお、図4のメモリ44は、1つの構成として示しているが、これは説明の便宜のためである。本実施の形態に係るメモリ44は、複数の記憶装置で構成されていてもよい。
本実施の形態に係るメモリ44上のプログラムは、次のプログラムが含まれる。
ノード管理プログラム440は、仮想ノードを実現するためのプログラムである。ノード管理プログラム440は、ドメイン管理装置11からの指示を基に、仮想ノード及び仮想リンクへのリソースの割当てと、次に説明する仮想化制御プログラム451に、仮想ノードを実現するための仮想Mの起動及び廃棄を指示する。このため、ノード管理プログラム440は、仮想ノード定義解釈処理部441と、リソース割当て処理部442と、VMパラメータ生成処理部443と、VM割当て結果応答処理部444とを含む。ノード管理プログラム440は、これらの処理を別プログラムとしても良く、複数の処理を備えたプログラムとしても良い。これらの処理については、後ほどさらに説明する。
なお、本実施の形態に係る物理ノード21は、ノード管理プログラム440をコンピュータで動作するプログラムとして説明するが、これに限られるわけではない。本実施の形態に係る物理ノード21は、以降で説明するノード管理プログラム440の各処理の一部又は全てを、同等の動作する装置又は回路で構成してもよい。
仮想化制御プログラム451は、Hypervisorプログラムと呼ばれるプログラムに相当し、仮想Mを実現するための制御プログラムである。仮想化制御プログラム451は、仮想化マシンモニタまたは仮想化OS(Operating System)と呼ばれることもある。仮想化制御プログラム451は、ノード管理プログラム440から仮想Mの起動パラメータを含んだ指示を受けて、仮想Mの起動及び廃棄を行う。物理ノード21は、仮想化制御プログラム451が起動した仮想Mに用いて、仮想化ノードを実現する。また、仮想化制御プログラム451は、次に説明するAPプログラム461又はAPプログラム462の起動及び廃棄を含んだ制御を行っても良い。ただし、APプログラム461又はAPプログラム462の起動及び廃棄の制御は、仮想M上で動作するプログラム(例えばOS)が行っても良い。なお、本発明の第1の実施に形態に係る仮想化制御プログラム451は、一般的なHypervisorプログラムを使用すればよく、詳細な説明は省略する。
APプログラム461又はAPプログラム462は、仮想化制御プログラム451が起動した仮想M内で動作するAPプログラムの例示である。仮想Mが仮想ノードに割り当てられている場合、APプログラム461は、仮想ノードで動作しているプログラムとなる。APプログラム461及びAPプログラム462は、必要に応じて、物理NIC42で実現されている仮想NICに接続する仮想リンクを使用し、他の仮想ノードで動作するプログラムと接続し、データの通信することができる(なお、APプログラム461及びAPプログラム462は、ループバック(loop-back)を使用して、同じ物理ノード21のプログラムと接続しても良い)。本実施の形態において、APプログラム461及びAPプログラム462は、仮想M上のOSで実行されるプログラムであるため、APプログラム461及びAPプログラム462の詳細な説明は、省略する。ただし、APプログラム461又はAPプログラム462の仮想NICに関する動作については、後ほど説明する。
なお、演算装置43が、ここで説明したメモリ44上の各プログラムを実行している。この関係を示すため、図4では、演算装置43と各プログラムとの接続を点線で示している。また、演算装置43は、ここで説明した各プログラムを実行するための基盤となるオペレーティングシステムも実行しているが、これは、一般的なプログラムを使用すればよく、また、説明が煩雑になるため、図示及び詳細な説明は、省略する。
次に、物理ノード21の動作について図面を参照して説明する。
なお、既に説明したとおり、仮想化制御プログラム451、APプログラム461、及び、APプログラム462は、一般的なプログラムを使用すればよいため、動作の詳細な説明は省略し、ノード管理プログラム440について詳細に説明と行う。
ノード管理プログラム440は、既に説明したとおり、仮想ノード定義解釈処理部441と、リソース割当て処理部442と、VMパラメータ生成処理部443と、VM割当て結果応答処理部444とを含む。
仮想ノード定義解釈処理部441は、物理NIC41を介して、ドメイン管理装置11から仮想ノードの割当て要求を受信する。要求を受信した仮想ノード定義解釈処理部441は、割当て要求された仮想ノードの定義を解釈する。そして、仮想ノード定義解釈処理部441は、要求された仮想ノードの定義を以降の処理で利用可能なデータ構造に変換し、リソース割当て処理部442に渡す。なお、本実施の形態に係る仮想ノードの定義のデータ形式は、特に制限がなく、一般的なデータ形式を使用すればよく、データ形式に関しての詳細な説明は、省略する。
リソース割当て処理部442は、仮想ノード定義解釈処理部441からデータ変換後の仮想ノード定義を受け取ると、物理ノード21でのリソースを割り当てる。
図5を参照して、この動作についてさらに詳細に説明する。
まず、リソース割当て処理部442は、仮想ノードの定義を受け取ると、物理ノード21において仮想マシンに割当て可能な物理リソース(例えば、CPU数、処理時間比率、又は、ワーク領域)の空き状況を確認する(ステップ1001)。
次に、リソース割当て処理部442は、仮想ノードのための仮想マシンに必要なリソースが割当て可能かどうかを判定する(ステップ1002)。
割当て可能な場合(ステップ1002でyes)、リソース割当て処理部442は、仮想ノード定義と割り当てた物理リソース量とをVMパラメータ生成処理部443に渡す(ステップ1003)。
なお、リソース割当て処理部442がVMパラメータ生成処理部443に渡す仮想ノード定義は、仮想ノードに割り当てた仮想インタフェース(以下、仮想IFと言うこともある)の情報(例えば識別子)を含む。複数の仮想IFの情報を含む場合、仮想ノード定義は、複数の仮想IFの情報をどのように含んでも良いが、本実施の形態では、処理の効率及び明確さを勘案して、仮想ノード定義として複数の仮想IFの情報を連続して記載する形式で含むこととする。
リソースの割当てが不可能な場合(ステップ1002でno)、リソース割当て処理部442は、VMパラメータ生成処理部443に、割り当てるリソースが確保できなかったことを通知する(ステップ1004)。
このように、リソース割当て処理部442は、割当てができない場合を含め、リソースの割当て結果をVMパラメータ生成処理部443に通知する。
リソースの割当て結果を受け取ったVMパラメータ生成処理部443は、リソースの割当て結果を基に、後ほど詳細に説明する処理を行い、仮想化制御プログラム451への指示及びVM割当て結果応答処理部444へ結果を通知する。
結果を受け取ったVM割当て結果応答処理部444は、仮想ノード割当て結果を、物理NIC41を介して、ドメイン管理装置11に返す。
このように動作し、ノード管理プログラム440は、仮想ネットワークのリソースを物理ノード21で確保する。
次に、VMパラメータ生成処理部443の動作について、図面を参照してさらに説明する。
図6は、VMパラメータ生成処理部443の動作の一例を示すフローチャート図である。
リソース割当て処理部442から割当て結果を受け取ったVMパラメータ生成処理部443は、まず、割当てができたかどうかを確認する(ステップ1101)。
割当てが可能な場合(ステップ1101でyes)、VMパラメータ生成処理部443は、リソース割当て処理部442から受け取った仮想ノード定義と割り当てる物理リソース量とを基に、仮想NICに割り当てるMACアドレス(Media Access Control address)を生成する(ステップ1102)。このMACアドレスの生成については、後ほどさらに詳細に説明する。
続いて、VMパラメータ生成処理部443は、MACアドレスの生成ができたかどうかを確認する(ステップ1103)。
MACアドレスが生成できた場合(ステップ1003でyes)、VMパラメータ生成処理部443は、生成したMACアドレスと、仮想ノードの定義とに基づき、仮想化制御プログラム451が仮想Mを起動するために使用する起動パラメータを生成する(ステップ1104)。
起動パラメータを生成したVMパラメータ生成処理部443は、生成した起動パラメータを仮想化制御プログラム451に渡して、仮想Mの起動を指示する(ステップ1105)。
ここで、本実施の形態に係るVMパラメータ生成処理部443は、仮想化制御プログラム451に指示を行い、仮想化制御プログラム451からの応答を待たずに、次の処理を行う。
ただし、VMパラメータ生成処理部443は、以降で説明する処理と並行して、仮想化制御プログラム451からの応答を受け取り、例えば、エラー時などに再試行するような動作を行ってもよい。
次に、VMパラメータ生成処理部443は、仮想ノードの割当て結果をVM割当て結果応答処理部444に渡す(ステップ1106)。
なお、VMパラメータ生成処理部443は、先に、仮想ノードの割当て結果をVM割当て結果応答処理部444に渡してから、生成した起動パラメータを仮想化制御プログラム451に渡して、仮想Mの起動の指示を行ってもよい。つまり、VMパラメータ生成処理部443は、ステップ1106とステップ1105との順番を入れ替えても良い。
MACアドレスが生成できなかった場合(ステップ1103でno)、VMパラメータ生成処理部443は、仮想ノードの割当てができなかったことを、VM割当て結果応答処理部444に渡す(ステップ1107)。
同様に、リソース割当て処理部442から割当て結果が不可の場合(ステップ1101でno)、VMパラメータ生成処理部443は、仮想ノードの割当てができなかったことを、VM割当て結果応答処理部444に渡す(ステップ1107)。
このような動作に基づき、VMパラメータ生成処理部443は、仮想化制御プログラム451への仮想Mの起動の指示と、VM割当て結果応答処理部444への結果を通知する。
次に、VMパラメータ生成処理部443がMACアドレスを生成する動作について、図面を参照して説明する。
まず、本実施の形態に係るVMパラメータ生成処理部443が生成するMACアドレスについて説明する。
本実施の形態に係るVMパラメータ生成処理部443は、MACアドレスを仮想IF(Interface)識別部と汎用部との2つの部分に分けて生成する。MACアドレスは、6バイトのデータである。本実施に形態に係るVMパラメータ生成処理部443は、バイトの位置が重複せず、仮想IF識別部を確保すれば、MACアドレスの6バイトをどのように仮想IF識別部と汎用部とに分けてもよい。例えば、VMパラメータ生成処理部443は、仮想IF識別部と汎用部とを上位と下位の3バイトに分けて設定しても良く、汎用部の割当てを行わず、MACアドレスの6バイトを全て仮想IF識別部としてもよい。
さらに、仮想IF識別部と汎用部として割り当てるMACアドレスの領域は、連続した領域である必要はなく、不連続な領域でもよい。例えば、VMパラメータ生成処理部443は、MACアドレスの下位から1バイト目、3バイト目、5バイト目を仮想IF識別部に割り当て、それ以外の2バイト目、4バイト目、6バイト目を汎用部に割り当ててもよい。また、仮想IF識別部と汎用部に割り当てるMACアドレスの領域は、バイト単位で割り当てる必要はなく、ビット単位で割り当ててもよい。
本実施の形態の説明では、一例として、図7に示すように、MACアドレスの下位3バイトを仮想IF識別部、上位3バイトを汎用部として説明する。
後ほど詳細に説明するとおり、VMパラメータ生成処理部443は、仮想IF識別部の値を仮想ノード定義内の仮想インタフェース定義を基に生成する。
これに対し、本実施の形態に係る汎用部は、任意の値を割り当てることができる。このため、本実施の形態に係るネットワーク仮想化システム1において、汎用部は、任意の用途に用いることができる。このように、本実施の形態に係る汎用部の値は、任意に設定してよいため、設定の詳細な説明は、省略する。
VMパラメータ生成処理部443が行う仮想IF識別部に設定について、図面を参照して、さらに詳細に説明する。
図8は、本実施の形態に係るVMパラメータ生成処理部443が、仮想NICに割り当てるMACアドレス、特に仮想IF識別部の値を生成する処理の一例を示すフローチャート図である。
VMパラメータ生成処理部443は、まず、空のMACアドレスの一覧表を作成する(ステップ1201)。
次に、VMパラメータ生成処理部443は、リソース割当て処理部442から受け取った仮想ノード定義の仮想インタフェース(仮想IF)のリストから仮想IFの要素(情報)を1つ取り出す(ステップ1202)。本実施の形態に係るVMパラメータ生成処理部443は、仮想IFのリストの最初から仮想IFの要素を取り出す。ただし、本実施の形態のVMパラメータ生成処理部443が要素を取り出す順番は、これに限られるわけでない。
次にVMパラメータ生成処理部443は、取り出した仮想IFの情報(本実施の形態では、情報として仮想IFの識別子を使用して説明する)を取り出し、マッピング(mapping)関数を適用する(ステップ1203)。このマッピング関数については後ほど説明するが、マッピング関数は、所定の処理に基づき、所定の比率以下でしか重複が起きない値を求めることができる関数である。
また、仮想IFの識別子は、仮想ノード定義の各仮想ノードに定義されている仮想IFを識別するため、一意に設定されている値である。つまり、仮想IFの識別子は、仮想IFを区別するための識別子であり、重複しない値が割り当てられている。なお、本実施の形態に係る仮想IFの識別子は、一般的なデータでよく、文字列又は数字といったデータの型の制限も、データの長さの制限もない。
なお、本実施の形態の説明では、一例として、仮想IFの識別子に文字列を用いた場合について説明する。
VMパラメータ生成処理部443は、マッピング関数から戻ってきた値を、仮想NICのMACアドレスの仮想IF識別部に代入する(ステップ1204)。
続いて、VMパラメータ生成処理部443は、設定するMACアドレスに汎用部があるかどうかを判定する(ステップ1205)。
汎用部分がある場合(ステップ1205でyes)、VMパラメータ生成処理部443は、汎用部を設定する(ステップ1206)。なお、既に説明したとおり、汎用部は、任意の用途に用いることができ、任意の値を設定してよいため、設定の詳細な説明は省略する。
汎用部がない場合(ステップ1205でno)又は汎用部の設定後、VMパラメータ生成処理部443は、一覧表に、生成したMACアドレスの仮想IF識別部と同じ仮想IF識別部を持つ作成済みのMACアドレスがあるかどうかを確認する(ステップ1207)。
一致するMACアドレスが一覧表にない場合、作成したMACアドレスは、使用可能なMACアドレスである。そのため、一覧表にない場合(ステップ1207でyes)、VMパラメータ生成処理部443は、求めたMACアドレスを仮想Mの作成で使用するために保持し、求めたMACアドレスをMACアドレスの一覧表への追加も行う(ステップ1208)。
次に、VMパラメータ生成処理部443は、仮想IFのリストに、設定する仮想IFが残っているかどうかを確認する(ステップ1209)。
残りがある場合(ステップ1209でyes)、VMパラメータ生成処理部443は、ステップ1202に戻り、残っている仮想IFに対して同じ動作を繰り返す。
残りがなかった場合(ステップ1209でno)、VMパラメータ生成処理部443は、処理を終了する。この場合、VMパラメータ生成処理部443は、図6に示すステップ1103の判定に戻る。なお、ステップ1103の判定結果は、「yes」となる。
MACアドレスが一覧表にあった場合(ステップ1207でno)、VMパラメータ生成処理部443は、MACアドレスの追加ができないと判断し(ステップ1210)、処理を終了する。この場合も、VMパラメータ生成処理部443は、図6のステップ1103の判定に戻る。ただし、判定結果は、「no」となる。
このような動作に基づき、VMパラメータ生成処理部443は、仮想Mで使用するMACアドレスを生成する。
次に、マッピング関数に関して、図面を参照して説明する。
本実施の形態に係るマッピング関数は、仮想IFの識別子を基に仮想IF識別部に設定するMACアドレスに使用する値を求める関数である。
このマッピング関数は、次の条件を満足する関数であれば、どのような関数を使用しても良い。
条件1:同じ識別子に対しては、同じ値を返す。
条件2:異なる識別子では、十分小さな比率(確率)でしか重複が起きない。
本実施の形態に係るマッピング関数は、上記の条件を満たす一例としてハッシュ関数、特にハッシュ関数の1つであるSHA512(Secure Hash Algorithm 512)を使用するものとして説明する。
図9は、本実施の形態に係るマッピング関数の動作の一例を示すフローチャートである。
識別子を受け取ったマッピング関数は、識別子にSHA512を適用してハッシュ値を求める(ステップ1301)。
ここで、SHA512が、マッピング関数の条件を満たすことを説明する。
ハッシュ関数の内部の処理は、毎回同じ処理である。そのため、同じデータを入力したときの出力結果は、同じ値となる。つまり、ハッシュ関数は、上の条件1を満足する。
次に、条件2について説明する。
ハッシュ関数が一様な分布を示すハッシュ値を返す場合、ハッシュ関数の返り値の重複が発生する確率Pは、次の式となる。
P=1−(1−2^(−D))^(N−1)
(ただし、Nは仮想IF数、Dは仮想IF識別部のデータ幅である。)
例えば、仮想IFの数を100(=N)、仮想IF識別部を24ビット(=D)とした場合、ハッシュ関数の返り値の重複が発生する確率Pは、P=5.9*10^(−6)(0.00059%)となる。このように本実施の形態に係るハッシュ関数は、小さな確率でして重複を発生させないため、条件2も満足している。
次に、マッピング関数(ハッシュ関数)は、求めた関数値(ハッシュ値)の所定の位置から、仮想IF識別部の長さのデータ(本実施の形態の説明では3バイト)を取り出す(ステップ1302)。例えば、図10に示すハッシュ値が求まった場合、本実施の形態のマッピング関数は、破線で囲った先頭の3バイトである「81be4b」を取り出す。(図10は、16進表現である。Hなど16進表現の表記は、省略している。)なお、取り出すデータは、連続している必要はない。例えば、マッピング関数は、1・3・5バイト目を取り出す、又は、2・4・8バイト目を取り出すなど、所定の規則を適用してデータを取り出してもよい。
所定の長さのデータを取り出したマッピング関数は、取り出したデータを返却する(ステップ1303)。
なお、本実施の形態に係るマッピング関数は、SHA512に限られるわけではない。本実施の形態に係るマッピング関数は、既に説明したマッピング関数の条件を満たす関数であればよく、図9の動作と異なった動作でもよい。例えば、マッピング関数は、他のハッシュ関数であるSHA1(Secure Hash Algorithm 1)又はMD5(Message Digest Algorithm 5)でもよく、巡回冗長検査関数であるCRC32(cyclic redundancy check 32)でもよい。
また、本実施の形態に係るマッピング関数は、これらの関数に限られるわけではなく、他の関数でも良い。さらに、本実施の形態に係るマッピング関数は、引数として仮想IFの識別子を含んでいれば良く、他の情報、例えば仮想ノードの識別子を含んでも良い。
また、本実施の形態に係るマッピング関数は、説明の便宜のため、物理ノード21乃至物理ノード26で同じマッピング関数を使用するとして、説明する。ただし、本実施の形態は、これに限られるわけではない。物理ノード21乃至物理ノード26は、既に説明した条件を備えた異なるマッピング関数を使用してもよい。
このように動作するマッピング関数は、多くの場合、仮想ノードに定義された仮想IFの識別子について、異なるデータを返却する。つまり、マッピング関数は、多くの場合、返り値の重複を回避することできる。
しかし、小さな確率ではあるが、マッピング関数は、重複を発生する。
次に、このような、マッピング関数での重複が発生した場合のネットワーク仮想化システム1の動作について説明する。
VMパラメータ生成処理部443が割当て不可の結果をVM割当て結果応答処理部444に渡した場合(図6のステップ1107)、VM割当て結果応答処理部444は、物理NIC41を介して、ドメイン管理装置11にリソースが確保できなかったことを回答する。
この回答を受けたドメイン管理装置11は、失敗応答(要求のリソースが確保できなかったこと)を設定端末31に返す。
本実施の形態に係る物理ノード21は、仮想IFの識別子を基にMACアドレスを求めている。そのため、重複の失敗応答の受け取った設定端末31は、例えば、仮想IFの識別子を変更し、再度、仮想ネットワークの割当てを要求すればよい。
なお、マッピング関数は、物理ノード21乃至物理ノード26で予め決められている。そこで、ドメイン管理装置11は、予め物理ノード21乃至物理ノード26のマッピング関数を受け取っておき、各物理ノードに設定を通知する前に、設定端末31からの指示を基に、物理ノードでの確認と同様のMACアドレスの重複を確認しても良い。ドメイン管理装置11の重複確認で重複の発生を検出した場合、ドメイン管理装置11は、設定端末31に失敗応答を返す。このようなドメイン管理装置11の動作に基づき、ネットワーク仮想化システム1は、物理ノード21乃至物理ノード26での無駄な処理を軽減することができる。
ただし、既に説明したとおり、マッピング関数の返り値の重複が発生する確率は、十分に小さいため、重複回避の動作の発生も、十分に小さい確率でしか発生しない。そのため、物理ノード21乃至物理ノード26で重複判定を行っても、物理ノード21乃至物理ノード26で発生する無駄な処理は、十分小さな確率でしか起きない。
なお、本実施の形態の各部で使用するデータの形式は、既に説明したとおり、特に制限はないが、参考として、次に幾つかのデータの例を示す。
図11は、VMパラメータ生成処理部443が作成する仮想Mの起動パラメータの一例である。
起動パラメータは、通知先の仮想化制御プログラム451に依存するため、図11に示す起動パラメータも一例として示しており、起動パラメータは、ここに記載の内容に限られるわけではない。
図11の点線の枠で囲った部分が、仮想マシンに定義された仮想NIC定義151及び仮想NIC定義152である。ここに示す例において、MACアドレスは、「nic,macaddr」で指定されている。例えば、仮想NIC定義151では、「nic,macaddr=db:20:98:81:be:4b」と設定されている。その他の起動パラメータは、既に説明したとおり仮想化制御プログラム451に依存するため、詳細な説明は省略する。
図12は、VM割当て結果応答処理部444がドメイン管理装置11に返却する仮想ネットワーク2の割当て結果の一例を示す図である。
図12の点線で囲まれた部分が、仮想ノードの割当て結果である。
図12に示す割当て結果は、ドメイン管理装置11に応答するために必要な情報を備えていれば良く、一般的な割当て結果を示しており、その他の情報の詳細な説明は省略する。
図13は、図12の点線で囲まれた部分、つまり仮想ノードの割当て結果の一例である。
図13の結果を図19に示す結果と比較すると、図13に示す割当て結果は、図19の仮想インタフェース情報142及び仮想インタフェース情報143に相当する仮想IFの情報を含んでいない。
このような動作に基づき、物理ノード21は、仮想ノードへの仮想マシンに物理リソースの割当てを処理する。
また、このような動作に基づき、物理ノード21を含む本実施の形態に係るネットワーク仮想化システム1は、仮想ネットワーク2又は仮想ネットワーク3に物理ネットワークのリソースの割り当てることができる。
なお、本実施の形態では詳細な説明を行わなかったが、ドメイン管理装置11は、仮想リンクについても同様に物理ノード21乃至物理ノード26に指示を行い、リソースを確保する。
次に、このように仮想ネットワーク2の割当てが行われた場合における、仮想MのOS上で動作するAPプログラム461が、仮想IFに対応する仮想NICを判定する動作について説明する。なお、仮想NICの判定の動作は、他のAPプログラム462も、APプログラム461と同様に動作するため、APプログラム462についての説明は、省略する。
図14は、APプログラム461が、仮想NICを判別する動作の一例を示すフローチャート図である。
なお、APプログラム461は、図14に示す仮想NICの判定を行うため、ノード管理プログラム440の設定結果をまとめた、仮想NICのデバイス名(名前)とMACアドレスを含む仮想NICの一覧表を入手することが必要である。
仮想NICの一覧表の入手として、物理ノード21は、いろいろな方法を使用することが出来る。例えば、物理ノード21は、仮想化制御プログラム451が、APプログラム461が起動するとき、プログラム内データとして、関係する仮想NICの一覧表を埋め込んでもよい。また、物理ノード21は、APプログラム461が動作している仮想MのOSのネットワーク設定コマンドで一覧表を入手できるようにしてもよい。さらに、物理ノード21は、仮想ネットワークを経由してネットワークを管理している装置(例えばドメイン管理装置11)から一覧表を取得できるようにしてもよい。
このようにAPプログラム461は、物理ノード21又はネットワーク仮想化システム1が備えるいろいろな手法を使用して仮想NICの一覧表を入手できる。そのため、本実施の形態の説明では、仮想NICの一覧表の入手の詳細な説明は、省略し、入手済みとして説明する。
また、APプログラム461は、仮想NICを判定するために、既に説明したマッピング関数を使用する。ただし、APプログラム461は、仮想M上で動作しているため、そのままでは、VMパラメータ生成処理部443が使用したマッピング関数が使用できない。
そこで、本実施の形態に係る物理ノード21は、APプログラム461がマッピング関数を使用できるような環境も備えている。
物理ノード21は、このマッピング関数を使用できる環境の設定も、いろいろな手法で実現可能である。例えば、物理ノード21は、仮想化制御プログラム451が、仮想M上で動作するOSのAPI(Application Program Interface)の1つにマッピング関数を割り当てても良い。また、例えば、ドメイン管理装置11がマッピング関数を保持している場合、APプログラム461が、ドメイン管理装置11からマッピング関数を取り出せるようにしてもよい。
このように、APプログラム461は、いろいろな手法を使用してマッピング関数を使用することができるため、本実施の形態の説明では、マッピング関数を使用できる仕組みの詳細な説明も、省略する。
APプログラム461は、まず、着目している仮想IFに対応する仮想NICのMACアドレスの仮想IF識別部の値(以下この値をRと言う)を、仮想IFの識別子(名前)にマッピング関数を適用して求める(ステップ1401)。
次に、APプログラム461は、仮想NICの一覧表を取得する(ステップ1402)。
一覧表を取得したAPプログラム461は、一覧表にデータがある、つまり、残りのエントリ(entry:登録)があるかどうかを判定する(ステップ1403)。
残りのエントリがある場合(ステップ1403でyes)、APプログラム461は、一覧表から1つのエントリを取り出す(ステップ1404)。本実施例のAPプログラム461は、一覧表の先頭から順に取り出すが、取り出す順番これに限らず、他の順番でもよい。
エントリを取り出したAPプログラム461は、取り出した仮想NICのMACアドレスの値を得る(ステップ1405)。
続いてAPプログラム461は、取り出しMACアドレスの仮想IF識別部の値(以下、この値をQと言う)を取り出す(ステップ1406)。
次に、APプログラム461は、着目している仮想NICの仮想IF識別部(R)と取り出したエントリの仮想NICの仮想IF識別部(Q)とを比較する(ステップ1407)。
RとQが異なった場合(ステップ1407でno)、APプログラム461は、一覧表に残りのエントリがあるかどうかの確認(ステップ1403)に戻り動作を続ける。
RとQが一致した場合(ステップ1407でyes)、取り出したエントリの仮想NICが、着目している仮想IFに対応する仮想NICとなる。従って、APプログラム461は、取り出したエントリの仮想NICが、着目している仮想IFであると判定する(ステップ1408)。
そして、APプログラム461は、判定した仮想NICのデータからデバイス名(名前)を求めることが出来る。
このようにAPプログラム461は、着目している仮想IFに対応するデバイス名を判定し、判定動作を終了する。
なお、リストの全てのエントリを確認しても着目した仮想IFに対応する仮想NICを検出できなかった場合(ステップ1403でno)、着目している仮想IFに対応する仮想NICが、ないこととなる。そのため、APプログラム461は、着目している仮想IFが不在と判定して動作を終了する(ステップ1409)。
なお、ここまで説明してきた仮想NICの判定は、APプログラム461ではなく、仮想M上のOS又は別のプログラムが動作し、APプログラム461が結果を受け取るようにしてもよい。
このように動作に基づき、本実施形態のAPプログラム461は、着目している仮想IFの仮想NICのデバイス名を得ることができる。
なお、ネットワーク仮想化システム1は、複数の構成、例えば物理ノード21乃至物理ノード26のいずれか又は全てと、ドメイン管理装置11とを同じ装置で実現しても良い。
さらに、本実施の形態に係るネットワーク仮想化システム1は、1つ又は複数の装置を、1つのコンピュータで動作するプログラムとして実現しても良い。例えば、ネットワーク仮想化システム1は、ドメイン管理装置11として動作するプログラムと、物理ノード21として動作するプログラムとを1つのコンピュータで実行しても良い。
さらに、本実施の形態に係るネットワーク仮想化システム1の各装置、又は、各構成は、コンピュータで実行するプログラムを記憶する記録媒体を含んでも良い。
反対に、本実施の形態に係るネットワーク仮想化システム1は、1つの構成を複数の装置で実現しても良い。例えば、ドメイン管理装置11は、複数のコンピュータで構成されたクラスタシステムとして実現しても良い。
このように第1の実施の形態に係るネットワーク仮想化システム1の仮想Mで動作するAPプログラム461は、仮想ネットワークの割当て結果の通知を受けなくても、デバイス名を把握できる効果を得ることができる。
その理由は、第1の実施の形態に係るネットワーク仮想化システム1は、仮想IFを基に仮想NICのMACアドレスを設定する。そのため、APプログラム461は、通知を受けなくても、マッピング関数を用いて、着目した仮想IFの仮想NICのデバイス名を得ることができるためである。
また、第1の実施の形態に係るネットワーク仮想化システム1は、物理ノード21がNICの名前に対応していないオペレーティングシステムを使用できる効果を得ることができる。
その理由は、第1の実施の形態に係るネットワーク仮想化システム1が、仮想IFを基に仮想NICのMACアドレスを設定するため、APプログラム461は、マッピング関数を用いて、着目した仮想IFの仮想NICのデバイス名を得ることができる。つまり、物理ノード21は、APプログラム461通知の必要が無いため、オペレーティングシステムに対応する必要がないためである。
さらに、第1の実施の形態に係るネットワーク仮想化システム1は、仮想Mを起動しなくても、仮想IFと仮想NICの対応関係を知る効果を得ることができる。
その理由は、第1の実施の形態に係る物理ノード21は、仮想IFの識別子からMACアドレスを求めるため、仮想Mの起動に関係なく、割当て結果を報告することができるためである。
また、第1の実施の形態に係るネットワーク仮想化システム1は、割当て結果を受けるまでの待ち時間も短くする効果を得ることもできる。
その理由は、第1の実施の形態に係る物理ノード21は、仮想Mの起動を待たずに、割当て結果を報告することができるためである。
さらに、第1の実施の形態に係るネットワーク仮想化システム1は、仮想ネットワークの作成の予約及び予め仮想ネットワークの確保の確認を行える効果を得ることができる。
その理由は、第1の実施の形態に係る物理ノード21は、仮想Mを起動しなくても、設定を行えるためである。
(第1の実施例)
次に、本発明における第1の実施例について図面を参照して説明する。
なお、第1の実施例に係るネットワーク仮想化システム1の構成及び動作は、第1の実施の形態に係る構成及び動作と同等である。そのため、第1の実施の形態と同等の構成及び動作の詳細な説明は、適宜省略し、第1の実施例に特有な構成及び動作を中心に説明する。
まず、本実施例の前提について整理しておく。
本実施例の仮想ネットワークの定義は、図18で示した定義とする。また、本実施例の仮想ノードの定義は、図18の二つある定義のうち、上の仮想ノードの定義(Node-A)とする。
対象の物理ノードは、図4に示す物理ノード21とする。つまり、ドメイン管理装置11が、図18で示された仮想ネットワークの定義を基に、「Node-A」のリソースを物理ノード21で確保すると決定し、図15で示す仮想ノードの定義を物理ノード21に渡すとする。なお、図15で示す「Node-A」は、2つの仮想IF(VIF-A0又はVIF-A1)が指定されている。
また、「VIF-A0」の仮想IF識別子のハッシュ結果は、図10に示したデータを使用する。
MACアドレスの仮想IF識別部は、図7に示すように下位の3バイトする。
また、仮想Mを起動するための起動パラメータは、図11に示すリストを使用することとする。
なお、仮想ネットワークの割当て結果は、図12に示す値とする。
また、本実施例の説明では、仮想ネットワークのリソースは確保できたとする。
次に、本実施例に係るネットワーク仮想化システム1の動作を説明する。
設定端末31から仮想ネットワーク2の設定(図18)を依頼されたドメイン管理装置11は、依頼された仮想化ネットワークの定義を確認し、物理ノード21で仮想化ノードと仮想化リンクのリソースを確保すると決定する。
ドメイン管理装置11は、リソースを確保するために、物理ノード21に、仮想ノードの定義(図15)を送信する。
物理ノード21のノード管理プログラム440は、物理NIC41を介して、仮想ノードの定義(図15)を受け取り、リソースを確保し、仮想ネットワークの割当て結果(図12)を、物理NIC41を介してドメイン管理装置11に返却する。
物理ノード21のノード管理プログラム440の動作をさらに詳細に説明する。
仮想ノード定義解釈処理部441は、物理NIC41を介して受け取った仮想ノードの定義を、ノード管理プログラム440で使用する内部表現に変換後、リソース割当て処理部442に渡す。
リソース割当て処理部442は、受け取った仮想ノードの定義を基に確保できた物理ノード21の物理リソースの量を、VMパラメータ生成処理部443に渡す。
VMパラメータ生成処理部443は、仮想Mの仮想NICに割り当てるMACアドレスの決定と、仮想Mの起動のための起動パラメータとを生成する。
このMACアドレスを決定する動作を説明すると、次のようなる。
まず、VMパラメータ生成処理部443は、受け取った仮想ノード定義に含まれる仮想IFの識別子(VIF-A0)にマッピング関数(ここではハッシュ関数)を適用し、図10に示すハッシュ値の最初の3バイトを得る。
VMパラメータ生成処理部443は、得た3バイトのデータ(81be4b)を、MACアドレスの下位3バイトを設定する。その結果、仮想NICのMACアドレスは、次のようになる。
MACアドレス=xx:xx:xx:81:be:4b
(xxは、未定を示す。なお数値は、16進で表示している。)
続いて、VMパラメータ生成処理部443は、MACアドレスの汎用部に所定のアドレスを設定する。
汎用部分の値の決定方法の一例として、本実施例のVMパラメータ生成処理部443は、ネットワーク仮想化システム1内において物理ノードを識別する番号と、物理ノードにおいて仮想ノードに割り当てた仮想Mを識別する番号を連結した値を使用する。
例えば、物理ノード21の識別番号が“db20”で、仮想Mの識別番号が“98”とすると、VMパラメータ生成処理部443は、この2つの値を連結し、MACアドレスの汎用部分の値に「db:20:98」を設定する。
この結果、仮想NICのMACアドレスは、「db:20:98:81:be:4b」となる。
このように、VMパラメータ生成処理部443は、仮想NIC(今の場合VIF-A0)のMACアドレスを生成する。
同様に、VMパラメータ生成処理部443は、仮想ノードで指定されている全ての仮想NIC(例えば今の場合VIF-A1)のMACアドレスを生成する。
次に、VMパラメータ生成処理部443は、仮想化制御プログラム451で仮想Mを起動するための起動パラメータ(図11)を生成する。
図11で示す仮想NIC定義151が、仮想IF「VIF−A0」に対応する仮想NICの定義である。仮想NIC定義151のMACアドレスは、既に説明した「db:20:98:81:be:4b」となっている。
VMパラメータ生成処理部443は、生成した起動パラメータを基に、仮想化制御プログラム451に仮想Mの起動を指示する。
VMパラメータ生成処理部443は、指示の後、仮想ノードの割当て結果(図12)をVM割当て結果応答処理部444に通知する。
VM割当て結果応答処理部444は、物理NIC41を介して、仮想ネットワーク割当て結果(図12)を、ドメイン管理装置11に返却する。
ドメイン管理装置11は、物理ノード21から仮想ネットワーク割当て結果(図12)を受け取る。
ドメイン管理装置11は、依頼された全ての仮想ネットワークに関して同様にリソースを確保する。
設定端末31から依頼された全ての仮想化ネットワークの設定が完了すると、ドメイン管理装置11は、設定端末31に仮想ネットワーク割当て結果を通知する。
続いて、このように仮想ネットワークの割当てが行われた場合における、仮想M内のOS上で動作するAPプログラム461が、仮想NICを判定する動作について説明する。なお、第1の実施に形態と同様に、本実施例APプログラム461とAPプログラム462に差異はなく、APプログラム462も、同様に動作する。
本実施例の説明では、図16に示す仮想ノード(Node-A)の仮想NICについて説明する。図16に示す仮想ノード(Node-A)は、2つの仮想NIC(VIF-A0とVIF-A1)を備えている。
続いて、APプログラム461の動作を図14に沿って説明する。
なお、APプログラム461は、既に説明したとおり、第1の実施の形態と同様に、図16に示す仮想NICのデバイス名とMACアドレスを含む仮想NICの一覧表を入手しており、また、マッピング関数も使用することができるものとする。
APプログラム461は、まず、着目している仮想IF(ここではVIF-A0とする)に対応する仮想NICのMACアドレスの仮想IF識別部の値(R)を求める(ステップ1401)。APプログラム461は、仮想IF識別部の値(R)を求める動作として、既に説明したマッピング関数を使用する。マッピング関数については、既に説明を行っているため、詳細な説明は省略する。
APプログラム461は、仮想IFの識別子(ここではVIF-A0)にマッピング関数を適用して、仮想IF識別部(ここではR=81:be:4b)のデータを得る(図10)。
次に、APプログラム461は、仮想NICの一覧表を取得する(ステップ1402)。この仮想NICの一覧表は、仮想NICのデバイス名が含む。例えば、図16に示す仮想ノード(Node-A)は、仮想NICのリストのデバイス名として「eth0」と「eth1」を含む。
一覧表を取得したAPプログラム461は、一覧表にデータがある、つまり、残りのエントリがあるかどうかを判定する(ステップ1403)。
残りのエントリがある場合(ステップ1403でyes)、APプログラム461は、一覧表から1つのエントリを取り出す(ステップ1404)。本実施例のAPプログラム461も、リストの先頭から順に取り出すが、取り出す順番これに限らず、他の順番でもよい。
なお、本実施例の説明では、仮想NICの一覧表のデータは、図16に示す順、つまり、VIF-A1、VIF-A0の順にエントリが並んでいるとして説明する。
エントリを取り出したAPプログラム461は、取り出した仮想NICのMACアドレスの値を得る(ステップ1405)。本実施例では、まず、MACアドレスとして「db:20:98:cd:09:1a」が取り出される。
続いてAPプログラム461は、取り出したMACアドレスの仮想IF識別部の値(以下、Qと言う)を取り出す(ステップ1406)。ここでは、仮想IF識別部の値は、Q=cd:09:1aとなる。
次に、APプログラム461は、取り出したエントリの仮想NICの仮想識別部の値(Q)を、着目している仮想IFの仮想IF識別部の値(R)と比較する(ステップ1407)。
今の場合、R(81:be:4b)とQ(cd:09:1a)とは、異なる。
RとQが異なった場合(ステップ1407でno)、APプログラム461は、一覧表に残りのエントリがあるかどうかの確認(ステップ1403)に戻り動作を続ける。
今の場合、次のエントリがあるため、APプログラム461は、エントリがあると判定する(ステップ1403でyes)。
そしてAPプログラム461は、次の仮想NICにエントリを取り出し(ステップ1404)、エントリのMACアドレスを取り出す(ステップ1405)。今度の場合、MACアドレスは、「db:20:98:81:be:4b」となる。
続いてAPプログラム461は、MACアドレスの仮想IF識別部(Q)を取り出す(ステップ1406)。今度の場合、仮想IF識別部の値は、Q=81:be:4bとなる。
そして、APプログラム461は、RとQを比較する(ステップ1407)。
今回はRとQが同じとなるため(ステップ1407でyes)、APプログラム461は、現在取り出したエントリの仮想NICが、着目している仮想IFに対応する仮想NICであると判定する(ステップ1408)。
そして、APプログラム461は、判定した仮想NICのデータからデバイス名(ここでは、eth1)を求めることが出来る。
このようにAPプログラム461は、着目している仮想NICを判定し、動作を終了する。
なお、一覧表の全てのエントリを確認しても着目した仮想NICを検出できなかった場合(ステップ1403でno)、着目している仮想NICが、不在である。そのため、APプログラム461は、着目している仮想NICが不在と判定して動作を終了する。
このように第1の実施例に係るネットワーク仮想化システム1も、第1の実施の形態と同様の効果を得ることが出来る。
その理由は、第1の実施例に係るネットワーク仮想化システム1は、仮想IFを基に仮想NICのMACアドレスを決めている。そのため、APプログラム461は、マッピング関数を用いて、着目した仮想IFの仮想NICのデバイス名を得ることができるためである。
さらに、第1の実施例に係る物理ノード21は、仮想IFの識別子からMACアドレスを求めるため、仮想Mの起動を待たずに、割当て結果を報告することができるためである。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記)
(付記1)
ネットワークを構成する物理ノードと、
前記物理ノードに仮想ネットワークの仮想ノードと仮想リンクとの設定を指示するドメイン管理装置とを備え、
前記物理ノードが、前記ドメイン管理装置からの指示に含まれる前記仮想ノードの定義の仮想インタフェースを識別する情報を基に、前記仮想インタフェースに対して、前記仮想ノード上の仮想マシンの仮想ネットワークインタフェース回路(NIC)に割り当てるMACアドレスの少なくとも一部又は全部に設定する値を決めること
を特徴とするネットワーク仮想化システム。
(付記2)
前記MACアドレスに設定する値の少なくとも一部は、前記仮想インタフェースを識別する情報にマッピング関数を適用した値の少なくとも一部を使用することを特徴とする付記1に記載のネットワーク仮想化システム。
(付記3)
前記マッピング関数が、ハッシュ関数、巡回冗長検査関数、又は、同じ識別する情報には同じ値を返し異なる識別する情報には所定の確率以下でしか同じ値を返さない関数であることを特徴とする付記2に記載のネットワーク仮想化システム。
(付記4)
前記仮想マシンで動作するプログラムが、
前記仮想インタフェースを識別する情報に前記マッピング関数を適用して求めた値と、
前記仮想インタフェースのデバイス名とMACアドレスを含む仮想NICの一覧表と
を基に前記仮想インタフェースのデバイス名を求めること
を特徴とする付記2乃至付記3のいずれかに記載のネットワーク仮想化システム。
(付記5)
前記ドメイン管理装置が、前記物理ノードに指示を出す前に、前記仮想ノードの設定を基に、前記仮想ノードを割り当てる仮想マシンの仮想NICのMACアドレスの重複確認することを特徴とする付記1乃至付記4のいずれかに記載のネットワーク仮想化システム。
(付記6)
仮想ネットワークの仮想ノードと仮想リンクとの設定の指示を受ける仮想ノード定義解釈部と、
前記仮想ノード定義解釈部の結果を受け仮想ネットワークに割り当てるリソースを確認するリソース割当て部と、
前記設定の指示と前記仮想ネットワークに割り当てるリソースとを基に仮想マシンの起動パラメータを生成し、前記起動パラメータで仮想マシンの起動を依頼する仮想マシンパラメータ生成処理部とを備え、
前記仮想マシンパラメータ生成処理部が、前記設定の指示に含まれる仮想インタフェースを識別する情報を基に、前記仮想インタフェースに対して、前記仮想マシンの仮想ネットワークインタフェース回路(NIC)に割り当てるMACアドレスの少なくとも一部又は全部に設定する値を求めること
を特徴とするノード。
(付記7)
前記MACアドレスに設定する値の少なくとも一部は、前記仮想インタフェースを識別する情報にマッピング関数を適用した値の少なくとも一部を使用することを特徴とする付記6に記載のノード。
(付記8)
前記マッピング関数が、ハッシュ関数、巡回冗長検査関数、又は、同じ識別する情報には同じ値を返し異なる識別する情報には所定の確率以下でしか同じ値を返さない関数であることを特徴とする付記7に記載のノード。
(付記9)
前記仮想マシンで動作するプログラムが、
前記仮想インタフェースを識別する情報に前記マッピング関数を適用して求めた値と、
前記仮想インタフェースのデバイス名とMACアドレスを含む仮想NICの一覧表と
を基に前記仮想インタフェースのデバイス名を求めること
を特徴とする付記6乃至付記8にいずれかに記載のノード。
(付記10)
物理ノードに仮想ネットワークの仮想ノードと仮想リンクとの設定の指示し、
前記指示に含まれる仮想インタフェースの識別する情報を基に、前記仮想インタフェースに対して、前記仮想ノード上の仮想マシンの仮想ネットワークインタフェース回路(NIC)に割り当てるMACアドレスの少なくとも一部又は全部を設定する値を求めること
を特徴とするネットワーク仮想化方法。
(付記11)
前記MACアドレスに設定する値の少なくとも一部は、前記仮想インタフェースを識別する情報にマッピング関数を適用した値の少なくとも一部を使用することを特徴とする付記10に記載のネットワーク仮想化方法。
(付記12)
前記マッピング関数が、ハッシュ関数、巡回冗長検査関数、又は、同じ識別する情報には同じ値を返し異なる識別する情報には所定の確率以下でしか同じ値を返さない関数であることを特徴とする付記11に記載のネットワーク仮想化方法。
(付記13)
前記仮想インタフェースを識別する情報に前記マッピング関数を適用して求めた値と、
前記仮想インタフェースのデバイス名とMACアドレスを含む仮想NICの一覧表と
を基に前記仮想インタフェースのデバイス名を求めること
を特徴とする付記11乃至付記12のいずれかに記載のネットワーク仮想化方法。
(付記14)
前記設定の指示を出す前に、前記仮想ノードの定義を基に、前記仮想ノードに割り当てる仮想マシンの仮想NICのMACアドレスの重複確認することを特徴とする付記10乃至付記13のいずれかに記載のネットワーク仮想化方法。
(付記15)
物理ノードに仮想ネットワークの仮想ノードと仮想リンクとの設定の指示する処理と、
前記指示に含まれる仮想インタフェースを識別する情報を基に、前記仮想インタフェースに対して、前記仮想ノード上の仮想マシンの仮想ネットワークインタフェース回路(NIC)に割り当てるMACアドレスの少なくとも一部又は全部に設定する値を求める処理を
コンピュータに実行させることを特徴とするネットワーク仮想化プログラム。
(付記16)
前記MACアドレスの設定する値の少なくとも一部は、前記仮想インタフェースを識別する情報にマッピング関数を適用した値の少なくとも一部を使用することを特徴とする付記15に記載のネットワーク仮想化プログラム。
(付記17)
前記マッピング関数が、ハッシュ関数、巡回冗長検査関数、又は、同じ識別する情報には同じ値を返し異なる識別する情報には所定の確率以下で同じ値を返す関数であることを特徴とする付記16に記載のネットワーク仮想化プログラム。
(付記18)
前記仮想インタフェースを識別する情報に前記マッピング関数を適用して求めた値と、
前記仮想インタフェースのデバイス名とMACアドレスを含む仮想NICの一覧表と
を基に前記仮想インタフェースのデバイス名を求める処理
を特徴とする付記16乃至付記17のいずれかに記載のネットワーク仮想化プログラム。
(付記19)
前記設定の指示を出す前に、前記仮想ノードの定義を基に、前記仮想ノードに割り当てる仮想マシンの仮想NICのMACアドレスの重複確認処理することを特徴とする付記15乃至付記18のいずれかに記載のネットワーク仮想化プログラム。