合流検証
NetApp StorageGRIDの Confluent Platform 6.2 Tiered Storage を使用して検証を実施しました。 NetAppチームと Confluent チームが協力してこの検証に取り組み、検証に必要なテスト ケースを実行しました。
Confluent Platform のセットアップ
検証には次の設定を使用しました。
検証には、3 つの動物園管理人、5 つのブローカー、5 つのテスト スクリプト実行サーバー、256 GB の RAM と 16 個の CPU を備えた名前付きツール サーバーを使用しました。 NetAppストレージには、4 つの SGF6024 を搭載した 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
検証には、HTTP プロトコルを使用したStorageGRIDを使用しましたが、HTTPS も機能します。アクセスキーと秘密鍵は、 `confluent.tier.s3.cred.file.path`パラメータ。
NetAppオブジェクトストレージ - StorageGRID
検証のために、 StorageGRIDで単一サイト構成を構成しました。
検証テスト
検証のために以下の 5 つのテストケースを完了しました。これらのテストは Trogdor フレームワークで実行されます。最初の 2 つは機能テストであり、残りの 3 つはパフォーマンス テストでした。
オブジェクトストアの正確性テスト
このテストでは、オブジェクト ストア API のすべての基本操作 (get/put/delete など) が階層化ストレージのニーズに応じて適切に機能するかどうかを判定します。これは、すべてのオブジェクト ストア サービスが次のテストに先立って合格することが期待される基本テストです。合格か不合格かを判断する断定的なテストです。
階層化機能の正確性テスト
このテストでは、合格または不合格のいずれかになるアサーション テストを使用して、エンドツーエンドの階層型ストレージ機能が適切に動作するかどうかを判断します。このテストでは、デフォルトで階層化が有効にされ、ホットセット サイズが大幅に削減されたテスト トピックが作成されます。新しく作成されたテスト トピックにイベント ストリームを生成し、ブローカーがセグメントをオブジェクト ストアにアーカイブするのを待機し、イベント ストリームを消費して、消費されたストリームが生成されたストリームと一致することを検証します。イベント ストリームに生成されるメッセージの数は構成可能であり、ユーザーはテストのニーズに応じて十分な大きさのワークロードを生成できます。ホットセットのサイズが縮小されたことで、アクティブ セグメント外のコンシューマー フェッチがオブジェクト ストアからのみ提供されるようになり、読み取りに対するオブジェクト ストアの正確性をテストするのに役立ちます。このテストは、オブジェクト ストア障害注入ありとなしの状態で実行しました。 StorageGRIDのノードの 1 つでサービス マネージャー サービスを停止し、エンドツーエンドの機能がオブジェクト ストレージで動作することを検証することで、ノード障害をシミュレートしました。
階層フェッチベンチマーク
このテストでは、階層化オブジェクト ストレージの読み取りパフォーマンスを検証し、ベンチマークによって生成されたセグメントからの高負荷状態での範囲フェッチ読み取り要求をチェックしました。このベンチマークでは、Confluent は階層フェッチ要求に対応するカスタム クライアントを開発しました。
生産・消費ワークロードベンチマーク
このテストでは、セグメントのアーカイブを通じてオブジェクト ストアへの書き込みワークロードを間接的に生成しました。読み取りワークロード (読み取られたセグメント) は、コンシューマー グループがセグメントを取得したときにオブジェクト ストレージから生成されました。このワークロードはテスト スクリプトによって生成されました。このテストでは、並列スレッドでのオブジェクト ストレージの読み取りと書き込みのパフォーマンスをチェックしました。階層化機能の正確性テストと同様に、オブジェクト ストア障害注入の有無でテストを行いました。
保持ワークロードベンチマーク
このテストでは、トピック保持の負荷が高い状態でのオブジェクト ストアの削除パフォーマンスをチェックしました。保持ワークロードは、テスト トピックに並行して多数のメッセージを生成するテスト スクリプトを使用して生成されました。テスト トピックでは、サイズ ベースおよび時間ベースの積極的な保持設定が構成されていたため、イベント ストリームがオブジェクト ストアから継続的に消去されていました。その後、セグメントはアーカイブされました。これにより、ブローカーによるオブジェクト ストレージ内の大量の削除と、オブジェクト ストア削除操作のパフォーマンスの収集が行われました。