ベストプラクティスのガイドライン
このセクションでは、この認定資格から得られた教訓について説明します。
-
検証に基づくと、 S3 オブジェクトストレージにはデータを格納するのがベストプラクティスです。
-
高スループットの SAN (特に FC )を使用して、ブローカーのホットデータやローカルディスクを保持できます。これは、階層型ストレージの構成が流暢であるためです。 ブローカーデータディレクトリに格納されているデータのサイズは、オブジェクトストレージにデータが移動される際のセグメントサイズと保持時間に基づいています。
-
オブジェクトストレージは、セグメントの方がパフォーマンスに優れています。バイト数が多い場合は 512 MB をテストしました。
-
Kafkaでは、トピックに生成された各レコードのキーまたは値の長さ(バイト単位)はパラメータによって制御され `length.key.value`ます。StorageGRID では、 S3 オブジェクトの取り込みと読み出しのパフォーマンスがより高い値に引き上げられました。たとえば、 512 バイトが 5.8GBps の読み出しを提供し、 1024 バイトが 7.5GBps の s3 読み出しを提供し、 2048 バイトが 10Gbps 近く提供します。
次の図は、に基づくS3オブジェクトの取り込みと読み出しを示してい `length.key.value`ます。
-
* Kafkaチューニング。*階層型ストレージのパフォーマンスを向上させるには、TierFetcherNumThreadsとTierArchiverNumThreadsを増やすことができます。一般的なガイドラインとして、 TierFetcherNumThreads を増やして物理 CPU コア数に合わせ、 TierArchiverNumThreads を CPU コア数の半分に増やします。たとえば、サーバープロパティで、 8 つの物理コアを持つマシンがある場合、 conflicent.tier.fetcher.threads=8 と、 conflicent.tier.Archiver .num.threads=4 を設定します。
-
*トピック削除の時間間隔。*トピックを削除しても、オブジェクトストレージ内のログセグメントファイルの削除はすぐには開始されません。デフォルト値の 3 時間を指定した時間間隔が設定されているため、この時間が経過するとファイルが削除されます。この間隔の値を変更するには、設定 confluent.tier.topic.delete.check.interval.ms を変更します。トピックまたはクラスタを削除する場合は、それぞれのバケット内のオブジェクトを手動で削除することもできます。
-
*階層型ストレージの内部トピックに関するACL。*オンプレミス展開で推奨されるベストプラクティスは、階層型ストレージに使用される内部トピックでACL承認者を有効にすることです。このデータへのアクセスをブローカーユーザのみに制限するには、 ACL ルールを設定してください。これにより、内部トピックが保護され、階層化されたストレージデータおよびメタデータへの不正アクセスを防止できます。
kafka-acls --bootstrap-server localhost:9092 --command-config adminclient-configs.conf \ --add --allow-principal User:<kafka> --operation All --topic "_confluent-tier-state"
|
ユーザーを展開内の実際のブローカープリンシパルに置き換え `<kafka>`ます。 |
たとえば、コマンドは `confluent-tier-state`階層化ストレージの内部トピックにACLを設定します。現在、階層化ストレージに関連する内部トピックは 1 つだけです。この例では、内部トピックのすべての処理にプリンシパル Kafka 権限を提供する ACL を作成しています。