5.4. 풀에서 세 개의 가용성 영역 활성화


이 정보를 사용하여 일반화된 확장 클러스터 구성에서 세 개의 가용성 영역을 활성화하고 통합합니다.

사전 요구 사항

시작하기 전에 노드에 대한 다음과 같은 사전 요구 사항: * 루트 수준 액세스 권한이 있는지 확인하십시오. * CRUSH 위치는 호스트로 설정됩니다.

프로세스

  1. 최신 CRUSH 맵을 가져와서 맵을 텍스트 파일에 컴파일합니다.

    구문

    ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME
    crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME

    [ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin
    [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt

  2. 새 CRUSH 규칙을 이전에서 분리된 CRUSH 맵 파일에 추가합니다. 이 예제에서 규칙 이름은 3az_rule 입니다.

    구문

    rule 3az_rule {
             id 1
             type replicated
             step take default
             step choose firstn 3 type datacenter
             step chooseleaf firstn 2 type host
             step emit
     }

    이 규칙을 사용하면 3개의 데이터 센터 각각에 두 개의 사본으로 배치 그룹이 복제됩니다.

  3. CRUSH 맵을 삽입하여 클러스터에서 규칙을 사용할 수 있도록 합니다.

    구문

    crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
    ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME

    [ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin
    [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin

    다음 단계를 사용하여 규칙이 성공적으로 삽입되었는지 확인할 수 있습니다.

    1. 클러스터의 규칙을 나열합니다.

      구문

      ceph osd crush rule ls

      [ceph: root@host01 /]# ceph osd crush rule ls
      replicated_rule
      ec86_pool
      3az_rule

  4. CRUSH 규칙을 덤프합니다.

    구문

    ceph osd crush rule dump CRUSH_RULE

    [ceph: root@host01 /]# ceph osd crush rule dump 3az_rule
    {
        "rule_id": 1,
        "rule_name": "3az_rule",
        "type": 1,
        "steps": [
            {
                "op": "take",
                "item": -1,
                "item_name": "default"
            },
            {
                "op": "choose_firstn",
                "num": 3,
                "type": "datacenter"
            },
            {
                "op": "chooseleaf_firstn",
                "num": 2,
                "type": "host"
            },
            {
                "op": "emit"
            }
        ]
    }

  5. MON 선택 전략을 connectivity로 설정합니다.

    구문

    ceph mon set election_strategy connectivity

    성공적으로 업데이트되면 election_strategy가 3 으로 업데이트됩니다. 기본 election_strategy는 1 입니다.

  6. 선택 사항: 이전 단계에서 설정한 선택 전략을 확인합니다.

    구문

    ceph mon dump

    모든 mon 데몬이 출력에 있고 올바른 CRUSH 위치가 추가되었는지 확인합니다.

    [ceph: root@host01 /]# ceph mon dump
    epoch 19
    fsid b556497a-693a-11ef-b9d1-fa163e841fd7
    last_changed 2024-09-03T12:47:08.419495+0000
    created 2024-09-02T14:50:51.490781+0000
    min_mon_release 19 (squid)
    election_strategy: 3
    0: [v2:10.0.67.43:3300/0,v1:10.0.67.43:6789/0] mon.host01-installer; crush_location {datacenter=DC1}
    1: [v2:10.0.67.20:3300/0,v1:10.0.67.20:6789/0] mon.host02; crush_location {datacenter=DC1}
    2: [v2:10.0.64.242:3300/0,v1:10.0.64.242:6789/0] mon.host03; crush_location {datacenter=DC1}
    3: [v2:10.0.66.17:3300/0,v1:10.0.66.17:6789/0] mon.host06; crush_location {datacenter=DC2}
    4: [v2:10.0.66.228:3300/0,v1:10.0.66.228:6789/0] mon.host09; crush_location {datacenter=DC3}
    5: [v2:10.0.65.125:3300/0,v1:10.0.65.125:6789/0] mon.host05; crush_location {datacenter=DC2}
    6: [v2:10.0.66.252:3300/0,v1:10.0.66.252:6789/0] mon.host07; crush_location {datacenter=DC3}
    7: [v2:10.0.64.145:3300/0,v1:10.0.64.145:6789/0] mon.host08; crush_location {datacenter=DC3}
    8: [v2:10.0.64.125:3300/0,v1:10.0.64.125:6789/0] mon.host04; crush_location {datacenter=DC2}
    dumped monmap epoch 19

  7. 세 개의 가용성 영역 확장 클러스터와 연결할 풀을 설정합니다. 사용 가능한 풀 값에 대한 자세한 내용은 Red Hat Ceph Storage Storage Strategies Guide의 Pool 값을 참조하십시오.

    구문

    ceph osd pool stretch set _POOL_NAME_ _PEERING_CRUSH_BUCKET_COUNT_ _PEERING_CRUSH_BUCKET_TARGET_ _PEERING_CRUSH_BUCKET_BARRIER_ _CRUSH_RULE_ _SIZE_ _MIN_SIZE_ [--yes-i-really-mean-it]

    다음과 같이 변수를 변경합니다.

    POOL_NAME
    풀의 이름입니다. 기존 풀이어야 합니다. 이 명령은 새 풀을 생성하지 않습니다.
    PEERING_CRUSH_BUCKET_COUNT
    이 값은 peering_crush_bucket_barrier와 함께 사용되어, 동작 세트에 있는 개별 버킷 수에 따라 선택한 동작 세트의 OSD 집합이 서로 피어링할 수 있는지 여부를 결정합니다.
    PEERING_CRUSH_BUCKET_TARGET
    이 값은 peering_crush_bucket_barrier 및 size와 함께 사용하여 동일한 버킷의 OSD 수를 PG의 동작 세트에 있는 OSD 수를 제한하는 버킷_max 값을 계산합니다.
    PEERING_CRUSH_BUCKET_BARRIER
    풀이 확장되는 버킷 유형입니다. 예를 들면 rack, row 또는 datacenter입니다.
    CRUSH_RULE
    스트레치 풀에 사용할 crush 규칙입니다. 풀 유형은 crush_rule(복제 또는 삭제) 유형과 일치해야 합니다.
    SIZE
    확장 풀의 오브젝트 복제본 수입니다.
    MIN_SIZE

    확장 풀의 I/O에 필요한 최소 복제본 수입니다.

    중요

    CRUSH 맵의 버킷 수 이상으로 PEERING_CRUSH_BUCKET_COUNTPEERING_CRUSH_BUCKET_TARGET 을 설정할 때 '--yes-i-really-mean-it 플래그가 필요합니다. 옵션 플래그를 사용하여 안전 검사를 바이패스하고 스트레치 풀 값을 설정합니다.

    [ceph: root@host01 /]# ceph osd pool stretch set pool01 2 3 datacenter 3az_rule 6 3

    참고

    풀을stretched 클러스터로 되돌리려면 ceph osd pool stretch unset POOL_NAME 명령을 사용합니다. 이 명령을 사용하면 crush_rule,size, min_size 값이 설정되지 않습니다. 필요한 경우 수동으로 재설정해야 합니다.

    풀 스트레치 값이 올바르게 설정되었음을 성공 메시지가 전송됩니다.

  8. 선택 사항: ceph osd pool stretch show 명령을 사용하여 확장 클러스터와 연결된 풀을 확인합니다.

    [ceph: root@host01 /]# ceph osd pool stretch show pool01
    pool: pool01
    pool_id: 1
    is_stretch_pool: 1
    peering_crush_bucket_count: 2
    peering_crush_bucket_target: 3
    peering_crush_bucket_barrier: 8
    crush_rule: 3az_rule
    size: 6
    min_size: 3

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동