Open vSwitch を DPDK データパスで使用する

Open vSwitch を DPDK データパスで使用する

このページでは、 OVS で DPDK データパスを使う方法について、 Networking サービスの Mitaka リリース時点で利用できる方法を説明します。

基本

Open vSwitch (OVS) は、 OVS 2.2 以降で Data Plane Development Kit (DPDK) データパスに対応しており、 OVS 2.4 以降では DPDK を利用した vhost-user 仮想インターフェースに対応しています。 DPDK データパスを使うと、標準のカーネル OVS のデータパスよりも低遅延で高性能なデータパスが実現できます。 DPDK を利用した vhost-user インターフェースを使うと、ゲストを DPDK データパスに接続できます。 DPDK の詳しい情報は DPDK のウェブサイトを参照してください。

DPDK 対応の OVS (OVS-DPDK) を使用することで、 OpenStack Compute ノード上のインスタンス間で高性能なネットワーク接続を提供できます。

前提

OVS で DPDK を使用するには、少なくとも以下のバージョンのソフトウェアが必要です。

  • OVS 2.4
  • DPDK 2.0
  • QEMU 2.1.0
  • libvirt 1.2.13

マルチキューのサポートは、以下のバージョン以降で利用できます。

  • OVS 2.5
  • DPDK 2.2
  • QEMU 2.5
  • libvirt 1.2.17

どちらの場合も、各ノードで DPDK 対応の Open vSwitch をインストールと設定を行う必要があります。詳細な情報は、 OVS-DPDK インストールガイドを参照してください。

vhost-user インターフェースを使用する

DPDK 対応の OVS の設定が正常に完了すれば、 vhost-user インターフェースはゲストからは全く同じように利用できます。ただし、ゲストはラージページを必要とします。ラージページの要求はフレーバー経由で指定します。例:

$ openstack flavor set m1.large --property hw:mem_page_size=large

hw:mem_page_size の書式についての情報は Flavors ガイドを参照してください。

注釈

vhost-user は、ファイルディスクリプターに関連付けられた共有メモリーを必要とします。現在のところ、このような共有メモリーを要求する方法は、ラージページを要求する方法しかありません。このため、 OVS-DPDK を使うホストで起動するインスタンスは必ずラージページを要求する必要があります。 aggregate flavor affinity フィルターを使用すると、 OVS-DPDK 対応を提供するホストに、ラージページ対応のフレーバーを関連付けることができます。

通常と同じ方法で vhost-user ネットワークインターフェースを作成し、インスタンスに接続できます。これらのインターフェースでは、ゲスト側では、カーネルの vhost-net ドライバー、もしくは DPDK 互換のドライバーを使用できます。

$ openstack server create --nic net-id=$net_id ... testserver

既知の制限

  • この機能がサポートされるのは、 libvirt コンピュートドライバーと KVM/QEMU ハイパーバイザーを使う場合のみです。

  • OVS-DPDK を使うホストで起動する各インスタンスでラージページが必要です。ゲストでラージページが存在しない場合、インターフェースは見えますが、正常に動作しません。

  • tap デバイスを使用するサービスでは性能の劣化が見込まれます。 tap デバイスは DPDK には対応していません。このようなサービスとしては、 DVR、 FWaaS、 LBaaS などがあります。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.