22.3. ML2/OVN のネットワークサービスのアベイラビリティーゾーンの設定
ユーザーがルーターを作成する際に、Red Hat OpenStack Platform (RHOSP) Networking サービス (neutron) によって自動的に割り当てられる 1 つ以上のデフォルトアベイラビリティーゾーン (AZ) を設定できます。さらに、Networking サービスが各 AZ 用にこれらのリソースをスケジュールするために使用するルータードライバーを設定することもできます。
このトピックで説明する情報は、Modular Layer 2 プラグインと Open Virtual Network の組み合わせ (ML2/OVN) のメカニズムドライバーを使用する RHOSP Networking サービスを実行するデプロイメント用です。
ML2/OVN メカニズムドライバーは、ルーターのアベイラビリティーゾーンのみをサポートします。ML2/OVN には分散 DHCP サーバーがあるため、ネットワーク AZ をサポートする必要はありません。
前提条件
- RHOSP 16.2 以降がデプロイされている。
- ML2/OVN メカニズムドライバーを使用する RHOSP Networking サービスが実行されている。
分散コンピュートノード (DCN) 環境でネットワーキングサービス AZ を使用する場合、ネットワーキングサービス AZ 名を Compute サービス (nova) AZ 名と一致させる必要があります。
詳細は、分散コンピュートノードおよびストレージのデプロイメント ガイドを参照してください。
重要OVNCMSOptions: 'enable-chassis-as-gw'
を設定し、OVNAvailabilityZone
パラメーターに 1 つ以上の AZ 値を指定して、すべてのルーターゲートウェイポートが必ず OpenStack コントローラーノード上に存在することを確認してください。これらのアクションを実行すると、ルーターはすべてのシャーシをルーターゲートウェイポートの潜在的なホストとしてスケジュールできなくなります。
手順
アンダークラウドに stack ユーザーとしてログインし、source コマンドで
stackrc
ファイルを読み込み、director コマンドラインツールを有効にします。例
$ source ~/stackrc
カスタム YAML 環境ファイルを作成します。
例
$ vi /home/stack/templates/my-neutron-environment.yaml
ヒントRed Hat OpenStack Platform Orchestration サービス (heat) は、テンプレート と呼ばれるプランのセットを使用して環境をインストールおよび設定します。カスタム環境ファイル を使用して、オーバークラウドの要素をカスタマイズすることができます。このファイルは、heat テンプレートをカスタマイズするための特別な種別のテンプレートです。
YAML 環境ファイルの
parameter_defaults
セクションで、NeutronDefaultAvailabilityZones
パラメーターおよび 1 つ以上の AZ を入力します。重要DCN 環境では、Networking サービスの AZ 名を Compute サービスの AZ 名と一致させる必要があります。
ネットワークまたはルーターの作成時に、ユーザーが
--availability-zone-hint
オプションを使用して AZ を指定できない場合は、Networking サービスはこれらの AZ を割り当てます。例
parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1'
パラメーター
OVNAvailabilityZone
の値を入力して、ゲートウェイノード (コントローラーおよびネットワークノード) の AZ を決定します。重要OVNAvailabilityZone
パラメーターは、OVNCMSOptions
パラメーターで使用されている AZ 値を置き換えます。OVNAvailabilityZone
パラメーターを使用する場合は、OVNCMSOptions
パラメーターに AZ 値がないことを確認してください。例
この例では、
az-central
AZ のコントローラーと、datacenter1
およびdatacenter2
AZ のネットワーク担当者に対してロールが事前定義されています。parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1' ControllerCentralParameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1' NetworkerDatacenter1Parameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-datacenter1' NetworkerDatacenter2Parameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-datacenter2'
重要DCN 環境では、特定のエッジサイトに関連する AZ でポートがスケジュールされるように、
ControllerCentralParameter
に対して単一の AZ を定義します。デフォルトでは、ルータースケジューラーは
AZLeastRoutersScheduler
です。これを変更する場合は、NeutronRouterSchedulerDriver
パラメーターを使用して新規スケジューラーを入力します。例
parameter_defaults: NeutronDefaultAvailabilityZones: 'az-central,az-datacenter2,az-datacenter1' ControllerCentralParameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-central,az-datacenter2,az-datacenter1' NetworkerDCN1Parameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-datacenter1' NetworkerDCN2Parameters: OVNCMSOptions: 'enable-chassis-as-gw' OVNAvailabilityZone: 'az-datacenter2' NeutronRouterSchedulerDriver: 'neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler'
コア heat テンプレート、環境ファイル、およびこの新しいカスタム環境ファイルを指定して、
openstack overcloud deploy
コマンドを実行します。重要後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順序は重要となります。
例
$ openstack overcloud deploy --templates \ -e <your-environment-files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/\ my-neutron-environment.yaml
検証
availability zone list
コマンドを実行して、アベイラビリティーゾーンが正しく定義されていることを確認します。例
$ openstack availability zone list
出力例
+----------------+-------------+ | Zone Name | Zone Status | +----------------+-------------+ | az-central | available | | az-datacenter1 | available | | az-datacenter2 | available | +----------------+-------------+