브로커 디스크 장애 — log.dirs 중 일부/전체가 실패했을 때의 동작
Kafka Connect 내부 토픽 및 브로커 디스크 장애 대응 공식 문서 종합 (웹 리서치, 2026) — Apache Kafka 공식 문서(documentation#connect_running) + AWS MSK 개발자 가이드 + Apache Kafka JIRA(KAFKA-8046) Apache Kafka JIRA KAFKA-8046 및 관련 log.dirs 장애 사례
이 모듈을 다 읽으면
- log.dirs 중 일부만 실패했을 때와 전체가 실패했을 때 브로커 동작이 다르다는 것을 설명할 수 있다
- 디스크 공간 부족이 왜 '즉각 에러'가 아니라 로그 디렉터리 장애로 이어지는지 설명할 수 있다
브로커가 여러 log.dirs를 설정해 운영될 때, 그중 하나의 디스크가 가득 차거나 장애가 나면 무슨 일이 일어나는지, 그리고 왜 결국 브로커 전체가 셧다운될 수 있는지를 정리한다.
log.dirs 하나가 실패해도 브로커는 즉시 죽지 않는다
브로커에 log.dirs를 여러 디스크 경로로 설정해두면(예: /data1, /data2), 그중 하나의 디스크에서 쓰기 실패(디스크 풀, 파일시스템 오류 등)가 발생해도 브로커는 즉시 종료되지 않는다 — 해당 로그 디렉터리를 offline으로 표시하고, ReplicaManager가 그 디렉터리에 있던 파티션들에 대한 서빙(fetch 처리 등)을 중단하며, 남은 정상 log.dirs로 계속 운영을 이어간다. 이는 디스크 여러 개를 쓰는 구성에서 얻는 실질적인 장애 격리 이점이다.
핵심 포인트
- log.dirs 여러 개 중 하나가 실패해도 브로커는 그 디렉터리만 offline 처리하고 나머지로 계속 서빙
- 해당 디렉터리에 있던 파티션들은 이 브로커에서 서빙 중단 — 다른 정상 레플리카가 있다면 그쪽이 리더를 넘겨받아 가용성 유지
모든 log.dirs가 실패하면 브로커 전체가 셧다운된다
설정된 log.dirs 전부가 실패 상태가 되면(단일 디스크 구성이라 애초에 log.dirs가 하나뿐인 경우 포함), LogManager는 더 이상 안전하게 데이터를 쓰거나 읽을 수 없다고 판단해 브로커 자체를 종료시킨다 — 로그에는 'Shutdown broker because all log dirs in ... have failed'라는 메시지가 남는다. 디스크가 가득 차는 상황도 결국 이 경로를 탄다: 여유 공간이 없어 로그 세그먼트를 플러시하거나 체크포인트 파일을 쓰는 작업이 실패하면서 해당 디렉터리가 offline 처리되고, 그게 유일한(혹은 남은 마지막) log.dirs였다면 브로커가 셧다운된다. 즉 '디스크가 가득 찼다'는 것 자체가 별도의 에러 코드로 나타나는 게 아니라, 로그 디렉터리 장애라는 경로를 통해 결과적으로 브로커 종료로 이어지는 구조다.
핵심 포인트
- 설정된 log.dirs 전부 실패 시 LogManager가 브로커를 셧다운 — 'Shutdown broker because all log dirs have failed'
- 디스크 풀도 결국 '쓰기 실패 → 해당 디렉터리 offline → 그게 마지막 log.dirs면 브로커 종료'라는 동일 경로를 탄다
실무 대응 — 디스크 모니터링이 리밸런싱보다 먼저
이 동작 구조 때문에, 디스크 사용률에 대한 사전 모니터링과 알림(예: 80~90% 도달 시 경고)이 사후 대응보다 훨씬 중요하다 — 한번 디렉터리가 offline 처리되면 단순 재시작만으로 복구되지 않고(디스크 공간을 확보하거나 교체해야 함), 그 사이 해당 파티션들의 복제 팩터가 사실상 줄어든 것과 같은 효과가 나 장애 허용 여력이 감소한다. 여러 브로커에 디스크를 고르게 채우려면 파티션을 브로커 간에 균등 분산하는 것뿐 아니라, 파티션 크기 자체가 브로커마다 크게 치우치지 않도록(예: 특정 토픽에 트래픽이 몰리는 핫스팟 파티션이 없도록) 신경 써야 한다.
핵심 포인트
- 디스크 offline은 재시작으로 복구 안 됨 — 공간 확보/디스크 교체가 필요, 사전 모니터링(80~90% 임계치 알림)이 핵심 대응
- 파티션을 브로커 간에 균등 분산하는 것뿐 아니라 핫스팟 파티션으로 인한 디스크 편중도 함께 관리해야 함