スパイン/リーフ型ネットワーク
Red Hat OpenStack Platform director を使用したルーティング対応のスパイン/リーフ型ネットワークの設定
OpenStack Documentation Team
rhos-docs@redhat.com概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
弊社ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
ドキュメントへのダイレクトフィードバック (DDF) 機能の使用 (英語版のみ)
特定の文章、段落、またはコードブロックに対して直接コメントを送付するには、DDF の Add Feedback 機能を使用してください。なお、この機能は英語版のドキュメントでのみご利用いただけます。
- Multi-page HTML 形式でドキュメントを表示します。
- ドキュメントの右上隅に Feedback ボタンが表示されていることを確認してください。
- コメントするテキスト部分をハイライト表示します。
- Add Feedback をクリックします。
- Add Feedback フィールドにコメントを入力します。
- オプション:ドキュメントチームが連絡を取り、問題についてお伺いできるように、ご自分のメールアドレスを追加します。
- Submit をクリックします。
第1章 スパイン/リーフ型ネットワーキングの概要
以下の章では、Red Hat OpenStack Platform 環境のスパイン/リーフ型ネットワークトポロジーの構築に関する情報を提供します。これには、完全なエンドツーエンドのシナリオと、お使いの環境でより広範囲なネットワークトポロジーを複製するのに役立つサンプルファイルが含まれます。
1.1. スパイン/リーフ型ネットワーク
Red Hat OpenStack Platform のコンポーザブルネットワークアーキテクチャーを使用して、ネットワークをルーティング対応のスパイン/リーフ型データセンタートポロジーに適合させることができます。ルーティング対応のスパイン/リーフの実際の適用では、リーフは Compute または Storage のコンポーザブルロールに相当し、図 1.1, ルーティング対応のスパイン/リーフ型トポロジーの例 に示したように、通常はデータセンターのラック内にあります。Leaf 0 ラックには、アンダークラウドノード、コントローラーノード、およびコンピュートノードがあります。コンポーザブルネットワークはコンポーザブルロールに割り当てられたノードに提示されます。次の図は、以下の設定を示しています。
-
StorageLeafネットワークは、Ceph Storage とコンピュートノードに提示されます。 -
NetworkLeafは、設定する任意のネットワークの例を示します。
図1.1 ルーティング対応のスパイン/リーフトポロジーの例

1.2. スパイン/リーフ型ネットワークトポロジー
スパイン/リーフ型ネットワークのシナリオでは、OpenStack Networking (neutron) の機能を利用して、1 つのネットワークのセグメント内に複数のサブネットが定義されます。それぞれのネットワークは、Leaf 0 として動作するベースネットワークを使用します。director は、メインのネットワークのセグメントとして Leaf 1 および Leaf 2 サブネットを作成します。
このシナリオでは、以下のネットワークを使用します。
表1.1 Leaf 0 ネットワーク (ベースネットワーク)
| ネットワーク | アタッチされているロール | サブネット |
|---|---|---|
| Provisioning / Ctlplane / Leaf0 | Controller、ComputeLeaf0、CephStorageLeaf0 | 192.168.10.0/24 |
| Storage | Controller、ComputeLeaf0、CephStorageLeaf0 | 172.16.0.0/24 |
| StorageMgmt | Controller、CephStorageLeaf0 | 172.17.0.0/24 |
| InternalApi | Controller、ComputeLeaf0 | 172.18.0.0/24 |
| Tenant [1] | Controller、ComputeLeaf0 | 172.19.0.0/24 |
| External | Controller | 10.1.1.0/24 |
[1] テナントネットワークは、プロジェクトネットワークとしても知られています。
表1.2 Leaf 1 ネットワーク
| ネットワーク | アタッチされているロール | サブネット |
|---|---|---|
| Provisioning / Ctlplane / Leaf1 | ComputeLeaf1、CephStorageLeaf1 | 192.168.11.0/24 |
| StorageLeaf1 | ComputeLeaf1、CephStorageLeaf1 | 172.16.1.0/24 |
| StorageMgmtLeaf1 | CephStorageLeaf1 | 172.17.1.0/24 |
| InternalApiLeaf1 | ComputeLeaf1 | 172.18.1.0/24 |
| TenantLeaf1 [1] | ComputeLeaf1 | 172.19.1.0/24 |
[1] テナントネットワークは、プロジェクトネットワークとしても知られています。
表1.3 Leaf 2 ネットワーク
| ネットワーク | アタッチされているロール | サブネット |
|---|---|---|
| Provisioning / Ctlplane / Leaf2 | ComputeLeaf2、CephStorageLeaf2 | 192.168.12.0/24 |
| StorageLeaf2 | ComputeLeaf2、CephStorageLeaf2 | 172.16.2.0/24 |
| StorageMgmtLeaf2 | CephStorageLeaf2 | 172.17.2.0/24 |
| InternalApiLeaf2 | ComputeLeaf2 | 172.18.2.0/24 |
| TenantLeaf2 [1] | ComputeLeaf2 | 172.19.2.0/24 |
[1] テナントネットワークは、プロジェクトネットワークとしても知られています。
図1.2 スパイン/リーフ型ネットワークトポロジー

