7.3. 配置グループ不整合のリスト表示
rados ユーティリティーを使用して、オブジェクトのさまざまなレプリカで不整合を一覧表示します。より詳細な出力をリスト表示するには、--format=json-pretty オプションを使用します。
このセクションでは、以下を取り上げます。
- プールへの一貫性のない配置グループ
- 配置グループの一貫性のないオブジェクト
- 配置グループにおける一貫性のないスナップショットセット
前提条件
- 健全な状態で稼働中の Red Hat Ceph Storage クラスター。
- ノードへのルートレベルのアクセス。
手順
プール内の一貫性のない配置グループをすべて表示します。
構文
rados list-inconsistent-pg POOL --format=json-pretty例
[ceph: root@host01 /]# rados list-inconsistent-pg data --format=json-pretty [0.6]ID を持つ配置グループ内の一貫性のないオブジェクトを表示します。
構文
rados list-inconsistent-obj PLACEMENT_GROUP_ID例
[ceph: root@host01 /]# rados list-inconsistent-obj 0.6 { "epoch": 14, "inconsistents": [ { "object": { "name": "image1", "nspace": "", "locator": "", "snap": "head", "version": 1 }, "errors": [ "data_digest_mismatch", "size_mismatch" ], "union_shard_errors": [ "data_digest_mismatch_oi", "size_mismatch_oi" ], "selected_object_info": "0:602f83fe:::foo:head(16'1 client.4110.0:1 dirty|data_digest|omap_digest s 968 uv 1 dd e978e67f od ffffffff alloc_hint [0 0 0])", "shards": [ { "osd": 0, "errors": [], "size": 968, "omap_digest": "0xffffffff", "data_digest": "0xe978e67f" }, { "osd": 1, "errors": [], "size": 968, "omap_digest": "0xffffffff", "data_digest": "0xe978e67f" }, { "osd": 2, "errors": [ "data_digest_mismatch_oi", "size_mismatch_oi" ], "size": 0, "omap_digest": "0xffffffff", "data_digest": "0xffffffff" } ] } ] }不整合の原因を特定するには、以下のフィールドが重要になります。
-
name: 一貫性のないレプリカを持つオブジェクトの名前。 -
nspace: プールを論理的に分離する名前空間。デフォルトでは空です。 -
locator: 配置のオブジェクト名の代わりに使用されるキー。 -
snap: オブジェクトのスナップショット ID。オブジェクトの書き込み可能な唯一のバージョンはheadと呼ばれます。オブジェクトがクローンの場合、このフィールドにはそのシーケンシャル ID が含まれます。 -
version: 一貫性のないレプリカを持つオブジェクトのバージョン ID。オブジェクトへの書き込み操作ごとにインクリメントされます。 errors: シャードの不一致を判別することなくシャード間の不整合を示すエラーのリスト。エラーをさらに調べるには、shardアレイを参照してください。-
data_digest_mismatch: 1 つの OSD から読み取られるレプリカのダイジェストは他の OSD とは異なります。 -
size_mismatch: クローンのサイズまたはheadオブジェクトが期待したサイズと一致しない。 -
read_error: このエラーは、ディスクエラーが発生したために不整合が発生したことを示しています。
-
union_shard_error: シャードに固有のすべてのエラーの結合。これらのエラーは、問題のあるシャードに関連しています。oiで終わるエラーは、障害のあるオブジェクトからの情報と、選択したオブジェクトとの情報を比較する必要があることを示しています。エラーをさらに調べるには、shardアレイを参照してください。上記の例では、
osd.2に保存されているオブジェクトレプリカは、osd.0およびosd.1に保存されているレプリカとは異なるダイジェストを持ちます。具体的には、レプリカのダイジェストは、osd.2から読み取るシャードから計算した0xffffffffではなく、0xe978e67fです。さらに、osd.2から読み込むレプリカのサイズは 0 ですが、osd.0およびosd.1によって報告されるサイズは 968 です。
-
一貫性のないスナップショットのセットを一覧表示します
構文
rados list-inconsistent-snapset PLACEMENT_GROUP_ID例
[ceph: root@host01 /]# rados list-inconsistent-snapset 0.23 --format=json-pretty { "epoch": 64, "inconsistents": [ { "name": "obj5", "nspace": "", "locator": "", "snap": "0x00000001", "headless": true }, { "name": "obj5", "nspace": "", "locator": "", "snap": "0x00000002", "headless": true }, { "name": "obj5", "nspace": "", "locator": "", "snap": "head", "ss_attr_missing": true, "extra_clones": true, "extra clones": [ 2, 1 ] } ]このコマンドは、以下のエラーを返します。
-
ss_attr_missing: 1 つ以上の属性がありません。属性とは、スナップショットに関する情報で、キーと値のペアのリストとしてスナップショットセットにエンコードされます。 -
ss_attr_corrupted: 1 つ以上の属性がデコードできません。 -
clone_missing: クローンがありません。 -
snapset_mismatch: スナップショットセット自体に一貫性がありません。 -
head_mismatch: スナップショットセットは、headが存在するか、存在しない場合はスクラブ結果を報告します。 -
headless: スナップショットセットのheadがありません。 -
size_mismatch: クローンのサイズまたはheadオブジェクトが期待したサイズと一致しない。
-