9.2. ハイレベルなオブジェクト操作のトラブルシューティング

ストレージ管理者は、ceph-objectstore-tool ユーティリティーを使用して高レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool ユーティリティーは、以下の高レベルのオブジェクト操作をサポートします。

  • オブジェクトのリスト表示
  • 失われたオブジェクトのリスト表示
  • 失われたオブジェクトの修正
重要

オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。

9.2.1. 前提条件

  • Ceph OSD ノードへのルートレベルのアクセス。

9.2.2. オブジェクトのリスト表示

OSD には、ゼロ対多の配置グループを含めることができ、1 つの配置グループ (PG) 内にゼロ対多のオブジェクトを含めることができます。ceph-objectstore-tool ユーティリティーでは、OSD に保存されているオブジェクトをリスト表示することができます。

前提条件

  • Ceph OSD ノードへのルートレベルのアクセス。
  • ceph-osd デーモンの停止。

手順

  1. 適切な OSD がダウンしていることを確認します。

    構文

    systemctl status ceph-FSID@osd.OSD_ID

    例:

    [root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service

  2. OSD コンテナーにログインします。

    構文

    cephadm shell --name osd.OSD_ID

    例:

    [root@host01 ~]# cephadm shell --name osd.0

  3. 配置グループに関係なく、OSD 内のすべてのオブジェクトを特定します。

    構文

    ceph-objectstore-tool --data-path PATH_TO_OSD --op list

    例:

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list

  4. 配置グループ内のすべてのオブジェクトを特定します。

    構文

    ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list

    例:

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list

  5. オブジェクトが属する PG を特定します。

    構文

    ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID

    例:

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region

9.2.3. 失われたオブジェクトの修正

ceph-objectstore-tool ユーティリティーを使用して、Ceph OSD に保存されている 失われたオブジェクトおよび存在しないオブジェクト をリスト表示し、修正することができます。この手順は、レガシーオブジェクトにのみ適用されます。

前提条件

  • Ceph OSD ノードへのルートレベルのアクセス。
  • ceph-osd デーモンの停止。

手順

  1. 適切な OSD がダウンしていることを確認します。

    構文

    systemctl status ceph-FSID@osd.OSD_ID

    例:

    [root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service

  2. OSD コンテナーにログインします。

    構文

    cephadm shell --name osd.OSD_ID

    例:

    [root@host01 ~]# cephadm shell --name osd.0

  3. 失われたレガシーオブジェクトをすべてリスト表示します。

    構文

    ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run

    例:

    [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run

  4. ceph-objectstore-tool ユーティリティーを使用して、失われたおよび未使用 のオブジェクトを修正します。適切な状況を選択します。

    1. 失われたオブジェクトをすべて修正します。

      構文

      ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost

      例:

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost

    2. 配置グループ内の失われたオブジェクトをすべて修正します。

      構文

      ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op fix-lost

      例:

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost

    3. 失われたオブジェクトを識別子で修正します。

      構文

      ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID

      例:

      [ceph: root@host01 /]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region