第6章 HCI オーバークラウドのデプロイ

すべての HCI 設定が完了したら、オーバークラウドをデプロイする必要があります。デプロイオプションについての詳細は、『director のインストールと使用方法』「CLI ツールを使用した基本的なオーバークラウドの設定」を参照してください。

重要

Red Hat OpenStack Platform (RHOSP) HCI 環境をデプロイする際には、インスタンス HA を有効にしないでください。Red Hat Ceph Storage を使用したハイパーコンバージド RHOSP デプロイメントでインスタンス HA を使用する場合は、Red Hat の担当者にお問い合わせください。

前提条件

  • その他すべての Red Hat Ceph Storage の設定に、別のベース環境ファイルを 1 つ (または複数) 使用している (例: /home/stack/templates/storage-config.yaml)。詳しくは、『Deploying an overcloud with containerized Red Hat Ceph』の「Customizing the Storage service」および「Sample environment file: creating a Ceph Storage cluster」を参照してください。
  • ベース環境ファイルで、各ロールに割り当てるノード数を定義している。詳細は、『Deploying an overcloud with containerized Red Hat Ceph』の「Assigning nodes and flavors to roles」を参照してください。
  • アンダークラウドのインストール時に、undercloud.conf ファイルに generate_service_certificate=false を設定します。設定していない場合は、『Advanced Overcloud Customization』の「Enabling SSL/TLS on Overcloud Public Endpoints」で説明するように、オーバークラウドのデプロイ時にトラストアンカーを挿入する必要があります。

手順

  • その他の環境ファイルと共に新しいロールファイルおよび環境ファイルをスタックに追加して、HCI オーバークラウドをデプロイします。

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -r /home/stack/templates/roles_data_hci.yaml \
      -e /home/stack/templates/ports.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -e /home/stack/templates/storage-config.yaml \
      -e /home/stack/templates/storage-container-config.yaml \
      -e /home/stack/templates/network.yaml \
      [-e /home/stack/templates/ceph-backfill-recovery.yaml \ ]
      --ntp-server pool.ntp.org

    デプロイメントコマンドに /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml を指定すると、すべてのデフォルト設定と共にコンテナー化された Red Hat Ceph クラスターをデプロイするベース環境ファイルが追加されます。詳しくは、『Deploying an overcloud with containerized Red Hat Ceph』を参照してください。

注記

デプロイメントで Single Root Input/Output Virtualization (SR-IOV) を使用する場合は、デプロイメントコマンドに以下のオプションを追加します。

  • -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml
  • -e /home/stack/templates/network-environment.yaml
ヒント

アンサー ファイルを使用して、デプロイメントに追加する環境ファイルを指定することも可能です。詳しい情報は、『director のインストールと使用方法』「オーバークラウドデプロイメントへの環境ファイルの追加」を参照してください。

6.1. ceph-ansible を実行するノードの限定

ceph-ansible を実行するノードを限定することで、デプロイメントの更新時間を短縮することができます。Red Hat OpenStack Platform (RHOSP) で Ceph の設定に config-download が使用されている場合、デプロイメント全体に対して config-download および ceph-ansible を実行する代わりに、--limit オプションを使用してノードの一覧を指定することができます。この機能は、たとえばオーバークラウドをスケールアップする場合や障害の発生したディスクを置き換える場合に役立ちます。このようなシナリオでは、環境に追加する新規ノードでのみデプロイメントを実行することができます。

障害の発生したディスクの置き換え時に --limit を使用するシナリオの例

以下の手順例では、Ceph ストレージノード oc0-cephstorage-0 でディスク障害が発生したため、ベンダーでフォーマット済みの新規ディスクを受け入れます。新しいディスクを OSD として使用することができるように、Ansible を oc0-cephstorage-0 ノード上で実行する必要があります。しかし、その他すべての Ceph Storage ノードで実行する必要はありません。例として記述した環境ファイルおよびノードの名前を、実際の環境に適した名前に置き換えてください。

手順

  1. アンダークラウドノードに stack ユーザーとしてログインし、source コマンドで stackrc 認証情報ファイルを読み込みます。

    # source stackrc
  2. 新規ディスクが不足している OSD を起動するのに使用されるように、以下の手順の 1 つを実施します。

    • --limit オプションを使用して ceph-ansible を実行するノードを指定し、スタックの更新を実行する。

      $ openstack overcloud deploy --templates \
        -r /home/stack/roles_data.yaml \
        -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \
        -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
        -e ~/my-ceph-settings.yaml \
        -e <other-environment_files> \
        --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud

      この例では、Ceph mon の OSD 定義を変更するのに Ansible が必要なため、コントローラーが含まれています。

    • config-downloadansible-playbook-command.sh スクリプトが生成されている場合は、--limit オプションを指定してスクリプトを実行して、指定したノードを ceph-ansible に渡すこともできます。

      ./ansible-playbook-command.sh --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
      警告
      必ずアンダークラウドを制限一覧に含める必要があります。含めないと、--limit を使用する際に ceph-ansible を実行することができません。この注意が必要なのは、アンダークラウドでのみ実行される external_deploy_steps_tasks Playbook によりceph-ansible が実行されるためです。