3.5. PG コマンドラインリファレンス
ceph
CLI では、プールの配置グループ数の設定および取得、PG マップの表示、PG の統計の取得を行うことができます。
3.5.1. PG の数の設定
プール内の配置グループの数を設定するには、プールの作成時に配置グループの数を指定する必要があります。詳細は、プールの作成 を参照してください。プールの作成後に配置グループの数を変更するには、次の手順を実行します。
ceph osd pool set {pool-name} pg_num {pg_num}
配置グループの数を増やしたら、クラスターがリバランスする前に、配置 (pgp_num
) の配置グループの数も増やす必要があります。pgp_num
は pg_num
と同じである必要があります。pgp_num
は、CRUSH アルゴリズムによる配置が考慮される配置グループの数になります。pg_num
を増やすと配置グループが分割されますが、配置用の配置グループ、つまり pgp_num
が増えるまで、データは新しい配置グループに移行されません。配置の配置グループの数を増やすには、以下のコマンドを実行します。
ceph osd pool set {pool-name} pgp_num {pgp_num}
PG の数を減らすと、pgp_num
は自動的に調整されます。
3.5.2. PG の数の取得
プール内の配置グループの数を取得するには、以下のコマンドを実行します。
ceph osd pool get {pool-name} pg_num
3.5.3. クラスター PG の統計の取得
クラスター内の配置グループの統計を取得するには、以下を実行します。
ceph pg dump [--format {format}]
有効な形式は plain
(デフォルト) および json
です。
3.5.4. 詰まった PG の統計を取得
指定された状態で固まったすべての配置グループを取得するには、以下を実行します。
ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]} {<int>}
Inactive 配置グループは、最新のデータを持つ OSD が up で in になることを待っているため、読み取りや書き込みを処理できません。
Unclean 配置グループには、希望する回数を複製しないオブジェクトが含まれます。これらは回復中である必要があります。
Stale 配置グループは不明な状態にあります それをホストする OSD は、しばらくモニタークラスターに対して報告されていない OSD です (mon_osd_report_timeout
で設定されます)。
有効な形式は plain
(デフォルト) および json
です。このしきい値は、返される統計に含める前に、配置グループがス詰まった最小秒数を定義します (デフォルトは 300 秒)。
3.5.5. PG マップの取得
特定の配置グループの配置グループマップを取得するには、以下のコマンドを実行します。
ceph pg map {pg-id}
以下に例を示します。
ceph pg map 1.6c
Ceph は配置グループマップ、配置グループ、および OSD のステータスを返します。
osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]
3.5.6. PG の統計の取得
特定の配置グループの統計を取得するには、以下のコマンドを実行します。
ceph pg {pg-id} query
3.5.7. 配置グループへのスクラブ
配置グループをスクラブするには、以下のコマンドを実行します。
ceph pg scrub {pg-id}
Ceph はプライマリーノードとレプリカノードを確認し、配置グループ内の全オブジェクトのカタログを生成し、オブジェクトが見つからないか、一致しないか、その内容の一貫性を保つようにします。レプリカがすべて一致したことを想定すると、最終的なセマンティックスイープにより、すべてのスナップショット関連のオブジェクトメタデータの一貫性が確保されます。エラーはログにより報告されます。
3.5.8. 失われたオブジェクトの回復
クラスターが 1 つ以上のオブジェクトが失われ、失われたデータの検索を破棄した場合、失われたオブジェクトを lost
とマークする必要があります。
可能なロケーションがすべてクエリーされ、オブジェクトが依然として失われている場合は、失われたオブジェクトは諦めるしかありません。この障害には、書き込み自体が復旧する前に実行された書き込みについて、クラスターが認識できるようにする、障害上の組み合わせが発生したことが考えられます。
現時点で、サポートされる唯一のオプションは revert です。これはオブジェクトの以前のバージョンにロールバックするか、(新しいオブジェクトの場合は) 完全にロールバックします。unfound オブジェクトを lost とマークするには、以下を実行します。
ceph pg {pg-id} mark_unfound_lost revert|delete
オブジェクトが存在すると想定されるアプリケーションが同じ場合があるため、この機能は注意して使用してください。