4.2. 最も一般的な Ceph Monitor エラー

以下の表には、ceph health detail コマンドで返される、または Ceph ログに含まれる最も一般的なエラーメッセージをリスト表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。

4.2.1. 前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。

4.2.2. Ceph Monitor エラーメッセージ

一般的な Ceph Monitor エラーメッセージの表およびその修正方法の表。

エラーメッセージ参照

HEALTH_WARN

mon.X is down (out of quorum)

Ceph Monitor がクォーラムを超えている

clock skew

クロックスキュー

store is getting too big!

Ceph Monitor ストアが大きすぎる

4.2.3. Ceph ログの共通の Ceph Monitor エラーメッセージ

Ceph ログにある一般的な Ceph Monitor エラーメッセージと、修正方法へのリンクが含まれる表。

エラーメッセージログファイル参照

clock skew

主なクラスターのログ

クロックスキュー

clocks not synchronized

主なクラスターのログ

クロックスキュー

Corruption: error in middle of record

監視ログ

Ceph Monitor がクォーラムを超えている

Ceph Monitor ストアのリカバリー

Corruption: 1 missing files

監視ログ

Ceph Monitor がクォーラムを超えている

Ceph Monitor ストアのリカバリー

Caught signal (Bus error)

監視ログ

Ceph Monitor がクォーラムを超えている

4.2.4. 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 としてマークしている場合、クォーラムにあると見なされますが、残りのクラスターはそうではないと確信しています。この問題は、クロック同期の失敗によって引き起こされる可能性があります。

この問題を解決するには、以下を行います。

  1. 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

  2. ceph-mon を起動できない場合は、ceph-mon デーモンが起動できないの手順を行ってください。
  3. ceph-mon デーモンを起動できるものの、down とマークされている場合は、ceph-mon デーモンが実行しているが、`down` としてマークされている の手順に従います。

ceph-mon デーモンを起動できない

  1. 対応する Ceph Monitor ログを確認します。デフォルトで /var/log/ceph/CLUSTER_FSID/ceph-mon.HOST_NAME.log にあります。

    注記

    デフォルトでは、モニターログはログフォルダーに表示されません。ログがフォルダーに表示されるようにするには、ファイルへのロギングを有効にする必要があります。ファイルへのロギングを有効にするには、Ceph デーモンログ を参照してください。

  2. ログに以下のようなエラーメッセージが含まれる場合、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 を置き換えます。失敗したモニターの置き換え を参照してください。

  3. ログに以下のようなエラーメッセージが含まれる場合は、/var/ パーティションが満杯になっている可能性があります。/var/ から不要なデータを削除します。

    Caught signal (Bus error)
    重要

    Monitor ディレクトリーからデータを手動で削除しないでください。代わりに、ceph-monstore-tool を使用して圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。

  4. 他のエラーメッセージが表示された場合は、サポートチケットを作成します。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。

ceph-mon デーモンが実行しているが、down としてマークされている

  1. クォーラムに達していない Ceph Monitor ホストから、mon_status コマンドを使用してその状態を確認します。

    [root@mon ~]# ceph daemon ID mon_status

    ID を、Ceph Monitor の ID に置き換えてください。以下に例を示します。

    [ceph: root@host01 /]# ceph daemon mon.host01 mon_status
  2. ステータスが probing の場合は、mon_status 出力内の他の Ceph Monitor の場所を確認します。

    1. アドレスが正しくない場合は、Ceph Monitor の誤った Ceph Monitor マップ (monmap) が検出されます。この問題を修正するには、Ceph Monitor マップの注入 を参照してください。
    2. アドレスが正しい場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。また、ネットワークの問題のトラブルシューティングについては、ネットワーク問題のトラブルシューティング を参照してください。
  3. ステータスが 選択中 の場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。
  4. 状態が 選択中 から 同期中 に変わる場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。
  5. Ceph Monitor が leader または peon である場合は、Ceph Monitor クロックが同期されていることを確認します。詳細は、クロックスキュー を参照してください。クロックを同期させても問題が解決しない場合は、サポートチケットを作成します。。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。

関連情報

4.2.5. クロックスキュー

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 では、時間の同期が適切に機能しません。

この問題を解決するには、以下を行います。

  1. ネットワークが正しく機能することを確認します。詳細は、ネットワーク問題のトラブルシューティング を参照してください。NTP に chrony を使用する場合は、基本的な chrony NTP のトラブルシューティング セクションを参照してください。
  2. リモートの NTP サーバーを使用する場合は、ネットワーク上に独自の chrony NTP サーバーをデプロイすることを検討してください。詳細は、Red Hat Enterprise Linux 8 の基本的なシステム設定の設定Chrony Suite を使用した NTP の設定 の章を参照してください。
注記

Ceph は 5 分ごとに時刻同期を評価するため、問題を修正してから clock skew メッセージを消去するまでに遅延が生じます。

4.2.6. 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 がクォーラムを超えている を参照してください。

この問題を解決するには、以下を行います。

  1. データベースのサイズを確認します。

    構文

    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

  2. Ceph Monitor ストアを圧縮します。詳細は、Ceph Monitor ストアの圧縮 を参照してください。

4.2.7. 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 ストアが小さいほど、同期処理は速くなります。したがって、ストアが大きい場合は、同期に時間がかかります。

関連情報

4.2.8. 関連情報