6.4. 명령줄 인터페이스를 사용하여 양방향 미러링 구성

이 절차에서는 기본 스토리지 클러스터와 보조 스토리지 클러스터 간에 풀의 양방향 복제를 구성합니다.

참고

양방향 복제를 사용하는 경우 두 스토리지 클러스터만 미러링할 수 있습니다.

참고

이 섹션의 예제에서는 기본 이미지를 site-a로 사용하여 기본 스토리지 클러스터를 참조하여 두 개의 스토리지 클러스터를 구분하고 이미지를 site- b 로 복제하는 보조 스토리지 클러스터를 구분합니다. 이러한 예제에서 사용된 풀 이름을 data 라고 합니다.

사전 요구 사항

  • 최소 2개의 정상 및 실행 중인 Red Hat Ceph Storage 클러스터.
  • 각 스토리지 클러스터의 Ceph 클라이언트 노드에 대한 루트 수준 액세스.
  • 관리자 수준의 기능이 있는 CephX 사용자.

절차

  1. 두 사이트 모두에서 cephadm 쉘에 로그인합니다.

    예제

    [root@site-a ~]# cephadm shell
    [root@site-b ~]# cephadm shell

  2. site-a 기본 클러스터에서 다음 명령을 실행합니다.

    예제

    [ceph: root@site-a /]# ceph orch apply rbd-mirror --placement=host01

    참고

    nodename 은 미러링을 설정하려는 호스트입니다.

  3. site-b 에서 보조 클러스터에서 mirror 데몬 배포를 예약합니다.

    구문

    ceph orch apply rbd-mirror --placement=NODENAME

    예제

    [ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04

    참고

    nodename 은 보조 클러스터에서 미러링을 설정하려는 호스트입니다.

  4. site-a 의 이미지에서 저널링 기능을 활성화합니다.

    1. 새 이미지의 경우 --image-feature 옵션을 사용하십시오.

      구문

      rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURE

      예제

      [ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling

      참고

      exclusive-lock 이 이미 활성화된 경우 journaling 을 유일한 인수로 사용하십시오. 그렇지 않으면 다음 오류를 반환합니다.

      one or more requested features are already enabled
      (22) Invalid argument
    2. 기존 이미지의 경우 rbd feature enable 명령을 사용합니다.

      구문

      rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURE

      예제

      [ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journaling

    3. 기본적으로 모든 새 이미지에서 저널링을 활성화합니다.

      구문

      ceph config set global rbd_default_features SUM_OF_FEATURE_NUMERIC_VALUES
      ceph config show HOST01 rbd_default_features

      예제

      [ceph: root@site-a /]# ceph config set global rbd_default_features 125
      [ceph: root@site-a /]# ceph config show mon.host01 rbd_default_features

  5. 두 스토리지 클러스터에서 미러링 모드(풀 또는 이미지 모드)를 선택합니다.

    1. 풀 모드 활성화 :

      구문

      rbd mirror pool enable POOL_NAME MODE

      예제

      [ceph: root@site-a /]# rbd mirror pool enable data pool
      [ceph: root@site-b /]# rbd mirror pool enable data pool

      이 예에서는 data 라는 전체 풀을 미러링할 수 있습니다.

    2. 이미지 모드 활성화 :

      구문

      rbd mirror pool enable POOL_NAME MODE

      예제

      [ceph: root@site-a /]# rbd mirror pool enable data image
      [ceph: root@site-b /]# rbd mirror pool enable data image

      이 예에서는 data 풀에서 이미지 모드 미러링을 활성화합니다.

      참고

      풀의 특정 이미지에 미러링을 사용하려면 Red Hat Ceph Storage 블록 장치 가이드이미지 미러링 활성화 섹션을 참조하십시오.

    3. 두 사이트 모두에서 미러링이 성공적으로 활성화되었는지 확인합니다.

      구문

      rbd mirror pool info POOL_NAME

      예제

      [ceph: root@site-a /]# rbd mirror pool info data
      Mode: pool
      Site Name: c13d8065-b33d-4cb5-b35f-127a02768e7f
      
      Peer Sites: none
      
      [ceph: root@site-b /]# rbd mirror pool info data
      Mode: pool
      Site Name: a4c667e2-b635-47ad-b462-6faeeee78df7
      
      Peer Sites: none

  6. Ceph 클라이언트 노드에서 스토리지 클러스터 피어를 부트스트랩합니다.

    1. Ceph 사용자 계정을 생성하고 스토리지 클러스터 피어를 풀에 등록합니다.

      구문

      rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN

      예제

      [ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-a

      참고

      이 예제 부트스트랩 명령은 client.rbd-mirror.site-aclient.rbd-mirror-peer Ceph 사용자를 생성합니다.

    2. 부트스트랩 토큰 파일을 site-b 스토리지 클러스터에 복사합니다.
    3. site-b 스토리지 클러스터에서 부트스트랩 토큰을 가져옵니다.

      구문

      rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-tx POOL_NAME PATH_TO_BOOTSTRAP_TOKEN

      예제

      [ceph: root@rbd-client-site-b /]# rbd mirror pool peer bootstrap import --site-name site-b --direction rx-tx data /root/bootstrap_token_site-a

      참고

      피어를 부트스트랩할 때 양방향 미러링이 기본값이므로 --direction 인수는 선택 사항입니다.

  7. 미러링 상태를 확인하려면 기본 및 보조 사이트의 Ceph 모니터 노드에서 다음 명령을 실행합니다.

    구문

    rbd mirror image status POOL_NAME/IMAGE_NAME

    예제

    [ceph: root@mon-site-a /]# rbd mirror image status data/image1
    image1:
      global_id:   a4c667e2-b635-47ad-b462-6faeeee78df7
      state:       up+stopped
      description: local image is primary
      service:     host03.glsdbv on host03.ceph.redhat.com
      last_update: 2021-09-16 10:55:58
      peer_sites:
        name: a
        state: up+stopped
        description: replaying, {"bytes_per_second":0.0,"entries_behind_primary":0,"entries_per_second":0.0,"non_primary_position":{"entry_tid":3,"object_number":3,"tag_tid":1},"primary_position":{"entry_tid":3,"object_number":3,"tag_tid":1}}
        last_update: 2021-09-16 10:55:50

    여기서는 rbd -mirror 데몬이 실행 중임을 의미하며 중지됨 은 이 이미지가 다른 스토리지 클러스터에서 복제 대상이 아님을 의미합니다. 이는 이미지가 이 스토리지 클러스터에서 기본이기 때문입니다.

    예제

    [ceph: root@mon-site-b /]# rbd mirror image status data/image1
    image1:
      global_id:   a4c667e2-b635-47ad-b462-6faeeee78df7
      state:       up+replaying
      description: replaying, {"bytes_per_second":0.0,"entries_behind_primary":0,"entries_per_second":0.0,"non_primary_position":{"entry_tid":3,"object_number":3,"tag_tid":1},"primary_position":{"entry_tid":3,"object_number":3,"tag_tid":1}}
      service:     host05.dtisty on host05
      last_update: 2021-09-16 10:57:20
      peer_sites:
        name: b
        state: up+stopped
        description: local image is primary
        last_update: 2021-09-16 10:57:28

    이미지가 up+replaying 상태인 경우 미러링이 제대로 작동합니다. 여기서는 rbd -mirror 데몬이 실행 중 임을 의미하며 재생 은 이 이미지가 다른 스토리지 클러스터에서 복제 대상임을 의미합니다.

    참고

    사이트 간 연결에 따라 미러링은 이미지를 동기화하는 데 시간이 오래 걸릴 수 있습니다.

추가 리소스