第2章 ML2 メカニズムドライバーの OVS から OVN への移行
2.1. OVN メカニズムドライバーを移行するための環境の準備
環境の評価と準備は、移行を成功させるために重要です。Red Hat Technical Account Manager または Global Professional Services は、以下の手順での実施を案内します。
前提条件
- デプロイメントは、最新の RHOSP 17.1 バージョンを使用している。つまり、OpenStack バージョンのアップグレードまたは更新が必要な場合は、まずアップグレードまたは更新を実行し、続いて ML2/OVS から ML2/OVN への移行を実施します。
各サブネットプールで少なくとも 1 つの IP アドレスが使用可能である。
OVN メカニズムドライバーは、サブネットごとにメタデータポートを作成します。各メタデータポートは、IP アドレスプールから IP アドレスを要求します。
- Red Hat Technical Account Manager または Global Professional Services と連携して移行を計画し、プロアクティブケースを作成している。How to submit a Proactive Case を参照してください。
- ML2/OVS デプロイメントで VXLAN プロジェクトネットワークを使用する場合は、「VXLAN OVS デプロイメントから移行するための MTU 削減」 のセクションで説明されているような調整が必要になる場合があるため、このセクションを参照してください。
手順
ML2/OVN ステージデプロイメントを作成し、ターゲット ML2/OVN デプロイメントのベースライン設定を取得し、ターゲットデプロイメントの実現可能性をテストします。
計画された移行後の実稼働環境要デプロイメントと同じ基本的なロール、ルーティング、およびトポロジーを使用して、ステージデプロイメントを設計します。完全な
openstack overcloud deploy
コマンドをすべてのデプロイメント引数とともにovercloud-deploy.sh
というファイルに保存します。環境ファイルなど、openstack overcloud deploy
コマンドが参照するファイルもすべて保存します。この手順の後半で、移行のターゲット ML2/OVN 環境を設定するためにこれらのファイルが必要になります。注記これらのファイルは、ステージデプロイメントの作成および移行でのみ使用してください。移行後に再利用しないでください。
openstack-neutron-ovn-migration-tool
をインストールします。sudo dnf install openstack-neutron-ovn-migration-tool
- ステップ 1 で作成した overcloud-deploy.sh スクリプトをコピーし、コピーの名前を overcloud-migrate-ovn.sh に変更します。overcloud-migrate-ovn.sh 内の overcloud deploy コマンドのすべてのパスがまだ正しいことを確認します。後続の手順で、overcloud-migrate-ovn.sh スクリプトの引数をカスタマイズします。
以下の一覧で移行シナリオを確認し、
overcloud-migrate-ovn.sh
のopenstack deploy
コマンドをカスタマイズするための適切な手順を実施します。警告デプロイメントコマンドでは、環境ファイルを追加する -e 引数の順序に注意してください。一般的なデフォルト設定を含む環境ファイル (neutron-ovn-dvr-ha.yaml など) は、ブリッジマッピングなどのカスタムネットワーク環境設定を含むファイルを指定する -e の引数の前に配置する必要があります。
- シナリオ 1: DVR から DVR への移行で、コンピュートノードが外部ネットワークに接続されている場合
overcloud-migrate-ovn.sh
で、カスタム heat テンプレートファイル引数をopenstack overcloud deploy
コマンドに追加します。これらの引数はコアテンプレートファイルの引数の後に追加します。次のコマンド例では、デフォルトの
neutron-ovn-dvr-ha.yaml
heat テンプレートファイルを使用します。実際のデプロイメントでは、OVN 環境を定義するために複数の heat ファイルを使用する場合があります。それぞれを別々の-e
引数を使用して追加してください。openstack overcloud deploy \ --templates /usr/share/openstack-tripleo-heat-templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/services/ \ neutron-ovn-dvr-ha.yaml
- シナリオ 2: 集中ルーティングから集中ルーティングへ (DVR なし)
-
デプロイメントで SR-IOV およびその他の NFV 機能を使用する場合は、
overcloud-migrate-ovn.sh
で-e
引数を使用して SR-IOV 環境パラメーターをopenstack overcloud deploy
コマンドに追加します。SR-IOV 環境ファイルは、コアテンプレート環境ファイル引数およびその他のカスタム環境ファイル引数の後に追加します。SR-IOV 環境ファイルの例については、/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-sriov.yaml
を参照してください。 - カスタムのネットワーク変更は、移行前と同じままにします。
-
デプロイメントで SR-IOV およびその他の NFV 機能を使用する場合は、
- シナリオ 3: 集中ルーティングから DVR への移行で、コンピューティングノードが
br-ex
経由で外部ネットワークに接続されている場合 コンピュートノードが
br-ex
ブリッジを介して外部ネットワークに接続されていることを確認します。たとえば、compute-dvr.yaml
などの環境ファイルで、次のパラメーターを設定します。次に、-e
を使用して、スクリプトovercloud-migrate-ovn.sh
のopenstack overcloud deploy
コマンドに環境ファイルを追加します。type: ovs_bridge # Defaults to br-ex, anything else requires specific # bridge mapping entries for it to be used. name: bridge_name use_dhcp: false members: - type: interface name: nic3 # force the MAC address of the bridge to this interface primary: true
overcloud-migrate-ovn.sh
のovercloud deploy
コマンドの最後に次の引数を追加します。-e /usr/share/openstack-tripleo-heat-templates/environments/disable-container-manage-clean-orphans.yaml \ -e $HOME/ovn-extras.yaml
router
が環境ファイルまたはテンプレートのNeutronServicePlugins
またはNeutronPluginExtensions
の値として表示される場合は、その値 (router
) をovn-router
に置き換えます。たとえば、tripleo-heat-templates/environments/services/neutron-ovn-dvr-ha.yaml
では次のようになります。parameter_defaults: NeutronServicePlugins: "ovn-router,trunk,qos,placement"
すべてのユーザーに
overcloud-migrate-ovn.sh
ファイルの実行権限があることを確認します。このスクリプトには、移行プロセス中に実行権限が必要です。$ chmod a+x ~/overcloud-migrate-ovn.sh
export
コマンドを使用して、以下の移行関連の環境変数を設定します。以下に例を示します。$ export OVERCLOUDRC_FILE=~/myovercloudrc
- STACKRC_FILE
アンダークラウドの stackrc ファイル。
デフォルト: ~/stackrc
- OVERCLOUDRC_FILE
アンダークラウドの overcloudrc ファイル
デフォルト: ~/overcloudrc
- OVERCLOUD_OVN_DEPLOY_SCRIPT
デプロイメントスクリプト。
デフォルト: ~/overcloud-migrate-ovn.sh
- DHCP_RENEWAL_TIME
DHCP エージェント設定ファイルで設定する DHCP 更新時間 (秒単位)。
デフォルト: 30
- BACKUP_MIGRATION_IP
バックアップが保存されているサーバーの IP アドレス。
デフォルト: 192.168.24.1
- BACKUP_MIGRATION_CTL_PLANE_CIDRS
バックアップされるすべてのノードのコントロールプレーンサブネットを CIDR 表記でコンマ区切りで表した文字列。
デフォルト: 192.168.24.0/24
/usr/bin/ovn_migraton.sh ファイルの先頭に、関連するすべての環境変数のリストが表示されます。
ovn-migration ディレクトリーにいることを確認して、
ovn_migration.sh generate-inventory
コマンドを実行し、インベントリーファイルhosts_for_migration
およびansible.cfg
ファイルを生成します。$ ovn_migration.sh generate-inventory | sudo tee -a /var/log/ovn_migration_output.txt
hosts_for_migration
ファイルで正確性を確認してください。- リストがお使いの環境と一致していることを確認します。
- 各ノードに ovn コントローラーがあることを確認します。
- リスト見出し ([ovn-controllers] など) がリスト項目に含まれていないことを確認します。
- ovn 移行ディレクトリーから、ansible -i hosts_for_migration -m ping all コマンドをすべて ping します。
(オプション) 移行中に予期しない事態が発生した場合に備えて、移行を元に戻す準備をするためにデプロイメントをバックアップします。
setup_rear_extra_vars.yaml ファイルに次の行が存在する場合は削除します。
USER_INPUT_TIMEOUT: 5 KERNEL_CMDLINE: unattended ISO_RECOVER_MODE: unattended
コントロールプレーンのバックアップ選択したバックアップメカニズムを使用して、コントローラーノードをバックアップします。サポートされている選択肢は、ReaR バックアップツールを使用するデフォルトの
ovn-migration.sh backup
コマンドです。$ ovn_migration.sh backup
-
オーバークラウドのデプロイに使用されたテンプレートと環境ファイルをバックアップします。
ovn-migration.sh backup
コマンドはオーバークラウドをバックアップしません。移行が部分的にまたは失敗した後にコントローラーノードを元に戻す必要がある場合は、OVS オーバークラウドを復元するためにこのバックアップが必要になります。 -
元の RHOSP 16.2 ML2/OVS デプロイメントをデプロイするのに使用したスクリプトをコピーします。たとえば、元のスクリプトの名前は
overcloud_deploy.sh
になります。コピーにovercloud-revert-ovs.sh
という名前を付けます。 次の内容を含む
/home/stack/ovs-extra.yml
ファイルを作成します。parameter_defaults: ForceNeutronDriverUpdate: true
overcloud-revert-ovs.sh
の最終的な環境ファイル引数が次のようになっていることを確認します。-e /home/stack/ovs-extra.yml
-
overcloud-revert-ovs.sh
を安全に保存します。失敗した移行を元に戻す場合に必要になります。
- 「OVS から OVN への ML2 メカニズムドライバーの移行用コンテナーイメージの準備」 に進みます。