Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第9章 カスタムコンポーザブルネットワーク

本章では、「8章基本的なネットワーク分離」で説明した概念および手順に続いて、オーバークラウドに追加のコンポーザブルネットワークを設定する方法について説明します。これには、以下の項目が含まれます。

  • ネットワーク分離を有効にするための環境ファイル (/usr/openstack-tripleo-heat-templates/environments/network-isolation.yaml)
  • ネットワークのデフォルト値を設定するための環境ファイル (/usr/openstack-tripleo-heat-templates/environments/network-environment.yaml)
  • デフォルト以外の追加ネットワークを作成するためのカスタム network_data ファイル
  • カスタムネットワークをロールに割り当てるためのカスタム roles_data ファイル
  • 各ノードの NIC レイアウトを定義するためのテンプレート。オーバークラウドのコアテンプレートコレクションには、さまざまなユースケースに対応する複数のデフォルトが含まれています。
  • NIC を有効にするための環境ファイル。以下の例では、environments ディレクトリーにあるデフォルトファイルを用いています。
  • ネットワーク設定パラメーターをカスタマイズするその他の環境ファイル。以下の例では、OpenStack サービスとコンポーザブルネットワークのマッピングをカスタマイズするための環境ファイルを用いています。

本章の以下のセクションでは、これらの各項目を定義する方法を説明します。

9.1. コンポーザブルネットワーク

デフォルトのオーバークラウドでは、事前定義済みのネットワークセグメントのセットが使用されます。それらのネットワークセグメントは、以下のとおりです。

  • Control Plane
  • Internal API
  • Storage
  • Storage Management
  • Tenant
  • External
  • Management (オプション)

コンポーザブルネットワークにより、さまざまなサービス用のネットワークを追加することができます。たとえば、NFS トラフィック専用のネットワークがある場合には、複数のロールに提供できます。

director は、デプロイメントおよび更新段階中のカスタムネットワークの作成をサポートしています。このような追加のネットワークは、Ironic ベアメタルノード、システム管理に使用したり、異なるロール用に別のネットワークを作成するのに使用したりすることができます。また、これは、トラフィックが複数のネットワーク間でルーティングされる、分離型のデプロイメント用に複数のネットワークセットを作成するのに使用することもできます。

1 つのデータファイル (network_data.yaml) で、デプロイされるネットワークの一覧を管理します。-n オプションを使用して、このファイルをデプロイメントコマンドに含めます。このオプションを指定しないと、デプロイメントにはデフォルトのファイル (/usr/share/openstack-tripleo-heat-templates/network_data.yaml) が使用されます。

9.2. コンポーザブルネットワークの追加

この手順では、オーバークラウドにさらにコンポーザブルネットワークを追加する方法について説明します。

手順

  1. デフォルトの network_data ファイルのコピーします。

    $ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/.
  2. network_data.yaml ファイルのローカルコピーを編集し、新規ネットワーク用のセクションを追加します。以下に例を示します。

    - name: StorageBackup
      vip: true
      name_lower: storage_backup
      ip_subnet: '172.21.1.0/24'
      allocation_pools: [{'start': '171.21.1.4', 'end': '172.21.1.250'}]
      gateway_ip: '172.21.1.1'
    • name は、唯一の必須の値です。ただし、name_lower を使用して名前を正規化し、読みやすくすることができます。たとえば、InternalApiinternal_api に変更します。
    • vip: true は仮想 IP アドレス (VIP) を新規ネットワーク上に作成します。この IP は、サービス/ネットワーク間のマッピングパラメーター (ServiceNetMap) に一覧表示されるサービスのターゲット IP として使用されます。VIP は Pacemaker を使用するロールにしか使用されない点に注意してください。オーバークラウドの負荷分散サービスにより、トラフィックがこれらの IP から対応するサービスのエンドポイントにリダイレクトされます。
    • ip_subnetallocation_pools、および gateway_ip は、ネットワークのデフォルト IPv4 サブネット、IP 範囲、およびゲートウェイを設定します。

-n オプションを使用して、カスタム network_data ファイルをデプロイメントに含めます。-n オプションを指定しないと、デプロイメントコマンドはデフォルトのネットワークセットを使用します。

9.3. ロールへのコンポーザブルネットワークの追加

コンポーザブルネットワークをご自分の環境で定義したロールに割り当てることができます。たとえば、カスタム StorageBackup ネットワークを Ceph Storage ノードに追加することができます。

