1.8. upmap 을 사용하여 OSD에서 데이터를 수동으로 리밸런스


스토리지 관리자는 선택한 배치 그룹(PG)을 특정 OSD로 이동하여 OSD에서 데이터를 수동으로 리밸런스할 수 있습니다. 수동 재조정을 수행하려면 Ceph Manager 밸런서 모듈을 끄고 upmap 모드를 사용하여 PG를 이동합니다.

사전 요구 사항

  • 실행 중인 Red Hat 스토리지 클러스터.
  • 스토리지 클러스터의 모든 노드에 대한 루트 수준의 액세스.

절차

  1. 밸런서 모듈이 에 있는지 확인합니다.

    예제

    [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"
        ],

    1. balancer 모듈이 always_on 또는 enabled 모듈에 나열되지 않은 경우 활성화합니다.

      구문

      ceph mgr module enable balancer

  2. 밸런서 모드를 upmap 으로 설정 :

    구문

    ceph balancer mode upmap

  3. balancer 모듈을 끕니다.

    구문

    ceph balancer off

  4. 밸런서 상태 확인:

    예제

    [root@mon ~]# ceph balancer status
    {
        "plans": [],
        "active": false,
        "last_optimize_started": "",
        "last_optimize_duration": "",
        "optimize_result": "",
        "mode": "upmap"
    }

  5. OSD의 norebalance 플래그를 설정합니다.

    구문

    ceph osd set norebalance

  6. 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

  7. 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를 한 번에 하나씩 이동합니다.

  8. 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 이 되는 데 시간이 더 오래 걸립니다.

  9. norebalance 플래그를 설정 해제합니다.

    구문

    ceph osd unset norebalance

  10. balancer 모듈을 다시 켭니다.

    구문

    ceph balancer on

balancer 모듈을 활성화하면 스토리지 클러스터의 CRUSH 규칙에 따라 PG를 원하는 OSD로 느리게 이동합니다. 균형을 조정하는 데 시간이 다소 걸릴 수 있지만 결국 완료됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.