第2章 アンダークラウドの設定

本項では、コンポーザブルネットワークを使用するルーティング対応のスパイン/リーフを取り入れるための設定方法のユースケースについて説明します。

2.1. スパイン/リーフ用のプロビジョニングネットワークの設定

スパイン/リーフインフラストラクチャー用のプロビジョニングネットワークを設定するには、undercloud.conf ファイルを編集して、以下の手順で定義されているように関連するパラメーターを設定します。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. undercloud.conf がまだない場合には、サンプルのテンプレートファイルをコピーします。

    [stack@director ~]$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
  3. undercloud.conf を編集します。
  4. [DEFAULT] セクションを以下のように編集します。

    1. enable_routed_networkstrue に設定します。

      enable_routed_networks = true
    2. subnets パラメーターでサブネットの一覧を定義します。ルーティング対応のスパイン/リーフ内の各レイヤー 2 セグメントにサブネットを 1 つ定義します。

      subnets = leaf0,leaf1,leaf2
    3. local_subnet パラメーターでアンダークラウドにローカルな物理レイヤー 2 セグメントに関連付けられるサブネットを指定します。

      local_subnet = leaf0
  5. 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
  6. undercloud.conf ファイルを保存します。
  7. アンダークラウドをインストールするコマンドを実行します。

    [stack@director ~]$ openstack undercloud install

これにより、プロビジョニングネットワーク / コントロールプレーン上に 3 つのサブネットが作成されます。オーバークラウドは、各ネットワークを使用して対応する各リーフ内にシステムをプロビジョニングします。

アンダークラウドに対する DHCP 要求が適切にリレーされるようにするには、DHCP リレーを設定する必要がある場合があります。次の項では、DHCP リレーの設定方法について説明します。

2.2. DHCP リレーの設定

アンダークラウドは、プロビジョニングネットワーク上で 2 つの DHCP サーバーを使用します。

  • イントロスペクション用 x 1
  • プロビジョニング用 x 1

DHCP を設定する際には、アンダークラウド上の両方の DHCP サーバーに DHCP 要求を転送するようにしてください。

UDP ブロードキャストを対応するデバイスと共に使用して、アンダークラウドのプロビジョニングネットワークが接続されている L2 ネットワークセグメントに DHCP 要求をリレーすることができます。または、DHCP 要求を特定の IP アドレスにリレーする UDP ユニキャストを使用することができます。

注記

特定のデバイス種別での DHCP リレーの設定は、本ガイドの対象範囲外となっています。本ガイドでは参考として、ISC DHCP ソフトウエアの実装を使用した DHCP リレー設定の例を以下に記載しています。この実装の使用方法に関する詳しい情報は、dhcrelay(8) の man ページを参照してください。

ブロードキャストを使用する DHCP リレー

この方法では、UDP ブロードキャストトラフィックを使用して、DHCP サーバーが存在する L2 ネットワークセグメントに DHCP 要求をリレーします。このネットワークセグメント上の全デバイスがブロードキャストトラフィックを受信します。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 インターフェースをイントロスペクションに使用するのは一般的です。undercloud.conflocal_ip で定義されている IP アドレスは、br-ctlplane インターフェース上です。

Neutron DHCP 名前空間に割り当てられてる IP アドレスは、undercloud.conf の local_subnet で設定されている IP 範囲内で利用可能な最初のアドレスです。IP 範囲内の最初のアドレスは、設定の dhcp_start で定義されているアドレスです。たとえば、以下の設定が使用されている場合には、172.20.0.10 がその IP アドレスとなります

[DEFAULT]
local_subnet = leaf0
subnets = leaf0,leaf1,leaf2

[leaf0]
cidr = 172.20.0.0/26
dhcp_start = 172.20.0.10
dhcp_end = 172.20.0.19
inspection_iprange = 172.20.0.20,172.20.0.29
gateway = 172.20.0.62
masquerade = False
警告

DHCP 名前空間の IP アドレスは自動的に割り当てられます。大半の場合は、IP 範囲の最初のアドレスです。アンダークラウドで以下のコマンドを実行して、確認するようにしてください。

$ openstack port list --device-owner network:dhcp -c "Fixed IP Addresses"
+----------------------------------------------------------------------------+
| Fixed IP Addresses                                                         |
+----------------------------------------------------------------------------+
| ip_address='172.20.0.10', subnet_id='7526fbe3-f52a-4b39-a828-ec59f4ed12b2' |
+----------------------------------------------------------------------------+
$ openstack subnet show 7526fbe3-f52a-4b39-a828-ec59f4ed12b2 -c name
+-------+--------+
| Field | Value  |
+-------+--------+
| name  | leaf0  |
+-------+--------+

