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

最終公開日 : Oct 05, 2026
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パッケージのダウンロードとインストール手順の詳細については、「Intel QuickAssist Technology Driver for Linux」を参照してください。 ダウンロードパッケージの一部としてreadmeファイルが利用可能です。このファイルには、ホストでのパッケージのコンパイルとインストールに関する手順が記載されています。
    ドライバーをダウンロードしてインストールした後、次の健全性チェックを実行します。
    • C62xチップの数をメモします。各C62xチップには最大3つのPCIeエンドポイントがあります。
    • すべてのエンドポイントがUPであることを確認します。adf_ctl status コマンドを実行して、すべてのPFエンドポイント (最大3つ) のステータスを表示します。
      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
    • すべての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
    • すべてのVFが表示されていることを確認します (エンドポイントあたり16 VF、合計48 VF)。
    • adf_ctl status コマンドを実行して、すべてのPFエンドポイント (最大3つ) と各Intel QATチップのVFがUPであることを確認します。この例では、システムにはC62xチップが1つしかないため、合計51個のエンドポイント (3 + 48 VF) があります。
      adf_ctl status コマンド
  2. LinuxホストでSR-IOVを有効にします。
  3. 仮想マシンを作成します。VMを作成する際は、パフォーマンス要件を満たすために適切な数のPCIデバイスを割り当てます。
注:
各C62x (QAT) チップは、最大3つの個別のPCIエンドポイントを持つことができます。各エンドポイントはVFの論理的な集合であり、チップの他のPCIエンドポイントと帯域幅を均等に共有します。各エンドポイントは最大16個のVFを持つことができ、これらは16個のPCIデバイスとして表示されます。これらのデバイスをVMに追加して、QATチップを使用して暗号化アクセラレーションを実行します。

注意点

  • 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デバイスに割り当てます。
    Intel QAT VFの割り当て
  4. 完了をクリックします。
  5. 前述の手順を繰り返して、合計vCPU数から1を引いた数まで、1つ以上のIntel QAT VFをNetScaler VPXインスタンスに割り当てます。1つのvCPUは管理プロセス用に予約されているためです。
    VMあたりのQAT VF数 = vCPU数 - 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
  • Linux 用 Intel C62x QAT ドライバーバージョン: L.4.21.0-00001