기존 테스트 이어서.

 

그럼 다시 생각해봐야 할게,

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 가지고는 복구용으로 사용 할 수 없다.

728x90

+ Recent posts