JP6232826B2 - 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置 - Google Patents

仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置 Download PDF

Info

Publication number
JP6232826B2
JP6232826B2 JP2013166861A JP2013166861A JP6232826B2 JP 6232826 B2 JP6232826 B2 JP 6232826B2 JP 2013166861 A JP2013166861 A JP 2013166861A JP 2013166861 A JP2013166861 A JP 2013166861A JP 6232826 B2 JP6232826 B2 JP 6232826B2
Authority
JP
Japan
Prior art keywords
virtual
network
router
machine
virtual router
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
JP2013166861A
Other languages
English (en)
Other versions
JP2015035776A (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 JP2013166861A priority Critical patent/JP6232826B2/ja
Priority to US14/336,272 priority patent/US9634930B2/en
Priority to EP14178159.1A priority patent/EP2849394A1/en
Publication of JP2015035776A publication Critical patent/JP2015035776A/ja
Application granted granted Critical
Publication of JP6232826B2 publication Critical patent/JP6232826B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置に関する。
IaaS(Infrastructure as a Service)は、コンピュータシステムの稼働に必要な基盤そのものを利用者に提供するサービスである。IaaSでは、利用者が設計した仮想マシンとネットワークからなるシステムを提供して、利用者に自由に使わせることを前提としている。
また、複数の利用者にIaaSを提供するデータセンタでは、利用者ごとのシステムの提供や管理をし易くするために、ラック群単位で利用者のシステムを構築して管理することが行われている。ラック群とは、資源構成の単位化、資源管理の分散処理化および障害の隔離を目的としてまとめられた物理マシンの集合である。
関連する先行技術としては、仮想ルータIPアドレスをセグメントごとに備え、複数の仮想マシンモニタ上で動作する仮想マシンの仮想マシンIPアドレスと仮想ルータIPアドレスを対応付けたルーティングテーブルを備える仮想マシンモニタがある。仮想マシンモニタは、パケットを送信する際に、ルーティングテーブルを参照し、宛先仮想ルータIPアドレスが自仮想マシンモニタと同一の場合は宛先MACアドレスを宛先仮想マシンのMACアドレスに変換し、変換後のパケットを送信する。一方、自仮想マシンと同一でない場合、仮想マシンモニタは、宛先MACアドレスを宛先仮想ルータのMACアドレスに変換し、変換後のパケットを送信する。
特開2012−231382号公報
しかしながら、従来技術によれば、データセンタ内の資源再分配や物理マシンのメンテナンス等のために、ある物理マシン上で動作している仮想マシンを他の物理マシンに移動することが難しい場合がある。
例えば、物理マシン上で動作している仮想マシンの移動に伴って、仮想マシンがアクセスするルータを変更する場合がある。この場合、例えば、仮想マシンについてのルータの設定を変更することになるが、IaaSでは、利用者に提供したシステムを利用者が自由に使うことを前提としており、利用者の仮想マシンについての設定を管理者が勝手に変更することができない。
一つの側面では、本発明は、接続先の仮想ルータの変更を伴う仮想マシンの移動を容易に行うことができる仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置を提供することを目的とする。
本発明の一側面によれば、複数のネットワークに仮想マシン群を分散配置する際に、前記複数のネットワークの各ネットワークに同一アドレスを設定した仮想ルータを起動し、前記仮想マシン群の仮想マシン間を接続するとともに、前記各ネットワークの仮想マシンと仮想ルータとを接続する第1仮想網を構築し、前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置が提案される。
本発明の一態様によれば、接続先の仮想ルータの変更を伴う仮想マシンの移動を容易に行うことができるという効果を奏する。
図1は、実施の形態にかかる仮想ルータ制御方法の一実施例を示す説明図である。 図2は、システム200のシステム構成例を示す説明図である。 図3は、制御装置101のハードウェア構成例を示すブロック図である。 図4は、仮想システムSのシステム構成例を示す説明図である。 図5は、仮想マシン管理表500の記憶内容の一例を示す説明図である。 図6は、仮想ルータ管理表600の記憶内容の一例を示す説明図である。 図7は、制御装置101の機能的構成例を示すブロック図である。 図8は、仮想システムSの状態遷移例を示す説明図(その1)である。 図9は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その1)である。 図10は、仮想システムSの状態遷移例を示す説明図(その2)である。 図11は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その2)である。 図12は、仮想システムSの状態遷移例を示す説明図(その3)である。 図13は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その3)である。 図14は、経路表Tの作成例を示す説明図(その1)である。 図15は、経路表Tの作成例を示す説明図(その2)である。 図16は、L2仮想網の構築例を示す説明図である。 図17は、3ラック群での仮想マシンVM群の分散配置例を示す説明図である。 図18は、制御装置101の第1の制御処理手順の一例を示すフローチャート(その1)である。 図19は、制御装置101の第1の制御処理手順の一例を示すフローチャート(その2)である。 図20は、仮想マシンVM間の仮想網更新処理の具体的処理手順の一例を示すフローチャートである。 図21は、仮想マシンVM/仮想ルータR間の仮想網撤去処理の具体的処理手順の一例を示すフローチャートである。 図22は、ルータ連携網撤去処理の具体的処理手順の一例を示すフローチャートである。 図23は、仮想マシンVM/仮想ルータR間の仮想網更新処理の具体的処理手順の一例を示すフローチャートである。 図24は、ルータ連携網構築処理の具体的処理手順の一例を示すフローチャートである。 図25は、仮想マシンVM/仮想ルータR間の仮想網構築処理の具体的処理手順の一例を示すフローチャートである。 図26は、経路表設定処理の具体的処理手順の一例を示すフローチャートである。 図27は、経路表作成処理の具体的処理手順の一例を示すフローチャートである。 図28は、制御装置101の第2の制御処理手順の一例を示すフローチャートである。 図29は、仮想マシンVM間の仮想網構築処理の具体的処理手順の一例を示すフローチャートである。 図30は、制御装置101の第3の制御処理手順の一例を示すフローチャートである。 図31は、仮想マシンVM間の仮想網撤去処理の具体的処理手順の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置の実施の形態を詳細に説明する。
(仮想ルータ制御方法の一実施例)
図1は、実施の形態にかかる仮想ルータ制御方法の一実施例を示す説明図である。図1において、制御装置101は、仮想ルータを制御するコンピュータである。ここで、仮想ルータとは、IP(Internet Protocol)ルーティングの機能を有する仮想的なコンピュータである。
仮想ルータは、ソフトウェア的に増減設可能であり、専用の物理マシン上で動作させてもよく、また、仮想マシンの一種として、汎用の物理マシン上で動作させることにしてもよい。仮想マシンとは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。
本実施の形態では、仮想ルータは、例えば、IaaSにより利用者に提供されるシステムの仮想マシン間で送受信されるパケットを、指定された経路情報に基づいてルーティングする。IaaSでは、システムは、利用者によって設計され、計算機資源を管理するモジュールによって物理的なコンピュータやネットワーク等を割り当てることにより実現される。
ここで、複数の利用者にIaaSを提供するようなデータセンタでは、利用者ごとのシステムの提供や管理をし易くするために、ラック群単位で利用者のシステムを構築して管理することが行われている。ラック群とは、資源構成の単位化、資源管理の分散処理化および障害の隔離を目的としてまとめられた物理マシンの集合である。ラック群内は物理的なネットワークが密に敷設されるのに対して、ラック群間は疎な結線であり、ラック群内に比べて通信が集中する傾向にある。
また、データセンタでは、資源再分配やメンテナンス等のために、ある物理マシン上で稼働している利用者の仮想マシンを、管理者が、他の物理マシンに移動する場合がある。この際、利用者の仮想マシンを、ラック群を越えて移動すると、一つのラック群にのみ仮想ルータが存在する状況が発生する。
この状況では、仮想ルータが存在するラック群に障害が発生して通信不能となると、他のラック群が正常であっても、システム全体としては動作不能になり、障害の局所化ができなくなる。また、この状況では、通信の局所化ができず、ボトルネックとなるラック群間通信が発生してしまう。
このため、ラック群ごとにネットワークをセグメント分割し、それぞれのラック群に仮想ルータを設置してルーティングすることが考えられる。ところが、利用者が物理的な配置を意識してシステムを設計することになる。また、資源再分配やメンテナンス等の管理者側の都合により、ラック群を越えて、利用者の仮想マシンを移動する場合には、仮想マシンがアクセスする仮想ルータを変更することになる。
この場合、移動する仮想マシンについて、仮想ルータの設定等を変更することになるが、システムを利用者が自由に使うことを前提とするIaaSでは、管理者が勝手に仮想マシンについての設定を変更することができない。また、仮想マシンの移動の度に、管理者が利用者にシステムの再設計を依頼して日程調整を行い、仮想マシンの移動とシステム内部の設定変更を同時に実施するという運用も考えられるが、現実的な運用ではない。
そこで、本実施の形態では、利用者に提供した仮想マシンの設定を変更せずに、ラック群を越えた仮想マシンの移動を可能にする仮想ルータ制御方法について説明する。以下、制御装置101の制御処理例について説明する。
(1)制御装置101は、複数のネットワークNWに仮想マシンVM群を分散配置する際に、各ネットワークNW内に同一アドレスを設定した仮想ルータRを起動する。ここで、ネットワークNWとは、資源構成の単位化、資源管理の分散処理化および障害の隔離を目的としてまとめられた物理サーバの集合により構築される通信網である。
ネットワークNWは、例えば、イーサネット(登録商標)などのLAN(Local Area Network)である。なお、ネットワークNWは、複数のサブネットにセグメント分割されていてもよい。仮想マシンVM群は、IaaSの利用者が管理する仮想マシンの集合であり、IaaSにより提供されるシステムを形成する構成要素である。
以下の説明では、IaaSにより利用者に提供されるシステムを「仮想システムS」と表記する場合がある。
仮想ルータRは、仮想システムSを形成する構成要素であり、仮想システムS内の仮想マシンVM間で送受信されるパケットをルーティングする。また、仮想ルータRのアドレスとは、仮想ルータRのIPアドレスおよびMAC(Media Access Control)アドレスである。
具体的には、例えば、制御装置101は、複数のネットワークNWのいずれかのネットワークNWから他のネットワークNWに仮想マシンVMを移動する際に、他のネットワークNWに仮想ルータRを起動する。ただし、他のネットワークNWで仮想ルータRが稼働している場合、制御装置101は、他のネットワークNWに仮想ルータRを起動しない。
図1の例では、仮想マシンVM1〜VM3は、利用者に提供される仮想システムSを形成する仮想マシンVM群であり、初期状態ではネットワークNW1に配置されている。ここでは、ネットワークNW1内の仮想マシンVM1〜VM3のうちの仮想マシンVM3がネットワークNW2内に移動され、ネットワークNW2内に仮想ルータR1と同一アドレスが設定された仮想ルータR2が起動されている。
(2)制御装置101は、仮想マシンVM群の仮想マシンVM間を接続するとともに、各ネットワークNW内の仮想マシンVMと仮想ルータRとを接続する第1仮想網を構築する。ここで、第1仮想網は、例えば、データリンク層の仮想網である。データリンク層は、OSI参照モデルの第2層(L2:Layer2)に位置し、ネットワーク上で直接接続された機器同士での通信方式を定めたものである。
具体的には、例えば、制御装置101は、仮想マシンVM間のトンネルを形成するとともに、各ネットワークNW内の仮想マシンVMと仮想ルータRとの間のトンネルを形成することにより、第1仮想網を構築する。トンネルとは、トンネリングにより確立される機器間を繋ぐ仮想的な直結通信回線である。
図1の例では、仮想マシンVM1〜VM3の仮想マシンVM間のトンネルを形成するとともに、各ネットワークNW1,NW2内の仮想マシンVM/仮想ルータR間のトンネルを形成することにより、第1仮想網が構築される。ただし、図1の例では、初期状態において、仮想マシンVM1〜VM3の仮想マシンVM間を接続するとともに、ネットワークNW1内の各仮想マシンVM1〜VM3と仮想ルータR1とを接続する第1仮想網が構築されている。
この場合、制御装置101は、仮想マシンVM3と仮想マシンVM1,VM2との間のトンネルを再形成するとともに、ネットワークNW2内の仮想マシンVM3と仮想ルータR2との間のトンネルを形成することにより、第1仮想網を再構築することにしてもよい。この際、仮想マシンVM3とネットワークNW1内の仮想ルータR1との間に形成されたトンネルは削除(撤去)することになる。
(3)制御装置101は、各ネットワークNWに起動した仮想ルータR間を接続する第2仮想網を構築する。ここで、第2仮想網は、例えば、ネットワーク層の仮想網である。ネットワーク層は、OSI参照モデルの第3層(L3:Layer3)に位置し、データリンク層以下のプロトコルを使用して接続されているネットワーク同士の通信を行うための通信方式を定めたものである。
具体的には、例えば、制御装置101は、仮想ルータR間のトンネルを形成することにより、第2仮想網を構築する。図1の例では、仮想ルータR1,R2間のトンネルを形成することにより、第2仮想網が構築される。
(4)制御装置101は、各ネットワークNWに起動した各仮想ルータRに対応する経路表を作成して、各仮想ルータRに設定する。ここで、経路表とは、パケットの宛先に関する経路情報を記憶する情報、いわゆる、ルーティングテーブルである。
具体的には、例えば、まず、制御装置101は、各ネットワークNWに起動した仮想ルータRについて、仮想マシンVM群の仮想マシンVMごとに、仮想マシンVMが仮想ルータRと同一ネットワークNWにあるか否かを判定する。ここで、同一ネットワークNWにある場合、制御装置101は、仮想ルータRの第1仮想網のアドレスを、仮想マシンVMの第1仮想網のアドレスに対応付ける。
一方、同一ネットワークNWにない場合、仮想マシンVMと同一ネットワークNWの他の仮想ルータRの第2仮想網のアドレスを、仮想マシンVMの第1仮想網のアドレスに対応付ける。これにより、各ネットワークNWに起動した仮想ルータRに対応する経路表Tを作成することができる。図1の例では、各仮想ルータR1,R2に対応する経路表T1,T2が作成されて、各仮想ルータR1,R2にそれぞれ設定されている。
このように、制御装置101によれば、複数のネットワークNWに仮想マシンVM群を分散配置する際に、各ネットワークNWに同一アドレスを設定した仮想ルータRを起動することができる。また、制御装置101によれば、各仮想マシンVM間を接続するとともに各ネットワークNWの仮想マシンVMと仮想ルータRとを接続する第1仮想網を構築し、各ネットワークNWに起動した仮想ルータR間を接続する第2仮想網を構築することができる。そして、制御装置101によれば、各ネットワークNWに起動した仮想ルータRに対応する経路表Tを作成して仮想ルータRに設定することができる。
これにより、利用者に提供した仮想マシンVMの設定を変更せずに、接続先の仮想ルータRの変更を伴う仮想マシンVMの移動を容易に行うことができる。この結果、データセンタ内の資源再分配や物理マシンのメンテナンス等の管理者側の都合で、利用者の仮想マシンVMをラック群を越えて移動可能となり、データセンタの資源管理や運用管理の容易化を図ることができる。また、同一ネットワークNW内の仮想マシンVM間のルーティングは、同一ネットワークNW内の仮想ルータRで実施されるため、障害および通信の局所化を実現することができる。
(システム200のシステム構成例)
次に、実施の形態にかかるシステム200のシステム構成例について説明する。ここでは、図1に示した制御装置101を、システム200内の計算機資源を管理するモジュールに適用する場合を例に挙げて説明する。また、以下の説明では、上述した「ネットワークNW」を「ラック群rc」と表記する場合がある。
図2は、システム200のシステム構成例を示す説明図である。図2において、システム200は、制御装置101と、管理者端末201と、利用者端末202と、複数の物理マシンPMと、を含む。システム200において、制御装置101、管理者端末201、利用者端末202および複数の物理マシンPMは、有線または無線のネットワーク210によって接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、システム200は、コンピュータシステムの稼働に必要な基盤そのものを利用者に提供するIaaSシステムである。制御装置101は、システム200内の物理マシンPM、物理ネットワーク、物理ストレージ等の計算機資源を管理する機能を有する。管理者端末201は、システム200の管理者が使用するコンピュータである。利用者端末202は、システム200の利用者が使用するコンピュータである。
物理マシンPMは、システム200内の計算機資源であり、自装置のハードウェア資源を仮想化して、複数の異なるOSを実行可能なコンピュータである。自装置のハードウェア資源とは、例えば、物理マシンPMのCPU(Central Processing Unit)、メモリ、I/F(Interface)などである。
具体的には、例えば、物理マシンPMは、自装置のハードウェア資源を分割して構築される実行環境で動作する仮想マシンVMによってOSを稼働させることができる。仮想マシンVMの実体は、例えば、プログラムやOSなどのソフトウェア、ソフトウェアに与えられる変数、およびソフトウェアを実行させるためのハードウェア資源を指定する情報を含むものである。また、複数の物理マシンPMは、数十〜数百台単位でまとめられて一つのラック群rcに設置される。
システム200において、管理者は、管理者端末201を用いて制御装置101にアクセスすることで、物理マシンPM上で動作する仮想マシンVMの配置変更、起動、停止要求等を行うことができる。また、管理者は、管理者端末201を用いて制御装置101にアクセスすることで、仮想マシンVMの配備状態を確認することができる。
また、利用者は、利用者端末202を用いて制御装置101にアクセスすることで、仮想システムSの設計情報を登録することができる。仮想システムSの設計情報とは、仮想システムSを形成する仮想マシンVM、仮想マシンVMの数、ネットワーク構成等を示す情報である。また、利用者は、利用者端末202を用いて制御装置101にアクセスすることで、仮想システムSの配備、変更、撤収要求等を行うことができる。
制御装置101は、例えば、仮想システムSの配備要求に応じて、物理的なコンピュータやネットワーク等を仮想システムSに割り当てる。具体的には、例えば、制御装置101は、仮想システムSの設計情報に基づいて、仮想システムSを形成する仮想マシンVMを、どの物理マシンPMに配置するかといった配置計画を作成する。そして、制御装置101は、作成した配置計画に基づいて、物理マシンPM上に仮想マシンVMや仮想ルータRを起動したり、物理マシンPM上の仮想マシンVM間等を接続する仮想網を構築する。
また、制御装置101は、例えば、仮想マシンVMの配置変更、起動、停止要求等に応じて、物理マシンPM上の仮想マシンVMの移動、起動、停止等を制御したり、物理マシンPM上の仮想ルータRの起動、停止等を制御する。なお、システム200において、仮想システムSを形成する仮想ルータRは、管理者側の責任範囲であり、利用者の指定する経路制御仕様に従って転送サービスを提供する。
(制御装置101のハードウェア構成例)
図3は、制御装置101のハードウェア構成例を示すブロック図である。図3において、制御装置101は、CPU301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、制御装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、I/F303は、ネットワーク210と内部のインタフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御にしたがってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、制御装置101は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、図2に示した管理者端末201、利用者端末202、物理マシンPMについても、上述した制御装置101と同様のハードウェア構成例により実現することができる。
(仮想システムSのシステム構成例)
次に、利用者に提供される仮想システムSのシステム構成例について説明する。
図4は、仮想システムSのシステム構成例を示す説明図である。図4において、仮想システムSは、仮想マシンVM1〜VM6と、仮想ルータR1Aと、を含む。仮想システムSにおいて、仮想マシンVM1〜VM4と仮想ルータR1Aは、仮想網αによって接続される。また、仮想マシンVM5,VM6と仮想ルータR1Aは、仮想網βによって接続される。
仮想網αのIPアドレスの範囲は「192.168.10.0/24」である。仮想網βのIPアドレスの範囲は「192.168.20.0/24」である。仮想ルータR1Aの仮想網αへの接続インタフェースのIPアドレスは「192.168.10.1」である。また、仮想ルータR1Aの仮想網βへの接続インタフェースのIPアドレスは「192.168.20.1」である。
詳細は図8を用いて後述するが、仮想システムSの初期状態において、仮想マシンVM1〜VM6と仮想ルータR1Aは、ラック群Aに配置される。すなわち、仮想システムSの初期状態において、仮想マシンVM1〜VM6と仮想ルータR1Aは、ラック群Aに含まれるいずれかの物理マシンPM上でそれぞれ動作する。
(仮想マシン管理表500の記憶内容)
次に、制御装置101が用いる仮想マシン管理表500の記憶内容について説明する。仮想マシン管理表500は、利用者に提供される仮想システムSを形成する仮想マシンVMを管理する情報である。仮想マシン管理表500は、例えば、図3に示したメモリ302、ディスク305等の記憶装置により実現される。
図5は、仮想マシン管理表500の記憶内容の一例を示す説明図である。図5において、仮想マシン管理表500は、仮想システムSを形成する仮想マシンVMごとの仮想マシン情報(例えば、仮想マシン情報501〜506)を記憶する。具体的には、仮想マシン情報501〜506は、仮想マシンVM1〜VM6のVM名、仮想システム情報および物理システム情報を有する。
ここで、VM名は、仮想マシンVMの識別子である。仮想システム情報は、接続仮想網と仮想網IPアドレスを有する。接続仮想網は、仮想マシンVMが接続する仮想網である。仮想網IPアドレスは、仮想マシンVMの接続仮想網への接続インタフェースのIPアドレス、すなわち、接続仮想網での仮想マシンVMのIPアドレスである。物理システム情報は、ラック群名と物理網IPアドレスを有する。ラック群名は、仮想マシンVMが配置されたラック群の識別子である。物理網IPアドレスは、仮想マシンVMが動作する物理マシンPMのIPアドレスである。
例えば、仮想マシン情報501は、仮想網αに接続された仮想マシンVM1の仮想網IPアドレス「192.168.10.11」と、仮想マシンVM1が動作するラック群Aの物理マシンPMの物理網IPアドレス「10.100.1.67」を示す
(仮想ルータ管理表600の記憶内容)
次に、制御装置101が用いる仮想ルータ管理表600の記憶内容について説明する。仮想ルータ管理表600は、利用者に提供される仮想システムSに含まれる仮想ルータRを管理する情報である。仮想ルータ管理表600は、例えば、図3に示したメモリ302、ディスク305等の記憶装置により実現される。
図6は、仮想ルータ管理表600の記憶内容の一例を示す説明図である。図6において、仮想ルータ管理表600は、論理ルータ情報610と仮想ルータ情報620を有する。論理ルータ情報610は、接続仮想網および仮想網IPアドレスのフィールドを有し、各フィールドに情報を設定することで、仮想網情報(例えば、仮想網情報611,612)をレコードとして記憶する。
ここで、論理ルータとは、仮想システムSに含まれる仮想ルータRを論理的に一つのルータとしたものである。また、接続仮想網は、論理ルータが接続する仮想網である。仮想網IPアドレスは、論理ルータ(仮想ルータR)の接続仮想網への接続インタフェースのIPアドレスである。例えば、仮想網情報611は、論理ルータR1の仮想網αへの接続インタフェースの仮想網IPアドレス「192.168.10.1」を示す。
仮想ルータ情報620は、インスタンス名、ラック群名、ルータ連携網IPアドレスおよび物理網IPアドレスのフィールドを有し、各フィールドに情報を設定することで、インスタンス情報(例えば、インスタンス情報621)をレコードとして記憶する。ここで、インスタンス名は、仮想ルータRの識別子である。ラック群名は、仮想ルータRが配置されたラック群rcの識別子である。
ルータ連携網アドレスは、仮想ルータR間を接続する仮想網への仮想ルータRの接続インタフェースのIPアドレスである。ルータ連携網用のIPアドレスは、管理者が用意してもよく、また、利用者が指定することにしてもよい。物理網IPアドレスは、仮想ルータRが動作する物理マシンPMのIPアドレスである。例えば、インスタンス情報621は、ラック群Aに配置された仮想ルータR1Aのルータ連携網IPアドレス「172.31.10.1」と物理網IPアドレス「10.100.1.35」を示す。
(制御装置101の機能的構成例)
図7は、制御装置101の機能的構成例を示すブロック図である。図7において、制御装置101は、受付部701と、起動部702と、構築部703と、作成部704と、設定部705と、を含む構成である。受付部701〜設定部705は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305等の記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305等の記憶装置に記憶される。
受付部701は、仮想マシンVM群のいずれかの仮想マシンVMの配置変更要求を受け付ける機能を有する。ここで、仮想マシン群VMは、利用者に提供される仮想システムSを形成する仮想マシンVMの集合である。また、配置変更要求とは、ある物理マシンPM上で動作している仮想マシンVMを他の物理マシンPM上に移動するための要求である。
配置変更要求には、例えば、移動対象の仮想マシンVMのVM名、移動先のラック群rcのラック群名、物理マシンPMの物理網IPアドレス等が含まれている。具体的には、例えば、受付部701は、管理者端末201から管理者の操作入力を受け付けることにより、または、管理装置101の不図示のキーボードやマウスを用いた管理者の操作入力により、仮想マシンVMの配置変更要求を受け付ける。
起動部702は、仮想マシンVMを起動する機能を有する。具体的には、例えば、起動部702は、受付部701が仮想マシンVMの配置変更要求を受け付けたことに応じて、仮想マシンVMを移動する。ここで、仮想マシンVMの移動とは、ある仮想マシンVMで稼働しているOSやアプリケーションを他の仮想マシンVMに移行することである。
より具体的には、例えば、起動部702は、移動対象の仮想マシンVMをライブマイグレーションによって他の物理マシンPM上に移動する。ライブマイグレーションとは、物理マシンPM上で動作中の仮想マシンVMを、ほぼ無停止で他の物理マシンPMに移動することである。ライブマイグレーションによれば、物理マシンPM上の仮想マシンVMが実行中のOSやアプリケーションを、非常に短い停止時間で他の物理マシンPMに移行することができる。
なお、仮想マシンMが移動された場合、仮想マシン管理表500内の移動された仮想マシンVMの仮想マシン情報が更新される。仮想マシン管理表500の更新例については、図9、図11および図13を用いて後述する。
また、起動部702は、仮想ルータRを起動する機能を有する。具体的には、例えば、起動部702は、受付部701が仮想マシンVMの配置変更要求を受け付けたことに応じて、移動先のラック群rcに仮想ルータRを起動する。より具体的には、例えば、まず、起動部702は、図6に示した仮想ルータ管理表600を参照して、移動先のラック群rcに仮想ルータRが配置されているか否かを判断する。
ここで、移動先のラック群rcに仮想ルータRが配置されていない場合、起動部702は、移動元のラック群rcの仮想ルータRと同一の仮想網IPアドレスおよびMACアドレスを設定した仮想ルータRを移動先のラック群rcに起動する。一方、移動先のラック群rcに仮想ルータRが配置済みの場合、起動部702は、仮想ルータRを起動しない。
なお、仮想ルータRが起動された場合、仮想ルータ管理表600に起動された仮想ルータRのインスタンス情報が登録される。仮想ルータ管理表600の更新例については、図9を用いて後述する。
また、受付部701は、仮想マシンVM群のいずれかの仮想マシンVMの起動要求を受け付ける機能を有する。ここで、起動要求とは、ある物理マシンPM上で仮想マシンVMを起動するための要求である。起動要求には、例えば、起動対象の仮想マシンVMのVM名、起動先のラック群rcのラック群名、物理マシンPMの物理網IPアドレス等が含まれている。
具体的には、例えば、受付部701は、管理者端末201から管理者の操作入力を受け付けることにより、または、管理装置101の不図示のキーボードやマウスを用いた管理者の操作入力により、仮想マシンVMの起動要求を受け付ける。起動要求は、例えば、仮想システムSに新たな仮想マシンVMを追加する場合に行われる。
また、起動部702は、受付部701が仮想マシンVMの起動要求を受け付けたことに応じて、起動先の物理マシンPM上に仮想マシンVMを起動する。なお、仮想マシンVMが起動された場合、起動された仮想マシンVMの仮想マシン情報が仮想マシン管理表500に登録される。
また、起動部702は、受付部701が仮想マシンVMの起動要求を受け付けたことに応じて、起動先のラック群rcに仮想ルータRを起動する。具体的には、例えば、まず、起動部702は、仮想ルータ管理表600を参照して、起動先のラック群rcに仮想ルータRが配置されているか否かを判断する。
ここで、起動先のラック群rcに仮想ルータRが配置されていない場合、起動部702は、他のラック群rcの仮想ルータRと同一の仮想網IPアドレスおよびMACアドレスを設定した仮想ルータRを起動先のラック群rcに起動する。一方、起動先のラック群rcに仮想ルータRが配置済みの場合、起動部702は、仮想ルータRを起動しない。
構築部703は、仮想マシンVM群の仮想マシンVM間を接続するとともに、各ラック群rc内の仮想マシンVMと仮想ルータRとを接続する仮想網を構築する機能を有する。具体的には、例えば、構築部703は、仮想マシン管理表500を参照して、仮想マシンVM間のトンネルを形成する。また、構築部703は、仮想マシン管理表500および仮想ルータ管理表600を参照して、各ラック群rc内の仮想マシンVMと仮想ルータRとの間のトンネルを形成する。これにより、構築部703は、データリンク層の仮想網を構築する。以下の説明では、データリンク層の仮想網を「L2仮想網」と表記する場合がある。
また、構築部703は、各ラック群rcに起動した仮想ルータR間を接続する仮想網を構築する機能を有する。具体的には、例えば、構築部703は、仮想ルータ管理表600を参照して、各ラック群rcに起動した仮想ルータR間のトンネルを形成することにより、ネットワーク層の仮想網を構築する。以下の説明では、ネットワーク層の仮想網を「L3仮想網」と表記する場合がある。
なお、仮想マシンVM間等のトンネルを形成する構築部703の具体的な処理内容については、図17を用いて後述する。
作成部704は、各ラック群rcに起動した仮想ルータRに対応する経路表Tを作成する機能を有する。具体的には、例えば、まず、作成部704は、各ラック群rcに起動した仮想ルータRについて、仮想マシンVM群の仮想マシンVMごとに、仮想マシンVMが仮想ルータRと同一ラック群にあるか否かを判定する。
ここで、同一ラック群にある場合、作成部704は、仮想ルータRのL2仮想網の仮想網IPアドレスを、仮想マシンVMのL2仮想網の仮想網IPアドレスに対応付ける。一方、同一ラック群にない場合、作成部704は、仮想マシンVMと同一ラック群の他の仮想ルータRのL3仮想網のルータ連携網IPアドレスを、仮想マシンVMのL2仮想網の仮想網IPアドレスに対応付ける。これにより、各ラック群rcに起動した仮想ルータRに対応する経路表Tを作成することができる。なお、仮想ルータRに対応する経路表Tの作成例については、図14および図15を用いて後述する。
設定部705は、作成部704によって作成された仮想ルータRに対応する経路表Tを仮想ルータRに設定する機能を有する。具体的には、例えば、設定部705は、各仮想ルータRに対応する経路表Tを各仮想ルータRに送信することにより、各仮想ルータRに経路表Tを設定する。
また、受付部701は、仮想マシンVM群のいずれかの仮想マシンVMの停止要求を受け付ける機能を有する。ここで、停止要求とは、ある物理マシンPM上で動作している仮想マシンVMを停止するための要求である。停止要求には、例えば、停止対象の仮想マシンVMのVM名、停止先のラック群rcのラック群名、物理マシンPMの物理網IPアドレス等が含まれている。
具体的には、例えば、受付部701は、管理者端末201から管理者の操作入力を受け付けることにより、または、管理装置101の不図示のキーボードやマウスを用いた管理者の操作入力により、仮想マシンVMの停止要求を受け付ける。
また、起動部702は、受付部701が仮想マシンVMの停止要求を受け付けたことに応じて、停止対象の仮想マシンVMを停止する。なお、仮想マシンMが停止された場合、停止された仮想マシンVMの仮想マシン情報が仮想マシン管理表500から削除される。
また、起動部702は、仮想ルータRを停止する機能を有する。具体的には、例えば、起動部702は、受付部701が仮想マシンVMの停止要求を受け付けたことに応じて、仮想マシン管理表500を参照して、停止先のラック群rcに、停止対象の仮想マシンVMとは異なる他の仮想マシンVMが配置されているか否かを判断する。
ここで、停止先のラック群rcに他の仮想マシンVMが配置されていない場合、起動部702は、停止先のラック群rcの仮想ルータRを停止する。一方、停止先のラック群rcに他の仮想マシンVMが配置されている場合、起動部702は、仮想ルータRを停止しない。なお、仮想ルータRが停止された場合、停止された仮想ルータRのインスタンス情報が仮想ルータ管理表600から削除される。
また、起動部702は、受付部701が仮想マシンVMの配置変更要求を受け付けたことに応じて、仮想マシン管理表500を参照して、移動元のラック群rcに、移動対象の仮想マシンVMとは異なる他の仮想マシンVMが配置されているか否かを判断する。ここで、移動元のラック群rcに他の仮想ルータRが配置されていない場合、起動部702は、移動元のラック群rcの仮想ルータRを停止する。一方、移動元のラック群rcに他の仮想マシンVMが配置されている場合、起動部702は、仮想ルータRを停止しない。
(仮想システムSの状態遷移例)
次に、仮想システムSの状態遷移例について説明する。ここでは、仮想マシンVM1〜VM6と、仮想ルータR1Aと、を含む仮想システムSの状態遷移例について説明する(例えば、図5、図6参照)。
図8は、仮想システムSの状態遷移例を示す説明図(その1)である。図8において、状態0(初期状態)では、仮想システムSはラック群Aに配置されている。また、仮想マシンVM1〜VM4の各仮想マシンVM間を接続するとともに、ラック群A内の各仮想マシンVM1〜VM4と仮想ルータR1Aとを接続するL2仮想網αが構築されている。また、仮想マシンVM5,VM6間を接続するとともに、ラック群A内の各仮想マシンVM5,VM6と仮想ルータR1Aとを接続するL2仮想網βが構築されている。
<状態0⇒状態1>
ここで、仮想マシンVM4をラック群Bに移動する場合を想定する。この場合、仮想マシンVM4の移動に伴って、ラック群B内に仮想ルータR1Bが起動され、仮想システムSが状態0から状態1に遷移する。
状態1では、仮想マシンVM1〜VM3,VM5,VM6と仮想ルータR1Aがラック群Aに配置され、仮想マシンVM4と仮想ルータR1Bがラック群Bに配置されている。この結果、仮想マシンVM1〜VM4の各仮想マシンVM間を接続し、ラック群A内の各仮想マシンVM1〜VM3と仮想ルータR1Aとを接続し、ラック群B内の仮想マシンVM4と仮想ルータR1Bとを接続するL2仮想網αが構築されている。また、各ラック群A,Bに起動された仮想ルータR1A,R1B間を接続するルータ連携網が構築されている。このルータ連携網は、L3仮想網である。なお、L2仮想網βについては、状態0と同様である。
<仮想マシン管理表500および仮想ルータ管理表600の更新例(その1)>
ここで、仮想システムSが状態0から状態1に遷移した場合の仮想マシン管理表500および仮想ルータ管理表600の更新例について説明する。
図9は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その1)である。図9において、ラック群Aからラック群Bに仮想マシンVM4が移動した結果、仮想マシン管理表500内の仮想マシン情報504が更新されている。具体的には、ラック群名が移動先のラック群Bのラック群名「B」に更新され、仮想マシンVM4の物理網IPアドレスが移動先の物理マシンPMのIPアドレス「10.100.2.72」に更新されている。
また、ラック群Aからラック群Bに仮想マシンVM4が移動した結果、仮想ルータ管理表600の仮想ルータ情報620内に仮想ルータR1Bのインスタンス情報622が新規登録されている。インスタンス情報622は、ラック群Bに配置された仮想ルータR1Bのルータ連携網IPアドレス「172.31.10.2」と物理網IPアドレス「10.100.2.22」を示す。
<状態1⇒状態2>
次に、仮想マシンVM6をラック群Bに移動する場合を想定する。この場合、仮想マシンVM6がラック群Bに移動された結果、仮想システムSが状態1から状態2に遷移する。この際、ラック群Bには仮想ルータR1Bが配置済みのため、仮想マシンVM6の移動に伴って、ラック群Bに新たな仮想ルータRは起動されない。
図10は、仮想システムSの状態遷移例を示す説明図(その2)である。図10において、状態2では、仮想マシンVM1〜VM3,VM5と仮想ルータR1Aがラック群Aに配置され、仮想マシンVM4,VM6と仮想ルータR1Bがラック群Bに配置されている。この結果、仮想マシンVM5,VM6間を接続するとともに、ラック群B内の仮想マシンVM6と仮想ルータR1Bとを接続するL2仮想網βが構築されている。なお、仮想ルータR1A,R1B間を接続するルータ連携網については、状態1と同様である。また、L2仮想網αについては、状態1と同様である。
<仮想マシン管理表500および仮想ルータ管理表600の更新例(その2)>
ここで、仮想システムSが状態1から状態2に遷移した場合の仮想マシン管理表500および仮想ルータ管理表600の更新例について説明する。
図11は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その2)である。図11において、ラック群Aからラック群Bに仮想マシンVM6が移動した結果、仮想マシン管理表500内の仮想マシン情報506が更新されている。具体的には、ラック群名が移動先のラック群Bのラック群名「B」に更新され、仮想マシンVM6の物理網IPアドレスが移動先の物理マシンPMのIPアドレス「10.100.2.38」に更新されている。仮想ルータ管理表600の記憶内容については、ラック群Bに仮想ルータR1Bが配置済みのため変化しない。
<状態2⇒状態3>
次に、仮想マシンVM3をラック群Bに移動する場合を想定する。この場合、仮想マシンVM3がラック群Bに移動された結果、仮想システムSが状態2から状態3に遷移する。この際、ラック群Bには仮想ルータR1Bが配置済みのため、仮想マシンVM3の移動に伴って、ラック群Bに新たな仮想ルータRは起動されない。
図12は、仮想システムSの状態遷移例を示す説明図(その3)である。図12において、状態3では、仮想マシンVM1,VM2,VM5と仮想ルータR1Aがラック群Aに配置され、仮想マシンVM3,VM4,VM6と仮想ルータR1Bがラック群Bに配置されている。
この結果、仮想マシンVM1〜VM4の各仮想マシンVM間を接続するとともに、ラック群A内の各仮想マシンVM1,VM2と仮想ルータR1Aとを接続し、ラック群B内の仮想マシンVM3,VM4と仮想ルータR1Bとを接続するL2仮想網αが構築されている。なお、仮想ルータR1A,R1B間を接続するルータ連携網については、状態2と同様である。また、L2仮想網βについては、状態2と同様である。
<仮想マシン管理表500および仮想ルータ管理表600の更新例(その3)>
ここで、仮想システムSが状態2から状態3に遷移した場合の仮想マシン管理表500および仮想ルータ管理表600の更新例について説明する。
図13は、仮想マシン管理表500および仮想ルータ管理表600の更新例を示す説明図(その3)である。図13において、ラック群Aからラック群Bに仮想マシンVM3が移動した結果、仮想マシン管理表500内の仮想マシン情報503が更新されている。具体的には、ラック群名が移動先のラック群Bのラック群名「B」に更新され、仮想マシンVM3の物理網IPアドレスが移動先の物理マシンPMのIPアドレス「10.100.2.87」に更新されている。仮想ルータ管理表600の記憶内容については、ラック群Bに仮想ルータR1Bが配置済みのため変化しない。
(経路表Tの作成例)
次に、各仮想ルータRに対応する経路表Tの作成例について説明する。ここでは、図13に示した仮想マシン管理表500および仮想ルータ管理表600の記憶内容に基づいて、ラック群Aの仮想ルータR1Aに対応する経路表Tの作成例について説明する。
図14は、経路表Tの作成例を示す説明図(その1)である。図14において、経路表T1Aは、IPアドレス、ネットマスクおよびネクストホップのフィールドを有し、各フィールドに情報を設定することで、宛先ごとの経路情報をレコードとして記憶する。
ここで、IPアドレスは、パケットの宛先となる仮想マシンVMの仮想網IPアドレスである。ネットマスクは、IPアドレスのうちのネットワークアドレスとホストアドレスを識別するための値である。ネクストホップは、次にパケットを転送する送り先のIPアドレスである。
まず、作成部704は、仮想マシン管理表500を参照して、経路表T1AのIPアドレスフィールドに、各仮想マシンVM1〜VM6の仮想網IPアドレスを設定する。また、作成部704は、経路表T1Aのネットマスクフィールドに、32ビットを示す「/32」を設定する(図14中、(14−1)参照)。
次に、作成部704は、仮想マシン管理表500および仮想ルータ管理表600を参照して、経路表T1Aのネクストホップフィールドに、次にパケットを転送する送り先のIPアドレスを設定する(図14中、(14−2)参照)。
ここで、仮想マシンVM1(宛先)を例に挙げると、作成部704は、仮想マシンVM1のラック群Aと仮想ルータR1Aのラック群Aとが一致するか否かを判断する。ここでは、仮想マシンVM1のラック群Aと仮想ルータR1Aのラック群Aとが一致する。この場合、作成部704は、仮想マシンVM1を含む仮想網αへの仮想ルータR1Aの接続インタフェースの仮想網IPアドレス「192.168.10.1」をネクストホップフィールドに設定する。
また、仮想マシンVM3(宛先)を例に挙げると、作成部704は、仮想マシンVM3のラック群Bと仮想ルータR1Aのラック群Aとが一致するか否かを判断する。ここでは、仮想マシンVM3のラック群Bと仮想ルータR1Aのラック群Aとが一致しない。この場合、作成部704は、仮想マシンVM3が配置されたラック群Bの仮想ルータR1Bのルータ連携網IPアドレス「172.31.10.2」をネクストホップフィールドに設定する。
また、仮想マシンVM5(宛先)を例に挙げると、作成部704は、仮想マシンVM5のラック群Aと仮想ルータR1Aのラック群Aとが一致するか否かを判断する。ここでは、仮想マシンVM5のラック群Aと仮想ルータR1Aのラック群Aとが一致する。この場合、作成部704は、仮想マシンVM5を含む仮想網βへの仮想ルータR1Aの接続インタフェースの仮想網IPアドレス「192.168.20.1」をネクストホップフィールドに設定する。
次に、図13に示した仮想マシン管理表500および仮想ルータ管理表600の記憶内容に基づいて、ラック群Bの仮想ルータR1Bに対応する経路表Tの作成例について説明する。
図15は、経路表Tの作成例を示す説明図(その2)である。図15において、まず、作成部704は、仮想マシン管理表500を参照して、経路表T1BのIPアドレスフィールドに、各仮想マシンVM1〜VM6の仮想網IPアドレスを設定する。また、作成部704は、経路表T1Bのネットマスクフィールドに、32ビットを示す「/32」を設定する(図15中、(15−1)参照)。
次に、作成部704は、仮想マシン管理表500および仮想ルータ管理表600を参照して、経路表T1Bのネクストホップフィールドに、次にパケットを転送する送り先のIPアドレスを設定する(図15中、(15−2)参照)。
ここで、仮想マシンVM1(宛先)を例に挙げると、作成部704は、仮想マシンVM1のラック群Aと仮想ルータR1Bのラック群Bとが一致するか否かを判断する。ここでは、仮想マシンVM1のラック群Aと仮想ルータR1Bのラック群Bとが一致しない。この場合、作成部704は、仮想マシンVM1が配置されたラック群Aの仮想ルータR1Aのルータ連携網IPアドレス「172.31.10.1」をネクストホップフィールドに設定する。
また、仮想マシンVM3(宛先)を例に挙げると、作成部704は、仮想マシンVM3のラック群Bと仮想ルータR1Bのラック群Bとが一致するか否かを判断する。ここでは、仮想マシンVM3のラック群Bと仮想ルータR1Bのラック群Bとが一致する。この場合、作成部704は、仮想マシンVM3を含む仮想網αへの仮想ルータR1Bの接続インタフェースの仮想網IPアドレス「192.168.10.1」をネクストホップフィールドに設定する。
また、仮想マシンVM6(宛先)を例に挙げると、作成部704は、仮想マシンVM6のラック群Bと仮想ルータR1Bのラック群Bとが一致するか否かを判断する。ここでは、仮想マシンVM6のラック群Bと仮想ルータR1Bのラック群Bとが一致する。この場合、作成部704は、仮想マシンVM6を含む仮想網βへの仮想ルータR1Bの接続インタフェースの仮想網IPアドレス「192.168.20.1」をネクストホップフィールドに設定する。
以上説明した経路表T1A,T1Bによれば、同一ラック群rcの仮想マシンVM間のルーティングは、同一ラック群rcの仮想ルータRで実施することができる。また、ラック群rcを越えたパケット転送は、仮想マシンVMからラック群rc内の仮想ルータRに渡された後、仮想ルータR間のルータ連携網(L3仮想網)を通って、宛先の仮想マシンVMが存在するラック群rcの仮想ルータRに渡すことで実現することができる。
(L2仮想網の構築例)
次に、L2仮想網の構築例について説明する。ここでは、仮想マシンVM間のトンネルを形成する場合を例に挙げて、L2仮想網の構築例について説明する。
図16は、L2仮想網の構築例を示す説明図である。ここでは、仮想マシン管理表1600に基づくL2仮想網の構築例について説明する。ただし、図16では、仮想マシン管理表1600の一部を抜粋して表示している。
具体的には、例えば、まず、構築部703は、仮想マシン管理表1600を参照して、各仮想マシンVM間のトンネルを形成する。各仮想マシンVM間のトンネルはフルメッシュ構成である。そして、構築部703は、物理マシンPM上の仮想ブリッジvbrに各トンネルの端点を接続することにより、L2仮想網を構築する。
仮想ブリッジvbrは、トンネルからきたパケットは仮想マシンVMに転送し、トンネルへは転送しない。また、仮想ブリッジvbrは、仮想ブリッジvbr間ではパケットをカプセル化して通信し、仮想マシンVMに転送する際にカプセル化を解除する。カプセル化とは、データとそれを操作する手続きを一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から隠蔽することである。
これにより、物理マシンPM上で動作する仮想ブリッジvbrと仮想マシンVM間のトンネルによりL2仮想網を構築することができる。また、トンネル網でのパケットの転送は、1リンクで止まり、ループを回避することができる。
(3ラック群での仮想マシンVM群の分散配置例)
上述した説明では、2つのラック群rcに仮想マシンVM群を分散配置する場合について説明したが、3つ以上のラック群rcに仮想マシンVM群を分散配置することにしてもよい。
図17は、3ラック群での仮想マシンVM群の分散配置例を示す説明図である。図17において、仮想マシンVM1,VM2,VM6と仮想ルータR1Aがラック群Aに配置され、仮想マシンVM3,VM7と仮想ルータR1Bがラック群Bに配置され、仮想マシンVM4,VM5,VM8と仮想ルータR1Cがラック群Cに配置されている。
この結果、仮想マシンVM1〜VM5の各仮想マシンVM間を接続し、ラック群A内の各仮想マシンVM1,VM2と仮想ルータR1Aとを接続し、ラック群B内の仮想マシンVM3と仮想ルータR1Bとを接続し、ラック群C内の各仮想マシンVM4,VM5と仮想ルータR1Cとを接続するL2仮想網αが構築されている。
また、仮想マシンVM6〜VM8の各仮想マシンVM間を接続し、ラック群A内の仮想マシンVM6と仮想ルータR1Aとを接続し、ラック群B内の仮想マシンVM7と仮想ルータR1Bとを接続し、ラック群C内の仮想マシンVM8と仮想ルータR1Cとを接続するL2仮想網βが構築されている。また、各ラック群A,B,Cに起動された仮想ルータR1A,R1B,R1C間を接続するルータ連携網が構築されている。
(制御装置101の第1の制御処理手順)
次に、制御装置101の第1の制御処理手順について説明する。第1の制御処理は、仮想マシンVMを移動する場合に実行される制御装置101の制御処理である。
図18および図19は、制御装置101の第1の制御処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、制御装置101は、仮想マシンVM群のいずれかの仮想マシンVMの配置変更要求を受け付けたか否かを判断する(ステップS1801)。ここで、制御装置101は、仮想マシンVMの配置変更要求を受け付けるのを待つ(ステップS1801:No)。
そして、制御装置101は、仮想マシンVMの配置変更要求を受け付けた場合(ステップS1801:Yes)、仮想マシンVMを移動する(ステップS1802)。そして、制御装置101は、仮想マシンVM間の仮想網更新処理を実行する(ステップS1803)。仮想マシンVM間の仮想網更新処理の具体的な処理手順については、図20を用いて後述する。
次に、制御装置101は、仮想マシンVMが別ラック群に移動したか否かを判断する(ステップS1804)。ここで、別ラック群に移動した場合(ステップS1804:Yes)、制御装置101は、仮想マシンVM/仮想ルータR間の仮想網撤去処理を実行する(ステップS1805)。仮想マシンVM/仮想ルータR間の仮想網撤去処理の具体的な処理手順については、図21を用いて後述する。
次に、制御装置101は、移動元のラック群rcの仮想ルータRに、移動対象の仮想マシンVMとは異なる他の仮想マシンVMが接続しているか否かを判断する(ステップS1806)。ここで、他の仮想マシンVMが接続している場合(ステップS1806:Yes)、制御装置101は、図19に示すステップS1901に移行する。
一方、他の仮想マシンVMが接続していない場合(ステップS1806:No)、制御装置101は、ルータ連携網撤去処理を実行する(ステップS1807)。ルータ連携網撤去処理の具体的な処理手順については、図22を用いて後述する。そして、制御装置101は、移動元のラック群rcの仮想ルータRを停止して(ステップS1808)、図19に示すステップS1901に移行する。
また、ステップS1804において、別ラック群に移動していない場合(ステップS1804:No)、制御装置101は、仮想マシンVM/仮想ルータR間の仮想網更新処理を実行して(ステップS1809)、本フローチャートによる一連の処理を終了する。仮想マシンVM/仮想ルータR間の仮想網更新処理の具体的な処理手順については、図23を用いて後述する。
図19のフローチャートにおいて、まず、制御装置101は、仮想ルータ管理表600を参照して、移動先のラック群rcに仮想ルータRが存在するか否かを判断する(ステップS1901)。ここで、仮想ルータRが存在する場合(ステップS1901:Yes)、制御装置101は、ステップS1904に移行する。
一方、仮想ルータRが存在しない場合(ステップS1901:No)、制御装置101は、移動先のラック群rcに仮想ルータRを起動する(ステップS1902)。そして、制御装置101は、ルータ連携網構築処理を実行する(ステップS1903)。ルータ連携網構築処理の具体的な処理手順については、図24を用いて後述する。
次に、制御装置101は、仮想マシンVM/仮想ルータR間の仮想網構築処理を実行する(ステップS1904)。仮想マシンVM/仮想ルータR間の仮想網構築処理の具体的な処理手順については、図25を用いて後述する。
そして、制御装置101は、仮想ルータRに経路表Tを設定する経路表設定処理を実行して(ステップS1905)、本フローチャートによる一連の処理を終了する。経路表設定処理の具体的な処理手順については、図26を用いて後述する。
これにより、仮想マシンVMの移動に伴って、L2仮想網およびL3仮想網を構築または再構築するとともに、各仮想ルータRに経路表Tを設定することができる。
<仮想マシンVM間の仮想網更新処理手順>
次に、図18に示したステップS1803の仮想マシンVM間の仮想網更新処理の具体的な処理手順について説明する。以下の説明は、移動対象となる仮想マシンVMを「移動マシン」と表記し、移動マシンとは異なる他の仮想マシンVMを「既存マシン」と表記する場合がある。
図20は、仮想マシンVM間の仮想網更新処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、移動マシンの物理網IPアドレスpを特定する(ステップS2001)。
次に、制御装置101は、仮想マシン管理表500を参照して、既存マシンを選択し(ステップS2002)、既存マシンの物理網IPアドレスpkを特定する(ステップS2003)。そして、制御装置101は、物理網IPアドレスp、pk間のトンネルを形成する(ステップS2004)。
次に、制御装置101は、仮想マシン管理表500を参照して、選択していない未選択の既存マシンがあるか否かを判断する(ステップS2005)。ここで、未選択の既存マシンがある場合(ステップS2005:Yes)、制御装置101は、ステップS2002に戻って、未選択の既存マシンを選択する。
一方、未選択の既存マシンがない場合(ステップS2005:No)、制御装置101は、仮想マシンVM間の仮想網更新処理を呼び出したステップに戻る。これにより、仮想マシンVMの移動に伴って、仮想マシンVM間のL2仮想網を再構築することができる。
<仮想マシンVM/仮想ルータR間の仮想網撤去処理手順>
次に、図18に示したステップS1805の仮想マシンVM/仮想ルータR間の仮想網撤去処理の具体的な処理手順について説明する。
図21は、仮想マシンVM/仮想ルータR間の仮想網撤去処理の具体的処理手順の一例を示すフローチャートである。図21のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、移動マシンの物理網IPアドレスpを特定する(ステップS2101)。
次に、制御装置101は、仮想マシン管理表500および仮想ルータ管理表600を参照して、移動マシンが接続していた移動元のラック群rcの仮想ルータRの物理網IPアドレスrを特定する(ステップS2102)。
そして、制御装置101は、物理網IPアドレスp、r間のトンネルを撤去(削除)して(ステップS2103)、仮想マシンVM/仮想ルータR間の仮想網撤去処理を呼び出したステップに戻る。これにより、仮想マシンVMの移動に伴って、仮想マシンVM/仮想ルータR間を接続するトンネルを撤去することができる。
<ルータ連携網撤去処理手順>
次に、図18に示したステップS1807のルータ連携網撤去処理の具体的な処理手順について説明する。以下の説明では、停止対象となる仮想ルータRを「撤去ルータ」と表記する場合がある。
図22は、ルータ連携網撤去処理の具体的処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、制御装置101は、仮想ルータ管理表600を参照して、撤去ルータの物理網IPアドレスpを特定する(ステップS2201)。
次に、制御装置101は、仮想ルータ管理表600を参照して、撤去ルータと同一論理ルータの他の仮想ルータRが存在するか否かを判断する(ステップS2202)。ここで、他の仮想ルータRが存在する場合(ステップS2202:Yes)、制御装置101は、仮想ルータ管理表600を参照して、他の仮想ルータRの物理網IPアドレスrを特定する(ステップS2203)。
そして、制御装置101は、物理網IPアドレスp、r間のトンネルを撤去して(ステップS2204)、ステップS2202に戻る。また、ステップS2202において、他の仮想ルータRが存在しない場合(ステップS2202:No)、制御装置101は、ルータ連携網撤去処理を呼び出したステップに戻る。これにより、仮想ルータRの停止に伴って、仮想ルータR間を接続するトンネルを撤去することができる。
<仮想マシンVM/仮想ルータR間の仮想網更新処理手順>
次に、図18に示したステップS1809の仮想マシンVM/仮想ルータR間の仮想網更新処理の具体的な処理手順について説明する。
図23は、仮想マシンVM/仮想ルータR間の仮想網更新処理の具体的処理手順の一例を示すフローチャートである。図23のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、移動マシンの物理網IPアドレスpを特定する(ステップS2301)。
次に、制御装置101は、仮想マシン管理表500および仮想ルータ管理表600を参照して、移動マシンが接続する移動先のラック群rcの仮想ルータRの物理網IPアドレスrを特定する(ステップS2302)。
そして、制御装置101は、物理網IPアドレスp、r間のトンネルを形成して(ステップS2303)、仮想マシンVM/仮想ルータR間の仮想網更新処理を呼び出したステップに戻る。これにより、仮想マシンVMの移動に伴って、仮想マシンVM/仮想ルータR間を接続するトンネルを開設することができる。
<ルータ連携網構築処理手順>
次に、図19に示したステップS1903のルータ連携網構築処理の具体的な処理手順について説明する。以下の説明では、ラック群rcに起動した仮想ルータRを「追加ルータ」と表記する場合がある。
図24は、ルータ連携網構築処理の具体的処理手順の一例を示すフローチャートである。図24のフローチャートにおいて、まず、制御装置101は、仮想ルータ管理表600を参照して、追加ルータの物理網IPアドレスpを特定する(ステップS2401)。
次に、制御装置101は、仮想ルータ管理表600を参照して、追加ルータと同一論理ルータの他の仮想ルータRが存在するか否かを判断する(ステップS2402)。ここで、他の仮想ルータRが存在する場合(ステップS2402:Yes)、制御装置101は、仮想ルータ管理表600を参照して、他の仮想ルータRの物理網IPアドレスrを特定する(ステップS2403)。
そして、制御装置101は、物理網IPアドレスp、r間のトンネルを形成して(ステップS2404)、ステップS2402に戻る。また、ステップS2402において、他の仮想ルータRが存在しない場合(ステップS2402:No)、制御装置101は、ルータ連携網構築処理を呼び出したステップに戻る。これにより、仮想ルータRの起動に伴って、仮想ルータR間を接続するトンネルを開設することができる。
<仮想マシンVM/仮想ルータR間の仮想網構築処理手順>
次に、図19に示したステップS1904の仮想マシンVM/仮想ルータR間の仮想網構築処理の具体的な処理手順について説明する。
図25は、仮想マシンVM/仮想ルータR間の仮想網構築処理の具体的処理手順の一例を示すフローチャートである。図25のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、移動マシンの物理網IPアドレスpを特定する(ステップS2501)。
次に、制御装置101は、仮想マシン管理表500および仮想ルータ管理表600を参照して、移動マシンが接続する移動先のラック群rcの仮想ルータRの物理網IPアドレスrを特定する(ステップS2502)。
そして、制御装置101は、物理網IPアドレスp、r間のトンネルを形成して(ステップS2503)、仮想マシンVM/仮想ルータR間の仮想網構築処理を呼び出したステップに戻る。これにより、仮想マシンVMの移動に伴って、仮想マシンVM/仮想ルータR間を接続するトンネルを開設することができる。
<経路表設定処理手順>
次に、図19に示したステップS1905の経路表設定処理の具体的な処理手順について説明する。
図26は、経路表設定処理の具体的処理手順の一例を示すフローチャートである。図26のフローチャートにおいて、まず、制御装置101は、仮想ルータ管理表600を参照して、論理ルータに含まれる仮想ルータRを選択する(ステップS2601)。
次に、制御装置101は、仮想マシン管理表500および仮想ルータ管理表600を参照して、選択した仮想ルータRに対応する経路表Tを作成する経路表作成処理を実行する(ステップS2602)。そして、制御装置101は、仮想ルータRに作成した経路表Tを設定する(ステップS2603)。
次に、制御装置101は、仮想ルータ管理表600を参照して、選択されていない未選択の仮想ルータRがあるか否かを判断する(ステップS2604)。ここで、未選択の仮想ルータRがある場合(ステップS2604:Yes)、制御装置101は、ステップS2601に戻って、仮想ルータ管理表600を参照して、論理ルータに含まれる未選択の仮想ルータRを選択する。
一方、未選択の仮想ルータRがない場合(ステップS2604:No)、制御装置101は、経路表設定処理を呼び出したステップに戻る。これにより、論理ルータに含まれる各仮想ルータRに経路表Tを設定することができる。
<経路表作成処理手順>
次に、図26に示したステップS2602の経路表作成処理の具体的な処理手順について説明する。
図27は、経路表作成処理の具体的処理手順の一例を示すフローチャートである。図27のフローチャートにおいて、まず、制御装置101は、仮想ルータ管理表600を参照して、仮想ルータRが存在するラック群Xを特定する(ステップS2701)。次に、制御装置101は、仮想ルータ管理表600を参照して、仮想ルータRが接続している接続仮想網を選択する(ステップS2702)。
そして、制御装置101は、仮想ルータ管理表600を参照して、仮想ルータRの接続仮想網への接続インタフェースの仮想網IPアドレスiを特定する(ステップS2703)。次に、制御装置101は、仮想マシン管理表500を参照して、接続仮想網に接続している仮想マシンVMを選択する(ステップS2704)。
そして、制御装置101は、仮想マシン管理表500を参照して、仮想マシンVMの接続仮想網の仮想網IPアドレスeを特定し(ステップS2705)、仮想マシンVMが存在するラック群Yを特定する(ステップS2706)。次に、制御装置101は、ラック群Xとラック群Yが同一ラック群か否かを判断する(ステップS2707)。
ここで、同一ラック群の場合(ステップS2707:Yes)、制御装置101は、ネクストホップnを仮想網IPアドレスiとする(ステップS2708)。そして、制御装置101は、経路表Tの経路表エントリ(IPアドレス:e、ネットマスク:32、ネクストホップ:n)を作成する(ステップS2709)。
一方、同一ラック群ではない場合(ステップS2707:No)、制御装置101は、仮想ルータ管理表600を参照して、ラック群Yに存在する仮想ルータRのルータ連携網IPアドレスjを特定する(ステップS2710)。そして、制御装置101は、ネクストホップnを仮想網IPアドレスjとして(ステップS2711)、ステップS2709に移行する。
次に、制御装置101は、仮想マシン管理表500を参照して、接続仮想網に接続している未選択の仮想マシンVMがあるか否かを判断する(ステップS2712)。ここで、未選択の仮想マシンVMがある場合(ステップS2712:Yes)、制御装置101は、ステップS2704に戻って、接続仮想網に接続している未選択の仮想マシンVMを選択する。
一方、未選択の仮想マシンVMがない場合(ステップS2712:No)、制御装置101は、仮想ルータ管理表600を参照して、仮想ルータRが接続している未選択の接続仮想網があるか否かを判断する(ステップS2713)。ここで、未選択の接続仮想網がある場合(ステップS2713:Yes)、制御装置101は、ステップS2702に戻って、仮想ルータRが接続している未選択の接続仮想網を選択する。
一方、未選択の接続仮想網がない場合(ステップS2713:No)、制御装置101は、経路表作成処理を呼び出したステップに戻る。これにより、論理ルータに含まれる各仮想ルータRに対応する経路表Tを作成することができる。
(制御装置101の第2の制御処理手順)
次に、制御装置101の第2の制御処理手順について説明する。第2の制御処理は、仮想マシンVMを起動(追加)する場合に実行される制御装置101の制御処理である。
図28は、制御装置101の第2の制御処理手順の一例を示すフローチャートである。図28のフローチャートにおいて、まず、制御装置101は、仮想マシンVMの起動要求を受け付けたか否かを判断する(ステップS2801)。ここで、制御装置101は、仮想マシンVMの起動要求を受け付けるのを待つ(ステップS2801:No)。
そして、制御装置101は、仮想マシンVMの起動要求を受け付けた場合(ステップS2801:Yes)、仮想マシンVMを起動する(ステップS2802)。そして、制御装置101は、仮想マシンVM間の仮想網構築処理を実行する(ステップS2803)。仮想マシンVM間の仮想網構築処理の具体的な処理手順については、図29を用いて後述する。
次に、制御装置101は、仮想ルータ管理表600を参照して、起動先のラック群rcに仮想ルータRが存在するか否かを判断する(ステップS2804)。ここで、仮想ルータRが存在する場合(ステップS2804:Yes)、制御装置101は、ステップS2807に移行する。
一方、仮想ルータRが存在しない場合(ステップS2804:No)、制御装置101は、起動先のラック群rcに仮想ルータRを起動する(ステップS2805)。そして、制御装置101は、ルータ連携網構築処理を実行する(ステップS2806)。ルータ連携網構築処理の具体的な処理手順については、図24に示した処理手順と同様のため説明を省略する。
次に、制御装置101は、仮想マシンVM/仮想ルータR間の仮想網構築処理を実行する(ステップS2807)。仮想マシンVM/仮想ルータR間の仮想網構築処理の具体的な処理手順については、図25に示した処理手順と同様のため説明を省略する。
そして、制御装置101は、仮想ルータRに経路表Tを設定する経路表設定処理を実行して(ステップS2808)、本フローチャートによる一連の処理を終了する。経路表設定処理の具体的な処理手順については、図26に示した処理手順と同様のため説明を省略する。
これにより、仮想マシンVMの追加に伴って、L2仮想網およびL3仮想網を構築または再構築するとともに、各仮想ルータRに経路表Tを設定することができる。
<仮想マシンVM間の仮想網構築処理手順>
次に、図28に示したステップS2803の仮想マシンVM間の仮想網構築処理の具体的な処理手順について説明する。以下の説明は、起動対象となる仮想マシンVMを「追加マシン」と表記し、追加マシンとは異なる他の仮想マシンVMを「既存マシン」と表記する場合がある。
図29は、仮想マシンVM間の仮想網構築処理の具体的処理手順の一例を示すフローチャートである。図29のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、追加マシンの物理網IPアドレスpを特定する(ステップS2901)。
次に、制御装置101は、仮想マシン管理表500を参照して、既存マシンを選択し(ステップS2902)、既存マシンの物理網IPアドレスpkを特定する(ステップS2903)。そして、制御装置101は、物理網IPアドレスp、pk間のトンネルを形成する(ステップS2904)。
次に、制御装置101は、仮想マシン管理表500を参照して、選択していない未選択の既存マシンがあるか否かを判断する(ステップS2905)。ここで、未選択の既存マシンがある場合(ステップS2905:Yes)、制御装置101は、ステップS2902に戻って、未選択の既存マシンを選択する。
一方、未選択の既存マシンがない場合(ステップS2905:No)、制御装置101は、仮想マシンVM間の仮想網構築処理を呼び出したステップに戻る。これにより、仮想マシンVMの追加に伴って、仮想マシンVM間のL2仮想網を再構築することができる。
(制御装置101の第3の制御処理手順)
次に、制御装置101の第3の制御処理手順について説明する。第3の制御処理は、仮想マシンVMを停止する場合に実行される制御装置101の制御処理である。
図30は、制御装置101の第3の制御処理手順の一例を示すフローチャートである。図30のフローチャートにおいて、まず、制御装置101は、仮想マシンVMの停止要求を受け付けたか否かを判断する(ステップS3001)。ここで、制御装置101は、仮想マシンVMの停止要求を受け付けるのを待つ(ステップS3001:No)。
そして、制御装置101は、仮想マシンVMの停止要求を受け付けた場合(ステップS3001:Yes)、仮想マシンVMを停止する(ステップS3002)。そして、制御装置101は、仮想マシンVM間の仮想網撤去処理を実行する(ステップS3003)。仮想マシンVM間の仮想網撤去処理の具体的な処理手順については、図31を用いて後述する。
次に、制御装置101は、仮想マシンVM/仮想ルータR間の仮想網撤去処理を実行する(ステップS3004)。仮想マシンVM/仮想ルータR間の仮想網撤去処理の具体的な処理手順については、図21に示した処理手順と同様のため説明を省略する(ただし、「移動マシン」が、停止対象の仮想マシンVMとなる)。
次に、制御装置101は、仮想マシン管理表500を参照して、停止先のラック群rcに、停止対象の仮想マシンVMとは異なる他の仮想マシンVMが存在するか否かを判断する(ステップS3005)。ここで、他の仮想マシンVMが存在する場合(ステップS3005:Yes)、制御装置101は、ステップS3008に移行する。
一方、他の仮想マシンVMが存在しない場合(ステップS3005:No)、制御装置101は、ルータ連携網撤去処理を実行する(ステップS3006)。ルータ連携網撤去処理の具体的な処理手順については、図22に示した処理手順と同様のため説明を省略する。
次に、制御装置101は、停止先のラック群rcの仮想ルータRを停止する(ステップS3007)。そして、制御装置101は、仮想ルータRに経路表Tを設定する経路表設定処理を実行して(ステップS3008)、本フローチャートによる一連の処理を終了する。経路表設定処理の具体的な処理手順については、図26に示した処理手順と同様のため説明を省略する。
これにより、仮想マシンVMの停止に伴って、L2仮想網およびL3仮想網を構築または再構築するとともに、各仮想ルータRに経路表Tを設定することができる。
<仮想マシンVM間の仮想網撤去処理手順>
次に、図30に示したステップS3003の仮想マシンVM間の仮想網撤去処理の具体的な処理手順について説明する。以下の説明は、停止対象となる仮想マシンVMを「撤去マシン」と表記し、撤去マシンとは異なる他の仮想マシンVMを「既存マシン」と表記する場合がある。
図31は、仮想マシンVM間の仮想網撤去処理の具体的処理手順の一例を示すフローチャートである。図31のフローチャートにおいて、まず、制御装置101は、仮想マシン管理表500を参照して、撤去マシンの物理網IPアドレスpを特定する(ステップS3101)。
次に、制御装置101は、仮想マシン管理表500を参照して、既存マシンを選択し(ステップS3102)、既存マシンの物理網IPアドレスpkを特定する(ステップS3103)。そして、制御装置101は、物理網IPアドレスp、pk間のトンネルを撤去する(ステップS3104)。
次に、制御装置101は、仮想マシン管理表500を参照して、選択していない未選択の既存マシンがあるか否かを判断する(ステップS3105)。ここで、未選択の既存マシンがある場合(ステップS3105:Yes)、制御装置101は、ステップS3102に戻って、未選択の既存マシンを選択する。
一方、未選択の既存マシンがない場合(ステップS3105:No)、制御装置101は、仮想マシンVM間の仮想網撤去処理を呼び出したステップに戻る。これにより、仮想マシンVMの停止に伴って、仮想マシンVM間のL2仮想網を再構築することができる。
以上説明したように、実施の形態にかかる制御装置101によれば、複数のラック群rcに仮想マシンVM群を分散配置する際に、各ラック群rcに同一アドレスを設定した仮想ルータRを起動することができる。また、制御装置101によれば、仮想マシンVM群の仮想マシンVM間を接続するとともに、各ラック群rcの仮想マシンVMと仮想ルータRとを接続するL2仮想網を構築することができる。また、制御装置101によれば、各ラック群rcに起動した仮想ルータR間を接続するL3仮想網を構築することができる。そして、制御装置101によれば、各ラック群rcに起動した仮想ルータRに対応する経路表Tを作成して仮想ルータRに設定することができる。これにより、利用者に提供した仮想マシンVMのIPアドレス、経路表、arp(address resolution protocol)表などの設定を変更せずに、接続先の仮想ルータRの変更を伴う仮想マシンVMの移動を容易に行うことができる。
また、制御装置101によれば、ラック群rc間で仮想マシンVMを移動する際に、移動先のラック群rcに仮想ルータRを起動していない場合、移動先のラック群rcに仮想ルータRを起動することができる。これにより、ラック群rcを越えた仮想ルータRの移動に伴って、仮想ルータRを増設することができる。
また、制御装置101によれば、ラック群rcに新たな仮想マシンVMを起動する際に、ラック群rcに仮想ルータRを起動していない場合、そのラック群rcに仮想ルータRを起動することができる。これにより、仮想システムSへの仮想ルータRの追加に伴って、仮想ルータRを増設することができる。
また、制御装置101によれば、ラック群rcの仮想マシンVMを停止する際に、ラック群rcに他の仮想マシンVMが起動していない場合、ラック群rcの仮想ルータRを停止することができる。これにより、仮想マシンVMの停止に伴って、仮想マシンVMが接続されていない仮想ルータRを撤去することができる。
また、制御装置101によれば、各ラック群rcに起動した仮想ルータRについて、仮想マシンVM群の仮想マシンVMごとに、仮想マシンVMが仮想ルータRと同一ラック群にあるか否かを判定することができる。そして、同一ラック群にある場合、制御装置101によれば、仮想ルータRのL2仮想網の仮想網IPアドレスを、仮想マシンVMのL2仮想網の仮想網IPアドレスに対応付けることができる。一方、同一ラック群にない場合、制御装置101によれば、仮想マシンVMと同一ラック群の他の仮想ルータRのL3仮想網のルータ連携網IPアドレスを、仮想マシンVMのL2仮想網の仮想網IPアドレスに対応付けることができる。これにより、各ラック群rcに起動した仮想ルータRに対応する経路表Tを作成することができる。また、各仮想マシンVMが同一ラック群rc内の仮想ルータRとパケットを送受信するように制御することができる。
これらのことから、制御装置101によれば、データセンタ内の資源再分配や物理マシンPMのメンテナンス等の管理者側の都合で、ラック群rcを越えた仮想マシンVMの移動を容易に行うことが可能となり、データセンタの資源管理や運用管理の容易化を図ることができる。また、同一ラック群rcの仮想マシンVM間のルーティングは、同一ラック群rcの仮想ルータRで実施されるため、障害および通信の局所化を実現することができる。
なお、本実施の形態で説明した仮想ルータ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本仮想ルータ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本仮想ルータ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが、
複数のネットワークに仮想マシン群を分散配置する際に、前記複数のネットワークの各ネットワークに同一アドレスを設定した仮想ルータを起動し、
前記仮想マシン群の仮想マシン間を接続するとともに、前記各ネットワークの仮想マシンと仮想ルータとを接続する第1仮想網を構築し、
前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、
前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する、
処理を実行することを特徴とする仮想ルータ制御方法。
(付記2)前記起動する処理は、
前記複数のネットワークのいずれかのネットワークから他のネットワークに仮想マシンを移動する際に、前記他のネットワークに前記仮想ルータを起動していない場合、前記他のネットワークに前記仮想ルータを起動することを特徴とする付記1に記載の仮想ルータ制御方法。
(付記3)前記コンピュータが、
前記複数のネットワークのいずれかのネットワークの仮想マシンを停止する際に、前記いずれかのネットワークに他の仮想マシンが起動していない場合、前記いずれかのネットワークの前記仮想ルータを停止する処理を実行することを特徴とする付記1または2に記載の仮想ルータ制御方法。
(付記4)前記設定する処理は、
前記各ネットワークに起動した仮想ルータについて、前記仮想マシン群の各仮想マシンが前記仮想ルータと同一ネットワークにあるか否かに応じて、前記仮想ルータの前記第1仮想網のアドレス、または、前記各仮想マシンと同一ネットワークの仮想ルータの前記第2仮想網のアドレスを、前記各仮想マシンの前記第1仮想網のアドレスに対応付けることにより、前記経路表を作成することを特徴とする付記1〜3のいずれか一つに記載の仮想ルータ制御方法。
(付記5)前記設定する処理は、
前記各仮想マシンが前記仮想ルータと同一ネットワークにある場合、前記仮想ルータの前記第1仮想網のアドレスを、前記各仮想マシンの前記第1仮想網のアドレスに対応付けることを特徴とする付記4に記載の仮想ルータ制御方法。
(付記6)前記設定する処理は、
前記各仮想マシンが前記仮想ルータと同一ネットワークにない場合、前記各仮想マシンと同一ネットワークの仮想ルータの前記第2仮想網のアドレスを、前記各仮想マシンの前記第1仮想網のアドレスに対応付けることを特徴とする付記4または5に記載の仮想ルータ制御方法。
(付記7)前記起動する処理は、
前記各ネットワークに同一のIPアドレスおよびMACアドレスを設定した仮想ルータを起動することを特徴とする付記1〜6のいずれか一つに記載の仮想ルータ制御方法。
(付記8)前記第1仮想網はデータリンク層の仮想網であり、前記第2仮想網はネットワーク層の仮想網であることを特徴とする付記1〜7のいずれか一つに記載の仮想ルータ制御方法。
(付記9)前記起動する処理は、
前記複数のネットワークのいずれかのネットワークに前記仮想マシン群のいずれかの仮想マシンを起動する際に、前記いずれかのネットワークに前記仮想ルータを起動していない場合、前記いずれかのネットワークに前記仮想ルータを起動することを特徴とする付記1〜8のいずれか一つに記載の仮想ルータ制御方法。
(付記10)コンピュータに、
複数のネットワークに仮想マシン群を分散配置する際に、前記複数のネットワークの各ネットワークに同一アドレスを設定した仮想ルータを起動し、
前記仮想マシン群の仮想マシン間を接続するとともに、前記各ネットワークの仮想マシンと仮想ルータとを接続する第1仮想網を構築し、
前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、
前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する、
処理を実行させることを特徴とする仮想ルータ制御プログラム。
(付記11)コンピュータに、
複数のネットワークに仮想マシン群を分散配置する際に、前記複数のネットワークの各ネットワークに同一アドレスを設定した仮想ルータを起動し、
前記仮想マシン群の仮想マシン間を接続するとともに、前記各ネットワークの仮想マシンと仮想ルータとを接続する第1仮想網を構築し、
前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、
前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する、
処理を実行させる仮想ルータ制御プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
(付記12)複数のネットワークに仮想マシン群を分散配置する際に、前記複数のネットワークの各ネットワークに同一アドレスを設定した仮想ルータを起動する起動部と、
前記仮想マシン群の仮想マシン間を接続するとともに前記各ネットワークの仮想マシンと仮想ルータとを接続する第1仮想網を構築し、前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築する構築部と、
前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する設定部と、
を有することを特徴とする制御装置。
101 制御装置
200 システム
201 管理者端末
202 利用者端末
500,1600 仮想マシン管理表
600 仮想ルータ管理表
701 受付部
702 起動部
703 構築部
704 作成部
705 設定部
PM 物理マシン
VM 仮想マシン

