JP2009301117A - Virtual machine system and program for virtual machine monitor - Google Patents

Virtual machine system and program for virtual machine monitor Download PDF

Info

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
Application number
JP2008151871A
Other languages
Japanese (ja)
Other versions
JP4762270B2 (en
Inventor
Soji Kageyama
壮志 影山
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008151871A priority Critical patent/JP4762270B2/en
Publication of JP2009301117A publication Critical patent/JP2009301117A/en
Application granted granted Critical
Publication of JP4762270B2 publication Critical patent/JP4762270B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To perform communication without differing from before movement of a guest OS even if a movement destination of the guest OS belongs to a network segment different from a movement source. <P>SOLUTION: A virtual machine monitor (VMM) 12-1 stores an IP (Internet Protocol) packet of first communication data into second communication data addressed to a VMM 12-2 and transfers them to the VMM 12-2 when communication data are the first communication data addressed to the guest OS 14 having moved to the VMM 12-2 from the VMM 12-1. When the VMM 12-2 receives the second communication data, the VMM 12-2 takes out, from the second communication data, the IP packet of the first communication data addressed to the guest OS 14 having moved to the VMM 12-2 from the second communication data, and delivers the communication data including the taken-out IP packet to the guest OS 14 having moved to the VMM 12-2. <P>COPYRIGHT: (C)2010,JPO&INPIT

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(上で動作する仮想マシンモニタ)に移動することが記載されている。
特開2006−244481号公報
In a virtual machine environment, a guest OS can be moved (migrated) between HWs (virtual machine monitors running on it) by connecting multiple HWs with virtual machine monitors to the shared disk device that stores the guest OS images. ), That is, the virtual machine can be moved. A guest OS image is a storage image of a guest OS installed and set in a storage area.
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, Patent Document 1 discloses that when a HW is stopped, a virtual machine running in a virtual machine environment realized by a virtual machine monitor operating on the HW (that is, a virtual machine monitor of the HW) is replaced with another HW. Moving to (virtual machine monitor running on) or moving a running virtual machine to another lightly loaded HW (virtual machine monitor running on) when the HW load increases Has been.
JP 2006-244481 A

しかし、上記特許文献1に記載されているような仮想マシン(ゲストOS)の移動では、以下に述べるように不具合が発生する可能性がある。今、移動元の仮想マシンモニタが動作するHWが、第1のネットワークセグメントと接続されているものとする。一方、移動先の仮想マシンモニタが動作するHWが、上記第1のネットワークセグメントとは異なる、第2のネットワークセグメントと接続されているものとする。この場合、移動後の仮想マシン(ゲストOS)は、移動前の仮想マシンと通信していた相手(クライアント端末)と通信できなくなる可能性がある。このような不具合は、移動後の仮想マシン(ゲストOS)のIP(Internet Protocol)アドレスに関する通信を、ルータが中継できないために発生する。   However, the movement of the virtual machine (guest OS) as described in Patent Document 1 may cause problems as described below. Assume that the HW on which the migration source virtual machine monitor operates is connected to the first network segment. On the other hand, it is assumed that the HW on which the destination virtual machine monitor operates is connected to a second network segment different from the first network segment. In this case, the virtual machine after moving (guest OS) may not be able to communicate with the other party (client terminal) that was communicating with the virtual machine before moving. Such a problem occurs because the router cannot relay the communication related to the IP (Internet Protocol) address of the virtual machine (guest OS) after movement.

本発明は上記事情を考慮してなされたものでその目的は、ゲスト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 virtual machine 13 is arranged on the virtual machine monitor 12-1, and a guest OS 14 is arranged on the virtual machine 13 so as to be operable. The guest OS 14 has an IP address “192.168.1.100”. The HWs 11-1 and 11-2 each include a CPU, a memory, and an input / output device (all not shown).

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 disk device 15 by, for example, storage area networks (SAN) 19-1 and 19-2. The shared disk device 15 stores a guest OS image 150 for realizing the guest OS 14. The HWs 11-1 and 11-2 are also connected to network segments 16-1 and 16-2 having different network addresses, respectively. Assume that the network addresses of the network segments 16-1 and 16-2 are “192.168.1.0/24” and “192.168.2.0/24”, respectively. The network segments 16-1 and 16-2 constitute a network, for example, a local area network (LAN) 16. The network segments 16-1 and 16-2 are connected by a router 17. The router 17 has a routing function for connecting the network segments 16-1 and 16-2 having different network addresses.

ネットワークセグメント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 client 18 has, for example, an IP address “192.168.1.50”. In the state of FIG. 1, the client 18 can communicate with the guest OS 14 via TCP / IP via the network segment 16-1.

ここで、図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 virtual machine 13 and the guest OS 14 are moved from the virtual machine monitor 12-1 to the virtual machine monitor 12-2 as indicated by an arrow A1 in FIG. The network address of the network segment 16-2 to which the HW 11-2 where the virtual machine monitor 12-2 (that is, the virtual machine monitor 12-2 to which the virtual machine 13 and the guest OS 14 are moved) is connected is the above-described network address. As described above, the network of the network segment 16-1 to which the HW 11-1 to which the virtual machine monitor 12-1 (that is, the virtual machine monitor 12-1 that is the migration source of the virtual machine 13 and the guest OS 14) is connected is connected. It is different from the address. Therefore, according to the conventional technique, after the virtual machine 13 and the guest OS 14 are moved, the client 18 cannot communicate with the guest OS 14 after the movement.

そこで本実施形態では、ネットワークアドレスが異なるネットワークセグメントにゲスト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 client 18 and the guest OS 14 even after the guest OS 14 (the virtual machine 13 and the guest OS 14) is moved to a network segment with a different network address, the following communication data Is used. That is, communication data (second / fourth communication data) transmitted / received to / from the guest OS 14 between the virtual machine monitors 12-1 and 12-2 (second / fourth communication data). The second / fourth communication data stored (encapsulated) and stored with the first / third communication data (specifically, the IP packet included in the first / third communication data). Is used. The IP addresses of the virtual machine monitors 12-1 and 12-2 are used as the source IP address and destination IP address of the second / fourth communication data, or the destination IP address and source IP address. The second / fourth communication data is relayed between the virtual machine monitors 12-1 and 12-2 by the router 17, so that the first / second stored in the second / fourth communication data. The communication data can be exchanged between the client 18 and the guest OS 14.

<ゲスト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 guest OS 14 in the system of FIG. 1 will be described with reference to an example in which communication data is exchanged between the guest OS 14 and the client 18. I will explain.

まず、ゲスト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 guest OS 14 and the client 18 performed before the guest OS 14 is moved will be described.
When the client 18 needs to transmit communication data to the guest OS 14 and the MAC address (physical address) of the guest OS 14 is not known, the ARP (Address Resolution Protocol) for obtaining the MAC address is obtained. A request (ARP request packet) is broadcast on the network segment 16-1 (step S1). This ARP request includes the MAC address and IP address of the client 18 as the source MAC address and source IP address, respectively. The ARP request includes the IP address of the guest OS 14 as the destination IP address.

ゲスト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 client 18, the guest OS 14 returns an ARP response (ARP response packet) for notifying the client 18 of the MAC address of the guest OS 14 (step S2). The client 18 uses the MAC address of the guest OS 14 notified by the ARP response from the guest OS 14 as the destination MAC address, thereby transmitting communication data (seventh communication data) to the guest OS 14 (step S3).

一方、ゲストOS14は、クライアント18に通信データを送信する必要があり、且つ当該クライアント18のMACアドレスが分からない場合、当該MACアドレスを取得するためのARP要求を、ネットワークセグメント16-1上にブロードキャストする(ステップS4)。   On the other hand, when the guest OS 14 needs to transmit communication data to the client 18 and the MAC address of the client 18 is not known, the guest OS 14 broadcasts an ARP request for acquiring the MAC address on the network segment 16-1. (Step S4).

クライアント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 guest OS 14, the client 18 returns an ARP response for notifying the guest OS 14 of the MAC address of the client 18 (step S5). The guest OS 14 transmits the communication data (eighth communication data) to the client 18 by using the MAC address of the client 18 notified by the ARP response from the client 18 as the destination MAC address (step S6).

なお、ステップ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 client 18 and the guest OS 14, and the guest OS 14 is stored in the cache. And the MAC address of the client 18 are stored in association with the IP addresses of the guest OS 14 and the client 18.

次に、ゲストOS14の移動後の状態で行われる、ゲストOS14とクライアント18との間の通信について、クライアント18からゲストOS14に通信データを送信する場合を例に、図2のシーケンスチャートに加えて、図3乃至図6の通信データ例を参照して説明する。   Next, in addition to the sequence chart of FIG. 2, the communication between the guest OS 14 and the client 18 that is performed after the guest OS 14 has been moved is transmitted from the client 18 to the guest OS 14 as an example. A description will be given with reference to communication data examples in FIGS.

