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 upmapbalancer 모듈을 끕니다.
구문
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 norebalanceceph 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] 40PG를 상주할 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] 40PG가
active+clean으로 이동하는 데 걸리는 시간은 PG와 OSD 수에 따라 다릅니다. 또한 잘못된 오브젝트 수는mgr target_max_misplaced_ratio에 설정된 값에 따라 달라집니다.target_max_misplaced_ratio에 대해 설정된 값이 클수록 잘못된 객체 수가 증가하므로 모든 PG가활성+clean이 되는 데 시간이 더 오래 걸립니다.norebalance플래그를 설정 해제합니다.구문
ceph osd unset norebalancebalancer 모듈을 다시 켭니다.
구문
ceph balancer on
balancer 모듈을 활성화하면 스토리지 클러스터의 CRUSH 규칙에 따라 PG를 원하는 OSD로 느리게 이동합니다. 균형을 조정하는 데 시간이 다소 걸릴 수 있지만 결국 완료됩니다.