6.6. 재해에서 복구


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

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

6.6.1. 사전 요구 사항

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

6.6.2. 재해 복구

두 개 이상의 Red Hat Ceph Storage 클러스터 간의 블록 데이터의 비동기 복제는 다운타임을 줄이고 중요한 데이터 센터 장애 발생 시 데이터 손실을 방지합니다. 이러한 오류는 대규모 인력이라고도 하는 광범위한 영향을 미치며, 전력 그리드와 자연 재해에 영향을 미치기 때문에 발생할 수 있습니다.

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

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

  • 복구 지점 목표 (RPO): 데이터 손실의 양으로, 애플리케이션이 최악의 경우 허용합니다.
  • 복구 시간 목표 (RTO): 사용 가능한 데이터의 최신 복사본에 따라 애플리케이션을 다시 가져오는 데 걸린 시간입니다.

추가 리소스

6.6.3. 단방향 미러링으로 재해 복구

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

중요

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

6.6.4. 양방향 미러링으로 재해 복구

양방향 미러링을 사용할 때 재해에서 복구하려면 다음 절차를 사용합니다. 기본 클러스터가 종료된 후 보조 클러스터에서 미러링된 데이터로 장애 조치하는 방법과 장애 복구 방법을 보여줍니다. 종료는 순서에 따라 순서에 따라 정렬되지 않을 수 있습니다.

6.6.5. 순서가 종료된 후 장애 조치

순서가 종료된 후 보조 스토리지 클러스터로 장애 조치(failover)합니다.

사전 요구 사항

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

절차

  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.6.6. 순서가 아닌 종료 후 장애 조치

주문이 아닌 종료 후 보조 스토리지 클러스터로 장애 조치(failover)합니다.

사전 요구 사항

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

절차

  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.6.7. 실패를 위한 준비

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

사전 요구 사항

  • 실행 중인 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. 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

  4. 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 인수를 사용해야 합니다.

  5. 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.6.7.1. 기본 스토리지 클러스터로 다시 실패

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

참고

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

사전 요구 사항

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

절차

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

    명령의 출력에서 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.6.8. 양방향 미러링 삭제

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

사전 요구 사항

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

절차

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

    예제

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