今、(仮想マシン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 guest OS 14 have been moved from the virtual machine monitor 12-1 to the virtual machine monitor 12-2 as indicated by an arrow A1 in FIG. In this state, an ARP request 30 in the format shown in FIG. 3 for broadcasting the MAC address of the guest OS 14 is broadcast on the network segment 16-1 from the client 18 that has not recognized the movement of the guest OS 14. (Step S7).

クライアント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 ARP request 30 from the client 18 includes a data link layer header 31 and an ARP request packet 32. As the destination MAC address and the source MAC address of the data link layer header 31, the broadcast address and the MAC address of the client 18 are used, respectively. The ARP request packet 32 includes a target MAC address and a target IP address, and a transmission source MAC address and a transmission source IP address. As the target IP address of the ARP request packet 32, the IP address “192.168.1.100” of the guest OS 14 is used. The MAC address of the client 18 is used as the transmission source MAC address of the ARP request packet 32, and the IP address “192.168.1.50” of the client 18 is used as the transmission source IP address of the ARP request packet 32.

ゲスト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 guest OS 14 responds to the ARP request 30 from the client 18 regarding the IP address “192.168.1.100” of the guest OS 14 after the migration of the guest OS 14. Instead of the guest OS 14, the ARP response 40 in the format shown in FIG. 4 for notifying the client 18 of the MAC address used by the guest OS 14 is returned to the client 18 (step S8).

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 ARP response 40 includes a data link layer header 41 and an ARP response packet 42. As the destination MAC address and the source MAC address of the data link layer header 41, the MAC addresses of the client 18 and the guest OS 14 are used, respectively. The ARP response packet 42 includes a destination MAC address and a destination IP address, and a source MAC address and a source IP address. As the destination MAC address and the source MAC address of the ARP response packet 42, the MAC addresses of the client 18 and the guest OS 14 are used, respectively. As the destination IP address and the source IP address of the ARP response packet 42, the IP address “192.168.1.50” of the client 18 and the IP address “192.168.1.100” of the guest OS 14 are used, respectively.

クライアント18は、仮想マシンモニタ12-1からのARP応答40を受け取ると、当該ARP応答40で通知されたゲストOS14のMACアドレスに基づき、図5に示すフォーマットの通信データ(第1の通信データ)50を当該ゲストOS14のMACアドレス宛に送信する(ステップS9)。   When the client 18 receives the ARP response 40 from the virtual machine monitor 12-1, the communication data (first communication data) in the format shown in FIG. 5 is based on the MAC address of the guest OS 14 notified by the ARP response 40. 50 is transmitted to the MAC address of the guest OS 14 (step S9).

通信データ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 communication data 50 includes a data link layer header 51, an IP header 52, and an IP payload 53. As the destination MAC address and the source MAC address of the data link layer header 51, the MAC addresses of the guest OS 14 and the client 18 are used, respectively. As the destination IP address and the source IP address of the IP header 52, the IP address “192.168.1.100” of the guest OS 14 and the IP address “192.168.1.50” of the client 18 are used, respectively.

クライアント18からの通信データ50は、当該クライアント18からのARP要求30に対してARP応答40(つまり、ゲストOS14のMACアドレスを通知するためのARP応答40)を送信した仮想マシンモニタ12-1によって受け取られる。つまり仮想マシンモニタ12-1は、クライアント18からの通信データ50を、当該仮想マシンモニタ12-1から移動されたゲストOS14に代わって受け取る。   The communication data 50 from the client 18 is transmitted to the ARP request 30 from the client 18 by the virtual machine monitor 12-1 that has transmitted the ARP response 40 (that is, the ARP response 40 for notifying the MAC address of the guest OS 14). Received. That is, the virtual machine monitor 12-1 receives the communication data 50 from the client 18 instead of the guest OS 14 moved from the virtual machine monitor 12-1.

すると仮想マシンモニタ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 communication data 50 from the client 18, the virtual machine monitor 12-1 transmits / receives communication data in the format shown in FIG. 5 (second communication data) exchanged between the virtual machine monitors 12-1 and 12-2. ) 54 is created. This communication data 54 includes an IP header 55 and an IP payload 56. The IP address “192.168.2.10” and virtual address of the virtual machine monitor 12-2 (the virtual machine monitor 12-2 that is the migration destination of the guest OS 14) are included in the destination IP address and the source IP address of the IP header 55, respectively. The IP address “192.168.1.10” of the machine monitor 12-1 (the migration source virtual machine monitor 12-1 of the guest OS 14) is used. The IP payload 56 includes an IP header 52 and an IP payload 53 in the communication data 50 from the client 18, that is, an IP packet (IP packet addressed to the moved guest OS) in the communication data 50.

このように仮想マシンモニタ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 link layer header 51 from the communication data 50 from the client 18, and replaces the remaining IP packet portion (IP header 52 and IP payload 53) with the virtual machine monitor 12-. 1 (192.168.1.10) and the virtual machine monitor 12-2 (192.168.2.10) are stored in the communication data (IP payload 56) of the communication data 54 Create In other words, the virtual machine monitor 12-1 receives the communication data (first communication data) 50 from the client 18 (specifically, the IP header 52 and the IP payload 53 that are IP packets of the communication data 50) in the IP payload 56. ) The stored communication data (second communication data) 54 is created (step S10).

仮想マシンモニタ12-1は通信データ54を作成すると、当該通信データ54を、当該通信データ54に含まれているIPヘッダ55の宛先IPアドレスで指定される仮想マシンモニタ12-2に送信(中継)する(ステップS11)。なお、この通信データ(第2の通信データ)54には図示せぬデータリンク層ヘッダが付加される。このデータリンク層ヘッダの付加については、図24を参照してのステップS76の処理で後述する。   When the virtual machine monitor 12-1 creates the communication data 54, the communication data 54 is transmitted (relayed) to the virtual machine monitor 12-2 specified by the destination IP address of the IP header 55 included in the communication data 54. (Step S11). A data link layer header (not shown) is added to the communication data (second communication data) 54. The addition of the data link layer header will be described later in the process of step S76 with reference to FIG.

仮想マシンモニタ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 communication data 54 by the client 18. An IP packet (IP header 52 and IP payload 53) addressed to the guest OS to which the (communication data) 50 has moved is taken out (step S12). In step S12, the virtual machine monitor 12-2 includes the extracted data (the IP header 52 and the IP payload 53) and includes the communication data (fifth communication data) addressed to the MAC address of the guest OS 14 in the format shown in FIG. ) 60 is created (step S12).

通信データ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 communication data 60 includes a data link layer header 61 and the extracted communication data (IP header 52 and IP payload 53). As the destination MAC address and the source MAC address of the data link layer header 61, the MAC address and the fake MAC address of the guest OS 14 are used, respectively. That is, the virtual machine monitor 12-2 uses the data link in which the MAC address and the fake MAC address of the guest OS 14 are the destination MAC address and the source MAC address, respectively, in the extracted communication data (IP header 52 and IP payload 53). Communication data 60 to which the layer header 61 is added is created.

偽のMACアドレスには、データリンク層ヘッダ51を作成することができればどのようなMACアドレスを用いても構わない。本実施形態では、偽のMACアドレスとして、実在しないMACアドレス、例えばMACアドレスの上位3バイトに当たるベンダIDに存在しない値が用いられる。   Any MAC address may be used as the fake MAC address as long as the data link layer header 51 can be created. In this embodiment, a nonexistent MAC address, for example, a value that does not exist in the vendor ID corresponding to the upper 3 bytes of the MAC address is used as the fake MAC address.

仮想マシンモニタ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 communication data 60 on the guest OS 14 specified by the destination IP address set in the data link layer header 61 of the communication data 60, that is, on the virtual machine monitor 12-2. Is transmitted to the guest OS 14 moved to (step S13). In this way, the communication data 50 (the IP header 52 and the IP payload 53 included) addressed to the guest OS 14 (the MAC address thereof) moved on the virtual machine monitor 12-2 from the client 18 is virtualized. It is relayed by the machine monitors 12-1 and 12-2 and transmitted to the guest OS 14.

次に、ゲストOS14の移動後の状態で行われる、ゲストOS14とクライアント18との間の通信について、ゲストOS14からクライアント18に通信データを送信する場合を例に、図2のシーケンスチャートに加えて、図7乃至図12の通信データ例を参照して説明する。   Next, for communication between the guest OS 14 and the client 18 that is performed after the guest OS 14 has been moved, in addition to the sequence chart of FIG. A description will be given with reference to communication data examples in FIGS.

今、ゲストOS14から、クライアント18のMACアドレスを取得するための、図7に示すフォーマットのARP要求70がネットワークセグメント16-2上にブロードキャストされたものとする(ステップS14)。   Assume that the ARP request 70 in the format shown in FIG. 7 for acquiring the MAC address of the client 18 is broadcast on the network segment 16-2 from the guest OS 14 (step S14).

ゲスト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 ARP request 70 from the guest OS 14 includes a data link layer header 71 and an ARP request packet 72. For the destination MAC address and the source MAC address of the data link layer header 71, the broadcast address and the MAC address of the guest OS 14 are used, respectively. As the target IP address of the ARP request packet 72, the IP address “192.168.1.50” of the client 18 is used. The MAC address of the guest OS 14 is used as the transmission source MAC address of the ARP request packet 72, and the IP address “192.168.1.100” of the guest OS 14 is used as the transmission source IP address of the ARP request packet 72.

仮想マシンモニタ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 ARPM request 70 transmitted from the guest OS 14 (192.168.1.100) moved on the virtual machine monitor 12-2, the virtual machine monitor 12-2 assigns a fake MAC address to the guest OS 14. A fake ARP response 80 in the format shown in FIG. 8 for notification is returned to the guest OS 14 (step S15).

ARP応答80は、データリンク層ヘッダ81及びARP応答パケット82を含む。データリンク層ヘッダ81の宛先MACアドレス及び送信元MACアドレスには、それぞれゲストOS14のMACアドレス及び偽のMACアドレスが用いられる。この偽のMACアドレスには、前記仮想マシンモニタ12-2によって中継される通信データ60に含まれるデータリンク層ヘッダ81の送信元MACアドレスと同様に、実在しないMACアドレス、例えばMACアドレスの上位3バイトに当たるベンダIDに存在しない値が用いられる。   The ARP response 80 includes a data link layer header 81 and an ARP response packet 82. As the destination MAC address and the source MAC address of the data link layer header 81, the MAC address and the fake MAC address of the guest OS 14 are used, respectively. The fake MAC address includes a MAC address that does not exist, for example, the upper 3 MAC addresses, similar to the source MAC address of the data link layer header 81 included in the communication data 60 relayed by the virtual machine monitor 12-2. A value that does not exist in the vendor ID corresponding to the byte is used.

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 ARP response packet 82, the MAC address of the guest OS 14 and the fake MAC address are used, respectively. As the destination IP address and the source IP address of the ARP response packet 82, the IP address “192.168.1.100” of the guest OS 14 and the IP address “192.168.1.50” of the client 18 are used, respectively.

