(57)【特許請求の範囲】
【請求項１】
ネットワークを構成する物理ノードと、
仮想ネットワークの仮想ノード及び仮想リンクの設定を前記物理ノードに対して指示するドメイン管理装置と、を備え、
前記物理ノードは、
前記ドメイン管理装置からの指示に含まれる前記仮想ノードの定義に基づき前記仮想ノードに対して仮想マシンを割り当てる場合に、
前記仮想マシンの起動前に、前記仮想ノードの定義に含まれる情報と、前記仮想マシンに関する情報と、を対応付ける設定を、前記仮想マシン上で起動されるオペレーティングシステムの設定ファイルに書き込み、その後、前記仮想マシンを起動する
ことを特徴とするネットワーク仮想化システム。
【請求項２】
請求項１に記載のネットワーク仮想化システムであって、
前記物理ノードは、
前記仮想ノードの定義に含まれる情報として、前記仮想ノードの定義に含まれる仮想インタフェース各々に対して、前記仮想マシンの仮想ＮＩＣを一つずつ対応付け、
前記仮想マシンに関する情報として、前記仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当て、
前記仮想マシン上で起動されるオペレーティングシステムのインタフェースマッピング手段の設定ファイルを、前記仮想マシンの仮想ディスクに保持し、
前記仮想マシンの起動前に、前記仮想ノードの定義に含まれる前記仮想インタフェースと、前記仮想マシンの前記仮想ＮＩＣに割り当てたＭＡＣアドレスと、を対応付けるルールを、前記インタフェースマッピング手段の設定ファイルに書き込み、その後、前記仮想マシンを起動する
ことを特徴とするネットワーク仮想化システム。
【請求項３】
請求項２に記載のネットワーク仮想化システムであって、
前記物理ノードは、
前記仮想ノードの定義に含まれる前記仮想インタフェースの識別子を、前記仮想マシンの前記仮想ＮＩＣに割り当てたＭＡＣアドレスを持つ仮想ＮＩＣのＮＩＣ名として割り当てるルールを、前記インタフェースマッピング手段の設定ファイルに書き込む
ことを特徴とするネットワーク仮想化システム。
【請求項４】
請求項２又は３に記載のネットワーク仮想化システムであって、
前記物理ノードは、
前記インタフェースマッピング手段の設定ファイルへの書き込みを行う場合に、
前記仮想マシンの仮想ディスク内のファイルとして、前記仮想マシン上で起動されるオペレーティングシステムに固有のファイルが存在するか、又は、前記インタフェースマッピング手段の実行ファイルが存在するかどうかの確認を行い、存在した場合にのみ、前記インタフェースマッピング手段の設定ファイルへの書き込みを行う
ことを特徴とするネットワーク仮想化システム。
【請求項５】
仮想ノード割り当て要求を受信し、当該割り当て要求された仮想ノードの定義を解釈する仮想ノード定義解釈手段と、
前記仮想ノード定義解釈手段の結果を受け、前記仮想ノードに割り当てるリソースを確認し、仮想マシンを割り当てるリソース割り当て手段と、
前記仮想マシンの仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当てる仮想マシンパラメータ生成処理手段と、
前記仮想マシンの起動前に、前記仮想ノード割り当て要求に含まれる情報と、前記仮想マシンに関する情報と、を対応付ける設定を、前記仮想マシンの仮想ディスク内の、前記仮想マシン上で起動されるオペレーティングシステムの設定ファイルに書き込む仮想ディスク操作処理手段と、
前記仮想マシンの実行制御を行う仮想マシンモニタ手段と、
を備える物理ノード。
【請求項６】
請求項５に記載の物理ノードであって、
前記仮想ノード定義解釈手段は、
仮想ノードが保持する仮想インタフェースの定義を含む、仮想ノード割り当て要求を受信し、当該割り当て要求された仮想ノードの定義を解釈し、
前記リソース割り当て手段は、
前記仮想ノード定義解釈手段の結果を受け、前記仮想ノードに割り当てるリソースを確認し、仮想マシンを割り当て、
前記仮想マシンパラメータ生成処理手段は、
前記仮想ノード割り当て要求に含まれる前記仮想インタフェース各々に対して、前記仮想マシンの仮想ＮＩＣを一つずつ対応付け、前記仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当て、
前記仮想ディスク操作処理手段は、
前記仮想マシンの起動前に、前記仮想ノード割り当て要求に含まれる前記仮想インタフェースと、前記仮想マシンの前記仮想ＮＩＣに割り当てたＭＡＣアドレスと、を対応付けるルールを、前記仮想マシンの仮想ディスク内の、前記仮想マシン上で起動されるオペレーティングシステムのインタフェースマッピング手段の設定ファイルに書き込む
仮想マシンモニタ手段は、
前記仮想マシンの実行制御を行う
ことを特徴とする物理ノード。
【請求項７】
ネットワークを構成する物理ノードが、仮想ノードが保持する仮想インタフェースの定義を含む、仮想ノード割り当て要求を受信し、当該割り当て要求された仮想ノードの定義を解釈し、
前記物理ノードが、前記解釈された仮想ノードの定義に応じて、前記仮想ノードに割り当てるリソースを確認し、仮想マシンを割り当て、
前記物理ノードが、前記仮想ノード割り当て要求に含まれる前記仮想インタフェース各々に対して、前記仮想マシンの仮想ＮＩＣを一つずつ対応付け、前記仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当て、
前記物理ノードが、前記仮想マシンの起動前に、前記仮想ノード割り当て要求に含まれる前記仮想インタフェースと、前記仮想マシンの前記仮想ＮＩＣに割り当てたＭＡＣアドレスと、を対応付けるルールを、前記仮想マシンの仮想ディスク内の、前記仮想マシン上で起動されるオペレーティングシステムのインタフェースマッピング手段の設定ファイルに書き込む
ことを特徴とする仮想マシンにおける仮想インタフェース識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク仮想化システムの運用方法、特に、仮想ネットワークを構成する仮想ネットワークノードに割り当てる仮想マシンにおける仮想インタフェースの識別方法、に関する。
【背景技術】
【０００２】
近年、ネットワークの大型化に伴い、ネットワークの管理運用が複雑化している。そのため、例えば、ネットワークを構成するいずれかの装置が他の装置に対する設定を受け、管理者に代わってその設定を実行する、というネットワークに対応した管理が行われている（例えば、特許文献１、特許文献２を参照）。
【０００３】
さらに、ネットワークを構成する物理ネットワークをそのまま使用するのではなく、管理又は安全性の確保を目的として、物理ネットワーク上に仮想ネットワークを構築して使用する、ということが行われている。
【０００４】
ネットワークを仮想化したシステム（ネットワーク仮想化システム）では、物理ネットワークの上に、１つ又は複数の仮想ネットワークを構築することできる。さらに、構築された仮想ネットワークは互いに影響を与えることなく動作することができる。そのため、例えば、同じ物理ネットワーク上においてネットワークの研究者が行うネットワークの実験と、ネットワークサービスの提供者が行うネットワークサービスの提供と、を相互に影響を与えずに行うことが可能となる。このようなネットワーク仮想化システムは、ネットワークの各分野において注目されている。
【０００５】
図１５に、ネットワーク仮想化システムの一般的な全体構成を示す。ネットワーク仮想化システムの実現は、アメリカのGENIプロジェクトや欧州のFIREプロジェクトなどにおいて研究開発されており、図１５は、これらの概要を示したブロック図である。ネットワーク仮想化システム９１は、コンピューティング資源を提供する複数の物理ノード９２と、それら物理ノード９２間を接続する物理リンク９３と、ドメイン管理装置９４と、を備えて構成されている。
【０００６】
図１５に示す例では、ネットワーク仮想化システム９１上に、仮想ネットワーク９５を構築している。仮想ネットワーク９５は、物理ネットワークと同様に、ネットワークノードとネットワークリンクから構成される（以下、仮想ネットワーク上のネットワークノードと、ネットワークリンクを、仮想ノード９６と、仮想リンク９７とそれぞれ称する。）。
【０００７】
図１５では、仮想ネットワーク９５の各仮想ノード９６に対して、物理ノード９２の資源がそれぞれ割り当てられている。物理ノード９２上では複数の仮想マシンが動作しており、それら複数の仮想マシンを各仮想ノード９６に対してそれぞれ割り当てることで、仮想ノード９６への資源の割り当てが実現されている。
【０００８】
また、図１５では図示を省略するが、仮想ノード９６間を結ぶ仮想リンク９７についても、ネットワーク仮想化システム９１上の物理ネットワーク資源が割り当てられている。この仮想リンク９７への割り当ては、一般には、GRE(Generic Routing Encapsulation)、IPSec、MPLS(Multi Protocol Label Switching)などのトンネリング技術やVLANなどを用いて実現されている。
【０００９】
ドメイン管理装置９４は、ネットワーク仮想化システム９１全体の物理ノード９２及び物理リンク９３のリソースを管理する。ドメイン管理装置９４は、仮想ネットワーク９５の作成要求を設定端末９８から受けた場合、その作成要求に基づき、物理ノード９２及び物理リンク９３のリソース割り当てを決定し、各物理ノード９２に対して、仮想ノードへのＶＭの割り当て及び仮想リンクの作成・割り当て指示を行う。そして、ドメイン管理装置９４は、各物理ノード９２での割り当て完了を確認すると、仮想ネットワーク割り当て結果を設定端末９８に通知する。
【００１０】
設定端末９８は、仮想ネットワーク９５を作成する場合、ドメイン管理装置９４に仮想ネットワーク定義を入力する。仮想ネットワーク定義とは、仮想ノード９６及び仮想リンク９７として確保したい資源と、構築したい仮想ネットワーク９５のトポロジーと、を記載したものであり、様々な形式のものが利用されている。仮想ネットワーク定義の具体例は、非特許文献１のProtoGENI RSpecなどに公開されている。
【００１１】
図１６に、非特許文献１に基づく仮想ネットワーク定義の例を示す。図１６に示す仮想ネットワーク定義１３において、仮想ノード９６の定義（仮想ノード定義１３１乃至仮想ノード定義１３３）を点線枠を用いて囲んで示し、XMLの<node>から</node>を用いて挟まれた部分とする。仮想ノード９６の定義は、仮想ノードの識別子を表すvirtual_id属性と、仮想ノードの種別を表す<node_type>要素と、仮想ノードのネットワークインタフェース（以下、単に仮想インタフェースと称する。）の定義である<interface>と、を含んでいる。
【００１２】
仮想インタフェースは、仮想インタフェースの個数分が定義される。図１６の例では、Node-AからNode-Cの各仮想ノードは、いずれも２つの仮想インタフェースを持つ。このため、各々の仮想ノード定義において、仮想インタフェースの定義<interface>が２つずつ存在する。仮想インタフェースの名前は、XMLの<interface>要素の属性virtual_idを用いて示される。図１６の例では、Node-Aは、"VIF-A0"と"VIF-A1"という名前の仮想インタフェースを持つ。
【００１３】
仮想ネットワーク９５の仮想ノード９６間を接続する仮想リンク９７は、<link>要素を用いて定義される。上述のProtoGENI RSpecでは、仮想リンク９７の定義は、両端の仮想ノード９６の仮想インタフェースを指定する形に基づいて定義される。図１６の仮想ネットワーク定義１３では、仮想リンクLink-ABは、Node-Aの仮想インタフェースVIF-A0とNode-Bの仮想インタフェースVIF-B1とを接続する。
【００１４】
上述したように、ドメイン管理装置９４は、仮想ネットワーク定義を設定端末９８から受信すると、受信した仮想ネットワーク定義の解釈を行う。そして、ドメイン管理装置９４は、仮想ネットワーク９５の作成に必要となる仮想ノード９６及び仮想リンク９７について、その仮想ノード９６などに割り当てる物理ノード９２及び物理リンク９３のリソースを、物理ノード９２などの空きリソースや、要求された品質要件などに基づき決定する。
【００１５】
次に、ドメイン管理装置９４は、各物理ノード９２に対して、仮想ノード９６へのリソース割り当てを指示する。物理ノード９２は、仮想ノード９６の割り当て要求を受信した場合、受信した仮想ノードの定義に基づき、物理ノード９２上の未使用の仮想マシン(ＶＭ)を仮想ノード９６に割り当て、その割り当て結果を、ドメイン管理装置９４に返す。ドメイン管理装置９４は、仮想ネットワーク定義に関して、リソース割り当て対象として決定した物理ノード９２以外の各物理ノード９２についても、同様にして仮想ノード９６へのリソース割り当てを指示し、その割り当て要求が返ってくるのを待つ。
【００１６】
また、ドメイン管理装置９４は、仮想リンク９７の割り当てに関しても、物理リンク９３のリソースの割り当て指示を関連する物理ノード９２などに同様に行い、割り当て要求が返ってくるのを待つ。
【００１７】
ドメイン管理装置９４は、仮想ネットワーク定義に関して、仮想ネットワーク９５の作成に必要な仮想ノード９６及び仮想リンク９７のリソースが全て確保され、仮想ネットワーク９５が構築されると、仮想ネットワーク割り当て結果を設定端末９８に通知する。
【００１８】
仮想ネットワーク割り当て結果についても、様々なデータ形式を用いて表現される。図１７に、非特許文献２において公開されている、割り当て結果の一例を示す。なお、説明の便宜のため、図１７に示す結果では、ある一つの仮想ノードNode-Aの結果を抽出して示している（図１７では、仮想ノード情報１４０として示す、点線枠を用いて示す範囲）。
【００１９】
図１７の仮想ノード情報１４０は、仮想ノードNode-Aに関する割り当て結果を示している。仮想ノード識別子１４１は、仮想ノード情報１４０が、仮想ネットワーク定義に定義された仮想ノードNode-Aに対応する割り当て結果である、ことを示している。仮想インタフェース情報１４２、１４３は、Node-Aの仮想インタフェースに対応する割り当て結果である。
【００２０】
仮想インタフェース（仮想インタフェース１４２、１４３）では、<component_id>と</component_id>とに挟まれた範囲に、仮想マシンの仮想ＮＩＣの割り当てが含まれており、<virtual_id>と</virtual_id>とに挟まれた範囲に、仮想インタフェースの割り当てが含まれている。各々の仮想インタフェースには仮想マシンのNetwork Interface Card（ＮＩＣ）が割り当てられ、仮想マシンのＮＩＣ"eth1"が仮想インタフェースVIF-A0に対応し、仮想マシンのＮＩＣ"eth0"が仮想インタフェースVIF-A1に対応していることを示す。
【００２１】
仮想ネットワーク９５に接続する仮想ノード９６で動作するプログラムは、仮想インタフェース情報１４２又は仮想インタフェース情報１４３を参照し、仮想マシン上のどの仮想ＮＩＣに仮想インタフェースが対応しているかを知ることができる。
【００２２】
このようにして、図１５に示したネットワーク仮想化システム９１では、設定端末９８からの要求を受けたドメイン管理装置９４が物理ノード９２を設定することで、仮想ネットワーク９５を構築することができる。
【００２３】
なお、以下では、仮想ネットワーク定義における仮想ノード９６のネットワークインタフェースを「仮想インタフェース」と称し、仮想ノード９６に対して割り当てられた仮想マシンのネットワークインタフェースカード（ＮＩＣ）を「仮想ＮＩＣ」と称する。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２００５−１９７８２６号公報
【特許文献２】特開２００９−３０２８４７号公報
【特許文献３】特開２００９−２１２６１７号公報
【非特許文献】
【００２５】
【非特許文献１】"RSpecExample-ProtoGENI"，http://www.protogeni.net/trac/protogeni/wiki/RSpecExamples#LinkRequest
【非特許文献２】"RSpecManifestExample-ProtoGENI"，http://www.protogeni.net/trac/protogeni/wiki/RSpecManifestExample
【発明の概要】
【発明が解決しようとする課題】
【００２６】
一般に、どのような名前を用いてＮＩＣが参照されるかは、仮想マシンに限らず、コンピュータのオペレーティングシステム(ＯＳ)に応じて異なる。さらに、ＮＩＣの名前は、ＯＳ起動時のＮＩＣの認識順序などにも依存して異なるが、ＯＳ起動時のＮＩＣの認識順序は起動毎に異なり、認識順序は決まってもいない。
【００２７】
このように、仮想マシンで動作するＯＳがＮＩＣの名前を設定したときには、そのＮＩＣの名前は、ＯＳが立ち上がった後に確定することになる。例えば、ＮＩＣが２枚装備されたコンピュータにおいて、ＯＳの起動時に、２つのＮＩＣに対してeth0，eth1という名前がそれぞれ割り当てられたとすると、２枚のＮＩＣのうち、どちらのＮＩＣにeth0が対応したのかは、ＯＳがＮＩＣを認識した順序などに依存する。
【００２８】
従って、本発明に関連するネットワーク仮想化システム９１では、以下に示すような課題があった。
仮想ネットワークに割り振られた仮想マシンで動作するプログラムは、仮想ネットワークを利用するために、仮想ネットワークにおける仮想インタフェースと、仮想ＮＩＣの名前（デバイス名）と、の対応を知ることが必要である。しかし、一般的な仮想マシンで動作するプログラムは、仮想インタフェースと仮想ＮＩＣとの対応を知ることはできない。そのため、ネットワーク仮想化システム９１の物理ノードは、仮想ネットワークの割り当て結果、特に、仮想インタフェースと対応する仮想ＮＩＣの名前を、仮想マシンで動作するプログラムに知らせる必要がある、という課題があった。
【００２９】
また、ネットワーク仮想化システム９１の物理ノードにおいて、仮想インタフェースと仮想ＮＩＣとの対応関係は、仮想マシンで動作するＯＳの起動が完了するまでは確定しない。そのため、ネットワーク仮想化システム９１の物理ノードは、仮想マシンで動作するＯＳが起動するまでの間は、ドメイン管理装置９４に設定結果を回答することができない、という課題があった。
【００３０】
また、仮想マシンで動作するＯＳの起動が必要であるために、ネットワーク仮想化システム９１において、仮想ネットワークの作成を予約することができない、という課題があった。
【００３１】
なお、本発明に関連する他の技術として、特許文献３には、技術仮想マシンの仮想ＮＩＣにＭＡＣアドレスを割り当てる機能が開示されているが、仮想マシンの仮想ＮＩＣに割り当てるＭＡＣアドレスをホストＯＳ（サーバ）が指定することを開示しているにすぎず、上述した課題を解決するものではない。
【００３２】
本発明の目的は、上記課題を解決し、仮想ネットワークの割り当て結果を参照せずに、仮想マシンの起動を待たなくとも、仮想インタフェースと仮想ＮＩＣとの対応関係を把握できる、ネットワーク仮想化システムを提供することである。
【課題を解決するための手段】
【００３３】
本発明の第一の態様に係るネットワーク仮想化システムは、ネットワークを構成する物理ノードと、仮想ネットワークの仮想ノード及び仮想リンクの設定を前記物理ノードに対して指示するドメイン管理装置と、を備え、前記物理ノードは、前記ドメイン管理装置からの指示に含まれる前記仮想ノードの定義に基づき前記仮想ノードに対して仮想マシンを割り当てる場合に、前記仮想マシンの起動前に、前記仮想ノードの定義に含まれる情報と、前記仮想マシンに関する情報と、を対応付ける設定を、前記仮想マシン上で起動されるオペレーティングシステムの設定ファイルに書き込み、その後、前記仮想マシンを起動することを特徴とするものである。
【００３４】
これにより、仮想ネットワーク割り当て結果を参照せずに、仮想マシンの起動を待たなくとも、仮想ノード割り当て要求に含まれる情報と、仮想マシンに関する情報と、の対応関係を把握できる。
【００３５】
本発明の第二の態様に係る物理ノードは、仮想ノード割り当て要求を受信し、当該割り当て要求された仮想ノードの定義を解釈する仮想ノード定義解釈部と、前記仮想ノード定義解釈部の結果を受け、前記仮想ノードに割り当てるリソースを確認し、仮想マシンを割り当てるリソース割り当て部と、前記仮想マシンの仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当てる仮想マシンパラメータ生成処理部と、前記仮想マシンの起動前に、前記仮想ノード割り当て要求に含まれる情報と、前記仮想マシンに関する情報と、を対応付ける設定を、前記仮想マシンの仮想ディスク内の、前記仮想マシン上で起動されるオペレーティングシステムの設定ファイルに書き込む仮想ディスク操作処理部と、前記仮想マシンの実行制御を行う仮想マシンモニタ部と、を備えるものである。
【００３６】
これにより、仮想ネットワーク割り当て結果を参照せずに、仮想マシンの起動を待たなくとも、仮想ノード割り当て要求に含まれる情報と、仮想マシンに関する情報と、の対応関係を把握できる。
【００３７】
本発明の第二の態様に係る仮想マシンにおける仮想インタフェース識別方法は、ネットワークを構成する物理ノードが、仮想ノードが保持する仮想インタフェースの定義を含む、仮想ノード割り当て要求を受信し、当該割り当て要求された仮想ノードの定義を解釈するステップと、前記物理ノードが、前記仮想ノード定義解釈ステップの結果を受け、前記仮想ノードに割り当てるリソースを確認し、仮想マシンを割り当てるステップと、前記物理ノードが、前記仮想ノード割り当て要求に含まれる前記仮想インタフェース各々に対して、前記仮想マシンの仮想ＮＩＣを一つずつ対応付け、前記仮想ＮＩＣのＭＡＣアドレスに対して、前記仮想マシン内で少なくとも一意な値を割り当てるステップと、前記物理ノードが、前記仮想マシンの起動前に、前記仮想ノード割り当て要求に含まれる前記仮想インタフェースと、前記仮想マシンの前記仮想ＮＩＣに割り当てたＭＡＣアドレスと、を対応付けるルールを、前記仮想マシンの仮想ディスク内の、前記仮想マシン上で起動されるオペレーティングシステムのインタフェースマッピング手段の設定ファイルに書き込むステップと、を有することを特徴とするものである。
【００３８】
これにより、仮想ネットワーク割り当て結果を参照せずに、仮想マシンの起動を待たなくとも、仮想インタフェースと仮想マシンにおける仮想ＮＩＣとの対応関係を把握できる。
【発明の効果】
【００３９】
本発明によれば、仮想ネットワーク割り当て結果を参照せずに、仮想マシンの起動を待たなくとも、仮想インタフェースと仮想マシンにおける仮想ＮＩＣとの対応関係を把握できる、ネットワーク仮想化システム、物理ノード及び仮想マシンにおける仮想インタフェース識別方法を提供することができる。
【図面の簡単な説明】
【００４０】
【図１】実施の形態１に係るネットワーク仮想化システムを示すブロック図である。
【図２】実施の形態１に係る仮想ネットワークの構成例である。
【図３】実施の形態１に係る物理ノードの構成を示す図である。
【図４】実施の形態１に係るリソース割り当て部の動作フローを示す図である。
【図５】実施の形態１に係るＶＭパラメータ生成部の動作フローを示す図である。
【図６】実施の形態１に関る仮想ＭＡＣアドレス対応表の一例を示す図である。
【図７】実施の形態１に係る仮想ディスク制御部の動作フローを示す図である。
【図８】実施の形態１に係るインタフェースマッピング手段の設定ファイルの一例（参考URL１の場合）を示す図である。
【図９】実施の形態１に係るインタフェースマッピング手段の設定ファイルの一例例（参考URL２の場合）を示す図である。
【図１０】実施の形態１に係る仮想マシンの起動パラメータの一例を示す図である。
【図１１】第一の実施の形態に係る仮想ネットワーク割り当て結果の一例を示す図である。
【図１２】実施の形態１に係る仮想ノード割り当て結果の一例を示す図である。
【図１３】実施の形態１に係る仮想ノードの定義の一例を示す図である。
【図１４】実施の形態１に係る仮想ノード"Node-A"に対応する仮想マシンの仮想ＮＩＣを示す図である。
【図１５】一般的なネットワークシステムの一例を示すブロック図である。
【図１６】一般的な仮想ネットワーク定義の一例を示す図である。
【図１７】一般的な仮想ネットワーク割り当て結果の一例を示す図である。
【図１８】本発明の原理を説明するための図である。
【発明を実施するための形態】
【００４１】
本発明の実施の形態について説明するのに先立ち、図１８を参照して本発明の原理について説明する。
図１８では、ネットワーク仮想化システム５０１は、ネットワークを構成する物理ノード５２１乃至物理ノード５２６と、ドメイン管理装置５１１と、を備えている。
【００４２】
ドメイン管理装置５１１は、仮想ネットワーク５０２、５０３の仮想ノード及び仮想リンクの設定を、物理ノード５２１乃至物理ノード５２６に対して指示する。
【００４３】
物理ノード５２１乃至物理ノード５２６は、ドメイン管理装置５１１からの指示に含まれる仮想ノードの定義に基づき仮想ノードに対して仮想マシンを割り当てる。物理ノード５２１乃至物理ノード５２６は、仮想マシンの起動前に、仮想ノードの定義に含まれる情報と、仮想マシンに関する情報と、を対応付ける設定を、仮想マシン上で起動されるオペレーティングシステムの設定ファイルに書き込み、その後、仮想マシンを起動することを特徴とする。
【００４４】
実施の形態１．
以下、図面を参照して本発明の実施の形態について説明する。以下では、本実施の形態に係るネットワークシステム全体の構成、物理ノードの構成、物理ノードの動作の順に説明する。なお、以下の説明では、仮想ネットワーク上のノードを単に仮想ノードと称し、仮想ネットワーク上のリンクを単に仮想リンクと称する。
【００４５】
＜ネットワークシステム全体の構成＞
図１は、本実施の形態に係るネットワーク仮想化システム１を含む、ネットワークシステム４の全体構成の一例を示すブロック図である。
【００４６】
ネットワークシステム４は、ネットワーク仮想化システム１と、設定端末３１と、を含んでいる。
【００４７】
設定端末３１は、ネットワーク仮想化システム１を実現するため、図示しない装置、又は、システム管理者の指示に基づき、仮想化ネットワークの作成指示をネットワーク仮想化システム１に送る。仮想化ネットワークの作成指示は、後述する仮想ネットワーク定義１３を含んでいる。
【００４８】
ネットワーク仮想化システム１は、設定端末３１からの指示を受け取り、物理ノード（物理ノード２１乃至物理ノード２６）及び物理リンク５１のリソースを用いて、仮想ノード及び仮想リンクを含む仮想ネットワーク（仮想ネットワーク２及び仮想ネットワーク３）を構築する。ネットワーク仮想化システム１は、仮想ネットワークの構築結果を設定端末３１に返却する。仮想ネットワークの構築結果は、後述する仮想ネットワーク割り当て結果１４を含んでいる。仮想ネットワーク２及び仮想ネットワーク３の構築の詳細については後述する。なお、図１では、物理ノードと仮想ノードとの対応の一例を、点線を用いて示している。
【００４９】
図２を参照して、仮想ネットワーク２についてより詳細に説明する。図２は、図１に示した仮想ネットワーク２の構成の一例をより詳細に示す図である。
一般的に、仮想ネットワークは、２つ以上の仮想ノードと１つ以上の仮想リンクと、を含んでいる。また、各仮想ノードは、仮想リンクに接続するために、１つ以上の仮想ＮＩＣ（Network interface Circuit又はCard）を含んでいる。仮想ノードは、仮想リンクを使用して通信する。
【００５０】
図２では、３つの仮想ノード及び３つの仮想リンクを備えた仮想ネットワーク２の構成例を示している。例えば、仮想ノード７１（Node-A）は、仮想ＮＩＣ（VIF-A0）と仮想リンク８１(Link-AB）を介して仮想ノード７２(Node-B）と接続し、仮想ＮＩＣ(VIF-A1)と仮想リンク８３（Link-CA）を介して仮想ノード７３（Node-C）と接続する。仮想ノード７２と仮想ノード７３も、仮想リンク８２（Link-BC）を介して接続する。ただし、本実施の形態に係る仮想ネットワーク２は、仮想リンクを含まない、いわゆるスタンドアローン（stand-alone）の仮想ノードを含んでもよい。
【００５１】
図１に戻って、ネットワーク仮想化システム１についてより詳細に説明する。
ネットワーク仮想化システム１は、ドメイン管理装置１１と、１つ以上の物理ノード（物理ノード２１乃至物理ノード２６）と、物理リンク５１と、を含んでいる。
【００５２】
ドメイン管理装置１１は、仮想ネットワークの設定を設定端末３１から受け取り、物理ノード２１乃至物理ノード２６に指示を出し、ネットワーク仮想化システム１に対して要求された仮想ネットワークを構築する。ドメイン管理装置１１は、設定端末３１に構築結果の返却も行う。
【００５３】
ただし、ドメイン管理装置１１が行う設定は、これに限定されない。ドメイン管理装置１１は、例えば、仮想ネットワーク上の仮想の中継リンクとなる物理ノード（つまり、仮想ノード）の割り当ては行わないものの、仮想リンクを割り当てる物理ノードに対して、仮想リンクの割り当ての指示も行う。
【００５４】
物理リンク５１は、物理ノード２１乃至物理ノード２６を接続する。また、物理リンク５１のリソースが、仮想リンクに割り振られる。なお、本実施の形態に係る物理リンク５１は、一般的なネットワークのリンクを使用すればよい。また、物理リンク５１は、有線又は無線のいずれでもよく、有線と無線とが混在していてもよく、接続方法にも制限はない。そのため、ここでは、物理リンク５１についての詳細な説明を省略する。
【００５５】
設定経路６１は、ドメイン管理装置１１と物理ノード２１乃至物理ノード２６との間の通信の経路である。ドメイン管理装置１１は、物理ノード２１乃至物理ノード２６に対して、設定経路６１を介して設定の指示を行うと共にその結果を受け取る。図１では、説明の便宜のために、物理リンク５１とは別に設定経路６１を示しているが、これに限定されず、物理リンク５１の一部又は全部を設定経路６１として使用してもよい。なお、設定経路６１についても、一般的なネットワークを使用すればよいため、ここでは、その詳細な説明を省略する。
【００５６】
物理ノード２１乃至物理ノード２６は、物理リンク５１を用いて相互に接続され、物理ネットワークを構成している。物理ノード２１乃至物理ノード２６は、接続する物理リンク５１の個数には制限がなく（ただし、１つ以上に接続する）、物理リンク５１を用いて他の物理ノードに接続されていればよい。図１では、一例として、物理ノード２３及び物理ノード２５は３つの物理リンク５１に接続し、物理ノード２１、２２、２４、及び２６は２つの物理リンク５１に接続している。
【００５７】
さらに、物理ノード２１乃至物理ノード２６では、ドメイン管理装置１１の指示に基づき、物理ノードの資源を割り当てた仮想マシン（以下、ＶＭ(Virtual Machine)と称する場合がある。）が動作している。この仮想マシン上では、オペレーティングシステム（以下、ＯＳ(Operating System)と称する。）及びアプリケーションプログラム（Application Program、以下、APプログラムと称する。）が動作している。物理ノード２１乃至物理ノード２６は、この仮想マシンを用いて仮想ノードを実現する。
【００５８】
ネットワーク仮想化システム１は、このような仮想ノードと、物理リンク５１と、に基づく仮想リンクを用いて、仮想ネットワーク（例えば、図１に示す仮想ネットワーク２）を実現している。
【００５９】
図１では、一例として、物理ノード２１、２６上で１個、物理ノード２３上で３個、物理ノード２４上で２個、その他の物理ノード上で０個の仮想マシンがそれぞれ動作している。なお、図１では、本実施の形態に係る仮想マシンと仮想ネットワークの仮想ノードとの割り当てに関して、その一例として、それらの対応関係を点線を用いて示している。
【００６０】
本実施の形態に係る物理ノード２１乃至物理ノード２６は、ドメイン管理装置１１からの指示を、個別に受けてもよく、複数の物理ノードが共通の指示を受けてもよい。また、本実施の形態に係るネットワーク仮想化システム１に含まれる物理ノードの個数は６に限定されず、５以下でも、７以上でもよい。さらに、ネットワーク仮想化システム１の上に構築される仮想化ネットワークの個数も２つに限定されず、１つでも良く、３以上でもよい。
【００６１】
＜物理ノードの構成＞
次に、図３を参照して、物理ノードの構成について説明する。なお、本実施の形態では、ネットワーク仮想化システム１の物理ノード２１乃至物理ノード２６はいずれも同じ構成を有するものとして説明するが、必ずしも同じ構成の装置で実現する必要はない。物理ノード２１乃至物理ノード２６は、以降で説明する動作を実現することができれば、別の構成の装置（ノード）としてもよい。以下では、一例として、物理ノード２１を使用して説明する。
【００６２】
図３は、本実施の形態に係る物理ノード２１の構成の一例を示す図である。なお、以下では、説明の便宜のため、サーバ装置のような一般的なコンピュータ装置として物理ノード２１を説明するが、これに限られるわけではない。
【００６３】
物理ノード２１は、物理ＮＩＣ４１と、物理ＮＩＣ４２と、演算装置４３と、記憶装置４４と、を含んでいる。なお、以降の説明において、２種類の動作を行う物理ＮＩＣを説明する便宜のため、図３に示す物理ノード２１は２つの物理ＮＩＣを備えている。本実施の形態に係る物理ノード２１の物理ＮＩＣは、２つに限定されず、１つでも、３つ以上でもよい。
【００６４】
物理ＮＩＣ４１及び物理ＮＩＣ４２は、物理リンク５１を介して他の装置と接続する。本実施の形態に係る物理ＮＩＣ４１及び物理ＮＩＣ４２は、接続先の制限がない。ただし、説明の便宜のため、物理ＮＩＣ４１がドメイン管理装置１１との接続を行い、物理ＮＩＣ４２が他の物理ノードと接続するものとして説明する。つまり、本実施の形態に係る仮想リンクは、物理ＮＩＣ４２に接続する物理リンク５１のリソースを使用して実現されるものとする。
【００６５】
演算装置４３は、図示しない情報処理部（例えば、CPU（Central Processing Unit））と記憶部を含み、物理ノード２１の処理を行う。より具体的には、演算装置４３は、後述する記憶装置４４に記憶されているプログラムを実行する。
【００６６】
記憶装置４４は、本実施の形態を実現するため、演算装置４３が実行するプログラムを記憶している。また、記憶装置４４は、仮想ディスク４７１、４７２を記憶する。記憶装置４４は、演算装置４３がプログラムを実行するために、その作業領域として使用されてもよい。
【００６７】
なお、図３では、記憶装置４４を１つの構成として示しているが、これに限定されず、複数の記憶装置を用いて構成してもよい。記憶装置４４は、メモリやディスクなどの記憶装置を用いて実現される。通常は、記憶装置４４上のプログラムがメモリに記憶され、仮想ディスク４７１、４７２がディスクに記憶されるが、本発明の記憶装置４４としては、任意の記憶装置を利用してよい。
【００６８】
本実施の形態に係る記憶装置４４上のプログラムには、ノード管理プログラム４４０と、仮想化制御プログラム４５１と、Guest OSプログラム４６１、４６２と、が含まれている。
【００６９】
ノード管理プログラム４４０は、仮想ノードを実現するためのプログラムである。ノード管理プログラム４４０は、ドメイン管理装置１１からの指示に基づき、仮想ノード及び仮想リンクへのリソースの割り当てを行い、また、仮想ノードを実現するための仮想マシンの起動及び廃棄を、後述する仮想化制御プログラム４５１に指示する。
【００７０】
このため、ノード管理プログラム４４０は、仮想ノード定義解釈処理機能と、リソース割り当て処理機能と、ＶＭパラメータ生成処理機能と、ＶＭ割り当て結果応答処理機能と、仮想ディスク操作機能と、を有している。ノード管理プログラム４４０は、これらの処理を別プログラムとしても良く、複数の処理を備えたプログラムとしてもよい。これらの処理の詳細については後述する。
【００７１】
なお、本実施の形態に係る物理ノード２１では、コンピュータで動作するプログラムとしてノード管理プログラム４４０を説明するが、これに限定されず、後述するノード管理プログラム４４０の各処理の一部又は全てを、同等に動作する装置又は回路を用いて構成してもよい。
【００７２】
仮想化制御プログラム４５１は、Hypervisorプログラムや仮想マシンモニタと呼ばれるプログラムに相当し、仮想マシンを実現するための制御プログラムである。仮想化制御プログラム４５１は、仮想マシンの起動パラメータを含んだ指示をノード管理プログラム４４０から受けて、仮想マシンの起動及び廃棄を行う。また、仮想化制御プログラム４５１は、仮想マシン（Guest OSプログラム４６１、４６２）を用いて、仮想ディスク４７１、４７２への読み書きの制御を行う。
【００７３】
物理ノード２１は、仮想化制御プログラム４５１が起動した仮想マシンを用いて、仮想ノードを実現する。また、仮想化制御プログラム４５１は、後述するＶＭ上のプログラム（Guest OSプログラム４６１、４６２）の起動及び廃棄を含んだ制御を行ってもよい。なお、本実施の形態に係る仮想化制御プログラム４５１は、一般的なHypervisorを使用すればよく、ここでは、その詳細な説明を省略する。
【００７４】
Guest OSプログラム４６１、４６２は、仮想化制御プログラム４５１が起動した仮想マシン内で動作するプログラムの例示である。仮想マシンが仮想ノードに割り当てられている場合、Guest OSプログラム４６１は、仮想ノードで動作しているプログラムとなる。
【００７５】
Guest OSプログラム４６１、４６２は、必要に応じて、仮想リンクを使用して他の仮想ノードで動作するプログラムと接続し、データの通信することができる。仮想リンクは、物理ＮＩＣ４２を用いて実現されている仮想ＮＩＣに接続している。なお、Guest OSプログラム４６１、４６２は、ループバック（loop-back）を使用して、同じ物理ノード２１のプログラムと接続してもよい。
【００７６】
本実施の形態においては、Guest OSプログラム４６１、４６２は、仮想マシン上で動作するＯＳ（以下、仮想マシンのＯＳ）である。Guest OSプログラム４６１は、記憶装置４４に保持された仮想ディスク４７１に対してデータの読み書きを行うことができる。Guest OSプログラム４６１の起動時には、仮想ディスク４７１に保持されたGuest OSプログラム４６１の設定ファイルが読み出され、Guest OSプログラムの動作モードなどの設定が行われる。
【００７７】
Guest OSプログラム４６１、４６２は、後述するインタフェースマッピング手段を持つ。インタフェースマッピング手段は、インタフェースマッピング手段の設定ファイルに基づき、仮想マシンの仮想ＮＩＣの設定を行う。インタフェースマッピング手段の設定ファイルは、仮想ディスクに保持されている。インタフェースマッピング手段の詳細は後述する。
【００７８】
ＶＭ上のプログラム４６１、４６２は仮想マシンのＯＳであり、仮想マシンのＯＳ上ではアプリケーションプログラムを動作させることができる。なお、このアプリケーションプログラムは一般的なプログラムを使用すればよく、説明が煩雑になるため、ここでは、図示及びその詳細な説明を省略する。なお、図３では、ＶＭ上のプログラムとして４６１、４６２の２つのみを示しているが、ＶＭ上のプログラムの個数は１つでも３つ以上でもよい。
【００７９】
なお、演算装置４３が、上述した記憶装置４４上の各プログラムを実行している。この関係を示すため、図３では、演算装置４３と各プログラムとの接続を、点線を用いて示している。また、演算装置４３は、上述した各プログラムを実行するため、その基盤となるオペレーティングシステムについても実行しているが、これは、一般的なプログラムを使用すればよく、また、説明が煩雑になるため、ここでは、その図示及び詳細な説明を省略する。
【００８０】
記憶装置４４に格納される仮想ディスク４７１、４７２は、仮想マシンにとって、物理サーバにおけるディスク装置に相当するものである。仮想マシン上で動作するプログラムから仮想ディスクへのアクセスは、仮想化制御プログラム４５１の制御に基づき行われる。
【００８１】
仮想化制御プログラム４５１を用いた制御により、ＶＭ上のプログラム４６１は仮想ディスク４７１に対してのみアクセスを行うことができ、ＶＭ上のプログラム４６２は仮想ディスク４７２に対してのみアクセスを行うことができる。図３では、一つの仮想マシンに対して一つの仮想ディスクを対応付けているが、一つの仮想マシンに対して複数の仮想ディスクを対応付けてもよい。
【００８２】
また、論理的にはＶＭ上のプログラム４６１、４６２と仮想ディスク４７１、４７２との間でデータの読み書きが行われるため、図３では、単純化のため、プログラム４６１、４６２と仮想ディスク４７１、４７２との間で直接データの読み書きが行われる形態として示している。
【００８３】
＜物理ノードの動作＞
次に、図４乃至図７を参照して、物理ノード２１の動作について説明する。なお、上述したとおり、仮想化制御プログラム４５１と、Guest OSプログラム４６１、４６２と、については一般的なプログラムを使用すればよい。そのため、ここでは、その動作の詳細な説明を省略し、以下では、ノード管理プログラム４４０について詳細に説明する。
【００８４】
ノード管理プログラム４４０は、上述した各機能をそれぞれ実現するため、仮想ノード定義解釈処理部４４１と、リソース割り当て処理部４４２と、ＶＭパラメータ生成処理部４４３と、ＶＭ割り当て結果応答処理部４４４と、仮想ディスク操作処理部４４５と、を含んでいる。以下、各処理部について順に説明する。
【００８５】
＜物理ノードの動作：仮想ノード定義解釈部＞
仮想ノード定義解釈処理部４４１は、物理ＮＩＣ４１を介して、仮想ノードの割り当て要求をドメイン管理装置１１から受信する。要求を受信した仮想ノード定義解釈処理部４４１は、割り当て要求された仮想ノードの定義を解釈する。そして、仮想ノード定義解釈処理部４４１は、要求された仮想ノードの定義を以降の処理で利用可能なデータ構造に変換し、リソース割り当て処理部４４２へと渡す。なお、本実施の形態に係る仮想ノードの定義のデータ形式は特に限定されず、一般的なデータ形式を使用すればよく、ここでは、データ形式に関しての詳細な説明を省略する。
【００８６】
＜物理ノードの動作：リソース割り当て処理部＞
リソース割り当て処理部４４２は、仮想ノード定義解釈処理部４４１からデータ変換後の仮想ノード定義を受け取ると、物理ノード２１におけるリソースを割り当てる。以下、図４に示すフローチャートを参照して、リソース割り当て処理部４４２の動作についてより詳細に説明する。
【００８７】
まず、リソース割り当て処理部４４２は、仮想ノードの定義を受け取ると、物理ノード２１において、仮想マシンに割り当て可能な物理リソース（例えば、CPU数、処理時間比率、又は、ワーク領域）の空き状況を確認する（Ｓ１００１）。次に、リソース割り当て処理部４４２は、仮想ノードのための仮想マシンに必要なリソースが、割り当て可能かどうかを判定する（Ｓ１００２）。割り当て可能な場合（Ｓ１００２でｙｅｓ）、リソース割り当て処理部４４２は、仮想ノード定義と割り当てた物理リソース量と、をＶＭパラメータ生成処理部４４３に渡す（Ｓ１００３）。
【００８８】
なお、リソース割り当て処理部４４２がＶＭパラメータ生成処理部４４３に渡す仮想ノード定義は、仮想ノードに割り当てた仮想インタフェース（以下、仮想ＩＦと称する場合がある。）の情報（例えば識別子）を含んでいる。仮想ノード定義が複数の仮想ＩＦの情報を含む場合には、どのような記載形式を用いて複数の仮想ＩＦの情報を含めてもよいが、本実施の形態では、処理の効率及び明確さを勘案して、連続して記載する形式を用いて複数の仮想ＩＦの情報を含んでいるものとする。
【００８９】
リソースの割り当てが不可能な場合（Ｓ１００２でｎｏ）、リソース割り当て処理部４４２は、割り当てるリソースが確保できなかったことを、ＶＭパラメータ生成処理部４４３に通知する（Ｓ１００４）。このように、リソース割り当て処理部４４２は、割り当てができない場合を含め、リソースの割り当て結果を、ＶＭパラメータ生成処理部４４３に通知する。
【００９０】
＜物理ノードの動作：ＶＭパラメータ生成処理部＞
ＶＭパラメータ生成処理部４４３は、リソースの割り当て結果を受け取ると、リソースの割り当て結果を基にＶＭパラメータの生成を行い、仮想ディスク操作処理部４４５への指示を行い、また、ＶＭ割り当て結果応答処理部４４４へ割り当て結果を通知する。以下、図５及び図６を参照して、ＶＭパラメータ生成処理部４４３の動作についてより詳細に説明する。
【００９１】
図５は、ＶＭパラメータ生成処理部４４３の動作の一例を示すフローチャートである。
まず、リソース割り当て処理部４４２から割り当て結果を受け取ったＶＭパラメータ生成処理部４４３は、リソース割り当てができたかどうかを確認する（S１１０１）。割り当てが可能な場合（S１１０１でｙｅｓ）、ＶＭパラメータ生成処理部４４３は、リソース割り当て処理部４４３から受け取った仮想ノード定義で定義された仮想インタフェース各々について、それら仮想インタフェースに対応する仮想ＮＩＣに割り当てるＭＡＣアドレス（以下、仮想ＮＩＣに割り当てるＭＡＣアドレスを、単に「仮想ＭＡＣアドレス」と称する場合がある。）を決定する（S１１０２）。
【００９２】
仮想ノード定義に複数の仮想インタフェースが定義されている場合、複数の仮想ＮＩＣに仮想ＭＡＣアドレスを割り当てる必要がある。本発明においては、仮想ＭＡＣアドレスは、一つの仮想マシンにおける複数の仮想ＮＩＣ間で重複しないＭＡＣアドレスであればよい。もちろん、物理ノード２１内で複数の仮想マシンが動作する場合には、複数の仮想マシンの仮想ＮＩＣに割り当てるＭＡＣアドレスが、物理ノード２１内で重複しない値となるようにしてもよい。
【００９３】
S１１０２の結果、仮想ノード定義で定義された仮想インタフェース各々について、仮想インタフェースと対応する仮想ＭＡＣアドレスの組みのリストが得られる（以下、このリストを、単に「仮想ＭＡＣアドレス対応表」と称する。）。
【００９４】
図６は、仮想ＭＡＣアドレス対応表の一例である。仮想ＭＡＣアドレス対応表の各エントリは、仮想インタフェース識別子と、仮想ＭＡＣアドレスと、の組みを用いて構成される。なお、図６では、仮想インタフェースを識別できる情報として仮想インタフェース識別子を用いているが、仮想インタフェースを識別できる情報であればどのような情報を用いてもよい。また、仮想ＭＡＣアドレス対応表のエントリ数は、仮想ノード定義で定義された仮想インタフェースの個数に等しい。
【００９５】
続けて、ＶＭパラメータ生成処理部４４３は、生成した仮想ＭＡＣアドレスと、仮想ノードの定義と、に基づき、起動パラメータ（ＶＭ起動パラメータ）を生成する（S１１０３）。起動パラメータ（ＶＭ起動パラメータ）は、仮想化制御プログラム４５１が仮想マシンを起動するために使用する。ＶＭ起動パラメータには、S１１０２で得られる仮想ＭＡＣアドレスのリストが含まれる。
【００９６】
なお、ＶＭパラメータ生成処理部４４３が生成するＶＭ起動パラメータに、仮想ＭＡＣアドレスのリストを含めることに代えて、後述の仮想ディスク操作処理部４４５が仮想化制御プログラム４５１にＶＭ起動パラメータを渡す際に、仮想ＭＡＣアドレスの情報を仮想ＭＡＣアドレス対応表から生成し、ＶＭ起動パラメータに含めるものとしてもよい。
【００９７】
ＶＭパラメータ生成処理部４４３は、生成した起動パラメータと仮想ＭＡＣアドレス対応表を仮想ディスク操作処理部４４５に渡す（S１１０４）。ここで、本実施の形態に係るＶＭパラメータ生成処理部４４３は、仮想ディスク操作処理部４４５に指示を行い、仮想ディスク操作処理部４４５からの応答を待たずに、次の処理を行う。ただし、ＶＭパラメータ生成処理部４４３は、以降で説明する処理と並行して、仮想ディスク操作処理部４４５からの応答を受け取り、例えば、エラー時などに再試行するような動作を行ってもよい。
【００９８】
次に、ＶＭパラメータ生成処理部４４３は、仮想ノードの割り当て結果を、ＶＭ割り当て結果応答処理部４４４に渡す（S１１０５）。なお、ＶＭパラメータ生成処理部４４３は、仮想ノードの割り当て結果をＶＭ割り当て結果応答処理部４４４に渡した後、生成した起動パラメータと仮想ＭＡＣアドレス対応表を仮想ディスク操作処理部４４５に渡して、仮想マシンの起動の指示を行うものとしてもよい。つまり、ＶＭパラメータ生成処理部４４３は、S１１０５とS１１０４との順番を入れ替えてもよい。
【００９９】
なお、リソース割り当て処理部４４２からの割り当て結果が不可の場合（S１１０１でｎｏ）、ＶＭパラメータ生成処理部４４３は、仮想ノードの割り当てができなかったことを、ＶＭ割り当て結果応答処理部４４４に渡す（S１１０６）。
【０１００】
このような動作に基づき、ＶＭパラメータ生成処理部４４３は、仮想ディスク操作処理部４４５への指示と、その指示に続く仮想化制御プログラム４５１を用いた仮想マシンの起動の指示と、ＶＭ割り当て結果応答処理部４４４への結果の通知と、を実行する。
【０１０１】
＜物理ノードの動作：ＶＭ割り当て結果応答処理部＞
ＶＭ割り当て結果応答部４４４は、割り当て結果を受け取ると、物理ＮＩＣ４１を介して、仮想ノード割り当て結果をドメイン管理装置１１に返す。このように動作することで、ノード管理プログラム４４０は、仮想ネットワークのリソースを物理ノード２１で確保する。
【０１０２】
＜物理ノードの動作：仮想ディスク操作処理部＞
仮想ディスク操作処理部４４５は、ＶＭパラメータと仮想ＭＡＣアドレス対応表をＶＭパラメータ生成処理部４４３から受け取ると、起動対象となる仮想マシン用の仮想ディスクを用意し、仮想ＭＡＣアドレス対応表に基づき仮想ディスクの書き換えを行い、仮想化制御プログラム４５１に対して仮想マシンの起動を指示する。以下、図７に示すフローチャートを参照して、仮想ディスク操作処理部４４５の動作をより詳細に説明する。
【０１０３】
まず、仮想ディスク操作処理部４４５は、ＶＭパラメータと仮想ＭＡＣアドレス対応表をＶＭパラメータ生成処理部４４３から受け取ると、起動対象となる仮想マシン用の仮想ディスクの準備を行う（Ｓ１２０１）。
【０１０４】
仮想ディスクをどのように準備するかは、一般的な方法を用いることができ、本発明では任意の方法を採用することができる。例えば、予め用意された仮想ディスクを、起動する仮想マシン専用としてそのまま利用してもよいし、ネットワーク上から仮想ディスクをダウンロードしてもよい。用意した仮想ディスクを保持する記憶装置４４は、物理ノード上のストレージなどの記憶装置や物理ノードが接続されたネットワーク上のストレージ装置など、ノード管理部プログラム４４０が動作する物理ノードからアクセスできる記憶装置であればどのような形態の装置でもよい。
【０１０５】
次に、仮想ディスク操作処理部４４５は、Ｓ１２０１で準備した仮想ディスクをオープンする（Ｓ１２０２）。仮想ディスク操作処理部４４５は、仮想ディスクのオープンに成功したかどうかを確認する（Ｓ１２０３）。
【０１０６】
仮想ディスクのオープンに成功するか否かに関しては、仮想ディスクのデータフォーマット及び仮想ディスク内のファイルシステムが、仮想ディスク操作処理部４４５がサポートする形式であった場合に、仮想ディスクのオープンに成功する。
【０１０７】
仮想ディスク内のデータ構造の読み書きを行う方法としては様々な方法が存在し、本発明ではどのような方法を用いてもよいが、例えば"libguestfs, tools for accessing and modifying virtual machine disk images"(http://libguestfs.org/)に公開されているプログラムを仮想ディスク操作処理部４４５から呼び出すことで、仮想ディスクのオープンを行えばよい。仮想ディスク操作処理部４４５は、仮想ディスクのオープンを行うことで、それ以降のＳ１２０４〜Ｓ１２０６の操作を行うことができる。
【０１０８】
仮想ディスクのオープンに成功した場合（Ｓ１２０３でＹｅｓ）、仮想ディスク操作処理部４４５は、仮想ディスク内のＯＳがインタフェースマッピング手段を持つかどうかを確認する（Ｓ１２０４）。
【０１０９】
ここで、Ｓ１２０４の動作の詳細を説明する前に、インタフェースマッピング手段について説明する。仮想マシン、物理マシンの別を問わず、最近のＯＳでは、特定のＭＡＣアドレスを持つＮＩＣに対して、予め定められたＮＩＣ名を付与する手段が提供されているものがある。どのＭＡＣアドレスを持つＮＩＣに対して、どのようなＮＩＣ名を割り当てるかを定めるルールは、ＯＳ起動ディスク内に格納された設定ファイルを用いて与えられる。一つの設定ファイルは、複数のルールを格納することができる。
【０１１０】
例えば、ＭＡＣアドレスが"AA:BB:CC:DD:EE:FF"のＮＩＣに対して"mynic"というＮＩＣ名を付与するというルールが設定ファイルに記載されていた場合、起動したマシンにＭＡＣアドレスが"AA:BB:CC:DD:EE:FF"のＮＩＣがあれば、そのＭＡＣアドレスを持つＮＩＣには"mynic"というＮＩＣ名が付与され、ＯＳ起動後は"mynic"という名前で該当ＮＩＣを参照することができる。
【０１１１】
インタフェースマッピング手段の具体例は、以下の参考URL１や参考URL２に公開されている。
参考URL１："Writing udev rules"，
http://www.reactivated.net/writing_udev_rules.html#example-netif
参考URL２："14.2. Interface Configuration Files"，
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s1-networkscripts-interfaces.html
【０１１２】
あるＯＳがインタフェースマッピング手段を提供しているかどうかを判定する方法としては、いくつかの方法が存在する。一つは、ＯＳ固有のファイルの存在を確認し、ＯＳのバージョンを確認する方法である。ＯＳのバージョンが分かれば、インタフェースマッピング手段が提供されているかどうかを判定できる。そのため、ＯＳ固有のファイルの存在を確認し、その中に含まれるバージョン番号を確認する方法が最も確実である。
【０１１３】
他にも、インタフェースマッピング手段を提供する実行ファイルが存在するかどうかを確認する方法もある。なお、インタフェースマッピング手段が当該ＯＳで提供されるかどうかを確認できる方法であれば、他にどのような方法を用いてもよい。
【０１１４】
仮想ディスク操作処理部４４５は、仮想ディスクのデータフォーマット及び仮想ディスク内のファイルシステムを解釈可能である。仮想ディスク操作処理部４４５は、仮想ディスク内のファイルシステムを参照し、上述したインタフェースマッピング手段の判定方法を用いることで、仮想ディスクに格納されたＯＳにおいてインタフェースマッピング手段が提供されているかどうかを判定する。
【０１１５】
仮想ディスク内のＯＳがインタフェースマッピング手段を提供している場合（Ｓ１２０４でＹｅｓ）、仮想ディスク操作処理部４４５は、インタフェースマッピング手段の設定ファイルに、仮想ＭＡＣアドレス対応表に基づいて書き込みを行う。具体的には、仮想ディスク操作処理部４４５は、仮想ＭＡＣアドレス対応表のエントリそれぞれについて、該当エントリの仮想ＭＡＣアドレスを持つＮＩＣに対して、ＮＩＣ名として仮想インタフェース識別子を割り当てるというルールを、インタフェースマッピング手段の設定ファイルに書き込む（Ｓ１２０５）。
【０１１６】
インタフェースマッピング手段の設定ファイルへのＮＩＣ名割り当てルールの書き込みが完了したら、仮想ディスク操作処理部４４５は、オープンしている仮想ディスクをクローズする（Ｓ１２０６）。最後に、仮想ディスク操作処理部４４５は、仮想化制御プログラム４５１にＶＭパラメータを渡して、仮想マシンの起動の指示を行う（Ｓ１２０７）。
以上で、ノード管理部プログラム４４０の動作の説明を終える。
【０１１７】
なお、上述したように、本実施の形態に係る各部が使用するデータの形式は特に限定されないが、参考として、以下の図８乃至図１３を参照して、いくつかのデータの例を示す。
【０１１８】
図８、図９は、インタフェースマッピング手段の設定ファイルの一例である。
図８は、参考URL１で公開されている方法を使用する場合の例である。この設定ファイルには、２つのインタフェースマッピングルールが含まれている。１つのルールとして、１行目には、仮想ＭＡＣアドレスとして"db:20:98:81:be:4b"を持つ仮想ＮＩＣには、"VIF-A0"という名前のＮＩＣ名を割り当てる、というルールが示されている。
【０１１９】
図９は、参考URL２で公開されている方法を使用する場合の例である。参考URL２で公開されている方法では、仮想インタフェース毎にインタフェースマッピング手段の設定ファイルを用意する必要があり、図９の例では、仮想インタフェースVIF-A0の設定ファイルと、VIF-A1の設定ファイルと、合計で２つの設定ファイルが記載されている。この方法では、HWADDR行で指定された仮想ＭＡＣアドレスを持つ仮想ＮＩＣに、DEVICE行で指定された仮想ＮＩＣ名が割り当てられる。
【０１２０】
図１０は、ＶＭパラメータ生成処理部４４３が作成する仮想マシンの起動パラメータの一例である。起動パラメータは、通知先の仮想化制御プログラム４５１に依存する。そのため、図１０に示す起動パラメータは一例を示すものであり、起動パラメータは、ここに記載の内容に限定されない。
【０１２１】
図１０に示す仮想マシン起動パラメータ１５０において、点線の枠を用いて囲む部分が、仮想ノードに定義された仮想ＮＩＣ定義１５１及び仮想ＮＩＣ定義１５２である。ここに示す例において、仮想ＭＡＣアドレスは、「nic.macaddr」を用いて指定されている。例えば、仮想ＮＩＣ定義１５１では、「nic.macaddr=db:20:98:81:be:4b」と設定されている。その他の起動パラメータは、上述したとおり仮想化制御プログラム４５１に依存するため、ここでは、その詳細な説明を省略する。
【０１２２】
図１１は、ＶＭ割当て結果応答処理部４４４がドメイン管理装置１１に返却する仮想ネットワーク２の割当て結果の一例を示す図である。
図１１に示す仮想ネットワーク割り当て結果１４４において、点線を用いて囲む部分が、仮想ノードNode-Aの割当て結果（仮想ノード情報１４５）である。図１１に示す割り当て結果は、ドメイン管理装置１１に応答するために必要な情報を備えていればよい。そのため、図１１では、一般的な割当て結果を示しており、ここでは、その他の情報についての詳細な説明を省略する。
【０１２３】
図１２は、図１１の点線を用いて囲んだ部分、つまり、仮想ノードの割当て結果の一例（仮想ノード情報１４５）である。図１２の結果と図１７に示した結果とを比較すると、図１２に示す割当て結果では、図１７の仮想インタフェース情報１４２及び仮想インタフェース情報１４３に相当する仮想インタフェースの情報を含んでいない。
【０１２４】
このような動作に基づき、物理ノード２１は、仮想ノードへの仮想マシンに対して、物理リソースの割当てを処理する。また、このような動作に基づき、物理ノード２１を含む本実施の形態に係るネットワーク仮想化システム１は、仮想ネットワーク２又は仮想ネットワーク３に対して、物理ネットワークのリソースの割り当てることができる。なお、本実施の形態では詳細な説明を省略したが、ドメイン管理装置１１は、物理ノード２１乃至物理ノード２６に対して、仮想リンクについても同様に指示を行い、リソースを確保する。
【０１２５】
最後に、Guest OSプログラム４６１の動作について説明する。
Guest OSプログラム４６１は、仮想化制御プログラム４５１からの指示に基づき仮想マシンが起動されると起動動作を開始し、仮想ディスク４７１に保持されたGuest OSプログラム４６１の設定ファイルを読み出し、Guest OSプログラム４６１の動作モードなどの設定を行う。
【０１２６】
Guest OSプログラム４６１がインタフェースマッピング手段を提供している場合には、Guest OSプログラムの起動処理の中でインタフェースマッピング手段が呼び出され、仮想ディスク４７１に保持されたインタフェースマッピング手段の設定ファイルに基づき、仮想マシンの仮想ＮＩＣのＮＩＣ名の設定が行われる。
【０１２７】
仮想ディスク操作処理部４４５は、Guest OSプログラム４６１のインタフェースマッピング手段の設定ファイルに、仮想マシン上での仮想ＮＩＣのＮＩＣ名についてのルールを書き込んでいる。すなわち、インタフェースマッピング手段の設定ファイルには、仮想インタフェース識別子を、仮想ＮＩＣのＮＩＣ名として割り当てる、というルールが書き込まれている。仮想インタフェース識別子は仮想ノード定義を用いて定義され、その仮想インタフェース識別子に対応する仮想マシン上での仮想ＭＡＣアドレスが存在するならば、その仮想ＭＡＣアドレスを持つ仮想マシン上の仮想ＮＩＣについて、仮想インタフェース識別子を仮想ＮＩＣのＮＩＣ名として割り当てる。
【０１２８】
このため、Guest OSプログラム４６１の起動が完了すると、仮想インタフェースに対応する仮想ＮＩＣのＮＩＣ名が、仮想インタフェース識別子となる。
【０１２９】
従って、仮想ノードに対して割り当てられた仮想マシン上のプログラムである、Guest OSプログラム４６１及びGuest OSプログラム４６１上で動作するアプリケーションプログラムでは、仮想ネットワーク割り当て結果を参照することなく、仮想ノード定義で定義された仮想インタフェース識別子を用いて、仮想インタフェースに対応する仮想ＮＩＣと特定することが可能となる。
【０１３０】
（第１の実施例）
次に、図１３及び図１４を参照して、本実施の形態に係る第１の実施例について説明する。なお、第１の実施例に係るネットワーク仮想化システム１の構成及び動作は、第１の実施の形態に係る構成及び動作と同等である。そのため、以下では、第１の実施の形態と同等の構成及び動作についての詳細な説明は適宜省略し、第１の実施例に特有の構成及び動作を中心に説明する。
【０１３１】
まず、本実施例の前提について整理する。
本実施例では、仮想ネットワークの定義は、図１６に示した定義とする。仮想ノードの定義は、図１６に例示した３つの定義のうち、上の仮想ノードの定義（Node-A）とする。仮想ネットワークの定義は、図１６に例示した定義とする。
【０１３２】
対象の物理ノードは、図３に示した物理ノード２１とする。つまり、ドメイン管理装置１１が、図１６に示した仮想ネットワークの定義を基に、物理ノード２１を用いて「Node-A」のリソースを確保すると決定し、図１３に示した仮想ノードの定義を物理ノード２１に渡すものとする。なお、図１３に示した「Node-A」は、２つの仮想ＩＦ（VIF-A0又はVIF-A1）が指定されている。
【０１３３】
また、仮想マシンを起動するための起動パラメータは、図１０に示したリストを使用する。なお、仮想ネットワークの割当て結果は、図１２に示す値とする。また、本実施例の説明では、仮想ネットワークのリソースは確保できたものとする。
【０１３４】
また、仮想マシン上で起動されるGuest OSは、インタフェースマッピング手段を提供しているものとする。提供されるインタフェースマッピング手段として、参考URL１に公開されている方法を使用するものとする。また、仮想マシンに対応する仮想ディスクのデータ構造は仮想ディスク操作処理部４４５が解釈可能であり、仮想ディスク操作処理部４４５は前記仮想ディスクをオープンできるものとする。
【０１３５】
次に、本実施例に係るネットワーク仮想化システム１の動作を説明する。
ドメイン管理装置１１は、設定端末３１から仮想ネットワーク２の設定（図１６）を要求された場合、依頼された仮想化ネットワークの定義１３を確認し、仮想ノードと仮想リンクのリソースを、物理ノード２１を用いて確保すると決定する。ドメイン管理装置１１は、リソースを確保するために、仮想ノードの定義（図１３）を物理ノード２１に送信する。
【０１３６】
物理ノード２１のノード管理プログラム４４０は、物理ＮＩＣ４１を介して仮想ノードの定義（図１３）を受け取り、リソースを確保し、物理ＮＩＣ４１を介して仮想ネットワークの割当て結果（図１１）をドメイン管理装置１１に返却する。以下、ノード管理プログラム４４０の各部の動作についてより詳細に説明する。
【０１３７】
仮想ノード定義解釈処理部４４１は、物理ＮＩＣ４１を介して受け取った仮想ノードの定義を、ノード管理プログラム４４０が使用する内部表現に変換し、変換した仮想ノードの定義をリソース割当て処理部４４２に渡す。
【０１３８】
リソース割当て処理部４４２は、受け取った仮想ノードの定義を基に物理ノード２１の物理リソースを割り当て、確保できた物理リソースの量を、ＶＭパラメータ生成処理部４４３に渡す。
【０１３９】
ＶＭパラメータ生成処理部４４３は、仮想ノード定義で定義された仮想インタフェースについて、その仮想インタフェースに対応して割り当てる仮想マシンの仮想ＮＩＣのＭＡＣアドレスの決定と、仮想マシンの起動のための起動パラメータの生成を行う。この結果、生成された仮想ＭＡＣアドレス対応表は、図６に示したものになったとする。ＶＭパラメータ生成処理部４４３は、ＶＭ起動パラメータと仮想ＭＡＣアドレス対応表を仮想ディスク操作処理部４４５に渡した後、仮想ノード割り当て結果を割り当て結果応答部４４４に通知する。
【０１４０】
ＶＭ割当て結果応答処理部４４４は、物理ＮＩＣ４１を介して、仮想ネットワーク割当て結果（図１２）をドメイン管理装置１１に返却する。ドメイン管理装置１１は、仮想ネットワーク割当て結果（図１１）を物理ノード２１から受け取る。
【０１４１】
ドメイン管理装置１１は、依頼された全ての仮想ネットワークに関してリソースを同様に確保する。ドメイン管理装置１１は、設定端末３１から依頼された全ての仮想化ネットワークの設定が完了すると、仮想ネットワーク割当て結果を設定端末３１に通知する。
【０１４２】
物理ノード２１では、ノード管理部プログラム４４０からドメイン管理装置１１に対する仮想ノード割り当て結果の通知と並行して、次の動作が行われる。
【０１４３】
仮想ディスク操作処理部４４５が、ＶＭ起動パラメータと仮想ＭＡＣアドレス対応表をＶＭパラメータ生成処理部４４３から渡された場合の動作を、上述した図７を参照して説明する。なお、図７において、起動する仮想マシンに対応する仮想ディスク４７１は、仮想ディスク操作処理部４４５がオープンできる形式であり、Ｓ１２０３でＹｅｓとなるため、Ｓ１２０４へと進む。
【０１４４】
Guest OSプログラム４６１がインタフェースマッピング手段を提供している場合には、例えば、仮想ディスク４７１に保持されているGuest OS特有のファイル内に格納されているGuest OSのバージョン番号を検査することで、仮想ディスク内のＯＳがインタフェースマッピング手段を持つと判定することができる（Ｓ１２０４でＹｅｓ）。
【０１４５】
Ｓ１２０５では、図６に示した仮想ＭＡＣアドレス対応表からインタフェースマッピングルールを作成し、作成したインタフェースマッピングルールを、仮想ディスク４７１内のインタフェースマッピング手段の設定ファイルに書き込む。その結果、設定ファイルは、図８に示した内容となる。
【０１４６】
続けて、仮想ディスク操作処理部４４５は、仮想ディスク４７１をクローズした後、図１０に示したＶＭ起動パラメータを仮想化制御プログラム４５１に渡して、仮想マシンの起動指示を行う。
【０１４７】
仮想化制御プログラム４５１は、図１０に示した起動パラメータに基づいて、仮想マシンを起動する。仮想マシン上では、Guest OSプログラム４６１の実行が開始される。
【０１４８】
Guest OSプログラム４６１が動作している仮想マシンは、図１０に例示した起動パラメータとともに起動される。そのため、仮想マシンは２つの仮想ＮＩＣを持ち、これらの仮想ＮＩＣのＭＡＣアドレスは、"db:20:98:81:be:4b"と"db:20:98:cd:09:1a"になる。
【０１４９】
インタフェースマッピング手段の設定ファイルは図８に例示したものとなっている。そのため、インタフェースマッピング手段は、ＭＡＣアドレスが"db:20:98:81:be:4b"である仮想ＮＩＣに対して"VIF-A0"というＮＩＣ名を割り当て、ＭＡＣアドレスが"db:20:98:cd:09:1a"である仮想ＮＩＣに対して"VIF-A1"というＮＩＣ名を割り当てる。つまり、Guest OSプログラム４６１が動作する仮想マシンの仮想ＮＩＣは、図１４に示した通りとなる。
【０１５０】
上述した動作を行うことで、Guest OSプログラム４６１が動作する仮想マシンの仮想ＮＩＣ"VIF-A0"、"VIF-A1"が、仮想ノード定義で定義された仮想インタフェースVIF-A0、VIF-A1にそれぞれ対応することが保証される。
【０１５１】
このため、仮想ノードに対して割り当てられた仮想マシン上のプログラムである、Guest OSプログラム４６１及びGuest OSプログラム４６１上で動作するアプリケーションプログラムは、仮想ノード定義で定義された仮想インタフェース識別子VIF-A0、VIF-A1を用いることで、仮想ネットワーク割り当て結果を参照することなく、仮想インタフェースに対応する仮想ＮＩＣを特定することが可能となる。
【０１５２】
なお、Guest OSプログラム４６２の動作についても差異はなく、Guest OSプログラム４６２もGuest OSプログラム４６１と同様に動作する。
【０１５３】
このようにして、第１の実施例に係るネットワーク仮想化システム１についても、第１の実施の形態と同様の効果を得ることが出来る。
【０１５４】
なお、リソース割り当て時の仮想マシン作成において、仮想マシンの各ＮＩＣ（仮想ＮＩＣ）に割り当てるＭＡＣアドレスの全体または一部を、仮想ネットワーク定義を用いて指定されたノードのポート名（インタフェース名）に基づいて決定し、仮想マシン内で仮想インタフェース名と仮想ＮＩＣに割り当てられたＭＡＣアドレスの対応関係の判定を行うことにより、仮想インタフェースの識別を行うことが考えられる。この場合、仮想マシン内で動作するＯＳなどの種別に依存せず適用可能となる。
【０１５５】
これに対して、本発明では、仮想マシン内で動作するＯＳが提供する手段であって、特定ＭＡＣアドレスを持つＮＩＣに対して予め定められた名前を付与する手段（インタフェースマッピング手段）の設定ファイルを、ホストＯＳ側で仮想マシンの起動前に、仮想マシン内で認識される仮想ＮＩＣの名前を「仮想ネットワーク定義に書かれた仮想インタフェース名」に設定することで、仮想インタフェースの識別を可能とする。これにより、仮想マシン内で動作するＯＳには依存するが、仮想マシン内での判定ロジックは一切不要となる。
【０１５６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【０１５７】
この出願は、２０１０年１２月２８日に出願された日本出願特願２０１０−２９１５００を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１５８】
１：ネットワーク仮想化システム
２、３：仮想ネットワーク
４：ネットワークシステム
１１：ドメイン管理装置
１３：仮想ネットワーク定義
１３１〜１３３：仮想ノード定義
１４：仮想ネットワーク割り当て結果
１４０：仮想ノード情報
１４１：仮想ノード識別子
１４２、１４３：仮想インタフェース情報
１４４：仮想ネットワーク割り当て結果
１４５：仮想ノード情報
１５０：仮想マシン起動パラメータ
１５１、１５２：仮想ＮＩＣ定義
２１〜１６：物理ノード
３１：設定端末
５１：物理リンク
６１：設定経路
７１〜７３：仮想ノード
８１〜８３：仮想リンク
４１、４２：物理ＮＩＣ
４３：演算装置
４４：記憶装置
４４０：ノード管理プログラム
４４１：仮想ノード定義解釈処理部
４４２：リソース割り当て処理部
４４３：ＶＭパラメータ生成処理部
４４４：ＶＭ割り当て結果応答処理部
４４５：仮想ディスク操作処理部
４５１：仮想化制御プログラム
４６１、４６２：Guest OSプログラム
４７１、４７２：仮想ディスク
９１：ネットワーク仮想化システム
９２：物理ノード
９３：物理リンク
９４：ドメイン管理装置
９５：仮想ネットワーク
９６：仮想ノード
９７：仮想リンク
９８：設定端末
【図１】
0005888331.tif 000002
【図２】
0005888331.tif 000003
【図３】
0005888331.tif 000004
【図４】
0005888331.tif 000005
【図５】
0005888331.tif 000006
【図６】
0005888331.tif 000007
【図７】
0005888331.tif 000008
【図８】
0005888331.tif 000009
【図９】
0005888331.tif 000010
【図１０】
0005888331.tif 000011
【図１１】
0005888331.tif 000012
【図１２】
0005888331.tif 000013
【図１３】
0005888331.tif 000014
【図１４】
0005888331.tif 000015
【図１５】
0005888331.tif 000016
【図１６】
0005888331.tif 000017
【図１７】
0005888331.tif 000018
【図１８】
0005888331.tif 000019