3.5. Ceph 클라이언트 데이터 스트리핑
스토리지 장치에는 처리량 제한이 있어 성능 및 확장성에 영향을 미칩니다. 따라서 스토리지 시스템은 종종 스트라이핑을 지원하여 여러 스토리지 장치에 걸쳐 순차적 정보를 저장하여 처리량과 성능을 향상시킵니다. 데이터 스트라이핑의 가장 일반적인 형식은 RAID에서 가져온 것입니다. Ceph의 스트라이핑과 가장 유사한 RAID 유형은 RAID 0 또는 '스트래핑된 볼륨'입니다. Ceph의 스트라이핑은 RAID 0 스트라이핑, n-way RAID 미러링의 안정성 및 빠른 복구 기능을 제공합니다.
Ceph는 Ceph Block Device, Ceph Filesystem, Ceph Object Storage의 세 가지 유형의 클라이언트를 제공합니다. Ceph Client는 해당 데이터를 블록 장치 이미지, RESTful 오브젝트, CephFS 파일 시스템 디렉터리와 같은 표현 형식에서 Ceph Storage 클러스터의 저장을 위해 오브젝트로 변환합니다.
Ceph Storage 클러스터에 저장하는 오브젝트는 제거되지 않습니다. Ceph Object Storage, Ceph Block Device 및 Ceph Filesystem은 여러 Ceph Storage Cluster 오브젝트에서 데이터를 스트라이핑합니다. librados
를 사용하여 Ceph 스토리지 클러스터에 직접 작성하는 Ceph Client는 이러한 이점을 얻기 위해 제거 및 병렬 I/O를 수행해야 합니다.
가장 간단한 Ceph 스트라이핑 형식에는 1개의 오브젝트 스트라이프 수가 포함됩니다. Ceph Client는 오브젝트가 최대 용량에 있을 때까지 스트라이프 단위를 Ceph Storage Cluster 오브젝트에 작성한 다음 데이터 스트라이프를 위한 다른 오브젝트를 생성합니다. 가장 간단한 형태의 스트라이핑은 작은 블록 장치 이미지, S3 또는 Swift 오브젝트에 충분할 수 있습니다. 그러나 이러한 간단한 양식에서는 배치 그룹에 데이터를 배포하는 Ceph의 기능을 최대한 활용하지 못하므로 성능이 크게 향상되지 않습니다. 다음 다이어그램에서는 가장 간단한 스트라이핑 형식을 보여줍니다.

예를 들어 큰 이미지 크기, 큰 S3 또는 Swift 오브젝트를 예상하는 경우 오브젝트 세트 내의 여러 개체에 대한 클라이언트 데이터를 제거함으로써 상당한 읽기/쓰기 성능 향상이 발생할 수 있습니다. 클라이언트가 해당 오브젝트에 스트라이프 단위를 병렬로 쓸 때 상당한 쓰기 성능이 발생합니다. 오브젝트가 다른 배치 그룹에 매핑되고 다른 OSD에 추가로 매핑되므로 각 쓰기는 최대 쓰기 속도에서 병렬로 수행됩니다. 단일 디스크에 대한 쓰기는 검색 당 6ms 및 해당 하나의 장치의 대역폭 (예: 100MB/s)에 의해 제한될 수 있습니다. Ceph는 다른 배치 그룹 및 OSD에 매핑되는 여러 개체에 쓰기를 분산하여 드라이브당 검색 수를 줄이고 여러 드라이브의 처리량을 결합하여 훨씬 더 빠른 쓰기 또는 읽기 속도를 실현할 수 있습니다.
스트리핑은 오브젝트 복제본과 독립적입니다. FlexVolume은 OSD에서 오브젝트를 복제하므로 스트라이프가 자동으로 복제됩니다.
다음 다이어그램에서 클라이언트 데이터는 4개의 오브젝트로 구성된 오브젝트 세트(다음 다이어그램의오브젝트 세트 1
개)에 걸쳐 제거되고, 첫 번째 스트라이프 단위는 오브젝트
0에서 스트라이프 단위 0
이고, 네 번째 스트라이프 단위는 오브젝트
입니다. 네 번째 스트라이프를 작성한 후 클라이언트는 오브젝트 세트가 가득 찼는지 여부를 확인합니다. 오브젝트 세트가 가득 차지 않으면 클라이언트는 첫 번째 오브젝트에 스트라이프 쓰기를 다시 시작하여 다음 다이어그램의 3에서 스트라이프 단위
3오브젝트 0
을 참조하십시오. 오브젝트 세트가 가득 차면 클라이언트는 새 오브젝트 세트를 생성하고 다음 다이어그램에서 오브젝트 세트 2
를 참조하여 첫 번째 스트라이프 단위인 새 오브젝트 세트의 스트라이프 단위 16을 사용하여 다음 다이어그램의 개체 4
를 참조하십시오.

Ceph가 데이터를 스트라이핑하는 방법을 결정하는 중요한 세 가지 변수는 다음과 같습니다.
오브젝트 크기: Ceph Storage 클러스터의 오브젝트에는 2MB 또는 4MB와 같이 구성 가능한 최대 크기가 있습니다. 오브젝트 크기는 많은 스트라이프 단위를 수용할 수 있을 만큼 커야 하며 스트라이프 단위의 여러 개여야 합니다.
중요Red Hat은 최대 16MB를 안전하게 사용할 것을 권장합니다.
- Stripes에는 구성 가능한 단위 크기(예 : 64KB)가 있습니다. Ceph Client는 개체에 쓰는 데이터를 마지막 스트라이프 단위를 제외하고 동일하게 크기의 스트라이프 단위로 나눕니다. 스트라이프 너비는 개체가 많은 스트라이프 단위를 포함할 수 있도록 Object Size의 일부여야 합니다.
- 스트라이프 개수: Ceph 클라이언트는 스트라이프 수에 의해 결정되는 일련의 스트라이프 단위를 기록합니다. 오브젝트 시리즈를 오브젝트 세트라고 합니다. Ceph Client가 오브젝트 세트의 마지막 개체에 기록된 후 오브젝트 세트의 첫 번째 오브젝트로 돌아갑니다.
클러스터를 프로덕션 환경에 배치하기 전에 구성 제거의 성능을 테스트합니다. 데이터를 스트라이핑하고 개체에 기록한 후 이러한 스트리핑 매개변수를 변경할 수 없습니다.
Ceph Client가 스트라이프 단위에 데이터를 제거하고 스트라이프 단위를 개체에 매핑하면 Ceph의ECDHE 알고리즘은 오브젝트를 배치 그룹에 매핑하고 배치 그룹을 스토리지 디스크의 파일로 저장하기 전에 Ceph OSD 데몬에 매핑합니다.
클라이언트는 단일 풀에 쓰기 때문에 개체에 제거된 모든 데이터는 동일한 풀의 배치 그룹에 매핑됩니다. 따라서 동일한ECDHE 맵과 동일한 액세스 제어를 사용합니다.