JP2015197874A - 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム - Google Patents
仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム Download PDFInfo
- Publication number
- JP2015197874A JP2015197874A JP2014076807A JP2014076807A JP2015197874A JP 2015197874 A JP2015197874 A JP 2015197874A JP 2014076807 A JP2014076807 A JP 2014076807A JP 2014076807 A JP2014076807 A JP 2014076807A JP 2015197874 A JP2015197874 A JP 2015197874A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- virtual machine
- communication path
- guest
- external process
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
Virtioでは、コンソール、ファイル入出力、ネットワーク通信といったデータ入出力に関して、転送データの単一方向の転送用トランスポートとして、リングバッファで設計されたキューによるデータ交換とキューのオペレーションを以て定義している。そして、virtioのキューの仕様を利用して、それぞれのデバイスに適したキューの個数と大きさをゲストOS起動時に用意することにより、ゲストOSと自仮想マシン外部との通信を、ハードウェアエミュレーションを実施せずにキューによるオペレーションだけで実現することができる。詳細な仕様については、非特許文献1に記載されている。
(共有バッファキューの構成)
親側(例:ゲストOS)と子側(例:仮想マシン)が共有する共有バッファキューについて説明する。共有バッファキューは、非特許文献1に記載の仕様の通りであるが、本発明の動作(実施例)を説明するにあたり、キュー構成とキュー操作に関するオペレーションを前提とするため、本節にて説明する。共有バッファキューは既に述べたように親側から子側、または子側から親側への単一方向で利用するものであり、図2の通り次の要素で構成される(本発明はネットワークデバイスに関するものであり、データ転送用のキューを送信用、受信用の2つとする(virtio−netの仕様の通りである))。
転送データを保存する各ディスクリプタを参照するためのポインタ。ディスクリプタは転送データの参照アドレスと、その長さ、転送フラグ(本発明では特に重要ではないため説明は省略する)、後続データがある場合のディスクリプタのポインタの4つで構成される(図2)。
availリングでは、ヘッダ、availインデックス(availidx)、availリング列、used_event の4つの要素からなる。ヘッダについては本発明では特に重要ではないので省略する。availリング列はそれぞれインデックスが順番に割り振られたリングバッファからなり(図においては0番からインデックスを割り当てている)、それぞれのバッファにはゲストOS側が確保し用意したディスクリプタの番号がインデックスの順番に従って記載される。availインデックスは現在消費済みのavailリング列の最終インデックスをゲストOSが記載する。used_eventについても本発明には特に重要ではないので省略する。
usedリングでは、ヘッダ、usedインデックス(usedidx)、usedリング列、avail_eventの4つの要素から成る。ヘッダは本発明では特に重要ではないので省略する。usedリング列はそれぞれインデックスが順番に振られたリングバッファからなり、ゲストOSが用意したavailリング列より、仮想マシンがインデックス順に取り出したディスクリプタ番号を順番にリングに書き込んだものである。usedインデックスは現在消費済みのusedリング列の最終インデックスを仮想マシンが記載する。avail_eventについても本発明には特に重要ではないので省略する。
このインデックス値は、子側が保持する値であり、最終的に取り出し回収したavailリングのavailインデックス値となる。親側がアップデートしたavail_idxと、last_avail_idxを比較することで、アップデートされたavailリングの個数を子側が知ることができる。
このインデックス値は、親側が保持する値であり、最終的に取り出し回収したusedリングのusedインデックス値となる。子側がアップデートしたused_idxと、last_used_idxを比較することで、アップデートされたusedリングの個数を親側が知ることができる。
親側から子側へのデータ転送は送信専用のキューを利用する。初期状態では、ディスクリプタ、availリング列、usedリング列が図3の通り初期化された状態である。転送時ゲストOSはデータ1つを仮想マシン側に転送する場合、図4の通り、availリングの先頭に確保したディスクリプタ番号(S−1)を記入する。Sはリング列のサイズとする。ディスクリプタS−1はゲストOSによって転送用データで埋められる。そして、ゲストOSはavailidxを0に進める。その後、ゲストOSは仮想マシン側にavailリング更新通知を送付する。
子側から親側へのデータ転送は、受信専用キューを利用する。親側から子側への転送の初期状態とは異なり、子側から親側へ送信する場合は、利用可能なavailリング列に確保済みディスクリプタをできるだけ多く用意する。
仮想マシン内のゲストOSが外部と通信する場合は、子側が外部と接続し、子側が外部と親側の中継役としてデータを送受信する必要がある。例えば、ゲストOSとホストOS間の通信がその例の1つである。ここで、外部をホストOSとした場合、既存の通信方法として2パターン存在する。
(参1)[構築される接続]
仮想マシン及び前記仮想マシン外に形成された外部プロセスが動作可能なホストOSを有する物理マシンと、
前記仮想マシン内で動作するゲストOSに、前記仮想マシンと前記外部プロセスとを直接接続する仮想通信路を構築させる通信路構築手段と、
を備える。
仮想マシン及び前記仮想マシン外に形成される外部プロセスが動作可能なホストOSを有する物理マシン上に、前記仮想マシン及び前記外部プロセスを形成する仮想マシン形成手順と、
前記仮想マシン内で動作するゲストOSに、前記仮想マシンと前記外部プロセスとを直接接続する仮想通信路を構築させる仮想通信路構築手順と
を行う。
前記仮想マシンと前記ゲストOSとの間のデータ転送用として形成された共有バッファキューについて、メモリ操作で前記共有バッファキューのデータ転送先を前記外部プロセスへ拡張して前記仮想通信路を構築するとともに、前記ゲストOSと前記外部プロセスとの間の通信に関する手続きを実現させる共有バッファキュー拡張用プロトコル機能を有することを特徴とする。
前記仮想マシンと前記ゲストOSとの間のデータ転送用として形成された共有バッファキューについて、メモリ操作で前記共有バッファキューのデータ転送先を前記外部プロセスへ拡張して前記仮想通信路を構築するとともに、前記ゲストOSと前記外部プロセスとの間の通信に関する手続きを実現させる共有バッファキュー拡張ステップを有することを特徴とする。
前記仮想通信路の状態を検知する接続状態検知機能と、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知機能と、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続機能と、
をさらに有することを特徴とする。
前記仮想通信路の状態を検知する接続状態検知ステップと、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知ステップと、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続ステップと、
をさらに有することを特徴とする。
本発明に係る「仮想通信路構築システム及び仮想通信路構築方法」は、ゲストOSと外部プロセス間の通信路構築システムおよびその制御方法である。本発明は、仮想マシンおよび外部プロセスがそれぞれ具備する通信デバイス(通信インタフェース)への新規機能追加を対象とする(図14を参照。)。
前記仮想通信路の状態を検知する接続状態検知機能と、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知機能と、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続機能と、
をさらに有する。
前記仮想通信路の状態を検知する接続状態検知ステップと、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知ステップと、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続ステップと、
をさらに有する。
(a)通信接続確立手続き、キューの操作モード交換手続き、バッファキューの更新通知手続き、接続終了手続きを実現する共有バッファキュー拡張用プロトコル機能
(b)通信確立中の接続状態検知機能
(c)通信確立中の接続状態通知機能
ここで、接続状態通知機能とは、通信が確立した場合に仮想マシン内部または外部プロセス内部へインタフェースアップの状態通知する機能、及び通信が切断した(またはされた)場合にインタフェースダウンの状態通知する機能である。
(d)切断状態では、再度通信先へ定期的に接続する再接続機能
・外部プロセスと仮想マシン間の接続プロトコル
・他のバッファ方式
・ネットワーク以外のファイル入出力やコンソール入出力といった共有バッファキューで実現可能な入出力方式
実施例1においては、親側と子側間で既に説明したVirtioで定義された共有バッファキューのオペレーションを前提とする。
図16を用いて本発明の構成について記載する。
[構成1]
本実施例の仮想通信路構築システムは、
[接続状態管理部1]11、[受信データ更新通知部1]12、[受信データバッファキュー設定部1]13、[デバイス動作・フィーチャ設定部1]14、[送信データバッファキュー設定部1]15、[送信データ更新通知部1]16及び[デバイス種別登録部1]17から構成される仮想通信デバイスを表現し、ゲストOS側に仮想通信デバイスへのアクセスとゲストOS側で作成される共有バッファキューの情報を仮想デバイス側へ伝達するための[通信デバイスインタフェース部]10と、
[通信デバイスインタフェース部]10の[受信データバッファキュー設定部1]13、[デバイス動作・フィーチャ設定部1]14及び[送信データバッファキュー設定部1]15を介して設定される共有バッファキューの送信・受信それぞれのバッファキューの種類、大きさ、個数を管理する[送信用・受信用共有バッファキュー管理部1]20と、
仮想マシン起動時に起動オプションを処理する[基本設定処理部1]30と、
[接続状態通知機能部1]41、[接続状態検知機能部1]42、[接続・通信処理基本部1]43、[共有バッファキュー拡張用プロトコル処理部1]44及び[基本設定管理部1]45からなる[通信部(クライアント)]40と、
を備えた、起動オプションに指定されるファイル記述子で指定される接続先に接続する機能を備える、仮想マシン側の[通信デバイス1]100(virtio−net−ipcデバイスと呼ぶ)、並びに
[接続状態管理部2]51、[受信データ出力部2]52、[受信データ通知部2]53、[デバイス動作・フィーチャ設定部2]54、[送信データ入力部2]55、[送信データ通知部2]56及び[デバイス種別登録部2]57から構成される、外部プロセスへ通信インタフェースを提供する、インタフェース部50と、
[受信用共有バッファキュー処理部2]61、[送信用・受信用共有バッファキュー管理部2]62及び[送信用共有バッファキュー処理部2]63からなるゲストOSで作成された共有バッファキューにメモリアクセスし、共有バッファキューを操作可能とする共有バッファキュー操作部60と、
外部プロセス起動時に起動オプションを処理する[基本設定処理部2]70と、
[接続状態通知機能部2]81、[接続状態検知機能部2]82、[接続・通信処理基本部2]83、[共有バッファキュー拡張用プロトコル処理部2]84及び[基本設定管理部2]85からなる[通信部(サーバ)]80と、
を備えた、起動オプションに指定されるファイル記述子で指定される接続先に接続する機能を備える、外部プロセス側の[通信デバイス]200
で構成される。
[送信用・受信用共有バッファキュー管理部1]20は、ゲストOSに[受信データバッファキュー設定部1]13、[デバイス動作・フィーチャ設定部1]14、[送信データバッファキュー設定部1]15を提供することにより、共有バッファキュー情報をゲストOSから取得し、その情報を管理することを可能とする。
[通信デバイスインタフェース部]10は、ゲストOSに[接続状態管理部1]11を提供し、[接続・通信処理基本部1]43と[接続状態検知機能部1]42と[接続状態通知機能部1]41とが連携して、ゲストOSに対し、インタフェース状態のオン/オフを認識させることのできる機能を備える。
[送信用・受信用共有バッファキュー管理部1]20と[共有バッファキュー拡張用プロトコル処理部1]44は、連携して外部プロセスに共有バッファキュー情報を提供する初期化シーケンス、設定シーケンス、更新通知シーケンス、及び終了シーケンスを実行可能なプロトコルを具備する。各シーケンスについては後述する。
[通信デバイスインタフェース部]10の動作が割り込み有りの場合、[受信データ更新通知部1]12、[送信データ更新通知部1]16及び[共有バッファキュー拡張用プロトコル処理部1]4420は、連携して外部プロセスにバッファキュー内容の更新の通知を更新通知シーケンスに従って実施する。
[通信デバイスインタフェース部]10の動作が割り込みなし(ポーリングモード)の場合、[通信デバイス1]100は、[受信データ更新通知部1]12及び[送信データ更新通知部1]16を利用せずに仮想マシンのデバイスドライバ側がポーリングモードで動作することにより、外部プロセスとの転送データ(送受信ともに)やり取りすることができる。
[送信用・受信用共有バッファキュー管理部1]は、管理する共有するバッファキューの種別・個数・サイズ情報をバージョン番号にマッピングし、そのバージョン情報をもとに仮想マシンと外部プロセス間で共有バッファキューの構成情報を共有することを可能とする。
[デバイス種別登録部1]17は、仮想マシン起動時の様々なオプション情報を処理する[基本設定処理部1]とそれら情報から共有バッファキュー種別に対応したデバイス情報を登録することができる。[基本設定管理部1]4530は、そのオプション情報すべてを管理することができる。
[通信デバイス1]100は、仮想マシンから取得したデータ転送モード(割り込み有り/割り込み無し(ポーリングモード))やデバイスフィーチャ情報を、[送信用・受信用共有バッファキュー管理部2]62を通して、[デバイス動作・フィーチャ設定部2]54に提供することにより、共有バッファキューの動作モードとフィーチャ情報を外部プロセスに通知する。これにより外部プロセスがゲストOSと外部プロセス間の仮想通信路を認識可能となる。
割り込みありの動作の場合に、仮想マシンからの転送データを受信する場合、更新通知シーケンスで通知される更新通知を[共有バッファキュー拡張用プロトコル処理部2]84が処理し、[受信用共有バッファキュー処理部2]61が[受信インタフェース]に転送データを転送し、かつ、転送データがあった旨を[受信データ通知部2]53に通知する。
割り込みなし(ポーリングモード)の動作の場合に、仮想マシンからの転送データを受信する場合、[受信用共有バッファキュー処理部2]61は、[受信データ通知部2]53を利用せずに、[受信データ出力部2]52からのデータ取得要求に従い共有バッファキュー処理を実施し、ポーリングモードで転送データを受信する。
割り込みありの動作の場合に、外部プロセスから仮想マシンへ転送データを送信する場合、[送信データ入力部2]55が転送データを受け取り、[送信用共有バッファキュー処理部2]63が共有バッファキュー処理を実行した後、[共有バッファキュー拡張用プロトコル処理部2]84は、仮想マシン側へ更新通知を送信し、送信データの受け取り完了通知が必要な場合は[送信データ通知部2]56を通して、処理ロジックへ通知する。
割り込みなし(ポーリングモード)の動作の場合に、外部プロセスから仮想マシンからの転送データを送信する場合、[送信データ通知部2]56を利用せずに、処理ロジックから[送信データ入力部2]55へ入力された転送データについて[送信用共有バッファキュー処理部2]63が共有バッファキュー処理を実施し、[共有バッファキュー拡張用プロトコル処理部2]84は、ポーリングモードで転送データを仮想マシン側へ送信する。
外部プロセスは、[接続・通信処理基本部2]83と[接続状態検知機能部2]82と[接続状態通知機能部2]81とが連携して、外部プロセスの処理ロジックに対し、インタフェース状態のオン/オフを認識させることのできる機能を備える。
[送信用・受信用共有バッファキュー管理部2]62と[共有バッファキュー拡張用プロトコル処理部2]84は、互いに連携して、初期化シーケンス、設定シーケンス、更新通知シーケンス、及び終了シーケンスを通して仮想マシンから提供される共有バッファキュー情報を取得可能なプロトコルを具備する。
[送信用・受信用共有バッファキュー管理部2]62は、仮想マシンから受信する共有バッファキューのバージョン情報をバッファキューの種別・個数・サイズ情報に分解・マッピングして管理し、バージョン情報をもとに仮想マシンと外部プロセス間で共有バッファキューの構成情報を共有する。
[基本設定処理部2]70は、外部プロセス起動時の様々なオプション情報を処理する。[デバイス種別登録部2]57は、それら情報から共有バッファキュー種別に対応したデバイス情報を登録することができる。[基本設定管理部2]85は、オプション情報すべてを管理することができる。
本発明は、仮想マシンと外部プロセス間で共有バッファキューのメモリ共有によるデータ転送を実現する手段として、それぞれの通信デバイスであるvirtio−net−ipcデバイスとvirtqueueデバイス間をIPC(Inter Process Communication)を使って接続を実現する。
(参2)[仮想マシンの起動時引数]
(参4)[設定メッセージ]
バージョン番号は、「バッファキュー種別」、「キューの個数」、「それぞれキューのサイズ」の組み合わせで表現される。キューは送信用、受信用ともに同じ個数であり、且つそれぞれのキューサイズも同一とする。
(参5)[バージョン番号]
図18の制御メッセージフォーマットにおいて、メッセージタイプ依存データフィールドは、設定メッセージと更新通知メッセージにて以下の値で利用される。なお、フィーチャ情報は(5)に後述する。
(参6)[メッセージタイプ依存データフィールド]
フィーチャ情報は、ゲストOSのvirtio−netドライバがサポートするチェックサムオフロードなどの機能と、virtio−net−ipcデバイスがサポートする機能とがゲストOS起動時に折衝され、合意されたものが、最終的なフィーチャ情報として確立する。このフィーチャ情報はVirtioのSpecの通りであるため省略する(詳細は、非特許文献1を参照。)。
上記(2)において、仮想マシンと外部プロセスとの接続後、仮想マシン側の[共有バッファキュー拡張用プロトコル処理部1]44または外部プロセス側の[共有バッファキュー拡張用プロトコル処理部2]84からそれぞれ[接続・通信処理基本部1]43、[接続・通信処理基本部2]83を介して、終了メッセージを相手に送付することにより、切断を実現する。このとき、外部プロセスは、図19の初期化メッセージや設定メッセージと同様に、バージョン番号、ノードIDを確認する(図19のS206)。これらがマッチしていれば、接続終了状態となる(図19のS207、S208、図15のS115、図20のS312)。
外部プロセスは、通信デバイスとしてvirtqueueデバイスをインタフェースとして起動する(図16)。
(参7)[外部プロセスの起動オプション]
共有バッファキューの操作については、virtioをベースとするため、従来の技術の<Virtioキューの操作>で説明したものと全く同じである。本発明により、キュー操作の子側の実施者が、仮想マシン上の通信デバイスから図16に記載の外部プロセス上のvirtqueueデバイスに切り替わったと考えることができる。
(ゲストOSから仮想マシンを通して、外部プロセスへ送信する場合)
図16と図21を利用し説明する。
ゲストOSはavailに送信データをディスクリプタに入れて積む
2.仮想マシンへ通知
ゲストOSは仮想マシンの通信デバイスへ通知。つまり、virtio−net−ipcデバイスの[共有バッファキュー拡張用プロトコル処理部1]44は[送信データ更新通知部1]16を通じて、更新があった旨を把握する。
3.外部プロセスへ通知
virtio−net−ipcデバイスは外部プロセスへ通知する。つまり、[共有バッファキュー拡張用プロトコル処理部1]44は、外部プロセスのvirtqueueデバイスへ送信用キューのavailの更新通知メッセージを送信。
4.外部プロセスは更新通知を受信し、availを確認し、ディスクリプタを回収
(a)virtqueueデバイスの[共有バッファキュー拡張用プロトコル処理部2]84において、更新メッセージ内の受信用キューの更新であることを知る。
(b)[共有バッファキュー拡張用プロトコル処理部2]84は[受信用共有バッファキュー処理部2]61に更新通知を知らせる。
(c)[受信用共有バッファキュー処理部2]61は更新のあった、ディスクリプタを回収し、[受信データ通知部2]53に受信したことを通知する。
(d)処理ロジックからは、[受信データ出力部2]52を通して、データを取得できるようになる
5.usedに回収したディスクリプタを積む
[受信用共有バッファキュー処理部2]61は[共有バッファキュー拡張用プロトコル処理部2]84にusedに回収したディスクリプタを積んだことを知らせる。
6.usedのアップデートを通知
[共有バッファキュー拡張用プロトコル処理部2]84は更新メッセージを仮想マシン側のvirtio−net−ipcデバイスに送信。
7.ゲストOSへusedのアップデートを通知
virtio−net−ipcデバイスの[共有バッファキュー拡張用プロトコル処理部1]44が更新メッセージを受信し、[送信データ更新通知部1]16にusedのアップデートを通知。
8.usedから外部プロセスが積んだディスクリプタを回収
ゲストOSは[送信データ更新通知部1]16により、更新通知を受信し、usedから外部プロセスが積んだディスクリプタを回収する。
図16と図21を利用して説明する。
(a)初期状態では外部プロセスが送信データを詰め込むための、ディスクリプタを仮想マシン側が用意しておく。つまり、ゲストOSが[受信データバッファキュー設定部1]13と[送信データバッファキュー設定部1]15を利用してvirtio−net−ipcデバイスの[送信用・受信用共有バッファキュー管理部1]へ共有バッファキューの個数・サイズ情報を通知する前に完了済みである。
(b)以後、初期状態以降は、手順9で回収したディスクリプタをavailに積むことを示す。
2.仮想マシンへ通知
(a)初期状態では発生しない。
(b)初期状態以降は、ゲストOSは[受信データ更新通知部1]12を通じて、[共有バッファキュー拡張用プロトコル処理部1]44に、更新があった旨を通知する。
3.外部プロセスへ通知
[共有バッファキュー拡張用プロトコル処理部1]44は、外部プロセスのvirtqueueデバイスへ受信用キューのavailの更新通知メッセージを送信。
4.availから利用可能な、ディスクリプタを回収
(a)外部プロセスの処理ロジックから[送信インタフェース]の[送信データ入力部2]55に送信データを送る。
(b)[送信用共有バッファキュー処理部2]63は[送信用・受信用共有バッファキュー管理部2]62から、外部プロセスが送信用で利用するキュー情報(仮想マシンから見ると受信キュー)を参照し、ディスクリプタを用意する。
5.ディスクリプタに転送データを積む
[送信用共有バッファキュー処理部2]63は転送データをディスクリプタにつめる。
6.usedに回収したディスクリプタを積む
[送信用共有バッファキュー処理部2]63は[共有バッファキュー拡張用プロトコル処理部2]84にusedに回収したディスクリプタを積んだことを知らせる。
7.usedのアップデートを通知
[共有バッファキュー拡張用プロトコル処理部2]84は更新メッセージを仮想マシン側のvirtio−net−ipcデバイスに送信。
8.ゲストOSへusedのアップデートを通知。
virtio−net−ipcデバイスの[共有バッファキュー拡張用プロトコル処理部1]44が更新メッセージを受信し、[受信データ更新通知部1]12にusedのアップデートを通知。
9.usedから外部プロセスが積んだディスクリプタを回収
(a)ゲストOSは[受信データ更新通知部1]12により、更新通知を受信し、usedから外部プロセスが積んだディスクリプタを取り出す。
(b)ディスクリプタには転送データが含まれるので、そのデータを取得するとともに、ディスクリプタを解放する(回収する)。
ゲストOSと外部プロセスはそれぞれ、ポーリングモードで動作するため、virtio−net−ipcデバイスおよびvirtqueueデバイスを介した、更新メッセージは中継されない。
図16と図22を利用し説明する。
ゲストOSはavailに送信データをディスクリプタに入れて積む
2.availを確認し、ディスクリプタを回収
[受信用共有バッファキュー処理部2]61はポーリングモードで、availの更新を確認する。更新があった場合、ディスクリプタを回収し、[受信データ出力部2]52を通して、転送データを取得できるように、保持しておく。
3.usedに回収したディスクリプタを積む
[受信用共有バッファキュー処理部2]61は[共有バッファキュー拡張用プロトコル処理部2]84にusedに回収したディスクリプタを積む。
4.usedから外部プロセスが積んだディスクリプタを回収
ゲストOSはポーリングモードで、usedの状態を確認し、usedの更新があった場合、外部プロセスが積んだディスクリプタを回収する。
図16と図22を利用して説明する。
1.availにディスクリプタを積む
(a)初期状態では外部プロセスが送信データを詰め込むための、ディスクリプタを仮想マシン側が用意しておく。つまり、ゲストOSが[受信データバッファキュー設定部1]13と[送信データバッファキュー設定部1]15を利用してvirtio−net−ipcデバイスの[送信用・受信用共有バッファキュー管理部1]へ共有バッファキューの個数・サイズ情報を通知する前に完了済みである。
(b)以後、初期状態以降は、手順5で回収したディスクリプタをavailに積むことを示す。
2.availから利用可能な、ディスクリプタを回収
(a)外部プロセスの処理ロジックから[送信インタフェース]の[送信データ入力部2]55に送信データを送る。
(b)[送信用共有バッファキュー処理部2]63は[送信用・受信用共有バッファキュー管理部2]62から、外部プロセスが送信用で利用するキュー情報(仮想マシンから見ると受信キュー)を参照し、ディスクリプタを用意する。
3.ディスクリプタに転送データを積む
[送信用共有バッファキュー管理部2]は転送データをディスクリプタにつめる。
4.usedに回収したディスクリプタを積む
[送信用共有バッファキュー処理部2]63は回収したディスクリプタをusedに積む。
5.usedから外部プロセスが積んだディスクリプタを回収
(a)ゲストOSはポーリングモードで動作し、更新通知なしでusedを確認し、更新があった場合、外部プロセスが積んだディスクリプタを取り出す。
(b)ディスクリプタには転送データが含まれるので、そのデータを取得するとともに、ディスクリプタを解放する(回収する)。
図15に記載の通りであり、仮想マシンが起動し、ゲストOSが起動してvirtio−netドライバが起動するときに、フィーチャ情報についてvirtio−net−ipcデバイスと折衝を行い、さらに動作モードをお互い設定した上で送信用、受信用の共有バッファキューをゲストOSが作成し、共有バッファキューの個数・サイズ・先頭アドレス情報をvirtio−net−ipcデバイスに通知する。
状態遷移パターン(D1)では、仮想マシンだけが起動、停止する状態遷移について取り扱う。このパターンでは、仮想マシンの異常終了を考慮しなければ行けないがそもそも接続先の外部プロセスやゲストOSが存在しないため、影響を与える存在がいない。よって、このケースでは動作への影響は考慮する必要はない。
このケースでは、仮想マシンが起動中でゲストOSが停止中と、仮想マシンが起動中でゲストOSが起動中の場合の2つの状態の遷移である。この状態で、ゲストOSが異常終了した場合の対処が必要である。具体的には、ゲストOSが確保した共有バッファキューのメモリ領域が確保されたまま解放されずに異常終了するケースである。この場合は、そのメモリ領域が解放されずに残ってしまうが、この問題については、既存のvirtio−netデバイス含めvirtioの共有バッファキューで実現されたvirtioデバイスすべてに共通する問題である。また、外部プロセスが起動していないため、動作に影響を与えるという観点では考慮する必要はない。
このパターンでは、仮想マシンとゲストOSが起動中で、外部プロセスが停止と動作の状態を遷移するケースである。このケースでは、外部プロセスが異常終了したケースを取り扱う。この場合、IPCを利用しているため、IPCの終了通知を仮想マシン側は検知することができ、終了処理を仮想マシン側で実施することができる。つまり、(i)仮想マシン側で終了を検知、(ii)仮想マシン側からゲストOSへリンクダウンを通知、(iii)ゲストOSがリンクダウンを認識、することにより外部プロセスの影響でゲストOSは通常のリンクダウン処理として扱うことができる。その他の問題として、外部プロセス異常終了時に共有バッファキューが初期化されない問題が残るが、これはVitioデバイスすべてで共通する問題である。
このパターンでは、仮想マシンとゲストOSが停止中であり、外部プロセスの異常終了のみを対処がターゲットとなる。この状態では外部プロセス側の異常終了は相手側が存在しないため、影響は与えない。
このパターンでは、外部プロセスが起動し、virtqueueデバイスがサーバとして接続待ち状態になっている状態で、仮想マシンが起動および停止する状態遷移について、仮想マシンが異常終了した場合について説明する。仮想マシンが異常終了した場合は、外部プロセスのvirtqueueデバイスと仮想マシン側のvirtio−net−ipcデバイスとのコネクションが切断されるだけであり、共有バッファキューの情報を交換する前であるため、異常終了後、外部プロセスのvirtqueueデバイスが再度待ち状態に入るため、特に外部プロセスの動作に仮想マシンの異常終了動作が影響を与えることはない。
このパターンでは、外部プロセスと仮想マシンが起動している状態で、ゲストOSの起動と終了の状態遷移中に、ゲストOSが異常終了した場合について説明する。ゲストOSが異常終了前に仮想マシン側のvirtio−net−ipcデバイスにゲストOSが確保した共有バッファキューの情報を提供していた場合、共有バッファキューで利用するメモリ領域も解放されない状態でゲストOSが異常終了してしまうため、外部プロセス側はその異常終了がわからない状態で共有バッファキューに書き込んでしまう。この問題については、既存のvirtio−netデバイス含めvirtioの共有バッファキューで実現されたvirtioデバイスすべてに共通する問題である。
このパターンでは、仮想マシンだけが起動している状態(virtio−net−ipcデバイスが定期的に接続を繰り返している状態)、において外部プロセスが停止状態と起動状態間を遷移するケースについて取り扱う。このケースでは、外部プロセス側と仮想マシン側ではIPCでの接続が完了しただけであり、共有バッファキューの情報については交換していない状態であるため、外部プロセスの異常終了に対しても、仮想マシン側は再度、再接続状態に遷移するだけであり、仮想マシンの状態に影響を与えるものではない。
このパターンでは、仮想マシンとゲストOSが起動している状態で、両方異常終了するケースを取り扱う。この状態では、影響を与える対象の外部プロセスは起動していないため、当然動作に対して影響を与えない。よって、この状態遷移では動作の影響を考慮する必要はない。
このパターンでは、仮想マシンとゲストOSと外部プロセスがすべて起動している状態で、仮想マシンとゲストOSが同時に異常終了するケースを取り扱う。この場合、仮想マシンのvirtio−net−ipcデバイスと外部プロセスのvirtqueueデバイスはIPCで接続しているため、外部プロセス側は異常終了を検知でき、検知するとともに、共有バッファキュー操作を停止することができるため、外部プロセス側へはリンクダウン通知として外部プロセスへも正常に状態変更通知が可能である。これにより、この異常終了においても適切に処理することが可能である。
仮想マシンとゲストOSと外部プロセスがすべて動作している状態ですべて異常終了してしまうケースでは、すべて動作が終了するため、お互い影響を与えるケースは発生しない。よって、その他の状態遷移についても考慮する必要はない。
実施例1では、ユニックスドメインソケットを利用したIPCを利用した接続を取り上げた。IPCにおいてはユニックスドメインソケット以外に、ファイルパス指定によるIPCの手法としてパイプ、メッセージキュー、INETソケットが存在し、本発明では、起動オプションに接続種別を設定することで接続手法について切り替えることが可能である。
パイプを接続手段とする場合、仮想マシン側の起動オプションは下記の通り、socketpathではなくfifopathとして、ファイル記述子を指定して起動する。
(参8)[仮想マシンの起動時引数]
外部プロセス側も同様のファイル記述子を指定することで接続できるようにする。
(参9)[外部プロセスの起動オプション]
それ以外のオプションについては実施例1と同じである。
メッセージキューを接続手段とする場合、仮想マシン側の起動オプションは下記の通り、socketpathではなくmsgqpathとして、ファイル記述子を指定して起動する。
(参10)[仮想マシンの起動時引数]
外部プロセス側も同様のファイル記述子を指定することで接続できるようにする。
(参11)[外部プロセスの起動オプション]
それ以外のオプションについては実施例1と同じである。
INETソケットを接続手段とする場合、仮想マシン側の起動オプションは下記の通り、socketpathではなくIPアドレスとポート番号を指定して起動する。このとき、レイヤ4プロトコルとしてTCPか、UDPを指定する。
(参12)[仮想マシンの起動時引数]
外部プロセス側も同様のファイル記述子を指定することで接続できるようにする。
(参13)[外部プロセスの起動オプション]
それ以外のオプションについては実施例1と同じである。
実施例1では、同一物理ホスト内においてゲストOSの共有バッファキューを仮想マシンから外部プロセスへ拡張する手法について説明した。IPCにおいて、ソケットの代わりに、セキュアな接続方式を組み合わせ、1対1で接続するケースを適用することが可能である。ベーシック認証、パスワード認証、SSL(Secure Sockets Layer)、を利用した接続方式を適用できる。これにより、仮想マシンと外部プロセス間での認証機能を共通鍵、または公開鍵認証にて実現し、交換するメッセージ内容も暗号化することが可能であり、セキュアに共有バッファキューの操作が可能となる。
ベーシック認証を利用するケースでは、実施例1において、仮想マシン起動時のオプションに、外部プロセス接続用の認証情報として、ノードIDの代わりにユーザ/パスワードを指定し起動する。これらのユーザ/パスワードは、図16の[基本設定管理部1]45にて管理される。一方、外部プロセス側も認証許可するためのユーザ/パスワード情報を仮想マシン同様に、図16の[基本設定管理部2]85にて管理する。
ダイジェスト認証を利用するケースでは、ベーシック認証の「ユーザ/パスワード」部分をダイジェストに置き換えた形となる(図25)。各種メッセージフォーマットもベーシック認証と同様に図18に従う。また、それ以外の全体の状態遷移等は、実施例1にすべて従うため、省略する。
SSL認証を利用するケースでは、クライアント側がサーバ認証用の証明書を所持し、仮想マシン起動時のオプションとして、サーバ証明書のファイルパスを指定する。これらのサーバ証明書のファイルパス情報は、図16の[基本設定管理部1]45にて管理される。外部プロセス側は、起動時にSSLの認証を実施するかどうかのオプションを指定する。
実施例1においては、(3)に記載のとおり、バージョン番号を利用してバッファキュー構成(種別・個数・サイズ)の情報対応を示した。これにより、バージョン番号を利用することで送信用、受信用のバッファキューとして、それぞれマルチバッファキューを仮想マシンと外部プロセスで共有することが可能である。
11000000 = (送信用4ビット)(受信用4ビット)
これらの更新メッセージをのぞき、実施例1と同じ構成をとるため、実施例4の詳細な手順は省略する。
実施例4では、マルチバッファキューにおいて、1つの接続を利用した。送受信用のバッファキューを1つの接続と対応づけ、マルチキューの個数分接続を確立することにより、並列化が望まれパフォーマンス向上が期待できる。具体的には、仮想マシン、外部プロセスともに起動時に個数分のファイル記述子を指定して起動することにより、マルチバッファキュー、且つマルチ接続の機能を持つバッファキューの共有方式を実現することができる。
実施例1では、ゲストOSと仮想マシン間のキューとしてvirtioキューの仕様をベースに外部プロセスへ確証する方式について述べた。キュー操作は一般的に、親側と子側で構造(バッファキューの構成とオペレーション方法)で合意できていれば、他のキュー構造においても本発明は適用可能である。実施例1では、仮想マシンと外部プロセス間を接続する際、バージョン番号により、バッファキュー種別、バッファキュー個数、バッファキューサイズの情報を交換する(実施例1の(3))。
今までの実施例では、仮想マシンの通信デバイス(virtio−net−ipcでバイス)をクライアント、外部プロセスの通信デバイス(virtqueueデバイス)をサーバとして、実施例を述べていたが、逆の場合も同様に本発明は実現可能である。この場合、サーバ、クライアントの処理が今まで述べてきた実施例と逆のパターンになるがそれ以外の状態遷移については実施例1で述べたものと全く同じになるため、詳細は省略する。
(i)外部プロセス側と仮想マシン側を直接接続することができるため、メモリコピー回数とコンテキストスイッチ切り替え回数を外部通信方式1、2に対し少なくすることができ、高速にデータ転送を実現することができる。
以下は、本発明の特徴をまとめたものである(図15、図19、図20、図23)。
(a)接続相手間でそれぞれ同じバッファを操作するため、お互いバッファの種別、大きさの整合性が必要になる。初期化メッセージでは、この整合性を実現するために、接続の度に整合性情報をバージョン情報として交換するための情報領域をプロトコルメッセージ内に規定した。
(b)同様に、設定処理フェーズでは、バッファキューのメモリ情報を相手に伝えるための情報領域をプロトコルメッセージ内に規定した。
(c)データの入出力を取り扱う方式として、割り込みモードと割り込みなしモード(ポーリングモード)が存在する。これを接続完了前に事前に折衝するための同様に、設定処理フェーズでは、動作モード規定領域をプロトコルメッセージ内に規定した。
(d)割り込みモードを実現するために、バッファキューの更新のたびに、相手側に更新通知を通知するメッセージ種別をプロトコルに規定した。
20:送信用・受信用共有バッファキュー管理部1
30:基本設定処理部1
40:通信部(クライアント)
50:インタフェース部
60:共有バッファキュー操作部
70:基本設定処理部2
80:通信部(サーバ)
100:通信デバイス1
200:通信デバイス2
Claims (7)
- 仮想マシン及び前記仮想マシン外に形成された外部プロセスが動作可能なホストOSを有する物理マシンと、
前記仮想マシン内で動作するゲストOSに、前記仮想マシンと前記外部プロセスとを直接接続する仮想通信路を構築させる通信路構築手段と、
を備える仮想通信路構築システム。 - 前記通信路構築手段は、
前記仮想マシンと前記ゲストOSとの間のデータ転送用として形成された共有バッファキューについて、メモリ操作で前記共有バッファキューのデータ転送先を前記外部プロセスへ拡張して前記仮想通信路を構築するとともに、前記ゲストOSと前記外部プロセスとの間の通信に関する手続きを実現させる共有バッファキュー拡張用プロトコル機能を有することを特徴とする請求項1に記載の仮想通信路構築システム。 - 前記通信路構築手段は、
前記仮想通信路の状態を検知する接続状態検知機能と、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知機能と、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続機能と、
をさらに有することを特徴とする請求項2に記載の仮想通信路構築システム。 - 仮想マシン及び前記仮想マシン外に形成される外部プロセスが動作可能なホストOSを有する物理マシン上に、前記仮想マシン及び前記外部プロセスを形成する仮想マシン形成手順と、
前記仮想マシン内で動作するゲストOSに、前記仮想マシンと前記外部プロセスとを直接接続する仮想通信路を構築させる仮想通信路構築手順と
を行う仮想通信路構築方法。 - 前記仮想通信路構築手順は、
前記仮想マシンと前記ゲストOSとの間のデータ転送用として形成された共有バッファキューについて、メモリ操作で前記共有バッファキューのデータ転送先を前記外部プロセスへ拡張して前記仮想通信路を構築するとともに、前記ゲストOSと前記外部プロセスとの間の通信に関する手続きを実現させる共有バッファキュー拡張ステップを有することを特徴とする請求項4に記載の仮想通信路構築方法。 - 前記仮想通信路構築手順は、
前記仮想通信路の状態を検知する接続状態検知ステップと、
前記仮想通信路の状態をそれぞれ前記ゲストOSと前記外部プロセス上の処理ロジックに通知する接続状態通知ステップと、
それぞれの前記通信デバイスが通信断のときに定期的に通信先と再接続する再接続ステップと、
をさらに有することを特徴とする請求項5に記載の仮想通信路構築方法。 - 仮想マシン及び前記仮想マシン外に形成される外部プロセスが動作可能なホストOSを有する物理マシンに、請求項4から6のいずれかに記載の仮想通信路構築方法を実現させるための仮想通信路構築プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076807A JP5960186B2 (ja) | 2014-04-03 | 2014-04-03 | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076807A JP5960186B2 (ja) | 2014-04-03 | 2014-04-03 | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015197874A true JP2015197874A (ja) | 2015-11-09 |
JP5960186B2 JP5960186B2 (ja) | 2016-08-02 |
Family
ID=54547494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014076807A Active JP5960186B2 (ja) | 2014-04-03 | 2014-04-03 | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5960186B2 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010070A (ja) * | 2015-06-16 | 2017-01-12 | 日本電気株式会社 | 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム |
CN106844066A (zh) * | 2017-01-22 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及*** |
WO2018181840A1 (ja) | 2017-03-30 | 2018-10-04 | 日本電気株式会社 | 制御装置、制御システム、制御方法及びプログラム |
CN109240802A (zh) * | 2018-09-21 | 2019-01-18 | 北京百度网讯科技有限公司 | 请求处理方法和装置 |
JP2020016913A (ja) * | 2018-07-23 | 2020-01-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JPWO2021070240A1 (ja) * | 2019-10-08 | 2021-04-15 | ||
JPWO2021130828A1 (ja) * | 2019-12-23 | 2021-07-01 | ||
JP2021164004A (ja) * | 2020-03-30 | 2021-10-11 | 横河電機株式会社 | 通信処理装置、プログラム、及び通信処理方法 |
WO2022172366A1 (ja) * | 2021-02-10 | 2022-08-18 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
WO2022195826A1 (ja) * | 2021-03-18 | 2022-09-22 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
EP4109264A1 (en) | 2021-06-25 | 2022-12-28 | Fujitsu Limited | Information processing apparatus, information processing program, and method for processing information |
WO2023144878A1 (ja) * | 2022-01-25 | 2023-08-03 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245317A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Ltd | 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法 |
JP2012003747A (ja) * | 2010-06-21 | 2012-01-05 | Intel Corp | 複数の仮想マシンで共有されるネットワークインターフェースのための方法 |
JP2013242644A (ja) * | 2012-05-18 | 2013-12-05 | Panasonic Corp | 仮想計算機システム、制御方法、およびプログラム |
JP2014032498A (ja) * | 2012-08-02 | 2014-02-20 | Mitsubishi Electric Corp | 計算機の障害再現方式 |
-
2014
- 2014-04-03 JP JP2014076807A patent/JP5960186B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245317A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Ltd | 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法 |
JP2012003747A (ja) * | 2010-06-21 | 2012-01-05 | Intel Corp | 複数の仮想マシンで共有されるネットワークインターフェースのための方法 |
JP2013242644A (ja) * | 2012-05-18 | 2013-12-05 | Panasonic Corp | 仮想計算機システム、制御方法、およびプログラム |
JP2014032498A (ja) * | 2012-08-02 | 2014-02-20 | Mitsubishi Electric Corp | 計算機の障害再現方式 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017010070A (ja) * | 2015-06-16 | 2017-01-12 | 日本電気株式会社 | 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム |
CN106844066A (zh) * | 2017-01-22 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及*** |
CN106844066B (zh) * | 2017-01-22 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及*** |
WO2018181840A1 (ja) | 2017-03-30 | 2018-10-04 | 日本電気株式会社 | 制御装置、制御システム、制御方法及びプログラム |
JP2020016913A (ja) * | 2018-07-23 | 2020-01-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP7083717B2 (ja) | 2018-07-23 | 2022-06-13 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11210127B2 (en) | 2018-09-21 | 2021-12-28 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for processing request |
JP2020053013A (ja) * | 2018-09-21 | 2020-04-02 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 要求処理方法及び装置 |
KR102214981B1 (ko) | 2018-09-21 | 2021-02-09 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 요청 처리 방법 및 장치 |
KR20200034572A (ko) * | 2018-09-21 | 2020-03-31 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 요청 처리 방법 및 장치 |
CN109240802A (zh) * | 2018-09-21 | 2019-01-18 | 北京百度网讯科技有限公司 | 请求处理方法和装置 |
JPWO2021070240A1 (ja) * | 2019-10-08 | 2021-04-15 | ||
JP7251648B2 (ja) | 2019-10-08 | 2023-04-04 | 日本電信電話株式会社 | サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
US12001895B2 (en) | 2019-10-08 | 2024-06-04 | Nippon Telegraph And Telephone Corporation | Server delay control system, server delay control device, server delay control method, and program |
WO2021070240A1 (ja) * | 2019-10-08 | 2021-04-15 | 日本電信電話株式会社 | サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
WO2021130828A1 (ja) * | 2019-12-23 | 2021-07-01 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
JPWO2021130828A1 (ja) * | 2019-12-23 | 2021-07-01 | ||
JP7310924B2 (ja) | 2019-12-23 | 2023-07-19 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム |
JP2021164004A (ja) * | 2020-03-30 | 2021-10-11 | 横河電機株式会社 | 通信処理装置、プログラム、及び通信処理方法 |
JP7400587B2 (ja) | 2020-03-30 | 2023-12-19 | 横河電機株式会社 | 通信処理装置、プログラム、及び通信処理方法 |
JP7485101B2 (ja) | 2021-02-10 | 2024-05-16 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
WO2022172366A1 (ja) * | 2021-02-10 | 2022-08-18 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
WO2022195826A1 (ja) * | 2021-03-18 | 2022-09-22 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
EP4109264A1 (en) | 2021-06-25 | 2022-12-28 | Fujitsu Limited | Information processing apparatus, information processing program, and method for processing information |
WO2023144878A1 (ja) * | 2022-01-25 | 2023-08-03 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5960186B2 (ja) | 2016-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5960186B2 (ja) | 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム | |
US11824962B2 (en) | Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks | |
JP3805725B2 (ja) | 相異なるミドルウェアを使用するホームネットワーク上のデバイス間のメッセージの受け渡しを可能にするゲートウェイ、ホームネットワークシステム及びメッセージ受け渡し方法 | |
US8625448B2 (en) | Method and system for validating network traffic classification in a blade server | |
US20170322828A1 (en) | Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration | |
US20060059287A1 (en) | Methods and apparatus for enabling bus connectivity over a data network | |
US8107360B2 (en) | Dynamic addition of redundant network in distributed system communications | |
JP2010183450A (ja) | ネットワークインターフェース装置 | |
CN102984237B (zh) | 一种基于socket连接的数据传输***及方法 | |
WO2017028399A1 (zh) | 通信数据传输方法及*** | |
US11895027B2 (en) | Methods and systems for service distribution using data path state replication and intermediate device mapping | |
US9118621B2 (en) | Network controller, method, and medium | |
CN112910685A (zh) | 实现对容器网络统一管理的方法及装置 | |
CN104685855A (zh) | 用于在中间件机器环境中确保互联网协议(ip)地址和节点名称一致性的***和方法 | |
CN106452951A (zh) | 一种信息处理方法、装置及*** | |
JP5018969B2 (ja) | 通信制御プログラム、通信制御装置、通信制御システムおよび通信制御方法 | |
JP6036506B2 (ja) | 障害影響範囲を特定するためのプログラム及び情報処理装置 | |
KR100597405B1 (ko) | 소켓 어플리케이션 프로그램을 이용한 데이터 중계 시스템및 데이터 중계 방법 | |
US20160261719A1 (en) | Information processing system, control program, and control method | |
JP4415391B2 (ja) | データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置 | |
US8737413B2 (en) | Relay server and relay communication system | |
JP6677052B2 (ja) | 通信管理装置、通信管理方法及びプログラム | |
US11188346B2 (en) | Obtaining environment information in a computing environment | |
US9787805B2 (en) | Communication control system and communication control method | |
JP7456624B2 (ja) | ネットワークの管理装置、初期設定方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160329 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160526 |
|
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: 20160621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160622 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5960186 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |