Erasure Code K & M 숫자를 선택하는 방법은?
소실 코드 작동 방식:
Ceph 지우기 코드 매개변수 K & M은 사용 가능한 용량 효율성과 하드웨어 고장에 대한 중복성을 포함합니다. K는 데이터 청크의 수이고 M은 코딩 청크의 수입니다. 클라이언트가 Ceph 스토리지 클러스터에 데이터 객체를 작성할 때, 데이터 객체는 K개의 동일한 크기의 데이터 청크로 분할됩니다. Ceph는 데이터 청크를 사용하여 하드웨어가 실패할 때 손실된 데이터 청크를 계산하는 데 사용될 M 개의 코딩 청크를 인코딩합니다.
데이터 청크와 코드 청크는 K+M으로 지정된 실패 도메인에 분배되고 저장됩니다. 손실될 수 있는 최대 데이터 청크 수는 M 실패 도메인입니다. 사용 가능한 실패 도메인은 물리적 인프라 내에서 스토리지 서버가 어떻게 할당되는지에 따라 달라집니다. 소규모 Ceph 클러스터의 경우 실패는 디스크 또는 서버 호스트일 수 있습니다. 대규모 클러스터의 실패 도메인은 서버 랙, 서버실 또는 데이터 센터 등이 될 수 있습니다.
클라이언트가 데이터를 읽고자 할 때 데이터 청크에서 데이터 객체가 재구성됩니다.
저장 성능
Ceph 데이터 복제 알고리즘과 비교할 때, 에러 정정 코딩은 일반적으로 더 나은 사용 가능한 공간 효율성을 가지고 있습니다. 에러 코드는 데이터 I/O를 완료하기 위해 더 많은 디스크 I/O 작업을 사용하므로 IOPS를 요구하는 작업에 덜 친숙합니다. K+M의 수가 클수록 I/O 작업은 더 많은 디스크 IOPS 자원을 소모합니다.
더 큰 K와 더 작은 M을 사용할 때, Ceph 클러스터 네트워크에서 전송되는 데이터의 총 바이트 수가 줄어듭니다. 이는 대용량 데이터 객체의 I/O 처리 성능을 향상시킬 수 있습니다.
공간 효율성
소거 코드 풀의 사용 가능한 공간 효율성은 K/(K+M)과 같습니다. 예를 들어, K=4, M=2인 소거 코드 풀의 공간 효율성은 4/6 = 66.7%입니다. 이는 동일한 수준의 하드웨어 중복성을 가진 복제 3 풀보다 두 배 더 효율적이며, 더 높은 IOPS 성능을 제공합니다.
합리적인 K는 사용 가능한 공간 효율성 때문에 M보다 큽니다. 더 큰 (K-M) 삭제 코드는 더 나은 공간 효율성을 얻습니다.
서버 호스트 수
K+M의 수는 클러스터에서 필요한 호스트 수 또는 더 큰 실패 도메인을 결정합니다.
- 전형적인 삭제 코드 풀은 모든 EC 청크를 완전히 분배하기 위해 최소 K+M 서버 호스트가 필요합니다.
- 고급 삭제 코드 구성은 실패 도메인당 여러 EC 청크를 저장할 수 있게 합니다. 이 구성은 EC 청크를 분배하는 데 필요한 서버 수를 줄입니다.
삭제 코드 K & M의 영향 요약:
- M은 중복 실패 도메인의 수를 결정합니다.
- 더 큰 K + M은 클라이언트의 작은 객체 IOPS 성능을 감소시키지만 더 큰 객체의 처리량을 향상시킵니다.
- 저장 공간 효율성 = K/(K+M)
- 필요한 최소 서버 수.