第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 が機能するようになりました。