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 PDFInfo
- 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
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.
しかしながら、上記文献に記載の技術では、ゲストオペレーティングシステム上のデバイスドライバに対して準仮想化ネットワークデバイスが対応できなかったので、デバイスドライバに適応しない準仮想化ネットワークデバイスを使用できなかった。 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.
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。 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
初期化部101は、仮想マシン上で動作するゲストオペレーティングシステムの上で動作するアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。
The
次に、準仮想化ネットワークデバイス100の初期化処理手順について図2を参照して説明する。
Next, the initialization processing procedure of the paravirtualized
準仮想化ネットワークデバイス100の初期化部101は、ステップS201において、ゲストオペレーティングシステムからデバイスドライバの種類の通知を受ける。次いで、ステップS203において、初期化部101は、デバイスドライバの種類に応じて準仮想化ネットワークデバイス100のインタフェースを初期化して動作させる。
In step S201, the
本実施形態によれば、初期化部101はアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。
According to the present embodiment, the
したがって、ゲストオペレーティングシステムに備わるデバイスドライバに適応したデバイスとして準仮想化ネットワークデバイス100を使用することができる。
Therefore, the paravirtualized
[第2実施形態]
本発明の第2実施形態としての情報処理装置300について、図3を参照して説明する。情報処理装置300は、ハードウェア301を備えている。さらに、ハードウェア301上にはホストオペレーティングシステム302が動作し、ホストオペレーティングシステム302上には仮想スイッチ321と仮想マシン303が動作している。
Second Embodiment
An
仮想スイッチ321は、ハードウェア301に物理的ネットワークカードが接続された場合、この物理的ネットワークカードを通してネットワーク通信が可能である。
The
仮想マシン303は、仮想スイッチ321と接続するプロセッサエミュレータ331と、準仮想化ネットワークデバイス332とを備えている。
The
さらに、仮想マシン303上には、ゲストオペレーティングシステム304が動作し、ゲストオペレーティングシステム304上にはデバイスドライバ351を有するアプリケーション305が動作している。
Furthermore, on the
また、準仮想化ネットワークデバイス332は、プロセッサエミュレータ331によって提供されたものであり、初期化部333を備えている。
In addition, the paravirtualized
初期化部333は、ゲストオペレーティングシステム304上で動作するアプリケーション305が有するデバイスドライバ351の種類に関してゲストオペレーティングシステム304から通知を受ける。そして、このデバイスドライバ351に適応したデバイスとして動作するように準仮想化ネットワークデバイス332のインタフェースを初期化する。これにより、準仮想化ネットワークデバイス332は、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして動作する。
The
本実施形態によれば、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして準仮想化ネットワークデバイス332を使用することができる。
According to the present embodiment, the paravirtualized
したがって、アプリケーション305は、ゲストオペレーティングシステム304と仮想マシン303とを通してホストオペレーティングシステム302上の仮想スイッチ321の動作制御を行なうことができる。
Thus, the
なお、ホストオペレーティングシステム302上に2つ以上の仮想マシンが存在する場合は、それぞれの仮想マシンの準仮想化ネットワークデバイスを用いて、異なる仮想マシン上のアプリケーション間の通信を行なうことも可能である。
When two or more virtual machines exist on the
[第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
ハードウェア401上ではホストオペレーティングシステム402が動作している。さらに、ホストオペレーティングシステム402上には、仮想スイッチ421と2つの仮想マシン(VM:Virtual Machine)403、404が動作している。なお、本実施形態ではホストオペレーティングシステム402としてLinux(登録商標)を使用している。
A
仮想マシン403、404のそれぞれは、KVM/qemuで実現されており、qemu431、441を有すると共に、qemu431、441によって提供される準仮想化ネットワークデバイスとしてのvirtioデバイス433、443を備えている。
Each of the
また、仮想マシン403、404のvirtioデバイス433、443はqemu431、441が提供するvhost-userバックエンド機能432、442と仮想スイッチ421が提供するvhost-user422とを通して、仮想スイッチ421と接続されている。これにより、virtioデバイス433、443は仮想スイッチ421を介して物理NIC411を利用し、外部のネットワークを介して通信可能となっている。
In addition,
virtioデバイス433、443は、仮想マシン403、404上で動作するゲストオペレーティングシステム405、406の上で動作するアプリケーション407、408が有するデバイスドライバと接続するときに用いる初期化部434、444を備えている。
The
ゲストオペレーティングシステム405上には、virtioドライバ471を有する通常アプリケーション407が動作している。
On the
ゲストオペレーティングシステム406上には、DPDK481のポールモードドライバ482を有する高速パケット通信アプリケーション408が動作している。なお、本実施形態においては、高速パケット通信アプリケーション408は、DPDKを用いて作成されたものである。
On the guest operating system 406, a high speed
仮想マシン403上で動作している通常アプリケーション407は、virtioドライバ471を用いて、virtioデバイス433と仮想スイッチ421と物理NIC411とを通じてネットワーク通信を行う。
The
仮想マシン404上で動作している高速パケット通信アプリケーション408は、ポールモードドライバ482を用いて、virtioデバイス443と仮想スイッチ421と物理NIC411とを通じてネットワーク通信を行う。
The high-speed
図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
仮想マシン403上で動作するゲストオペレーティングシステム405において、virtioデバイス433はPCIデバイスとして認識され、virtioドライバ471によって認識されて制御することができる。
In the
すなわち、ゲストオペレーティングシステム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
一方、仮想マシン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
すなわち、ゲストオペレーティングシステム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
したがって、高速パケット通信アプリケーション408は、virtioデバイス443を用いて仮想化のオーバヘッドが削減された高速通信を行うことができる。
Therefore, the high-speed
次に、本実施形態に係る情報処理装置400におけるvirtioデバイス433、443の初期化処理手順を図8に示すフローチャートを参照して説明する。
Next, the initialization processing procedure of the
ステップ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
この後、virtioデバイス433、443は初期化を開始する。ステップS807において、仮想マシン403、404に備わるvirtioデバイス433、443の初期化部434、444は、アプリケーション407、408が有するデバイスドライバがDPDKのポールモードドライバであるか否かを判定する。
After this, the
ステップ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
ステップ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
本実施形態では、通常アプリケーション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
次に、通常アプリケーション407がパケット通信を行なう場合の処理手順を図9を参照して説明する。
Next, the processing procedure when the
通常アプリケーション407はネットワークスタック901を通して仮想マシン403の外部と通信する。
The
図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
図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
次に、高速パケット通信アプリケーション408がパケット通信を行なう場合の処理手順を説明する。図11は、高速パケット通信アプリケーション408がパケット通信を行なう場合の処理手順を説明する図である。
Next, a processing procedure when the high-speed
高速パケット通信アプリケーション408はDPDK481のポールモードドライバ482を通じてvirtioデバイス443を操作する。DPDK481においては、パケット受信処理はポーリング動作になる。すなわち、高速パケット通信アプリケーション408はポールモードドライバ482を通じてvirtioデバイス443から直接データを取りこむ。取り込むべきデータがvirtioデバイス443上に存在しない場合は、高速パケット通信アプリケーション408は何もせずに次の処理に進む。パケットを送信する場合は、高速パケット通信アプリケーション408は、ポールモードドライバ482を通じてvirtioデバイス443の送信ディスクリプタをチェックして空きがあればパケット送信を行う。送信ディスクリプタに空きがなければ、高速パケット通信アプリケーション408は何もせずに次の処理に進む。
The high speed
なお、本実施形態ではホストオペレーティングシステム402としてLinux(登録商標)を用いたがこれに限定されることはない。また、本実施形態では高速パケット通信アプリケーション408およびポールモードドライバ482をDPDK481を用いて作成したものとしたが、これに限定されることはない。さらに、本実施形態では、準仮想化デバイスをvirtioとし、プロセッサエミュレータをqemuとしたがこれに限定されることはない。
In the present embodiment, Linux (registered trademark) is used as the
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[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ドライバに適応したインタフェースにおいては、パケット受信時およびパケット送信完了時に前記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.
前記第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.
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)
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)
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 |
-
2015
- 2015-06-16 JP JP2015121268A patent/JP6548010B2/en active Active
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 |