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ロール用に定義したネットワークをハイパーコンバージドノードに関連付けます。詳しい情報は、Advanced Overcloud Customizationの Adding a composable network を参照してください。 -
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 Controller: control ControllerCount: 3
関連情報
1.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 を使用しないでください。この値は、ノードのブート時に変更される可能性があります。
シリアル番号を使用してルートデバイスを指定することができます。
手順
各ノードのハードウェアイントロスペクションからのディスク情報を確認します。以下のコマンドを実行して、ノードのディスク情報を表示します。
(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" } ]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 はオーバークラウドをプロビジョニングし、ルートディスクにオーバークラウドのイメージを書き込みます。