3.3. リーフネットワーク向けのフレーバーの作成とノードのタグ付け

各リーフネットワークのそれぞれのロールには、フレーバーとロールの割り当てが必要です。これにより、ノードを対応するリーフにタグ付けすることができます。各フレーバーを作成してロールに割り当てるには、以下の手順を実施します。

手順

  1. stackrc ファイルを取得します。

    [stack@director ~]$ source ~/stackrc
  2. 各カスタムロール用のフレーバーを作成します。

    $ ROLES="control compute_leaf0 compute_leaf1 compute_leaf2 ceph-storage_leaf0 ceph-storage_leaf1 ceph-storage_leaf2"
    $ for ROLE in $ROLES; do openstack flavor create --id auto --ram <ram_size_mb> --disk <disk_size_gb> --vcpus <no_vcpus> $ROLE ; done
    $ for ROLE in $ROLES; do openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property resources:DISK_GB='0' --property resources:MEMORY_MB='0' --property resources:VCPU='0' $ROLE ; done
    • <ram_size_mb> をベアメタルノードの RAM (MB 単位) に置き換えます。
    • <disk_size_gb> をベアメタルノード上のディスク容量 (GB 単位) に置き換えます。
    • <no_vcpus> をベアメタルノードの CPU 数に置き換えます。
  3. ノードリストを取得して UUID を把握します。

    (undercloud)$ openstack baremetal node list
  4. カスタムリソースクラスを使用して、各ベアメタルノードをリーフネットワークおよびロールにタグ付けします。

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.LEAF-ROLE <node>

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

    たとえば、以下のコマンドを実行して、UUID 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 のノードを Leaf2 上の Compute ロールにタグ付けします。

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.COMPUTE-LEAF2 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13
  5. 各リーフネットワークロールフレーバーをカスタムリソースクラスに関連付けます。

    (undercloud)$ openstack flavor set \
     --property resources:CUSTOM_BAREMETAL_LEAF_ROLE=1 \
    <custom_role>

    Bare Metal Provisioning サービスノードのリソースクラスに対応するカスタムリソースクラスの名前を指定するには、リソースクラスを大文字に変換し、それぞれの句読点をアンダースコアに置き換え、CUSTOM_ の接頭辞を追加します。

    注記

    フレーバーが要求できるのは、ベアメタルリソースクラスの 1 つのインスタンスだけです。

  6. node-info.yaml ファイルで、各カスタムリーフロールに使用するフレーバーおよび各カスタムリーフロールに割り当てるノード数を指定します。たとえば、以下の設定では、使用するフレーバーと、カスタムのリーフロール compute_leaf0compute_leaf1compute_leaf2ceph-storage_leaf0ceph-storage_leaf1、および ceph-storage_leaf2 に割り当てるノード数を指定します。

    parameter_defaults:
      OvercloudControllerFlavor: control
      OvercloudComputeLeaf0Flavor: compute_leaf0
      OvercloudComputeLeaf1Flavor: compute_leaf1
      OvercloudComputeLeaf2Flavor: compute_leaf2
      OvercloudCephStorageLeaf0Flavor: ceph-storage_leaf0
      OvercloudCephStorageLeaf1Flavor: ceph-storage_leaf1
      OvercloudCephStorageLeaf2Flavor: ceph-storage_leaf2
      ControllerLeaf0Count: 3
      ComputeLeaf0Count: 3
      ComputeLeaf1Count: 3
      ComputeLeaf2Count: 3
      CephStorageLeaf0Count: 3
      CephStorageLeaf1Count: 3
      CephStorageLeaf2Count: 3