ゲストOS14は、仮想マシンモニタ12-2からのARP応答80を受け取ると、当該ARP応答80で通知された偽のMACアドレスに基づき、図9に示すフォーマットの通信データ(第3の通信データ)90を当該偽のMACアドレス宛に送信する(ステップS16)。   When the guest OS 14 receives the ARP response 80 from the virtual machine monitor 12-2, based on the fake MAC address notified by the ARP response 80, the guest OS 14 has the communication data (third communication data) 90 in the format shown in FIG. Is transmitted to the fake MAC address (step S16).

通信データ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 communication data 90 includes a data link layer header 91, an IP header 92, and an IP payload 93. As the destination MAC address and the source MAC address of the data link layer header 91, a fake MAC address and a MAC address of the guest OS 14 are used, respectively. The IP address “192.168.1.50” of the client 18 and the IP address “192.168.1.100” of the guest OS 14 are used for the destination IP address and the source IP address of the IP header 92, respectively.

ゲストOS14からの通信データ90は、当該ゲストOS14からのARP要求70に対してARP応答80(つまり、偽のMACアドレスを通知するための偽のARP応答80)を送信した仮想マシンモニタ12-2によって受け取られる。つまり仮想マシンモニタ12-2は、当該仮想マシンモニタ12-2上に移動されたゲストOS14からの通信データ90を受け取る。   The communication data 90 from the guest OS 14 is the virtual machine monitor 12-2 that has transmitted the ARP response 80 (that is, the fake ARP response 80 for notifying the fake MAC address) to the ARP request 70 from the guest OS 14. Received by. That is, the virtual machine monitor 12-2 receives the communication data 90 from the guest OS 14 moved on the virtual machine monitor 12-2.

すると仮想マシンモニタ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 guest OS 14, and has the format shown in FIG. Data (third communication data) 94 is created. This communication data 94 includes an IP header 95 and an IP payload 96. The IP address “192.168.1.10” and the virtual address of the virtual machine monitor 12-1 (the migration source virtual machine monitor 12-1 of the guest OS 14) are included in the destination IP address and the transmission source IP address of the IP header 95, respectively. The IP address “192.168.2.10” of the machine monitor 12-2 (the virtual machine monitor 12-2 to which the guest OS 14 is moved) is used. The IP payload 96 includes an IP header 92 and an IP payload 93 (IP packet) in the communication data 90 from the guest OS 14.

つまり仮想マシンモニタ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 link layer header 91 from the communication data 90 from the guest OS 14, and transfers the remaining IP packets (IP header 92 and IP payload 93) to the virtual machine monitor 12-1 (192.192). 168.1.10) and the virtual machine monitor 12-2 (192.168.2.10) are stored in the communication data (IP payload 96 thereof) to create communication data 94. As described above, the virtual machine monitor 12-2 includes the communication data (third communication data) 90 (specifically, the IP header 92 and the IP payload 93 which are IP packets of the communication data 90) from the guest OS 14 (IP payload). The communication data (fourth communication data) 94 stored in (96) is created (step S17).

仮想マシンモニタ12-2は通信データ94を作成すると、当該通信データ94を、当該通信データ94に含まれているIPヘッダ95の宛先IPアドレスで指定される仮想マシンモニタ12-1に送信(中継)する(ステップS18)。なお、この通信データ(第4の通信データ)94にはデータリンク層ヘッダが付加される。このデータリンク層ヘッダの付加については、図24を参照してのステップS76の処理で後述する。   When the virtual machine monitor 12-2 creates the communication data 94, the communication data 94 is transmitted (relayed) to the virtual machine monitor 12-1 specified by the destination IP address of the IP header 95 included in the communication data 94. (Step S18). A data link layer header is added to the communication data (fourth communication data) 94. The addition of the data link layer header will be described later in the process of step S76 with reference to FIG.

仮想マシンモニタ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 communication data 94 relayed by the virtual machine monitor 12-2, the destination MAC address (IP header 92 and IP payload 93) of the IP packet (IP header 92 and IP payload 93) included in the communication data 94 is received. The ARP request 100 in the format shown in FIG. 10 for acquiring the MAC address of the client 18 is broadcast on the network segment 16-1 (step S19).

仮想マシンモニタ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 ARP request 100 from the virtual machine monitor 12-1 includes a data link layer header 101 and an ARP request packet 102. As the destination MAC address and the source MAC address of the data link layer header 101, the broadcast address and the MAC address of the guest OS 14 are used, respectively. The IP address “192.168.1.50” of the client 18 is used as the target IP address of the ARP request packet 102. The MAC address of the guest OS 14 is used as the transmission source MAC address of the ARP request packet 102, and the IP address “192.168.1.100” of the guest OS 14 is used as the transmission source IP address of the ARP request packet 102.

クライアント18は、仮想マシンモニタ12-1からのARPM要求100を受け取ると、当該クライアント18のMACアドレスを当該仮想マシンモニタ12-1に通知するための、図11に示すフォーマットのARP応答110を当該仮想マシンモニタ12-1に返す(ステップS20)。   Upon receipt of the ARPM request 100 from the virtual machine monitor 12-1, the client 18 sends an ARP response 110 in the format shown in FIG. 11 to notify the virtual machine monitor 12-1 of the MAC address of the client 18. Return to the virtual machine monitor 12-1 (step S20).

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 ARP response 110 includes a data link layer header 111 and an ARP response packet 112. As the destination MAC address and the source MAC address of the data link layer header 111, the MAC addresses of the guest OS 14 and the client 18 are used, respectively. The MAC addresses of the guest OS 14 and the client 18 are used for the destination MAC address and the source MAC address of the ARP response packet 112, respectively, and the destination IP address and the source IP address of the ARP response packet 112 are respectively the guest OS 14 and the source IP address. The IP address “192.168.1.100” and the IP address “192.168.1.50” of the client 18 are used.

クライアント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 ARP response 110 from the client 18 is received by the virtual machine monitor 12-1 that has transmitted the ARP request 100 for acquiring the MAC address of the client 18. When the virtual machine monitor 12-1 receives the ARP response 110 from the client 18, the virtual machine monitor 12-1 receives from the guest OS 14 stored in the communication data (fourth communication data) 94 previously received from the virtual machine monitor 12-2. The communication data (sixth communication data) 120 shown in FIG. 12 addressed to the client 18 including the IP packet (IP header 92 and IP payload 93) of the communication data (third communication data) is created (step S21). That is, the virtual machine monitor 12-1 uses the communication data 94 received from the virtual machine monitor 12-2, and the IP packet (IP header 92 and IP payload 93) of the communication data from the guest OS 14 stored in the communication data 94. Take out. The virtual machine monitor 12-2 uses the MAC address of the client 18 as the destination MAC address based on the ARP response 110 received from the client 18 in the extracted IP packet (IP header 92 and IP payload 93). By adding the data link layer header 121, communication data 120 addressed to the MAC address of the client 18 is created. The virtual machine monitor 12-1 transmits the created communication data 120 to the client 18 (step S22).

以上の通信シーケンスにより、図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 guest OS 14 is moved is arranged, and the virtual machine monitor 12-1 in which the guest OS 14 is moved is arranged. Even if it exists in a different network segment from the HW 11-1, the communication between the guest OS 14 and the client 18 can be performed without changing from the state before the guest OS 14 moves.

<仮想マシンモニタの構成>
次に、図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 OS control unit 121, and a communication transfer control unit 122. The I / O control unit 120 is a module that controls various I / Os of the guest OS 14, such as memory access of the guest OS 14, disk I / O, and communication data I / O. The I / O control unit 120 sets the communication transfer control unit 122 so that all communication data between the HW 11-i and the guest OS 14 always relays a communication data determination unit 124 described later in the communication transfer control unit 122. Control. The guest OS control unit 121 controls the start / stop of the guest OS 14, the movement of the guest OS 14 from the virtual machine monitor 12-i to another virtual machine monitor, and the movement from the other virtual machine monitor to the virtual machine monitor 12-i. It is a module to do.

通信転送制御部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 / O control unit 120, the communication transfer control unit 122 transfers all communication data between the HW 11-i and the guest OS 14 to the communication transfer control unit 122 (internal communication data determination unit 124). Relay. The communication transfer control unit 122 receives a notification of the movement of the guest OS 14 from the guest OS control unit 121 and records information regarding the movement of the guest OS 14. It is assumed that the guest OS 14 (the virtual machine 13 on which it operates) is set with its own IP address, subnet mask, and router address (IP address of the router 17). The communication transfer control unit 122 can refer to these data.

通信転送制御部122は、ゲストOS状態受信部123、通信データ判定部124、通信データ送信部125及びARP処理部126の各モジュールと、移動先アドレステーブル127、移動元アドレステーブル128及びARPテーブル129の各テーブルとを含む。   The communication transfer control unit 122 includes a guest OS state reception unit 123, a communication data determination unit 124, a communication data transmission unit 125, and an ARP processing unit 126, a migration destination address table 127, a migration source address table 128, and an ARP table 129. And each table.

