JP2009301117A - Virtual machine system and program for virtual machine monitor - Google Patents
Virtual machine system and program for virtual machine monitor Download PDFInfo
- Publication number
- JP2009301117A JP2009301117A JP2008151871A JP2008151871A JP2009301117A JP 2009301117 A JP2009301117 A JP 2009301117A JP 2008151871 A JP2008151871 A JP 2008151871A JP 2008151871 A JP2008151871 A JP 2008151871A JP 2009301117 A JP2009301117 A JP 2009301117A
- Authority
- JP
- Japan
- Prior art keywords
- communication data
- virtual machine
- guest
- machine monitor
- address
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、ゲストOSが動作可能な第1の仮想マシンモニタが動作する第1のハードウェアと、ゲストOSが動作可能な第2の仮想マシンモニタが動作する第2のハードウェアとがネットワークにより接続された仮想マシンシステムに係り、特に、仮想マシンモニタ間でゲストOSが移動する場合に好適な仮想マシンシステム及び仮想マシンモニタ用プログラムプログラムに関する。 According to the present invention, the first hardware on which the first virtual machine monitor capable of operating the guest OS operates and the second hardware on which the second virtual machine monitor capable of operating the guest OS operate are connected via a network. The present invention relates to a connected virtual machine system, and more particularly to a virtual machine system and a virtual machine monitor program program suitable when a guest OS moves between virtual machine monitors.
ハードウェア(実ハードウェア)上で仮想マシンモニタ(Virtual Machine Monitor: VMM)が動作し、当該モニタ上で当該ハードウェア(HW)をエミュレートする仮想マシンが複数存在できる環境は、仮想マシン環境(または仮想化環境)と呼ばれている。このような仮想マシン環境では、各仮想マシン上で、オペレーティングシステム(以下、ゲストOSと称する)が作動することで、1台のHW上に複数のゲストOS環境を構築することができる
仮想マシンモニタは、HW上で動作するオペレーティングシステム(以下、ホストOSと称する)のカーネル上のモジュールとして実現されるタイプと、仮想マシンモニタ自身がハーイパーバイザと呼ばれるカーネル自身として実現されるタイプとに分類される。どちらのタイプの仮想マシンモニタを適用しても、1台のHW上に複数のゲストOS環境を構築することができる。つまり、どちらのタイプの仮想マシンモニタでも、ゲストOSのHWに対する要求を仮想マシンモニタがエミュレートし、エミュレートされた要求を仮想マシンモニタが受け取って当該HWにアクセスするという点では、同じである。
An environment in which a virtual machine monitor (VMM) operates on hardware (real hardware) and a plurality of virtual machines emulating the hardware (HW) on the monitor can exist is a virtual machine environment ( Or virtualized environment). In such a virtual machine environment, a virtual machine monitor capable of constructing a plurality of guest OS environments on one HW by operating an operating system (hereinafter referred to as a guest OS) on each virtual machine. Are classified into a type realized as a module on the kernel of an operating system (hereinafter referred to as a host OS) operating on the HW, and a type realized as a kernel itself called a hypervisor. The Regardless of which type of virtual machine monitor is applied, a plurality of guest OS environments can be constructed on one HW. That is, both types of virtual machine monitors are the same in that the virtual machine monitor emulates a request for the guest OS's HW, and the virtual machine monitor receives the emulated request and accesses the HW. .
仮想マシン環境では、ゲストOSイメージを格納した共有ディスク装置に、仮想マシンモニタを持つ複数台のHWを接続することで、HW(上で動作する仮想マシンモニタ)間でゲストOSを移動(マイグレート)すること、つまり仮想マシンを移動することが可能となる。ゲストOSイメージとは、記憶領域にインストールされて設定されたゲストOSの記憶イメージである、
このようなHW(上で動作する仮想マシンモニタ)間をまたがった仮想マシン(ゲストOS)の移動(マイグレーション)は、様々な状況で利用される。例えば特許文献1には、HWを停止させる際に、当該HW上で動作する仮想マシンモニタ(つまり当該HWが持つ仮想マシンモニタ)によって実現される仮想マシン環境で稼働中の仮想マシンを他のHW(上で動作する仮想マシンモニタ)に移動すること、或いはHWの負荷が増大した際に稼働中の仮想マシンを負荷の軽い他のHW(上で動作する仮想マシンモニタ)に移動することが記載されている。
Such migration (migration) of a virtual machine (guest OS) across HWs (virtual machine monitors operating on the above) is used in various situations. For example,
しかし、上記特許文献1に記載されているような仮想マシン(ゲストOS)の移動では、以下に述べるように不具合が発生する可能性がある。今、移動元の仮想マシンモニタが動作するHWが、第1のネットワークセグメントと接続されているものとする。一方、移動先の仮想マシンモニタが動作するHWが、上記第1のネットワークセグメントとは異なる、第2のネットワークセグメントと接続されているものとする。この場合、移動後の仮想マシン(ゲストOS)は、移動前の仮想マシンと通信していた相手(クライアント端末)と通信できなくなる可能性がある。このような不具合は、移動後の仮想マシン(ゲストOS)のIP(Internet Protocol)アドレスに関する通信を、ルータが中継できないために発生する。
However, the movement of the virtual machine (guest OS) as described in
本発明は上記事情を考慮してなされたものでその目的は、ゲストOSの移動先の仮想マシンモニタが動作するハードウェアと接続されているネットワークセグメントが、移動元の仮想マシンモニタが動作するハードウェアと接続されているネットワークセグメントとは異なる場合でも、ゲストOSの移動前と変わらずに通信できるシステム及び方法を提供する。 The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide a network segment connected to hardware on which the virtual machine monitor to which the guest OS is moved operates and hardware on which the migration source virtual machine monitor operates. The present invention provides a system and method capable of communicating without changing from a guest OS moving even if it is different from the network segment connected to the hardware.
本発明の1つの観点によれば、ゲストOSが動作可能な第1の仮想マシンモニタと、前記第1の仮想マシンモニタが動作する第1のハードウェアと、ゲストOSが動作可能な第2の仮想マシンモニタと、前記第2の仮想マシンモニタが動作する第2のハードウェアと、前記第1のハードウェア及び前記第2のハードウェアを接続するネットワークとを具備する仮想マシンシステムが提供される。 According to one aspect of the present invention, a first virtual machine monitor that can operate a guest OS, first hardware that operates the first virtual machine monitor, and a second virtual machine that can operate the guest OS. Provided is a virtual machine system comprising a virtual machine monitor, second hardware on which the second virtual machine monitor operates, and a network connecting the first hardware and the second hardware. .
前記第1の仮想マシンモニタは、前記第1のハードウェアと前記第1の仮想マシンモニタ上で動作するゲストOSとの間の通信データの入出力を制御する入出力制御手段と、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタへのゲストOSの移動及び前記第2の仮想マシンモニタから前記第1の仮想マシンモニタへのゲストOSの移動を制御するゲストOS制御手段と、前記ゲストOS制御手段の制御によるゲストOSの移動状態を管理する移動管理手段と、前記移動管理手段によって管理されているゲストOSの移動状態に基づき、通信データが、前記第1の仮想マシンモニタ及び第2の仮想マシンモニタの間を移動したゲストOS宛ての第1のIPパケットを含む第1の通信データ、前記第1のIPパケットが格納された第2の通信データ、前記移動したゲストOSが送信する第2のIPパケットを含む第3の通信データ、または前記第2のIPパケットが格納された第4の通信データであるかを判定し、当該判定結果に応じて前記通信データの転送を制御する通信転送制御手段とを含む。前記第1の仮想マシンモニタの前記通信転送制御手段は、前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOS宛ての第1の通信データである場合、当該第1の通信データの第1のIPパケットを前記第2の仮想マシンモニタ宛ての第2の通信データに格納して、当該第1のIPパケットが格納された前記第2の通信データを前記入出力制御手段により前記第2の仮想マシンモニタに転送し、前記通信データが、前記第2の仮想マシンモニタから前記第1の仮想マシンモニタに移動したゲストOS宛ての第1の通信データの第1のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第2の通信データである場合、前記第1の仮想マシンモニタに移動したゲストOS宛ての当該第1の通信データの前記第1のIPパケットを当該第2の通信データから取り出して、当該取り出された第1のIPパケットを含む第5の通信データを前記第1の仮想マシンモニタに移動したゲストOSに前記入出力制御手段により提供し、前記通信データが、前記第1の仮想マシンモニタに移動したゲストOSが送信した第3の通信データである場合、前記第2の仮想マシンモニタ宛ての第4の通信データに当該第3の通信データの第2のIPパケットを格納して、当該第2のIPパケットが格納された前記第4の通信データを前記入出力制御手段により前記第2の仮想マシンモニタに転送し、前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOSが送信した第3の通信データの第2のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第4の通信データである場合、前記第2の仮想マシンモニタに移動したゲストOSが送信した当該第3の通信データの前記第2のIPパケットを当該第4の通信データから取り出して、当該取り出された第2のIPパケットを含む第6の通信データを前記入出力制御手段により前記ネットワークに送信する。 The first virtual machine monitor includes input / output control means for controlling input / output of communication data between the first hardware and a guest OS operating on the first virtual machine monitor; Guest OS control means for controlling the movement of the guest OS from the virtual machine monitor to the second virtual machine monitor and the movement of the guest OS from the second virtual machine monitor to the first virtual machine monitor; Based on the migration status of the guest OS managed by the migration management means and the migration status of the guest OS managed by the migration management means, the communication data is stored in the first virtual machine monitor and the first virtual machine monitor. First communication data including a first IP packet addressed to a guest OS that has moved between two virtual machine monitors, and the first IP packet storing the first IP packet. The communication data, the third communication data including the second IP packet transmitted by the moved guest OS, or the fourth communication data in which the second IP packet is stored. Communication transfer control means for controlling transfer of the communication data according to the result. The communication transfer control means of the first virtual machine monitor is configured such that the communication data is first communication data addressed to a guest OS that has been moved from the first virtual machine monitor to the second virtual machine monitor. The first IP packet of the first communication data is stored in the second communication data addressed to the second virtual machine monitor, and the second communication data in which the first IP packet is stored is stored. The communication data is transferred to the second virtual machine monitor by the input / output control means, and the communication data is transferred from the second virtual machine monitor to the first virtual machine monitor. In the case of the second communication data addressed to the first virtual machine monitor storing the first IP packet, the first address addressed to the guest OS moved to the first virtual machine monitor. The first IP packet of the communication data is extracted from the second communication data, and the fifth communication data including the extracted first IP packet is transferred to the first virtual machine monitor. When the communication data provided by the input / output control means is the third communication data transmitted by the guest OS moved to the first virtual machine monitor, the fourth data addressed to the second virtual machine monitor A second IP packet of the third communication data is stored in communication data, and the fourth virtual machine monitor stores the fourth communication data in which the second IP packet is stored by the input / output control means. And the communication data is transferred from the first virtual machine monitor to the second virtual machine monitor. And the second communication data addressed to the first virtual machine monitor and stored in the second virtual machine monitor, the second communication data sent by the guest OS moved to the second virtual machine monitor. An IP packet is extracted from the fourth communication data, and sixth communication data including the extracted second IP packet is transmitted to the network by the input / output control means.
本発明によれば、ゲストOSの移動先の仮想マシンモニタが動作するハードウェアと接続されているネットワークセグメントが、移動元の仮想マシンモニタが動作するハードウェアと接続されているネットワークセグメントとは異なる場合でも、ゲストOSの移動前と変わらずに通信できる。 According to the present invention, the network segment connected to the hardware on which the virtual machine monitor to which the guest OS is moved operates is different from the network segment connected to the hardware on which the migration source virtual machine monitor is operated. Even in this case, communication can be performed without changing the guest OS.
以下、本発明の実施の形態につき図面を参照して説明する。
<仮想マシンシステムの構成>
図1は本発明の一実施形態に係る仮想マシンシステムの構成を示すブロック図である。図1において、ハードウェア(HW)11-1及び11-2上には、それぞれ仮想マシンモニタ12-1及び12-2が配置されている。仮想マシンモニタ12-1及び12-2は、それぞれIPアドレス(ネットワークアドレス)“192.168.1.10”及び“192.168.2.10”を持ち、TCP/IP(Transmission Control Protocol/Internet Protocol)による通信が可能なように構成されている。
Embodiments of the present invention will be described below with reference to the drawings.
<Virtual machine system configuration>
FIG. 1 is a block diagram showing a configuration of a virtual machine system according to an embodiment of the present invention. In FIG. 1, virtual machine monitors 12-1 and 12-2 are arranged on hardware (HW) 11-1 and 11-2, respectively. The virtual machine monitors 12-1 and 12-2 have IP addresses (network addresses) “192.168.1.10” and “192.168.2.10”, respectively, and are TCP / IP (Transmission Control Protocol / Internet). Protocol).
仮想マシンモニタ12-1上には仮想マシン13が配置され、当該仮想マシン13上にはゲストOS14が稼動可能に配置されている。ゲストOS14は、IPアドレス“192.168.1.100”を持つ。HW11-1及び11-2は、それぞれCPU、メモリ、入出力装置(いずれも図示せず)を含む。
A
HW11-1及び11-2は、例えばストレージエリアネットワーク(SAN)19-1及び19-2により共有ディスク装置15と接続されている。共有ディスク装置15には、ゲストOS14を実現するための、ゲストOSイメージ150が格納されている。HW11-1及び11-2はまた、それぞれ、ネットワークアドレスが異なるネットワークセグメント16-1及び16-2に接続されている。ネットワークセグメント16-1及び16-2のネットワークアドレスは、それぞれ、“192.168.1.0/24”及び“192.168.2.0/24”であるものとする。ネットワークセグメント16-1及び16-2は、ネットワーク、例えばローカルエリアネットワーク(LAN)16を構成する。ネットワークセグメント16-1及び16-2は、ルータ17によって接続されている。ルータ17は、異なるネットワークアドレスのネットワークセグメント16-1及び16-2間を接続するためのルーティング機能を有する。
The HWs 11-1 and 11-2 are connected to the shared
ネットワークセグメント16-1には、クライアント端末(以下、クライアントと称する)18が接続されている。クライアント18は、例えばIPアドレス“192.168.1.50”を持つ。図1の状態では、クライアント18は、ネットワークセグメント16-1を介してゲストOS14とTCP/IPによる通信を行うことができる。
A client terminal (hereinafter referred to as a client) 18 is connected to the network segment 16-1. The
ここで、図1において矢印A1に示されるように、仮想マシン13及びゲストOS14が仮想マシンモニタ12-1から仮想マシンモニタ12-2上に移動されたものとする。この仮想マシンモニタ12-2(つまり、仮想マシン13及びゲストOS14の移動先の仮想マシンモニタ12-2)が配置されたHW11-2が接続されているネットワークセグメント16-2のネットワークアドレスは、上述のように、仮想マシンモニタ12-1(つまり、当該仮想マシン13及びゲストOS14の移動元の仮想マシンモニタ12-1)が配置されたHW11-1が接続されているネットワークセグメント16-1のネットワークアドレスとは異なる。このため従来技術であれば、仮想マシン13及びゲストOS14の移動後は、クライアント18は当該移動後のゲストOS14と通信することができない。
Here, it is assumed that the
そこで本実施形態では、ネットワークアドレスが異なるネットワークセグメントにゲストOS14(仮想マシン13及びゲストOS14)が移動した後でも、クライアント18とゲストOS14との間で通信可能とするため、次のような通信データが用いられる。即ち、ゲストOS14へ/からの通信データ(第1/第3の通信データ)が仮想マシンモニタ12-1及び12-2間で授受される通信データ(第2/第4の通信データ)の中に格納(カプセル化)され、この第1/第3の通信データ(詳細には、第1/第3の通信データに含まれているIPパケット)が格納された第2/第4の通信データが用いられる。この第2/第4の通信データの送信元IPアドレス及び宛先IPアドレス、もしくは宛先IPアドレス及び送信元IPアドレスには、仮想マシンモニタ12-1及び12-2のIPアドレスが用いられる。この第2/第4の通信データが仮想マシンモニタ12-1及び12-2間をルータ17によって中継されることで、当該第2/第4の通信データに格納されている第1/第2の通信データをクライアント18とゲストOS14との間で授受することができる。
Therefore, in the present embodiment, in order to enable communication between the
<ゲストOSの移動前後の通信シーケンス>
次に、図1のシステムで適用される、ゲストOS14の移動前後の通信シーケンスについて、ゲストOS14とクライアント18との間で通信データが授受される場合を例に、図2のシーケンスチャートを参照して説明する。
<Communication sequence before and after moving the guest OS>
Next, referring to the sequence chart of FIG. 2, the communication sequence applied before and after the movement of the
まず、ゲストOS14の移動前の状態で行われる、ゲストOS14とクライアント18との間の通信について説明する。
クライアント18は、ゲストOS14に通信データを送信する必要があり、且つ当該ゲストOS14のMACアドレス(物理アドレス)が分からない場合、当該MACアドレスを取得するためのARP(Address Resolution Protocol:アドレス解決プロトコル)要求(ARP要求パケット)を、ネットワークセグメント16-1上にブロードキャストする(ステップS1)。このARP要求は、クライアント18が有するMACアドレス及びIPアドレスを、それぞれ送信元MACアドレス及び送信元IPアドレスとして含む。またARP要求は、ゲストOS14のIPアドレスを宛て先IPアドレスとして含む。
First, communication between the
When the
ゲストOS14は、クライアント18からのARP要求を受け取ると、当該ゲストOS14のMACアドレスをクライアント18に通知するためのARP応答(ARP応答パケット)を当該クライアント18に返す(ステップS2)。クライアント18は、ゲストOS14からのARP応答で通知された当該ゲストOS14のMACアドレスを宛先MACアドレスとして用いることにより、当該ゲストOS14に通信データ(第7の通信データ)を送信する(ステップS3)。
Upon receiving the ARP request from the
一方、ゲストOS14は、クライアント18に通信データを送信する必要があり、且つ当該クライアント18のMACアドレスが分からない場合、当該MACアドレスを取得するためのARP要求を、ネットワークセグメント16-1上にブロードキャストする(ステップS4)。
On the other hand, when the
クライアント18は、ゲストOS14からのARP要求を受け取ると、当該クライアント18のMACアドレスをゲストOS14に通知するためのARP応答を当該ゲストOS14に返す(ステップS5)。ゲストOS14は、クライアント18からのARP応答で通知された当該クライアント18のMACアドレスを宛先MACアドレスとして用いることにより、当該クライアント18に通信データ(第8の通信データ)を送信する(ステップS6)。
Upon receiving the ARP request from the
なお、ステップS1,S2及びS4,S5でのARPパケットによるアドレス解決は、それぞれ、クライアント18及びゲストOS14上にアドレス解決結果を格納するキャッシュ(ARPキャッシュ)が存在し、且つ当該キャッシュに、ゲストOS14及びクライアント18のMACアドレスが当該ゲストOS14及びクライアント18のIPアドレスに対応付けて格納されている場合、省略される。
In the address resolution by the ARP packet in steps S1, S2, S4, and S5, a cache (ARP cache) for storing the address resolution result exists on the
次に、ゲストOS14の移動後の状態で行われる、ゲストOS14とクライアント18との間の通信について、クライアント18からゲストOS14に通信データを送信する場合を例に、図2のシーケンスチャートに加えて、図3乃至図6の通信データ例を参照して説明する。
Next, in addition to the sequence chart of FIG. 2, the communication between the
今、(仮想マシン13及び)ゲストOS14が、図1において矢印A1に示されるように、仮想マシンモニタ12-1から仮想マシンモニタ12-2上に移動されたものとする。このような状態で、ゲストOS14の移動を認識していないクライアント18から、当該ゲストOS14のMACアドレスを取得するための、図3に示すフォーマットのARP要求30がネットワークセグメント16-1上にブロードキャストされたものとする(ステップS7)。
Now, assume that the (virtual machine 13) and
クライアント18からのARP要求30は、データリンク層ヘッダ31及びARP要求パケット32を含む。データリンク層ヘッダ31の宛先MACアドレス及び送信元MACアドレスには、それぞれ、ブロードキャストアドレス及びクライアント18のMACアドレスが用いられる。ARP要求パケット32は、ターゲットMACアドレス及びターゲットIPアドレス、並びに送信元MACアドレス及び送信元IPアドレスを含む。ARP要求パケット32のターゲットIPアドレスには、ゲストOS14のIPアドレス“192.168.1.100”が用いられる。ARP要求パケット32の送信元MACアドレスにはクライアント18のMACアドレスが用いられ、ARP要求パケット32の送信元IPアドレスにはクライアント18のIPアドレス“192.168.1.50”が用いられる。
The
ゲストOS14の移動元の仮想マシンモニタ12-1は、当該ゲストOS14の移動後において、当該ゲストOS14のIPアドレス“192.168.1.100”に関する、クライアント18からのARP要求30に対し、当該ゲストOS14に代わって、当該ゲストOS14が使用していたMACアドレスをクライアント18に通知するための、図4に示すフォーマットのARP応答40を当該クライアント18に返す(ステップS8)。
The migration source virtual machine monitor 12-1 of the
ARP応答40は、データリンク層ヘッダ41及びARP応答パケット42を含む。データリンク層ヘッダ41の宛先MACアドレス及び送信元MACアドレスには、それぞれクライアント18及びゲストOS14のMACアドレスが用いられる。ARP応答パケット42は、宛先MACアドレス及び宛先IPアドレス、並びに送信元MACアドレス及び送信元IPアドレスを含む。ARP応答パケット42の宛先MACアドレス及び送信元MACアドレスには、それぞれクライアント18及びゲストOS14のMACアドレスが用いられる。ARP応答パケット42の宛先IPアドレス及び送信元IPアドレスには、それぞれクライアント18のIPアドレス“192.168.1.50”及びゲストOS14のIPアドレス“192.168.1.100”が用いられる。
The
クライアント18は、仮想マシンモニタ12-1からのARP応答40を受け取ると、当該ARP応答40で通知されたゲストOS14のMACアドレスに基づき、図5に示すフォーマットの通信データ(第1の通信データ)50を当該ゲストOS14のMACアドレス宛に送信する(ステップS9)。
When the
通信データ50は、データリンク層ヘッダ51、IPヘッダ52及びIPペイロード53を含む。データリンク層ヘッダ51の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14及びクライアント18のMACアドレスが用いられる。IPヘッダ52の宛先IPアドレス及び送信元IPアドレスには、それぞれゲストOS14のIPアドレス“192.168.1.100”及びクライアント18のIPアドレス“192.168.1.50”が用いられる。
The
クライアント18からの通信データ50は、当該クライアント18からのARP要求30に対してARP応答40(つまり、ゲストOS14のMACアドレスを通知するためのARP応答40)を送信した仮想マシンモニタ12-1によって受け取られる。つまり仮想マシンモニタ12-1は、クライアント18からの通信データ50を、当該仮想マシンモニタ12-1から移動されたゲストOS14に代わって受け取る。
The
すると仮想マシンモニタ12-1は、クライアント18からの通信データ50に基づいて、仮想マシンモニタ12-1及び12-2間で授受される、図5に示すフォーマットの通信データ(第2の通信データ)54を作成する。この通信データ54は、IPヘッダ55及びIPペイロード56を含む。IPヘッダ55の宛先IPアドレス及び送信元IPアドレスには、それぞれ仮想マシンモニタ12-2(ゲストOS14の移動先の仮想マシンモニタ12-2)のIPアドレス“192.168.2.10”及び仮想マシンモニタ12-1(ゲストOS14の移動元の仮想マシンモニタ12-1)のIPアドレス“192.168.1.10”が用いられる。またIPペイロード56は、クライアント18からの通信データ50内のIPヘッダ52及びIPペイロード53、つまり通信データ50内のIPパケット(移動したゲストOS宛てのIPパケット)の部分を含む。
Then, based on the
このように仮想マシンモニタ12-1は、クライアント18からの通信データ50からデータリンク層ヘッダ51を外し、残されたIPパケットの部分(IPヘッダ52及びIPペイロード53)を、仮想マシンモニタ12-1(192.168.1.10)と仮想マシンモニタ12-2(192.168.2.10)との間で授受される通信データ(のIPペイロード56)に格納することによって、通信データ54を作成する。つまり仮想マシンモニタ12-1は、クライアント18からの通信データ(第1の通信データ)50(詳細には、通信データ50のIPパケットであるIPヘッダ52及びIPペイロード53)が(IPペイロード56に)格納された通信データ(第2の通信データ)54を作成する(ステップS10)。
As described above, the virtual machine monitor 12-1 removes the data
仮想マシンモニタ12-1は通信データ54を作成すると、当該通信データ54を、当該通信データ54に含まれているIPヘッダ55の宛先IPアドレスで指定される仮想マシンモニタ12-2に送信(中継)する(ステップS11)。なお、この通信データ(第2の通信データ)54には図示せぬデータリンク層ヘッダが付加される。このデータリンク層ヘッダの付加については、図24を参照してのステップS76の処理で後述する。
When the virtual machine monitor 12-1 creates the
仮想マシンモニタ12-2は、仮想マシンモニタ12-1によって中継された通信データ(第2の通信データ)54を受信すると、当該通信データ54から、クライアント18によって送信された通信データ(第1の通信データ)50の移動したゲストOS宛てのIPパケット(IPヘッダ52及びIPペイロード53)を取り出す(ステップS12)。このステップS12において仮想マシンモニタ12-2は、取り出されたデータ(IPヘッダ52及びIPペイロード53)を含む、ゲストOS14のMACアドレス宛ての、図6に示すフォーマットの通信データ(第5の通信データ)60を作成する(ステップS12)。
When the virtual machine monitor 12-2 receives the communication data (second communication data) 54 relayed by the virtual machine monitor 12-1, the virtual machine monitor 12-2 receives communication data (first data) transmitted from the
通信データ60は、データリンク層ヘッダ61及び取り出された通信データ(IPヘッダ52及びIPペイロード53)を含む。データリンク層ヘッダ61の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14のMACアドレス及び偽のMACアドレスが用いられる。つまり仮想マシンモニタ12-2は、取り出された通信データ(IPヘッダ52及びIPペイロード53)に、ゲストOS14のMACアドレス及び偽のMACアドレスを、それぞれ宛先MACアドレス及び送信元MACアドレスとするデータリンク層ヘッダ61が付加された、通信データ60を作成する。
The
偽のMACアドレスには、データリンク層ヘッダ51を作成することができればどのようなMACアドレスを用いても構わない。本実施形態では、偽のMACアドレスとして、実在しないMACアドレス、例えばMACアドレスの上位3バイトに当たるベンダIDに存在しない値が用いられる。
Any MAC address may be used as the fake MAC address as long as the data
仮想マシンモニタ12-2は、作成された通信データ60を、当該通信データ60のデータリンク層ヘッダ61に設定されている宛先IPアドレスで指定されるゲストOS14、即ち当該仮想マシンモニタ12-2上に移動されたゲストOS14に送信する(ステップS13)。このようにして、クライアント18からの、仮想マシンモニタ12-2上に移動されたゲストOS14(のMACアドレス)宛ての通信データ50(に含まれているIPヘッダ52及びIPペイロード53)が、仮想マシンモニタ12-1及び12-2で中継されて、当該ゲストOS14に送信される。
The virtual machine monitor 12-2 displays the created
次に、ゲストOS14の移動後の状態で行われる、ゲストOS14とクライアント18との間の通信について、ゲストOS14からクライアント18に通信データを送信する場合を例に、図2のシーケンスチャートに加えて、図7乃至図12の通信データ例を参照して説明する。
Next, for communication between the
今、ゲストOS14から、クライアント18のMACアドレスを取得するための、図7に示すフォーマットのARP要求70がネットワークセグメント16-2上にブロードキャストされたものとする(ステップS14)。
Assume that the
ゲストOS14からのARP要求70は、データリンク層ヘッダ71及びARP要求パケット72を含む。データリンク層ヘッダ71の宛先MACアドレス及び送信元MACアドレスには、それぞれ、ブロードキャストアドレス及びゲストOS14のMACアドレスが用いられる。ARP要求パケット72のターゲットIPアドレスには、クライアント18のIPアドレス“192.168.1.50”が用いられる。ARP要求パケット72の送信元MACアドレスにはゲストOS14のMACアドレスが用いられ、当該ARP要求パケット72の送信元IPアドレスにはゲストOS14のIPアドレス“192.168.1.100”が用いられる。
The
仮想マシンモニタ12-2は、当該仮想マシンモニタ12-2上に移動されたゲストOS14(192.168.1.100)が送信するARPM要求70を受け取ると、偽のMACアドレスを当該ゲストOS14に通知するための、図8に示すフォーマットの偽のARP応答80を当該ゲストOS14に返す(ステップS15)。
When the virtual machine monitor 12-2 receives the
ARP応答80は、データリンク層ヘッダ81及びARP応答パケット82を含む。データリンク層ヘッダ81の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14のMACアドレス及び偽のMACアドレスが用いられる。この偽のMACアドレスには、前記仮想マシンモニタ12-2によって中継される通信データ60に含まれるデータリンク層ヘッダ81の送信元MACアドレスと同様に、実在しないMACアドレス、例えばMACアドレスの上位3バイトに当たるベンダIDに存在しない値が用いられる。
The
ARP応答パケット82の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14のMACアドレス及び上記偽のMACアドレスが用いられる。ARP応答パケット82の宛先IPアドレス及び送信元IPアドレスには、それぞれゲストOS14のIPアドレス“192.168.1.100”及びクライアント18のIPアドレス“192.168.1.50”が用いられる。
As the destination MAC address and the source MAC address of the
ゲストOS14は、仮想マシンモニタ12-2からのARP応答80を受け取ると、当該ARP応答80で通知された偽のMACアドレスに基づき、図9に示すフォーマットの通信データ(第3の通信データ)90を当該偽のMACアドレス宛に送信する(ステップS16)。
When the
通信データ90は、データリンク層ヘッダ91、IPヘッダ92及びIPペイロード93を含む。データリンク層ヘッダ91の宛先MACアドレス及び送信元MACアドレスには、それぞれ偽のMACアドレス及びゲストOS14のMACアドレスが用いられる。IPヘッダ92の宛先IPアドレス及び送信元IPアドレスには、それぞれクライアント18のIPアドレス“192.168.1.50”及びゲストOS14のIPアドレス“192.168.1.100”が用いられる。
The
ゲストOS14からの通信データ90は、当該ゲストOS14からのARP要求70に対してARP応答80(つまり、偽のMACアドレスを通知するための偽のARP応答80)を送信した仮想マシンモニタ12-2によって受け取られる。つまり仮想マシンモニタ12-2は、当該仮想マシンモニタ12-2上に移動されたゲストOS14からの通信データ90を受け取る。
The
すると仮想マシンモニタ12-2は、ゲストOS14からの通信データ(第3の通信データ)90に基づいて、仮想マシンモニタ12-1及び12-2間で授受される、図9に示すフォーマットの通信データ(第3の通信データ)94を作成する。この通信データ94は、IPヘッダ95及びIPペイロード96を含む。IPヘッダ95の宛先IPアドレス及び送信元IPアドレスには、それぞれ仮想マシンモニタ12-1(ゲストOS14の移動元の仮想マシンモニタ12-1)のIPアドレス“192.168.1.10”及び仮想マシンモニタ12-2(ゲストOS14の移動先の仮想マシンモニタ12-2)のIPアドレス“192.168.2.10”が用いられる。またIPペイロード96は、ゲストOS14からの通信データ90内のIPヘッダ92及びIPペイロード93(IPパケット)を含む。
Then, the virtual machine monitor 12-2 transmits and receives between the virtual machine monitors 12-1 and 12-2 based on the communication data (third communication data) 90 from the
つまり仮想マシンモニタ12-2は、ゲストOS14からの通信データ90からデータリンク層ヘッダ91を外し、残されたIPパケット(IPヘッダ92及びIPペイロード93)を、仮想マシンモニタ12-1(192.168.1.10)と仮想マシンモニタ12-2(192.168.2.10)との間で授受される通信データ(のIPペイロード96)に格納することによって、通信データ94を作成する。このように仮想マシンモニタ12-2は、ゲストOS14からの通信データ(第3の通信データ)90(詳細には、通信データ90のIPパケットであるIPヘッダ92及びIPペイロード93)が(IPペイロード96に)格納された通信データ(第4の通信データ)94を作成する(ステップS17)。
That is, the virtual machine monitor 12-2 removes the data
仮想マシンモニタ12-2は通信データ94を作成すると、当該通信データ94を、当該通信データ94に含まれているIPヘッダ95の宛先IPアドレスで指定される仮想マシンモニタ12-1に送信(中継)する(ステップS18)。なお、この通信データ(第4の通信データ)94にはデータリンク層ヘッダが付加される。このデータリンク層ヘッダの付加については、図24を参照してのステップS76の処理で後述する。
When the virtual machine monitor 12-2 creates the
仮想マシンモニタ12-1は、仮想マシンモニタ12-2によって中継された通信データ94を受信すると、当該通信データ94に含まれているIPパケット(IPヘッダ92及びIPペイロード93)の宛先MACアドレス(クライアント18のMACアドレス)を取得するための、図10に示すフォーマットのARP要求100をネットワークセグメント16-1上にブロードキャストする(ステップS19)。
When the virtual machine monitor 12-1 receives the
仮想マシンモニタ12-1からのARP要求100は、データリンク層ヘッダ101及びARP要求パケット102を含む。データリンク層ヘッダ101の宛先MACアドレス及び送信元MACアドレスには、それぞれ、ブロードキャストアドレス及びゲストOS14のMACアドレスが用いられる。ARP要求パケット102のターゲットIPアドレスには、クライアント18のIPアドレス“192.168.1.50”が用いられる。ARP要求パケット102の送信元MACアドレスにはゲストOS14のMACアドレスが用いられ、当該ARP要求パケット102の送信元IPアドレスにはゲストOS14のIPアドレス“192.168.1.100”が用いられる。
The
クライアント18は、仮想マシンモニタ12-1からのARPM要求100を受け取ると、当該クライアント18のMACアドレスを当該仮想マシンモニタ12-1に通知するための、図11に示すフォーマットのARP応答110を当該仮想マシンモニタ12-1に返す(ステップS20)。
Upon receipt of the
ARP応答110は、データリンク層ヘッダ111及びARP応答パケット112を含む。データリンク層ヘッダ111の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14及びクライアント18のMACアドレスが用いられる。ARP応答パケット112の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14及びクライアント18のMACアドレスが用いられ、当該ARP応答パケット112の宛先IPアドレス及び送信元IPアドレスには、それぞれゲストOS14のIPアドレス“192.168.1.100”及びクライアント18のIPアドレス“192.168.1.50”が用いられる。
The
クライアント18からのARP応答110は、当該クライアント18のMACアドレスを取得するためのARP要求100を送信した仮想マシンモニタ12-1で受け取られる。仮想マシンモニタ12-1は、クライアント18からのARP応答110を受け取ると、先に仮想マシンモニタ12-2から受信した通信データ(第4の通信データ)94に格納されている、ゲストOS14からの通信データ(第3の通信データ)のIPパケット(IPヘッダ92及びIPペイロード93)を含む、クライアント18宛ての図12に示す通信データ(第6の通信データ)120を作成する(ステップS21)。即ち仮想マシンモニタ12-1は、仮想マシンモニタ12-2から受信した通信データ94から、当該通信データ94に格納されているゲストOS14からの通信データのIPパケット(IPヘッダ92及びIPペイロード93)を取り出す。仮想マシンモニタ12-2は、この取り出されたIPパケット(IPヘッダ92及びIPペイロード93)に、先に受信したクライアント18からのARP応答110に基づいて、当該クライアント18のMACアドレスを宛先MACアドレスとするデータリンク層ヘッダ121を付加することにより、クライアント18のMACアドレス宛ての通信データ120を作成する。仮想マシンモニタ12-1は、作成された通信データ120をクライアント18に送信する(ステップS22)。
The
以上の通信シーケンスにより、図1のシステムにおいては、ゲストOS14の移動先の仮想マシンモニタ12-2が配置されているHW11-2が、当該ゲストOS14の移動元の仮想マシンモニタ12-1が配置されているHW11-1とは異なるネットワークセグメントに存在しても、当該ゲストOS14とクライアント18との間の通信を、当該ゲストOS14が移動する前の状態と変わらずに行うことができる。
With the above communication sequence, in the system of FIG. 1, the HW 11-2 in which the virtual machine monitor 12-2 to which the
<仮想マシンモニタの構成>
次に、図1に示される仮想マシンモニタ12-i(i=1,2)の構成について説明する。図13は、仮想マシンモニタ12-iの構成を示すブロック図である。
<Virtual machine monitor configuration>
Next, the configuration of the virtual machine monitor 12-i (i = 1, 2) shown in FIG. 1 will be described. FIG. 13 is a block diagram showing a configuration of the virtual machine monitor 12-i.
仮想マシンモニタ12-iは、入出力制御部(I/O制御部)120、ゲストOS制御部121及び通信転送制御部122を有する。I/O制御部120は、ゲストOS14のメモリアクセス、ディスクI/O及び通信データのI/O等、ゲストOS14の種々のI/Oを制御するモジュールである。I/O制御部120は、HW11-iとゲストOS14との間の全ての通信データが必ず通信転送制御部122内の後述する通信データ判定部124を中継するように当該通信転送制御部122を制御する。ゲストOS制御部121は、ゲストOS14の起動/停止、ゲストOS14の仮想マシンモニタ12-iから他の仮想マシンモニタへの移動、他の仮想マシンモニタから仮想マシンモニタ12-iへの移動を制御するモジュールである。
The virtual machine monitor 12-i includes an input / output control unit (I / O control unit) 120, a guest
通信転送制御部122は、I/O制御部120の制御のもとで、HW11-iとゲストOS14との間の全ての通信データを当該通信転送制御部122(内の通信データ判定部124)を中継させる。通信転送制御部122は、ゲストOS制御部121からゲストOS14の移動の通知を受け取り、当該ゲストOS14の移動に関する情報を記録する。なお、ゲストOS14(が動作する仮想マシン13)には、自身のIPアドレス、サブネットマスク及びルータアドレス(ルータ17のIPアドレス)が設定されているものとする。通信転送制御部122は、これらのデータを参照することができる。
Under the control of the I /
通信転送制御部122は、ゲストOS状態受信部123、通信データ判定部124、通信データ送信部125及びARP処理部126の各モジュールと、移動先アドレステーブル127、移動元アドレステーブル128及びARPテーブル129の各テーブルとを含む。
The communication
移動先アドレステーブル127は、ゲストOS制御部121の制御によるゲストOSの移動に関する情報のうちの移動先に関する情報(移動先情報)を、当該ゲストOSの情報(ゲストOS情報)に対応付けて管理するのに用いられる。本実施形態において、移動先情報にはゲストOSの移動先の仮想マシンモニタのIPアドレスが用いられ、ゲストOS情報には当該ゲストOSのMACアドレス及びIPアドレスが用いられる。このテーブル127への情報登録は、ゲストOSが他の仮想マシンモニタに移動した旨の通知をゲストOS状態受信部123が受け取った際に、当該受信部123によって行われる。
The migration destination address table 127 manages information related to the migration destination (migration destination information) among the information related to migration of the guest OS under the control of the guest
図14Aは移動先アドレステーブル127のデータ構造例を示す。図14Aの例では、移動先アドレステーブル127の各エントリには、ゲストOSのMACアドレス及びIPアドレスと、当該ゲストOSの移動先の仮想マシンモニタのIPアドレスとが登録される。 FIG. 14A shows an example of the data structure of the destination address table 127. In the example of FIG. 14A, the MAC address and IP address of the guest OS and the IP address of the virtual machine monitor that is the migration destination of the guest OS are registered in each entry of the migration destination address table 127.
移動元アドレステーブル128は、ゲストOS制御部121の制御によるゲストOSの移動に関する情報のうちの移動元に関する情報(移動元情報)を、当該ゲストOSの情報(ゲストOS情報)に対応付けて管理するのに用いられる。移動元情報にはゲストOSの移動元の仮想マシンモニタのIPアドレスが用いられる。このテーブル128への情報登録は、ゲストOSが他の仮想マシンモニタから移動した旨の通知をゲストOS状態受信部123が受け取った際に、当該受信部123によって行われる。
The migration source address table 128 manages information on the migration source (migration source information) in the information on migration of the guest OS under the control of the guest
図14Bは移動元アドレステーブル128のデータ構造例を示す。図14Bの例では、移動元アドレステーブル128の各エントリには、ゲストOSのMACアドレス及びIPアドレスと、当該ゲストOSの移動元の仮想マシンモニタのIPアドレスとが登録される。 FIG. 14B shows an example of the data structure of the source address table 128. In the example of FIG. 14B, the MAC address and IP address of the guest OS and the IP address of the virtual machine monitor that is the migration source of the guest OS are registered in each entry of the migration source address table 128.
移動先アドレステーブル127及び移動元アドレステーブル128は、ゲストOS制御部121の制御によるゲストOSの移動状態を管理するための移動管理部130を構成する。
The migration destination address table 127 and the migration source address table 128 constitute a
ARPテーブル129は、ゲストOSが他の仮想マシンモニタに移動している場合に、当該ARPテーブル129を有する仮想マシンモニタ12-iが当該ゲストOSに代わってARP要求・ARP応答を処理する際に用いられる。ARPテーブル129は、周知のARPテーブルと同様に、MACアドレス及びIPアドレスの対と当該MACアドレス及びIPアドレスの対の登録の有効期限とを管理するのに用いられる。このテーブル129への情報登録は、移動中のゲストOSに関するARP応答パケットを通信データ判定部124が受け取った際に、当該通信データ判定部124によって行われる。
When the guest OS is moved to another virtual machine monitor, the ARP table 129 is used when the virtual machine monitor 12-i having the ARP table 129 processes an ARP request / ARP response on behalf of the guest OS. Used. Similar to the well-known ARP table, the ARP table 129 is used to manage the MAC address / IP address pair and the expiration date of registration of the MAC address / IP address pair. The information registration in the table 129 is performed by the communication
図15はARPテーブル129のデータ構造例を示す。図15の例では、ARPテーブル129の各エントリには、MACアドレス及びIPアドレスの対と、当該対の登録に関する有効期限を示す情報とが登録される。ここでは、有効期限を秒単位としているが、他の単位でも構わない。 FIG. 15 shows an example of the data structure of the ARP table 129. In the example of FIG. 15, in each entry of the ARP table 129, a pair of a MAC address and an IP address and information indicating an expiration date related to registration of the pair are registered. Here, the expiration date is in seconds, but other units may be used.
<ゲストOS状態受信部の動作>
次に、ゲストOS状態受信部123の動作について、図16のフローチャートを参照して説明する。
ゲストOS状態受信部123は、仮想マシンモニタ12-iのゲストOS制御部121からゲストOSに関する状態の通知を受け取り、その通知された内容に応じて次のように処理を行う。
<Operation of guest OS status receiver>
Next, the operation of the guest OS
The guest OS
(1)他の仮想マシンモニタへのゲストOSの移動完了時の動作
まず、仮想マシンモニタ12-i上のゲストOS14が他の仮想マシンモニタに移動された結果、当該仮想マシンモニタ12-iのゲストOS制御部121から通信転送制御部122に当該他の仮想マシンモニタへのゲストOS移動完了が通知された場合の、ゲストOS状態受信部123の処理について説明する。
(1) Operation upon completion of movement of guest OS to other virtual machine monitor First, as a result of the
ゲストOS状態受信部123は、ゲストOS制御部121から通信転送制御部122にゲストOSに関する状態が通知されると、当該通知を受信する。そしてゲストOS制御部121は、受信した通知の内容を判定する(ステップS31乃至33)。もし、受信した通知が、上述のように仮想マシンモニタ(VMM)12-iから他の仮想マシンモニタ(VMM)へのゲストOSの移動完了を示すならば(ステップS31がYES)、ゲストOS状態受信部123は、移動先アドレステーブル127のエントリに、他の仮想マシンモニタへの移動が完了したゲストOSのMACアドレス及びIPアドレスの対と、当該他の仮想マシンモニタ(つまり移動先の仮想マシンモニタ)のIPアドレスとを登録する(ステップS34)。
When the guest OS
(2)他の仮想マシンモニタからのゲストOSの移動完了時の動作
次に、ゲストOS14が他の仮想マシンモニタから仮想マシンモニタ12-iに移動された結果、当該仮想マシンモニタ12-iのゲストOS制御部121から通信転送制御部122に当該他の仮想マシンモニタからのゲストOS移動完了が通知され、当該通知がゲストOS状態受信部123によって受信されたものとする。
(2) Operation upon completion of moving the guest OS from another virtual machine monitor Next, as a result of the
ゲストOS状態受信部123は、受信した通知が、この例のように他の仮想マシンモニタから(当該ゲストOS状態受信部123を含む)仮想マシンモニタ12-iへのゲストOSの移動完了を示すならば(ステップS32がYES)、当該ゲストOS(移動が完了したゲストOS)のMACアドレス及びIPアドレスが移動先アドレステーブル127に登録されているか(存在するか)判定する(ステップS35)。
The guest OS
もし、移動が完了したゲストOSのMACアドレス及びIPアドレスが移動先アドレステーブル127に登録されているならば(ステップS35がYES)、ゲストOS状態受信部123は、当該ゲストOSは、仮想マシンモニタ12-iから他の仮想マシンモニタに移動した後、当該仮想マシンモニタ12-iに戻ってきたと判断する。この場合、ゲストOS状態受信部123は、仮想マシンモニタ12-iに戻ってきたゲストOSに関する情報を移動先アドレステーブル127から削除する。
If the MAC address and IP address of the guest OS that has been migrated are registered in the migration destination address table 127 (YES in step S35), the guest OS
これに対し、移動が完了したゲストOSのMACアドレス及びIPアドレスが移動先アドレステーブル127に登録されていないならば(ステップS35がNO)、ゲストOS状態受信部123は、移動元アドレステーブル128に、当該ゲストOS(移動が完了したゲストOS)のMACアドレス及びIPアドレスの対と、移動元の仮想マシンモニタのIPアドレスとを登録する。
On the other hand, if the MAC address and IP address of the guest OS that has been migrated are not registered in the migration destination address table 127 (NO in step S35), the guest OS
(3)ゲストOSの停止時の動作
次に、仮想マシンモニタ12-i上で動作しているゲストOSが停止した結果、当該仮想マシンモニタ12-iのゲストOS制御部121から通信転送制御部122にゲストOSの停止が通知され、当該通知がゲストOS状態受信部123によって受信されたものとする。
(3) Operation when guest OS is stopped Next, as a result of the guest OS running on the virtual machine monitor 12-i being stopped, the guest
ゲストOS状態受信部123は、受信した通知が、この例のようにゲストOSの停止を示すならば(ステップS33がYES)、当該停止したゲストOSのMACアドレス及びIPアドレスが移動元アドレステーブル128に登録されているかを判定する(ステップS38)。
If the received notification indicates that the guest OS is stopped as in this example (YES in step S33), the guest OS
もし、移動元アドレステーブル128に登録されているならば(ステップS38がYES)、ゲストOS状態受信部123は、通信データの転送を停止するため移動元の仮想マシンモニタに対して移動終了を通知する必要があると判断する。そこでゲストOS状態受信部123は、停止したゲストOSのMACアドレス及びIPアドレスの対に対応付けて移動元アドレステーブル128に登録されている移動元の仮想マシンモニタのIPアドレスに基づき、当該移動元の仮想マシンモニタのIPアドレス宛ての移動停止データを作成する(ステップS39)。この移動停止データについては後述する。
If it is registered in the migration source address table 128 (YES in step S38), the guest OS
ゲストOS状態受信部123は、作成された移動停止データを通信データ送信部125に送ることによって、当該移動停止データを通信データ送信部125から(I/O制御部120を介して)移動元の仮想マシンに送信させる(ステップS40)。最後にゲストOS状態受信部123は、停止したゲストOSに関する情報を移動元アドレステーブル128から削除する(ステップS41)。
The guest OS
<移動停止データ>
次に上記移動停止データについて説明する。
移動停止データは、移動元仮想マシンモニタのIPアドレスを宛先IPアドレスとし、停止したゲストOSのMACアドレス及びIPアドレスをデータ部に含み、移動停止データと識別可能な通信データであれば、どのようなものでもよい。
<Movement stop data>
Next, the movement stop data will be described.
If the migration stop data is communication data that includes the IP address of the migration source virtual machine monitor as the destination IP address and includes the MAC address and IP address of the stopped guest OS in the data part and can be identified from the migration stop data, It may be anything.
図17は、移動停止データの例を、移動元アドレステーブル128に対応付けて示す。図17において、移動停止データ170は、IPヘッダ171及びIPペイロード(データ部)172を含む。
FIG. 17 shows an example of movement stop data in association with the movement source address table 128. In FIG. 17, the
IPヘッダ171の宛先IPアドレスには、停止したゲストOSのMACアドレス及びIPアドレスに対応付けて移動元アドレステーブル128に登録されている移動元の仮想マシンモニタのIPアドレスが、矢印A11で示されるように用いられる。IPヘッダ171の送信元IPアドレスには、仮想マシンモニタ12-i自身(停止したゲストOSの移動先の仮想マシンモニタ12-i)のIPアドレスが、矢印A12で示されるように用いられる。
In the destination IP address of the
IPペイロード172は、ゲストOSのMACアドレス及びIPアドレスを含む。ゲストOSのMACアドレス及びIPアドレスには、それぞれ、移動元アドレステーブル128に登録されている、停止したゲストOSのMACアドレス及びIPアドレスが、矢印A13及びA14で示されるように用いられる。
The
<通信データ判定部の動作>
次に、通信データ判定部124の動作について、図18のフローチャートを参照して説明する。
本実施形態において、仮想マシンモニタ12-iのI/O制御部120は、当該I/O制御部120を通過する全ての通信データを通信転送制御部122の通信データ判定部124に入力することにより、当該通信データ判定部124をも通過させる。通信データ判定部124は、I/O制御部120によって入力された通信データの種類に応じて処理を行う。そこで通信データ判定部124は、まず、I/O制御部120によって入力された通信データがARP要求またはARP応答のいずれかであるかを判定する(ステップS51)。
<Operation of communication data determination unit>
Next, the operation of the communication
In this embodiment, the I /
(1)通信データがARP要求・ARP応答の場合
もし、入力された通信データがARP要求またはARP応答のいずれかである(つまりARPパケットである)ならば(ステップS51がYES)、通信データ判定部124は、当該入力された通信データをARP処理部126に送り(ステップS52)、処理を終了する。図2におけるステップS7,S8,S14,S15,S19及びS20の場合、いずれもステップS51の判定がYESとなる。
(1) When communication data is an ARP request / response If the input communication data is either an ARP request or an ARP response (that is, an ARP packet) (YES in step S51), communication data determination The
一方、入力された通信データARP要求でもARP応答でもない(つまりARPパケットでない)ならば(ステップS51がNO)、通信データ判定部124は、当該入力された通信データの宛先IPアドレスと一致するゲストOSのIPアドレスが移動先アドレステーブル127に登録されているかを判定する(ステップS53)。
On the other hand, if it is neither an input communication data ARP request nor an ARP response (that is, it is not an ARP packet) (NO in step S51), the communication
(2)移動したゲストOS宛ての通信データの場合
もし、ステップS53の判定がYESであるならば、通信データ判定部124は、入力された通信データが、仮想マシンモニタ12-iから他の仮想マシンモニタに移動したゲストOS宛ての通信データ(第1の通信データ)であると判断する。この場合、移動先の仮想マシンモニタに通信データを転送する必要がある。そこで通信データ判定部124は、移動先の仮想マシンモニタに転送すべきデータ(IPパケット)を作成する(ステップS54)。即ち通信データ判定部124は、入力された通信データの宛先IPアドレスと一致したゲストOSのIPアドレスと対応付けて移動先アドレステーブル127に登録されている、当該ゲストOSの移動先の仮想マシンモニタのIPアドレスを宛先IPアドレスとするデータ(IPパケット)を作成する。そして、作成されたデータ(のIPペイロード)の中に、入力された通信データ(第1の通信データ)のIPパケット(IPヘッダ及びIPペイロード)を格納する。通信データ判定部124は、作成されたデータ(第2の通信データ)を通信データ送信部125に送り(ステップS55)、処理を終了する。
(2) In the case of communication data addressed to the moved guest OS If the determination in step S53 is YES, the communication
入力された通信データが、例えば図2のステップS9でクライアント18から送信された通信データ(図5に示される通信データ50)の場合、ステップS53の判定がYESとなって、ステップS54及びS55が行われる。
If the input communication data is, for example, the communication data transmitted from the
図19は、ステップS54で作成されたデータ(通信データ送信部125に送られるデータ)の一例を、入力された通信データ及び移動先アドレステーブル127に対応付けて示す。 FIG. 19 shows an example of the data created in step S54 (data sent to the communication data transmission unit 125) in association with the input communication data and the destination address table 127.
図19において、入力された通信データ(第1の通信データ)190及び作成された()データ(第2の通信データ)194は、それぞれ図5に示される通信データ50及び54に相当する。
19, input communication data (first communication data) 190 and created () data (second communication data) 194 correspond to the
通信データ190は、データリンク層ヘッダ191、IPヘッダ192及びIPペイロード193を含む。データリンク層ヘッダ191の宛先MACアドレス及びIPヘッダ192の宛先IPアドレスは、それぞれ矢印A21及びA22で示されるように、移動先仮想マシンモニタのIPアドレス“192.168.2.10”と対応付けて移動先アドレステーブル127に登録されている、ゲストOSのMACアドレス“aa:aa:aa:aa:aa:aa”及びIPアドレス“192.168.1.100”に一致している。
The
この場合、作成されたデータ194のIPヘッダ195の宛先IPアドレスには、矢印A23で示されるように、上記移動先仮想マシンモニタのIPアドレス“192.168.2.10”が用いられる。このデータ194のIPヘッダ195の送信元IPアドレスには、矢印A24で示されるように、仮想マシンモニタ12-i自身のIPアドレスが用いられる。また、データ194のIPペイロード196には、入力された通信データ190のIPヘッダ192及びIPペイロード193(IPパケット)が格納される。
In this case, the IP address “192.168.2.10” of the destination virtual machine monitor is used as the destination IP address of the
一方、ステップS53の判定がNOであるならば、通信データ判定部124は、入力された通信データの宛先IPアドレスが、当該通信データ判定部124を含む仮想マシンモニタ12-i自身のIPアドレスに一致するかを判定する(ステップS56)。ステップS56の判定がYESであるならば、通信データ判定部124は、入力された通信データの送信元IPアドレスと一致する仮想マシンモニタのIPアドレスが移動先アドレステーブル127に登録されているかを判定する(ステップS57)。
On the other hand, if the determination in step S53 is NO, the communication
(3)ゲストOSの移動先の仮想マシンモニタから送られた通信データの場合
ステップS57の判定がYESであるならば、通信データ判定部124は、入力された通信データが、ゲストOSの移動先の仮想マシンモニタから仮想マシンモニタ12-iに送られた通信データであると判断する。この場合、通信データ判定部124は、入力された通信データが移動停止データであるかを判定する(ステップS58)。
(3) In the case of communication data sent from the virtual machine monitor that is the migration destination of the guest OS If the determination in step S57 is YES, the communication
もし、入力された通信データが移動停止データであるならば(ステップS58がYES)、移動したゲストOSが移動先で停止した旨の通知であることから、通信データ判定部124は、移動先アドレステーブル127から、移動停止データ(のIPペイロード)内に格納されているMACアドレス及びIPアドレスのゲストOSに関する情報を削除する(ステップS59)。
If the input communication data is movement stop data (YES in step S58), the communication
図20は、ステップS59の動作を説明するための図である。図20において、入力された移動停止データ200のフォーマットは、図17に示す移動停止データ170のそれに一致する。移動停止データ200は、IPヘッダ201及びIPペイロード202を含む。IPペイロード202は、ゲストOSのMACアドレス及びIPアドレスを含む。このIPペイロード202に含まれている、ゲストOSのMACアドレス及びIPアドレスは、矢印A31で示されるように、移動先仮想マシンモニタのIPアドレス“192.168.2.10”と対応付けて移動先アドレステーブル127に登録されている、ゲストOSのMACアドレス“aa:aa:aa:bb:bb:bb”及びIPアドレス“192.168.1.150”と一致する。この場合、移動先アドレステーブル127から、一致するMACアドレス“aa:aa:aa:bb:bb:bb”及びIPアドレス“192.168.1.150”を含むゲストOSに関するデータ(エントリデータ)が、矢印A32で示されるように削除される。
FIG. 20 is a diagram for explaining the operation in step S59. In FIG. 20, the format of the input movement stop
一方、入力された通信データが移動停止データ以外であるならば(ステップS58がNO)、通信データ判定部124は、当該通信データが、移動したゲストOSが送信した通信データ(第1の通信データ)のIPパケットを含む、移動先の仮想マシンモニタによって仮想マシンモニタ12-iに転送された通信データ(第4の通信データ)であると判断する。この場合、通信データ判定部124は、入力された通信データから、当該通信データに格納されている、移動したゲストOSが送信した元の通信データ(のIPパケット)を取り出す(ステップS60)。通信データ判定部124は、取り出された元の通信データ(のIPパケット)を通信データ送信部125によってネットワークセグメント16-i上に送信させるために、当該取り出された元の通信データ(のIPパケット)を通信データ送信部125に送り(ステップS61)、処理を終える。
On the other hand, if the input communication data is other than the movement stop data (NO in step S58), the communication
入力された通信データが、例えば図2のステップS18で仮想マシンモニタ12-2から仮想マシンモニタ12-1に送信された通信データ(図9及び図12に示される通信データ94)の場合、ステップS56及びS57の判定がYES、ステップS58の判定がNOとなって、ステップS60及びS61が行われる。なお実際には、図9及び図12に示される通信データ94には、前記したようにデータリンク層ヘッダが付加される。
If the input communication data is, for example, the communication data (
図21は、ステップS61で通信データ判定部124から通信データ送信部125に送られるデータ(IPパケット)を、入力された通信データ及び移動先アドレステーブル127と対応付けて示す。
FIG. 21 shows the data (IP packet) sent from the communication
図21において、入力された通信データ(第4の通信データ)210及び通信データ送信部125に送られるデータ(第3の通信データ)216は、それぞれ図12に示す通信データ94(にデータリンク層が付加されたデータ)及び通信データ120(のIPパケットの部分であるIPヘッダ92及びIPペイロード93)に相当する。
In FIG. 21, the input communication data (fourth communication data) 210 and the data (third communication data) 216 sent to the communication
通信データ210は、データリンク層ヘッダ211、IPヘッダ212及びIPペイロード213を含む。IPヘッダ212の宛先IPアドレスは、矢印A41で示されるように仮想マシンモニタ12-i自身のIPアドレスと一致し、IPヘッダ212の送信元IPアドレスは、矢印A42で示されるように、移動先アドレステーブル127に登録されている移動先仮想マシンモニタのIPアドレス“192.168.2.10”と一致する。
The
通信データ210のIPペイロード213には、移動したゲストOSが送信したデータ(第3の通信データ)のIPパケット、即ちIPヘッダ214及びIPペイロード215が格納されている。IPヘッダ214の送信元IPアドレスは、矢印A43で示されるように、移動先仮想マシンモニタのIPアドレス“192.168.2.10”に対応付けて移動先アドレステーブル127に登録されている、ゲストOSのIPアドレス“192.168.1.150”と一致する。
The
この場合、通信データ210(入力された通信データ210)のIPペイロード213に格納されている、移動したゲストOSが送信した通信データのIPパケットの部分であるIPヘッダ214及びIPペイロード215が、通信データ送信部125に送られべきデータ(移動したゲストOSが送信した元の通信データ)216として当該IPペイロード213から取り出される。このデータ(IPパケット)216は、通信データ判定部124から通信データ送信部125に送られる。
In this case, the
一方、ステップS57の判定がNOであるならば、通信データ判定部124は、入力された通信データが、ゲストOSの移動先の仮想マシンモニタ以外から送られたものと判断する。この場合、通信データ判定部124は、入力された通信データの送信元IPアドレスが、移動元アドレステーブル128に登録されている仮想マシンモニタのIPアドレスに一致するかを判定する(ステップS62)。
On the other hand, if the determination in step S57 is NO, the communication
(4)ゲストOSの移動元の仮想マシンモニタから送られた通信データの場合
もし、ステップS62の判定がYESであるならば、通信データ判定部124は、入力された通信データが、移動したゲストOSの移動元の仮想マシンモニタによって仮想マシンモニタ12-iに転送された、当該ゲストOS宛てのデータ(第1の通信データ)のIPパケットを格納した通信データ(第2の通信データ)であると判断する。この場合、通信データ判定部124は、入力された通信データから、当該通信データに格納されている、移動元の仮想マシンモニタが転送したゲストOS宛ての元の通信データ(のIPパケット)を取り出す(ステップS63)。
(4) In the case of communication data sent from the virtual machine monitor that is the migration source of the guest OS If the determination in step S62 is YES, the communication
次に通信データ判定部124は、取り出された元の通信データ(のIPパケット)に、データリンク層ヘッダが付加された通信データ(第5の通信データ)を作成する(ステップS64)。このデータリンク層ヘッダの送信元MACアドレスには偽のMACアドレスが設定され、当該データリンク層ヘッダの宛先MACアドレスには、ステップS62で一致が判定された仮想マシンモニタのIPアドレスと移動元アドレステーブル128内で対応付けられているゲストOSのMACアドレスが設定される。通信データ判定部124は、作成された通信データを、入力された通信データの代わりとして、(当該通信データ判定部124を含む)仮想マシンモニタ12-i内のI/O制御部120に渡すことにより、当該作成された通信データをI/O制御部120からゲストOSに送信させる(ステップS65)。
Next, the communication
入力された通信データが、例えば図2のステップS11で仮想マシンモニタ12-1から仮想マシンモニタ12-2に送信された通信データ(図5及び図6に示される通信データ54)の場合、ステップS56及びS58の判定がYES、ステップS57の判定がNOとなって、ステップS63乃至S65が行われる。
For example, if the input communication data is communication data (
図22は、ステップS64で作成される通信データを、入力された通信データ及び移動元アドレステーブル128と対応付けて示す。
図22において、入力された通信データ(第2の通信データ)220及び作成された(I/O制御部120に送られる)通信データ(第5の通信データ)227は、それぞれ図6に示される通信データ54(にデータリンク層が付加されたデータ)及び通信データ60に相当する。
FIG. 22 shows the communication data created in step S64 in association with the input communication data and the source address table 128.
In FIG. 22, the input communication data (second communication data) 220 and the created communication data (sent to the I / O control unit 120) (fifth communication data) 227 are shown in FIG. It corresponds to communication data 54 (data obtained by adding a data link layer) and
通信データ220は、データリンク層ヘッダ221、IPヘッダ222及びIPペイロード223を含む。IPヘッダ222の宛先IPアドレスは、矢印A51で示されるように仮想マシンモニタ12-i自身のIPアドレスと一致し、IPヘッダ222の送信元IPアドレスは、矢印A52で示されるように、移動元アドレステーブル128に登録されている移動元仮想マシンモニタのIPアドレス“192.168.2.10”と一致する。
The communication data 220 includes a data link layer header 221, an
通信データ(第2の通信データ)220のIPペイロード223には、移動元の仮想マシンモニタが転送したゲストOS宛ての元の通信データ(第1の通信データ)のIPパケット、即ちIPヘッダ224及びIPペイロード225が格納されている。IPヘッダ224の宛先IPアドレスは、矢印A53で示されるように、移動元仮想マシンモニタのIPアドレス“192.168.2.10”に対応付けて移動元アドレステーブル128に登録されている、ゲストOSのIPアドレス“192.168.2.100”と一致する。
In the
この場合、通信データ220(入力された通信データ220)のIPペイロード223に格納されている、移動元の仮想マシンモニタが転送したゲストOS宛ての元の通信データのIPパケット、即ちIPヘッダ224及びIPペイロード225が、当該IPペイロード223から取り出される。この取り出されたIPヘッダ224及びIPペイロード225に、データリンク層ヘッダ226が付加された通信データ(第5の通信データ)227が作成される。この通信データ227のデータリンク層ヘッダ226の宛先MACアドレスには、矢印A54で示されるように、移動元仮想マシンモニタのIPアドレス“192.168.2.10”に対応付けて移動元アドレステーブル128に登録されている、ゲストOSのMACアドレス“bb:bb:bb:aa:aa:aa”が用いられる。通信データ227のデータリンク層ヘッダ226の送信元MACアドレスには、矢印A54で示されるように、偽のMACアドレスが用いられる。通信データ227は、通信データ220の代わりに、通信データ判定部124からI/O制御部120に送られる。
In this case, the IP packet of the original communication data addressed to the guest OS transferred by the migration source virtual machine monitor stored in the
一方、ステップS56の判定がNOであるならば、通信データ判定部124は、入力された通信データの送信元IPアドレスが、移動元アドレステーブル128に登録されている仮想マシンモニタのIPアドレスに一致するかを判定する(ステップS66)。
On the other hand, if the determination in step S56 is NO, the communication
(5)移動しているゲストOSが送信した通信データの場合
もし、ステップS66の判定がYESであるならば、通信データ判定部124は、入力された通信データが、移動しているゲストOSが送信した通信データ(第3の通信データ)であると判断する。この場合、移動元の仮想マシンモニタに通信データを転送する必要がある。そこで通信データ判定部124は、移動元の仮想マシンモニタに転送すべき通信データ(第4の通信データ)を作成する(ステップS67)。即ち通信データ判定部124は、入力された通信データの送信元IPアドレスと一致したゲストOSのIPアドレスと対応付けて移動元アドレステーブル128に登録されている、当該ゲストOSの移動元の仮想マシンモニタのIPアドレスを宛先IPアドレスとする通信データ(IPパケット)を作成する。そして通信データ判定部124は、作成された通信データの中に、入力された通信データのIPパケット(IPヘッダ及びIPペイロードの部分)を格納する。通信データ判定部124は、作成された通信データを通信データ送信部125に送り(ステップS68)、処理を終了する。
(5) In the case of the communication data transmitted by the moving guest OS If the determination in step S66 is YES, the communication
図23は、ステップS67で作成される通信データ(IPパケット)を、入力された通信データ及び移動元アドレステーブル128と対応付けて示す。
図23において、入力された通信データ230及び作成された(通信データ送信部125に送られる)データ234は、それぞれ図9に示される通信データ90(にデータリンク層が付加されたデータ)及び通信データ94に相当する。
FIG. 23 shows the communication data (IP packet) created in step S67 in association with the input communication data and the source address table 128.
23, the
通信データ230は、データリンク層ヘッダ231、IPヘッダ232及びIPペイロード233を含む。データリンク層ヘッダ231の宛先MACアドレス及びIPヘッダ232の宛先IPアドレスは、それぞれ矢印A61及びA62で示されるように、移動元仮想マシンモニタのIPアドレス“192.168.2.10”と対応付けて移動元アドレステーブル128に登録されている、ゲストOSのMACアドレス“bb:bb:bb:aa:aa:aa”及びIPアドレス“192.168.2.100”に一致している。
The
図23において、通信データ判定部124から通信データ送信部125に送られるデータ234はIPパケットである。データ234のIPヘッダ235の宛先IPアドレスには、矢印A63で示されるように、上記移動元仮想マシンモニタのIPアドレス“192.168.2.10”が用いられる。このデータ234のIPヘッダ235の送信元IPアドレスには、矢印A64で示されるように、仮想マシンモニタ12-i自身のIPアドレスが用いられる。また、データ234のIPペイロード236には、入力された通信データ230のIPヘッダ232及びIPペイロード233(IPパケット)が格納される。
In FIG. 23,
(6)上記(1)乃至(5)のいずれにも該当しない通信データの場合
上記ステップS62またはS66の判定がNOの場合、即ち入力された通信データが、上記(1)乃至(5)のいずれにも該当しない通信データである場合、通信データ判定部124は、移動していないゲストOSの通信データのような、自身が処理する必要のない通信データであると判断する。この場合、通信データ判定部124は、入力された通信データを(当該通信データ判定部124を含む)仮想マシンモニタ12-i内のI/O制御部120にそのまま返し(ステップS69)、処理を終了する。
(6) In the case of communication data that does not fall under any of the above (1) to (5) When the determination in step S62 or S66 is NO, that is, the input communication data is the same as in (1) to (5) above. If the communication data does not correspond to any of them, the communication
<通信データ送信部の動作>
次に、通信データ送信部125の動作について説明する。
通信データ送信部125は、通信データ判定部124から送られた通信データ(IPパケット)にデータリンク層ヘッダを付加することにより、送信されるべき通信データを作成する。通信データ送信部125は、作成された通信データを送信するため、当該作成された通信データを仮想マシンモニタ12-i内のI/O制御部120に渡す処理を行う。
<Operation of communication data transmitter>
Next, the operation of the communication
The communication
以下、通信データ送信部125の動作について、図24のフローチャートを参照して説明する。
まず通信データ送信部125は、通信データ判定部124からIPパケットが送られた(入力された)場合、当該IPパケットの宛先IPアドレスが、当該通信データ送信部125を含む仮想マシンモニタ12-iが配置されているHW11-iが存在するネットワークセグメント16-iとは、異なるネットワークセグメントに属するかを判定する(ステップS71)。つまり通信データ送信部125は、宛先IPアドレスがネットワークセグメント16-iとは異なるネットワークセグメントに属するかを判定する。
Hereinafter, the operation of the communication
First, when an IP packet is transmitted (input) from the communication
ステップS71の判定がYESである場合、通信データ送信部125はARPテーブル129を参照することにより、ルータ17のIPアドレスを含むデータ(詳細には、ルータ17のMACアドレス及びIPアドレスの対を含むデータ)が登録されているか判定する(ステップS72)。
When the determination in step S71 is YES, the communication
もし、ルータ17のIPアドレスを含むデータがARPテーブル129に登録されていないならば(ステップS72がNO)、通信データ送信部125は、ルータ17のIPアドレスを宛先IPアドレスとするARP要求をI/O制御部120に送ることにより、当該ARP要求をI/O制御部120からネットワークセグメント16-iに送信させる(ステップS73)。このARP要求は、I/O制御部120の制御のもとで通信転送制御部122内の通信データ判定部124で中継されて、ARP処理部126に入力される(図18ステップS52)。
If data including the IP address of the
通信データ送信部125はステップS73を実行すると、ルータ17のIPアドレスを含むデータがARPテーブル129に登録されているかを再度判定する(ステップS74)。
When executing step S73, the communication
ステップS72またはS74で、ルータ17のIPアドレスを含むデータがARPテーブル129に登録されていると判定された場合、通信データ送信部125は当該ARPテーブル129から、上記ルータ17のIPアドレスと対をなすMACアドレス(つまりルータ17のMACアドレス)を取得する(ステップS75)。通信データ送信部125は、入力されたIPパケット及び取得されたMACアドレス(ここではルータ17のMACアドレス)を用いて、当該取得されたMACアドレスを宛先とする通信データを作成する(ステップS76)。このステップS76において通信データ送信部125は、作成された通信データをI/O制御部120に送ることにより、当該通信データをI/O制御部120からネットワークセグメント16-iに送信させる(ステップS76)。ここで通信データ送信部125は、取得されたMACアドレスを宛先とする通信データを、次のように作成する。
If it is determined in step S72 or S74 that the data including the IP address of the
まず通信データ送信部125は、取得されたMACアドレスを宛先MACアドレスとし、当該通信データ送信部125を含む仮想マシンモニタ12-iが動作しているHW11-iのMACアドレスを送信元MACアドレスとするデータリンク層ヘッダを作成する。通信データ送信部125は、作成されたデータリンク層ヘッダを、入力されたIPパケットに付加することにより、取得されたMACアドレスを宛先とする通信データを作成する。
First, the communication
図25は、ステップS76で作成される通信データの一例を、入力されたIPパケット及びARPテーブル129と対応付けて示す。
図25において、入力されたIPパケット(データ)250は、図19に示すデータ194、図21に示すデータ216または図23に示すデータ234に相当する。IPパケット250は、IPヘッダ251及びIPペイロード252を含む。通信データ送信部125は、このIPパケット250にデータリンク層ヘッダ253を付加することにより、通信データ送信部125からI/O制御部120に送られるべき通信データ254を作成する。
FIG. 25 shows an example of the communication data created in step S76 in association with the input IP packet and the ARP table 129.
25, the input IP packet (data) 250 corresponds to the
図25の例では、矢印A71に示されるように、IPヘッダ251の宛先IPアドレスに一致するIPアドレス“192.168.1.150”がARPテーブル129に登録されている。この場合、通信データ254のデータリンク層ヘッダ253の宛先MACアドレスには、上記一致するIPアドレス“192.168.1.150”と対をなしてARPテーブル129に登録されているMACアドレス“dd:dd:dd:dd:dd:dd”が、矢印A72で示されるように用いられる。データリンク層ヘッダ253の送信元MACアドレスには、上述のように、仮想マシンモニタ12-iが動作しているHW11-iのMACアドレスが用いられる。ステップS76がステップS75に続いて実行された場合、上記一致するIPアドレス“192.168.1.150”はルータ17のIPアドレスであり、当該IPアドレスと対をなしてARPテーブル129に登録されているMACアドレス“dd:dd:dd:dd:dd:dd”はルータ17のMACアドレスである。
In the example of FIG. 25, as indicated by an arrow A71, an IP address “192.168.1.150” that matches the destination IP address of the
一方、上記再度の判定(ステップS74)でも、ルータ17のIPアドレスに一致するデータがARPテーブル129に登録されていないと判定された場合、通信データ送信部125はそのまま処理を終了する。
On the other hand, if it is determined that the data matching the IP address of the
また、上記ステップS71の判定がNOの場合、つまり宛先IPアドレスがネットワークセグメント16-iに属している場合、通信データ送信部125は、当該宛先IPアドレスに一致するIPアドレスを含むデータがARPテーブル129に登録されているか判定する(ステップS77)。
If the determination in step S71 is NO, that is, if the destination IP address belongs to the network segment 16-i, the communication
ステップS77の判定がNOの場合、通信データ送信部125は、入力されたIPパケットの宛先IPアドレスを宛先IPアドレスとするARP要求をI/O制御部120に送ることにより、当該ARP要求をI/O制御部120からネットワークセグメント16-iに送信させる(ステップS78)。このARP要求は、I/O制御部120の制御のもとで通信転送制御部122内の通信データ判定部124で中継されて、ARP処理部126に入力される(図18ステップS52)。
If the determination in step S77 is NO, the communication
通信データ送信部125はステップS78を実行すると、入力されたIPパケットの宛先IPアドレスに一致するIPアドレスを含むデータがARPテーブル129に登録されているか再度判定する(ステップS79)。
When executing step S78, the communication
ステップS77またはS79で、入力されたIPパケットの宛先IPアドレスに一致するIPアドレスを含むデータがARPテーブル129に登録されていると判定された場合、通信データ送信部125は当該ARPテーブル129から、上記宛先IPアドレスに一致するIPアドレスと対をなすMACアドレスを取得する(ステップS80)。すると通信データ送信部125は上記ステップS76に進み、当該入力されたIPパケット及び取得されたMACアドレスを用いて、当該取得されたMACアドレスを宛先とする通信データを作成して、I/O制御部120に送る。この処理は、入力されたIPパケットの宛先IPアドレスがネットワークセグメント16-iとは異なるネットワークセグメントに属している場合と同様に行われる。但し、宛先MACアドレスは異なる。つまり、宛先MACアドレスには、ルータ17のMACアドレスではなくて、ステップS80で取得されたMACアドレス(詳細には、入力されたIPパケットの宛先IPアドレスに一致するIPアドレスと対をなしてARPテーブル129に登録されているMACアドレス)が用いられる。
If it is determined in step S77 or S79 that data including an IP address that matches the destination IP address of the input IP packet is registered in the ARP table 129, the communication
<ARP処理部の動作>
次に、ARP処理部126の動作について説明する。
ARP処理部126が実行する処理は、(1)ARPパケット(つまりARP要求またはARP応答)が入力された場合の処理、(2)ARPテーブルの定期チェックに大別される。上記(1)の処理において、ARP処理部126は、入力されたARPパケットに基づくARPテーブル129へのデータの追加、及びARPパケットの送信を行う。上記(2)の処理において、ARP処理部126は、ARPテーブル129を予め定められた一定の時間間隔でチェックし、有効期限を減らしていく。またARP処理部126は、有効期限の切れたデータをARPテーブル129から削除する。上記(1)及び(2)の処理の詳細は次の通りである。
<Operation of ARP processing section>
Next, the operation of the
The processing executed by the
(1)ARPパケットが入力された場合の処理
まず、ARPパケットが入力された場合のARP処理部126の動作について、図26のフローチャートを参照して説明する。
(1) Processing when an ARP packet is input First, the operation of the
ARP処理部126は、入力されたARPパケットがARP応答かを判定する(ステップS91)。もし、ARP応答であるならば(ステップS91がYES)、ARP処理部126は、当該ARP応答のARP応答パケットに基づいて、ARPテーブル129にデータを追加する(ステップS92)。このARPテーブル129に追加されるデータは、MACアドレス及びIPアドレスの対と有効期限の情報とを含む。ここで、MACアドレス及びIPアドレスには、それぞれARP応答パケットの送信元MACアドレス及び送信元IPアドレスが用いられる。有効期限の情報には、例えばシステムで予め定められている600秒を示す情報が用いられる。しかし、有効期限に、ユーザによって指定される値を用いても構わない。
The
図27は、ステップS92でARPテーブル129に追加されるデータの一例を、入力されたARP応答と対応付けて示す。
図27において、入力されたARP応答270は、例えば図4に示すARP応答40または図8に示すARP応答80に相当する。ARP応答270は、データリンク層ヘッダ271及びARP応答パケット272を含む。このARP応答パケット272の送信元MACアドレス及び送信元IPアドレスが、それぞれ矢印A81及びA82で示されるように、ARPテーブル129に登録される。このとき、ARPテーブル129に登録されたMACアドレス及びIPアドレスの対の有効期限を示す情報も、当該MACアドレス及びIPアドレスの対に対応付けてARPテーブル129に登録される。
FIG. 27 shows an example of data added to the ARP table 129 in step S92 in association with the input ARP response.
In FIG. 27, the
一方、入力されたARPパケットがARP応答でないならば(ステップS91がNO)、つまりARP要求であるならば、ARP処理部126は、当該ARP要求の宛先IPアドレス(ターゲットIPアドレス)が当該ARP処理部126を含む仮想マシンモニタ12-i自身のIPアドレスであるかを判定する(ステップS93)。
On the other hand, if the input ARP packet is not an ARP response (NO in step S91), that is, if it is an ARP request, the
ARP要求の宛先IPアドレス(ターゲットIPアドレス)が仮想マシンモニタ12-i自身のIPアドレスであるならば(ステップS93がYES)、ARP処理部126は、入力されたARP要求の送信元アドレス(送信元MACアドレス及び送信元IPアドレス)に対する、仮想マシンモニタ12-iのARP応答を作成する(ステップS94)。このステップS94においてARP処理部126は、作成されたARP応答をI/O制御部120に送ることにより、当該ARP応答をI/O制御部120からネットワークセグメント16-iに送信させる。
If the destination IP address (target IP address) of the ARP request is the IP address of the virtual machine monitor 12-i itself (YES in step S93), the
図28は、ステップS94で作成・送信されるARP応答の一例を、入力されたARP要求と対応付けて示す。
図28において、入力されたARP要求280は、例えば図3に示すARP要求30、図7に示すARP要求70または図10に示すARP要求100に相当する。ARP要求280は、データリンク層ヘッダ281及びARP要求パケット282を含む。一方、作成・送信されるARP応答283は、データリンク層ヘッダ284及びARP応答パケット285を含む。
FIG. 28 shows an example of the ARP response created / transmitted in step S94 in association with the input ARP request.
28, the
ARP応答283のデータリンク層ヘッダ284の宛先MACアドレス及び送信元MACアドレスには、それぞれ、矢印A91及びA92で示されるように、ARP要求280のデータリンク層ヘッダ281の送信元MACアドレス及び仮想マシンモニタ12-iが動作しているHW11-iのMACアドレスが用いられる。ARP応答283のARP応答パケット285の宛先MACアドレス及び宛先IPアドレスには、それぞれ、矢印A93及びA94で示されるように、ARP要求280のARP要求パケット282の送信元MACアドレス及び送信元IPアドレスが用いられる。ARP応答283のARP応答パケット285の送信元MACアドレス及び送信元IPアドレスには、それぞれ、矢印A95及びA95で示されるように、仮想マシンモニタ12-iが動作しているHW11-iのMACアドレス及び当該仮想マシンモニタ12-i自身のIPアドレスが用いられる。
The destination MAC address and source MAC address of the data
一方、ステップS93の判定がNOであるならば、つまりARP要求の宛先IPアドレス(ターゲットIPアドレス)が仮想マシンモニタ12-i自身のIPアドレスと異なるならば、ARP処理部126は、当該宛先IPアドレスと一致するゲストOSのIPアドレスが移動先アドレステーブル127に登録されているかを判定する(ステップS95)。
On the other hand, if the determination in step S93 is NO, that is, if the destination IP address (target IP address) of the ARP request is different from the IP address of the virtual machine monitor 12-i itself, the
ステップS95の判定がYESであるならば、ARP処理部126は、入力されたARP要求が、移動したゲストOSに対するARP要求であると判断する。この場合、ARP処理部126は、移動先アドレステーブル127に登録されている、ARP要求の宛先IPアドレス(ターゲットIPアドレス)と一致するゲストOSのIPアドレス及び当該ゲストOSのIPアドレスと対をなす当該ゲストOSのMACアドレスを使用して、入力されたARP要求の送信元アドレスに対するゲストOSのARP応答を作成する(ステップS96)。このステップS96においてARP処理部126は、作成されたARP応答をI/O制御部120に送ることにより、当該ARP応答をI/O制御部120からネットワークセグメント16-iに送信させる。
If the determination in step S95 is YES, the
図29は、ステップS96で作成・送信されるARP応答の一例を、入力されたARP要求及び移動先アドレステーブル127と対応付けて示す。
図29において、入力されたARP要求290は、データリンク層ヘッダ291及びARP要求パケット292を含む。一方、作成・送信されるARP応答293は、データリンク層ヘッダ294及びARP応答パケット295を含む。図29の例において、移動先アドレステーブル127には、矢印A101で示されるように、ARP要求290のARP要求パケット292の宛先IPアドレス(ターゲットIPアドレス)と一致するゲストOSのIPアドレス“192.168.1.100”が登録されている。
FIG. 29 shows an example of the ARP response created / transmitted in step S96 in association with the input ARP request and the destination address table 127.
In FIG. 29, the
この場合、ARP応答293のデータリンク層ヘッダ294の宛先MACアドレスには、矢印A102で示されるように、ARP要求290のデータリンク層ヘッダ291の送信元MACアドレスが用いられる。ARP応答293のデータリンク層ヘッダ294の送信元MACアドレスには、矢印A103で示されるように、上記ゲストOSのIPアドレス“192.168.1.100”と対をなして移動先アドレステーブル127に登録されている当該ゲストOSのMACアドレス“aa:aa:aa:aa:aa:aa”が用いられる。
In this case, the transmission source MAC address of the data
また、ARP応答293のARP応答パケット295の宛先MACアドレス及び宛先IPアドレスには、それぞれ、矢印A104及び105で示されるように、ARP要求290のARP要求パケット292の送信元MACアドレス及び送信元IPアドレスが用いられる。ARP応答293のARP応答パケット295の送信元MACアドレス及び送信元IPアドレスには、それぞれ、矢印A106及びA107で示されるように、上記ゲストOSのMACアドレス“aa:aa:aa:aa:aa:aa”及びIPアドレス“192.168.1.100”が用いられる。
Further, the destination MAC address and the destination IP address of the
一方、ステップS95の判定がNOであるならば、つまり入力されたARP要求の宛先IPアドレスと一致するゲストOSのIPアドレスが移動先アドレステーブル127に登録されていないならば、ARP処理部126は、ARP要求の送信元IPアドレスと一致するゲストOSのIPアドレスが移動元アドレステーブル128に登録されているかを判定する(ステップS97)。
On the other hand, if the determination in step S95 is NO, that is, if the IP address of the guest OS that matches the destination IP address of the input ARP request is not registered in the migration destination address table 127, the
もし、ステップS97の判定がYESであるならば、ARP処理部126は、入力されたARP要求が、移動しているゲストOSが送信したARP要求であると判断する。この場合、ARP処理部126は、偽のMACアドレスを格納したARP応答を作成する(ステップS98)。このステップS98においてARP処理部126は、作成されたARP応答をI/O制御部120に送ることにより、当該ARP応答をI/O制御部120からネットワークセグメント16-iに送信させる。
If the determination in step S97 is YES, the
図30は、ステップS98で作成・送信されるARP応答の一例を、入力されたARP要求及び移動元アドレステーブル128と対応付けて示す。
図30において、入力されたARP要求300は、データリンク層ヘッダ301及びARP要求パケット302を含む。一方、作成・送信されるARP応答303は、データリンク層ヘッダ304及びARP応答パケット305を含む。図30の例において、移動元アドレステーブル128には、矢印A111で示されるように、ARP要求300のARP要求パケット302の送信元IPアドレスと一致するゲストOSのIPアドレス“192.168.2.100”が登録されている。
FIG. 30 shows an example of the ARP response created / transmitted in step S98 in association with the input ARP request and the source address table 128.
In FIG. 30, the
この場合、ARP応答303のデータリンク層ヘッダ304の宛先MACアドレスには、矢印A112で示されるように、ARP要求300のデータリンク層ヘッダ301の送信元MACアドレスが用いられる。ARP応答303のデータリンク層ヘッダ304の送信元MACアドレスには、矢印A113で示されるように、偽のMACアドレスが用いられる。
In this case, the source MAC address of the data
また、ARP応答303のARP応答パケット305の宛先MACアドレス及び宛先IPアドレスには、それぞれ、矢印A114及び115で示されるように、ARP要求300のARP要求パケット302の送信元MACアドレス及び送信元IPアドレスが用いられる。ARP応答303のARP応答パケット305の送信元MACアドレス及び送信元IPアドレスには、それぞれ、矢印A116及びA117で示されるように、上記偽のMACアドレス及びARP要求パケット302の宛先IPアドレス(ターゲットIPアドレス)が用いられる。
Further, the destination MAC address and the destination IP address of the
一方、ステップS97の判定がNOであるならば、つまり入力されたARP要求の送信元IPアドレスと一致するゲストOSのIPアドレスが移動元アドレステーブル128に登録されていないならば、ARP処理部126は、当該ARP要求が、自身が処理する必要のない通信データ(移動していないゲストOSからのARP要求)であると判断する。この場合、ARP処理部126は、入力されたARP要求を、I/O制御部120にそのまま返す(ステップS99)。
On the other hand, if the determination in step S97 is NO, that is, if the IP address of the guest OS that matches the source IP address of the input ARP request is not registered in the source address table 128, the
(2)ARPテーブルの定期チェック
次に、ARP処理部126によるARPテーブル129の定期チェックについて、図31のフローチャートを参照して説明する。
(2) Periodic Check of ARP Table Next, the periodic check of the ARP table 129 by the
ARP処理部126は、ARPテーブル129を定期的にチェックして、有効期限が0以下となるデータを当該テーブル129から削除するための処理を、図31のフローチャートに従って次のように行う。
The
ARP処理部126は、ARPテーブル129のエントリを参照し、有効期限の値を定期チェックの間隔の時間だけ減らす(ステップS101)。次にARP処理部126は、定期チェックの間隔の時間だけ減らされた後の有効期限の値が0以下となったかを判定する(ステップS102)。もし、ステップS102の判定がYESであるならば、ARP処理部126は、当該ステップS102で判定された有効期限の値を含むARPテーブル129のエントリのデータを、当該テーブル129から削除する(ステップS103)。これに対し、ステップS102の判定がNOであるならば、ARP処理部126はステップS103をスキップする。
The
ARP処理部126は、以上の処理を、ARPテーブル129の全エントリについて繰り返す(ステップS104)。ARP処理部126は、ARPテーブル129の全エントリについて上記の処理を完了すると(ステップS104)、定期チェックの間隔の時間待機する(ステップS105)。本実施形態において、ARPテーブル129を対象とする定期チェックの間隔(時間間隔)は1秒に予め定められている。しかし、定期チェックの間隔がユーザによって設定可能な構成としても構わない。
The
ARP処理部126は、定期チェックの間隔の時間待機し終える毎に、上述のARPテーブル129の全エントリをチェックして、有効期限が0以下となるデータを当該テーブル129から削除するための処理を繰り返す(ステップS106)。
Each time the
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態では、ゲストOSが動作可能な仮想マシンモニタが2台である。しかし本発明は、仮想マシンモニタが3台以上の仮想マシンシステムにも上記実施形態と同様に適用できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. For example, in the above embodiment, there are two virtual machine monitors on which the guest OS can operate. However, the present invention can also be applied to a virtual machine system having three or more virtual machine monitors in the same manner as in the above embodiment. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
11-1,11-2…HW(ハードウェア)、12-1,12-2,12-i…仮想マシンモニタ、13…仮想マシン、14…ゲストOS、15…共有ディスク装置、16…LAN、16-1,16-2,16-i…ネットワークセグメント、120…I/O制御部、121…ゲストOS制御部、122…通信転送制御部、123…ゲストOS状態受信部、124…通信データ判定部、125…通信データ送信部、126…ARP処理部、127…移動先アドレステーブル、128…移動元アドレステーブル、129…ARPテーブル、130…移動管理部。 11-1, 11-2 ... HW (hardware), 12-1, 12-2, 12-i ... virtual machine monitor, 13 ... virtual machine, 14 ... guest OS, 15 ... shared disk device, 16 ... LAN, 16-1, 16-2, 16-i ... network segment, 120 ... I / O control unit, 121 ... guest OS control unit, 122 ... communication transfer control unit, 123 ... guest OS state receiving unit, 124 ... communication data determination 125: Communication data transmission unit, 126 ... ARP processing unit, 127 ... Migration destination address table, 128 ... Migration source address table, 129 ... ARP table, 130 ... Migration management unit.
Claims (7)
前記第1の仮想マシンモニタが動作する第1のハードウェアと、
ゲストOSが動作可能な第2の仮想マシンモニタと、
前記第2の仮想マシンモニタが動作する第2のハードウェアと、
前記第1のハードウェア及び前記第2のハードウェアを接続するネットワークとを具備する仮想マシンシステムであって、
前記第1の仮想マシンモニタは、
前記第1のハードウェアと前記第1の仮想マシンモニタ上で動作するゲストOSとの間の通信データの入出力を制御する入出力制御手段と、
前記第1の仮想マシンモニタから前記第2の仮想マシンモニタへのゲストOSの移動及び前記第2の仮想マシンモニタから前記第1の仮想マシンモニタへのゲストOSの移動を制御するゲストOS制御手段と、
前記ゲストOS制御手段の制御によるゲストOSの移動状態を管理する移動管理手段と、
前記移動管理手段によって管理されているゲストOSの移動状態に基づき、通信データが、前記第1の仮想マシンモニタ及び第2の仮想マシンモニタの間を移動したゲストOS宛ての第1のIPパケットを含む第1の通信データ、前記第1のIPパケットが格納された第2の通信データ、前記移動したゲストOSが送信する第2のIPパケットを含む第3の通信データ、または前記第2のIPパケットが格納された第4の通信データであるかを判定し、当該判定結果に応じて前記通信データの転送を制御する通信転送制御手段とを含み、
前記第1の仮想マシンモニタの前記通信転送制御手段は、
前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOS宛ての第1の通信データである場合、当該第1の通信データの第1のIPパケットを前記第2の仮想マシンモニタ宛ての第2の通信データに格納して、当該第1のIPパケットが格納された前記第2の通信データを前記入出力制御手段により前記第2の仮想マシンモニタに転送し、
前記通信データが、前記第2の仮想マシンモニタから前記第1の仮想マシンモニタに移動したゲストOS宛ての第1の通信データの第1のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第2の通信データである場合、前記第1の仮想マシンモニタに移動したゲストOS宛ての当該第1の通信データの前記第1のIPパケットを当該第2の通信データから取り出して、当該取り出された第1のIPパケットを含む第5の通信データを前記第1の仮想マシンモニタに移動したゲストOSに前記入出力制御手段により提供し、
前記通信データが、前記第1の仮想マシンモニタに移動したゲストOSが送信した第3の通信データである場合、前記第2の仮想マシンモニタ宛ての第4の通信データに当該第3の通信データの第2のIPパケットを格納して、当該第2のIPパケットが格納された前記第4の通信データを前記入出力制御手段により前記第2の仮想マシンモニタに転送し、
前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOSが送信した第3の通信データの第2のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第4の通信データである場合、前記第2の仮想マシンモニタに移動したゲストOSが送信した当該第3の通信データの前記第2のIPパケットを当該第4の通信データから取り出して、当該取り出された第2のIPパケットを含む第6の通信データを前記入出力制御手段により前記ネットワークに送信する
ことを特徴とする仮想マシンシステム。 A first virtual machine monitor capable of operating a guest OS;
First hardware on which the first virtual machine monitor operates;
A second virtual machine monitor capable of operating the guest OS;
Second hardware on which the second virtual machine monitor operates;
A virtual machine system comprising: a network connecting the first hardware and the second hardware;
The first virtual machine monitor is
Input / output control means for controlling input / output of communication data between the first hardware and the guest OS operating on the first virtual machine monitor;
Guest OS control means for controlling the movement of the guest OS from the first virtual machine monitor to the second virtual machine monitor and the movement of the guest OS from the second virtual machine monitor to the first virtual machine monitor When,
Movement management means for managing the movement state of the guest OS under the control of the guest OS control means;
Based on the movement state of the guest OS managed by the movement management unit, the communication data includes a first IP packet addressed to the guest OS that has moved between the first virtual machine monitor and the second virtual machine monitor. Including first communication data, second communication data storing the first IP packet, third communication data including a second IP packet transmitted by the moved guest OS, or the second IP Communication transfer control means for determining whether the packet is stored fourth communication data, and controlling transfer of the communication data according to the determination result,
The communication transfer control means of the first virtual machine monitor is:
When the communication data is the first communication data addressed to the guest OS moved from the first virtual machine monitor to the second virtual machine monitor, the first IP packet of the first communication data is Store in second communication data addressed to the second virtual machine monitor, and transfer the second communication data storing the first IP packet to the second virtual machine monitor by the input / output control means. And
The communication data addressed to the first virtual machine monitor storing the first IP packet of the first communication data addressed to the guest OS moved from the second virtual machine monitor to the first virtual machine monitor The first IP packet of the first communication data addressed to the guest OS moved to the first virtual machine monitor is extracted from the second communication data, and the extracted second communication data. Providing the fifth communication data including the first IP packet to the guest OS moved to the first virtual machine monitor by the input / output control unit;
When the communication data is the third communication data transmitted by the guest OS moved to the first virtual machine monitor, the third communication data is added to the fourth communication data addressed to the second virtual machine monitor. The second IP packet is stored, and the fourth communication data in which the second IP packet is stored is transferred to the second virtual machine monitor by the input / output control unit,
The first virtual machine monitor in which the communication data stores a second IP packet of third communication data transmitted by a guest OS that has moved from the first virtual machine monitor to the second virtual machine monitor. If it is the fourth communication data addressed to, the second IP packet of the third communication data transmitted by the guest OS moved to the second virtual machine monitor is extracted from the fourth communication data, A virtual machine system, wherein sixth communication data including the extracted second IP packet is transmitted to the network by the input / output control means.
ゲストOSのIPアドレスと当該ゲストOSの移動先の仮想マシンモニタのIPアドレスとを登録するための第1のテーブルと、
ゲストOSのIPアドレスと当該ゲストOSの移動元の仮想マシンモニタのIPアドレスとを登録するための第2のテーブルとを含み、
前記第1の仮想マシンモニタは、前記ゲストOS制御手段の制御によるゲストOSの状態遷移の通知を当該ゲストOS制御手段から受信するゲストOS状態受信手段であって、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタへの前記ゲストOSの移動が完了した通知を受信した場合、当該ゲストOSの物理アドレス及びIPアドレスの対と当該ゲストOSの移動先の前記第2の仮想マシンモニタのIPアドレスを含むデータを前記第1の仮想マシンモニタの前記第1のテーブルに登録し、前記第2の仮想マシンモニタから前記第1の仮想マシンモニタへの前記ゲストOSの移動が完了した通知を受信した場合、当該ゲストOSの物理アドレス及びIPアドレスの対と当該ゲストOSの移動元の前記第2の仮想マシンモニタのIPアドレスを含むデータを前記第1の仮想マシンモニタの前記第2のテーブルに登録するゲストOS状態受信手段を含む
ことを特徴とする請求項1記載の仮想マシンシステム。 The movement management means of the first virtual machine monitor is:
A first table for registering the IP address of the guest OS and the IP address of the destination virtual machine monitor of the guest OS;
A second table for registering the IP address of the guest OS and the IP address of the migration source virtual machine monitor of the guest OS,
The first virtual machine monitor is a guest OS state reception unit that receives a guest OS state transition notification from the guest OS control unit under the control of the guest OS control unit, When the notification of the completion of the movement of the guest OS to the second virtual machine monitor is received, the pair of the physical address and IP address of the guest OS and the movement destination of the second virtual machine monitor of the guest OS Data including an IP address is registered in the first table of the first virtual machine monitor, and a notification that the migration of the guest OS from the second virtual machine monitor to the first virtual machine monitor is completed If received, the pair of the physical address and IP address of the guest OS and the I of the second virtual machine monitor from which the guest OS is moved Virtual machine system according to claim 1, characterized in that it comprises a guest OS state receiving means for registering the data containing the address to the second table of the first virtual machine monitor.
前記通信データ判定手段は、
前記通信データの宛先に一致するゲストOSの物理アドレス及びIPアドレスの対が前記第1のテーブルに登録されているならば、前記通信データが前記第2の仮想マシンモニタに移動したゲストOS宛ての前記第1の通信データであると判定し、
前記通信データの宛先IPアドレスが前記第1の仮想マシンモニタ自身のIPアドレスであり、且つ前記通信データの送信元IPアドレスに一致する前記第2の仮想マシンモニタのIPアドレスが前記第2のテーブルに登録されているならば、前記通信データが前記第1の仮想マシンモニタに移動したゲストOS宛ての前記第1の通信データの前記第1のIPパケットを格納した前記第2の通信データであると判定し、
前記通信データの送信元に一致するゲストOSの物理アドレス及びIPアドレスが前記第2のテーブルに登録されているならば、前記通信データが前記第2の仮想マシンモニタに移動したゲストOSが送信した前記第3の通信データであると判定し、
前記通信データの宛先IPアドレスが前記第1の仮想マシンモニタ自身のIPアドレスであり、且つ前記通信データの送信元IPアドレスに一致する前記第2の仮想マシンモニタのIPアドレスが前記第1の仮想マシンモニタの前記第1のテーブルに登録されているならば、前記通信データが前記第2の仮想マシンモニタに移動したゲストOSが送信した前記第3の通信データの前記第2のIPパケットを格納した前記第4の通信データであると判定する
ことを特徴とする請求項2記載の仮想マシンモニタシステム。 The communication transfer control means of the first virtual machine monitor includes communication data determination means for executing determination of the communication data based on the first and second tables;
The communication data determination means includes
If the pair of the physical address and IP address of the guest OS that matches the destination of the communication data is registered in the first table, the communication data is addressed to the guest OS that has been moved to the second virtual machine monitor. Determining that the first communication data;
The destination IP address of the communication data is the IP address of the first virtual machine monitor itself, and the IP address of the second virtual machine monitor that matches the source IP address of the communication data is the second table. The communication data is the second communication data in which the first IP packet of the first communication data addressed to the guest OS moved to the first virtual machine monitor is stored. And
If the physical address and IP address of the guest OS that matches the transmission source of the communication data are registered in the second table, the guest OS that the communication data has moved to the second virtual machine monitor has transmitted. It is determined that the third communication data,
The destination IP address of the communication data is the IP address of the first virtual machine monitor itself, and the IP address of the second virtual machine monitor that matches the source IP address of the communication data is the first virtual machine monitor. If registered in the first table of the machine monitor, the communication data stores the second IP packet of the third communication data transmitted by the guest OS moved to the second virtual machine monitor. The virtual machine monitor system according to claim 2, wherein the fourth communication data is determined.
前記通信データが前記第2の仮想マシンモニタに移動したゲストOS宛ての前記第1の通信データであると判定された場合、当該第1の通信データの第1のIPパケットを格納した前記第2の通信データであって、当該第1の通信データの宛先に一致するゲストOSの物理アドレス及びIPアドレスに対応付けて前記第1のテーブルに登録されている前記第2の仮想マシンモニタのIPアドレスを宛先アドレスとし、前記第1の仮想マシンモニタ自身のIPアドレスを送信元IPアドレスとする前記第2の通信データを作成し、
前記通信データが前記第1の仮想マシンモニタに移動したゲストOS宛ての前記第1の通信データの第1のIPパケットを格納した前記第2の通信データであると判定された場合、当該第2の通信データに格納されている前記第1のIPパケットに、当該第2の通信データの送信元IPアドレスに一致する前記第2の仮想マシンモニタのIPアドレスと対応付けて前記第2のテーブルに登録されているゲストOSの物理アドレスを宛先物理アドレスとし、偽の物理アドレスを送信元物理アドレスとするデータリンク層ヘッダが付加されたデータリンク層フレームを前記第5の通信データとして作成し、
前記通信データが前記第2の仮想マシンモニタに移動したゲストOSが送信した前記第3の通信データであると判定された場合、当該第3の通信データの第2のIPパケットを格納した前記第4の通信データであって、当該第3の通信データの送信元に一致するゲストOSの物理アドレス及びIPアドレスに対応付けて前記第2のテーブルに登録されている前記第2の仮想マシンモニタのIPアドレスを宛先アドレスとし、前記第1の仮想マシンモニタ自身のIPアドレスを送信元IPアドレスとする前記第4の通信データを作成し、
前記通信データが前記第2の仮想マシンモニタに移動したゲストOSが送信した前記第3の通信データの第2のIPパケットを格納した前記第4の通信データであると判定された場合、当該第4の通信データに格納されている前記第2のIPパケットを取り出し、当該第2のIPパケットの宛先IPアドレスに対応する物理アドレスを宛先物理アドレスとし、当該第2のIPパケットの送信元IPアドレスに一致する前記第2の仮想マシンモニタのIPアドレスに対応付けて前記第1の仮想マシンモニタの前記第1のテーブルに登録されているゲストOSの物理アドレスを送信元物理アドレスとするデータリンク層ヘッダが付加されたデータリンク層フレームを前記第6の通信データとして作成する
ことを特徴とする請求項3記載の仮想マシンシステム。 The communication transfer control means of the first virtual machine monitor is:
When it is determined that the communication data is the first communication data addressed to the guest OS moved to the second virtual machine monitor, the second IP packet storing the first IP packet of the first communication data is stored. Communication data, and the IP address of the second virtual machine monitor registered in the first table in association with the physical address and IP address of the guest OS that matches the destination of the first communication data The second communication data with the destination address as the destination IP address and the IP address of the first virtual machine monitor itself as the source IP address,
When it is determined that the communication data is the second communication data storing the first IP packet of the first communication data addressed to the guest OS moved to the first virtual machine monitor, the second In the second table, the first IP packet stored in the communication data is associated with the IP address of the second virtual machine monitor that matches the source IP address of the second communication data. Creating a data link layer frame to which a data link layer header having a physical address of a registered guest OS as a destination physical address and a fake physical address as a transmission source physical address is added as the fifth communication data;
When it is determined that the communication data is the third communication data transmitted by the guest OS that has moved to the second virtual machine monitor, the second IP packet storing the second IP packet of the third communication data is stored. 4 of the second virtual machine monitor registered in the second table in association with the physical address and IP address of the guest OS that matches the transmission source of the third communication data. Creating the fourth communication data with the IP address as the destination address and the IP address of the first virtual machine monitor itself as the source IP address;
When it is determined that the communication data is the fourth communication data storing the second IP packet of the third communication data transmitted by the guest OS moved to the second virtual machine monitor, The second IP packet stored in the communication data 4 is taken out, the physical address corresponding to the destination IP address of the second IP packet is taken as the destination physical address, and the source IP address of the second IP packet A data link layer in which the physical address of the guest OS registered in the first table of the first virtual machine monitor is associated with the IP address of the second virtual machine monitor that matches 4. The virtual machine according to claim 3, wherein a data link layer frame to which a header is added is created as the sixth communication data. System.
前記第1の仮想マシンモニタの前記通信転送制御手段は、前記通信データ判定手段によって前記通信データが前記アドレス解決プロトコル要求または前記アドレス解決プロトコル応答であると判定された場合に動作するアドレス解決プロトコル処理手段を含み、
前記アドレス解決プロトコル処理手段は、前記通信データが前記アドレス解決プロトコル要求であるならば、当該アドレス解決プロトコル要求の宛先のIPアドレスが前記第1のテーブルに登録されているゲストOSのIPアドレスに一致する第1の場合か、或いは前記アドレス解決プロトコル要求の送信元のIPアドレスが前記第2のテーブルに登録されているゲストOSのIPアドレスに一致する第2の場合かを判定し、前記第1の場合、前記一致するIPアドレスと対をなして前記第2のテーブルに登録されている物理アドレスを通知するためのアドレス解決プロトコル応答を前記アドレス解決プロトコル要求の送信元に返し、前記第2の場合、偽の物理アドレスを通知するためのアドレス解決プロトコル応答を前記入出力制御手段により前記アドレス解決プロトコル要求の送信元に返す
ことを特徴とする請求項3または4に記載の仮想マシンシステム。 The communication data determination means of the first virtual machine monitor determines whether the communication data is an address resolution protocol request or an address resolution protocol response;
The communication transfer control unit of the first virtual machine monitor operates when the communication data determination unit determines that the communication data is the address resolution protocol request or the address resolution protocol response. Including means,
The address resolution protocol processing means, if the communication data is the address resolution protocol request, the destination IP address of the address resolution protocol request matches the IP address of the guest OS registered in the first table To determine whether the IP address of the transmission source of the address resolution protocol request matches the IP address of the guest OS registered in the second table. In this case, an address resolution protocol response for notifying the physical address registered in the second table in a pair with the matching IP address is returned to the source of the address resolution protocol request, and the second If the input / output control means sends an address resolution protocol response for notifying a fake physical address Virtual machine system according to claim 3 or 4, characterized in that return to the source of the address resolution protocol request Ri.
前記通信データがゲストOS宛ての受信データの場合、当該通信データの送信先IPアドレスに一致するゲストOSのIPアドレスが前記第1のテーブルに登録されていないならば、当該通信データが、前記第1の仮想マシンモニタ上で動作する移動していないゲストOS宛ての第7の通信データであると判定し、
前記通信データがゲストOSからの送信データの場合、当該通信データの送信元IPアドレスに一致するゲストOSのIPアドレスが前記第2のテーブルに登録されていないならば、前記通信データが、前記第1の仮想マシンモニタ上で動作する移動していないゲストOSが送信した第8の通信データであると判定し、
前記第1の仮想マシンモニタの前記通信転送制御手段は、前記通信データ判定手段によって前記第7の通信データであると判定された通信データを前記移動していないゲストOSに渡し、前記通信データ判定手段によって前記第8の通信データであると判定された通信データを前記入出力制御手段により前記ネットワークに送信する
ことを特徴とする請求項3または4に記載の仮想マシンモニタシステム。 The communication data determination means of the first virtual machine monitor is
When the communication data is received data addressed to the guest OS, if the IP address of the guest OS that matches the destination IP address of the communication data is not registered in the first table, the communication data is It is determined that the communication data is the seventh communication data addressed to the non-moving guest OS operating on one virtual machine monitor,
When the communication data is transmission data from the guest OS, if the IP address of the guest OS that matches the transmission source IP address of the communication data is not registered in the second table, the communication data is It is determined that the communication data is the eighth communication data transmitted by the non-moving guest OS operating on one virtual machine monitor,
The communication transfer control unit of the first virtual machine monitor passes the communication data determined to be the seventh communication data by the communication data determination unit to the guest OS that has not moved, and determines the communication data determination The virtual machine monitor system according to claim 3 or 4, wherein communication data determined by the means to be the eighth communication data is transmitted to the network by the input / output control means.
前記第1の仮想マシンモニタに、
前記移動管理手段によって管理されているゲストOSの移動状態に基づき、通信データが、前記第1の仮想マシンモニタ及び第2の仮想マシンモニタの間を移動したゲストOS宛ての第1のIPパケットを含む第1の通信データ、前記第1のIPパケットが格納された第2の通信データ、前記移動したゲストOSが送信する第2のIPパケットを含む第3の通信データ、または前記第2のIPパケットが格納された第4の通信データであるかを判定するステップと、
前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOS宛ての第1の通信データである場合、当該第1の通信データの第1のIPパケットを前記第2の仮想マシンモニタ宛ての第2の通信データに格納して、当該第1のIPパケットが格納された前記第2の通信データを前記入出力制御手段によって前記第2の仮想マシンモニタに転送させるステップと、
前記通信データが、前記第2の仮想マシンモニタから前記第1の仮想マシンモニタに移動したゲストOS宛ての第1の通信データの第1のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第2の通信データである場合、前記第1の仮想マシンモニタに移動したゲストOS宛ての当該第1の通信データの前記第1のIPパケットを当該第2の通信データから取り出して、当該取り出された第1のIPパケットを含む第5の通信データを前記第1の仮想マシンモニタに移動したゲストOSに前記入出力制御手段によって提供させるステップと、
前記通信データが、前記第1の仮想マシンモニタに移動したゲストOSが送信した第3の通信データである場合、前記第2の仮想マシンモニタ宛ての第4の通信データに当該第3の通信データの第2のIPパケットを格納して、当該第2のIPパケットが格納された前記第4の通信データを前記入出力制御手段によって前記第2の仮想マシンモニタに転送させるステップと、
前記通信データが、前記第1の仮想マシンモニタから前記第2の仮想マシンモニタに移動したゲストOSが送信した第3の通信データの第2のIPパケットを格納した、前記第1の仮想マシンモニタ宛ての第4の通信データである場合、前記第2の仮想マシンモニタに移動したゲストOSが送信した当該第3の通信データの前記第2のIPパケットを当該第4の通信データから取り出して、当該取り出された第2のIPパケットを含む第6の通信データを前記入出力制御手段によって前記ネットワークに送信させるステップと
を実行させるための仮想マシンモニタ用プログラムプログラム。 The first hardware on which the first virtual machine monitor capable of operating the guest OS operates and the second hardware on which the second virtual machine monitor capable of operating the guest OS operate are connected via a network, The first virtual machine monitor controls the input / output of communication data between the first hardware and the guest OS operating on the first virtual machine monitor from the first virtual machine monitor to the first virtual machine monitor. The guest OS control means for controlling the movement of the guest OS to the second virtual machine monitor and the movement of the guest OS from the second virtual machine monitor to the first virtual machine monitor, and the control of the guest OS control means A virtual machine monitor program applied to a virtual machine system having movement management means for managing the movement state of a guest OS,
In the first virtual machine monitor,
Based on the movement state of the guest OS managed by the movement management unit, the communication data includes a first IP packet addressed to the guest OS that has moved between the first virtual machine monitor and the second virtual machine monitor. Including first communication data, second communication data storing the first IP packet, third communication data including a second IP packet transmitted by the moved guest OS, or the second IP Determining whether the packet is stored fourth communication data;
When the communication data is the first communication data addressed to the guest OS moved from the first virtual machine monitor to the second virtual machine monitor, the first IP packet of the first communication data is Store in the second communication data addressed to the second virtual machine monitor, and transfer the second communication data in which the first IP packet is stored to the second virtual machine monitor by the input / output control means Step to
The communication data addressed to the first virtual machine monitor storing the first IP packet of the first communication data addressed to the guest OS moved from the second virtual machine monitor to the first virtual machine monitor The first IP packet of the first communication data addressed to the guest OS moved to the first virtual machine monitor is extracted from the second communication data, and the extracted second communication data. Providing the guest OS moved to the first virtual machine monitor by the input / output control means with the fifth communication data including the received first IP packet;
When the communication data is the third communication data transmitted by the guest OS moved to the first virtual machine monitor, the third communication data is added to the fourth communication data addressed to the second virtual machine monitor. Storing the second IP packet, and transferring the fourth communication data in which the second IP packet is stored to the second virtual machine monitor by the input / output control unit;
The first virtual machine monitor in which the communication data stores a second IP packet of third communication data transmitted by a guest OS that has moved from the first virtual machine monitor to the second virtual machine monitor. If it is the fourth communication data addressed to, the second IP packet of the third communication data transmitted by the guest OS moved to the second virtual machine monitor is extracted from the fourth communication data, A program program for virtual machine monitoring for causing the input / output control means to transmit the sixth communication data including the extracted second IP packet to the network.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008151871A JP4762270B2 (en) | 2008-06-10 | 2008-06-10 | Virtual machine system and virtual machine monitor program program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008151871A JP4762270B2 (en) | 2008-06-10 | 2008-06-10 | Virtual machine system and virtual machine monitor program program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009301117A true JP2009301117A (en) | 2009-12-24 |
JP4762270B2 JP4762270B2 (en) | 2011-08-31 |
Family
ID=41547978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008151871A Active JP4762270B2 (en) | 2008-06-10 | 2008-06-10 | Virtual machine system and virtual machine monitor program program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4762270B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014183347A (en) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | Virtual machine management device, method, and program |
WO2019180812A1 (en) * | 2018-03-20 | 2019-09-26 | 三菱電機株式会社 | Information processing device, method, and program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244481A (en) * | 2005-02-28 | 2006-09-14 | Hewlett-Packard Development Co Lp | System and method for migrating virtual machine for cluster system |
JP2007110240A (en) * | 2005-10-11 | 2007-04-26 | Sony Computer Entertainment Inc | Information processor and communication control method |
JP2008123303A (en) * | 2006-11-13 | 2008-05-29 | Toshiba Corp | Information processor, information processing method, and program |
-
2008
- 2008-06-10 JP JP2008151871A patent/JP4762270B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006244481A (en) * | 2005-02-28 | 2006-09-14 | Hewlett-Packard Development Co Lp | System and method for migrating virtual machine for cluster system |
JP2007110240A (en) * | 2005-10-11 | 2007-04-26 | Sony Computer Entertainment Inc | Information processor and communication control method |
JP2008123303A (en) * | 2006-11-13 | 2008-05-29 | Toshiba Corp | Information processor, information processing method, and program |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014183347A (en) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | Virtual machine management device, method, and program |
WO2019180812A1 (en) * | 2018-03-20 | 2019-09-26 | 三菱電機株式会社 | Information processing device, method, and program |
KR20200108489A (en) * | 2018-03-20 | 2020-09-18 | 미쓰비시덴키 가부시키가이샤 | Information processing apparatus, method, and program |
CN111868687A (en) * | 2018-03-20 | 2020-10-30 | 三菱电机株式会社 | Information processing apparatus, method, and program |
KR102203648B1 (en) | 2018-03-20 | 2021-01-15 | 미쓰비시덴키 가부시키가이샤 | Information processing apparatus, method, and program |
TWI719420B (en) * | 2018-03-20 | 2021-02-21 | 日商三菱電機股份有限公司 | Information processing apparatus, information processing method, and program |
CN111868687B (en) * | 2018-03-20 | 2021-09-17 | 三菱电机株式会社 | Information processing apparatus, method, and program |
US11656898B2 (en) | 2018-03-20 | 2023-05-23 | Mitsubishi Electric Corporation | Information processing device, method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4762270B2 (en) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003480B2 (en) | Container deployment method, communication method between services, and related apparatus | |
EP3401783B1 (en) | Method and apparatus for determining virtual machine migration | |
US10587544B2 (en) | Message processing method, processing server, terminal, and storage medium | |
CN110071900B (en) | Data sending method and device | |
EP4044528B1 (en) | Packet transmission method, proxy node, and storage medium | |
EP3091696B1 (en) | Method and device for implementing virtual machine communication | |
EP2318926B1 (en) | Method and system for low-overhead data transfer | |
JP6982104B2 (en) | BRAS system-based packet encapsulation methods and equipment | |
EP4040743B1 (en) | Message transmission method and proxy node | |
US20150180959A1 (en) | Network interface controller supporting network virtualization | |
JP2020520612A (en) | Packet transmission method, edge device, and machine-readable storage medium | |
CN113326101B (en) | Thermal migration method, device and equipment based on remote direct data storage | |
US9118608B2 (en) | Communication apparatus, control method therefor, and computer-readable storage medium | |
US20090185572A1 (en) | Relay apparatus and method for notifying information | |
WO2015026158A1 (en) | Method and system for dual role handling in a wireless environment | |
CN113438329B (en) | MAC address sending method, device and system | |
JP2015023329A (en) | Notification method, device and program | |
CN111565142A (en) | Message processing method and device and computer readable storage medium | |
CN106411842A (en) | Transferring state in content centric network stacks | |
JP2023054828A (en) | Communication system, communication method, communication device, and communication program | |
JP4762270B2 (en) | Virtual machine system and virtual machine monitor program program | |
CN107249038A (en) | Business datum retransmission method and system | |
CN113965521A (en) | Data packet transmission method, server and storage medium | |
WO2017173989A1 (en) | Method, device, and system for distribution processing on multicast and storage medium | |
US20220217093A1 (en) | Sequence Number Synchronization Method and Apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100921 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101119 |
|
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: 20110510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110607 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140617 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4762270 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |