Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第3章 デプロイメントタイプの選択

単一型の HCI のデプロイでは、Ceph-OSD サービスをコンピュートノードに追加する環境ファイルを呼び出すので、より単純です。混合型の HCI では、HCI ノード向けのカスタムロール、フレーバー、およびネットワーク設定を定義する必要があります。両 HCI タイプは、対照的なデプロイメント方法を提供するので、どちらのタイプが環境により適しているかを判断してください。

以下のサブセクションでは、各デプロイメントタイプの方法を順を追って説明します。 いずれのデプロイメントタイプを使用する場合でも、カスタムの環境ファイルと Heat テンプレートを保管するための/home/stack/templates/ ディレクトリーを作成してください。

3.1. 単一型 HCI

単一型の HCI 構成で Red Hat OpenStack をデプロイするには、以下の環境ファイルを使用します。

/usr/share/openstack-tripleo-heat-templates/environments/hyperconverged-ceph.yaml

この環境ファイルは、CephOSD サービスを追加して Compute ロールを再定義します。デフォルトでは、hyperconverged-ceph.yaml 環境ファイルは分離された StorageMgmt ネットワークを使用していることを前提とし、それに応じて Compute のポートを設定します。

分離された StorageMgmt ネットワークを使用していない場合は、StorageMgmtPort サービスを無効にします。そのためには、以下の手順を実行してください。

  1. ~/templates/ に、以下の内容を記述した hyperconverged-non-isolated.yaml という名前の新しい環境ファイルを作成します。

    resource_registry:
      OS::TripleO::Compute::Ports::StorageMgmtPort: OS::Heat::None
  2. デプロイメントのプロセス中に (「単一型 HCI のデプロイ」)、openstack overcloud deploy を実行して ~/templates/hyperconverged-non-isolated.yaml を呼び出します。この環境ファイルは、他の設定を正しく上書きするように、最後に呼び出す必要があります。

4章ハイパーコンバージドノード上におけるリソース分離の設定」に進み、Compute サービスと Ceph Storage サービスの間でのリソースの競合を軽減するための手順に従ってください。

3.2. 混合型 HCI

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

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

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

注記

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

3.2.1. HCI ノード向けのカスタムロールの作成

アンダークラウド上では、以下のファイルでデフォルトのロールが定義されます。

/usr/share/openstack-tripleo-heat-templates/roles_data.yaml

自分で作成したカスタムテンプレート用ディレクトリー (~/templates/) にこのファイルをコピーします。

$ cp usr/share/openstack-tripleo-heat-templates/roles_data.yaml ~/templates/roles_data_hci.yaml

Compute と Ceph OSD を同じノードに配置する新規ロールを定義するには、ComputeCephStorage のエントリーの両方を組み合わせたロールを作成します。これは、OsdCompute という名前の新規ロールを ~/templates/roles_data_hci.yaml に追加して、Compute ロールサービスを OsdCompute にコピーし、Ceph OSD サービスを追加することによって作成します。

- name: OsdCompute # 1
  CountDefault: 1 # 2
  disable_upgrade_deployment: True
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    - OS::TripleO::Services::CephExternal
    - OS::TripleO::Services::CephOSD # 3
    - OS::TripleO::Services::Timezone
[...]
1
ロールには一意の名前を付ける必要があります。ここでは、OsdCompute と定義しています。
2
CountDefault: パラメーターは、director がそのロールをデフォルトで適用すべきノードの数を定義します (この場合は 1)。
3
OS::TripleO::Services::CephOSD のエントリーは、Compute ロール上には存在しない唯一の CephStorage ロールです。

Red Hat OpenStack Platform は、ハイパーコンバージドと非ハイパーコンバージドのコンピュートノードの両方の機能を備えたデプロイメントをサポートしています。非ハイパーコンバージドのコンピュートノードをデプロイしない場合には、Compute ロールの CountDefault: パラメーターを 0 に設定します。

- name: Compute
  CountDefault: 0
  disable_upgrade_deployment: True
  ServicesDefault:
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    - OS::TripleO::Services::CephExternal
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::Ntp
[...]

「CountDefault:」パラメーターを使用して、各ロールに割り当てるノードの数を定義することができます。ただし、この定義は、本書の後半の 「混合型 HCI のデプロイ」で説明しているように、別の Heat テンプレートで設定することを推奨します。

3.2.2. カスタムロール向けのポート割り当ての設定

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

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

resource_registry:
  OS::TripleO::OsdCompute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml  # 1
  OS::TripleO::OsdCompute::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api.yaml
  OS::TripleO::OsdCompute::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage.yaml
  OS::TripleO::OsdCompute::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant.yaml
  OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt.yaml # 2
1
DVR を使用する場合には、この行を以下の設定に置き換えます。
  OS::TripleO::OsdCompute::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml

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

2
If you want the OsdCompute role to select from a pool of IPs, replace this line with:
  OS::TripleO::OsdCompute::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool.yaml

If your environment uses IPv6 addresses, replace this line with:

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

If you want the OsdCompute role to select from a pool of IPv6 addresses, use:

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

For any other storage IP and port settings, review the other templates in /usr/share/openstack-tripleo-heat-templates/network/ports/ for hints on customization.

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

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

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

  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'
    注記

    ノードのタグ付けに関する詳しい情報は、「ノードの手動でのタグ付け」 (『オーバークラウド向けの Red Hat Ceph Storage』) を参照してください。

関連情報については、「ノードの手動でのタグ付け」および「ロールへのノードとフレーバーの割り当て」 (『オーバークラウド向けの Red Hat Ceph Storage』) を参照してください。