검색

11.6. BlueStore 관리자 도구를 사용하여 RocksDB 데이터베이스 재하드

download PDF

BlueStore 관리자 도구를 사용하여 데이터베이스를 다시 하드할 수 있습니다. OSD를 재배포하지 않고 BlueStore의 RocksDB 데이터베이스를 한 모양에서 여러 열 제품군으로 변환합니다. 열 제품군은 전체 데이터베이스와 동일한 기능을 가지지만 사용자는 더 작은 데이터 세트에서 작동하고 다양한 옵션을 적용할 수 있습니다. 저장된 키의 수명을 다르게 활용합니다. 새 키를 생성하거나 기존 키를 삭제하지 않고 변환 중에 키를 이동합니다.

OSD를 복구하는 방법은 다음 두 가지가 있습니다.

  1. rocksdb-resharding.yml 플레이북을 사용합니다.
  2. OSD를 수동으로 재하드합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • BlueStore로 구성된 오브젝트 저장소입니다.
  • 호스트에 배포된 OSD 노드입니다.
  • 모든 호스트에 대한 루트 수준 액세스.
  • 모든 호스트에 설치된 ceph-commoncephadm 패키지입니다.

11.6.1. rocksdb-resharding.yml 플레이북 사용

  1. root 사용자로 관리 노드에서 플레이북이 설치된 cephadm 폴더로 이동합니다.

    예제

    [root@host01 ~]# cd /usr/share/cephadm-ansible

  2. 플레이북을 실행합니다.

    구문

    ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=OSD_ID -e admin_node=HOST_NAME

    예제

    [root@host01 ~]# ansible-playbook -i hosts rocksdb-resharding.yml -e osd_id=7 -e admin_node=host03
    
    ...............
    TASK [stop the osd] ***********************************************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:18 +0000 (0:00:00.037)       0:00:03.864 ****
    changed: [localhost -> host03]
    TASK [set_fact ceph_cmd] ******************************************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:32 +0000 (0:00:14.128)       0:00:17.992 ****
    ok: [localhost -> host03]
    
    TASK [check fs consistency with fsck before resharding] ***********************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:32 +0000 (0:00:00.041)       0:00:18.034 ****
    ok: [localhost -> host03]
    
    TASK [show current sharding] **************************************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:43 +0000 (0:00:11.053)       0:00:29.088 ****
    ok: [localhost -> host03]
    
    TASK [reshard] ****************************************************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:45 +0000 (0:00:01.446)       0:00:30.534 ****
    ok: [localhost -> host03]
    
    TASK [check fs consistency with fsck after resharding] ************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:46 +0000 (0:00:01.479)       0:00:32.014 ****
    ok: [localhost -> host03]
    
    TASK [restart the osd] ********************************************************************************************************************************************************************************************
    Wednesday 29 November 2023  11:25:57 +0000 (0:00:10.699)       0:00:42.714 ****
    changed: [localhost -> host03]

  3. 복구가 완료되었는지 확인합니다.

    1. 재하드된 OSD를 중지합니다.

      예제

      [ceph: root@host01 /]# ceph orch daemon stop osd.7

    2. OSD 컨테이너를 입력합니다.

      예제

      [root@host03 ~]# cephadm shell --name osd.7

    3. resharding을 확인합니다.

      예제

      [ceph: root@host03 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-7/ show-sharding
          m(3) p(3,0-12) O(3,0-13) L P

    4. OSD를 시작합니다.

      예제

      [ceph: root@host01 /]# ceph orch daemon start osd.7

11.6.2. OSD 수동 복구

  1. cephadm 쉘에 로그인합니다.

    예제

    [root@host01 ~]# cephadm shell

  2. 관리 노드에서 OSD_ID 및 호스트 세부 정보를 가져옵니다.

    예제

    [ceph: root@host01 /]# ceph orch ps

  3. root 사용자로 해당 호스트에 로그인하고 OSD를 중지합니다.

    구문

    cephadm unit --name OSD_ID stop

    예제

    [root@host02 ~]# cephadm unit --name osd.0 stop

  4. 중지된 OSD 데몬 컨테이너에 입력합니다.

    구문

    cephadm shell --name OSD_ID

    예제

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

  5. cephadm 쉘에 로그인하고 파일 시스템 일관성을 확인합니다.

    구문

    ceph-bluestore-tool --path/var/lib/ceph/osd/ceph-OSD_ID/ fsck

    예제

    [ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-0/ fsck
    
    fsck success

  6. OSD 노드의 분할 상태를 확인합니다.

    구문

    ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding

    예제

    [ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding
    
    m(3) p(3,0-12) O(3,0-13) L P

  7. ceph-bluestore-tool 명령을 실행하여 reshard를 다시 실행합니다. Red Hat은 다음과 같이 매개변수를 사용하는 것이 좋습니다.

    구문

    ceph-bluestore-tool --log-level 10 -l log.txt --path /var/lib/ceph/osd/ceph-OSD_ID/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard

    예제

    [ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ --sharding="m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P" reshard
    
    reshard success

  8. OSD 노드의 분할 상태를 확인하려면 show-sharding 명령을 실행합니다.

    구문

    ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-OSD_ID/ show-sharding

    예제

    [ceph: root@host02 /]# ceph-bluestore-tool --path /var/lib/ceph/osd/ceph-6/ show-sharding
    
    m(3) p(3,0-12) O(3,0-13)=block_cache={type=binned_lru} L P

  9. cephadm 쉘을 종료합니다.

    [ceph: root@host02 /]# exit
  10. 각 호스트에 root 사용자로 로그인하고 OSD를 시작합니다.

    구문

    cephadm unit --name OSD_ID start

    예제

    [root@host02 ~]# cephadm unit --name osd.0 start

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.