移動先アドレステーブル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 OS control unit 121 in association with the information (guest OS information) of the guest OS. Used to do. In this embodiment, the IP address of the virtual machine monitor that is the migration destination of the guest OS is used as the migration destination information, and the MAC address and IP address of the guest OS are used as the guest OS information. Information registration in the table 127 is performed by the receiving unit 123 when the guest OS state receiving unit 123 receives a notification that the guest OS has moved to another virtual machine monitor.

図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 OS control unit 121 in association with the information on the guest OS (guest OS information). Used to do. For the migration source information, the IP address of the migration source virtual machine monitor of the guest OS is used. The information registration in the table 128 is performed by the receiving unit 123 when the guest OS state receiving unit 123 receives a notification that the guest OS has moved from another virtual machine monitor.

図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 migration management unit 130 for managing the migration status of the guest OS under the control of the guest OS control unit 121.

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 data determination unit 124 when the communication data determination unit 124 receives an ARP response packet related to the guest OS being moved.

図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 state reception unit 123 will be described with reference to the flowchart of FIG.
The guest OS state reception unit 123 receives a notification of the state related to the guest OS from the guest OS control unit 121 of the virtual machine monitor 12-i, and performs the following processing according to the notified content.

(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 guest OS 14 on the virtual machine monitor 12-i being moved to another virtual machine monitor, the virtual machine monitor 12-i A process of the guest OS state reception unit 123 when the guest OS control unit 121 notifies the communication transfer control unit 122 of the completion of the guest OS migration to the other virtual machine monitor will be described.

ゲスト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 state reception unit 123 is notified of a state related to the guest OS from the guest OS control unit 121 to the communication transfer control unit 122, the guest OS state reception unit 123 receives the notification. The guest OS control unit 121 determines the content of the received notification (steps S31 to S33). If the received notification indicates the completion of the migration of the guest OS from the virtual machine monitor (VMM) 12-i to another virtual machine monitor (VMM) as described above (YES in step S31), the guest OS status The receiving unit 123 adds the MAC address and IP address pair of the guest OS that has been moved to another virtual machine monitor to the entry of the movement destination address table 127 and the other virtual machine monitor (that is, the destination virtual machine). Monitor) IP address is registered (step S34).

