第6章 バグ修正
本セクションでは、Red Hat Ceph Storage の本リリースで修正された、ユーザーに影響するバグを説明します。また、セクションでは、以前のバージョンで見つかり修正された既知の問題を説明します。
6.1. Cephadm ユーティリティー
コンテナープロセス数の制限が max
に設定されている
以前は、コンテナーのプロセス数の制限である 2048 により、新しいプロセスが制限を超えてフォークされることはありませんでした。
このリリースでは、プロセス数の制限が max
に設定されているため、ターゲットごとに必要な数の LUN を作成できます。ただし、その数は引き続きサーバーリソースによって制限されます。
バッチで OSD を作成する際に、利用できないデバイスが渡されなくなる
以前は、GPT ヘッダーを持つデバイスは使用不可としてマークされませんでした。GPT ヘッダーを持つデバイスでは OSD を作成できないため、Cephadm が、他の有効なデバイスとともに、これらのデバイスで OSD をバッチで作成しようとすると、バッチ OSD の作成に失敗していました。そのため、OSD は作成されませんでした。
この修正により、OSD をバッチで作成する際に使用できないデバイスが渡されなくなり、GPT ヘッダーを持つデバイスは有効なデバイスでの OSD の作成をブロックしなくなりました。
サポートされていない形式で --format
引数を指定したユーザーは、トレースバックを受け取る
以前は、オーケストレーターは、サポートされていない --format
引数を受け取るたびに例外を出力し、サポートされていない形式で --format
を渡したユーザーがトレースバックを受け取る原因となっていました。
この修正により、サポートされていない形式が適切に処理され、ユーザーがサポートされていない形式を提供すると、その形式がサポートされていないことを説明するメッセージが表示されるようになりました。
ceph-common
パッケージが、依存関係エラーなしでインストールできるようになる
以前は、Red Hat Ceph Storage 4 を Red Hat Ceph Storage 5 にアップグレードした後、いくつかのパッケージが除外され、依存関係のエラーが生じていました。
この修正により、Red Hat Ceph Storage 4 パッケージが削除され、ceph-common
パッケージをプリフライト Playbook の実行中にエラーなしでインストールできるようになりました。
tcmu-runner
デーモンは迷子のデーモンとして報告されなくなる
以前は、tcmu-runner
デーモンは iSCSI の一部とみなされるため、cephadm
によってアクティブに追跡されませんでした。そのため、cephadm
が追跡しないことで tcmu-runner
デーモンは迷子のデーモンとして報告されていました。
この修正により、tcmu-runner
デーモンが既知の iSCSI デーモンと一致すると、迷子のデーモンとしてマークされなくなりました。
ユーザーは、明示的な IP なしでアクティブマネージャーを使用してホストを再追加できる
以前は、cephadm
がコンテナー内から現在のホストの IP アドレスを解決しようとするたびに、ループバックアドレスに解決される可能性がありました。ユーザーがアクティブな Ceph Manager を使用してホストを再度追加する場合は、明示的な IP が必要であり、ユーザーがそれを指定しなかった場合はエラーメッセージが表示されていました。
この修正では、ホストが明示的に提供されておらず、名前の解決としてループバックアドレスを返す場合、cephadm
はホストを再追加する際に古い IP を再利用します。ユーザーは、明示的な IP なしにアクティブなマネージャーでホストを再度追加できるようになりました。
cephadm
は、設定を推測していたデーモンの fsid
が予想される fsid
と一致するかどうかを検証する
以前の cephadm
では、設定を推測するデーモンの fsid
が、予想される fsid
と一致するかどうかを確認するためのチェックが行われていませんでした。このため、ユーザーの /var/lib/ceph/FSID/DAEMON_NAME
ディレクトリーに予想とは異なる fsid
があった場合でも、そのデーモンディレクトリーの設定は引き続き推測されていました。
今回の修正により、fsid
が期待されるものと一致するかどうかを確認するためのチェックが行われ、ユーザーは “failed to probe daemons or devices (デーモンまたはデバイスのプローブに失敗しました)" というエラーを受け取らなくなりました。
cephadm
は、異なる名前のクライアントキーリングのコピーをサポートする
以前は、クライアントのキーリング ceph.keyring
をコピーする際に、cephadm
は宛先にファイル名を適用していました。
この修正で、cephadm
は別の名前でのクライアントキーリングのコピーをサポートし、コピー時の自動名前変更の問題を排除するようになりました。
ユーザーは、-c ceph.conf
オプションを使用して、複数のパブリックネットワークでクラスターをブートストラップできる
以前は、-c ceph.conf
オプションの一部として提供された場合、cephadm
はブートストラップ中に複数のパブリックネットワークを解析しませんでした。そのため、複数のパブリックネットワークでクラスターをブートストラップできませんでした。
この修正では、提供された ceph.conf
ファイルから、public network
フィールドが正しく解析され、public_network mon config
フィールドの入力に使用できるようになりました。これにより、ユーザーは -cceph
オプションを使用して、複数のパブリックネットワークを提供するクラスターをブートストラップできます。
数値のサービス ID を使用して MDS サービスを設定すると、ユーザーに警告するエラーが出力される
以前は、数値のサービス ID を使用して MDS サービスを設定すると、MDS デーモンがクラッシュしていました。
今回の修正により、数値のサービス ID を使用して MDS サービスを作成しようとすると、すぐにエラーが出力され、ユーザーに数値のサービス ID を使用しないよう警告するようになりました。
ceph orch redeploy mgr
コマンドは、最後にアクティブな Manager デーモンを再デプロイする
以前は、ceph orch redeploy mgr
コマンドを使用すると、スケジュールされた再デプロイアクションをクリアせずに Ceph Manager デーモンが継続的に再デプロイされるため、Ceph Manager デーモンは際限なくフラッピングしていました。
このリリースでは、アクティブマネージャーデーモンは必ず最後に再デプロイされ、ceph orch redeploy mgr
コマンドが各 Ceph Manager を 1 回だけ再デプロイするように、再デプロイの順序が調整されました。
カスタム名を持つクラスターの採用がサポートされるようになる
以前は、cephadm
が unit.run
ファイルでカスタムクラスターを伝播しないため、カスタム名の Ceph クラスターから Ceph OSD コンテナーを使用できませんでした。
このリリースでは、cephadm
は LVM メタデータを変更し、デフォルトのクラスター名 Ceph を適用するため、カスタムクラスター名を持つクラスターを使用すると期待どおりに機能します。
cephadm
は、ceph orch upgrade start
コマンドに提供されるイメージ名に docker.io
を追加しなくなる
これまで、cephadm
は非修飾レジストリーからの任意のイメージに docker.io
を追加していました。そのため、ローカルレジストリーなどの非修飾レジストリーからのイメージをアップグレードのために渡すことはできませんでした。これは、このイメージのプルに失敗するためです。
Red Hat Ceph Storage 5.2 以降、名前が ceph/ceph:v17
などのアップストリーム ceph イメージと一致しない限り、docker.io
はイメージ名に追加されなくなりました。ceph orch upgrade
コマンドを実行すると、ユーザーはローカルレジストリーからイメージを渡すことができ、Cephadm
はそのイメージにアップグレードできます。
これは、5.2 以降のアップグレードにのみ適用されます。5.1 から 5.2 へのアップグレードは、引き続きこの問題の影響を受けます。
Cephadm
は、レガシーデーモンから設定ファイルを推測しなくなる
これまで Cephadm
は、/var/lib/ceph/{mon|osd|mgr}
ディレクトリーの存在に基づいて、デーモンが残っているかどうかに関わらず、レガシーデーモンから設定ファイルを推測していました。これにより、ディスク更新などの特定のタスクが、これらのディレクトリーが存在するノードで失敗しました。これは、Cephadm
が存在しない設定ファイルを推測しようとする際にエラーを出力するためです。
この修正により、Cephadm
はレガシーデーモンから設定ファイルを推測しなくなりました。代わりに、推測する前に既存の設定ファイルをチェックします。レガシーデーモンディレクトリーが存在するため、ホスト上のデーモンまたはデバイスを更新するときに Cephadm
で問題が発生しなくなりました。
.rgw.root
プールが自動的に作成されなくなる
以前は、マルチサイト用の Ceph Object Gateway の追加チェックが存在していたため、ユーザーが .rgw.root
プールを削除してもプールが自動的に作成されていました。
Red Hat Ceph Storage 5.2 以降、マルチサイトチェックが削除され、ユーザーが Ceph Object Gateway 関連のアクションを実行することで作成されない限り、.rgw.root
プールは自動的に作成されなくなりました。
Ceph Manager デーモンが、cephadm
の配置仕様で指定されなくなったホストから削除される
以前は、現在アクティブなマネージャーデーモンは、マネージャーサービス仕様で指定された配置と一致しなくなった場合でも、cephadm
から削除されませんでした。ユーザーがサービス仕様を変更して、現在アクティブなマネージャーが存在するホストを除外すると、フェイルオーバーが発生するまで、余分なマネージャーが作成されます。
今回の修正により、スタンバイが使用可能で、アクティブなマネージャーがサービス仕様に一致しなくなったホスト上にある場合、cephadm
はマネージャーをフェイルオーバーします。Ceph Manager デーモンは、マネージャーがアクティブなマネージャーであっても、cephadm
の配置仕様で指定されなくなったホストから削除されます。
不正な URL による 404 エラーが原因で、ログにトレースバックが発生
以前は、cephadm
が prometheus レシーバーの URL を誤って形成し、不正な URL にアクセスしようとすると 404 エラーが発生するため、トレースバックがログに出力されていました。
この修正により、URL の形式が修正され、404 エラーが回避されます。トレースバックは記録されなくなりました。
cephadm
は、ホストレベルで osd_memory_target
設定を削除しなくなる
以前は、osd_memory_target_autotune
がグローバルにオフになっていた場合、cephadm
はユーザーがホストレベルで osd_memory_target
に設定した値を削除していました。さらに、FQDN 名を持つホストの場合、クラッシュマップで短い名前が使用されていても、cephadm
は引き続き FQDN を使用して設定オプションを設定します。このため、ユーザーは osd_memory_target
をホストレベルで手動で設定できず、osd_memory_target
自動チューニングは FQDN ホストでは機能しませんでした。
今回の修正により、osd_memory_target_autotune
が false
に設定されている場合、osd_memory_target
設定はホストレベルで cephadm
から削除されません。また、ホストレベル osd_memory_target
を設定するときは、常にホストの短い名前を使用します。ホストレベルで osd_memory_target_autotune
が false
に設定されている場合、ユーザーは手動で osd_memory_target
を設定し、オプションが cephadm
によって削除されないようにすることができます。さらに、FQDN 名で cephadm
に追加されたホストで自動調整が機能するようになりました。
Cephadm
は FQDN を使用して Aalertmanager Webhook URL を構築する
これまで Cephadm
は、ホスト用に保存した IP アドレスに基づいて Alertmanager Webhook URL を選択していました。そのため、Webhook URL は特定のデプロイメントで機能せず、問題が発生していました。
この修正により、Cephadm
は FQDN を使用して Alertmanager Webhook URL を構築するため、以前は壊れていた一部のデプロイメント状況で Webhook URL が機能するようになりました。