4.7. 단방향 미러링을 통한 재해 복구
단방향 미러링을 사용하는 경우 재해에서 복구하려면 다음 절차를 사용하십시오. 기본 클러스터가 종료된 후 보조 클러스터로 장애 조치(failover)하는 방법 및 장애 복구 방법을 보여줍니다. 종료는 순서 또는 순서가 아닌 순서일 수 있습니다.
다음 예제에서는 기본 클러스터를 site-a
클러스터라고 하며 보조 클러스터를 site-b
클러스터라고 합니다. 또한 클러스터에는 두 개의 이미지 image1
및 image2
가 있는 데이터
풀이 있습니다.
단방향 미러링은 여러 보조 사이트를 지원합니다. 추가 보조 클러스터를 사용하는 경우 장애 조치할 보조 클러스터 중 하나를 선택합니다. 장애 복구 중에 동일한 클러스터에서 동기화합니다.
사전 요구 사항
- 실행 중인 클러스터 두 개 이상
- 풀 미러링 또는 이미지 미러링은 한 가지 방식으로 구성됩니다.
순서 종료 후 장애 조치(failover)
- 기본 이미지를 사용하는 모든 클라이언트를 중지합니다. 이 단계는 이미지를 사용하는 고객에 따라 다릅니다. 예를 들어 이미지를 사용하는 모든 OpenStack 인스턴스에서 볼륨을 분리합니다. Red Hat OpenStack Platform 13의 스토리지 가이드 의 블록 스토리지 및 볼륨 장을 참조하십시오.
site-a
클러스터의 모니터 노드에서 다음 명령을 실행하여site-a
클러스터에 있는 기본 이미지를 시연합니다.rbd mirror image demote data/image1 rbd mirror image demote data/image2
# rbd mirror image demote data/image1 # rbd mirror image demote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
클러스터의 모니터 노드에서 다음 명령을 실행하여site-b
클러스터에 있는 비기본 이미지를 승격합니다.rbd mirror image promote data/image1 rbd mirror image promote data/image2
# rbd mirror image promote data/image1 # rbd mirror image promote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 잠시 후
site-b
클러스터의 모니터 노드에서 이미지의 상태를 확인합니다.up+stopped
상태를 표시해야 하며 설명은primary
로 지정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Non-Orderlydown 이후 페일오버
- 기본 클러스터가 다운되었는지 확인합니다.
- 기본 이미지를 사용하는 모든 클라이언트를 중지합니다. 이 단계는 이미지를 사용하는 고객에 따라 다릅니다. 예를 들어 이미지를 사용하는 모든 OpenStack 인스턴스에서 볼륨을 분리합니다. Red Hat OpenStack Platform 10의 스토리지 가이드 의 블록 스토리지 및 볼륨 장을 참조하십시오.
site-b
클러스터의 모니터 노드에서 기본이 아닌 이미지를 승격합니다. demotion을site-a
클러스터로 전파할 수 없기 때문에--force
옵션을 사용합니다.rbd mirror image promote --force data/image1 rbd mirror image promote --force data/image2
# rbd mirror image promote --force data/image1 # rbd mirror image promote --force data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
클러스터의 모니터 노드에서 이미지 상태를 확인합니다.up+stopping_replay
상태가 표시되고 설명은force promoted
를 지정해야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
failback 준비
이전 기본 클러스터가 복구되면 오류가 발생했습니다.
두 클러스터가 원래 단방향 미러링용으로만 구성된 경우 장애 조치를 위해 이미지를 반대 방향으로 복제하려면 미러링을 위해 기본 클러스터를 구성해야 합니다.
site-a
클러스터의 클라이언트 노드에rbd-mirror
패키지를 설치합니다. 패키지는 Red Hat Ceph Storage 3 Tools 리포지토리에서 제공합니다.Red Hat Enterprise Linux
yum install rbd-mirror
# yum install rbd-mirror
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ubuntu
sudo apt-get install rbd-mirror
$ sudo apt-get install rbd-mirror
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
클러스터의 클라이언트 노드에서CLUSTER
옵션을 적절한 파일에 추가하여 클러스터 이름을 지정합니다. Red Hat Enterprise Linux에서/etc/sysconfig/ceph
파일을 업데이트하고 Ubuntu에서/etc/default/ceph
파일을 적절하게 업데이트합니다.CLUSTER=site-b
CLUSTER=site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-b
Ceph 구성 파일 및 RBD 키링 파일을site-b
모니터 및 클라이언트 노드로 복사합니다.scp /etc/ceph/ceph.conf <user>@<site-a_mon-host-name>:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring root@<site-a_mon-host-name>:/etc/ceph/ scp /etc/ceph/ceph.conf user@<site-a_client-host-name>:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring user@<site-a_client-host-name>:/etc/ceph/
# scp /etc/ceph/ceph.conf <user>@<site-a_mon-host-name>:/etc/ceph/site-b.conf # scp /etc/ceph/site-b.client.site-b.keyring root@<site-a_mon-host-name>:/etc/ceph/ # scp /etc/ceph/ceph.conf user@<site-a_client-host-name>:/etc/ceph/site-b.conf # scp /etc/ceph/site-b.client.site-b.keyring user@<site-a_client-host-name>:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph 구성 파일을
site-b
모니터 노드에서site-a
.conf로 전송하는scp
명령은 파일의 이름을site-a.conf
로 변경합니다. 키링 파일 이름은 동일하게 유지됩니다.site-a
RBD 키링 파일을site-a
monitor 노드에서site-a
클라이언트 노드로 복사합니다.scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-a_client-host-name>:/etc/ceph/
# scp /etc/ceph/site-a.client.site-a.keyring <user>@<site-a_client-host-name>:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
클라이언트 노드에서rbd-mirror
데몬을 활성화하고 시작합니다.systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@<client-id> systemctl start ceph-rbd-mirror@<client-id>
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@<client-id> systemctl start ceph-rbd-mirror@<client-id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;client-id
>를rbd-mirror
데몬이 사용할 Ceph Storage 클러스터 사용자로 변경합니다. 사용자에게 클러스터에 대한 적절한cephx
액세스 권한이 있어야 합니다. 자세한 내용은 Red Hat Ceph Storage 3 관리 가이드의 사용자 관리 장을 참조하십시오.site-a
를 사용한 선행 예제에 따라 명령은 다음과 같습니다.systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@site-a systemctl start ceph-rbd-mirror@site-a
# systemctl enable ceph-rbd-mirror.target # systemctl enable ceph-rbd-mirror@site-a # systemctl start ceph-rbd-mirror@site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
클러스터의 클라이언트 노드에서site-b
클러스터를 피어로 추가합니다.rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 보조 클러스터를 사용하는 경우 보조 클러스터가 장애 조치(Failover)하도록 선택한 경우에만 장애 조치(failback)가 추가되어야 합니다.
site-a
클러스터의 모니터 노드에서site-b
클러스터가 피어로 성공적으로 추가되었는지 확인합니다.rbd mirror pool info -p data
# rbd mirror pool info -p data Mode: image Peers: UUID NAME CLIENT d2ae0594-a43b-4c67-a167-a36c646e8643 site-b client.site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
failback
이전 기본 클러스터가 복구되면 오류가 발생했습니다.
site-a
클러스터의 모니터 노드에서 이미지가 여전히 기본인지 확인합니다.rbd info data/image1 rbd info data/image2
# rbd info data/image1 # rbd info data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령의 출력에서
primary: true 또는
를 찾아 상태를 확인합니다.mirroring primary
: falsesite-a
클러스터의 모니터 노드에서 다음과 같이 명령을 실행하여 기본으로 나열된 이미지를 데모합니다.rbd mirror image demote data/image1
# rbd mirror image demote data/image1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 순서가 아닌 종료가 있는 경우에만 이미지를 다시 동기화합니다. 사이트 - 클러스터의 모니터 노드에서 다음 명령을 실행하여
site-b
에서site-a
rbd mirror image resync data/image1 rbd mirror image resync data/image2
# rbd mirror image resync data/image1 Flagged image for resync from primary # rbd mirror image resync data/image2 Flagged image for resync from primary
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 잠시 후 이미지가
up+replaying
상태인지 확인하여 이미지를 다시 동기화해야 합니다.site-a
클러스터의 모니터 노드에서 다음 명령을 실행하여 상태를 확인합니다.rbd mirror image status data/image1 rbd mirror image status data/image2
# rbd mirror image status data/image1 # rbd mirror image status data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
site-b
클러스터의 모니터 노드에서 다음 명령을 실행하여site-b
클러스터의 이미지를 시연합니다.rbd mirror image demote data/image1 rbd mirror image demote data/image2
# rbd mirror image demote data/image1 # rbd mirror image demote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고보조 클러스터가 여러 개인 경우 승격된 보조 클러스터에서만 수행해야 합니다.
site-a
클러스터의 모니터 노드에서 다음 명령을 실행하여site-a
클러스터에 있는 이전 기본 이미지를 승격합니다.rbd mirror image promote data/image1 rbd mirror image promote data/image2
# rbd mirror image promote data/image1 # rbd mirror image promote data/image2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터의 모니터 노드에서 이미지 상태를 확인합니다.
up+stopped
상태를 표시해야 하며 설명은로컬 이미지가 기본
이미지라고 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
양방향 미러링 제거
위의 장애 조치 준비 섹션에서 양방향 미러링 기능에서는 site-b
클러스터에서 site-a
클러스터로 동기화할 수 있도록 구성되었습니다. failback이 완료되면 이러한 함수를 사용하지 않도록 설정할 수 있습니다.
site-a
클러스터에서 피어로site-b
클러스터를 제거합니다.rbd mirror pool peer remove data client.remote@remote --cluster local rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a
$ rbd mirror pool peer remove data client.remote@remote --cluster local # rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-a
클라이언트에서rbd-mirror
데몬을 중지하고 비활성화합니다.systemctl stop ceph-rbd-mirror@<client-id> systemctl disable ceph-rbd-mirror@<client-id> systemctl disable ceph-rbd-mirror.target
systemctl stop ceph-rbd-mirror@<client-id> systemctl disable ceph-rbd-mirror@<client-id> systemctl disable ceph-rbd-mirror.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
systemctl stop ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror.target
# systemctl stop ceph-rbd-mirror@site-a # systemctl disable ceph-rbd-mirror@site-a # systemctl disable ceph-rbd-mirror.target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow