Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4.9. RHBA-2021:2385 - Red Hat OpenStack Platform 13 のバグ修正および機能拡張アドバイザリー

本項に記載するバグは、アドバイザリー RHBA-2021:2385 で対応しています。このアドバイザリーについての詳しい情報は、RHBA-2021:0817 - Bug Fix Advisory を参照してください

openstack-cinder コンポーネント

今回の更新以前は、Block Storage サービス(cinder) API 応答が失われた場合、NetApp SolidFire バックエンドは未使用の複製ボリュームを作成していました。

今回の更新で、SolidFire ドライバーのパッチは、最初にボリューム名の作成を試みる前に、ボリューム名がすでに存在しているかどうかを確認します。このパッチは、読み取りタイムアウトの検出直後にボリュームの作成をチェックし、無効な API 呼び出しを防ぎます。(BZ#1914590)

今回の更新以前は、Block Storage サービス(cinder)を使用して HP3Par Storage バックエンドサーバーのスナップショットから多数のインスタンス(ブート可能なボリューム)を作成すると、タイムアウトが発生していました。HP 変数(convert_to_base)が true に設定され、HP3Par が元のボリュームのシックボリュームを作成していました。これは不要で不要なアクションでした。

今回の更新により、新しい HP ドライバー(4.0.11)が新しい仕様を含む RHOSP 13 にバックポートされました。

hpe3par:convert_to_base=True | False
  • True (デフォルト): ボリュームはスナップショット(HOS8 の動作)とは別に作成されます。
  • false - ボリュームは、スナップショットの子として作成されます(HOS5 の動作)。

使用方法

cinder type-key コマンドを使用して、HPE3Par ボリュームの新しい仕様を設定できます。

cinder type-key <volume-type-name-or-ID> set hpe3par:convert_to_base=False | True

$ cinder type-key myVolType set hpe3par:convert_to_base=False
$ cinder create --name v1 --volume-type myVolType 10
$ cinder snapshot-create --name s1 v1
$ cinder snapshot-list
$ cinder create --snapshot-id <snap_id> --volume-type myVolType --name v2 10

注記

v2 のサイズが v1 よりも大きい場合は、ボリュームを拡張することはできません。この場合、エラーを回避するために、v2 はベースボリュームに変換されます(convert_to_base=True)。(BZ#1940153)

今回の更新以前は、Block Storage サービス(cinder)の NetApp SolidFire バックエンドへの API 呼び出しが xNotPrimary エラーで失敗する可能性がありました。このタイプのエラーは、SolidFire が接続を自動的に移動してクラスターのワークロードをリバランスするために、同時に操作がボリュームに追加されたときに発生しました。

今回の更新で、SolidFire ドライバーのパッチが、再試行できる例外のリストに xNotPrimary 例外を追加するようになりました。(BZ#1888417)

今回の更新以前は、特定の環境でユーザーがタイムアウトしていましたが、大概がボリュームが大きすぎていました。多くの場合、これらのマルチテラバイトボリュームでは、ネットワークのパフォーマンスが低下したり、SolidFire クラスターに関連するアップグレードの問題が発生したりしていました。

今回の更新で、SolidFire ドライバーに 2 つのタイムアウト設定が追加され、ユーザーが環境に適切なタイムアウトを設定できるようになりました。(BZ#1888469)

openstack-tripleo-heat-templates

今回の機能拡張により、オーバークラウドのデプロイ時に、ロールの Orchestration サービス(heat)パラメーター ServiceNetMap をオーバーライドできるようになりました。

TLS を使用するスパイン/リーフ型(エッジ)デプロイメントでは、階層の補間を使用してロールのネットワークをマッピングする際に問題がありました。ロールごとに ServiceNetMap を上書きすると、TLS-everywhere のデプロイメントで発生する問題が修正され、インターフェイスが容易になり、より複雑な階層の補間の必要性がなくなります。(BZ#1875508)

Block Storage のバックアップサービスは、ホスト上のファイルにアクセスする必要がある場合がありますが、サービスを実行するコンテナーで利用できない場合があります。今回の機能拡張により、CinderBackupOptVolumes パラメーターが追加されました。これを使用して、Block Storage のバックアップサービス用に追加のコンテナーボリュームマウントを指定することができます。(BZ#1924727)

puppet-tripleo

今回の更新以前は、最新バージョンの Red Hat AMQ Interconnect では CA 証明書のない TLS 接続が許可されないため、Service Telemetry Framework (STF)クライアントは STF サーバーに接続できませんでした。

今回の更新では、新しいオーケストレーションサービス (heat) パラメーター MetricsQdrSSLProfiles を提供することで、この問題を修正します。

Red Hat OpenShift TLS 証明書を取得するには、以下のコマンドを入力します。

$ oc get secrets
$ oc get secret/default-interconnect-selfsigned -o jsonpath='{.data.ca\.crt}' | base64 -d

Red Hat OpenShift TLS 証明書の内容を含む MetricsQdrSSLProfiles パラメーターをカスタム環境ファイルに追加します。

MetricsQdrSSLProfiles:
    -   name: sslProfile
        caCertFileContent: |
           -----BEGIN CERTIFICATE-----
           ...
           TOpbgNlPcz0sIoNK3Be0jUcYHVMPKGMR2kk=
           -----END CERTIFICATE-----

次に、openstack overcloud deploy コマンドを使用してオーバークラウドを再デプロイします。(BZ#1934440)

python-os-brick

今回の更新以前は、Compute サービス(nova)が Block Storage サービス(cinder)への 終了接続 呼び出しを行うと、シングルデバイスおよびマルチパスデバイスがフラッシュされず、これらのデバイスが 残り 状態にあるため、データの損失のリスクがありました。

この問題の原因は、os-brick disconnect_volume コードは、use_multipath パラメーターに、元の connect_volume 呼び出しで使用されたコネクターと同じ値があることを前提としていました。

今回の更新により、Block Storage サービスは接続を解除する方法を変更します。os-brick コードは、インスタンスに接続されているボリュームの Compute サービスのマルチパス設定が変更された場合に、ボリュームを適切にフラッシュおよびデタッチするようになりました。(BZ#1943181)