第6章 バグ修正

本セクションでは、今回リリースされた Red Hat Ceph Storage で修正されたユーザーに大きな影響を及ぼすバグを説明します。また、セクションでは、以前のバージョンで見つかり修正された既知の問題を説明します。

6.1. Ceph Ansible ユーティリティー

Ceph クラスターのデプロイメント後にレプリケーションプールのサイズを変更できるようになりました。

以前のリリースでは、director を使用して Ceph クラスターをデプロイすると、レプリケーションプールのサイズを増やすことができませんでした。これは、プールサイズのカスタマイズを担当するタスクの問題が原因で、Playbook の再実行時に実行できなくなりました。今回の更新により、クラスターのデプロイメント後にプールサイズを変更できるようになりました。

(BZ#1743242)

Ceph Ansible が Ceph Dashboard のデプロイメント時に複数の grafana インスタンスをサポートする

以前のリリースでは、マルチノード環境では、1 つのノードのみがサポートされているため、ceph-ansible は複数の grafana インスタンスを設定することができませんでした。これにより、残りのノードが未設定のままになりました。今回の更新により、ceph-ansible は複数のインスタンスをサポートし、Ceph Dashboard のデプロイメント時に Ceph 固有のレイアウトを全 Ceph Monitor ノードに挿入するようになりました。

(BZ#1784011)

Dashboard 機能が無効になっていると、Ansible Playbook の purge-cluster.yml の実行に失敗しなくなりました。

以前のリリースでは、Playbook の purge-cluster-yml を使用してクラスターをパージすると、Dashboard 機能が以下のエラーメッセージで無効になると失敗していました。

registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.1
  msg: '[Errno 2] No such file or directory'

これは、Dashboard_enabled 変数が無視されているために生じました。今回の更新により、dashboard_enabled 変数が適切に処理され、purge-cluster.yml が正常に実行されるようになりました。

(BZ#1785736)

Red Hat Ceph Storage の Red Hat OpenStack Platform へのインストールに失敗しなくなりました。

以前のリリースでは、Red Hat OpenStack Platform 16 で Red Hat Ceph Storage をインストールしようとすると、ceph-ansible ユーティリティーが応答しなくなり、以下のようなエラーが返されます。

'Error: unable to exec into ceph-mon-dcn1-computehci1-2: no container with name or ID ceph-mon-dcn1-computehci1-2 found: no such container'

これは、ceph-ansible が、handler_osds.yml の誤ったノードから container_exec_cmd の値を読み取るために生じました。

今回の更新で、ceph-ansible は正しいノードから container_exec_cmd の値を読み取るようになり、インストールは正常に実行されるようになりました。

(BZ#1792320)

Ansible が、完了後に norebalance フラグの設定を解除します。

以前のバージョンでは、Ansible は norebalance フラグの設定を解除せず、手動で設定する必要がありました。今回の更新で、Ansible Playbook の rolling-update.yml は、完了後に norebalance フラグを自動的に設定を解除されるため、手動による設定解除が必要なくなりました。

(BZ#1793564)

Ansible は Dashboard が有効な場合にマルチサイト Ceph Object Gateway をアップグレードします。

以前のリリースでは、Red Hat Ceph Storage Dashboard が有効になっていて、Ansible を使用して Red Hat Ceph Storage の新しいバージョンへのアップグレードを試みると、マルチサイト設定のセカンダリー Ceph Object Gateway サイトへのアップグレードに失敗していました。Red Hat Ceph Storage に今回の更新で、セカンダリーサイトのアップグレードが期待どおりに機能するようになりました。

(BZ#1794351)

Ceph Ansible が Ansible 2.9 と動作する

以前のリリースでは、ceph-ansible バージョン 4.0 以降は Ansible バージョン 2.9 では機能しませんでした。これは、ceph-validate ロールにより Ansible 2.9 に対して ceph-ansible を実行できなかったために生じました。今回の更新により、ceph-ansible が Ansible 2.9 と連携するようになりました。

(BZ#1807085)

カスタムソフトウェアリポジトリーを使用した Ceph インストールに失敗しなくなる

以前のリリースでは、カスタムリポジトリーを使用した Ceph のインストールが許可されませんでした。これは、redhat_custom_repository.yml ファイルが削除されたために生じました。今回の更新により、redhat_custom_repository.yml ファイルが追加され、カスタムリポジトリーを使用して Red Hat Ceph Storage をインストールできるようになりました。

注記

Red Hat が署名するパッケージのみが、カスタムソフトウェアリポジトリーを使用して Ceph をインストールすることができます。カスタムのサードパーティーソフトウェアリポジトリーはサポートされません。

(BZ#1808362)

Dashboard がインストールされていない場合は、ceph-ansible パージ Playbook が失敗しない

以前のバージョンでは、ダッシュボードがデプロイされていない場合、purge Playbook は存在しないダッシュボード関連のリソースの削除を試行するため、クラスターのパージ時に失敗していました。そのため、purge Playbook でダッシュボードがデプロイされ、パージに失敗すると記述されていました。この更新により、デプロイメントの一部ではない場合、ceph-ansible はダッシュボード関連のリソースをパージせず、パージが正常に完了するようになりました。

(BZ#1808988)

スタンドアロンの nfs-ganesha デーモンを外部 Ceph ストレージクラスターで使用すると、デプロイメント時にキーリングがコピーされなくなりました。

以前のリリースでは、スタンドアロンの nfs-ganesha デーモンと外部の Ceph ストレージクラスターで設定される設定では、Ceph Ansible デプロイメント時に Ceph キーリングが /etc/ceph にコピーされませんでした。

今回の更新により、Ceph キーリングが /etc/ceph/ ディレクトリーにコピーされるようになりました。

(BZ#1814942)

Ceph Ansible によって、初回インストール後にダッシュボードの admin ユーザーの権限が更新されます。

以前のリリースでは、ceph-ansible は初回作成時にダッシュボードユーザーの権限を設定できました。インストール時に dashboard_admin_user_ro: false を変更した後に Playbook を実行しても、ユーザーの権限は更新されませんでした。Red Hat Ceph Storage 4.1z1 では、ceph-ansible は、Playbook の連続実行でのダッシュボードユーザーの権限の変更をサポートするように更新されました。

(BZ#1826002)

Playbook の docker-to-podman.yml がダッシュボードコンテナーを移行するようになりました。

grafana-server およびダッシュボードコンテナーを除き、Playbook の docker-to-podman.yml を実行すると、すべてのデーモンが docker から podman に移行していました。今回のリリースにより、docker-to-podman.yml を実行すると、すべてのデーモンが正常に移行されるようになりました。

(BZ#1829389)

古いコンテナーからストレージディレクトリーが削除される

以前のバージョンでは、古いコンテナーのストレージディレクトリーが削除されませんでした。これにより、ディスクの使用量が多くなる可能性があります。これは、Red Hat Ceph Storage をインストールしてそれをパージし、再インストールすると確認できます。Red Hat Ceph Storage 4.1z1 では、使用されなくなったコンテナーのストレージディレクトリーは削除され、過剰なディスク使用量は発生しません。

(BZ#1834974)

Red Hat Enterprise Linux 8.1 でコンテナークラスターを 4.0 から 4.1 にアップグレードすると失敗しなくなりました。

以前のリリースでは、Red Hat Ceph Storage クラスターを 4.0 から 4.1 にアップグレードする際に、set_fact ceph_osd_image_repodigest_before_pulling のエラーでアップグレードに失敗する可能性がありました。コンテナーイメージタグの更新方法に問題があるため、ceph-ansible は失敗する可能性がありました。Red Hat Ceph Storage 4.1z1 では、ceph-ansible が更新され、アップグレードは失敗しなくなり、アップグレードが期待どおりに機能するようになりました。

(BZ#1844496)

Ceph Dashboard の有効化が既存の OpenStack 環境で失敗する

既存の OpenStack 環境で、Ceph Manager ダッシュボードモジュールを有効にした後に Ceph Dashboard の IP アドレスとポートを設定すると、HAProxy 設定とのコンフリクトが発生していました。この競合を避けるには、Ceph Manager ダッシュボードモジュールを有効にする前に、Ceph Dashboard の IP アドレスとポートを設定します。

(BZ#1851455)

Ceph Object Gateway セカンダリーサイトをデプロイする際に Red Hat Ceph Storage Dashboard が失敗する

以前のリリースでは、Red Hat Ceph Storage Dashboard は Ceph Object Gateway マルチサイトのデプロイメントにセカンダリーサイトをデプロイすることができませんでした。これは、Ceph Ansible が radosgw-admin user create コマンドを実行するとエラーを返すためです。今回のリリースにより、デプロイメントプロセスの Ceph Ansible タスクが 2 つの異なるタスクに分割されました。これにより、Red Hat Ceph Storage Dashboard は Ceph Object Gateway のセカンダリーサイトを正常にデプロイできます。

(BZ#1851764)

--limit オプションを指定して Playbook を実行すると、Ceph File System Metadata Server のインストールに失敗します。

最初の Ceph Monitor では設定されませんでしたが、それらのファクトはそれぞれの全 Ceph Monitor ノードに設定されていました。--limit オプションを指定して Playbook を実行する際に、Ceph Monitor がバッチに含まれていない場合に、これらのファクトは Ceph Monitor に設定されませんでした。これは、これらの事実が Ceph Monitor のタスクで使用された場合は、Playbook が失敗する原因となります。今回のリリースでは、Playbook が --limit オプションを使用するかどうかに関わらず、これらのファクトは Ceph Monitor に設定されるようになりました。

(BZ#1852796)

アップグレードに失敗した場合に新たな Ceph Ojbect Gateway インスタンスの追加

radosgw_frontend_port オプションでは、複数の Ceph Object Gateway インスタンスを考慮せず、全インスタンスに対してポート 8080 を設定していました。今回のリリースでは、各 Ceph Object Gateway インスタンスの radosgw_frontend_port オプションが増加し、複数の Ceph Object Gateway インスタンスを使用できるようになりました。

(BZ#1859872)

コンテナー化された環境で FileStore を使用する場合は、Ceph Ansible の Playbook shrink-osd.yml が失敗する

Ceph Ansible の Playbook shrink-osd.yml にはデフォルト値がありませんでした。これにより、コンテナー化された環境で FileStore がサポートする Ceph OSD を縮小する際にエラーが生じていました。ceph-disk および dmcrypt を使用して以前に準備した Ceph OSD は、対応する Ceph OSD ファイルで encrypted キーを未定義のままにしていました。今回のリリースにより、デフォルト値が追加され、Ceph Ansible の Playbook shrink-osd.yml がコンテナー化された環境で dmcrypt を使用して準備されている Ceph OSD で実行できるようになりました。

(BZ#1862416)

HTTPS の使用により、Prometheus およびアラートマネージャーへのアクセスがを遮断

dashboard_protocol オプションを https に設定することにより、Red Hat Ceph Storage Dashboard は TLS をネイティブサポートしない Prometheus API へのアクセスを試行しました。今回のリリースにより、dashboard_protocol オプションを https に設定すると、Prometheus およびアラートマネージャーは HTTP プロトコルを使用するように強制されました。

(BZ#1866006)

Ceph Ansible の Playbook shrink-osd.yml は Ceph OSD を適切に消去しません。

ceph_volume モジュールにより実行される zap アクションは、osd_fsid パラメーターを処理しません。そのため、基になるデバイスに論理ボリュームを残すことにより、Ceph OSD が誤ってザッピングされていました。今回のリリースにより、zap アクションが osd_fsid パラメーターを適切に処理し、縮小後に Ceph OSD を適切にクリーンアップできるようになりました。

(BZ#1873010)

Red Hat Ceph Storage のローリング更新は、複数のストレージクラスターが存在すると失敗します。

複数のストレージクラスターが設定されている際に Ceph Ansible の Playbook rolling_update.yml を実行すると、ストレージクラスター名が指定されていないため、ローリング更新に失敗します。今回のリリースにより、Playbook の rolling_update.yml--cluster オプションを使用して、特定のストレージクラスター名を許可できるようになりました。

(BZ#1876447)

ローリング更新を実行する際に、hosts フィールドに無効な値がある。

Ceph Ansible Playbook rolling_update.ymlhosts 値の評価で構文が変更になったため、Red Hat Ceph Storage のローリング更新に失敗しました。今回のリリースにより、コードに対する修正により、hosts フィールドが Playbook で指定されると構文が適切に更新されるようになりました。

(BZ#1876803)

Playbook rolling_update.yml を実行してもストレージクラスター fsid が取得されない

Playbook rolling_update.yml を実行しても、Ceph Ansible インベントリーに Ceph Monitor ノードが定義されていない場合など、外部シナリオではストレージクラスターの fsid は取得されません。これにより、Playbook の rolling_update.yml に失敗します。今回のリリースでは、インベントリーに定義された Ceph Monitor がない場合に fsid の取得が省略され、Ceph Monitor が存在しない場合に Playbook rolling_update.yml を実行できるようになりました。

(BZ#1877426)