기존 테스트 이어서.
그럼 다시 생각해봐야 할게,
1. version-2를 비우고 기존 디렉토리로 놓았을 경우와
2. version-2를 그대로 두고, 기존 디렉토리를 비워둔채로 다시 로딩했을 경우
데이터 보존이 되는지 확인해봐야 할 것 같다.
2번은 기존 테스트 결과와 동일할 수도 있지만, 디렉토리 이름이 변경 유무에 따라 데이터 복구가 안되는지가 궁금한 부분.
1. 실패
zookeeper 자체는 기동은 됐으나 각 브로커들에 정상적으로 접근은 못하는 듯 해 보이고,
kafka에서는 아래 메시지와 함께 기동 조차 안됐다.
*** 아래는 broker1 하나만 우선적으로 파악. 현상은 broker1~3 전부 동일
##24.02.27 update
kafka clusterID 매칭에 대해서는 log.##가 아닌 snapshot 에서로 보여진다.
log.### 는 zookeeper transaction data이며,
zookeeper data log dir 분리 테스트 진행 시 확인 결과, log파일이 없어도 정상적으로 기동 됨을 확인 했다.
** 기존 dataDir 에 dataLogDir 옵션 추가하여 snapshot과 transaction id를 분리/저장 하는 테스트를 했는데,
기존 영역의 log data 존재 시 zookeeper가 정상적으로 기동되지 않았음 (디렉토리 접근에 대한 퍼미션 에러로 떨어짐)
관련하여 log data를 이동 후 기동 하자 이슈 없이 재기동 및 설정된 dataLogDir 경로로 transaction log파일 생성됨.
/kaf_data/meta.properties의 cluster ID 값은 아래와 같고,
이동한 version-2 디렉토리에서는 log.100000001~ 800000001 까지 있는데,
cluster ID 의 값은 log.100000001 에만 있었다.
(맨 처음에 만들어진 부분이라 meta값이 1번 파일에 있었던것 같기도)
![]() |
![]() |
파일은 최신 파일로 추정되는 log.800000001 파일 에서만 보는게 아니며,
log파일 내용 중에 meta.properties의 cluster.id 와 매칭이 되는 부분이 있어야 kafka가 기동이 되는 것 같다.
2. 껍데기로 복구 완료..ㅋ
현 경로의 version-2 삭제 및 백업한 version-2 복구하여 정상 기동을 확인 후
b1HostnameCreate에 데이터 흘려 파티션에 데이터 적재한다.
그 다음 다시 서비스 down하여 /kaf_data 내 데이터 전체 삭제 후 기동하여 상태 확인한다.
결과 로그는 broker1 에서만 가져왔고, 디렉토리 이름과 관계 없이 껍데기 상태로 복구 되었다.
b1HostnameCreate 내 토픽 데이터 생성 후 consume 진행. |
[root@broker1 kaf_data]# ls -ltr */*.log *** 중략 *** -rw-------. 1 kafka kafka 590 Feb 13 13:18 b1HostnameCreate-2/00000000000000004710.log -rw-------. 1 kafka kafka 840 Feb 13 13:18 b1HostnameCreate-1/00000000000000004828.log -rw-------. 1 kafka kafka 1096 Feb 13 13:18 b1HostnameCreate-0/00000000000000005062.log -rw-------. 1 kafka kafka 4465 Feb 13 13:22 __consumer_offsets-40/00000000000000000614.log ** log 파일들의 숫자는 메타데이터에 저장된 마지막 오프셋 값 이후 인 것 같다. 아마 초기 생성후 테스트 했던 값이 각각 4709, 4827, 5061 인 듯 하고, consumer_offsets은 613 이었는 듯 싶다. |
kafka -> zookeeper shutdown 후 데이터 삭제 |
[kafka@broker1 kaf_data]$ rm -rf ./* [kafka@broker1 kaf_data]$ ll total 0 |
zookeepe -> kafka start 후 디렉토리 조회 |
[kafka@broker1 kaf_data]$ ll total 8 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate-2 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate2-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate2-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1HostnameCreate2-2 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1LocalhostCreate-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1LocalhostCreate-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 b1LocalhostCreate-2 drwx------. 2 kafka kafka 167 Feb 13 13:27 b2HostnameCreate-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 b2HostnameCreate-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 b2HostnameCreate-2 drwx------. 2 kafka kafka 167 Feb 13 13:27 b3HostnameCreate-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 broker1Create-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 broker1Create-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 broker1Create-2 -rw-------. 1 kafka kafka 0 Feb 13 13:27 cleaner-offset-checkpoint drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-10 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-13 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-16 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-19 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-22 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-25 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-28 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-31 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-34 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-37 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-4 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-40 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-43 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-46 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-49 drwx------. 2 kafka kafka 167 Feb 13 13:27 __consumer_offsets-7 -rw-------. 1 kafka kafka 0 Feb 13 13:27 log-start-offset-checkpoint -rw-------. 1 kafka kafka 88 Feb 13 13:27 meta.properties drwx------. 2 kafka kafka 167 Feb 13 13:27 NewDirTopic01-0 drwx------. 2 kafka kafka 167 Feb 13 13:27 NewDirTopic01-1 drwx------. 2 kafka kafka 167 Feb 13 13:27 NewDirTopic01-2 -rw-------. 1 kafka kafka 0 Feb 13 13:27 recovery-point-offset-checkpoint -rw-------. 1 kafka kafka 797 Feb 13 13:27 replication-offset-checkpoint |
위 동일 log데이터 사이즈 확인 |
[kafka@broker1 kaf_data]$ ls -ltr */*.log *** 중략 *** -rw-------. 1 kafka kafka 0 Feb 13 13:27 b1HostnameCreate-0/00000000000000000000.log -rw-------. 1 kafka kafka 0 Feb 13 13:27 b1HostnameCreate-1/00000000000000000000.log -rw-------. 1 kafka kafka 0 Feb 13 13:27 b1HostnameCreate-2/00000000000000000000.log -rw-------. 1 kafka kafka 0 Feb 13 13:27 __consumer_offsets-40/00000000000000000000.log |
kafka 서비스 이상 시 복구방으로 version-2를 고려 했는데,
kafka log data에 대해서 단순 파티션 형상만 카피되고 데이터는 복제 되지 않는다.
따라서 version-2 가지고는 복구용으로 사용 할 수 없다.
'업무 > kafka zookeeper' 카테고리의 다른 글
[kafka] kafka-consumer-groups.sh 명령어 관련 (0) | 2024.02.21 |
---|---|
[zookeeper] snapshot data 테스트 관련 총 정리 (0) | 2024.02.13 |
[zookeeper] snapshot data(version-2) 관련 테스트 (2) (0) | 2024.02.10 |
[zookeeper] snapshot data(version-2) 관련 테스트 (1) (0) | 2024.02.08 |
[zookeeper] zookeeper CLI (0) | 2024.02.08 |