DHCP リレーの設定例

以下の例では、dhcp パッケージの dhcrelay コマンドは以下の設定を使用します。

  • DHCP の受信要求をリレーするインターフェースは eth1eth2eth3 です。
  • ネットワークセグメント上のアンダークラウドの DHCP サーバーが接続されているインターフェースは eth0 です。
  • イントロスペクションに使用される DHCP サーバーがリッスンしている IP アドレスは 172.20.0.1 です。
  • プロビジョニングに使用される DHCP サーバーがリッスンしている IP アドレスは 172.20.0.10 です。

これで、dhcrelay コマンドは以下のようになります。

$ sudo dhcrelay -d --no-pid 172.20.0.10 172.20.0.1 \
  -iu eth0 -id eth1 -id eth2 -id eth3

これでプロビジョニングネットワークの設定が完了したので、残りのオーバークラウドリーフネットワークを設定することができます。これは、一連の設定ファイルを使用して行います。

2.3. リーフネットワーク向けのフレーバーの作成とノードのタグ付け

各リーフネットワークの各ロールには、対応するリーフにノードをタグ付けするためのフレーバーとロールの割り当てが必要です。この手順では、各フレーバーの作成とロールの割り当ての方法を説明します。

手順

  1. stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. 各カスタムロール用のフレーバーを作成します。

    $ ROLES="control0 compute0 compute1 compute2 ceph-storage0 ceph-storage1 ceph-storage2"
    $ for ROLE in $ROLES; do openstack flavor create --id auto --ram 4096 --disk 40 --vcpus 1 $ROLE ; done
    $ for ROLE in $ROLES; do openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="$ROLE" $ROLE ; done
  3. 対応するリーフネットワークにノードをタグ付けします。たとえば、以下のコマンドを実行して、UUID 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 のノードを Leaf2 上のコンピュートロールにタグ付けします。

    $ openstack baremetal node set --property capabilities='profile:compute2,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
  4. フレーバーからロールへのマッピングが含まれた環境ファイル (~/templates/node-data.yaml) を作成します。

    parameter_defauls:
      OvercloudController0Flavor: control0
      OvercloudController0Count: 3
      OvercloudCompute0Flavor: compute0
      OvercloudCompute0Count: 3
      OvercloudCompute1Flavor: compute1
      OvercloudCompute1Count: 3
      OvercloudCompute2Flavor: compute2
      OvercloudCompute2Count: 3
      OvercloudCephStorage0Flavor: ceph-storage0
      OvercloudCephStorage0Count: 3
      OvercloudCephStorage1Flavor: ceph-storage1
      OvercloudCephStorage1Count: 3
      OvercloudCephStorage2Flavor: ceph-storage2
      OvercloudCephStorage2Count: 3

    各 Count パラメーターを使用してオーバークラウド内にデプロイするノード数を設定することもできます。

2.4. ベアメタルノードのポートからコントロールプレーンのネットワークセグメントへのマッピング

L3 ルーティング対応のネットワークでのデプロイメントを有効にするには、ベアメタルのポートの physical_network フィールドが設定されている必要があります。各ベアメタルポートは、 OpenStack Bare Metal (ironic) サービス内のベアメタルノードに関連付けられます。物理ネットワーク名は、アンダークラウドの設定の subnets オプションで使用されている名前です。

注記

undercloud.conflocal_subnet に指定されているサブネットの物理ネットワーク名は特別です。これは常に ctlplane という名前になります。

手順

  1. stackrc ファイルを読み込みます。

    $ source ~/stackrc
  2. ベアメタルノードをチェックします。

    $ openstack baremetal node list
  3. ベアメタルノードは enroll または manageable の状態であることを確認してください。ベアメタルノードがこれらのいずれかの状態でない場合には、baremetal ポートで physical_network プロパティーの設定に使用するコマンドは失敗します。全ノードを manageable の状態に設定するには、以下のコマンドを実行します。

    $ for node in $(openstack baremetal node list -f value -c Name); do openstack baremetal node manage $node --wait; done
  4. baremetal ポートが関連付けられている baremetal ノードを確認します。以下に例を示します。

    $ openstack baremetal port list --node <node-uuid>
  5. ポートの physical-network パラメーターを設定します。以下の例では、leaf0leaf1leaf2 の 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>
    $ openstack baremetal port set --physical-network leaf2 <port-uuid>
  6. オーバークラウドをデプロイする前にノードが使用可能な状態であることを確認します。

    $ openstack overcloud node provide --all-manageable