第2章 オーバークラウドの作成前の設定
次章では、openstack overcloud deploy コマンドを実行する前に必要な設定について説明します。これには、プロビジョニングに向けたノードの準備、アンダークラウド上での IPv6 アドレスの設定、オーバークラウド用の IPv6 パラメーターを定義するネットワーク環境ファイルの作成が含まれます。
2.1. stack ユーザーの初期化 リンクのコピーリンクがクリップボードにコピーされました!
stack ユーザーとして director ホストにログインし、以下のコマンドを実行して director の設定を初期化します。
source ~/stackrc
$ source ~/stackrc
このコマンドでは、director の CLI ツールにアクセスする認証情報が含まれる環境変数を設定します。
2.2. アンダークラウド上での IPv6 アドレスの設定 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドは、外部のネットワーク上にあるオーバークラウドのパブリック API にアクセスする必要があります。このアクセスを可能にするには、アンダークラウドホストで、外部ネットワークにアクセスするインターフェースに IPv6 アドレスが必要となります。
プロビジョニングネットワークには、全ノードに対する IPv4 接続が引き続き必要です。アンダークラウドとオーバークラウドは、このネットワークを PXE ブート、イントロスペクション、デプロイメントに使用します。また、ノードはこのネットワークを使用して、IPv4 で DNS および NTP サービスにアクセスします。
ネイティブ VLAN または専用のインターフェース
アンダークラウドが、外部ネットワークにアタッチされたネイティブ VLAN または専用のインターフェースを使用する場合には、ip コマンドでそのインターフェースに IPv6 アドレスを追加します。以下の例では専用のインターフェースは eth0 です。
sudo ip link set dev eth0 up; sudo ip addr add 2001:db8::1/64 dev eth0
$ sudo ip link set dev eth0 up; sudo ip addr add 2001:db8::1/64 dev eth0
トランキングされた VLAN インターフェース
アンダークラウドは、同じインターフェース上のトランキングされた VLAN を外部ネットワークにアクセスするためのコントロールプレーンブリッジ (br-ctlplane) として使用する場合には、新しい VLAN インターフェースを作成してコントロールプレーンにアタッチし、IPv6 アドレスを VLAN に追加します。たとえば、以下のシナリオでは外部ネットワークの VLAN ID に 100 を使用しています。
sudo ovs-vsctl add-port br-ctlplane vlan100 tag=100 -- set interface vlan100 type=internal sudo ip l set dev vlan100 up; sudo ip addr add 2001:db8::1/64 dev vlan100
$ sudo ovs-vsctl add-port br-ctlplane vlan100 tag=100 -- set interface vlan100 type=internal
$ sudo ip l set dev vlan100 up; sudo ip addr add 2001:db8::1/64 dev vlan100
IPv6 アドレスの確認
ip コマンドで、IPv6 アドレスが追加されたことを確認します。
ip addr
$ ip addr
選択したインターフェースに IPv6 アドレスが表示されます。
永続的な IPv6 アドレスの設定
上記の手順に加えて、IPv6 アドレスを永続的にする必要がある場合があります。その場合には、/etc/sysconfig/network-scripts/ で適切なインターフェース (本ガイドの例では ifcfg-eth0 または ifcfg-vlan100) のファイルを編集または作成して、以下の行を追記してください。
IPV6INIT=yes IPV6ADDR=2001:db8::1/64
IPV6INIT=yes
IPV6ADDR=2001:db8::1/64
詳しい説明は、Red Hat カスタマーポータルの 「How do I configure a network interface for IPv6?」のソリューションを参照してください。
2.3. 環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
本項では、『Red Hat OpenStack Platform 10 director のインストールと使用方法』ガイドの「CLI ツールでの基本的なオーバークラウド要件の設定」に記載のプロセスを簡略にまとめたバージョンを使用します。
以下のワークフローに従って環境を設定します。
- ノード定義のテンプレートを作成して director で空のノードを登録します。
- 全ノードのハードウェアを検査します。
- 手動でロールにノードをタグ付けします。
- フレーバーを作成してロールにタグ付けします。
2.3.1. ノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
ノード定義のテンプレート (instackenv.json) は JSON ファイル形式で、このテンプレートにはノード登録用のハードウェアおよび電源管理の情報が含まれています。以下に例を示します。
プロジェクトネットワークは IPv4 アドレスを使用します。IPMI アドレスは IPv4 アドレスで、直接アタッチされているか、プロビジョニングネットワークでルーティング到達可能である必要があります。
テンプレートの作成後に、stack ユーザーのホームディレクトリー (/home/stack/instackenv.json) にファイルを保存してから、director にインポートします。これには、以下のコマンドを実行します。
openstack baremetal import --json ~/instackenv.json
$ openstack baremetal import --json ~/instackenv.json
このコマンドでテンプレートをインポートして、テンプレートから director に各ノードを登録します。
カーネルと ramdisk イメージを全ノードに割り当てます。
openstack baremetal configure boot
$ openstack baremetal configure boot
director でのノードの登録、設定が完了しました。
2.3.2. ノードのハードウェアの検査 リンクのコピーリンクがクリップボードにコピーされました!
ノードの登録後には、各ノードのハードウェア属性を検査します。各ノードのハードウェア属性を検査するには、以下のコマンドを実行します。
openstack baremetal introspection bulk start
$ openstack baremetal introspection bulk start
このプロセスが最後まで実行されて正常に終了したことを確認してください。ベアメタルの場合には、通常 15 分ほどかかります。
2.3.3. ノードの手動でのタグ付け リンクのコピーリンクがクリップボードにコピーされました!
各ノードのハードウェアを登録、検査した後には、特定のプロファイルにノードをタグ付けします。これらのプロファイルタグによりノードとフレーバーが照合され、フレーバーがデプロイメントロールに割り当てられます。
ノード一覧を取得して UUID を特定します。
ironic node-list
$ ironic node-list
特定のプロファイルにノードを手動でタグ付けする場合には、各ノードの properties/capabilities パラメーターに profile オプションを追加します。たとえば、2 台のノードをタグ付けしてコントローラープロファイルとコンピュートプロファイルをそれぞれ使用するには、以下のコマンドを実行します。
profile:compute と profile:control オプションを追加すると、ノードがそれぞれのプロファイルにタグ付けされます。
ベンチマークデータに基づいて、多数のノードに自動でタグ付けするには、手動でのタグ付けの代わりに、プロファイルの自動タグ付けを使用します。
2.4. ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
本項では、オーバークラウドのネットワーク設定について考察します。これには、特定のネットワークトラフィックを使用するようにサービスを分離し、IPv6 オプションでオーバークラウドを設定する手順が含まれます。
2.4.1. インターフェースの設定 リンクのコピーリンクがクリップボードにコピーされました!
まず最初に、オーバークラウドには、ネットワークインターフェースのテンプレートセットが必要です。このテンプレートは YAML 形式の標準の Heat テンプレートです。director にはテンプレートサンプルが含まれているので、すぐに使用を開始することができます。
-
/usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans: このディレクトリーには、ロールごとに VLAN が設定された単一 NIC のテンプレートが含まれます。 -
/usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans: このディレクトリーには、ロール別のボンディング NIC 設定のテンプレートが含まれます。
これらのテンプレートコレクションの 1 つを stack ユーザーの templates ディレクトリーにコピーします。以下に例を示します。
sudo cp -r /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans ~/templates/nic-configs
$ sudo cp -r /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans ~/templates/nic-configs
ネットワークインターフェースの設定に関する詳細は、『director のインストールと使用方法』を参照してください。
いずれのインターフェーステンプレートコレクションにも、コントローラーノードを設定するための 2 つのファイル (controller.yaml と controller-v6.yaml) が含まれます。IPv6 の設定には controller-v6.yaml を使用します。
2.4.2. 分離された IPv6 ネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドには、IPv6 を設定するためのネットワーク環境ファイルが必要です。このファイルは、オーバークラウドのネットワーク環境を記述し、ネットワークインターフェースの設定テンプレートを参照する Heat 環境ファイルです。本シナリオでは、環境ファイル (/home/stack/network-environment.yaml) を作成して、以下のセクションを追加します。
このセクションにより、インターフェーステンプレートがそれぞれリソースとして登録されます。オーバークラウドの作成で、ノード種別ごとにネットワークを設定する際に、メインの Heat テンプレートコレクションが適切な OS::TripleO::*::Net::SoftwareConfig リソースを呼び出します。このリソースがない場合には、メインの Heat テンプレートコレクションは、メインリソースレジストリーからデフォルトのネットワーク設定セットを使用します。
いずれのインターフェーステンプレートコレクションにも、コントローラーノードを設定するための 2 つのファイル (controller.yaml と controller-v6.yaml) が含まれます。IPv6 の設定には controller-v6.yaml を使用します。
parameter_defaults セクションには、環境のカスタマイズが記述されます。IPv6 の設定では、以下のパラメーターを確認してください。
- ExternalInterfaceDefaultRoute
- 外部インターフェースのデフォルトルート用の IP アドレス。本シナリオでは、アンダークラウドをデフォルトルートとして使用し、「アンダークラウド上での IPv6 アドレスの設定」で作成した IP アドレスを指定します。
- ExternalNetworkVlanID
- 外部ネットワークの VLAN ID。アンダークラウドで外部ネットワークへのアクセスに VLAN を使用する場合には、(「アンダークラウド上での IPv6 アドレスの設定」を参照)、この値に同じ VLAN をマッピングするようにしてください。
- ExternalNetCidr、InternalApiNetCidr、TenantNetCid、StorageNetCidr、StorageMgmtNetCidr
- 各ネットワークの IPv6 CIDR プレフィックス
- ExternalAllocationPools、InternalApiAllocationPools、TenantAllocationPools、StorageAllocationPools、StorageMgmtAllocationPools
- ノードに割り当てる IPv6 アドレスの範囲。これは、IPv6 の競合が発生しないようにするのに役立ちます。
2.4.3. IPv6 と IPv4 のハイブリッド設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドでは、さまざまなサービスに、IPv4 と IPv6 ネットワークを組み合わせて使用することが可能です。これには、オーバークラウドのネットワークとポートを変更する必要があります。たとえば、ストレージおよびストレージ管理のネットワークを IPv4 にデプロイする一方で、他のネットワークに IPv6 を使用することができます。
ネットワーク分離の初期化ファイル (network-isolation-v6.yaml) をコピーします。
sudo cp /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml ~/templates/nic-configs/network-isolation-v6.yaml
$ sudo cp /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml ~/templates/nic-configs/network-isolation-v6.yaml
このファイルを編集して、ストレージおよびストレージ管理リソースが IPv4 バージョンのテンプレートを使用するようにをマッピングします。以下に例を示します。
openstack overcloud deploy を実行する際には、元のファイルではなく、このカスタム network-isolation-v6.yaml を指定します。
さらに、/home/stack/network-environment.yaml の parameter_defaults セクションを編集して、IPv6 を割り当てるネットワークと IPv4 を割り当てるネットワークが混在するように定義します。以下に例を示します。
オーバークラウドで VXLAN ネットワークを使用する場合には、テナントネットワークに IPv4 を使用するように設定します。テナントネットワークでは、IPv6 VXLAN はサポートされていません。
2.5. オーバークラウドの設定の完了 リンクのコピーリンクがクリップボードにコピーされました!
これで、IPv6 ベースのオーバークラウドの設定に必要なステップは完了です。次章では、openstack overcloud deploy コマンドで、本章で作成した設定を使用してオーバークラウドを作成します。