(57)【要約】【課題】複数の物理マシンで共有するアドレス（ＭＡＣアドレス）群を一元的に管理することなく、仮想ＮＩＣへのアドレスの重複を避けた割り当てを各物理マシンで確実に行うための技術を提供する。【解決手段】他の仮想マシンを管理する管理用仮想マシン上で実行されるＭＡＣアドレス配布サーバプロセス１２２は、共有するＭＡＣアドレス群、及び各物理マシンが確保したＭＡＣアドレスの使用範囲を示すＭＡＣアドレス割当共有テーブル２０１を管理する。自物理マシンで新たにＭＡＣアドレスを確保、或いは確保したＭＡＣアドレスを開放する場合、共有テーブル２０１を更新し、他の物理マシンに配布させる。それにより、各物理マシンが確保（使用）するアドレスの情報を共有する。その情報の共有により、仮想ＮＩＣへの重複したアドレスの割り当ては確実に回避される。【選択図】図２
2010147929.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理マシンで共有するアドレス群中のアドレスを各物理マシンが作成する仮想マシン上の仮想ネットワーク・インターフェース・カードに割り当てるための方法であって、
前記仮想マシンを作成する物理マシンが、前記アドレス群のなかで前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定して他の物理マシンにネットワークを介して通知する第１の通知ステップと、
前記第１の通知ステップにより前記使用範囲が通知された物理マシンが、該使用範囲を記憶する記憶ステップと、
前記使用範囲を記憶した物理マシンが、該記憶した使用範囲を除く前記アドレス群のなかから、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定して他の物理マシンに前記ネットワークを介して通知する第２の通知ステップと、
を含むことを特徴とするアドレス割当方法。
【請求項２】
前記仮想ネットワーク・インターフェース・カードを削除する物理マシンが、該削除によって不要となる前記使用範囲を他の物理マシンに前記ネットワークを介して通知する第３の通知ステップと、
前記第３の通知ステップにより前記使用範囲が通知された物理マシンが、該使用範囲を前記記憶した使用範囲のなかから削除する削除ステップと、
を更に含むことを特徴とする請求項１記載のアドレス割当方法。
【請求項３】
仮想マシンを作成する物理マシンとして用いられるコンピュータにおいて、
複数の物理マシンで共有するアドレス群を示すアドレス群情報を記憶する記憶手段と、
前記アドレス群を共有する他の物理マシンからネットワークを介して送信される、該他の物理マシンが作成する前記仮想マシン上の仮想ネットワーク・インターフェース・カードに該アドレス群のなかで割り当てるアドレスの使用範囲を示す使用範囲情報を受信する受信手段と、
前記受信手段が受信した前記使用範囲情報を前記記憶手段に記憶する記憶制御手段と、
前記記憶手段に記憶された前記アドレス群情報、及び前記使用範囲情報がそれぞれ示す前記アドレス群、及び前記使用範囲を基に、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定する使用範囲設定手段と、
前記使用範囲設定手段が設定した使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信する送信手段と、
を具備することを特徴とするコンピュータ。
【請求項４】
前記使用範囲設定手段が設定した使用範囲のなかで、前記仮想ネットワーク・インターフェース・カードの削除によって不要となる使用範囲を特定する使用範囲特定手段、を更に具備し、
前記送信手段は、前記使用範囲特定手段が特定した前記不要となる使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信し、
前記記憶制御手段は、前記不要となる使用範囲を示す使用範囲情報を前記他の物理マシンから前記受信手段が受信した場合に、該使用範囲情報を前記記憶手段から削除する、
ことを特徴とする請求項３記載のコンピュータ。
【請求項５】
仮想マシンを作成する物理マシンとして用いられるコンピュータに、
アドレス群を共有する他の物理マシンからネットワークを介して送信される、該他の物理マシンが作成する前記仮想マシン上の仮想ネットワーク・インターフェース・カードに
該アドレス群のなかで割り当てるアドレスの使用範囲を示す使用範囲情報を受信する受信機能と、
前記受信機能により受信した前記使用範囲情報を記憶手段に記憶する記憶制御機能と、
前記共有するアドレス群、及び前記記憶手段に記憶された前記使用範囲情報が示す前記使用範囲を基に、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定する使用範囲設定機能と、
前記使用範囲設定機能により設定した使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信する送信機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理マシンで共有するアドレス群中のアドレスを各物理マシンが作成する仮想マシン上の仮想ネットワーク・インターフェース・カード（ＮＩＣ）に割り当てるための技術に関する。
【背景技術】
【０００２】
近年、特にインターネットを介したサーバを用いてサービスを提供するシステムは大規模化する傾向にある。大規模なシステムでは、多くのコンピュータ（サーバ）を導入しなければならない。このため、コンピュータの導入コスト、及び運用コストが非常に大きくなる。このことから最近では、導入コスト、及び運用コストをより抑えることが可能な仮想マシン（ＶＭ：Virtual Machine）技術が注目されている。
【０００３】
仮想マシン技術は、ハードウェアを仮想化し、仮想化したハードウェア上で、オペレーティングシステム（ＯＳ）を動作させる技術である。仮想的なハードウェアを複数用意した場合には、同時に複数のＯＳを実行させることができる。仮想化したハードウェア上で実行される各ＯＳは、それぞれ１台のコンピュータを論理的に実現させる。論理的に実現されるコンピュータは「仮想マシン」と呼ばれる。
【０００４】
この仮想マシン技術を用いることにより、物理的に存在する１台のコンピュータ（物理マシン）上に１台以上の仮想マシンを作成することができる。各仮想マシンは、それぞれサーバとして用いることができる。このため、導入するコンピュータ（物理マシン）の数はより少なくできる。その結果、導入コスト、及び運用コストもより抑えられることとなる。
【０００５】
仮想マシンはそれぞれ、１台のコンピュータとして動作する。それにより、仮想マシン間、或いは外部のネットワークとの接続では、仮想マシンを一意に特定できるようにする必要がある。このため、仮想マシン上に仮想的なネットワーク・インターフェース・カード（ＮＩＣ）である仮想ＮＩＣが構築され、アドレスが割り当てられる。そのアドレスは普通、ＭＡＣ（Media Access Control）アドレスである。このＭＡＣアドレスは、各Ethernetカード（Ethernetは登録商標）には固有のＩＤ番号として割り当てられている。ＯＳＩ（Open Systems Interconnection）参照モデルのデータリンク層(第２層)でパケットの行き先を示すデータである。
【０００６】
図１２は、従来の物理マシン（コンピュータ）のシステム構成を示す図である。図１２に示すシステム構成は、仮想マシンを作成した状態の物理マシン１２００の環境を表したものである。図１２を参照して、従来の物理マシンのシステム構成、及び仮想ＮＩＣへのＭＡＣアドレスの割り当て方について説明する。
【０００７】
図１２では、ネットワーク３０で接続された２台の物理マシン１２００を示している。各物理マシン１２００には、物理的に存在するＮＩＣ（仮想ＮＩＣと区別するために以降「物理ＮＩＣ」と呼ぶ）１２０１が取り付けられている。図１２において、１２１０はハイパーバイザ（仮想マシンモニター）、１２２０は他の仮想マシンを管理するための仮想マシン、１２３０はアプリケーション・プログラム（以降「アプリケーション」と略記）が動作する仮想マシンである。仮想マシン１２２０では他の管理マシンを管理するための機能が搭載されたＯＳ（管理ＯＳ）が動作し、仮想マシン１２３０ではゲストＯＳが動作する。
【０００８】
上記ハイパーバイザ１２１０は、仮想マシンの作成を行い、不図示のハードウェアの動的、透過的な割り当てを行う。それにより、１台の物理マシン上で複数の仮想マシン１２２０、１２３０が同時に動作することを可能にさせる。
【０００９】
各仮想マシン１２３０上には仮想ＮＩＣ１２３１が構築され、管理用の仮想マシン（以降「管理仮想マシン」と呼ぶ）１２２０には物理ＮＩＣ１２０１と同じＭＡＣアドレスが割り当てられた仮想ＮＩＣ１２３２が構築されている。なお、物理ＮＩＣ１２０１は、ＭＡＣアドレスが変更され、またプロミスキャスモードに設定されてすべてのパケットを受信する。その管理仮想マシン１２２０には、物理ハードウェアにアクセスするための各種ドライバの他に、他の仮想マシン１２３０の運用を管理するためのプログラムである運用管理システム１２２１が存在する。仮想ＮＩＣ１２３１へのＭＡＣアドレスの割り当ては、運用管理システム１２２１によって直接的、或いは間接的に行われる。
【００１０】
物理マシン１２００上には、仮想マシン１２３０間、或いは物理ＮＩＣ１２０１を介したネットワーク３０との接続のために、仮想ネットワーク１２０２が作成される。この仮想ネットワーク１２０２は、作成した仮想スイッチを用いて構築された仮想的なネットワークである。
【００１１】
仮想ＮＩＣ１２３１に割り当て可能なＭＡＣアドレスは予め用意される。物理マシン１２００が複数、存在する場合、用意されたＭＡＣアドレス群は複数の物理マシン１２００で共有される。それにより、各仮想ＮＩＣ１２３１には、用意されたＭＡＣアドレス群のなかから選択したＭＡＣアドレスが割り当てられる。
【００１２】
従来、このＭＡＣアドレスの仮想ＮＩＣ１２３１への割り当てとしては、物理マシン１２００毎に、運用管理システム１２２１にＭＡＣアドレス群のなかからＭＡＣアドレスをランダムに選択させて行わせるという方法（直接的方法）がある。しかし、この方法では、他の物理マシン１２００で同じＭＡＣアドレスを仮想ＮＩＣ１２３１に割り当ててしまう可能性がある。
【００１３】
ＭＡＣアドレスの割り当てでは他に、コンソール２０を介してユーザ（運用者）が重複しないように管理しながら行う方法（間接的方法）がある。しかし、この方法では、ユーザのミスによってＭＡＣアドレスを重複して割り当ててしまう可能性がある。また、ユーザは煩雑な作業を行わなければならない。
【００１４】
このようなことから従来、複数の物理マシン１２００でＭＡＣアドレス群を共有させる場合、複数の仮想ＮＩＣ１２３１に同じＭＡＣアドレスを割り当てる重複が生じる可能性があった。その重複が生じると、適切な通信が行えなくなる。このため、重複を確実に回避したＭＡＣアドレスの適切な割り当てを行えるようにすることが望まれていた。
【００１５】
ＭＡＣアドレスの重複は、例えば共有するＭＡＣアドレス群を一元的に管理するコンピュータ（サーバ）を用意することで回避させることができる。しかし、そのようなコンピュータを用意した場合、そのコンピュータが停止すればＭＡＣアドレスの割り当てを行うことができないだけでなく、そのコンピュータの導入によるコストが発生する。それにより、仮想マシン技術の利点を低下させることになる。このことからＭＡＣアドレスの重複を避けた適切な割り当ては、別のコンピュータを導入することなく、言い換えれば一元的にＭＡＣアドレス群を管理することなく、行えるようにすることが重要と考えられる。
【特許文献１】特開２００７−１５８８７０号公報
【特許文献２】特開２００７−１９３７７９号公報
【特許文献３】特開２００７−３１６７２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、複数の物理マシンで共有するアドレス（ＭＡＣアドレス）群を一元的に管理することなく、仮想ＮＩＣへのアドレスの重複を避けた割り当てを各物理マシンで確実に行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明を適用した１システムでは、複数の物理マシン（コンピュータ）で共有するアドレス群中のアドレスを各物理マシンが作成する仮想マシン上の仮想ネットワーク・インターフェース・カード（ＮＩＣ）に割り当てる場合に、仮想マシンを作成する物理マシンは、アドレス群のなかで仮想ＮＩＣに割り当てるアドレスの使用範囲を設定して他の物理マシンにネットワークを介して通知し、その使用範囲が通知された物理マシンは、その使用範囲を記憶し、使用範囲を記憶した物理マシンは、記憶した使用範囲を除くアドレス群のなかから、作成する仮想マシン上の仮想ＮＩＣに割り当てるアドレスの使用範囲を設定して他の物理マシンにネットワークを介して通知する。
【００１８】
このようにして動作中の各物理マシンは、自物理マシン用に確保したアドレスを他の物理マシンに通知する。その通知によって、アドレス群を共有する複数の物理マシンは、より正確には、複数の物理マシンのなかで動作中の全ての物理マシンは、各物理マシンが確保したアドレスの情報を共有することになる。そのアドレス群のなかで使用可能なアドレスは何れの物理マシンでも正確に特定できるようになる。この結果、特定のコンピュータによりアドレス群を一元的に管理することなく、同一のアドレスを異なる仮想ＮＩＣに割り当てる重複は確実に回避される。複数の物理マシンのなかで停止している物理マシンの存在は影響しない。
【発明の効果】
【００１９】
本発明を適用した場合には、複数の物理マシンで共有するアドレス（ＭＡＣアドレス）群を一元的に管理することなく、仮想ネットワーク・インターフェース・カードへのアドレスの重複を避けた割り当てを各物理マシンで確実に行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下、開示の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態によるコンピュータ（物理マシン）のシステム構成を示す図である。図１に示すシステム構成は、図１２と同じく、物理マシン１００の動作時の環境を表したものである。その物理マシン１００は、例えばインターネット等のネットワークを介して接続された端末装置のユーザを対象にサービスを提供するサーバとして用いられるものである。
【００２１】
ネットワーク３０で接続された２台の物理マシン１００には、図１に示すように、ネットワーク３０を介した通信を行うための物理ＮＩＣ（ネットワーク・インターフェース・カード）１０１が搭載され、物理ＮＩＣ１０１を含むハードウェア上で直接動作するハイパーバイザ１１０が実行されている。物理マシン１００上で作成された仮想マシン（ＶＭ：Virtual Machine）１２０、及び１３０は、このハイパーバイザ１１０上で動作する。ハイパーバイザ１１０は、仮想マシン１２０及び１３０の作成を行い、ハードウェアを動的、透過的に割り当てることにより、各仮想マシン１２０及び１３０を動作させる。
【００２２】
仮想マシン１３０では、ゲストＯＳが動作し、仮想マシン１２０では、ゲストＯＳが動作する仮想マシン１３０を管理するための管理ＯＳ（ホストＯＳ）が動作する。本実施形態では、その管理ＯＳに、仮想マシン１３０の運用を管理するためのプログラムである運用管理システム１２１、及び仮想ＮＩＣへのＭＡＣアドレスの割り当てを管理するための
プログラムであるＭＡＣアドレス配布サーバプロセス１２２を搭載させている。それにより本実施形態によるコンピュータは、仮想マシン１２０上で運用管理システム１２１及びＭＡＣアドレス配布サーバプロセス（以降「サーバプロセス」と略記）１２２を動作させることにより実現される。運用管理システム１２１及びサーバプロセス１２２が動作する仮想マシン１２０は、ゲストＯＳが動作する仮想マシン１３０と区別するために以降「管理仮想マシン」と呼ぶことにする。
【００２３】
図１に示すシステム構成では、ハイパーバイザ１１０は管理仮想マシン１２０を無条件で作成する。仮想マシン１３０は、管理仮想マシン１２０の作成後、設定、或いはコンソール２０を介したユーザ（運用者）の指示に従って作成する。
【００２４】
各仮想マシン１３０には、通信用に仮想的なＮＩＣである仮想ＮＩＣ１３１が作成されている。各仮想マシン１３０、及び物理ＮＩＣ１０１は、仮想ネットワーク１０２と接続されている。それにより、仮想マシン１３０間、或いはネットワーク３０との接続が可能となっている。その仮想ネットワーク１０２は、作成した仮想スイッチを用いて構築された仮想的なネットワークである。
【００２５】
図２は、サーバプロセス１２２が管理する情報を説明する図である。図２に示すようにサーバプロセス１２２は、ＭＡＣアドレス割当共有テーブル（以降「共有テーブル」と略記）２０１、及びＭＡＣアドレス割当テーブル（以降「割当テーブル」と略記）２０２を管理する。
【００２６】
作成した仮想ＮＩＣ１３１にはＭＡＣアドレスが割り当てられる。割り当て可能なＭＡＣアドレスの範囲（ＭＡＣアドレス群）は、図１に示す２台の物理マシン１００を含む複数の物理マシンで共有とさせている。共有テーブル２０１は、仮想ＮＩＣ１３１へのＭＡＣアドレスの割り当てを重複することなく、複数の物理マシン１００でＭＡＣアドレス群を共有するためのテーブルである。
管理仮想マシン１２０にも仮想ＮＩＣ１３２が作成される。その仮想ＮＩＣ１３２には、物理ＮＩＣ１０１と同じＭＡＣアドレスが割り当てられる。このため、仮想ＮＩＣ１３２は、仮想ＮＩＣ１３１とは異なり、ＭＡＣアドレス群中のＭＡＣアドレスを割り当てる対象から除外される。
【００２７】
図３は、共有テーブル２０１のデータ構成を示す図である。この共有テーブル２０１には、物理マシン１００単位で、その物理マシン１００が使用するＭＡＣアドレスの使用範囲を示すデータが格納される。物理マシン１００を一意に表すデータとして物理マシン名が採用され、ＭＡＣアドレスの使用範囲は、その使用範囲の先頭に位置する開始ＭＡＣアドレスと、その使用範囲の最後に位置する終了ＭＡＣアドレスとで表すようになっている。これらのデータから構成される情報は以降「使用範囲情報」と呼ぶことにする。
【００２８】
図３中に表記の「ｈｏｓｔ１」及び「ｈｏｓｔ２」は共に、何れかの物理マシン１００に付された物理マシン名を表している。その物理マシン名として表記の「＃ＡＬＬ」は、全ての物理マシンを表している。このことから物理マシン名として「＃ＡＬＬ」を持つ使用範囲情報は、開始ＭＡＣアドレスと終了ＭＡＣアドレスにより、複数の物理マシン１００で共有するＭＡＣアドレス群を示している。それにより他の使用範囲情報は、そのＭＡＣアドレス群のなかで物理マシン１００が使用するＭＡＣアドレスの使用範囲を物理マシン１００毎に示すものとなっている。
【００２９】
このようなことから共有テーブル２０１は、複数の物理マシン１００で共有するＭＡＣアドレス群、及び各物理マシン１００が使用しているＭＡＣアドレスの使用範囲を示すものとなっている。この共有テーブル２０１は、各物理マシン１００で共有するようにして
いる。各物理マシン１００は、共有テーブル２０１への更新として、自物理マシン１００の使用範囲情報の登録、或いは削除のみを行い、更新後の共有テーブル２０１を他の物理マシン１００に配布する。その配布により、ＭＡＣアドレス群を共有する全ての物理マシン１００で共有テーブル２０１の同一性を保持させる。このため、各物理マシン１００では、共有テーブル２０１を参照し、ＭＡＣアドレス群のなかで使用されていないＭＡＣアドレスを仮想ＮＩＣ１３１に割り当てることにより、同じＭＡＣアドレスが複数の仮想ＮＩＣ１３１に割り当てられる重複を確実に回避することができる。
【００３０】
一方、割当テーブル２０２は、物理マシン１００が自物理マシン１００で使用しているＭＡＣアドレスを管理するためのテーブルである。
図３に示す共有テーブル２０１において、物理マシン名が「ｈｏｓｔ１」の物理マシン１００では、ＭＡＣアドレスの使用範囲は０２：１７：４２：２Ｆ：００：００〜０２：１７：４２：２Ｆ：００：０Ｆの計１６個となっている。「ｈｏｓｔ２」の物理マシン１００でも同様に、ＭＡＣアドレスの使用範囲は０２：１７：４２：２Ｆ：００：１０〜０２：１７：４２：２Ｆ：００：１Ｆの計１６個となっている。このように本実施形態では、所定数（ここでは１６）単位でＭＡＣアドレスの使用範囲を設定するようにしている。割当テーブル２０２は、所定数単位でＭＡＣアドレスの割り当てを管理するために用いている。それにより、所定数を越えるＭＡＣアドレスを使用する物理マシン１００では、複数の割り当てテーブル２０２が作成される。
【００３１】
図４は、その割当テーブル２０２のデータ構成を示す図である。図４に示すように、割り当てテーブル２０２にはＭＡＣアドレスとその使用状況（を示すフラグ）の組み合わせが登録される。それにより、ＭＡＣアドレス毎にそのＭＡＣアドレスが使用されているか否か確認できるようになっている。使用状況（を示すフラグの値）は、使用中は１、未使用は０としている。
【００３２】
サーバプロセス１２２は、上記共有テーブル２０１、及び割当テーブル２０２を管理し、仮想ＮＩＣ１３１にＭＡＣアドレスを割り当てる場合、運用管理システム１２１からの要求により、割り当てるべきＭＡＣアドレスを決定して運用管理システム１２１に通知する。その通知に従って運用管理システム１２１が仮想ＮＩＣ１３１にＭＡＣアドレスを割り当てる。それにより、他の物理マシン１００で使用されていないＭＡＣアドレスが仮想ＮＩＣ１３１に割り当てられることとなる。
【００３３】
図５は、ケース別に各物理マシン１００の動作を説明するための図である。次に図５を参照して、２台の物理マシン１００の動作についてケース別に具体的に説明する。ケースとしては、共有すべきＭＡＣアドレス群の初期導入時、他の物理マシン１００（２台目以降の物理マシン１００）の起動（追加）時、他の物理マシン１００の起動中にＭＡＣアドレスの割り当てを行う時、他の物理マシン１００の起動中に割り当て済のＭＡＣアドレスを開放、つまり仮想ＮＩＣ１３１へのＭＡＣアドレスの割り当てを解除する時、及び物理マシン１００を削除（停止）させる時、を想定する。ここでは説明上、便宜的に、ＭＡＣアドレス群が設定される物理マシン、ＭＡＣアドレスの割り当て、或いはその割り当ての解除を行う物理マシン、及び削除される物理マシンには符号として１００Ａを用いる。その物理マシン１００Ａの後に起動される物理マシンの符号としては１００Ｂを用いる。
【００３４】
始めに、ＭＡＣアドレス群の初期導入時の動作について説明する。この初期導入は通常、複数の物理マシン１００のなかで最初に起動させる物理マシン１００（１００Ａ）を対象にして行われる。その起動時、ハイパーバイザ１１０は管理仮想マシン１２０を作成する。
【００３５】
その物理マシン１００Ａは、例えばコンソール２０から共有するＭＡＣアドレス群を入
力する。入力されたＭＡＣアドレス群は、ハイパーバイザ１１０、運用管理システム１２１を介してサーバプロセス１２２に渡される。それによりサーバプロセス１２２は、共有テーブル２０１に、物理マシン名として「＃ＡＬＬ」を持つ使用範囲情報を登録する。その後、自物理マシン１００Ａが使用するＭＡＣアドレスの範囲を決定し、割当テーブル２０２の作成、その決定に応じた共有テーブル２０１の更新を行う。そのようにして、仮想ＮＩＣ１３１にＭＡＣアドレスを割り当てるための準備を行う。共有テーブル２０１の更新は、物理マシン名として自物理マシン１００Ａの名称を持つ使用範囲情報を共有テーブル２０１に登録することで行われる。
【００３６】
共有するＭＡＣアドレス群は、例えばネットワーク管理者が決定したものである。そのＭＡＣアドレス群は、起動時にハイパーバイザ１１０に参照させるファイル中に設定しても良い。
【００３７】
次に、他の物理マシン１００Ｂ（２台目以降の物理マシン１００）の起動時の動作について説明する。
起動した物理マシン１００Ｂは、物理ＮＩＣ１０１からネットワーク３０に参加する旨を通知する。その通知を受信した物理マシン１００Ａは、応答を物理マシン１００Ｂに返す。また、所有する共有テーブル２０１を送信する。物理マシン１００Ｂは、その応答により共有するＭＡＣアドレス群の入力が不要と認識し、共有テーブル２０１を受信するのを待って、その共有テーブル２０１を保存する。その保存後は、自物理マシン１００Ｂが使用するＭＡＣアドレスの範囲を決定し、割当テーブル２０２の作成、その決定に応じた共有テーブル２０１の更新を行う。更新した共有テーブル２０１は、物理マシン１００Ａを含む他の物理マシン１００に送信（配布）する。共有テーブル２０１を受信した物理マシン１００Ａは、その共有テーブル２０１をそれまでの共有テーブル２０１に代えて保存する。そのようにして、共有テーブル２０１の同一性が保持される。起動した物理マシン１００Ｂには、図５に示すように、共有テーブル２０１、及び少なくとも一つの割当テーブル２０２が保存される。
【００３８】
このようにして、起動直後の物理マシン１００Ｂには、最新の共有テーブル２０１が保存される。このため物理マシン１００Ｂは、重複を回避したＭＡＣアドレスの割り当てを確実に行うことができる。
【００３９】
他の物理マシン１００の起動中にＭＡＣアドレスの割り当てを行う時には、各物理マシン１００Ａ及び１００Ｂは以下のように動作する。ＭＡＣアドレスの割り当ては、仮想ＮＩＣ１３１の作成等により行われる。その仮想ＮＩＣ１３１の作成は、それを有する仮想マシン１３０の作成、或いはコンソール２０を介したユーザの指示等により行われる。
【００４０】
物理マシン１００Ａは、既存の割当テーブル２０２を参照し、未使用のＭＡＣアドレスの抽出を行う。それによりＭＡＣアドレスを抽出できた場合、抽出したＭＡＣアドレスを仮想ＮＩＣ１３１に割り当て、そのＭＡＣアドレスの使用状況を使用中に変更する。一方、未使用のＭＡＣアドレスを抽出できなかった場合には、共有テーブル２０１を参照して、新たに自物理マシン１００Ａが使用するＭＡＣアドレスの使用範囲を決定する。その決定に応じて、新たに割当テーブル２０２を作成し、新たに使用範囲情報を登録することにより共有テーブル２０１を更新する。更新した共有テーブル２０１は物理マシン１００Ｂに配布する。その後、新たに作成した割当テーブル２０２に登録されているＭＡＣアドレスのなかから抽出したＭＡＣアドレスを仮想ＮＩＣ１３１に割り当て、そのＭＡＣアドレスの使用状況を使用中に変更する。図５において、既存の割当テーブル２０２は実線で示し、新たに作成された割当テーブルは２０２Ｎを付した点線で示している。
【００４１】
このようにして本実施形態では、必要とするＭＡＣアドレスの数の増加には随時、割当
テーブル２０２を作成する形で対応するようにしている。それにより、不必要なＭＡＣアドレスを多く物理マシン１００に割り当てることによるＭＡＣアドレス資源の浪費、及び共有テーブル２０１の更新頻度を共に抑えるようにしている。
【００４２】
他の物理マシン１００の起動中に割り当て済のＭＡＣアドレスを開放、つまりＭＡＣアドレスの割り当てを解除する時には、各物理マシン１００Ａ及び１００Ｂは以下のように動作する。ＭＡＣアドレスの開放は、仮想ＮＩＣ１３１の削除等により行われる。その仮想ＮＩＣ１３１の削除は、それを有する仮想マシン１３０の削除（停止）、或いはコンソール２０を介したユーザの指示等により行われる。
【００４３】
物理マシン１００Ａは、割当テーブル２０２を参照し、開放するＭＡＣアドレスの使用状況を未使用に変更する。その変更を行った割当テーブル２０２で全てのＭＡＣアドレスが未使用となった場合、その割当テーブル２０２を削除し、その割当テーブル２０２で管理する範囲のＭＡＣアドレスは不要として、その範囲のＭＡＣアドレスを示す使用範囲情報を削除することにより共有テーブル２０１を更新する。更新した共有テーブル２０１は他の物理マシン１００に配布する。図５において、削除する割当テーブルは例えば２０２Ｎを付した点線で示すものである。
【００４４】
このようにして本実施形態では、必要とするＭＡＣアドレスの数の減少には随時、割当テーブル２０２を削除する形で対応するようにしている。それにより、或る物理マシン１００で不要となったＭＡＣアドレスは別の物理マシン１００で使用するのを可能とさせるようにして、ＭＡＣアドレス資源の使用効率の低下を抑えている。
【００４５】
最後に、物理マシン１００を削除（停止）させる時の各物理マシン１００Ａ及び１００Ｂの動作について説明する。
停止させる物理マシン１００Ａでは、ＭＡＣアドレスは不要となる。このことから物理マシン１００Ａは、共有テーブル２０１中の自物理マシン１００Ａが登録した全ての使用範囲情報を削除する更新を行い、更新後の共有テーブル２０１を物理マシン１００Ｂに送信する。それにより物理マシン１００Ｂは、受信した共有テーブル２０１をそれまでの共有テーブル２０１に代えて保存する。新たに保存した共有テーブル２０１は、物理マシン１００Ａの名称を物理マシン名として持つ使用範囲情報が存在しないものである。
【００４６】
このようにして、物理マシン１００が所定数単位で使用するＭＡＣアドレスに変更が生じた場合、その変更が反映された共有テーブル２０１が他の物理マシン１００に配布され、新たなＭＡＣアドレスの割り当てに用いられる。このため、動作中の物理マシン１００では、重複を回避したＭＡＣアドレスの割り当てを常に確実に行うことができる。
【００４７】
以降は、図６〜図１０に示す各フローチャートを参照して、各ケースでサーバプロセス１２２が実行する処理について詳細に説明する。図６〜図１０では、共有テーブル２０１は「共有テーブル」、割当テーブル２０２は「テーブル」と表記し、それらを区別している。
【００４８】
図６は、初期導入処理のフローチャートである。この初期導入処理は、ＭＡＣアドレス群を共有する他の物理マシン１００が起動していないことを条件に、そのＭＡＣアドレス群を導入するために実行される処理である。始めに図６を参照して、この初期導入処理について詳細に説明する。
【００４９】
ネットワーク３０と接続された物理マシン１００は、起動時に、ネットワーク３０に参加する旨を通知する。その通知を受信した物理マシン１００は、応答を返す。このことから、その応答の有無により、他の物理マシン１００が起動しているか否か特定することが
できる。その特定は管理ＯＳによって行われる。
【００５０】
先ず、ステップＳ１では、例えばコンソール２０を介してユーザが入力したＭＡＣアドレス群を運用管理システム１２１から取得する。次のステップＳ２では、取得したＭＡＣアドレス群から使用範囲情報を作成し、作成した使用範囲情報を共有テーブル２０１に登録する。登録後は、ステップＳ３に移行して、ＭＡＣアドレス群のなかで自物理マシン１００が使用するＭＡＣアドレスの範囲を決定する。ステップＳ４には、その決定後に移行する。
【００５１】
ステップＳ４では、決定した範囲のＭＡＣアドレスを登録した割当テーブル２０２を作成する。続くステップＳ５では、決定した範囲を示す使用範囲情報を作成し、作成した使用範囲情報を登録することにより共有テーブル２０１に反映させる。その後、この初期導入処理を終了する。
【００５２】
図７は、共有テーブル取得処理のフローチャートである。この取得処理は、起動時にＭＡＣアドレス群を共有する他の物理マシン１００が既に動作中であることを条件に、他の物理マシン１００から送信される共有テーブル２０１を用いて初期設定を行うために実行される処理である。次に図７を参照して、この取得処理について詳細に説明する。
【００５３】
先ず、ステップＳ１１では、他の物理マシン１００から受信した共有テーブル２０１を運用管理システム１２１から取得して保存する。続くステップＳ１２では、共有テーブル２０１を参照して、未使用となっているＭＡＣアドレスのなかから自物理マシン１００が使用するＭＡＣアドレスの範囲を決定（選択）する。その決定後はステップＳ１３に移行して、決定した範囲のＭＡＣアドレスを登録した割当テーブル２０２を作成する。その後はステップＳ１４に移行する。
【００５４】
ステップＳ１４では、決定した範囲を示す使用範囲情報を作成し、作成した使用範囲情報を登録することにより共有テーブル２０１に反映させる。次のステップＳ１５では、運用管理システム１２１に要求して、更新した共有テーブル２０１を他の物理マシン１００に配布させる。その後、この共有テーブル取得処理を終了する。共有テーブル２０１の配布の要求は、運用管理システム１２１→管理ＯＳ→ハイパーバイザ１１０の順序で伝えられる。このため、最終的にはハイパーバイザ１１０によって共有テーブル２０１が物理ＮＩＣ１０１から送信される。
【００５５】
図８は、ＭＡＣアドレス割当処理のフローチャートである。この割当処理は、仮想ＮＩＣ１３１を有する仮想マシン１３０の作成、或いは既存の仮想マシン１３０上での仮想ＮＩＣ１３１の作成によって生じる運用監視システム１２１からの要求、つまり割り当てるべきＭＡＣアドレスの問い合わせにより実行される。次に図８を参照して、この割当処理について詳細に説明する。
【００５６】
先ず、ステップＳ２１では、運用管理システム１２１からの要求を受ける。続くステップＳ２２では、割当テーブル２０２を参照し、未使用のＭＡＣアドレスが存在しているか否か判定する。使用状況の値が未使用を示す０となっているＭＡＣアドレスが割当テーブル２０２に存在する場合、判定はＹＥＳとなってステップＳ２３に移行する。未使用のＭＡＣアドレスが存在しない場合には、判定はＮＯとなってステップＳ２６に移行する。
【００５７】
ステップＳ２３では、未使用のＭＡＣアドレスのなかから割り当てるＭＡＣアドレスを決定する。次のステップＳ２４では、決定したＭＡＣアドレスの使用状況の値を１に変更することにより、割当テーブル２０２を更新する。その更新後、決定したＭＡＣアドレスをステップＳ２５で運用管理システム１２１に通知してから、このＭＡＣアドレス割当処
理を終了する。
【００５８】
一方、ステップＳ２６では、共有テーブル２０１を参照し、未使用となっているＭＡＣアドレスのなかから自物理マシン１００用に所定数のＭＡＣアドレスを割り当てる。次のステップＳ２７では、割り当てた所定数のＭＡＣアドレスを示す使用範囲情報を共有テーブル２０１に登録する。その次に移行するステップＳ２８では、割り当てた所定数のＭＡＣアドレスを登録した割当テーブル２０２を作成する。ステップＳ２３には、その作成後に移行する。作成直後の割当テーブル２０２では、使用状況の値は全て０である。
【００５９】
使用範囲情報の登録により共有テーブル２０１を更新した場合、更新した共有テーブル２０１は、ステップＳ２７、或いはステップＳ２５で運用管理システム１２１に配布が要求される。その要求により、他の物理マシン１００に更新後の共有テーブル２０１が配布され、保存されることとなる。
【００６０】
図９は、ＭＡＣアドレス開放処理のフローチャートである。この開放処理は、仮想ＮＩＣ１３１を有する仮想マシン１３０の削除、或いは既存の仮想マシン１３０上での仮想ＮＩＣ１３１の削除によって生じる運用監視システム１２１からのＭＡＣアドレスの割り当ての解除要求により実行される。次に図９を参照して、この開放処理について詳細に説明する。
【００６１】
先ず、ステップＳ３１では、運用管理システム１２１から割り当てを解除すべきＭＡＣアドレスの通知を受ける。続くステップＳ３２では、割当テーブル２０２上のそのＭＡＣアドレスの使用状況の値を０に変更し、未使用とする。次に移行するステップＳ３３では、使用状況の値を０に変更した割当テーブル２０２で全てのＭＡＣアドレスが未使用か否か判定する。その割り当てテーブル２０２の全ての使用状況の値が０であった場合、判定はＹＥＳとなってステップＳ３４に移行する。値が１となっている使用状況が存在する場合には、判定はＮＯとなり、ここでＭＡＣアドレス開放処理を終了する。
【００６２】
ステップＳ３４では、全ての使用状況の値が０となっている割当テーブル２０２を削除する。次のステップＳ３５では、削除した割当テーブル２０２に対応する使用範囲情報を削除することにより共有テーブル２０１を更新する。その次のステップＳ３６では、運用管理システム１２１に、更新後の共有テーブル２０１の配布を要求する。その要求を行った後、このＭＡＣアドレス開放処理を終了する。その要求により、他の物理マシン１００に更新後の共有テーブル２０１が配布され、保存されることとなる。
【００６３】
図１０は、物理マシン削除処理のフローチャートである。この削除処理は、例えばコンソール２０を介してユーザから物理マシン１００の停止（例えば終了）が指示された場合に、自物理マシン１００用に確保したＭＡＣアドレス資源を開放するために運用管理システム１２１の制御によって実行される処理である。最後に図１０を参照して、この削除処理について詳細に説明する。
【００６４】
先ず、ステップＳ４１では、コンソール２０等を用いてユーザが削除を指示するコマンドを入力したことの通知を運用管理システム１２１から受ける。次のステップＳ４２では、共有テーブル２０１上の自物理マシン１００の使用範囲情報を全て削除する。その次に移行するステップＳ４３では、運用管理システム１２１に、削除による更新後の共有テーブル２０１の配布を要求する。その要求を行った後、この物理マシン削除処理を終了する。その要求により、他の物理マシン１００に更新後の共有テーブル２０１が配布され、保存される。
【００６５】
図１１は、ハードウェア構成の実施形態の一例を示す図である。ここで図１１を参照し
て、本実施形態を適用可能な情報処理装置としてのコンピュータの構成について具体的に説明する。
【００６６】
図１１に示すコンピュータは、演算処理装置としてのＣＰＵ６１、記憶装置としてのメモリ６２、入力装置６３、外部記憶装置６４、媒体駆動装置６５、及び通信装置としてのネットワーク接続装置６６を有し、これらがバス６７によって互いに接続された構成となっている。同図に示す構成は一例であり、これに限定されるものではない。
【００６７】
ＣＰＵ６１は、当該コンピュータ全体の制御を行う。
メモリ６２は、プログラム実行、データ更新等の際に、外部記憶装置６４（あるいは可搬型の記録媒体Ｍ）に記憶されているプログラムあるいはデータを一時的に格納するＲＡＭ等の半導体メモリである。ＣＰＵ６１は、プログラムをメモリ６２に読み出して実行することにより、全体の制御を行う。
【００６８】
入力装置６３は、例えばコンソール２０との接続用のインターフェースである。コンソール２０との間でデータを送受信し、受信したデータはＣＰＵ６１に送る。それにより、コンソール２０を介した指示に従ってコンピュータは動作する。
【００６９】
ネットワーク接続装置６６は、ネットワーク３０との通信を行うためのものである。図１に示すシステム構成では、物理ＮＩＣ１０１に相当する。外部記憶装置６４は、例えばハードディスク装置である。主に各種データやプログラムの保存に用いられる。
媒体駆動装置６５は、光ディスクや光磁気ディスク等の可搬型の記録媒体Ｍにアクセスするものである。
【００７０】
図１１に示す構成要素６１〜６６は、ハイパーバイザ１１０によって仮想化されるハードウェアに相当する。ハイパーバイザ１１０、運用管理システム１２１及びサーバプロセス１２２を含む管理ＯＳ、各仮想マシン１３０上で動作するゲストＯＳは例えば外部記憶装置６４に格納されている。共有テーブル２０１及び割当テーブル２０２は、例えば外部記憶装置６４に保存され、必要に応じて随時、メモリ６２に読み出される。図１に示すシステム構成は、ＣＰＵ６１がハイパーバイザ１１０をメモリ６２に読み出して起動し、そのバイザ１１０の制御で各仮想マシン１２０、１３０用のプログラムをメモリ６２に読み出して実行することで実現される。図６〜図１０に示す各種処理は、ＣＰＵ６１がハイパーバイザ１１０、並びに管理仮想マシン１２０用の運用管理システム１２１及びサーバプロセス１２２を含む管理ＯＳを実行することで実現される。ハイパーバイザ１１０及び管理ＯＳを含む各種プログラムは、記録媒体Ｍに記録して配布しても良く、或いはネットワーク接続装置６６により取得できるようにしても良い。
【００７１】
なお、本実施形態では、共有するＭＡＣアドレス群は共有テーブル２０１に登録するようにしているが、別の保存場所に保存するようにしても良い。また、資源管理を容易とするために、ＭＡＣアドレスは所定数単位で各物理マシン１００に確保させるようにしているが、そのような数の制約を設けなくとも良い。或いは、数の選択肢を複数、用意し、その選択肢のなかから選択させるようにしても良い。
【００７２】
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
複数の物理マシンで共有するアドレス群中のアドレスを各物理マシンが作成する仮想マシン上の仮想ネットワーク・インターフェース・カードに割り当てるための方法であって、
前記仮想マシンを作成する物理マシンが、前記アドレス群のなかで前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定して他の物理マシ
ンにネットワークを介して通知する第１の通知ステップと、
前記第１の通知ステップにより前記使用範囲が通知された物理マシンが、該使用範囲を記憶する記憶ステップと、
前記使用範囲を記憶した物理マシンが、該記憶した使用範囲を除く前記アドレス群のなかから、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定して他の物理マシンに前記ネットワークを介して通知する第２の通知ステップと、
を含むことを特徴とするアドレス割当方法。
（付記２）
前記使用範囲は、所定数のアドレスを単位として設定する、
ことを特徴とする付記１記載のアドレス割当方法。
（付記３）
前記仮想ネットワーク・インターフェース・カードを削除する物理マシンが、該削除によって不要となる前記使用範囲を他の物理マシンに前記ネットワークを介して通知する第３の通知ステップと、
前記第３の通知ステップにより前記使用範囲が通知された物理マシンが、該使用範囲を前記記憶した使用範囲のなかから削除する削除ステップと、
を更に含むことを特徴とする付記１、または２記載のアドレス割当方法。
（付記４）
仮想マシンを作成する物理マシンとして用いられるコンピュータにおいて、
複数の物理マシンで共有するアドレス群を示すアドレス群情報を記憶する記憶手段と、
前記アドレス群を共有する他の物理マシンからネットワークを介して送信される、該他の物理マシンが作成する前記仮想マシン上の仮想ネットワーク・インターフェース・カードに該アドレス群のなかで割り当てるアドレスの使用範囲を示す使用範囲情報を受信する受信手段と、
前記受信手段が受信した前記使用範囲情報を前記記憶手段に記憶する記憶制御手段と、
前記記憶手段に記憶された前記アドレス群情報、及び前記使用範囲情報がそれぞれ示す前記アドレス群、及び前記使用範囲を基に、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定する使用範囲設定手段と、
前記使用範囲設定手段が設定した使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信する送信手段と、
を具備することを特徴とするコンピュータ。
（付記５）
前記使用範囲設定手段が設定した使用範囲のなかで、前記仮想ネットワーク・インターフェース・カードの削除によって不要となる使用範囲を特定する使用範囲特定手段、を更に具備し、
前記送信手段は、前記使用範囲特定手段が特定した前記不要となる使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信し、
前記記憶制御手段は、前記不要となる使用範囲を示す使用範囲情報を前記他の物理マシンから前記受信手段が受信した場合に、該使用範囲情報を前記記憶手段から削除する、
ことを特徴とする付記４記載のコンピュータ。
（付記６）
仮想マシンを作成する物理マシンとして用いられるコンピュータに、
アドレス群を共有する他の物理マシンからネットワークを介して送信される、該他の物理マシンが作成する前記仮想マシン上の仮想ネットワーク・インターフェース・カードに該アドレス群のなかで割り当てるアドレスの使用範囲を示す使用範囲情報を受信する受信機能と、
前記受信機能により受信した前記使用範囲情報を記憶手段に記憶する記憶制御機能と、
前記共有するアドレス群、及び前記記憶手段に記憶された前記使用範囲情報が示す前記
使用範囲を基に、作成する前記仮想マシン上の前記仮想ネットワーク・インターフェース・カードに割り当てるアドレスの使用範囲を設定する使用範囲設定機能と、
前記使用範囲設定機能により設定した使用範囲を示す使用範囲情報を他の物理マシンに前記ネットワークを介して送信する送信機能と、
を実現させるためのプログラム。
【図面の簡単な説明】
【００７３】
【図１】本実施形態によるコンピュータ（物理マシン）のシステム構成を示す図である。
【図２】ＭＡＣアドレス配布サーバプロセス１２２が管理する情報を説明する図である。
【図３】ＭＡＣアドレス割当共有テーブル２０１のデータ構成を示す図である。
【図４】ＭＡＣアドレス割当テーブル２０２のデータ構成を示す図である。
【図５】ケース別に各物理マシン１００の動作を説明するための図である。
【図６】初期導入処理のフローチャートである。
【図７】共有テーブル取得処理のフローチャートである。
【図８】ＭＡＣアドレス割当処理のフローチャートである。
【図９】ＭＡＣアドレス開放処理のフローチャートである。
【図１０】物理マシン削除処理のフローチャートである。
【図１１】ハードウェア構成の実施形態の一例を示す図である。
【図１２】従来のコンピュータ（物理マシン）のシステム構成を示す図である。
【符号の説明】
【００７４】
１００      物理マシン（コンピュータ）
１０１      物理ＮＩＣ
１０２      仮想ネットワーク
１１０      ハイパーバイザ
１２０、１３０      仮想マシン
１２１      運用管理システム
１２２      ＭＡＣアドレス配布サーバプロセス
１３１      仮想ＮＩＣ
２０１      ＭＡＣアドレス割当共有テーブル
２０２      ＭＡＣアドレス割当テーブル
【図１】
2010147929.tif 000003
【図２】
2010147929.tif 000004
【図３】
2010147929.tif 000005
【図４】
2010147929.tif 000006
【図５】
2010147929.tif 000007
【図６】
2010147929.tif 000008
【図７】
2010147929.tif 000009
【図８】
2010147929.tif 000010
【図９】
2010147929.tif 000011
【図１０】
2010147929.tif 000012
【図１１】
2010147929.tif 000013
【図１２】
2010147929.tif 000014