第4章 オーバークラウドのアップグレードの準備
以下の手順では、アップグレードのプロセスに向けたオーバークラウドの準備を行います。
前提条件
- アンダークラウドが最新バージョンにアップグレードされていること
4.1. オーバークラウドの登録情報の準備
オーバークラウドに最新のサブスクリプション情報を提供して、アップグレードプロセスの実行中にオーバークラウドが最新のパッケージを使用するようにする必要があります。
前提条件
- 最新の OpenStack Platform リポジトリーが含まれたサブスクリプション
- 登録のためのアクティベーションキーを使用する場合には、新しい OpenStack Platform リポジトリーを含む新規アクティベーションキーを作成すること
手順
登録情報が記載された環境ファイルを編集します。以下に例を示します。
$ vi ~/templates/rhel-registration/environment-rhel-registration.yaml
以下のパラメーター値を編集します。
rhel_reg_repos- Red Hat OpenStack Platform 12 の新しいリポジトリーが含まれるように更新します。
rhel_reg_activation_key- Red Hat OpenStack Platform 12 のリポジトリーにアクセスするためのアクティベーションキーを更新します。
rhel_reg_sat_repo- Red Hat Satellite 6 のより新しいバージョンを使用する場合には、Satellite 6 の管理ツールが含まれているリポジトリーを更新します。
- 環境ファイルを保存します。
関連情報
- 登録のパラメーターに関する詳しい説明は、『Advanced Overcloud Customizations』ガイドの「Registering the Overcloud with an Environment File」の項を参照してください。
4.2. コンテナー化されたサービスの準備
Red Hat OpenStack Platform は、コンテナーを使用して OpenStack サービスをホストおよび実行するようになりました。これには、以下の操作を実行する必要があります。
- レジストリーなどのコンテナーイメージソースの設定
- イメージソース上のイメージの場所を指定した環境ファイルの生成
- オーバークラウドデプロイメントへの環境ファイルの追加
この環境ファイルを異なるソース種別用に生成する方法についての全手順は、『director のインストールと使用方法』ガイドの「コンテナーレジストリー情報の設定」を参照してください。
生成される環境ファイル (/home/stack/templates/overcloud_images.yaml) には、各サービスのコンテナーイメージをポイントするパラメーターが記載されます。今後実行する全デプロイメント操作でこの環境ファイルを指定してください。
4.3. 新規コンポーザブルサービスの作成
Red Hat OpenStack Platform の今回のバージョンには、新たなコンポーザブルサービスが含まれています。カスタムの roles_data ファイルを使用する場合には、これらの新しいサービスを該当するロールに追加してください。
全ロール
以下の新規サービスは全ロールに適用されます。
OS::TripleO::Services::CertmongerUser- オーバークラウドが Certmonger からの証明書を必要とするようにすることができます。TLS/SSL 通信を有効にしている場合にのみ使用されます。
OS::TripleO::Services::Docker-
コンテナー化されたサービスを管理するために
dockerをインストールします。 OS::TripleO::Services::MySQLClient- オーバークラウドのデータベースクライアントツールをインストールします。
OS::TripleO::Services::ContainersLogrotateCrond-
コンテナーログ用の
logrotateサービスをインストールします。 OS::TripleO::Services::Securetty-
ノード上で
securettyの設定ができるようにします。environments/securetty.yaml環境ファイルで有効化します。 OS::TripleO::Services::Tuned-
Linux のチューニングデーモン (
tuned) を有効化して設定します。
特定のロール
以下の新規サービスは特定のロールに適用されます。
OS::TripleO::Services::Clustercheck-
OS::TripleO::Services::MySQLservice, such as the Controller またはスタンドアロンの Database ロールなど、OS::TripleO::Services::MySQLサービスも使用するロールに必要です。 OS::TripleO::Services::Iscsid-
Controller ロール、Compute ロール、BlockStorage ロールで
iscsidサービスを設定します。 OS::TripleO::Services::NovaMigrationTarget- コンピュート ノード上でマイグレーションターゲットサービスを設定します。
カスタムの roles_data ファイルを使用する場合には、必要なロールにこれらのサービスを追加してください。
上記に加えて、特定のカスタムロール向けのサービスの最新のリストは、『Advanced Overcloud Customization』ガイドの「Service Architecture: Standalone Roles」の項を参照してください。
4.4. コンポーザブルネットワークの準備
Red Hat OpenStack Platform の今回のバージョンでは、コンポーザブルネットワーク向けの新機能が導入されています。カスタムの roles_data ファイルを使用する場合には、ファイルを編集して、コンポーザブルネットワークを各ロールに追加します。コントローラーノードの場合の例を以下に示します。
- name: Controller
networks:
- External
- InternalApi
- Storage
- StorageMgmt
- Tenant
その他の構文例については、デフォルトの /usr/share/openstack-tripleo-heat-templates/roles_data.yaml ファイルを確認してください。また、ロールの例のスニペットについては、/usr/share/openstack-tripleo-heat-templates/roles を確認してください。
カスタムのスタンドアロンロールとコンポーザブルネットワークの対応表を以下に示します。
| ロール | 必要なネットワーク |
|---|---|
|
Ceph Storage Monitor |
|
|
Ceph Storage OSD |
|
|
Ceph Storage RadosGW |
|
|
Cinder API |
|
|
Compute |
|
|
Controller |
|
|
データベース |
|
|
Glance |
|
|
Heat |
|
|
Horizon |
|
|
Ironic |
必要なネットワークはなし。API には、プロビジョニング/コントロールプレーンネットワークを使用します。 |
|
Keystone |
|
|
Load Balancer |
|
|
Manila |
|
|
メッセージバス |
|
|
Networker |
|
|
Neutron API |
|
|
Nova |
|
|
OpenDaylight |
|
|
Redis |
|
|
Sahara |
|
|
Swift API |
|
|
Swift ストレージ |
|
|
Telemetry |
|
4.5. 非推奨パラメーターの準備
以下のパラメーターは非推奨となり、ロール固有のパラメーターに置き換えられた点に注意してください。
| 旧パラメーター | 新規パラメーター |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
カスタムの環境ファイルでこれらのパラメーターを更新します。
4.6. Ceph Storage ノードのアップグレードの準備
コンテナー化されたサービスにアップグレードされたため、Ceph Storage ノードのインストールと更新の方法が変わりました。Ceph Storage の設定では、ceph-ansible パッケージ内の Playbook のセットを使用するようになりました。このパッケージはアンダークラウドにインストールします。
前提条件
- オーバークラウドに、director で管理されている Ceph Storage クラスターがあること
手順
ceph-ansibleパッケージをアンダークラウドにインストールします。[stack@director ~]$ sudo yum install -y ceph-ansible
ストレージの環境ファイルで、最新のリソースと設定を使用するようにします。これは、以下のように変更する必要があります。
-
resource_registryはコア Heat テンプレートコレクションのdocker/servicesサブディレクトリーからコンテナー化されたサービスを使用します。以下に例を示します。
-
resource_registry: OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
新しい
CephAnsibleDisksConfigパラメーターを使用して、ディスクのマッピングの方法を定義します。以前のバージョンの Red Hat OpenStack Platform では、ceph::profile::params::osdshieradata を使用して OSD レイアウトを定義していました。この hieradata をCephAnsibleDisksConfigパラメーターの構成に変換します。たとえば、hieradata に以下の内容が記載されているとします。parameter_defaults: ExtraConfig: ceph::profile::params::osd_journal_size: 512 ceph::profile::params::osds: '/dev/sdb': {} '/dev/sdc': {} '/dev/sdd': {}この場合には、
CephAnsibleDisksConfigは以下のようになります。parameters_default: CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd journal_size: 512 osd_scenario: collocatedceph-ansibleに使用する OSD ディスクレイアウトオプションの完全な一覧は、/usr/share/ceph-ansible/group_vars/osds.yml.sampleのサンプルファイルを参照してください。
関連情報
- ハイパーコンバージドインフラストラクチャーを使用する環境には、追加の設定が必要である点に注意してください。「Hyper-Converged Infrastructure (HCI) のアップグレードの準備」を参照してください。
-
OpenStack Platform director を使用した
ceph-ansibleの管理に関する詳しい情報は、『Deploying an Overcloud with Containerized Red Hat Ceph』ガイドを参照してください。
4.7. Hyper-Converged Infrastructure (HCI) のアップグレードの準備
ハイパーコンバージドインフラストラクチャー (HCI) では、Ceph Storage と Compute サービスが単一のロール内に配置されます。ただし、HCI ノードは通常のコンピュートノードと同様にアップグレードします。HCI を使用している場合には、コアパッケージのインストールが完了してコンテナーサービスが有効化されるまで、Ceph Storage サービスをコンテナー化されたサービスへの移行は遅らせてください。
前提条件
- オーバークラウドで、Compute と Ceph Storage の両方が配置されたロールを使用していること
手順
- Ceph Storage の設定が含まれた環境ファイルを編集します。
resource_registryが Puppet リソースを使用するように設定します。以下に例を示します。resource_registry: OS::TripleO::Services::CephMon: ../puppet/services/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../puppet/services/ceph-osd.yaml OS::TripleO::Services::CephClient: ../puppet/services/ceph-client.yaml
注記/usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph.yamlの内容を例として使用します。- 「オーバークラウドノードのアップグレード」の手順に従って、コントローラーベースのノードをコンテナー化されたサービスにアップグレードします。
- 「コンピュートノードのアップグレード」の手順に従って HCI ノードをアップグレードします。
Ceph Storage 設定の
resource_registryを編集して、コンテナー化されたサービスを使用するようにします。resource_registry: OS::TripleO::Services::CephMon: ../docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: ../docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: ../docker/services/ceph-ansible/ceph-client.yaml
注記/usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yamlの内容を例として使用します。ストレージの環境ファイルの
parameter_defaultsセクションにCephAnsiblePlaybookパラメーターを追加します。CephAnsiblePlaybook: /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
ストレージの環境ファイルの
parameter_defaultsセクションにCephAnsibleDisksConfigパラメーターを追加して、ディスクレイアウトを定義します。以下に例を示します。CephAnsibleDisksConfig: devices: - /dev/vdb - /dev/vdc - /dev/vdd journal_size: 512 osd_scenario: collocated- 「アップグレードの最終処理」の手順に従って、オーバークラウドのアップグレードの最終処理を実行します。
関連情報
-
OpenStack Platform director を使用した
ceph-ansibleの管理の設定に関する詳しい情報は、『Deploying an Overcloud with Containerized Red Hat Ceph』ガイドを参照してください。
4.8. SSL/TLS を介してアンダークラウドのパブリック API にアクセスするための準備
オーバークラウドは、アップグレード中にアンダークラウドの OpenStack Object Storage (swift) のパブリック API にアクセスする必要があります。アンダークラウドで自己署名証明書を使用している場合には、アンダークラウドの認証局を各オーバークラウドノードに追加する必要があります。
前提条件
- アンダークラウドで、パブリック API に SSL/TLS を使用していること
手順
director の動的な Ansible スクリプトが OpenStack Platform 12 バージョンに更新され、オーバークラウドプラン内の
RoleNetHostnameMapHeat パラメーターを使用してインベントリーを定義するようになりました。ただし、オーバークラウドは現在 OpenStack Platform 11 のテンプレートバージョンを使用しており、これにはRoleNetHostnameMapパラメーターがないため、一時的な静的インベントリーファイルを作成する必要があります。このファイルは、以下のコマンドを実行すると生成することができます。$ openstack server list -c Networks -f value | cut -d"=" -f2 > overcloud_hosts
以下の内容を記述した Ansible Playbook (
undercloud-ca.yml) を作成します。--- - name: Add undercloud CA to overcloud nodes hosts: all user: heat-admin become: true tasks: - name: Copy undercloud CA copy: src: ca.crt.pem dest: /etc/pki/ca-trust/source/anchors/ - name: Update trust command: "update-ca-trust extract" - name: Get the hostname of the undercloud delegate_to: 127.0.0.1 command: hostname register: undercloud_hostname - name: Verify URL uri: url: https://{{ undercloud_hostname.stdout }}:13808/healthcheck return_content: yes register: verify - name: Report output debug: msg: "{{ ansible_hostname }} can access the undercloud's Public API" when: verify.content == "OK"この Playbook には複数のタスクが含まれており、各ノードで以下の操作を実行します。
-
アンダークラウドの認証局のファイル (
ca.crt.pem) をオーバークラウドノードにコピーします。このファイルの名前と場所は、設定によって異なる場合があります。この例では、自己署名証明書の手順 (『director のインストールと使用方法』の「SSL/TLS 証明書の設定」を参照) で定義された名前と場所を使用しています。 - オーバークラウドノードで、CA トラストデータベースを更新するコマンドを実行します。
- オーバークラウドノードから、アンダークラウドの Object Storage Public API をチェックして、成功したかどうかを報告します。
-
アンダークラウドの認証局のファイル (
以下のコマンドで Playbook を実行します。
$ ansible-playbook -i overcloud_hosts undercloud-ca.yml
ここでは、一時インベントリーを使用して、Ansible にオーバークラウドノードを指定します。
その結果、Ansible の出力には、ノードのデバッグメッセージが表示されます。以下に例を示します。
ok: [192.168.24.100] => { "msg": "overcloud-controller-0 can access the undercloud's Public API" }
関連情報
- オーバークラウドでの Ansible 自動化の実行に関する詳しい情報は、『director のインストールと使用方法』ガイドの「Ansible 自動化の実行」 を参照してください。
4.9. 事前にプロビジョニングされたノードのアップグレードの準備
事前にプロビジョニング済みのノードは、director の管理外で作成されたノードです。事前にプロビジョニング済みのノードを使用するオーバークラウドには、アップグレードの前に追加のステップがいくつか必要です。
前提条件
- オーバークラウドが事前にプロビジョニング済みのノードを使用していること
手順
以下のコマンドを実行して、
OVERCLOUD_HOSTS環境変数内のノードの IP アドレスの一覧を保存します。$ source ~/stackrc $ export OVERCLOUD_HOSTS=$(openstack server list -f value -c Networks | cut -d "=" -f 2 | tr '\n' ' ')
以下のスクリプトを実行します。
$ /usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh
- アップグレードを開始します。
コンピュートノードまたは Object Storage ノードをアップグレードする場合には、以下を使用します。
-
upgrade-non-controller.shスクリプトに-Uオプションを使用してstackユーザーを指定します。事前にプロビジョニング済みのノードのデフォルトユーザーはheat-adminではなくstackであることがその理由です。 --upgradeオプションでノードの IP アドレスを使用します。これは、ノードが director の Compute (Nova) と Bare Metal (ironic) のサービスで管理されるのでノード名がないためです。以下に例を示します。
$ upgrade-non-controller.sh -U stack --upgrade 192.168.24.100
-
関連情報
- 事前にプロビジョニングされたノードに関する詳しい情報は、『director のインストールと使用方法』 ガイドの「事前にプロビジョニングされたノードを使用した基本的なオーバークラウドの設定」を参照してください。
4.10. NFV を設定したオーバークラウドの準備
Red Hat OpenStack Platform 11 から Red Hat OpenStack Platform 12 にアップグレードすると、OVS パッケージもバージョン 2.6 から 2.7 に更新されます。OVS-DPDK が設定されている場合にこの移行をサポートするには、以下のガイドラインに従ってください。
Red Hat OpenStack Platform 12 は OVS クライアントモードで稼働します。
前提条件
- オーバークラウドでネットワーク機能仮想化 (NFV) を使用していること
手順
オーバークラウドを Red Hat OpenStack Platform 11 から OVS-DPDK を設定した Red Hat OpenStack Platform 12 にアップグレードする場合には、環境ファイルに以下の追加パラメーターを設定する必要があります。
parameter_defaultsセクションで、アップグレードプロセス中にos-net-configを実行して、OVS 2.7 PCI アドレスを DPDK ポートに関連付けするためのするためのネットワークデプロイメントパラメーターを追加します。parameter_defaults: ComputeNetworkDeploymentActions: ['CREATE', 'UPDATE']
パラメーター名は、DPDK のデプロイに使用するロール名と一致する必要があります。この例では、ロール名は
Computeなので、パラメーター名はComputeNetworkDeploymentActionsとなっています。注記初回のアップグレードの後には、このパラメーターは必要ないので、環境ファイルから削除すべきです。
resource_registryセクションで、ComputeNeutronOvsAgentサービスをneutron-ovs-dpdk-agentpuppet サービスに上書きします。resource_registry: OS::TripleO::Services::ComputeNeutronOvsAgent: /usr/share/openstack-tripleo-heat-templates/puppet/services/neutron-ovs-dpdk-agent.yaml
Red Hat OpenStack Platform 12 は、新しい
ComputeOvsDpdkロールの追加をサポートするための新しいサービス (OS::TripleO::Services::ComputeNeutronOvsDpdk) を追加しました。上記の例では、このサービスをアップグレード向けに外部にマッピングしています。
編集した環境ファイルは、「オーバークラウドノードのアップグレード」の openstack overcloud deploy コマンドの一部として追加します。
4.11. オーバークラウドのアップグレードの一般的な考慮事項
オーバークラウドのアップグレードを実行する前に考慮すべき一般的な注意事項は以下の通りです。
- Custom ServiceNetMap
-
カスタムの
ServiceNetMapを指定してオーバークラウドをアップグレードする場合には、新規サービス向けに最新のServiceNetMapが含まれるようにしてください。デフォルトのサービス一覧は、network/service_net_map.j2.yamlファイルのServiceNetMapDefaultsパラメーターで定義されます。カスタムのServiceNetMapの使用方法については、『オーバークラウドの高度なカスタマイズ』の「Isolating Networks」のセクションを参照してください。 - 外部のロードバランシング
- 外部のロードバランシングを使用している場合には、ロードバランサーに追加する新規サービスがあるかどうかを確認してください。サービスの設定については、『External Load Balancing for the Overcloud』ガイドの「Configuring Load Balancing Options」の項を参照してください。
- 非推奨となったデプロイメントオプション
-
openstack overcloud deployコマンドの一部のオプションは非推奨になりました。これらのオプションの代わりに、同等の Heat パラメーターを使用すべきです。これらのパラメーターの対照表は、『director のインストールと使用方法』ガイドの「CLI ツールを使用したオーバークラウドの作成」を参照してください。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.