12.9. ceph-blustore-tool사용
Ceph-bluestore-tool
은 BlueStore 인스턴스에서 낮은 수준의 관리 작업을 수행하는 유틸리티입니다.
ceph-bluestore-tool
에서 다음 명령을 사용할 수 있습니다.
구문
ceph-bluestore-tool COMMAND [ --dev DEVICE … ] [ -i OSD_ID ] [ --path OSD_PATH ] [ --out-dir DIR ] [ --log-file | -l filename ] [ --deep ] ceph-bluestore-tool fsck|repair --path OSD_PATH [ --deep ] ceph-bluestore-tool qfsck --path OSD_PATH ceph-bluestore-tool allocmap --path OSD_PATH ceph-bluestore-tool restore_cfb --path OSD_PATH ceph-bluestore-tool show-label --dev DEVICE … ceph-bluestore-tool prime-osd-dir --dev DEVICE --path OSD_PATH ceph-bluestore-tool bluefs-export --path OSD_PATH --out-dir DIR ceph-bluestore-tool bluefs-bdev-new-wal --path OSD_PATH --dev-target NEW_DEVICE ceph-bluestore-tool bluefs-bdev-new-db --path OSD_PATH --dev-target NEW_DEVICE ceph-bluestore-tool bluefs-bdev-migrate --path OSD_PATH --dev-target NEW_DEVICE --devs-source DEVICE1 [--devs-source DEVICE2] ceph-bluestore-tool free-dump|free-score --path OSD_PATH [ --allocator block/bluefs-wal/bluefs-db/bluefs-slow ] ceph-bluestore-tool reshard --path OSD_PATH --sharding NEW_SHARDING [ --sharding-ctrl CONTROL_STRING ] ceph-bluestore-tool show-sharding --path OSD_PATH
모든 BlueStore 블록 장치에는 장치 시작 시 단일 블록 레이블이 있습니다. 다음을 사용하여 라벨의 내용을 덤프할 수 있습니다.
ceph-bluestore-tool show-label --dev DEVICE
기본 장치에는 OSD 데이터 디렉터리의 작은 파일에 저장된 데 사용되는 정보를 포함하여 많은 메타데이터가 포함되어 있습니다. 보조 장치(db 및 wal)에는 OSD UUID, 크기, 장치 유형, 생년월일 시간 등 최소 필수 필드만 있습니다.
prime-osd-dir
명령을 사용하여 BlueStore OSD를 시작할 수 있는 OSD 데이터 디렉터리에 대한 콘텐츠를 생성합니다.
ceph-bluestore-tool prime-osd-dir --dev MAIN_DEVICE --path /var/lib/ceph/ceph-ID
명령 | 설명 |
---|---|
| 도움말 표시 |
| 옵션: on,off; yes,no; 1,0; 또는 true,false. BlueStore 메타데이터에서 일관성 검사를 실행합니다. --deep이 지정된 경우 모든 오브젝트 데이터를 읽고 체크섬을 확인합니다. |
| 일관성 검사를 실행하고 오류를 복구합니다. |
| BlueStore 메타데이터에서 일관성 검사를 실행하여 al Cryostat 데이터를 ONodes 상태와 비교합니다. al Cryostat 데이터는 RocksDB CFB에서 제공되며, 존재하는 경우, allocation-file을 사용하지 않는 경우입니다. |
|
|
|
새 CryostatB 코드( |
| BlueFS의 콘텐츠를 출력 디렉터리로 내보냅니다. |
| BlueFS에서 이해한 대로 장치 크기를 stdout에 인쇄합니다. |
| BlueFS에 블록 장치의 크기를 확인하도록 지시하고, 확장한 경우 추가 공간을 사용하도록 지시합니다. BlueFS에서 만든 새 파일만 사용 가능한 공간이 충분한 경우 기본 블록 장치에 할당되며, 느린 장치로 스푸핑된 기존 파일은 RocksDB가 압축을 수행할 때 점진적으로 제거됩니다. 즉, 느린 장치로 인해 데이터가 유출되면 시간이 지남에 따라 빠른 장치로 이동합니다. |
| BlueFS에 WAL 장치를 추가합니다. WAL 장치가 이미 존재하는 경우 실패합니다. |
| DB 장치를 BlueFS에 추가, DB 장치가 이미 존재하는 경우 실패합니다. |
| BlueFS 데이터를 소스 장치에서 대상 장치로 이동하면 소스 장치(기본 장치 제외)가 성공적으로 제거됩니다. 대상 장치는 이미 연결되었거나 새 장치일 수 있습니다. 후자의 경우 소스 장치 중 하나를 교체하는 OSD에 추가됩니다. 대체 규칙이 적용되면(우선 우선 순위에서 중지), (1) 소스 목록에 DB 볼륨이 있는 경우 대상 장치가 대상 장치로 대체됩니다. (2) 소스 목록에 WAL 볼륨이 있는 경우 대상 장치가 이를 교체합니다. (3) 소스 목록에 느린 볼륨만 있는 경우 작업이 허용되지 않는 경우 new-db/new-wal 명령을 통해 명시적 할당이 필요합니다. |
| 모든 장치 레이블을 표시합니다. |
| al Cryostat에서 모든 사용 가능한 리전을 덤프합니다. |
| [0-1] 수를 지정하여 조각화의 품질을 나타내는 값을 지정합니다. 0은 사용 가능한 모든 공간이 하나의 청크에 있는 경우를 나타냅니다. 1은 최악의 조각화 가능성을 나타냅니다. |
|
BlueStore의 RocksDB 샤딩을 변경합니다. 샤딩은 RocksDB 열 제품군 위에 빌드됩니다. 이 옵션을 사용하면 OSD를 재배포하지 않고도 새 샤딩의 성능을 테스트할 수 있습니다. Resharding은 일반적으로 긴 프로세스로, 전체 RocksDB 키 공간을 통해 이동하고 그 중 일부를 다른 열 제품군으로 이동합니다. |
| 현재 BlueStore의 RocksDB에 적용되는 샤딩을 표시합니다. |
명령 옵션 | 설명 |
---|---|
| 고려할 장치 목록에 장치를 추가합니다. |
|
OSD OSD_ID 로 작동합니다. OSD 관련 옵션 모니터링에 연결합니다. 모니터를 사용할 수 없는 경우 대신 ceph.conf에서 읽을 수 있도록 |
| 장치를 마이그레이션 소스로 고려할 장치 목록에 추가합니다. |
| 새 DB/WAL을 추가하기 위해 추가할 대상 장치 마이그레이션 작업 또는 장치를 지정합니다. |
|
OSD 경로를 지정합니다. 대부분의 경우 장치 목록은 osd 경로에 있는 심볼릭 링크에서 유추됩니다. 일반적으로 --dev로 장치를 명시적으로 지정하는 것보다 더 간단합니다. |
|
|
| 기록할 파일입니다. |
| 디버그 로그 수준. 기본값은 30입니다(extremely verbose), 20은 매우 상세 정보이며 10은 상세 정보이며 1은 매우 상세하지 않습니다. |
| deep scrub/repair (메타데이터뿐만 아니라 오브젝트 데이터 읽기 및 유효성 확인). |
| free-dump 및 free-score 작업에 유용합니다. al Cryostat를 선택합니다. |
|
Resharding 프로세스를 제어합니다. RocksDB Cryostat를 새로 고치는 빈도와 RocksDB로 커밋하기 전에 배치를 커밋해야 하는 크기를 지정합니다. 옵션 형식은 기본값: 10000000/10000/1000 |
프로세스
ceph-bluestore-tool
을 사용하기 전에 OSD를 중지합니다.구문
ceph orch daemon stop osd.ID
예제
[ceph: root@host01 /]# ceph orch daemon stop osd.2
OSD 노드에서 대상 OSD 컨테이너에 로그인합니다.
구문
cephadm shell --name osd.ID
예제
[ceph: root@host01 /]# ceph shell --name osd.2
필요한 명령을 실행합니다.
예제
[ceph: root@host01 /]# ceph-bluestore-tool bluefs-bdev-new-wal --dev-target /dev/test/newdb --path /var/lib/ceph/osd/ceph-0
참고이 예제에서는 새 wal 장치를 추가하는 방법을 보여줍니다.
cephadm 쉘에서 OSD를 다시 시작합니다.
구문
ceph orch daemon start osd.ID
예제
[ceph: root@host01 /]# ceph orch daemon start osd.2
추가 리소스
BlueStore 구성 옵션에 대한 자세한 내용은 BlueStore 구성 옵션을 참조하십시오.