4.10. Ceph 블록 장치 계층 지정

Ceph는 블록 장치 스냅샷의 많은 COW(Copy-On-Write) 또는 copy-on-read(COR) 복제본을 생성하는 기능을 지원합니다. 스냅샷 계층을 사용하면 Ceph 블록 장치 클라이언트가 이미지를 매우 빠르게 생성할 수 있습니다. 예를 들어 Linux VM이 작성된 블록 장치 이미지를 생성할 수 있습니다. 그런 다음 이미지를 스냅샷을 만들고 스냅샷을 보호하며 원하는 수만큼 복제본을 만듭니다. 스냅샷은 읽기 전용이므로 스냅샷을 복제하면 의미를 간소화하여 복제본을 신속하게 생성할 수 있습니다.

diag 967b328072067089c89ce979bb26daff
참고

상위 및 하위 라는 용어는 Ceph 블록 장치 스냅샷, 상위 및 스냅샷에서 복제된 해당 이미지를 의미합니다. 이러한 용어는 아래의 명령줄 사용에 중요합니다.

복제된 각 이미지인 하위는 상위 이미지에 대한 참조를 저장하므로 복제된 이미지가 상위 스냅샷을 열고 읽을 수 있습니다. 이 참조는 스냅샷의 정보가 완전히 복제 완전히 복사되는 경우 복제본을 병합할 때 제거됩니다.

스냅샷 복제본은 다른 Ceph 블록 장치 이미지와 동일하게 작동합니다. 복제된 이미지의 읽기, 쓰기, 복제, 크기 조정할 수 있습니다. 복제된 이미지에는 특별한 제한이 없습니다. 그러나 스냅샷 복제본은 스냅샷을 참조하므로 복제하기 전에 스냅샷을 보호해야 합니다.

스냅샷 복제본은 COW(Copy-On-Write) 또는 COR(copy-on-read) 복제본일 수 있습니다. COR(Copy-On-Write)을 명시적으로 활성화해야 하는 경우 복제본에 대해 COW(Copy-On-Write)가 항상 활성화됩니다. COW(Copy-On-Write)는 복제 내에서 할당되지 않은 오브젝트에 쓸 때 상위에서 복제본으로 데이터를 복사합니다. COR(Copy-on-read)은 복제본 내의 할당되지 않은 개체에서 읽을 때 상위에서 복제본으로 데이터를 복사합니다. 복제본에서 데이터를 읽는 경우 개체가 복제에 아직 없는 경우에만 상위에서 데이터를 읽습니다. RADOS 블록 장치는 큰 이미지를 여러 오브젝트로 분할합니다. 기본값은 4MB로 설정되고 모든 COW(Copy-On-Write) 및 COR(Copy-on-read) 작업이 전체 개체에서 발생하며 복제본에 1바이트를 작성하면 4MB 개체가 상위에서 읽은 후 이전 COWCOR 작업의 복제본에 아직 존재하지 않는 경우 복제에 기록됩니다.

COR(Copy-on-read)이 활성화되어 있는지 여부에 관계없이 복제본에서 기본 오브젝트를 읽어 충족할 수 없는 모든 읽기는 상위로 다시 라우팅됩니다. 실제로 부모 수에 제한이 없으므로 복제본을 복제할 수 있으므로 이 리라우는 개체가 발견되거나 기본 상위 이미지에 도달할 때까지 계속됩니다. COR(Copy-on-read)이 활성화된 경우 복제본에서 직접 충족하지 못한 모든 읽기는 부모에서 전체 오브젝트를 읽고 복제본에 해당 데이터를 기록하여 나중에 복제본에서 읽을 필요 없이 복제 자체에서 확인할 수 있도록 합니다.

이는 기본적으로 온디맨드 개체 단위 병합 작업입니다. 이는 복제가 다른 지리적 위치에 있는 다른 풀의 부모인 부모로부터 지연 시간이 길어질 때 특히 유용합니다. COR(Copy-on-read)은 읽기의 모호한 대기 시간을 줄입니다. 예를 들어, 복제본에서 1바이트를 읽고 복제본에서 4MB를 읽어야 하므로 처음 몇 개의 읽기 시간이 길어집니다. 그러나 이제 4MB는 부모에서 읽고 복제본에 기록되지만 모든 향후 읽기는 복제 자체에서 제공됩니다.

스냅샷에서 copy-on-read(COR) 복제본을 생성하려면 ceph.conf 파일의 [global] 또는 [client] 섹션에 rbd_clone_copy_on_read = true 를 추가하여 이 기능을 명시적으로 활성화해야 합니다.

추가 리소스

  • 플랫링 에 대한 자세한 내용은 Red Hat Ceph Storage Block Device Gudie복제된 이미지 추가 섹션을 참조하십시오.