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