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

オーバークラウドは通常、コントローラーノード、コンピュートノード、異なるストレージノード種別など、事前定義されたロールのノードで構成されます。これらのデフォルトの各ロールには、director ノード上にあるコアの Heat テンプレートコレクションで定義されているサービスセットが含まれます。ただし、コアの Heat テンプレートのアーキテクチャーは、以下のような設定を行う手段を提供します。

  • カスタムロールの作成
  • 各ロールへのサービスの追加と削除

これにより、Compute サービスと Ceph Object Storage Daemon (OSD) サービスの両方で新規ロールを定義することが可能となり、実質的には両サービスが同じ場所に配置され、同じ ハイパーコンバージドノード に一緒にデプロイすることができます。

オーバークラウドに使用するロールは、roles_data.yaml ファイルで定義されます。director を使用すると、オーバークラウドに使用する全ロールが含まれた、カスタムバージョンのファイルを生成することができます。カスタムバージョンは、「6章デプロイメント」の作業中に呼び出すことができます。

Red Hat OpenStack Platform は、ハイパーコンバージドノード専用に ComputeHCI という事前定義済みのカスタムロールを提供しています。このロールを使用するには、ComputeHCI ロールとオーバークラウドに使用するその他のロールが含まれたカスタムの roles_data.yaml ファイルを作成する必要があります。

$ openstack overcloud roles generate -o /home/stack/roles_data.yaml Controller ComputeHCI Compute CephStorage

このコマンドにより、カスタムの roles_data.yaml ファイルが /home/stack/roles.data.yaml に生成されます。このカスタムファイルには、ComputeHCI ロールとともに、ControllerComputeCephStorage のロールが含まれます。オーバークラウドで使用するその他のロールをこのコマンドに追加してください。

注記

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

3.1. ComputeHCI ロール向けのポート割り当ての設定

/usr/share/openstack-tripleo-heat-templates/ にあるデフォルトの Heat テンプレートは、デフォルトロールに必要なネットワーク設定を提供します。この設定には、各ノード上の各サービスに IP アドレスとポートを割り当てる方法が含まれます。

ComputeHCI などのカスタムロールには、必須のポート割り当て用 Heat テンプレートはないので、自分で定義する必要があります。そのためには、~/templates に以下の内容を記述した ports.yaml という名前の新規テンプレートを作成します。

resource_registry:
  OS::TripleO::ComputeHCI::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml  # 1
  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.yaml # 2
1
DVR を使用する場合には、この行を以下の設定に置き換えます。
  OS::TripleO::ComputeHCI::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml

詳しくは、『ネットワークガイド』「分散仮想ルーター (DVR) の設定」を参照してください。

2
ComputeHCI ロールが IP のプールから選択するようにするには、この行を以下にように置き換えます。
  OS::TripleO::ComputeHCI::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool.yaml

環境ファイルで IPv6 アドレスを使用している場合には、この行を以下のように置き換えます。

  OS::TripleO::ComputeHCI::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_v6.yaml

ComputeHCI ロールが IPv6 アドレスプールから選択するようにするには、以下の設定を使用します。

  OS::TripleO::ComputeHCI::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool_v6.yaml

その他のストレージ IP およびポートの設定については、/usr/share/openstack-tripleo-heat-templates/network/ports/ を参考にしてカスタマイズしてください。

関連情報については、 「ネットワークの分離」および「デプロイするネットワークの選択」 (『オーバークラウドの高度なカスタマイズ』) を参照してください。

3.2. 新規フレーバーの作成と割り当て

「前提条件」で述べているように、各ノードの登録と、対応するフレーバーとのタグ付けが完了している必要があります。ただし、混合型の HCI のデプロイでは、新しい ComputeHCI ロールを定義する必要があるため、そのための新規フレーバーを作成する必要もあります。

  1. osdcompute という名前の新規フレーバーを作成するには、以下のコマンドを実行します。

    $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 osdcompute
    注記

    このコマンドについての詳しい情報は、openstack flavor create --help で確認してください。

  2. このフレーバーを新規プロファイルにマッピングします。このプロファイルも、osdcompute という名前です。

    $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="osdcompute" osdcompute
    注記

    このコマンドについての詳しい情報は、openstack flavor set --help で確認してください。

  3. ノードを新しい osdcompute プロファイルにタグ付けします。

    $ ironic node-update UUID add properties/capabilities='profile:osdcompute,boot_option:local'
    注記

    ノードのタグ付けに関する詳しい情報は、「Manually Tagging the Nodes」 (『Deploying an Overcloud with Containerized Red Hat Ceph』) を参照してください。

関連情報については、「Manually Tagging the Nodes」「Assigning Nodes and Flavors to Roles」 (『Deploying an Overcloud with Containerized Red Hat Ceph』) を参照してください。