第6章 デプロイメントの例
6.1. テナントネットワークを使用した模範的なインストールシナリオ リンクのコピーリンクがクリップボードにコピーされました!
本項では、OpenStack を使用した実稼働環境における OpenDaylight のインストールの例を考察します。このシナリオでは、テナントトラフィックの分離にトンネリング (VXLAN) が使用されます。
6.1.1. 物理トポロジー リンクのコピーリンクがクリップボードにコピーされました!
このシナリオのトポロジーは、6 つのノードで設定されます。
- 1 x director アンダークラウドノード
- 3 x OpenStack オーバークラウドコントローラー。OpenStack サービスに加えて OpenDaylight SDN コントローラーがインストール済み。
- 2 x OpenStack オーバークラウドコンピュートノード
6.1.2. 物理ネットワーク環境のプランニング リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドのコントローラーノードはそれぞれ、3 枚のネットワークインターフェイスカード (NIC) を使用します。
| 名前 | 目的 |
|---|---|
| nic1 | Management ネットワーク (例: SSH を介したノードへのアクセス) |
| nic2 | Tenant (VXLAN) キャリアー、Provisioning (PXE、DHCP)、Internal API ネットワーク |
| nic3 | Public API のネットワークアクセス |
オーバークラウドのコンピュートノードには 3 枚の NIC が実装されます。
| 名前 | 目的 |
|---|---|
| nic1 | Management ネットワーク |
| nic2 | Tenant キャリアー、Provisioning、Internal API ネットワーク |
| nic3 | External (Floating IP) ネットワーク |
アンダークラウドノードには 2 枚の NIC が実装されます。
| 名前 | 目的 |
|---|---|
| nic1 | Management ネットワークに使用 |
| nic2 | Provisioning ネットワークに使用 |
6.1.3. NIC の接続性のプランニング リンクのコピーリンクがクリップボードにコピーされました!
この場合は、環境ファイルは番号付けられた抽象的なインターフェイスデバイス名 (nic1、nic2) を使用し、ホストのオペレーティングシステムで提示されている実際のデバイス名 (eth0、eno2 など) は使用しません。同じロールに属するホストに全く同じネットワークインターフェイスデバイス名は必要ありません。1 つのホストが em1 と em2 のインターフェイスを使用して、他のホストが eno1 と eno2 を使用しても問題はありません。各 NIC は nic1 および nic2 と呼ばれます。
抽象化された NIC スキームでは、稼働中かつ接続済みのインターフェイスにのみ依存します。ホストによってインターフェイス数が異なる場合には、ホストを接続するために必要な最小限のインターフェイス数を使用すれば十分です。たとえば、1 台のホストに物理インターフェイスが 4 つあり、他のホストには 6 つある場合、nic1、nic2、nic3、nic4 のみを使用して、両ホストに 4 本のケーブルを接続します。
6.1.4. ネットワーク、VLAN、IP のプランニング リンクのコピーリンクがクリップボードにコピーされました!
このシナリオでは、ネットワーク分離を使用して、Management、Provisioning、Internal API、Tenant、Public API、Floating IP のネットワークトラフィックを分離します。以下の図はネットワーク設定の例で、カスタムロールのデプロイメントを示しています。必要な場合は、Red Hat OpenStack Platform コントローラーに OpenDaylight を含めることもできます。これはデフォルトの設定です。このスキーム IPMI ネットワークでは、NIC およびルーティングは表示されません。OpenStack の設定によっては、追加のネットワークが必要になる場合があります。
図6.1 このシナリオで使用するネットワークトポロジーの詳細
以下の表には、各ネットワークに関連付けられる VLAN ID と IP サブネットをまとめています。
| ネットワーク | VLAN ID | IP サブネット |
|---|---|---|
| プロビジョニング | ネイティブ | 192.0.5.0/24 |
| 内部 API | 600 | 172.17.0.0/24 |
| Tenant | 603 | 172.16.0.0/24 |
| Public API | 411 | 10.35.184.144/28 |
| Floating IP | 412 | 10.35.186.146/28 |
OpenStack Platform director は br-isolated OVS ブリッジを作成し、ネットワーク設定ファイルの定義に従って各ネットワークの VLAN インターフェイスを追加します。director は br-ex ブリッジも作成して、関連するネットワークインターフェイスが接続されます。
ホスト間の接続性を提供する物理ネットワークスイッチが、VLAN ID を適用するように適切に設定されていることを確認します。ホストに接続する全スイッチポートは、VLAN を使用して trunk として設定する必要があります。ここでの trunk という用語は、複数の VLAN ID が同じポートを通過できるポートという意味で使用しています。
物理スイッチの設定に関する内容は、本ガイドの対象範囲外です。
network-environment.yaml ファイルの TenantNetworkVlanID 属性を使用して、VXLAN トンネリングを使用する場合のテナントネットワークの VLAN タグを定義することができます。たとえば、VXLAN テナントのトラフィックが、VLAN タグ付けされた下層のネットワーク上で転送されます。テナントネットワークをネイティブ VLAN 上で実行する方が望ましい場合には、この値を空にすることも可能です。また、VLAN テナント種別のネットワークを使用する場合には、TenantNetworkVlanID に指定されている値以外の VLAN タグを使用することができる点にも注意してください。
6.1.5. このシナリオで使用する OpenDaylight の設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
このシナリオにおける OpenStack と OpenDaylight のデプロイには、アンダークラウドノードで以下のデプロイメントコマンドを実行しています。
また、本ガイドでは、このシナリオに使用した設定ファイルとその内容を記載し、使用した設定についても説明しています。
6.1.5.1. extra_env.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルにはパラメーターが 1 つしかありません。
parameter_defaults:
OpenDaylightProviderMappings: 'datacentre:br-ex,tenant:br-isolated'
parameter_defaults:
OpenDaylightProviderMappings: 'datacentre:br-ex,tenant:br-isolated'
これらは、OpenDaylight によって制御される各ノードのマッピングです。物理ネットワーク datacenter は、br-ex OVS ブリッジにマッピングされ、テナントネットワークのトラフィックは br-isolated OVS ブリッジにマッピングされます。
6.1.5.2. undercloud.conf ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルは、/home/stack/baremetal-vlan/ ディレクトリーにあります。
ファイルのパスは、カスタマイズされたバージョンの設定ファイルをポイントしています。
上記の例では、Provisioning ネットワーク用の 192.0.5.0/24 サブネットが使用されています。物理インターフェイス eno2 はアンダークラウドノードでプロビジョニング用に使用されます。
6.1.5.3. network-environment.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
これは、ネットワークを設定するメインのファイルで、/home/stack/baremetal-vlan/ ディレクトリーにあります。以下のファイルでは、VLAN ID と IP サブネットが異なるネットワークとプロバイダーマッピングに指定されます。nic-configs ディレクトリー内の controller.yaml と compute.yaml の 2 つのファイルは、コントローラーノードとコンピュートノードのネットワーク設定を指定するために使用されます。
この例では、コントローラーノードの数 (3) とコンピュートノードの数 (2) が指定されています。
6.1.5.4. controller.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルは、/home/stack/baremetal-vlan/nic-configs/ ディレクトリー内にあります。この例では、br-isolated および br-ex の 2 つのスイッチを定義しています。nic2 は br-isolated の下にあり、nic3 は br-ex の下にあります。
6.1.5.5. compute.yaml ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルは、/home/stack/baremetal-vlan/nic-configs/ ディレクトリー内にあります。コンピュート設定のオプションの大半は、コントローラー設定のオプションと同じです。この例では、nic3 は、外部接続 (Floating IP ネットワーク) に使用される br-ex の下にあります。
6.1.6. このシナリオで使用する Red Hat OpenStack Platform director の設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
6.1.6.1. neutron.conf ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルは、/etc/neutron/ ディレクトリーにあり、以下の情報が含まれています。
[DEFAULT] service_plugins=odl-router_v2,trunk
[DEFAULT]
service_plugins=odl-router_v2,trunk
6.1.6.2. ml2_conf.ini ファイル リンクのコピーリンクがクリップボードにコピーされました!
このファイルは、/etc/neutron/plugins/ml2/ ディレクトリーにあり、以下の情報が含まれています。
- [ml2] セクションの下には、ネットワーク種別として VXLAN が使用されており、opendaylight_v2 メカニズムドライバーが指定されている点に注意してください。
- [ml2_type_vlan] の下には、network-environment.yaml ファイルで設定されているのと同じマッピングを設定する必要があります。
- [ml2_odl] の下には、OpenDaylightController にアクセスするための設定が記載されているはずです。
この情報を使用して、OpenDaylight コントローラーへのアクセスを確認することができます。
curl -H "Content-Type:application/json" -u admin:admin http://172.17.1.18:8081/controller/nb/v2/neutron/networks
$ curl -H "Content-Type:application/json" -u admin:admin http://172.17.1.18:8081/controller/nb/v2/neutron/networks