[go: nahoru, domu]

JP6548010B2 - Para-virtualized network device, information processing apparatus, information processing method, and information processing program - Google Patents

Para-virtualized network device, information processing apparatus, information processing method, and information processing program Download PDF

Info

Publication number
JP6548010B2
JP6548010B2 JP2015121268A JP2015121268A JP6548010B2 JP 6548010 B2 JP6548010 B2 JP 6548010B2 JP 2015121268 A JP2015121268 A JP 2015121268A JP 2015121268 A JP2015121268 A JP 2015121268A JP 6548010 B2 JP6548010 B2 JP 6548010B2
Authority
JP
Japan
Prior art keywords
driver
virtual machine
virtio
operating system
interface
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.)
Active
Application number
JP2015121268A
Other languages
Japanese (ja)
Other versions
JP2017010070A (en
Inventor
裕志 島本
裕志 島本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015121268A priority Critical patent/JP6548010B2/en
Publication of JP2017010070A publication Critical patent/JP2017010070A/en
Application granted granted Critical
Publication of JP6548010B2 publication Critical patent/JP6548010B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Description

本発明は、準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラムに関する。   The present invention relates to a paravirtualized network device, an information processing apparatus, an information processing method, and an information processing program.

上記技術分野において、特許文献1には、仮想制御プログラムが、仮想ネットワークデバイスを提供することが開示されている。また、仮想デバイスドライバと物理デバイスドライバとを介してデータ流通が行われるように、仮想制御プログラムが、仮想デバイスドライバと物理デバイスドライバとを接続させる技術が開示されている。   In the above technical field, Patent Document 1 discloses that a virtual control program provides a virtual network device. Further, a technology is disclosed in which a virtual control program connects a virtual device driver and a physical device driver such that data distribution is performed via the virtual device driver and the physical device driver.

特開2012−93917号公報JP 2012-93917 A

しかしながら、上記文献に記載の技術では、ゲストオペレーティングシステム上のデバイスドライバに対して準仮想化ネットワークデバイスが対応できなかったので、デバイスドライバに適応しない準仮想化ネットワークデバイスを使用できなかった。   However, in the technology described in the above document, since the paravirtualized network device can not cope with the device driver on the guest operating system, the paravirtualized network device not adapted to the device driver can not be used.

本発明の目的は、上述の課題を解決する技術を提供することにある。   An object of the present invention is to provide a technique for solving the above-mentioned problems.

上記目的を達成するため、本発明に係る準仮想化ネットワークデバイスは、
ゲストオペレーティングシステムの上で動作するアプリケーションが用いるデバイスドライバに応じて前記デバイスドライバとのインタフェースを初期化する初期化手段を備え
前記初期化手段は、前記デバイスドライバがポールモードドライバの場合、前記インタフェースを前記ポールモードドライバに適応したインタフェースとして初期化し、前記デバイスドライバがvirtioドライバの場合、前記インタフェースを前記virtioドライバに適応したインタフェースとして初期化する
In order to achieve the above object, a paravirtualized network device according to the present invention is:
According to a device driver used by an application operating on a guest operating system, the computer comprises an initialization means for initializing an interface with the device driver ,
The initialization unit initializes the interface as an interface adapted to the poll mode driver when the device driver is a poll mode driver, and an interface adapts the interface to the virtio driver when the device driver is a virtio driver Initialize as .

上記目的を達成するため、本発明に係る情報処理装置は、
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置であって、
前記ホストオペレーティングシステム上で動作し、前記仮想マシンを形成するプロセッサエミュレータと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化手段を備えた準仮想化ネットワークデバイスと、
を備え、
前記仮想マシンは、virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンと、ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとを備えた。
In order to achieve the above object, an information processing apparatus according to the present invention is
The information processing apparatus having a virtual machine that runs on the host operating system and the guest operating system running on the virtual machine,
A processor emulator running on the host operating system to form the virtual machine;
A paravirtualized network device comprising an initialization means for initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
Equipped with
The virtual machine comprises a first virtual machine with a normal application using a virtio driver and a second virtual machine with a high speed packet communication application using a poll mode driver.

上記目的を達成するため、本発明に係る情報処理装置の制御方法は、
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置の制御方法であって、
前記ホストオペレーティングシステム上で動作するプロセッサエミュレータが、前記仮想マシンを形成する仮想マシン形成ステップと、
準仮想化ネットワークデバイスの初期化手段が、前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化ステップと、
を含み、
前記初期化ステップにおいてvirtioドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンとして動作し、前記初期化ステップにおいてポールモードドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとして動作する。
In order to achieve the above object, a control method of an information processing apparatus according to the present invention is:
And virtual machines running on the host operating system, a method of controlling an information processing apparatus having a guest operating system running on the virtual machine,
A virtual machine creation step in which a processor emulator operating on the host operating system forms the virtual machine;
An initialization step of initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
Including
When the interface with the virtio driver is initialized in the initialization step, the formed virtual machine operates as a first virtual machine having a normal application using the virtio driver, and in the initialization step, the poll mode driver When the interface with is initialized, the formed virtual machine operates as a second virtual machine equipped with a high speed packet communication application using the poll mode driver.

上記目的を達成するため、本発明に係る情報処理装置の制御プログラムは、
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置の制御プログラムであって、
前記ホストオペレーティングシステム上で動作するプロセッサエミュレータが、前記仮想マシンを形成する仮想マシン形成ステップと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化ステップと、
をコンピュータに実行させ、
前記初期化ステップにおいてvirtioドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンとして動作し、前記初期化ステップにおいてポールモードドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとして動作するようコンピュータに実行させる。
In order to achieve the above object, a control program of an information processing apparatus according to the present invention is:
And virtual machines running on the host operating system, a control program of an information processing apparatus and a guest operating system running on the virtual machine,
A virtual machine creation step in which a processor emulator operating on the host operating system forms the virtual machine;
An initialization step of initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
On your computer,
When the interface with the virtio driver is initialized in the initialization step, the formed virtual machine operates as a first virtual machine having a normal application using the virtio driver, and in the initialization step, the poll mode driver And causing the computer to operate as a second virtual machine with a high speed packet communication application using the poll mode driver.

本発明によれば、ゲストオペレーティングシステム上のデバイスドライバに対して準仮想化ネットワークデバイスが対応できるので、デバイスドライバに適応しない準仮想化ネットワークデバイスを使用することができる。   According to the present invention, since the paravirtualized network device can correspond to the device driver on the guest operating system, the paravirtualized network device not adapted to the device driver can be used.

本発明の第1実施形態に係る準仮想化ネットワークデバイスの構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of the paravirtualized network device which concerns on 1st Embodiment of this invention. 本発明の第1実施形態に係る準仮想化ネットワークデバイスの初期化処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the initialization process procedure of the paravirtualized network device which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。It is a block diagram for demonstrating the function structure of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。It is a block diagram for demonstrating the function structure of the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係るvirtioデバイスの要部構成を説明するための図である。It is a figure for demonstrating the principal part structure of the virtio device which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態におけるvirtioドライバ接続時のvirtioデバイスの動作を説明するための図である。It is a figure for demonstrating the operation | movement of the virtio device at the time of the virtio driver connection in 3rd Embodiment of this invention. 本発明の第3実施形態におけるポールモードドライバ接続時のvirtioデバイスの動作を説明するための図である。It is a figure for demonstrating the operation | movement of the virtio device at the time of pole mode driver connection in 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置におけるvirtioデバイスの初期化処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the initialization process procedure of the virtio device in the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置における通常アプリケーションのパケット受信処理手順を説明するための図である。It is a figure for demonstrating the packet reception processing procedure of the normal application in the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置における通常アプリケーションのパケット送信処理手順を説明するための図である。It is a figure for demonstrating the packet transmission processing procedure of the normal application in the information processing apparatus which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る情報処理装置における高速パケット通信アプリケーションのパケット送受信処理手順を説明するための図である。It is a figure for demonstrating the packet transmission / reception processing procedure of the high-speed packet communication application in the information processing apparatus which concerns on 3rd Embodiment of this invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。   Hereinafter, embodiments of the present invention will be exemplarily described in detail with reference to the drawings. However, the component described in the following embodiment is an illustration to the last, and it is not a thing of the meaning which limits the technical scope of this invention only to them.

[第1実施形態]
本発明の第1実施形態としての準仮想化ネットワークデバイスについて、図1を参照して説明する。準仮想化ネットワークデバイス100は、初期化部101を備えている。
First Embodiment
A paravirtualized network device as a first embodiment of the present invention will be described with reference to FIG. The paravirtualized network device 100 includes an initialization unit 101.

初期化部101は、仮想マシン上で動作するゲストオペレーティングシステムの上で動作するアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。   The initialization unit 101 initializes the interface of the paravirtualized network device 100 to operate as a device adapted to the type of device driver of an application operating on a guest operating system operating on a virtual machine.

次に、準仮想化ネットワークデバイス100の初期化処理手順について図2を参照して説明する。   Next, the initialization processing procedure of the paravirtualized network device 100 will be described with reference to FIG.

準仮想化ネットワークデバイス100の初期化部101は、ステップS201において、ゲストオペレーティングシステムからデバイスドライバの種類の通知を受ける。次いで、ステップS203において、初期化部101は、デバイスドライバの種類に応じて準仮想化ネットワークデバイス100のインタフェースを初期化して動作させる。   In step S201, the initialization unit 101 of the paravirtualized network device 100 receives notification of the type of device driver from the guest operating system. Next, in step S203, the initialization unit 101 initializes and operates the interface of the paravirtualized network device 100 according to the type of device driver.

本実施形態によれば、初期化部101はアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。   According to the present embodiment, the initialization unit 101 initializes the interface of the paravirtualized network device 100 so as to operate as a device adapted to the type of device driver included in the application.

したがって、ゲストオペレーティングシステムに備わるデバイスドライバに適応したデバイスとして準仮想化ネットワークデバイス100を使用することができる。   Therefore, the paravirtualized network device 100 can be used as a device adapted to the device driver provided in the guest operating system.

[第2実施形態]
本発明の第2実施形態としての情報処理装置300について、図3を参照して説明する。情報処理装置300は、ハードウェア301を備えている。さらに、ハードウェア301上にはホストオペレーティングシステム302が動作し、ホストオペレーティングシステム302上には仮想スイッチ321と仮想マシン303が動作している。
Second Embodiment
An information processing apparatus 300 according to a second embodiment of the present invention will be described with reference to FIG. The information processing apparatus 300 includes hardware 301. Further, the host operating system 302 operates on the hardware 301, and the virtual switch 321 and the virtual machine 303 operate on the host operating system 302.

仮想スイッチ321は、ハードウェア301に物理的ネットワークカードが接続された場合、この物理的ネットワークカードを通してネットワーク通信が可能である。   The virtual switch 321 can perform network communication through the physical network card when the physical network card is connected to the hardware 301.

仮想マシン303は、仮想スイッチ321と接続するプロセッサエミュレータ331と、準仮想化ネットワークデバイス332とを備えている。   The virtual machine 303 includes a processor emulator 331 connected to the virtual switch 321 and a paravirtualized network device 332.

さらに、仮想マシン303上には、ゲストオペレーティングシステム304が動作し、ゲストオペレーティングシステム304上にはデバイスドライバ351を有するアプリケーション305が動作している。   Furthermore, on the virtual machine 303, a guest operating system 304 operates, and on the guest operating system 304, an application 305 having a device driver 351 operates.

また、準仮想化ネットワークデバイス332は、プロセッサエミュレータ331によって提供されたものであり、初期化部333を備えている。   In addition, the paravirtualized network device 332 is provided by the processor emulator 331, and includes an initialization unit 333.

初期化部333は、ゲストオペレーティングシステム304上で動作するアプリケーション305が有するデバイスドライバ351の種類に関してゲストオペレーティングシステム304から通知を受ける。そして、このデバイスドライバ351に適応したデバイスとして動作するように準仮想化ネットワークデバイス332のインタフェースを初期化する。これにより、準仮想化ネットワークデバイス332は、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして動作する。   The initialization unit 333 receives notification from the guest operating system 304 regarding the type of device driver 351 possessed by the application 305 operating on the guest operating system 304. Then, the interface of the paravirtualized network device 332 is initialized to operate as a device adapted to the device driver 351. Thus, the paravirtualized network device 332 operates as a device adapted to the device driver 351 that the application 305 has.

本実施形態によれば、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして準仮想化ネットワークデバイス332を使用することができる。   According to the present embodiment, the paravirtualized network device 332 can be used as a device adapted to the device driver 351 of the application 305.

したがって、アプリケーション305は、ゲストオペレーティングシステム304と仮想マシン303とを通してホストオペレーティングシステム302上の仮想スイッチ321の動作制御を行なうことができる。   Thus, the application 305 can control the operation of the virtual switch 321 on the host operating system 302 through the guest operating system 304 and the virtual machine 303.

なお、ホストオペレーティングシステム302上に2つ以上の仮想マシンが存在する場合は、それぞれの仮想マシンの準仮想化ネットワークデバイスを用いて、異なる仮想マシン上のアプリケーション間の通信を行なうことも可能である。   When two or more virtual machines exist on the host operating system 302, it is possible to communicate between applications on different virtual machines using paravirtualized network devices of the respective virtual machines. .

[第3実施形態]
次に本発明の第3実施形態に係る情報処理装置について、図4乃至図8を用いて説明する。
Third Embodiment
Next, an information processing apparatus according to a third embodiment of the present invention will be described using FIGS. 4 to 8.

《前提技術》
SDN(Software-Defined Networking)と呼ばれるソフトウェアでネットワークを制御する技術が注目されている。さらに、NFV(Network Function Virtualization)と呼ばれるネットワーク機能を仮想化して、サービスの柔軟性を上げる技術が注目されている。汎用サーバを利用して、特定用途向けハードウェアを減らし、構成を簡略化して運用を容易にすることができる。これらの要素技術として仮想化が利用される。
Prerequisite technology
A technology for controlling a network with software called SDN (Software-Defined Networking) has attracted attention. Furthermore, a technology that virtualizes a network function called NFV (Network Function Virtualization) to increase the flexibility of services is attracting attention. A general purpose server can be used to reduce application-specific hardware, simplify the configuration and facilitate operation. Virtualization is used as these elemental technologies.

サーバの仮想化においてKVM/qemu(Kernel-based Virtual Machine/qemu)に代表される仮想マシンモニタが、入出力機器のエミュレーションを行っている。仮想化におけるネットワークカードの標準的なエミュレーションデバイスとしてvirtioデバイスが存在する。virtioデバイスは仮想マシンで動作するゲストオペレーティングシステムにとって、一般的なPCI(Peripheral Component Interconnect)デバイスに見える。このため、ゲストオペレーティングシステムとして使用される多くのオペレーティングシステムがvirtioデバイスのデバイスドライバを提供している。   A virtual machine monitor represented by KVM / qemu (Kernel-based Virtual Machine / qemu) in server virtualization performs emulation of input / output devices. The virtio device exists as a standard emulation device of a network card in virtualization. The virtio device appears to a guest operating system operating in a virtual machine as a general peripheral component interconnect (PCI) device. For this reason, many operating systems used as guest operating systems provide device drivers for virtio devices.

サーバの仮想化がデータセンタなどで一般化していくなかで、ファイアウォールやDPI(Deep Packet Inspection)のような大量のパケットを扱うネットワークサービスにおいて、高速なパケット通信が求められている。   As server virtualization is becoming more common in data centers and the like, high-speed packet communication is required for network services that handle a large number of packets such as firewalls and DPI (Deep Packet Inspection).

ネットワークのパケット通信性能はサーバ仮想化において大きな課題となっている。PCIパススルーあるいはSR−IOV(Single Root I/O Virtualization)パススルー技術などを用いて物理デバイスをゲストオペレーティングシステムに直接扱わせることで、物理環境とほぼ同等の性能を得ることができる。しかし、仮想化を用いたメリットである柔軟性が失われてしまう。   The packet communication performance of the network has become a major issue in server virtualization. By causing a physical device to be directly handled by a guest operating system using PCI pass-through or SR-IOV (Single Root I / O Virtualization) pass-through technology or the like, it is possible to obtain performance substantially equivalent to that of a physical environment. However, the flexibility of using virtualization is lost.

一方、汎用サーバにおいて高速にパケット通信を行うためのアプリケーションを作成する開発キットであるDPDK(Data Plane Development Kit)が注目されている。   On the other hand, DPDK (Data Plane Development Kit), which is a development kit for creating an application for performing packet communication at high speed in a general-purpose server, has attracted attention.

DPDKではポールモードドライバと呼ばれる機構を利用して、デバイスアクセスのレイテンシ(latency)を削減し、高速パケット通信を実現している。このため、高速なパケット通信アプリケーションはDPDKを利用して作成されるようになってきている。また、仮想化技術を用いたサービス柔軟性と運用の簡易化が進む中、DPDKを用いる高速パケット通信アプリケーションの適用が求められている。   DPDK uses a mechanism called poll mode driver to reduce device access latency and realize high-speed packet communication. For this reason, high-speed packet communication applications are being created using DPDK. Also, with the progress of service flexibility and operation simplification using virtualization technology, application of high-speed packet communication application using DPDK is required.

ゲストオペレーティングシステムでDPDKを利用して、ネットワークのパケット通信性能を確保しようとした場合、virtioデバイスでは高速なパケット通信を行うことが困難となっている。すなわち、virtioデバイスは一般的なPCIデバイスをエミュレーションしている。このため、ドライバからのデバイスアクセスの際に、ホストオペレーティングシステムによるエミュレーションが入ることで、オーバヘッド(間接的あるいは付加的な処理の大きさ)が大きくなり、高速なパケット通信を行うことが困難となっている。   When trying to secure the packet communication performance of the network using DPDK in the guest operating system, it is difficult for the virtio device to perform high-speed packet communication. That is, the virtio device emulates a general PCI device. For this reason, when the device access from the driver is performed, the emulation by the host operating system is included, the overhead (the size of indirect or additional processing) becomes large, and it becomes difficult to perform high-speed packet communication. ing.

高速なパケット通信を実現するため、DPDKのポールモードドライバの動作に合わせた特殊なデバイスを仮想マシンに実装する案もある。しかし、このような特殊なデバイスは、そのデバイス専用のドライバをもったゲストオペレーティングシステムのみがアクセスできるものとなり、一般的なサーバアプリケーションで利用されるゲストオペレーティングシステムにとっては使えないデバイスとなる。そのため、デプロイ(deploy)するサービスのアプリケーションにおけるゲストオペレーティングシステムに合わせて仮想マシンの種別を変更することが必要となり、管理が煩雑となる。   In order to realize high-speed packet communication, there is also a proposal to implement a special device in a virtual machine in accordance with the operation of the DPDK poll mode driver. However, such a special device can be accessed only by a guest operating system having a driver dedicated to that device, and can not be used by a guest operating system used in a general server application. Therefore, it is necessary to change the type of the virtual machine in accordance with the guest operating system in the application of the service to be deployed (deploy), and the management becomes complicated.

《本実施形態の説明》
図4は、本実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。図において情報処理装置400は、物理ネットワークインタフェースカード(NIC:Network Interface Card)411を搭載したハードウェア401を備えている。物理NIC411は、ハードウェア401に接続され、図示せぬネットワークとの間でパケットを送受信する。
<< Description of this embodiment >>
FIG. 4 is a block diagram for explaining a functional configuration of the information processing apparatus according to the present embodiment. In the figure, the information processing apparatus 400 includes hardware 401 on which a physical network interface card (NIC: Network Interface Card) 411 is mounted. The physical NIC 411 is connected to the hardware 401, and transmits and receives packets to and from a network (not shown).

ハードウェア401上ではホストオペレーティングシステム402が動作している。さらに、ホストオペレーティングシステム402上には、仮想スイッチ421と2つの仮想マシン(VM:Virtual Machine)403、404が動作している。なお、本実施形態ではホストオペレーティングシステム402としてLinux(登録商標)を使用している。   A host operating system 402 is operating on the hardware 401. Furthermore, on the host operating system 402, a virtual switch 421 and two virtual machines (VM: Virtual Machine) 403 and 404 are operating. In the present embodiment, Linux (registered trademark) is used as the host operating system 402.

仮想マシン403、404のそれぞれは、KVM/qemuで実現されており、qemu431、441を有すると共に、qemu431、441によって提供される準仮想化ネットワークデバイスとしてのvirtioデバイス433、443を備えている。   Each of the virtual machines 403 and 404 is realized by KVM / qemu, has qemu 431 and 441, and includes virtio devices 433 and 443 as paravirtualized network devices provided by qemu 431 and 441.

また、仮想マシン403、404のvirtioデバイス433、443はqemu431、441が提供するvhost-userバックエンド機能432、442と仮想スイッチ421が提供するvhost-user422とを通して、仮想スイッチ421と接続されている。これにより、virtioデバイス433、443は仮想スイッチ421を介して物理NIC411を利用し、外部のネットワークを介して通信可能となっている。   In addition, virtio devices 433 and 443 of virtual machines 403 and 404 are connected to virtual switch 421 through vhost-user back end functions 432 and 442 provided by qemu 431 and 441 and vhost-user 422 provided by virtual switch 421. . As a result, the virtio devices 433 and 443 can use the physical NIC 411 via the virtual switch 421, and can communicate via an external network.

virtioデバイス433、443は、仮想マシン403、404上で動作するゲストオペレーティングシステム405、406の上で動作するアプリケーション407、408が有するデバイスドライバと接続するときに用いる初期化部434、444を備えている。   The virtio device 433, 443 includes an initialization unit 434, 444 used when connecting with the device driver of the application 407, 408 operating on the guest operating system 405, 406 operating on the virtual machine 403, 404. There is.

ゲストオペレーティングシステム405上には、virtioドライバ471を有する通常アプリケーション407が動作している。   On the guest operating system 405, a normal application 407 having a virtio driver 471 is operating.

ゲストオペレーティングシステム406上には、DPDK481のポールモードドライバ482を有する高速パケット通信アプリケーション408が動作している。なお、本実施形態においては、高速パケット通信アプリケーション408は、DPDKを用いて作成されたものである。   On the guest operating system 406, a high speed packet communication application 408 having a poll mode driver 482 of the DPDK 481 is operating. In the present embodiment, the high-speed packet communication application 408 is created using DPDK.

仮想マシン403上で動作している通常アプリケーション407は、virtioドライバ471を用いて、virtioデバイス433と仮想スイッチ421と物理NIC411とを通じてネットワーク通信を行う。   The normal application 407 operating on the virtual machine 403 performs network communication through the virtio device 433, the virtual switch 421 and the physical NIC 411 using the virtio driver 471.

仮想マシン404上で動作している高速パケット通信アプリケーション408は、ポールモードドライバ482を用いて、virtioデバイス443と仮想スイッチ421と物理NIC411とを通じてネットワーク通信を行う。   The high-speed packet communication application 408 operating on the virtual machine 404 performs network communication through the virtio device 443, the virtual switch 421 and the physical NIC 411 using the poll mode driver 482.

図5はvirtioデバイス433、443の要部構成を説明するための図である。図5に示すように、virtioデバイス433、443は初期化部434、444とvirtioドライバ用インタフェース501とポールモードドライバ用インタフェース502とを備えている。初期化部434、444は判定部535、545を有している。さらに、virtioドライバ用インタフェース501はPCIレジスタ511を有している。   FIG. 5 is a view for explaining the main configuration of the virtio devices 433, 443. As shown in FIG. 5, the virtio devices 433 and 443 include initialization units 434 and 444, an interface 501 for virtio driver, and an interface 502 for pole mode driver. The initialization units 434 and 444 include determination units 535 and 545. Furthermore, the interface for virtio driver 501 has a PCI register 511.

仮想マシン403上で動作するゲストオペレーティングシステム405において、virtioデバイス433はPCIデバイスとして認識され、virtioドライバ471によって認識されて制御することができる。   In the guest operating system 405 operating on the virtual machine 403, the virtio device 433 is recognized as a PCI device, and can be recognized and controlled by the virtio driver 471.

すなわち、ゲストオペレーティングシステム405はvirtioデバイス433に対してPCIデバイスとして動作するようにvirtioデバイス433の初期化部434の判定部535に通知する。初期化部434がvirtioデバイス433を初期化することにより、図6に示すように、virtioドライバ471は、virtioデバイス433に対して、virtioドライバ用インタフェース501のPCIレジスタ511とメモリ602とを介して要求を行なうことができる。また、virtioデバイス433の処理完了通知はCPU(Central Processing Unit)601への割り込みを通じてvirtioドライバ471に伝えられる。パケットを送信する際は、メモリ602におかれたパケットを送信するようにPCIレジスタ511に送信命令を書き込む。virtioデバイス433はパケット送信が完了すると、CPU601に割り込みをかけ、virtioドライバ471はPCIレジスタ511とメモリ602とを使って送信完了を確認する。パケット受信の際は、virtioデバイス433がメモリ602にパケット情報を書き込み、CPU601へ割り込みをかける。virtioドライバ471は割り込みに対応して、メモリ602上のパケット情報を確認して、新たなパケットのためのメモリ領域をPCIレジスタ511を通じて設定する。   That is, the guest operating system 405 notifies the determining unit 535 of the initializing unit 434 of the virtio device 433 to operate the virtio device 433 as a PCI device. When the initialization unit 434 initializes the virtio device 433, as shown in FIG. 6, the virtio driver 471 transmits the virtio device 433 via the PCI register 511 of the interface 501 for the virtio driver and the memory 602. You can make a request. Further, the processing completion notification of the virtio device 433 is transmitted to the virtio driver 471 through an interrupt to the CPU (central processing unit) 601. When transmitting a packet, a transmission instruction is written to the PCI register 511 so as to transmit the packet stored in the memory 602. When the packet transmission is completed, the virtio device 433 interrupts the CPU 601, and the virtio driver 471 uses the PCI register 511 and the memory 602 to confirm the transmission completion. At the time of packet reception, the virtio device 433 writes packet information in the memory 602 and interrupts the CPU 601. In response to the interrupt, the virtio driver 471 checks packet information on the memory 602 and sets a memory area for a new packet through the PCI register 511.

一方、仮想マシン404上で動作するゲストオペレーティングシステム406において、virtioデバイス443はPCIデバイスとして認識される。しかし、高速パケット通信アプリケーション408は、DPDK481のポールモードドライバ482を用いてvirtioデバイス443へポールモード専用のインタフェースでのアクセスを行う。これにより、virtioデバイス443におけるオーバヘッドを取り除き、高速パケット通信アプリケーション408が高速なパケット通信を行なうことができる。   On the other hand, in the guest operating system 406 operating on the virtual machine 404, the virtio device 443 is recognized as a PCI device. However, the high-speed packet communication application 408 uses the poll mode driver 482 of the DPDK 481 to access the virtio device 443 with an interface dedicated to poll mode. Thereby, the overhead in the virtio device 443 can be removed, and the high-speed packet communication application 408 can perform high-speed packet communication.

すなわち、ゲストオペレーティングシステム406はvirtioデバイス443に対してポールモードドライバ482に適応したデバイスとして動作するようにvirtioデバイス443の初期化部444の判定部545に通知する。これにより、初期化部444によってvirtioデバイス443が初期化され、図7に示すように、ポールモードドライバ482による動作時は、全てメモリ702上で完結するように動作させる。つまり、メモリ702上に送受信それぞれのパケット操作領域を確保して動作する。パケット送信時は送信領域にパケットを書き込む。ポールモード動作時のvirtioデバイス443は、ポールモードドライバ用インタフェース502を用いてメモリ602上の送信領域を常にチェックしており、送信パケットが積まれたら、送信処理を行う。また、virtioデバイス443はパケットを受信した際に、メモリ702上の受信領域にパケットを書き込む。ポールモードドライバ482は常に受信領域をポーリングによりチェックするようにアプリケーションが作られている。このため、ポールモードドライバ482は、ポーリングによって受信パケットが存在することを見つけて、パケットを受信する。   That is, the guest operating system 406 notifies the determining unit 545 of the initializing unit 444 of the virtio device 443 to operate the virtio device 443 as a device adapted to the poll mode driver 482. Thus, the virtio device 443 is initialized by the initialization unit 444, and as shown in FIG. That is, it operates by securing packet operation areas for transmission and reception on the memory 702. At the time of packet transmission, the packet is written in the transmission area. In the poll mode operation, the virtio device 443 always checks the transmission area on the memory 602 using the poll mode driver interface 502, and performs transmission processing when transmission packets are stacked. Also, when the virtio device 443 receives a packet, it writes the packet to the reception area on the memory 702. The poll mode driver 482 is designed to always check the reception area by polling. Therefore, the poll mode driver 482 finds that there is a received packet by polling and receives the packet.

したがって、高速パケット通信アプリケーション408は、virtioデバイス443を用いて仮想化のオーバヘッドが削減された高速通信を行うことができる。   Therefore, the high-speed packet communication application 408 can perform high-speed communication with reduced virtualization overhead using the virtio device 443.

次に、本実施形態に係る情報処理装置400におけるvirtioデバイス433、443の初期化処理手順を図8に示すフローチャートを参照して説明する。   Next, the initialization processing procedure of the virtio devices 433 and 443 in the information processing apparatus 400 according to the present embodiment will be described with reference to the flowchart shown in FIG.

ステップS801において、システム管理者が仮想マシン(VM:Virtual Machine)403、404を作成する。ステップS803において、ゲストオペレーティングシステム405、406を起動すると、ステップS805において、ゲストオペレーティングシステム405、406はvirtioデバイス433、443のプローブを行なう。このプローブの結果、ゲストオペレーティングシステム405は通常アプリケーション407が有するドライバの種類を判別し、virtioドライバ471に適応するようにvirtioデバイス433に要求する。また、ゲストオペレーティングシステム406は高速パケット通信アプリケーション408が有するドライバの種類を判別し、ポールモードドライバ482に適応するようにvirtioデバイス443に要求する。   In step S801, the system administrator creates virtual machines (VM: Virtual Machine) 403 and 404. In step S803, when the guest operating system 405, 406 is activated, the guest operating system 405, 406 probes the virtio device 433, 443 in step S805. As a result of this probe, the guest operating system 405 normally determines the type of driver possessed by the application 407 and requests the virtio device 433 to adapt to the virtio driver 471. The guest operating system 406 also determines the type of driver that the high-speed packet communication application 408 has, and requests the virtio device 443 to adapt to the poll mode driver 482.

この後、virtioデバイス433、443は初期化を開始する。ステップS807において、仮想マシン403、404に備わるvirtioデバイス433、443の初期化部434、444は、アプリケーション407、408が有するデバイスドライバがDPDKのポールモードドライバであるか否かを判定する。   After this, the virtio devices 433 and 443 start initialization. In step S 807, the initialization units 434 and 444 of the virtio devices 433 and 443 included in the virtual machines 403 and 404 determine whether the device driver included in the applications 407 and 408 is a DPDK poll mode driver.

ステップS807の判定の結果、DPDKのポールモードドライバである場合は、ステップS809において、初期化部434、444は、virtioデバイス433、443をポールモードドライバに適応したデバイスとして初期化する。この後、ステップS811において、初期化部434、444は、初期化が成功したか否かを判定し、初期化が成功しない場合はステップS813の処理に移行し、初期化が成功した場合は処理を終了する。   As a result of the determination in step S807, if the DPDK is a pole mode driver, the initialization units 434 and 444 initialize the virtio devices 433 and 443 as devices adapted to the pole mode driver in step S809. Thereafter, in step S811, the initialization units 434 and 444 determine whether or not the initialization is successful. If the initialization is not successful, the process proceeds to step S813. If the initialization is successful, the process is performed. Finish.

ステップS807の判定の結果、DPDKのポールモードドライバでない場合は、ステップS813において、初期化部434、444は、virtioデバイス433、443を標準的なvirtioデバイスとして初期化する。これにより、virtioデバイス433、443は、標準的なvirtioデバイスとして動作する。   If it is determined in step S 807 that the DPDK poll mode driver is not selected, the initialization units 434 and 444 initialize the virtio devices 433 and 443 as standard virtio devices in step S 813. Thus, the virtio devices 433 and 443 operate as standard virtio devices.

本実施形態では、通常アプリケーション407が有するデバイスドライバはvirtioドライバ471であるので、初期化部434は、virtioデバイス433を標準的なvirtioデバイスとして初期化して動作させる。一方、高速パケット通信アプリケーション408が有するデバイスドライバはDPDK481のポールモードドライバ482であるので、初期化部444は、virtioデバイス443をポールモードドライバに適応したデバイスとして初期化して動作させる。なお、virtioデバイス443の初期化部444は、virtioデバイス443をポールモードドライバに適応したデバイスとして初期化できなかった場合、標準的なvirtioデバイスとして初期化する。これにより、virtioデバイス443を標準的なvirtioデバイスとして動作させる。この場合、高速パケット通信アプリケーション408は、オーバヘッドは大きくなるが、virtioデバイス443を使用することができる。このため、通常アプリケーション用と高速パケット通信アプリケーション用とのそれぞれに対応して提供する仮想マシンを分ける必要がなくなる。   In the present embodiment, since the device driver included in the normal application 407 is the virtio driver 471, the initialization unit 434 initializes and operates the virtio device 433 as a standard virtio device. On the other hand, since the device driver included in the high-speed packet communication application 408 is the pole mode driver 482 of the DPDK 481, the initialization unit 444 initializes the virtio device 443 as a device adapted to the pole mode driver and operates. When the initialization unit 444 of the virtio device 443 can not initialize the virtio device 443 as a device adapted to the pole mode driver, the initialization unit 444 initializes it as a standard virtio device. This causes the virtio device 443 to operate as a standard virtio device. In this case, the high speed packet communication application 408 can use the virtio device 443 although the overhead is large. Therefore, it is not necessary to separate virtual machines to be provided corresponding to each of the normal application and the high-speed packet communication application.

次に、通常アプリケーション407がパケット通信を行なう場合の処理手順を図9を参照して説明する。   Next, the processing procedure when the normal application 407 performs packet communication will be described with reference to FIG.

通常アプリケーション407はネットワークスタック901を通して仮想マシン403の外部と通信する。   The normal application 407 communicates with the outside of the virtual machine 403 through the network stack 901.

図9は通常アプリケーション407がパケットを受信する場合の処理手順を説明する図である。通常アプリケーション407がパケットを受信する場合は、virtioデバイス433においてパケットを受信すると、virtioデバイス433は、virtioドライバ471に割り込みを使って、パケットの受信を通知する。virtioドライバ471は、パケット受信の割り込みに対応して、パケットデータを受け取る。このパケットデータは、ネットワークスタック901で処理された後に、通常アプリケーション407に渡される。   FIG. 9 is a diagram for explaining the processing procedure when the normal application 407 receives a packet. When the normal application 407 receives a packet, when the virtio device 433 receives the packet, the virtio device 433 notifies the virtio driver 471 of the reception of the packet using an interrupt. The virtio driver 471 receives packet data in response to a packet reception interrupt. This packet data is usually passed to the application 407 after being processed by the network stack 901.

図10は、通常アプリケーション407がパケットを送信する場合の処理手順を説明する図である。通常アプリケーション407がパケットを送信する場合は、通常アプリケーション407がネットワークスタック901に送信データを渡す。そして、ネットワークスタック901はパケットを構築し、virtioドライバ471に渡す。virtioドライバ471はvirtioデバイス433にパケット送信指示を行う。virtioデバイス433がパケット送信を完了すると、virtioデバイス433は、virtioドライバ471に送信完了割り込みを行い、データ送信が完了する。   FIG. 10 is a diagram for explaining the processing procedure when the normal application 407 transmits a packet. When the normal application 407 transmits a packet, the normal application 407 passes the transmission data to the network stack 901. Then, the network stack 901 constructs a packet and passes it to the virtio driver 471. The virtio driver 471 instructs the virtio device 433 to transmit a packet. When the virtio device 433 completes the packet transmission, the virtio device 433 issues a transmission completion interrupt to the virtio driver 471, and the data transmission is completed.

次に、高速パケット通信アプリケーション408がパケット通信を行なう場合の処理手順を説明する。図11は、高速パケット通信アプリケーション408がパケット通信を行なう場合の処理手順を説明する図である。   Next, a processing procedure when the high-speed packet communication application 408 performs packet communication will be described. FIG. 11 is a diagram for explaining the processing procedure when the high-speed packet communication application 408 performs packet communication.

高速パケット通信アプリケーション408はDPDK481のポールモードドライバ482を通じてvirtioデバイス443を操作する。DPDK481においては、パケット受信処理はポーリング動作になる。すなわち、高速パケット通信アプリケーション408はポールモードドライバ482を通じてvirtioデバイス443から直接データを取りこむ。取り込むべきデータがvirtioデバイス443上に存在しない場合は、高速パケット通信アプリケーション408は何もせずに次の処理に進む。パケットを送信する場合は、高速パケット通信アプリケーション408は、ポールモードドライバ482を通じてvirtioデバイス443の送信ディスクリプタをチェックして空きがあればパケット送信を行う。送信ディスクリプタに空きがなければ、高速パケット通信アプリケーション408は何もせずに次の処理に進む。   The high speed packet communication application 408 operates the virtio device 443 through the poll mode driver 482 of the DPDK 481. In the DPDK 481, packet reception processing is a polling operation. That is, the high speed packet communication application 408 fetches data directly from the virtio device 443 through the poll mode driver 482. If the data to be captured does not exist on the virtio device 443, the high speed packet communication application 408 proceeds to the next process without doing anything. When transmitting a packet, the high-speed packet communication application 408 checks the transmission descriptor of the virtio device 443 through the poll mode driver 482 and transmits the packet if there is a space. If there is no space in the transmission descriptor, the high-speed packet communication application 408 proceeds to the next process without doing anything.

なお、本実施形態ではホストオペレーティングシステム402としてLinux(登録商標)を用いたがこれに限定されることはない。また、本実施形態では高速パケット通信アプリケーション408およびポールモードドライバ482をDPDK481を用いて作成したものとしたが、これに限定されることはない。さらに、本実施形態では、準仮想化デバイスをvirtioとし、プロセッサエミュレータをqemuとしたがこれに限定されることはない。   In the present embodiment, Linux (registered trademark) is used as the host operating system 402, but the present invention is not limited to this. Furthermore, although the high-speed packet communication application 408 and the poll mode driver 482 are created using the DPDK 481 in this embodiment, the present invention is not limited to this. Furthermore, in the present embodiment, the para-virtualized device is virtio and the processor emulator is qemu, but the present invention is not limited to this.

[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other embodiments]
Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. The configurations and details of the present invention can be modified in various ways that can be understood by those skilled in the art within the scope of the present invention. Also included within the scope of the present invention are systems or devices that combine the different features included in each embodiment.

また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。   Furthermore, the present invention may be applied to a system configured of a plurality of devices or to a single device. Furthermore, the present invention is also applicable to the case where an information processing program for realizing the functions of the embodiments is supplied to a system or apparatus directly or remotely. Therefore, in order to realize the functions of the present invention on a computer, a program installed on the computer, a medium storing the program, and a WWW (World Wide Web) server for downloading the program are also included in the scope of the present invention. . In particular, a non-transitory computer readable medium storing a program that causes a computer to execute at least the processing steps included in the above-described embodiment is included in the scope of the present invention.

Claims (10)

ゲストオペレーティングシステムの上で動作するアプリケーションが用いるデバイスドライバに応じて前記デバイスドライバとのインタフェースを初期化する初期化手段を備え
前記初期化手段は、前記デバイスドライバがポールモードドライバの場合、前記インタフェースを前記ポールモードドライバに適応したインタフェースとして初期化し、前記デバイスドライバがvirtioドライバの場合、前記インタフェースを前記virtioドライバに適応したインタフェースとして初期化する準仮想化ネットワークデバイス。
According to a device driver used by an application operating on a guest operating system, the computer comprises an initialization means for initializing an interface with the device driver ,
The initialization unit initializes the interface as an interface adapted to the poll mode driver when the device driver is a poll mode driver, and an interface adapts the interface to the virtio driver when the device driver is a virtio driver Para-virtualized network device to initialize as .
前記初期化手段は、前記ゲストオペレーティングシステムからの通知に基づき、前記デバイスドライバがポールモードドライバであるかvirtioドライバであるかを判定する判定手段を有し、前記判定手段による判定結果に応じた初期化を実行する請求項1に記載の準仮想化ネットワークデバイス。 The initialization means includes determination means for determining whether the device driver is a pole mode driver or a virtio driver based on a notification from the guest operating system, and an initial stage according to the determination result by the determination means. The paravirtualized network device according to claim 1, wherein the virtualization is performed . 前記ポールモードドライバに適応したインタフェースにおいては、前記ポールモードドライバを通じた高速パケット通信アプリケーションからのポーリングに応じてパケット通信を処理し、The interface adapted to the poll mode driver processes packet communications in response to polling from a high speed packet communication application through the poll mode driver,
前記virtioドライバに適応したインタフェースにおいては、パケット受信時およびパケット送信完了時に前記virtioドライバに割込みを行いながら、ネットワークスタックを介して通常アプリケーションとのパケット通信を処理する請求項1または2に記載の準仮想化ネットワークデバイス。  The interface according to claim 1 or 2, wherein the interface applied to the virtio driver processes packet communication with a normal application via the network stack while interrupting the virtio driver at the time of packet reception and packet transmission completion. Virtualized network device.
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置であって、
前記ホストオペレーティングシステム上で動作し、前記仮想マシンを形成するプロセッサエミュレータと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化手段を備えた準仮想化ネットワークデバイスと、
を備え、
前記仮想マシンは、virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンと、ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとを備えた情報処理装置。
The information processing apparatus having a virtual machine that runs on the host operating system and the guest operating system running on the virtual machine,
A processor emulator running on the host operating system to form the virtual machine;
A paravirtualized network device comprising an initialization means for initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
Equipped with
An information processing apparatus comprising: a first virtual machine comprising a normal application using a virtio driver; and a second virtual machine comprising a high speed packet communication application using a poll mode driver.
前記初期化手段は、前記ゲストオペレーティングシステムからの通知に基づき、前記デバイスドライバがポールモードドライバであるかvirtioドライバであるかを判定する判定手段を有し、前記判定手段による判定結果に応じた初期化を実行する請求項4に記載の情報処理装置。The initialization means includes determination means for determining whether the device driver is a pole mode driver or a virtio driver based on a notification from the guest operating system, and an initial stage according to the determination result by the determination means The information processing apparatus according to claim 4, wherein the conversion is performed. 前記デバイスドライバがポールモードドライバと判定されれば前記第2仮想マシンが形成され、前記デバイスドライバがvirtioドライバと判定されれば前記第1仮想マシンが形成される請求項5に記載の情報処理装置。The information processing apparatus according to claim 5, wherein the second virtual machine is formed if the device driver is determined to be a pole mode driver, and the first virtual machine is formed if the device driver is determined to be a virtio driver. . 前記初期化手段により前記デバイスドライバがポールモードドライバと判定して実行された初期化が成功しなかった場合、前記第1仮想マシンが形成される請求項6に記載の情報処理装置。7. The information processing apparatus according to claim 6, wherein the first virtual machine is formed when the initialization performed by determining that the device driver is a pole mode driver by the initialization unit is not successful. 前記第2仮想マシンにおいては、前記ポールモードドライバを通じた前記高速パケット通信アプリケーションからのポーリングに応じてパケット通信を処理し、The second virtual machine processes packet communication in response to polling from the high-speed packet communication application through the poll mode driver,
前記第1仮想マシンにおいては、パケット受信時およびパケット送信完了時に前記virtioドライバに割込みを行いながら、ネットワークスタックを介して通常アプリケーションとのパケット通信を処理する請求項4乃至7のいずれか1項に記載の情報処理装置。  The first virtual machine processes packet communication with a normal application via a network stack while interrupting the virtio driver at the time of packet reception and packet transmission completion. Information processor as described.
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置の制御方法であって、
前記ホストオペレーティングシステム上で動作するプロセッサエミュレータが、前記仮想マシンを形成する仮想マシン形成ステップと、
準仮想化ネットワークデバイスの初期化手段が、前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化ステップと、
を含み、
前記初期化ステップにおいてvirtioドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンとして動作し、前記初期化ステップにおいてポールモードドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとして動作する情報処理装置の制御方法。
And virtual machines running on the host operating system, a method of controlling an information processing apparatus having a guest operating system running on the virtual machine,
A virtual machine creation step in which a processor emulator operating on the host operating system forms the virtual machine;
An initialization step of initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
Including
When the interface with the virtio driver is initialized in the initialization step, the formed virtual machine operates as a first virtual machine having a normal application using the virtio driver, and in the initialization step, the poll mode driver A control method of an information processing apparatus in which the formed virtual machine operates as a second virtual machine provided with a high-speed packet communication application using the poll mode driver when an interface with is initialized.
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置の制御プログラムであって、
前記ホストオペレーティングシステム上で動作するプロセッサエミュレータが、前記仮想マシンを形成する仮想マシン形成ステップと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて、前記デバイスドライバとのインタフェースを初期化する初期化ステップと、
をコンピュータに実行させ、
前記初期化ステップにおいてvirtioドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記virtioドライバを用いる通常アプリケーションを備えた第1仮想マシンとして動作し、前記初期化ステップにおいてポールモードドライバとのインタフェースが初期化されると、前記形成された仮想マシンが前記ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンとして動作するようコンピュータに実行させる情報処理装置の制御プログラム。
And virtual machines running on the host operating system, a control program of an information processing apparatus and a guest operating system running on the virtual machine,
A virtual machine creation step in which a processor emulator operating on the host operating system forms the virtual machine;
An initialization step of initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system;
On your computer,
When the interface with the virtio driver is initialized in the initialization step, the formed virtual machine operates as a first virtual machine having a normal application using the virtio driver, and in the initialization step, the poll mode driver A control program of an information processing device which causes a computer to execute such that the formed virtual machine operates as a second virtual machine provided with a high speed packet communication application using the poll mode driver when the interface with is initialized.
JP2015121268A 2015-06-16 2015-06-16 Para-virtualized network device, information processing apparatus, information processing method, and information processing program Active JP6548010B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015121268A JP6548010B2 (en) 2015-06-16 2015-06-16 Para-virtualized network device, information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015121268A JP6548010B2 (en) 2015-06-16 2015-06-16 Para-virtualized network device, information processing apparatus, information processing method, and information processing program

Publications (2)

Publication Number Publication Date
JP2017010070A JP2017010070A (en) 2017-01-12
JP6548010B2 true JP6548010B2 (en) 2019-07-24

Family

ID=57764413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015121268A Active JP6548010B2 (en) 2015-06-16 2015-06-16 Para-virtualized network device, information processing apparatus, information processing method, and information processing program

Country Status (1)

Country Link
JP (1) JP6548010B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021070240A1 (en) * 2019-10-08 2021-04-15 日本電信電話株式会社 Intra-server delay control system, intra-server delay control device, intra-server delay control method, and program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134601A (en) * 2007-11-30 2009-06-18 Fujitsu Ltd Disk access method switching device
JP4990940B2 (en) * 2009-07-06 2012-08-01 株式会社日立製作所 Computer apparatus and path management method
JP2012018515A (en) * 2010-07-07 2012-01-26 Fujitsu Ltd Information processor, control method, and control program
WO2012044700A1 (en) * 2010-10-01 2012-04-05 Huawei Technologies Co., Ltd. System and method for controlling the input/output of a virtualized network
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
JP5960186B2 (en) * 2014-04-03 2016-08-02 日本電信電話株式会社 Virtual channel construction system, virtual channel construction method, and virtual channel construction program

Also Published As

Publication number Publication date
JP2017010070A (en) 2017-01-12

Similar Documents

Publication Publication Date Title
US9176767B2 (en) Network interface card device pass-through with multiple nested hypervisors
US9529773B2 (en) Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller
JP7220163B2 (en) Method and apparatus for hardware virtualization
US8824492B2 (en) Accelerator system for remote data storage
JP6458798B2 (en) Computer system, data processing device
US10684880B2 (en) Allocating and initializing I/O devices at virtual
US9043501B2 (en) Input/output monitoring mechanism
US10169075B2 (en) Method for processing interrupt by virtualization platform, and related device
US20100211946A1 (en) Method and system for network abstraction and virtualization for a single operating system (os)
JP2009187368A (en) Method for controlling sharing of usb port
EP3242440A1 (en) Fault tolerant method, apparatus and system for virtual machine
JP7310924B2 (en) In-server delay control device, server, in-server delay control method and program
JP5742387B2 (en) Information processing system and I / O switch device
WO2014031430A1 (en) Systems and methods for sharing devices in a virtualization environment
US20150100970A1 (en) Application-driven shared device queue polling
US10452570B1 (en) Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints
CN109983741B (en) Transferring packets between virtual machines via direct memory access devices
JP7251648B2 (en) In-server delay control system, in-server delay control device, in-server delay control method and program
Zazo et al. A PCIe DMA engine to support the virtualization of 40 Gbps FPGA-accelerated network appliances
CN114691286A (en) Server system, virtual machine creation method and device
JP6743696B2 (en) Computer system, remote device connection management method and program
CN103092676A (en) Analog input output method, device and system of virtual machine cluster
JP2015170887A (en) packet processing method and system
JP6548010B2 (en) Para-virtualized network device, information processing apparatus, information processing method, and information processing program
US9436644B1 (en) Apparatus and method for optimizing USB-over-IP data transactions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190521

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190612

R150 Certificate of patent or registration of utility model

Ref document number: 6548010

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150