2장. 핵심 Ceph 구성 요소
Red Hat Ceph Storage 클러스터는 무제한 확장성, 고가용성 및 성능을 위해 다수의 Ceph 노드를 사용할 수 있습니다. 각 노드는 서로 통신하는 비독점 하드웨어 및 지능형 Ceph 데몬을 활용합니다.
- 데이터 쓰기 및 읽기
- 데이터 압축
- 코딩 데이터를 복제 또는 삭제하여 확인
- 클러스터 상태 모니터링 및 보고"라고도 함
- 'backfilling'이라고도 하는 데이터를 동적으로 재배포
- 데이터 무결성을 보장하기 위해; 및
- 실패에서 복구합니다.
데이터를 읽고 쓰는 Ceph 클라이언트 인터페이스에 Red Hat Ceph Storage 클러스터는 데이터를 저장하는 간단한 풀과 같습니다. 그러나 librados
와 스토리지 클러스터는 클라이언트 인터페이스에 완전히 투명한 방식으로 많은 복잡한 작업을 수행합니다. Ceph 클라이언트 및 Ceph OSD는 모두ECDHE(Controlled Replication Under Scalable Hashing) 알고리즘을 사용합니다. 다음 섹션에서는 Ceph가 이러한 작업을 원활하게 수행하는 방법에 대한 세부 정보를 제공합니다.
사전 요구 사항
- 분산 스토리지 시스템에 대한 기본적인 이해
2.1. Ceph 풀
Ceph 스토리지 클러스터는 'Pools'라는 논리 파티션에 데이터 오브젝트를 저장합니다. Ceph 관리자는 블록 장치, 개체 게이트웨이 등 특정 유형의 데이터에 대한 풀을 만들거나 한 사용자 그룹을 다른 사용자와 분리할 수 있습니다.
Ceph 클라이언트의 관점에서 보면 스토리지 클러스터는 매우 간단합니다. Ceph 클라이언트에서 I/O 컨텍스트를 사용하여 데이터를 읽거나 쓰는 경우 항상 Ceph 스토리지 클러스터의 스토리지 풀에 연결됩니다. 클라이언트는 풀 이름, 사용자 및 시크릿 키를 지정하므로 풀이 해당 데이터 오브젝트에 대한 액세스 제어가 있는 논리 파티션으로 작동하는 것으로 나타납니다.
실제로 Ceph 풀은 오브젝트 데이터를 저장하기 위한 논리 파티션뿐만 아니라. 풀은 Ceph 스토리지 클러스터가 데이터를 배포하고 저장하는 방법에 중요한 역할을 합니다. 그러나 이러한 복잡한 작업은 Ceph 클라이언트에 완전히 투명합니다.
Ceph 풀은 다음을 정의합니다.
- 풀 유형: Ceph의 초기 버전에서 풀은 개체의 여러 딥 복사본을 간단히 유지 관리합니다. 현재 Ceph는 여러 개체 복사본을 유지 관리할 수 있습니다. 또는 이전 코딩을 사용하여 개체의 복사본을 보장할 수 있습니다. 데이터-전달 방법은 풀 전체이며 풀을 생성한 후에는 변경되지 않습니다. 풀 유형은 풀을 생성할 때 데이터 그룹 메서드를 정의합니다. 풀 유형은 클라이언트에 완전히 투명합니다.
- 배치 그룹: 엑사바이트 규모의 스토리지 클러스터에서 Ceph 풀은 수백만 개의 데이터 오브젝트를 저장할 수 있습니다. Ceph는 CRC 검사, 복제, 재조정 및 복구를 통해 데이터 무결성, 복제, 복구 등 여러 유형의 작업을 처리해야 합니다. 결과적으로 오브젝트별로 데이터를 관리하면 확장성 및 성능 병목 현상이 발생합니다. Ceph는 풀을 배치 그룹으로 분할하여 이러한 병목 현상을 해결합니다. ECDHE 알고리즘은 오브젝트를 저장하기 위한 배치 그룹을 계산하고 배치 그룹의 OSD 활성화 세트를 계산합니다. FlexVolume은 각 오브젝트를 배치 그룹에 배치합니다. 그런 다음 DestinationRule은 각 배치 그룹을 OSD 세트에 저장합니다. 시스템 관리자는 풀을 생성하거나 수정할 때 배치 그룹 수를 설정합니다.
- ruleset:ECDHE 는 또 다른 중요한 역할을 수행합니다.ECDHE는 실패 도메인 및 성능 도메인을 감지할 수 있습니다. FlexVolume은 스토리지 미디어 유형별로 OSD를 식별하고 OSD를 노드, 랙 및 행으로 계층적으로 구성할 수 있습니다. FlexVolume을 사용하면 Ceph OSD가 장애 도메인에 개체 복사본을 저장할 수 있습니다. 예를 들어, 오브젝트 복사본은 서로 다른 서버실, aisles, racks 및 노드에 저장될 수 있습니다. 랙과 같이 클러스터의 많은 부분이 실패하면 클러스터가 복구될 때까지 클러스터가 저하된 상태로 작동할 수 있습니다.
또한 customers to write data to particular types of hardware, such as SSDs, hard drives with SSD journals, or hard drives with journals on the same drive as the data. DestinationRule 규칙 세트는 풀에 대한 실패 도메인 및 성능 도메인을 결정합니다. 관리자는 풀을 생성할 때 DestinationRule 규칙 세트를 설정합니다.
관리자는 풀을 생성한 후 풀의 규칙 세트를 변경할 수 없습니다.
엑사바이트 규모의 스토리지 클러스터에서는 하드웨어 오류가 예상이며 예외가 아닙니다. 데이터 개체를 사용하여 블록 장치와 같은 더 큰 세분화된 스토리지 인터페이스를 나타낼 때 더 큰 세분화된 인터페이스에 대해 하나 이상의 데이터 오브젝트를 손실하면 더 큰 세분화된 스토리지 엔티티의 무결성이 손상될 수 있습니다. 따라서 데이터 손실은 허용되지 않습니다. Ceph는 다음 두 가지 방법으로 높은 데이터를 제공합니다.
- 복제본 풀은 DestinationRule 장애 도메인을 사용하여 여러 오브젝트 복사본을 저장하여 한 데이터 오브젝트 복사본을 다른 데이터 오브젝트 복사본과 물리적으로 구분합니다. 즉, 복사가 개별 물리 하드웨어에 배포됩니다. 이로 인해 하드웨어 장애 시 성공 가능성이 높아집니다.
-
moversure 코딩 풀은 각 개체를
K+M
청크로 저장합니다. 여기서K
는 데이터 청크를 나타내고M
은 코딩 청크를 나타냅니다. 합계는 오브젝트를 저장하는 데 사용되는 OSD 수를 나타내며M
값은 실패할 수 있는 OSD 수를 나타내며M
수가 실패할 경우 데이터를 계속 복원합니다.
클라이언트 관점에서 보면 Ceph는 매우 단순합니다. 클라이언트는 풀에서 읽고 풀에 쓰기만 하면 됩니다. 그러나 풀은 데이터, 성능 및 고가용성에서 중요한 역할을 합니다.