Red Hat OpenStack Platform の最新状態の維持
Red Hat OpenStack Platform のマイナーアップデートの実施
概要
第1章 はじめに リンクのコピーリンクがクリップボードにコピーされました!
本書で説明するワークフローは、お使いの Red Hat OpenStack Platform 15 環境が最新のパッケージおよびコンテナーで更新された状態を維持するのに役立ちます。
本ガイドは、以下のバージョンのアップグレードパスを提供します。
| 古いオーバークラウドバージョン | 新しいオーバークラウドバージョン |
|---|---|
| Red Hat OpenStack Platform 15 | Red Hat OpenStack Platform 15.z |
1.1. ワークフローの概要 リンクのコピーリンクがクリップボードにコピーされました!
以下の表には、アップグレードのプロセスに必要なステップの概要をまとめています。
| ステップ | 説明 |
|---|---|
| アンダークラウドの更新 | アンダークラウドを最新の OpenStack Platform 15.z バージョンに更新します。 |
| オーバークラウドの更新 | オーバークラウドを最新の OpenStack Platform 15.z バージョンに更新します。 |
| Ceph Storage ノードの更新 | すべての Ceph Storage サービスをアップグレードします。 |
| アップグレードの最終段階 | コンバージェンスのコマンドを実行して、オーバークラウドスタックをリフレッシュします。 |
第2章 アンダークラウドの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、アンダークラウドおよびそのオーバークラウドイメージを最新の Red Hat OpenStack Platform 15 バージョンに更新します。
2.1. コンテナー化されたアンダークラウドのマイナーアップデートの実施 リンクのコピーリンクがクリップボードにコピーされました!
director では、アンダークラウドノード上のパッケージを更新するためのコマンドが提供されています。これにより、OpenStack Platform 環境の現行バージョン内のマイナーアップデートを実行することができます。
手順
-
director に
stackユーザーとしてログインします。 dnfコマンドを実行して、director の主要なパッケージをアップグレードします。sudo dnf update -y python3-tripleoclient* openstack-tripleo-common openstack-tripleo-heat-templates
$ sudo dnf update -y python3-tripleoclient* openstack-tripleo-common openstack-tripleo-heat-templatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow director は
openstack undercloud upgradeコマンドを使用して、アンダークラウドの環境を更新します。以下のコマンドを実行します。openstack undercloud upgrade
$ openstack undercloud upgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - アンダークラウドのアップグレードプロセスが完了するまで待ちます。
アンダークラウドをリブートして、オペレーティングシステムのカーネルとその他のシステムパッケージを更新します。
sudo reboot
$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードがブートするまで待ちます。
2.2. オーバークラウドイメージの更新 リンクのコピーリンクがクリップボードにコピーされました!
現在のオーバークラウドイメージを新しいバージョンに置き換える必要があります。新しいイメージにより、director は最新バージョンの OpenStack Platform ソフトウェアを使用してノードのイントロスペクションとプロビジョニングを行うことができるようになります。
前提条件
- アンダークラウドが最新バージョンに更新されていること
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow stackユーザーのホーム下のimagesディレクトリー (/home/stack/images) から既存のイメージを削除します。rm -rf ~/images/*
$ rm -rf ~/images/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow アーカイブを展開します。
cd ~/images for i in /usr/share/rhosp-director-images/overcloud-full-latest-15.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-15.0.tar; do tar -xvf $i; done cd ~
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-15.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-15.0.tar; do tar -xvf $i; done $ cd ~Copy to Clipboard Copied! Toggle word wrap Toggle overflow director に最新のイメージをインポートします。
openstack overcloud image upload --update-existing --image-path /home/stack/images/
$ openstack overcloud image upload --update-existing --image-path /home/stack/images/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが新しいイメージを使用するように設定します。
openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
$ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規イメージが存在することを確認します。
openstack image list ls -l /httpboot
$ openstack image list $ ls -l /httpbootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
オーバークラウドノードをデプロイする際には、オーバークラウドイメージのバージョンが、その Heat テンプレートバージョンに対応していることを確認してください。たとえば、OpenStack Platform 15 の Heat テンプレートには、OpenStack Platform 15 のイメージのみを使用してください。
2.3. アンダークラウドアップグレード後の注意事項 リンクのコピーリンクがクリップボードにコピーされました!
-
stackユーザーのホームディレクトリーでコアテンプレートのローカルセットを使用している場合には、『オーバークラウドの高度な カスタマイズ』の「カスタムのコア Heat テンプレートの使用」に記載の推奨ワークフローを使用して、テンプレートを更新するようにして ください。オーバークラウドをアップグレードする前に、ローカルコピーを更新する必要があります。
2.4. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドのアップグレードが完了しました。これでオーバークラウドを更新できるようになりました。
第3章 オーバークラウドの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、オーバークラウドを更新します。
前提条件
- アンダークラウドが最新バージョンに更新されていること
3.1. オーバークラウドの更新準備タスクの実行 リンクのコピーリンクがクリップボードにコピーされました!
更新するには、openstack overcloud update prepare コマンドを実行する必要があります。このコマンドにより、次のタスクが実行されます。
- オーバークラウドのプランを OpenStack Platform 15 に更新する
- 更新に向けてノードを準備する
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新準備コマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のオプションの中で、お使いの環境に適切なオプションを追加します。
-
カスタム設定環境ファイル (
-e) -
専用のカスタムロールを使用する場合は、カスタムロール (
roles_data) のファイルを追加します (-r)。 -
カスタムネットワークを使用する場合は、コンポーザブルネットワーク (
network_data) のファイルを追加します (-n)
-
カスタム設定環境ファイル (
- 更新の準備が完了するまで待ちます。
3.2. コンテナーイメージ準備タスクの実行 リンクのコピーリンクがクリップボードにコピーされました!
オーバークラウドには、更新を実行する前に最新の OpenStack Platform 15 コンテナーイメージが必要です。そのためには、container_image_prepare 外部更新プロセスを実行します。このプロセスを実行するには、container_image_prepare にタグ付けされたタスクに対して openstack overcloud external-update run コマンドを実行します。これらのタスクにより以下の操作が実施されます。
- お使いの環境に該当するすべてのコンテナーイメージ設定を自動的に準備する。
- 事前にこのオプションを無効にしていない限り、該当するコンテナーイメージをアンダークラウドにプルする。
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow container_image_prepareにタグ付けされたタスクに対してopenstack overcloud external-update runコマンドを実行します。openstack overcloud external-update run --tags container_image_prepare
$ openstack overcloud external-update run --tags container_image_prepareCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. すべてのコントローラーノードの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、全コントローラーノードを最新バージョンの OpenStack Platform 15 に更新します。このプロセスは、openstack overcloud update run コマンドに --nodes Controller オプションを指定して、操作をコントローラーノードのみに制限して実行する必要があります。
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新コマンドを実行します。
openstack overcloud update run --nodes Controller
$ openstack overcloud update run --nodes ControllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow - コントローラーノードの更新が完了するまで待ちます。
3.4. すべてのコンピュートノードの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、全コンピュートノードを最新バージョンの OpenStack Platform 15 に更新します。このプロセスでは、--nodes Compute オプションを指定して openstack overcloud update run コマンドを実行し、操作をコンピュートノードだけに制限します。
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新コマンドを実行します。
openstack overcloud update run --nodes Compute
$ openstack overcloud update run --nodes ComputeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - コンピュートノードの更新が完了するまで待ちます。
3.5. 全 HCI コンピュートノードの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、ハイパーコンバージドインフラストラクチャー (HCI) コンピュートノードを更新します。このプロセスには、以下の操作が必要です。
-
openstack overcloud update runコマンドに--nodes ComputeHCIオプションを指定して、操作を HCI ノードのみに制限して実行する -
openstack overcloud ceph-upgrade runコマンドを実行し、コンテナー化された Red Hat Ceph Storage 3 クラスターへの更新を実施する
現在、以下の Ansible と ceph-ansible の組み合わせがサポートされます。
-
ansible-2.6とceph-ansible-3.2の組み合わせ -
ansible-2.4とceph-ansible-3.1の組み合わせ
ご利用の環境が ansible-2.6 と ceph-ansible-3.1 の組み合わせである場合は、以下のコマンドを実行して ceph-ansible を最新バージョンに更新します。
subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-rpms # subscription-manager repos --enable=rhel-7-server-ansible-2.6-rpms # yum update ceph-ansible
# subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-rpms
# subscription-manager repos --enable=rhel-7-server-ansible-2.6-rpms
# yum update ceph-ansible
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新コマンドを実行します。
openstack overcloud update run --nodes ComputeHCI
$ openstack overcloud update run --nodes ComputeHCICopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードの更新が完了するまで待ちます。
Ceph Storage の更新コマンドを実行します。以下に例を示します。
openstack overcloud ceph-upgrade run \ --templates \ -e <ENVIRONMENT FILE> \ -e /home/stack/templates/overcloud_images.yaml$ openstack overcloud ceph-upgrade run \ --templates \ -e <ENVIRONMENT FILE> \ -e /home/stack/templates/overcloud_images.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のオプションの中で、お使いの環境に適切なオプションを追加します。
-
カスタム設定環境ファイル (
-e) -
コンテナーイメージの場所が記載された環境ファイル (
-e)。更新のコマンドで--container-registry-fileの使用に関する警告が表示される場合があることに注意してください。このオプションは非推奨になり、コンテナーイメージの環境ファイルには-eを使用することが推奨されるようになっているので、この警告は無視して問題ありません。 -
該当する場合は、カスタムロール (
roles_data) のファイル (--roles-file) -
該当する場合は、コンポーザブルネットワーク (
network_data) のファイル (--networks-file)
-
カスタム設定環境ファイル (
- コンピュート HCI ノードの更新が完了するまで待ちます。
3.6. すべての Ceph Storage ノードの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Ceph Storage ノードを更新します。このプロセスでは、以下の操作を行います。
-
--nodes CephStorageオプションを指定してopenstack overcloud update runコマンドを実行し、操作を Ceph Storage ノードだけに制限する。 -
openstack overcloud external-update runコマンドを実行して外部プロセスとしてceph-ansibleを実行し、Red Hat Ceph Storage 3 コンテナーを更新する。
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新コマンドを実行します。
openstack overcloud update run --nodes CephStorage
$ openstack overcloud update run --nodes CephStorageCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードの更新が完了するまで待ちます。
Ceph Storage コンテナーの更新コマンドを実行します。
openstack overcloud external-update run --tags ceph
$ openstack overcloud external-update run --tags cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Ceph Storage コンテナーの更新が完了するまで待ちます。
3.7. データベースのオンライン更新の実施 リンクのコピーリンクがクリップボードにコピーされました!
一部のオーバークラウドコンポーネントでは、データベーステーブルのオンラインアップグレード (または移行) が必要です。そのためには、online_upgrade 外部更新プロセスを実行します。このプロセスを実行するには、online_upgrade にタグ付けされたタスクに対して openstack overcloud external-update run コマンドを実行します。これにより、以下のコンポーネントに対してデータベースのオンライン更新が実行されます。
- OpenStack Block Storage (cinder)
- OpenStack Compute (nova)
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow online_upgradeにタグ付けされたタスクに対してopenstack overcloud external-update runコマンドを実行します。openstack overcloud external-update run --tags online_upgrade
$ openstack overcloud external-update run --tags online_upgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.8. 更新の最終処理 リンクのコピーリンクがクリップボードにコピーされました!
更新には、オーバークラウドスタックを更新する最終ステップが必要です。これにより、スタックのリソース構造が OpenStack Platform 15 の標準のデプロイメントと一致し、今後、通常の openstack overcloud deploy の機能を実行できるようになります。
手順
stackrcファイルを取得します。source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新の最終処理のコマンドを実行します。
openstack overcloud update converge \ --templates \ -e <ENVIRONMENT FILE> \ -e <ENVIRONMENT FILE> \ ...$ openstack overcloud update converge \ --templates \ -e <ENVIRONMENT FILE> \ -e <ENVIRONMENT FILE> \ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のオプションの中で、お使いの環境に適切なオプションを追加します。
-
カスタム設定環境ファイル (
-e) -
該当する場合は、カスタムロール (
roles_data) のファイル (--roles-file) -
該当する場合は、コンポーザブルネットワーク (
network_data) のファイル (--networks-file)
-
カスタム設定環境ファイル (
- 更新の最終処理が完了するまで待ちます。
第4章 オーバークラウドのリブート リンクのコピーリンクがクリップボードにコピーされました!
マイナーバージョンの更新を実施したら、ノードが新しいカーネルまたは新しいシステムレベルのコンポーネントを使用する場合には、オーバークラウドのリブートを実施します。
4.1. コントローラーノードおよびコンポーザブルノードのリブート リンクのコピーリンクがクリップボードにコピーされました!
コントローラーノードおよびコンポーザブルロールに基づくスタンドアロンのノードをリブートするには、以下の手順を実施します。ただし、これにはコンピュートノードおよび Ceph Storage ノードは含まれません。
手順
- リブートするノードにログインします。
オプション: ノードが Pacemaker リソースを使用している場合は、クラスターを停止します。
sudo pcs cluster stop
[heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをリブートします。
sudo reboot
[heat-admin@overcloud-controller-0 ~]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードがブートするまで待ちます。
サービスを確認します。以下に例を示します。
ノードが Pacemaker サービスを使用している場合には、ノードがクラスターに再度加わったかどうかを確認します。
sudo pcs status
[heat-admin@overcloud-controller-0 ~]$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードが Systemd サービスを使用している場合には、全サービスが有効化されているかどうかを確認します。
sudo systemctl status
[heat-admin@overcloud-controller-0 ~]$ sudo systemctl statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードがコンテナー化されたサービスを使用している場合には、ノード上の全コンテナーがアクティブであることを確認します。
sudo podman ps
[heat-admin@overcloud-controller-0 ~]$ sudo podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. Ceph Storage (OSD) クラスターのリブート リンクのコピーリンクがクリップボードにコピーされました!
Ceph Storage (OSD) ノードのクラスターをリブートするには、以下の手順を実施します。
手順
Ceph MON またはコントローラーノードにログインして、Ceph Storage Cluster のリバランスを一時的に無効にします。
sudo podman exec -it ceph-mon-controller-0 ceph osd set noout sudo podman exec -it ceph-mon-controller-0 ceph osd set norebalance
$ sudo podman exec -it ceph-mon-controller-0 ceph osd set noout $ sudo podman exec -it ceph-mon-controller-0 ceph osd set norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - リブートする最初の Ceph Storage ノードを選択し、そのノードにログインします。
ノードをリブートします。
sudo reboot
$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードがブートするまで待ちます。
ノードにログインして、クラスターのステータスを確認します。
sudo podman exec -it ceph-mon-controller-0 ceph status
$ sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow pgmapにより、すべてのpgsが正常な状態 (active+clean) として報告されることを確認します。- ノードからログアウトして、次のノードをリブートし、ステータスを確認します。全 Ceph Storage ノードがリブートされるまで、このプロセスを繰り返します。
完了したら、Ceph MON またはコントローラーノードにログインして、クラスターのリバランスを再度有効にします。
sudo podman exec -it ceph-mon-controller-0 ceph osd unset noout sudo podman exec -it ceph-mon-controller-0 ceph osd unset norebalance
$ sudo podman exec -it ceph-mon-controller-0 ceph osd unset noout $ sudo podman exec -it ceph-mon-controller-0 ceph osd unset norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 最終のステータスチェックを実行して、クラスターが
HEALTH_OKを報告していることを確認します。sudo podman exec -it ceph-mon-controller-0 ceph status
$ sudo podman exec -it ceph-mon-controller-0 ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. コンピュートノードのリブート リンクのコピーリンクがクリップボードにコピーされました!
コンピュートノードをリブートするには、以下の手順を実施します。OpenStack Platform 環境内のインスタンスのダウンタイムを最小限に抑えるために、この手順には、リブートするコンピュートノードからインスタンスを移行するステップも含まれています。これは、以下のワークフローを伴います。
- コンピュートノードをリブートする前に、インスタンスを別のノードに移行するかどうかを決定する
- リブートするコンピュートノードを選択して無効にし、新規インスタンスをプロビジョニングしないようにする
- インスタンスを別のコンピュートノードに移行する
- 空のコンピュートノードをリブートする
- 空のコンピュートノードを有効にする
前提条件
コンピュートノードをリブートする前に、ノードをリブートする間インスタンスを別のコンピュートノードに移行するかどうかを決定する必要があります。
何らかの理由でインスタンスを移行することができない、または移行を希望しない場合には、以下のコアテンプレートパラメーターを設定して、コンピュートノードリブート後のインスタンスの状態を制御することができます。
NovaResumeGuestsStateOnHostBoot-
リブート後のコンピュートノードで、インスタンスを同じ状態に戻すかどうかを定義します。
Falseに設定すると、インスタンスは停止した状態を維持し、手動で起動する必要があります。デフォルト値はFalseです。 NovaResumeGuestsShutdownTimeout-
リブートする前に、インスタンスのシャットダウンを待つ秒数。この値を
0に設定することは推奨されません。デフォルト値は 300 です。
オーバークラウドパラメーターおよびその使用方法に関する全般的な情報は、『オーバークラウドのパラメーター 』を参照して ください。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 全コンピュートノードとその UUID を一覧表示します。
source ~/stackrc (undercloud) $ openstack server list --name compute
$ source ~/stackrc (undercloud) $ openstack server list --name computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow リブートするコンピュートノードの UUID を特定します。
アンダークラウドから、コンピュートノードを選択します。そのノードを無効にします。
source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disable
$ source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノード上の全インスタンスを一覧表示します。
(overcloud) $ openstack server list --host [hostname] --all-projects
(overcloud) $ openstack server list --host [hostname] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - インスタンスを移行しない場合は、このステップ に進みます。
インスタンスを別のコンピュートノードに移行する場合には、以下のコマンドのいずれかを使用します。
インスタンスを別のホストに移行する。
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow nova-schedulerにより対象のホストが自動的に選択されるようにする。(overcloud) $ nova live-migration [instance-id]
(overcloud) $ nova live-migration [instance-id]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一度にすべてのインスタンスのライブマイグレーションを行う。
nova host-evacuate-live [hostname]
$ nova host-evacuate-live [hostname]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記novaコマンドで非推奨の警告が表示される可能性がありますが、無視して問題ありません。
- 移行が完了するまで待ちます。
正常に移行したことを確認します。
(overcloud) $ openstack server list --host [hostname] --all-projects
(overcloud) $ openstack server list --host [hostname] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 選択したコンピュートノードのインスタンスがなくなるまで、移行を続けます。
コンピュートノードにログインします。ノードをリブートします。
sudo reboot
[heat-admin@overcloud-compute-0 ~]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードがブートするまで待ちます。
コンピュートノードを再度有効化します。
source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enable
$ source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードが有効化されているかどうかを確認します。
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. HCI コンピュートノードのリブート リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、コンピュートハイパーコンバージドインフラストラクチャー (HCI) ノードをリブートします。
手順
Ceph MON またはコントローラーノードにログインして、Ceph MON コンテナーの名前を特定します。
sudo podman ps | grep -i ceph | grep -i mon 45fe68d340e5 docker-registry.upshift.redhat.com/ceph/rhceph-4.0-rhel8:latest
$ sudo podman ps | grep -i ceph | grep -i mon 45fe68d340e5 docker-registry.upshift.redhat.com/ceph/rhceph-4.0-rhel8:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow CEPH_MON_CONTAINER変数をコンテナーの名前に設定します。CEPH_MON_CONTAINER=ceph-mon-controller-0
$ CEPH_MON_CONTAINER=ceph-mon-controller-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow CEPH_MON_CONTAINER変数を使用して Ceph コマンドを実行できることを確認します。sudo podman exec $CEPH_MON_CONTAINER ceph -s
$ sudo podman exec $CEPH_MON_CONTAINER ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph MON またはコントローラーノードから、Ceph Storage クラスターのリバランスを一時的に無効にします。
sudo podman exec $CEPH_MON_CONTAINER ceph osd set noout sudo podman exec $CEPH_MON_CONTAINER ceph osd set norebalance
$ sudo podman exec $CEPH_MON_CONTAINER ceph osd set noout $ sudo podman exec $CEPH_MON_CONTAINER ceph osd set norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
アンダークラウドに
stackユーザーとしてログインします。 全コンピュートノードとその UUID を一覧表示します。
source ~/stackrc (undercloud) $ openstack server list --name compute
$ source ~/stackrc (undercloud) $ openstack server list --name computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow リブートするコンピュートノードの UUID を特定します。
アンダークラウドから、コンピュートノードを選択し、そのノードを無効にします。
source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disable
$ source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノード上の全インスタンスを一覧表示します。
(overcloud) $ openstack server list --host [hostname] --all-projects
(overcloud) $ openstack server list --host [hostname] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドの 1 つを使用して、インスタンスを移行します。
選択した特定のホストにインスタンスを移行する。
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--waitCopy to Clipboard Copied! Toggle word wrap Toggle overflow nova-schedulerにより対象のホストが自動的に選択されるようにする。(overcloud) $ nova live-migration [instance-id]
(overcloud) $ nova live-migration [instance-id]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一度にすべてのインスタンスのライブマイグレーションを行う。
nova host-evacuate-live [hostname]
$ nova host-evacuate-live [hostname]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記novaコマンドで非推奨の警告が表示される可能性がありますが、無視して問題ありません。
- 移行が完了するまで待ちます。
移行が正常に完了したことを確認します。
(overcloud) $ openstack server list --host [hostname] --all-projects
(overcloud) $ openstack server list --host [hostname] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 選択したコンピュートノードのインスタンスがなくなるまで、移行を続けます。
Ceph MON またはコントローラーノードにログインし、クラスターのステータスを確認します。
sudo podman exec $CEPH_MON_CONTAINER ceph -s
$ sudo podman exec $CEPH_MON_CONTAINER ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow pgmapにより、すべてのpgsが正常な状態 (active+clean) として報告されることを確認します。コンピュート HCI ノードをリブートします。
sudo reboot
$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードがブートするまで待ちます。
コンピュートノードを再度有効化します。
source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enable
$ source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードが有効化されていることを確認します。
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードからログアウトして、次のノードをリブートし、ステータスを確認します。全 Ceph Storage ノードがリブートされるまで、このプロセスを繰り返します。
完了したら、Ceph MON またはコントローラーノードにログインして、クラスターのリバランスを再度有効にします。
sudo podman exec $CEPH_MON_CONTAINER ceph osd unset noout sudo podman exec $CEPH_MON_CONTAINER ceph osd unset norebalance
$ sudo podman exec $CEPH_MON_CONTAINER ceph osd unset noout $ sudo podman exec $CEPH_MON_CONTAINER ceph osd unset norebalanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 最終のステータスチェックを実行して、クラスターが
HEALTH_OKを報告していることを確認します。sudo podman exec $CEPH_MON_CONTAINER ceph status
$ sudo podman exec $CEPH_MON_CONTAINER ceph statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow