第7章 Ceph 配置グループのトラブルシューティング
このセクションには、Ceph Placement Group (PG) に関連する最も一般的なエラーを修正するための情報が含まれています。
前提条件
- ネットワーク接続を確認します。
- Monitor がクォーラムを形成できることを確認します。
-
すべての正常な OSD が
upしてinであり、バックフィルおよびリカバリープロセスが完了したことを確認します。
7.1. 最も一般的な Ceph 配置グループエラー リンクのコピーリンクがクリップボードにコピーされました!
以下の表では、ceph health detail コマンドで返される最も一般的なエラーメッセージを一覧表示しています。この表には、エラーを説明し、問題を修正するための特定の手順を示す、対応セクションへのリンクがあります。
さらに、最適でない状態に陥っている配置グループをリストできます。詳しくは、「配置グループのリスト表示 (stale、inactive、または unclean 状態)」 を参照してください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
7.1.1. 配置グループのエラーメッセージ リンクのコピーリンクがクリップボードにコピーされました!
一般的な配置グループエラーメッセージの表およびその修正方法。
| エラーメッセージ | 参照 |
|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
7.1.2. 古い配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、一部の配置グループ (PG) を stale リストで表示します。
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
HEALTH_WARN 24 pgs stale; 3/300 in osds are down
エラー内容:
モニターは、配置グループが動作しているセットのプライマリー OSD からステータスの更新を受け取らない場合や、プライマリー OSD が down していると他の OSD が報告されない場合に、配置グループを stale とマークします。
通常、PG はストレージクラスターを起動し、ピアリングプロセスが完了するまで、stale 状態になります。ただし、PG が想定よりも stale である (古くなっている) 場合は、PG のプライマリー OSD が ダウン しているか、PG 統計をモニターに報告していないことを示す可能性があります。古い PG を保存するプライマリー OSD が up に戻ると、Ceph は PG の復元を開始します。
mon_osd_report_timeout の設定は、OSD が PG の統計をモニターに報告する頻度を決定します。デフォルトでは、このパラメーターは 0.5 に設定されています。これは、OSD が 0.5 秒ごとに統計を報告することを意味します。
この問題を解決するには、以下を行います。
古いPG とそれらが保存される OSD を特定します。エラーメッセージには、次の例のような情報が含まれています。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
downとマークされている OSD の問題のトラブルシューティング。詳細は、Down OSDs を参照してください。
7.1.3. 一貫性のない配置グループ リンクのコピーリンクがクリップボードにコピーされました!
一部の配置グループは active + clean + inconsistent とマークされ、ceph health detail は以下のようなエラーメッセージを返します。
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
pg 0.6 is active+clean+inconsistent, acting [0,1,2]
2 scrub errors
エラー内容:
Ceph は、配置グループ内のオブジェクトの 1 つ以上のレプリカで不整合を検出すると、配置グループに inconsistent のマークを付けます。最も一般的な不整合は以下のとおりです。
- オブジェクトのサイズが正しくない。
- リカバリーが終了後、あるレプリカのオブジェクトが失われた。
ほとんどの場合、スクラビング中のエラーが原因で、配置グループ内の不整合が発生します。
この問題を解決するには、以下を行います。
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow どの配置グループが
一貫性のない状態かを決定します。[ceph: root@host01 /]# ceph health detail HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errors
[ceph: root@host01 /]# ceph health detail HEALTH_ERR 1 pgs inconsistent; 2 scrub errors pg 0.6 is active+clean+inconsistent, acting [0,1,2] 2 scrub errorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループに
inconsistentな理由を決定します。配置グループでディープスクラビングプロセスを開始します。
構文
ceph pg deep-scrub ID
ceph pg deep-scrub IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、以下のようにinconsistent配置グループの ID に置き換えます。[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrub
[ceph: root@host01 /]# ceph pg deep-scrub 0.6 instructing pg 0.6 on osd.0 to deep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph -wの出力で、その配置グループに関連するメッセージを探します。構文
ceph -w | grep ID
ceph -w | grep IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、以下のようにinconsistent配置グループの ID に置き換えます。[ceph: root@host01 /]# ceph -w | grep 0.6 2022-05-26 01:35:36.778215 osd.106 [ERR] 0.6 deep-scrub stat mismatch, got 636/635 objects, 0/0 clones, 0/0 dirty, 0/0 omap, 0/0 hit_set_archive, 0/0 whiteouts, 1855455/1854371 bytes. 2022-05-26 01:35:36.788334 osd.106 [ERR] 0.6 deep-scrub 1 errors
[ceph: root@host01 /]# ceph -w | grep 0.6 2022-05-26 01:35:36.778215 osd.106 [ERR] 0.6 deep-scrub stat mismatch, got 636/635 objects, 0/0 clones, 0/0 dirty, 0/0 omap, 0/0 hit_set_archive, 0/0 whiteouts, 1855455/1854371 bytes. 2022-05-26 01:35:36.788334 osd.106 [ERR] 0.6 deep-scrub 1 errorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
出力に以下のようなエラーメッセージが含まれる場合は、
inconsistent配置グループを修復できます。詳細は、一貫性のない配置グループの修正 を参照してください。構文
PG.ID shard OSD: soid OBJECT missing attr , missing attr _ATTRIBUTE_TYPE PG.ID shard OSD: soid OBJECT digest 0 != known digest DIGEST, size 0 != known size SIZE PG.ID shard OSD: soid OBJECT size 0 != known size SIZE PG.ID deep-scrub stat mismatch, got MISMATCH PG.ID shard OSD: soid OBJECT candidate had a read error, digest 0 != known digest DIGEST
PG.ID shard OSD: soid OBJECT missing attr , missing attr _ATTRIBUTE_TYPE PG.ID shard OSD: soid OBJECT digest 0 != known digest DIGEST, size 0 != known size SIZE PG.ID shard OSD: soid OBJECT size 0 != known size SIZE PG.ID deep-scrub stat mismatch, got MISMATCH PG.ID shard OSD: soid OBJECT candidate had a read error, digest 0 != known digest DIGESTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に以下のようなエラーメッセージが含まれる場合は、データが失われる可能性があるため、
inconsistentのない配置グループを修正しても安全ではありません。この場合、サポートチケットを作成します。詳細は、Red Hat サポートへの問い合わせ を参照してください。PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGEST
PG.ID shard OSD: soid OBJECT digest DIGEST != known digest DIGEST PG.ID shard OSD: soid OBJECT omap_digest DIGEST != known omap_digest DIGESTCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.4. 不適切な配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 197 pgs stuck unclean
HEALTH_WARN 197 pgs stuck unclean
エラー内容:
Ceph 設定ファイルの mon_pg_stuck_threshold パラメーターで指定された秒数について、active+clean の状態を満たさない場合には、Ceph 配置グループは unclean とマーク付けされます。mon_pg_stuck_threshold のデフォルト値は 300 秒です。
配置グループが unclean である場合は、osd_pool_default_size パラメーターで指定された回数複製されないオブジェクトが含まれます。osd_pool_default_size のデフォルト値は 3 で、Ceph はレプリカを 3 つ作成します。
通常、unclean 配置グループは、一部の OSD が down している可能性があることを意味します。
この問題を解決するには、以下を行います。
downになっている OSD を特定します。[ceph: root@host01 /]# ceph osd tree
[ceph: root@host01 /]# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD の問題をトラブルシューティングし、修正します。詳細は、Down OSD を参照してください。
7.1.5. 非アクティブな配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、以下のようなエラーメッセージを返します。
HEALTH_WARN 197 pgs stuck inactive
HEALTH_WARN 197 pgs stuck inactive
エラー内容:
Ceph 設定ファイルの mon_pg_stuck_threshold パラメーターで指定された秒数について、配置グループが非表示になっていない場合、Ceph はその配置グループを inactive とマークします。mon_pg_stuck_threshold のデフォルト値は 300 秒です。
通常、inactive な配置グループは一部の OSD が down となっている可能性があることを示します。
この問題を解決するには、以下を行います。
downになっている OSD を特定します。ceph osd tree
# ceph osd treeCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD の問題をトラブルシューティングし、修正します。
関連情報
- 配置グループの一覧表示が、古い非アクティブな状態または不完全な状態
- 詳細は、Down OSD を参照してください。
7.1.6. down している配置グループ リンクのコピーリンクがクリップボードにコピーされました!
ceph health detail コマンドは、一部の配置グループが down していると報告します。
エラー内容:
場合によっては、ピアリングプロセスがブロックされ、配置グループがアクティブになって使用できなくなることがあります。通常、OSD の障害が原因でピアリングの障害が発生します。
この問題を解決するには、以下を行います。
ピアリング処理をブロックしている原因を判断します。
構文
ceph pg ID query
ceph pg ID query
ID を down している配置グループの ID に置き換えます。
例
recovery_state セクションには、ピアリングプロセスがブロックされた理由が含まれます。
-
出力には
peering is blocked due to down osdsエラーメッセージが含まれているため Down OSD を参照してください。 - 他のエラーメッセージが表示された場合は、サポートチケットを作成します。詳細は、Red Hat サポートサービスへの問い合わせ を参照してください。
7.1.7. 不明なオブジェクト リンクのコピーリンクがクリップボードにコピーされました!
ceph health コマンドは、unfound キーワードを含む以下のようなエラーメッセージを返します。
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
エラー内容:
これらのオブジェクトまたは新しいコピーが分かっている場合には、Ceph のマークは unfound とマークしますが、オブジェクトが見つからないと判断できません。そのため、Ceph はそのようなオブジェクトを回復できず、リカバリープロセスを続行できません。
状況例
配置グループは、osd.1 および osd.2 にデータを格納します。
-
osd.1はdownします。 -
osd.2は一部の書き込み操作を処理します。 -
osd.1がupとないります。 -
osd.1とosd.2の間のピアリングプロセスは開始し、osd.1にないオブジェクトはリカバリーのためにキューに置かれます。 -
Ceph が新規オブジェクトをコピーする前に、
osd.2がdownとなります。
その結果、osd.1 はこれらのオブジェクトが存在することを認識しますが、オブジェクトのコピーを持つ OSD はありません。
このシナリオでは、Ceph は障害が発生したノードが再びアクセス可能になるのを待機しており、未使用の unfound によりリカバリープロセスがブロックされます。
この問題を解決するには、以下を行います。
Cephadm シェルにログインします。
例
cephadm shell
[root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow unfoundオブジェクトが含まれる配置グループを決定します。[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1 pgs recovering; 1 pgs stuck unclean; recovery 5/937611 objects degraded (0.001%); 1/312537 unfound (0.000%) pg 3.8a5 is stuck unclean for 803946.712780, current state active+recovering, last acting [320,248,0] pg 3.8a5 is active+recovering, acting [320,248,0], 1 unfound recovery 5/937611 objects degraded (0.001%); **1/312537 unfound (0.000%)**
[ceph: root@host01 /]# ceph health detail HEALTH_WARN 1 pgs recovering; 1 pgs stuck unclean; recovery 5/937611 objects degraded (0.001%); 1/312537 unfound (0.000%) pg 3.8a5 is stuck unclean for 803946.712780, current state active+recovering, last acting [320,248,0] pg 3.8a5 is active+recovering, acting [320,248,0], 1 unfound recovery 5/937611 objects degraded (0.001%); **1/312537 unfound (0.000%)**Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループに関する詳細情報を表示します。
構文
ceph pg ID query
ceph pg ID queryCopy to Clipboard Copied! Toggle word wrap Toggle overflow IDを、unfoundオブジェクトを含む配置グループの ID に置き換えます。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow might_have_unfoundセクションには、Ceph がunfoundオブジェクトの検索を試行する OSD が含まれます。-
already probedステータスは、Ceph が OSD 内でunfoundオブジェクトを検出できないことを示します。 -
osd is down状態は、Ceph が OSD と通信できないことを示します。
-
-
downとマークされている OSD のトラブルシューティング詳細は、Down OSD を参照してください。 -
OSD が
downとなる問題を修正できない場合は、サポートチケットを作成してください。詳細は、サービスについて Red Hat サポートへの問い合わせ を参照してください。