DPDKサポートなしの専用モードにおけるNetScaler BLX用nsdrvdドライバーの設定

NetScaler BLXはLinuxカーネルのネットワークスタックをバイパスしますが、Linuxカーネルメモリとユーザースペースメモリ間でのパケット転送にはオーバーヘッドが発生します。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響を与えます。

高いパケット処理パフォーマンスのためには、DPDK互換NICの使用を推奨します。BLXでサポートされているDPDK互換NICのリストについては、Linuxホストのハードウェア要件を参照してください。

DPDK互換NICがない場合でも、DPDKサポートなしでパケット処理のパフォーマンスを向上させるために、nsdrvd ドライバーを使用できます。

nsdrvd ドライバーは、パケットの受信と送信に関するLinuxカーネルとのすべてのやり取りを処理します。また、トラフィックをPEに分散します。blx.conf ファイル内のnsdrvd パラメーターを使用して、nsdrvd ドライバーを設定できます。次の表は、nsdrvd パラメーターの取り得る値について説明しています。

取り得る値 説明
nsdrvd: 1 専用ポートごとに1つのドライバープロセスが作成されます。RxとTxは順次実行されます。
  • nsdrvd: 2 専用ポートごとに1つのRxプロセスと1つのTxスレッドが作成されます。
  • nsdrvd: 3 専用ポートごとに1つのRxプロセスと2つのTxスレッドが作成されます。

nsdrvd ドライバーを使用するには、Linuxホストには次の計算に基づき、少なくともn個のコアが必要です。

  • n >= WP + (INT*P) + 1

ここで、

  • WP - BLXのワーカープロセス(パケットエンジン)の数。blx.conf ファイルのworker-processes パラメーターは、BLXのパケットエンジンの数を指定します。
  • INT - BLX用の専用LinuxホストNICポートの数。blx.conf ファイルのinterface パラメーターは、BLXに専用のLinuxホストNICポートを指定します。
  • P - BLXのnsdrvd ドライバープロセスの数。blx.conf ファイルのnsdrvd パラメーターは、nsdrvd ドライバープロセスの数を指定します。

: 次の構成のBLXには、少なくとも10個のコアが必要です。

  • WP = 3つのパケットエンジン
  • INT = 2つの専用インターフェイス
  • P = 3つのnsdrvd プロセス

n = WP + (INT*P) + 1 = (3+2*3+1) = 10

前提条件

  • BLXが専用モードで構成されていることを確認します。構成手順については、専用モードでのBLXの構成を参照してください。
  • 専用NICポートがBLXでサポートされているDPDK互換NICにリストされていないことを確認します。詳細については、Linuxホストのハードウェア要件を参照してください。

nsdrvdドライバーの有効化

nsdrvd ドライバーを有効にするには、LinuxホストCLIを使用する必要があります。

  1. 次のコマンドを実行して、blx.conf ファイルを開きます。

    注:

    任意のテキストエディターを使用してblx.confファイルを編集できます。

    nano /etc/blx/blx.conf
    <!--NeedCopy-->
    
  2. nsdrvd パラメーターのコメントを解除し、値を1、2、または3に設定します。

    blx-system-config
    {
            ...
            nsdrvd: <number of process>
            ...
    }
    <!--NeedCopy-->
    
  3. blx.conf ファイルを保存します。
  4. BLXを再起動します。

    systemctl restart blx
    <!--NeedCopy-->
    

BLXの再起動後、BLXでnsdrvd ドライバーが有効になります。

nsdrvdドライバーの無効化

nsdrvd ドライバーを無効にするには、LinuxホストCLIを使用する必要があります。

  1. nsdrvd ドライバーを無効にするには、blx.conf ファイル内のnsdrvd パラメーターをコメントアウトします。

    blx-system-config
    {
            ...
            # nsdrvd: 2
            ...
    }
    <!--NeedCopy-->
    
  2. BLXを再起動します。

    systemctl restart blx
    <!--NeedCopy-->
    

BLXの再起動後、BLXでnsdrvd ドライバーが無効になります。

DPDKサポートなしの専用モードにおけるNetScaler BLX用nsdrvdドライバーの設定