TR-4947: NetApp NFS 스토리지를 사용한 Apache Kafka 워크로드 - 기능 검증 및 성능
Shantanu Chakole, Karthikeyan Nagalingam 및 Joe Scott, NetApp
카프카는 대량의 메시지 데이터를 수용할 수 있는 강력한 큐를 갖춘 분산형 게시-구독 메시징 시스템입니다. Kafka를 사용하면 애플리케이션이 매우 빠르게 주제에 데이터를 쓰고 읽을 수 있습니다. Kafka는 내결함성과 확장성이 뛰어나서 빅데이터 분야에서 많은 데이터 스트림을 매우 빠르게 수집하고 이동하는 안정적인 방법으로 자주 사용됩니다. 사용 사례로는 스트림 처리, 웹사이트 활동 추적, 메트릭 수집 및 모니터링, 로그 집계, 실시간 분석 등이 있습니다.
NFS에서 일반적인 Kafka 작업은 잘 작동하지만, NFS에서 실행되는 Kafka 클러스터의 크기를 조정하거나 다시 분할하는 동안 어리석은 이름 바꾸기 문제로 인해 애플리케이션이 충돌합니다. 이는 부하 분산이나 유지 관리를 위해 카프카 클러스터의 크기를 조정하거나 다시 분할해야 하기 때문에 중요한 문제입니다. 추가 세부 정보를 찾을 수 있습니다 "여기" .
이 문서에서는 다음 주제에 대해 설명합니다.
-
어리석은 이름 바꾸기 문제와 솔루션 검증
-
I/O 대기 시간을 줄이기 위해 CPU 사용률을 줄이세요
-
더 빠른 Kafka 브로커 복구 시간
-
클라우드 및 온프레미스에서의 성능
Kafka 워크로드에 NFS 스토리지를 사용하는 이유는 무엇입니까?
프로덕션 애플리케이션의 Kafka 워크로드는 애플리케이션 간에 엄청난 양의 데이터를 스트리밍할 수 있습니다. 이 데이터는 Kafka 클러스터의 Kafka 브로커 노드에 보관되고 저장됩니다. 카프카는 가용성과 병렬 처리로도 유명한데, 이는 주제를 파티션으로 나누고 해당 파티션을 클러스터 전체에 복제함으로써 달성됩니다. 결국 이는 카프카 클러스터를 통과하는 엄청난 양의 데이터 크기가 일반적으로 몇 배로 증가한다는 것을 의미합니다. NFS를 사용하면 브로커 수가 변경되어도 데이터를 매우 빠르고 쉽게 재조정할 수 있습니다. 대규모 환경에서 브로커 수가 변경될 때 DAS 전체에서 데이터를 재조정하는 작업은 매우 많은 시간이 소요되며, 대부분의 Kafka 환경에서는 브로커 수가 자주 변경됩니다.
기타 혜택은 다음과 같습니다.
-
성숙함. NFS는 성숙한 프로토콜이므로 구현, 보안 및 사용의 대부분 측면이 잘 이해되어 있습니다.
-
열려 있는. NFS는 개방형 프로토콜이며, 무료 개방형 네트워크 프로토콜로서 지속적인 개발이 인터넷 사양에 문서화되어 있습니다.
-
비용 효율적입니다. NFS는 기존 네트워크 인프라를 활용하기 때문에 설정이 쉬운 저비용 네트워크 파일 공유 솔루션입니다.
-
중앙에서 관리됨. NFS를 중앙에서 관리하면 개별 사용자 시스템에서 추가 소프트웨어와 디스크 공간에 대한 필요성이 줄어듭니다.
-
분배됨. NFS는 분산 파일 시스템으로 사용할 수 있으므로 이동식 미디어 저장 장치의 필요성이 줄어듭니다.
Kafka 워크로드에 NetApp 하는 이유는 무엇입니까?
NetApp NFS 구현은 프로토콜에 대한 황금 표준으로 간주되며 수많은 기업 NAS 환경에서 사용됩니다. NetApp 의 신뢰성 외에도 다음과 같은 이점이 있습니다.
-
신뢰성과 효율성
-
확장성 및 성능
-
고가용성( NetApp ONTAP 클러스터의 HA 파트너)
-
데이터 보호
-
재해 복구(NetApp SnapMirror). 사이트가 다운되거나 다른 사이트에서 바로 시작해서 중단했던 부분부터 계속하고 싶은 경우.
-
스토리지 시스템의 관리 용이성( NetApp OnCommand 사용한 관리 및 운영).
-
부하 분산. 클러스터를 사용하면 다양한 노드에 호스팅된 데이터 LIF에서 다양한 볼륨에 액세스할 수 있습니다.
-
중단 없는 운영. LIF 또는 볼륨 이동은 NFS 클라이언트에 투명하게 처리됩니다.
-