신입개발자

Kafka 백업/이관/업그레이드 과정 정리 본문

개인 개발 공부

Kafka 백업/이관/업그레이드 과정 정리

dks_a 2023. 8. 31. 14:24

참고 공식 문서 : https://kafka.apache.org/documentation/#upgrade

[업그레이드 전 ]

kafka 버전(with Kraft) : 3.4

[업그레이드 후]

kafka 버전(with Kraft) : 3.5

 

[카프카 버전 확인]

./kafka-topics.sh --version

[예시]

[kafka:/home/kafka/kafka/bin] ./kafka-topics.sh --version
3.4.0 (Commit:2e1947d240607d53)

[ 백업 ]

server.properties 에 작성한 log.dirs와 metadata.log.dir 의 폴더 백업

cp -r kraft-combined-log backup-kraft-combined-log/
cp -r metadata-log backcup-metadata-log/

[ 이관 ]

  • 카프카 3.5에서 실행함

기존 metadata-logs 만 가져올 경우

./bin/kafka-storage.sh random-uuid

클러스터 아이디를 바꿨을 부분만
/data/metadata-logs/ 아래에 있는 meta.properties에 있는 cluster.id만 바꿔주고 시작하면 토픽이 복사된다.

 

[업그레이드]

Kafka 버전을 업그레이드하는 경우, 기존 버전의 Kafka가 사용하던 메타데이터 로그 디렉토리와 로그 디렉토리를 그대로 사용해야 합니다.
새 버전의 Kafka가 새로운 메타데이터 로그 디렉토리와 로그 디렉토리를 사용하도록 설정하면, 기존 버전의 Kafka가 생성한 메타데이터와 로그 데이터를 사용할 수 없습니다.

 

  • 업그레이드할 버전의 바이너리 파일 다운로드 후 tar 파일 풀기

https://kafka.apache.org/downloads.html

  • 기존 kafka 버전의 metadata.log.dir와 log.dirs 폴더 옮기기
tar -cvf oldkafka.tar data 
mv oldkafka.tar /home/kafka/updateKafka
tar -xvf oldkafka.tar

data 아래에 metadata.log.dir와 log.dirs있다 가정 하고 tar로 압축

 

  • 기존 kafka의 kraft 폴더 아래에 있는 server.properties 복사 후, metadata.log.dir와 log.dirs 위치 수정
cp /home/kafka/oldKafka/config/kraft/server.properties /home/kafka/updateKafka/config/kraft/server.properties
  • 기존 kafka를 종료 후 업데이트한 kafka 시작
nohup ./bin/kafka-server-start.sh /home/kafka/updateKafka/config/kraft/server.properties &
  • ui for apache kafka에서 Brokers Uptime에 version이 변경되었는지 확인 후 메타데이터도 변경
./bin/kafka-features.sh --bootstrap-server BOOTSTRAP-SERVER:19092 upgrade --metadata 3.5
metadata.version was upgraded to 11.

메타데이터 변경 이유)
새 버전의 Kafka에서는 새로운 메타데이터 형식이 도입될 수 있습니다.
이 경우, 기존 버전의 Kafka에서 사용하던 메타데이터 형식과 호환되지 않을 수 있습니다.
따라서, Kafka 버전을 업그레이드한 후에는 메타데이터 버전도 함께 업그레이드해야 새 버전의 Kafka에서 제공하는 새로운 기능을 사용할 수 있습니다.

메타데이터 버전을 업그레이드하기 전에 클러스터의 동작과 성능을 검증하는 이유는 업그레이드가 정상적으로 완료되었는지 확인하기 위해서입니다.
만약 업그레이드 중 문제가 발생하면, 메타데이터 버전을 업그레이드하기 전에 문제를 해결할 수 있습니다.

기존 kafka 버전에서 10개 메세지를 보내고 하나씩 버전을 업그레이드를 하더라도 토픽의 메세지는 남아있다.

'개인 개발 공부' 카테고리의 다른 글

Grafana 모니터링 화면  (0) 2023.08.31
Kafka broker, controller 분리  (0) 2023.08.31
Kafka 고가용성 테스트  (0) 2023.08.31
Kafka Consumer  (0) 2023.08.31
Kafka Stream  (0) 2023.08.31
Comments