12.6. BlueStore 관리자 도구를 사용하여 RocksDB 데이터베이스 재하드
BlueStore 관리자 도구를 사용하여 데이터베이스를 다시 하드할 수 있습니다. OSD를 재배포하지 않고 BlueStore의 RocksDB 데이터베이스를 한 모양에서 여러 열 제품군으로 변환합니다. 열 제품군은 전체 데이터베이스와 동일한 기능을 가지지만 사용자는 더 작은 데이터 세트에서 작동하고 다양한 옵션을 적용할 수 있습니다. 저장된 키의 수명을 다르게 활용합니다. 새 키를 생성하거나 기존 키를 삭제하지 않고 변환 중에 키를 이동합니다.
OSD를 복구하는 방법은 다음 두 가지가 있습니다.
-
rocksdb-resharding.yml
플레이북을 사용합니다. - OSD를 수동으로 재하드합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- BlueStore로 구성된 오브젝트 저장소입니다.
- 호스트에 배포된 OSD 노드입니다.
- 모든 호스트에 대한 루트 수준 액세스.
-
모든 호스트에 설치된
ceph-common
및cephadm
패키지입니다.
12.6.1. rocksdb-resharding.yml
플레이북 사용
root 사용자로 관리 노드에서 플레이북이 설치된
cephadm
폴더로 이동합니다.예
[root@host01 ~]# cd /usr/share/cephadm-ansible
Playbook을 실행합니다.
구문
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]
복구가 완료되었는지 확인합니다.
재하드된 OSD를 중지합니다.
예
[ceph: root@host01 /]# ceph orch daemon stop osd.7
OSD 컨테이너를 입력합니다.
예
[root@host03 ~]# cephadm shell --name osd.7
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
OSD를 시작합니다.
예
[ceph: root@host01 /]# ceph orch daemon start osd.7
12.6.2. OSD 수동 복구
cephadm
쉘에 로그인합니다.예제
[root@host01 ~]# cephadm shell
관리 노드에서 OSD_ID 및 호스트 세부 정보를 가져옵니다.
예제
[ceph: root@host01 /]# ceph orch ps
root
사용자로 해당 호스트에 로그인하고 OSD를 중지합니다.구문
cephadm unit --name OSD_ID stop
예제
[root@host02 ~]# cephadm unit --name osd.0 stop
중지된 OSD 데몬 컨테이너에 입력합니다.
구문
cephadm shell --name OSD_ID
예제
[root@host02 ~]# cephadm shell --name osd.0
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
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
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
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
cephadm
쉘을 종료합니다.[ceph: root@host02 /]# exit
각 호스트에
root
사용자로 로그인하고 OSD를 시작합니다.구문
cephadm unit --name OSD_ID start
예제
[root@host02 ~]# cephadm unit --name osd.0 start
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage 설치 가이드를 참조하십시오.