4.7. 풀 마이그레이션
경우에 따라 모든 오브젝트를 한 풀에서 다른 풀로 마이그레이션해야 합니다. 이 작업은 특정 풀에서 수정할 수 없는 매개 변수를 변경해야 하는 경우 수행됩니다. 예를 들어 풀의 배치 그룹 수를 줄여야 합니다.
워크로드가 Ceph 블록 장치 이미지 만 사용하는 경우 Red Hat Ceph Storage 블록 장치 가이드 내에서 풀을 이동 및 마이그레이션하는 데 설명된 절차를 따르십시오.
Ceph Block Device에 대해 설명된 마이그레이션 방법은 여기에 설명된 것보다 더 권장됩니다. cppool을 사용하면 모든 스냅샷 및 스냅샷 관련 메타데이터를 유지하지 않으므로 데이터의 치명적이지 않은 사본이 생성됩니다. 예를 들어 RBD 풀을 복사해도 이미지를 완전히 복사하지는 않습니다. 이 경우 스냅이 존재하지 않으며 제대로 작동하지 않습니다. cppool은 일부 librados 사용자가 의존하는 user_version
필드도 유지하지 않습니다.
풀을 마이그레이션하고 사용자 워크로드에 Ceph 블록 장치 이외의 이미지가 포함된 경우 여기에 설명된 절차 중 하나를 계속 진행하십시오.
사전 요구 사항
rados cppool
명령을 사용하는 경우:- 풀에 대한 읽기 전용 액세스가 필요합니다.
-
librados에서 사용하는 RBD 이미지와 해당 snaps 및
user_version
이 없는 경우에만 이 명령을 사용합니다.
- 로컬 드라이브 RADOS 명령을 사용하는 경우 충분한 클러스터 공간을 사용할 수 있는지 확인합니다. 풀 복제 요인에 따라 두 개, 세 개 이상의 데이터 사본이 표시됩니다.
절차
방법 1 - 권장 직접 방법
rados cppool
명령을 사용하여 모든 오브젝트를 복사합니다.
복사 중에 풀에 대한 읽기 전용 액세스가 필요합니다.
구문
ceph osd pool create NEW_POOL PG_NUM [ <other new pool parameters> ] rados cppool SOURCE_POOL NEW_POOL ceph osd pool rename SOURCE_POOL NEW_SOURCE_POOL_NAME ceph osd pool rename NEW_POOL SOURCE_POOL
ceph osd pool create NEW_POOL PG_NUM [ <other new pool parameters> ]
rados cppool SOURCE_POOL NEW_POOL
ceph osd pool rename SOURCE_POOL NEW_SOURCE_POOL_NAME
ceph osd pool rename NEW_POOL SOURCE_POOL
예제
[ceph: root@host01 /]# ceph osd pool create pool1 250 [ceph: root@host01 /]# rados cppool pool2 pool1 [ceph: root@host01 /]# ceph osd pool rename pool2 pool3 [ceph: root@host01 /]# ceph osd pool rename pool1 pool2
[ceph: root@host01 /]# ceph osd pool create pool1 250
[ceph: root@host01 /]# rados cppool pool2 pool1
[ceph: root@host01 /]# ceph osd pool rename pool2 pool3
[ceph: root@host01 /]# ceph osd pool rename pool1 pool2
방법 2 - 로컬 드라이브 사용
rados 내보내기
및rados 가져오기
명령과 임시 로컬 디렉터리를 사용하여 내보낸 모든 데이터를 저장합니다.구문
ceph osd pool create NEW_POOL PG_NUM [ <other new pool parameters> ] rados export --create SOURCE_POOL FILE_PATH rados import FILE_PATH NEW_POOL
ceph osd pool create NEW_POOL PG_NUM [ <other new pool parameters> ] rados export --create SOURCE_POOL FILE_PATH rados import FILE_PATH NEW_POOL
Copy to Clipboard Copied! 예제
[ceph: root@host01 /]# ceph osd pool create pool1 250 [ceph: root@host01 /]# rados export --create pool2 <path of export file> [ceph: root@host01 /]# rados import <path of export file> pool1
[ceph: root@host01 /]# ceph osd pool create pool1 250 [ceph: root@host01 /]# rados export --create pool2 <path of export file> [ceph: root@host01 /]# rados import <path of export file> pool1
Copy to Clipboard Copied! - 필수 항목입니다. 소스 풀의 모든 I/O를 중지합니다.
필수 항목입니다. 수정된 모든 오브젝트를 다시 동기화합니다.
구문
rados export --workers 5 SOURCE_POOL FILE_PATH rados import --workers 5 FILE_PATH NEW_POOL
rados export --workers 5 SOURCE_POOL FILE_PATH rados import --workers 5 FILE_PATH NEW_POOL
Copy to Clipboard Copied! 예제
[ceph: root@host01 /]# rados export --workers 5 pool2 <path of export file> [ceph: root@host01 /]# rados import --workers 5 <path of export file> pool1
[ceph: root@host01 /]# rados export --workers 5 pool2 <path of export file> [ceph: root@host01 /]# rados import --workers 5 <path of export file> pool1
Copy to Clipboard Copied!