DPDKをサポートするNetScaler BLXアプライアンスを導入する

NetScaler BLX アプライアンスは、ネットワーク パフォーマンスを向上させる Linux ライブラリとネットワーク インターフェイス コントローラーのセットである Data Plane Development Kit (DPDK) をサポートしています。 DPDK をサポートする BLX アプライアンスは、専用ネットワーク モードでのみ動作します。 Linux ホストに DPDK をサポートする BLX アプライアンスを導入するには、次の手順を実行します。

  • LinuxホストにDPDKライブラリをダウンロード、インストール、コンパイルする
  • LinuxホストでDPDKを構成する
  • DPDKサポート用にBLXアプライアンスを構成する
  • BLXアプライアンスの管理IPアドレスを初めて設定する
  • BLXアプライアンスの起動

LinuxホストにDPDKライブラリをダウンロード、インストール、コンパイルする

DPDK ライブラリは公式 DPDK Web サイトでホストされています。 Linux ホストへの DPDK ライブラリのインストールは、DPDK パッケージの抽出、DPDK 環境変数の設定、および DPDK ライブラリのコンパイルから構成されます。

LinuxホストでサポートされているDPDKライブラリをダウンロードするには

  1. 公式の DPDK ダウンロード ページにアクセスします。

  2. サポートされている次の DPDK パッケージ バージョンを Linux ホストにダウンロードします。

    DPDK 17.11.6 (LTS)

DPDK ライブラリをダウンロードしたら、Linux ホストで DPDK パッケージを抽出し、RTE_SDK DPDK 環境変数を設定して、DPDK ライブラリをコンパイルします。

export RTE_SDK=<path to the extracted DPDK installation directory on the Linux host>

Linux デバイスに DPDK をインストールしてコンパイルする方法の詳細については、 公式 DPDK ドキュメントにある公式 DPDK ドキュメントを参照してください。

LinuxホストでDPDKを構成する

DPDK ライブラリをインストールした後、Linux ホストで DPDK を構成する必要があります。 DPDK の設定には次のタスクが含まれます。

  • DPDK IGB UIOカーネルモジュールを挿入する
  • BLX アプライアンスに使用する Linux ホスト NIC ポートを DPDK IGB UIO モジュールにバインドします。
  • DPDK用に hugepages を設定します

これらのタスクを実行するには、DPDK usertools サブディレクトリにある DPDK セットアップ スクリプト (dpdk-setup.sh) を使用します。

注記

お客様の便宜のために、以下の DPDK 関連の手順が追加されました。 Linux システムで DPDK を構成する方法の詳細については、 公式 DPDK ドキュメントにある公式 DPDK ドキュメントを参照してください。

DPDK IGB UIOカーネルモジュールを挿入する

DPDK IGB UIO カーネルモジュールを挿入するには:

  1. dpdk-setup.sh スクリプトを実行します。

    bash $RTE_SDK/usertools/dpdk-setup.sh

  2. ユーザープロンプトにオプション 17 と入力し、Enter キーを押します。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 17
    
    <!--NeedCopy-->
    

Linux ホスト NIC ポートを DPDK IGB UIO モジュールにバインドする

LinuxホストのNICポートをDPDK IGB UIOモジュールにバインドするには

  1. dpdk-setup.sh スクリプトを実行します。

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. ユーザープロンプトにオプション 23 と入力し、Enter キーを押します。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 23
    
    <!--NeedCopy-->
    
  3. ユーザー プロンプトに、DPDK IGB UIO カーネル モジュールにバインドする Linux ホスト ポートの PCI アドレスを入力し、Enter キーを押します。

    
    Network devices using DPDK-compatible driver
    ============================================
    0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb
    
    Network devices using kernel driver
    ===================================
    0000:01:00.0 'Ethernet Controller 10-Gigabit X540-AT2 1528' if=eno1 drv=ixgbe unused=igb_uio *Active*
    0000:01:00.1 'Ethernet Controller 10-Gigabit X540-AT2 1528' if=eno2 drv=ixgbe unused=igb_uio
    0000:83:00.0 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f0 drv=igb unused=igb_uio
    0000:02:00.0 'Ethernet Controller XL710 for 40GbE QSFP+ 1584' drv=i40e unused=igb_uio. << add
    0000:83:00.2 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f2 drv=igb unused=igb_uio
    0000:83:00.3 'I350 Gigabit Fiber Network Connection 1522' if=enp131s0f3 drv=igb unused=igb_uio
    0000:84:00.0 'I350 Gigabit Fiber Network Connection 1522' if=enp132s0f0 drv=igb unused=igb_uio
    0000:84:00.1 'I350 Gigabit Fiber Network Connection 1522' if=enp132s0f1 drv=igb unused=igb_uio
    ………..
    Mempool devices using kernel driver
    ===================================
    <none>
    
    Other Mempool devices
    =====================
    <none>
    
    
    Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0
    
    <!--NeedCopy-->
    
  4. 上記の手順を繰り返して、別の Linux ホスト ネットワーク ポートを DPDK IGB UIO モジュールにバインドします。

