Menu Close
Settings Close

Language and Page Formatting Options

2.12. Deploying a custom role with ML2/OVN

デフォルトの OSP 16.1 デプロイメントでは、ML2/OVN コンポーザブルサービスはコントローラーノード上で実行されます。以下の例のように、サポートされているカスタムロールをオプションで使用できます。

Networker
専用のネットワーカーノードで OVN コンポーザブルサービスを実行します。
Networker と SR-IOV の組み合わせ
SR-IOV と共に専用のネットワークノードで OVN コンポーザブルサービスを実行します。
Controller と SR-IOV の組み合わせ
SR-IOV 対応のコントローラーノードで OVN コンポーザブルサービスを実行します。

独自のカスタムロールを生成することもできます。

制限

本リリースでは、ML2/OVN デプロイメントで SR-IOV とネイティブ OVN DHCP の組み合わせを使用する場合、以下の制限が適用されます。

  • すべてのポートに対して HA シャーシグループが 1 つしかないため、すべての外部ポートは単一のゲートウェイノード上でスケジュールされる。
  • 外部ポートは論理ルーターのゲートウェイポートと共存しないため、VLAN テナントネットワークでは、VF (直接) ポートでの North-South ルーティングは SR-IOV では機能しない。Bug #1875852 を参照してください。

前提条件

手順

  1. アンダークラウドホストに stack ユーザーとしてログインし、source コマンドで stackrc ファイルを読み込みます。

    $ source stackrc
  2. デプロイメントに適したカスタムロールファイルを選択します。そのままでご自分のニーズに適する場合には、直接デプロイコマンドで使用します。あるいは、他のカスタムロールファイルを組み合わせる独自のカスタムロールファイルを生成することもできます。

    デプロイメントロールロールファイル

    Networker ロール

    Networker

    Networker.yaml

    Networker ロールと SR-IOV の組み合わせ

    NetworkerSriov

    NetworkerSriov.yaml

    共存する control および networker と SR-IOV の組み合わせ

    ControllerSriov

    ControllerSriov.yaml

  3. (オプション) これらのカスタムロールファイルの 1 つと他のカスタムロールファイルを組み合わせる新しいカスタムロールデータファイルを生成します。オーバークラウドの高度なカスタマイズ の roles_data ファイルの作成 に記載の手順に従います。デプロイメントに応じて、適切なソー出力ルファイルを含めます。
  4. (オプション) ロール用の特定のノードを特定するには、特定のハードウェアフレーバーを作成して特定のノードにフレーバーを割り当てることができます。次に、環境ファイルを使用してロールのフレーバーを定義し、ノード数を指定します。詳しい情報は、オーバークラウドの高度なカスタマイズ ガイド の 新規ロールの作成 の 例 を参照してください。
  5. デプロイメントに適した環境ファイルを作成します。

    デプロイメント環境ファイルのサンプル

    Networker ロール

    neutron-ovn-dvr-ha.yaml

    Networker ロールと SR-IOV の組み合わせ

    ovn-sriov.yaml

  6. デプロイメントに適するように、以下の設定を含めます。

    デプロイメント設定

    Networker ロール

    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: ""
    NetworkerParameters:
        OVNCMSOptions: "enable-chassis-as-gw"
    NetworkerSriovParameters:
        OVNCMSOptions: ""

    Networker ロールと SR-IOV の組み合わせ

    OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
    
    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: ""
    NetworkerParameters:
        OVNCMSOptions: ""
    NetworkerSriYou can uovParameters:
        OVNCMSOptions: "enable-chassis-as-gw"

    共存する control および networker と SR-IOV の組み合わせ

    OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
    
    ControllerParameters:
        OVNCMSOptions: ""
    ControllerSriovParameters:
            OVNCMSOptions: "enable-chassis-as-gw"
    NetworkerParameters:
        OVNCMSOptions: ""
    NetworkerSriovParameters:
        OVNCMSOptions: ""
  7. オーバークラウドをデプロイします。-e オプションを使用して、環境ファイルをデプロイメントコマンドに追加します。-r オプションを使用して、カスタムロールデータファイルをデプロイメントコマンドに追加します。(例: -r Networker.yaml または -r mycustomrolesfile.yaml)。

検証手順

  1. ovn_metadata_agent がコントローラーノードおよびネットワーカーノードで実行されていることを確認します。

    [heat-admin@controller-0 ~]$ sudo podman ps | grep ovn_metadata

    以下の例のような出力が表示されるはずです。

    a65125d9588d  undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-metadata-agent-ovn:16.1_20200813.1  kolla_start           23 hours ago  Up 21 hours ago         ovn_metadata_agent
  2. OVN サービスが設定されたコントローラーノードまたは専用のネットワーカーノードが OVS のゲートウェイとして設定されていることを確認します。

    [heat-admin@controller-0 ~]$ sudo ovs-vsctl get Open_Vswitch .
    ...OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None

    以下の例のような出力が表示されるはずです。

    external_ids:ovn-cms-options
        enable-chassis-as-gw

SR-IOV デプロイメントの追加検証手順

  1. neutron_sriov_agent がコンピュートノード上で実行されていることを確認します。

    [heat-admin@controller-0 ~]sudo podman ps | grep neutron_sriov_agent

    以下の例のような出力が表示されるはずです。

    f54cbbf4523a  undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-sriov-agent:16.2_20200813.1
    kolla_start  23 hours ago  Up 21 hours ago         neutron_sriov_agent
  2. ネットワークに接続された SR-IOV NIC が正常に検出されていることを確認します。

    [heat-admin@controller-0 ~]$ sudo podman exec -uroot galera-bundle-podman-0 mysql nova -e 'select hypervisor_hostname,pci_stats from compute_nodes;'

    以下の例のような出力が表示されるはずです。

    computesriov-1.localdomain	{... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}
    computesriov-0.localdomain	{... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}

関連情報