第2章 ハイパーコンバージドノード向けのオーバークラウドロールの準備

ハイパーコンバージドノードを使用するには、そのノードにロールを定義する必要があります。Red Hat OpenStack Platform (RHOSP) は、ハイパーコンバージドノード向けの事前定義されたロール ComputeHCI を提供します。このロールにより、Compute サービスと Ceph オブジェクトストレージデーモン (OSD) サービスを共存させ、同じハイパーコンバージドノード上にまとめてデプロイすることができます。ComputeHCI ロールを使用するには、デプロイメントで使用するその他の全ロールに加えて、このロールが含まれるカスタムの roles_data.yaml ファイルを生成する必要があります。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. オーバークラウドに使用するその他のロールに加えて ComputeHCI ロールが含まれるカスタムの roles_data.yaml ファイルを作成します。

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_hci.yaml \
      Controller ComputeHCI Compute CephStorage

    カスタムロールに関する詳しい情報は、『オーバークラウドの高度なカスタマイズ』の「コンポーザブルサービスとカスタムロール」および「roles_data ファイルの検証」を参照してください。

  3. ~/templates に新規環境ファイル (ports.yaml) を作成します。
  4. ports.yaml ファイルに以下の設定を追加して、ComputeHCI ロールのポート割り当てを設定します。

    resource_registry:
      OS::TripleO::ComputeHCI::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/<ext_port_file>.yaml
      OS::TripleO::ComputeHCI::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml
      OS::TripleO::ComputeHCI::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml
      OS::TripleO::ComputeHCI::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml
      OS::TripleO::ComputeHCI::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/<storage_mgmt_file>.yaml
    • <ext_port_file> は外部ポートファイルの名前に置き換えてください。DVR を使用している場合は「external」に設定します。それ以外の場合は「noop」に設定します。DVR の詳細は、「 分散仮想ルーター(DVR)の設定」 を参照してください。
    • <storage_mgmt_file> は、ストレージ管理ファイルの名前に置き換えます。以下の値のいずれかに設定します。

      説明

      storage_mgmt

      IP プールから選択しない場合や、環境で IPv6 アドレスを使用しない場合に使用します。

      storage_mgmt_from_pool

      ComputeHCI ロールが IP プールから選択するようにする場合に使用します。

      storage_mgmt_v6

      環境で IPv6 アドレスを使用する場合に使用します。

      storage_mgmt_from_pool_v6

      ComputeHCI ロールが IPv6 アドレスプールから選択するようにする場合に使用します。

      詳細は、『Advanced Overcloud Customization』の「Basic network isolation」を参照してください。

  5. ComputeHCI ロール用のフレーバーを作成します。

    (undercloud)$ openstack flavor create --id auto \
     --ram 6144 --disk 40 --vcpus 4 computeHCI
  6. フレーバーの属性を設定します。

    (undercloud)$ openstack flavor set --property "cpu_arch"="x86_64" \
    --property "capabilities:boot_option"="local" \
    --property "resources:CUSTOM_BAREMETAL"="1" \
    --property "resources:DISK_GB"="0" \
    --property "resources:MEMORY_MB"="0" \
    --property "resources:VCPU"="0" computeHCI
  7. フレーバーを新規プロファイルにマッピングします。

    (undercloud)$ openstack flavor set \
     --property "capabilities:profile"="computeHCI" computeHCI
  8. ノード一覧を取得して UUID を把握します。

    (undercloud)$ openstack baremetal node list
  9. ノードを新規プロファイルにタグ付けします。

    (undercloud)$ openstack baremetal node set \
     --property capabilities='profile:computeHCI,boot_option:local' <UUID>

    詳細は、『Deploying an overcloud with containerized Red Hat Ceph』の「Manually tagging nodes into profiles」および「Assigning nodes and flavors to roles」を参照してください。

  10. computeHCI フレーバーを ComputeHCI ロールに関連付けるには、以下の設定を node-info.yaml ファイルに追加します。

    parameter_defaults:
      OvercloudComputeHCIFlavor: computeHCI
      ComputeHCICount: 3

2.1. マルチディスククラスターのルートディスクの定義

ノードで複数のディスクが使用されている場合には、director はプロビジョニング時にルートディスクを特定する必要があります。たとえば、ほとんどの Ceph Storage ノードでは、複数のディスクが使用されます。デフォルトのプロビジョニングプロセスでは、director はルートディスクにオーバークラウドイメージを書き込みます。

以下の属性を定義すると、director がルートディスクを特定するのに役立ちます。

  • 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)
重要

name 属性は、永続的なデバイス名が付いたデバイスにのみ使用します。他のデバイスのルートディスクを設定する際に、name を使用しないでください。この値は、ノードのブート時に変更される可能性があります。

シリアル番号を使用してルートデバイスを指定するには、以下の手順を実施します。

手順

  1. 各ノードのハードウェアイントロスペクションからのディスク情報を確認します。以下のコマンドを実行して、ノードのディスク情報を表示します。

    (undercloud) $ openstack baremetal introspection data save 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 | jq ".inventory.disks"

    たとえば、1 つのノードのデータで 3 つのディスクが表示される場合があります。

    [
      {
        "size": 299439751168,
        "rotational": true,
        "vendor": "DELL",
        "name": "/dev/sda",
        "wwn_vendor_extension": "0x1ea4dcc412a9632b",
        "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b",
        "model": "PERC H330 Mini",
        "wwn": "0x61866da04f380700",
        "serial": "61866da04f3807001ea4dcc412a9632b"
      }
      {
        "size": 299439751168,
        "rotational": true,
        "vendor": "DELL",
        "name": "/dev/sdb",
        "wwn_vendor_extension": "0x1ea4e13c12e36ad6",
        "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6",
        "model": "PERC H330 Mini",
        "wwn": "0x61866da04f380d00",
        "serial": "61866da04f380d001ea4e13c12e36ad6"
      }
      {
        "size": 299439751168,
        "rotational": true,
        "vendor": "DELL",
        "name": "/dev/sdc",
        "wwn_vendor_extension": "0x1ea4e31e121cfb45",
        "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45",
        "model": "PERC H330 Mini",
        "wwn": "0x61866da04f37fc00",
        "serial": "61866da04f37fc001ea4e31e121cfb45"
      }
    ]
  2. openstack baremetal node set --property root_device= を入力して、ノードのルートディスクを設定します。ルートディスクを定義するのに最も適切なハードウェア属性値を指定します。

    (undercloud) $ openstack baremetal node set --property root_device='{"serial":"<serial_number>"}' <node-uuid>

    たとえば、ルートデバイスをシリアル番号が 61866da04f380d001ea4e13c12e36ad6 の disk 2 に設定するには、以下のコマンドを入力します。

    (undercloud) $ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0
注記

各ノードの BIOS を設定して、選択したルートディスクからの起動を含めるようにします。最初にネットワークからのブートを試み、次にルートディスクからのブートを試みるように、ブート順序を設定します。

director は、ルートディスクとして使用する特定のディスクを把握します。openstack overcloud deploy コマンドを実行すると、director はオーバークラウドをプロビジョニングし、ルートディスクにオーバークラウドのイメージを書き込みます。