5.8. Ceph 블록 장치 계층 지정
Ceph는 블록 장치 스냅샷의 여러 COW(Copy-On-Write) 또는 COR(Copy-on-read) 복제본을 생성하는 기능을 지원합니다. 스냅샷 계층 지정을 사용하면 Ceph 블록 장치 클라이언트가 이미지를 매우 빠르게 생성할 수 있습니다. 예를 들어 Linux VM이 작성된 블록 장치 이미지를 생성할 수 있습니다. 그런 다음 이미지를 스냅샷하고 스냅샷을 보호한 후 원하는 만큼 복제본을 생성합니다. 스냅샷은 읽기 전용이므로 스냅샷 복제를 통해 의미 체계를 단순화하여 복제를 빠르게 생성할 수 있습니다.
그림 5.2. Ceph Block 장치 계층 지정

상위 용어와 하위
용어는 Ceph 블록 장치 스냅샷, 상위 및 스냅샷 하위에서 복제된 해당 이미지를 의미합니다. 이러한 용어는 아래의 명령줄 사용에 중요합니다.
각 복제된 이미지인 하위에서는 상위 이미지에 대한 참조를 저장하므로 복제된 이미지에서 상위 스냅샷을 열고 읽을 수 있습니다. 이 참조는 스냅샷의 정보가 복제에 완전히 복사될 때 복제를 병합
할 때 제거됩니다.
스냅샷 복제는 다른 Ceph 블록 장치 이미지와 동일하게 작동합니다. 복제된 이미지를 읽고, 쓰고, 복제하고, 크기를 조정할 수 있습니다. 복제된 이미지에는 특별한 제한 사항이 없습니다. 그러나 스냅샷 복제는 스냅샷을 참조하므로 복제하기 전에 스냅샷을 보호합니다.
스냅샷 복제본은 COW(Copy-On-Write) 또는 COR(Copy-On-read) 복제일 수 있습니다. COW(Copy-On-Write)는 복제본에 대해 항상 활성화되어 있으며 COR(Copy-on-read)을 명시적으로 활성화해야 합니다. COW(Copy-On-Write)는 복제본 내의 할당되지 않은 오브젝트에 쓸 때 부모의 데이터를 복제본에 복사합니다. COR(Copy-On-Read)은 복제본 내의 할당되지 않은 오브젝트에서 읽을 때 부모의 데이터를 복제로 복사합니다. 복제에서 데이터를 읽는 경우 오브젝트가 복제본에 아직 존재하지 않는 경우에만 부모의 데이터를 읽습니다. RADOS 블록 장치는 대규모 이미지를 여러 오브젝트로 나눕니다. 기본값은 4MB로 설정되고 모든 COW(Copy-On-Write) 및 COR(Copy-on-read) 작업이 전체 개체에서 발생하며 복제본에 1바이트를 쓰는 경우 복제에 1바이트를 쓰고 대상 개체가 이전 COW/COR 작업의 복제본에 아직 존재하지 않는 경우 복제에 기록됩니다.
COR(Copy-On-read)을 사용할 수 있는지 여부에 관계없이 복제에서 기본 개체를 읽고 충족할 수 없는 모든 읽기가 부모로 다시 라우팅됩니다. 부모의 수에 제한이 없기 때문에 복제를 복제 할 수 있습니다.이 reroute는 개체를 발견하거나 기본 상위 이미지에 도달할 때까지 계속됩니다. COR(Copy-On-read)이 활성화된 경우 복제에서 직접 충족하지 못하는 읽기를 통해 상위에서 전체 오브젝트를 읽고 복제에 해당 데이터를 복제하여 상위에서 읽을 필요 없이 복제 자체에서 동일한 범위를 읽을 수 있습니다.
이는 기본적으로 필요에 따라 개체별 개체 flatten 작업입니다. 이 기능은 복제본이 다른 지리적 위치에 있는 다른 풀의 부모인 상위 연결보다 대기 시간이 긴 연결에 있는 경우에 특히 유용합니다. COR(Copy-On-Read)은 읽기의 모호한 대기 시간을 줄입니다. 처음 몇 개의 읽기는 상위에서 추가 데이터를 읽을 수 있으므로 대기 시간이 길지만 복제에서 1바이트를 읽을 수 있지만 이제 4MB를 부모에서 읽고 복제에 쓸 수 있지만 향후 모든 읽기는 복제 자체에서 제공됩니다.
스냅샷에서 COR(Copy-on-read) 복제를 생성하려면 ceph.conf
파일의 rbd_clone_copy_on_read = true
를 추가하여 이 기능을 명시적으로 활성화해야 합니다.
추가 리소스
-
flattening
에 대한 자세한 내용은 Red Hat Ceph Storage Block Device Gudie 의 복제된 이미지 섹션을 참조하십시오.