1장. 개요
Ceph 클라이언트의 관점에서 Ceph 스토리지 클러스터와의 상호 작용은 매우 간단합니다.
- 클러스터에 연결
- 풀 I/O 컨텍스트 생성
이러한 간단한 인터페이스는 Ceph 클라이언트가 정의한 스토리지 전략 중 하나를 선택하는 방법입니다. 스토리지 전략은 모든 Ceph 클라이언트에 표시되지 않지만 스토리지 용량 및 성능을 제공합니다.
아래 다이어그램은 클라이언트에서 Red Hat Ceph Storage 클러스터로 시작하는 논리 데이터 흐름을 보여줍니다.
1.1. 스토리지 전략이란 무엇입니까?
스토리지 전략은 특정 사용 사례에 서비스를 제공하는 데이터를 저장하는 방법입니다. 예를 들어 OpenStack과 같은 클라우드 플랫폼에 볼륨과 이미지를 저장해야 하는 경우 SSD 기반 저널을 사용하여 합리적으로 실행 중인 SAS 드라이브에 데이터를 저장하도록 선택할 수 있습니다. 반대로 S3- 또는 Swift 호환 게이트웨이의 오브젝트 데이터를 저장해야 하는 경우 SATA 드라이브와 같이 더 경제적으로 사용할 수 있습니다. Ceph는 동일한 Ceph 클러스터의 두 시나리오를 수용할 수 있지만 클라우드 플랫폼(예: OpenStack의 Glance 및 Cinder)에 SAS/SSD 스토리지 전략을 제공하고 오브젝트 저장소에 SATA 스토리지를 제공하는 수단이 필요합니다.
스토리지 전략에는 스토리지 미디어(하드 드라이브, SSD 및 나머지), 스토리지 미디어의 성능 및 실패 도메인, 배치 그룹 수 및 풀 인터페이스를 설정하는 CRUSH 맵이 포함됩니다. Ceph는 여러 스토리지 전략을 지원합니다. 사용 사례, 비용/벤치 성능 절충 및 데이터 지속성은 스토리지 전략을 구동하는 주요 고려 사항입니다.
- 사용 사례: Ceph는 대규모 스토리지 용량을 제공하며 다양한 사용 사례를 지원합니다. 예를 들어, Ceph Block Device 클라이언트는 OpenStack과 같은 클라우드 플랫폼의 주요 스토리지 백엔드로서 copy-on-write 복제와 같은 고성능 기능을 갖춘 볼륨 및 이미지에 제한이 없는 스토리지를 제공합니다. 반면 Ceph Object Gateway 클라이언트는 audio,sandbox, 비디오 및 기타 데이터와 같은 개체에 RESTful S3 호환 및 Swift 호환 개체 스토리지를 제공하는 클라우드 플랫폼을 위한 선도적인 스토리지 백엔드입니다.
- 비용/성능의 이점: 빠른 속도가 더 좋습니다. 더 큰 것이 더 좋습니다. 높은 지속성이 더 좋습니다. 그러나 각 초급 품질 및 해당 비용/벤치 거래에 대한 가격이 있습니다. 성능 관점에서 다음 사용 사례를 살펴보십시오. SSD는 비교적 적은 양의 데이터 및 저널링을 위해 매우 빠른 스토리지를 제공할 수 있습니다. 데이터베이스 또는 오브젝트 인덱스를 저장하면 매우 빠른 SSD 풀의 이점을 얻을 수 있지만 다른 데이터에 대해서는 비용이 너무 많이 들 수 있습니다. SSD 저널링을 사용하는 SAS 드라이브는 볼륨과 이미지의 경제적인 가격으로 빠른 성능을 제공합니다. SSD 저널링이 없는 SATA 드라이브는 전체 성능이 낮은 저렴한 스토리지를 제공합니다. OSD의 CRUSH 계층 구조를 생성할 때 사용 사례와 허용 가능한 비용/성능의 절충을 고려해야 합니다.
-
불안정성: 대규모 클러스터에서는 하드웨어 장애도 예외가 아닌 예상입니다. 그러나 데이터 손실 및 서비스 중단은 허용되지 않습니다. 이러한 이유로 데이터 지속성이 매우 중요합니다. Ceph는 개체의 여러 딥 사본 또는 삭제 코딩 및 여러 코딩 청크로 데이터 지속성을 처리합니다. 여러 사본 또는 여러 코딩 청크가 추가 비용/부충을 제공합니다. 복사 또는 코딩 청크를 덜 저장하는 것은 저렴하지만 성능이 저하된 상태에서 서비스 쓰기 요청이 불가능해질 수 있습니다. 일반적으로 두 개의 추가 복사본(즉,
size = 3
) 또는 두 개의 코딩 청크를 가진 하나의 개체로 인해 클러스터가 복구되는 동안 클러스터가 성능이 저하된 상태의 쓰기를 서비스할 수 있습니다. CRUSH 알고리즘은 Ceph가 클러스터 내의 다른 위치에 추가 사본 또는 코딩 청크를 저장하도록 하여 이 프로세스를 지원합니다. 이렇게 하면 단일 스토리지 장치 또는 노드의 장애가 발생하면 데이터 손실을 사전에 제외하는 데 필요한 모든 사본이나 코딩 청크가 손실되지 않습니다.
스토리지 전략에서 사용 사례, 비용/벤치 성능 절충 및 데이터 지속성을 캡처하여 Ceph 클라이언트에 스토리지 풀로 제공할 수 있습니다.
Ceph의 개체 복사 또는 코딩 청크는 RAID를 더 이상 사용하지 않습니다. Ceph는 이미 데이터 지속성을 처리하므로 RAID를 사용하지 마십시오. 성능이 저하된 RAID는 성능에 부정적인 영향을 미치며 RAID를 사용하여 데이터를 복구하는 것은 깊은 복사본 또는 코딩 청크를 사용하는 것보다 훨씬 느립니다.