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
$ sudo podman exec -it nova_libvirt /bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow virt-adminの出力を送信するログファイルの名前および場所を指定します。virt-admin daemon-log-outputs "1:file:/var/log/libvirt/libvirtd.log"
$ virt-admin daemon-log-outputs "1:file:/var/log/libvirt/libvirtd.log"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログを収集するフィルターを設定します。
virt-admin daemon-log-filters \ "1:libvirt 1:qemu 1:conf 1:security 3:event 3:json 3:file 3:object 1:util"
$ virt-admin daemon-log-filters \ "1:libvirt 1:qemu 1:conf 1:security 3:event 3:json 3:file 3:object 1:util"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ライブマイグレーションの問題をデバッグする場合、これらのフィルターをすべての移行元および移行先コンピュートノードで設定する必要があります。
-
テストを繰り返します。デバッグが完了したら、
libvirtd.logをバグにアップロードします。 コンピュートノードで libvirt および QEMU のログフィルターを無効にします。
virt-admin daemon-log-filters ""
$ virt-admin daemon-log-filters ""Copy to Clipboard Copied! Toggle word wrap Toggle overflow フィルターが削除されたことを確認するには、以下のコマンドを入力します。
virt-admin daemon-log-filters
$ virt-admin daemon-log-filtersCopy to Clipboard Copied! Toggle word wrap Toggle overflow フィルターが正常に削除されている場合、このコマンドは空のリストを返します。
(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.
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.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 今回の更新により、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'}]parameter_defaults: ... DnfStreams: [{'module':'container-tools', 'stream':'2.0'}]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この回避策を使用する場合、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)