10.3. ハイレベルなオブジェクト操作のトラブルシューティング
ストレージ管理者は、ceph-objectstore-tool
ユーティリティーを使用して高レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool
ユーティリティーは、以下の高レベルのオブジェクト操作をサポートします。
- オブジェクトのリスト表示
- 失われたオブジェクトのリスト表示
- 失われたオブジェクトの修正
オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool
ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。
10.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Ceph OSD ノードへのルートレベルのアクセス。
10.3.2. オブジェクトのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
OSD には、ゼロ対多の配置グループを含めることができ、1 つの配置グループ (PG) 内にゼロ対多のオブジェクトを含めることができます。ceph-objectstore-tool
ユーティリティーでは、OSD に保存されているオブジェクトをリスト表示することができます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
systemctl status ceph-osd@OSD_NUMBER
[root@osd ~]# systemctl status ceph-osd@OSD_NUMBER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-osd@1
[root@osd ~]# systemctl status ceph-osd@1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
ceph osd set noout
[root@mon ~]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
mv /run/ceph-osd@0.service-cid /root
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
を OSD の ID に置き換えます。例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
podman exec -it ceph-osd-OSD_ID /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
podman exec -it ceph-osd-0 /bin/bash
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow osd fsid
を取得し、OSD をアクティベートして OSD の論理ボリューム (LV) をマウントします。Syntax
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置グループに関係なく、OSD 内のすべてのオブジェクトを特定します。
ceph-objectstore-tool --data-path PATH_TO_OSD --op list
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループ内のすべてのオブジェクトを特定します。
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトが属する PG を特定します。
ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --op list OBJECT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list default.region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/etc/systemd/system/ceph-osd@.service
ユニットファイルをコピーします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified [root@osd ~]# cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
mv /run/ceph-osd@0.service-cid /tmp
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3.3. 失われたオブジェクトのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
OSD は、オブジェクトを 失われた または 存在しない オブジェクトとしてマークできます。ceph-objectstore-tool
を使用すると、OSD 内に保存されている 失われたオブジェクトおよび存在しないオブジェクト をリスト表示できます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
systemctl status ceph-osd@OSD_NUMBER
[root@osd ~]# systemctl status ceph-osd@OSD_NUMBER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-osd@1
[root@osd ~]# systemctl status ceph-osd@1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
ceph osd set noout
[root@mon ~]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
mv /run/ceph-osd@0.service-cid /root
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
を OSD の ID に置き換えます。例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
podman exec -it ceph-osd-OSD_ID /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
podman exec -it ceph-osd-0 /bin/bash
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow osd fsid
を取得し、OSD をアクティベートして OSD の論理ボリューム (LV) をマウントします。Syntax
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ceph-objectstore-tool
ユーティリティーを使用して、失われたオブジェクトおよび存在しないオブジェクト のオブジェクトをリスト表示します。適切な状況を選択します。失われたすべてのオブジェクトをリストします。
ceph-objectstore-tool --data-path PATH_TO_OSD --op list-lost
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --op list-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list-lost
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループ内の失われたすべてのオブジェクトをリストします。
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list-lost
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID --op list-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list-lost
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op list-lost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 失われたオブジェクトをその識別子でリストします。
ceph-objectstore-tool --data-path PATH_TO_OSD --op list-lost OBJECT_ID
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --op list-lost OBJECT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list-lost default.region
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op list-lost default.region
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/etc/systemd/system/ceph-osd@.service
ユニットファイルをコピーします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified [root@osd ~]# cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
mv /run/ceph-osd@0.service-cid /tmp
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3.4. 失われたオブジェクトの修正 リンクのコピーリンクがクリップボードにコピーされました!
ceph-objectstore-tool
ユーティリティーを使用して、Ceph OSD に保存されている 失われたオブジェクトおよび存在しないオブジェクト をリスト表示し、修正することができます。この手順は、レガシーオブジェクトにのみ適用されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-osd@OSD_NUMBER
[root@osd ~]# systemctl status ceph-osd@OSD_NUMBER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl status ceph-osd@1
[root@osd ~]# systemctl status ceph-osd@1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
ceph osd set noout
[root@mon ~]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
mv /run/ceph-osd@0.service-cid /root
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
を OSD の ID に置き換えます。例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
podman exec -it ceph-osd-OSD_ID /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
podman exec -it ceph-osd-0 /bin/bash
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow osd fsid
を取得し、OSD をアクティベートして OSD の論理ボリューム (LV) をマウントします。Syntax
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
ceph-volume lvm list |grep -A15 "osd\.OSD_ID"|grep "osd fsid" ceph-volume lvm activate --bluestore OSD_ID OSD_FSID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
失われたレガシーオブジェクトをすべてリスト表示します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run
ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost --dry-run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost --dry-run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-objectstore-tool
ユーティリティーを使用して、ceph
ユーザーとして失われたオブジェクトおよび存在しないオブジェクト を修正します。適切な状況を選択します。失われたオブジェクトをすべて修正します。
構文
su - ceph -c 'ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost'
su - ceph -c 'ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost'
[root@osd ~]# su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置グループ内の失われたすべてのオブジェクトを修正します。
su - ceph -c 'ceph-objectstore-tool --data-path _PATH_TO_OSD_ --pgid _PG_ID_ --op fix-lost'
su - ceph -c 'ceph-objectstore-tool --data-path _PATH_TO_OSD_ --pgid _PG_ID_ --op fix-lost'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost'
[root@osd ~]# su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c --op fix-lost'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 失われたオブジェクトを識別子で修正します。
構文
su - ceph -c 'ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID'
su - ceph -c 'ceph-objectstore-tool --data-path PATH_TO_OSD --op fix-lost OBJECT_ID'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region'
[root@osd ~]# su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --op fix-lost default.region'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/etc/systemd/system/ceph-osd@.service
ユニットファイルをコピーします。例
cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.modified [root@osd ~]# cp /root/ceph-osd@.service.backup /etc/systemd/system/ceph-osd@.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
マネージャーの設定を再ロードします。例
systemctl daemon-reload
[root@osd ~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
mv /run/ceph-osd@0.service-cid /tmp
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-osd@0.service
[root@osd ~]# systemctl restart ceph-osd@0.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow