ベアメタルプロビジョニング
Bare Metal サービス (Ironic) のインストール、設定、および使用方法
概要
前書き リンクのコピーリンクがクリップボードにコピーされました!
本ガイドには、オーバークラウドに Bare Metal サービス (ironic) をインストールして設定し、そのサービスを使用してエンドユーザー向けの物理マシンのプロビジョニングと管理を行うための手順を記載しています。
Bare Metal サービスのコンポーネントは、Red Hat OpenStack Platform director で OpenStack 環境 (オーバークラウド) を構成するベアメタルノードのプロビジョニングと管理を行うためにアンダークラウドの一部としても使用されます。director による Bare Metal サービスの使用方法については、『director のインストールと使用方法』を参照してください。
第1章 Bare Metal サービスについて リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Bare Metal サービス (ironic) は、エンドユーザー向けの物理マシンのプロビジョニングと管理に必要なコンポーネントを提供します。オーバークラウドの Bare Metal サービスは、以下の OpenStack サービスと対話します。
- OpenStack Compute (nova) は、スケジューリング、テナントレベルのクォータ設定、IP の割り当ての機能と、仮想マシンインスタンスを管理するためのユーザー向けの API を提供します。一方、Bare Metal サービスは、ハードウェア管理のための管理 API を提供します。
- OpenStack Identity (keystone) は、要求の認証機能を提供し、Bare Metal サービスが他の OpenStack サービスを特定するのを補助します。
- OpenStack Image サービス (glance) は、イメージとイメージのメタデータを管理します。
- OpenStack Networking (neutron) は、DHCP とネットワーク設定を提供します。
- OpenStack Object Storage (swift) は、特定のドライバーがイメージの一時的な URL を公開するために使用されます。
Bare Metal サービスは、iPXE を使用して物理マシンをプロビジョニングします。以下の図は、ユーザーがデフォルトのドライバーを使用して新規マシンを起動した場合、プロビジョニングプロセス中に OpenStack のサービスがどのように対話するかを概説しています。
第2章 ベアメタルプロビジョニングのプランニング リンクのコピーリンクがクリップボードにコピーされました!
本章では、インストールの前提条件、ハードウェア要件、ネットワーク要件など、Bare Metal サービスを設定するための要件について説明します。
2.1. インストールの前提条件 リンクのコピーリンクがクリップボードにコピーされました!
本ガイドでは、アンダークラウドに director をインストール済みで、Bare Metal サービスと残りのオーバークラウドをインストールする準備が整っていることを前提とします。director のインストールについての詳しい情報は、『director のインストールと使用方法』の「director のインストール」を参照してください。
ベアメタルノードは、OpenStack インストール環境のコントロールプレーンネットワークに直接アクセスできるため、オーバークラウドの Bare Metal サービスは、信頼済みのテナント環境向けに設計されています。オーバークラウドの Ironic サービス用にカスタムのコンポーザブルネットワークを実装する場合、ユーザーはコントロールプレーンにアクセスする必要はありません。
2.2. ハードウェア要件 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドの要件
Bare Metal サービスを有効にしたオーバークラウドのハードウェア要件は、標準のオーバークラウドと同じです。詳しい情報は、『director のインストールと使用方法』の「オーバークラウドの要件」を参照してください。
ベアメタルマシンの要件
プロビジョニングするベアメタルマシンのハードウェア要件は、インストールするオペレーティングシステムによって異なります。Red Hat Enterprise Linux 7 の場合は、『Red Hat Enterprise Linux 7 インストールガイド』を参照してください。Red Hat Enterprise Linux 6 の場合は、『Red Hat Enterprise Linux 6 インストールガイド』を参照してください。
プロビジョニングするベアメタルマシンはすべて、以下の要件を満たす必要があります。
- ベアメタルネットワークに接続するための NIC 1 つ。
-
ironic-conductor
サービスから到達可能なネットワークに接続された電源管理インターフェース (例: IPMI)。コンポーザブルロールを使用してironic-conductor
を別の場所で実行している場合以外は、デフォルトではironic-conductor
は全コントローラーノード上で実行されます。 - ベアメタルネットワーク上での PXE ブート。デプロイメント内のその他すべての NIC については PXE ブートを無効にしてください。
2.3. ネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
OVN を使用する場合、Bare Metal Provisioning サービス (ironic) はオーバークラウドではサポートされません。現在、OVN の組み込み型 DHCP サーバーは、ベアメタルノードのプロビジョニングやプロビジョニングネットワーク用の DHCP を提供することができません。
ベアメタルネットワーク:
これは、Bare Metal サービスが以下の用途で使用するプライベートネットワークです。
- オーバークラウド上のベアメタルマシンのプロビジョニングと管理
- 再デプロイ前のベアメタルノードのクリーニング
- ベアメタルノードへのテナントアクセス
ベアメタルネットワークは、ベアメタルシステムを検出するための DHCP および PXE ブートの機能を提供します。このネットワークは、Bare Metal サービスが PXE ブートと DHCP 要求に対応できるように、トランキングされたインターフェースでネイティブの VLAN を使用する必要があります。
ベアメタルネットワークを設定するには、2 とおりの方法があります。
- Ironic Conductor サービス用にフラットなベアメタルネットワークを使用する。このネットワークは、コントロールプレーン上の Ironic サービスにルーティングする必要があります。分離したベアメタルネットワークを定義すると、ベアメタルノードは PXE ブートすることができません。
- カスタムのコンポーザブルネットワークを使用して、オーバークラウドに Ironic サービスを実装する。
ベアメタルノードは、OpenStack インストール環境のコントロールプレーンネットワークに直接アクセスできるため、オーバークラウドの Bare Metal サービスは、信頼済みのテナント環境向けに設計されています。オーバークラウドの Ironic サービス用にカスタムのコンポーザブルネットワークを実装する場合、ユーザーはコントロールプレーンにアクセスする必要はありません。
ネットワークのタグ付け:
- コントロールプレーンネットワーク (director のプロビジョニングネットワーク) は常にタグなしです。
- ベアメタルネットワークは、プロビジョニングのためにタグなしである必要があり、また Ironic API にアクセスできなければなりません。
- その他のネットワークはタグ付けすることができます。
オーバークラウドコントローラー:
Bare Metal サービスを有効にしたコントローラーノードは、ベアメタルネットワークにアクセス可能である必要があります。
ベアメタルノード:
ベアメタルノードの PXE ブートに使用するように設定されている NIC は、ベアメタルネットワークにアクセス可能である必要があります。
2.3.1. デフォルトのベアメタルネットワーク リンクのコピーリンクがクリップボードにコピーされました!
このアーキテクチャーでは、ベアメタルネットワークはコントロールプレーンネットワークとは分離されています。ベアメタルネットワークは、テナントネットワークとしても機能するフラットネットワークです。
- ベアメタルネットワークは、OpenStack のオペレーターが作成します。このネットワークには、director のプロビジョニングネットワークへのルートが必要です。
- Ironic ユーザーは、パブリックの OpenStack API とベアメタルネットワークにアクセスすることができます。ベアメタルネットワークは、director のプロビジョニングネットワークにルーティングされるので、ユーザーはコントロールプレーンにも間接的にアクセスできます。
- Ironic は、ノードのクリーニングにベアメタルネットワークを使用します。
デフォルトのベアメタルネットワークアーキテクチャー図
2.3.2. カスタムコンポーザブルネットワーク リンクのコピーリンクがクリップボードにコピーされました!
このアーキテクチャーでは、ベアメタルネットワークはコントロールプレーンにアクセスできないカスタムコンポーザブルネットワークです。コントロールプレーンへのアクセスを制限したい場合には、このネットワークの作成が推奨されます。
- カスタムコンポーザブルベアメタルネットワークは、OpenStack のオペレーターが作成します。
- Ironic ユーザーは、パブリックの OpenStack API とカスタムコンポーザブルベアメタルネットワークにアクセスすることができます。
- Ironic は、ノードのクリーニングにカスタムコンポーザブルベアメタルネットワークを使用します。
第3章 Bare Metal サービスを有効にしたオーバークラウドのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
director を使用したオーバークラウドのデプロイメントについての詳しい情報は、『director のインストールと使用方法』を参照してください。本章では、ironic 固有のデプロイメント手順のみを説明します。
3.1. Ironic のテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
環境ファイルを使用して、Bare Metal サービスを有効にしたオーバークラウドをデプロイします。テンプレートは、director ノードの /usr/share/openstack-tripleo-heat-templates/environments/services-docker/ironic.yaml
にあります。
テンプレートへの記入
提供されているテンプレートまたは追加の yaml ファイル (例: ~/templates/ironic.yaml
) で、追加の設定を指定することができます。
ベアメタルと仮想インスタンスの両方を備えたハイブリッドのデプロイメントでは、
NovaSchedulerDefaultFilters
の一覧にAggregateInstanceExtraSpecsFilter
を追加する必要があります。NovaSchedulerDefaultFilters
をどこにも設定していない場合には、ironic.yaml に設定することができます。サンプルは、「テンプレートの例」を参照してください。注記SR-IOV を使用している場合には、NovaSchedulerDefaultFilters はすでに
tripleo-heat-templates/environments/neutron-sriov.yaml
で設定されています。このリストにAggregateInstanceExtraSpecsFilter
を追記してください。-
初回のデプロイメントおよび再デプロイメントの前に実行されるクリーニングの種別は、
IronicCleaningDiskErase
で設定されます。デフォルトでは、これはpuppet/services/ironic-conductor.yaml
によって「full」に設定されます。この設定を「metadata」にすると、パーティションテーブルのみがクリーニングされるので処理速度を大幅に向上させることができますが、複数のテナントがある環境ではデプロイメントのセキュリティーレベルが低くなるため、信頼済みのテナント環境でのみ適用すべきです。 -
IronicEnabledDrivers
パラメーターを使用してドライバーを追加することができます。デフォルトでは、pxe_ipmitool
、pxe_drac
、およびpxe_ilo
が有効です。
設定パラメーターの全一覧は、『オーバークラウドのパラメーター』の「Bare Metal (ironic) パラメーター」を参照してください。
3.2. ネットワーク設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのフラットベアメタルネットワークを使用する場合には、ironic が使用するブリッジ br-baremetal
を作成する必要があります。これは、追加のテンプレートで指定することができます。
~/templates/network-environment.yaml
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetal
parameter_defaults:
NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
NeutronFlatNetworks: datacentre,baremetal
このブリッジをコントローラーのプロビジョニングネットワーク (コントローラープレーン) 内に設定して、このネットワークをベアメタルネットワークとして再利用できるようにするか、専用のネットワークを追加することができます。設定の要件は同じですが、ベアメタルネットワークはプロビジョニングに使用するので VLAN タグ付けはできません。
~/templates/nic-configs/controller.yaml
ベアメタルノードは、OpenStack インストール環境のコントロールプレーンネットワークに直接アクセスできるため、オーバークラウドの Bare Metal サービスは、信頼済みのテナント環境向けに設計されています。
3.2.1. カスタムプロビジョニングネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
テナントがアンダークラウドネットワークと干渉する場合があるので、デフォルトのフラットプロビジョニングネットワークにより、お客様の環境でセキュリティー上の問題が発生する可能性があります。このリスクを避けるために、コントロールプレーンにアクセスすることのできない、ironic サービス用のカスタムコンポーザブルベアメタルプロビジョニングネットワークを設定することができます。
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow network_data.yaml
ファイルをコピーします。cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml .
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
network_data.yaml
ファイルを編集し、オーバークラウドプロビジョニング用の新規ネットワークを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規ネットワークを使用するために、
network_environments.yaml
ファイルおよびnic-configs/controller.yaml
ファイルを更新します。network_environments.yaml
ファイルで、VLAN を追加し Ironic ネットワークを再マッピングします。ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nic-configs/controller.yaml
ファイルにおいて、インターフェースおよび必要なパラメーターを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
roles_data.yaml
ファイルをコピーします。cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml .
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
roles_data.yaml
を編集し、コントローラー用の新規ネットワークを追加します。networks: ... - OcProvisioning
networks: ... - OcProvisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイコマンドに新しい
network_data.yaml
ファイルとroles_data.yaml
ファイルを追加します。-n /home/stack/network_data.yaml \ -r /home/stack/roles_data.yaml \
-n /home/stack/network_data.yaml \ -r /home/stack/roles_data.yaml \
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. テンプレートの例 リンクのコピーリンクがクリップボードにコピーされました!
テンプレートファイルの例を以下に示します。このファイルは、お使いの環境の要件を満たさない可能性があります。このサンプルを使用する前には、お使いの環境内の既存の設定を干渉しないことを確認してください。
~/templates/ironic.yaml
この例では、
-
AggregateInstanceExtraSpecsFilter
は、ハイブリッドデプロイメント向けに、仮想インスタンスとベアメタルインスタンスの両方を許可します。 - 初回のデプロイメントまたは再デプロイメントの前に実行されるディスククリーニングでは、パーティションテーブル (metadata) のみが消去されます。
3.4. オーバークラウドのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal サービスを有効にするには、オーバークラウドの初回のデプロイメントまたは再デプロイメントの時に -e
を使用して ironic の環境ファイルをオーバークラウドの残りの設定と共に追加します。
以下に例を示します。
オーバークラウドのデプロイについての詳しい情報は、『director のインストールと使用方法』の「CLI ツールを使用したオーバークラウドの作成」および「オーバークラウド作成時の環境ファイルの追加」を参照してください。
3.5. Bare Metal サービスのテスト リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Integration Test Suite を使用して、Red Hat OpenStack デプロイメントを検証することができます。詳しい情報は、『OpenStack Integration Test Suite Guide』を参照してください。
Bare Metal サービスを検証するその他の方法
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nova-compute
サービスがコントローラーノードで実行中であることを確認します。openstack compute service list -c Binary -c Host -c Status
$ openstack compute service list -c Binary -c Host -c Status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの ironic ドライバーを変更した場合には、必要なドライバーを必ず有効にしてください。
openstack baremetal driver list
$ openstack baremetal driver list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ironic のエンドポイントがリストされていることを確認します。
openstack catalog list
$ openstack catalog list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 デプロイ後の Bare Metal サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
本項では、デプロイ後のオーバークラウドの設定に必要な手順について説明します。
4.1. OpenStack Networking の設定 リンクのコピーリンクがクリップボードにコピーされました!
DHCP、PXE ブート、およびその他の必要な場合に OpenStack Networking が Bare Metal サービスと通信するように設定します。ベアメタルネットワークを設定するには、2 とおりの方法があります。
- Ironic Conductor サービス用にフラットなベアメタルネットワークを使用する。このネットワークは、コントロールプレーンネットワーク上の Ironic サービスにルーティングする必要があります。
- カスタムのコンポーザブルネットワークを使用して、オーバークラウドに Ironic サービスを実装する。
本項の手順に従って、ベアメタルマシンのプロビジョニングに使用する単一のフラットなネットワーク向けに OpenStack Networking を設定するか、あるいは未使用の分離ネットワークまたはフラットネットワークに依存しない新たなコンポーザブルネットワークを設定します。この設定では、ML2 プラグインと Open vSwitch エージェントを使用します。
以下の手順に記載するすべてのステップを、OpenStack Networking サービスをホストするサーバーに root ユーザーとしてログインして実行します。
4.1.1. OpenStack Networking がフラットなベアメタルネットワーク上の Bare Metal サービスと通信するための設定 リンクのコピーリンクがクリップボードにコピーされました!
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルインスタンスをプロビジョニングするためのフラットなネットワークを作成します。
openstack network create \ --provider-network-type flat \ --provider-physical-network baremetal \ --share NETWORK_NAME
$ openstack network create \ --provider-network-type flat \ --provider-physical-network baremetal \ --share NETWORK_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NETWORK_NAME は、このネットワークの名前に置き換えます。ノードのクリーニングを実行する際に誤って再構成を行わないようにするには、この値を
provisioning
に設定します。仮想ネットワークの実装先となる物理ネットワークの名前 (この場合はbaremetal
) は、以前の手順で~/templates/network-environment.yaml
にNeutronBridgeMappings
パラメーターで設定されています。フラットネットワーク上にサブネットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- SUBNET_NAME は、サブネットの名前に置き換えます。
- NETWORK_NAME は、以前のステップで作成済みのプロビジョニングネットワークの名前に置き換えます。
- NETWORK_CIDR は、サブネットが示す IP アドレスブロックの Classless Inter-Domain Routing (CIDR) 表記に置き換えます。START_IP で始まり END_IP で終る範囲で指定する IP アドレスブロックは、NETWORK_CIDR で指定されている IP アドレスブロックの範囲内に入る必要があります。
- GATEWAY_IP は、新しいサブネットのゲートウェイとして機能するルーターインターフェースの IP アドレスまたはホスト名に置き換えます。このアドレスは、NETWORK_CIDR で指定されている IP アドレスブロック内で、かつ START_IP で始まり END_IP で終わる範囲で指定されている IP アドレスブロック外である必要があります。
- START_IP は、Floating IP アドレスを確保する新規サブネット内の IP アドレス範囲の開始アドレスを示す IP アドレスに置き換えます。
- END_IP は、Floating IP アドレスを確保する新規サブネット内の IP アドレス範囲の終了アドレスを示す IP アドレスに置き換えます。
ネットワークとサブネット用のルーターを作成して、OpenStack Networking サービスがメタデータ要求に応答するようにします。
openstack router create ROUTER_NAME
$ openstack router create ROUTER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME
は、ルーターの名前に置き換えます。ネットワークを新しいルーターに接続します。
openstack router add network ROUTER_NAME NETWORK
$ openstack router add network ROUTER_NAME NETWORK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME をルーターの名前に、NETWORK を以前のステップで作成したネットワークの ID または名前に、それぞれ置き換えます。
サブネットを新しいルーターに接続します。
openstack router add subnet ROUTER_NAME BAREMETAL_SUBNET
$ openstack router add subnet ROUTER_NAME BAREMETAL_SUBNET
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ROUTER_NAME をルーターの名前に、BAREMETAL_SUBNET を以前のステップで作成したサブネットの ID または名前に、それぞれ置き換えます。これにより、
cloud-init
からのメタデータ要求に対応すると共に、ノードを設定することができます。
4.1.2. OpenStack Networking がカスタムコンポーザブルベアメタルネットワーク上の Bare Metal サービスと通信するための設定 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント中に作成する
OcProvisioning
ネットワークと一致する VLAN ID で、VLAN ネットワークを作成します。クリーニングネットワークのデフォルト名と一致するように、新しいネットワークの名前をprovisioning
と設定します。openstack network create \ --share \ --provider-network-type vlan \ --provider-physical-network datacentre \ --provider-segment 205 provisioning
(overcloud) [stack@host01 ~]$ openstack network create \ --share \ --provider-network-type vlan \ --provider-physical-network datacentre \ --provider-segment 205 provisioning
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドネットワークの名前が
provisioning
ではない場合には、コントローラーにログオンし、以下のコマンドを実行して名前を変更し、ネットワークを再起動します。heat-admin@overcloud-controller-0 ~]$ sudo vi /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf
heat-admin@overcloud-controller-0 ~]$ sudo vi /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat-admin@overcloud-controller-0 ~]$ sudo docker restart ironic_conductor
heat-admin@overcloud-controller-0 ~]$ sudo docker restart ironic_conductor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. ノードのクリーニングの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Bare Metal サービスは、ノードのクリーニングに provisioning
という名前のネットワークを使用するように設定されます。ただし、OpenStack Networking ではネットワーク名は一意ではないので、テナントが同じ名前を使用してネットワークを作成して Bare Metal サービスとの競合が発生する可能性があります。このため、ネットワーク名の代わりにネットワークの UUID を使用することを推奨します。
Bare Metal サービスを実行しているコントローラー上のプロバイダーネットワークの UUID を指定して、クリーニングを設定します。
~/templates/ironic.yaml
parameter_defaults: IronicCleaningNetwork: UUID
parameter_defaults: IronicCleaningNetwork: UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UUID は、以前のステップで作成されたベアメタルネットワークの UUID に置き換えます。
UUID は、
openstack network show
で確認することができます。openstack network show NETWORK_NAME -f value -c id
openstack network show NETWORK_NAME -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ネットワークの UUID は、オーバークラウドの初回のデプロイメントが完了するまで利用できないので、この設定はデプロイ後に実行する必要があります。
-
「オーバークラウドのデプロイ」の説明に従って
openstack overcloud deploy
コマンドを実行し、オーバークラウドを再デプロイして変更を適用します。openstack overcloud deploy
コマンドでオーバークラウドを再デプロイすると、手動で加えていた変更はすべて元に戻るので、openstack overcloud deploy
を次回使用する前には、(前のステップで説明した) クリーニングの設定を~/templates/ironic.yaml
に必ず追加してください。 director を使用せずに、手動で変更を適用することも可能です。クリーニングネットワークを設定します。
crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf neutron cleaning_network
crudini --set /var/lib/config-data/puppet-generated/ironic/etc/ironic/ironic.conf neutron cleaning_network
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Provisioning サービスを再起動します。
docker restart ironic_conductor
# docker restart ironic_conductor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.1. 手動によるノードのクリーニング リンクのコピーリンクがクリップボードにコピーされました!
ノードのクリーニングを手動で開始するには、そのノードが manageable
の状態である必要があります。
ノードのクリーニングには 2 つのモードがあります。
メタデータのみのクリーニング: 対象のノード上の全ディスクからパーティションを削除します。この方法は、より高速なクリーンサイクルですが、パーティションテーブルのみが削除されるので、セキュリティーレベルはより低くなります。このモードは、信頼済みのテナント環境でのみ使用してください。
完全なクリーニング: ATA のセキュア消去を使用するか、細断処理を行って、全ディスクから全データを削除します。処理の完了まで数時間かかる場合があります。
metadata
のクリーニングを開始するには、以下のコマンドを実行します。
openstack baremetal node clean _UUID_ \ --clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
$ openstack baremetal node clean _UUID_ \
--clean-steps '[{"interface": "deploy", "step": "erase_devices_metadata"}]'
full
クリーニングを開始するには、以下のコマンドを実行します。
openstack baremetal node clean _UUID_ \ --clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
$ openstack baremetal node clean _UUID_ \
--clean-steps '[{"interface": "deploy", "step": "erase_devices"}]'
UUID は、クリーニングするノードの UUID に置き換えてください。
クリーニングが正常に完了すると、ノードの状態は manageable
に戻ります。状態が clean failed
の場合には、last_error
のフィールドで失敗の原因を確認してください。
4.3. ベアメタルフレーバーの作成 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントの一部として使用するフレーバーを作成する必要があります。このフレーバーの仕様 (メモリー、CPU、ディスク) はベアメタルノードが提供する仕様以下である必要があります。
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のフレーバーを一覧表示します。
openstack flavor list
$ openstack flavor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal サービス向けに新規フレーバーを作成します。
openstack flavor create \ --id auto --ram RAM \ --vcpus VCPU --disk DISK \ --property baremetal=true \ --public baremetal
$ openstack flavor create \ --id auto --ram RAM \ --vcpus VCPU --disk DISK \ --property baremetal=true \ --public baremetal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAM
はメモリー量、VCPU
は仮想 CPU 数、DISK
はディスクストレージの値に置き換えます。baremetal
プロパティーは、ベアメタルを仮想インスタンスと区別するために使用されます。指定したそれぞれの値を使用して新規フレーバーが作成されたことを確認します。
openstack flavor list
$ openstack flavor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. ベアメタルイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントには 2 セットのイメージが必要です。
-
デプロイイメージ は、Bare Metal サービスがベアメタルノードをブートしてユーザーイメージをベアメタルノードにコピーするのに使用されます。デプロイイメージは、
カーネル
イメージとramdisk
イメージで構成されます。 ユーザーイメージ は、ベアメタルノードにデプロイされるイメージです。ユーザーイメージにも
カーネル
イメージとramdisk
イメージが含まれますが、追加でメイン
イメージも含まれます。メインイメージは、ルートパーティションイメージまたは完全なディスクイメージのいずれかです。- 完全なディスクイメージ は、パーティションテーブルとブートローダーを含むイメージです。完全なディスクイメージを使用してデプロイされたノードはローカルブートをサポートするので、Bare Metal サービスはデプロイ後のノードのリブートは制御しません。
- ルートパーティションイメージ には、オペレーティングシステムのルートパーティションのみが含まれています。ルートパーティションを使用する場合には、デプロイイメージが Image サービスに読み込まれた後に、ノードのプロパティーにデプロイイメージをノードのブートイメージとして設定することができます。デプロイ後のノードのリブートでは、netboot を使用してユーザーイメージがプルダウンされます。
本項に記載する例では、ルートパーティションイメージを使用してベアメタルノードをプロビジョニングします。
4.4.1. デプロイイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
デプロイイメージを作成する必要はありません。アンダークラウドによるオーバークラウドのデプロイ時に、すでにデプロイイメージが使用されているためです。デプロイイメージは、以下に示したように、kernel イメージと ramdisk イメージの 2 つのイメージで構成されます。
/tftpboot/agent.kernel /tftpboot/agent.ramdisk
/tftpboot/agent.kernel
/tftpboot/agent.ramdisk
これらのイメージは、削除したり他の場所でアンパックしたりしていない限りは、多くの場合、ホームディレクトリーにあります。ホームディレクトリーにない場合でも、rhosp-director-images-ipa
パッケージがインストールされているので、これらのイメージは /usr/share/rhosp-director-images/ironic-python-agent*.tar
ファイル内にあります。
イメージを抽出して Image サービスにアップロードします。
4.4.2. ユーザーイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
最後に必要となるイメージは、ベアメタルノードにデプロイされるユーザーイメージです。ユーザーイメージには、カーネルイメージと ramdisk イメージに加えて、メインイメージが含まれます。これらのパッケージをダウンロードしてインストールするには、まずご自分の要件に合わせて完全なディスクイメージの環境変数を設定する必要があります。
4.4.2.1. ディスクイメージの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
ディスクイメージのビルドプロセスとして、director にはベースイメージと、新規オーバークラウドイメージのパッケージを取得するための登録情報が必要です。これらは、Linux の環境変数を使用して定義します。
イメージのビルドプロセスにより、イメージは一時的に Red Hat サブスクリプションに登録され、システムがイメージのビルドプロセスを完了すると登録を解除します。
ディスクイメージをビルドするには、Linux の環境変数をお使いの環境と要件に応じて設定します。
- DIB_LOCAL_IMAGE
- ベースに使用するローカルイメージを設定します。
- REG_ACTIVATION_KEY
- 登録プロセスの一部で代わりにアクティベーションキーを使用します。
- REG_AUTO_ATTACH
- 最も互換性のあるサブスクリプションを自動的にアタッチするかどうかを定義します。
- REG_BASE_URL
-
パッケージをプルするためのコンテンツ配信サーバーのベース URL。カスタマーポータル Subscription Management のデフォルトプロセスでは
https://cdn.redhat.com
を使用します。Red Hat Satellite 6 サーバーを使用している場合は、このパラメーターにお使いの Satellite サーバーのベース URL を使用する必要があります。 - REG_ENVIRONMENT
- 組織内の環境に登録します。
- REG_METHOD
-
登録の方法を設定します。Red Hat カスタマーポータルに登録するには
portal
を使用します。Red Hat Satellite 6 で登録するには、satellite
を使用します。 - REG_ORG
- イメージを登録する組織
- REG_POOL_ID
- 製品のサブスクリプション情報のプール ID
- REG_PASSWORD
- イメージを登録するユーザーアカウントのパスワードを指定します。
- REG_REPOS
-
コンマ区切りのリポジトリー名の文字列 (空白なし)。この文字列の各リポジトリーは
subscription-manager
で有効にされます。 - REG_SAT_URL
- オーバークラウドノードを登録する Satellite サーバーのベース URL。このパラメーターには、HTTPS URL ではなく、Satellite の HTTP URL を使用します。たとえば、https://satellite.example.com ではなく http://satellite.example.com を使用します。
- REG_SERVER_URL
-
使用するサブスクリプションサービスのホスト名を指定します。Red Hat カスタマーポータルの場合のデフォルトは
subscription.rhn.redhat.com
です。Red Hat Satellite 6 サーバーを使用する場合は、このパラメーターにお使いの Satellite サーバーのホスト名を使用する必要があります。 - REG_USER
- イメージを登録するアカウントのユーザー名を指定します。
4.4.3. ユーザーイメージのインストール リンクのコピーリンクがクリップボードにコピーされました!
- カスタマーポータル (ログインが必要) から Red Hat Enterprise Linux KVM ゲストイメージをダウンロードします。
DIB_LOCAL_IMAGE をダウンロードしたイメージとして定義します。
export DIB_LOCAL_IMAGE=rhel-server-7.4-x86_64-kvm.qcow2
$ export DIB_LOCAL_IMAGE=rhel-server-7.4-x86_64-kvm.qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登録情報を設定します。Red Hat カスタマーポータルを使用する場合には、以下の情報を設定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Satellite を使用する場合には、以下の情報を設定する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オフラインのリポジトリーがある場合には、DIB_YUM_REPO_CONF をローカルリポジトリーの設定として定義することができます。
export DIB_YUM_REPO_CONF=<path-to-local-repository-config-file>
$ export DIB_YUM_REPO_CONF=<path-to-local-repository-config-file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow diskimage-builder
ツールを使用してユーザーイメージを作成します。disk-image-create rhel7 baremetal -o rhel-image
$ disk-image-create rhel7 baremetal -o rhel-image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで kernel は
rhel-image.vmlinuz
として、初期 ramdisk はrhel-image.initrd
として抽出されます。イメージを Image サービスにアップロードします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. ベアメタルノードとしての物理マシンの追加 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードの登録には 2 つの方法があります。
- ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal サービスにインポートしてからノードを利用できるようにします。
- 物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、overcloudrc ファイルが配置されている任意のノードで実行できます。
本項では、両方の方法について詳しく説明します。
物理マシンの登録後、新規リソースは Compute に直ぐには通知されません。これは、Compute のリソーストラッカーが定期的にしか同期していないためです。次の定期タスクが実行されると、変更が認識されるようになります。この値 scheduler_driver_task_period
は、/etc/nova/nova.conf で更新することができます。デフォルトの間隔は 60 秒です。
4.5.1. インベントリーファイルを使用したベアメタルノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
ノードの詳細情報を記載したファイル
overcloud-nodes.yaml
を作成します。1 つのファイルで複数のノードを登録することが可能です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
-
<IPMI_IP>
は、Bare Metal コントローラーのアドレスに置き換えます。 -
<USER>
は、ユーザー名に置き換えます。 -
<PASSWORD>
は、パスワードに置き換えます。 -
<CPU_COUNT>
は、CPU の数に置き換えます。 -
<CPU_ARCHITECTURE>
は、CPU のアーキテクチャー種別に置き換えます。 -
<MEMORY>
は、メモリー容量 (MiB 単位) に置き換えます。 -
<ROOT_DISK>
は、ルートディスクの容量 (GiB 単位) に置き換えます。 <PXE_NIC_MAC>
は、PXE ブートで使用する NIC の MAC アドレスに置き換えます。マシンに複数のディスクがある場合に、含める必要があるのは
root_device
のみです。<SERIAL>
は、デプロイメントに使用するディスクのシリアル番号に置き換えます。
-
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを ironic にインポートします。
openstack baremetal create overcloud-nodes.yaml
$ openstack baremetal create overcloud-nodes.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
これで、ノードは
enroll
の状態となります。 各ノードでデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
$ openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
KERNEL_UUID は、Image サービスにアップロードした カーネル デプロイイメージの一意識別子に置き換えます。この値は以下のコマンドで確認します。
openstack image show bm-deploy-kernel -f value -c id
$ openstack image show bm-deploy-kernel -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow INITRAMFS_UUID は、Image サービスにアップロードした ramdisk イメージの一意識別子に置き換えます。この値は以下のコマンドで確認します。
openstack image show bm-deploy-ramdisk -f value -c id
$ openstack image show bm-deploy-ramdisk -f value -c id
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ノードのプロビジョニング状態を
available
に設定します。openstack baremetal node manage NODE_UUID openstack baremetal node provide NODE_UUID
$ openstack baremetal node manage NODE_UUID $ openstack baremetal node provide NODE_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードのクリーニングを有効にしている場合には、Bare Metal サービスがノードをクリーニングします。
ノードにローカルブートオプションを設定します。
openstack baremetal node set _NODE_UUID_ --property capabilities="boot_option:local"
$ openstack baremetal node set _NODE_UUID_ --property capabilities="boot_option:local"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが正常に登録されたことを確認します。
openstack baremetal node list
$ openstack baremetal node list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを登録した後にその状態が表示されるまで時間がかかる場合があります。
4.5.2. ベアメタルノードの手動登録 リンクのコピーリンクがクリップボードにコピーされました!
Identity を管理ユーザーとして使用するためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノードを追加します。
openstack baremetal node create --driver pxe_ipmitool --name NAME
$ openstack baremetal node create --driver pxe_ipmitool --name NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを作成するには、ドライバー名を指定する必要があります。この例では
pxe_impitool
を使用しています。異なるドライバーを使用するには、IronicEnabledDrivers
パラメーターを設定してそのドライバーを有効化する必要があります。サポートされているドライバーについての詳しい情報は、「付録A Bare Metal のドライバー」を参照してください。重要ノードの一意識別子を書き留めておきます。
ノードのドライバーの情報を更新して、Bare Metal サービスがノードを管理できるようにします。
openstack baremetal node set NODE_UUID \ --driver_info PROPERTY=VALUE \ --driver_info PROPERTY=VALUE
$ openstack baremetal node set NODE_UUID \ --driver_info PROPERTY=VALUE \ --driver_info PROPERTY=VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- PROPERTY は、ironic driver-properties コマンドで返された必要なプロパティーに置き換えます。
- VALUE は、プロパティーの有効な値に置き換えます。
ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
$ openstack baremetal node set NODE_UUID \ --driver-info deploy_kernel=KERNEL_UUID \ --driver-info deploy_ramdisk=INITRAMFS_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- KERNEL_UUID は、Image サービスにアップロードされた .kernel イメージの一意識別子に置き換えます。
- INITRAMFS_UUID は、Image サービスにアップロードされた .initramfs イメージの一意識別子に置き換えます。
ノードのプロパティーを更新して、ノード上のハードウェアの仕様と一致するようにします。
openstack baremetal node set NODE_UUID \ --property cpus=CPU \ --property memory_mb=RAM_MB \ --property local_gb=DISK_GB \ --property cpu_arch=ARCH
$ openstack baremetal node set NODE_UUID \ --property cpus=CPU \ --property memory_mb=RAM_MB \ --property local_gb=DISK_GB \ --property cpu_arch=ARCH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
- CPU は、CPU の数に置き換えます。
- RAM_MB は、メモリー (MB 単位) に置き換えます。
- DISK_GB は、ディスク容量 (GB 単位) に置き換えます。
- ARCH は、アーキテクチャー種別に置き換えます。
オプション: 初回のデプロイの後には、
ironic-conductor
から PXE を使用する代わりに、ノードのディスクにインストールされたローカルのブートローダーからリブートするようにノードを設定します。ノードのプロビジョニングに使用するフレーバーでも、ローカルブートの機能を設定する必要があります。ローカルブートを有効にするには、ノードのデプロイに使用するイメージに grub2 が含まれている必要があります。ローカルブートを以下のように設定します。openstack baremetal node set NODE_UUID \ --property capabilities="boot_option:local"
$ openstack baremetal node set NODE_UUID \ --property capabilities="boot_option:local"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
プロビジョニングネットワーク上の NIC の MAC アドレスを使用してポートを作成することにより、Bare Metal サービスにノードのネットワークカードを通知します。
openstack baremetal port create --node NODE_UUID MAC_ADDRESS
$ openstack baremetal port create --node NODE_UUID MAC_ADDRESS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。MAC_ADDRESS は、PXE ブートに使用する NIC の MAC アドレスに置き換えます。
複数のディスクがある場合には、ルートデバイスのヒントを設定してください。これにより、デプロイメントに使用すべきディスクがデプロイ ramdisk に通知されます。
openstack baremetal node set NODE_UUID \ --property root_device={"PROPERTY": "VALUE"}
$ openstack baremetal node set NODE_UUID \ --property root_device={"PROPERTY": "VALUE"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値に置き換えてください。
- NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。
PROPERTY と VALUE は、デプロイメントに使用するディスクの情報に置き換えます (例:
root_device='{"size": 128}'
)。以下のプロパティーがサポートされています。
-
model
(文字列): デバイスの ID -
vendor
(文字列): デバイスのベンダー -
serial
(文字列): ディスクのシリアル番号 -
hctl
(文字列): SCSI のホスト、チャンネル、ターゲット、Lun -
size
(整数): デバイスのサイズ (GB 単位) -
wwn
(文字列): 一意のストレージ ID -
wwn_with_extension
(文字列): ベンダー拡張子を追加した一意のストレージ ID -
wwn_vendor_extension
(文字列): 一意のベンダーストレージ ID -
rotational
(ブール値): ディスクを用いるデバイス (HDD) の場合は true、それ以外 (SSD) の場合は false。 name
: デバイス名 (例: /dev/sdb1)。これは、永続デバイス名が付いたデバイスのみに使用してください。注記複数のプロパティーを指定する場合には、デバイスはそれらの全プロパティーと一致する必要があります。
-
ノードの設定を検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NODE_UUID は、ノードの一意識別子に置き換えます。もしくは、ノードの論理名を使用します。上記のコマンドの出力には、各インターフェースが
True
またはNone
のいずれかと報告されるはずです。None
とマークされたインターフェースは、設定していないか、ドライバーがサポートしていないインターフェースです。注記「ramdisk」、「kernel」、および「image_source」のパラメーターが指定されていないと、インターフェースの検証に失敗する場合があります。Compute サービスは、デプロイメントプロセスの最初に未指定のパラメーターを設定するので、この結果は問題ありません。
4.6. ホストアグリゲートを使用した物理マシンと仮想マシンのプロビジョニングの分離 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Compute は、ホストアグリゲートを使用してアベイラビリティーゾーンをパーティション分割し、特定の共有プロパティーが指定されたノードをグループ化します。インスタンスがプロビジョニングされると、Compute のスケジューラーがフレーバーのプロパティーをホストアグリゲートに割り当てられたプロパティーと比較して、インスタンスが正しいアグリゲート内の正しいホストに (物理マシン上または仮想マシンとして) プロビジョニングされたことを確認します。
以下の手順は、次の作業の方法を説明します。
-
baremetal
プロパティーをフレーバーに追加して、true
またはfalse
に設定する。 -
一致する
baremetal
プロパティーを設定して、ベアメタルホスト用とコンピュートノード用のホストアグリゲートを別々に作成する。1 つのアグリゲートでグループ化されたノードは、このプロパティーを継承します。
ホストアグリゲートの作成
ベアメタル用のフレーバーで
baremetal
プロパティーをtrue
に設定します。openstack flavor set baremetal --property baremetal=true
$ openstack flavor set baremetal --property baremetal=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想インスタンスに使用するフレーバーで
baremetal
プロパティーをfalse
に設定します。openstack flavor set FLAVOR_NAME --property baremetal=false
$ openstack flavor set FLAVOR_NAME --property baremetal=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow baremetal-hosts
という名前のホストアグリゲートを作成します。openstack aggregate create --property baremetal=true baremetal-hosts
$ openstack aggregate create --property baremetal=true baremetal-hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントローラーノードを
baremetal-hosts
アグリゲートに追加します。openstack aggregate add host baremetal-hosts HOSTNAME
$ openstack aggregate add host baremetal-hosts HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記NovaIronic
サービスでコンポーザブルロールを作成していた場合には、このサービスがあるノードをすべてbaremetal-hosts
アグリゲートに追加します。デフォルトでは、NovaIronic
サービスがあるのはコントローラーノードのみです。virtual-hosts
という名前のホストアグリゲートを作成します。openstack aggregate create --property baremetal=false virtual-hosts
$ openstack aggregate create --property baremetal=false virtual-hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各コンピュートノードを
virtual-hosts
アグリゲートに追加します。openstack aggregate add host virtual-hosts HOSTNAME
$ openstack aggregate add host virtual-hosts HOSTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドのデプロイ時に以下の Compute フィルタースケジューラーを追加していなかった場合には、この時点で /etc/nova/nova.conf の
scheduler_default_filters
セクションの既存リストに追加します。AggregateInstanceExtraSpecsFilter
AggregateInstanceExtraSpecsFilter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 ベアメタルノードの管理 リンクのコピーリンクがクリップボードにコピーされました!
本章では、登録済みのベアメタルノードで物理マシンをプロビジョニングする方法について説明します。インスタンスは、コマンドラインまたは OpenStack Dashboard で起動することができます。
5.1. コマンドラインインターフェースを使用したインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
openstack コマンドラインインターフェースを使用してベアメタルインスタンスをデプロイします。
コマンドライン上でのインスタンスのデプロイ
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスをデプロイします。
openstack server create \ --nic net-id=NETWORK_UUID \ --flavor baremetal \ --image IMAGE_UUID \ INSTANCE_NAME
$ openstack server create \ --nic net-id=NETWORK_UUID \ --flavor baremetal \ --image IMAGE_UUID \ INSTANCE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を置き換えてください。
- NETWORK_UUID は、Bare Metal サービスで使用するために作成したネットワークの一意識別子に置き換えます。
- IMAGE_UUID は、Image サービスにアップロードされたディスクイメージの一意識別子に置き換えます。
- INSTANCE_NAME は、ベアメタルインスタンスの名前に置き換えます。
セキュリティーグループにインスタンスを割り当てるには、
--security-group SECURITY_GROUP
オプションを指定します。SECURITY_GROUP は、そのセキュリティーグループの名前に置き換えてください。インスタンスを複数のグループに追加するには、このオプションを繰り返します。セキュリティーグループの管理についての詳しい情報は、『ユーザーおよびアイデンティティー管理ガイド』を参照してください。インスタンスのステータスを確認します。
openstack server list --name INSTANCE_NAME
$ openstack server list --name INSTANCE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. Dashboard を使用したインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard のグラフィカルユーザーインターフェースを使用してベアメタルインスタンスをデプロイします。
Dashboard でのインスタンスのデプロイ
- http[s]://DASHBOARD_IP/dashboard で Dashboard にログインします。
- プロジェクト > コンピュート > インスタンス の順にクリックします。
インスタンスの起動 をクリックします。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
1
を選択します。 -
ソース タブで ブートソースを選択してください のドロップダウンメニューから
イメージ
を選択し、続いて↑
(上向き矢印) の記号をクリックしてオペレーティングシステムのディスクイメージを選択します。選択したイメージは 割り当て済み に移動します。 -
フレーバー タブで
baremetal
を選択します。 -
ネットワーク タブで、
↑
(上向き矢印) および↓
(下向き矢印) ボタンを使用して必要なネットワークを 利用可能 から 割り当て済み に移動します。ここでは、必ず Bare Metal サービス用に作成した共有ネットワークを選択してください。 - インスタンスをセキュリティーグループに割り当てるには、セキュリティーグループ のタブで矢印を使用してそのグループを 割り当て済み に移動します。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
- インスタンスの起動 をクリックします。
5.3. Bare Metal Provisioning サービスでのポートグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノード向けのポートグループ機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト目的のみでご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
ポートグループ (ボンディング) の機能により、複数のネットワークインターフェースを単一の「ボンディングされた」インターフェースに統合することができます。ポートグループの設定は常に、個別のポート設定に優先します。
ポートグループに物理ネットワークがある場合には、そのポートグループ内の全ポートに同じ物理ネットワークを使用すべきです。Bare Metal Provisioning サービスは、configdrive
を使用するインスタンスでのポートグループの設定をサポートしています。
Bare Metal Provisioning サービス API バージョン 1.26 は、ポートグループの設定をサポートしています。
5.3.1. スイッチの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning デプロイメントでポートグループを設定するには、スイッチ上で手動設定する必要があります。スイッチ上のモードとプロパティーは、スイッチによって名前が異なる場合があるため、それらがベアメタル側のモードとプロパティーに対応していることを確認する必要があります。
iPXE を使用してデプロイメントを起動する必要がある場合、プロビジョニングとクリーニングにはポートグループを使用できません。
ポートグループのフォールバック機能により、接続でエラーが発生した際に、1 つのポートグループ内の全ポートを個々のスイッチポートにフォールバックさせることができます。スイッチがポートグループのフォールバックをサポートしているかどうかに応じて、「--support-standalone-ports」と「--unsupport-standalone-ports」のオプションを使用することができます。
5.3.2. Bare Metal Provisioning サービスでのポートグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
ポートグループが属する先のノード、その名前、アドレス、モード、プロパティー、スタンドアロンポートへのフォールバックをサポートしているかどうかを指定して、ポートグループを作成します。
openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-ports
# openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-ports
Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、
openstack baremetal port group set
コマンドを使用してポートグループを更新することもできます。アドレスを指定しない場合には、デプロイされるインスタンスのポートグループアドレスは OpenStack Networking のポートと同じになります。
neutron
ポートが接続されていない場合には、ポートグループは設定されません。インターフェースの接続中には、ポートグループの優先度はポートよりも高くなるので、最初に使用されます。現在、インターフェースの接続要求で、ポートグループとポートのどちらを優先するかを指定することは できません。ポートのないポートグループは無視されます。
注記ポートグループは、手動でスタンドアロンモードに設定する必要があります。そのためには、イメージ内で設定するか、
configdrive
を生成してノードのinstance_info
に追加します。ポートグループの設定が機能するには、cloud-init
バージョン 0.7.7 以降を使用している必要があります。ポートをポートグループに関連付けます。
ポートの作成中
openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group test
# openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポートの更新中
openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUID
# openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cloud-init
対応のイメージまたはボンディングをサポートしているイメージを提供することにより、インスタンスを起動します。ポートグループが適切に設定されているかを確認するには、以下のコマンドを実行します。
cat /proc/net/bonding/bondX
# cat /proc/net/bonding/bondX
Copy to Clipboard Copied! Toggle word wrap Toggle overflow X
は、cloud-init
が設定済みの各ポートグループに対して自動生成する番号です。0
で始まり、ポートグループを設定するたびに 1 つずつ増えます。
5.4. ホストから IP アドレスへのマッピングの確認 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを実行すると、各 IP アドレスが割り当てられているホストおよびベアメタルノードを確認できます。
この機能により、ホストに直接アクセスする必要なく、ホストから IP へのマッピングをアンダークラウドで確認することが可能です。
特定のホストをフィルターするには、以下のコマンドを実行します。
ホストをベアメタルノードにマッピングするには、以下のコマンドを実行します。
5.5. 仮想ネットワークインターフェースの接続と切断 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービスには、仮想ネットワークインターフェース (たとえば、OpenStack Networking サービスで使用される仮想ネットワークインターフェース) と物理ネットワークインターフェース (NIC) との間のマッピングを管理するための API があります。これらのインターフェースは各 Bare Metal Provisioning ノードに対して設定可能で、openstack baremetal node vif*
コマンドを使用して仮想ネットワークインターフェース (VIF) から物理ネットワークインターフェース (PIF) へのマッピングロジックを設定することができます。
以下の例で、VIF を接続および切断する手順を説明します。
ベアメタルノードに現在接続されている VIF の ID を一覧表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VIF がアタッチされた後に、Bare Metal サービスは OpenStack Networking サービス内の仮想ポートを実際の物理ポートの MAC アドレスで更新します。
これは、以下のコマンドで確認できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow baremetal-0
ノードを作成したネットワーク上に新規ポートを作成します。openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extra
$ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extra
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インスタンスからポートを削除します。
openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
$ openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow その IP アドレスがリストには存在しなくなったことを確認します。
openstack server list
$ openstack server list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow そのノードに接続されている VIF があるかどうかを確認します。
openstack baremetal node vif list baremetal-0 openstack port list
$ openstack baremetal node vif list baremetal-0 $ openstack port list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規作成されたポートを追加します。
openstack server add port overcloud-baremetal-0 baremetal-0-extra
$ openstack server add port overcloud-baremetal-0 baremetal-0-extra
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい IP アドレスに新しいポートが表示されることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VIF ID が新規ポートの UUID であるかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack Networking ポートの MAC アドレスが更新され、Bare Metal サービスポートの中の 1 つと一致しているかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルノードを再起動して、新規 IP アドレスが認識されるようにします。
openstack server reboot overcloud-baremetal-0
$ openstack server reboot overcloud-baremetal-0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターフェースを接続または切断した後には、ベアメタルの OS は変更されたネットワークインターフェースを削除/追加/変更します。ポートを置き換える場合、DHCP 要求が新規 IP アドレスを取得しますが、古い DHCP リースがまだ有効なので、多少時間がかかる場合があります。変更を即時に適用する最も簡単な方法は、ベアメタルホストをリブートすることです。
5.6. Bare Metal サービスの通知の設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal サービスを設定して、サービス内で発生するさまざまなイベントの通知を表示することができます。このような通知は、課金目的やデータストアの監視などで外部のサービスが使用することができます。本項では、この通知を有効にする方法について説明します。
Bare Metal サービスの通知を有効化するには、ironic.conf
設定ファイルで以下のオプションを設定する必要があります。
-
[DEFAULT]
セクションのnotification_level
オプションは、通知送信の最小の優先度を決定します。このオプションの値は、debug
、info
、warning
、error
、critical
のいずれかに設定することができます。オプションがwarning
に設定されると、優先度がwarning
、error
、またはcritical
のいずれかである通知はすべて送信されますが、優先度がdebug
またはinfo
の通知は送信させません。このオプションが設定されていない場合には、通知は一切送信されません。利用可能な各通知の優先度は、以下に記載しています。 -
[oslo_messaging_notifications]
セクションのtransport_url
のオプションは、通知の送信に使用されるメッセージバスを決定します。このオプションが設定されていない場合には、RPC に使われるデフォルトのトランスポートが使用されます。
通知はすべて、メッセージバス内の ironic_versioned_notifications
トピックで発行されます。通常は、メッセージバスを通過する各種別のメッセージは、メッセージの内容を説明しているトピックに関連付けられます。
通知は失われる可能性があり、通知がメッセージバスを通ってエンドユーザーに届く保証はありません。
第6章 インスタンスとしてのベアメタルノードの使用 リンクのコピーリンクがクリップボードにコピーされました!
このユースケースでは、ベアメタルノードを下層のハードウェアとして使用するインスタンスをデプロイすることができます。Sahara は、ビッグデータクラスター作成時に 2 つの内部タスクを実行します。
- Heat は、インスタンスの作成 (必須ネットワークを含む) に使用されます。
-
インスタンスの準備が整ったら (
openstack server list
がACTIVE
の状態)、sahara は各ノードに接続して、指定されたビッグデータプラグインの設定を適用します。これには、ビッグデータインスタンスの準備が整うまでの追加のソフトウェアのインストール、サービスの起動、およびその他のタスクが含まれます。
6.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- オーバークラウド上で Bare Metal Provisioning (ironic) と Data Processing (sahara) をデプロイする際には、デフォルトのパラメーターを使用します。
-
ベアメタルノードはすべて、事前定義済みのフレーバー (以下
baremetal_flavor
と呼ぶ) の下でグループ化される必要があります。 - 仮想ノードとベアメタルノードを組み合わせた混合設定はテスト済みではないため、サポートされない場合があります。
一般的には、仮想インスタンスは通常プライベートプロジェクトネットワークに接続されてから、パブリックネットワーク上の Floating IP プールを介してアクセス可能となります)。ただし、ironic によって管理されるベアメタルマシンが単一のネットワークでのみアクセス可能な場合には、問題が発生する場合があります。そのため、sahara のクラスターは Floating IP アドレスプールを使用せずに、そのネットワークのみを使用するように設定すべきです。この問題は、ベアメタルノードに限られず、sahara が仮想マシンのみで使用されている場合にも発生する可能性があります。
6.2. イメージの生成 リンクのコピーリンクがクリップボードにコピーされました!
sahara-image-elements
(追加の baremetal
スイッチを含む) を使用してベアメタルノード用のイメージを生成する必要がある可能性があります。この作業を行う場合は、カーネルと initrd イメージも生成する必要があります。ただし、通常 sahara-image-elements
によって生成されるイメージは完全なディスクイメージとして機能するため、ベアメタルイメージを生成する必要が全くない場合もあります。フレーバーには一時ディスクが必要で、それによりさらにパーティションイメージが必要となるため、ベアメタルイメージは、MapR
プラグインに必要な場合があります。現在、生成スクリプトには、ベアメタルイメージの作成を妨げる既知の問題があります。これは、今後の更新で解決される見込みです。
イメージが生成されたら、それらを glance にアップロードして、sahara で登録します。
6.3. クラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
CDH プラグインを使用したテストシナリオの例を以下に示します。
CDH ノードグループテンプレートおよびクラスターテンプレートの標準的なセットを作成します。ただし、このユースケースでは、新規
baremetal_flavor
を指定する必要があり、Floating IP アドレスプールは必要ない可能性があります。たとえば、以下のように割り当てます。- 1x manager
- 1x master-core
- 1x master-additional
- 1x worker-nm-dn
-
dfs_replication
を1
に設定して有効化します。 -
フレーバーを
baremetal_flavor
に設定します。 - クラスターを作成します。作成されるクラスターは、正常に初期化され、デプロイされるインスタンスはベアメタルノードを使用するはずです。
第7章 ML2 networking-ansible リンクのコピーリンクがクリップボードにコピーされました!
本項では、OpenStack Networking (neutron) の networking-ansible
ML2 ドライバー、OpenStack Bare Metal (ironic) との統合、およびオーバークラウドでこのドライバーの有効化および設定を行う手順について説明します。
7.1. Modular Layer 2 (ML2) networking-ansible リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Networking (neutron) に含まれる networking-ansible
は、Ansible Engine Networking を使用してネットワークスイッチを管理する ML2 ドライバーです。また、このドライバーは、OpenStack Bare Metal (ironic) と統合して、ベアメタルゲスト用にスイッチポート上の VLAN 設定も行います。つまり、オーバークラウドのデプロイメントプロセスがトリガーとなり、networking-ansible
ドライバーが、VLAN neutron ネットワークを使用するベアメタルゲストおよびそれに対応する物理スイッチを設定します。
現在の networking-ansible
ドライバーには、以下の機能が備わっています。
- OpenStack でネットワークを作成する際に、スイッチに VLAN を定義する
- OpenStack でポートを作成または更新する際に、スイッチ上のアクセスポートに VLAN を割り当てる
- OpenStack でポートを削除する際に、スイッチ上のアクセスポートから VLAN を削除する
7.2. networking-ansible のネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
以下の一覧で、networking-ansible
機能を有効にするためのネットワーク要件の概要を説明します。
-
Ansible Network Automation 対応のネットワークスイッチ。現在、Red Hat では Juniper Networks (
Junos
) スイッチの使用のみをサポートしています。 ネットワークスイッチには、Ansible Network Automation がデバイスと対話できるようにするため、SSH ユーザーも必要です。このユーザーには、スイッチでの特定の権限が必要です。
- アクセスモード
- VLAN のポートへの割り当て
- VLAN の作成
セキュリティー上の理由から、SSH ユーザーにはスイッチへの管理者アクセス権限を付与しないでください。
-
VLAN を手動で管理する場合、スイッチが使用する VLAN を準備します。そのためには、それぞれのスイッチポートの VLAN を作成します。この要件は、networking-ansible 機能を有効にする際の
manage_vlans
オプションに基づいています。 - ベアメタルゲスト用に予約済みのネットワークスイッチポートは、初めに、イントロスペクション専用のネットワークに接続するよう設定する必要があります。これ以外では、これらのポートに追加設定は必要ありません。
7.3. networking-ansible 用の Openstack Bare Metal (ironic) の要件 リンクのコピーリンクがクリップボードにコピーされました!
networking-ansible
ドライバーは、Openstack Bare Metal (ironic) サービスと統合します。正常に統合するためには、以下の推奨事項に従ってオーバークラウドに ironic サービスをデプロイします。
オーバークラウドには、プロビジョニングネットワークが必要です。以下のいずれかのオプションを使用します。
- Ironic サービス用のブリッジネットワーク。
- Ironic サービス用のカスタムコンポーザブルネットワーク。
プロビジョニングネットワークのその他の設定例については、「3章Bare Metal サービスを有効にしたオーバークラウドのデプロイ」を参照してください。
オーバークラウドには、プロビジョニングプロセスの後に使用するベアメタルシステム用のテナントネットワークが必要です。本ガイドの例では、
br-baremetal
という名前のブリッジにマッピングされた、デフォルトのbaremetal
ネットワークを使用します。このネットワークには、VLAN ID の範囲も必要です。以下の Heat パラメーターセットは、本ガイドの例に合わせてこれらの値を設定します。parameter_defaults: NeutronNetworkVLANRanges: baremetal:1200:1299 NeutronFlatNetworks: datacentre,baremetal NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
parameter_defaults: NeutronNetworkVLANRanges: baremetal:1200:1299 NeutronFlatNetworks: datacentre,baremetal NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenStack Bare Metal (ironic) のデプロイについての詳しい情報は、「3章Bare Metal サービスを有効にしたオーバークラウドのデプロイ」を参照してください。
7.4. networking-ansible ML2 機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、オーバークラウドで networking-ansible
ML2 ドライバーを有効にする方法を説明します。この設定では、デプロイメントに 2 つの環境ファイルを追加する必要があります。
/usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml
-
このファイルは、
networking-ansible
ドライバーを有効にし、ネットワーク種別をvlan
に設定します。このファイルは、コア Heat テンプレートコレクションにすでに存在します。 /home/stack/templates/ml2-ansible-hosts.yaml
- このファイルには、スイッチの詳細情報が含まれます。このファイルは手動で作成します。
手順
/home/stack/templates/ml2-ansible-hosts.yaml
を作成し、以下の初期コンテンツを追加します。parameter_defaults: ML2HostConfigs:
parameter_defaults: ML2HostConfigs:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 環境内の各スイッチ用に、
ML2HostConfigs
パラメーターにdict
定義を追加します。それぞれのdict
キーはスイッチの名前で、OpenStack Networking (neutron) ML2 設定の特定のansible:[switchname]
セクションを定義します。各スイッチのdict
値には、スイッチの詳細情報が含まれます。たとえば、スイッチを 3 つ設定するには、ML2HostConfigs
パラメーターにスイッチキーを 3 つ追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow それぞれのスイッチの
dict
に、以下のキー/値のペアを含めます。ansible_network_os
-
(必須) スイッチのオペレーティングシステム。現在、Red Hat では
Junos
のみをサポートしています。 ansible_host
- (必須) スイッチの IP またはホスト名
ansible_user
- (必須) Ansible がスイッチにアクセスする際に使用するユーザー
ansible_ssh_pass
- (必須) Ansible がスイッチにアクセスするために使用する SSH パスワード
mac
-
ネットワークデバイスのシャーシ MAC ID。これを使用して、Link Layer Discovery Protocol (LLDP) MAC アドレス値を、
ML2HostConfigs
設定で定義されたスイッチ名にマッピングします。 manage_vlans
-
OpenStack Networking (neutron) が物理デバイス上の VLAN の作成と削除を制御するかどうかを定義するブール型変数。この機能によって、スイッチは各 Neutron ネットワークに対応する ID を持つ VLAN を作成および削除します。スイッチにこれらの VLAN が事前定義されていて、Neutron でスイッチに VLAN を作成したり削除したりする必要がない場合は、このパラメーターを
false
に設定します。デフォルト値はtrue
です。
以下の例は、全
ML2HostConfigs
パラメーターで、これらの値を対応するキーにマッピングする方法を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/home/stack/templates/ml2-ansible-hosts.yaml
ファイルを保存します。 オーバークラウドのデプロイメントコマンドの実行時に、
-e
オプション指定して/usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml
と/home/stack/templates/ml2-ansible-hosts.yaml
ファイルを追加します。openstack overcloud deploy --templates \ ...
$ openstack overcloud deploy --templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ml2-ansible.yaml \ -e /home/stack/templates/ml2-ansible-hosts.yaml \ ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
director は、neutron_api
コンテナーの OpenStack Networking (neutron) API の一部としてドライバーを有効にします。
7.5. networking-ansible 用ネットワーク設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning および networking-ansible ドライバーを有効にしてオーバークラウドをデプロイしたら、ベアメタルノード用に以下のネットワークを作成します。
- プロビジョニングネットワーク
- ベアメタルシステムは、このネットワークを初期作成に使用します。
- テナントネットワーク
- ベアメタルシステムは、プロビジョニング後にこのネットワークに切り替え、このネットワークを内部通信に使用します。
手順
- プロビジョニングネットワークおよびサブネットを作成します。この操作は、使用しているプロビジョニングネットワークの種別により異なります。プロビジョニングネットワークの設定については、「4章デプロイ後の Bare Metal サービスの設定」を参照してください。
テナントネットワークおよびサブネットを作成します。
openstack network create --provider-network-type vlan --provider-physical-network baremetal tenant-net openstack subnet create --network tenant-net --subnet-range 192.168.3.0/24 --allocation-pool start=192.168.3.10,end=192.168.3.20 tenant-subnet
$ openstack network create --provider-network-type vlan --provider-physical-network baremetal tenant-net $ openstack subnet create --network tenant-net --subnet-range 192.168.3.0/24 --allocation-pool start=192.168.3.10,end=192.168.3.20 tenant-subnet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow networking-ansible
が機能するように、必ず--provider-network-type
オプションをvlan
に設定してください。
7.6. ベアメタルゲスト用のポート設定 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルゲストには、スイッチに接続するためのポート情報が必要です。そのためには、OpenStack Networking (neutron) ポート設定を定義します。お使いのオーバークラウドにベアメタルイントロスペクション機能がない場合には、この手法を使用します。
手順
ベアメタルノードのポートを作成します。以下のコマンド例を、ポート作成のベースとして使用します。
openstack baremetal port create [NODE NIC MAC] --node [NODE UUID] \ --local-link-connection port_id=[SWICH PORT ID] \ --local-link-connection switch_info=[SWITCH NAME] \ --local-link-connection switch_id=[SWITCH MAC]
$ openstack baremetal port create [NODE NIC MAC] --node [NODE UUID] \ --local-link-connection port_id=[SWICH PORT ID] \ --local-link-connection switch_info=[SWITCH NAME] \ --local-link-connection switch_id=[SWITCH MAC]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の大かっこ内の値は、実際の環境の情報に置き換えてください。
[NODE NIC MAC]
- スイッチに接続された NIC の MAC アドレス。
--node [NODE UUID]
- 新しいポートを使用するノードの UUID
--local-link-connection port_id=[SWITCH PORT ID]
- ベアメタルノードに接続するスイッチ上のポート ID。
--local-link-connection switch_info=[SWITCH NAME]
-
ベアメタルノードに接続するスイッチの名前。スイッチ名は、
ML2HostConfigs
パラメーターで定義した各スイッチ名と一致していなければなりません。 --local-link-connection switch_id=[SWITCH MAC]
-
スイッチの MAC アドレス。この値は、
ML2HostConfigs
パラメーターのスイッチ設定の各mac
値と一致していなければなりません。これは、switch_info
の使用に対する代替オプションです。
7.7. networking-ansible ML2 機能のテスト リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードの networking-ansible
設定が完了したら、動作を確かめるために機能をテストします。これを行うには、ベアメタルに関する負荷を作成する必要があります。
前提条件
- OpenStack Baremetal (ironic) サービスが設定されたオーバークラウド
-
有効な
networking-ansible
ML2 ドライバー -
スイッチのアクセス情報が含まれる
ML2HostConfigs
パラメーター 登録済みのベアメタルノード
- スイッチ上のノード接続に使用する各ベアメタルポートの設定
- 初期プロビジョニング用に OpenStack Networking (neutron) で定義された VLAN ベースのプロビジョニングネットワーク
- 内部通信用に OpenStack Networking (neutron) で定義された VLAN ベースのテナントネットワーク
手順
ベアメタルシステムを作成します。
openstack server create --flavor baremetal --image overcloud-full --key default --network tenant-net test1
openstack server create --flavor baremetal --image overcloud-full --key default --network tenant-net test1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドは、まずプロビジョニングネットワークにベアメタルシステムを作成します。作成が完了すると、
networking-ansible
ドライバーによってスイッチ上のポート設定が変更され、ベアメタルシステムがテナントネットワークを使用するようになります。
第8章 Bare Metal サービスのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
以下の項には、Bare Metal サービスを有効にした環境における問題を診断するのに役立つ可能性のある情報と手順を記載します。
8.1. PXE ブートエラー リンクのコピーリンクがクリップボードにコピーされました!
Permission Denied エラー
Bare Metal サービスノードのコンソールで「Permission Denied」エラーが表示された場合には、以下に示したように、適切な SELinux コンテキストを /httpboot
と /tftpboot
のディレクトリーに必ず適用してください。
semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?" restorecon -r -v /httpboot semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?" restorecon -r -v /tftpboot
# semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?"
# restorecon -r -v /httpboot
# semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?"
# restorecon -r -v /tftpboot
/pxelinux.cfg/XX-XX-XX-XX-XX-XX
でのブートプロセスのフリーズ
以下の図に示したように、ノードのコンソールで、IP アドレスは取得されているがプロセスが停止しているように表示されている場合:
これは、ironic.conf
ファイルで誤った PXE ブートテンプレートを使用している可能性があることを示しています。
grep ^pxe_config_template ironic.conf
$ grep ^pxe_config_template ironic.conf
pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
デフォルトのテンプレートは ipxe_config.template
です。
8.2. ベアメタルノードの起動後のログインエラー リンクのコピーリンクがクリップボードにコピーされました!
ノードのコンソールのログインプロンプトで、設定手順中に設定した root
パスワードを使用してログインを試みてもログインできない場合には、デプロイしたイメージでブートしていないことを意味します。deploy-kernel/deploy-ramdisk
イメージにスタックしてしまって、システムが正しいイメージをまだ取得していない可能性があります。
この問題を修正するには、Compute または Bare Metal サービスノードの /httpboot/pxelinux.cfg/MAC_ADDRESS
にある PXE ブートの設定ファイルをチェックして、このファイルにリストされている全 IP アドレスがベアメタルネットワークの IP アドレスに対応していることを確認してください。
Bare Metal サービスノードが認識している唯一のネットワークはベアメタルネットワークです。エンドポイントの 1 つがこのネットワーク上にない場合には、そのエンドポイントはブートプロセスの一環として Bare Metal サービスノードに到達することはできません。
たとえば、ファイルの kernel の行は以下のようになります。
kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=pxe_ipmitool boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=pxe_ipmitool boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
上記の例の kernel 行の値 | 対応する情報 |
---|---|
http://192.168.200.2:8088 |
|
5a6cdbe3-2c90-4a90-b3c6-85b449b30512 |
|
deploy_kernel |
これは、 |
http://192.168.200.2:6385 |
|
pxe_impitool | このノードの Bare Metal サービスが使用している IPMI ドライバー |
deploy_ramdisk |
これは、 |
/httpboot/pxelinux.cfg/MAC_ADDRESS
と ironic.conf
ファイルの間で値が一致していない場合:
-
ironic.conf
ファイル内の値を更新します。 - Bare Metal サービスを再起動します。
- ベアメタルインスタンスを再デプロイします。
8.3. デプロイされたノードでの Boot-to-disk エラー リンクのコピーリンクがクリップボードにコピーされました!
特定のハードウェアでは、デプロイされたノードで問題が発生し、デプロイメントの一環としての以降のブート操作中にノードがディスクからブートできない可能性があります。これは通常、director がノードで要求する永続的なブート設定を BMC が反映しないために発生します。代わりに、ノードは PXE ターゲットからブートします。
この場合、ノードの BIOS でブート順序を更新する必要があります。HDD を最初のブートデバイスに設定し、次に PXE を非デフォルトのオプションに設定します。これにより、デフォルトではノードはディスクからブートし、必要に応じてイントロスペクションまたはデプロイメント時にネットワークからブートすることができます。
このエラーは、LegacyBIOS ファームウェアを使用するほとんどのノードに該当します。
8.4. Bare Metal サービスが正しいホスト名を取得しない リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal サービスが正しいホスト名を取得しない場合は、cloud-init
でエラーが発生していることを意味します。この問題を修正するには、ベアメタルのサブネットを OpenStack Networking サービス内のルーターに接続します。meta-data エージェントへの要求はこれで正しくルーティングされるようになるはずです。
8.5. Bare Metal サービスのコマンド実行時に OpenStack Identity サービスの認証情報が無効 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービスへの認証で問題がある場合には、ironic.conf
ファイルの identity_uri
パラメーターをチェックして、keystone
AdminURL から /v2.0
が削除されていることを確認してください。たとえば、identity_uri
は http://IP:PORT
に設定する必要があります。
8.6. ハードウェアの登録 リンクのコピーリンクがクリップボードにコピーされました!
ハードウェア登録での問題は、ノードの登録情報が誤っていることが原因となっている可能性があります。プロパティー名と値が正しく入力されていることを確認してください。プロパティー名に誤りやタイプミスがあってもノードの情報には正常に追加されますが、そのプロパティー名は無視されます。
ノードの情報を更新します。以下の例では、登録するノードのメモリー使用量を 2 GB に更新します。
openstack baremetal node set --property memory_mb=2048 NODE_UUID
$ openstack baremetal node set --property memory_mb=2048 NODE_UUID
8.7. No Valid Host エラー リンクのコピーリンクがクリップボードにコピーされました!
Compute スケジューラーがインスタンスを起動するのに適切なベアメタルノードを見つけられない場合、NoValidHost
エラーが /var/log/nova/nova-conductor.log に表示されるか、起動に失敗した直後に Dashboard に表示されます。通常これは、Compute が想定するリソースとベアメタルノードが提供するリソースが一致しないことが原因です。
利用可能なハイパーバイザーのリソースを確認します。
openstack hypervisor stats show
$ openstack hypervisor stats show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで返されるリソースは、Bare Metal が提供するリソースと一致する必要があります。
Compute がベアメタルノードをハイパーバイザーとして認識していることを確認します。
openstack hypervisor list
$ openstack hypervisor list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードは UUID で識別され、一覧に表示されるはずです。
ベアメタルノードの詳細を確認します。
openstack baremetal node list openstack baremetal node show NODE_UUID
$ openstack baremetal node list $ openstack baremetal node show NODE_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードの詳細が、Compute によって返された情報と一致することを確認します。
選択したフレーバーがベアメタルノードで利用可能なリソースを超えていないことを確認します。
openstack flavor show FLAVOR_NAME
$ openstack flavor show FLAVOR_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack baremetal node list の出力をチェックして、ベアメタルノードがメンテナンスモードに入っていないことを確認します。必要な場合には、メンテナンスモードを解除してください。
openstack baremetal node maintenance unset NODE_UUID
$ openstack baremetal node maintenance unset NODE_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack baremetal node list の出力をチェックして、ベアメタルノードが
available
の状態であることを確認します。必要な場合には、ノードをavailable
に切り替えます。openstack baremetal node provide NODE_UUID
$ openstack baremetal node provide NODE_UUID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
付録A Bare Metal のドライバー リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードは、Bare Metal サービスで有効にしたドライバーの 1 つを使用するように設定することができます。各ドライバーは、プロビジョニングメソッドと電源管理のタイプで構成されます。ドライバーによっては追加の設定が必要な場合があります。このセクションに記述された各ドライバーはプロビジョニングに PXE を使用します。ドライバーは電源管理タイプ別にリストされます。
ironic.yaml
ファイルの IronicEnabledDrivers
パラメーターを使用して、ドライバーを追加することができます。デフォルトでは、pxe_ipmitool
、pxe_drac
、および pxe_ilo
が有効です。
サポートされているプラグインとドライバーの全一覧は、「Component, Plug-In, and Driver Support in Red Hat OpenStack Platform」のアーティクルを参照してください。
A.1. Intelligent Platform Management Interface (IPMI) リンクのコピーリンクがクリップボードにコピーされました!
IPMI は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェースです。この電源管理タイプを使用するには、全 Bare Metal サービスノードで IPMI が共有ベアメタルネットワークに接続されている必要があります。pxe_ipmitool
ドライバーを有効にし、ノードの driver_info
に以下の情報を設定します。
-
ipmi_address
: IPMI NIC の IP アドレス -
ipmi_username
: IPMI のユーザー名 -
ipmi_password
: IPMI のパスワード
A.2. Dell Remote Access Controller (DRAC) リンクのコピーリンクがクリップボードにコピーされました!
DRAC は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェースです。この電源管理タイプを使用するには、全 Bare Metal サービスノードで DRAC が共有ベアメタルネットワークに接続されている必要があります。pxe_drac
ドライバーを有効にし、ノードの driver_info
に以下の情報を設定します。
-
drac_address
: DRAC NIC の IP アドレス -
drac_username
: DRAC のユーザー名 -
drac_password
: DRAC のパスワード
A.3. Integrated Remote Management Controller (iRMC) リンクのコピーリンクがクリップボードにコピーされました!
富士通の iRMC は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェースです。Bare Metal サービスノードでこの電源管理タイプを使用するには、このノードで iRMC インターフェースが共有ベアメタルネットワークに接続されている必要があります。pxe_irmc
ドライバーを有効にし、ノードの driver_info
に以下の情報を設定します。
-
irmc_address
: iRMC インターフェースの NIC の IP アドレス -
irmc_username
: iRMC のユーザー名 -
irmc_password
: iRMC のパスワード
IPMI を使用してブートモードを設定する場合、または SCCI を使用してセンサーデータを取得する場合には、追加で以下のステップを完了する必要があります。
ironic.conf でセンサーメソッドを有効にします。
openstack-config --set /etc/ironic/ironic.conf \ irmc sensor_method METHOD
$ openstack-config --set /etc/ironic/ironic.conf \ irmc sensor_method METHOD
Copy to Clipboard Copied! Toggle word wrap Toggle overflow METHOD は
scci
またはipmitool
に置き換えます。SCCI を有効にした場合は、python-scciclient パッケージをインストールします。
yum install python-scciclient
# yum install python-scciclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Conductor サービスを再起動します。
systemctl restart openstack-ironic-conductor.service
# systemctl restart openstack-ironic-conductor.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
iRMC ドライバーを使用するには、iRMC S4 以降が必要です。
A.4. Integrated Lights-Out (iLO) リンクのコピーリンクがクリップボードにコピーされました!
Hewlett-Packard の iLO は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェースです。この電源管理タイプを使用するには、全ベアメタルノードで iLO インターフェースが共有ベアメタルネットワークに接続されている必要があります。pxe_ilo
ドライバーを有効にし、ノードの driver_info
に以下の情報を設定します。
-
ilo_address
: iLO インターフェースの NIC の IP アドレス -
ilo_username
: iLO のユーザー名 -
ilo_password
: iLO のパスワード
python-proliantutils パッケージもインストールして、Bare Metal Conductor サービスを再起動する必要があります。
yum install python-proliantutils systemctl restart openstack-ironic-conductor.service
# yum install python-proliantutils
# systemctl restart openstack-ironic-conductor.service
A.5. SSH と virsh リンクのコピーリンクがクリップボードにコピーされました!
pxe_ssh
ドライバーは非推奨となっており、pxe_ipmitool
ドライバーを使用する VirtualBMC が推奨されています。
Bare Metal サービスは、libvirt を実行するホストにアクセスして、仮想マシンをノードとして使用することができます。virsh はノードの電源管理機能を制御します。
SSH ドライバーは、テストおよび評価の目的でのみ利用いただけます。Red Hat OpenStack Platform のエンタープライズ環境には推奨していません。
この電源管理タイプを使用するには、Bare Metal サービスは仮想ノードを設定するホスト上の libvirt 環境に完全にアクセス可能なアカウントに SSH でアクセスできる必要があります。pxe_ssh
ドライバーを有効にし、ノードの driver_info
に以下の情報を設定します。
-
ssh_virt_type
: このオプションはvirsh
に設定します。 -
ssh_address
: virsh ホストの IP アドレス -
ssh_username
: SSH ユーザー名 -
ssh_key_contents
: Bare Metal コンダクターノード上の SSH 秘密鍵の内容。対応する公開鍵が virsh ホストにコピーされている必要があります。
A.6. VirtualBMC リンクのコピーリンクがクリップボードにコピーされました!
VirtualBMC とは、仮想 Baseboard Management Controller (BMC) を作成することのできるユーティリティーです。仮想 BMC により、Intelligent Platform Management Interface (IPMI) プロトコルを使用して仮想マシンを物理マシンのように制御できます。
VirtualBMC は、テストおよび評価の目的でのみ利用いただけます。Red Hat OpenStack Platform のエンタープライズ環境には推奨していません。
仮想マシンをホストしているハイパーバイザーで VirtualBMC をインストールします。
yum install python-virtualbmc
# yum install python-virtualbmc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各仮想マシン用に BMC を作成します。
vbmc add DOMAIN --port PORT_NUMBER --username USERNAME --password PASSWORD
$ vbmc add DOMAIN --port PORT_NUMBER --username USERNAME --password PASSWORD
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想 BMC を起動します。
vbmc start DOMAIN
$ vbmc start DOMAIN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 仮想 BMC は自動的には起動しないので、ホストマシンをリブートした場合には、仮想 BMC を再起動することを忘れないようにしてください。
A.6.1. pxe_ssh から VirtualBMC への移行 リンクのコピーリンクがクリップボードにコピーされました!
pxe_ssh
ドライバーを使用する既存の仮想オーバークラウドがある場合には、仮想 BMC を使用して pxe_impitool
に移行することができます。
-
上記のステップに従って、
python-virtualbmc
をインストールし、各仮想マシン用の BMC を作成します。 pxe_impitool
が有効化されていることを確認してください (デフォルトでは有効化されます)。有効でない場合には、ironic.yaml
ファイルに追加し、openstack overcloud deploy
コマンドを再度実行して、変更を適用します。parameter_defaults: IronicEnabledDrivers: - pxe_ipmitool - pxe_drac - pxe_ilo
parameter_defaults: IronicEnabledDrivers: - pxe_ipmitool - pxe_drac - pxe_ilo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードで、ドライバーとドライバーのプロパティーを更新します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NODE は、ノードの名前または UUID に置き換えます。
- IP_ADDRESS は仮想ホストの IP アドレスに置き換えます。
- PORT は仮想 BMC ポートに置き換えます。
ノードが正しく更新されたことを確認します。
openstack baremetal node validate NODE | grep power
$ openstack baremetal node validate NODE | grep power
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - NODE は、ノードの名前または UUID に置き換えます。