JP2017010070A - Paravirtualized network device, information processing device, information processing method, and information processing program - Google Patents
Paravirtualized network device, information processing device, information processing method, and information processing program Download PDFInfo
- Publication number
- JP2017010070A JP2017010070A JP2015121268A JP2015121268A JP2017010070A JP 2017010070 A JP2017010070 A JP 2017010070A JP 2015121268 A JP2015121268 A JP 2015121268A JP 2015121268 A JP2015121268 A JP 2015121268A JP 2017010070 A JP2017010070 A JP 2017010070A
- Authority
- JP
- Japan
- Prior art keywords
- driver
- information processing
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims description 28
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000004891 communication Methods 0.000 claims description 39
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 25
- 230000005540 biological transmission Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
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. Also disclosed is a technique in which a virtual control program connects a virtual device driver and a physical device driver so that data is distributed via the virtual device driver and the physical device driver.
しかしながら、上記文献に記載の技術では、ゲストオペレーティングシステム上のデバイスドライバに対して準仮想化ネットワークデバイスが対応できなかったので、デバイスドライバに適応しない準仮想化ネットワークデバイスを使用できなかった。 However, in the technique described in the above document, since the paravirtualized network device cannot cope with the device driver on the guest operating system, the paravirtualized network device that does not adapt to the device driver cannot be used.
本発明の目的は、上述の課題を解決する技術を提供することにある。 The objective of this invention is providing the technique which solves the above-mentioned subject.
上記目的を達成するため、本発明に係る準仮想化ネットワークデバイスは、
ゲストオペレーティングシステムの上で動作するアプリケーションが用いるデバイスドライバに応じて前記デバイスドライバとのインタフェースを初期化する初期化手段を備えた。
In order to achieve the above object, a para-virtualized network device according to the present invention includes:
Initializing means for initializing an interface with the device driver according to a device driver used by an application operating on the guest operating system is provided.
上記目的を達成するため、本発明に係る情報処理装置は、
ホストオペレーティングシステム上で動作する仮想マシンと、前記仮想マシン上で動作するゲストペレーティングシステムとを有する情報処理装置であって、
前記ホストオペレーティングシステム上で動作し、前記仮想マシンを形成するプロセッサエミュレータと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて前記デバイスドライバとのインタフェースを初期化する初期化手段を備えた準仮想化ネットワークデバイスと、
を備えた。
In order to achieve the above object, an information processing apparatus according to the present invention provides:
An information processing apparatus having a virtual machine operating on a host operating system and a guest operating system operating on the virtual machine,
A processor emulator running on the host operating system and forming the virtual machine;
A para-virtualized network device comprising initialization means for initializing an interface with the device driver in accordance with a device driver used by an application operating on the guest operating system;
Equipped with.
上記目的を達成するため、本発明に係る情報処理方法は、
仮想マシン上で動作するゲストオペレーティングシステムの上で動作するアプリケーションが用いるデバイスドライバの種類を判別するステップと、
前記判別の結果に基づいて、前記仮想マシン上で動作する準仮想化ネットワークデバイスのインタフェースを前記デバイスドライバに適応したインタフェースに置き換えて動作させるステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention includes:
Determining the type of device driver used by the application running on the guest operating system running on the virtual machine;
Replacing the interface of the para-virtualized network device operating on the virtual machine with an interface adapted to the device driver based on the result of the determination; and
including.
上記目的を達成するため、本発明に係る情報処理プログラムは、
仮想マシン上で動作するゲストオペレーティングシステムの上で動作するアプリケーションが用いるデバイスドライバの種類を判別するステップと、
前記判別の結果に基づいて、前記仮想マシン上で動作する準仮想化ネットワークデバイスのインタフェースを前記デバイスドライバに適応したインタフェースに置き換えて動作させるステップと、
をコンピュータに実行させる。
In order to achieve the above object, an information processing program according to the present invention provides:
Determining the type of device driver used by the application running on the guest operating system running on the virtual machine;
Replacing the interface of the para-virtualized network device operating on the virtual machine with an interface adapted to the device driver based on the result of the determination; and
Is executed on the computer.
本発明によれば、ゲストオペレーティングシステム上のデバイスドライバに対して準仮想化ネットワークデバイスが対応できるので、デバイスドライバに適応しない準仮想化ネットワークデバイスを使用することができる。 According to the present invention, since the para-virtualized network device can cope with the device driver on the guest operating system, it is possible to use a para-virtualized network device that is not adapted to the device driver.
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。 Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the components described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them.
[第1実施形態]
本発明の第1実施形態としての準仮想化ネットワークデバイスについて、図1を参照して説明する。準仮想化ネットワークデバイス100は、初期化部101を備えている。
[First Embodiment]
A para-virtualized network device as a first embodiment of the present invention will be described with reference to FIG. The para-virtualized
初期化部101は、仮想マシン上で動作するゲストオペレーティングシステムの上で動作するアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。
The
次に、準仮想化ネットワークデバイス100の初期化処理手順について図2を参照して説明する。
Next, an initialization process procedure of the
準仮想化ネットワークデバイス100の初期化部101は、ステップS201において、ゲストオペレーティングシステムからデバイスドライバの種類の通知を受ける。次いで、ステップS203において、初期化部101は、デバイスドライバの種類に応じて準仮想化ネットワークデバイス100のインタフェースを初期化して動作させる。
In step S201, the
本実施形態によれば、初期化部101はアプリケーションが有するデバイスドライバの種類に適応したデバイスとして動作するように準仮想化ネットワークデバイス100のインタフェースを初期化する。
According to the present embodiment, the
したがって、ゲストオペレーティングシステムに備わるデバイスドライバに適応したデバイスとして準仮想化ネットワークデバイス100を使用することができる。
Therefore, the para-virtualized
[第2実施形態]
本発明の第2実施形態としての情報処理装置300について、図3を参照して説明する。情報処理装置300は、ハードウェア301を備えている。さらに、ハードウェア301上にはホストオペレーティングシステム302が動作し、ホストオペレーティングシステム302上には仮想スイッチ321と仮想マシン303が動作している。
[Second Embodiment]
An
仮想スイッチ321は、ハードウェア301に物理的ネットワークカードが接続された場合、この物理的ネットワークカードを通してネットワーク通信が可能である。
When a physical network card is connected to the
仮想マシン303は、仮想スイッチ321と接続するプロセッサエミュレータ331と、準仮想化ネットワークデバイス332とを備えている。
The
さらに、仮想マシン303上には、ゲストオペレーティングシステム304が動作し、ゲストオペレーティングシステム304上にはデバイスドライバ351を有するアプリケーション305が動作している。
Furthermore, a
また、準仮想化ネットワークデバイス332は、プロセッサエミュレータ331によって提供されたものであり、初期化部333を備えている。
The para-virtualized
初期化部333は、ゲストオペレーティングシステム304上で動作するアプリケーション305が有するデバイスドライバ351の種類に関してゲストオペレーティングシステム304から通知を受ける。そして、このデバイスドライバ351に適応したデバイスとして動作するように準仮想化ネットワークデバイス332のインタフェースを初期化する。これにより、準仮想化ネットワークデバイス332は、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして動作する。
The
本実施形態によれば、アプリケーション305が有するデバイスドライバ351に適応したデバイスとして準仮想化ネットワークデバイス332を使用することができる。
According to the present embodiment, the para-virtualized
したがって、アプリケーション305は、ゲストオペレーティングシステム304と仮想マシン303とを通してホストオペレーティングシステム302上の仮想スイッチ321の動作制御を行なうことができる。
Therefore, 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 with reference to FIGS.
《前提技術》
SDN(Software-Defined Networking)と呼ばれるソフトウェアでネットワークを制御する技術が注目されている。さらに、NFV(Network Function Virtualization)と呼ばれるネットワーク機能を仮想化して、サービスの柔軟性を上げる技術が注目されている。汎用サーバを利用して、特定用途向けハードウェアを減らし、構成を簡略化して運用を容易にすることができる。これらの要素技術として仮想化が利用される。
《Prerequisite technology》
A technique for controlling a network with software called SDN (Software-Defined Networking) attracts attention. Furthermore, a technique for virtualizing a network function called NFV (Network Function Virtualization) to increase service flexibility has attracted attention. By using a general-purpose server, it is possible to reduce hardware for specific applications, 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デバイスのデバイスドライバを提供している。 In server virtualization, virtual machine monitors represented by KVM / qemu (Kernel-based Virtual Machine / qemu) emulate input / output devices. There is a virtio device as a standard emulation device for network cards in virtualization. The virtio device looks like a general PCI (Peripheral Component Interconnect) device for a guest operating system operating in a virtual machine. For this reason, many operating systems used as guest operating systems provide device drivers for virtio devices.
サーバの仮想化がデータセンタなどで一般化していくなかで、ファイアウォールやDPI(Deep Packet Inspection)のような大量のパケットを扱うネットワークサービスにおいて、高速なパケット通信が求められている。 As server virtualization becomes commonplace in data centers and the like, high-speed packet communication is required in network services that handle a large amount of packets such as firewalls and DPI (Deep Packet Inspection).
ネットワークのパケット通信性能はサーバ仮想化において大きな課題となっている。PCIパススルーあるいはSR−IOV(Single Root I/O Virtualization)パススルー技術などを用いて物理デバイスをゲストオペレーティングシステムに直接扱わせることで、物理環境とほぼ同等の性能を得ることができる。しかし、仮想化を用いたメリットである柔軟性が失われてしまう。 Network packet communication performance is a major issue in server virtualization. By causing the guest device to directly handle a physical device using PCI pass-through or SR-IOV (Single Root I / O Virtualization) pass-through technology, it is possible to obtain almost the same performance as the physical environment. However, flexibility, which is a merit using virtualization, is lost.
一方、汎用サーバにおいて高速にパケット通信を行うためのアプリケーションを作成する開発キットであるDPDK(Data Plane Development Kit)が注目されている。 On the other hand, a DPDK (Data Plane Development Kit), which is a development kit for creating an application for performing high-speed packet communication in a general-purpose server, has attracted attention.
DPDKではポールモードドライバと呼ばれる機構を利用して、デバイスアクセスのレイテンシ(latency)を削減し、高速パケット通信を実現している。このため、高速なパケット通信アプリケーションはDPDKを利用して作成されるようになってきている。また、仮想化技術を用いたサービス柔軟性と運用の簡易化が進む中、DPDKを用いる高速パケット通信アプリケーションの適用が求められている。 In DPDK, a mechanism called a poll mode driver is used to reduce device access latency and realize high-speed packet communication. For this reason, high-speed packet communication applications have been created using DPDK. In addition, as service flexibility using virtualization technology and simplification of operations progress, application of high-speed packet communication applications using DPDK is required.
ゲストオペレーティングシステムでDPDKを利用して、ネットワークのパケット通信性能を確保しようとした場合、virtioデバイスでは高速なパケット通信を行うことが困難となっている。すなわち、virtioデバイスは一般的なPCIデバイスをエミュレーションしている。このため、ドライバからのデバイスアクセスの際に、ホストオペレーティングシステムによるエミュレーションが入ることで、オーバヘッド(間接的あるいは付加的な処理の大きさ)が大きくなり、高速なパケット通信を行うことが困難となっている。 When attempting to ensure network packet communication performance using DPDK in a 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 is accessed from the driver, the emulation by the host operating system is inserted, so that the overhead (indirect or additional processing size) increases and it becomes difficult to perform high-speed packet communication. ing.
高速なパケット通信を実現するため、DPDKのポールモードドライバの動作に合わせた特殊なデバイスを仮想マシンに実装する案もある。しかし、このような特殊なデバイスは、そのデバイス専用のドライバをもったゲストオペレーティングシステムのみがアクセスできるものとなり、一般的なサーバアプリケーションで利用されるゲストオペレーティングシステムにとっては使えないデバイスとなる。そのため、デプロイ(deploy)するサービスのアプリケーションにおけるゲストオペレーティングシステムに合わせて仮想マシンの種別を変更することが必要となり、管理が煩雑となる。 In order to realize high-speed packet communication, there is a proposal to mount a special device in the 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 the device, and cannot be used by a guest operating system used in a general server application. For this reason, it is necessary to change the type of the virtual machine according to the guest operating system in the application of the service to be deployed, which makes management 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を利用し、外部のネットワークを介して通信可能となっている。
Further, the
virtioデバイス433、443は、仮想マシン403、404上で動作するゲストオペレーティングシステム405、406の上で動作するアプリケーション407、408が有するデバイスドライバと接続するときに用いる初期化部434、444を備えている。
The
ゲストオペレーティングシステム405上には、virtioドライバ471を有する通常アプリケーション407が動作している。
A
ゲストオペレーティングシステム406上には、DPDK481のポールモードドライバ482を有する高速パケット通信アプリケーション408が動作している。なお、本実施形態においては、高速パケット通信アプリケーション408は、DPDKを用いて作成されたものである。
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 diagram for explaining a main configuration of the
仮想マシン403上で動作するゲストオペレーティングシステム405において、virtioデバイス433はPCIデバイスとして認識され、virtioドライバ471によって認識されて制御することができる。
In the guest operating system 405 operating on 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 guest operating system 405 notifies 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
したがって、高速パケット通信アプリケーション408は、virtioデバイス443を用いて仮想化のオーバヘッドが削減された高速通信を行うことができる。
Therefore, the high-speed
次に、本実施形態に係る情報処理装置400におけるvirtioデバイス433、443の初期化処理手順を図8に示すフローチャートを参照して説明する。
Next, an initialization process 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) 403 and 404. When the guest operating systems 405 and 406 are activated in step S803, the guest operating systems 405 and 406 probe 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の処理に移行し、初期化が成功した場合は処理を終了する。
If the result of determination in step S807 is that it is a DPDK pole mode driver, in step S809, the
ステップS807の判定の結果、DPDKのポールモードドライバでない場合は、ステップS813において、初期化部434、444は、virtioデバイス433、443を標準的なvirtioデバイスとして初期化する。これにより、virtioデバイス433、443は、標準的なvirtioデバイスとして動作する。
If the result of determination in step S807 is that it is not a DPDK pole mode driver, in step S813, 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 this embodiment, since the device driver of the
次に、通常アプリケーション407がパケット通信を行なう場合の処理手順を図9を参照して説明する。
Next, a 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 illustrating a 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 illustrating a 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 this embodiment, Linux (registered trademark) is used as the
[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. 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 present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。 In addition, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.
Claims (8)
請求項1に記載の準仮想化ネットワークデバイス。 The initialization unit includes a determination unit that determines the type of the device driver, and based on the determination result, replaces the interface with the device driver with an interface adapted to the device driver.
The para-virtualized network device according to claim 1.
前記ホストオペレーティングシステム上で動作し、前記仮想マシンを形成するプロセッサエミュレータと、
前記ゲストオペレーティングシステム上で動作するアプリケーションが用いるデバイスドライバに応じて前記デバイスドライバとのインタフェースを初期化する初期化手段を備えた準仮想化ネットワークデバイスと、
を備えた情報処理装置。 An information processing apparatus having a virtual machine operating on a host operating system and a guest operating system operating on the virtual machine,
A processor emulator running on the host operating system and forming the virtual machine;
A para-virtualized network device comprising initialization means for initializing an interface with the device driver in accordance with a device driver used by an application operating on the guest operating system;
An information processing apparatus comprising:
ポールモードドライバを用いる高速パケット通信アプリケーションを備えた第2仮想マシンと、
を備えた請求項5に記載の情報処理装置。 a first virtual machine with a normal application using the virtio driver;
A second virtual machine with a high-speed packet communication application using a pole mode driver;
The information processing apparatus according to claim 5, comprising:
前記判別の結果に基づいて、前記仮想マシン上で動作する準仮想化ネットワークデバイスのインタフェースを前記デバイスドライバに適応したインタフェースに置き換えて動作させるステップと、
を含む情報処理方法。 Determining the type of device driver used by the application running on the guest operating system running on the virtual machine;
Replacing the interface of the para-virtualized network device operating on the virtual machine with an interface adapted to the device driver based on the result of the determination; and
An information processing method including:
前記判別の結果に基づいて、前記仮想マシン上で動作する準仮想化ネットワークデバイスのインタフェースを前記デバイスドライバに適応したインタフェースに置き換えて動作させるステップと、
をコンピュータに実行させる情報処理プログラム。 Determining the type of device driver used by the application running on the guest operating system running on the virtual machine;
Replacing the interface of the para-virtualized network device operating on the virtual machine with an interface adapted to the device driver based on the result of the determination; and
An information processing program that causes a computer to execute.
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 true JP2017010070A (en) | 2017-01-12 |
| JP6548010B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2021070240A1 (en) * | 2019-10-08 | 2021-04-15 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102392626B1 (en) | 2020-08-11 | 2022-04-29 | 숭실대학교 산학협력단 | Secure communication control system and method used in virtualized operating system environment |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009134601A (en) * | 2007-11-30 | 2009-06-18 | Fujitsu Ltd | Disk access method switching device |
| JP2011014088A (en) * | 2009-07-06 | 2011-01-20 | Hitachi Ltd | Computer apparatus and path management method |
| US20120011506A1 (en) * | 2010-07-07 | 2012-01-12 | Fujitsu Limited | Information processor, control method, and computer-readable recording medium recording control program |
| US20120084487A1 (en) * | 2010-10-01 | 2012-04-05 | Futurewei Technologies, Inc. | System and Method for Controlling the Input/Output of a Virtualized Network |
| US20130326505A1 (en) * | 2012-05-30 | 2013-12-05 | Red Hat Inc. | Reconfiguring virtual machines |
| JP2015197874A (en) * | 2014-04-03 | 2015-11-09 | 日本電信電話株式会社 | virtual communication path construction system, virtual communication path construction method, and virtual communication path construction program |
-
2015
- 2015-06-16 JP JP2015121268A patent/JP6548010B2/en active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009134601A (en) * | 2007-11-30 | 2009-06-18 | Fujitsu Ltd | Disk access method switching device |
| JP2011014088A (en) * | 2009-07-06 | 2011-01-20 | Hitachi Ltd | Computer apparatus and path management method |
| US20120011506A1 (en) * | 2010-07-07 | 2012-01-12 | Fujitsu Limited | Information processor, control method, and computer-readable recording medium recording control program |
| US20120084487A1 (en) * | 2010-10-01 | 2012-04-05 | Futurewei Technologies, Inc. | System and Method for Controlling the Input/Output of a Virtualized Network |
| US20130326505A1 (en) * | 2012-05-30 | 2013-12-05 | Red Hat Inc. | Reconfiguring virtual machines |
| JP2015197874A (en) * | 2014-04-03 | 2015-11-09 | 日本電信電話株式会社 | virtual communication path construction system, virtual communication path construction method, and virtual communication path construction program |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2021070240A1 (en) * | 2019-10-08 | 2021-04-15 | ||
| 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 |
| JP7251648B2 (en) | 2019-10-08 | 2023-04-04 | 日本電信電話株式会社 | In-server delay control system, in-server delay control device, in-server delay control method and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6548010B2 (en) | 2019-07-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114996185B (en) | Bridging across address space | |
| EP3556081B1 (en) | Reconfigurable server | |
| US9529773B2 (en) | Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller | |
| US9176767B2 (en) | Network interface card device pass-through with multiple nested hypervisors | |
| US8776090B2 (en) | Method and system for network abstraction and virtualization for a single operating system (OS) | |
| US10684880B2 (en) | Allocating and initializing I/O devices at virtual | |
| CN110770708B (en) | Method and apparatus for hardware virtualization | |
| US9294567B2 (en) | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller | |
| JP6458798B2 (en) | Computer system, data processing device | |
| JP2009187368A (en) | USB port sharing control method | |
| US10169075B2 (en) | Method for processing interrupt by virtualization platform, and related device | |
| JP7310924B2 (en) | In-server delay control device, server, in-server delay control method and program | |
| CN114691286B (en) | Server system, virtual machine creation method and device | |
| US10452570B1 (en) | Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints | |
| WO2015010896A1 (en) | Input/output monitoring mechanism | |
| CN110968392B (en) | Method and device for upgrading virtualized simulator | |
| US9483290B1 (en) | Method and system for virtual machine communication | |
| CN108124475A (en) | Virtual system Bluetooth communication method and device, virtual system, storage medium and electronic equipment | |
| KR101716715B1 (en) | Method and apparatus for handling network I/O apparatus virtualization | |
| Zazo et al. | A PCIe DMA engine to support the virtualization of 40 Gbps FPGA-accelerated network appliances | |
| CN119201341A (en) | A network communication method, device and equipment between a virtual machine and a host machine | |
| WO2015190079A1 (en) | Computer system, connection management method for remote device, and program recording medium | |
| US20240028381A1 (en) | Virtual i/o device management | |
| KR101468179B1 (en) | Method for changing virtual environment in cloud computuing and terminal equipment using the same | |
| JP6548010B2 (en) | Para-virtualized network device, information processing apparatus, information processing method, and information processing program |
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 | Request for written amendment filed |
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 | Request for written amendment filed |
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 |