第4章 Ceph Monitor のトラブルシューティング
この章では、Ceph Monitor に関連する最も一般的なエラーを修正する方法を説明します。
前提条件
- ネットワーク接続の検証。
4.1. 最も一般的な Ceph Monitor エラー
以下の表には、ceph health detail
コマンドで返される、または Ceph ログに含まれる最も一般的なエラーメッセージをリスト表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
4.1.1. Ceph Monitor エラーメッセージ
一般的な Ceph Monitor エラーメッセージの表およびその修正方法の表。
エラーメッセージ | 参照 |
---|---|
| |
| |
| |
|
4.1.2. Ceph ログの共通の Ceph Monitor エラーメッセージ
Ceph ログにある一般的な Ceph Monitor エラーメッセージと、修正方法へのリンクが含まれる表。
エラーメッセージ | ログファイル | 参照 |
---|---|---|
| 主なクラスターのログ | |
| 主なクラスターのログ | |
| 監視ログ | |
| 監視ログ | |
| 監視ログ |
4.1.3. Ceph Monitor がクォーラムを超えている
1 つ以上の Ceph Monitor は down
とマークされていますが、他の Ceph Monitor は引き続きクォーラムを形成することができます。さらに、ceph health detail
コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 1 mons down, quorum 1,2 mon.b,mon.c mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum)
エラー内容:
Ceph では、さまざまな理由で Ceph Monitor が down
とマークされます。
ceph-mon
デーモンが実行していない場合は、ストアが破損しているか、その他のエラーによりデーモンを起動できません。また、/var/
パーティションが満杯になっている可能性もあります。これにより、ceph-mon
は /var/lib/ceph/mon-SHORT_HOST_NAME/store.db
にデフォルトで配置されたストアに対する操作を実行できず、終了します。
ceph-mon
デーモンが実行中で、Ceph Monitor がクォーラムを超えており、down
としてマークされている場合、問題の原因は Ceph Monitor 状態によって異なります。
-
Ceph Monitor が予想よりも長く プロービング の場合は、他の Ceph Monitor を見つけることができません。この問題は、ネットワークの問題が原因で発生するか、Ceph Monitor に古い Ceph Monitor マップ (
monmap
) があり、誤った IP アドレスで他の Ceph Monitor に到達しようとする可能性があります。monmap
が最新の状態であれば、Ceph Monitor のクロックが同期されない可能性があります。 - Ceph Monitor が予想よりも長く electing 状態にある場合、Ceph Monitor のクロックが同期されていない可能性があります。
- Ceph Monitor の状態が synchronizing から electing に変更になり、元に戻る場合は、クラスターの状態が進行中です。これは、同期プロセスが処理できる以上の速さで新しいマップを生成していることを意味します。
- Ceph Monitor が自身を leader または peon としてマークしている場合、クォーラムにあると見なされますが、残りのクラスターはそうではないと確信しています。この問題は、クロック同期の失敗によって引き起こされる可能性があります。
この問題を解決するには、以下を行います。
ceph-mon
デーモンが実行していることを確認します。そうでない場合は、起動します。構文
systemctl status ceph-FSID@DAEMON_NAME systemctl start ceph-FSID@DAEMON_NAME
例
[root@mon ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service [root@mon ~]# systemctl start ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@mon.host01.service
-
ceph-mon
を起動できない場合は、ceph-mon
デーモンが起動できないの手順を行ってください。 -
ceph-mon
デーモンを起動できるものの、down
とマークされている場合は、ceph-mon
デーモンが実行しているが、`down` としてマークされている の手順に従います。
ceph-mon
デーモンを起動できない
対応する Ceph Monitor ログを確認します。デフォルトで
/var/log/ceph/CLUSTER_FSID/ceph-mon.HOST_NAME.log
にあります。注記デフォルトでは、モニターログはログフォルダーに表示されません。ログがフォルダーに表示されるようにするには、ファイルへのロギングを有効にする必要があります。ファイルへのロギングを有効にするには、Ceph デーモンログ を参照してください。
ログに以下のようなエラーメッセージが含まれる場合、Ceph Monitor のストアが破損している可能性があります。
Corruption: error in middle of record Corruption: 1 missing files; example: /var/lib/ceph/mon/mon.0/store.db/1234567.ldb
この問題を修正するには、Ceph Monitor を置き換えます。失敗したモニターの置き換え を参照してください。
ログに以下のようなエラーメッセージが含まれる場合は、
/var/
パーティションが満杯になっている可能性があります。/var/
から不要なデータを削除します。Caught signal (Bus error)
重要Monitor ディレクトリーからデータを手動で削除しないでください。代わりに、
ceph-monstore-tool
を使用して圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。- 他のエラーメッセージが表示された場合は、サポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
ceph-mon
デーモンが実行しているが、down
としてマークされている
クォーラムに達していない Ceph Monitor ホストから、
mon_status
コマンドを使用してその状態を確認します。[root@mon ~]# ceph daemon ID mon_status
ID
を、Ceph Monitor の ID に置き換えてください。以下に例を示します。[ceph: root@host01 /]# ceph daemon mon.host01 mon_status
ステータスが probing の場合は、
mon_status
出力内の他の Ceph Monitor の場所を確認します。-
アドレスが正しくない場合は、Ceph Monitor の誤った Ceph Monitor マップ (
monmap
) が検出されます。この問題を修正するには、Ceph Monitor マップの注入 を参照してください。 - アドレスが正しい場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。
-
アドレスが正しくない場合は、Ceph Monitor の誤った Ceph Monitor マップ (
- ステータスが 選択中 の場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。
- 状態が 選択中 から 同期中 に変わる場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
- Ceph Monitor が leader または peon である場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。クロックを同期させても問題が解決しない場合は、サポートチケットを作成します。。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
関連情報
- Ceph Monitor ステータスの理解 を参照してください。
- Red Hat Ceph Storage 管理ガイド の Ceph デーモンの開始、停止、再始動 セクション。
- Red Hat Ceph Storage 管理ガイド の Ceph 管理ソケットの使用 セクション
4.1.4. クロックスキュー
Ceph Monitor がクォーラムを超えており、ceph health detail
コマンドの出力は、次のようなエラーメッセージが含まれています。
mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum) mon.a addr 127.0.0.1:6789/0 clock skew 0.08235s > max 0.05s (latency 0.0045s)
また、Ceph ログには以下のようなエラーメッセージが含まれます。
2022-05-04 07:28:32.035795 7f806062e700 0 log [WRN] : mon.a 127.0.0.1:6789/0 clock skew 0.14s > max 0.05s 2022-05-04 04:31:25.773235 7f4997663700 0 log [WRN] : message from mon.1 was stamped 0.186257s in the future, clocks not synchronized
エラー内容:
clock skew
エラーメッセージは、Ceph Monitor のクロックが同期されていないことを示します。Ceph Monitor は時間の精度に依存し、クロックが同期されていない場合に予測できない動作をするため、クロックの同期が重要になります。
mon_clock_drift_allowed
パラメーターは、クロック間のどのような不一致を許容するかを決定します。デフォルトでは、このパラメーターは 0.05 秒に設定されています。
以前のテストを行わずに mon_clock_drift_allowed
のデフォルト値を変更しないでください。この値を変更すると、Ceph Monitor および Ceph Storage Cluster 全般の安定性に影響を与える可能性があります。
clock skew
エラーの原因として、ネットワークの問題や chrony Network Time Protocol (NTP) 同期の問題などがあります (設定されている場合)。また、仮想マシンにデプロイされた Ceph Monitor では、時間の同期が適切に機能しません。
この問題を解決するには、以下を行います。
- ネットワークが正しく機能することを確認します。
- リモートの NTP サーバーを使用する場合は、ネットワーク上に独自の chrony NTP サーバーをデプロイすることを検討してください。詳細については、Red Hat Customer Portal にある、お使いの OS バージョン の製品ドキュメント (OS バージョンの os-product) 内の 基本システム設定 ガイドの Chrony Suite を使用した NTP の設定 の章を参照してください。
Ceph は 5 分ごとに時刻同期を評価するため、問題を修正してから clock skew
メッセージを消去するまでに遅延が生じます。
4.1.5. Ceph Monitor ストアが大きすぎる
ceph health
コマンドは、以下のようなエラーメッセージを返します。
mon.ceph1 store is getting too big! 48031 MB >= 15360 MB -- 62% avail
エラー内容:
Ceph Monitors ストアは、エントリーをキーと値のペアとして保存する RocksDB データベースです。データベースにはクラスターマップが含まれ、デフォルトでは /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME/store.db
に配置されます。
大規模な Monitor ストアのクエリーには時間がかかる場合があります。そのため、Ceph Monitor はクライアントクエリーへの応答が遅れることがあります。
また、/var/
パーティションが満杯になると、Ceph Monitor はストアに対して書き込み操作を実行できず、終了します。この問題のトラブルシューティングの詳細は、Ceph Monitor がクォーラム外である を参照してください。
この問題を解決するには、以下を行います。
データベースのサイズを確認します。
構文
du -sch /var/lib/ceph/CLUSTER_FSID/mon.HOST_NAME/store.db/
クラスターの名前と、
ceph-mon
が実行しているホストの短縮ホスト名を指定します。例
[root@mon ~]# du -sh /var/lib/ceph/b341e254-b165-11ed-a564-ac1f6bb26e8c/mon.host01/ 109M /var/lib/ceph/b341e254-b165-11ed-a564-ac1f6bb26e8c/mon.host01/ 47G /var/lib/ceph/mon/ceph-ceph1/store.db/ 47G total
- Ceph Monitor ストアを圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。
4.1.6. Ceph Monitor のステータスの理解
mon_status
コマンドは、以下のような Ceph Monitor についての情報を返します。
- 状態
- ランク
- 選出のエポック
-
監視マップ (
monmap
)
Ceph Monitor がクォーラムを形成できる場合は、ceph
コマンドラインユーティリティーで mon_status
を使用します。
Ceph Monitors がクォーラム (定足数) を形成できず、ceph-mon
デーモンが実行中の場合は、管理ソケットを使用して mon_status
を実行します。
mon_status
の出力例
{ "name": "mon.3", "rank": 2, "state": "peon", "election_epoch": 96, "quorum": [ 1, 2 ], "outside_quorum": [], "extra_probe_peers": [], "sync_provider": [], "monmap": { "epoch": 1, "fsid": "d5552d32-9d1d-436c-8db1-ab5fc2c63cd0", "modified": "0.000000", "created": "0.000000", "mons": [ { "rank": 0, "name": "mon.1", "addr": "172.25.1.10:6789\/0" }, { "rank": 1, "name": "mon.2", "addr": "172.25.1.12:6789\/0" }, { "rank": 2, "name": "mon.3", "addr": "172.25.1.13:6789\/0" } ] } }
Ceph Monitor の状態
- Leader
-
選出フェーズ中に、Ceph Monitor はリーダーを選出します。リーダーは、最高ランクの Ceph Monitor で、つまり値が最も小さいランクです。上記の例では、リーダーは
mon.1
です。 - Peon
- Peons は、リーダーではないクォーラムの Ceph Monitor です。リーダーが失敗すると、一番ランクの高い peon が新しいリーダーになります。
- Probing
-
Ceph Monitor が他の Ceph Monitor を検索する場合は、プロービング状態にあります。たとえば、Ceph Monitor を起動すると、Ceph Monitor マップ (
monmap
) に指定された十分な Ceph Monitor がクォーラムとなるまで プローブ が行われます。 - Electing
- Ceph Monitor がリーダーの選出中であれば、選出状態になります。通常、このステータスはすぐに変わります。
- Synchronizing
- Ceph Monitor が、他の Ceph Monitor と同期してクォーラムに参加する場合は、同期状態になります。Ceph Monitor ストアが小さいほど、同期処理は速くなります。したがって、ストアが大きい場合は、同期に時間がかかります。
関連情報
- 詳細は、Red Hat Ceph Storage 7 の 管理ガイドの Ceph 管理ソケットの使用 を参照してください。
- Red Hat Ceph Storage Troubleshooting Guideの 「Ceph Monitor エラーメッセージ」 を参照してください。
- Red Hat Ceph Storage Troubleshooting Guideの 「Ceph ログの共通の Ceph Monitor エラーメッセージ」 を参照してください。