검색

6.5. 재해에서 복구

download PDF

스토리지 관리자는 미러링이 구성된 다른 스토리지 클러스터에서 데이터를 복구하는 방법을 확인하여 최종 하드웨어 장애에 대비할 수 있습니다.

이 예제에서 기본 스토리지 클러스터를 site-a 라고 하며 보조 스토리지 클러스터를 site-b 라고 합니다. 또한 스토리지 클러스터에는 모두 image1image2 라는 두 개의 이미지가 있는 데이터 풀이 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 단방향 또는 양방향 미러링이 구성되었습니다.

6.5.1. 재해 복구

두 개 이상의 Red Hat Ceph Storage 클러스터 간에 블록 데이터를 비동기적으로 복제하면 다운타임을 줄이고 데이터 센터 오류가 발생할 경우 데이터 손실을 방지할 수 있습니다. 이러한 오류는 대규모 폭발 반경 이라고하는 광범위한 영향을 미치며 전력망 및 자연 재해에 영향을 미칠 수 있습니다.

이러한 시나리오에서는 고객 데이터를 보호해야합니다. 볼륨은 일관성 및 효율성과RPO(Recovery Point Objective) 및 RTO(Recover Time Objective) 대상 내에서 복제되어야 합니다. 이 솔루션을 Wide Area Network- Disaster Recovery ( Cryostat-DR)라고 합니다.

이러한 시나리오에서는 기본 시스템 및 데이터 센터를 복원하기가 어렵습니다. 복구할 수 있는 가장 빠른 방법은 애플리케이션을 대체 Red Hat Ceph Storage 클러스터(구체 복구 사이트)로 장애 조치하고 사용 가능한 최신 데이터 사본으로 클러스터를 작동할 수 있도록 하는 것입니다. 이러한 장애 시나리오에서 복구하는 데 사용되는 솔루션은 애플리케이션에 의해 안내됩니다.

  • 복구 포인트 목표 (RPO): 데이터 손실의 양, 애플리케이션이 최악의 경우 허용됩니다.
  • 복구 시간 목표(RTO): 사용 가능한 데이터의 최신 사본과 함께 애플리케이션을 다시 가져오는 데 걸린 시간입니다.

추가 리소스

6.5.2. 단방향 미러링을 통해 재해 복구

단방향 미러링을 사용할 때 재해에서 복구하려면 다음 절차를 사용하십시오. 기본 클러스터가 종료된 후 보조 클러스터로 장애 조치하는 방법과 실패 방법을 보여줍니다. 종료는 순서 또는 순서가 아닐 수 있습니다.

중요

단방향 미러링은 여러 보조 사이트를 지원합니다. 추가 보조 클러스터를 사용하는 경우 장애 조치할 보조 클러스터 중 하나를 선택합니다. 다시 실패하는 동안 동일한 클러스터에서 동기화합니다.

6.5.3. 양방향 미러링을 통해 재해 복구

양방향 미러링을 사용할 때 재해에서 복구하려면 다음 절차를 사용하십시오. 기본 클러스터가 종료된 후 보조 클러스터에서 미러링된 데이터로 장애 조치하는 방법과 실패하는 방법을 보여줍니다. 종료는 순서 또는 순서가 아닐 수 있습니다.

6.5.4. 순서 종료 후 장애 조치

순서 종료 후 보조 스토리지 클러스터에 대한 장애 조치.

사전 요구 사항

  • 최소 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
  • 노드에 대한 루트 수준 액세스.
  • 풀 미러링 또는 단방향 미러링으로 구성된 이미지 미러링입니다.

프로세스

  1. 기본 이미지를 사용하는 모든 클라이언트를 중지합니다. 이 단계는 이미지를 사용하는 클라이언트에 따라 다릅니다. 예를 들어 이미지를 사용하는 모든 OpenStack 인스턴스에서 볼륨을 분리합니다.
  2. site-a 클러스터의 모니터 노드에서 다음 명령을 실행하여 site-a 클러스터에 있는 기본 이미지를 시연합니다.

    구문

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image demote data/image1
    [root@rbd-client ~]# rbd mirror image demote data/image2

  3. site-b 클러스터의 모니터 노드에서 다음 명령을 실행하여 site-b 클러스터에 있는 기본이 아닌 이미지를 승격합니다.

    구문

    rbd mirror image promote POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image promote data/image1
    [root@rbd-client ~]# rbd mirror image promote data/image2

  4. 잠시 후 site-b 클러스터의 모니터 노드에서 이미지 상태를 확인합니다. up+stopped 상태가 표시되고 primary로 나열되어야 합니다.

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-17 16:04:37
    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-17 16:04:37
  5. 이미지에 대한 액세스를 다시 시작합니다. 이 단계는 이미지를 사용하는 클라이언트에 따라 다릅니다.

추가 리소스

6.5.5. 순서가 지정되지 않은 종료 후 장애 조치

순서가 지정되지 않은 후 보조 스토리지 클러스터에 대한 페일오버.

사전 요구 사항

  • 최소 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
  • 노드에 대한 루트 수준 액세스.
  • 풀 미러링 또는 단방향 미러링으로 구성된 이미지 미러링입니다.

프로세스

  1. 기본 스토리지 클러스터가 다운되었는지 확인합니다.
  2. 기본 이미지를 사용하는 모든 클라이언트를 중지합니다. 이 단계는 이미지를 사용하는 클라이언트에 따라 다릅니다. 예를 들어 이미지를 사용하는 모든 OpenStack 인스턴스에서 볼륨을 분리합니다.
  3. site-b 스토리지 클러스터의 Ceph Monitor 노드에서 기본이 아닌 이미지를 승격합니다. 데모를 site-a 스토리지 클러스터로 전달할 수 없으므로 --force 옵션을 사용합니다.

    구문

    rbd mirror image promote --force POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image promote --force data/image1
    [root@rbd-client ~]# rbd mirror image promote --force data/image2

  4. site-b 스토리지 클러스터의 Ceph Monitor 노드에서 이미지 상태를 확인합니다. up+stopping_replay 상태가 표시되어야 합니다. 설명은 강제 승격 해야 합니다. 즉, 간헐적인 상태에 있습니다. 상태가 up+stopped 가 될 때까지 기다린 후 사이트를 검증합니다.

    예제

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopping_replay
      description: force promoted
      last_update: 2023-04-17 13:25:06
    
    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: force promoted
      last_update: 2023-04-17 13:25:06

추가 리소스

6.5.6. 실패에 대한 준비

두 스토리지 클러스터가 일회성 미러링에만 대해 원래 구성된 경우 이미지를 반대 방향으로 복제하기 위해 미러링을 위해 기본 스토리지 클러스터를 구성합니다.

실패 시나리오 중에 기존 피어를 기존 클러스터에 추가하기 전에 액세스할 수 없는 기존 피어를 제거해야 합니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 클라이언트 노드에 대한 루트 수준 액세스.

프로세스

  1. Cephadm 쉘에 로그인합니다.

    예제

    [root@rbd-client ~]# cephadm shell

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

    예제

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

  3. 액세스할 수 없는 피어를 제거합니다.

    중요

    이 단계는 가동 및 실행 중인 피어 사이트에서 실행해야 합니다.

    참고

    여러 피어는 한 가지 방법 미러링에만 지원됩니다.

    1. 풀 UUID를 가져옵니다.

      구문

      rbd mirror pool info POOL_NAME

      예제

      [ceph: root@host01 /]# rbd mirror pool info pool_failback

    2. 액세스할 수 없는 피어를 제거합니다.

      구문

      rbd mirror pool peer remove POOL_NAME PEER_UUID

      예제

      [ceph: root@host01 /]# rbd mirror pool peer remove pool_failback f055bb88-6253-4041-923d-08c4ecbe799a

  4. 피어 미러 풀과 동일한 이름으로 블록 장치 풀을 만듭니다.

    1. rbd 풀을 만들려면 다음을 실행합니다.

      구문

      ceph osd pool create POOL_NAME PG_NUM
      ceph osd pool application enable POOL_NAME rbd
      rbd pool init -p POOL_NAME

      예제

      [root@rbd-client ~]# ceph osd pool create pool1
      [root@rbd-client ~]# ceph osd pool application enable pool1 rbd
      [root@rbd-client ~]# rbd pool init -p pool1

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

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

      구문

      rbd mirror pool peer bootstrap create --site-name 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 LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKEN

      예제

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

      참고

      단방향 RBD 미러링의 경우 피어를 부트스트랩할 때 양방향 미러링이 기본값이므로 --direction rx-only 인수를 사용해야 합니다.

  6. site-a 스토리지 클러스터의 모니터 노드에서 site-b 스토리지 클러스터가 피어로 성공적으로 추가되었는지 확인합니다.

    예제

    [ceph: root@rbd-client /]# rbd mirror pool info -p data
    Mode: image
    Peers:
      UUID                                 NAME   CLIENT
      d2ae0594-a43b-4c67-a167-a36c646e8643 site-b client.site-b

추가 리소스

6.5.6.1. 기본 스토리지 클러스터로 돌아가기

이전의 기본 스토리지 클러스터가 복구되면 기본 스토리지 클러스터로 다시 실패합니다.

참고