Claims (6)

  1. コンピュータが、
    第1のネットワークから第2のネットワークに仮想マシンを移動する際に、前記第1のネットワークに起動した第1の仮想ルータと同一アドレスの仮想ルータが前記第2のネットワークに起動されていないと判断した場合、前記第1の仮想ルータと同一アドレスの第2の仮想ルータを前記第2のネットワークに起動し、
    前記第1および第2のネットワークの各ネットワークについて、前記各ネットワーク内の仮想マシンそれぞれと、前記各ネットワークに起動した仮想ルータとをそれぞれ接続する第1仮想網をそれぞれ構築し、
    前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、
    前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する、
    処理を実行することを特徴とする仮想ルータ制御方法。
  2. 前記コンピュータが、
    前記第1および第2のネットワークのいずれかのネットワークの仮想マシンを停止する際に、前記いずれかのネットワークに他の仮想マシンが起動していない場合、前記いずれかのネットワークに起動した仮想ルータを停止する、処理を実行することを特徴とする請求項1に記載の仮想ルータ制御方法。
  3. 前記設定する処理は、
    前記第1および第2の仮想ルータの各仮想ルータについて、前記第1および第2のネットワークのいずれかのネットワーク内の各仮想マシンが前記各仮想ルータと同一ネットワークにあるか否かに応じて、前記各仮想ルータの第1仮想網のアドレス、または、前記各仮想マシンと同一ネットワークの仮想ルータの第2仮想網のアドレスを、前記各仮想マシンの第1仮想網のアドレスに対応付けることにより、前記各仮想ルータに対応する経路表をそれぞれ作成することを特徴とする請求項1または2に記載の仮想ルータ制御方法。
  4. 前記起動する処理は、
    前記第1の仮想ルータと同一のIP(Internet Protocol)アドレスおよびMAC(Media Access Control)アドレスを設定した第2の仮想ルータを前記第2のネットワークに起動することを特徴とする請求項1〜3のいずれか一つに記載の仮想ルータ制御方法。
  5. コンピュータに、
    第1のネットワークから第2のネットワークに仮想マシンを移動する際に、前記第1のネットワークに起動した第1の仮想ルータと同一アドレスの仮想ルータが前記第2のネットワークに起動されていないと判断した場合、前記第1の仮想ルータと同一アドレスの第2の仮想ルータを前記第2のネットワークに起動し、
    前記第1および第2のネットワークの各ネットワークについて、前記各ネットワーク内の仮想マシンそれぞれと、前記各ネットワークに起動した仮想ルータとをそれぞれ接続する第1仮想網をそれぞれ構築し、
    前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築し、
    前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する、
    処理を実行させることを特徴とする仮想ルータ制御プログラム。
  6. 第1のネットワークから第2のネットワークに仮想マシンを移動する際に、前記第1のネットワークに起動した第1の仮想ルータと同一アドレスの仮想ルータが前記第2のネットワークに起動されていないと判断した場合、前記第1の仮想ルータと同一アドレスの第2の仮想ルータを前記第2のネットワークに起動する起動部と、
    前記第1および第2のネットワークの各ネットワークについて、前記各ネットワーク内の仮想マシンそれぞれと、前記各ネットワークに起動した仮想ルータとをそれぞれ接続する第1仮想網をそれぞれ構築し、前記各ネットワークに起動した仮想ルータ間を接続する第2仮想網を構築する構築部と、
    前記各ネットワークに起動した仮想ルータに対応する経路表を作成して前記仮想ルータに設定する設定部と、
    を有することを特徴とする制御装置。
