ADC

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

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

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

注:

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

前提条件

制限事項

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

インテル QAT を使用するためのホスト環境のセットアップ

  1. Linux ホストに C62x シリーズ (QAT) チップモデル用のIntel 提供のドライバーをダウンロードしてインストールします。Intel パッケージのダウンロードとインストール手順の詳細については、 Linux 用Intel QuickAssist テクノロジー・ドライバーを参照してください。 readme ファイルはダウンロードパッケージに含まれています。このファイルには、パッケージをコンパイルしてホストにインストールする手順が記載されています。

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

    • C62x チップの数に注意してください。各C62xチップには、最大3つのPCIeエンドポイントがあります。

    • すべてのエンドポイントが稼働していることを確認します。 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
       <!--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 が表示されていることを確認します(エンドポイントあたり 16 VF、合計 48 VF)。
    • adf_ctl status コマンドを実行して、各 Intel QAT チップのすべての PF エンドポイント (最大 3 つ) と VF が稼働していることを確認します。この例では、システムには C62x チップが 1 つしかありません。つまり、合計で51のエンドポイント(3+48のVF)があります。

      adf_ctl ステータスコマンド

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

注:

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

注意事項

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

    例:

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

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

  1. Linux KVM Virtual Machine Managerで、仮想マシン (NetScaler VPX) の電源がオフになっていることを確認します。

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

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

    Intel QAT VF の割り当て

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

  5. 前述の手順を繰り返して、1つ以上のIntel QAT VFをNetScaler VPXインスタンスに割り当てます。割り当てられるのは、vCPUの総数より1つ少ない数に制限されます。なぜなら、1 つの vCPU が管理プロセス用に予約されているからです。

    仮想マシンあたりの QAT 仮想マシンの数 = 仮想CPUの数-1

  6. VMの電源を入れます。

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

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

    スタット SSL コマンド

デプロイについて

このデプロイメントは、次のコンポーネント仕様でテストされました:

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