2.12. 풀 간 이미지 이동

RADOS Block Device(RBD) 이미지를 동일한 클러스터 내의 여러 풀 간에 이동할 수 있습니다. 마이그레이션은 복제된 풀, 삭제 코드된 풀 또는 복제된 풀과 삭제 코드된 풀 간에 마이그레이션할 수 있습니다.

이 프로세스 중에 소스 이미지가 모든 스냅샷 기록으로 대상 이미지에 복사되고 선택적으로 소스 이미지의 상위에 대한 링크가 있어 스파스성을 보존할 수 있습니다. 소스 이미지는 읽기 전용이며 대상 이미지는 쓸 수 있습니다. 마이그레이션이 진행 중인 동안 대상 이미지가 소스 이미지에 연결됩니다.

새 대상 이미지가 사용 중인 동안 이 프로세스를 백그라운드에서 안전하게 실행할 수 있습니다. 그러나 준비 단계를 수행하기 전에 대상 이미지를 사용하는 모든 클라이언트를 중지하여 이미지를 사용하는 클라이언트가 새 대상 이미지를 가리키도록 업데이트되었는지 확인합니다.

중요

krbd 커널 모듈은 현재 실시간 마이그레이션을 지원하지 않습니다.

사전 요구 사항

  • 소스 이미지를 사용하는 모든 클라이언트를 중지합니다.
  • 클라이언트 노드에 대한 루트 수준 액세스.

절차

  1. 소스 및 대상 이미지를 상호 연결하는 새 대상 이미지를 생성하여 마이그레이션을 준비합니다.

    구문

    rbd migration prepare SOURCE_IMAGE TARGET_IMAGE

    교체:

    • 이동할 이미지 이름이 SOURCE_IMAGE 입니다. POOL/IMAGE_NAME 형식을 사용합니다.
    • 새 이미지 이름으로 TARGET_IMAGE. POOL/IMAGE_NAME 형식을 사용합니다.

    예제

    [root@rbd-client ~]# rbd migration prepare data/source stack/target

  2. 새 대상 이미지의 상태를 확인합니다. 준비 됨:

    구문

    rbd status TARGET_IMAGE

    예제

    [root@rbd-client ~]# rbd status stack/target
    Watchers: none
    Migration:
                source: data/source (5e2cba2f62e)
                destination: stack/target (5e2ed95ed806)
                state: prepared

  3. 선택적으로 새 대상 이미지 이름을 사용하여 클라이언트를 다시 시작합니다.
  4. 대상 이미지에 소스 이미지를 복사합니다.

    구문

    rbd migration execute TARGET_IMAGE

    예제

    [root@rbd-client ~]# rbd migration execute stack/target

  5. 마이그레이션이 완료되었는지 확인합니다.

    예제

    [root@rbd-client ~]# rbd status stack/target
    Watchers:
        watcher=1.2.3.4:0/3695551461 client.123 cookie=123
    Migration:
                source: data/source (5e2cba2f62e)
                destination: stack/target (5e2ed95ed806)
                state: executed

  6. 소스 이미지와 대상 이미지 간의 교차 링크를 제거하여 마이그레이션을 커밋하고 소스 이미지도 제거됩니다.

    구문

    rbd migration commit TARGET_IMAGE

    예제

    [root@rbd-client ~]# rbd migration commit stack/target

    소스 이미지가 하나 이상의 복제본의 상위인 경우 복제 이미지가 사용되지 않도록 한 후 --force 옵션을 사용합니다.

    예제

    [root@rbd-client ~]# rbd migration commit stack/target --force

  7. 준비 단계 후에 클라이언트를 다시 시작하지 않은 경우 새 대상 이미지 이름을 사용하여 클라이언트를 다시 시작합니다.