
백엔드
개발자가 손수 대규모 Cassandra를 신규 클러스터로 이전하기
두줄요약
LINE VOOM의 대규모 Cassandra를 신규 IDC로 이전한 과정을 정리한 글입니다. repair 대신 rebuild를 선택하고 멀티 데이터 센터 설정과 검증 절차를 통해 안전하게 복제했습니다.
문제 상황
- LINE VOOM의 Cassandra 메인 스토리지가 서버랙 공간 부족과 장비 노후화로 신규 IDC 이전이 필요한 상황
- 여러 서비스가 한 클러스터를 공유하고 SSD/PCIe-SSD가 혼재한 이질적 운영 환경으로 성능·안정성 저하 우려
원인 분석
- 기존 단일 데이터센터 구성과 복잡한 운영 이력으로 인해 멀티 데이터 센터 전환과 복제 방식 정립이 필요
- repair는 데이터 불일치 해소용이라 대규모 이전 복제에 부적합하고 네트워크 사용량도 과도
- 버전 업그레이드는 브레이킹 체인지와 2.x-4.0 통신 비호환으로 일정 내 진행 곤란
해결 방법
- 신규 IDC에 standalone 클러스터를 구성하고 cluster_name, seeds, PropertyFileSnitch, NetworkTopologyStrategy로 멀티 데이터 센터 설정
- Datastax Driver의 DCAwareRoundRobinPolicy와 LOCAL_QUORUM으로 로컬 데이터센터 중심의 클라이언트 동작 구성
- rebuild를 신규 노드별 순차 수행해 데이터 복제, 이후 샘플링 조회와 nodetool 지표로 일치 여부 검증
- 필요에 따라 keyspace 분리와 dual write 테스트로 서비스별 복제 범위와 일관성 확인