1.8. upmap 을 사용하여 OSD에서 데이터를 수동으로 리밸런스
스토리지 관리자는 선택한 배치 그룹(PG)을 특정 OSD로 이동하여 OSD에서 데이터를 수동으로 리밸런스할 수 있습니다. 수동 재조정을 수행하려면 Ceph Manager 밸런서 모듈을 끄고 upmap
모드를 사용하여 PG를 이동합니다.
사전 요구 사항
- 실행 중인 Red Hat 스토리지 클러스터.
- 스토리지 클러스터의 모든 노드에 대한 루트 수준의 액세스.
절차
밸런서 모듈이 에 있는지 확인합니다.
예제
[root@mon ~]# ceph mgr module ls | more { "always_on_modules": [ "balancer", "crash", "devicehealth", "orchestrator_cli", "progress", "rbd_support", "status", "volumes" ], "enabled_modules": [ "dashboard", "pg_autoscaler", "prometheus" ],
balancer 모듈이
always_on
또는enabled
모듈에 나열되지 않은 경우 활성화합니다.구문
ceph mgr module enable balancer
밸런서 모드를
upmap
으로 설정 :구문
ceph balancer mode upmap
balancer 모듈을 끕니다.
구문
ceph balancer off
밸런서 상태 확인:
예제
[root@mon ~]# ceph balancer status { "plans": [], "active": false, "last_optimize_started": "", "last_optimize_duration": "", "optimize_result": "", "mode": "upmap" }
OSD의
norebalance
플래그를 설정합니다.구문
ceph osd set norebalance
ceph pg dump pgs_brief
명령을 사용하여 스토리지 클러스터의 풀과 각 공간을 나열합니다.grep
을 사용하여 풀 재대 매핑을 검색합니다.예제
[root@mon ~]# ceph pg dump pgs_brief PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.270 active+remapped+backfilling [8,48,61] 8 [46,48,61] 46 7.1e7 active+remapped+backfilling [73,64,74] 73 [18,64,74] 18 7.1c1 active+remapped+backfilling [29,14,8] 29 [29,14,24] 29 7.17f active+remapped+backfilling [73,71,50] 73 [50,71,69] 50 7.16c active+remapped+backfilling [66,8,4] 66 [66,4,57] 66 7.13d active+remapped+backfilling [73,27,56] 73 [27,56,35] 27 7.130 active+remapped+backfilling [53,47,73] 53 [53,47,72] 53 9.e0 active+remapped+backfilling [8,75,14] 8 [14,75,58] 14 7.db active+remapped+backfilling [10,57,60] 10 [10,60,50] 10 9.7 active+remapped+backfilling [26,69,38] 26 [26,38,41] 26 7.4a active+remapped+backfilling [73,10,76] 73 [10,76,29] 10 9.9a active+remapped+backfilling [20,15,73] 20 [20,15,29] 20 7.ac active+remapped+backfilling [8,74,3] 8 [3,74,37] 3 9.c2 active+remapped+backfilling [57,75,7] 57 [4,75,7] 4 7.34d active+remapped+backfilling [23,46,73] 23 [23,46,56] 23 7.36a active+remapped+backfilling [40,32,8] 40 [40,32,44] 40
PG를 상주할 OSD로 이동합니다. 예를 들어 PG 7.ac을 OSD 8 및 3에서 OSD 3 및 37으로 이동하려면 다음을 수행합니다.
예제
PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.ac active+remapped+backfilling [8,74,3] 8 [3,74,37] 3 [root@mon ~]# ceph osd pg-upmap-items 7.ac 8 3 3 37 7.ac active+clean [3,74,37] 8 [3,74,37] 3
참고이 단계를 반복하여 각 매핑 PG를 한 번에 하나씩 이동합니다.
ceph pg dump pgs_brief
명령을 다시 사용하여 PG가active+clean
상태로 이동하는지 확인합니다.예제
[root@mon ~]# ceph pg dump pgs_brief PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.270 active+clean [8,48,61] 8 [46,48,61] 46 7.1e7 active+clean [73,64,74] 73 [18,64,74] 18 7.1c1 active+clean [29,14,8] 29 [29,14,24] 29 7.17f active+clean [73,71,50] 73 [50,71,69] 50 7.16c active+clean [66,8,4] 66 [66,4,57] 66 7.13d active+clean [73,27,56] 73 [27,56,35] 27 7.130 active+clean [53,47,73] 53 [53,47,72] 53 9.e0 active+clean [8,75,14] 8 [14,75,58] 14 7.db active+clean [10,57,60] 10 [10,60,50] 10 9.7 active+clean [26,69,38] 26 [26,38,41] 26 7.4a active+clean [73,10,76] 73 [10,76,29] 10 9.9a active+clean [20,15,73] 20 [20,15,29] 20 7.ac active+clean [3,74,37] 8 [3,74,37] 3 9.c2 active+clean [57,75,7] 57 [4,75,7] 4 7.34d active+clean [23,46,73] 23 [23,46,56] 23 7.36a active+clean [40,32,8] 40 [40,32,44] 40
PG가
active+clean
으로 이동하는 데 걸리는 시간은 PG와 OSD 수에 따라 다릅니다. 또한 잘못된 오브젝트 수는mgr target_max_misplaced_ratio
에 설정된 값에 따라 달라집니다.target_max_misplaced_ratio
에 대해 설정된 값이 클수록 잘못된 객체 수가 증가하므로 모든 PG가활성+clean
이 되는 데 시간이 더 오래 걸립니다.norebalance
플래그를 설정 해제합니다.구문
ceph osd unset norebalance
balancer 모듈을 다시 켭니다.
구문
ceph balancer on
balancer 모듈을 활성화하면 스토리지 클러스터의 CRUSH 규칙에 따라 PG를 원하는 OSD로 느리게 이동합니다. 균형을 조정하는 데 시간이 다소 걸릴 수 있지만 결국 완료됩니다.