第8章 OVS-DPDK デプロイメントの設定
本項では、Red Hat OpenStack Platform(RHOSP)環境内で Open vSwitch(OVS-DPDK)対応の DPDK をデプロイする方法について説明します。オーバークラウドは、通常コントローラーノードやコンピュートノードなどの事前定義済みロールのノードと、異なる種別のストレージノードで構成されます。これらのデフォルトロールにはそれぞれ、director ノード上のコア heat テンプレートで定義されている一式のサービスが含まれます。
オーバークラウドをデプロイする前に、アンダークラウドのインストールと設定が完了している必要があります。詳しくは、『 director のインストールと使用方法』を参照し てください。
OVS-DPDK 向けの RHOSP ネットワークを最適化するには、network-environment.yaml
ファイルに設定する OVS-DPDK パラメーターの最も適切な値を決定する必要があります。
これらの director Heat テンプレートによって変更される etc/tuned/cpu-partitioning-variables.conf
の isolated_cores
またはその他の値は編集/変更しないでください。
8.1. ワークフローを使用した DPDK パラメーターの算出
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
DPDK 向けの Mistral ワークフローに関する概要は、「ワークフローと派生パラメーターについての概要」 を参照してください。
前提条件
このワークフローで取得されるデータを生成するには、ハードウェア inspection_extras
を含むベアメタルのイントロスペクションを有効化しておく必要があります。ハードウェア検査の追加パラメーターはデフォルトで有効化されます。「 ノードのハードウェアの検査 」を参照してください。
DPDK 向けのワークフローと入力パラメーターの定義
OVS-DPDK ワークフローで指定することができる入力パラメーターの一覧を以下に示します。
- num_phy_cores_per_numa_node_for_pmd
- この入力パラメーターは、DPDK NIC に関連付けられた NUMA ノードの必要最小限のコア数を指定します。DPDK NIC に関連付けられていないその他の NUMA ノードには、物理コアが 1 つ割り当てられます。このパラメーターは 1 に設定するようにしてください。
- huge_page_allocation_percentage
-
この入力パラメーターは、ヒュージページとして設定可能な合計メモリー中 (
NovaReservedHostMemory
を除く) の必要なパーセンテージを指定します。KernelArgs
パラメーターは、指定したhuge_page_allocation_percentage
に基づいて計算されたヒュージページを使用して派生されます。このパラメーターは 50 に設定するようにしてください。
ワークフローは、これらの入力パラメーターとベアメタルのイントロスペクション情報を使用して、適切な DPDK パラメーターの値を算出します。
DPDK のワークフローおよび入力パラメーターを定義するには、以下の手順を実施します。
usr/share/openstack-tripleo-heat-templates/plan-samples/plan-environment-derived-params.yaml
ファイルをローカルディレクトリーにコピーし、ご自分の環境に合わせて入力パラメーターを設定します。workflow_parameters: tripleo.derive_params.v1.derive_parameters: # DPDK Parameters # # Specifies the minimum number of CPU physical cores to be allocated for DPDK # PMD threads. The actual allocation will be based on network config, if # the a DPDK port is associated with a numa node, then this configuration # will be used, else 1. num_phy_cores_per_numa_node_for_pmd: 1 # Amount of memory to be configured as huge pages in percentage. Ouf the # total available memory (excluding the NovaReservedHostMemory), the # specified percentage of the remaining is configured as huge pages. huge_page_allocation_percentage: 50
以下のオプションを指定して
openstack overcloud deploy
コマンドを実行します。-
update-plan-only
オプション - ロールファイルおよびご自分の環境に固有の全環境ファイル
plan-environment-derived-parms.yaml
ファイル (--plan-environment-file
オプションの引数)$ openstack overcloud deploy --templates --update-plan-only \ -r /home/stack/roles_data.yaml \ -e /home/stack/<environment-file> \ ... #repeat as necessary ... -p /home/stack/plan-environment-derived-params.yaml
-
このコマンドの出力には、派生した結果が表示されます。これは、plan-environment.yaml
ファイルにもマージされます。
Started Mistral Workflow tripleo.validations.v1.check_pre_deployment_validations. Execution ID: 55ba73f2-2ef4-4da1-94e9-eae2fdc35535 Waiting for messages on queue 472a4180-e91b-4f9e-bd4c-1fbdfbcf414f with no timeout. Removing the current plan files Uploading new plan files Started Mistral Workflow tripleo.plan_management.v1.update_deployment_plan. Execution ID: 7fa995f3-7e0f-4c9e-9234-dd5292e8c722 Plan updated. Processing templates in the directory /tmp/tripleoclient-SY6RcY/tripleo-heat-templates Invoking workflow (tripleo.derive_params.v1.derive_parameters) specified in plan-environment file Started Mistral Workflow tripleo.derive_params.v1.derive_parameters. Execution ID: 2d4572bf-4c5b-41f8-8981-c84a363dd95b Workflow execution is completed. result: ComputeOvsDpdkParameters: IsolCpusList: 1,2,3,4,5,6,7,9,10,17,18,19,20,21,22,23,11,12,13,14,15,25,26,27,28,29,30,31 KernelArgs: default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on isolcpus=1,2,3,4,5,6,7,9,10,17,18,19,20,21,22,23,11,12,13,14,15,25,26,27,28,29,30,31 NovaReservedHostMemory: 4096 NovaVcpuPinSet: 2,3,4,5,6,7,18,19,20,21,22,23,10,11,12,13,14,15,26,27,28,29,30,31 OvsDpdkCoreList: 0,16,8,24 OvsDpdkMemoryChannels: 4 OvsDpdkSocketMemory: 1024,1024 OvsPmdCoreList: 1,17,9,25
OvsDpdkMemoryChannels
パラメーターをイントロスペクションの情報から派生することはできません。大半の場合、この値は 4 に設定すべきです。
派生パラメーターを使用したオーバークラウドのデプロイ
これらの派生パラメーターを使用してオーバークラウドをデプロイするには、以下の手順を実施します。
派生パラメーターをデプロイコマンドの出力から
network-environment.yaml
ファイルにコピーします。# DPDK compute node. ComputeOvsDpdkParameters: KernelArgs: default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on TunedProfileName: "cpu-partitioning" IsolCpusList: "1,2,3,4,5,6,7,9,10,17,18,19,20,21,22,23,11,12,13,14,15,25,26,27,28,29,30,31" NovaVcpuPinSet: ['2,3,4,5,6,7,18,19,20,21,22,23,10,11,12,13,14,15,26,27,28,29,30,31'] NovaReservedHostMemory: 4096 OvsDpdkSocketMemory: "1024,1024" OvsDpdkMemoryChannels: "4" OvsDpdkCoreList: "0,16,8,24" OvsPmdCoreList: "1,17,9,25"
注記これらのパラメーターは、特定のロール ComputeOvsDpdk に適用されます。これらのパラメーターはグローバルに適用することはできますが、ロール固有のパラメーターはグローバルパラメーターを上書きします。
- ロールファイルおよびご自分の環境に固有の全環境ファイルを使用して、オーバークラウドをデプロイします。詳しい情報は、『 Deploying the Overcloud 』を参照してください。
Compute、ComputeOvsDpdk、および ComputeSriov が設定されたクラスターでは、既存のワークフローで、パラメーターを派生する既存のワークフローにより、ComputeOvsDpdk ロールだけに式が適用されます。