DPDK用に hugepages を設定します

DPDK用に hugepages を設定するには:

  1. dpdk-setup.sh スクリプトを実行します。

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. ユーザープロンプトに、Linux ホストのメモリアーキテクチャに基づいてオプション 20 または 21を入力し、Enter キーを押します。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems.
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 21
    
    <!--NeedCopy-->
    
  3. ユーザープロンプトに、DPDK 用に予約する 巨大ページの数を入力し、Enter キーを押します。

    Removing currently reserved hugepages
    Unmounting /mnt/huge and removing directory
    
    Input the number of 2048kB hugepages
    Example: to have 128MB of hugepages available in a 2MB huge page system,
    enter '64' to reserve 64 * 2MB pages
    
    Number of pages: 1024
    
    Reserving hugepages
    Creating /mnt/huge and mounting as hugetlbfs
    
    <!--NeedCopy-->
    

DPDKサポート用にBLXアプライアンスを構成する

BLX アプライアンスを DPDK サポート用に構成するには、BLX 構成ファイル (blx.conf) で次のパラメータを設定する必要があります。

  • DPDK 設定。 このパラメータにより、BLX アプライアンスを DPDK モードで起動してパフォーマンスを向上できます。 また、このパラメータは、DPDK をサポートする BLX アプライアンスで使用されるパケット エンジンの数を指定します。 デフォルト値は 8 (0xff) に設定されています。 DPDK をサポートする BLX アプライアンスでサポートされるパケット エンジンの最大数は 28 です。

注記

DPDK config パラメータを設定し、BLX アプライアンスを起動すると、DPDK にバインドされた Linux NIC ポートが BLX アプライアンスの一部として自動的に追加されます。

BLXアプライアンスをDPDKサポート用に設定するには

  1. Linux ホストにある BLX 構成ファイル (blx.conf) を開きます。 BLX 構成ファイルの完全なパスは次のとおりです。

    /etc/blx/blx.conf

  2. BLX 構成ファイル (blx.conf) で、 dpdk-config パラメータを含む次の行のコメントを解除し、行の先頭にある # (ハッシュ記号) を削除します。

    # dpdk-config: -c 0xff

    サンプル設定

    次の blx.conf ファイルの抜粋サンプルでは、 dpdk-config パラメータ設定が有効になっています。

    .
    .
    # dpdk EAL core mask parameter. Applicable only when blx-dpdk is installed.
    
    dpdk-config: -c 0xff
    .
    .
    <!--NeedCopy-->
    

BLXアプライアンスの管理IPアドレスを初めて設定する

BLX アプライアンスの管理 IP アドレスは、管理目的でアプライアンスにアクセスする IP アドレスです。 BLX アプライアンスの管理 IP アドレスは、Citrix ADC IP (NSIP) アドレスとも呼ばれます。

BLX アプライアンスには、Citrix ADC IP (NSIP) アドレスを 1 つだけ設定できます。 また、Citrix ADC IP が LAN 上の他のネットワークからアクセス可能になるように、構成された Citrix ADC IP サブネットのデフォルト ルートを追加する必要があります。

BLX アプライアンスの管理 IP アドレスを初めて設定する場合は、BLX 構成ファイル (blx.conf) で関連するパラメータを設定する必要があります。

管理IPアドレスとデフォルトルートを初めて設定するには:

  1. Linux ホストにある BLX 構成ファイル (blx.conf) を開きます。 BLX 構成ファイルの完全なパスは次のとおりです。

    /etc/blx/blx.conf

  2. 次のパラメータのコメントを解除し、管理 IP アドレスを設定します。

    # ipaddress:

  3. 次のパラメータのコメントを解除し、静的ルート セクションでデフォルト ルートを設定します。

    # default

サンプル設定:

次の blx.conf ファイルのサンプル抜粋では、管理 IP アドレスとデフォルト ルートが設定されています。

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.
<!--NeedCopy-->

DPDKサポート付きBLXアプライアンスの起動

次のコマンドを実行して BLX アプライアンスを起動します。

systemctl start blx

BLX アプライアンスは現在 Up 状態です。

BLX アプライアンスのステータスを再度確認します。

systemctl status blx

BLX アプライアンスを正常にインストールして起動したら、次のいずれかの方法を使用してアプライアンス上の Citrix ADC 機能を構成できます。

  • Citrix ADC CLI
  • Citrix ADC GUI
  • Citrix NITRO REST API

これらの方法の使用に関する詳細については、「 BLX アプライアンスの構成」を参照してください。

Citrix ADC 機能の詳細については、 Citrix ADC ドキュメントを参照してください。

DPDKをサポートするNetScaler BLXアプライアンスを導入する