6.7. RADOS


2 つのサイトのストレッチクラスターで DR テストを実行しても、Ceph が応答しなくなることがなくなりました

以前は、2 つのサイトのストレッチクラスターで DR テストを実行するときに、クラスターから新しいモニターを削除および追加すると、ConnectionTracker クラスで不適切なランクが発生していました。そのため、モニターは peer_tracker コピーで自分自身を識別できず、正しいフィールドを更新しませんでした。その結果、選択プロセスでデッドロックが発生し、Ceph が応答しなくなっていました。

今回の修正により、以下のとおり是正されました。

  • 関数 notify_rank_removed() に assert を追加し、Monmap によって提供される想定ランクと手動で調整されたランクを、サニティチェックとして比較します。
  • Monmap の更新ごとに変数 removed_ranks をクリアします。
  • 各モニターで ceph connection scores reset コマンドを実行する際に、peer_tracker.rank を手動でリセットするアクションが追加されました。peer_tracker.rank は、モニターの現在のランクと一致します。
  • モニターのアップグレード時 (起動を含む) にクリーンな peer_tracker をチェックする関数を Elector および ConnectionTracker クラスに追加しました。クリーンでないことが判明した場合、peer_tracker はクリアされます。
  • Red Hat Ceph Storage では、ユーザーはモニターをシャットダウンする前に手動でモニターランクを削除することを選択できるため、Monmap で不整合が発生します。そのため、Monitor::notify_new_monmap() では、関数が Monmap に存在しないランクを削除するのを防ぎます。

クラスターは期待どおりに機能するようになり、不当なダウンタイムは発生しません。2 つのサイトのストレッチクラスターで DR テストを実行しても、クラスターが応答しなくなることがなくなりました。

