NetScaler VPX 14.1

KVMハイパーバイザー上のNetScaler VPXをSR-IOVモードでIntel QATを使用してSSLアクセラレーションを行うように構成する

Linux KVMハイパーバイザー上のNetScaler VPXインスタンスは、Intel QuickAssist Technology (QAT) を使用してNetScalerのSSLパフォーマンスを高速化できます。Intel QATを使用すると、レイテンシーの高いすべての暗号処理をチップにオフロードできるため、1つ以上のホストCPUを解放して他のタスクを実行できます。

以前は、すべてのNetScaler®データパス暗号処理は、ホストvCPUを使用してソフトウェアで実行されていました。

注:

現在、NetScaler VPXはIntel QATファミリーにおいてC62xチップモデルのみをサポートしています。この機能は、NetScalerリリース14.1ビルド8.50以降でサポートされています。

前提条件

  • Linuxホストには、マザーボードに直接統合されているか、外部PCIカードとして追加されているIntel QAT C62xチップが装備されています。

    Intel QAT C62xシリーズモデル: C625、C626、C627、C628。これらのC62xモデルのみが公開鍵暗号化 (PKE) 機能を備えています。他のC62xバリアントはPKEをサポートしていません。

  • NetScaler VPXはVMware ESXのハードウェア要件を満たしています。詳細については、「Linux KVMプラットフォームにNetScaler VPXインスタンスをインストールする」を参照してください。

制限事項

個々のVMに対して暗号ユニットや帯域幅を予約する規定はありません。任意のIntel QATハードウェアの利用可能なすべての暗号ユニットは、QATハードウェアを使用するすべてのVM間で共有されます。

Intel QATを使用するためのホスト環境をセットアップする

  1. Linuxホストに、C62xシリーズ (QAT) チップモデル用のIntel提供のドライバーをダウンロードしてインストールします。Intelパッケージのダウンロードとインストール手順の詳細については、「Linux用Intel QuickAssist Technologyドライバー」を参照してください。 ダウンロードパッケージの一部としてreadmeファイルが利用可能です。このファイルには、ホストでパッケージをコンパイルおよびインストールするための手順が記載されています。

    ドライバーをダウンロードしてインストールした後、次の健全性チェックを実行します。

    • C62xチップの数をメモします。各C62xチップには最大3つのPCIeエンドポイントがあります。

    • すべてのエンドポイントがUPであることを確認します。すべてのPFエンドポイント(最大3つ)のステータスを表示するには、adf_ctl statusコマンドを実行します。

       root@Super-Server:~# adf_ctl status
      
       Checking status of all devices.
       There is 51 QAT acceleration device(s) in the system
       qat_dev0 - type: c6xx,  inst_id: 0,  node_id: 0,  bsf: 0000:1a:00.0,  #accel: 5 #engines: 10 state: up
       qat_dev1 - type: c6xx,  inst_id: 1,  node_id: 0,  bsf: 0000:1b:00.0,  #accel: 5 #engines: 10 state: up
       qat_dev2 - type: c6xx,  inst_id: 2,  node_id: 0,  bsf: 0000:1c:00.0,  #accel: 5 #engines: 10 state: up
       <!--NeedCopy-->
      
    • すべてのQATエンドポイントでSRIOV(VFサポート)を有効にします。

       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1a\:00.0/sriov_numvfs
       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1b\:00.0/sriov_numvfs
       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1c\:00.0/sriov_numvfs
      
       <!--NeedCopy-->
      
    • すべてのVFが表示されていることを確認します(エンドポイントごとに16VF、合計48VF)。
    • adf_ctl status コマンドを実行して、すべてのPFエンドポイント(最大3つ)と各Intel QATチップのVFがUPであることを確認します。この例では、システムにはC62xチップが1つしかないため、合計51個のエンドポイント(3 + 48 VF)があります。

      adf_ctl ステータス コマンド

  2. LinuxホストでSR-IOVを有効にします。
  3. 仮想マシンを作成します。VMを作成する際は、パフォーマンス要件を満たすために適切な数のPCIデバイスを割り当てます。

注:

各C62x(QAT)チップは、最大3つの個別のPCIエンドポイントを持つことができます。各エンドポイントはVFの論理的な集合であり、チップの他のPCIエンドポイントと帯域幅を均等に共有します。各エンドポイントは、16個のPCIデバイスとして表示される最大16個のVFを持つことができます。QATチップを使用して暗号化アクセラレーションを行うには、これらのデバイスをVMに追加します。

留意事項

  • VMの暗号化要件が複数のQAT PCIエンドポイント/チップを使用することである場合、対称的な分散を実現するために、対応するPCIデバイス/VFをラウンドロビン方式で選択することをお勧めします。
  • 選択するPCIデバイスの数は、ライセンスされたvCPUの数(管理vCPUの数を含まない)と等しくすることをお勧めします。利用可能なvCPUの数よりも多くのPCIデバイスを追加しても、必ずしもパフォーマンスが向上するわけではありません。

    例:

    3つのエンドポイントを持つIntel C62xチップを1つ搭載したLinuxホストを考えます。6つのvCPUを持つVMをプロビジョニングする際、各エンドポイントから2つのVFを選択し、それらをVMに割り当てます。この割り当てにより、VMの暗号化ユニットが効果的かつ均等に分散されます。利用可能なvCPUの合計から、デフォルトで1つのvCPUが管理プレーン用に予約され、残りのvCPUはデータプレーンPE用に利用可能です。

Linux KVMハイパーバイザーに展開されたNetScaler VPXにQAT VFを割り当てる

  1. Linux KVM仮想マシンマネージャーで、VM (NetScaler VPX) が電源オフになっていることを確認します。

  2. ハードウェアの追加 > PCIホストデバイス に移動します。

  3. Intel QAT VFをPCIデバイスに割り当てます。

    インテルQAT仮想機能の割り当て

  4. 完了 をクリックします。

  5. 前述の手順を繰り返して、合計vCPU数から1を引いた数まで、1つ以上のIntel QAT VFをNetScaler VPXインスタンスに割り当てます。1つのvCPUは管理プロセス用に予約されているためです。

    VMあたりのQAT仮想機能数 = 仮想CPU数 - 1

  6. VMの電源をオンにします。

  7. NetScaler CLIで stat ssl コマンドを実行してSSLサマリーを表示し、NetScaler VPXにQAT VFを割り当てた後、SSLカードを確認します。

    この例では、5つのvCPUを使用しており、これは4つのパケットエンジン (PE) を意味します。

    stat SSLコマンドの表示

展開について

この展開は、以下のコンポーネント仕様でテストされました。

  • NetScaler VPXバージョンとビルド: 14.1–8.50
  • Ubuntuバージョン: 18.04、カーネル 5.4.0-146
  • リナックス用 Intel C62x QAT ドライバーバージョン: L.4.21.0-00001
KVMハイパーバイザー上のNetScaler VPXをSR-IOVモードでIntel QATを使用してSSLアクセラレーションを行うように構成する