10.4. 低レベルのオブジェクト操作のトラブルシューティング
ストレージ管理者は、ceph-objectstore-tool
ユーティリティーを使用して低レベルのオブジェクト操作を実行することができます。ceph-objectstore-tool
ユーティリティーは、以下の低レベルのオブジェクト操作をサポートします。
- オブジェクトの内容の操作
- オブジェクトの削除
- オブジェクトマップ (OMAP) のリスト表示
- OMAP ヘッダーの操作
- OMAP キーの操作
- オブジェクトの属性のリスト表示
- オブジェクトの属性キーの操作
オブジェクトを操作すると、回復不能なデータ損失が発生する可能性があります。ceph-objectstore-tool
ユーティリティーを使用する前に、Red Hat サポートにお問い合わせください。
10.4.1. 前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
10.4.2. オブジェクトの内容の操作
ceph-objectstore-tool
ユーティリティーを使用すると、オブジェクトのバイトを取得または設定できます。
オブジェクトにバイト数を設定すると、回復できないデータ損失が発生する可能性があります。データの損失を防ぐには、オブジェクトのバックアップコピーを作成します。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
[root@osd ~]# systemctl status ceph-osd@$OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
- OSD または配置グループ (PG) のオブジェクトをリスト表示してオブジェクトを見つけます。
オブジェクトにバイトを設定する前に、そのオブジェクトのバックアップと作業コピーを作成します。
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ get-bytes > OBJECT_FILE_NAME [root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ get-bytes > OBJECT_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-bytes > zone_info.default.backup [root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-bytes > zone_info.default.working-copy
- 作業コピーオブジェクトファイルを編集し、それに応じてオブジェクトの内容を変更します。
オブジェクトのバイトを設定します。
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ set-bytes < OBJECT_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-bytes < zone_info.default.working-copy
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.3. オブジェクトの削除
ceph-objectstore-tool
ユーティリティーを使用してオブジェクトを削除します。オブジェクトを削除すると、そのコンテンツと参照は配置グループ (PG) から削除されます。
オブジェクトが削除されると、再作成できません。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
[root@osd ~]# systemctl status ceph-osd@$OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
オブジェクトの削除
構文
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ remove
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ remove
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.4. オブジェクトマップのリスト表示
ceph-objectstore-tool
ユーティリティーを使用して、オブジェクトマップ (OMAP) の内容をリスト表示します。この出力では、キーのリストが表示されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
[root@osd ~]# systemctl status ceph-osd@OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
オブジェクトマップをリスト表示します。
[root@osd ~]# ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ list-omap
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 --pgid 0.1c \ '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-omap
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.5. オブジェクトマップヘッダーの操作
ceph-objectstore-tool
ユーティリティーは、オブジェクトのキーに関連付けられた値と共にオブジェクトマップ (OMAP) ヘッダーを出力します。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
適切な OSD がダウンしていることを確認します。
構文
systemctl status ceph-osd@OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
オブジェクトマップヘッダーを取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr > OBJECT_MAP_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omaphdr > zone_info.default.omaphdr.txt
オブジェクトマップヘッダーを設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr < OBJECT_MAP_FILE_NAME
例
[root@osd ~]# su - ceph -c 'ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omaphdr < zone_info.default.omaphdr.txt
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.6. オブジェクトマップキーの操作
ceph-objectstore-tool
ユーティリティーを使用して、オブジェクトマップ (OMAP) キーを変更します。OMAP では、データパス、配置グループ識別子 (PG ID)、オブジェクト、およびキーを指定する必要があります。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
オブジェクトマップキーを取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omap KEY > OBJECT_MAP_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-omap "" > zone_info.default.omap.txt
オブジェクトマップキーを設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-omap KEY < OBJECT_MAP_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-omap "" < zone_info.default.omap.txt
オブジェクトマップキーを削除します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-omap KEY
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-omap ""
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.7. オブジェクトの属性のリスト表示
ceph-objectstore-tool
ユーティリティーを使用して、オブジェクトの属性をリスト表示します。この出力には、オブジェクトのキーと値が表示されます。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
[root@osd ~]# systemctl status ceph-osd@OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
オブジェクトの属性をリスト表示します。
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ list-attrs
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ list-attrs
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。
10.4.8. オブジェクト属性キーの操作
ceph-objectstore-tool
ユーティリティーを使用してオブジェクトの属性を変更します。オブジェクトの属性を操作するには、オブジェクトの属性のデータとジャーナルパス、配置グループ識別子 (PG ID)、オブジェクト、およびキーが必要です。
前提条件
- Ceph OSD ノードへのルートレベルのアクセス。
-
ceph-osd
デーモンの停止。
手順
適切な OSD がダウンしていることを確認します。
[root@osd ~]# systemctl status ceph-osd@$OSD_NUMBER
例
[root@osd ~]# systemctl status ceph-osd@1
コンテナー化されたデプロイメントの場合、bluestore tool にアクセスするには、次の手順に従います。
クラスターに
noout
フラグを設定します。例
[root@mon ~]# ceph osd set noout
- OSD コンテナーをホストするノードにログインします。
/etc/systemd/system/ceph-osd@.service
ユニットファイルを/root
ディレクトリーにバックアップします。例
[root@osd ~]# cp /etc/systemd/system/ceph-osd@.service /root/ceph-osd@.service.backup
/run/ceph-osd@OSD_ID.service-cid
ファイルを/root
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /root
/etc/systemd/system/ceph-osd@.service
ユニットファイルを編集し、-it --entrypoint /bin/bash
オプションを podman コマンドに追加します。例
# Please do not change this file directly since it is managed by Ansible and will be overwritten [Unit] Description=Ceph OSD After=network.target [Service] EnvironmentFile=-/etc/environment ExecStartPre=-/usr/bin/rm -f /%t/%n-pid /%t/%n-cid ExecStartPre=-/usr/bin/podman rm -f ceph-osd-%i ExecStart=/usr/bin/podman run -it --entrypoint /bin/bash \ -d --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \ --rm \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ --cpus=2 \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/ceph:/var/lib/ceph:z \ -v /etc/ceph:/etc/ceph:z \ -v /var/run/ceph:/var/run/ceph:z \ -v /var/run/udev/:/var/run/udev/ \ -v /var/log/ceph:/var/log/ceph:z \ -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 \ -e CLUSTER=ceph \ -v /run/lvm/:/run/lvm/ \ -e CEPH_DAEMON=OSD_CEPH_VOLUME_ACTIVATE \ -e CONTAINER_IMAGE=registry.redhat.io/rhceph/rhceph-4-rhel8:latest \ -e OSD_ID=%i \ -e DEBUG=stayalive \ --name=ceph-osd-%i \ \ registry.redhat.io/rhceph/rhceph-4-rhel8:latest ExecStop=-/usr/bin/sh -c "/usr/bin/podman rm -f `cat /%t/%n-cid`" KillMode=none Restart=always RestartSec=10s TimeoutStartSec=120 TimeoutStopSec=15 Type=forking PIDFile=/%t/%n-pid [Install] WantedBy=multi-user.target
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
systemctl restart ceph-osd@OSD_ID.service
OSD_ID
を OSD の ID に置き換えます。例
[root@osd ~]# systemctl restart ceph-osd@0.service
OSD_ID
に関連付けられたコンテナーにログインします。Syntax
podman exec -it ceph-osd-OSD_ID /bin/bash
例
[root@osd ~]# podman exec -it ceph-osd-0 /bin/bash
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
例
[root@osd ~]# ceph-volume lvm list |grep -A15 "osd\.0"|grep "osd fsid" osd fsid 087eee15-6561-40a3-8fe4-9583ba64a4ff [root@osd ~]# ceph-volume lvm activate --bluestore 0 087eee15-6561-40a3-8fe4-9583ba64a4ff Running command: /usr/bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc --path /var/lib/ceph/osd/ceph-0 --no-mon-config Running command: /usr/bin/ln -snf /dev/ceph-41c69f8f-30e2-4685-9c5c-c605898c5537/osd-data-d073e8b3-0b89-4271-af5b-83045fd000dc /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-0/block Running command: /usr/bin/chown -R ceph:ceph /dev/mapper/ceph--41c69f8f--30e2--4685--9c5c--c605898c5537-osd--data--d073e8b3--0b89--4271--af5b--83045fd000dc Running command: /usr/bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-0 Running command: /usr/bin/systemctl enable ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-0-087eee15-6561-40a3-8fe4-9583ba64a4ff.service
/usr/lib/systemd/system/ceph-volume@.service. Running command: /usr/bin/systemctl enable --runtime ceph-osd@0 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph osd@0.service /usr/lib/systemd/system/ceph-osd@.service. Running command: /usr/bin/systemctl start ceph-osd@0 stderr: Running in chroot, ignoring request: start --> ceph-volume lvm activate successful for osd ID: 0
オブジェクトの属性を取得します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-attrs KEY > OBJECT_ATTRS_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ get-attrs "oid" > zone_info.default.attr.txt
オブジェクトの属性を設定します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-attrs KEY < OBJECT_ATTRS_FILE_NAME
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ set-attrs "oid" < zone_info.default.attr.txt
オブジェクトの属性を削除します。
構文
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-attrs KEY
例
[root@osd ~]# ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0 \ --pgid 0.1c '{"oid":"zone_info.default","key":"","snapid":-2,"hash":235010478,"max":0,"pool":11,"namespace":""}' \ rm-attrs "oid"
コンテナー化されたデプロイメントの場合、変更を元に戻すには、次の手順に従います。
コンテナーを終了したら、
/root
ディレクトリーから/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
systemd
マネージャーの設定を再ロードします。例
[root@osd ~]# systemctl daemon-reload
/run/ceph-osd@OSD_ID.service-cid
ファイルを/tmp
に移動します。例
[root@osd ~]# mv /run/ceph-osd@0.service-cid /tmp
OSD_ID
に関連付けられた OSD サービスを再起動します。Syntax
[root@osd ~]# systemctl restart ceph-osd@OSD_ID.service
例
[root@osd ~]# systemctl restart ceph-osd@0.service
関連情報
- OSD の停止に関する詳細は、Red Hat Ceph Storage 管理ガイドの インスタンスごとの Ceph デーモンの開始、停止、および再起動 セクションを参照してください。