9.6. OVS PMD 自動ロードバランスの設定

重要

この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。

Open vSwitch (OVS) の Poll Mode Driver (PMD) スレッドを使用して、ユーザースペースのコンテキスト切り替えのために以下のタスクを実行できます。

  • 入力ポートを連続的にポーリングしてパケットを取得する。
  • 受信したパケットを分類する。
  • 分類後のパケットに対してアクションを実行する。

ベアメタルノードの事前プロビジョニングとオーバークラウドのデプロイメントのパラメーターを編集して、OVS PMD スレッドのロードバランシングを自動的に行うように RHOSP デプロイメントを設定します。現時点では、ノードの事前プロビジョニングとオーバークラウドのデプロイメントの両方でこの機能を設定する必要があります。重複設定を不要にする取り組みの進捗状況は、BZ2139352 で確認できます。

手順

  1. baremetal_deployment.yaml ファイルまたはカスタムファイルで、次のベアメタルノードの事前プロビジョニングパラメーターを設定します。

    pmd_auto_lb
    PMD 自動ロードバランシングを有効にするには、true に設定します。
    pmd_load_threshold
    PMD ロードバランスをトリガーする前に、1 つの PMD スレッドで一貫して使用する必要がある処理サイクルの割合。0 - 100 の範囲の整数。
    pmd_improvement_threshold

    PMD 自動ロードバランシングをトリガーする、非分離 PMD スレッド全体で評価された改善の最小パーセンテージ。0 - 100 の範囲の整数。

    推定される改善を計算するために、再割り当てのドライランを実行し、推定不可分散と現在の分散を比較します。デフォルトは 25% です。

    pmd_rebal_interval

    2 つの連続する PMD 自動ロードバランシングが実施される間の最小時間 (分単位)。範囲は 0 - 20,000 分です。

    トラフィックパターンが変更可能な場合に、再割り当てが頻繁に発生しないようにするには、この値を設定します。たとえば、10 分に 1 回、または数時間に 1 回、再割り当てをトリガーできます。

    ansible_playbooks:
    …
      - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-openvswitch-dpdk.yaml
      extra_vars:
       …
       pmd_auto_lb: true
       pmd_load_threshold: "70"
       pmd_improvement_threshold: "25"
       pmd_rebal_interval: "2"

  2. 次の例に示すように openstack overcloud node provision コマンドにベアメタルデプロイメントファイルを追加します。

     openstack overcloud node provision \
        --stack overcloud \
        --network-config \
        --templates /usr/share/openstack-tripleo-heat-templates \
        --output ~/templates/overcloud-baremetal-deployed.yaml   \
        home/stack/$OSP17REF/network/baremetal_deployment.yaml

  3. dpdk-config.yaml またはカスタムファイルで、次のオーバークラウドデプロイメントパラメーターを設定します。

    OvsPmdAutoLb

    pmd_auto_lb と同等の heat。

    PMD 自動ロードバランシングを有効にするには、true に設定します。

    OvsPmdLoadThreshold

    pmd_load_threshold と同等の heat。

    PMD ロードバランスをトリガーする前に、1 つの PMD スレッドで一貫して使用する必要がある処理サイクルの割合。0 - 100 の範囲の整数。

    OvsPmdImprovementThreshold

    pmd_improvement_threshold と同等の heat。

    PMD 自動ロードバランシングをトリガーする、非分離 PMD スレッド全体で評価された改善の最小パーセンテージ。0 - 100 の範囲の整数。

    推定される改善を計算するために、再割り当てのドライランを実行し、推定不可分散と現在の分散を比較します。デフォルトは 25% です。

    OvsPmdRebalInterval

    pmd_rebal_interval と同等の heat。

    2 つの連続する PMD 自動ロードバランシングが実施される間の最小時間 (分単位)。範囲は 0 - 20,000 分です。

    トラフィックパターンが変更可能な場合に、再割り当てが頻繁に発生しないようにするには、この値を設定します。たとえば、10 分に 1 回、または数時間に 1 回、再割り当てをトリガーできます。

    parameter_merge_strategies:
      ComputeOvsDpdkSriovParameters:merge
    …
    parameter_defaults:
      ComputeOvsDpdkSriovParameters:
       …
       OvsPmdAutoLb: true
       OvsPmdLoadThreshold: 70
       OvsPmdImprovementThreshold: 25
       OvsPmdRebalInterval: 2

  4. dpdk-config.yaml または dpdk 設定ファイルを他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
    -e <your_environment_files> \
    -e /home/stack/templates/dpdk-config.yaml