(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 guest OS 14 being moved from the other virtual machine monitor to the virtual machine monitor 12-i, the virtual machine monitor 12-i It is assumed that the guest OS control unit 121 notifies the communication transfer control unit 122 of the completion of the guest OS migration from the other virtual machine monitor, and the guest OS state reception unit 123 receives the notification.

ゲストOS状態受信部123は、受信した通知が、この例のように他の仮想マシンモニタから(当該ゲストOS状態受信部123を含む)仮想マシンモニタ12-iへのゲストOSの移動完了を示すならば(ステップS32がYES)、当該ゲストOS(移動が完了したゲストOS)のMACアドレス及びIPアドレスが移動先アドレステーブル127に登録されているか(存在するか)判定する(ステップS35)。   The guest OS state reception unit 123 indicates that the received notification indicates the completion of the movement of the guest OS from another virtual machine monitor (including the guest OS state reception unit 123) to the virtual machine monitor 12-i as in this example. If so (YES in step S32), it is determined whether the MAC address and IP address of the guest OS (guest OS that has been migrated) are registered in the migration destination address table 127 (step S35).

もし、移動が完了したゲスト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 state reception unit 123 indicates that the guest OS is a virtual machine monitor. After moving from 12-i to another virtual machine monitor, it is determined that the virtual machine monitor 12-i has returned. In this case, the guest OS state reception unit 123 deletes the information related to the guest OS that has returned to the virtual machine monitor 12-i from the migration destination address table 127.

これに対し、移動が完了したゲスト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 state reception unit 123 adds the migration source address table 128 to the migration source address table 128. Then, the MAC address and IP address pair of the guest OS (guest OS that has been migrated) and the IP address of the migration source virtual machine monitor are registered.

(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 control unit 121 of the virtual machine monitor 12-i performs a communication transfer control unit. Assume that the stop of the guest OS is notified to 122, and the notification is received by the guest OS state receiving unit 123.

ゲスト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 state receiving unit 123 stores the MAC address and IP address of the stopped guest OS in the source address table 128. Is registered (step S38).

もし、移動元アドレステーブル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 state reception unit 123 notifies the migration source virtual machine monitor of the completion of migration in order to stop the transfer of communication data. Judge that it is necessary. Therefore, the guest OS state reception unit 123 determines the migration source based on the IP address of the migration source virtual machine monitor registered in the migration source address table 128 in association with the MAC address and IP address pair of the stopped guest OS. The movement stop data addressed to the IP address of the virtual machine monitor is created (step S39). This movement stop data will be described later.

ゲストOS状態受信部123は、作成された移動停止データを通信データ送信部125に送ることによって、当該移動停止データを通信データ送信部125から(I/O制御部120を介して)移動元の仮想マシンに送信させる(ステップS40)。最後にゲストOS状態受信部123は、停止したゲストOSに関する情報を移動元アドレステーブル128から削除する(ステップS41)。   The guest OS state reception unit 123 sends the generated movement stop data to the communication data transmission unit 125, thereby transmitting the movement stop data from the communication data transmission unit 125 (via the I / O control unit 120). It is transmitted to the virtual machine (step S40). Finally, the guest OS state reception unit 123 deletes information on the stopped guest OS from the migration source address table 128 (step S41).

<移動停止データ>
次に上記移動停止データについて説明する。
移動停止データは、移動元仮想マシンモニタの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 movement stop data 170 includes an IP header 171 and an IP payload (data portion) 172.

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 header 171, the IP address of the migration source virtual machine monitor registered in the migration source address table 128 in association with the MAC address and IP address of the stopped guest OS is indicated by an arrow A11. Used as follows. As the source IP address of the IP header 171, the IP address of the virtual machine monitor 12-i itself (the virtual machine monitor 12-i that is the migration destination of the stopped guest OS) is used as indicated by the arrow A12.

IPペイロード172は、ゲストOSのMACアドレス及びIPアドレスを含む。ゲストOSのMACアドレス及びIPアドレスには、それぞれ、移動元アドレステーブル128に登録されている、停止したゲストOSのMACアドレス及びIPアドレスが、矢印A13及びA14で示されるように用いられる。   The IP payload 172 includes the MAC address and IP address of the guest OS. For the MAC address and IP address of the guest OS, the MAC address and IP address of the stopped guest OS registered in the migration source address table 128 are used as indicated by arrows A13 and A14.

<通信データ判定部の動作>
次に、通信データ判定部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 data determination unit 124 will be described with reference to the flowchart of FIG.
In this embodiment, the I / O control unit 120 of the virtual machine monitor 12-i inputs all communication data that passes through the I / O control unit 120 to the communication data determination unit 124 of the communication transfer control unit 122. Thus, the communication data determination unit 124 is also passed. The communication data determination unit 124 performs processing according to the type of communication data input by the I / O control unit 120. Therefore, the communication data determination unit 124 first determines whether the communication data input by the I / O control unit 120 is an ARP request or an ARP response (step S51).

(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 unit 124 sends the input communication data to the ARP processing unit 126 (step S52), and ends the process. In Steps S7, S8, S14, S15, S19, and S20 in FIG. 2, the determination in Step S51 is YES.

一方、入力された通信データ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 data determination unit 124 matches the destination IP address of the input communication data. It is determined whether the IP address of the OS is registered in the destination address table 127 (step S53).

(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 data determination unit 124 indicates that the input communication data is transmitted from the virtual machine monitor 12-i to another virtual data. It is determined that the communication data is addressed to the guest OS moved to the machine monitor (first communication data). In this case, it is necessary to transfer the communication data to the destination virtual machine monitor. Therefore, the communication data determination unit 124 creates data (IP packet) to be transferred to the destination virtual machine monitor (step S54). That is, the communication data determination unit 124 associates with the IP address of the guest OS that matches the destination IP address of the input communication data and is registered in the migration destination address table 127 and is the virtual machine monitor of the migration destination of the guest OS. Data (IP packet) having the destination IP address as the destination IP address is created. Then, the IP packet (IP header and IP payload) of the input communication data (first communication data) is stored in the created data (its IP payload). The communication data determination unit 124 sends the created data (second communication data) to the communication data transmission unit 125 (step S55), and ends the process.

入力された通信データが、例えば図2のステップS9でクライアント18から送信された通信データ(図5に示される通信データ50)の場合、ステップS53の判定がYESとなって、ステップS54及びS55が行われる。   If the input communication data is, for example, the communication data transmitted from the client 18 in step S9 in FIG. 2 (communication data 50 shown in FIG. 5), the determination in step S53 is YES, and steps S54 and S55 are performed. Done.

図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 communication data 50 and 54 shown in FIG. 5, respectively.

通信データ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 communication data 190 includes a data link layer header 191, an IP header 192, and an IP payload 193. The destination MAC address of the data link layer header 191 and the destination IP address of the IP header 192 are associated with the IP address “192.168.2.10” of the destination virtual machine monitor, as indicated by arrows A21 and A22, respectively. Thus, the MAC address “aa: aa: aa: aa: aa: aa” and the IP address “192.168.1.100” of the guest OS registered in the destination address table 127 are matched.

この場合、作成されたデータ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 IP header 195 of the created data 194, as indicated by arrow A23. As the transmission source IP address of the IP header 195 of the data 194, the IP address of the virtual machine monitor 12-i itself is used as indicated by an arrow A24. The IP payload 196 of the data 194 stores the IP header 192 and the IP payload 193 (IP packet) of the input communication data 190.

一方、ステップ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 data determination unit 124 sets the destination IP address of the input communication data to the IP address of the virtual machine monitor 12-i itself including the communication data determination unit 124. It is determined whether they match (step S56). If the determination in step S56 is YES, the communication data determination unit 124 determines whether the IP address of the virtual machine monitor that matches the transmission source IP address of the input communication data is registered in the movement destination address table 127. (Step S57).

(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 data determination unit 124 indicates that the input communication data is the migration destination of the guest OS. It is determined that the communication data is sent from the virtual machine monitor to the virtual machine monitor 12-i. In this case, the communication data determination unit 124 determines whether the input communication data is movement stop data (step S58).

もし、入力された通信データが移動停止データであるならば(ステップ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 data determination unit 124 determines that the moved guest OS has stopped at the movement destination. The information about the guest OS of the MAC address and the IP address stored in the movement stop data (the IP payload) is deleted from the table 127 (step S59).

図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 data 200 matches that of the movement stop data 170 shown in FIG. The movement stop data 200 includes an IP header 201 and an IP payload 202. The IP payload 202 includes a guest OS MAC address and IP address. The guest OS MAC address and IP address included in the IP payload 202 are moved in association with the IP address “192.168.2.10” of the destination virtual machine monitor, as indicated by an arrow A31. It matches the MAC address “aa: aa: aa: bb: bb: bb” and the IP address “192.168.1.150” of the guest OS registered in the destination address table 127. In this case, data (entry data) related to the guest OS including the matching MAC address “aa: aa: aa: bb: bb: bb” and the IP address “192.168.1.150” is stored in the migration destination address table 127. , Deleted as indicated by arrow A32.

一方、入力された通信データが移動停止データ以外であるならば(ステップ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 data determination unit 124 indicates that the communication data is the communication data (first communication data) transmitted by the moved guest OS. ) Including the IP packet is transferred to the virtual machine monitor 12-i by the destination virtual machine monitor (fourth communication data). In this case, the communication data determination unit 124 extracts, from the input communication data, the original communication data (IP packet) transmitted by the moved guest OS stored in the communication data (step S60). The communication data determination unit 124 transmits the extracted original communication data (its IP packet) to the network segment 16-i by the communication data transmitting unit 125 so that the communication data transmission unit 125 transmits the original communication data (its IP packet). ) Is sent to the communication data transmission unit 125 (step S61), and the process ends.

入力された通信データが、例えば図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 (communication data 94 shown in FIGS. 9 and 12) transmitted from the virtual machine monitor 12-2 to the virtual machine monitor 12-1 in step S18 of FIG. The determinations in S56 and S57 are YES, the determination in step S58 is NO, and steps S60 and S61 are performed. In practice, the data link layer header is added to the communication data 94 shown in FIGS. 9 and 12 as described above.

図21は、ステップS61で通信データ判定部124から通信データ送信部125に送られるデータ(IPパケット)を、入力された通信データ及び移動先アドレステーブル127と対応付けて示す。   FIG. 21 shows the data (IP packet) sent from the communication data determination unit 124 to the communication data transmission unit 125 in step S61 in association with the input communication data and the destination address table 127.

図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 data transmission unit 125 are the communication data 94 (shown in the data link layer) shown in FIG. ) And communication data 120 (IP header 92 and IP payload 93 which are part of the IP packet).

通信データ210は、データリンク層ヘッダ211、IPヘッダ212及びIPペイロード213を含む。IPヘッダ212の宛先IPアドレスは、矢印A41で示されるように仮想マシンモニタ12-i自身のIPアドレスと一致し、IPヘッダ212の送信元IPアドレスは、矢印A42で示されるように、移動先アドレステーブル127に登録されている移動先仮想マシンモニタのIPアドレス“192.168.2.10”と一致する。   The communication data 210 includes a data link layer header 211, an IP header 212, and an IP payload 213. The destination IP address of the IP header 212 matches the IP address of the virtual machine monitor 12-i itself as indicated by the arrow A41, and the source IP address of the IP header 212 is the destination of movement as indicated by the arrow A42. This matches the IP address “192.168.2.10” of the destination virtual machine monitor registered in the address table 127.

通信データ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 IP payload 213 of the communication data 210 stores an IP packet of data (third communication data) transmitted by the moved guest OS, that is, an IP header 214 and an IP payload 215. The transmission source IP address of the IP header 214 is registered in the movement destination address table 127 in association with the IP address “192.168.2.10” of the movement destination virtual machine monitor, as indicated by an arrow A43. It coincides with the IP address “192.168.1.150” of the guest OS.

この場合、通信データ210(入力された通信データ210)のIPペイロード213に格納されている、移動したゲストOSが送信した通信データのIPパケットの部分であるIPヘッダ214及びIPペイロード215が、通信データ送信部125に送られべきデータ(移動したゲストOSが送信した元の通信データ)216として当該IPペイロード213から取り出される。このデータ(IPパケット)216は、通信データ判定部124から通信データ送信部125に送られる。   In this case, the IP header 214 and the IP payload 215 that are stored in the IP payload 213 of the communication data 210 (input communication data 210) and are part of the IP packet of the communication data transmitted by the moved guest OS are communicated. The data to be sent to the data transmission unit 125 (original communication data transmitted by the moved guest OS) 216 is extracted from the IP payload 213. This data (IP packet) 216 is sent from the communication data determination unit 124 to the communication data transmission unit 125.

一方、ステップS57の判定がNOであるならば、通信データ判定部124は、入力された通信データが、ゲストOSの移動先の仮想マシンモニタ以外から送られたものと判断する。この場合、通信データ判定部124は、入力された通信データの送信元IPアドレスが、移動元アドレステーブル128に登録されている仮想マシンモニタのIPアドレスに一致するかを判定する(ステップS62)。   On the other hand, if the determination in step S57 is NO, the communication data determination unit 124 determines that the input communication data is sent from other than the virtual machine monitor to which the guest OS is moved. In this case, the communication data determination unit 124 determines whether the transmission source IP address of the input communication data matches the IP address of the virtual machine monitor registered in the movement source address table 128 (step S62).

(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 data determination unit 124 indicates that the input communication data has been transferred to the guest This is communication data (second communication data) in which an IP packet of data (first communication data) addressed to the guest OS transferred to the virtual machine monitor 12-i by the virtual machine monitor of the OS migration source is stored. Judge. In this case, the communication data determination unit 124 extracts from the input communication data the original communication data (IP packet) addressed to the guest OS transferred by the migration source virtual machine monitor, stored in the communication data. (Step S63).

次に通信データ判定部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 data determination unit 124 creates communication data (fifth communication data) in which a data link layer header is added to the extracted original communication data (its IP packet) (step S64). The source MAC address of the data link layer header is set to a fake MAC address, and the destination MAC address of the data link layer header is set to the IP address and the source address of the virtual machine monitor determined to match in step S62. The MAC address of the guest OS associated in the table 128 is set. The communication data determination unit 124 passes the created communication data to the I / O control unit 120 in the virtual machine monitor 12-i (including the communication data determination unit 124) instead of the input communication data. Thus, the created communication data is transmitted from the I / O control unit 120 to the guest OS (step S65).

入力された通信データが、例えば図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 (communication data 54 shown in FIGS. 5 and 6) transmitted from the virtual machine monitor 12-1 to the virtual machine monitor 12-2 in step S11 of FIG. The determinations in S56 and S58 are YES, the determination in step S57 is NO, and steps S63 to S65 are performed.

図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 communication data 60.

通信データ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 IP header 222, and an IP payload 223. The destination IP address of the IP header 222 matches the IP address of the virtual machine monitor 12-i itself as indicated by the arrow A51, and the source IP address of the IP header 222 is the source of the movement as indicated by the arrow A52. It matches the IP address “192.168.2.10” of the migration source virtual machine monitor registered in the address table 128.

通信データ(第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 IP payload 223 of the communication data (second communication data) 220, the IP packet of the original communication data (first communication data) addressed to the guest OS transferred by the migration source virtual machine monitor, that is, the IP header 224 and An IP payload 225 is stored. The destination IP address of the IP header 224 is a guest registered in the source address table 128 in association with the IP address “192.168.2.10” of the source virtual machine monitor, as indicated by an arrow A53. It matches the OS IP address “192.168.2.100”.

この場合、通信データ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 IP payload 223 of the communication data 220 (input communication data 220), that is, the IP header 224 and The IP payload 225 is extracted from the IP payload 223. Communication data (fifth communication data) 227 with a data link layer header 226 added to the extracted IP header 224 and IP payload 225 is created. The destination MAC address of the data link layer header 226 of the communication data 227 is associated with the IP address “192.168.2.10” of the migration source virtual machine monitor, as indicated by the arrow A54. The guest OS MAC address “bb: bb: bb: aa: aa: aa” registered in 128 is used. As the source MAC address of the data link layer header 226 of the communication data 227, a fake MAC address is used as indicated by an arrow A54. Communication data 227 is sent from communication data determination unit 124 to I / O control unit 120 instead of communication data 220.

一方、ステップS56の判定がNOであるならば、通信データ判定部124は、入力された通信データの送信元IPアドレスが、移動元アドレステーブル128に登録されている仮想マシンモニタのIPアドレスに一致するかを判定する(ステップS66)。   On the other hand, if the determination in step S56 is NO, the communication data determination unit 124 matches the source IP address of the input communication data with the IP address of the virtual machine monitor registered in the source address table 128. It is determined whether or not to perform (step S66).

(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 data determination unit 124 indicates that the input guest communication data It is determined that it is the transmitted communication data (third communication data). In this case, it is necessary to transfer communication data to the migration source virtual machine monitor. Therefore, the communication data determination unit 124 creates communication data (fourth communication data) to be transferred to the migration source virtual machine monitor (step S67). In other words, the communication data determination unit 124 associates the IP address of the guest OS that matches the transmission source IP address of the input communication data and is registered in the movement source address table 128 and registered in the movement source address table 128. Create communication data (IP packet) with the IP address of the monitor as the destination IP address. Then, the communication data determination unit 124 stores the IP packet (IP header and IP payload portion) of the input communication data in the created communication data. The communication data determination unit 124 sends the created communication data to the communication data transmission unit 125 (step S68), and ends the process.

図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 input communication data 230 and the created data 234 (sent to the communication data transmission unit 125) are communication data 90 (data with a data link layer added) and communication shown in FIG. 9, respectively. It corresponds to the data 94.

通信データ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 communication data 230 includes a data link layer header 231, an IP header 232, and an IP payload 233. The destination MAC address of the data link layer header 231 and the destination IP address of the IP header 232 are associated with the IP address “192.168.2.10” of the migration source virtual machine monitor, as indicated by arrows A61 and A62, respectively. Accordingly, the MAC address “bb: bb: bb: aa: aa: aa” and the IP address “192.168.2.100” of the guest OS registered in the migration source address table 128 are matched.

図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, data 234 sent from the communication data determination unit 124 to the communication data transmission unit 125 is an IP packet. As the destination IP address of the IP header 235 of the data 234, the IP address “192.168.2.10” of the migration source virtual machine monitor is used as indicated by an arrow A63. As the transmission source IP address of the IP header 235 of the data 234, the IP address of the virtual machine monitor 12-i itself is used as indicated by an arrow A64. The IP payload 236 of the data 234 stores the IP header 232 and the IP payload 233 (IP packet) of the input communication data 230.

(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 data determination unit 124 determines that the communication data does not need to be processed, such as the communication data of the guest OS that has not moved. In this case, the communication data determination unit 124 returns the input communication data (including the communication data determination unit 124) to the I / O control unit 120 in the virtual machine monitor 12-i as it is (step S69), and the process is performed. finish.

<通信データ送信部の動作>
次に、通信データ送信部125の動作について説明する。
通信データ送信部125は、通信データ判定部124から送られた通信データ(IPパケット)にデータリンク層ヘッダを付加することにより、送信されるべき通信データを作成する。通信データ送信部125は、作成された通信データを送信するため、当該作成された通信データを仮想マシンモニタ12-i内のI/O制御部120に渡す処理を行う。
<Operation of communication data transmitter>
Next, the operation of the communication data transmission unit 125 will be described.
The communication data transmission unit 125 creates communication data to be transmitted by adding a data link layer header to the communication data (IP packet) transmitted from the communication data determination unit 124. The communication data transmission unit 125 performs a process of passing the generated communication data to the I / O control unit 120 in the virtual machine monitor 12-i in order to transmit the generated communication data.

以下、通信データ送信部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 data transmission unit 125 will be described with reference to the flowchart of FIG.
First, when an IP packet is transmitted (input) from the communication data determination unit 124, the communication data transmission unit 125 indicates that the destination IP address of the IP packet is the virtual machine monitor 12-i including the communication data transmission unit 125. It is determined whether or not the network segment 16-i where the HW11-i where the HW11-i is located belongs belongs to a different network segment (step S71). That is, the communication data transmission unit 125 determines whether the destination IP address belongs to a network segment different from the network segment 16-i.

ステップS71の判定がYESである場合、通信データ送信部125はARPテーブル129を参照することにより、ルータ17のIPアドレスを含むデータ(詳細には、ルータ17のMACアドレス及びIPアドレスの対を含むデータ)が登録されているか判定する(ステップS72)。   When the determination in step S71 is YES, the communication data transmission unit 125 refers to the ARP table 129, thereby including data including the IP address of the router 17 (specifically, including the pair of the MAC address and IP address of the router 17). It is determined whether (data) is registered (step S72).

もし、ルータ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 router 17 is not registered in the ARP table 129 (NO in step S72), the communication data transmitting unit 125 makes an ARP request with the IP address of the router 17 as the destination IP address. The ARP request is transmitted from the I / O control unit 120 to the network segment 16-i by being sent to the / O control unit 120 (step S73). The ARP request is relayed by the communication data determination unit 124 in the communication transfer control unit 122 under the control of the I / O control unit 120 and input to the ARP processing unit 126 (step S52 in FIG. 18).

通信データ送信部125はステップS73を実行すると、ルータ17のIPアドレスを含むデータがARPテーブル129に登録されているかを再度判定する(ステップS74)。   When executing step S73, the communication data transmission unit 125 determines again whether data including the IP address of the router 17 is registered in the ARP table 129 (step S74).

ステップ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 router 17 is registered in the ARP table 129, the communication data transmitting unit 125 sets a pair with the IP address of the router 17 from the ARP table 129. The obtained MAC address (that is, the MAC address of the router 17) is acquired (step S75). The communication data transmission unit 125 uses the input IP packet and the acquired MAC address (here, the MAC address of the router 17) to create communication data with the acquired MAC address as the destination (step S76). . In step S76, the communication data transmitting unit 125 transmits the generated communication data to the I / O control unit 120, thereby transmitting the communication data from the I / O control unit 120 to the network segment 16-i (step S76). ). Here, the communication data transmission unit 125 creates communication data destined for the acquired MAC address as follows.

まず通信データ送信部125は、取得されたMACアドレスを宛先MACアドレスとし、当該通信データ送信部125を含む仮想マシンモニタ12-iが動作しているHW11-iのMACアドレスを送信元MACアドレスとするデータリンク層ヘッダを作成する。通信データ送信部125は、作成されたデータリンク層ヘッダを、入力されたIPパケットに付加することにより、取得されたMACアドレスを宛先とする通信データを作成する。   First, the communication data transmission unit 125 sets the acquired MAC address as the destination MAC address, and uses the MAC address of the HW 11-i in which the virtual machine monitor 12-i including the communication data transmission unit 125 is operating as the transmission source MAC address. Create a data link layer header. The communication data transmission unit 125 creates communication data with the acquired MAC address as the destination by adding the created data link layer header to the input IP packet.

図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 data 194 shown in FIG. 19, the data 216 shown in FIG. 21, or the data 234 shown in FIG. The IP packet 250 includes an IP header 251 and an IP payload 252. The communication data transmission unit 125 adds the data link layer header 253 to the IP packet 250 to create communication data 254 to be sent from the communication data transmission unit 125 to the I / O control unit 120.

図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 IP header 251 is registered in the ARP table 129. In this case, the destination MAC address of the data link layer header 253 of the communication data 254 is paired with the matching IP address “192.168.1.150” and the MAC address “dd” registered in the ARP table 129. : Dd: dd: dd: dd: dd: dd "is used as indicated by arrow A72. As described above, the MAC address of the HW 11-i in which the virtual machine monitor 12-i is operating is used as the transmission source MAC address of the data link layer header 253. When step S76 is executed following step S75, the matching IP address “192.168.1.150” is the IP address of the router 17, and is registered in the ARP table 129 in a pair with the IP address. The MAC address “dd: dd: dd: dd: dd: dd” is the MAC address of the router 17.

一方、上記再度の判定(ステップS74)でも、ルータ17のIPアドレスに一致するデータがARPテーブル129に登録されていないと判定された場合、通信データ送信部125はそのまま処理を終了する。   On the other hand, if it is determined that the data matching the IP address of the router 17 is not registered in the ARP table 129 even in the above determination (step S74), the communication data transmission unit 125 ends the process as it is.

また、上記ステップ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 data transmission unit 125 stores the data including the IP address that matches the destination IP address in the ARP table. Whether it is registered in 129 is determined (step S77).

ステップ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 data transmission unit 125 sends an ARP request with the destination IP address of the input IP packet as the destination IP address to the I / O control unit 120, thereby making the ARP request I The transmission is transmitted from the / O control unit 120 to the network segment 16-i (step S78). The ARP request is relayed by the communication data determination unit 124 in the communication transfer control unit 122 under the control of the I / O control unit 120 and input to the ARP processing unit 126 (step S52 in FIG. 18).

通信データ送信部125はステップS78を実行すると、入力されたIPパケットの宛先IPアドレスに一致するIPアドレスを含むデータがARPテーブル129に登録されているか再度判定する(ステップS79)。   When executing step S78, the communication data transmitting unit 125 determines again whether data including an IP address that matches the destination IP address of the input IP packet is registered in the ARP table 129 (step S79).

ステップ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 data transmission unit 125 determines from the ARP table 129, A MAC address paired with the IP address that matches the destination IP address is acquired (step S80). Then, the communication data transmission unit 125 proceeds to step S76, and uses the input IP packet and the acquired MAC address to create communication data destined for the acquired MAC address, and performs I / O control. Send to section 120. This process is performed in the same manner as when the destination IP address of the input IP packet belongs to a network segment different from the network segment 16-i. However, the destination MAC address is different. That is, the destination MAC address is not the MAC address of the router 17 but the MAC address acquired in step S80 (specifically, the ARP is paired with the IP address that matches the destination IP address of the input IP packet). MAC address registered in the table 129) is used.

<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 ARP processing unit 126 will be described.
The processing executed by the ARP processing unit 126 is roughly divided into (1) processing when an ARP packet (that is, an ARP request or ARP response) is input, and (2) periodic check of the ARP table. In the process (1), the ARP processing unit 126 adds data to the ARP table 129 based on the input ARP packet and transmits the ARP packet. In the process (2), the ARP processing unit 126 checks the ARP table 129 at predetermined time intervals, and reduces the expiration date. Further, the ARP processing unit 126 deletes the expired data from the ARP table 129. Details of the processes (1) and (2) are as follows.

(1)ARPパケットが入力された場合の処理
まず、ARPパケットが入力された場合のARP処理部126の動作について、図26のフローチャートを参照して説明する。
(1) Processing when an ARP packet is input First, the operation of the ARP processing unit 126 when an ARP packet is input will be described with reference to the flowchart of FIG.

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 ARP processing unit 126 determines whether the input ARP packet is an ARP response (step S91). If the response is an ARP response (YES in step S91), the ARP processing unit 126 adds data to the ARP table 129 based on the ARP response packet of the ARP response (step S92). The data added to the ARP table 129 includes a MAC address / IP address pair and expiration date information. Here, the source MAC address and source IP address of the ARP response packet are used as the MAC address and IP address, respectively. For the expiration date information, for example, information indicating 600 seconds predetermined by the system is used. However, a value designated by the user may be used for the expiration date.

図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 input ARP response 270 corresponds to, for example, the ARP response 40 shown in FIG. 4 or the ARP response 80 shown in FIG. The ARP response 270 includes a data link layer header 271 and an ARP response packet 272. The source MAC address and source IP address of the ARP response packet 272 are registered in the ARP table 129 as indicated by arrows A81 and A82, respectively. At this time, information indicating the expiration date of the MAC address / IP address pair registered in the ARP table 129 is also registered in the ARP table 129 in association with the MAC address / IP address pair.

一方、入力された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 processing unit 126 determines that the destination IP address (target IP address) of the ARP request is the ARP process. It is determined whether the IP address of the virtual machine monitor 12-i including the unit 126 is itself (step S93).

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 ARP processing unit 126 transmits the source address (transmission) of the input ARP request. The ARP response of the virtual machine monitor 12-i for the original MAC address and the transmission source IP address) is created (step S94). In step S94, the ARP processing unit 126 transmits the created ARP response to the I / O control unit 120, thereby causing the I / O control unit 120 to transmit the ARP response to the network segment 16-i.

図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 input ARP request 280 corresponds to, for example, the ARP request 30 shown in FIG. 3, the ARP request 70 shown in FIG. 7, or the ARP request 100 shown in FIG. The ARP request 280 includes a data link layer header 281 and an ARP request packet 282. On the other hand, the created / transmitted ARP response 283 includes a data link layer header 284 and an ARP response packet 285.

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 link layer header 284 of the ARP response 283 include the source MAC address and the virtual machine of the data link layer header 281 of the ARP request 280, as indicated by arrows A91 and A92, respectively. The MAC address of the HW11-i where the monitor 12-i is operating is used. The destination MAC address and the destination IP address of the ARP response packet 285 of the ARP response 283 include the source MAC address and the source IP address of the ARP request packet 282 of the ARP request 280 as indicated by arrows A93 and A94, respectively. Used. The source MAC address and source IP address of the ARP response packet 285 of the ARP response 283 include the MAC address of the HW 11-i in which the virtual machine monitor 12-i is operating, as indicated by arrows A95 and A95, respectively. And the IP address of the virtual machine monitor 12-i itself is used.

一方、ステップ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 ARP processing unit 126 determines the destination IP address. It is determined whether the IP address of the guest OS that matches the address is registered in the destination address table 127 (step S95).

ステップ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 ARP processing unit 126 determines that the input ARP request is an ARP request for the moved guest OS. In this case, the ARP processing unit 126 makes a pair with the IP address of the guest OS that matches the destination IP address (target IP address) of the ARP request registered in the destination address table 127 and the IP address of the guest OS. Using the guest OS MAC address, a guest OS ARP response to the input source address of the input ARP request is created (step S96). In step S96, the ARP processing unit 126 transmits the created ARP response to the I / O control unit 120, thereby causing the I / O control unit 120 to transmit the ARP response to the network segment 16-i.

図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 input ARP request 290 includes a data link layer header 291 and an ARP request packet 292. On the other hand, the created / transmitted ARP response 293 includes a data link layer header 294 and an ARP response packet 295. In the example of FIG. 29, the destination address table 127 includes an IP address “192. IP address of the guest OS that matches the destination IP address (target IP address) of the ARP request packet 292 of the ARP request 290, as indicated by the arrow A101. 168.1.100 "is registered.

この場合、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 link layer header 291 of the ARP request 290 is used as the destination MAC address of the data link layer header 294 of the ARP response 293, as indicated by an arrow A102. The source MAC address of the data link layer header 294 of the ARP response 293 is paired with the IP address “192.168.1.100” of the guest OS as shown by the arrow A103, and the destination address table 127 The MAC address “aa: aa: aa: aa: aa: aa” of the guest OS registered in is used.

また、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 ARP response packet 295 of the ARP response 293 include the source MAC address and the source IP address of the ARP request packet 292 of the ARP request 290, as indicated by arrows A104 and 105, respectively. An address is used. As indicated by arrows A106 and A107, the MAC address “aa: aa: aa: aa: aa: of the guest OS is included in the source MAC address and source IP address of the ARP response packet 295 of the ARP response 293, respectively. aa ”and the IP address“ 192.168.1.100 ”are used.

一方、ステップ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 ARP processing unit 126 Then, it is determined whether or not the IP address of the guest OS that matches the source IP address of the ARP request is registered in the source address table 128 (step S97).

もし、ステップ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 ARP processing unit 126 determines that the input ARP request is an ARP request transmitted by the moving guest OS. In this case, the ARP processing unit 126 creates an ARP response that stores a fake MAC address (step S98). In step S98, the ARP processing unit 126 transmits the created ARP response to the I / O control unit 120, thereby causing the I / O control unit 120 to transmit the ARP response to the network segment 16-i.

図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 input ARP request 300 includes a data link layer header 301 and an ARP request packet 302. On the other hand, the created / transmitted ARP response 303 includes a data link layer header 304 and an ARP response packet 305. In the example of FIG. 30, the migration source address table 128 includes an IP address “192.168.8.2. Of the guest OS that matches the transmission source IP address of the ARP request packet 302 of the ARP request 300, as indicated by an arrow A111. 100 "is registered.

この場合、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 link layer header 301 of the ARP request 300 is used as the destination MAC address of the data link layer header 304 of the ARP response 303, as indicated by an arrow A112. As the source MAC address of the data link layer header 304 of the ARP response 303, a fake MAC address is used as indicated by an arrow A113.

また、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 ARP response packet 305 of the ARP response 303 include the source MAC address and the source IP address of the ARP request packet 302 of the ARP request 300 as indicated by arrows A114 and 115, respectively. An address is used. The source MAC address and the source IP address of the ARP response packet 305 of the ARP response 303 are the above-described fake MAC address and the destination IP address (target IP address) of the ARP request packet 302, as indicated by arrows A116 and A117, respectively. Address) is used.

一方、ステップ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 ARP processing unit 126. Determines that the ARP request is communication data that does not need to be processed by itself (ARP request from a guest OS that has not moved). In this case, the ARP processing unit 126 returns the input ARP request to the I / O control unit 120 as it is (step S99).

(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 processing unit 126 will be described with reference to the flowchart of FIG.

ARP処理部126は、ARPテーブル129を定期的にチェックして、有効期限が0以下となるデータを当該テーブル129から削除するための処理を、図31のフローチャートに従って次のように行う。   The ARP processing unit 126 periodically checks the ARP table 129 and performs processing for deleting data whose expiration date is 0 or less from the table 129 as follows according to the flowchart of FIG.

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 processing unit 126 refers to the entry of the ARP table 129 and reduces the value of the expiration date by the time of the periodic check interval (step S101). Next, the ARP processing unit 126 determines whether the value of the expiration date after being reduced by the period of the regular check is 0 or less (step S102). If the determination in step S102 is YES, the ARP processing unit 126 deletes the entry data of the ARP table 129 including the value of the expiration date determined in step S102 from the table 129 (step S103). ). On the other hand, if the determination in step S102 is NO, the ARP processing unit 126 skips step S103.

ARP処理部126は、以上の処理を、ARPテーブル129の全エントリについて繰り返す(ステップS104)。ARP処理部126は、ARPテーブル129の全エントリについて上記の処理を完了すると(ステップS104)、定期チェックの間隔の時間待機する(ステップS105)。本実施形態において、ARPテーブル129を対象とする定期チェックの間隔(時間間隔)は1秒に予め定められている。しかし、定期チェックの間隔がユーザによって設定可能な構成としても構わない。   The ARP processing unit 126 repeats the above processing for all entries in the ARP table 129 (step S104). When the ARP processing unit 126 completes the above processing for all entries in the ARP table 129 (step S104), the ARP processing unit 126 waits for the period of the regular check (step S105). In this embodiment, the interval (time interval) of the periodic check for the ARP table 129 is predetermined as 1 second. However, a configuration may be adopted in which the periodic check interval can be set by the user.

ARP処理部126は、定期チェックの間隔の時間待機し終える毎に、上述のARPテーブル129の全エントリをチェックして、有効期限が0以下となるデータを当該テーブル129から削除するための処理を繰り返す(ステップS106)。   Each time the ARP processing unit 126 waits for the period of the regular check interval, the ARP processing unit 126 checks all entries in the ARP table 129 described above, and performs processing for deleting data whose expiration date is 0 or less from the table 129. Repeat (step S106).

なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態では、ゲスト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.

本発明の一実施形態に係る仮想マシンシステムの構成を示すブロック図。1 is a block diagram showing a configuration of a virtual machine system according to an embodiment of the present invention. 図1のシステムで適用される、ゲストOSの移動前後の通信シーケンスを示すシーケンスチャート。The sequence chart which shows the communication sequence before and behind the movement of guest OS applied with the system of FIG. 図2の通信シーケンスにおいてクライアントから送信されるARP要求の一例を示す図。The figure which shows an example of the ARP request | requirement transmitted from a client in the communication sequence of FIG. 図3に示すARP要求に対するARP応答の一例を示す図。The figure which shows an example of the ARP response with respect to the ARP request | requirement shown in FIG. 図2の通信シーケンスにおいてクライアントから送信される移動されたゲストOS宛ての通信データと、当該通信データを移動されたゲストOSに中継するために作成される通信データとを対応付けて示す図。The figure which matches and shows the communication data addressed to the moved guest OS transmitted from the client in the communication sequence of FIG. 2, and the communication data created in order to relay the said communication data to the moved guest OS. 図2の通信シーケンスにおいて中継された通信データと、当該通信データに基づいて作成される移動されたゲストOS宛ての通信データとを対応付けて示す図。The figure which matches and shows the communication data relayed in the communication sequence of FIG. 2, and the communication data addressed to the moved guest OS created based on the said communication data. 図2の通信シーケンスにおいて移動されたゲストOSから送信されるARP要求の一例を示す図。The figure which shows an example of the ARP request | requirement transmitted from the guest OS moved in the communication sequence of FIG. 図7に示すARP要求に対するARP応答の一例を示す図。The figure which shows an example of the ARP response with respect to the ARP request | requirement shown in FIG. 図2の通信シーケンスにおいて移動されたゲストOSから送信される通信データと、当該通信データを中継するために作成される通信データとを対応付けて示す図。The figure which matches and shows the communication data transmitted from the guest OS moved in the communication sequence of FIG. 2, and the communication data produced in order to relay the said communication data. 図2の通信シーケンスにおいて仮想マシンモニタから送信されるARP要求の一例を示す図。The figure which shows an example of the ARP request | requirement transmitted from a virtual machine monitor in the communication sequence of FIG. 図10に示すARP要求に対するARP応答の一例を示す図。The figure which shows an example of the ARP response with respect to the ARP request | requirement shown in FIG. 図2の通信シーケンスにおいて中継された通信データと、当該通信データに基づいて作成されるクライアント宛ての通信データとを対応付けて示す図。The figure which matches and shows the communication data relayed in the communication sequence of FIG. 2, and the communication data addressed to the client created based on the said communication data. 図1に示される仮想マシンモニタの構成を示すブロック図。The block diagram which shows the structure of the virtual machine monitor shown by FIG. 図13に示される移動先アドレステーブルのデータ構造例を示す図。FIG. 14 is a diagram showing an example of the data structure of a destination address table shown in FIG. 13. 図13に示される移動元アドレステーブルのデータ構造例を示す図。FIG. 14 is a diagram showing an example of the data structure of a source address table shown in FIG. 13. 図13に示されるARPテーブルのデータ構造例を示す図。The figure which shows the example of a data structure of the ARP table shown by FIG. 図13に示されるゲストOS状態受信部の動作を説明するためのフローチャート。14 is a flowchart for explaining the operation of the guest OS state reception unit shown in FIG. 13. ゲストOS状態受信部によって作成される移動停止データの一例を、移動元アドレステーブルに対応付けて示す図。The figure which shows an example of the movement stop data produced by the guest OS state receiving part in association with the movement source address table. 図13に示される通信データ判定部の動作を説明するためのフローチャート。14 is a flowchart for explaining the operation of the communication data determination unit shown in FIG. 13. 図18中のステップ54で作成されるデータ(IPパケット)の一例を、入力された通信データ及び移動先アドレステーブルに対応付けて示す図。FIG. 19 is a diagram showing an example of data (IP packet) created in step 54 in FIG. 18 in association with input communication data and a destination address table. 移動停止データに基づいて移動先アドレステーブル127からエントリデータを削除する動作を説明するための図。The figure for demonstrating the operation | movement which deletes entry data from the movement destination address table 127 based on movement stop data. 図18中のステップ61で通信データ判定部から通信データ送信部に送られるIPパケットを、入力された通信データ及び移動先アドレステーブルと対応付けて示す図。FIG. 19 is a diagram showing an IP packet sent from the communication data determination unit to the communication data transmission unit in step 61 in FIG. 18 in association with input communication data and a destination address table. 図18中のステップ64で作成される通信データの一例を、入力された通信データ及び移動元アドレステーブルに対応付けて示す図。FIG. 19 is a diagram showing an example of communication data created in step 64 in FIG. 18 in association with input communication data and a source address table. 図18中のステップ67で作成されるデータ(IPパケット)の一例を、入力された通信データ及び移動元アドレステーブルに対応付けて示す図。FIG. 19 is a diagram showing an example of data (IP packet) created in step 67 in FIG. 18 in association with input communication data and a source address table. 図13に示される通信データ送信部の動作を説明するためのフローチャート。14 is a flowchart for explaining the operation of the communication data transmission unit shown in FIG. 13. 図24中のステップ76で作成・送信される通信データの一例を、入力されたIPパケット及びARPテーブルと対応付けて示す図。FIG. 25 is a diagram showing an example of communication data created and transmitted in step 76 in FIG. 24 in association with an input IP packet and an ARP table. 図13に示されるARP処理部のARPパケットが入力された場合の動作を説明するためのフローチャート。14 is a flowchart for explaining an operation when an ARP packet of the ARP processing unit shown in FIG. 13 is input. 図26中のステップS92でARPテーブルに追加されるデータの一例を、入力されたARP応答と対応付けて示す図。FIG. 27 is a diagram showing an example of data added to an ARP table in step S92 in FIG. 26 in association with an input ARP response. 図26中のステップS94で作成・送信されるARP応答の一例を、入力されたARP要求と対応付けて示す図。FIG. 27 is a diagram showing an example of an ARP response created / transmitted in step S94 in FIG. 26 in association with an input ARP request. 図26中のステップS96で作成・送信されるARP応答の一例を、入力されたARP要求及び移動先アドレステーブルと対応付けて示す図。FIG. 27 is a diagram showing an example of an ARP response created and transmitted in step S96 in FIG. 26 in association with an input ARP request and a destination address table. 図26中のステップS98で作成・送信されるARP応答の一例を、入力されたARP要求及び移動元アドレステーブルと対応付けて示す図。FIG. 27 is a diagram showing an example of an ARP response created / transmitted in step S98 in FIG. 26 in association with an input ARP request and a source address table. 図13に示されるARP処理部によるARPテーブルの定期チェックを説明するためのフローチャート。14 is a flowchart for explaining a periodic check of the ARP table by the ARP processing unit shown in FIG. 13.

符号の説明Explanation of symbols

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)

ゲストOSが動作可能な第1の仮想マシンモニタと、
前記第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.
前記第1の仮想マシンモニタの前記移動管理手段は、
ゲスト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.
前記第1の仮想マシンモニタの前記通信転送制御手段は、前記通信データの判定を前記第1及び第2のテーブルに基づき実行する通信データ判定手段を含み、
前記通信データ判定手段は、
前記通信データの宛先に一致するゲスト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.
前記第1の仮想マシンモニタの前記通信転送制御手段は、
前記通信データが前記第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の仮想マシンモニタの前記通信データ判定手段は、前記通信データがアドレス解決プロトコル要求及びアドレス解決プロトコル応答のいずれであるかを判定し、
前記第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.
前記第1の仮想マシンモニタの前記通信データ判定手段は、
前記通信データがゲスト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.
ゲストOSが動作可能な第1の仮想マシンモニタが動作する第1のハードウェアと、ゲストOSが動作可能な第2の仮想マシンモニタが動作する第2のハードウェアとがネットワークにより接続され、前記第1の仮想マシンモニタが、前記第1のハードウェアと前記第1の仮想マシンモニタ上で動作するゲストOSとの間の通信データの入出力を制御する前記第1の仮想マシンモニタから前記第2の仮想マシンモニタへのゲストOSの移動及び前記第2の仮想マシンモニタから前記第1の仮想マシンモニタへのゲストOSの移動を制御するゲストOS制御手段と、前記ゲストOS制御手段の制御によるゲストOSの移動状態を管理する移動管理手段とを有する仮想マシンシステムに適用される仮想マシンモニタ用プログラムであって、
前記第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.
JP2008151871A 2008-06-10 2008-06-10 Virtual machine system and virtual machine monitor program program Active JP4762270B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP3471366B1 (en) Container deployment method, communication method between services and related devices
EP3401783B1 (en) Method and apparatus for determining virtual machine migration
US10587544B2 (en) Message processing method, processing server, terminal, and storage medium
EP3091696B1 (en) Method and device for implementing virtual machine communication
CN112398817B (en) Data sending method and device
EP4040743B1 (en) Message transmission method and proxy node
EP2318926B1 (en) Method and system for low-overhead data transfer
EP4044528A1 (en) Packet transmission method, proxy node, and storage medium
JP6982104B2 (en) BRAS system-based packet encapsulation methods and equipment
US20150180959A1 (en) Network interface controller supporting network virtualization
JP2020520612A (en) Packet transmission method, edge device, and machine-readable storage medium
US9118608B2 (en) Communication apparatus, control method therefor, and computer-readable storage medium
CN113326101B (en) Thermal migration method, device and equipment based on remote direct data storage
CN111565142B (en) Message processing method and device and computer readable storage medium
US20090185572A1 (en) Relay apparatus and method for notifying information
CN107682275B (en) Message monitoring method and device
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
CN106411842A (en) Transferring state in content centric network stacks
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
US20220217093A1 (en) Sequence Number Synchronization Method and Apparatus
KR100431206B1 (en) Table management methode for distributed forwarding in high speed router

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