第4章 稼働中の Compute を使用して各サービスを個別に更新して OpenStack をアップグレードする手順
本手順では、全サービスを個別にアップグレードします。各サービスのアップグレードでは、パッケージとデータベーススキーマを更新する必要があります。
稼働中の Compute を使用してアップグレードを行うと、Compute Service の中断が最小限に抑えられます。小規模なサービスの場合はわずか数分ですが、新たにアップグレードされたコンピュートホストへワークロードを移動するための移行時間にはより長い時間を要します。既存のワークロードは無期限で稼働させることが可能です。また、データベース移行を待つ必要はありません。
注記
この方法では、Red Hat Enterprise Linux OpenStack Platform 7 のコンピュートノードを稼働させるのに追加のハードウェアリソースが必要となる場合があります。
注記
本章での手順では、全 Red Hat Enterprise Linux OpenStack Platform ドキュメントが採用するアーキテクチャーの命名規則を使用します。この規則に精通していない場合には、Red Hat Enterprise Linux OpenStack Platform ドキュメントスイート から『アーキテクチャーガイド』を参照してから続行してください。
OpenStack デプロイメントのアップグレードを開始する前に、適切なチャンネルにサブスクライブするようにしてください。詳しい情報は、「2章前提条件」を参照してください。
4.1. 非高可用性環境で稼働中の Compute を使用して各サービスを個別に更新して OpenStack をアップグレードする手順 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の項では、非高可用性の環境において Compute を並行稼働させて個別のサービスを更新する方法でクラウドデプロイメントをアップグレードする場合に従う必要のある手順を記載します。
- アップグレード前のタスク:各ホストで以下の手順を実行してください。
- Red Hat Enterprise Linux OpenStack Platform 7 (Kilo) 用の yum リポジトリーをインストールします。
- 利用可能な場合は
openstack-selinux
パッケージをアップグレードします。yum upgrade openstack-selinux
# yum upgrade openstack-selinux
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは、アップグレードしたサービスが SELinux が有効なシステムで正しく実行されるようにするために必要です。
- 各サービスのアップグレード:以下のステップには、各サービス固有のアップグレード手順と順序をまとめています。
- Identity (keystone)初期のバージョンのインストーラーでは、期限切れの keystone トークンが自動的に削除されるようにシステム設定されていない可能性があるため、トークンテーブルに期限切れのエントリーが多数含まれている可能性があります。このような場合には、データベーススキーマのアップグレードの所要時間が大幅に増大する可能性があります。Identity データベースのアップグレードを実行する前に
keystone-manage
コマンドを使用すると、データベースから期限切れのトークンをフラッシュして問題を軽減することができます。このコマンドにより、データベースから期限切れのトークンがフラッシュされます。cron
を使用して、このコマンドが定期的に (例: 1 日 1 回など) 実行されるように設定してください。Identity ホストで以下のコマンドを実行します。openstack-service stop keystone yum -d1 -y upgrade \*keystone\* keystone-manage token_flush openstack-db --service keystone --update openstack-service start keystone
# openstack-service stop keystone # yum -d1 -y upgrade \*keystone\* # keystone-manage token_flush # openstack-db --service keystone --update # openstack-service start keystone
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Object Storage (swift)Object Storage ホストで以下のコマンドを実行します。
openstack-service stop swift yum -d1 -y upgrade \*swift\* openstack-service start swift
# openstack-service stop swift # yum -d1 -y upgrade \*swift\* # openstack-service start swift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Image Service (glance)Image Service ホストで以下のコマンドを実行します。
openstack-service stop glance yum -d1 -y upgrade \*glance\* openstack-db --service glance --update openstack-service start glance
# openstack-service stop glance # yum -d1 -y upgrade \*glance\* # openstack-db --service glance --update # openstack-service start glance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Block Storage (cinder)Block Storage ホストで以下のコマンドを実行します。
openstack-service stop cinder yum -d1 -y upgrade \*cinder\* openstack-db --service cinder --update openstack-service start cinder
# openstack-service stop cinder # yum -d1 -y upgrade \*cinder\* # openstack-db --service cinder --update # openstack-service start cinder
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Orchestration (heat)Orchestration ホストで以下のコマンドを実行します。
openstack-service stop heat yum -d1 -y upgrade \*heat\* openstack-db --service heat --update openstack-service start heat
# openstack-service stop heat # yum -d1 -y upgrade \*heat\* # openstack-db --service heat --update # openstack-service start heat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Telemetry (ceilometer)
- Telemetry コンポーネントサービスをホストする全ノードで以下のコマンドを実行します。
openstack-service stop ceilometer yum -d1 -y upgrade \*ceilometer\*
# openstack-service stop ceilometer # yum -d1 -y upgrade \*ceilometer\*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Image Service ホストで以下のコマンドを実行します。
ceilometer-dbsync
# ceilometer-dbsync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、MySQL は Telemetry Service のバックエンドとして設定することができます。Telemetry のコンポーネントサービスの一覧については、 「TELEMETRY の API およびエージェントの起動」 を参照してください。 - パッケージのアップグレードが完了した後には、Telemetry コンポーネントサービスをホストする全ノードで以下のコマンドを実行して Telemetry Service を再起動します。
openstack-service start ceilometer
# openstack-service start ceilometer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Compute (nova)
- コンピュートホストのローリングアップグレードを行うには、明示的に API のバージョンの制限を設定して、Juno および kilo 環境間の互換性を確保する必要があります。Kilo コントローラーまたはコンピュートサービスを開始する前に、
nova.conf
の[upgrade_levels]
セクションのcompute
オプションをjuno
に設定する必要があります。crudini --set /etc/nova/nova.conf upgrade_levels compute juno
# crudini --set /etc/nova/nova.conf upgrade_levels compute juno
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーホストおよびコンピュートホストで、上記の変更を加える必要があります。全コンピュートホストを OpenStack Kilo にアップグレードした後で、この変更を元に戻す必要があります。 - コンピュートホストで以下のコマンドを実行します。
openstack-service stop nova yum -d1 -y upgrade \*nova\* openstack-db --service nova --update
# openstack-service stop nova # yum -d1 -y upgrade \*nova\* # openstack-db --service nova --update
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Kilo に完全に更新した後に (すべてのノードが Kilo を実行している場合)、フレーバー情報のバックグラウンド移行を開始する必要があります。Kilo のコンダクターノードは、必要な場合にこの操作を自動的に行いますが、それ以外のアイドルデータはバックグラウンドで移行する必要があります。以下のコマンドは、
nova
ユーザーとして実行してください。runuser -u nova -- nova-manage db migrate_flavor_data
# runuser -u nova -- nova-manage db migrate_flavor_data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 全ホストを Kilo にアップグレードした後には、以前のステップで設定した API の制限を削除します。全ホスト上で以下のコマンドを実行します。
crudini --del /etc/nova/nova.conf upgrade_levels compute
# crudini --del /etc/nova/nova.conf upgrade_levels compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンピュートホストおよびコントローラーすべてで Compute Service を再起動します。
openstack-service start nova
# openstack-service start nova
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- OpenStack Networking (neutron)
- OpenStack Networking ホストで以下のコマンドを実行します。
openstack-service stop neutron yum -d1 -y upgrade \*neutron\* openstack-db --service neutron --update
# openstack-service stop neutron # yum -d1 -y upgrade \*neutron\* # openstack-db --service neutron --update
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenStack Networking Service のアップグレードが完了したら、
rootwrap dhcp.filter
の設定ファイルを編集する必要があります。これには、/usr/share/neutron/rootwrap/dhcp.filters
ファイルで、以下のようにdnsmasq
の値を更新します。たとえば、この値はdnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq
dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように置き換えます。dnsmasq: CommandFilter, dnsmasq, root
dnsmasq: CommandFilter, dnsmasq, root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenStack Networking Service を再起動します。
openstack-service start neutron
# openstack-service start neutron
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- Dashboard (horizon)Dashboard ホストで以下のコマンドを実行します。
yum -y upgrade \*horizon\* \*openstack-dashboard\* yum -d1 -y upgrade \*horizon\* \*python-django\* systemctl restart httpd
# yum -y upgrade \*horizon\* \*openstack-dashboard\* # yum -d1 -y upgrade \*horizon\* \*python-django\* # systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- アップグレード後のタスク:
- 個別サービスのアップグレードをすべて完了した後には、全システムで完全なパッケージアップグレードを行う必要があります。
yum upgrade
# yum upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドで、すべてのパッケージが最新の状態にします。実行中のプロセスにおいて、更新後の基盤バイナリーバージョンが使用されるように、OpenStack ホストの再起動を後日にスケジューリングしてください。 - 上記の操作によって生成された設定ファイルを確認します。アップグレードされたパッケージには、Red Hat Enterprise Linux OpenStack Platform 7 バージョンのサービスに適した
.rpmnew
ファイルがインストールされているはずです。新しいバージョンの OpenStack サービスでは、特定の設定オプションが非推奨になっている可能性があります。このような非推奨の設定オプションが原因で今後のアップグレードの際に問題が発生する可能性があるため、非推奨の警告については OpenStack のログも参照してください。各サービスで新規追加/更新された設定オプションや非推奨となった設定オプションについての詳しい説明は、Red Hat Enterprise Linux OpenStack Platform ドキュメントスイート で『Configuration Reference』を参照してください。