4.5. ベアメタルノードとしての物理マシンの追加


次のいずれかの方法を使用して、ベアメタルノードを登録します。

  • ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal Provisioning サービスにインポートしてノードを利用できるようにします。
  • 物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、overcloudrc ファイルがある任意のノードで実行できます。

4.5.1. インベントリーファイルを使用したベアメタルノードの登録

ノードの詳細情報を記載したインベントリーファイルを作成し、そのファイルを Bare Metal Provisioning サービス (ironic) にインポートしてノードを利用できるようにします。

前提条件

手順

  1. ノードの詳細を含むインベントリーファイル overcloud-nodes.yaml を作成します。1 つのファイルで複数のノードを登録することが可能です。

    nodes:
        - name: node0
          driver: ipmi
          driver_info:
            ipmi_address: <ipmi_ip>
            ipmi_username: <user>
            ipmi_password: <password>
            [<property>: <value>]
          properties:
            cpus: <cpu_count>
            cpu_arch: <cpu_arch>
            memory_mb: <memory>
            local_gb: <root_disk>
            root_device:
                serial: <serial>
          ports:
            - address: <mac_address>
    • <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>
  2. source コマンドで overcloudrc ファイルを読み込みます。

    $ source ~/overcloudrc
  3. インベントリーファイルを BareMetalProvisioning サービスにインポートします。

    $ openstack baremetal create overcloud-nodes.yaml

    これで、ノードは enroll の状態となります。

  4. 各ノードでデプロイカーネルとデプロイ ramdisk を指定します。

    $ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    • <node> は、ノードの名前または ID に置き換えます。
    • <kernel_file>.kernel イメージへのパス (例: file:///var/lib/ironic/httpboot/agent.kernel) に置き換えます。
    • <initramfs_file> は、.initramfs イメージへのパス (例: file:///var/lib/ironic/httpboot/agent.ramdisk) に置き換えます。
  5. オプション: 各ノードの IPMI 暗号スイートを指定します。

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    • <node> は、ノードの名前または ID に置き換えます。
    • <version> は、ノードで使用する暗号スイートのバージョンに置き換えます。以下の有効な値のいずれかに設定します。

      • 3 - ノードは SHA1 暗号スイートで AES-128 を使用します。
      • 17 - ノードは SHA256 暗号スイートで AES-128 を使用します。
  6. ノードのプロビジョニング状態を available に設定します。

    $ openstack baremetal node manage <node>
    $ openstack baremetal node provide <node>

    ノードのクリーニングを有効にしている場合には、Bare Metal Provisioning サービスがノードをクリーニングします。

  7. ノードにローカルブートオプションを設定します。

    $ openstack baremetal node set <node> --property capabilities="boot_option:local"
  8. ノードが登録されていることを確認します。

    $ openstack baremetal node list

    ノードを登録した後にその状態が表示されるまで時間がかかる場合があります。

4.5.2. ベアメタルノードの手動登録

物理マシンをベアメタルノードとして登録してから、手動でハードウェア情報を追加し、各イーサネットの MAC アドレス用にポートを作成します。これらの手順は、overcloudrc ファイルがある任意のノードで実行できます。

前提条件

  • Bare Metal Provisioning サービスを含むオーバークラウドのデプロイメント。詳細は、Deploying an overcloud with the Bare Metal Provisioning service を参照してください。
  • IronicEnabledHardwareTypes パラメーターを使用して、新しいノードのドライバーを有効にする必要があります。サポートされているドライバーの詳細については、Bare metal drivers を参照してください。

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. source コマンドでオーバークラウドの認証情報ファイルを読み込みます。

    (undercloud)$ source ~/overcloudrc
  3. 新しいノードを追加します。

    $ openstack baremetal node create --driver <driver_name> --name <node_name>
    • <driver_name> をドライバーの名前 (たとえば、ipmi) に置き換えます。
    • <node_name> を新しいベアメタルノードの名前に置き換えます。
  4. ノードの作成時にノードに割り当てられた UUID を書き留めます。
  5. 登録されたノードごとに、ブートオプションを local に設定します。

    $ openstack baremetal node set \
      --property capabilities="boot_option:local" <node>

    <node> をベアメタルノードの UUID に置き換えてください。

  6. ノードドライバーのデプロイカーネルとデプロイ ramdisk を指定します。

    $ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    • <node> をベアメタルノードの ID に置き換えてください。
    • <kernel_file>.kernel イメージへのパス (例: file:///var/lib/ironic/httpboot/agent.kernel) に置き換えます。
    • <initramfs_file> は、.initramfs イメージへのパス (例: file:///var/lib/ironic/httpboot/agent.ramdisk) に置き換えます。
  7. ノードの属性を更新して、ノード上のハードウェアの仕様と一致するようにします。

    $ openstack baremetal node set <node> \
      --property cpus=<cpu> \
      --property memory_mb=<ram> \
      --property local_gb=<disk> \
      --property cpu_arch=<arch>
    • <node> をベアメタルノードの ID に置き換えてください。
    • <cpu> は、CPU の数に置き換えます。
    • <ram> を MB 単位の RAM に置き換えます。
    • <disk> を GB 単位のディスクサイズに置き換えます。
    • <arch> は、アーキテクチャータイプに置き換えます。
  8. オプション: 各ノードの IPMI 暗号スイートを指定します。

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    • <node> をベアメタルノードの ID に置き換えてください。
    • <version> は、ノードで使用する暗号スイートのバージョンに置き換えます。以下の有効な値のいずれかに設定します。

      • 3 - ノードは SHA1 暗号スイートで AES-128 を使用します。
      • 17 - ノードは SHA256 暗号スイートで AES-128 を使用します。
  9. オプション:各ノードの IPMI の詳細を指定します。

    $ openstack baremetal node set <node> \
     --driver-info <property>=<value>
  10. オプション: 複数のディスクがある場合は、ルートデバイスのヒントを設定して、デプロイメントに使用するディスクをデプロイ ramdisk に通知します。

    $ openstack baremetal node set <node> \
      --property root_device='{"<property>": "<value>"}'
    • <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)。このプロパティーは、永続デバイス名が付いたデバイスにのみ使用してください。

        注記

        複数のプロパティーを指定する場合には、デバイスはそれらの全プロパティーと一致する必要があります。

  11. プロビジョニングネットワーク上の NIC の MAC アドレスを使用してポートを作成することにより、Bare Metal Provisioning サービスにノードのネットワークカードを通知します。

    $ openstack baremetal port create --node <node_uuid> <mac_address>
    • <node> をベアメタルノードの一意の ID に置き換えます。
    • <mac_address> は、PXE ブートに使用する NIC の MAC アドレスに置き換えます。
  12. ノードの設定を検証します。

    $ openstack baremetal node validate <node>
    +------------+--------+---------------------------------------------+
    | Interface  | Result | Reason                                      |
    +------------+--------+---------------------------------------------+
    | boot       | False  | Cannot validate image information for node  |
    |            |        | a02178db-1550-4244-a2b7-d7035c743a9b        |
    |            |        | because one or more parameters are missing  |
    |            |        | from its instance_info. Missing are:        |
    |            |        | ['ramdisk', 'kernel', 'image_source']       |
    | console    | None   | not supported                               |
    | deploy     | False  | Cannot validate image information for node  |
    |            |        | a02178db-1550-4244-a2b7-d7035c743a9b        |
    |            |        | because one or more parameters are missing  |
    |            |        | from its instance_info. Missing are:        |
    |            |        | ['ramdisk', 'kernel', 'image_source']       |
    | inspect    | None   | not supported                               |
    | management | True   |                                             |
    | network    | True   |                                             |
    | power      | True   |                                             |
    | raid       | True   |                                             |
    | storage    | True   |                                             |
    +------------+--------+---------------------------------------------+

    有効出力の Result は、次のことを示しています。

    • False: インターフェイスは検証に失敗しました。instance_info パラメーター [\'ramdisk', \'kernel', and \'image_source'] が見つからない場合、Compute サービスがデプロイメントプロセスの最初にこれらのパラメーターを設定するので、この時点では設定されていない可能性があ ります。ディスクイメージ全体を使用している場合は、検証にパスするために image_source を設定するだけでよい場合があります。
    • True: インターフェイスは検証にパスしました。
    • None: インターフェイスはドライバーでサポートされていません。

4.5.3. ベアメタルノードのプロビジョニング状態

ベアメタルノードは、そのライフタイム中に複数のプロビジョニング状態を移行します。ノードで実行される API 要求およびコンダクターイベントが移行を開始します。プロビジョニング状態には、"stable" と "in transition" の 2 つのカテゴリーがあります。

次の表を使用して、ノードが置かれることができるプロビジョニング状態と、ノードをあるプロビジョニング状態から別のプロビジョニング状態に移行するために使用できるアクションについて説明します。

表4.1 プロビジョニングの状態
StateCategory説明

enroll

安定

各ノードの初期状態。ノードの登録に関する情報は、Adding physical machines as bare metal nodes を参照してください。

検証

イントランジション

Bare Metal Provisioning サービスは、ノードの登録時に提供された driver_info 設定を使用してノードを管理できることを検証します。

manageable:

安定

ノードは、Bare Metal Provisioning サービスがノードを管理できることを確認したら、manageable の状態に移行します。以下のコマンドを使用して、ノードを 管理可能な 状態から以下のいずれかの状態に移行することができます。

  • openstack baremetal node adopt adopting active
  • openstack baremetal node provide cleaning available
  • openstack baremetal node clean cleaning available
  • openstack baremetal node inspect inspecting manageable

ノードを以下の failed 状態のいずれかに移行した後、そのノードを manageable の状態に移行する必要があります。

  • adopt failed
  • clean failed:
  • inspect failed

ノードを更新する必要がある場合には、ノードを manageable の状態にします。

検査

イントランジション

Bare Metal Provisioning サービスは、ノードのイントロスペクションを使用して、ハードウェアから派生したノードプロパティーを更新し、ハードウェアの現在の状態を反映します。ノードは同期検査のために manageable に遷移し、非同期検査の 待機 を検査します。ノードの 検査への移行は、エラーが発生した場合に失敗 しました。

inspect wait

イントランジション

非同期検査が進行中であることを示すプロビジョニング状態。ノードの検査に成功すると、ノードは manageable の状態に移行します。

inspect failed

安定

ノードの検査が失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、ノードを inspect failed 状態から以下のいずれかの状態に移行することができます。

  • openstack baremetal node inspect inspecting manageable
  • openstack baremetal node manage manageable

クリーニング

イントランジション

クリーニング 状態のノードはスクラブされ、既知の設定に再プログラムされます。ノードが クリーニング 状態にある場合、ネットワーク管理に応じて、コンダクターは以下のタスクを実行します。

  • Out-of-band: コンダクターは clean ステップを実行します。
  • In-band: コンダクターは、インバンドのクリーンステップを実行するために ramdisk を起動する環境を準備します。準備タスクには、PXE 設定ファイルの構築と DHCP の設定が含まれます。

clean wait

イントランジション

clean wait 状態のノードはスクラブされ、既知の設定に再プログラムされます。この状態は cleaning 状態と似ていますが、clean wait 状態で、コンダクターは ramdisk の起動または clean ステップの終了を待機中です。

openstack baremetal node abort を実行して、clean wait 状態のノードのクリーニングプロセスを中断できます。

available

安定

ノードが正常に事前設定され、クリーンアップされると、それらは available 状態に移行し、プロビジョニングの準備が整います。以下のコマンドを使用して、ノードを available 状態から以下のいずれかの状態に移行することができます。

  • openstack baremetal node deploy deploying active
  • openstack baremetal node manage manageable

デプロイ

イントランジション

デプロイ 状態のノードは、ワークロード用に準備されているので、以下のタスクを実行します。

  • ノードのデプロイメントに適切な BIOS オプションを設定する。
  • ドライブのパーティション設定とファイルシステムの作成。
  • ノード固有のネットワーク設定や設定ドライブパーティションなど、追加のサブシステムで必要になる可能性のある追加のリソースを作成します。

wait call-back

イントランジション

wait call-back 状態のノードは、ワークロード用に準備されています。この状態は deploying 状態と似ていますが、wait call-back 状態では、コンダクターはノードの準備前にタスクの完了を待っている点が異なります。たとえば、コンダクターがノードを準備する前に、以下のタスクを完了する必要があります。

  • ramdisk が起動している。
  • ブートローダーがインストールされている。
  • イメージはディスクに書き込まれます。

openstack baremetal node delete または openstack baremetal node undeploy を実行して、wait call-back 状態のノードのデプロイメントを中断できます。

デプロイに失敗しました

安定

ノードのデプロイメントが失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、ノードを デプロイに失敗した 状態から以下のいずれかの状態に移行できます。

  • openstack baremetal node deploy deploying active
  • openstack baremetal node rebuild deploying active
  • openstack baremetal node delete deleting cleaning clean wait cleaning available
  • openstack baremetal node undeploy deleting cleaning clean wait cleaning available

active

安定

アクティブ 状態のノードには、ワークロードがそれらで実行されている。Bare Metal Provisioning サービスは、電源状態を含む帯域外センサー情報を定期的に収集する場合があります。以下のコマンドを使用して、ノードを アクティブな 状態から以下のいずれかの状態に移行することができます。

  • openstack baremetal node delete deleting available
  • openstack baremetal node undeploy cleaning available
  • openstack baremetal node rebuild deploying active
  • openstack baremetal node rescue rescuing rescue

削除

イントランジション

ノードが deleting 状態の場合、Bare Metal Provisioning サービスはアクティブなワークロードを逆アセンブルし、ノードのデプロイメントまたはレスキュー時にノードに追加された設定およびリソースを削除します。ノードは 削除 状態から cleaning 状態へと迅速に移行し、次に clean wait 状態に移行します。

error

安定

ノードの削除に失敗した場合、ノードは エラー 状態に移行します。以下のコマンドを使用して、ノードを エラー 状態から以下のいずれかの状態に移行できます。

  • openstack baremetal node delete deleting available
  • openstack baremetal node undeploy cleaning available

採用

イントランジション

openstack baremetal node adopt コマンドを使用すると、最初のクリーニングやデプロイを行わずに、既存のワークロードを持つノードを manageable から active 状態に直接移行できます。ノードが 採用 状態の場合、Bare Metal Provisioning サービスは既存のワークロードでノードの管理を引き継ぎます。

レスキュー

イントランジション

rescuing 状態のノードは、以下のレスキュー操作を実行する準備ができています。

  • ノードのデプロイメントに適切な BIOS オプションを設定する。
  • ノード固有のネットワーク設定など、追加のサブシステムで必要になる可能性のある追加のリソースの作成。

rescue wait

イントランジション

rescue wait 状態のノードはレスキューされます。この状態は、レスキュー待機状態では、コンダクターが ramdisk の ブートを待機するか、または rescue という名前のユーザーのパスワードを設定するなど、ノードでインバンドの実行に必要なレスキューの一部を実行することを除いて、レスキューの状態と似ています。

openstack baremetal node abort を実行して、レスキュー待機 状態でノードのレスキュー操作を中断できます。

rescue failed

安定

ノードのレスキューが失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、レスキューの失敗 状態から以下のいずれかの状態にノードを移行できます。

  • openstack baremetal node rescue rescuing rescue
  • openstack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available

rescue

安定

rescue 状態のノードは、レスキュー ramdisk を実行している。Bare Metal Provisioning サービスは、電源状態を含む帯域外センサー情報を定期的に収集する場合があります。以下のコマンドを使用して、ノードを レスキュー 状態から以下のいずれかの状態に移行できます。

  • openstack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available

unrescuing

イントランジション

unrescuing 状態のノードは、レスキュー 状態から active 状態に移行する準備ができています。

unrescue が失敗する

安定

ノードのアンレスキュー操作が失敗したことを示すプロビジョニング状態。以下のコマンドを使用して、unrescue failed 状態から以下のいずれかの状態にノードを移行できます。

  • openstack baremetal node rescue rescuing rescue
  • openstack baremetal node unrescue unrescuing active
  • openstack baremetal node delete deleting available
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.