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 데몬 중지.

절차

  1. 적절한 OSD가 다운되었는지 확인합니다.

    구문

    systemctl status ceph-osd@OSD_ID

    예제

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

  2. OSD 또는 배치 그룹(PG)의 오브젝트를 나열하여 오브젝트를 찾습니다.
  3. OSD 컨테이너에 로그인합니다.

    구문

    cephadm shell --name osd.OSD_ID

    예제

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

  4. 오브젝트에서 바이트를 설정하기 전에 오브젝트의 백업 및 작업 사본을 만듭니다.

    구문

    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

  5. 작업 복사본 오브젝트 파일을 편집하고 그에 따라 오브젝트 콘텐츠를 수정합니다.
  6. 오브젝트의 바이트를 설정합니다.

    구문

    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 데몬 중지.

절차

  1. OSD 컨테이너에 로그인합니다.

    구문

    cephadm shell --name osd.OSD_ID

    예제

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

  2. 오브젝트를 제거합니다.

    구문

    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 데몬 중지.

절차

  1. 적절한 OSD가 다운되었는지 확인합니다.

    systemctl status ceph-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 --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 데몬 중지.

절차

  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 \
    --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

  4. 오브젝트 맵 헤더를 설정합니다.

    구문

    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 데몬 중지.

절차

  1. OSD 컨테이너에 로그인합니다.

    구문

    cephadm shell --name osd.OSD_ID

    예제

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

  2. 오브젝트 맵 키를 가져옵니다.

    구문

    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

  3. 오브젝트 맵 키를 설정합니다.

    구문

    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

  4. 오브젝트 맵 키를 제거합니다.

    구문

    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 데몬 중지.

절차

  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 \
    --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 데몬을 중지합니다.

절차

  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 \
    --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

  4. 오브젝트의 특성을 설정합니다.

    구문

    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

  5. 오브젝트의 특성을 제거합니다.

    구문

    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"

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.