この手順では、オーバークラウドのロールにコンポーザブルネットワークを追加する方法について説明します。

手順

  1. カスタム roles_data ファイルがまだない場合には、デフォルトをご自分のホームディレクトリーにコピーします。

    $ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/.
  2. カスタム roles_data ファイルを編集します。
  3. コンポーザブルネットワークを追加するロールまでスクロールし、networks の一覧にネットワーク名を追加します。たとえば、ネットワークを Ceph Storage ロールに追加するには、以下のスニペットをガイドとして使用します。

    - name: CephStorage
      description: |
        Ceph OSD Storage node role
      networks:
        - Storage
        - StorageMgmt
        - StorageBackup
  4. カスタムネットワークを対応するロールに追加したら、ファイルを保存します。

openstack overcloud deploy コマンドを実行する際に、-r オプションを使用して roles_data ファイルを指定します。-r オプションを設定しないと、デプロイメントコマンドはデフォルトのロールセットとそれに対応する割り当て済みのネットワークを使用します。

9.4. コンポーザブルネットワークへの OpenStack サービスの割り当て

各 OpenStack サービスは、リソースレジストリーでデフォルトのネットワーク種別に割り当てられます。これらのサービスは、そのネットワーク種別に割り当てられたネットワーク内の IP アドレスにバインドされます。OpenStack サービスはこれらのネットワークに分割されますが、実際の物理ネットワーク数はネットワーク環境ファイルに定義されている数と異なる可能性があります。環境ファイル (たとえば /home/stack/templates/service-reassignments.yaml) で新たにネットワークマッピングを定義することで、OpenStack サービスを異なるネットワーク種別に再割り当てすることができます。ServiceNetMap パラメーターにより、各サービスに使用するネットワーク種別が決定されます。

たとえば、ハイライトしたセクションを変更して、Storage Management ネットワークサービスを Storage Backup ネットワークに再割り当てすることができます。

parameter_defaults:
  ServiceNetMap:
    SwiftMgmtNetwork: storage_backup
    CephClusterNetwork: storage_backup

これらのパラメーターを storage_backup に変更すると、対象のサービスは Storage Management ネットワークではなく、Storage Backup ネットワークに割り当てられます。つまり、parameter_defaults セットを Storage Management ネットワークではなく Storage Backup ネットワーク向けに定義するだけで設定することができます。

director はカスタムの ServiceNetMap パラメーターの定義を ServiceNetMapDefaults から取得したデフォルト値の事前定義済みリストにマージして、デフォルト値を上書きします。director は次にカスタマイズされた設定を含む完全な一覧を ServiceNetMap に返し、その一覧は多様なサービスのネットワーク割り当ての設定に使用されます。

サービスマッピングは、Pacemaker を使用するノードの network_data ファイルの vip: true を使用するネットワークにしか適用されません。オーバークラウドの負荷分散サービスにより、トラフィックが VIP から特定のサービスのエンドポイントにリダイレクトされます。

注記

デフォルトのサービスの全一覧は、/usr/share/openstack-tripleo-heat-templates/network/service_net_map.j2.yaml 内の ServiceNetMapDefaults パラメーターの箇所に記載されています。

9.5. カスタムコンポーザブルネットワークの有効化

この手順では、デフォルト NIC テンプレートの 1 つを使用してカスタムコンポーザブルネットワークを有効にする方法について説明します。ここでは、単一 NIC および VLAN (single-nic-vlans) を用いています。

手順

  1. openstack overcloud deploy コマンドを実行する際に、以下に示すファイルを含めるようにしてください。

    • カスタム network_data ファイル
    • ネットワーク/ロール間の割り当てを定義するカスタム roles_data ファイル
    • デフォルトネットワーク分離のレンダリング済みファイル名
    • デフォルトネットワーク環境ファイルのレンダリング済みファイル名
    • デフォルトネットワークインターフェース設定のレンダリング済みファイル名
    • サービスの再割り当て等、ネットワークに関連するその他の環境ファイル

以下に例を示します。

$ openstack overcloud deploy --templates \
    ...
    -n /home/stack/network_data.yaml \
    -r /home/stack/roles_data.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.yaml \
    -e /home/stack/templates/service-reassignments.yaml \
    ...

これにより、追加のカスタムネットワークを含め、コンポーザブルネットワークがオーバークラウドのノード全体にデプロイされます。