3.3. 배치 그룹 tradeoffs


모든 OSD 간에 데이터 및 데이터 배포는 더 많은 배치 그룹을 요구하지만 CPU 및 메모리 리소스를 절약하기 위해 최대 성능을 위해 필요한 최소 수로 줄여야 합니다.

3.3.1. 데이터

Ceph는 영구 데이터 손실을 방지하기 위해 노력합니다. 그러나 OSD에 오류가 발생하면 기존 데이터가 완전히 복구될 때까지 영구 데이터 손실 위험이 증가합니다. 영구 데이터 손실은 드물지만 여전히 가능합니다. 다음 시나리오에서는 Ceph가 세 개의 데이터 사본이 있는 단일 배치 그룹에서 데이터를 영구적으로 손실할 수 있는 방법을 설명합니다.

  • OSD가 실패하고 포함된 오브젝트의 모든 복사본이 손실됩니다. OSD에 저장된 배치 그룹 내의 모든 오브젝트의 경우 복제본 수는 3개에서 2개로 떨어집니다.
  • 새 OSD를 선택하여 각 배치 그룹에 대해 모든 개체의 세 번째 복사본을 다시 만들어 실패한 OSD에 저장된 각 배치 그룹에 대해 복구를 시작합니다.
  • 새 OSD를 세 번째 사본으로 완전히 채우기 전에 동일한 배치 그룹의 사본을 포함하는 두 번째 OSD는 실패합니다. 그러면 일부 오브젝트에는 남은 사본이 하나만 있습니다.
  • Ceph는 또 다른 OSD를 선택하고 오브젝트를 복사하여 원하는 개수의 복사본을 복원합니다.
  • 복구 완료 전에 동일한 배치 그룹의 사본을 포함하는 세 번째 OSD 이 OSD에 개체의 나머지 사본만 포함된 경우 오브젝트가 영구적으로 손실됩니다.

하드웨어 오류도 예외가 아니라 예상입니다. 상장된 시나리오를 방지하기 위해, 이상적으로 복구 프로세스는 가능한 한 신속하게 실행해야합니다. 클러스터 크기, 하드웨어 구성 및 배치 그룹 수는 전체 복구 시간에 중요한 역할을 합니다.

소규모 클러스터는 빠르게 복구되지 않습니다.

3개의 복제본 풀에 512개의 배치 그룹이 있는 OSD 10개가 포함된 클러스터에서 DestinationRule은 각 배치 그룹에 3개의 OSD를 제공합니다. 각 OSD는 호스팅 (512 * 3) / 10 = ~150 배치 그룹이 됩니다. 첫 번째 OSD가 실패하면 150개의 모든 배치 그룹에 대해 클러스터가 동시에 복구를 시작합니다.

Ceph는 나머지 9개의 OSD에서 나머지 150개의 배치 그룹을 무작위로 저장할 수 있습니다. 따라서 나머지 각 OSD는 다른 모든 OSD에 오브젝트 사본을 보낼 수 있으며, 나머지 OSD는 현재 할당된 150개의 배치 그룹 중 일부에 대한 책임이 있기 때문에 새 오브젝트도 수신할 수 있습니다.

총 복구 시간은 풀을 지원하는 하드웨어에 따라 다릅니다. 예를 들어 10개의 OSD 클러스터에서 호스트에 1TB SSD가 있는 하나의 OSD가 있고 10GB/s 스위치가 10개의 호스트 각각을 연결하는 경우 복구 시간이 M 분 정도 걸립니다. 반면 호스트에 두 개의 SATA OSD가 있고 1GB/s 스위치가 5개의 호스트를 연결하는 경우 복구 시간이 훨씬 더 오래 걸립니다. 이 크기의 클러스터에서는 배치 그룹의 수가 데이터에 거의 영향을 미치지 않습니다. 배치 그룹 수는 128 또는 8192일 수 있으며 복구 속도가 느릴 수 없습니다.

그러나 10개의 OSD 대신 동일한 Ceph 클러스터를 20개의 OSD로 늘리면 복구 속도를 높이고 데이터 성능을 크게 향상시킬 수 있습니다. 이유가 무엇입니까? 각 OSD는 이제 150개 대신 75개의 배치 그룹에만 참여합니다. 20개의 OSD 클러스터에는 복구하기 위해 동일한 양의 복사 작업을 수행하려면 여전히 19개의 나머지 OSD가 필요합니다. 10개의 OSD 클러스터에서 각 OSD는 약 100GB를 복사해야 했습니다. 20개의 OSD 클러스터에서 각 OSD는 각각 50GB만 복사해야 합니다. 네트워크가 병목 현상인 경우 복구가 두 배 빠르게 수행됩니다. 즉, OSD 수가 증가함에 따라 복구 시간이 감소합니다.

대규모 클러스터에서 PG 수가 중요합니다.

예시적인 클러스터가 40개의 OSD로 증가하면 각 OSD는 35개의 배치 그룹만 호스팅합니다. OSD가 종료되면 다른 병목 현상이 발생하지 않는 한 복구 시간이 줄어듭니다. 그러나 이 클러스터가 200개의 OSD로 증가하면 각 OSD는 약 7개의 배치 그룹만 호스팅합니다. OSD가 종료되면 대부분의 21 (7 * 3) OSD에서 복구가 수행됩니다. OSD 가 40개 이상인 경우 복구에 시간이 오래 걸립니다. 즉, 배치 그룹 수가 증가해야 합니다.

