3장. PG(배치 그룹)

PG(배치 그룹)는 Ceph 클라이언트에 표시되지 않지만 Ceph Storage 클러스터에서 중요한 역할을 합니다.

Ceph Storage 클러스터에는 엑사바이트 수준의 스토리지 용량에 도달하기 위해 수천 개의 OSD가 필요할 수 있습니다. Ceph 클라이언트는 전체 클러스터의 논리적 하위 집합인 풀에 오브젝트를 저장합니다. 풀에 저장된 개체의 수는 수백만 개 이상의 개체에 쉽게 실행될 수 있습니다. 수백만 개의 개체가 있는 시스템은 개체별로 배치를 현실적으로 추적할 수 없으며 여전히 잘 수행할 수 없습니다. Ceph는 오브젝트를 배치 그룹에 할당하고 OSD에 배치 그룹을 할당하여 동적의 효율성을 다시 분산합니다.

 

컴퓨터 과학의 모든 문제는 너무 많은 간접적인 문제를 제외하고는 다른 수준의 간접으로 해결할 수 있습니다.

 
 -- David Wheeler

3.1. 배치 그룹 정보

풀 내에서 오브젝트별로 개체 배치를 추적하는 것은 규모에 따라 계산으로 비용이 많이 듭니다. 대규모의 고성능을 용이하게 하는 Ceph는 풀을 배치 그룹으로 세분화하고, 각 개별 오브젝트를 배치 그룹에 할당하고, 배치 그룹을 기본 OSD에 할당합니다. OSD가 실패하거나 클러스터를 재조정하는 경우 Ceph는 전체 배치 그룹을 이동하거나 복제할 수 있습니다. 즉, 각 오브젝트를 개별적으로 처리할 필요 없이 배치 그룹의 모든 오브젝트를 이동하거나 복제할 수 있습니다. 이를 통해 Ceph 클러스터의 효율적인 재조정 또는 복구가 가능합니다.

PG 정보

CRUSH가 OSD에 배치 그룹을 할당할 때 일련의 OSD를 계산합니다. osd_pool_default_size 설정은 복제된 풀의 경우 1 을 제외한 것으로, pastsure-coded 풀의 코딩 청크 M 수는 데이터를 영구적으로 손실하지 않고 실패할 수 있는 배치 그룹을 저장하는 OSD 수를 결정합니다. 기본 OSD는 CRUSH를 사용하여 보조 OSD를 식별하고 배치 그룹의 콘텐츠를 보조 OSD에 복사합니다. 예를 들어 CRUSH가 배치 그룹에 오브젝트를 할당하고 OSD 5에 주 OSD로 할당되면 CRUSH에서 OSD 1과 OSD 8이 배치 그룹의 보조 OSD인 경우 기본 OSD 5는 OSD 1 및 8에 데이터를 복사합니다. Ceph는 클라이언트를 대신하여 데이터를 복사하여 클라이언트 인터페이스를 단순화하고 클라이언트 워크로드를 줄입니다. 동일한 프로세스를 통해 Ceph 클러스터가 동적으로 복구 및 재조정할 수 있습니다.

CRUSH Hierarchy

기본 OSD가 실패하고 클러스터에서 표시되면 CRUSH에서 배치 그룹을 다른 OSD에 할당하고 배치 그룹에서 오브젝트 사본을 받습니다. Up 세트 의 다른 OSD는 기본 OSD의 역할을 가정합니다.

오브젝트 복제본 또는 코딩 청크 수를 늘리면 CRUSH는 필요에 따라 각 배치 그룹을 추가 OSD에 할당합니다.

참고

PGS는 OSD를 소유하고 있지 않습니다. CRUSH는 각 OSD 의사에 많은 배치 그룹을 할당하여 데이터가 클러스터 전체에 균등하게 분배되도록 합니다.