VALE(4) | FreeBSD Kernel Interfaces Manual | VALE(4) |
名称
vale — netmap API を使用する非常に速い仮想ローカルのイーサネット書式
device netmap解説
vale は、トラフィックのソースとシンク (sink)、パケット転送プログラム、ユーザ空間のファイアウォール等を含む、netmap クライアントを相互に接続させるために使用することができる、複数の仮想スイッチを実装する netmap(4) モジュールの機能です。vale は、完全にソフトウェアで実装され、非常に速いです。現代のマシンにおいて、小さなフレームがあるコアごとで 2 (Mpps) ごとにほとんど 2000 万パケットと 1500 バイトのフレームがあるおよそ 70 Gbit/s を移動することができます。
操作
vale は、 netmap(4) API を使用して、それに接続するクライアントとしてスイッチとポートを動的に作成します。vale ポートは、 vale[bdg:][port] と指定されます、ここで vale は、標準インタフェースではなく VALE スイッチを示す接頭辞で bdg は、特定のスイッチ (コロンがセパレータです) を示し、 port は、スイッチ内のポートを示します。ブリッジとポート名は、任意の文字列で、完全な名前が 16 文字以内に適合しなければならないことが、唯一強制されています。
API に関する詳細については、 netmap(4) を参照してください。
制限
vale は、現在、ポートごとに 1024 のバッファがあり、スイッチごとに 16 のポート、最大 4 つのスイッチをサポートしています。これらの強固な制限は、将来のリリースで sysctl 変数に変更されるでしょう。SYSCTL 変数
vale は、操作を制御するために次の sysctl 変数を使用します:- dev.netmap.bridge
- 各繰り返しの中で内部的に処理されるパケットの最大数。デフォルトは、1024 で、待ち時間とスループットを交換するためにより低い値を使用します。
- dev.netmap.verbose
- カーネル内診断を有効にするために 0 以外に設定します。
使用例
1 つのポートに接続されたトラフィックジェネレータと別のポートで netmap が有効にされた tcpdump インスタンスがある 1 つのスイッチを作成します:
tcpdump -ni vale-a:1 & pkt-gen -i vale-a:0 -f tx &
異なるポートで 2 つの qemu マシンに、それぞれ接続する 2 つのスイッチを作成します。
qemu -net nic -net netmap,ifname=vale-1:a ... & qemu -net nic -net netmap,ifname=vale-1:b ... & qemu -net nic -net netmap,ifname=vale-2:c ... & qemu -net nic -net netmap,ifname=vale-2:d ... &
関連項目
netmap(4)http://info.iet.unipi.it/~luigi/vale/
Luigi Rizzo, Giuseppe Lettieri: VALE, a switched ethernet for virtual machines, June 2012, http://info.iet.unipi.it/~luigi/vale/
作者
vale スイッチは、Universita` di Pisa にて と によって 2012 年に設計され実装されました。vale は、FP7 Project CHANGE (257422) と OPENLAB (287581) 内の欧州委員会によって資金援助されました。
July 27, 2012 | FreeBSD |