1.3. スパイン/リーフ型ネットワークの要件
L3 ルーティング対応アーキテクチャーを使用したネットワーク上でオーバークラウドをデプロイするには、前提条件として以下の手順を実施します。
- レイヤー 3 ルーティング
- ネットワークインフラストラクチャーのルーティングを設定し、異なる L2 セグメント間のトラフィックを有効にします。このルーティングは、静的または動的に設定することができます。
- DHCP リレー
-
アンダークラウドにローカルではない各 L2 セグメントには、
dhcp-relayを指定する必要があります。DHCP 要求は、アンダークラウドが接続されているプロビジョニングネットワークのセグメントでアンダークラウドに対して送信する必要があります。
アンダークラウドは 2 つの DHCP サーバーを使用します。1 つは、ベアメタルノードのイントロスペクション用で、もう 1 つはオーバークラウドノードのデプロイ用です。dhcp-relay を設定する場合は、DHCP リレーの設定を読んで要件を理解するようにしてください。
1.4. スパイン/リーフ型ネットワークの制限事項
- Controller ロールなどの一部のロールは、仮想 IP アドレスとクラスターリングを使用します。この機能の背後にあるメカニズムには、ノード間の L2 ネットワーク接続が必要です。これらのノードを同じリーフ内に配置する必要があります。
- Networker ノードにも同様の制限が適用されます。Virtual Router Redundancy Protocol (VRRP) により、ネットワークサービスはネットワーク内に高可用性のデフォルトパスを実装します。VRRP は仮想ルーターの IP アドレスを使用するので、マスターとバックアップノードを同じ L2 ネットワークセグメントに接続する必要があります。
- テナントまたはプロバイダーネットワークを VLAN セグメンテーションと共に使用する場合には、すべての Networker ノードおよびコンピュートノード間で特定の VLAN を共有する必要があります。
ネットワークサービスは、複数の Networker ノードセットで設定することが可能です。各 Networker ノードセットはそれらのネットワークのルートを共有し、VRRP が各 Networker ノードセット内の高可用性のデフォルトパスを提供します。この種別の設定では、ネットワークを共有する全 Networker ノードが同じ L2 ネットワークセグメント上になければなりません。
第2章 アンダークラウドでのルーティング対応スパイン/リーフの設定
本項では、コンポーザブルネットワークを使用するルーティング対応のスパイン/リーフを取り入れるための、アンダークラウド設定方法のユースケースについて説明します。
2.1. スパイン/リーフ用のプロビジョニングネットワークの設定
スパイン/リーフインフラストラクチャー用のプロビジョニングネットワークを設定するには、undercloud.conf ファイルを編集して、以下の手順で説明する該当パラメーターを設定します。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 undercloud.confファイルがまだない場合には、サンプルのテンプレートファイルをコピーします。[stack@director ~]$ cp /usr/share/python-tripleoclient/undercloud.conf.sample ~/undercloud.conf
-
undercloud.confファイルを編集します。 [DEFAULT]セクションに以下の値を設定します。local_ipをleaf0上のアンダークラウド IP に設定します。local_ip = 192.168.10.1/24
undercloud_public_hostをアンダークラウドの外部向け IP アドレスに設定します。undercloud_public_host = 10.1.1.1
undercloud_admin_hostをアンダークラウドの管理用 IP アドレスに設定します。この IP アドレスは、通常 leaf0 上にあります。undercloud_admin_host = 192.168.10.2
local_interfaceを、ローカルネットワーク用にブリッジを設定するインターフェイスに設定します。local_interface = eth1
enable_routed_networksをtrueに設定します。enable_routed_networks = true
subnetsパラメーターを使用してサブネットの一覧を定義します。ルーティング対応のスパイン/リーフ内の各 L2 セグメントにサブネットを 1 つ定義します。subnets = leaf0,leaf1,leaf2
local_subnetパラメーターを使用して、アンダークラウドにローカルな物理 L2 セグメントに関連付けられるサブネットを指定します。local_subnet = leaf0
undercloud_nameserversの値を設定します。undercloud_nameservers = 10.11.5.19,10.11.5.20
ヒントアンダークラウドのネームサーバーに使用する DNS サーバーの現在の IP アドレスは、/etc/resolv.conf を参照して確認することができます。
subnetsパラメーターで定義するサブネットごとに、新規セクションを作成します。[leaf0] cidr = 192.168.10.0/24 dhcp_start = 192.168.10.10 dhcp_end = 192.168.10.90 inspection_iprange = 192.168.10.100,192.168.10.190 gateway = 192.168.10.1 masquerade = False [leaf1] cidr = 192.168.11.0/24 dhcp_start = 192.168.11.10 dhcp_end = 192.168.11.90 inspection_iprange = 192.168.11.100,192.168.11.190 gateway = 192.168.11.1 masquerade = False [leaf2] cidr = 192.168.12.0/24 dhcp_start = 192.168.12.10 dhcp_end = 192.168.12.90 inspection_iprange = 192.168.12.100,192.168.12.190 gateway = 192.168.12.1 masquerade = False
-
undercloud.confファイルを保存します。 アンダークラウドをインストールするコマンドを実行します。
[stack@director ~]$ openstack undercloud install
この設定により、プロビジョニングネットワークまたはコントロールプレーン上に 3 つのサブネットが作成されます。オーバークラウドは、各ネットワークを使用して対応する各リーフ内にシステムをプロビジョニングします。
アンダークラウドへの DHCP 要求が適切にリレーされるようにするには、DHCP リレーを設定する必要がある場合があります。
2.2. DHCP リレーの設定
DHCP リレーサービスは、リクエストを転送したいリモートネットワークセグメントに接続されているスイッチ、ルーター、またはサーバーで実行します。
アンダークラウド上で DHCP リレーサービスを実行しないでください。
アンダークラウドは、プロビジョニングネットワーク上の 2 つの DHCP サーバーを使用します。
- イントロスペクション DHCP サーバー。
- プロビジョニング DHCP サーバー。
DHCP リレーは、アンダークラウド上の両方の DHCP サーバーに DHCP リクエストを転送するように設定する必要があります。
UDP ブロードキャストに対応するデバイスで UDP ブロードキャストを使用して、アンダークラウドのプロビジョニングネットワークが接続されている L2 ネットワークセグメントに DHCP 要求をリレーすることができます。または、DHCP 要求を特定の IP アドレスにリレーする UDP ユニキャストを使用することができます。
特定のデバイス種別での DHCP リレーの設定は、本書の対象外となっています。本ガイドでは参考として、ISC DHCP ソフトウェアの実装を使用した DHCP リレー設定の例を説明します。詳細は、dhcrelay(8) の man ページを参照してください。
DHCP オプション 79 は、一部のリレー、特に DHCPv6 アドレスを提供するリレー、および元の MAC アドレスを渡さないリレーに必要です。詳細は、RFC6939 を参照してください。
ブロードキャスト DHCP リレー
この方法では、UDP ブロードキャストトラフィックを使用して DHCP 要求を、DHCP サーバーが存在する L2 ネットワークセグメントにリレーします。ネットワークセグメント上のすべてのデバイスがブロードキャストトラフィックを受信します。UDP ブロードキャストを使用する場合は、アンダークラウド上の両方の DHCP サーバーがリレーされた DHCP 要求を受信します。実装に応じて、インターフェイスまたは IP ネットワークアドレスを指定して設定できます。
- インターフェイス
- DHCP 要求がリレーされる L2 ネットワークセグメントに接続されるインターフェイスを指定します。
- IP ネットワークアドレス
- DHCP 要求がリレーされる IP ネットワークのネットワークアドレスを指定します。
ユニキャスト DHCP リレー
この方法では、UDP ユニキャストトラフィックを使用して DHCP 要求を特定の DHCP サーバーにリレーします。UDP ユニキャストを使用する場合には、DHCP リレーを提供するデバイスが、アンダークラウド上のイントロスペクション用に使用されるインターフェイスに割り当てられた IP アドレスと、ctlplane ネットワーク用の DHCP サービスをホストするために OpenStack Networking (neutron) サービスが作成するネットワーク名前空間の IP アドレスの両方に対して、DHCP 要求をリレーするように設定する必要があります。
イントロスペクションに使用されるインターフェイスは、undercloud.conf ファイルで inspection_interface として定義されるインターフェイスです。このパラメーターを設定していない場合には、アンダークラウドのデフォルトインターフェイスは br-ctlplane になります。
br-ctlplane インターフェイスをイントロスペクションに使用するのは一般的です。undercloud.conf ファイルで local_ip として定義する IP アドレスは、br-ctlplane インターフェイス上にあります。
Neutron DHCP 名前空間に確保される IP アドレスは、undercloud.conf ファイルの local_subnet で設定する IP 範囲内で利用可能な最初のアドレスです。IP 範囲内の最初のアドレスは、設定の dhcp_start で定義するアドレスです。たとえば、以下の設定を使用する場合、192.168.10.10 がその IP アドレスになります。
[DEFAULT] local_subnet = leaf0 subnets = leaf0,leaf1,leaf2 [leaf0] cidr = 192.168.10.0/24 dhcp_start = 192.168.10.10 dhcp_end = 192.168.10.90 inspection_iprange = 192.168.10.100,192.168.10.190 gateway = 192.168.10.1 masquerade = False
DHCP 名前空間の IP アドレスは自動的に割り当てられます。多くの場合、これは IP 範囲の最初のアドレスになります。これを確認するには、アンダークラウドで以下のコマンドを実行します。
$ openstack port list --device-owner network:dhcp -c "Fixed IP Addresses" +----------------------------------------------------------------------------+ | Fixed IP Addresses | +----------------------------------------------------------------------------+ | ip_address='192.168.10.10', subnet_id='7526fbe3-f52a-4b39-a828-ec59f4ed12b2' | +----------------------------------------------------------------------------+ $ openstack subnet show 7526fbe3-f52a-4b39-a828-ec59f4ed12b2 -c name +-------+--------+ | Field | Value | +-------+--------+ | name | leaf0 | +-------+--------+
dhcrelay の設定例
以下の例では、dhcp パッケージの dhcrelay コマンドは以下の設定を使用します。
-
DHCP の受信要求をリレーするインターフェイスは
eth1、eth2、eth3です。 -
ネットワークセグメント上のアンダークラウドの DHCP サーバーが接続されているインターフェイスは
eth0です。 -
イントロスペクションに使用する DHCP サーバーは、次の IP アドレスをリッスンしています。
192.168.10.1 -
プロビジョニングに使用される DHCP サーバーがリッスンしている IP アドレスは
192.168.10.10です。
これで、dhcrelay コマンドは以下のようになります。
dhcrelayバージョン 4.2.x:$ sudo dhcrelay -d --no-pid 192.168.10.10 192.168.10.1 \ -i eth0 -i eth1 -i eth2 -i eth3
dhcrelayバージョン 4.3.x 以降:$ sudo dhcrelay -d --no-pid 192.168.10.10 192.168.10.1 \ -iu eth0 -id eth1 -id eth2 -id eth3
Cisco IOS ルーティングスイッチの設定例
この例では、次のタスクを実行するために、以下に示す Cisco IOS 設定を使用しています。
- プロビジョニングネットワークに使用する VLAN を設定する。
- リーフの IP アドレスを追加する。
-
次の IP アドレスをリッスンするイントロスペクション用 DHCP サーバーに、UDP および BOOTP 要求を転送する。
192.168.10.1 -
IP アドレス
192.168.10.10をリッスンするプロビジョニング用 DHCP サーバーに、UDP および BOOTP 要求を転送する。
interface vlan 2 ip address 192.168.24.254 255.255.255.0 ip helper-address 192.168.10.1 ip helper-address 192.168.10.10 !
これでプロビジョニングネットワークの設定が完了したので、残りのオーバークラウドリーフネットワークを設定することができます。
2.3. リーフノードのロールの指定
各リーフネットワークのそれぞれのロールには、フレーバーとロールの割り当てが必要です。これにより、ノードを対応するリーフにタグ付けすることができます。各フレーバーを作成してロールに割り当てるには、以下の手順を実施します。
手順
stackrcファイルを取得します。[stack@director ~]$ source ~/stackrc
ノード一覧を取得して UUID を把握します。
(undercloud)$ openstack baremetal node list
リーフネットワークとロールを識別するカスタムリソースクラスを使用して、ロールに指定する各ベアメタルノードを割り当てます。
openstack baremetal node set \ --resource-class baremetal.<ROLE> <node>
- <ROLE> をロールを識別する名前に置き換えます。
<node> をベアメタルノードの ID に置き換えます。
たとえば、以下のコマンドを実行して、UUID 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 のノードを Leaf2 上の Compute ロールにタグ付けします。
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.COMPUTE-LEAF2 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
-
各ロールがまだ定義されていない場合は、
overcloud-baremetal-deploy.yamlに追加します。 ロールのノードに割り当てるリソースクラスを定義します。
- name: <role> count: 1 defaults: resource_class: baremetal.<ROLE>- <role> をロールの名前に置き換えます。
- <ROLE> をロールを識別する名前に置き換えます。
Baremetal-deploy.yaml ファイルで、ロールのノードに割り当てるリソースクラスを定義します。展開するロール、プロファイル、数量、および関連付けられているネットワークを指定します。
- name: <role> count: 1 hostname_format: <role>-%index% ansible_playbooks: - playbook: bm-deploy-playbook.yaml defaults: resource_class: baremetal.<ROLE> profile: control networks: - network: external subnet: external_subnet - network: internal_api subnet: internal_api_subnet01 - network: storage subnet: storage_subnet01 - network: storage_mgmt subnet: storage_mgmt_subnet01 - network: tenant subnet: tenant_subnet01 network_config: template: templates/multiple_nics/multiple_nics_dvr.j2 default_route_network: - external- <role> をロールの名前に置き換えます。
<ROLE> をロールを識別する名前に置き換えます。
注記/home/stack/<stack>に、デプロイするすべてのスタックに対して、baremetal-deploy.yaml環境ファイルを作成する必要があります。
2.4. ベアメタルノードのポートからコントロールプレーンのネットワークセグメントへのマッピング
L3 ルーティング対応のネットワーク上でのデプロイメントを有効にするには、ベアメタルポートの physical_network フィールドを設定する必要があります。各ベアメタルポートは、OpenStack Bare Metal (ironic) サービス内のベアメタルノードに関連付けられます。物理ネットワーク名は、アンダークラウドの設定の subnets オプションで指定する名前です。
undercloud.conf ファイルの local_subnet で指定されるサブネットの物理ネットワーク名には、必ず ctlplane という名前が付けられます。
手順
stackrcファイルを取得します。$ source ~/stackrc
ベアメタルノードをチェックします。
$ openstack baremetal node list
ベアメタルノードは
enrollまたはmanageableの状態であることを確認してください。ベアメタルノードがこれらのいずれかの状態にない場合、ベアメタルポートでphysical_networkプロパティーを設定するコマンドは失敗します。全ノードをmanageableの状態に設定するには、以下のコマンドを実行します。$ for node in $(openstack baremetal node list -f value -c Name); do openstack baremetal node manage $node --wait; done
ベアメタルポートとベアメタルノードの関連付けを確認します。
$ openstack baremetal port list --node <node-uuid>
ポートの
physical-networkパラメーターを設定します。以下の例では、leaf0、leaf1、およびleaf2の 3 つのサブネットが設定で定義されています。local_subnet はleaf0です。local_subnetの物理ネットワークは常にctlplaneであるため、leaf0に接続されたベアメタルポートは必ず ctlplane を使用します。残りのポートは他のリーフ名を使用します。$ openstack baremetal port set --physical-network ctlplane <port-uuid> $ openstack baremetal port set --physical-network leaf1 <port-uuid> $ openstack baremetal port set --physical-network leaf2 <port-uuid>
オーバークラウドをデプロイする前に、ノードをイントロスペクションします。
--all-manageableオプションと-provideオプションを付けて、デプロイ可能なノードとして設定します。$ openstack overcloud node introspect --all-manageable --provide
2.5. スパイン/リーフ型のプロビジョニングネットワークへの新規リーフの追加
新しい物理サイトの追加など、ネットワーク容量を増やす場合には、新しいリーフと、対応するサブネットを Red Hat OpenStack Platform のスパイン/リーフ型のプロビジョニングネットワークに追加する必要がある場合があります。オーバークラウドでリーフをプロビジョニングする場合には、対応するアンダークラウドのリーフが使用されます。
前提条件
- RHOSP デプロイメントでスパイン/リーフ型ネットワークトポロジーが使用されている。
手順
- アンダークラウドホストに stack ユーザーとしてログインします。
source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
$ source ~/stackrc
/home/stack/undercloud.confファイルで、以下の手順を実施します。subnetsパラメーターを特定し、追加するリーフ用の新規サブネットを追加します。サブネットは、ルーティング対応のスパイン/リーフ内の L2 セグメントを表します。
例
以下の例では、新しいリーフ (
leaf3) に新規サブネット (leaf3) が追加されます。subnets = leaf0,leaf1,leaf2,leaf3
追加したサブネットのセクションを作成します。
例
以下の例では、新しいサブネット (
leaf3に[leaf3]セクションが追加されます。[leaf0] cidr = 192.168.10.0/24 dhcp_start = 192.168.10.10 dhcp_end = 192.168.10.90 inspection_iprange = 192.168.10.100,192.168.10.190 gateway = 192.168.10.1 masquerade = False [leaf1] cidr = 192.168.11.0/24 dhcp_start = 192.168.11.10 dhcp_end = 192.168.11.90 inspection_iprange = 192.168.11.100,192.168.11.190 gateway = 192.168.11.1 masquerade = False [leaf2] cidr = 192.168.12.0/24 dhcp_start = 192.168.12.10 dhcp_end = 192.168.12.90 inspection_iprange = 192.168.12.100,192.168.12.190 gateway = 192.168.12.1 masquerade = False [leaf3] cidr = 192.168.13.0/24 dhcp_start = 192.168.13.10 dhcp_end = 192.168.13.90 inspection_iprange = 192.168.13.100,192.168.13.190 gateway = 192.168.13.1 masquerade = False
-
undercloud.confファイルを保存します。 アンダークラウドを再インストールします。
$ openstack undercloud install
第3章 その他のプロビジョニングネットワーク設定手法
本項では、コンポーザブルネットワークを使用するルーティング対応のスパイン/リーフを取り入れるための、プロビジョニングネットワークを設定するのに使用できるその他の方法について説明します。
3.1. VLAN プロビジョニングネットワーク
以下の例では、director はプロビジョニングネットワークを通じて新たなオーバークラウドノードをデプロイし、L3 トポロジー全体にまたがる VLAN トンネルを使用します。詳細は、図 3.1、VLAN プロビジョニングネットワークトポロジー を参照してください。VLAN プロビジョニングネットワークを使用すると、director の DHCP サーバーは、任意のリーフに DHCPOFFER ブロードキャストを送信することができます。このトンネルを確立するには、トップオブラック (ToR) リーフスイッチ間で VLAN をトランク接続します。以下の図では、StorageLeaf ネットワークは Ceph Storage とコンピュートノードに提示されます。NetworkLeaf は、設定する任意のネットワークの例を示します。
図3.1 VLAN プロビジョニングネットワークトポロジー

3.2. VXLAN プロビジョニングネットワーク
以下の例では、director はプロビジョニングネットワークを通じて新たなオーバークラウドノードをデプロイし、レイヤー 3 トポロジー全体をカバーするために VXLAN トンネルを使用します。詳細は、図 3.2、VXLAN プロビジョニングネットワーク・トポロジー を参照してください。VXLAN プロビジョニングネットワークを使用すると、director の DHCP サーバーは、任意のリーフに DHCPOFFER ブロードキャストを送信することができます。このトンネルを確立するには、トップオブラック (ToR) リーフスイッチで VXLAN エンドポイントを設定します。
図3.2 VXLAN プロビジョニングネットワークトポロジー

第4章 オーバークラウドの設定
Red Hat OpenStack Platform (RHOSP) director を使用して、RHOSP オーバークラウドにスパイン/リーフネットワークをインストールおよび設定します。大まかな手順は次のとおりです。
- リーフごとにオーバークラウドネットワークを定義します。
- リーフごとにコンポーザブルロールを作成し、コンポーザブルネットワークをそれぞれのロールに接続します。
- ロールごとに一意の NIC 設定を作成します。
- 各リーフがそのリーフ上の特定のブリッジまたは VLAN を介してトラフィックをルーティングするように、コントロールプレーンパラメーターを設定し、ブリッジマッピングを変更します。
- オーバークラウドエンドポイントの仮想 IP (VIP) を定義し、各 VIP のサブネットを特定します。
- オーバークラウドネットワークとオーバークラウド仮想 IP をプロビジョニングします。
- 注記
事前にプロビジョニングされたベアメタルノードを使用している場合は、手順 7、8、および 9 をスキップします。
- オーバークラウド内のベアメタルノードをイントロスペクトします。
- ベアメタルノードをプロビジョニングします。
- 前のステップで設定した設定を使用して、オーバークラウドをデプロイします。
4.1. リーフネットワークの定義
Red Hat OpenStack Platform (RHOSP) director は、作成した YAML 形式のカスタムネットワーク定義ファイルからオーバークラウドリーフネットワークを作成します。このカスタムネットワーク定義ファイルは、設定可能な各ネットワークとその属性をリストし、各リーフに必要なサブネットも定義します。
以下の手順を実行して、オーバークラウド上のスパイン/リーフネットワークの仕様を含む YAML 形式のカスタムネットワーク定義ファイルを作成します。その後、プロビジョニングプロセスにより、RHOSP オーバークラウドをデプロイするときに含めるネットワーク定義ファイルから heat 環境ファイルが作成されます。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
/home/stackの下にtemplatesディレクトリーを作成します。$ mkdir /home/stack/templates
デフォルトのテンプレートである
routed-networks.yamlテンプレートをベースとして使用し、カスタムtemplatesディレクトリーにコピーして、環境用のネットワーク定義テンプレートを作成します。例
$ cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/\ routed-networks.yaml \ /home/stack/templates/spine-leaf-networks-data.yaml
ネットワーク定義テンプレートのコピーを編集して、各ベースネットワークとそれぞれのリーフサブネットを設定可能なネットワークアイテムとして定義します。
ヒント詳細については、Director のインストールと使用 ガイドの ネットワーク定義ファイルの設定オプション を参照してください。
例
以下の例は、内部 API ネットワークおよびそのリーフネットワークを定義する方法を示しています。
- name: InternalApi name_lower: internal_api vip: true mtu: 1500 subnets: internal_api_subnet: ip_subnet: 172.16.32.0/24 gateway_ip: 172.16.32.1 allocation_pools: - start: 172.16.32.4 end: 172.16.32.250 vlan: 20 internal_api_leaf1_subnet: ip_subnet: 172.16.33.0/24 gateway_ip: 172.16.33.1 allocation_pools: - start: 172.16.33.4 end: 172.16.33.250 vlan: 30 internal_api_leaf2_subnet: ip_subnet: 172.16.34.0/24 gateway_ip: 172.16.34.1 allocation_pools: - start: 172.16.34.4 end: 172.16.34.250 vlan: 40
コントロールプレーンネットワークは、アンダークラウドによってすでに作成されているため、カスタムネットワーク定義テンプレートでは定義しません。ただし、パラメーターを手動で設定して、オーバークラウドが NIC を適切に設定できるようにする必要があります。詳細は、アンダークラウドでのルーティング対応のスパイン/リーフの設定を参照してください。
現在、ネットワークサブネットおよび allocation_pools の値に対する自動検証はありません。これらの値を一貫性を持って定義し、既存のネットワークと競合しないようにしてください。
コントローラーベースのサービスをホスティングするネットワークに対して、vip パラメーターを追加し、値を true に設定します。この例では、InternalApi ネットワークにこれらのサービスが含まれています。
次のステップ
- 作成したカスタムネットワーク定義ファイルのパスとファイル名をメモします。この情報は、後で RHOSP オーバークラウド用にネットワークをプロビジョニングする際に必要になります。
- 次のステップ リーフロールの定義とネットワークの接続 に進みます。
関連情報
- Director のインストールと使用 ガイドの ネットワーク定義ファイル設定オプション
4.2. リーフロールの定義とネットワークの接続
Red Hat OpenStack Platform (RHOSP) director は、リーフごとにコンポーザブルロールを作成し、作成したロールテンプレートからコンポーザブルネットワークをそれぞれのロールにアタッチします。まず、デフォルトの Controller、Compute、および Ceph Storage ロールを director コアテンプレートからコピーし、環境のニーズに合わせてこれらを変更します。個々のロールをすべて作成した後、openstack overcloud role generated コマンドを実行して、それらを 1 つの大きなカスタムロールデータファイルに連結します。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
RHOSP に同梱されている Controller、Compute、Ceph Storage ロールのデフォルトロールを
stackユーザーのホームディレクトリーにコピーします。リーフ 0 であることを反映するようにファイルの名前を変更します。$ cp /usr/share/openstack-tripleo-heat-templates/roles/Controller.yaml ~/roles/Controller0.yaml $ cp /usr/share/openstack-tripleo-heat-templates/roles/Compute.yaml ~/roles/Compute0.yaml $ cp /usr/share/openstack-tripleo-heat-templates/roles/CephStorage.yaml ~/roles/CephStorage0.yaml
リーフ 0 ファイルをリーフ 1 およびリーフ 2 ファイルのベースとしてコピーします。
$ cp ~/roles/Compute0.yaml ~/roles/Compute1.yaml $ cp ~/roles/Compute0.yaml ~/roles/Compute2.yaml $ cp ~/roles/CephStorage0.yaml ~/roles/CephStorage1.yaml $ cp ~/roles/CephStorage0.yaml ~/roles/CephStorage2.yaml
各ファイルのパラメーターを編集して、それぞれのリーフパラメーターに合わせます。
ヒントロールデータテンプレートのさまざまなパラメーターは、director のインストールと使用 ガイドの ロールパラメーターの考察 を参照してください。
例 - ComputeLeaf0
- name: ComputeLeaf0 HostnameFormatDefault: '%stackname%-compute-leaf0-%index%'
例 - CephStorageLeaf0
- name: CephStorageLeaf0 HostnameFormatDefault: '%stackname%-cephstorage-leaf0-%index%'
それぞれのリーフネットワークのパラメーターと整合するように、リーフ 1 および リーフ 2 ファイルの
networkパラメーターを編集します。例 - ComputeLeaf1
- name: ComputeLeaf1 networks: InternalApi: subnet: internal_api_leaf1 Tenant: subnet: tenant_leaf1 Storage: subnet: storage_leaf1例 - CephStorageLeaf1
- name: CephStorageLeaf1 networks: Storage: subnet: storage_leaf1 StorageMgmt: subnet: storage_mgmt_leaf1注記この設定を行うのは、リーフ 1 および リーフ 2 だけです。リーフ 0 の
networkパラメーターは、ベースサブネットの値のままにします (各サブネットの小文字を使用した名前に接尾辞_subnetを追加したもの)。たとえば、リーフ 0 の内部 API はinternal_api_subnetです。ロールの設定が完了したら、
overcloud roles generateコマンドを実行して完全なロールデータファイルを生成します。例
$ openstack overcloud roles generate --roles-path ~/roles -o spine-leaf-roles-data.yaml Controller Compute Compute1 Compute2 CephStorage CephStorage1 CephStorage2
これにより、それぞれのリーフネットワークのすべてのカスタムロールを含む 1 つのカスタムロールデータファイルが作成されます。
次のステップ
-
overcloud roles generateコマンドが出力したカスタムロールデータファイルのパスとファイル名に注意してください。この情報は、後でオーバークラウドをデプロイするときに必要になります。 - 次のステップ リーフロール用のカスタム NIC 設定の作成 に進みます。
関連情報
- director のインストールと使用 ガイドの ロールパラメーターを調べる
4.3. リーフロール用のカスタム NIC 設定の作成
Red Hat OpenStack Platform (RHOSP) director が作成する各ロールには、固有の NIC 設定が必要です。次の手順を実行して、NIC テンプレートのカスタムセットと、カスタムテンプレートをそれぞれのロールにマッピングするカスタム環境ファイルを作成します。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。 - カスタムネットワーク定義ファイルがある。
- カスタムロールデータファイルがある。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
デフォルトの NIC テンプレートの 1 つからコンテンツをコピーして、NIC 設定のカスタムテンプレートのベースとして使用します。
例
この例では、NIC テンプレート
single-nic-vlansがコピーされ、NIC 設定のカスタムテンプレートのベースとして使用されます。$ cp -r /usr/share/ansible/roles/tripleo_network_config/\ templates/single-nic-vlans/* /home/stack/templates/spine-leaf-nics/.
前の手順でコピーした NIC テンプレートの各 NIC 設定を編集して、スパインリーフトポロジーの詳細を反映させます。
例
{% set mtu_list = [ctlplane_mtu] %} {% for network in role_networks %} {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} {%- endfor %} {% set min_viable_mtu = mtu_list | max %} network_config: - type: ovs_bridge name: {{ neutron_physical_bridge_name }} mtu: {{ min_viable_mtu }} use_dhcp: false dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} addresses: - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }} routes: {{ ctlplane_host_routes }} members: - type: interface name: nic1 mtu: {{ min_viable_mtu }} # force the MAC address of the bridge to this interface primary: true {% for network in role_networks %} - type: vlan mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }} vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }} addresses: - ip_netmask: {{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }} routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }} {% endfor %}ヒント詳細は、director のインストールと使用 ガイドの カスタムネットワークインターフェイステンプレート を参照してください。
カスタム NIC テンプレートを各カスタムロールにマッピングする
parameter_defaultsセクションを含む、spine-leaf-nic-roles-map.yamlなどのカスタム環境ファイルを作成します。parameter_defaults: %%ROLE%%NetworkConfigTemplate: <path_to_ansible_jinja2_nic_config_file>
例
parameter_defaults: Controller0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
次のステップ
- カスタム NIC テンプレートのパスとファイル名、およびカスタム NIC テンプレートを各カスタムロールにマッピングするカスタム環境ファイルをメモします。この情報は、後でオーバークラウドをデプロイするときに必要になります。
- 次のステップ 個別のネットワークをマッピングし、コントロールプレーンパラメーターを設定する に進みます。
関連情報
- Director のインストールと使用方法 ガイドの カスタムネットワークインターフェイステンプレート
4.4. 個別のネットワークのマッピングとコントロールプレーンパラメーターの設定
スパイン/リーフ型アーキテクチャーでは、各リーフは、そのリーフ上の特定のブリッジまたは VLAN を介してトラフィックをルーティングします。これは、エッジコンピューティングシナリオでよくあるケースです。そのため、Red Hat OpenStack Platform (RHOSP) コントローラーとコンピュートのネットワーク設定が br-ex ブリッジを使用するデフォルトのマッピングを変更する必要があります。
RHOSP director は、アンダークラウドの作成中にコントロールプレーンネットワークを作成します。ただし、オーバークラウドには、各リーフのコントロールプレーンへのアクセスが必要です。このアクセスを有効にするには、デプロイメントに追加パラメーターを定義する必要があります。
以下の手順を実行して、個別のネットワークマッピングを含み、オーバークラウドのコントロールプレーンネットワークへのアクセスを設定するカスタムネットワーク環境ファイルを作成します。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
spin-leaf-ctlplane.yamlなどの新しいカスタム環境ファイルで、parameter_defaultsセクションを作成し、デフォルトのbr-exブリッジを使用するリーフごとにNeutronBridgeMappingsパラメーターを設定します。重要ネットワーク定義を含めるために作成するカスタム環境ファイルの名前は、
.yamlまたは.templateで終わる必要があります。フラットネットワークのマッピングの場合には、
NeutronFlatNetworksパラメーターに各リーフの一覧を定義し、各リーフのNeutronBridgeMappingsパラメーターを設定します。例
parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex"ヒント詳細は、第 17 章ネットワーク (neutron) パラメーター (オーバークラウドのパラメーター ガイド) を参照してください。
VLAN ネットワークマッピングの場合、
vlanをNeutronNetworkTypeに追加し、NeutronNetworkVLANRangesを使用してリーフネットワークの VLAN をマッピングします。例
parameter_defaults: NeutronNetworkType: 'geneve,vlan' NeutronNetworkVLANRanges: 'leaf0:1:1000,leaf1:1:1000,leaf2:1:1000' Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex"注記スパイン/リーフトポロジーでは、フラットネットワークと VLAN の両方を使用できます。
<role>ControlPlaneSubnetパラメーターを使用して、各スパイン/リーフネットワークのコントロールプレーンサブネットマッピングを追加します。例
parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" ControllerControlPlaneSubnet: leaf0 Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1ControlPlaneSubnet: leaf0 Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2ControlPlaneSubnet: leaf0 Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0ControlPlaneSubnet: leaf0 CephStorage0Parameters: CephStorage0ControlPlaneSubnet: leaf0 Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute1ControlPlaneSubnet: leaf1 CephStorage1Parameters: CephStorage1ControlPlaneSubnet: leaf1 Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute2ControlPlaneSubnet: leaf2 CephStorage2Parameters: CephStorage2ControlPlaneSubnet: leaf2
次のステップ
- 作成したカスタムネットワーク環境ファイルのパスとファイル名をメモします。この情報は、後でオーバークラウドをデプロイするときに必要になります。
- 次のステップ 仮想 IP アドレス用サブネットの設定 に進みます。
関連情報
- 第 17 章ネットワーク (neutron) パラメーター (オーバークラウドのパラメーター ガイド) を参照してください。
4.5. 仮想 IP アドレス用サブネットの設定
通常、Red Hat OpenStack Platform (RHOSP) Controller ロールは、各ネットワークの仮想 IP (VIP) アドレスをホストします。デフォルトでは、RHOSP オーバークラウドは、コントロールプレーンを除く各ネットワークのベースサブネットから VIP を取得します。コントロールプレーンは、標準のアンダークラウドのインストール時に作成されたデフォルトのサブネット名である ctlplane-subnet を使用します。
このスパイン/リーフシナリオでは、デフォルトのベースプロビジョニングネットワークは ctlplane-subnet ではなく leaf0 です。つまり、VipSubnetMap パラメーターにオーバーライド用の値を追加して、コントロールプレーンの仮想 IP が使用するサブネットを変更する必要があります。
さらに、各ネットワークの VIP が 1 つ以上のネットワークのベースサブネットを使用しない場合は、VipSubnetMap パラメーターに追加のオーバーライドを追加して、コントローラーノードを接続する L2 ネットワークセグメントに関連付けられたサブネット上に RHOSP ディレクターが VIP を作成するようにする必要があります。
以下の手順を実行して、オーバークラウド上の VIP のオーバーライドを含む YAML 形式のカスタムネットワーク VIP 定義ファイルを作成します。その後、プロビジョニングプロセスにより、RHOSP オーバークラウドをデプロイするときに含めるネットワーク VIP 定義ファイルから heat 環境ファイルが作成されます。overcloud deploy コマンドを実行する場合も、ネットワーク VIP 定義ファイルを使用します。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
spin-leaf-vip-data.yamlなどの新しいカスタムネットワーク VIP 定義テンプレートで、parameter_defaultsセクションを作成し、要件に基づいてVipSubnetMapパラメーターを追加します。プロビジョニング/コントロールプレーンネットワークに
leaf0を使用する場合は、ctlplaneの VIP 再マッピングをleaf0に設定します。parameter_defaults: VipSubnetMap: ctlplane: leaf0ヒント詳細は、director のインストールと使用法 ガイドの オーバークラウドのネットワーク VIP の設定とプロビジョニング を参照してください。
複数の VIP に異なるリーフを使用する場合は、要件に応じて、VIP の再マッピングを設定します。たとえば、以下のスニペットを使用して、すべての仮想 IP に
leaf1を使用するようにVipSubnetMapパラメーターを設定します。parameter_defaults: VipSubnetMap: ctlplane: leaf1 redis: internal_api_leaf1 InternalApi: internal_api_leaf1 Storage: storage_leaf1 StorageMgmt: storage_mgmt_leaf1
次のステップ
- 作成したカスタムネットワーク VIP 定義テンプレートのパスとファイル名をメモします。この情報は、後で RHOSP オーバークラウド用にネットワーク VIP をプロビジョニングする際に必要になります。
- 次のステップ オーバークラウド用のネットワークと VIP のプロビジョニング に進みます。
関連情報
- 第 17 章ネットワーク (neutron) パラメーター (オーバークラウドのパラメーター ガイド) を参照してください。
4.6. オーバークラウド用のネットワークと VIP のプロビジョニング
Red Hat OpenStack Platform (RHOSP) プロビジョニングプロセスにより、ネットワーク仕様を含むネットワーク定義ファイルから Heat 環境ファイルが作成されます。VIP を使用している場合、RHOSP プロビジョニングプロセスは同じように機能します。RHOSP は、VIP 仕様を含む VIP 定義ファイルから heat 環境ファイルを作成します。ネットワークと VIP をプロビジョニングすると、後でオーバークラウドをデプロイするために使用する 2 つの Heat 環境ファイルができます。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。 - ネットワーク設定テンプレートがある。
- VIP を使用している場合は、VIP 定義テンプレートがある。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
以前に作成したネットワーク設定テンプレートを使用して、オーバークラウドネットワークをプロビジョニングし、
--outputオプションを使用して、overcloud network provisionコマンドが出力するファイルに名前を付けます。ヒント詳細は、director のインストールと使用法 ガイドの オーバークラウドネットワーク定義の設定とプロビジョニング を参照してください。
例
$ openstack overcloud network provision \ --output spine-leaf-networks-provisioned.yaml \ /home/stack/templates/spine_leaf_networks_data.yaml
重要指定する出力ファイルの名前は、
.yamlまたは.templateで終わる必要があります。以前に作成した VIP 定義ファイルを使用して、オーバークラウド VIP をプロビジョニングし、
--outputオプションを使用して、overcloud network provisionコマンドが出力するファイルに名前を付けます。ヒント詳細は、director のインストールと使用法 ガイドの オーバークラウドのネットワーク VIP の設定とプロビジョニング を参照してください。
$ openstack overcloud network vip provision \ --stack spine_leaf_overcloud \ --output spine-leaf-vips_provisioned.yaml \ /home/stack/templates/spine_leaf_vip_data.yaml
重要指定する出力ファイルの名前は、
.yamlまたは.templateで終わる必要があります。- 生成された出力ファイルのパスとファイル名に注意してください。この情報は、後でオーバークラウドをデプロイするときに必要になります。
検証
以下のコマンドを使用して、コマンドによってオーバークラウドのネットワークとサブネットが作成されたことを確認できます。
$ openstack network list $ openstack subnet list $ openstack network show <network> $ openstack subnet show <subnet> $ openstack port list $ openstack port show <port>
<network>、<subnet>、<port> を、確認するネットワーク、サブネット、ポートの名前または UUID に置き換えます。
次のステップ
- 事前にプロビジョニングされたノードを使用している場合は、オーバークラウドデプロイメントコマンドの実行 にスキップしてください。
- それ以外の場合は、次のステップ オーバークラウドにベアメタルノードを登録する に進みます。
関連情報
- director のインストールと使用 ガイドの オーバークラウドネットワーク定義の設定とプロビジョニング
- director のインストールと使用方法 ガイドの オーバークラウド用のネットワーク VIP の設定とプロビジョニング
- コマンドラインインターフェイスリファレンス の オーバークラウドネットワークのプロビジョニング
- コマンドラインインターフェイスリファレンス の オーバークラウドネットワークの VIP プロビジョニング
4.7. オーバークラウドへのベアメタルノードの登録
物理マシンの登録は、ベアメタルノードをプロビジョニングするための 3 つの手順のうちの最初の手順です。Red Hat OpenStack Platform (RHOSP) director には、物理マシンのハードウェアおよび電源管理の詳細を指定するカスタムノード定義テンプレートが必要です。このテンプレートは、JSON または YAML 形式で作成できます。物理マシンをベアメタルノードとして登録したら、それらをイントロスペクトし、最後にプロビジョニングします。
事前にプロビジョニングされたベアメタルノードを使用している場合は、オーバークラウドでのベアメタルノードの登録とイントロスペクションをスキップできます。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
barematal-nodes.yamlなどの新しいノード定義テンプレート内で、ハードウェアと電源管理の詳細を指定する物理マシンのリストを作成します。例
nodes: - name: "node01" ports: - address: "aa:aa:aa:aa:aa:aa" physical_network: ctlplane local_link_connection: switch_id: 52:54:00:00:00:00 port_id: p0 cpu: 4 memory: 6144 disk: 40 arch: "x86_64" pm_type: "ipmi" pm_user: "admin" pm_password: "p@55w0rd!" pm_addr: "192.168.24.205" - name: "node02" ports: - address: "bb:bb:bb:bb:bb:bb" physical_network: ctlplane local_link_connection: switch_id: 52:54:00:00:00:00 port_id: p0 cpu: 4 memory: 6144 disk: 40 arch: "x86_64" pm_type: "ipmi" pm_user: "admin" pm_password: "p@55w0rd!" pm_addr: "192.168.24.206"ヒントテンプレートパラメーター値の詳細と JSON の例については、director のインストールと使用 ガイドの オーバークラウドへのノードの登録 を参照してください。
テンプレートのフォーマットと構文を確認します。
例
$ openstack overcloud node import --validate-only ~/templates/\ baremetal-nodes.yaml
- エラーを修正し、ノード定義テンプレートを保存します。
ノード定義テンプレートを RHOSP director にインポートして、各ノードをテンプレートから director に登録します。
例
$ openstack overcloud node import ~/baremetal-nodes.yaml
検証
ノードの登録と設定が完了したら、director がノードを正常に登録したことを確認します。
$ openstack baremetal node list
baremetal node listコマンドにはインポートされたノードが含まれており、ステータスがmanageableである必要があります。
次のステップ
- 次のステップ オーバークラウド上のベアメタルノードのイントロスペクション に進みます。
関連情報
- director のインストールと使用 ガイドの オーバークラウドのノードの登録。
- コマンドラインインターフェイスリファレンス の オーバークラウドノードのインポート
4.8. オーバークラウド上のベアメタルノードのイントロスペクション
物理マシンをベアメタルノードとして登録すると、Red Hat OpenStack Platform (RHOSP) director イントロスペクションを使用して、そのハードウェアの詳細を自動的に追加し、イーサネット MAC アドレスごとにポートを作成できます。ベアメタルノードでイントロスペクションを実行したら、最後の手順はそれらをプロビジョニングすることです。
事前にプロビジョニングされたベアメタルノードを使用している場合は、オーバークラウドでのベアメタルノードの登録とイントロスペクションをスキップできます。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。 - RHOSP でオーバークラウドのベアメタルノードを登録しました。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
$ source ~/stackrc
pre-introspection 検証グループを実行して、プリイントロスペクションの要件を確認します。
$ validation run --group pre-introspection
- 検証レポートの結果を確認します。
オプション: 特定の検証からの詳細な出力を確認します。
$ validation history get --full <UUID>
<UUID> は、確認するレポートの特定の検証の UUID に置き換えます。
重要検証結果が
FAILEDであっても、RHOSP のデプロイや実行が妨げられることはありません。ただし、FAILEDの検証結果は、実稼働環境で問題が発生する可能性があることを意味します。すべてのノードのハードウェア属性を検査します。
$ openstack overcloud node introspect --all-manageable --provide
ヒント詳細は、director のインストールと使用 ガイドの director イントロスペクションを使用したベアメタルノードのハードウェア情報の収集 を参照してください。
別のターミナルウィンドウで、イントロスペクションの進捗ログを監視します。
$ sudo tail -f /var/log/containers/ironic-inspector/ironic-inspector.log
検証
- イントロスペクション完了後には、すべてのノードが available の状態に変わります。
次のステップ
- 次のステップ オーバークラウド用のベアメタルノードのプロビジョニング に進みます。
関連情報
- director のインストールと使用 ガイドの director イントロスペクションを使用したベアメタルノードのハードウェア情報の収集
- コマンドラインインターフェイスリファレンス の overcloud node introspect
4.9. オーバークラウドのベアメタルノードのプロビジョニング
Red Hat OpenStack Platform (RHOSP) のベアメタルノードをプロビジョニングするには、デプロイするベアメタルノードの数と属性を YAML 形式のノード定義ファイルで定義し、これらのノードにオーバークラウドロールを割り当てます。ノードのネットワークレイアウトも定義します。
プロビジョニングプロセスにより、ノード定義ファイルから Heat 環境ファイルが作成されます。この Heat 環境ファイルには、ノード数、予測ノード配置、カスタムイメージ、カスタム NIC など、ノード定義ファイルで設定したノード仕様が含まれています。オーバークラウドをデプロイする際に、このファイルをデプロイメントコマンドに追加します。プロビジョニングプロセスでは、ノード定義ファイル内の各ノードまたはロールに対して定義されたすべてのネットワークのポートリソースもプロビジョニングされます。
事前にプロビジョニングされたベアメタルノードを使用している場合、オーバークラウドでのベアメタルノードのプロビジョニングをスキップできます。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。 - ベアメタルノードは登録とイントロスペクトが行われ、プロビジョニングとデプロイメントに使用できます。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
spin-leaf-baremetal-nodes.yamlなどのベアメタルノード定義ファイルを作成し、プロビジョニングするロールごとにノード数を定義します。例
- name: Controller count: 3 defaults: networks: - network: ctlplane vif: true - network: external subnet: external_subnet - network: internal_api subnet: internal_api_subnet01 - network: storage subnet: storage_subnet01 - network: storage_mgmt subnet: storage_mgmt_subnet01 - network: tenant subnet: tenant_subnet01 network_config: template: /home/stack/templates/spine-leaf-nics/single-nic-vlans.j2 default_route_network: - external - name: Compute0 count: 1 defaults: networks: - network: ctlplane vif: true - network: internal_api subnet: internal_api_subnet02 - network: tenant subnet: tenant_subnet02 - network: storage subnet: storage_subnet02 network_config: template: /home/stack/templates/spine-leaf-nics/single-nic-vlans.j2 - name: Compute1 ...ヒントベアメタルノード定義ファイルで設定できるプロパティーの詳細は、director のインストールと使用 ガイドの オーバークラウド用のベアメタルノードのプロビジョニング を参照してください。
overcloud node provisionコマンドを使用して、オーバークラウドのベアメタルノードをプロビジョニングします。例
$ openstack overcloud node provision \ --stack spine_leaf_overcloud \ --network-config \ --output spine-leaf-baremetal-nodes-provisioned.yaml \ /home/stack/templates/spine-leaf-baremetal-nodes.yaml
重要指定する出力ファイルの名前は、
.yamlまたは.templateで終わる必要があります。別のターミナルでプロビジョニングの進捗をモニターリングします。プロビジョニングが成功すると、ノードの状態が
availableからactiveに変わります。$ watch openstack baremetal node list
metalsmithツールを使用して、割り当てやポートなどを含むノードの統合ビューを取得します。$ metalsmith list
- 生成された出力ファイルのパスとファイル名に注意してください。この情報は、後でオーバークラウドをデプロイするときに必要になります。
検証
ノードとホスト名の関連付けを確認します。
$ openstack baremetal allocation list
次のステップ
- 次のステップ スパイン/リーフ対応オーバークラウドのデプロイ に進みます。
関連情報
- director のインストールと使用 ガイドの オーバークラウド用のベアメタルノードのプロビジョニング
4.10. スパイン/リーフ対応のオーバークラウドのデプロイ
Red Hat OpenStack Platform (RHOSP) オーバークラウドをデプロイする最後のステップは、overcloud deploy コマンドを実行することです。このコマンドは、オーバークラウドのブループリントを表す、作成したさまざまなオーバークラウドテンプレートと環境ファイルのすべてを入力として使用します。これらのテンプレートと環境ファイルを使用して、RHOSP director はオーバークラウドのインストールと設定を行います。
前提条件
-
アンダークラウドホストへのアクセスと
stackユーザーの認証情報。 -
このセクションの前の手順にリストされているすべてのステップを実行し、
overcloud deployコマンドの入力として使用するさまざまな heat テンプレートおよび環境ファイルをすべてアセンブルしました。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
オーバークラウド環境に必要なカスタム環境ファイルとカスタムテンプレート (director のインストールで提供される未編集の heat テンプレートファイルと作成したカスタムファイルの両方) を照合します。これには、次のファイルが含まれている必要があります。
オーバークラウド上のスパイン/リーフネットワークの仕様を含むカスタムネットワーク定義ファイル (例:
spin-leaf-networks-data.yaml)。詳細は、リーフネットワークの定義 を参照してください。
各リーフのロールを定義するカスタムロールデータファイル (例:
spine-leaf-roles.yaml)。詳細は、リーフのロールの定義とネットワークの接続 を参照してください。
ロールと各ロールのカスタム NIC テンプレートマッピングを含むカスタム環境ファイル (例:
spine-leaf-nic-roles-map.yaml)。詳細は、リーフロール用のカスタム NIC 設定の作成 を参照してください。
個別のネットワークマッピングを含み、オーバークラウドのコントロールプレーンネットワークへのアクセスを設定するカスタムネットワーク環境ファイル (例:
spine-leaf-ctlplane.yaml)詳細は、個別のネットワークのマッピングとコントロールプレーンパラメーターの設定 を参照してください。
オーバークラウド上の VIP のオーバーライドを含むカスタムネットワーク VIP 定義ファイル (例:
spin-leaf-vip-data.yaml)。詳細は、仮想 IP アドレスのサブネットの設定 を参照してください。
オーバークラウドネットワークのプロビジョニングからの出力ファイル (例:
spine-leaf-networks-provisioned.yaml)。詳細は、オーバークラウドのネットワークと VIP のプロビジョニング を参照してください。
オーバークラウド VIP のプロビジョニングからの出力ファイル (例:
spine-leaf-vips-provisioned.yaml)。詳細は、オーバークラウドのネットワークと VIP のプロビジョニング を参照してください。
事前にプロビジョニングされたノードを使用していない場合は、ベアメタルノードのプロビジョニングからの出力ファイル (例:
spine-leaf-baremetal-nodes-provisioned.yaml)。詳細は、オーバークラウド用のベアメタルノードのプロビジョニング を参照してください。
- その他のカスタム環境ファイル
コマンドへの入力であるカスタム環境ファイルとカスタムテンプレートを慎重に並べ替えて、
overcloud deployコマンドを入力します。一般的なルールは、未編集の heat テンプレートファイルを最初に指定し、次にカスタム環境ファイルと、デフォルトプロパティーのオーバーライドなどのカスタム設定を含むカスタムテンプレートを指定することです。
特に、
overcloud deployコマンドへの入力を一覧表示するには、次の順序に従います。network-environment.yamlの後に、spine-leaf-nic-roles-map.yamlなど、各ロールにマッピングされたカスタム NIC テンプレートを含むカスタム環境ファイルを含めます。network-environment.yamlファイルは、設定可能なネットワークパラメーターのデフォルトのネットワーク設定を提供します。これは、マッピングファイルによってオーバーライドされます。director はこのファイルをnetwork-environment.j2.yamlJinja2 テンプレートからレンダリングする点に注意してください。- 他のスパイン/リーフネットワーク環境ファイルを作成した場合は、これらの環境ファイルをロールと NIC テンプレートのマッピングファイルの後に含めます。
環境ファイルを更に追加します。(例: コンテナーイメージの場所や Ceph クラスターの設定を定義した環境ファイルなど)。
例
以下のコマンドスニペットに、環境ファイルの順番を示します。
$ openstack overcloud deploy --templates \ -n /home/stack/templates/spine-leaf-networks-data.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \ -e /home/stack/templates/spine-leaf-nic-roles-map.yaml \ -e /home/stack/templates/spine-leaf-ctlplane.yaml \ -e /home/stack/templates/spine-leaf-vip-data.yaml \ -e /home/stack/templates/spine-leaf-baremetal-provisioned.yaml \ -e /home/stack/templates/spine-leaf-networks-provisioned.yaml \ -e /home/stack/templates/spine-leaf-vips-provisioned.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ -e /home/stack/inject-trust-anchor-hiera.yaml \ -r /home/stack/templates/spine-leaf-roles-data.yaml
ヒント詳細は、director のインストールと使用 ガイドの オーバークラウドの作成 を参照してください。
overcloud deployコマンドを実行します。オーバークラウドの作成が完了すると、director はオーバークラウドにアクセスするための詳細を提供します。
検証
- director のインストールと使用 ガイドの オーバークラウドデプロイメントの検証 の手順を実行します。
関連情報
- director のインストールと使用 ガイドの オーバークラウドを作成する
- コマンドラインインターフェイスリファレンス の overcloud deploy
4.11. スパイン/リーフ型デプロイメントへの新たなリーフの追加
ネットワーク容量を増やしたり、新しい物理サイトを追加したりする場合は、Red Hat OpenStack Platform (RHOSP) スパイン/リーフネットワークに新しいリーフを追加する必要があることもあります。
前提条件
- RHOSP デプロイメントでスパイン/リーフ型ネットワークトポロジーが使用されている。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrcアンダークラウド認証情報ファイルを読み込みます。$ source ~/stackrc
/home/stack/templates/spine-leaf-networks-data.yamlなどのネットワーク定義テンプレートを開きます。適切なベースネットワークの下に、追加する新しいリーフの設定可能なネットワークアイテムとしてリーフサブネットを追加します。例
以下の例では、新しいリーフ (
leaf3) のサブネットエントリーが追加されました。- name: InternalApi name_lower: internal_api vip: true vlan: 10 ip_subnet: '172.18.0.0/24' allocation_pools: [{'start': '172.18.0.4', 'end': '172.18.0.250'}] gateway_ip: '172.18.0.1' subnets: internal_api_leaf1: vlan: 11 ip_subnet: '172.18.1.0/24' allocation_pools: [{'start': '172.18.1.4', 'end': '172.18.1.250'}] gateway_ip: '172.18.1.1' internal_api_leaf2: vlan: 12 ip_subnet: '172.18.2.0/24' allocation_pools: [{'start': '172.18.2.4', 'end': '172.18.2.250'}] gateway_ip: '172.18.2.1' internal_api_leaf3: vlan: 13 ip_subnet: '172.18.3.0/24' allocation_pools: [{'start': '172.18.3.4', 'end': '172.18.3.250'}] gateway_ip: '172.18.3.1'追加する新しいリーフ用のロールデータファイルを作成します。
追加する新しいリーフ用にリーフ Compute およびリーフ Ceph Storage ファイルをコピーします。
例
この例では、
Compute1.yamlおよびCephStorage1.yamlが新しいリーフ (Compute3.yamlおよびCephStorage3.yaml) にコピーされ、再度実行されます。$ cp ~/roles/Compute1.yaml ~/roles/Compute3.yaml $ cp ~/roles/CephStorage1.yaml ~/roles/CephStorage3.yaml
新しいリーフファイルのパラメーター
nameとHostnameFormatDefaultを編集して、それぞれのリーフパラメーターと一致するようにします。例
たとえば、Leaf 1 Compute ファイルのパラメーター値は、以下のように設定します。
- name: ComputeLeaf1 HostnameFormatDefault: '%stackname%-compute-leaf1-%index%'
例
Leaf 1 Ceph Storage ファイルのパラメーター値は、以下のように設定します。
- name: CephStorageLeaf1 HostnameFormatDefault: '%stackname%-cephstorage-leaf1-%index%'
それぞれのリーフネットワークのパラメーターと整合するように、新しい Leaf ファイルの networks パラメーターを編集します。
例
たとえば、Leaf 1 Compute ファイルのパラメーター値は、以下のように設定します。
- name: ComputeLeaf1 networks: InternalApi: subnet: internal_api_leaf1 Tenant: subnet: tenant_leaf1 Storage: subnet: storage_leaf1例
Leaf 1 Ceph Storage ファイルのパラメーター値は、以下のように設定します。
- name: CephStorageLeaf1 networks: Storage: subnet: storage_leaf1 StorageMgmt: subnet: storage_mgmt_leaf1ロールの設定が完了したら、以下のコマンドを実行して完全なロールデータファイルを生成します。ネットワークにすべてのリーフと、新たに追加するリーフを含めます。
例
以下の例では、leaf3 が leaf0、leaf1、および leaf2 に追加されます。
$ openstack overcloud roles generate --roles-path ~/roles -o roles_data_spine_leaf.yaml Controller Controller1 Controller2 Compute Compute1 Compute2 Compute3 CephStorage CephStorage1 CephStorage2 CephStorage3
これにより、各リーフネットワーク用の全カスタムロールが含まれた完全な
roles_data_spine_leaf.yamlファイルが作成されます。
追加するリーフ用のカスタム NIC 設定を作成します。
追加する新しいリーフ用のリーフ Compute およびリーフ Ceph Storage NIC 設定ファイルをコピーします。
例
この例では、
computeleaf1.yamlおよびceph-storageleaf1.yamlが新しいリーフ (computeleaf3.yamlおよびceph-storageleaf3.yaml) にコピーされます。$ cp ~/templates/spine-leaf-nics/computeleaf1.yaml ~/templates/spine-leaf-nics/computeleaf3.yaml $ cp ~/templates/spine-leaf-nics/ceph-storageleaf1.yaml ~/templates/spine-leaf-nics/ceph-storageleaf3.yaml
ロールと各ロールのカスタム NIC テンプレートマッピングを含むカスタム環境ファイル (例: spine-leaf-nic-roles-map.yaml) を開きます。追加する新しいリーフのロールごとにエントリーを挿入します。
parameter_defaults: %%ROLE%%NetworkConfigTemplate: <path_to_ansible_jinja2_nic_config_file>
例
この例では、エントリー
ComputeLeaf3NetworkConfigTemplateおよびCephStorage3NetworkConfigTemplateが追加されています。parameter_defaults: Controller0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' Controller2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' ComputeLeaf3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage0NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage1NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage2NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2' CephStorage3NetworkConfigTemplate: '/home/stack/templates/spine-leaf-nics/single-nic-vlans.j2'
個別のネットワークマッピングを含み、オーバークラウドのコントロールプレーンネットワークへのアクセスを設定するカスタムネットワーク環境ファイル (
spine-leaf-ctlplane.yamlなど) を開き、コントロールプレーンパラメーターを更新します。parameter_defaultsセクションで、新しいリーフネットワークのコントロールプレーンサブネットマッピングを追加します。また、新しいリーフネットワークの外部ネットワークマッピングも含めます。フラットネットワークのマッピングの場合には、
NeutronFlatNetworksパラメーターの新しいリーフ (leaf3) を一覧表示し、新しいリーフのNeutronBridgeMappingsパラメーターを設定します。parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex"VLAN ネットワークのマッピングの場合には、さらに
NeutronNetworkVLANRangesを設定して、新しいリーフネットワーク用 (leaf3) に VLAN をマッピングします。NeutronNetworkType: 'geneve,vlan' NeutronNetworkVLANRanges: 'leaf0:1:1000,leaf1:1:1000,leaf2:1:1000,leaf3:1:1000'
例
この例では、フラットネットワークマッピングが使用され、新しいリーフ (
leaf3) エントリーが追加されます。parameter_defaults: NeutronFlatNetworks: leaf0,leaf1,leaf2,leaf3 Controller0Parameters: NeutronBridgeMappings: "leaf0:br-ex" ControllerControlPlaneSubnet: leaf0 Controller1Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller1ControlPlaneSubnet: leaf0 Controller2Parameters: NeutronBridgeMappings: "leaf0:br-ex" Controller2ControlPlaneSubnet: leaf0 Compute0Parameters: NeutronBridgeMappings: "leaf0:br-ex" Compute0ControlPlaneSubnet: leaf0 Compute1Parameters: NeutronBridgeMappings: "leaf1:br-ex" Compute1ControlPlaneSubnet: leaf1 Compute2Parameters: NeutronBridgeMappings: "leaf2:br-ex" Compute2ControlPlaneSubnet: leaf2 Compute3Parameters: NeutronBridgeMappings: "leaf3:br-ex" Compute3ControlPlaneSubnet: leaf3
- スパイン/リーフ対応オーバークラウドのデプロイの手順に従って、スパインリーフ対応オーバークラウド を再デプロイします。