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