Bare Metal Provisioning
Bare Metal Provisioning サービス (ironic) のインストールと設定
概要
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに対するご意見をお聞かせください。改善点などがあれば、ぜひお知らせください。
ドキュメント直接フィードバック (DDF) 機能の使用 (英語版のみ)
特定の文章、段落、またはコードブロックに対して直接コメントを送付するには、DDF の Add Feedback 機能を使用してください。なお、この機能は英語版のドキュメントでのみご利用いただけます。
- Multi-page HTML 形式でドキュメントを表示します。
- ドキュメントの右上隅に Feedback ボタンが表示されていることを確認してください。
- コメントするテキスト部分をハイライト表示します。
- Add Feedback をクリックします。
- Add Feedback フィールドにコメントを入力します。
- (オプション) ご自身のメールアドレスを追加してください。ドキュメントチームが問題の詳細を確認するために連絡を取ることがあります。
- Submit をクリックします。
第1章 Bare Metal Provisioning サービス (ironic) の機能 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) コンポーネントを使用して、クラウドユーザーのベアメタルインスタンスとして物理マシンをプロビジョニングおよび管理します。ベアメタルインスタンスをプロビジョニングおよび管理するために、Bare Metal Provisioning サービスは、オーバークラウド内の次の Red Hat OpenStack Platform (RHOSP) サービスと対話します。
- Compute サービス (nova) は、仮想マシンインスタンス管理用のスケジューリング、テナントクォータ、およびユーザー向け API を提供します。Bare Metal Provisioning サービスは、ハードウェア管理用の管理 API を提供します。
- Identity サービス (keystone) は、要求認証を提供し、Bare Metal Provisioning サービスが他の RHOSP サービスを見つけることを支援します。
- Image サービス (glance) は、ディスクとインスタンスのイメージおよびイメージメタデータを管理します。
- Networking サービス (neutron) は、DHCP とネットワーク設定を提供し、インスタンスが起動時に接続する仮想ネットワークまたは物理ネットワークをプロビジョニングします。
- Object Storage サービス (swift) は、一部のドライバーの一時的なイメージ URL を公開します。
Bare Metal Provisioning サービスコンポーネント
Bare Metal Provisioning サービスは、ironic-* という名前のサービスで設定されています。以下のサービスは、コア Bare Metal Provisioning サービスになります。
- Bare Metal Provisioning API (
ironic-api) - このサービスは、ユーザーに外部 REST API を提供します。API は、リモートプロシージャコール (RPC) を介して Bare Metal Provisioning コンダクターにアプリケーション要求を送信します。
- Bare Metal Provisioning コンダクター (
ironic-conductor) このサービスは、ドライバーを使用して以下のベアメタルノード管理タスクを実行します。
- ベアメタルノードを追加、編集、および削除します。
- IPMI、Redfish、またはその他のベンダー固有のプロトコルを使用して、ベアメタルノードの電源をオン/オフにします。
- ベアメタルノードをプロビジョニング、デプロイ、およびクリーニングします。
- Bare Metal Provisioning インスペクター (
ironic-inspector) - このサービスは、ベアメタルインスタンスのスケジューリングに必要なベアメタルノードのハードウェアプロパティーを検出し、検出されたイーサネット MAC 用の Bare Metal Provisioning サービスポートを作成します。
- Bare Metal Provisioning データベース
- このデータベースは、ハードウェア情報と状態を追跡します。
- メッセージキュー
-
すべてのサービスは、このメッセージングサービスを使用して、
ironic-apiとironic-conductor間の RPC の実装を含め、相互に通信します。 - Bare Metal Provisioning エージェント (
ironic-python-agent) -
このサービスは一時的な RAM ディスクで実行され、
ironic-conductorサービスおよびironic-inspectorサービスにリモートアクセス、帯域内ハードウェア制御、およびハードウェアイントロスペクションを提供します。
ベアメタルインスタンスのプロビジョニング
Bare Metal Provisioning サービスは iPXE を使用して、物理マシンをベアメタルインスタンスとしてプロビジョニングします。以下の図は、クラウドユーザーがデフォルトのドライバーを使用して新しいベアメタルインスタンスを起動したときに、プロビジョニングプロセス中に RHOSP サービスがどのように相互作用するかを示しています。
第2章 Bare Metal Provisioning の要件 リンクのコピーリンクがクリップボードにコピーされました!
クラウドユーザーがベアメタルインスタンスを起動できるオーバークラウドを提供するには、Red Hat OpenStack Platform (RHOSP) 環境に必要なハードウェアとネットワーク設定が必要です。
2.1. ハードウェア要件 リンクのコピーリンクがクリップボードにコピーされました!
プロビジョニングのためにクラウドユーザーが利用できるベアメタルマシンのハードウェア要件は、オペレーティングシステムによって異なります。Red Hat Enterprise Linux インストールのハードウェア要件の詳細は、Product Documentation for Red Hat Enterprise Linux を参照してください。
プロビジョニングのためにクラウドユーザーが利用できるベアメタルマシンには、以下の機能が必要です。
- ベアメタルネットワークに接続するための NIC 1 つ。
-
ironic-conductorサービスから到達可能なネットワークに接続された電源管理インターフェイス (例: Redfish または IPMI)。コンポーザブルロールを使用してironic-conductorを別の場所で実行する場合以外は、デフォルトではironic-conductorは全コントローラーノード上で実行されます。 - ベアメタルネットワーク上での PXE ブート。デプロイメント内のその他すべての NIC については PXE ブートを無効にしてください。
2.2. ネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルネットワークは、Bare Metal Provisioning サービスが以下の操作に使用するためにプライベートネットワークである必要があります。
- オーバークラウド上のベアメタルマシンのプロビジョニングと管理。
- ノードがプロビジョニングされていない場合のベアメタルノードのクリーニング。
- ベアメタルマシンへのテナントアクセス。
ベアメタルネットワークは、ベアメタルシステムを検出するための DHCP および PXE ブートの機能を提供します。このネットワークは、Bare Metal Provisioning サービスが PXE ブートと DHCP 要求に対応できるように、トランキングされたインターフェイスでネイティブの VLAN を使用する必要があります。
ベアメタルマシンは Red Hat OpenStack Platform (RHOSP) 環境のコントロールプレーンネットワークに直接アクセスできるため、オーバークラウドの Bare Metal Provisioning サービスは、信頼できるテナント環境向けに設計されています。したがって、デフォルトのベアメタルネットワークは、ironic-conductor サービスにフラットネットワークを使用します。
デフォルトのフラットプロビジョニングネットワークは、テナントがコントロールプレーンネットワークに干渉する可能性があるため、お客様の環境にセキュリティー上の懸念をもたらす可能性があります。このリスクを避けるために、コントロールプレーンにアクセスできない Bare Metal Provisioning サービス用に、カスタムの設定可能なベアメタルプロビジョニングネットワークを設定できます。
ベアメタルネットワークは、プロビジョニングのためにタグ付けされていない必要があり、Bare Metal Provisioning API にもアクセスできる必要があります。コントロールプレーンネットワーク (別名: director のプロビジョニングネットワーク) は常にタグなしです。その他のネットワークはタグ付けすることができます。
Bare Metal Provisioning サービスをホストするコントローラーノードは、ベアメタルネットワークにアクセス可能である必要があります。
ベアメタルマシンが PXE ブートするように設定されている NIC は、ベアメタルネットワークにアクセスできる必要があります。
ベアメタルネットワークは、OpenStack のオペレーターが作成します。クラウドユーザーは、パブリック OpenStackAPI とベアメタルネットワークに直接アクセスできます。デフォルトのフラットベアメタルネットワークでは、クラウドユーザーはコントロールプレーンに間接的にアクセスすることもできます。
Bare Metal Provisioning サービスは、ノードのクリーニングにベアメタルネットワークを使用します。
2.2.1. デフォルトのベアメタルネットワーク リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Bare Metal Provisioning サービスのデプロイメントアーキテクチャーでは、ベアメタルネットワークはコントロールプレーンネットワークから分離されています。ベアメタルネットワークは、テナントネットワークとしても機能するフラットネットワークです。このネットワークは、director プロビジョニングネットワークと呼ばれる、コントロールプレーン上の Bare Metal Provisioning サービスにルーティングする必要があります。分離したベアメタルネットワークを定義すると、ベアメタルノードは PXE ブートすることができません。
デフォルトのベアメタルネットワークアーキテクチャー図
2.2.2. カスタムコンポーザブルベアメタルネットワーク リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービスのデプロイメントアーキテクチャーで、カスタムコンポーザブルベアメタルネットワークを使用する場合、ベアメタルネットワークは、コントロールプレーンにアクセスできないカスタムコンポーザブルネットワークです。コントロールプレーンへのアクセスを制限する場合は、カスタムの設定可能なベアメタルネットワークを使用します。
第3章 Bare Metal Provisioning サービスを有効にしたオーバークラウドのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) を使用してオーバークラウドをデプロイするには、ベアメタルネットワークを作成して設定し、ベアメタルプロビジョニングを有効にするようにオーバークラウドを設定する必要があります。
ベアメタルネットワークを作成します。コントローラーノードでプロビジョニングネットワークインターフェイスを再利用してフラットネットワークを作成するか、カスタムネットワークを作成できます。
Bare Metal Provisioning を有効化するようにオーバークラウドを設定します。
Open Virtual Network (OVN) を使用する場合、Bare Metal Provisioning サービスは、ironic-overcloud.yaml ファイルで定義されている DHCP エージェント neutron-dhcp-agent でのみサポートされます。OVN の組み込まれている DHCP サーバーは、ベアメタルノードをプロビジョニングしたり、プロビジョニングネットワークに DHCP を提供したりすることはできません。iPXE チェーンロードを有効にするには、dnsmasq で --dhcp-match タグを設定する必要があります。これは、OVN DHCP サーバーではサポートされていません。
前提条件
- お使いの環境が最小要件を満たしていること。詳細は、Requirements for bare metal provisioning を参照してください。
3.1. デフォルトのフラットネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのフラットベアメタルネットワークを使用するには、コントローラーノードのプロビジョニングネットワークインターフェイスを再利用して、Bare Metal Provisioning サービス (ironic) のブリッジを作成します。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow /home/stack/templates/nic-configs/controller.yamlファイルを変更して、コントローラーノードeth1のプロビジョニングネットワークインターフェイスを再利用し、ベアメタルネットワークのブリッジを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記プロビジョニングネットワークを再利用してベアメタルネットワークを作成するときに、VLAN タグを付けることはできません。
network-environment.yamlファイルのNeutronBridgeMappingsパラメーターにbr-baremetalを追加します。parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow network-environment.yamlファイルのNeutronFlatNetworksパラメーターで指定されたネットワークのリストにbaremetalを追加します。parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetal
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. カスタムの IPv4 プロビジョニングネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
カスタムの IPv4 プロビジョニングネットワークを作成し、IPv4 を介してオーバークラウドをプロビジョニングおよびデプロイします。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow network_data.yamlファイルを環境ファイルディレクトリーにコピーします。cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドプロビジョニング用の新しいネットワークを
network_data.yamlファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ipv4_subnet_address>を IPv4 サブネットの IPv4 アドレスに置き換えます。 -
<ipv4_mask>を IPv4 サブネットの IPv4 ネットワークマスクに置き換えます。 -
<ipv4_start_address>と<ipv4_end_address>は、アドレス割り当てに使用する IPv4 範囲に置き換えます。
-
新しい IPv4 プロビジョニングネットワークを使用するには、
ServiceNetMap設定でIronicApiNetworkとIronicNetworkを設定します。ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioningCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいネットワークをインターフェイスとして、ローカルコントローラー NIC 設定ファイルに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roles_data.yamlファイルを環境ファイルディレクトリーにコピーします。cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーの新しいネットワークを
roles_data.yamlファイルに追加します。networks: ... OcProvisioning: subnet: oc_provisioning_subnetnetworks: ... OcProvisioning: subnet: oc_provisioning_subnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow IronicInspectorサービスがまだ存在しない場合は、roles_data.yamlファイル内のIronicロールに含めます。ServicesDefault: OS::TripleO::Services::IronicInspector
ServicesDefault: OS::TripleO::Services::IronicInspectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. カスタムの IPv6 プロビジョニングネットワークの設定 リンクのコピーリンクがクリップボードにコピーされました!
カスタムの IPv6 プロビジョニングネットワークを作成し、IPv6 を使用してオーバークラウドのプロビジョニングとデプロイを行います。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 stackrcファイルを取得します。source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow network_data.yamlファイルを環境ファイルディレクトリーにコピーします。cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドプロビジョニング用の新しい IPv6 ネットワークを
network_data.yamlファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ipv6_subnet_address>は、IPv6 サブネットの IPv6 アドレスに置き換えます。 -
<ipv6_prefix>は、IPv6 サブネットの IPv6 ネットワーク接頭辞に置き換えます。 -
<ipv6_start_address>と<ipv6_end_address>は、アドレス割り当てに使用する IPv6 範囲に置き換えます。 -
<ipv6_gw_address>は、ゲートウェイの IPv6 アドレスに置き換えます。
-
環境ファイルディレクトリーに新しいファイル
network_environment_overrides.yamlを作成します。touch /home/stack/templates/network_environment_overrides.yaml
$ touch /home/stack/templates/network_environment_overrides.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい IPv6 プロビジョニングネットワークを使用するには、
network_environment_overrides.yamlファイルでIronicApiNetworkとIronicNetworkを設定します。ServiceNetMap: IronicApiNetwork: oc_provisioning_ipv6 IronicNetwork: oc_provisioning_ipv6
ServiceNetMap: IronicApiNetwork: oc_provisioning_ipv6 IronicNetwork: oc_provisioning_ipv6Copy to Clipboard Copied! Toggle word wrap Toggle overflow IronicIpVersionパラメーターを6に設定します。parameter_defaults: IronicIpVersion: 6
parameter_defaults: IronicIpVersion: 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow RabbitIPv6、MysqlIPv6、およびRedisIPv6の各パラメーターを有効化します。parameter_defaults: RabbitIPv6: True MysqlIPv6: True RedisIPv6: True
parameter_defaults: RabbitIPv6: True MysqlIPv6: True RedisIPv6: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいネットワークをインターフェイスとして、ローカルコントローラー NIC 設定ファイルに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roles_data.yamlファイルを環境ファイルディレクトリーにコピーします。cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーロールの新しいネットワークを
roles_data.yamlファイルに追加します。networks: ... - OcProvisioningIPv6
networks: ... - OcProvisioningIPv6Copy to Clipboard Copied! Toggle word wrap Toggle overflow IronicInspectorサービスがまだ存在しない場合は、roles_data.yamlファイル内のIronicロールに含めます。ServicesDefault: OS::TripleO::Services::IronicInspector
ServicesDefault: OS::TripleO::Services::IronicInspectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Bare Metal Provisioning を有効化するようにオーバークラウドを設定する リンクのコピーリンクがクリップボードにコピーされました!
/usr/share/openstack-tripleo-heat-templates/environments/services ディレクトリーにあるデフォルトのテンプレートの 1 つを使用して、Bare Metal Provisioning サービス (ironic) を有効にして、オーバークラウドをデプロイします。
-
OVS を使用するデプロイメントの場合:
ironic.yaml -
OVN を使用するデプロイの場合:
ironic-overcloud.yaml
デプロイメントの必要に応じて、ローカル環境ファイルを作成して、デフォルトの設定をオーバーライドできます。
手順
-
デプロイメント用に Bare Metal Provisioning サービスを設定する環境ファイル (例:
ironic-overrides.yaml) をローカルディレクトリーに作成します。 オプション: プロビジョニングの前およびプロビジョニングの間にベアメタルマシンで実行されるクリーニングのタイプを設定します。
parameter_defaults: IronicCleaningDiskErase: <cleaning_type>
parameter_defaults: IronicCleaningDiskErase: <cleaning_type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <cleaning_type>を次のいずれかの値に置き換えます。-
full:(デフォルト) フルクリーンアップを実行します。 -
metadata: パーティションテーブルのみをクリーンアップします。このタイプの洗浄は、クリーニングプロセスを大幅にスピードアップします。ただし、マルチテナント環境ではデプロイメントのセキュリティーレベルが低くなるため、信頼済みのテナント環境でのみこのオプションを使用します。
-
オプション: デフォルトのドライバーにドライバーを追加します。
parameter_defaults: IronicEnabledHardwareTypes: ipmi,idrac,ilo,[additional_driver_1],...,[additional_driver_n]
parameter_defaults: IronicEnabledHardwareTypes: ipmi,idrac,ilo,[additional_driver_1],...,[additional_driver_n]Copy to Clipboard Copied! Toggle word wrap Toggle overflow [additional_driver_1]およびオプションで[additional_driver_n]までのすべてのドライバーは、有効にする追加のドライバーに置き換えます。ベアメタルイントロスペクションを有効にするには、次の設定をローカルの Bare Metal Provisioning サービス環境ファイル
ironic-overrides.yamlに追加します。parameter_defaults: IronicInspectorSubnets: - ip_range: <ip_range> IPAImageURLs: '["http://<ip_address>:<port>/agent.kernel", "http://<ip_address>:<port>/agent.ramdisk"]' IronicInspectorInterface: '<baremetal_interface>'parameter_defaults: IronicInspectorSubnets: - ip_range: <ip_range> IPAImageURLs: '["http://<ip_address>:<port>/agent.kernel", "http://<ip_address>:<port>/agent.ramdisk"]' IronicInspectorInterface: '<baremetal_interface>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ip_range>を環境の IP 範囲に置き換えます (例:192.168.0.100,192.168.0.120)。 -
<ip_address>:<port>は、IPA カーネルと RAM ディスクをホストする Web サーバーの IP アドレスとポートに置き換えます。アンダークラウドで使用するのと同じイメージを使用するには、IP アドレスをアンダークラウドの IP アドレスに設定し、ポートを8088に設定します。このパラメーターを省略する場合は、各コントローラーノードに代替のパラメーターを含める必要があります。 -
<baremetal_interface>をベアメタルネットワークインターフェイス (br-baremetalなど) に置き換えます。
-
新しいロールとカスタム環境ファイルを他の環境ファイルと一緒にスタックに追加し、オーバークラウドをデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
<default_ironic_template>をironic.yamlまたはironic-overcloud.yamlのいずれかに置き換えます。
注記環境ファイルを
openstack overcloud deployコマンドに渡す順序は重要です。これは、後のファイルの設定が優先されるためです。したがって、オーバークラウドで Bare Metal Provisioning を有効にして設定する環境ファイルは、ネットワーク設定ファイルの後にコマンドに渡す必要があります。-
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
3.5. Bare Metal Provisioning サービスのテスト リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Integration Test Suite を使用して、Red Hat OpenStack デプロイメントを検証することができます。詳細は、OpenStack Integration Test Suite Guide を参照してください。
Bare Metal Provisioning サービスの追加検証方法:
Identity に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrcCopy 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 StatusCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトの ironic ドライバーを変更した場合には、必要なドライバーを必ず有効にしてください。
openstack baremetal driver list
$ openstack baremetal driver listCopy to Clipboard Copied! Toggle word wrap Toggle overflow ironic のエンドポイントがリストされていることを確認します。
openstack catalog list
$ openstack catalog listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- director のインストールと使用 ガイドの デプロイコマンドオプション
- オーバークラウドの IPv6 ネットワーク
- Overcloud Parameters ガイドの Bare Metal (ironic) Parameters
第4章 デプロイ後の Bare Metal Provisioning サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) を使用して、オーバークラウドをデプロイしたら、ベアメタルワークロード用にオーバークラウドを準備する必要があります。ベアメタルワークロード用にオーバークラウドを準備し、クラウドユーザーがベアメタルインスタンスを作成できるようにするには、以下のタスクを完了します。
- Bare Metal Provisioning サービスと統合するように、Networking サービス (neutron) を設定します。
- ノードのクリーニングの設定
- ベアメタルフレーバーとリソースクラスを作成します。
- オプション:ベアメタルイメージを作成します。
- 物理マシンをベアメタルノードとして追加します。
- オプション:Redfish 仮想メディアブートを設定します。
- ホストアグリゲートを作成して、物理マシンと仮想マシンのプロビジョニングを分離します。
4.1. ベアメタルプロビジョニング用の Networking サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) と統合するように、Networking サービス (neutron) を設定できます。次のいずれかの方法を使用して、ベアメタルネットワークを設定できます。
-
Bare Metal Provisioning のコンダクターサービスである
ironic-conductor用に 1 つのフラットベアメタルネットワークを作成します。このネットワークは、コントロールプレーンネットワーク上の Bare Metal Provisioning サービスにルーティングする必要があります。 - カスタムのコンポーザブルネットワークを作成して、オーバークラウドに Bare Metal Provisioning サービスを実装します。
4.1.1. フラットなネットワークで Bare Metal Provisioning サービスと統合するための Networking サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning コンダクターサービスの 1 つのフラットベアメタルネットワークである ironic-conductor を作成して、Bare Metal Provisioning サービス (ironic) と統合するように、Networking サービス (neutron) を設定できます。このネットワークは、コントロールプレーンネットワーク上の Bare Metal Provisioning サービスにルーティングする必要があります。
手順
-
Networking サービス (neutron) をホスティングするノードに
rootユーザーとしてログインします。 オーバークラウド認証情報ファイルを入手します。
source ~/<credentials_file>
# source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
ベアメタルインスタンスをプロビジョニングするフラットネットワークを作成します。
openstack network create \ --provider-network-type flat \ --provider-physical-network <provider_physical_network> \ --share <network_name>
# openstack network create \ --provider-network-type flat \ --provider-physical-network <provider_physical_network> \ --share <network_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<provider_physical_network>を仮想ネットワークを実装する物理ネットワークの名前に置き換えます。これは、network-environment.yamlファイルのパラメーターNeutronBridgeMappingsで設定されます。 -
<network_name>をこのネットワークの名前に置き換えます。
-
フラットネットワーク上にサブネットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<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>をフローティング IP アドレスが割り当てられる新しいサブネット内の IP アドレス範囲の開始を示す IP アドレスに置き換えます。 -
<end_ip>をフローティング IP アドレスが割り当てられる新しいサブネット内の IP アドレスの範囲の終了を示す IP アドレスに置き換えます。 -
<subnet_name>をサブネットの名前に置き換えます。
-
ネットワーキングサービスがメタデータリクエストを確実に処理するように、ネットワークとサブネット用のルーターを作成します。
openstack router create <router_name>
# openstack router create <router_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<router_name>をルーターの名前に置き換えます。
-
cloud-initからのメタデータリクエストを処理し、ノードを設定できるように、サブネットを新しいルーターに接続します。openstack router add subnet <router_name> <subnet>
# openstack router add subnet <router_name> <subnet>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<router_name>をルーターの名前に置き換えます。 -
<subnet>を手順 4 で作成したベアメタルサブネットの ID または名前に置き換えます。
-
4.1.2. カスタムコンポーザブルネットワーク上の Bare Metal Provisioning サービスと統合するための Networking サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドに Bare Metal Provisioning サービスを実装するためのカスタムコンポーザブルネットワークを作成して、Bare Metal Provisioning サービス (ironic) と統合するように、Networking サービス (neutron) を設定できます。
手順
- アンダークラウドのホストにログインします。
オーバークラウド認証情報ファイルを入手します。
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
Bare Metal Provisioning サービスをホスティングするプロバイダーネットワークの UUID を取得します。
openstack network show <network_name> -f value -c id
(overcloud)$ openstack network show <network_name> -f value -c idCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<network_name>をベアメタルインスタンスプロビジョニングネットワークに使用するプロバイダーネットワークの名前に置き換えます。
-
-
デプロイメント用の Bare Metal Provisioning サービスを設定するローカル環境ファイル (例:
ironic-overrides.yaml) を開きます。 ベアメタルインスタンスのプロビジョニングネットワークとして使用するネットワークを設定します。
parameter_defaults: IronicProvisioningNetwork: <network_uuid>
parameter_defaults: IronicProvisioningNetwork: <network_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<network_uuid>を手順 3 で取得したプロバイダーネットワークの UUID に置き換えます。
-
stackrcアンダークラウド認証情報ファイルを入手します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルインスタンスのプロビジョニングネットワーク設定を適用するには、ベアメタルプロビジョニング環境ファイルを他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
<default_ironic_template>をironic.yamlまたはironic-overcloud.yamlのいずれかに置き換えます。
-
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
4.2. ベアメタルノードのクリーニング リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービスは、ノードをクリーニングして、プロビジョニングの準備をします。次のいずれかの方法を使用して、ベアメタルノードをクリーニングできます。
- ノードをプロビジョニング解除する際、ノードクリーニングを自動的に実行するように、オーバークラウドを設定できます。
- 必要に応じて、個別のノードを手動でクリーニングできます。
4.2.1. 自動ノードクリーニングの設定 リンクのコピーリンクがクリップボードにコピーされました!
自動ベアメタルノードクリーニングは、ノードを登録した後、ノードがプロビジョニング状態 available に達する前に、実行されます。ノードがプロビジョニング解除されるたびに、自動クリーニングが実行されます。
デフォルトでは、Bare Metal Provisioning サービスは、ノードのクリーニングに provisioning という名前のネットワークを使用します。ただし、Networking サービス (neutron) では、ネットワーク名は一意ではないため、プロジェクトが同じ名前のネットワークを作成する可能性があり、Bare Metal Provisioning サービスとの競合が発生します。競合を回避するには、ネットワーク UUID を使用して、ノードクリーニングネットワークを設定します。
手順
- アンダークラウドのホストにログインします。
オーバークラウド認証情報ファイルを入手します。
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
Bare Metal Provisioning サービスをホスティングするプロバイダーネットワークの UUID を取得します。
openstack network show <network_name> -f value -c id
(overcloud)$ openstack network show <network_name> -f value -c idCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<network_name>をベアメタルノードのクリーニングネットワークに使用するネットワークの名前に置き換えます。
-
-
デプロイメント用の Bare Metal Provisioning サービスを設定するローカル環境ファイル (例:
ironic-overrides.yaml) を開きます。 ノードクリーニングネットワークとして使用するネットワークを設定します。
parameter_defaults: IronicCleaningNetwork: <network_uuid>
parameter_defaults: IronicCleaningNetwork: <network_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<network_uuid>を手順 3 で取得したプロバイダーネットワークの UUID に置き換えます。
-
stackrcアンダークラウド認証情報ファイルを入手します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードクリーニングネットワーク設定を適用するには、Bare Metal Provisioning 環境ファイルを他の環境ファイルとともにスタックに追加し、オーバークラウドをデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
<default_ironic_template>をironic.yamlまたはironic-overcloud.yamlのいずれかに置き換えます。
-
デプロイメントのネットワークサービスメカニズムドライバーに応じて、
4.2.2. ノードの手動によるクリーニング リンクのコピーリンクがクリップボードにコピーされました!
必要に応じて、特定のノードを手動でクリーニングできます。ノードのクリーニングには 2 つのモードがあります。
- メタデータのみのクリーニング:ノード上のすべてのディスクからパーティションを削除します。メタデータのみのクリーニングモードは、完全なクリーニングより高速ですが、パーティションテーブルのみを消去するため、セキュリティは低くなります。このモードは、信頼済みのテナント環境でのみ使用してください。
- 完全なクリーニング: ATA のセキュア消去を使用するか、細断処理を行って、全ディスクから全データを削除します。完全なクリーニングが完了するまでは、数時間かかる場合があります。
手順
オーバークラウド認証情報ファイルを入手します。
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
ノードの現在の状態を確認します。
openstack baremetal node show \ -f value -c provision_state <node>
$ openstack baremetal node show \ -f value -c provision_state <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をクリーニングするノードの名前または UUID に置き換えます。
-
ノードが
manageable状態ではない場合は、manageableに設定します。openstack baremetal node manage <node>
$ openstack baremetal node manage <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをクリーニングします。
openstack baremetal node clean <node> \ --clean-steps '[{"interface": "deploy", "step": "<clean_mode>"}]'$ openstack baremetal node clean <node> \ --clean-steps '[{"interface": "deploy", "step": "<clean_mode>"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をクリーニングするノードの名前または UUID に置き換えます。 <clean_mode>をノードで実行するクリーニングのタイプに置き換えます。-
erase_devices: 完全なクリーニングを実行します。 -
erase_devices_metadata: メタデータのみをクリーンアップします。
-
-
クリーニングが完了するまで待ってから、ノードのステータスを確認します。
-
管理可能: クリーニングが成功し、ノードのプロビジョニングの準備が整いました。 -
clean failed: The clean was failed.失敗の原因については、last_errorフィールドを調べてください。
-
4.3. ベアメタルフレーバーとリソースクラスの作成 リンクのコピーリンクがクリップボードにコピーされました!
特定のワークロードのベアメタルノードにタグを付けるために使用するフレーバーとリソースクラスを作成する必要があります。
手順
source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルノードの新しいインスタンスフレーバーを作成します。
openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> baremetal
(overcloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ram_size_mb>をベアメタルノードの RAM (MB 単位) に置き換えます。 -
<disk_size_gb>をベアメタルノード上のディスク容量 (GB 単位) に置き換えます。 <no_vcpus>をベアメタルノードの CPU 数に置き換えます。注記これらの属性は、インスタンスのスケジューリングには使用されません。ただし Compute スケジューラーは、ディスク容量を使用してルートパーティションのサイズを決定します。
-
ノード一覧を取得して UUID を把握します。
openstack baremetal node list
(overcloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各ベアメタルノードにカスタムベアメタルリソースクラスのタグを付けます。
openstack baremetal node set \ --resource-class baremetal.<CUSTOM> <node>
(overcloud)$ openstack baremetal node set \ --resource-class baremetal.<CUSTOM> <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<CUSTOM>は、リソースクラスの目的を識別する文字列に置き換えます。たとえば、GPUに設定して、GPU ワークロード用に指定するベアメタルノードにタグを付けるために使用できるカスタム GPU リソースクラスを作成します。 -
<node>をベアメタルノードの ID に置き換えてください。
-
ベアメタルノードの新しいインスタンスフレーバーをカスタムリソースクラスに関連付けます。
openstack flavor set \ --property resources:CUSTOM_BAREMETAL_<CUSTOM>=1 \ baremetal
(overcloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_<CUSTOM>=1 \ baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal サービスノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、それぞれの句読点をアンダースコアに置き換え、
CUSTOM_の接頭辞を追加します。注記フレーバーが要求できるのは、ベアメタルリソースクラスの 1 つのインスタンスだけです。
以下のフレーバー属性を設定して、Compute スケジューラーがインスタンスのスケジューリングにベアメタルフレーバー属性を使用するのを防ぎます。
openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 baremetal
(overcloud)$ openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規フレーバーの値が正しいことを確認します。
openstack flavor list
(overcloud)$ openstack flavor listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. ベアメタルイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) が含まれるオーバークラウドには、2 つのイメージセットが必要です。デプロイメント時に、Bare Metal Provisioning サービスはデプロイイメージからベアメタルノードをブートし、ユーザーイメージをノードにコピーします。
- デプロイイメージ
-
Bare Metal Provisioning サービスはデプロイイメージを使用して、ベアメタルノードをブートしてユーザーイメージをベアメタルノードにコピーします。デプロイイメージは、
カーネルイメージとramdiskイメージで設定されます。 - ユーザーイメージ
ユーザーイメージは、ベアメタルノードにデプロイするイメージです。ユーザーイメージにも
カーネルイメージとramdiskイメージが含まれますが、追加でメインイメージも含まれます。メインイメージは、ルートパーティションイメージまたは完全なディスクイメージのいずれかです。- 完全なディスクイメージ は、パーティションテーブルとブートローダーを含むイメージです。完全なディスクイメージを使用してデプロイされたノードはローカルブートをサポートするので、Bare Metal Provisioning サービスはデプロイ後のノードのリブートは制御しません。
- ルートパーティションイメージ には、オペレーティングシステムのルートパーティションのみが含まれています。ルートパーティションを使用する場合には、デプロイイメージが Image サービスに読み込まれた後に、ノードのプロパティーにデプロイイメージをノードのブートイメージとして設定することができます。デプロイ後のノードのリブートでは、netboot を使用してユーザーイメージがプルダウンされます。
本項に記載する例では、ルートパーティションイメージを使用してベアメタルノードをプロビジョニングします。
4.4.1. デプロイイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
デプロイイメージを作成する必要はありません。アンダークラウドによるオーバークラウドのデプロイ時に、すでにデプロイイメージが作成されているためです。デプロイイメージは、以下に示したように、カーネルイメージと 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 ファイル内にあります。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
イメージを抽出して Image サービスにアップロードします。
4.4.2. ユーザーイメージの準備 リンクのコピーリンクがクリップボードにコピーされました!
最後に必要となるイメージは、ベアメタルノードにデプロイするユーザーイメージです。ユーザーイメージには、カーネルイメージと ramdisk イメージに加えて、メインイメージが含まれます。これらのパッケージをダウンロードしてインストールするには、まずご自分の要件に合わせて完全なディスクイメージの環境変数を設定する必要があります。
4.4.3. ユーザーイメージのインストール リンクのコピーリンクがクリップボードにコピーされました!
ユーザーイメージを設定してから、Image サービス (glance) にイメージをアップロードします。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
- カスタマーポータル から Red Hat Enterprise Linux KVM ゲストイメージをダウンロードします。
DIB_LOCAL_IMAGEをダウンロードしたイメージとして定義します。export DIB_LOCAL_IMAGE=rhel-8.0-x86_64-kvm.qcow2
$ export DIB_LOCAL_IMAGE=rhel-8.0-x86_64-kvm.qcow2Copy 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ツールを使用してユーザーイメージを作成します。export DIB_RELEASE=8 disk-image-create rhel baremetal -o rhel-image
$ export DIB_RELEASE=8 $ disk-image-create rhel baremetal -o rhel-imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、カーネルは
rhel-image.vmlinuzとして、初期 ramdisk はrhel-image.initrdとして、それぞれ抽出されます。イメージを Image サービスにアップロードします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. ベアメタルノードとしての物理マシンの追加 リンクのコピーリンクがクリップボードにコピーされました!
次のいずれかの方法を使用して、ベアメタルノードを登録します。
- ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal Provisioning サービスにインポートしてノードを利用できるようにします。
-
物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、
overcloudrcファイルがある任意のノードで実行できます。
4.5.1. インベントリーファイルを使用したベアメタルノードの登録 リンクのコピーリンクがクリップボードにコピーされました!
ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal Provisioning サービス (ironic) にインポートしてノードを利用できるようにします。
前提条件
- Bare Metal Provisioning サービスを含むオーバークラウドのデプロイメント。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
ノードの詳細を含むインベントリーファイル
overcloud-nodes.yamlを作成します。1 つのファイルで複数のノードを登録することが可能です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<ipmi_ip>は、Bare Metal コントローラーのアドレスに置き換えます。 -
<user>は、自分のユーザー名に置き換えます。 -
<password>は、自分のパスワードに置き換えます。 -
<property>: <value>を設定する IPMI プロパティーとプロパティー値に置き換えます。使用可能なプロパティーについては、Intelligent Platform Management Interface (IPMI) 電源管理ドライバー を参照してください。 -
<cpu_count>は、CPU の数に置き換えます。 -
<cpu_arch>は、CPU のアーキテクチャーのタイプに置き換えます。 -
<memory>は、メモリー容量 (MiB 単位) に置き換えます。 -
<root_disk>は、root ディスクの容量 (GiB 単位) に置き換えます。マシンに複数のディスクがある場合にのみ必要です。 -
<serial>は、デプロイメントに使用するディスクのシリアル番号に置き換えます。 -
<mac_address>は、PXE ブートに使用する NIC の MAC アドレスに置き換えます。 - --driver-info <property>=<value>
-
source コマンドで
overcloudrcファイルを読み込みます。source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを BareMetalProvisioning サービスにインポートします。
openstack baremetal create overcloud-nodes.yaml
$ openstack baremetal create overcloud-nodes.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、ノードは
enrollの状態となります。各ノードでデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>
$ openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>は、ノードの名前または ID に置き換えます。 -
<kernel_file>を.kernelイメージへのパス (例:file:///var/lib/ironic/httpboot/agent.kernel) に置き換えます。 -
<initramfs_file>は、.initramfsイメージへのパス (例:file:///var/lib/ironic/httpboot/agent.ramdisk) に置き換えます。
-
オプション: 各ノードの IPMI 暗号スイートを指定します。
openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>は、ノードの名前または ID に置き換えます。 <version>は、ノードで使用する暗号スイートのバージョンに置き換えます。以下の有効な値のいずれかに設定します。-
3- ノードは SHA1 暗号スイートで AES-128 を使用します。 -
17- ノードは SHA256 暗号スイートで AES-128 を使用します。
-
-
ノードのプロビジョニング状態を
availableに設定します。openstack baremetal node manage <node> openstack baremetal node provide <node>
$ openstack baremetal node manage <node> $ openstack baremetal node provide <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードのクリーニングを有効にしている場合には、Bare Metal Provisioning サービスがノードをクリーニングします。
ノードにローカルブートオプションを設定します。
openstack baremetal node set <node> --property capabilities="boot_option:local"
$ openstack baremetal node set <node> --property capabilities="boot_option:local"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが登録されていることを確認します。
openstack baremetal node list
$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードを登録した後にその状態が表示されるまで時間がかかる場合があります。
4.5.2. ベアメタルノードの手動登録 リンクのコピーリンクがクリップボードにコピーされました!
物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、overcloudrc ファイルがある任意のノードで実行できます。
前提条件
- Bare Metal Provisioning サービスを含むオーバークラウドのデプロイメント。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
-
IronicEnabledHardwareTypesパラメーターを使用して、新しいノードのドライバーを有効にする必要があります。サポートされているドライバーの詳細については、Bare metal drivers を参照してください。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/overcloudrc
(undercloud)$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノードを追加します。
openstack baremetal node create --driver <driver_name> --name <node_name>
$ openstack baremetal node create --driver <driver_name> --name <node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<driver_name>をドライバーの名前 (たとえば、ipmi) に置き換えます。 -
<node_name>を新しいベアメタルノードの名前に置き換えます。
-
- ノードの作成時にノードに割り当てられた UUID を書き留めます。
登録されたノードごとに、ブートオプションを
localに設定します。openstack baremetal node set \ --property capabilities="boot_option:local" <node>
$ openstack baremetal node set \ --property capabilities="boot_option:local" <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node>をベアメタルノードの UUID に置き換えてください。ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。
openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>
$ openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をベアメタルノードの ID に置き換えてください。 -
<kernel_file>を.kernelイメージへのパス (例:file:///var/lib/ironic/httpboot/agent.kernel) に置き換えます。 -
<initramfs_file>は、.initramfsイメージへのパス (例:file:///var/lib/ironic/httpboot/agent.ramdisk) に置き換えます。
-
ノードの属性を更新して、ノード上のハードウェアの仕様と一致するようにします。
openstack baremetal node set <node> \ --property cpus=<cpu> \ --property memory_mb=<ram> \ --property local_gb=<disk> \ --property cpu_arch=<arch>
$ openstack baremetal node set <node> \ --property cpus=<cpu> \ --property memory_mb=<ram> \ --property local_gb=<disk> \ --property cpu_arch=<arch>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をベアメタルノードの ID に置き換えてください。 -
<cpu>は、CPU の数に置き換えます。 -
<ram>を MB 単位の RAM に置き換えます。 -
<disk>を GB 単位のディスクサイズに置き換えます。 -
<arch>は、アーキテクチャータイプに置き換えます。
-
オプション: 各ノードの IPMI 暗号スイートを指定します。
openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をベアメタルノードの ID に置き換えてください。 <version>は、ノードで使用する暗号スイートのバージョンに置き換えます。以下の有効な値のいずれかに設定します。-
3- ノードは SHA1 暗号スイートで AES-128 を使用します。 -
17- ノードは SHA256 暗号スイートで AES-128 を使用します。
-
-
オプション:各ノードの IPMI の詳細を指定します。
openstack baremetal node set <node> \ --driver-info <property>=<value>
$ openstack baremetal node set <node> \ --driver-info <property>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をベアメタルノードの ID に置き換えてください。 -
<property>を設定する IPMI プロパティーに置き換えます。使用可能なプロパティーについては、Intelligent Platform Management Interface (IPMI) 電源管理ドライバー を参照してください。 -
<value>をプロパティー値に置き換えます。
-
オプション: 複数のディスクがある場合は、ルートデバイスのヒントを設定して、デプロイメントに使用するディスクをデプロイ ramdisk に通知します。
openstack baremetal node set <node> \ --property root_device='{"<property>": "<value>"}'$ openstack baremetal node set <node> \ --property root_device='{"<property>": "<value>"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<node>をベアメタルノードの ID に置き換えてください。 <property>と<value>は、デプロイメントに使用するディスクの詳細に置き換えます (例:root_device='{"size": "128"}')。RHOSP は、次のプロパティーをサポートしています。
-
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)。このプロパティーは、永続デバイス名が付いたデバイスにのみ使用してください。注記複数のプロパティーを指定する場合には、デバイスはそれらの全プロパティーと一致する必要があります。
-
-
プロビジョニングネットワーク上の NIC の MAC アドレスを使用してポートを作成することにより、Bare Metal Provisioning サービスにノードのネットワークカードを通知します。
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>をベアメタルノードの一意の ID に置き換えます。 -
<mac_address>は、PXE ブートに使用する NIC の MAC アドレスに置き換えます。
-
ノードの設定を検証します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有効出力の
Resultは、次のことを示しています。-
False: インターフェイスは検証に失敗しました。instance_infoパラメーター[\'ramdisk', \'kernel', and \'image_source']が見つからない場合、Compute サービスがデプロイメントプロセスの最初にこれらのパラメーターを設定するので、この時点では設定されていない可能性があ ります。ディスクイメージ全体を使用している場合は、検証にパスするためにimage_sourceを設定するだけでよい場合があります。 -
True: インターフェイスは検証にパスしました。 -
None: インターフェイスはドライバーでサポートされていません。
-
4.5.3. ベアメタルノードのプロビジョニング状態 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードは、そのライフタイム中に複数のプロビジョニング状態を移行します。ノードで実行される API 要求およびコンダクターイベントが移行を開始します。プロビジョニング状態には、"stable" と "in transition" の 2 つのカテゴリーがあります。
次の表を使用して、ノードが置かれることができるプロビジョニング状態と、ノードをあるプロビジョニング状態から別のプロビジョニング状態に移行するために使用できるアクションについて説明します。
| State | Category | 説明 |
|---|---|---|
|
| 安定 | 各ノードの初期状態。ノードの登録に関する情報は、Adding physical machines as bare metal nodes を参照してください。 |
|
| イントランジション |
Bare Metal Provisioning サービスは、ノードの登録時に提供された |
|
| 安定 |
ノードは、Bare Metal Provisioning サービスがノードを管理できることを確認したら、manageable の状態に移行します。以下のコマンドを使用して、ノードを
ノードを以下の failed 状態のいずれかに移行した後、そのノードを
ノードを更新する必要がある場合には、ノードを |
|
| イントランジション |
Bare Metal Provisioning サービスは、ノードのイントロスペクションを使用して、ハードウェアから派生したノードプロパティーを更新し、ハードウェアの現在の状態を反映します。ノードは同期検査のために |
|
| イントランジション |
非同期検査が進行中であることを示すプロビジョニング状態。ノードの検査に成功すると、ノードは |
|
| 安定 |
ノードの検査が失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、ノードを
|
|
| イントランジション |
|
|
| イントランジション |
|
|
| 安定 |
ノードが正常に事前設定され、クリーンアップされると、それらは
|
|
| イントランジション |
|
|
| イントランジション |
|
|
| 安定 |
ノードのデプロイメントが失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、ノードを
|
|
| 安定 |
|
|
| イントランジション |
ノードが |
|
| 安定 |
ノードの削除に失敗した場合、ノードは
|
|
| イントランジション |
|
|
| イントランジション |
|
|
| イントランジション |
|
|
| 安定 |
ノードのレスキューが失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、
|
|
| 安定 |
|
|
| イントランジション |
|
|
| 安定 |
ノードのアンレスキュー操作が失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、
|
4.6. Redfish 仮想メディアブートの設定 リンクのコピーリンクがクリップボードにコピーされました!
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
Redfish 仮想メディアブートを使用して、ノードの Baseboard Management Controller (BMC) にブートイメージを提供することができます。これにより、BMC はイメージを仮想ドライブのいずれかに挿入することができます。その後、ノードは仮想ドライブからイメージに存在するオペレーティングシステムにブートすることができます。
Redfish ハードウェア種別は、仮想メディアを通じたデプロイ、レスキュー、およびユーザーの各イメージのブートに対応しています。Bare Metal Provisioning サービス (ironic) は、ノードのデプロイメント時に、ノードに関連付けられたカーネルイメージおよび ramdisk イメージを使用して、UEFI または BIOS ブートモード用のブート可能 ISO イメージをビルドします。仮想メディアブートの主な利点は、PXE の TFTP イメージ転送フェーズを排除し、HTTP GET 等の方法を使用することができる点です。
4.6.1. Redfish 仮想メディアブートを使用するベアメタルサーバーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
仮想メディアを通じて redfish ハードウェア種別のノードをブートするには、ブートインターフェイスを redfish-virtual-media に設定し、UEFI ノードの場合は EFI システムパーティション (ESP) イメージを定義します。続いて、登録したノードが Redfish 仮想メディアブートを使用するように設定します。
前提条件
-
undercloud.confファイルのenabled_hardware_typesパラメーターで、Redfish ドライバーが有効化されている。 - ベアメタルノードが登録されている。
- Image サービス (glance) に IPA およびインスタンスイメージがある。
- UEFI ノードの場合、EFI システムパーティション (ESP) イメージも Image サービス (glance) で利用可能でなければなりません。
- ベアメタルフレーバー
- クリーニングおよびプロビジョニング用ネットワーク
Sushy ライブラリーがインストールされている。
sudo yum install sushy
$ sudo yum install sushyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
Bare Metal サービス (ironic) のブートインターフェイスを
redfish-virtual-mediaに設定します。openstack baremetal node set --boot-interface redfish-virtual-media $NODE_NAME
$ openstack baremetal node set --boot-interface redfish-virtual-media $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow $NODE_NAMEはノード名に置き換えてください。UEFI ノードの場合は、ブートモードを
uefiに設定します。openstack baremetal node set --property capabilities="boot_mode:uefi" $NODE_NAME
$ openstack baremetal node set --property capabilities="boot_mode:uefi" $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow $NODE_NAMEはノード名に置き換えてください。注記BIOS ノードの場合は、このステップを実施しないでください。
UEFI ノードの場合は、EFI システムパーティション (ESP) イメージを定義します。
openstack baremetal node set --driver-info bootloader=$ESP $NODE_NAME
$ openstack baremetal node set --driver-info bootloader=$ESP $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow $ESPは glance イメージの UUID または ESP イメージの URL に、$NODE_NAMEはノードの名前に、それぞれ置き換えてください。注記BIOS ノードの場合は、このステップを実施しないでください。
ベアメタルノードにポートを作成し、そのポートをベアメタルノード上の NIC の MAC アドレスに関連付けます。
openstack baremetal port create --pxe-enabled True --node $UUID $MAC_ADDRESS
$ openstack baremetal port create --pxe-enabled True --node $UUID $MAC_ADDRESSCopy to Clipboard Copied! Toggle word wrap Toggle overflow $UUIDはベアメタルノードの UUID に、$MAC_ADDRESSはベアメタルノード上の NIC の MAC アドレスに、それぞれ置き換えてください。新しいベアメタルサーバーを作成します。
openstack server create \ --flavor baremetal \ --image $IMAGE \ --network $NETWORK \ test_instance$ openstack server create \ --flavor baremetal \ --image $IMAGE \ --network $NETWORK \ test_instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow $IMAGEおよび$NETWORKは、使用するイメージおよびネットワークの名前に置き換えます。
4.7. ホストアグリゲートを使用した物理マシンと仮想マシンのプロビジョニングの分離 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Compute は、ホストアグリゲートを使用してアベイラビリティーゾーンをパーティション分割し、特定の共有属性が指定されたノードをグループ化します。インスタンスがプロビジョニングされると、Compute のスケジューラーがフレーバーのプロパティーをホストアグリゲートに割り当てられたプロパティーと比較して、インスタンスが正しいアグリゲート内の正しいホストに (物理マシン上または仮想マシンとして) プロビジョニングされたことを確認します。
本項の手順を実施して、以下の操作を行います。
-
baremetalプロパティーをフレーバーに追加して、trueまたはfalseに設定する。 -
一致する
baremetalプロパティーを設定して、ベアメタルホスト用とコンピュートノード用のホストアグリゲートを別々に作成する。1 つのアグリゲートでグループ化されたノードは、このプロパティーを継承します。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
ベアメタル用のフレーバーで
baremetalプロパティーをtrueに設定します。openstack flavor set baremetal --property baremetal=true
$ openstack flavor set baremetal --property baremetal=trueCopy 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=falseCopy 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-hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントローラーノードを
baremetal-hostsアグリゲートに追加します。openstack aggregate add host baremetal-hosts HOSTNAME
$ openstack aggregate add host baremetal-hosts HOSTNAMECopy 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-hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各コンピュートノードを
virtual-hostsアグリゲートに追加します。openstack aggregate add host virtual-hosts HOSTNAME
$ openstack aggregate add host virtual-hosts HOSTNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドのデプロイ時に以下の Compute フィルタースケジューラーを追加していなかった場合には、この時点で
_/etc/nova/nova.conf_のscheduler_default_filtersセクションの既存リストに追加します。AggregateInstanceExtraSpecsFilter
AggregateInstanceExtraSpecsFilterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 ベアメタルノードの管理 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) が含まれるオーバークラウドをデプロイしたら、登録済みのベアメタルノードに物理マシンをプロビジョニングして、オーバークラウドでベアメタルインスタンスを起動することができます。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
5.1. ベアメタルインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインまたは OpenStack Dashboard のいずれかで、インスタンスを起動することができます。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
5.1.1. コマンドラインインターフェイスを使用したインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack クライアント CLI を使用して、ベアメタルインスタンスを作成できます。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
Identity サービス (keystone) に管理ユーザーとしてアクセスするためのシェルを設定します。
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタルインスタンスを作成します。
openstack server create \ --nic net-id=<network_uuid> \ --flavor baremetal \ --image <image_uuid> \ myBareMetalInstance
$ openstack server create \ --nic net-id=<network_uuid> \ --flavor baremetal \ --image <image_uuid> \ myBareMetalInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
<network_uuid>は、Bare Metal Provisioning サービスで使用するために作成したネットワークの一意識別子に置き換えます。 -
<image_uuid>を、インスタンスが必要とするソフトウェアプロファイルを持つイメージの一意の識別子に置き換えます。
-
インスタンスのステータスを確認します。
openstack server list --name myBareMetalInstance
$ openstack server list --name myBareMetalInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. Dashboard を使用したインスタンスの起動 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard のグラフィカルユーザーインターフェイスを使用してベアメタルインスタンスをデプロイします。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
- http[s]://DASHBOARD_IP/dashboard で Dashboard にログインします。
- プロジェクト > コンピュート > インスタンス の順にクリックします。
インスタンスの起動 をクリックします。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
1を選択します。 -
ソース タブで ブートソースを選択してください のドロップダウンメニューから
イメージを選択し、続いて↑(上向き矢印) の記号をクリックしてオペレーティングシステムのディスクイメージを選択します。選択したイメージが 割り当て済み に移動します。 -
フレーバー タブで
baremetalを選択します。 -
ネットワーク タブで、
↑(上向き矢印) および↓(下向き矢印) ボタンを使用して必要なネットワークを 利用可能 から 割り当て済み に移動します。ここでは、必ず Bare Metal Provisioning サービス用に作成した共有ネットワークを選択してください。 - インスタンスをセキュリティーグループに割り当てるには、セキュリティーグループ タブで矢印を使用してそのグループを 割り当て済み に移動します。
-
詳細 タブで インスタンス名 を指定して、インスタンス数 に
- インスタンスの起動 をクリックします。
5.2. Bare Metal Provisioning サービスでのポートグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノード向けのポートグループ機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト目的にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、対象範囲の詳細 を参照してください。
ポートグループ (ボンディング) の機能により、複数のネットワークインターフェイスを単一のボンディングされたインターフェイスに統合することができます。ポートグループの設定は常に、個別のポート設定に優先します。
ポートグループに物理ネットワークがある場合には、そのポートグループ内の全ポートに同じ物理ネットワークを使用すべきです。Bare Metal Provisioning サービスは、configdrive を使用してインスタンスでのポートグループの設定をサポートしています。
Bare Metal Provisioning サービス API バージョン 1.26 は、ポートグループの設定をサポートしています。前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
5.2.1. 手動によるスイッチ上のポートグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルのデプロイメントでポートグループを設定するには、スイッチ上でポートグループを手動設定する必要があります。スイッチによって名前が異なる場合があるため、スイッチ上のモードとプロパティーが、ベアメタル側のモードとプロパティーに対応している状態にする必要があります。
iPXE を使用してデプロイメントを起動する必要がある場合、プロビジョニングとクリーニングにはポートグループを使用できません。
ポートグループのフォールバック機能により、接続でエラーが発生した際に、1 つのポートグループ内の全ポートを個々のスイッチポートにフォールバックさせることができます。スイッチがポートグループのフォールバックをサポートしているかどうかに応じて、--support-standalone-ports と --unsupport-standalone-ports のオプションを使用することができます。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
5.2.2. Bare Metal Provisioning サービスでのポートグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
複数のネットワークインターフェイスを単一の ボンディングインターフェイス に統合するポートグループを作成します。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
ポートグループが属する先のノード、その名前、アドレス、モード、プロパティー、スタンドアロンポートへのフォールバックをサポートするかどうかを指定して、ポートグループを作成します。
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-portsCopy 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 testCopy 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_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
cloud-init対応のイメージまたはボンディングをサポートしているイメージを提供することにより、インスタンスを起動します。ポートグループが適切に設定されているかを確認するには、以下のコマンドを実行します。
cat /proc/net/bonding/bondX
# cat /proc/net/bonding/bondXCopy to Clipboard Copied! Toggle word wrap Toggle overflow Xは、cloud-initが設定済みの各ポートグループに対して自動生成する番号です。0で始まり、ポートグループを設定するたびに 1 つずつ増えます。
5.3. ホストから IP アドレスへのマッピングの確認 リンクのコピーリンクがクリップボードにコピーされました!
各 IP アドレスが割り当てられているホストおよびベアメタルノードを確認するには、以下のコマンドを使用します。これらのコマンドにより、ホストに直接アクセスせずに、ホストから IP へのマッピングをアンダークラウドで確認することが可能です。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
以下のコマンドを実行して、各ホストの IP アドレスを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のホストに絞り込むには、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストをベアメタルノードにマッピングするには、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. 仮想ネットワークインターフェイスの接続と切断 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービスには、仮想ネットワークインターフェイス間のマッピングを管理するための API があります。たとえば、OpenStack Networking サービスのインターフェイスと実際の物理インターフェイス (NIC) などです。これらのインターフェイスを各 Bare Metal Provisioning ノードに設定して、仮想ネットワークインターフェイス (VIF) から物理ネットワークインターフェイス (PIF) へのマッピングロジックを設定することができます。インターフェイスを設定するには、openstack baremetal node vif* コマンドを使用します。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
ベアメタルノードに現在接続されている VIF の ID を一覧表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VIF がアタッチされた後に、Bare Metal Provisioning サービスは 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-extraCopy 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-6c2dce0fba16Copy to Clipboard Copied! Toggle word wrap Toggle overflow その IP アドレスがリストには存在しなくなったことを確認します。
openstack server list
$ openstack server listCopy 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 listCopy 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-extraCopy 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 Provisioning サービスポートの中の 1 つと一致しているかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 IP アドレスを認識するように、ベアメタルノードを再起動します。
openstack server reboot overcloud-baremetal-0
$ openstack server reboot overcloud-baremetal-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターフェイスを接続または切断した後には、ベアメタルの OS は変更されたネットワークインターフェイスを削除/追加/変更します。ポートを置き換える場合、DHCP 要求が新規 IP アドレスを取得しますが、古い DHCP リースがまだ有効なので、多少時間がかかる場合があります。変更を即時に適用するには、ベアメタルホストをリブートします。
5.5. Bare Metal Provisioning サービスの通知の設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) を設定して、サービス内で発生するさまざまなイベントの通知を表示することができます。外部サービスは、請求目的、データストアの監視、およびその他の目的でこれらの通知を使用することができます。Bare Metal Provisioning サービスの通知を有効にするには、ironic.conf 設定ファイルで以下のオプションを設定する必要があります。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
-
[DEFAULT]セクションのnotification_levelオプションは、通知送信の最小の優先度を決定します。このオプションの値は、debug、info、warning、error、criticalのいずれかに設定することができます。オプションがwarningに設定されると、優先度がwarning、error、またはcriticalのいずれかである通知はすべて送信されますが、優先度がdebugまたはinfoの通知は送信させません。このオプションが設定されていない場合には、通知は一切送信されません。利用可能な各通知の優先度は、以下に記載しています。 -
[oslo_messaging_notifications]セクションのtransport_urlのオプションは、通知の送信に使用されるメッセージバスを決定します。このオプションが設定されていない場合には、RPC に使われるデフォルトのトランスポートが使用されます。
通知はすべて、メッセージバス内の ironic_versioned_notifications トピックで発行されます。通常は、メッセージバスを通過する各種別のメッセージは、メッセージの内容を説明しているトピックに関連付けられます。
5.6. 電源異常からの自動復帰の設定 リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) には、ノードの電源、クリーニング、およびレスキューアボートの失敗を記録する文字列フィールド fault があります。
| 異常 | 説明 |
|---|---|
| power failure | 電源の同期に失敗したため (リトライ回数の最大値の超過)、ノードはメンテナーンスモードに移行しています。 |
| clean failure | クリーニング操作に失敗したため、ノードはメンテナーンスモードに移行しています。 |
| rescue abort failure | レスキューアボート時のクリーニング操作に失敗したため、ノードはメンテナーンスモードに移行しています。 |
| none | 異常は発生していません。 |
Conductor は、このフィールドの値を定期的に確認します。Conductor が power failure の状態を検出し、ノードの電源の復旧に成功すると、ノードはメンテナーンスモードから抜け出し動作状態に戻ります。
オペレーターが手動でノードをメンテナーンスモードに切り替えた場合には、Conductor が自動的にノードをメンテナーンスモードから移行させることはありません。
デフォルトの間隔は 300 秒ですが、hieradata を使用して director からこの間隔を設定することができます。
前提条件
- Bare Metal Provisioning サービスが含まれるオーバークラウドのデプロイメントが正常に完了していること。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
手順
以下の hieradata を追加して、カスタムの復帰間隔を設定します。
ironic::conductor::power_failure_recovery_interval
ironic::conductor::power_failure_recovery_intervalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 電源異常からの自動復帰を無効にするには、値を
0に設定します。
5.7. オーバークラウドノードのイントロスペクション リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドノードのイントロスペクションを実行して、ノードの仕様を識別し、director に保存します。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 overcloudrc認証情報ファイルを入手します。source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow イントロスペクションコマンドを実行します。
openstack baremetal introspection start [--wait] <NODENAME>
$ openstack baremetal introspection start [--wait] <NODENAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <NODENAME> は、検査するノードの名前または UUID に置き換えます。
イントロスペクションのステータスを確認します。
openstack baremetal introspection status <NODENAME>
$ openstack baremetal introspection status <NODENAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <NODENAME> は、ノードの名前または UUID に置き換えます。
次のステップ
イントロスペクションデータを抽出します。
openstack baremetal introspection data save <NODE-UUID>
$ openstack baremetal introspection data save <NODE-UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <NODENAME> は、ノードの名前または UUID に置き換えます。
第6章 cinder ボリュームからのブート リンクのコピーリンクがクリップボードにコピーされました!
Block Storage サービス (cinder) にボリュームを作成し、これらのボリュームを Bare Metal Provisioning サービス (ironic) で作成するベアメタルインスタンスに接続することができます。
6.1. ベアメタルノード向けの cinder ボリュームブート リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Block Storage (cinder) に保管されるブロックストレージデバイスからベアメタルノードをブートすることができます。OpenStack Bare Metal (ironic) は、iSCSI インターフェイスを介してベアメタルノードをボリュームに接続します。
ironic は、オーバークラウドのデプロイメント時にこの機能を有効にします。ただし、オーバークラウドをデプロイする前に、以下の条件を考慮してください。
-
オーバークラウドでは、cinder iSCSI バックエンドを有効にする必要があります。オーバークラウドのデプロイメント時に
CinderEnableIscsiBackendheat パラメーターをtrueに設定します。 - Red Hat Ceph Storage バックエンドでは、cinder ボリュームブート機能を使用することはできません。
-
ブートディスクで
rd.iscsi.firmware=1カーネルパラメーターを設定する必要があります。
6.2. cinder ボリュームブート用ノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
cinder ボリュームから正常に起動するには、各ベアメタルノードで特定のオプションを設定する必要があります。
手順
source コマンドでオーバークラウドの認証情報ファイルを読み込みます。
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<credentials_file>を認証情報ファイルの名前 (overcloudrcなど) に置き換えます。
-
iscsi_boot機能をtrueに、storage-interfaceを選択したノードのcinderに、それぞれ設定します。openstack baremetal node set --property capabilities=iscsi_boot:true --storage-interface cinder <NODEID>
$ openstack baremetal node set --property capabilities=iscsi_boot:true --storage-interface cinder <NODEID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <NODEID>を選択したノードの ID に置き換えてください。ノードの iSCSI コネクターを作成します。
openstack baremetal volume connector create --node <NODEID> --type iqn --connector-id iqn.2010-10.org.openstack.node<NUM>
$ openstack baremetal volume connector create --node <NODEID> --type iqn --connector-id iqn.2010-10.org.openstack.node<NUM>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードのコネクター ID は一意でなければなりません。この例では、コネクターは
iqn.2010-10.org.openstack.node<NUM>です。ここで、<NUM>は各ノードの通し番号です。
6.3. ブートディスクでの iSCSI カーネルパラメーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージ上のカーネルで iSCSI ブートを有効にする必要があります。そのためには、QCOW2 イメージをマウントし、イメージ上で iSCSI コンポーネントを有効にします。
前提条件
Red Hat Enterprise Linux QCOW2 イメージをダウンロードして、アンダークラウドの
/home/stack/ディレクトリーにコピーします。以下のページから、QCOW2 形式で Red Hat Enterprise Linux KVM イメージをダウンロードすることができます。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 QCOW2 イメージをマウントし、
rootユーザーとしてアクセスします。nbdカーネルモジュールを読み込みます。sudo modprobe nbd
$ sudo modprobe nbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow QCOW イメージを
/dev/nbd0として接続します。sudo qemu-nbd --connect=/dev/nbd0 <IMAGE>
$ sudo qemu-nbd --connect=/dev/nbd0 <IMAGE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NBD 上のパーティションを確認します。
sudo fdisk /dev/nbd0 -l
$ sudo fdisk /dev/nbd0 -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい Red Hat Enterprise Linux QCOW2 イメージには、パーティションが 1 つだけ含まれます。通常、そのパーティションは NBD の
/dev/nbd0p1という名前です。イメージのマウントポイントを作成します。
mkdir /tmp/mountpoint
mkdir /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをマウントします。
sudo mount /dev/nbd0p1 /tmp/mountpoint/
sudo mount /dev/nbd0p1 /tmp/mountpoint/Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージがホストのデバイス情報にアクセスできるように、
devディレクトリーをマウントします。sudo mount -o bind /dev /tmp/mountpoint/dev
sudo mount -o bind /dev /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートディレクトリーをマウントポイントに変更します。
sudo chroot /tmp/mountpoint /bin/bash
sudo chroot /tmp/mountpoint /bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージ上で iSCSI を設定します。
注記このステップの一部のコマンドにより、以下のエラーが返される場合があります。
lscpu: cannot open /proc/cpuinfo: No such file or directory
lscpu: cannot open /proc/cpuinfo: No such file or directoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow このエラーは重要ではないので、エラーを無視して構いません。
resolv.confファイルを一時的な場所に移動します。mv /etc/resolv.conf /etc/resolv.conf.bak
# mv /etc/resolv.conf /etc/resolv.conf.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat コンテンツ配信ネットワークの DNS 要求を解決するために、一時的な
resolv.confファイルを作成します。以下の例では、ネームサーバーに8.8.8.8を使用しています。echo "nameserver 8.8.8.8" > /etc/resolv.conf
# echo "nameserver 8.8.8.8" > /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントしたイメージを Red Hat コンテンツ配信ネットワークに登録します。
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドにより要求されたら、ユーザー名およびパスワードを入力します。
Red Hat Enterprise Linux が含まれるサブスクリプションをアタッチします。
subscription-manager list --all --available subscription-manager attach --pool <POOLID>
# subscription-manager list --all --available # subscription-manager attach --pool <POOLID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <POOLID>をサブスクリプションのプール ID に置き換えます。デフォルトのリポジトリーを無効にします。
subscription-manager repos --disable "*"
# subscription-manager repos --disable "*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux リポジトリーを有効にします。
Red Hat Enterprise Linux 7:
subscription-manager repos --enable "rhel-7-server-rpms"
# subscription-manager repos --enable "rhel-7-server-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8:
subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"
# subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
iscsi-initiator-utilsパッケージをインストールします。yum install -y iscsi-initiator-utils
# yum install -y iscsi-initiator-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントしたイメージの登録を解除します。
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 元の
resolv.confファイルを復元します。mv /etc/resolv.conf.bak /etc/resolv.conf
# mv /etc/resolv.conf.bak /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントされたイメージのカーネルバージョンを確認します。
rpm -qa kernel
# rpm -qa kernelCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、出力が
kernel-3.10.0-1062.el7.x86_64の場合、カーネルバージョンは3.10.0-1062.el7.x86_64になります。次のステップのために、このカーネルバージョンを書き留めておきます。注記新しい Red Hat Enterprise Linux QCOW2 イメージには、1 つのカーネルバージョンしかインストールされません。複数のカーネルバージョンがインストールされている場合は、最新のものを使用してください。
initramfs イメージに
networkおよびiscsidracut モジュールを追加します。dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>
# dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <KERNELVERSION>をrpm -qa kernelから取得したバージョン番号に置き換えます。以下の例では、カーネルバージョンに3.10.0-1062.el7.x86_64を使用しています。dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
# dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow マウントされたイメージからホストオペレーティングシステムに戻ります。
exit
# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージをアンマウントします。
一時的なマウントポイントから
devディレクトリーをアンマウントします。sudo umount /tmp/mountpoint/dev
$ sudo umount /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントポイントからイメージをアンマウントします。
sudo umount /tmp/mountpoint
$ sudo umount /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow QCOW2 イメージを
/dev/nbd0/から切断します。sudo qemu-nbd --disconnect /dev/nbd0
$ sudo qemu-nbd --disconnect /dev/nbd0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージ上で
grubメニュー設定を再ビルドします。libguestfs-toolsパッケージをインストールします。sudo yum -y install libguestfs-tools
$ sudo yum -y install libguestfs-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要アンダークラウドに
libguestfs-toolsパッケージをインストールする場合は、アンダークラウドのtripleo_iscsidサービスとのポートの競合を避けるためにiscsid.socketを無効にします。sudo systemctl disable --now iscsid.socket
$ sudo systemctl disable --now iscsid.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow QEMU を直接使用するように
libguestfsバックエンドを設定します。export LIBGUESTFS_BACKEND=direct
$ export LIBGUESTFS_BACKEND=directCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージ上の grub 設定を更新します。
guestfish -a /tmp/images/{{ dib_image }} -m /dev/sda3 sh "mount /dev/sda2 /boot/efi && rm /boot/grub2/grubenv && /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg && cp /boot/grub2/grub.cfg /boot/efi/EFI/redhat/grub.cfg && grubby --update-kernel=ALL --args=\"rd.iscsi.firmware=1\" && cp /boot/grub2/grubenv /boot/efi/EFI/redhat/grubenv && echo Success"$ guestfish -a /tmp/images/{{ dib_image }} -m /dev/sda3 sh "mount /dev/sda2 /boot/efi && rm /boot/grub2/grubenv && /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg && cp /boot/grub2/grub.cfg /boot/efi/EFI/redhat/grub.cfg && grubby --update-kernel=ALL --args=\"rd.iscsi.firmware=1\" && cp /boot/grub2/grubenv /boot/efi/EFI/redhat/grubenv && echo Success"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4. cinder でのブートボリュームの作成および使用 リンクのコピーリンクがクリップボードにコピーされました!
iSCSI 対応イメージを OpenStack Image Storage (glance) にアップロードして、OpenStack Block Storage (cinder) にブートボリュームを作成する必要があります。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 iSCSI 対応イメージを glance にアップロードします。
openstack image create --disk-format qcow2 --container-format bare --file rhel-server-7.7-x86_64-kvm.qcow2 rhel-server-7.7-iscsi
$ openstack image create --disk-format qcow2 --container-format bare --file rhel-server-7.7-x86_64-kvm.qcow2 rhel-server-7.7-iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージからボリュームを作成します。
openstack volume create --size 10 --image rhel-server-7.7-iscsi --bootable rhel-test-volume
$ openstack volume create --size 10 --image rhel-server-7.7-iscsi --bootable rhel-test-volumeCopy to Clipboard Copied! Toggle word wrap Toggle overflow cinder のブートボリュームを使用するベアメタルインスタンスを作成します。
openstack server create --flavor baremetal --volume rhel-test-volume --key default rhel-test
$ openstack server create --flavor baremetal --volume rhel-test-volume --key default rhel-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 Bare Metal Provisioning サービスのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービス (ironic) が含まれる環境内の問題を診断します。
7.1. PXE ブートエラー リンクのコピーリンクがクリップボードにコピーされました!
PXE ブートで直面する問題を評価し、修正するには、以下のトラブルシューティング手順を使用します。
Permission Denied エラー
ベアメタルノードのコンソールで 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 pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
$ grep ^pxe_config_template ironic.conf
pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
デフォルトのテンプレートは pxe_config.template であるため、i を省略して、誤って ipxe_config.template と入力しがちです。
7.2. ベアメタルノードブート後のログインエラー リンクのコピーリンクがクリップボードにコピーされました!
設定時に指定した root パスワードを使用してノードにログインできない場合、デプロイされたイメージにブートしていないことを示しています。deploy-kernel/deploy-ramdisk イメージにログインしており、システムが正しい イメージを読み込んでいない可能性があります。
この問題を修正するには、Compute または Bare Metal Provisioning サービスノードの /httpboot/pxelinux.cfg/MAC_ADDRESS にある PXE ブートの設定ファイルをチェックして、このファイルにリストされている全 IP アドレスがベアメタルネットワークの IP アドレスに対応していることを確認してください。
Bare Metal Provisioning サービスノードが使用する唯一のネットワークは、ベアメタルネットワークです。エンドポイントの 1 つがこのネットワーク上にない場合には、そのエンドポイントはブートプロセスの一環として Bare Metal Provisioning サービスノードに到達することはできません。
たとえば、ファイルの 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=ipmi 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=ipmi 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 |
|
| ipmi | このノードの Bare Metal Provisioning サービスが使用している IPMI ドライバー |
| deploy_ramdisk |
これは、 |
/httpboot/pxelinux.cfg/MAC_ADDRESS と ironic.conf ファイルの間で値が一致していない場合:
-
ironic.confファイル内の値を更新します。 - Bare Metal Provisioning サービスを再起動します。
- ベアメタルインスタンスを再デプロイします。
7.3. デプロイされたノードでの Boot-to-disk エラー リンクのコピーリンクがクリップボードにコピーされました!
特定のハードウェアでは、デプロイされたノードで問題が発生し、デプロイメントの一環としての以降のブート操作中にノードがディスクからブートできない可能性があります。これは通常、director がノードで要求する永続的なブート設定を BMC が反映しないために発生します。代わりに、ノードは PXE ターゲットからブートします。
この場合、ノードの BIOS でブート順序を更新する必要があります。HDD を最初のブートデバイスに設定し、次に PXE を非デフォルトのオプションに設定します。これにより、デフォルトではノードはディスクからブートし、必要に応じてイントロスペクションまたはデプロイメント時にネットワークからブートすることができます。
このエラーは、LegacyBIOS ファームウェアを使用するほとんどのノードに該当します。
7.4. Bare Metal Provisioning サービスが正しいホスト名を受信しない リンクのコピーリンクがクリップボードにコピーされました!
Bare Metal Provisioning サービスが正しいホスト名を受信しない場合は、cloud-init でエラーが発生していることを意味します。この問題を修正するには、ベアメタルのサブネットを OpenStack Networking サービス内のルーターに接続します。この設定により、要求が meta-data エージェントに正しくルーティングされます。
7.5. Bare Metal Provisioning サービスのコマンド実行時に OpenStack Identity サービスの認証情報が無効 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービスへの認証で問題がある場合には、ironic.conf ファイルの identity_uri パラメーターをチェックして、keystone AdminURL から /v2.0 が削除されていることを確認してください。たとえば、identity_uri を http://IP:PORT に設定します。
7.6. ハードウェアの登録 リンクのコピーリンクがクリップボードにコピーされました!
ノードの登録情報が間違っていると、登録したハードウェアで問題が発生する可能性があります。属性名と値を正しく入力してください。属性名を誤って入力すると、システムは属性をノードの詳細に追加しますが、無視されます。
openstack baremetal node set コマンドを使用して、ノードの情報を更新します。以下の例では、ノードの登録されたメモリー使用量を 2 GB に更新します。
openstack baremetal node set --property memory_mb=2048 NODE_UUID
$ openstack baremetal node set --property memory_mb=2048 NODE_UUID
7.7. iDRAC に関する問題のトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
- Redfish 管理インターフェイスがブートデバイスの設定に失敗する
特定の iDRAC ファームウェアバージョンの
idrac-redfish管理インターフェイスを使用する場合、UEFI ブートのベアメタルサーバーでブートデバイスの設定を試みると、iDRAC は以下のエラーを返します。Unable to Process the request because the value entered for the parameter Continuous is not supported by the implementation.
Unable to Process the request because the value entered for the parameter Continuous is not supported by the implementation.Copy to Clipboard Copied! Toggle word wrap Toggle overflow この問題が発生した場合には、ノードの
driver-infoのforce_persistent_boot_deviceパラメーターをNeverに設定します。openstack baremetal node set --driver-info force_persistent_boot_device=Never ${node_uuid}openstack baremetal node set --driver-info force_persistent_boot_device=Never ${node_uuid}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 電源オフ時のタイムアウト
一部のサーバーで、電源のオフに長時間を要し、タイムアウトする場合があります。デフォルトのリトライ回数は
6で、その結果 30 秒でタイムアウトになります。タイムアウトの時間を 90 秒に増やすには、アンダークラウドの hieradata オーバーライドファイルでironic::agent::rpc_response_timeoutの値を18に設定して、openstack undercloud installコマンドを再実行します。ironic::agent::rpc_response_timeout: 18
ironic::agent::rpc_response_timeout: 18Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ベンダーパススルーのタイムアウト
ベンダーパススルーコマンドを実行するのに iDRAC が利用できない場合、これらのコマンドの実行に非常に長い時間がかかり、タイムアウトします。
openstack baremetal node passthru call --http-method GET \ aed58dca-1b25-409a-a32f-3a817d59e1e0 list_unfinished_jobs Timed out waiting for a reply to message ID 547ce7995342418c99ef1ea4a0054572 (HTTP 500)
openstack baremetal node passthru call --http-method GET \ aed58dca-1b25-409a-a32f-3a817d59e1e0 list_unfinished_jobs Timed out waiting for a reply to message ID 547ce7995342418c99ef1ea4a0054572 (HTTP 500)Copy to Clipboard Copied! Toggle word wrap Toggle overflow メッセージングのタイムアウト時間を増やすには、アンダークラウドの hieradata オーバーライドファイルで
ironic::default::rpc_response_timeoutパラメーターの値を増やし、openstack undercloud installコマンドを再実行します。ironic::default::rpc_response_timeout: 600
ironic::default::rpc_response_timeout: 600Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.8. サーバーコンソールの設定 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドノードからのコンソール出力は、常にサーバーコンソールに送信される訳ではありません。サーバーコンソールでこの出力を表示するには、ハードウェアの正しいコンソールを使用するようにオーバークラウドを設定する必要があります。この設定を行うには、以下のいずれかの方法を使用します。
-
オーバークラウドロールごとに
KernelArgsheat パラメーターを変更する -
director がオーバークラウドノードのプロビジョニングに使用する
overcloud-hardened-uefi-full.qcow2イメージをカスタマイズします。
前提条件
- アンダークラウドの正常なインストール。詳しくは、director のインストールと使用方法 を参照してください。
- デプロイ可能なオーバークラウドノード
デプロイメント時の heat を使用した KernelArgs の変更
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrc認証情報ファイルを読み込みます。source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 環境ファイル
overcloud-console.yamlを作成して、以下の内容を記載します。parameter_defaults: <role>Parameters: KernelArgs: "console=<console-name>"parameter_defaults: <role>Parameters: KernelArgs: "console=<console-name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow <role>を設定するオーバークラウドロールの名前に置き換え、<console-name>を使用するコンソールの ID に置き換えます。たとえば、デフォルトロールのすべてのオーバークラウドノードがtty0を使用するように設定するには、以下のスニペットを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-eオプションを使用して、overcloud-console-tty0.yamlファイルをデプロイメントコマンドに追加します。
overcloud-hardened-uefi-full.qcow2 イメージの変更
-
アンダークラウドホストに
stackユーザーとしてログインします。 source コマンドで
stackrc認証情報ファイルを読み込みます。source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow overcloud-hardened-uefi-full.qcow2イメージのカーネル引数を変更して、ハードウェアの正しいコンソールを設定します。たとえば、コンソールをtty1に設定します。virt-customize --selinux-relabel -a overcloud-hardened-uefi-full.qcow2 --run-command 'grubby --update-kernel=ALL --args="console=tty1"'
$ virt-customize --selinux-relabel -a overcloud-hardened-uefi-full.qcow2 --run-command 'grubby --update-kernel=ALL --args="console=tty1"'Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを director にインポートします。
openstack overcloud image upload --image-path overcloud-hardened-uefi-full.qcow2
$ openstack overcloud image upload --image-path overcloud-hardened-uefi-full.qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オーバークラウドをデプロイします。
検証
アンダークラウドからオーバークラウドノードにログインします。
ssh tripleo-admin@<IP-address>
$ ssh tripleo-admin@<IP-address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <IP-address>をオーバークラウドノードの IP アドレスに置き換えます。/proc/cmdlineファイルの内容を調べ、console=パラメーターが使用するコンソールの値に設定されていることを確認します。[tripleo-admin@controller-0 ~]$ cat /proc/cmdline BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-4.18.0-193.29.1.el8_2.x86_64 root=UUID=0ec3dea5-f293-4729-b676-5d38a611ce81 ro console=tty0 console=ttyS0,115200n81 no_timer_check crashkernel=auto rhgb quiet
[tripleo-admin@controller-0 ~]$ cat /proc/cmdline BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-4.18.0-193.29.1.el8_2.x86_64 root=UUID=0ec3dea5-f293-4729-b676-5d38a611ce81 ro console=tty0 console=ttyS0,115200n81 no_timer_check crashkernel=auto rhgb quietCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 Bare Metal のドライバー リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードが Bare Metal Provisioning サービスで有効にしたドライバーの 1 つを使用するように設定することができます。各ドライバーには、プロビジョニング方法と電源管理タイプが含まれます。ドライバーによっては追加の設定が必要な場合があります。このセクションで説明する各ドライバーは、プロビジョニングに PXE を使用します。ドライバーは、電源管理タイプ別にリスト表示されます。
ironic.yaml ファイルの IronicEnabledHardwareTypes パラメーターを設定して、ドライバーを追加することができます。デフォルトでは、ipmi と redfish が有効になっています。
サポートされているプラグインとドライバーの全一覧は、Component, Plug-In, and Driver Support in Red Hat OpenStack Platform のアーティクルを参照してください。
8.1. Intelligent Platform Management Interface (IPMI) 電源管理ドライバー リンクのコピーリンクがクリップボードにコピーされました!
IPMI は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェイスです。この電源管理タイプを使用するには、全 Bare Metal Provisioning サービスノードで IPMI が共有ベアメタルネットワークに接続されている必要があります。IPMI 電源管理ドライバーは、ipmitool ユーティリティーを使用して、ハードウェアをリモートから管理します。次の driver_info プロパティーを使用して、ノードの IPMI 電源管理ドライバーを設定できます。
| プロパティー | 説明 | 同等の ipmitool オプション |
|---|---|---|
|
| (必須) ノードの IP アドレスまたはホスト名。 |
|
|
| IPMI ユーザー名。 |
|
|
|
IPMI パスワード。パスワードは一時ファイルに書き込まれます。 |
|
|
| IPMIv2 認証用の 16 進数の Kg キー。 |
|
|
| リモート IPMI RMCP ポート。 |
|
|
| IPMI 権限レベル。以下の有効な値のいずれかに設定します。
|
|
|
| IPMI プロトコルのバージョン。以下の有効な値のいずれかに設定します。
|
|
|
| ブリッジのタイプ。ネストされたシャーシ管理コントローラー (CMC) で使用します。以下の有効な値のいずれかに設定します。
| 該当なし |
|
|
ブリッジされたリクエストの宛先チャネル。 |
|
|
|
ブリッジされたリクエストの宛先アドレス。 |
|
|
|
ブリッジされたリクエストの転送チャネル。 |
|
|
|
ブリッジされたリクエストの転送アドレス。 |
|
|
|
ブリッジされたリクエストのローカル IPMB アドレス。 |
|
|
|
サーバーの電源を入れるたびに、Bare Metal Provisioning サービスが BMC に起動デバイスを指定する必要があるかどうかを指定するには、 | 該当なし |
|
|
ノードでの起動の 60 秒のタイムアウトを無効にするために、raw IPMI コマンドを送信しない場合は、 | 該当なし |
|
| ノードで使用する IPMI 暗号スイートのバージョン。以下の有効な値のいずれかに設定します。
| 該当なし |
8.2. Redfish リンクのコピーリンクがクリップボードにコピーされました!
Distributed Management Task Force (DMTF) によって開発された IT インフラストラクチャー用の標準 RESTful API。以下の driver_info プロパティーを使用して、Redfish への Bare Metal Provisioning サービス (ironic) 接続を設定できます。
| プロパティー | 説明 |
|---|---|
|
|
(必須) Redfish コントローラーの IP アドレス。アドレスには、URL のオーソリティー部分を含める必要があります。スキームを含めない場合は、デフォルトで |
|
|
Redfish ドライバーがやりとりするシステムリソースへの標準パス。パスには、ルートサービス、バージョン、および |
|
| Redfish ユーザー名。 |
|
| Redfish パスワード。 |
|
|
ブール値、CA_BUNDLE ファイルへのパス、または信頼できる CA の証明書を含むディレクトリーのいずれかです。この値を |
|
| Redfish HTTP クライアント認証方法。以下の有効な値のいずれかに設定します。
|
8.3. Dell Remote Access Controller (DRAC) リンクのコピーリンクがクリップボードにコピーされました!
DRAC は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェイスです。この電源管理タイプを使用するには、すべての Bare Metal Provisioning サービスノードに、共有 Bare Metal Provisioning ネットワークに接続された DRAC が必要です。idrac ドライバーを有効にし、ノードの driver_info に以下の情報を設定します。
-
drac_address: DRAC NIC の IP アドレス -
drac_username: DRAC のユーザー名 -
drac_password: DRAC のパスワード -
オプション:
drac_port- WS-Management エンドポイントに使用するポート。デフォルトはポート443です。 -
オプション:
drac_path- WS-Management エンドポイントに使用するパス。デフォルトのパスは/wsmanです。 -
オプション:
drac_protocol- WS-Management エンドポイントに使用するプロトコル。有効な値:http、https。デフォルトのプロトコルはhttpsです。
8.4. Integrated Remote Management Controller (iRMC) リンクのコピーリンクがクリップボードにコピーされました!
富士通の iRMC は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェイスです。Bare Metal Provisioning サービスノードでこの電源管理タイプを使用するには、このノードで iRMC インターフェイスが共有ベアメタルネットワークに接続されている必要があります。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 METHODCopy to Clipboard Copied! Toggle word wrap Toggle overflow METHOD は
scciまたはipmitoolに置き換えます。SCCI を有効にした場合は、
python-scciclientパッケージをインストールします。dnf install python-scciclient
# dnf install python-scciclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow Bare Metal Conductor サービスを再起動します。
systemctl restart openstack-ironic-conductor.service
# systemctl restart openstack-ironic-conductor.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
iRMC ドライバーを使用するには、iRMC S4 以降が必要です。
8.5. Integrated Lights-Out (iLO) リンクのコピーリンクがクリップボードにコピーされました!
Hewlett-Packard の iLO は、電源管理やサーバー監視などの帯域外 (OOB) リモート管理機能を提供するインターフェイスです。この電源管理タイプを使用するには、全ベアメタルノードで iLO インターフェイスが共有ベアメタルネットワークに接続されている必要があります。ilo ドライバーを有効にし、ノードの driver_info に以下の情報を設定します。
-
ilo_address: iLO インターフェイスの NIC の IP アドレス -
ilo_username: iLO のユーザー名 -
ilo_password: iLO のパスワード
python-proliantutils パッケージもインストールして、Bare Metal Conductor サービスを再起動する必要があります。
dnf install python-proliantutils systemctl restart openstack-ironic-conductor.service
# dnf install python-proliantutils
# systemctl restart openstack-ironic-conductor.service