第8章 既知の問題
RHEL 上の Streams for Apache Kafka 3.1 に関する既知の問題。
8.1. Apache Kafka リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka の既知の問題の概要です。
8.1.1. ブローカー内でのログディレクトリーの再割り当てにより、ログディレクトリーがオフラインになることがある リンクのコピーリンクがクリップボードにコピーされました!
ブローカーごとに複数のログディレクトリーを使用する (JBOD) 場合、ブローカー内でのログディレクトリーの再割り当て (同じブローカー上のログディレクトリー間でレプリカを移動) を実行すると、操作中に一時的なファイルシステムエラーまたは I/O エラーが発生した場合に、Apache Kafka がログディレクトリーを誤って障害発生とマークする可能性があります。
この問題は、レプリカ移動中にバックグラウンドログのフラッシュ操作とファイル削除の間で競合状態が発生することによって発生します。このような状況下では、Kafka は NoSuchFileException または関連する I/O エラーに遭遇し、それを致命的なストレージ障害として扱う可能性があります。その結果、ブローカーがデータの整合性を保護するためにログディレクトリー全体をオフラインにし、そのディレクトリーに保存されているすべてのパーティションが使用できなくなります。ログディレクトリーは、再割り当てが完了した後でも、障害発生とマークされたままになる可能性があります。
この動作は、ブローカー内のログディレクトリーの再割り当てにのみ影響します。ブローカー間のパーティション再割り当てには影響しません。
回避策
影響を受けている Kafka ブローカーを再起動してください。再起動時に、ブローカーはログディレクトリーを再スキャンし、基盤となるファイルシステムの問題がない場合はディスクを正常とマークします。
これは Apache Kafka における既知の問題です。この問題に対処するための作業は、Apache Kafka の課題追跡システム (KAFKA-19571) で追跡されています。Apache Kafka の基盤となるディストリビューションで修正が利用可能になり次第、Red Hat Streams for Apache Kafka の今後のリリースに修正が組み込まれる予定です。
8.1.2. eligible.leader.replicas.version を有効にする リンクのコピーリンクがクリップボードにコピーされました!
Apache Kafka 4.0.0 の変更により、eligible.leader.replicas.version を 1 に設定して Eligible Leader Replicas (ELR) 機能を有効にすると、min.insync.replicas 設定の管理方法に制限が導入されます。
ELR はデフォルトで無効になっています。これらの制限を理解せずに ELR を有効にすると、設定のリコンシリエーションの問題が発生したり、クラスターが不安定になったりする可能性があります。
ELR が有効になっている場合、min.insync.replicas の動作は次のように変わります。
クラスターレベル (デフォルト):
- 削除できない
- これを変更すると、すべてのトピックから ELR 設定が消去される
ブローカーレベル:
- 完全に無視される
- 変更できない
-
ELR を有効にする前に、ブローカーレベルの
min.insync.replicasをすべて削除することを推奨します。
トピックレベル:
-
min.insync.replicasを変更すると、そのトピックの ELR 設定が消去されます。
-
回避策
特定のユースケースで必要な場合にのみ、eligible.leader.replicas.version を 1 に設定してください。
ELR を使用する必要がある場合:
-
ブローカーレベルの
min.insync.replicas設定をすべて削除します。これらの設定は ELR が有効な場合は無視されますが、ローリング更新またはブローカーの再起動中にリコンシリエーションエラーが発生し、場合によってはリーダーレスパーティションが発生する可能性があります。 - すべてのトピックから ELR 設定を削除する予定がない限り、クラスターレベルのデフォルトを変更しないでください。
- そのトピックから ELR 設定を削除する場合を除き、トピックレベルの設定を変更しないでください。