2.3. Ceph 배치 그룹


클러스터에 수백만 개의 오브젝트를 저장하고 개별적으로 관리하는 것은 리소스 집약적입니다. 따라서 Ceph는 배치 그룹(PG)을 사용하여 많은 오브젝트의 효율성을 보다 효율적으로 관리할 수 있습니다.

PG는 오브젝트 컬렉션을 포함하는 데 사용되는 풀의 하위 집합입니다. Ceph shard는 풀을 일련의 PG로 분할합니다. 그런 다음ECDHE 알고리즘은 클러스터 맵과 클러스터의 상태를 고려하여 PG를 균등하게 배포하고 클러스터의 OSD에 의사 무작위로 배포합니다.

이것이 작동하는 방법입니다.

시스템 관리자가 풀을 생성할 때 DestinationRule은 풀에 대해 사용자 정의 개수의 PG를 생성합니다. 일반적으로 PG의 수는 데이터의 상당히 세밀한 하위 집합이어야 합니다. 예를 들어, 풀당 OSD당 100개의 PG는 각 PG에 풀 데이터의 약 1%가 포함되어 있음을 의미합니다.

Ceph에서 하나의 OSD에서 다른 OSD로 PG를 이동해야 하는 경우 PG 수는 성능에 영향을 미칩니다. 풀에 PG가 너무 적으면 Ceph는 대량의 데이터를 동시에 이동하고 네트워크 로드가 클러스터 성능에 부정적인 영향을 미칩니다. 풀에 PG가 너무 많으면 Ceph는 데이터의 작은 백분율을 이동하면 너무 많은 CPU와 RAM을 사용하므로 클러스터 성능에 부정적인 영향을 미칩니다. 최적의 성능을 얻기 위해 PG 수를 계산하는 방법에 대한 자세한 내용은 배치 그룹 수 를 참조하십시오.

Ceph는 개체 복제본을 저장하거나 개체의 dissure 코드 청크를 저장하여 데이터 손실에 대비합니다. Ceph는 PGs 내에 오브젝트의 객체 또는 삭제 코드 청크를 저장하므로 Ceph는 개체의 각 사본에 대해 "Acting Set"이라는 OSD 세트에 각 PG를 복제합니다. 시스템 관리자는 풀의 PG 수와 복제본 또는 시간대 코드 청크 수를 결정할 수 있습니다. 그러나ECDHE 알고리즘은 특정 PG에 대한 동작 세트에 있는 OSD를 계산합니다.

ECDHE 알고리즘 및 PG는 Ceph를 동적으로 만듭니다. 클러스터 맵 또는 클러스터 상태를 변경하면 Ceph가 하나의 OSD에서 다른 OSD로 PG를 자동으로 이동할 수 있습니다.

다음은 몇 가지 예입니다.

  • 클러스터 확장: 새 호스트 및 해당 OSD를 클러스터에 추가하면 클러스터 맵이 변경됩니다. evenly 및 pseudo-randomly는 클러스터 전체에서 OSD에 PG를 배포하므로 새 호스트 및 해당 OSD를 추가하면 DestinationRule 풀의 배치 그룹 중 일부를 새 OSD에 다시 할당합니다. 즉, 시스템 관리자가 수동으로 클러스터를 재조정할 필요가 없습니다. 또한 새 OSD에는 다른 OSD와 거의 동일한 양의 데이터가 포함됩니다. 또한 새로운 OSD에는 새로 작성된 OSD가 포함되어 있지 않으므로 클러스터에서 "hot spots"가 발생하지 않습니다.
  • OSD 불일치: OSD가 실패하면 클러스터 상태가 변경됩니다. Ceph는 복제본 또는 dissure 코드 청크 중 하나를 일시적으로 손실하고 다른 복사본을 만들어야 합니다. act set의 기본 OSD가 실패하면 acting 세트의 다음 OSD가 기본으로 되어 추가 복사 또는 세로포 코드 청크를 저장할 새 OSD를 계산합니다.

수백 ~ 수천 개의 PG와 관련하여 수백만 개의 오브젝트를 관리함으로써 Ceph 스토리지 클러스터는 효율적으로 증가, 축소 및 복구할 수 있습니다.

Ceph 클라이언트의 경우 librados 를 통한ECDHE 알고리즘을 사용하면 오브젝트를 읽고 쓰는 프로세스를 매우 간단하게 수행할 수 있습니다. Ceph 클라이언트는 단순히 풀에 오브젝트를 쓰거나 풀에서 오브젝트를 읽습니다. 동작 세트의 기본 OSD는 Ceph 클라이언트를 대신하여 작동 중인 노드의 보조 OSD에 오브젝트 또는 dissure 코드 청크의 복제본을 작성할 수 있습니다.

클러스터 맵 또는 클러스터 상태가 변경되면 PG를 저장하는 OSD 계산도 변경됩니다. 예를 들어 Ceph 클라이언트는 풀 표시줄에 foo 오브젝트를 쓸 수 있습니다. DestinationRule은 PG 1.a 에 오브젝트를 할당하고 OSD 5 에 저장하여 OSD 10OSD 15 에 각각 복제본을 만듭니다. OSD 5 가 실패하면 클러스터 상태가 변경됩니다. Ceph 클라이언트가 풀 표시줄에서 foo 오브젝트를 읽는 경우 librados 를 통해 클라이언트는 새 기본 OSD로 OSD 10 에서 자동으로 해당 오브젝트를 검색합니다.

librados 를 통한 Ceph 클라이언트는 오브젝트를 작성하고 읽을 때 작동 중인 기본 OSD에 직접 연결됩니다. I/O 작업에서는 중앙 집중식 브로커를 사용하지 않으므로 네트워크 초과 구독은 일반적으로 Ceph에 문제가되지 않습니다.

다음 다이어그램에서는 개체를 PG에 할당하고 PG를 OSD에 할당하는 방법을 보여줍니다. act set의 각 OSD가 별도의 장애 도메인에 있고 일반적으로 OSD가 별도의 서버 호스트에 있고 종종 별도의 랙에 있을 수 있도록 FlexVolume 알고리즘에서 PG를 OSD에 할당합니다.

배치 그룹
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.