第2章 アンダークラウドの設定
本項では、コンポーザブルネットワークを使用するルーティング対応のスパイン/リーフを取り入れるための設定方法のユースケースについて説明します。
2.1. スパイン/リーフ用のプロビジョニングネットワークの設定
スパイン/リーフインフラストラクチャー用のプロビジョニングネットワークを設定するには、undercloud.conf ファイルを編集して、以下の手順で定義されているように関連するパラメーターを設定します。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 undercloud.confがまだない場合には、サンプルのテンプレートファイルをコピーします。[stack@director ~]$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
-
undercloud.confを編集します。 [DEFAULT]セクションを以下のように編集します。enable_routed_networksをtrueに設定します。enable_routed_networks = true
subnetsパラメーターでサブネットの一覧を定義します。ルーティング対応のスパイン/リーフ内の各レイヤー 2 セグメントにサブネットを 1 つ定義します。subnets = leaf0,leaf1,leaf2
local_subnetパラメーターでアンダークラウドにローカルな物理レイヤー 2 セグメントに関連付けられるサブネットを指定します。local_subnet = leaf0
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 リレーを設定する必要がある場合があります。次の項では、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.conf の local_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 の受信要求をリレーするインターフェースは
eth1、eth2、eth3です。 -
ネットワークセグメント上のアンダークラウドの 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. リーフネットワーク向けのフレーバーの作成とノードのタグ付け
各リーフネットワークの各ロールには、対応するリーフにノードをタグ付けするためのフレーバーとロールの割り当てが必要です。この手順では、各フレーバーの作成とロールの割り当ての方法を説明します。
手順
stackrcファイルを読み込みます。$ source ~/stackrc
各カスタムロール用のフレーバーを作成します。
$ 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
対応するリーフネットワークにノードをタグ付けします。たとえば、以下のコマンドを実行して、UUID
58c3d07e-24f2-48a7-bbb6-6843f0e8ee13のノードを Leaf2 上のコンピュートロールにタグ付けします。$ openstack baremetal node set --property capabilities='profile:compute2,boot_option:local' 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
フレーバーからロールへのマッピングが含まれた環境ファイル (
~/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.conf の local_subnet に指定されているサブネットの物理ネットワーク名は特別です。これは常に ctlplane という名前になります。
手順
stackrcファイルを読み込みます。$ source ~/stackrc
ベアメタルノードをチェックします。
$ openstack baremetal node list
ベアメタルノードは
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
baremetal ポートが関連付けられている baremetal ノードを確認します。以下に例を示します。
$ 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> $ openstack baremetal port set --physical-network leaf2 <port-uuid>
オーバークラウドをデプロイする前にノードが使用可能な状態であることを確認します。
$ openstack overcloud node provide --all-manageable

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.