10.4.3. KRaft 메타데이터 로그 스토리지 구성
KRaft 모드에서 각 노드( 브로커 및 컨트롤러 포함)는 Kafka 클러스터의 메타데이터 로그 사본을 데이터 볼륨 중 하나에 저장합니다. 기본적으로 로그는 ID가 가장 낮은 볼륨에 저장되지만 kraftMetadata 속성을 사용하여 다른 볼륨을 지정할 수 있습니다.
컨트롤러 전용 노드의 경우 스토리지는 메타데이터 로그 전용입니다. 로그는 항상 단일 볼륨에 저장되므로 여러 볼륨에서 JBOD 스토리지를 사용하면 성능이 향상되거나 사용 가능한 디스크 공간을 늘리지 않습니다.
반대로 브로커 및 컨트롤러 역할을 결합하는 브로커 노드 또는 노드는 메타데이터 로그 및 파티션 복제본 데이터에 대해 동일한 볼륨을 공유하여 디스크 사용률을 최적화할 수 있습니다. 또한 하나의 볼륨이 메타데이터 로그 및 파티션 복제본 데이터에 대해 공유되는 JBOD 스토리지를 사용할 수 있으며 추가 볼륨은 파티션 복제본 데이터에만 사용됩니다.
메타데이터 로그를 저장하는 볼륨을 변경하면 이전 로그 삭제 및 지정된 위치에 새 로그 생성과 관련된 클러스터 노드의 롤링 업데이트가 트리거됩니다. kraftMetadata 를 지정하지 않으면 ID가 낮은 새 볼륨을 추가하면 메타데이터 로그 업데이트 및 재배치가 표시됩니다.
KRaft 메타데이터를 저장하기 위해 ID 1이 있는 볼륨을 사용하는 JBOD 스토리지 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaNodePool
metadata:
name: pool-a
# ...
spec:
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
size: 100Gi
deleteClaim: false
- id: 1
type: persistent-claim
size: 100Gi
kraftMetadata: shared
deleteClaim: false
# ...