10.4. Kafka 스토리지 구성
Apache Kafka의 스트림은 다른 Kafka 스토리지 옵션을 지원합니다. 다음 기본 유형 중에서 선택할 수 있습니다.
- 임시 스토리지
- 임시 스토리지는 임시 스토리지이며 Pod가 실행되는 동안만 지속됩니다. Pod가 삭제되면 데이터가 손실되지만 고가용성 환경에서 데이터를 복구할 수 있습니다. 일시적인 특성으로 인해 임시 스토리지는 개발 및 테스트 환경에만 권장됩니다.
- 영구 스토리지
- 영구 스토리지는 Pod를 재시작하고 시스템 중단에 걸쳐 데이터를 유지하므로 프로덕션 환경에 이상적입니다.
JBOD(디스크 Bunch of Disks) 스토리지를 사용하면 여러 디스크 또는 볼륨을 임시 스토리지 또는 영구 스토리지로 사용하도록 Kafka 클러스터를 구성할 수 있습니다.
JBOD 스토리지(여러 볼륨)
JBOD 스토리지를 지정할 때 각 디스크에 임시 볼륨 또는 영구 볼륨을 계속 사용해야 합니다. 하나의 볼륨으로만 시작하더라도 JBOD를 사용하면 필요에 따라 볼륨을 더 추가하여 나중에 확장할 수 있으므로 항상 권장됩니다.
영구, 임시 및 JBOD 스토리지 유형은 Kafka 클러스터를 배포한 후에는 변경할 수 없습니다. 그러나 JBOD 스토리지에서 다양한 유형의 볼륨을 추가하거나 제거할 수 있습니다. 새 스토리지 사양을 사용하여 노드 풀을 생성하고 마이그레이션할 수도 있습니다.
계층화된 스토리지(고급)
계층화된 스토리지는 다양한 성능 및 비용 특성과 다양한 스토리지 유형을 결합하여 Kafka 데이터를 관리할 수 있는 유연성을 제공합니다. Kafka는 이전 데이터를 더 저렴한 장기 스토리지(예: 오브젝트 스토리지)로 오프로드하는 동시에 더 빠르고 비용이 많이 드는 스토리지(예: 블록 스토리지)에서 최근 자주 액세스하는 데이터를 유지할 수 있습니다.
계층화된 스토리지는 애드온 기능입니다. Kafka 노드의 스토리지(임시, 영구 또는 JBOD)를 구성한 후 클러스터 수준에서 계층화된 스토리지를 구성하고 remote.storage.enable 주제 수준 구성을 사용하여 특정 항목에 대해 활성화할 수 있습니다.
10.4.1. 스토리지 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
Apache Kafka가 효과적으로 작동하는 데는 효율적인 데이터 스토리지가 필요합니다. Apache Kafka의 스트림은 Kafka 브로커의 기본 스토리지 유형으로 블록 스토리지로 테스트되었으며 블록 스토리지를 강력하게 권장합니다. 파일 시스템 기반 스토리지(예: NFS)는 기본 브로커 스토리지에서 작동하지 않으며 안정성 또는 성능 문제가 발생할 수 있습니다.
OpenShift에서 지원하는 일반적인 블록 스토리지 유형은 다음과 같습니다.
클라우드 기반 블록 스토리지 솔루션:
- Amazon EBS (AWS용)
- Azure Disk Storage(Microsoft Azure용)
- 영구 디스크(Google Cloud용)
- 로컬 영구 볼륨을 사용하는 영구 스토리지( bare metal 배포용)
- 파이버 채널 또는 iSCSI와 같은 프로토콜에서 액세스하는 SAN(Storage Area Network) 볼륨
Apache Kafka의 스트림에는 OpenShift 원시 블록 볼륨이 필요하지 않습니다.
10.4.1.1. 파일 시스템 링크 복사링크가 클립보드에 복사되었습니다!
Kafka는 메시지를 저장하기 위해 파일 시스템을 사용합니다. Apache Kafka의 스트림은 Kafka와 함께 일반적으로 사용되는 XFS 및 ext4 파일 시스템과 호환됩니다. 파일 시스템을 선택하고 설정할 때 배포의 기본 아키텍처 및 요구 사항을 고려하십시오.
자세한 내용은 Kafka 문서 의 파일 시스템 선택을 참조하십시오.
10.4.1.2. 계층화된 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
Kafka의 계층화된 스토리지 기능은 선택적 기능으로 Apache Kafka용 Streams에서 지원됩니다.
계층화된 스토리지가 활성화된 경우:
- 영구 볼륨 또는 JBOD와 같은 기본 브로커 스토리지에서는 최근 데이터를 처리합니다.
- 오브젝트 스토리지와 같은 원격 계층 스토리지가 기록 데이터에 사용됩니다.
Apache Kafka의 스트림을 사용하면 계층화된 자체 스토리지 플러그인을 통합하여 특정 원격 스토리지 백엔드를 지원할 수 있습니다. 사용자 지정 플러그인을 사용하는 경우 프로덕션에 배포하기 전에 성능 및 호환성 요구 사항을 충족하는지 확인합니다.
10.4.1.3. 디스크 사용량 링크 복사링크가 클립보드에 복사되었습니다!
SSD(Solid-State Drive)는 필수는 아니지만 여러 주제로 데이터를 보내고 비동기적으로 수신하는 대규모 클러스터에서 Kafka의 성능을 향상시킬 수 있습니다.
Kafka에서 기본 제공 데이터 복제를 제공하므로 복제된 스토리지가 필요하지 않습니다.