第2章 OpenStack Platform アップグレードの準備
このプロセスでは、OpenStack Platform 環境を準備します。これには、以下のステップを伴います。
- アンダークラウドとオーバークラウドの両方をバックアップします。
- アンダークラウドを OpenStack Platform 10 の最新のマイナーバージョンに更新します (最新の Open vSwitch を含む)。
- 新しいカーネルまたはシステムパッケージがインストールされた場合には、アンダークラウドを再起動します。
- オーバークラウドを OpenStack Platform 10 の最新のマイナーバージョンに更新します (最新の Open vSwitch を含む)。
- 新しいカーネルまたはシステムパッケージがインストールされた場合には、オーバークラウドノードを再起動します。
- アンダークラウドとオーバークラウドの両方で検証のチェックを実行します。
これらの手順により、OpenStack Platform 環境は、アップグレードを開始する前に、最適な状態となります。
2.1. アンダークラウドのバックアップ
完全なアンダークラウドのバックアップには、以下のデータベースおよびファイルが含まれます。
- アンダークラウドノード上の MariaDB データベース
- (データベースを正確に復元できるように) アンダークラウド上の MariaDB 設定ファイル
-
設定データ:
/etc -
ログデータ:
/var/log -
イメージデータ:
/var/lib/glance -
証明書生成データ:
/var/lib/certmonger -
コンテナーイメージデータ:
/var/lib/docker、/var/lib/registry -
swift の全データ:
/srv/node -
stack ユーザーのホームディレクトリー内の全データ:
/home/stack
バックアッププロセスを実行する前に、アンダークラウドに利用可能なディスク容量が十分にあることを確認します。アーカイブファイルは、少なくとも 3.5 GB となることが予想され、それ以上になる可能性があります。
手順
-
アンダークラウドに
rootユーザーとしてログインします。 データベースをバックアップします。
# mysqldump --opt --all-databases > /root/undercloud-all-databases.sql
データベースのバックアップと設定ファイルをアーカイブします。
# sudo tar --xattrs --ignore-failed-read -cf \ undercloud-backup-`date +%F`.tar \ /root/undercloud-all-databases.sql \ /etc \ /var/log \ /var/lib/glance \ /var/lib/certmonger \ /var/lib/docker \ /var/lib/registry \ /srv/node \ /root \ /home/stackこれで、
undercloud-backup-<date>.tar.gzという名前のファイルが作成されます。<date>はシステムの日付です。このtarファイルをセキュアな場所にコピーします。
関連情報
- アンダークラウドのバックアップを復元する必要がある場合には、「付録A アンダークラウドの復元」を参照してください。
2.2. オーバークラウドのコントロールプレーンサービスのバックアップ
以下の手順では、オーバークラウドのデータベースと設定のバックアップを作成します。オーバークラウドのデータベースとサービスのバックアップにより、作業環境のスナップショットが確保されます。スナップショットがあると、操作のエラーが発生してオーバークラウドを元の状態に復元する必要がある場合に役立ちます。
この手順では、不可欠なコントロールプレーンサービスのみが含まれます。コンピュートノードのワークロード、Ceph Storage ノード上のデータ、追加のサービスのバックアップは対象外です。
手順
データベースのバックアップを実行します。
コントロールノードにログインします。オーバークラウドには、アンダークラウドからアクセスできます。
$ ssh heat-admin@192.0.2.100
rootユーザーに変更します。$ sudo -i
バックアップを保管するための一時ディレクトリーを作成します。
# mkdir -p /var/tmp/mysql_backup/
データベースのパスワードを取得して、
MYSQLDBPASSの環境変数に保存します。このパスワードは、/etc/puppet/hieradata/service_configs.jsonファイルのmysql::server::root_password変数に保管されています。以下のコマンドを使用してパスワードを保管します。# MYSQLDBPASS=$(sudo hiera mysql::server::root_password)
データベースをバックアップします。
# mysql -uroot -p$MYSQLDBPASS -s -N -e "select distinct table_schema from information_schema.tables where engine='innodb' and table_schema != 'mysql';" | xargs mysqldump -uroot -p$MYSQLDBPASS --single-transaction --databases > /var/tmp/mysql_backup/openstack_databases-`date +%F`-`date +%T`.sql
このコマンドにより、
/var/tmp/mysql_backup/openstack_databases-<date>.sqlという名前のデータベースバックアップがダンプされます。<date>はシステムの日付と時刻です。このデータベースダンプを安全な場所にコピーします。ユーザーおよびパーミッションに関する全情報をバックアップします。
# mysql -uroot -p$MYSQLDBPASS -s -N -e "SELECT CONCAT('\"SHOW GRANTS FOR ''',user,'''@''',host,''';\"') FROM mysql.user where (length(user) > 0 and user NOT LIKE 'root')" | xargs -n1 mysql -uroot -p$MYSQLDBPASS -s -N -e | sed 's/$/;/' > /var/tmp/mysql_backup/openstack_databases_grants-`date +%F`-`date +%T`.sqlこのコマンドにより、
/var/tmp/mysql_backup/openstack_databases_grants-<date>.sqlという名前のデータベースバックアップがダンプされます。<date>はシステムの日付と時刻です。このデータベースダンプを安全な場所にコピーします。
OpenStack Telemetry データベースをバックアップします。
任意のコントローラーに接続して、MongoDB のプライマリーインスタンスの IP を取得します。
# MONGOIP=$(sudo hiera mongodb::server::bind_ip)
バックアップを作成します。
# mkdir -p /var/tmp/mongo_backup/ # mongodump --oplog --host $MONGOIP --out /var/tmp/mongo_backup/
-
/var/tmp/mongo_backup/内のデータベースダンプを安全な場所にコピーします。
Redis クラスターをバックアップします。
HAProxy から Redis のエンドポイントを取得します。
# REDISIP=$(sudo hiera redis_vip)
Redis クラスターのマスターパスワードを取得します。
# REDISPASS=$(sudo hiera redis::masterauth)
Redis クラスターの接続をチェックします。
# redis-cli -a $REDISPASS -h $REDISIP ping
Redis データベースをダンプします。
# redis-cli -a $REDISPASS -h $REDISIP bgsave
このコマンドにより、データベースのバックアップがデフォルトの
/var/lib/redis/ディレクトリーに保管されます。このデータベースダンプを安全な場所にコピーします。
各コントローラーノードのファイルシステムをバックアップします。
バックアップ用のディレクトリーを作成します。
# mkdir -p /var/tmp/filesystem_backup/
以下の
tarコマンドを実行します。# tar --ignore-failed-read --xattrs \ -zcvf /var/tmp/filesystem_backup/`hostname`-filesystem-`date '+%Y-%m-%d-%H-%M-%S'`.tar \ /etc \ /srv/node \ /var/log \ /var/lib/nova \ --exclude /var/lib/nova/instances \ /var/lib/glance \ /var/lib/keystone \ /var/lib/cinder \ /var/lib/heat \ /var/lib/heat-config \ /var/lib/heat-cfntools \ /var/lib/rabbitmq \ /var/lib/neutron \ /var/lib/haproxy \ /var/lib/openvswitch \ /var/lib/redis \ /usr/libexec/os-apply-config \ /home/heat-admin--ignore-failed-readオプションを使用すると、見つからないディレクトリーは無視されます。これは、特定のサービスが使用されていない場合や、独自のカスタムロール上に分離されている場合に役立ちます。
-
作成された
tarファイルを安全な場所にコピーします。
関連情報
- オーバークラウドのバックアップを復元する必要がある場合には、「付録B オーバークラウドの復元」を参照してください。
2.3. NFV 対応環境の更新準備
環境でネットワーク機能仮想化 (NFV) が有効化されている場合には、アンダークラウドとオーバークラウドを更新する前に以下のステップを実行する必要があります。
手順
-
この post-install.yaml のサンプルファイルの内容を既存の
post-install.yamlファイルのいずれかに追加します。 カスタムの環境ファイル (例:
network-environment.yaml) で、vhost ユーザーソケットディレクトリーを変更します。parameter_defaults: NeutronVhostuserSocketDir: "/var/lib/vhost_sockets"
openstack overcloud deployコマンドにovs-dpdk-permissions.yamlファイルを追加して、qemu グループの設定値を OVS-DPDK 向けにhugetlbfsに設定します。-e environments/ovs-dpdk-permissions.yaml
2.4. 現在のアンダークラウドパッケージの OpenStack Platform 10.z の更新
director では、アンダークラウドノード上のパッケージを更新するためのコマンドが提供されています。これにより、OpenStack Platform 環境の現在のバージョン内のマイナー更新を実行することができます。これは、OpenStack Platform 10 内でのマイナー更新です。
このステップにより、アンダークラウドのオペレーティングシステムも Red Hat Enterprise Linux 7 の最新バージョンに更新され、Open vSwtich はバージョン 2.9 となります。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 主要な OpenStack Platform サービスを停止します。
$ sudo systemctl stop 'openstack-*' 'neutron-*' httpd
注記これにより、アンダークラウドで短時間のダウンタイムが生じます。アンダークラウドのアップグレード中もオーバークラウドは引き続き機能します。
python-tripleoclientパッケージと依存関係を更新し、マイナーバージョンの更新向けの最新のスクリプトを使用できるようにします。$ sudo yum update -y python-tripleoclient
openstack undercloud upgradeコマンドを実行します。$ openstack undercloud upgrade
- コマンドの実行が完了するまで待ちます。
アンダークラウドを再起動して、オペレーティングシステムのカーネルとその他のシステムパッケージを更新します。
$ sudo reboot
- ノードが起動するまで待ちます。
-
アンダークラウドに
stackユーザーとしてログインします。
アンダークラウドのパッケージの更新に加えて、オーバークラウドのイメージを最新の状態に維持して、イメージの設定が openstack-tripleo-heat-template パッケージと同期するようにすることを推奨します。これにより、現在の準備段階と実際の Fast Foward Upgrade の間に実行されるデプロイメントとスケーリングの操作が正常に実行されるようになります。次の項では、このシナリオでイメージを更新する方法について説明します。環境を準備した直後にアップグレードを行う予定の場合には、次の項はスキップできます。
2.5. 現在のオーバークラウドイメージの OpenStack Platform 10.z の更新
アンダークラウドの更新プロセスで、rhosp-director-images および rhosp-director-images-ipa パッケージから新規イメージアーカイブがダウンロードされる可能性があります。このプロセスにより、Red Hat OpenStack Platform 10 内のアンダークラウドでそれらのイメージが更新されます。
前提条件
- アンダークラウドを現行バージョンの最新のマイナーリリースに更新済みであること
手順
yumログをチェックして、新規イメージのアーカイブが利用可能かどうかを確認します。$ sudo grep "rhosp-director-images" /var/log/yum.log
新規アーカイブが利用可能な場合には、現在のイメージを新規イメージに置き換えてください。新しいイメージをインストールするには、最初に
stackユーザーのimagesディレクトリー (/home/stack/images) から既存のイメージを削除します。$ rm -rf ~/images/*
アーカイブを展開します。
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-10.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-10.0.tar; do tar -xvf $i; done
最新のイメージを director にインポートして、ノードがこれらの新規イメージを使用するように設定します。
$ cd ~ $ openstack overcloud image upload --update-existing --image-path /home/stack/images/ $ openstack overcloud node configure $(openstack baremetal node list -c UUID -f csv --quote none | sed "1d" | paste -s -d " ")
新規イメージがあるかどうかをチェックして、イメージ更新の最終処理を行います。
$ openstack image list $ ls -l /httpboot
director は古いイメージを保持して、それらが更新された時のタイムスタンプを使用して名前を変更します。必要がなくなったイメージは削除してください。
director が更新され、最新のイメージを使用するようになりました。この更新の後にはサービスを再起動する必要はありません。
アンダークラウドでは、更新された OpenStack Platform 10 のパッケージが使用されるようになりました。次にオーバークラウドを最新のマイナーリリースに更新します。
2.6. 現在のオーバークラウドパッケージの OpenStack Platform 10.z の更新
director では、全オーバークラウドノード上のパッケージを更新するためのコマンドが提供されています。これにより、OpenStack Platform 環境の現在のバージョン内のマイナー更新を実行することができます。これは、Red Hat OpenStack Platform 10 内でのマイナー更新です。
このステップにより、オーバークラウドノードのオペレーティングシステムも Red Hat Enterprise Linux 7 の最新バージョンに更新され、Open vSwtich はバージョン 2.9 となります。
前提条件
- アンダークラウドを現行バージョンの最新のマイナーリリースに更新済みであること
- オーバークラウドのバックアップを実行済みであること
手順
元の
openstack overcloud deployコマンドに--update-plan-onlyオプションを追加して、現在のプランを更新します。以下に例を示します。$ openstack overcloud deploy --update-plan-only \ --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e /home/stack/templates/network-environment.yaml \ -e /home/stack/templates/storage-environment.yaml \ -e /home/stack/templates/rhel-registration/environment-rhel-registration.yaml \ [-e <environment_file>|...]
--update-plan-onlyのオプションを指定すると、director に保管されているオーバークラウドのプランのみが更新されます。-eオプションを使用して、オーバークラウドと関連のある環境ファイルとその更新パスを追加します。後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順序は重要となります。以下の一覧は、環境ファイルの順序の例です-
Heat テンプレートコレクションの初期化ファイル (
environments/network-isolation.yaml) を含むネットワーク分離ファイルと、次にカスタムの NIC 設定ファイル - 外部のロードバランシングの環境ファイル
- ストレージの環境ファイル
- Red Hat CDN または Satellite 登録用の環境ファイル
- その他のカスタム環境ファイル
-
Heat テンプレートコレクションの初期化ファイル (
openstack overcloud updateコマンドを使用して、全ノードでパッケージの更新を実行します。以下に例を示します。$ openstack overcloud update stack -i overcloud
-iのオプションを指定すると、各ノードは対話モードで更新されます。更新プロセスによりノードの更新が完了すると、スクリプトにより、確認のためのブレークポイントが提供されます。-iオプションを使用しなかった場合には、最初のブレークポイントで更新が一時停止されたままとなるため、-iオプションの指定は必須です。注記全ノードで並行して更新を実行すると問題が発生する可能性があります。たとえば、パッケージの更新には、サービスの再起動が必要となる場合があり、その操作によって他のノードが中断される可能性があります。そのため、このプロセスでは、一連のブレークポイントを設けて、ノードごとに更新します。1 つのノードでパッケージの更新が完了すると、更新プロセスは次のノードに移ります。
更新のプロセスが開始します。このプロセス中に、director は
IN_PROGRESSのステータスを報告して、ブレークポイントを通過するように定期的に要求します。以下に例を示します。not_started: [u'overcloud-controller-0', u'overcloud-controller-1', u'overcloud-controller-2'] on_breakpoint: [u'overcloud-compute-0'] Breakpoint reached, continue? Regexp or Enter=proceed, no=cancel update, C-c=quit interactive mode:
Enter を押すと、
on_breakpoint一覧の最後のノードからブレークポイントを通過します。これで、そのノードの更新が開始します。また、ノード名を入力して特定のノードでブレークポイントを通過したり、複数のノードで一度にブレークポイントを通過するための Python ベースの正規表現を入力することも可能です。ただし、複数のコントローラーノードで同時にブレークポイントを通過することはお勧めしません。全ノードが更新を完了するまで、このプロセスを継続します。更新が完了すると、コマンドにより
COMPLETEのステータスが報告されます。... IN_PROGRESS IN_PROGRESS IN_PROGRESS COMPLETE update finished with status COMPLETE
コントローラーノードにフェンシングを設定している場合には、更新プロセスによってその設定が無効になる場合があります。更新プロセスの完了時には、コントローラーノードの 1 つで以下のコマンドを実行してフェンシングを再度有効にします。
$ sudo pcs property set stonith-enabled=true
更新プロセスを実行しても、オーバークラウド内のノードは自動的には再起動しません。カーネルおよびその他のシステムッケージを更新した場合には、再起動が必要です。各ノードの /var/log/yum.log ファイルをチェックして、kernel または openvswitch のパッケージのメジャー/マイナーバージョンが更新されているかどうかを確認します。更新されている場合には、以下の手順に従って各ノードを再起動します。
2.7. コントローラーノードおよびコンポーザブルノードの再起動
以下の手順では、コントローラーノードと、コンポーザブルロールをベースとするスタンドアロンのノードを再起動します。これには、コンピュートノードと Ceph Storage ノードは含まれません。
手順
- ノードを選択してログインします。
ノードを再起動します。
[heat-admin@overcloud-controller-0 ~]$ sudo reboot
- ノードが起動するまで待ちます。
ノードにログインしてサービスをチェックします。以下に例を示します。
ノードが Pacemaker サービスを使用している場合には、ノードがクラスターに再度参加したかどうかを確認します。
[heat-admin@overcloud-controller-0 ~]$ sudo pcs status
ノードが Systemd サービスを使用している場合には、全サービスが有効化されているかどうかを確認します。
[heat-admin@overcloud-controller-0 ~]$ sudo systemctl status
2.8. Ceph Storage (OSD) クラスターの再起動
以下の手順では、Ceph Storage (OSD) ノードのクラスターを再起動します。
手順
Ceph MON またはコントローラーノードにログインして、Ceph Storage クラスターのリバランスを一時的に無効にします。
$ sudo ceph osd set noout $ sudo ceph osd set norebalance
- 再起動する最初の Ceph Storage ノードを選択して、ログインします。
ノードを再起動します。
$ sudo reboot
- ノードが起動するまで待ちます。
ノードにログインして、クラスターのステータスを確認します。
$ sudo ceph -s
pgmapにより、すべてのpgsが正常な状態 (active+clean) として報告されることを確認します。- ノードからログアウトして、次のノードを再起動し、ステータスを確認します。全 Ceph Storage ノードが再起動されるまで、このプロセスを繰り返します。
完了したら、Ceph MON またはコントローラーノードにログインして、クラスターのリバランスを再度有効にします。
$ sudo ceph osd unset noout $ sudo ceph osd unset norebalance
最終のステータスチェックを実行して、クラスターが
HEALTH_OKを報告していることを確認します。$ sudo ceph status
2.9. コンピュートノードの再起動
以下の手順では、コンピュートノードを再起動します。OpenStack Platform 環境内のインスタンスのダウンタイムを最小限に抑えるために、この手順には、選択したコンピュートノードからインスタンスを移行するステップも含まれています。これは、以下のワークフローを伴います。
- 再起動するコンピュートノードを選択して無効にし、新規インスタンスをプロビジョニングしないようにします。
- インスタンスを別のコンピュートノードに移行します。
- 空のコンピュートノードを再起動して有効化します。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 全コンピュートノードとその UUID を一覧表示します。
$ source ~/stackrc (undercloud) $ openstack server list --name compute
再起動するコンピュートノードのUUID を特定します。
アンダークラウドから、コンピュートノードを選択し、そのノードを無効にします。
$ source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set [hostname] nova-compute --disable
コンピュートノード上の全インスタンスを一覧表示します。
(overcloud) $ openstack server list --host [hostname] --all-projects
以下のコマンドの 1 つを使用して、インスタンスを移行します。
選択した特定のホストにインスタンスを移行します。
(overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
nova-schedulerにより対象のホストが自動的に選択されるようにします。(overcloud) $ nova live-migration [instance-id]
一度にすべてのインスタンスのライブマイグレーションを行います。
$ nova host-evacuate-live [hostname]
注記novaコマンドで非推奨の警告が表示される可能性がありますが、安全に無視することができます。
- 移行が完了するまで待ちます。
正常に移行したことを確認します。
(overcloud) $ openstack server list --host [hostname] --all-projects
- 選択したコンピュートノードのインスタンスがなくなるまで、移行を続けます。
コンピュートノードのログインしてリブートします。
[heat-admin@overcloud-compute-0 ~]$ sudo reboot
- ノードが起動するまで待ちます。
コンピュートノードを再度有効化します。
$ source ~/overcloudrc (overcloud) $ openstack compute service set [hostname] nova-compute --enable
コンピュートノードが有効化されているかどうかを確認します。
(overcloud) $ openstack compute service list
2.10. システムパッケージの確認
アップグレードを行う前に、全ノードが以下のパッケージの最新バージョンを使用している必要があります。
| パッケージ | バージョン |
|---|---|
|
|
最小 2.9 |
|
|
最小 2.10 |
|
|
最小 2.10 |
|
|
最小 2.10 |
|
|
最小 2.10 |
各ノードで以下の手順を実行して、パッケージのバージョンを確認します。
手順
- ノードにログインします。
yumを実行して、システムパッケージを確認します。$ sudo yum list qemu-img-rhev qemu-kvm-common-rhev qemu-kvm-rhev qemu-kvm-tools-rhev openvswitch
ovs-vsctlを実行して、現在実行中のバージョンを確認します。$ sudo ovs-vsctl --version
アンダークラウドは、更新された OpenStack Platform 10 パッケージを使用するようになりました。次の 2 つの手順で、システムが稼動状態かどうかを確認します。
2.11. OpenStack Platform 10 アンダークラウドの検証
Red Hat OpenStack Platform 10 のアンダークラウドをアップグレードする前に機能を確認する手順を以下に示します。
手順
アンダークラウドのアクセス情報を読み込みます。
$ source ~/stackrc
エラーが発生している Systemd サービスがあるかどうかを確認します。
$ sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker'
アンダークラウドの空き領域を確認します。
$ df -h
アンダークラウド上に NTP をインストールしている場合にはクロックが同期されていることを確認します。
$ sudo ntpstat
アンダークラウドのネットワークサービスを確認します。
$ openstack network agent list
全エージェントが
Aliveで、それらの状態がUPである必要があります。アンダークラウドの Compute サービスを確認します。
$ openstack compute service list
全エージェントのステータスが
enabledで、状態がupである必要があります。
関連情報
- OpenStack Orchestration (heat) のデータベースで削除済みとマークされている stack のエントリーを完全削除する方法は https://access.redhat.com/solutions/2215131 のソリューションに記載されています。
2.12. OpenStack Platform 10 オーバークラウドの検証
Red Hat OpenStack Platform 10 のオーバークラウドをアップグレードする前に機能を確認する手順を以下に示します。
手順
アンダークラウドのアクセス情報を読み込みます。
$ source ~/stackrc
ベアメタルノードのステータスを確認します。
$ openstack baremetal node list
全ノードの電源状態が有効で (
on)、かつメンテナンスモードがfalseである必要があります。エラーが発生している Systemd サービスがあるかどうかを確認します。
$ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
全サービスへの HAProxy 接続をチェックします。コントロールプレーンの仮想 IP アドレスと
haproxy.statsサービスの認証情報を取得します。$ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /etc/haproxy/haproxy.cfg'
以下の cURL 要求でそれらの情報を使用します。
$ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | awk -F',' '{ print $1" "$2" "$18 }'<PASSWORD>と<IP ADDRESS>は、haproxy.statsサービスからのそれぞれの情報に置き換えます。その結果表示される一覧には、各ノード上の OpenStack Platform サービスとそれらの接続ステータスが表示されます。オーバークラウドデータベースのレプリケーションの正常性をチェックします。
$ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo clustercheck" ; done
RabbitMQ クラスターの正常性を確認します。
$ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo rabbitmqctl node_health_check" ; done
Pacemaker リソースの正常性を確認します。
$ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
以下の点を確認します。
-
全クラスターノードが
onlineであること -
いずれのクラスターノード上でも
stoppedのリソースがないこと -
pacemaker で
failedのアクションがないこと
-
全クラスターノードが
各オーバークラウドノードでディスク領域を確認します。
$ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
オーバークラウドの Ceph Storage クラスターの正常性を確認します。以下のコマンドを使用すると、コントローラーノード上で
cephツールが実行されて、クラスターをチェックします。$ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
Ceph Storage OSD に空き領域があるかどうかを確認します。以下のコマンドを使用すると、コントローラーノード上で
cephツールが実行され、空き領域をチェックします。$ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
オーバークラウドノードでクロックが同期されていることを確認します。
$ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
オーバークラウドのアクセス情報を読み込みます。
$ source ~/overcloudrc
オーバークラウドのネットワークサービスを確認します。
$ openstack network agent list
全エージェントが
Aliveで、それらの状態がUPである必要があります。オーバークラウドの Compute サービスを確認します。
$ openstack compute service list
全エージェントのステータスが
enabledで、状態がupである必要があります。オーバークラウドのボリュームサービスを確認します。
$ openstack volume service list
全エージェントのステータスが
enabledで、状態がupである必要があります。
関連情報
- 「How can I verify my OpenStack environment is deployed with Red Hat recommended configurations?」の記事を参照してください。この記事には、Red Hat OpenStack Platform 環境をチェックして、Red Hat の推奨値に合わせて調整する方法が記載されています。
- 「Database Size Management for Red Hat Enterprise Linux OpenStack Platform」の記事を参照して、オーバークラウド上の OpenStack サービスの未使用のデータベースレコードをチェックしてクリーニングします。
2.13. NFV 対応環境の更新の最終処理
環境でネットワーク機能仮想化 (NFV) が有効化されている場合には、アンダークラウドとオーバークラウドを更新した後に以下のステップを実行する必要があります。
手順
既存の OVS-DPDK インスタンスを移行して、OVS ポートで vhost ソケットモードがdkdpvhostuser から dkdpvhostuserclient に変わることを確認します。既存のインスタンスのスナップショットを作成して、そのスナップショットイメージをベースに再ビルドすることを推奨します。インスタンスのスナップショットに関する詳しい説明は、「Manage Instance Snapshots」を参照してください。
インスタンスのスナップショットを作成して、そのスナップショットから新規インスタンスを起動するには、以下の手順を実行します。
スナップショットを作成するインスタンスのサーバー ID を確認します。
# openstack server list
スナップショットを作成する前に、元のインスタンスをシャットダウンして、全データがディスクにフラッシュされるようにしてください。
# openstack server stop SERVER_IDインスタンスのスナップショットイメージを作成します。
# openstack image create --id SERVER_ID SNAPSHOT_NAME
このスナップショットイメージで新規インスタンスを起動します。
# openstack server create --flavor DPDK_FLAVOR --nic net-id=DPDK_NET_ID--image SNAPSHOT_NAME INSTANCE_NAME
オプションとして、新規インスタンスのステータスが
ACTIVEであることを確認します。# openstack server list
スナップショットを作成する必要のある全インスタンスでこの手順を繰り返してから、再起動します。
2.14. 次のステップ
準備段階が完了したので、次に「3章アンダークラウドのアップグレード」に記載の手順でアンダークラウドを 10 から 13 にアップグレードします。

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.