이미지 수준에 예약된 스냅샷이 있는 경우 이미지 재동기화 작업이 RBD 이미지 ID를 변경하고 이전 일정이 더 이상 사용되지 않을 때 일정을 다시 추가해야 합니다.

사전 요구 사항

  • 최소 두 개 이상의 실행 중인 Red Hat Ceph Storage 클러스터
  • 노드에 대한 루트 수준 액세스.
  • 풀 미러링 또는 단방향 미러링으로 구성된 이미지 미러링입니다.

프로세스

  1. site-b 클러스터의 모니터 노드에서 이미지 상태를 다시 확인합니다. 중지 상태의 상태가 표시되어야 하며 설명은 로컬 이미지가 primary 라고 말해야 합니다.

    예제

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:37:48
    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 17:38:18

  2. site-a 스토리지 클러스터의 Ceph Monitor 노드에서 이미지가 여전히 기본 상태인지 확인합니다.

    구문

    rbd mirror pool info POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd info data/image1
    [root@rbd-client ~]# rbd info data/image2

    명령의 출력에서 mirroring primary: true 또는 mirroring primary: false 를 찾아 상태를 확인합니다.

  3. site-a 스토리지 클러스터의 Ceph Monitor 노드에서 다음과 같은 명령을 실행하여 기본 설정으로 나열된 이미지를 시연합니다.

    구문

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image demote data/image1

  4. 순서가 아닌 종료가 있는 경우에만 이미지를 다시 동기화합니다. site-a 스토리지 클러스터의 모니터 노드에서 다음 명령을 실행하여 site-b 에서 site-a 로 이미지를 다시 동기화합니다.

    구문

    rbd mirror image resync POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image resync data/image1
    Flagged image for resync from primary
    [root@rbd-client ~]# rbd mirror image resync data/image2
    Flagged image for resync from primary

  5. 잠시 후 이미지 재동기화가 up+replaying 상태인지 확인하여 완료합니다. site-a 스토리지 클러스터의 모니터 노드에서 다음 명령을 실행하여 상태를 확인합니다.

    구문

    rbd mirror image status POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image status data/image1
    [root@rbd-client ~]# rbd mirror image status data/image2

  6. site-b 스토리지 클러스터의 Ceph Monitor 노드에서 다음 명령을 실행하여 site-b 스토리지 클러스터에 이미지를 시연합니다.

    구문

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image demote data/image1
    [root@rbd-client ~]# rbd mirror image demote data/image2

    참고

    보조 스토리지 클러스터가 여러 개인 경우 승격된 보조 스토리지 클러스터에서만 이 작업을 수행해야 합니다.

  7. site-a 스토리지 클러스터의 Ceph Monitor 노드에서 다음 명령을 실행하여 site-a 스토리지 클러스터에 있는 이전의 기본 이미지를 승격합니다.

    구문

    rbd mirror image promote POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image promote data/image1
    [root@rbd-client ~]# rbd mirror image promote data/image2

  8. site-a 스토리지 클러스터의 Ceph Monitor 노드에서 이미지 상태를 확인합니다. 이는 up+stopped 상태를 표시해야 하며 설명은 로컬 이미지가 primary 라고 말해야 합니다.

    구문

    rbd mirror image status POOL_NAME/IMAGE_NAME

    예제

    [root@rbd-client ~]# rbd mirror image status data/image1
    image1:
      global_id:   08027096-d267-47f8-b52e-59de1353a034
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51
    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   596f41bc-874b-4cd4-aefe-4929578cc834
      state:       up+stopped
      description: local image is primary
      last_update: 2019-04-22 11:14:51

6.5.7. 양방향 미러링 제거

실패가 완료되면 양방향 미러링을 제거하고 Ceph 블록 장치 미러링 서비스를 비활성화할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 노드에 대한 루트 수준 액세스.

프로세스

  1. site-a 스토리지 클러스터에서 피어로 site-b 스토리지 클러스터를 제거합니다.

    예제

    [root@rbd-client ~]# rbd mirror pool peer remove data client.remote@remote --cluster local
    [root@rbd-client ~]# rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a

  2. site-a 클라이언트에서 rbd-mirror 데몬을 중지하고 비활성화합니다.

    구문

    systemctl stop ceph-rbd-mirror@CLIENT_ID
    systemctl disable ceph-rbd-mirror@CLIENT_ID
    systemctl disable ceph-rbd-mirror.target

    예제

    [root@rbd-client ~]# systemctl stop ceph-rbd-mirror@site-a
    [root@rbd-client ~]# systemctl disable ceph-rbd-mirror@site-a
    [root@rbd-client ~]# systemctl disable ceph-rbd-mirror.target

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.