JP2013166861A 2013-08-09 2013-08-09 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置 Expired - Fee Related JP6232826B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013166861A JP6232826B2 (ja) 2013-08-09 2013-08-09 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置
US14/336,272 US9634930B2 (en) 2013-08-09 2014-07-21 Method of controlling virtual router, computer-readable recording medium, and control device
EP14178159.1A EP2849394A1 (en) 2013-08-09 2014-07-23 Method of controlling virtual router, program, and control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013166861A JP6232826B2 (ja) 2013-08-09 2013-08-09 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2015035776A JP2015035776A (ja) 2015-02-19
JP6232826B2 true JP6232826B2 (ja) 2017-11-22

Family

ID=51228306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013166861A Expired - Fee Related JP6232826B2 (ja) 2013-08-09 2013-08-09 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置

Country Status (3)

Country Link
US (1) US9634930B2 (ja)
EP (1) EP2849394A1 (ja)
JP (1) JP6232826B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2983376A4 (en) * 2013-04-05 2016-12-07 Sony Corp CONTROLLER, CONTROL METHOD, COMPUTER PROGRAM, AND VIDEO TRANSMISSION SYSTEM
JP6467906B2 (ja) * 2014-12-19 2019-02-13 富士通株式会社 情報処理システム、情報処理方法、情報処理プログラム、及び情報処理装置
US9942290B2 (en) 2015-09-09 2018-04-10 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a shared progressive ABR download pipe
US9788053B2 (en) * 2015-09-09 2017-10-10 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a dedicated bandwidth pipe
WO2017080590A1 (en) * 2015-11-10 2017-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Technique for exchanging datagrams between application modules
WO2017113231A1 (zh) 2015-12-30 2017-07-06 华为技术有限公司 一种报文传输的方法、装置和系统
CN107122225B (zh) * 2016-02-25 2021-07-09 华为技术有限公司 一种启动虚拟机的方法和装置
EP3211531B1 (en) * 2016-02-25 2021-12-22 Huawei Technologies Co., Ltd. Virtual machine start method and apparatus
US10476738B1 (en) * 2016-06-13 2019-11-12 Amazon Technologies, Inc. Virtual network segmentation
US10346190B1 (en) 2016-06-13 2019-07-09 Amazon Technologies, Inc. Interprocess segmentation in virtual machine environments
US10756967B2 (en) 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack
US11102063B2 (en) 2017-07-20 2021-08-24 Vmware, Inc. Methods and apparatus to cross configure network resources of software defined data centers
US10530678B2 (en) * 2017-07-20 2020-01-07 Vmware, Inc Methods and apparatus to optimize packet flow among virtualized servers
US10841235B2 (en) 2017-07-20 2020-11-17 Vmware, Inc Methods and apparatus to optimize memory allocation in response to a storage rebalancing event
US11240160B2 (en) * 2018-12-28 2022-02-01 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network control
US11310568B2 (en) * 2020-05-05 2022-04-19 Panasonic Avionics Corporation Systems and methods for securely providing preview samples of media content distributed to in-flight entertainment systems
CN114760242B (zh) * 2022-03-30 2024-04-09 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质
CN115065630B (zh) * 2022-05-10 2024-04-09 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970902B1 (en) * 2001-05-24 2005-11-29 Cisco Technology, Inc. Method and apparatus for providing a distributed service in a network
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
FR2919778A1 (fr) * 2007-07-30 2009-02-06 Canon Kk Procede de transmission de paquets de donnees dans un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
US7945436B2 (en) * 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
GB2458154B (en) * 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
US7941539B2 (en) * 2008-06-30 2011-05-10 Oracle America, Inc. Method and system for creating a virtual router in a blade chassis to maintain connectivity
US8429647B2 (en) * 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8532116B2 (en) 2009-07-21 2013-09-10 Cisco Technology, Inc. Extended subnets
JP5760647B2 (ja) 2011-04-27 2015-08-12 日本電気株式会社 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム

