4.5. RHBA-2021:0817: Red Hat OpenStack Platform 16.1.4 director のバグ修正アドバイザリー
本項に記載するバグは、アドバイザリー RHBA-2021:0817 で対応しています。このアドバイザリーについての詳しい情報は、RHBA-2021:0817 - Bug Fix Advisory を参照してください。
openstack-cinder コンポーネントに対する変更:
- 今回の更新以前は、Key Manager (barbican) サービスと共に Block Storage (cinder) サービスを使用する場合、クローン作成された暗号化ボリュームにアクセスすることができませんでした。今回の更新により、Key Manager サービスと共に Block Storage サービスを使用する場合に、クローン作成された暗号化ボリュームにアクセスできるようになりました。(BZ#1889228)
- データベースは all_tenants キーを解析できないため、ボリュームの譲渡要求で渡されるキーは削除されます。このキーを削除すると、ユーザーは譲渡名を使用して特定のボリューム譲渡の詳細を表示することができます。今回の更新以前は、all_tenants キーは管理ユーザーについてのみ削除されていました。つまり、管理者以外のユーザーは譲渡名を使用してボリュームの譲渡を表示することができませんでした。今回の更新により、管理者以外のユーザーについても all_tenants キーが削除され、管理者以外が譲渡名を使用してボリュームの譲渡を表示できるようになりました。(BZ#1847907)
- 今回の更新以前は、ボリューム接続を初期化する際に Block Storage (cinder) NEC バックエンドドライバーが無効なデータを返すことがありました。これにより、ライブマイグレーションに失敗する場合がありました。今回の更新で、NEC ドライバーが修正され、確実に有効な接続データを返すようになりました。無効なボリューム接続データによりライブマイグレーションに失敗することがなくなりました。(BZ#1910854)
今回の更新以前は、ボリュームがイメージ、スナップショット、または他のボリューム等の別のソースから作成された場合でも、Block Storage (cinder) サービスは、新たに規作したボリュームに必ずデフォルトのボリューム種別を割り当てていました。これにより、別のソースから作成されたボリュームのボリューム種別が、ソースのボリューム種別と異なっていました。
今回の更新により、デフォルトのボリューム種別を割り当てるべきかどうかをソースのボリューム種別に基づいて判別した後にのみ、デフォルトのボリューム種別が割り当てられるようになりました。別のソースから作成されたボリュームのボリューム種別が、ソースのボリューム種別と一致するようになりました。(BZ#1921735)
-
今回の更新以前は、
cinder service-get-log
コマンドで渡される際に--server
オプションが無視されていました。これにより、特定ホストだけのログではなくすべてのホストのログが返されていました。今回の更新により、--server
オプションを使用することで、指定したホストのログに正しく絞り込まれるようになりました。(BZ#1728142)
openstack-tripleo-common コンポーネントに対する変更:
virt-admin
ツールが利用できるようになり、これを使用して RHOSP のバグを報告するログを取得することができます。ログにはコンピュートノード上の libvirt と QEMU 間の通信が記録されるので、このツールは、libvirt および QEMU に関するすべての問題のトラブルシューティングに役立ちます。virt-admin
を使用すると、libvirt および QEMU のデバッグ用ログフィルターを動的に設定することができます。この場合、nova_libvirt
コンテナーを再起動する必要はありません。コンピュートノードで libvirt および QEMU のログフィルターを有効にするには、以下の手順を実施します。
コンピュートノードの
nova_libvirt
コンテナーにログインします。$ sudo podman exec -it nova_libvirt /bin/bash
virt-admin
の出力を送信するログファイルの名前および場所を指定します。$ virt-admin daemon-log-outputs "1:file:/var/log/libvirt/libvirtd.log"
ログを収集するフィルターを設定します。
$ virt-admin daemon-log-filters \ "1:libvirt 1:qemu 1:conf 1:security 3:event 3:json 3:file 3:object 1:util"
注記ライブマイグレーションの問題をデバッグする場合、これらのフィルターをすべての移行元および移行先コンピュートノードで設定する必要があります。
-
テストを繰り返します。デバッグが完了したら、
libvirtd.log
をバグにアップロードします。 コンピュートノードで libvirt および QEMU のログフィルターを無効にします。
$ virt-admin daemon-log-filters ""
フィルターが削除されたことを確認するには、以下のコマンドを入力します。
$ virt-admin daemon-log-filters
フィルターが正常に削除されている場合、このコマンドは空のリストを返します。
(BZ#1870199)
openstack-tripleo-heat-templates コンポーネントに対する変更:
今回の更新以前は、TLS everywhere 環境での Red Hat OpenStack Platform 13 から 16.1 へのインプレースアップグレードにおいて、novajoin コンテナーに誤った rabbitmq パスワードが使用されていました。これにより、アンダークラウドの novajoin コンテナーが正しく機能せず、すべてのオーバークラウドノードでのアップグレードの実行が以下のエラーと共に失敗していました。
2020-11-24 20:01:31.569 7 ERROR join File "/usr/lib/python3.6/site-packages/amqp/connection.py", line 639, in _on_close 2020-11-24 20:01:31.569 7 ERROR join (class_id, method_id), ConnectionError) 2020-11-24 20:01:31.569 7 ERROR join amqp.exceptions.AccessRefused: (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN. For detail see the broker logfile.
今回の更新により、TLS everywhere 環境での RHOSP 13 から 16.1 へのアップグレードで正しい rabbitmq パスワードが使用され、アップグレードのフレームワークを正常に完了できるようになりました。(BZ#1901157)
- 今回の機能拡張により、分散コンピュートノード (DCN) アーキテクチャーのエッジサイトに Red Hat Ceph Storage (RHCS) Dashboard をデプロイできるようになりました。(BZ#1793595)
今回の機能拡張により、新たな 2 つのパラメーター
NovaPMEMMappings
およびNovaPMEMNamespaces
を使用して、vPMEMEM を管理できるようになりました。-
NovaPMEMMappings
を使用して、vPMEM と物理 PMEM 名前空間の間のマッピングを反映する nova 設定オプションpmem_namespaces
を定義します。 -
NovaPMEMNamespaces
を使用して、vPMEM のバックエンドとして使用する物理 PMEM 名前空間を作成および管理します。(BZ#1834185)
-
現在、サブスクライブした環境に正しい DNF モジュールストリームが設定されるようにするメカニズムに既知の問題があります。Advanced Virtualization リポジトリーは、Ceph ノードが使用するサブスクリプションで常に利用可能な訳ではありません。そのため、virt:8.2 を有効にしようとすると、Ceph ノードのアップグレードまたは更新に失敗します。
回避策:
アップグレードまたは更新用環境ファイルの
DnfStreams
パラメーターをオーバーライドし、Ceph のアップグレードが失敗するのを回避します。parameter_defaults: ... DnfStreams: [{'module':'container-tools', 'stream':'2.0'}]
注記この回避策を使用する場合、Advanced Virtualization DNF ストリームは適用されません。
詳細は、BZ#1923887 を参照してください。(BZ#1866479)
- 今回の機能拡張により、エッジサイトでの異なるストレージ設定がサポートされるようになりました。オペレーターは、同じ DCN デプロイメント内にストレージが設定されたエッジサイトと設定されないエッジサイトをデプロイすることができます。(BZ#1882058)
-
Block Storage のバックアップサービスは、ホスト上のファイルにアクセスしなければならない場合がありますが、そのファイルがサービスを実行するコンテナーで利用できないことがあります。今回の機能拡張により、
CinderBackupOptVolumes
パラメーターが追加されました。これを使用して、Block Storage のバックアップサービス用に追加のコンテナーボリュームマウントを指定することができます。(BZ#1891828) - 今回の更新以前は、事前にプロビジョニングされたノード上での TLS-E が--server cannot be used without providing --domain というメッセージと共に失敗していました。今回の更新により、IDM ドメイン名が DNS で最初に解決する ipa-ca により検出され、続いて取得した IP アドレスで逆引きの DNS ルックアップを実行するようになりました。リバースルックアップに必要な PTR レコードを、手動で追加しなければならない場合があります。(BZ#1874936)
-
今回の更新以前は、RHOSP 15 から RHOSP 16.1 にアップグレードする際、データベースのオンライン更新を実行するのに
openstack overcloud external-upgrade run --tags online_upgrade
コマンドを使用する必要がありました。今回の更新で、openstack overcloud external-update run --tags online_upgrade
コマンドが使用できるようになりました。(BZ#1884556) 今回の更新以前は、
NovaComputeEnableKsm
を有効にし、Red Hat Subscription Management を使用してオーバークラウドのコンピュートノードを登録した場合、qemu-kvm-common
パッケージのインストールに失敗していました。これは、コンピュートノードが必要なリポジトリーに登録される前に設定が適用される場合があったためです。今回の更新により、Red Hat Subscription Management を使用してコンピュートノードを必要なリポジトリーに登録した後にのみ
NovaComputeEnableKsm
が有効化されるようになりました。これにより、qemu-kvm-common
パッケージが正常にインストールされるようになりました。(BZ#1895894)- 今回の更新以前は、iSCSI/LVM Block Storage バックエンドにより作成される接続データが永続的に保存されませんでした。そのため、リブート後にボリュームにアクセスすることができませんでした。今回の更新により、接続データが永続的に保存され、システムのリブート後にボリュームにアクセスできるようになりました。(BZ#1898484)
今回の更新以前は、エッジサイトにデプロイされた Image (glance) サービスは、中央サイトのコントロールプレーンで実行されている Key Manager (barbican) サービスにアクセスするように設定されませんでした。そのため、エッジサイト上で実行中の Image サービスは、Key Manager サービスに保存された暗号鍵にアクセスすることができませんでした。
今回の更新により、エッジサイト上で実行中の Image サービスは、Key Manager サービスに保存された暗号鍵にアクセスするように設定されるようになりました。(BZ#1899761)
puppet-collectd コンポーネントに対する変更:
-
今回の機能拡張により、
ExtraConfig
のパラメーターcollectd::plugin::virt::plugin_instance_format
を使用して、collectd virt プラグインのプラグインインスタンスの形式を設定できるようになりました。これにより、インスタンスが実行されているホストなど、仮想マシンインスタンスのメトリックラベルでより細かな粒度でメタデータを公開することができます。(BZ#1878191) -
今回の更新以前は、
collectd::plugin::virt::hostname_format
パラメーターに複数の値を設定した場合、director はそれらの値を二重引用符で囲っていました。これにより、virt プラグインの読み込みに失敗していました。今回の更新により、collectd::plugin::virt::hostname_format
を設定する際に、director は複数の値を二重引用符で囲まなくなりました。(BZ#1902142)
python-network-runner コンポーネントに対する変更:
- 今回の更新以前は、OSP 16.1.3 における python-network-runner の 0.1.7 から 0.2.2 へのリベースにより、Ansible を使用する ML2 ネットワークが機能しなくなりました。今回の更新で、python-networking-ansible が 0.1.7 に戻され、Ansible ネットワークが機能する状態に戻りました。詳細は、ML2 networking-ansible を参照してください。(BZ#1909795)
python-networking-ovn コンポーネントに対する変更:
- 今回の機能拡張により、外部ネットワークを通じてマルチキャストを制御し、内部ネットワークだけではなく外部ネットワークを通じたクラスターの自動生成を避けることができるようになりました。(BZ#1575512)
- 今回の更新以前は、OVN メカニズムドライバーは、そのエージェントリストと Networking (neutron) サービスのデータベースに保管されたリストを正しくマージしませんでした。今回の更新により、API が結果を返す前に、OVN および Networking サービスのデータベースからの結果がマージされるようになりました。(BZ#1828889)
今回の機能拡張により、ML2/OVN メカニズムドライバーと vlan および geneve ネットワークタイプドライバーの組み合わせにおいて、vlan の透過性がサポートされるようになりました。
vlan の透過性により、Networking (neutron) サービスのネットワーク上のインスタンスを使用して vlan タグを管理することができます。他のネットワークに影響を与えずに、インスタンスに vlan インターフェイスを作成し、任意の vlan タグを使用することができます。Networking サービスは、これらの vlan タグを認識しません。
注記
- vlan 種別のネットワークで vlan の透過性を使用する場合、パケットの内部および外部 ethertype は 802.1Q (0x8100) になります。
- フラットプロバイダーネットワークでは、ML2/OVN メカニズムドライバーは vlan の透過性をサポートしません。
(BZ#1846019)
python-os-brick コンポーネントに対する変更:
- 今回の更新以前は、PowerFlex、VxFlex、および ScaleIO ボリュームが接続された RHOSP 13 環境で作成されたインスタンスは、RHOSP 16.x へのアップグレード後に再起動に失敗していました。これは、RHOSP 16.x Compute サービスでは、接続されたボリュームにアクセスするのに新しい PowerFlex ドライバーの接続属性が使用され、この属性が RHOSP 13 環境で実行中のインスタンスに接続されたボリュームの接続属性に存在しないためです。今回の更新により、この接続属性がない場合にエラーが投げられなくなり、RHOSP 13 環境で作成された PowerFlex ボリュームが接続されたインスタンスは、RHOSP 16.x へのアップグレード後も正常に機能を続けます。
python-paunch コンポーネントに対する変更:
今回の更新以前は、ユーザーが標準の tag_from_label: "{version}-{release}"ではなくカスタムのタグ (例:tag: "latest"または tag: "16.1") を使用するように
ContainerImagePrepare
パラメーターを設定した場合、コンテナーは最新のコンテナーイメージに更新されませんでした。今回の更新により、ユーザーがデプロイメントアクション (更新を含む) を実行すると、コンテナーイメージが必ずフェッチされるようになりました。イメージ ID を実行中のコンテナーに対して確認し、最新のイメージが使用されるようにコンテナーを再ビルドする必要があるかどうかを判断します。デプロイメントアクション時に必ずコンテナーがリフレッシュされ、更新された場合には再起動されるようになりました。
注記これは、デプロイメント時に必ずイメージをフェッチするのではなく、イメージが存在することしか確認しなかった以前のバージョンからの変更点です。ユーザーがタグを再使用する場合 (例: latest)、スケーリング等のアクションを実行すると、ノードのコンテナーが更新される場合があります。Satellite サーバーのデプロイメントを使用してコンテナータグを制御していない限り、latest を使用することは推奨されません。
(BZ#1881476)
python-tripleoclient コンポーネントに対する変更:
今回の更新以前は、ローカル一時ストレージを持ち
UseTLSTransportForNbd
が False に設定された TLS everywhere 環境をアップグレードする場合、ライブマイグレーションに失敗していました。これは、UseTLSTransportForNbd
設定のデフォルト値が RHOSP 13 では False であったのが RHOSP 16.x では True に変更され、これにより QEMU プロセスコンテナーに正しい証明書が含まれなかったためです。今回の更新により、director は
global_config_settings
で以前のデプロイメント環境の設定を確認し、それを使用してアップグレードでUseTLSTransportForNbd
が以前のデプロイメントと同じ状態を維持するようになりました。設定ファイルにglobal_config_settings
が存在する場合、director はuse_tls_for_nbd
キーの設定を確認します。global_config_settings
が存在しない場合、director は hieradata キーnova::compute::libvirt::qemu::nbd_tls
を評価します。アップグレードしたデプロイメントのUseTLSTransportForNbd
を以前のデプロイメントと同じ状態に維持することで、ライブマイグレーションが機能するようになりました。(BZ#1906698)