DPDKをサポートするNetScaler ADC BLXアプライアンスを展開する

NetScaler BLXアプライアンスは、ネットワークパフォーマンスを向上させるためのLinuxライブラリとネットワークインターフェイスコントローラーのセットであるデータプレーン開発キット(DPDK)をサポートしています。DPDKをサポートするBLXアプライアンスは、専用ネットワークモードでのみ機能します。Linux ホストに DPDK をサポートする BLX アプライアンスを展開するには、次の手順を実行します。

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

Linux ホストでの DPDK ライブラリのダウンロード、インストール、およびコンパイル

DPDK ライブラリは、DPDK の公式ウェブサイトでホストされています。Linux ホストに DPDK ライブラリをインストールするには、DPDK パッケージの抽出、DPDK 環境変数の設定、DPDK ライブラリのコンパイルを行います。

サポートされている DPDK ライブラリを Linux ホストにダウンロードするには、次の手順を実行します。

  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 キーを押します。

    ```

DPDK 互換ドライバを使用するネットワークデバイス ============================================

0000:83:00 .1 'I350 ギガビットファイバーネットワークコネクション 1522 'drv=igb_uio 未使用=IGB

カーネルドライバを使用するネットワークデバイス ===================================

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 デバイス ===================================

<none>

その他の Mempool デバイス =====================

<none>

Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0

```
  1. 上記の手順を繰り返して、別の 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
    
    
  3. DPDK 用に予約するhugepagesの番号をユーザープロンプトに入力し、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
    
    

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
    .
    .
    

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

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

BLXアプライアンスには、Citrix ADC IP(NSIP)アドレスは1つしか設定できません。また、LAN上の他のネットワークからNetScaler ADC IPに到達できるように、構成済みのNetScaler 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 fileのサンプル抜粋では、管理 IP アドレスとデフォルトルートが設定されています。

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.

DPDK サポートによる BLX アプライアンスの起動

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

systemctl start blx

BLX アプライアンスは Up 状態になりました。

BLX アプライアンスの状態を再度確認します。

systemctl status blx

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

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

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

NetScaler ADC 機能について詳しくは、 NetScaler ADC ドキュメントを参照してください ```

DPDKをサポートするNetScaler ADC BLXアプライアンスを展開する