9.3. 낮은 수준의 오브젝트 작업 문제 해결
스토리지 관리자는 ceph-objectstore-tool
유틸리티를 사용하여 낮은 수준의 오브젝트 작업을 수행할 수 있습니다. ceph-objectstore-tool
유틸리티는 다음과 같은 하위 수준 오브젝트 작업을 지원합니다.
- 오브젝트의 콘텐츠 조작
- 오브젝트 제거
- 오브젝트 맵(OMAP) 나열
- OMAP 헤더 조작
- OMAP 키 조작
- 오브젝트의 특성 나열
- 오브젝트의 특성 키 조작
개체를 조작하면 복구할 수 없는 데이터 손실이 발생할 수 있습니다. ceph-objectstore-tool
유틸리티를 사용하기 전에 Red Hat 지원에 문의하십시오.
9.3.1. 사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
9.3.2. 개체의 콘텐츠 조작
ceph-objectstore-tool
유틸리티를 사용하면 오브젝트에서 바이트를 가져오거나 설정할 수 있습니다.
개체에 바이트를 설정하면 복구할 수 없는 데이터 손실이 발생할 수 있습니다. 데이터 손실을 방지하려면 오브젝트의 백업 사본을 만듭니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
적절한 OSD가 다운되었는지 확인합니다.
구문
systemctl status ceph-osd@OSD_ID
예제
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
- OSD 또는 배치 그룹(PG)의 오브젝트를 나열하여 오브젝트를 찾습니다.
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트에서 바이트를 설정하기 전에 오브젝트의 백업 및 작업 사본을 만듭니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ get-bytes > OBJECT_FILE_NAME
예제
[ceph: root@host01 /]# 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 [ceph: root@host01 /]# 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
- 작업 복사본 오브젝트 파일을 편집하고 그에 따라 오브젝트 콘텐츠를 수정합니다.
오브젝트의 바이트를 설정합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ set-bytes < OBJECT_FILE_NAME
예제
[ceph: root@host01 /]# 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
9.3.3. 오브젝트 제거
ceph-objectstore-tool
유틸리티를 사용하여 오브젝트를 제거합니다. 오브젝트를 제거하면 해당 콘텐츠 및 참조가 배치 그룹(PG)에서 제거됩니다.
제거되면 개체를 다시 생성할 수 없습니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트를 제거합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ remove
예제
[ceph: root@host01 /]# 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
9.3.4. 오브젝트 맵 나열
ceph-objectstore-tool
유틸리티를 사용하여 오브젝트 맵(OMAP)의 콘텐츠를 나열합니다. 출력에서 키 목록을 제공합니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
적절한 OSD가 다운되었는지 확인합니다.
systemctl status ceph-osd@OSD_ID
예제
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트 맵을 나열합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD --pgid PG_ID \ OBJECT \ list-omap
예제
[ceph: root@host01 /]# 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
9.3.5. 오브젝트 맵 헤더 조작
ceph-objectstore-tool
유틸리티는 오브젝트 키와 연결된 값으로 오브젝트 맵(OMAP) 헤더를 출력합니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
적절한 OSD가 다운되었는지 확인합니다.
구문
systemctl status ceph-FSID@osd.OSD_ID
예제
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트 맵 헤더를 가져옵니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omaphdr > OBJECT_MAP_FILE_NAME
예제
[ceph: root@host01 /]# 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
예제
[ceph: root@host01 /]# 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
9.3.6. 오브젝트 맵 키 조작
ceph-objectstore-tool
유틸리티를 사용하여 오브젝트 맵(OMAP) 키를 변경합니다. 데이터 경로, 배치 그룹 ID(PG ID), 개체 및 OMAP의 키를 제공해야 합니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트 맵 키를 가져옵니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-omap KEY > OBJECT_MAP_FILE_NAME
예제
[ceph: root@host01 /]# 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
예제
[ceph: root@host01 /]# 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
예제
[ceph: root@host01 /]# 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 ""
9.3.7. 오브젝트의 특성 나열
ceph-objectstore-tool
유틸리티를 사용하여 오브젝트의 특성을 나열합니다. 출력에서는 오브젝트의 키와 값을 제공합니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬 중지.
절차
적절한 OSD가 다운되었는지 확인합니다.
구문
systemctl status ceph-FSID@osd.OSD_ID
예제
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트의 특성을 나열합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ list-attrs
예제
[ceph: root@host01 /]# 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
9.3.8. 개체 특성 키 조작
ceph-objectstore-tool
유틸리티를 사용하여 오브젝트의 특성을 변경합니다. 오브젝트의 특성을 조작하려면 데이터 경로, 배치 그룹 ID(PG ID), 오브젝트의 속성의 키가 필요합니다.
사전 요구 사항
- Ceph OSD 노드에 대한 루트 수준 액세스입니다.
-
ceph-osd
데몬을 중지합니다.
절차
적절한 OSD가 다운되었는지 확인합니다.
구문
systemctl status ceph-FSID@osd.OSD_ID
예제
[root@host01 ~]# systemctl status ceph-b404c440-9e4c-11ec-a28a-001a4a0001df@osd.0.service
OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.OSD_ID
예제
[root@host01 ~]# cephadm shell --name osd.0
오브젝트의 특성을 가져옵니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ get-attr KEY > OBJECT_ATTRS_FILE_NAME
예제
[ceph: root@host01 /]# 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-attr "oid" > zone_info.default.attr.txt
오브젝트의 특성을 설정합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ set-attr KEY < OBJECT_ATTRS_FILE_NAME
예제
[ceph: root@host01 /]# 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-attr "oid" < zone_info.default.attr.txt
오브젝트의 특성을 제거합니다.
구문
ceph-objectstore-tool --data-path PATH_TO_OSD \ --pgid PG_ID OBJECT \ rm-attr KEY
예제
[ceph: root@host01 /]# 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-attr "oid"