2.9. CRUSH 맵 편집
일반적으로 Ceph CLI를 사용하여 런타임 시 CRUSH 맵을 수정하는 것이 CRUSH 맵을 수동으로 편집하는 것보다 편리합니다. 그러나 기본 버킷 유형 변경 또는 straw2
이외의 버킷 알고리즘을 사용하는 등 편집할 수 있는 경우가 있습니다.
기존 CRUSH 맵을 편집하려면 다음을 수행합니다.
- CRUSH 맵을 가져옵니다.
- CRUSH 맵을 분리 합니다.
- 장치 중 하나와 Buckets 및 규칙을 편집합니다.
- CRUSH 맵을 다시 컴파일 합니다.
- CRUSH 맵을 설정합니다.
특정 풀에 대한 CRUSH 맵 규칙을 활성화하려면 공통 규칙 번호를 식별하고 풀을 생성할 때 풀의 규칙 번호를 지정합니다.
2.9.1. CRUSH 맵 가져오기
클러스터의 CRUSH 맵을 가져오려면 다음을 실행합니다.
ceph osd getcrushmap -o {compiled-crushmap-filename}
ceph osd getcrushmap -o {compiled-crushmap-filename}
Ceph는 컴파일된 CRUSH 맵을 지정한 파일 이름에 출력합니다. CRUSH 맵은 컴파일된 형식이므로 편집하기 전에 먼저 컴파일해야 합니다.
2.9.2. CRUSH 맵 분리
CRUSH 맵을 분리하려면 다음을 실행합니다.
crushtool -d {compiled-crushmap-filename} -o {decompiled-crushmap-filename}
crushtool -d {compiled-crushmap-filename} -o {decompiled-crushmap-filename}
Ceph는 컴파일된 CRUSH 맵과 출력(-o)을 지정한 파일 이름으로 컴파일(-d)합니다.
2.9.3. CRUSH 맵 컴파일
CRUSH 맵을 컴파일하려면 다음을 실행합니다.
crushtool -c {decompiled-crush-map-filename} -o {compiled-crush-map-filename}
crushtool -c {decompiled-crush-map-filename} -o {compiled-crush-map-filename}
Ceph는 컴파일된 CRUSH 맵을 지정한 파일 이름에 저장합니다.
2.9.4. CRUSH 맵 설정
클러스터의 CRUSH 맵을 설정하려면 다음을 실행합니다.
ceph osd setcrushmap -i {compiled-crushmap-filename}
ceph osd setcrushmap -i {compiled-crushmap-filename}
Ceph는 클러스터의 CRUSH 맵으로 지정한 파일 이름의 컴파일된 CRUSH 맵을 입력합니다.