Also Published As

Publication number Publication date
EP2849394A1 (en) 2015-03-18
US9634930B2 (en) 2017-04-25
JP2015035776A (ja) 2015-02-19
US20150043379A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
JP6232826B2 (ja) 仮想ルータ制御方法、仮想ルータ制御プログラムおよび制御装置
US11048560B2 (en) Replication management for expandable infrastructures
Li et al. Byzantine-resilient secure software-defined networks with multiple controllers in cloud
US11354336B2 (en) Fault-tolerant key management system
Beckett et al. Network configuration synthesis with abstract topologies
US9916147B2 (en) Deployment of a tool for testing migrated applications
Huang et al. Evaluating open-source cloud computing solutions for geosciences
US20030212908A1 (en) Method and system for simulating computer networks to facilitate testing of computer network security
US20090327446A1 (en) Software Application Striping
JP7082673B2 (ja) セキュリティ保護方法および装置
CN103581325B (zh) 一种云计算资源池系统及其实现方法
KR20200101961A (ko) 자기 식별 인터커넥트 토폴로지
CN111885174B (zh) 一种非相同网段的节点的处理方法及系统
CN103109293A (zh) 一种用户行为处理系统及方法
CN113839814A (zh) 去中心化的Kubernetes集群联邦实现方法及系统
CN110730095B (zh) 一种面向云计算平台的数据安全应急演练方法和系统
CN114710263A (zh) 密钥管理方法、密钥管理装置、密钥管理设备及存储介质
CN106165367A (zh) 一种存储装置的访问控制方法、存储装置以及控制系统
Tsai et al. Virtualized cloud data center networks: Issues in resource management
KR20190116512A (ko) 네트워크 구축 장치, 네트워크 구축 방법, 및 컴퓨터 판독가능 기록 매체에 저장된 프로그램
JP5464675B2 (ja) ミラーリングシステム、ノード、ミラーリング方法、及びプログラム
Li et al. A Architecture Design of Network Range Applied to Industrial Information Network Testing
Sun et al. Leveraging Rigorous Software Specification Towards Systematic Detection of SDN Control Conflicts (S).
Sklower et al. Very large scale cooperative experiments in emulab-derived systems
WO2022091420A1 (ja) ネットワーク管理装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171009

R150 Certificate of patent or registration of utility model

Ref document number: 6232826

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees