Citrix ADC

OVS DPDKベースのホストインターフェイスを使用するように、KVM上のCitrix ADC VPXインスタンスを構成する

KVM(Fedora および RHOS)で実行されているCitrix ADC VPXインスタンスを、データプレーン開発キット(DPDK)とともにOpen vSwitch(OVS)を使用するように設定することで、ネットワークパフォーマンスを向上させることができます。このドキュメントでは、KVMホスト上のOVS-DPDKによって公開されるvhost-userポートで動作するようにCitrix ADC VPXインスタンスを構成する方法について説明します。

OVSは、オープンソースの Apache 2.0 ライセンスでライセンスされている多層仮想スイッチです。DPDKは、高速パケット処理のためのライブラリとドライバのセットです。

以下のバージョンの Fedora、RHOS、OVS、および DPDK は、Citrix ADC VPX インスタンスを設定するために認定されています。

Fedora RHOS
Fedora 25 RHOS 7.4
OVS 2.7.0 OVS 2.6.1
DPDK 16.11.12 DPDK 16.11.12

前提条件

DPDKをインストールする前に、ホストに1GBの巨大なページがあることを確認してください。

詳細については、このDPDK システム要件ドキュメントを参照してください。OVS DPDKベースのホストインターフェイスを使用するようにKVMでCitrix ADC VPXインスタンスを構成するために必要な手順の概要は次のとおりです。

  • DPDKをインストールします。
  • OVSを構築し、インストールします。
  • OVSブリッジを作成します。
  • OVSブリッジに物理インターフェイスを接続します。
  • OVSデータパスにvhost-userポートを接続します。
  • OVS-DPDKベースのvhost-userポートで KVM-VPX をプロビジョニングします

DPDK のインストール

DPDK をインストールするには、このOpen vSwitch with DPDKドキュメントに記載されている指示に従ってください。

OVS のビルドとインストール

OVSのダウンロードページから OVS をダウンロードします。次に、DPDKデータパスを使用してOVSをビルドおよびインストールします。「Open vSwitch のインストール」ドキュメントに記載されている手順に従います。

詳細については、「DPDK 入門ガイド for Linux」を参照してください。

OVS ブリッジの作成

必要に応じて、FedoraコマンドかRHOSコマンドを入力して、OVSブリッジを作成します。

Fedora コマンド:

> $OVS_DIR/utilities/ovs-vsctl add-br ovs-br0 -- set bridge ovs-br0 datapath_type=netdev 

RHOS コマンド:

ovs-vsctl add-br ovs-br0 -- set bridge ovs-br0 datapath_type=netdev 

物理インターフェイスをOVSブリッジに接続します

ポートを DPDK にバインドし、次の Fedora または RHOS コマンドを入力して OVS ブリッジにアタッチします。

Fedora コマンド:

> $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:03:00.0 > $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:03:00.1 

RHOS コマンド:

ovs-vsctl add-port ovs-br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:03:00.0 ovs-vsctl add-port ovs-br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:03:00.1 

オプションの一部として表示されるdpdk-devargsは、それぞれの物理NICのPCI BDFを指定します。

OVSデータパスにvhost-userポートを接続する

OVSデータパスにvhost-userポートを接続するには、次の Fedora または RHOS コマンドを入力します。

Fedora コマンド:

> $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser -- set Interface vhost-user1 mtu_request=9000 > $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser -- set Interface vhost-user2 mtu_request=9000 chmod g+w /usr/local/var/run/openvswitch/vhost* 

RHOS コマンド:

ovs-vsctl add-port ovs-br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser -- set Interface vhost-user1 mtu_request=9000 ovs-vsctl add-port ovs-br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser -- set Interface vhost-user2 mtu_request=9000 chmod g+w /var/run/openvswitch/vhost* 

OVS-DPDKベースのvhost-userポートを持つ KVM-VPX のプロビジョニング

次の QEMU コマンドを使用して、CLI からのみ OVS-DPDKベースのvhost-userポートを持つ Fedora KVM 上の VPX インスタンスをプロビジョニングできます。Fedora コマンド:

qemu-system-x86_64 -name KVM-VPX -cpu host -enable-kvm -m 4096M \ -object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on -numa node,memdev=mem \ -mem-prealloc -smp sockets=1,cores=2 -drive file=,if=none,id=drive-ide0-0-0,format= \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ -netdev type=tap,id=hostnet0,script=no,downscript=no,vhost=on \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:3c:d1:ae,bus=pci.0,addr=0x3 \ -chardev socket,id=char0,path= \ -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce -device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,mrg_rxbuf=on \ -chardev socket,id=char1,path= \ -netdev type=vhost-user,id=mynet2,chardev=char1,vhostforce -device virtio-net pci,mac=00:00:00:00:00:02,netdev=mynet2,mrg_rxbuf=on \ --nographic 

RHOSの場合は、次のサンプルXMLファイルを使用して、virshを使用してCitrix ADC VPXインスタンスをプロビジョニングします。

<域类型=“kvm”> <名称> dpdk-vpx1 < /名称> < uuid >edb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216 16777216      6  4096           /machine   hvm        Haswell-noTSX Intel       dpdk-vpx1 aedb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216 16777216      6  4096           /machine   hvm        Haswell-noTSX Intel              destroy restart destroy  /usr/libexec/qemu-kvm     

注意事項

XMLファイルでは、サンプルファイルに示されているように、hugepageサイズは1GBである必要があります。

    

また、サンプルファイルでは、vhost-user1 は ovs-br0にバインドされたvhostユーザーポートです。

    

Citrix ADC VPXインスタンスを起動するには、virshコマンドの使用を開始します。

OVS DPDKベースのホストインターフェイスを使用するように、KVM上のCitrix ADC VPXインスタンスを構成する