중요

복구 시간이 얼마나 짧더라도 복구가 진행되는 동안 배치 그룹을 저장하는 다른 OSD가 실패할 가능성이 있습니다.

위에서 설명한 10개의 OSD 클러스터에서는 OSD가 실패하는 경우 약 8개의 배치 그룹(즉, 75 pgs / 9 osds 가 복구됨)에 남아 있는 사본만 있습니다. 남아 있는 8개의 OSD 중 하나라도 실패하면 하나의 배치 그룹의 마지막 오브젝트가 손실될 수 있습니다(즉, 남은 사본이 한 개만 있는 8 pgs / 8 osds ). 따라서 다소 큰 클러스터로 시작하는 것이 좋습니다(예: 50개의 OSD).

클러스터 크기가 20개의 OSD로 증가하면 3개의 OSD가 손실되어 발생한 배치 그룹 수가 감소합니다. 손실된 두 번째 OSD는 약 2개(즉, 35개의 pgs / 19 osds 가 복구됨) 대신 성능이 저하되고 세 번째 OSD는 보존된 사본이 포함된 두 개의 OSD 중 하나인 경우에만 데이터가 손실됩니다. 즉, 복구 기간 동안 하나의 OSD를 손실할 가능성이 0.0001% 인 경우 OSD 10개가 있는 클러스터의 8 * 0.0001% 에서 20 개의 OSD가 있는 클러스터에서 0.0001% 로 이동합니다. 512 또는 4096 배치 그룹이 있으면 데이터와 관련된 한 50개 미만의 OSD가 있는 클러스터에서 거의 동일합니다.

작은 정보

간단히 말해, 더 많은 OSD를 사용하면 복구 속도가 빨라지고 단계적 실패 위험이 감소하여 배치 그룹과 해당 오브젝트가 영구적으로 손실될 수 있습니다.

OSD를 클러스터에 추가하면 새 OSD를 배치 그룹 및 오브젝트로 채우는 데 시간이 오래 걸릴 수 있습니다. 그러나 개체의 저하는 없으며 OSD를 추가하면 데이터에 영향을 미치지 않습니다.

3.3.2. 데이터 배포

Ceph는 핫스팟(즉, 일부 OSD)은 다른 OSD보다 훨씬 더 많은 트래픽을 수신합니다. 이상적으로는 배치 그룹이 OSD에 할당될 때(또한 의사 무작위로) 배치 그룹에 개체를 할당하는 것이 좋습니다. 기본 OSD는 클러스터 전체에 균등하게 분산되도록 오브젝트를 저장하고 데이터 배포로 인해 네트워크 초과 문제가 발생할 수 없습니다.

FlexVolume은 각 개체의 배치 그룹을 계산하지만 이 배치 그룹 내의 각 OSD에 저장된 데이터 양을 알 수 없으므로 배치 그룹 수와 OSD 수 간의 비율은 데이터 배포에 크게 영향을 미칠 수 있습니다.

예를 들어 복제본 풀에 10개의 OSD가 있는 배치 그룹만 있는 경우 Ceph는 다른 선택 사항이 없기 때문에 OSD 3개만 사용하여 데이터를 저장합니다. 더 많은 배치 그룹을 사용할 수 있는 경우ECDHE은 OSD 전체에 개체를 균등하게 분배할 수 있습니다. 또한 DestinationRule은 OSD에 배치 그룹을 균등하게 할당합니다.

OSD보다 배치 그룹이 하나 또는 두 개 이상인 한 두 개의 순서가 있어야 합니다. 예를 들어 OSD 3개를 위한 256개의 배치 그룹, 10개의 OSD용 512 또는 1024 배치 그룹 등이 있습니다.

OSD와 배치 그룹의 비율은 일반적으로 오브젝트 스트라이핑과 같은 고급 기능을 구현하는 Ceph 클라이언트에 대한 짝수 없는 데이터 배포 문제를 해결합니다. 예를 들어 4TB 블록 장치는 최대 4MB의 오브젝트를 분할할 수 있습니다.

OSD와 배치 그룹 간의 비율은 다른 경우에는 개체 크기를 고려하지 않기 때문에 짝수 데이터 배포를 처리하지 않습니다. librados 인터페이스를 사용하여 일부 상대적으로 작은 오브젝트를 저장하고 일부 매우 큰 오브젝트를 사용하면 데이터가 균등하게 배포될 수 있습니다. 예를 들어 총 4GB의 1억 4K 개체는 10개의 OSD에서 1000개의 배치 그룹에 균등하게 분배됩니다. 각 OSD에서 4GB/10 = 400MB 를 사용합니다. 400MB 오브젝트가 풀에 추가되는 경우 오브젝트가 배치된 배치 그룹을 지원하는 3개의 OSD는 400MB + 400MB = 800MB 로 채워지며 나머지 7개의 OSD는 400MB로만 사용됩니다.

3.3.3. 리소스 사용량

각 배치 그룹의 경우 OSD 및 Ceph 모니터에는 항상 메모리, 네트워크 및 CPU가 필요하며 복구 중에도 더 많이 필요합니다. 배치 그룹 내에서 오브젝트를 클러스터링하여 이 오버헤드를 공유하는 것은 배치 그룹이 존재하는 주요 이유 중 하나입니다.

배치 그룹 수를 최소화하면 상당한 양의 리소스를 절약할 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat