Confluent 검증
NetApp StorageGRID에서 Confluent Platform 6.2 계층형 스토리지를 사용하여 검증을 수행했습니다. NetApp과 Confluent 팀은 이 검증을 함께 수행하여 검증에 필요한 테스트 사례를 실행했습니다.
Confluent 플랫폼 설정
검증을 위해 다음 설정을 사용했습니다.
검증을 위해 3대의 zookeers, 5개의 브로커, 5개의 테스트 스크립트 실행 서버, 256GB RAM이 장착된 명명된 도구 서버, 16개의 CPU를 사용했습니다. NetApp 스토리지의 경우 SGF6024s 4개로 SG1000 로드 밸런서와 함께 StorageGRID를 사용했습니다. 스토리지와 브로커는 100GbE 연결을 통해 연결되었습니다.
다음 그림은 Confluent 확인에 사용되는 구성의 네트워크 토폴로지를 보여줍니다.
도구 서버는 Confluent 노드에 요청을 보내는 애플리케이션 클라이언트의 역할을 합니다.
Confluent 계층형 스토리지 구성
계층화된 스토리지 구성에는 Kafka에서 다음 매개 변수가 필요합니다.
Confluent.tier.archiver.num.threads=16 confluent.tier.fetcher.num.threads=32 confluent.tier.enable=true confluent.tier.feature=true confluent.tier.backend=S3 confluent.tier.s3.bucket=kafkasgdbucket1-2 confluent.tier.s3.region=us-west-2 confluent.tier.s3.cred.file.path=/data/kafka/.ssh/credentials confluent.tier.s3.aws.endpoint.override=http://kafkasgd.rtpppe.netapp.com:10444/ confluent.tier.s3.force.path.style.access=true
검증을 위해 StorageGRID를 HTTP 프로토콜과 함께 사용했지만 HTTPS도 작동합니다. 액세스 키와 비밀 키는 confluent.tier.s3.cred.file.path 매개 변수에 제공된 파일 이름에 저장됩니다.
NetApp 오브젝트 스토리지 - StorageGRID
StorageGRID에서 정화를 위해 단일 사이트 구성을 구성했습니다.
검증 테스트
검증을 위해 다음 5가지 테스트 사례를 완료했습니다. 이러한 검사는 Trogor 프레임워크에서 실행됩니다. 첫 번째 두 테스트는 기능 테스트이고 나머지 세 가지는 성능 테스트입니다.
객체 저장소 정확도 테스트
이 테스트에서는 오브젝트 저장소 API의 모든 기본 작업(예: get/put/delete)이 계층적 스토리지의 요구에 따라 잘 작동하는지 여부를 확인합니다. 모든 오브젝트 저장소 서비스가 다음 테스트보다 먼저 통과해야 하는 기본 테스트입니다. 통과 또는 실패한 단정적인 테스트입니다.
계층화 기능 정확도 테스트
이 테스트에서는 종단 간 계층형 스토리지 기능이 통과 또는 실패한 적극적 테스트와 잘 작동하는지 여부를 확인합니다. 이 테스트에서는 기본적으로 계층화를 사용하도록 구성되고 핫 세트 크기가 크게 줄어든 테스트 항목을 생성합니다. 새로 만든 테스트 항목으로 이벤트 스트림을 생성하고 브로커가 세그먼트를 개체 저장소에 아카이빙할 때까지 대기한 다음 이벤트 스트림을 사용하여 소비된 스트림이 생성된 스트림과 일치하는지 확인합니다. 이벤트 스트림에 생성되는 메시지 수를 구성할 수 있으므로 테스트 요구에 따라 충분한 크기의 워크로드를 생성할 수 있습니다. 줄어든 핫세트 크기는 소비자가 활성 세그먼트 밖에 있는 페치를 개체 저장소에서만 제공되도록 합니다. 이렇게 하면 읽기에 대한 개체 저장소의 정확성을 테스트하는 데 도움이 됩니다. 객체 저장소 결함 주입 여부와 관계없이 이 테스트를 수행했습니다. StorageGRID의 노드 중 하나에서 서비스 관리자 서비스를 중지하고 엔드 투 엔드 기능이 오브젝트 스토리지에서 작동하는지 확인하여 노드 장애를 시뮬레이션했습니다.
계층 가져오기 벤치마크
이 테스트에서는 계층형 오브젝트 스토리지의 읽기 성능을 검증하고 벤치마크에 의해 생성된 세그먼트에서 과부하된 읽기 요청 범위를 검사했습니다. 이 벤치마크에서 Confluent는 계층 가져오기 요청을 처리하기 위해 사용자 지정 클라이언트를 개발했습니다.
생산 - 워크로드 벤치마크 소비
이 테스트에서는 세그먼트 아카이브를 통해 오브젝트 저장소에서 쓰기 워크로드를 간접적으로 생성했습니다. 소비자 그룹이 세그먼트를 가져올 때 객체 스토리지에서 읽기 워크로드(세그먼트 읽기)가 생성되었습니다. 이 워크로드는 테스트 스크립트에 의해 생성되었습니다. 이 테스트에서는 오브젝트 저장소에서 병렬 스레드의 읽기 및 쓰기 성능을 확인했습니다. 계층화 기능 정확도 테스트에서 보았듯이, 객체 저장소 결함 주입을 사용하여 테스트했으며 포함하지 않았습니다.
보존 워크로드 벤치마크
이 테스트에서는 무거운 주제 보존 워크로드 하에서 오브젝트 저장소의 삭제 성능을 검사했습니다. 보존 워크로드는 테스트 주제와 동시에 많은 메시지를 생성하는 테스트 스크립트를 사용하여 생성되었습니다. 테스트 주제는 공격적인 크기 기반 및 시간 기반 보존 설정으로 구성되었으며, 이로 인해 이벤트 스트림이 개체 저장소에서 지속적으로 제거됩니다. 그런 다음 세그먼트가 아카이브되었습니다. 이로 인해 오브젝트 저장소 삭제 작업의 수행 중개 및 컬렉션에 의해 오브젝트 저장소에서 많은 삭제가 수행되었습니다.