WO2010064411A1 - Device and method for communicating between virtual machines, socket api wrapper library, and storage medium - Google Patents

Device and method for communicating between virtual machines, socket api wrapper library, and storage medium Download PDF

Info

Publication number
WO2010064411A1
WO2010064411A1 PCT/JP2009/006516 JP2009006516W WO2010064411A1 WO 2010064411 A1 WO2010064411 A1 WO 2010064411A1 JP 2009006516 W JP2009006516 W JP 2009006516W WO 2010064411 A1 WO2010064411 A1 WO 2010064411A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
communication
communication channel
proxy response
virtual machines
Prior art date
Application number
PCT/JP2009/006516
Other languages
French (fr)
Japanese (ja)
Inventor
森本昌治
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010541225A priority Critical patent/JPWO2010064411A1/en
Publication of WO2010064411A1 publication Critical patent/WO2010064411A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present invention relates to an inter-virtual machine communication apparatus and method, and a socket API (Application Program Interface) wrapper library, and more particularly to speeding up communication between virtual machines.
  • socket API Application Program Interface
  • VMs virtual machines
  • the communication overhead between virtual machines is large, and it is known that the method using inter-VM communication significantly reduces the performance of the entire system as compared with the case where VMs are not used.
  • VMs virtual machines
  • the influence is propagated to other VMs, and the system May have a major impact on the operation of the system.
  • VMM virtual machine monitor
  • Non-Patent Document 1 XenLoop (Non-Patent Document 1) and XWay (Non-Patent Document 2) have been proposed as an inter-VM communication method that can be used without changing an OS or an application using a socket.
  • XenLoop is a driver realized between the IP layer and the data link layer of the communication protocol stack. Therefore, XenLoop receives the data transmitted from the application in the form of a packet. If the transmission destination computer is a VM existing on the same VMM, the transmission is performed using the communication channel of the VMM. Otherwise, the packet is directly passed to the data link layer.
  • XWay is a switch realized between the socket API layer and the transport layer of the communication protocol stack.
  • data received from the socket API is transmitted to a VM in the same VMM, communication is performed using the communication channel of the VMM using the XWay protocol. Otherwise, the data is passed to the transport layer.
  • a VM becomes unresponsive due to migration or the like.
  • the VM 1 transmission process is blocked unless the VM 2 enters the migration process and responds. Therefore, the VM1 consumes resources to save the response waiting state, or the VMM consumes resources for the communication channel.
  • ⁇ Proxy response is effective to deal with this problem. Furthermore, it is desirable to be able to respond flexibly at the application level. This is because a coping method suited to the application installed in the VM to be linked is necessary. For example, for an HTTP GET access during migration, there are applications that want to return a status code 503 indicating that the service cannot be used, and there are applications that want to return a status code 307 that is temporarily redirected to another resource.
  • the VMM administrator stops the access to the VM1 from another VM (for example, VM2) in the VMM1 before starting the migration, and resumes the communication as the communication to the physical machine 2 after the migration is completed.
  • VM2 for example, VM2
  • Setting work is required. This means that both VMM administrator and service operator work are required during VM migration, leading to an increase in system operation costs. Therefore, it is important that the work of improving availability and performance can be separated.
  • the first problem of the above-described technology is that in a system in which VMs on a VMM are closely linked, an application using an OS or socket on the VM is changed when speeding up communication between VMs and improving system availability. Is not to.
  • the second problem is that a flexible proxy response at the application level is possible in order to increase the availability of the entire system in the above system.
  • the third problem is that the above-described system can independently perform the work of improving availability and improving performance (VM migration).
  • the present invention provides a high-speed inter-virtual machine communication having a proxy response without changing the operating system or application in the virtual machine in a system that closely links the virtual machines on the virtual machine monitor. It aims to be realized.
  • one aspect of the inter-virtual machine communication device of the present invention includes a virtual machine monitor and a plurality of virtual machines that are executed on the virtual machine monitor and communicate with each other, At least one of the plurality of virtual machines includes a wrapper library of socket API (Application Program Interface).
  • the socket API wrapper library includes a communication channel management unit that manages a communication channel provided by the virtual machine monitor, and a proxy response unit that performs a proxy response of communication between virtual machines using the communication channel. .
  • An aspect of the inter-virtual machine communication method according to the present invention is an inter-virtual machine communication method for performing communication between a plurality of virtual machines on the same virtual machine monitor, and includes at least one of the plurality of virtual machines.
  • One wrapper API wrapper library manages a communication channel provided by the virtual machine monitor, and performs a proxy response for communication between virtual machines using the communication channel.
  • One aspect of the socket API wrapper library according to the present invention is a communication channel management means for managing a communication channel provided by the virtual machine monitor for a virtual machine executed on the virtual machine monitor, and the communication channel. It is made to function as a proxy response means for performing a proxy response of the used inter-virtual machine communication.
  • One aspect of the computer-readable recording medium includes a communication channel management procedure for managing a communication channel provided by the virtual machine monitor for a virtual machine executed on the virtual machine monitor, and the communication A program for executing a proxy response procedure for performing a proxy response for communication between virtual machines using a channel is stored.
  • the inter-VM communication method includes a communication channel management unit having a VM information management table and a communication channel management table, and a proxy response unit having an application policy management table and a proxy response module group.
  • This is implemented as a socket API wrapper library (hereinafter referred to as “socket wrapper”).
  • the proxy response is automatically performed when the policy is met, so the VMM administrator can freely perform migration without notifying the service operator.
  • the present embodiment is realized as socket wrappers (501 to 503) linked to applications (301 to 303) by VMs (201 to 203) on the VMM (100).
  • the present embodiment is realized by a software program that performs predetermined information processing using a general-purpose computer including an arithmetic / processing device such as a CPU (Central Processing Unit) or a processor, and a storage device such as a memory. .
  • a software program and a computer-readable recording medium storing the software program also constitute the present invention.
  • the VMM (100) provides communication channels (701, 702) as a communication mechanism between VMs.
  • an application A (301) calls an API of a socket wrapper, and communicates with an application B (302) via a communication channel (701) provided by the VMM (100).
  • application B (302) communicates with application C (303) via communication channel (702).
  • the socket wrapper 501 includes a communication channel management unit 510 and a proxy response unit 520.
  • the communication channel management unit 510 has a VM information management table 511 and a communication channel management table 512.
  • the proxy response unit 520 has an application policy management table 521 and a proxy response module group 522.
  • each table or module group shown in FIG. 2 will be described with reference to specific examples in FIG. 3 to FIG. 6, but these are merely examples for description and do not limit the present invention.
  • FIG. 3 shows an example of the VM information management table 511.
  • the IP address of the destination VM and the VM identifier (hereinafter referred to as VM-ID) are managed as a set of entries.
  • An entry of this table is added when the migration of the VM to the VMM is completed by migration, and is deleted when the migration of another VM is completed by migration. Therefore, it can be determined with reference to the VM information management table 511 whether or not an arbitrary VM (for example, a destination VM) exists on the same VMM.
  • the same VMM means one VMM of an arbitrary physical machine. Therefore, an arbitrary VM exists on the same VMM, an arbitrary VM and its own VM exist on one VMM.
  • FIG. 4 shows an example of the communication channel management table 512.
  • a set of a socket descriptor number, a channel number of a VMM to be used, or a channel ID indicating a module identifier of a proxy response when proxy response is performed, and a VM-ID which is a VM identifier of a communication partner As an entry.
  • the module identifier and channel number do not overlap.
  • FIG. 5 shows an example of the applied policy management table 521.
  • the VM identifier VM-ID of the communication partner the threshold value indicating the upper limit number of channels that is a condition for applying the proxy response, the counter indicating the number of channels being used, and the module identifier that actually performs proxy response processing ( And (Module ID) are managed as a set of entries.
  • FIG. 6 shows an example of the proxy response module group 522.
  • a module identifier (Module ID) and an address where the module is arranged are managed as a set of entries.
  • the proxy response module it is possible to arrange functions suitable for services and situations.
  • connection request API for example, connect ()
  • the socket wrapper 501 calls a connection request API (for example, connect ()) of the socket wrapper 501 in order to connect to a communication partner (step S101 in FIG. 7).
  • the socket wrapper 501 confirms the VM information management table 511 of the communication channel management unit 510 and determines whether the communication partner exists on the same VMM using the destination IP address as a key (an entry exists in the VM information management table 511). Search) (step S102).
  • the socket wrapper 501 performs communication by calling a normal socket API (steps S103 to S104).
  • the socket wrapper 501 acquires the VM-ID from the VM information management table 511, and searches the application policy management table 521 of the proxy response unit 520 using the VM-ID as a key (step S105). .
  • the socket wrapper 501 secures the communication channel of the VMM, and the communication channel management table.
  • An entry (descriptor number, channel ID, VM-ID) is added to 512 and communication processing is started (steps S106 and S107).
  • the socket wrapper 501 acquires the proxy response module (Module ID) specified in the application policy management table 521, and the entry (descriptor number, Module) in the communication channel management table 512. (ID, VM-ID) is added and proxy response processing is started (steps S106 and S108).
  • VM2 starts moving to a VMM on another physical machine by migration in a system in which VM1, VM2, and VM3 are linked. Then, since connection to VM2 becomes impossible, the proxy response process is started at the stage where the proxy response application conditions are met in the socket wrappers of VM1 and VM3.
  • the communication channel management unit 510 that has received the migration completion event from the VMM 100 deletes the entry in the VM information management table 511. At the same time, the entry corresponding to VM2 in the communication channel management table 512 and the applied policy management table 521 is deleted. Thereby, the connection request from VM1, VM3 to VM2 is switched to the access using the normal socket API (refer to the flow of steps S103 and S104 in FIG. 7).
  • the communication channel management unit 510 that has received the migration completion event from the VMM adds the information of VM4 as an entry to the VM information management table 511.
  • the first effect is that the application using the OS and socket on the VM is not changed when speeding up communication between VMs and improving system availability.
  • the reason is that the present invention is implemented as a wrapper for the socket API.
  • the second effect is that the availability of the system is increased when a certain VM cannot respond due to migration or the like.
  • the present invention includes a proxy response mechanism that can flexibly cope with an application level, and prompts the application to release resources. As a result, the influence on other VMs and the entire system can be minimized.
  • the third effect is that work for improving system availability and performance improvement by VM migration can be performed independently. This is because the system automatically performs a proxy response at the time of migration because the present invention has a proxy response function in the inter-VM communication mechanism. Therefore, the VMM administrator can freely migrate the VM without contacting the service builder.
  • the operation (the operation shown in the flowchart) in the above-described embodiment can be executed by hardware, software, or a combined configuration of both.
  • a program in which a processing sequence is recorded may be installed and executed in a memory in a computer incorporated in dedicated hardware. Or you may install and run a program in the general purpose computer which can perform various processes.
  • the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium.
  • the program is temporarily or permanently stored on a removable recording medium such as a CD-ROM (Compact Disc Only Memory), MO (Magneto Optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory. It can be stored (recorded).
  • a removable recording medium can be provided as so-called package software.
  • the program may be installed on the computer from the removable recording medium as described above, or may be wirelessly transferred from the download site to the computer. Or you may wire-transfer to a computer via networks, such as LAN (Local Area Network) and the internet.
  • the computer can receive the transferred program and install it on a recording medium such as a built-in hard disk.
  • the processing capability of the apparatus that executes the processing, or a configuration to execute in parallel or individually as necessary is also possible.
  • the present invention can be applied to a system that performs communication between VMs using a socket on a VMM. More specifically, the present invention can be applied to a system that links VMs that provide Web services. In addition, if a socket is used, it can be applied to a service that communicates using an application protocol (for example, HTTP, SMTP, POP, FTP, SIP, DNS, Telnet, etc.).
  • HTTP HyperText Transfer Protocol
  • POP POP
  • FTP FTP
  • SIP Session Init Protocol
  • Telnet Telnet
  • VMM Virtual Machine Monitor
  • OS Operating System
  • Socket wrapper 701 702 Communication channel in VMM
  • Communication channel management unit 511 VM information management table
  • Communication channel management table 520 Proxy response unit 521
  • Applicable policy management table 522 Proxy response module group

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

Disclosed is a system that closely links virtual machines upon a virtual machine monitor.  The system facilitates rapid communication between virtual machines comprising response agents, without changing the operating systems or applications that run on the virtual machines.  Also provided is a device for communicating between virtual machines, which, when a plurality of virtual machines (201 – 203) are caused to run upon a common virtual machine monitor (100), communicates between the virtual machines (201 – 203).  A socket API wrapper library (socket wrapper) (501) upon the virtual machine (201) comprises a communications channel administration unit (510), which administers the communications channels provided by the virtual machine monitor (100), and a response agent unit (520), which responds to communications between the virtual machines via the communications channels.

Description

仮想マシン間通信装置、方法、ソケットAPIのラッパライブラリ、及び記録媒体Virtual machine communication apparatus, method, socket API wrapper library, and recording medium
 本発明は、仮想マシン間通信装置、方法及びソケットAPI(Application Program Interface)のラッパライブラリに関し、特に、仮想マシン間通信の高速化に関する。 The present invention relates to an inter-virtual machine communication apparatus and method, and a socket API (Application Program Interface) wrapper library, and more particularly to speeding up communication between virtual machines.
 通常、仮想マシン(以下、VM)間の通信オーバヘッドは大きく、VMを用いない場合と比較してVM間通信を用いた方式は系全体の性能を著しく低下させることが知られている。また、複数のVMが密に連携するシステムにおいてVM間での通信が頻繁に行われる場合、ある1つのVMがマイグレーションなどで停止してしまうとその影響が他のVMに伝播してしまい、システムの運用に大きな影響を与える虞がある。 Usually, the communication overhead between virtual machines (hereinafter referred to as VMs) is large, and it is known that the method using inter-VM communication significantly reduces the performance of the entire system as compared with the case where VMs are not used. In addition, when communication between VMs is frequently performed in a system in which a plurality of VMs are closely linked, if one VM is stopped due to migration or the like, the influence is propagated to other VMs, and the system May have a major impact on the operation of the system.
 したがって、仮想マシンモニタ(以下、VMM)上で複数のVMが密に連携するシステムの課題は、VM間通信の高速化とシステムの可用性の向上の両立である。また、これらの機能がVM内のオペレーティングシステム(以下、OS)やアプリケーションを変更せずに実現できることが重要である。 Therefore, a problem of a system in which a plurality of VMs closely cooperate on a virtual machine monitor (hereinafter referred to as VMM) is to achieve both high-speed communication between VMs and improvement of system availability. Further, it is important that these functions can be realized without changing the operating system (hereinafter referred to as OS) or application in the VM.
 VM間通信の高速化は管理VMと呼ばれる通信を管理するVMを経由せずに直接VMMの通信チャネルを利用することで実現できる。中でも、OSやソケットを使ったアプリケーションを変更せずに利用可能なVM間通信方式として、XenLoop(非特許文献1)やXWay(非特許文献2)が提案されている。 Acceleration of communication between VMs can be realized by directly using the communication channel of the VMM without going through the VM that manages communication called management VM. In particular, XenLoop (Non-Patent Document 1) and XWay (Non-Patent Document 2) have been proposed as an inter-VM communication method that can be used without changing an OS or an application using a socket.
 XenLoopは通信プロトコルスタックのIPレイヤとデータリンクレイヤの間で実現されたドライバである。そのため、XenLoopはアプリケーションから送信されたデータをパケットの形式で受信する。もし、送信先の計算機が同一VMM上に存在するVMならばVMMの通信チャネルを利用して送信し、そうでなければそのままデータリンクレイヤにパケットを渡すようになっている。 XenLoop is a driver realized between the IP layer and the data link layer of the communication protocol stack. Therefore, XenLoop receives the data transmitted from the application in the form of a packet. If the transmission destination computer is a VM existing on the same VMM, the transmission is performed using the communication channel of the VMM. Otherwise, the packet is directly passed to the data link layer.
 XWayは通信プロトコルスタックのソケットAPIのレイヤとトランスポートレイヤの間で実現されたスイッチである。ソケットAPIから受け取ったデータを同一VMM内のVMに送信する場合はVMMの通信チャネルを利用し、XWayプロトコルにて通信する。そうでなければトランスポートレイヤにデータを渡すようになっている。 XWay is a switch realized between the socket API layer and the transport layer of the communication protocol stack. When data received from the socket API is transmitted to a VM in the same VMM, communication is performed using the communication channel of the VMM using the XWay protocol. Otherwise, the data is passed to the transport layer.
 これらを用いれば、OSやソケットを使ったアプリケーションを変更することなく、VM間通信の高速化が実現できる。 If these are used, high-speed communication between VMs can be realized without changing the application using the OS or socket.
 一方、システムの可用性を向上させるには、あるVMがマイグレーションなどによって応答不能になった場合の対処が必要になる。例えば、VM1がVM2にリクエストを送信する場合、VM2がマイグレーション処理に入って応答できなければVM1の送信処理はブロックしてしまう。したがって、VM1では応答待ちの状態を保存するためにリソースを消費してしまい、あるいは、VMMでは通信チャネルのためにリソースが消費されてしまう。 On the other hand, in order to improve system availability, it is necessary to deal with a case where a VM becomes unresponsive due to migration or the like. For example, when the VM 1 transmits a request to the VM 2, the VM 1 transmission process is blocked unless the VM 2 enters the migration process and responds. Therefore, the VM1 consumes resources to save the response waiting state, or the VMM consumes resources for the communication channel.
 この問題に対処するには代理応答が有効である。さらに、アプリケーションレベルでの柔軟な対応ができることが望ましい。なぜなら、連携させるVMが搭載するアプリケーションに合わせた対処方法が必要だからである。例えば、マイグレーション中のHTTPのGETアクセスに対して、サービス利用不可を示すステータスコード503を返したいアプリケーションもあれば、一時的に別のリソースにリダイレクトするステータスコード307を返したいアプリケーションもある。 ∙ Proxy response is effective to deal with this problem. Furthermore, it is desirable to be able to respond flexibly at the application level. This is because a coping method suited to the application installed in the VM to be linked is necessary. For example, for an HTTP GET access during migration, there are applications that want to return a status code 503 indicating that the service cannot be used, and there are applications that want to return a status code 307 that is temporarily redirected to another resource.
 しかし、アプリケーションレベルの柔軟な代理応答を実現するにはアプリケーション自体の改変が必要になり、アプリケーションの開発コストの問題が発生してしまう。したがって、アプリケーションレベルの代理応答機能をVM間通信の機構の中に取り入れることで、アプリケーションの開発コストを抑えることが可能になる。つまり、VM上のOSやアプリケーションを変更せずにVM間通信の高速化とシステムの可用性の向上を両立した代理応答可能なVM間通信方式が望まれる。 However, in order to realize a flexible proxy response at the application level, it is necessary to modify the application itself, resulting in a problem of application development cost. Therefore, by incorporating an application level proxy response function into the mechanism of communication between VMs, it is possible to reduce the development cost of the application. In other words, an inter-VM communication method capable of proxy response that achieves both high-speed communication between VMs and improved system availability without changing the OS or application on the VM is desired.
 しかし、このような代理応答機能をXenLoopで実現しようとすると、XenLoopはパケット形式でデータを受け取るため、パケットの再構築とメッセージの解釈が必要になる。よって、本来は必要のなかったパケットの再構築処理のため代理応答機能の実行コスト及び開発コストが増大してしまうという課題がある。 However, if such a proxy response function is to be realized by XenLoop, XenLoop receives data in a packet format, so that it is necessary to reconstruct the packet and interpret the message. Therefore, there is a problem that the execution cost and the development cost of the proxy response function increase due to the packet restructuring process that was originally unnecessary.
 一方、XWayで実現する場合はXenLoopに比べてメッセージの解釈が簡単にできるが、プロトコルスタックの中にコードを埋め込むため、OSの改良が必要となり、開発コストが増大してしまうという課題がある。 On the other hand, when implemented with XWay, it is easier to interpret messages than with XenLoop, but since code is embedded in the protocol stack, there is a problem that the OS needs to be improved and the development cost increases.
 また、このようなシステムの運用を考えた場合、代理応答により系全体の可用性を向上させるための作業と、VMマイグレーションなどによりシステムの性能改善を行う作業とが分離されていない問題がある。例えば、VM配置を管理するVMM管理者が、性能改善のために物理マシン1のVMM1に配置されたVM1を物理マシン2にあるVMM2上にマイグレーションさせたいとする。 Also, when considering the operation of such a system, there is a problem that work for improving the availability of the entire system by proxy response and work for improving system performance by VM migration or the like are not separated. For example, assume that a VMM administrator who manages VM placement wants to migrate VM1 placed in VMM1 of physical machine 1 onto VMM2 in physical machine 2 for performance improvement.
 その際、VMM管理者はマイグレーションを開始する前にサービス運用者にVMM1にある他のVM(例えばVM2)からVM1へのアクセスを停止させ、マイグレーション完了後に物理マシン2への通信として再開させる、といった設定の作業が必要になってしまう。これは、VMのマイグレーション時にVMM管理者とサービス運用者の両方の作業が必要になることを意味しており、システムの運用コストの増大に繋がることになる。したがって、可用性の向上と性能改善の作業が分離できることが重要である。 At that time, the VMM administrator stops the access to the VM1 from another VM (for example, VM2) in the VMM1 before starting the migration, and resumes the communication as the communication to the physical machine 2 after the migration is completed. Setting work is required. This means that both VMM administrator and service operator work are required during VM migration, leading to an increase in system operation costs. Therefore, it is important that the work of improving availability and performance can be separated.
 上述の技術の第1の課題は、VMM上のVMを密に連携させるシステムにおいて、VM間通信の高速化とシステムの可用性を向上させる際に、VM上のOSやソケットを利用したアプリケーションを変更しないことである。 The first problem of the above-described technology is that in a system in which VMs on a VMM are closely linked, an application using an OS or socket on the VM is changed when speeding up communication between VMs and improving system availability. Is not to.
 第2の課題は、上記システムにおいて系全体の可用性を高めるために、アプリケーションレベルの柔軟な代理応答が可能であることである。 The second problem is that a flexible proxy response at the application level is possible in order to increase the availability of the entire system in the above system.
 第3の課題は、上記システムにおいて、可用性の向上と性能改善(VMマイグレーション)の作業を独立に実行できることである。 The third problem is that the above-described system can independently perform the work of improving availability and improving performance (VM migration).
 本発明は、上記実情に鑑みて、仮想マシンモニタ上の仮想マシンを密に連携させるシステムにおいて、仮想マシン内のオペレーティングシステムやアプリケーションを変更することなく、代理応答を持つ高速な仮想マシン間通信を実現することを目的とする。 In view of the above circumstances, the present invention provides a high-speed inter-virtual machine communication having a proxy response without changing the operating system or application in the virtual machine in a system that closely links the virtual machines on the virtual machine monitor. It aims to be realized.
 上記目的を達成するために、本発明の仮想マシン間通信装置の一態様は、仮想マシンモニタと、前記仮想マシンモニタ上で実行させ、相互に通信を行う複数の仮想マシンと、を備え、前記複数の仮想マシンのうち少なくとも1つは、ソケットAPI(Application Program Interface)のラッパライブラリを備える。前記ソケットAPIのラッパライブラリは、前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手段と、前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手段と、を有する。 In order to achieve the above object, one aspect of the inter-virtual machine communication device of the present invention includes a virtual machine monitor and a plurality of virtual machines that are executed on the virtual machine monitor and communicate with each other, At least one of the plurality of virtual machines includes a wrapper library of socket API (Application Program Interface). The socket API wrapper library includes a communication channel management unit that manages a communication channel provided by the virtual machine monitor, and a proxy response unit that performs a proxy response of communication between virtual machines using the communication channel. .
 また、本発明に係る仮想マシン間通信方法の一態様は、同一の仮想マシンモニタ上にある複数の仮想マシン間で通信を行う仮想マシン間通信方法であって、前記複数の仮想マシンのうち少なくとも1つが備えるソケットAPIのラッパライブラリは、前記仮想マシンモニタにより提供される通信チャネルを管理し、前記通信チャネルを用いた仮想マシン間通信の代理応答を行うことを特徴とする。 An aspect of the inter-virtual machine communication method according to the present invention is an inter-virtual machine communication method for performing communication between a plurality of virtual machines on the same virtual machine monitor, and includes at least one of the plurality of virtual machines. One wrapper API wrapper library manages a communication channel provided by the virtual machine monitor, and performs a proxy response for communication between virtual machines using the communication channel.
 本発明に係るソケットAPIのラッパライブラリの一態様は、仮想マシンモニタ上で実行される仮想マシンを、前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手段と、前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手段として機能させることを特徴とする。 One aspect of the socket API wrapper library according to the present invention is a communication channel management means for managing a communication channel provided by the virtual machine monitor for a virtual machine executed on the virtual machine monitor, and the communication channel. It is made to function as a proxy response means for performing a proxy response of the used inter-virtual machine communication.
 本発明に係るコンピュータで読み取り可能な記録媒体の一態様は、仮想マシンモニタ上で実行される仮想マシンに、前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手順と、前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手順と、を実行させるプログラムを格納した。 One aspect of the computer-readable recording medium according to the present invention includes a communication channel management procedure for managing a communication channel provided by the virtual machine monitor for a virtual machine executed on the virtual machine monitor, and the communication A program for executing a proxy response procedure for performing a proxy response for communication between virtual machines using a channel is stored.
 本発明によれば、仮想マシンモニタ上の仮想マシンを密に連携させるシステムにおいて、仮想マシン内のオペレーティングシステムやアプリケーションを変更することなく、代理応答を持つ高速な仮想マシン間通信を実現することが可能になる。 According to the present invention, in a system in which virtual machines on a virtual machine monitor are closely linked, high-speed communication between virtual machines having a proxy response can be realized without changing the operating system or application in the virtual machine. It becomes possible.
本発明を実施するための形態を含む全体構成を示すブロック図である。It is a block diagram which shows the whole structure containing the form for implementing this invention. 本発明を実施するための形態の構成を示すブロック図である。It is a block diagram which shows the structure of the form for implementing this invention. 本発明を実施するための形態のVM情報管理テーブルの具体例を示す図である。It is a figure which shows the specific example of the VM information management table of the form for implementing this invention. 本発明を実施するための形態の通信チャネル管理部の通信チャネル管理テーブルの具体例を示す図である。It is a figure which shows the specific example of the communication channel management table of the communication channel management part of the form for implementing this invention. 本発明を実施するための形態の代理応答部の適用ポリシ管理テーブルの具体例を示す図である。It is a figure which shows the specific example of the application policy management table of the proxy response part of the form for implementing this invention. 本発明を実施するための形態の代理応答モジュール群の具体例を示す図である。It is a figure which shows the specific example of the proxy response module group of the form for implementing this invention. 本発明を実施するための形態の動作を示すフローチャート図である。It is a flowchart figure which shows the operation | movement of the form for implementing this invention.
 まず、本実施形態の概要を説明する。
 以下で説明する本実施形態に係るVM間通信方式は、VM情報管理テーブルと通信チャネル管理テーブルを持つ通信チャネル管理部と、適用ポリシ管理テーブルと代理応答モジュール群を持つ代理応答部と、を備えたソケットAPIのラッパライブラリ(以降、「ソケットラッパ」)として実現される。
First, an outline of the present embodiment will be described.
The inter-VM communication method according to the present embodiment described below includes a communication channel management unit having a VM information management table and a communication channel management table, and a proxy response unit having an application policy management table and a proxy response module group. This is implemented as a socket API wrapper library (hereinafter referred to as “socket wrapper”).
 このような構成を採用することで、VM内のOSやアプリケーションを変更することなく、代理応答を持つ高速なVM間通信を実現可能である。さらに、本実施形態に係るシステムでは、ポリシに合致した時点で代理応答が自動的に行われるため、VMM管理者は、サービス運用者に伝えることなくマイグレーションを自由に行える。
 以下、本実施形態について図面を参照しながら詳細に説明する。
By adopting such a configuration, it is possible to realize high-speed communication between VMs having a proxy response without changing the OS or application in the VM. Furthermore, in the system according to the present embodiment, the proxy response is automatically performed when the policy is met, so the VMM administrator can freely perform migration without notifying the service operator.
Hereinafter, the present embodiment will be described in detail with reference to the drawings.
 図1を参照すると、本実施形態はVMM(100)上のVM(201~203)にてアプリケーション(301~303)にリンクされたソケットラッパ(501~503)として実現されている。 Referring to FIG. 1, the present embodiment is realized as socket wrappers (501 to 503) linked to applications (301 to 303) by VMs (201 to 203) on the VMM (100).
 なお、本実施形態は、CPU(Central Processing Unit)やプロセッサ等の演算/処理装置、メモリ等の記憶装置を備えた汎用のコンピュータを利用して、所定の情報処理を行うソフトウェアプログラムによって実現される。また、そのようなソフトウェアプログラム、及び、当該ソフトウェアプログラムを格納したコンピュータ読取可能な記録媒体も本発明を構成する。 Note that the present embodiment is realized by a software program that performs predetermined information processing using a general-purpose computer including an arithmetic / processing device such as a CPU (Central Processing Unit) or a processor, and a storage device such as a memory. . Such a software program and a computer-readable recording medium storing the software program also constitute the present invention.
 各アプリケーションはソケットAPIを通じて他のアプリケーションと通信する。VMM(100)はVM間の通信機構として通信チャネル(701、702)を提供する。例えば、図1において、アプリケーションA(301)がソケットラッパのAPIをコールし、VMM(100)が提供する通信チャネル(701)を介してアプリケーションB(302)と通信する。同様に、アプリケーションB(302)は通信チャネル(702)を介してアプリケーションC(303)と通信する。 Each application communicates with other applications through the socket API. The VMM (100) provides communication channels (701, 702) as a communication mechanism between VMs. For example, in FIG. 1, an application A (301) calls an API of a socket wrapper, and communicates with an application B (302) via a communication channel (701) provided by the VMM (100). Similarly, application B (302) communicates with application C (303) via communication channel (702).
 次に、ソケットラッパ501~503の構成について説明する。図2を参照すると、ソケットラッパ501は、通信チャネル管理部510と代理応答部520を有する。通信チャネル管理部510は、VM情報管理テーブル511と通信チャネル管理テーブル512とを持つ。代理応答部520は、適用ポリシ管理テーブル521と代理応答モジュール群522を持つ。以下、図2に示した各テーブル又はモジュール群について図3ないし図6に具体例を示して説明するが、これらは説明のための一例であって本発明を限定するものではない。 Next, the configuration of the socket wrappers 501 to 503 will be described. Referring to FIG. 2, the socket wrapper 501 includes a communication channel management unit 510 and a proxy response unit 520. The communication channel management unit 510 has a VM information management table 511 and a communication channel management table 512. The proxy response unit 520 has an application policy management table 521 and a proxy response module group 522. Hereinafter, each table or module group shown in FIG. 2 will be described with reference to specific examples in FIG. 3 to FIG. 6, but these are merely examples for description and do not limit the present invention.
 図3にVM情報管理テーブル511の一例を示す。本テーブルでは、送信先VMのIPアドレスと、VM識別子(以下、VM-ID)と、を一組のエントリとして管理する。本テーブルのエントリはVMがマイグレーションにてVMM上に移動が完了した際に追加され、マイグレーションにて他のVMに移動が完了した際に削除される。従って、任意のVM(例えば、送信先VM)が同一のVMM上に存在するか否かを、VM情報管理テーブル511を参照して判定することができる。ここで、同一のVMMとは、任意の物理マシンの一つのVMMを意味する。従って、任意のVMが同一のVMM上に存在するとは、任意のVMと自己のVMとが一つのVMM上に存在することになる。 FIG. 3 shows an example of the VM information management table 511. In this table, the IP address of the destination VM and the VM identifier (hereinafter referred to as VM-ID) are managed as a set of entries. An entry of this table is added when the migration of the VM to the VMM is completed by migration, and is deleted when the migration of another VM is completed by migration. Therefore, it can be determined with reference to the VM information management table 511 whether or not an arbitrary VM (for example, a destination VM) exists on the same VMM. Here, the same VMM means one VMM of an arbitrary physical machine. Therefore, an arbitrary VM exists on the same VMM, an arbitrary VM and its own VM exist on one VMM.
 また、図4に通信チャネル管理テーブル512の一例を示す。本テーブルでは、ソケットディスクリプタ番号と、利用するVMMのチャネル番号、又は、代理応答を行う場合は代理応答のモジュール識別子を示すチャネルIDと、通信相手のVM識別子であるVM-IDと、を一組のエントリとして管理する。なお、モジュール識別子とチャネル番号は重複しない。 FIG. 4 shows an example of the communication channel management table 512. In this table, a set of a socket descriptor number, a channel number of a VMM to be used, or a channel ID indicating a module identifier of a proxy response when proxy response is performed, and a VM-ID which is a VM identifier of a communication partner As an entry. The module identifier and channel number do not overlap.
 また、図5に適用ポリシ管理テーブル521の一例を示す。本テーブルでは、通信相手のVM識別子VM-IDと、代理応答を適用する条件となる上限チャネル数を示す閾値と、利用中のチャネル数を示すカウンタと、実際に代理応答処理を行うモジュール識別子(Module ID)と、を一組のエントリとして管理する。 FIG. 5 shows an example of the applied policy management table 521. In this table, the VM identifier VM-ID of the communication partner, the threshold value indicating the upper limit number of channels that is a condition for applying the proxy response, the counter indicating the number of channels being used, and the module identifier that actually performs proxy response processing ( And (Module ID) are managed as a set of entries.
 また、図6に代理応答モジュール群522の一例を示す。本テーブルでは、モジュール識別子(Module ID)と、そのモジュールが配置されているアドレスと、を一組のエントリとして管理する。代理応答モジュールの設定ではサービスや状況に適した機能を配置することが可能である。 FIG. 6 shows an example of the proxy response module group 522. In this table, a module identifier (Module ID) and an address where the module is arranged are managed as a set of entries. In the setting of the proxy response module, it is possible to arrange functions suitable for services and situations.
 次に、図1,図2,図4,図5及び図7のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。 Next, the overall operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS. 1, 2, 4, 5, and 7.
 まず、アプリケーションA301は通信相手に接続するため、ソケットラッパ501の接続要求API(例えばconnect())を呼び出す(図7のステップS101)。 First, the application A301 calls a connection request API (for example, connect ()) of the socket wrapper 501 in order to connect to a communication partner (step S101 in FIG. 7).
 次に、ソケットラッパ501は通信チャネル管理部510のVM情報管理テーブル511を確認し、送信先IPアドレスをキーに通信相手が同一VMM上に存在するか(VM情報管理テーブル511にエントリが存在するか)を検索する(ステップS102)。 Next, the socket wrapper 501 confirms the VM information management table 511 of the communication channel management unit 510 and determines whether the communication partner exists on the same VMM using the destination IP address as a key (an entry exists in the VM information management table 511). Search) (step S102).
 もし、同一VMM上に存在しない場合、ソケットラッパ501は通常のソケットAPIを呼び出して通信を行う(ステップS103~S104)。 If they do not exist on the same VMM, the socket wrapper 501 performs communication by calling a normal socket API (steps S103 to S104).
 同一VMM上に存在する場合は、ソケットラッパ501はVM情報管理テーブル511からVM-IDを取得し、VM-IDをキーにして代理応答部520の適用ポリシ管理テーブル521を検索する(ステップS105)。 If they exist on the same VMM, the socket wrapper 501 acquires the VM-ID from the VM information management table 511, and searches the application policy management table 521 of the proxy response unit 520 using the VM-ID as a key (step S105). .
 その結果、代理応答の適用条件(図5ならば対応するVM-IDのエントリの「カウンタ>閾値」)が成立していなければ、ソケットラッパ501はVMMの通信チャネルを確保し、通信チャネル管理テーブル512にエントリ(ディスクリプタ番号、チャネルID、VM-ID)を追加して通信処理を開始する(ステップS106、S107)。 As a result, if the proxy response application condition (“counter> threshold” in the corresponding VM-ID entry in FIG. 5) is not satisfied, the socket wrapper 501 secures the communication channel of the VMM, and the communication channel management table. An entry (descriptor number, channel ID, VM-ID) is added to 512 and communication processing is started (steps S106 and S107).
 もし、代理応答の適用条件が成立していれば、ソケットラッパ501は適用ポリシ管理テーブル521に指定された代理応答モジュール(Module ID)を取得し、通信チャネル管理テーブル512のエントリ(ディスクリプタ番号、Module ID、VM-ID)を追加して代理応答処理を開始する(ステップS106、S108)。 If the proxy response application condition is satisfied, the socket wrapper 501 acquires the proxy response module (Module ID) specified in the application policy management table 521, and the entry (descriptor number, Module) in the communication channel management table 512. (ID, VM-ID) is added and proxy response processing is started (steps S106 and S108).
 次に、本実施形態におけるVMマイグレーション時の処理について説明する。 Next, processing at the time of VM migration in this embodiment will be described.
 今、VM1、VM2、VM3が連携したシステムで、VM2がマイグレーションにて別の物理マシン上のVMMへ移動を開始したとする。すると、VM2への接続が不可能となるため、VM1、VM3のソケットラッパでは代理応答の適用条件に合致した段階で代理応答処理が開始される。 Now, it is assumed that VM2 starts moving to a VMM on another physical machine by migration in a system in which VM1, VM2, and VM3 are linked. Then, since connection to VM2 becomes impossible, the proxy response process is started at the stage where the proxy response application conditions are met in the socket wrappers of VM1 and VM3.
 VM2(202)の移動が完了すると、VMM100からマイグレーション完了イベントを受け取った通信チャネル管理部510はVM情報管理テーブル511のエントリを削除する。また、同時に通信チャネル管理テーブル512と適用ポリシ管理テーブル521にあるVM2に対応するエントリを削除する。これにより、VM1、VM3からVM2への接続要求は通常のソケットAPIを利用したアクセスに切り替わる(図7のステップS103,S104のフロー参照)。 When the migration of the VM2 (202) is completed, the communication channel management unit 510 that has received the migration completion event from the VMM 100 deletes the entry in the VM information management table 511. At the same time, the entry corresponding to VM2 in the communication channel management table 512 and the applied policy management table 521 is deleted. Thereby, the connection request from VM1, VM3 to VM2 is switched to the access using the normal socket API (refer to the flow of steps S103 and S104 in FIG. 7).
 一方、マイグレーションにより同一VMM上にVM4が追加された場合、VMMからマイグレーション完了イベントを受け取った通信チャネル管理部510はVM情報管理テーブル511にVM4の情報をエントリとして追加する。 On the other hand, when VM4 is added to the same VMM by migration, the communication channel management unit 510 that has received the migration completion event from the VMM adds the information of VM4 as an entry to the VM information management table 511.
 次に、本実施の形態の効果について説明する。 Next, the effect of this embodiment will be described.
 第1の効果は、VM間通信の高速化とシステムの可用性を向上させる際に、VM上のOSやソケットを利用したアプリケーションを変更しない点である。その理由は、本発明がソケットAPIのラッパとして実現されているためである。 The first effect is that the application using the OS and socket on the VM is not changed when speeding up communication between VMs and improving system availability. The reason is that the present invention is implemented as a wrapper for the socket API.
 第2の効果は、あるVMがマイグレーション等で応答できない場合のシステムの可用性を高めた点である。その理由は、本発明がアプリケーションレベルの柔軟な対応が可能な代理応答の機構を備えており、アプリケーションによるリソースの解放を促すためである。その結果、他のVMやシステム全体への影響を最小限に抑えられる。 The second effect is that the availability of the system is increased when a certain VM cannot respond due to migration or the like. The reason is that the present invention includes a proxy response mechanism that can flexibly cope with an application level, and prompts the application to release resources. As a result, the influence on other VMs and the entire system can be minimized.
 第3の効果は、システムの可用性の向上とVMマイグレーションによる性能改善の作業を独立に実行できる点である。その理由は、本発明がVM間通信機構の中に代理応答機能を持っているため、マイグレーション時の代理応答をシステムが自動的に行ってくれるためである。したがって、VMM管理者はサービス構築者に連絡することなくVMのマイグレーションを自由に行える。 The third effect is that work for improving system availability and performance improvement by VM migration can be performed independently. This is because the system automatically performs a proxy response at the time of migration because the present invention has a proxy response function in the inter-VM communication mechanism. Therefore, the VMM administrator can freely migrate the VM without contacting the service builder.
 以上、本発明の各実施形態について説明したが、上記各実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。 As mentioned above, although each embodiment of this invention was described, it is not limited to said each embodiment, A various deformation | transformation is possible in the range which does not deviate from the summary.
 例えば、上述した実施形態における動作(フローチャートに示す動作)は、ハードウェア、又は、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。 For example, the operation (the operation shown in the flowchart) in the above-described embodiment can be executed by hardware, software, or a combined configuration of both.
 ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させてもよい。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させてもよい。 When executing processing by software, a program in which a processing sequence is recorded may be installed and executed in a memory in a computer incorporated in dedicated hardware. Or you may install and run a program in the general purpose computer which can perform various processes.
 例えば、プログラムは、記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことが可能である。あるいは、プログラムは、CD-ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納(記録)しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。 For example, the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a CD-ROM (Compact Disc Only Memory), MO (Magneto Optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.
 なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送してもよい。または、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送してもよい。コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。 Note that the program may be installed on the computer from the removable recording medium as described above, or may be wirelessly transferred from the download site to the computer. Or you may wire-transfer to a computer via networks, such as LAN (Local Area Network) and the internet. The computer can receive the transferred program and install it on a recording medium such as a built-in hard disk.
 また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。 In addition to being executed in time series in accordance with the processing operations described in the above embodiment, the processing capability of the apparatus that executes the processing, or a configuration to execute in parallel or individually as necessary Is also possible.
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 The present invention has been described above with reference to the embodiment, but the present invention is not limited to the above. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the invention.
 この出願は、2008年12月2日に出願された日本出願特願2008-307248を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2008-307248 filed on Dec. 2, 2008, the entire disclosure of which is incorporated herein.
 本発明は、VMM上でソケットを利用してVM間通信を行うシステムに適用できる。より具体的には、Webサービスを提供するVMを連携させるシステムに適用できる。また、他にもソケットを利用しているならば、アプリケーションプロトコル(例えば、HTTP、SMTP、POP、FTP、SIP、DNS、Telnetなど)にて通信するサービスへの適用も可能である。 The present invention can be applied to a system that performs communication between VMs using a socket on a VMM. More specifically, the present invention can be applied to a system that links VMs that provide Web services. In addition, if a socket is used, it can be applied to a service that communicates using an application protocol (for example, HTTP, SMTP, POP, FTP, SIP, DNS, Telnet, etc.).
 100  仮想マシンモニタ(VMM)
 201~203  仮想マシン(VM)1~3
 301~303  アプリケーションA~C
 401~403  オペレーティングシステム(OS)A~C
 501~503  ソケットラッパ
 701、702  VMM内通信チャネル
 510  通信チャネル管理部
 511  VM情報管理テーブル
 512  通信チャネル管理テーブル
 520  代理応答部
 521  適用ポリシ管理テーブル
 522  代理応答モジュール群
100 Virtual Machine Monitor (VMM)
201 to 203 Virtual machines (VM) 1 to 3
301 to 303 Applications A to C
401 to 403 Operating System (OS) A to C
501 to 503 Socket wrapper 701, 702 Communication channel in VMM 510 Communication channel management unit 511 VM information management table 512 Communication channel management table 520 Proxy response unit 521 Applicable policy management table 522 Proxy response module group

Claims (9)

  1.  仮想マシンモニタと、
     前記仮想マシンモニタ上で実行させ、相互に通信を行う複数の仮想マシンと、を備え、
     前記複数の仮想マシンのうち少なくとも1つは、ソケットAPI(Application Program Interface)のラッパライブラリを備え、
     前記ソケットAPIのラッパライブラリは、
     前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手段と、
     前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手段と、を有する仮想マシン間通信装置。
    A virtual machine monitor,
    A plurality of virtual machines that are executed on the virtual machine monitor and communicate with each other;
    At least one of the plurality of virtual machines includes a wrapper library of socket API (Application Program Interface),
    The socket API wrapper library is
    Communication channel management means for managing a communication channel provided by the virtual machine monitor;
    A proxy response unit configured to perform a proxy response for communication between virtual machines using the communication channel.
  2.  前記通信チャネル管理手段は、ソケットディスクリプタに、通信先の仮想マシンと、通信チャネル又は代理応答モジュールと、を関連付けたエントリを管理する通信チャネル管理テーブルを具備し、
     前記複数の仮想マシン間の通信の際に、前記通信チャネル管理テーブルを参照し、前記代理応答モジュールが関連付けられている場合に、前記代理応答手段に代理応答を行わせることを特徴とする、請求項1記載の仮想マシン間通信装置。
    The communication channel management means includes a communication channel management table for managing an entry in which a communication destination virtual machine and a communication channel or a proxy response module are associated with a socket descriptor.
    The communication channel management table is referred to during communication between the plurality of virtual machines, and when the proxy response module is associated, the proxy response unit performs a proxy response. Item 2. The virtual machine communication device according to Item 1.
  3.  前記通信チャネル管理手段は、仮想マシンのマイグレーションの際に、
     前記マイグレーションが、前記仮想マシンを前記仮想マシンモニタ上から削除するものである場合に、前記通信チャネル管理テーブルから前記仮想マシンに関連するエントリを削除し、
     前記マイグレーションが、前記仮想マシンを前記仮想マシンモニタ上に追加するものである場合に、前記通信チャネル管理テーブルへ前記仮想マシンに関連するエントリを追加することを特徴とする、請求項2記載の仮想マシン間通信装置。
    The communication channel management means, when migrating a virtual machine,
    If the migration is to delete the virtual machine from the virtual machine monitor, delete the entry related to the virtual machine from the communication channel management table;
    The virtual machine according to claim 2, wherein, when the migration is to add the virtual machine on the virtual machine monitor, an entry related to the virtual machine is added to the communication channel management table. Inter-machine communication device.
  4.  前記代理応答手段は、仮想マシン間通信で代理応答を適用するか否かを判断する基準となる適用ポリシを管理する適用ポリシ管理テーブルを具備し、
     前記ソケットAPIのラッパライブラリは、前記通信チャネルを用いた通信を行う際に、前記適用ポリシ管理テーブルの情報に基づいて、代理応答を適用するか否かを判断し、適用すると判断した場合、代理応答を実行する代理応答モジュールに代理応答を実行させ、適用しないと判断した場合、前記通信チャネルを用いて通信を行うことを特徴とする、請求項1から3のいずれか1項記載の仮想マシン間通信装置。
    The proxy response means includes an application policy management table that manages an application policy serving as a reference for determining whether to apply a proxy response in communication between virtual machines.
    When performing communication using the communication channel, the socket API wrapper library determines whether to apply a proxy response based on information in the applied policy management table. The virtual machine according to any one of claims 1 to 3, wherein when a proxy response module that executes a response executes a proxy response and determines that the response is not applied, communication is performed using the communication channel. Intercommunication device.
  5.  前記適用ポリシ管理テーブルは、通信チャネルの上限数と利用中の通信チャネル数を仮想マシン毎に関連付けて格納し、
     前記代理応答を適用するか否かの判断は、前記適用ポリシ管理テーブルに仮想マシン毎に格納されている前記通信チャネルの上限数と前記利用中の通信チャネル数とを比較した結果に基づき行われるものであることを特徴とする、請求項4記載の仮想マシン間通信装置。
    The applied policy management table stores the upper limit number of communication channels and the number of communication channels in use in association with each virtual machine,
    The determination as to whether or not to apply the proxy response is made based on a result of comparing the upper limit number of communication channels stored in the application policy management table for each virtual machine with the number of communication channels in use. 5. The inter-virtual machine communication device according to claim 4, wherein the communication device is a virtual machine.
  6.  同一の仮想マシンモニタ上にある複数の仮想マシン間で通信を行う仮想マシン間通信方法であって、
     前記複数の仮想マシンのうち少なくとも1つが備えるソケットAPIのラッパライブラリは、
     前記仮想マシンモニタにより提供される通信チャネルを管理し、
     前記通信チャネルを用いた仮想マシン間通信の代理応答を行う仮想マシン間通信方法。
    A communication method between virtual machines for performing communication between a plurality of virtual machines on the same virtual machine monitor,
    A socket API wrapper library included in at least one of the plurality of virtual machines includes:
    Manage communication channels provided by the virtual machine monitor;
    An inter-virtual machine communication method for performing a proxy response for inter-virtual machine communication using the communication channel.
  7.  前記通信チャネルの管理は、
     仮想マシン間通信の際に、ソケットディスクリプタに、通信先の仮想マシンと、通信チャネル又は代理応答モジュールと、を関連付けた通信チャネル管理テーブルを参照し、
     前記代理応答は、
     前記通信チャネル管理テーブルの参照の結果、前記代理応答モジュールが関連付けられている場合に、行うことを特徴とする、請求項6記載の仮想マシン間通信方法。
    The management of the communication channel is as follows:
    When communicating between virtual machines, refer to the communication channel management table that associates the communication destination virtual machine with the communication channel or proxy response module in the socket descriptor,
    The proxy response is
    The inter-virtual machine communication method according to claim 6, which is performed when the proxy response module is associated as a result of referring to the communication channel management table.
  8.  仮想マシンモニタ上で実行される仮想マシンを、
     前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手段と、
     前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手段として機能させることを特徴とする、ソケットAPIのラッパライブラリ。
    A virtual machine running on the virtual machine monitor
    Communication channel management means for managing a communication channel provided by the virtual machine monitor;
    A socket API wrapper library, which functions as a proxy response means for performing a proxy response for communication between virtual machines using the communication channel.
  9.  仮想マシンモニタ上で実行される仮想マシンに、
     前記仮想マシンモニタにより提供される通信チャネルの管理を行う通信チャネル管理手順と、
     前記通信チャネルを用いた仮想マシン間通信の代理応答を行う代理応答手順と、を実行させるプログラムを格納した、コンピュータで読み取り可能な記録媒体。
    To a virtual machine running on the virtual machine monitor,
    A communication channel management procedure for managing a communication channel provided by the virtual machine monitor;
    A computer-readable recording medium storing a program for executing a proxy response procedure for performing a proxy response for communication between virtual machines using the communication channel.
PCT/JP2009/006516 2008-12-02 2009-12-01 Device and method for communicating between virtual machines, socket api wrapper library, and storage medium WO2010064411A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010541225A JPWO2010064411A1 (en) 2008-12-02 2009-12-01 Virtual machine communication apparatus, method, socket API wrapper library, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008307248 2008-12-02
JP2008-307248 2008-12-02

Publications (1)

Publication Number Publication Date
WO2010064411A1 true WO2010064411A1 (en) 2010-06-10

Family

ID=42233069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/006516 WO2010064411A1 (en) 2008-12-02 2009-12-01 Device and method for communicating between virtual machines, socket api wrapper library, and storage medium

Country Status (2)

Country Link
JP (1) JPWO2010064411A1 (en)
WO (1) WO2010064411A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101412706B1 (en) * 2012-05-15 2014-06-30 엠디에스테크놀로지 주식회사 System for controlling communication of applications of m2m device and method therefor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031203A (en) * 2004-07-14 2006-02-02 Xanavi Informatics Corp On-vehicle information terminal

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031203A (en) * 2004-07-14 2006-02-02 Xanavi Informatics Corp On-vehicle information terminal

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
J. WANG ET AL.: "XenLoop: A Transparent High Performance Inter-VM Network Loopback", PROCEEDINGS OF THE 17TH INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE DISTRIBUTED COMPUTING (HPDC'08), 23 June 2008 (2008-06-23), pages 109 - 118 *
K. KIM ET AL.: "Inter-domain Socket Communications Supporting High Performance and Full Binary Compatibility on Xen", PROCEEDINGS OF THE 4TH ACM SIGPLAN/SIGOPS INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS (VEE'08),, 5 March 2008 (2008-03-05), pages 11 - 20 *
MASAKI TATEZONO ET AL.: "Kaso Keisanki o Mochiita Grid Jo deno MPI Jikko Kankyo", SYMPOSIUM ON ADVANCED COMPUTING SYSTEMS AND INFRASTRUCTURES SACSIS2006 RONBUNSHU, vol. 2006, no. 5, 22 May 2006 (2006-05-22), pages 525 - 532 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101412706B1 (en) * 2012-05-15 2014-06-30 엠디에스테크놀로지 주식회사 System for controlling communication of applications of m2m device and method therefor

Also Published As

Publication number Publication date
JPWO2010064411A1 (en) 2012-05-10

Similar Documents

Publication Publication Date Title
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
US10044572B1 (en) Dynamic addition of network function services
KR100938521B1 (en) Method, apparatus and system for enabling a secure location-aware platform
KR102059251B1 (en) Node system, server device, scaling control method and program
EP1571805B1 (en) Protocol stack with modification facility
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
JP5500270B2 (en) Profile processing program, data relay apparatus, and profile control method
JP5920668B2 (en) Security policy enforcement system and security policy enforcement method
JP5293580B2 (en) Web service system, web service method and program
JP5760647B2 (en) Virtual routing method and virtual routing system in virtual environment
WO2020001442A1 (en) Data processing method and related device
US11457043B2 (en) Enforcing micro-segmentation policies for physical and virtual application components in data centers
US8862714B2 (en) Apparatus and method for virtualizing of network device
JP7251648B2 (en) In-server delay control system, in-server delay control device, in-server delay control method and program
EP3716112B1 (en) Behavioral detection of malicious scripts
JP2007193786A (en) Network architecture for network protocol stack isolation, method, and computer program (network protocol stack isolation)
WO2010064411A1 (en) Device and method for communicating between virtual machines, socket api wrapper library, and storage medium
JP2006277204A (en) Portable communication terminal device
US11571618B1 (en) Multi-region game server fleets
US11307912B1 (en) Forward message compatibility safety in producer-consumer systems
US10133496B1 (en) Bindable state maintaining components
US11442943B1 (en) Error-causing record isolation for data stream processing
JP2012203421A (en) Information processing method, management server and management program
KR101947689B1 (en) Method and apparatus for cloud service
US11842223B2 (en) Edge artificial intelligence (AI) computing in a telecommunications network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09830181

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2010541225

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09830181

Country of ref document: EP

Kind code of ref document: A1