6.2. Ceph 블록 장치 미러링 구성 개요
rbd-mirror 데몬은 단방향 미러링을 위해 단일 Ceph 스토리지 클러스터 또는 미러링 관계에 참여하는 양방향 미러링을 위해 두 개의 Ceph 스토리지 클러스터에서 실행할 수 있습니다.
rbd-mirror 데몬은 원격 기본 이미지에서 변경 사항을 가져와 기본이 아닌 로컬 이미지에 변경 사항을 작성하여 하나의 Ceph 스토리지 클러스터의 이미지를 다른 Ceph 스토리지 클러스터로 동기화해야 합니다.
단방향 또는 양방향 복제를 사용하여 RBD 미러링이 작동하려면 다음과 같은 몇 가지 가정을 수행합니다.
- 두 스토리지 클러스터에 동일한 이름의 풀이 있습니다.
- 저널 기반 미러링의 경우 풀에 미러링할 저널 사용 이미지가 포함되어 있습니다.
단방향 또는 양방향 복제에서 rbd-mirror 의 각 인스턴스가 다른 Ceph 스토리지 클러스터에 동시에 연결할 수 있어야 합니다. 또한 네트워크는 미러링을 처리하기 위해 두 데이터 센터 사이트 간에 충분한 대역폭을 가져야 합니다.
미러링은 미러 피어링 스토리지 클러스터를 사용하여 풀별로 구성됩니다. Ceph는 풀의 이미지 유형에 따라 두 개의 미러링 모드를 지원합니다.
- 풀 모드
- 저널링 기능이 활성화된 풀의 모든 이미지가 미러링됩니다.
- 이미지 모드
- 풀 내의 특정 이미지 하위 집합만 미러링됩니다. 각 이미지에 대해 미러링을 별도로 활성화해야 합니다.
이미지를 수정할 수 있는지 여부는 상태에 따라 다릅니다.
- 기본 상태의 이미지를 수정할 수 있습니다.
- 기본이 아닌 상태에서는 이미지를 수정할 수 없습니다.
이미지에 미러링이 활성화되면 이미지가 자동으로 기본 설정으로 승격됩니다. 승격이 발생할 수 있습니다.
- 풀 모드 및 저널 기반 이미지에서만 미러링을 활성화하여 암시적으로 활성화합니다.
- 명시적으로 특정 이미지의 미러링을 활성화합니다.
기본 이미지가 아닌 이미지를 시연하고 승격할 수 있습니다.
6.2.1. 단방향 복제 링크 복사링크가 클립보드에 복사되었습니다!
단방향 미러링은 하나의 스토리지 클러스터의 기본 이미지 또는 이미지 풀이 보조 스토리지 클러스터에 복제됨을 의미합니다. 단방향 미러링은 여러 보조 스토리지 클러스터에도 복제를 지원합니다.
보조 스토리지 클러스터에서 이미지는 기본이 아닌 복제입니다. 즉, Ceph 클라이언트는 이미지에 쓸 수 없습니다. 데이터가 기본 스토리지 클러스터에서 보조 스토리지 클러스터로 미러링되면 rbd-mirror 는 보조 스토리지 클러스터에서만 실행됩니다.
단방향 미러링이 작동하려면 다음과 같은 몇 가지 가정이 수행됩니다.
- Red Hat Storage Ceph 스토리지 클러스터가 두 개 있으며 기본 스토리지 클러스터에서 보조 스토리지 클러스터로 이미지를 복제하려고 합니다.
-
보조 스토리지 클러스터에는 클러스터 노드 중 하나에서 실행할 수 있는
rbd-mirror데몬이 포함되어 있습니다.rbd-mirror데몬은 기본 스토리지 클러스터에 연결하여 이미지를 보조 스토리지 클러스터와 동기화합니다.
그림 6.1. 단방향 미러링
6.2.2. 양방향 복제 링크 복사링크가 클립보드에 복사되었습니다!
양방향 복제는 기본 클러스터에 rbd-mirror 데몬을 추가하여 이미지를 시연하고 보조 클러스터에서 승격할 수 있습니다. 그런 다음 보조 클러스터의 이미지를 변경할 수 있으며 보조 클러스터에서 기본까지 역방향 방향으로 복제됩니다. 두 클러스터 모두 클러스터에서 이미지를 승격하고 데모할 수 있도록 rbd-mirror 가 실행되고 있어야 합니다. 현재 양방향 복제는 두 사이트 간에만 지원됩니다.
양방향 미러링이 작동하려면 다음과 같은 몇 가지 가정이 수행됩니다.
- 두 개의 스토리지 클러스터가 있으며 두 개의 스토리지 클러스터 간에 이미지를 복제할 수 있어야 합니다.
-
두 스토리지 클러스터 모두
rbd-mirror데몬이 실행되고 있습니다. cluster1의 기본 이미지는 원격 클러스터의rbd-mirror데몬과 원격 클러스터의 이미지가 기본 이미지와 동기화됩니다.
그림 6.2. 양방향 미러링
6.2.3. 명령줄 인터페이스를 사용하여 단방향 미러링 구성 링크 복사링크가 클립보드에 복사되었습니다!
단방향 복제를 사용하는 경우 여러 보조 스토리지 클러스터에 미러링할 수 있습니다.
이 섹션의 예제에서는 기본 이미지가 site-a 인 기본 스토리지 클러스터를 사용하고 이미지를 site-b 로 복제하는 보조 스토리지 클러스터를 사용하여 두 개의 스토리지 클러스터를 구분합니다. 이러한 예에 사용되는 풀 이름을 data 라고 합니다.
사전 요구 사항
- 최소 2개의 실행 중인 Red Hat Ceph Storage 클러스터
- 각 스토리지 클러스터의 Ceph 클라이언트 노드에 대한 루트 수준 액세스.
- 관리자 수준 기능이 있는 CephX 사용자
프로세스
두 사이트의
cephadm쉘에 로그인합니다.예
cephadm shell cephadm shell
[root@site-a ~]# cephadm shell [root@site-b ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow site-b에서 보조 클러스터에서 미러 데몬 배포를 예약합니다.구문
ceph orch apply rbd-mirror --placement=NODENAME
ceph orch apply rbd-mirror --placement=NODENAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04
[ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고nodename은 보조 클러스터에서 미러링을 구성할 호스트입니다.site-a의 이미지에서 저널링 기능을 활성화합니다.새 이미지 의 경우
--image-feature옵션을 사용합니다.구문
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURE
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고exclusive-lock이 이미 활성화된 경우저널링을 유일한 인수로 사용하고, 그렇지 않으면 다음 오류가 반환됩니다.one or more requested features are already enabled (22) Invalid argument
one or more requested features are already enabled (22) Invalid argumentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 이미지 의 경우
rbd 기능 enable명령을 사용합니다.구문
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURE
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journaling
[ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 모든 새 이미지에서 저널링을 활성화하려면
ceph config set명령을 사용하여 구성 매개변수를 설정합니다.예
[ceph: root@site-a /]# ceph config set global rbd_default_features 125 [ceph: root@site-a /]# ceph config show mon.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_featuresCopy to Clipboard Copied! Toggle word wrap Toggle overflow
두 스토리지 클러스터 모두에서 미러링 모드(풀 또는 이미지 모드)를 선택합니다.
풀 모드 활성화 :
구문
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd mirror pool enable data pool [ceph: root@site-b /]# rbd mirror pool enable data pool
[ceph: root@site-a /]# rbd mirror pool enable data pool [ceph: root@site-b /]# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
data라는 전체 풀을 미러링할 수 있습니다.이미지 모드 활성화 :
구문
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd mirror pool enable data image [ceph: root@site-b /]# rbd mirror pool enable data image
[ceph: root@site-a /]# rbd mirror pool enable data image [ceph: root@site-b /]# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
data라는 풀에서 이미지 모드 미러링을 활성화합니다.참고풀의 특정 이미지에서 미러링을 활성화하려면 자세한 내용은 Red Hat Ceph Storage 블록 장치 가이드 의 이미지 미러링 활성화 섹션을 참조하십시오.
두 사이트에서 미러링이 성공적으로 활성화되었는지 확인합니다.
구문
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph 클라이언트 노드에서 스토리지 클러스터 피어를 부트스트랩합니다.
Ceph 사용자 계정을 생성하고 스토리지 클러스터 피어를 풀에 등록합니다.
구문
rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-a
[ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제 부트스트랩 명령은
client.rbd-mirror.site-a및client.rbd-mirror-peerCeph 사용자를 생성합니다.-
부트스트랩 토큰 파일을
site-b스토리지 클러스터에 복사합니다. site-b스토리지 클러스터에서 부트스트랩 토큰을 가져옵니다.구문
rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[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
[ceph: root@rbd-client-site-b /]# rbd mirror pool peer bootstrap import --site-name site-b --direction rx-only data /root/bootstrap_token_site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고단방향 RBD 미러링의 경우 피어를 부트스트랩할 때 양방향 미러링이 기본값이므로
--direction rx-only인수를 사용해야 합니다.
검증 단계
미러링 상태를 확인하려면 기본 및 보조 사이트의 Ceph Monitor 노드에서 다음 명령을 실행합니다.
구문
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
up은rbd-mirror데몬이 실행 중임을의미하며이 이미지가 다른 스토리지 클러스터의 복제 대상이 아님을 의미합니다. 이 스토리지 클러스터에서 이미지가 기본 설정되었기 때문입니다.예
[ceph: root@mon-site-b /]# rbd mirror image status data/image1 image1: global_id: c13d8065-b33d-4cb5-b35f-127a02768e7f
[ceph: root@mon-site-b /]# rbd mirror image status data/image1 image1: global_id: c13d8065-b33d-4cb5-b35f-127a02768e7fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.4. 명령줄 인터페이스를 사용하여 양방향 미러링 구성 링크 복사링크가 클립보드에 복사되었습니다!
양방향 복제를 사용하는 경우 두 스토리지 클러스터 간에만 미러링할 수 있습니다.
이 섹션의 예제에서는 기본 이미지가 site-a 인 기본 스토리지 클러스터를 사용하고 이미지를 site-b 로 복제하는 보조 스토리지 클러스터를 참조하여 두 스토리지 클러스터를 구분합니다. 이 예제에 사용된 풀 이름을 data 라고 합니다.
사전 요구 사항
- 최소 2개의 실행 중인 Red Hat Ceph Storage 클러스터
- 각 스토리지 클러스터의 Ceph 클라이언트 노드에 대한 루트 수준 액세스.
- 관리자 수준 기능이 있는 CephX 사용자
프로세스
두 사이트의
cephadm쉘에 로그인합니다.예
cephadm shell cephadm shell
[root@site-a ~]# cephadm shell [root@site-b ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사이트기본 클러스터에서 다음 명령을 실행합니다.예
[ceph: root@site-a /]# ceph orch apply rbd-mirror --placement=host01
[ceph: root@site-a /]# ceph orch apply rbd-mirror --placement=host01Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고nodename은 미러링을 구성할 호스트입니다.site-b에서 보조 클러스터에서 미러 데몬 배포를 예약합니다.구문
ceph orch apply rbd-mirror --placement=NODENAME
ceph orch apply rbd-mirror --placement=NODENAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04
[ceph: root@site-b /]# ceph orch apply rbd-mirror --placement=host04Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고nodename은 보조 클러스터에서 미러링을 구성할 호스트입니다.site-a의 이미지에서 저널링 기능을 활성화합니다.새 이미지 의 경우
--image-feature옵션을 사용합니다.구문
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURE
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE FEATURECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[ceph: root@site-a /]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고exclusive-lock이 이미 활성화된 경우저널링을 유일한 인수로 사용하고, 그렇지 않으면 다음 오류가 반환됩니다.one or more requested features are already enabled (22) Invalid argument
one or more requested features are already enabled (22) Invalid argumentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 이미지 의 경우
rbd 기능 enable명령을 사용합니다.구문
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURE
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE, FEATURECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journaling
[ceph: root@site-a /]# rbd feature enable data/image1 exclusive-lock, journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 모든 새 이미지에서 저널링을 활성화하려면
ceph config set명령을 사용하여 구성 매개변수를 설정합니다.예
[ceph: root@site-a /]# ceph config set global rbd_default_features 125 [ceph: root@site-a /]# ceph config show mon.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_featuresCopy to Clipboard Copied! Toggle word wrap Toggle overflow
두 스토리지 클러스터 모두에서 미러링 모드(풀 또는 이미지 모드)를 선택합니다.
풀 모드 활성화 :
구문
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd mirror pool enable data pool [ceph: root@site-b /]# rbd mirror pool enable data pool
[ceph: root@site-a /]# rbd mirror pool enable data pool [ceph: root@site-b /]# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
data라는 전체 풀을 미러링할 수 있습니다.이미지 모드 활성화 :
구문
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@site-a /]# rbd mirror pool enable data image [ceph: root@site-b /]# rbd mirror pool enable data image
[ceph: root@site-a /]# rbd mirror pool enable data image [ceph: root@site-b /]# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
data라는 풀에서 이미지 모드 미러링을 활성화합니다.참고풀의 특정 이미지에서 미러링을 활성화하려면 자세한 내용은 Red Hat Ceph Storage 블록 장치 가이드 의 이미지 미러링 활성화 섹션을 참조하십시오.
두 사이트에서 미러링이 성공적으로 활성화되었는지 확인합니다.
구문
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Ceph 클라이언트 노드에서 스토리지 클러스터 피어를 부트스트랩합니다.
Ceph 사용자 계정을 생성하고 스토리지 클러스터 피어를 풀에 등록합니다.
구문
rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap create --site-name PRIMARY_LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-a
[ceph: root@rbd-client-site-a /]# rbd mirror pool peer bootstrap create --site-name site-a data > /root/bootstrap_token_site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제 부트스트랩 명령은
client.rbd-mirror.site-a및client.rbd-mirror-peerCeph 사용자를 생성합니다.-
부트스트랩 토큰 파일을
site-b스토리지 클러스터에 복사합니다. site-b스토리지 클러스터에서 부트스트랩 토큰을 가져옵니다.구문
rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-tx POOL_NAME PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap import --site-name SECONDARY_LOCAL_SITE_NAME --direction rx-tx POOL_NAME PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[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
[ceph: root@rbd-client-site-b /]# rbd mirror pool peer bootstrap import --site-name site-b --direction rx-tx data /root/bootstrap_token_site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고피어를 부트스트랩할 때 기본값은 양방향 미러링이므로
--direction인수는 선택 사항입니다.
검증 단계
미러링 상태를 확인하려면 기본 및 보조 사이트의 Ceph Monitor 노드에서 다음 명령을 실행합니다.
구문
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
up은rbd-mirror데몬이 실행 중임을의미하며이 이미지가 다른 스토리지 클러스터의 복제 대상이 아님을 의미합니다. 이 스토리지 클러스터에서 이미지가 기본 설정되었기 때문입니다.예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지 상태가
up+replaying인 경우 미러링이 제대로 작동합니다. 여기서up은rbd-mirror데몬이 실행 중임을 나타내며재생은 이 이미지가 다른 스토리지 클러스터의 복제 대상임을 의미합니다.참고사이트 간 연결에 따라 미러링은 이미지를 동기화하는 데 시간이 오래 걸릴 수 있습니다.