10.4. カスタムの OVS-DPDK Compute サービスの作成


Red Hat OpenStack Services on OpenShift (RHOSO) 環境では、NFV 用のカスタムの OVS-DPDK Compute サービスを作成する必要があります。このサービスは、データプレーン上で実行される Ansible サービスです。このカスタムサービスは、CPU ピニングパラメーター、ブロック移行パラメーター、OVS ブリッジが使用する NIC に接続された NUMA ノードでのインスタンス生成を可能にする NUMA 対応 vswitch 機能などの各種パラメーターを、OVS-DPDK コンピュートノードに適用します。

OVS-DPDK カスタムサービスを作成するには、以下のアクションを実行する必要があります。

  • 指定された OVS-DPDK コンピュートノードのセットに設定をマッピングする ConfigMap を作成します。
  • データプレーンに ConfigMap を実装する実際の OVS-DPDK カスタムサービスを作成します。

前提条件

  • ワークステーションに oc コマンドラインツールがインストール済みである。
  • cluster-admin 権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。

手順

  1. パラメーターの設定を定義する ConfigMap CR を作成し、ワークステーション上の YAML ファイル (例: dpdk-custom.yaml) に保存します。

    環境に応じて値 (太字部分) を変更します。

    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: dpdk-custom-nova
      namespace: openstack
    data:
      25-dpdk-custom-nova.conf: |
        [DEFAULT]
        reserved_host_memory_mb = 4096
        [compute]
        cpu_shared_set = 0-3,24-27
        cpu_dedicated_set = 8-23,32-47
        [neutron]
        physnets = <network_name1>, <network_name2>
        [neutron_physnet_<network_name1>]
        numa_nodes = <ID list>
        [neutron_physnet_<network_name2>]
        numa_nodes = <ID list>
        [neutron_tunnel]
        numa_nodes = <ID list>
        [libvirt]
        live_migration_permit_post_copy=false
    ---
    • cpu_shared_set: vCPU のインベントリーを指定するために使用する物理ホスト CPU 番号のコンマ区切りリストまたは範囲を入力します。これにより、ピニングされていないインスタンスをスケジュールできるホスト CPU を決定します。また、共有エミュレータースレッドポリシーで設定されたインスタンスのインスタンスエミュレータースレッドをオフロードするホスト CPU を決定します。
    • cpu_dedicated_set: ピニングされたインスタンス CPU のプロセスをスケジュールできる物理ホスト CPU 番号のコンマ区切りのリストまたは範囲を入力します。たとえば、4-12,^8,15 は、8 を除く 4 - 12 および 15 のコアを予約します。
    • <network_name_n_>: <network_name1><network_name2> を、NUMA アフィニティーを設定する必要があるゲートウェイが配置されている物理ネットワークの名前に置き換えます。(このネットワークは、neutron ネットワーク provider:*name フィールドで設定します。)
    • <ID list>: <ID list> を、この物理ネットワークに関連付けられている NUMA ノードの ID のコンマ区切りリストに置き換えます。たとえば、0,1 です。以下に例を示します。

      [neutron]
      physnets = foo,bar
      
      [neutron_physnet_foo]
      numa_nodes = 0
      
      [neutron_physnet_bar]
      numa_nodes = 2, 3

      この設定では、provider:physical_network=foo` で 1 つ以上の L2 タイプのネットワークを使用するインスタンスは NUMA ノード 0 のホストコアでスケジュールされる必要があり、provider:physical_network=bar` で 1 つ以上のネットワークを使用するインスタンスは NUMA ノード 2 と 3 の両方のホストコアでスケジュールされる必要があります。後者の場合、hw:numa_nodes extra` 仕様を使用して、ゲストを 2 つ以上のホスト NUMA ノードに分割する必要があります。

    • live_migration_permit_post_copy=false: DPDK を使用する Geneve ネットワークに接続されたインスタンスのブロックライブマイグレーションを正常に実行するために必要です。
  2. ConfigMap CR ファイルを使用して、ConfigMap オブジェクトを作成します。

    $ oc create -f dpdk-custom.yaml -n openstack
  3. OVS-DPDK カスタムサービスを定義する OpenStackDataPlaneService CR を作成し、ワークステーション上の YAML ファイル (例: nova-custom-ovsdpdk.yaml) に保存します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: nova-custom-ovsdpdk
      namespace: openstack
  4. ConfigMap CR をカスタムサービスに追加し、このサービスを実行するノードセットの接続先セルの Secret CR を指定します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: nova-custom-ovsdpdk
      namespace: openstack
    spec:
      label: dataplane-deployment-nova-custom-ovsdpdk
      edpmServiceType: nova
      dataSources:
        - configMapRef:
            name: dpdk-custom-nova
        - secretRef:
            name: nova-cell1-compute-config
        - secretRef:
            name: nova-migration-ssh-key
      tlsCerts:
        default:
          contents:
            - dnsnames
            - ips
          networks:
            - ctlplane
          issuer: osp-rootca-issuer-internal
      caCerts: combined-ca-bundle
  5. Ansible Playbook を参照するか、playbookContents フィールドに Ansible プレイを含めることで、カスタムサービスを作成するための Ansible コマンドを指定します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: nova-custom-ovsdpdk
      namespace: openstack
    spec:
      label: dataplane-deployment-nova-custom-ovsdpdk
      edpmServiceType: nova
      dataSources:
        - configMapRef:
            name: dpdk-custom-nova
        - secretRef:
            name: nova-cell1-compute-config
        - secretRef:
            name: nova-migration-ssh-key
      playbook: osp.edpm.nova
      tlsCerts:
        default:
          contents:
            - dnsnames
            - ips
          networks:
            - ctlplane
          issuer: osp-rootca-issuer-internal
      caCerts: combined-ca-bundle
  6. nova-custom-ovsdpdk サービスを作成します。

    $ oc apply -f nova-custom-ovsdpdk.yaml -n openstack
  7. カスタムサービスが作成されたことを確認します。

    $ oc get openstackdataplaneservice nova-custom-ovsdpdk -o yaml -n openstack
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る