OnWorksLinuxおよびWindowsオンラインワークステーション

及び

ワークステーションのオンライン無料ホスティング

<前へ | Contents | 次へ>

5.5. OpenVswitch-DPDK


ライブラリであるため、それ自体ではあまり機能しないため、それを利用する新興プロジェクトに依存しています。 Ubuntu 16.04 リリースにすでにバンドルされているライブラリのコンシューマの XNUMX つは、openvswitch-switch-dpdk パッケージで DPDK をサポートする OpenVswitch です。

ここでは、後で libvirt/qemu-kvm 経由で使用できるように、DPDK を使用して基本的な OpenVswitch をインストールおよび構成する方法の例を示します。


sudo apt-get install openvswitch-switch-dpdk

sudo update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd- dpdk

echo "DPDK_OPTS='--dpdk -c 0x1 -n 4 -m 2048 --vhost-owner libvirt-qemu:kvm --vhost-perm 0664'" | sudo tee -a /etc/default/openvswitch-switch

sudoサービスopenvswitch-switchの再起動


再起動する前に、デバイスを DPDK 互換ドライバー (上記を参照) に割り当てる必要があることに注意してください。


セクション --vhost-owner libvirt-qemu:kvm --vhost-perm 0664 セキュリティを強化するために権限を減らして qemu-kvm/libvirt を実行する Ubuntus の方法と互換性を持たせるために、vhost_user ポートに所有者/権限を設定します。

セクションに注意してください -m 2048 これは、単一ソケット システムの最も基本的な uma セットアップです。 複数のソケットがある場合は、それらの間でメモリを分割する方法を定義することができます。たとえば、 -m 1024、1024。 DPDK は、(パフォーマンス上の理由から) 動作するネットワーク カードのローカル メモリでのみ動作しようとすることに注意してください。 ただし、複数のノードがあり、すべてのネットワーク カードが 2 つ上にある場合は、カードを分散することを検討する必要があります。 そうでない場合は、少なくともカードが存在するノードにメモリを割り当てます。たとえば、XNUMX つのノードではすべてノード #XNUMX に割り当てます。 -m 0、2048。 ツールを使用できます イストポ パッケージから hwloc-nox カードがどのソケットにあるかを確認します。

ここで開始した OpenVswitch は、OpenVswitch が通常行うすべてのポート タイプに加えて、DPDK ポート タイプをサポートします。 ここでは、ブリッジを作成し、通常の外部ポートの代わりに外部 DPDK ポートをブリッジに追加する方法の例を示します。


ovs-vsctl add-br ovsdpdkbr0 -- ブリッジ ovsdpdkbr0 datapath_type=netdev を設定 ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- インターフェイス dpdk0 type=dpdk を設定



画像

Open vSwitch での DPDK の有効化はバージョン 2.6 で変更されました。 したがって、リリースのユーザーにとっては

16.10 以上、ただし Ubuntu Cloud Archive のユーザーも対象37 >=neutron の有効化は、Ubuntu 16.04 のユーザーの有効化と比較して変更されました。 以前は DPDK_OPTS 経由で渡されていたオプションは、ovs-vsctl 経由で Open vSwitch 構成データベースに設定されるようになりました。


上記と同じ例は、新しい方法では次のようになります。


画像

37 https://wiki.ubuntu.com/OpenStack/CloudArchive



# DPDKを有効にする

ovs-vsctl は Open_vSwitch を設定します。 「other_config:dpdk-init=true」

# コア0で実行

ovs-vsctl は Open_vSwitch を設定します。 「other_config:dpdk-lcore-mask=0x1」

# 2G huge page を割り当てる (Numa ノード非対応)

ovs-vsctl は Open_vSwitch を設定します。 「other_config:dpdk-alloc-mem=2048」

# vhost-user ソケットのグループ/権限 (libvirt/qemu で動作するために必要) ovs-vsctl set Open_vSwitch 。 \

「other_config:dpdk-extra=--vhost-owner libvirt-qemu:kvm --vhost-perm 0666」


詳細については、関連するアップストリームのドキュメントと、パッケージによって提供される vswitch 構成のマニュアル ページを参照してください。

/usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz

/usr/share/doc/openvswitch-common/INSTALL.DPDK-ADVANCED.md.gz

男 ovs-vswitchd.conf.db


OnWorksのトップOSクラウドコンピューティング: