第10章 Open Virtual Network (OVN) の使用


Open Virtual Network (OVN) は、Open vSwitch ベースの SDN で、インスタンスにネットワークサービスを提供します。本章では、director を使用して OVN をデプロイするために必要な手順について説明します。

重要

OVN は、現在テクノロジープレビュー機能として提供されています。テクノロジープレビューとして提供されている機能のサポートスコープに関する詳しい情報は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。

重要

OVN を ML2 メカニズムドライバーとして使用するデプロイメントの場合は、外部ネットワークに接続可能なノードのみが、その上でルーターゲートウェイポートをスケジューリングする対象になります。 ただし、現在既知の問題があり、全ノードが対象となってしまうため、コンピュートノードが外部に接続できない場合には問題となります。その結果、ルーターゲートウェイポートが外部に接続できないコンピュートノード上でスケジュールされている場合には、外部ネットワークの受信および送信の接続は機能せず、その場合には、ルーターゲートウェイポートをコントローラーノードに再スケジュールする必要があります。回避策として、全コンピュートノードに接続を提供することができます。また、NeutronBridgeMappings を削除するか、datacentre:br-ex に設定することを検討できます。詳しい情報は、https://bugzilla.redhat.com/show_bug.cgi?id=1525520https://bugzilla.redhat.com/show_bug.cgi?id=1510879 を参照してください。

10.1. OVN ベースプロファイルのデプロイ

ベースプロファイルをデプロイするには、environments/neutron-ml2-ovn.yaml ファイルを openstack overcloud deploy に渡します。以下に例を示します。

$ openstack overcloud deploy \
    --templates /usr/share/openstack-tripleo-heat-templates \
    ...
    -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ovn.yaml
    ....

10.2. OVN HA プロファイルのデプロイ

Pacemaker HA プロファイルをデプロイするには、openstack overcloud deploy コマンドに environments/neutron-ml2-ovn-ha.yaml ファイルを渡す必要があります。以下に例を示します。

$ openstack overcloud deploy \
    --templates /usr/share/openstack-tripleo-heat-templates \
    ...
    -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ovn-ha.yaml
    ....

10.3. OVN コンポーネント

OVN には、以下のコンポーネントとサービスが必要です。

  • OVN Northbound (NB) データベースサーバー。コントローラーノード上で実行され、TCP ポート 6641 をリッスンします。
  • OVN Southbound (SB) データベースサーバー。コントローラーノード上で実行され、TCP ポート 6642 をリッスンします。
  • ovn-northd: コントローラーノード上で実行されます。
  • ovn-controller: OS::Tripleo::Services::OVNController が定義されているすべてのコントローラーノードとコンピュートノード上で実行されます。OVN SB データベースサーバーに接続します。
  • ovn ML2 メカニズムドライバー。OVN NB および SB のデータベースサーバーに接続します。
ovn components

10.4. パッケージと依存関係

OVN には以下のパッケージが必要です。

  • openvswitch-ovn-common
  • openvswitch-ovn-central
  • openvswitch-ovn-host

メインの openvswitch パッケージにはサブパッケージがあります。必要な最小バージョンは OVS 2.7.2 です。これらのパッケージは overcloud-full.qcow2 イメージですでに含まれているはずです。

10.5. director を使用した OVN のデプロイ

director を使用して OVN をデプロイする場合は、以下のステップを実行してください。

  1. OVN ML2 メカニズムドライバーを有効化して、必要な設定オプションを生成します。
  2. コントローラーノードに OVN データベースサーバーと ovn-northd をデプロイします。
  3. 各コンピュートノードに ovn-controller をデプロイします。

以下の director コンポーネントが使用されます。

  • tripleo-heat-templates
  • puppet-tripleo
  • puppet-neutron
  • puppet-ovn および puppet-vswitch (OVN サービスをデプロイするため)
注記

OVN を使用するには、director のデプロイメントで VXLAN ではなく、geneve カプセル化を使用する必要があります。

10.6. OVN コンポーザブルサービス

director には、ovn-dbs という名前の OVN 用コンポーザブルサービスがあり、ベースプロファイルとペースメーカー HA プロファイルに 2 つがあります。OVN の Northbound および Southbound データベースは、ovsdb-server サービスによりホストされます。同様に、ovsdb-server プロセスは、ovs-vswitchd と並行して実行され、OVS データベース (conf.db) をホスティングします。

注記

NB データベースのスキーマファイルは /usr/share/openvswitch/ovn-nb.ovsschema に、SB データベースのスキーマファイルは /usr/share/openvswitch/ovn-sb.ovsschema にあります。

10.7. 高可用性

ovsdb-server サービスは現在 active-active モードをサポートしていませんが、master-slave モードでの HA はサポートしています。これは、pacemaker によって、リソースエージェント OCF スクリプトを使用して管理されます。ovsdb-servermaster モードで実行すると、データベースへの書き込みアクセスが許可されますが、その他のスレーブの ovsdb-server サービスはすべて master からローカルにデータベースを複製し、書き込みアクセスは許可しません。

この理由から、ベースプロファイルと HA プロファイルは両シナリオをサポートするために提供されます。ベースプロファイルを使用する場合には、OVN データベースサーバーはブートストラップコントローラーでのみ起動されます (デプロイメントに複数のコントローラーがある場合)。HA プロファイルが有効化されている場合には、OVN データベースサーバーは全コントローラーで起動され、次に pacemaker は master ロールとして機能するコントローラーを 1 つ選択します。

10.8. ベースプロファイルの使用

ベースプロファイル用の YAML ファイルは tripleo-heat-templates/puppet/services/ovn-dbs.yaml にあります。このサービスが有効化されると、OVN データベースはブートストラップコントローラーでのみ起動されます。

たとえば、デプロイメントに 3 つのコントローラー (controller-0controller-1controller-2) がある場合には、OVN データベースサーバーは controller-0 で起動されます。controller-0 が停止すると、OVN データベースサーバーも利用できなくなり、他のコントローラーでは起動されません。これは単一障害点です。

director は、コントローラーノードの 1 つでアクティブとなる内部ネットワーク用の仮想 IP アドレスを作成します。この仮想 IP は OVN_DBS_VIP にマップされます。OVN ML2 ドライバーと ovn-controller サービスが OVN データベースに接続できるようにするために、puppet-tripleo は以下の HAproxy 設定を各コントローラーノードの haproxy.cfg に生成します。

  • OVN NB データベースサーバー:

    Front end :
        tcp:OVN_DBS_VIP:6641
    Backend:
        tcp:Controller-0-IP:6641
        tcp:Controller-1-IP:6641
        tcp:Controller-2-IP:6641
  • OVN SB データベースサーバー:

    Front end :
        tcp:OVN_DBS_VIP:6642
    Backend:
        tcp:Controller-0-IP:6642
        tcp:Controller-1-IP:6642
        tcp:Controller-2-IP:6642
注記

OVN ML2 メカニズムドライバーは、OVN_DBS_VIP に接続するように (ml2_conf.ini[ovn] セクションで) 設定されます。

OVN データベースサーバーは controller-1controller-2 では起動されないので、HAproxy は常に、controller-0 上で実行されている OVN データベースサーバーにトラフィックをリダイレクトします。

10.9. Pacemaker HA プロファイルの使用

このプロファイル用の YAML ファイルは tripleo-heat-templates/puppet/services/pacemaker/ovn-dbs.yaml にあります。有効化すると、OVN データベースサーバーは Pacemaker によって管理され、puppet-tripleoovn:ovndb-servers という名前の pacemaker OCF リソースを作成します。

OVN データベースサーバーは各コントローラーノードで起動し、仮想 IP アドレス (OVN_DBS_VIP) を所有するコントローラーは OVN DB サーバーを master モードで実行します。OVN ML2 メカニズムドライバーと ovn-controller は次に OVN_DBS_VIP 値を使用してデータベースサーバーに接続します。フェイルオーバーが発生した場合には、Pacemaker がこの仮想 IP アドレス (OVN_DBS_VIP) を別のコントローラーに移動し、またそのノードで実行されている OVN データベースサーバーを master に昇格します。

注記

Pacemaker HA プロファイルには OVS バージョン 2.7.2 が必要です。フェイルオーバー機能は、2.7.4 で利用可能になる見込みです。詳しい情報は、https://bugzilla.redhat.com/show_bug.cgi?id=1512568 を参照してください。

10.10. ovn-controller の設定

ovn-controller サービスは各コンピュートノードで実行され、OVN SB データベースサーバーに接続して論理フローを取得します。次にその論理フローを物理 OF フローに変換して、OVS ブリッジ (br-int) に追加します。ovs-vswitchd と通信して OF フローをインストールするために、ovn-controllerovn-controller の起動時に渡された UNIX ソケットパス (例: unix:/var/run/openvswitch/db.sock) を使用して (conf.db をホストする) ローカルの ovsdb-server に接続します。

ovn-controller サービスは、「Open_vSwitch」テーブルの external_ids コラムに特定のキーと値のペアがあることを想定します。puppet-ovnpuppet-vswitch を使用してこれらのフィールドにデータを読み込みます。puppet-vswitch が external_ids コラムに設定するキーと値のペアは以下のとおりです。

hostname=<HOST NAME>
ovn-encap-ip=<IP OF THE NODE>
ovn-encap-type=geneve
ovn-remote=tcp:OVN_DBS_VIP:6642

10.11. 既知の制限事項

本項では、OVN のテクノロジープレビューでの既知の問題または既知の制限事項について説明します。

  • Open vSwitch バージョン: Red Hat OpenStack Platform には OVS バージョン 2.7 が同梱されています。
  • メタデータ API: この機能には OVS バージョン 2.8 が必要です。
  • L3 ゲートウェイ HA: この機能には OVS バージョン 2.8 が必要です。また、将来のリリースで予定されている networking-ovn に対する更新も必要です。
  • 新規デプロイメントのみ: OVN は新規デプロイメントでのみ利用可能です。既存のデプロイメントには、OVN への移行パスは現在ありません。これは将来のリリースで提供されるようになる予定です。
  • IPv6 ルーター: 現在、論理ポートステータスの特定で既知の問題があります。この問題は、OVS バージョン 2.7.4 で対処される予定です。詳しい情報は、https://bugs.launchpad.net/networking-ovn/+bug/1715126 を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.