6.8. RADOS
require-osd-release
フラグがクラスターのアップグレード後に適切なリリースに設定されていない場合、Ceph クラスターはヘルス警告を発行します。
以前のバージョンでは、アップグレード後に require-osd-release
フラグの不一致を検出するコードのロジックが、コードのリファクタリング作業中に誤って削除されていました。アップグレード後の ceph -s
出力で警告が発生しないため、適切なリリースにフラグを設定せずにクラスターに加えられた変更により、配置グループ (PG) が特定の状態でスタックし、Ceph のメモリー消費が過剰に行われ、他の多くの問題を含む要求が遅くなっていました。
今回の修正により、require-osd-release
フラグがクラスターのアップグレード後に適切なリリースに設定されていない場合、Ceph クラスターはヘルス警告を発行するようになりました。
ストレッチモードで PG が remapped+peering
状態でスタックすることがなくなる
以前は、論理エラーが原因で、クラスターをストレッチモードで操作しているときに、一部の配置グループ (PG) が特定のクラスター条件下で remapped+peering
状態で永続的にスタックする可能性があり、OSD が再起動されるまでデータを使用できなくなりました。オフラインにしました。
この修正により、PG は安定した OSD セットを選択し、ストレッチモードで remapped+peering
状態で誤ってスタックすることがなくなりました。
OSD デプロイメントツールは、クラスターに変更を加えながら、すべての OSD を正常にデプロイする
KVMonitor paxos サービスは、クラスターへの変更を実行するときに追加、削除、または変更されるキーを管理します。以前は、OSD デプロイメントツールを使用して新しい OSD を追加するときに、サービスがキーへ書き込み可能かどうかを確認せずにキーが追加されていました。このため、paxos コードでアサーションエラーが発生し、モニターがクラッシュしていました。
最新の修正により、新しい OSD を追加する前に KVMonitor サービスが書き込みできるようになりました。できない場合は、コマンドが関連するキューに戻され、後の時点で再試行されるようになりました。OSD デプロイメントツールは、問題なくすべての OSD を正常にデプロイメントします。
PG ログの破損した重複エントリーは、オフラインおよびオンラインのトリミングで削除できる
以前は、PG ログ重複エントリーのトリミングは、人間のオペレーターよりもはるかに高い頻度で PG オートスケーラーによって使用される低レベルの PG 分割操作中に阻止されていました。重複を取り除くと、PG ログのメモリー増大が大幅に増大し、OSD がメモリーが不足するとクラッシュしていました。OSD を再起動しても、PG ログはディスクに保存され、起動時に RAM に再ロードされるため、問題は解決しませんでした。
この修正により、オフライン (ceph-objectstore-tool
コマンドを使用) とオンライン (OSD 内) の両方のトリミングで、オンラインのトリミング装置を妨害してメモリー増加の原因となっていた PG ログの破損した重複エントリーを削除できるようになりました。将来の調査に役立つように、重複エントリーの数を OSD のログに出力するデバッグの改善が実装されています。