1.2. ハイパーコンバージドノード向けのオーバークラウドロールの準備
ノードをハイパーコンバージドとして指定するには、ハイパーコンバージドロールを定義する必要があります。Red Hat OpenStack Platform (RHOSP) は、ハイパーコンバージドノード向けの事前定義されたロール ComputeHCI
を提供します。このロールにより、Compute サービスと Ceph オブジェクトストレージデーモン (OSD) サービスを共存させ、同じハイパーコンバージドノード上にまとめてデプロイすることができます。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。[stack@director ~]$ source ~/stackrc
オーバークラウドに使用するその他のロールに加えて
ComputeHCI
ロールが含まれる新たなカスタムロールデータファイルを生成します。以下の例では、ロールデータファイルroles_data_hci.yaml
を生成します。これには、Controller
、ComputeHCI
、Compute
、およびCephStorage
ロールが含まれます。(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_hci.yaml \ Controller ComputeHCI Compute CephStorage
注記生成されたカスタムロールデータファイルの
ComputeHCI
ロール用にリスト表示されるネットワークには、Compute サービスと Storage サービスの両方に必要なネットワークが含まれます。以下に例を示します。- name: ComputeHCI description: | Compute node role hosting Ceph OSD tags: - compute networks: InternalApi: subnet: internal_api_subnet Tenant: subnet: tenant_subnet Storage: subnet: storage_subnet StorageMgmt: subnet: storage_mgmt_subnet
-
network_data.yaml
ファイルのローカルコピーを作成し、コンポーザブルネットワークをオーバークラウドに追加します。network_data.yaml
ファイルは、デフォルトのネットワーク環境ファイル/usr/share/openstack-tripleo-heat-templates/environments/*
と対話し、ComputeHCI
ロール用に定義したネットワークをハイパーコンバージドノードに関連付けます。詳しい情報は、オーバークラウドの高度なカスタマイズの カスタムコンポーザブルネットワークの追加 を参照してください。 -
Red Hat Ceph Storage のパフォーマンスを向上させるには、
network_data.yaml
のローカルコピーでジャンボフレーム用にStorage
およびStorageMgmt
ネットワーク両方の MTU 設定を9000
に更新します。詳細は、Configuring MTU Settings in Director および Configuring jumbo frames を参照してください。 ハイパーコンバージドノード向けの
computeHCI
オーバークラウドフレーバーを作成します。(undercloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> computeHCI
-
<ram_size_mb>
をベアメタルノードの RAM (MB 単位) に置き換えます。 -
<disk_size_gb>
をベアメタルノード上のディスク容量 (GB 単位) に置き換えます。 -
<no_vcpus>
をベアメタルノードの CPU 数に置き換えます。
注記これらの属性は、インスタンスのスケジューリングには使用されません。ただし Compute スケジューラーは、ディスク容量を使用してルートパーティションのサイズを決定します。
-
ノードリストを取得して UUID を把握します。
(undercloud)$ openstack baremetal node list
ハイパーコンバージドとして指定する各ベアメタルノードに、カスタムの HCI リソースクラスをタグ付けします。
(undercloud)$ openstack baremetal node set \ --resource-class baremetal.HCI <node>
<node>
をベアメタルノードの ID に置き換えてください。computeHCI
フレーバーをカスタムの HCI リソースクラスに関連付けます。(undercloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_HCI=1 \ computeHCI
Bare Metal サービスノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、すべての句読点をアンダースコアに置き換え、
CUSTOM_
の接頭辞を追加します。注記フレーバーが要求できるのは、ベアメタルリソースクラスの 1 つのインスタンスだけです。
以下のフレーバー属性を設定して、Compute スケジューラーがインスタンスのスケジューリングにベアメタルフレーバー属性を使用するのを防ぎます。
(undercloud)$ openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 computeHCI
以下のパラメーターを
node-info.yaml
ファイルに追加して、ハイパーコンバージドノードおよびコントローラーノードの数およびハイパーコンバージドおよびコントローラーに指定するノード用に使用するフレーバーを指定します。parameter_defaults: OvercloudComputeHCIFlavor: computeHCI ComputeHCICount: 3 OvercloudControlFlavor: baremetal ControllerCount: 3
関連情報
1.2.1. マルチディスククラスターのルートディスクの定義
ほとんどの Ceph Storage ノードは複数のディスクを使用します。ノードが複数のディスクを使用する場合、director はルートディスクを識別する必要があります。デフォルトのプロビジョニングプロセスでは、director はルートディスクにオーバークラウドイメージを書き込みます。
この手順を使用して、シリアル番号でルートデバイスを識別します。ルートディスクを特定するのに使用できるその他のプロパティーの詳細は、「ルートディスクを識別するプロパティー」 を参照してください。
手順
各ノードのハードウェアイントロスペクションからのディスク情報を確認します。以下のコマンドを実行して、ノードのディスク情報を表示します。
(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" } ]
アンダークラウドで、ノードのルートディスクを設定します。ルートディスクを定義するのに最も適切なハードウェア属性値を指定します。
(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 はオーバークラウドをプロビジョニングし、ルートディスクにオーバークラウドのイメージを書き込みます。
1.2.1.1. ルートディスクを識別するプロパティー
以下の属性を定義すると、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
を使用しないでください。この値は、ノードのブート時に変更される可能性があります。