JP2015170887A - パケット処理方法及びシステム - Google Patents
パケット処理方法及びシステム Download PDFInfo
- Publication number
- JP2015170887A JP2015170887A JP2014042622A JP2014042622A JP2015170887A JP 2015170887 A JP2015170887 A JP 2015170887A JP 2014042622 A JP2014042622 A JP 2014042622A JP 2014042622 A JP2014042622 A JP 2014042622A JP 2015170887 A JP2015170887 A JP 2015170887A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- packet
- transfer destination
- memory area
- executed
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】1台の物理サーバにおいて実行される複数台の仮想マシンの間における通信を高速化する。【解決手段】第1のコンピュータ1が実行する第1の仮想マシン110が、第1のコンピュータ1が実行する第2の仮想マシン120が転送先であるパケットを、第1の仮想マシン110と第2の仮想マシン120とが共用するメモリ領域104に格納し、第2の仮想マシン120が、第1の仮想マシン110と第2の仮想マシン120とが共用するメモリ領域104から、第2の仮想マシン120が転送先であるパケットを取り出す処理を含む。【選択図】図3
Description
本発明は、仮想マシン間における通信の制御技術に関する。
NFV(Network Functions Virtualization)とは、サーバ仮想化(server virtualization)によって、通信機器の機能を物理サーバ上で動作するソフトウェアとして実装する技術である。NFVを利用すれば、専用の通信機器を汎用の物理サーバに置き換えることができるので、コストの低減等を図ることができる。
NFVは、例えば、SBC(Session Border Controller)という通信機器に対して適用されている。SBCとは、例えば図1に示すように、IP(Internet Protocol)電話サービス網において網と網との間に設置されるゲートウェイ装置である。SBCを設置することによって、網間における差分を吸収及び隠蔽し、また、セキュリティを確保することができる。
NFVで利用される物理サーバにおいては、1台以上の仮想マシンが実行される。物理サーバ上の仮想マシンは、同じ物理サーバ上の他の仮想マシンとの間において通信を行うが、通信機器としての性能を向上させるためには、仮想マシン間における通信を高速化することが好ましい。但し、同じ物理サーバにおいて実行される複数台の仮想マシンの間における通信を高速化することに着目した従来技術は存在しない。
従って、本発明の目的は、1つの側面では、1台の物理サーバにおいて実行される複数台の仮想マシンの間における通信を高速化するための技術を提供することである。
本発明に係るパケット処理方法は、第1のコンピュータが実行する第1の仮想マシンが、第1のコンピュータが実行する第2の仮想マシンが転送先であるパケットを、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域に格納し、第2の仮想マシンが、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域から、第2の仮想マシンが転送先であるパケットを取り出す処理を含む。
1つの側面では、1台の物理サーバにおいて実行される複数台の仮想マシンの間における通信を高速化できるようになる。
図2に、本実施の形態のシステム概要を示す。例えばIPネットワークであるネットワーク3には、物理サーバ1及び2が接続される。物理サーバ1及び2は、ネットワーク3を介して通信を行う。
図3に、物理サーバ1の機能ブロック図を示す。物理サーバ1は、物理NIC(Network Interface Card)100を含む。また、物理サーバ1においてはホストOS(Operating System)101が実行される。ホストOS101が管理するアドレス空間は、カーネル空間とユーザ空間とを含む。ホストOS101のカーネル空間において、パケットの転送を行うブリッジ部102が実行される。ホストOS101のユーザ空間において、仮想化ソフトウェアであるハイパバイザ103と、VM(Virtual Machine)110と、VM120とが実行される。共用メモリ領域104は、VM110及び120が共用するメモリ領域であり、ハイパバイザ103により提供される。
VM110は、仮想NIC111を含む。また、VM110においてはゲストOS112が実行される。ゲストOS112は、仮想NIC111を制御するNICドライバ113と、判定部115、共用メモリ管理部116及びデータ格納部117を含むパケット処理部114とを含む。パケット処理部114は、例えば、パケットの処理を行うライブラリである。
判定部115は、データ格納部117に格納されたデータを用いて、パケットの転送先が物理サーバ1内のVMであるか判定する処理等を行う。共用メモリ管理部116は、共用メモリ領域104における受信用キューにエンキューする処理及び受信用キューからデキューする処理等を行う。
VM120は、仮想NIC121を含む。また、VM120においてはゲストOS122が実行される。ゲストOS122は、仮想NIC121を制御するNICドライバ123と、判定部125、共用メモリ管理部126及びデータ格納部127を含むパケット処理部124とを含む。パケット処理部124は、例えば、パケットの処理を行うライブラリである。
判定部125は、データ格納部127に格納されたデータを用いて、パケットの転送先が物理サーバ1内のVMであるか判定する処理等を行う。共用メモリ管理部126は、共用メモリ領域104における受信用キューにエンキューする処理及び受信用キューからデキューする処理等を行う。
なお、物理サーバ2の機能ブロック図は物理サーバ1の機能ブロック図と同様であるので、説明を省略する。
図4に、データ格納部117及び127に格納される判定テーブルの一例を示す。図4の例では、VM名と、VMのIPアドレスとが格納される。判定テーブルにIPアドレスが登録されているVMは、物理サーバ1内で実行されているVMである。
共用メモリ領域104には、物理サーバ1内で実行されている各VMについて受信用キューが設けられる。共用メモリ領域104における受信用キューへのアクセスには、図5に示すような構造体が利用される。図5に示した構造体には、読み込みの位置を表す読み込みインデックスと、書き込みの位置を表す書き込みインデックスと、受信用キューに格納されたパケットの個数を表す情報と、受信用キューのサイズを表す情報とが含まれる。受信用キューへのエンキューの際には、書き込みインデックスが利用される。受信用キューからのデキューの際には、読み込みインデックスが利用される。構造体は各受信用キューについて用意され、共用メモリ領域104に格納される。
図6に、共用メモリ領域104における受信用キューの構造の一例を示す。図6の例においては、パケットが格納されている領域に色が付されている。構造体に含まれる読み込みインデックスは、パケットが格納された領域のうち先頭のパケットが格納された領域を示す。構造体に含まれる書き込みインデックスは、パケットが格納されていない領域のうち先頭の領域を示す。図6の例の場合、num=3であり、size=5である。
次に、図7乃至図12を用いて、物理サーバ1が実行する処理について説明する。はじめに、図7及び8を用いて、VMの初期化処理について説明する。なお、VM110及び120に対しては同一の初期化処理を行うので、ここではVM110についての初期化処理を例として説明する。
まず、物理サーバ1のホストOS101は、VM110を起動する(図7:ステップS1)。なお、ステップS1において、ホストOS101は、共用メモリ領域104を用いたVM間通信を行うことをVM110に要求する。これに応じ、VM110は、ゲストOS112のパケット処理部114を起動し(ステップS3)、パケット処理部114における共用メモリ管理部116を初期化(例えばパラメータを初期化)する(ステップS5)。
共用メモリ管理部116は、共用メモリ領域104に、VM110の受信用キューの確保を開始する(ステップS7)。
共用メモリ管理部116は、共用メモリ領域104にVM110の受信用キューを確保できたか判断する(ステップS9)。確保できない(例えばエラーが発生した)場合(ステップS9:Noルート)、共用メモリ領域104を用いたVM間通信を行うことができないので、処理を終了する。
一方、確保できた場合(ステップS9:Yesルート)、共用メモリ管理部116は、共用メモリ領域104に、VM110用の受信用キューを確保できたことを表す確保フラグを立てる(ステップS11)。そして、共用メモリ管理部116は、VM110の受信用キューのアドレスを、共用メモリ領域104における所定の領域に格納する(ステップS13)。
共用メモリ管理部116は、物理サーバ1内で実行されている他VM(本実施の形態においては、VM120)の確保フラグが共用メモリ領域104に立っているか判断する(ステップS15)。他VMの確保フラグが共用メモリ領域104に立っていない場合(ステップS15:Noルート)、他VMとの間では共用メモリ領域104を用いたVM間通信を行うことができないので、処理を終了する。
一方、他VMの確保フラグが共用メモリ領域104に立っている場合(ステップS15:Yesルート)、共用メモリ管理部116は、他VMの受信用キューのアドレスを、共用メモリ領域104おける所定の領域から読み出し、データ格納部117に格納されているアドレステーブルに登録する(ステップS17)。そして処理を終了する。
図8に、アドレステーブルに格納されるデータの一例を示す。図8の例では、VM名と、受信用キューのアドレスとが登録されている。共用メモリ管理部116は、アドレステーブルを用いて、共用メモリ領域104を用いたVM間通信を他VMとの間で行う。詳細については後述する。
以上のような処理を実行すれば、共用メモリ領域104に受信用キューがマッピングされるので、共用メモリ領域104を用いたVM間通信を開始できるようになる。また、上ではVM110についての初期化処理を例にして説明したが、VM120についても同様である。なお、ステップS15及びS17の処理は、物理サーバ1内で実行されている他VMの数が複数である場合、複数の他VMの各々について実行される。
なお、VM(ここでは、VMaとする)が起動した後、新たに他VMが起動する場合がある。このような場合にも共用メモリ領域104を用いたVM間通信を行えるようにするため、VMaは以下のような処理を実行する。具体的には、VMaは、例えば定期的に、ステップS15及びS17の処理を実行することで、新たに起動した他VMの受信用キューのアドレスを、アドレステーブルに登録する。又は、VMaは、新たに他VMが起動したことを検出した場合に、ステップS15及びS17の処理を実行することで、新たに起動した他VMの受信用キューのアドレスを、アドレステーブルに登録する。
次に、図9及び図10を用いて、判定部115が実行する処理について説明する。なお、ここでは判定部115を例として説明するが、判定部125が実行する処理も判定部115が実行する処理と同様である。
まず、判定部115は、パケット処理部114から、転送すべきパケットを受け取る(図9:ステップS21)。そして、判定部115は、パケットの転送先のIPアドレスは、判定テーブルに登録されたIPアドレスであるか否か判定する(ステップS23)。すなわち、判定部115は、同じ物理サーバで実行されているVMが転送先であるパケットであるか否か判定する。
パケットの転送先のIPアドレスが判定テーブルに登録されたIPアドレスではない場合(ステップS23:Noルート)、転送先のVMは、同じ物理サーバ内のVMではない。そこで、判定部115は、ステップS21において受け取ったパケットを、NICドライバ113に出力する(ステップS27)。
NICドライバ113に出力されたパケットは、図10に示すような経路で転送される。具体的には、NICドライバ113は、判定部115から受け取ったパケットを、仮想NIC111を介してブリッジ部102に出力する。ブリッジ部102は、受け取ったパケットの転送先のアドレス等に基づき決定された物理NIC100に、そのパケットを出力する。そして、パケットは、転送先のVMが実行されている物理サーバまで転送される。
一方、パケットの転送先のIPアドレスが判定テーブルに登録されたIPアドレスである場合(ステップS23:Yesルート)、転送先のVMは、同じ物理サーバ内のVMである。そこで、判定部115は、共用メモリ領域104において、転送先のVMの確保フラグが立っているか判定する(ステップS25)。
転送先のVMの確保フラグが立っていない場合(ステップS25:Noルート)、転送先のVMについて受信用キューは確保されていないので、共用メモリ領域104を用いたパケットの転送を行うことができない。そこで、判定部115は、ステップS21において受け取ったパケットを、NICドライバ113に出力する(ステップS27)。
一方、転送先のVMの確保フラグが立っている場合(ステップS25:Yesルート)、共用メモリ領域104を用いたVM間通信を行うことができる。そこで、判定部115は、ステップS21において受け取ったパケットと、判定テーブルにおいて転送先のIPアドレスに対応付けて登録されているVM名とを、共用メモリ管理部116に出力する(ステップS29)。そして処理を終了する。
以上のような処理を実行すれば、共用メモリ領域104を用いて転送すべきパケットとそれ以外のパケットとを分けることができるようになる。
次に、図11を用いて、転送すべきパケットを判定部115から受け取った共用メモリ管理部116が実行する処理について説明する。なお、ここでは共用メモリ管理部116を例として説明するが、共用メモリ管理部126が実行する処理も共用メモリ管理部116が実行する処理と同様である。
まず、共用メモリ管理部116は、転送すべきパケットと転送先のVMのVM名とを判定部115から受け取る(図11:ステップS31)。
共用メモリ管理部116は、ステップS31において受け取ったVM名に対応する受信用キューのアドレスを、アドレステーブルを用いて特定する。そして、共用メモリ管理部116は、特定された受信用キューのアドレスが示す受信用キューに、ステップS31において受け取ったパケットを格納する(ステップS33)。そして処理を終了する。
次に、図12を用いて、共用メモリ管理部126が受信用キューからパケットを取り出す処理について説明する。なお、ここでは共用メモリ管理部126を例として説明するが、共用メモリ管理部116が実行する処理も共用メモリ管理部126が実行する処理と同様である。
まず、共用メモリ管理部126は、例えば定期的に、VM120の受信用キューにパケットが有るか判断する(図12:ステップS41)。
VM120の受信用キューにパケットが無い場合(ステップS41:Noルート)、ステップS41の処理に戻る。一方、VM120の受信用キューにパケットが有る場合(ステップS41:Yesルート)、共用メモリ管理部126は、VM120の受信用キューの先頭からパケットを取り出し、転送先であるパケット処理部124に出力する(ステップS43)。そしてステップS41の処理に戻る。
以上のような処理を実行すれば、同じ物理サーバ内で実行される複数のVMの間における通信を、共用メモリ領域104を用いて高速に行うことができるようになる。
図13に示すように、本実施の形態においては、同じ物理サーバ内で実行される複数のVMの間におけるパケットの転送は、ホストOS101のユーザ空間内で完了する。よって、ホストOS101のユーザ空間におけるゲストOSから共用メモリ領域104へのコピー、及びホストOSのユーザ空間における共用メモリ領域104からゲストOSへのコピーを行えば、パケットの転送が完了する。
一方、本実施の形態の方法を用いない場合には、図14に示すようになる。具体的には、ゲストOSのユーザ空間からゲストOSのカーネル空間へのコピー、ゲストOSのカーネル空間からホストOSのカーネル空間へのコピー、ホストOSのカーネル空間からゲストOSのカーネル空間へのコピー、及びゲストOSのカーネル空間からゲストOSのユーザ空間へのコピーが行われる。よって、本実施の形態の方法と比べてコピーの回数が多いため、パケットの転送に要する時間が長くなり、また消費されるリソースが多くなる。また、本実施の形態の方法は、仮想スイッチ等を用いて物理サーバ内でVM間通信を行う方法と比較して、消費されるリソースの量を少なくすることができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した物理サーバ1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上では判定テーブルとアドレステーブルとを別々に設けているが、例えば図15に示すように、判定テーブルとアドレステーブルとを一体にしたテーブルを設けてもよい。
なお、上で述べた物理サーバ1及び2は、コンピュータ装置であって、図16に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るパケット処理方法は、(A)第1のコンピュータが実行する第1の仮想マシンが、第1のコンピュータが実行する第2の仮想マシンが転送先であるパケットを、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域に格納し、(B)第2の仮想マシンが、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域から、第2の仮想マシンが転送先であるパケットを取り出す処理を含む。
このようにすれば、ホストOSのカーネル空間にパケットをコピーする処理は不要であるので、コピーする処理によるオーバーヘッドを削減し、仮想マシン間でのパケットの転送を高速化できるようになる。また、仮想スイッチ等を経由する方法と比べて、消費するリソースを少なくすることができる。
また、本パケット処理方法は、(C)第1の仮想マシンが、第1のコンピュータとは異なる第2のコンピュータが実行する第3の仮想マシンが転送先であるパケットを、第1のコンピュータの物理インタフェースへの出力を制御する制御部に出力する処理をさらに含んでもよい。このようにすれば、同一のコンピュータ上で実行されていない仮想マシンに対しては通常どおりパケットを転送することができるようになる。
また、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域は、第1のコンピュータが実行する仮想マシン毎に、当該仮想マシンが転送先であるパケットを格納する領域を含んでもよい。そして、上で述べた第1の仮想マシンが、第2の仮想マシンが転送先であるパケットを、第2の仮想マシンが転送先であるパケットを格納する領域に格納し、上で述べた第2の仮想マシンが、第2の仮想マシンが転送先であるパケットを格納する領域から、第2の仮想マシンが転送先であるパケットを取り出してもよい。このようにすれば、第2の仮想マシンから第1の仮想マシンにパケットを転送する場合及びメモリ領域を共用する仮想マシンが3台以上である場合にも対処できるようになる。
また、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域には、第2の仮想マシンが転送先であるパケットを格納する領域のアドレスがさらに格納されていてもよい。そして、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域に格納する処理において、(a1)第1の仮想マシンが、第2の仮想マシンが転送先であるパケットを格納する領域のアドレスが示す領域に、第2の仮想マシンが転送先であるパケットを格納してもよい。このようにすれば、パケットを適切な領域に格納できるようになる。
また、第1の仮想マシンと第2の仮想マシンとが共用するメモリ領域は、第1のコンピュータにおける仮想化ソフトウェアにより実現されてもよい。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1のコンピュータが実行する第1の仮想マシンが、前記第1のコンピュータが実行する第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第2の仮想マシンが、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
処理を含むパケット処理方法。
第1のコンピュータが実行する第1の仮想マシンが、前記第1のコンピュータが実行する第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第2の仮想マシンが、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
処理を含むパケット処理方法。
(付記2)
前記第1の仮想マシンが、前記第1のコンピュータとは異なる第2のコンピュータが実行する第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する制御部に出力する
処理をさらに含む付記1記載のパケット処理方法。
前記第1の仮想マシンが、前記第1のコンピュータとは異なる第2のコンピュータが実行する第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する制御部に出力する
処理をさらに含む付記1記載のパケット処理方法。
(付記3)
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域は、
前記第1のコンピュータが実行する仮想マシン毎に、当該仮想マシンが転送先であるパケットを格納する領域を含み、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第2の仮想マシンが転送先であるパケットを格納する領域に格納し、
前記第2の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを格納する領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
付記1又は2記載のパケット処理方法。
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域は、
前記第1のコンピュータが実行する仮想マシン毎に、当該仮想マシンが転送先であるパケットを格納する領域を含み、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第2の仮想マシンが転送先であるパケットを格納する領域に格納し、
前記第2の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを格納する領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
付記1又は2記載のパケット処理方法。
(付記4)
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域には、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスがさらに格納されており、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納する処理において、前記第1の仮想マシンが、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスが示す領域に、前記第2の仮想マシンが転送先であるパケットを格納する
付記3記載のパケット処理方法。
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域には、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスがさらに格納されており、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納する処理において、前記第1の仮想マシンが、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスが示す領域に、前記第2の仮想マシンが転送先であるパケットを格納する
付記3記載のパケット処理方法。
(付記5)
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域は、前記第1のコンピュータにおける仮想化ソフトウェアにより実現される
付記1乃至3のいずれか1つ記載のパケット処理方法。
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域は、前記第1のコンピュータにおける仮想化ソフトウェアにより実現される
付記1乃至3のいずれか1つ記載のパケット処理方法。
(付記6)
第1の仮想マシンと、
第2の仮想マシンと、
を実行し、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域
を有し、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第2の仮想マシンが、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
情報処理装置。
第1の仮想マシンと、
第2の仮想マシンと、
を実行し、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域
を有し、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第2の仮想マシンが、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
情報処理装置。
(付記7)
第1の仮想マシン及び第2の仮想マシンを実行する第1のコンピュータと、
第3の仮想マシンを実行する第2のコンピュータと、
を有し、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する通信処理部に出力し、
前記第2の仮想マシンが、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
パケット処理システム。
第1の仮想マシン及び第2の仮想マシンを実行する第1のコンピュータと、
第3の仮想マシンを実行する第2のコンピュータと、
を有し、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する通信処理部に出力し、
前記第2の仮想マシンが、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
パケット処理システム。
1,2 物理サーバ 100 物理NIC
101 ホストOS 102 ブリッジ部
103 ハイパバイザ 104 共用メモリ領域
110,120 VM 111,121 仮想NIC
112,122 ゲストOS 113,123 NICドライバ
114,124 パケット処理部 115,125 判定部
116,126 共用メモリ管理部 117,127 データ格納部
3 ネットワーク
101 ホストOS 102 ブリッジ部
103 ハイパバイザ 104 共用メモリ領域
110,120 VM 111,121 仮想NIC
112,122 ゲストOS 113,123 NICドライバ
114,124 パケット処理部 115,125 判定部
116,126 共用メモリ管理部 117,127 データ格納部
3 ネットワーク
Claims (5)
- 第1のコンピュータが実行する第1の仮想マシンが、前記第1のコンピュータが実行する第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第2の仮想マシンが、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
処理を含むパケット処理方法。 - 前記第1の仮想マシンが、前記第1のコンピュータとは異なる第2のコンピュータが実行する第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する制御部に出力する
処理をさらに含む請求項1記載のパケット処理方法。 - 前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域は、
前記第1のコンピュータが実行する仮想マシン毎に、当該仮想マシンが転送先であるパケットを格納する領域を含み、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第2の仮想マシンが転送先であるパケットを格納する領域に格納し、
前記第2の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを格納する領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
請求項1又は2記載のパケット処理方法。 - 前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域には、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスがさらに格納されており、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納する処理において、前記第1の仮想マシンが、前記第2の仮想マシンが転送先であるパケットを格納する領域のアドレスが示す領域に、前記第2の仮想マシンが転送先であるパケットを格納する
請求項3記載のパケット処理方法。 - 第1の仮想マシン及び第2の仮想マシンを実行する第1のコンピュータと、
第3の仮想マシンを実行する第2のコンピュータと、
を有し、
前記第1の仮想マシンが、
前記第2の仮想マシンが転送先であるパケットを、前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域に格納し、
前記第3の仮想マシンが転送先であるパケットを、前記第1のコンピュータの物理インタフェースへの出力を制御する通信処理部に出力し、
前記第2の仮想マシンが、
前記第1の仮想マシンと前記第2の仮想マシンとが共用するメモリ領域から、前記第2の仮想マシンが転送先であるパケットを取り出す
パケット処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014042622A JP2015170887A (ja) | 2014-03-05 | 2014-03-05 | パケット処理方法及びシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014042622A JP2015170887A (ja) | 2014-03-05 | 2014-03-05 | パケット処理方法及びシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015170887A true JP2015170887A (ja) | 2015-09-28 |
Family
ID=54203291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014042622A Pending JP2015170887A (ja) | 2014-03-05 | 2014-03-05 | パケット処理方法及びシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015170887A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017084133A (ja) * | 2015-10-28 | 2017-05-18 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
WO2019058874A1 (ja) * | 2017-09-21 | 2019-03-28 | 株式会社デンソー | 仮想化システム、仮想化プログラム、及び、記憶媒体 |
US10545885B2 (en) | 2017-12-01 | 2020-01-28 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US10872174B2 (en) | 2018-03-20 | 2020-12-22 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US12079506B2 (en) | 2020-10-29 | 2024-09-03 | Samsung Electronics Co., Ltd. | Memory expander, host device using memory expander, and operation method of sever system including memory expander |
-
2014
- 2014-03-05 JP JP2014042622A patent/JP2015170887A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017084133A (ja) * | 2015-10-28 | 2017-05-18 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
WO2019058874A1 (ja) * | 2017-09-21 | 2019-03-28 | 株式会社デンソー | 仮想化システム、仮想化プログラム、及び、記憶媒体 |
US10545885B2 (en) | 2017-12-01 | 2020-01-28 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US10872174B2 (en) | 2018-03-20 | 2020-12-22 | Kabushiki Kaisha Toshiba | Information processing device, information processing method, and computer program product |
US12079506B2 (en) | 2020-10-29 | 2024-09-03 | Samsung Electronics Co., Ltd. | Memory expander, host device using memory expander, and operation method of sever system including memory expander |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101747518B1 (ko) | 소프트웨어 정의 네트워크에서의 가상화된 컨테이너 및 가상 머신을 통한 로컬 서비스 체이닝 | |
EP2831729B1 (en) | System and method for supporting live migration of virtual machines based on an extended host channel adaptor (hca) model | |
US8335237B1 (en) | Streamlined guest networking in a virtualized environment | |
US9450885B2 (en) | System and method for supporting live migration of virtual machines in a virtualization environment | |
US8521941B2 (en) | Multi-root sharing of single-root input/output virtualization | |
US8225332B2 (en) | Method and system for protocol offload in paravirtualized systems | |
US20170024224A1 (en) | Dynamic snapshots for sharing network boot volumes | |
US10911405B1 (en) | Secure environment on a server | |
US10671571B2 (en) | Fast network performance in containerized environments for network function virtualization | |
US8793688B1 (en) | Systems and methods for double hulled virtualization operations | |
JP2015170887A (ja) | パケット処理方法及びシステム | |
US10218674B2 (en) | MAC address allocation for virtual machines | |
CN108139937B (zh) | 多根i/o虚拟化系统 | |
US20200379818A1 (en) | Managed computing resource placement as a service for dedicated hosts | |
US11785054B2 (en) | Deriving system architecture from security group relationships | |
WO2013114620A1 (ja) | 仮想マシン制御プログラム、仮想マシン制御方法および情報処理装置 | |
US10949234B2 (en) | Device pass-through for virtualized environments | |
US10931581B2 (en) | MAC learning in a multiple virtual switch environment | |
US8713569B2 (en) | Dynamic association and disassociation of threads to device functions based on requestor identification | |
US20160050300A1 (en) | Zero-Copy Multiplexing Using Copy-On-Write | |
CN117520215A (zh) | 一种缺页处理方法和相关设备 | |
Zhang et al. | Live Migrating the Virtual Machine Directly Accessing a Physical NIC |