3장. 배치 그룹
배치 그룹(PG)은 Ceph 클라이언트에 표시되지 않지만 Ceph Storage 클러스터에서 중요한 역할을 합니다.
Ceph 스토리지 클러스터에는 대량의 스토리지 용량에 도달하기 위해 수천 개의 OSD가 필요할 수 있습니다. Ceph 클라이언트는 전체 클러스터의 논리적 하위 집합인 풀에 오브젝트를 저장합니다. 풀에 저장된 오브젝트 수는 수백만 개 이상으로 쉽게 실행될 수 있습니다. 수백만 개의 객체가 있는 시스템은 개체별로 배치를 순차적으로 추적하고 여전히 잘 수행할 수 없습니다. Ceph는 개체를 배치 그룹에 할당하고 배치 그룹을 OSD에 할당하여 동적이고 효율적입니다.
컴퓨터 과학의 모든 문제는 물론 너무 많은 간접 문제의 문제를 제외하고는 다른 수준의 진행으로 해결할 수 있습니다. | ||
-- David Wheeler |
3.1. 배치 그룹 정보
풀 내의 개체별로 개체 배치를 추적하는 것은 규모에 따라 계산적으로 비용이 많이 듭니다. 대규모 성능 향상을 위해 Ceph는 풀을 배치 그룹으로 분할하고, 각 개별 오브젝트를 배치 그룹에 할당하고, 배치 그룹을 기본 OSD에 할당합니다. OSD가 실패하거나 클러스터가 재조정되면 Ceph는 각 오브젝트를 개별적으로 처리할 필요 없이 전체 배치 그룹(즉, 배치 그룹의 모든 오브젝트)을 이동하거나 복제할 수 있습니다. 이를 통해 Ceph 클러스터를 재조정하거나 효율적으로 복구할 수 있습니다.

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

기본 OSD가 실패하고 클러스터에 표시되지 않으면 CRUSH에서 배치 그룹을 다른 OSD에 할당합니다. 이 경우 배치 그룹의 오브젝트 복사본이 수신됩니다. Up Set
의 다른 OSD는 기본 OSD 역할을 가정합니다.
오브젝트 복제본 수 또는 코딩 청크 수를 늘리면 CRUSH가 필요에 따라 각 배치 그룹을 추가 OSD에 할당합니다.
PGS는 OSD를 소유하고 있지 않습니다. CRUSH는 클러스터 전체에서 데이터가 균등하게 분배되도록 각 OSD에 많은 배치 그룹을 무작위로 할당합니다.