6.5. 재해에서 복구


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

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

사전 요구 사항

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

6.5.1. 재해 복구

두 개 이상의 Red Hat Ceph Storage 클러스터 간 블록 데이터를 비동기식으로 복제하면 다운타임을 줄이고 데이터 센터 장애 발생 시 데이터 손실을 방지합니다. 이러한 실패는 큰 blast (blast )으로도 광범위하게 영향을 미치며, 정전기 및 자연 재해에 미치는 영향으로 인해 발생할 수 있습니다.

이러한 경우 고객 데이터를 보호해야합니다. 볼륨은 일관성과 효율성을 통해 복제되어야 하며RPO(Ranky Point Objective) 및RTO(Generation Time Objective) 대상 내에서도 복제해야 합니다. 이 솔루션을WAN-DR(Wide Area Network- Disdeployment)이라고 합니다.

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

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

추가 리소스

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

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

중요

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

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

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

6.5.4. 주문 종료 후 장애 조치(failover)

주문 종료 후 보조 스토리지 클러스터에 대한 장애 조치(failover)입니다.

사전 요구 사항

  • 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. 순서가 없는 종료 후 장애 조치(failover) after a non-orderly shutdown

순서가 지정되지 않은 후 보조 스토리지 클러스터로 장애 조치(failover)됩니다.

사전 요구 사항

  • 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

      참고

      이 예제 bootstrap 명령은 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. 사이트-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

추가 리소스

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

참고

이미지 수준에 예약된 스냅샷이 있는 경우 이미지 재동기화 작업이 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

    명령의 출력에서 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. 순서가 지정되지 않은 종료가 있는 경우 이미지를 다시 동기화합니다.

    클러스터의 다른 노드와 일치하지 않는 이미지는 클러스터의 기본 이미지 전체 사본을 사용하여 다시 생성됩니다.

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

Theme

© 2026 Red Hat
맨 위로 이동