(BZ#2142674)

一貫性のない接続スコアの問題を軽減するために、live_pinging および dead_pinging セットからランクが削除されました

以前は、2 つのモニターを連続して削除するときに、ランクサイズが Paxos のサイズと等しい場合、モニターは dead_pinging セットからランクを削除しませんでした。そのため、ランクは dead_pinging セットに残り、stretch-cluster モードが有効になっているときに接続スコアの一貫性が失われるなどの問題が発生していました。

今回の修正により、最高ランクのモニターが削除されるケースが追加されました。つまり、ランクが Paxos のサイズと等しい場合、live_pinging および dead_pinging セットからランクが削除されます。live_pingingdead_pinging セットはクリーンな状態になり、モニターは正常に動作します。

(BZ#2142174)

Prometheus メトリクスは、要求されるたびにすべての Ceph Monitor の正しい Ceph バージョンを反映するようになりました。

以前のバージョンでは、Prometheus メトリクスは、モニターのアップグレード時に Ceph Monitor の一致しない Ceph バージョンを報告していました。その結果、この不整合を解決するには、アクティブな Ceph Manager デーモンを再起動する必要がありました。

今回の修正により、Ceph Monitor は、MON の選択が終了したときに、mon メタデータを含むメタデータ更新要求を mgr に明示的に送信します。

(BZ#2008524)

ceph daemon heap status コマンドがヒープのステータスを表示するようになりました

以前は、ceph daemon コマンドを使用してヒープ情報を取得できなかったため、ceph daemon heap stats コマンドは、Ceph デーモンの現在のヒープ使用量を返す代わりに、空の出力を返していました。これは、ceph::osd_cmds::heap()stderrstdout の概念を混同し、出力に違いが生じていたためです。

今回の修正により、ceph daemon heap stats コマンドが ceph tell コマンドを使用して得られるものと同様の Ceph デーモンのヒープ使用情報を返すようになりました。

(BZ#2119100)

ceph orch apply mon <num> コマンドの使用時に Ceph Monitor がクラッシュしなくなりました

以前は、ceph orch apply mon <num> コマンド使用してクラスター内のモニターを減らすと、ceph-adm でシャットダウンする前にモニターが削除され、モニターがクラッシュしていました。

今回の修正により、すべてのコードパスにサニティチェックが追加され、ピアランクがモニターマップのランクのサイズ以上かチェックされます。条件が満たされている場合は、モニターのクラッシュにつながる特定の操作をスキップします。ピアランクは、最終的にはモニターマップの次のバージョンで解決されます。シャットダウンする前にモニターマップから削除しても、モニターはクラッシュしなくなりました。

(BZ#2142141)

エンドユーザーは、Ceph クラスターログから scrub または deep-scrub starts メッセージを確認できるようになりました

以前は、Ceph クラスターログに scrub または deep-scrub starts メッセージが表示されなかったため、Ceph クラスターログから PG に対して PG スクラビングが開始されたかどうかをエンドユーザーが認識できませんでした。

この修正により、scrub または deep-scrub starts メッセージが再導入されました。scrubbing または deep-scrubbingプロセスに進むたびに、Ceph クラスターログに PG のメッセージが表示されるようになりました。

(BZ#2091773)

Ceph Manager フェイルオーバー中のアサーションなし

以前は、Ceph Manager をアクティベートする際に、以前にアクティブなマネージャーによって送信された複数の service_map バージョンを受信していました。コードの確認が間違っていることが原因で、以前のアクティブなマネージャーが送信したバージョンよりも新しいものが含まれるマップを、新たに有効になったマネージャーが受信する場合に、アサーションに失敗していました。

今回の修正により、初期サービスマップを処理するマネージャーのチェックが緩和され、Ceph Manager のフェイルオーバー中にアサーションが発生しなくなりました。

(BZ#2095062)

ユーザーは、クラスターのアップグレード後に複製されたオブジェクトを削除できる。

以前は、クラスターを Red Hat Ceph Storage 4 から Red Hat Ceph Storage 5 にアップグレードした後、以前のバージョンで作成されたオブジェクトのスナップショットを削除すると、クローンが残り削除できませんでした。これは、SnapMapper キーが誤って変換されたためです。

今回の修正により、SnapMapper のレガシーカンバセーションが更新され、新しいキー形式に一致するようになりました。以前のバージョンの Ceph で複製されたオブジェクトは、アップグレード後に簡単に削除できるようになりました。

(BZ#2107405)

RocksDB のエラーは小さな書き込みでは発生しない

BlueStore は、HDD の小さな書き込みを延期する戦略を採用し、データを RocksDB に保存します。RocksDB からの遅延データのクリーニングは、BlueFS とは同期されないバックグラウンドプロセスです。

この修正では、遅延リプレイが BlueFS データを上書きしなくなり、次のような RocksDB エラーが発生しなくなりました。

  • osd_superblock の破損。
  • 改行で終了しない CURRENT。
  • .SST ファイルのチェックサムエラー。
注記

書き込み場所には適切なオブジェクトが含まれているか空である可能性があるため、遅延データを書き込まないでください。この方法でオブジェクトデータが破損されることはありません。BlueFS は、この領域を割り当てることができる唯一のエンティティーです。

(BZ#2109886)

PG ログの破損した重複エントリーは、オフラインおよびオンラインのトリミングで削除できる

以前は、PG ログ重複エントリーのトリミングは、人間のオペレーターよりもはるかに高い頻度で PG オートスケーラーによって使用される低レベルの PG 分割操作中に阻止されていました。重複を取り除くと、PG ログのメモリー増大が大幅に増大し、OSD がメモリーが不足するとクラッシュしていました。OSD を再起動しても、PG ログはディスクに保存され、起動時に RAM に再ロードされるため、問題は解決しませんでした。

この修正により、オフライン (ceph-objectstore-tool コマンドを使用) とオンライン (OSD 内) の両方のトリミングで、オンラインのトリミング装置を妨害してメモリー増加の原因となっていた PG ログの破損した重複エントリーを削除できるようになりました。将来の調査に役立つように、重複エントリーの数を OSD のログに出力するデバッグの改善が実装されています。

(BZ#2119853)

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.