로컬 백업 구축기 (feat. Kopia)
배경
회사에서 업무를 하다 보면 백업의 중요성을 느끼게 된다. 하지만 RAID와 같이 우수하지만 복잡한 방식을 사용하여 백업을 하게 되면, 백업 데이터를 되살릴 때 어려움을 겪을 수 있다. 그래서 나는 단순한 복사 방법을 선호하는 편이다. 이를 위해 FreeFileSync를 사용하여 물리적으로 독립된 저장매체(HDD)에 데이터 사본을 복사하는 방식으로 백업을 하고 있었다. 설정이 간단하고 빠르게 백업할 수 있는 방법이다.
그러다 회사 컴퓨터에 설치된 개인정보 감시 프로그램(DLP)이 문제를 발생시켰다. 이 프로그램은 주기적으로 PC의 모든 파일을 스캔하여 열어보고 검사한다. 이 과정에서 백업 HDD에 저장된 문서까지 계속 읽어대서 HDD가 쉴 새 없이 돌아가게 되었다. 백업 HDD는 수명과 안정성이 가장 큰 미덕인데, 현재 상황에서 백업 HDD가 계속해서 감시 프로그램의 타겟이 되어 시스템이 버벅일 뿐만 아니라 HDD의 수명이 감소하거나 물리적 오류가 생겨날 가능성도 증가하였다. HDD가 돌아가는 소리가 계속 들리다보니 이러다가 HDD가 고장 나서 백업 데이터가 날아가는 건 아닌지 걱정이 되었다.
결국 나는 오랫동안 사용하던 백업 방식을 바꾸기로 마음 먹고 방법을 찾기 시작했다.
요구조건
나에게 맞는 방법을 찾기 위해 원하는 조건을 정리해 봤다.
- 감시 프로그램 우회: 백업본이 일반적인 문서 파일(PDF 등) 형태가 아니어야 함.
- HDD 물리 손상 대비 (리커버리): 감시 프로그램에 시달린 HDD에 일부 배드 섹터가 생겨도 데이터를 복구할 수 있어야 함.
- 이식성: PC가 고장 나면 HDD만 빼서 다른 머신에 마운트(Mount)하여 바로 복원 가능해야 함.
- 빠른 자동화: 매번 전체 백업을 하지 않고, 백그라운드에서 매일 1회 ‘변경된 부분만’ 조용히 백업해야 함.
옵션 비교: 어떤 방법들이 있을까?
이 조건을 만족시키기 위해 여러 가지 방법을 테스트하고 비교해 보았다.
옵션 1. 단순 동기화 툴 (FreeFileSync 등)
- 특징: 원본과 똑같은 형태(1:1 폴더 트리 및 파일)로 복사함.
- 장점: 설정이 매우 쉽고 빠름.
- 단점: 문서 파일이 그대로 노출되므로 감시 프로그램의 1순위 타겟이 됨. → 탈락
옵션 2. 압축 프로그램 활용 (WinRAR CLI 등)
- 특징: 매일 특정 시간에 명령어(bat)를 통해 폴더 전체를 암호화된
ZIP/RAR로 묶음. - 장점: 파일이 암호화되어 감시 프로그램을 우회할 수 있고, ‘복구 기록(Recovery Record)’을 추가하면 일부 손상 시 자가 복구가 가능함.
- 단점: 대용량 환경에서 매일 변경된 파일만 찾아 업데이트하는 ‘증분 백업’ 속도가 느리고, 나중에 파일 하나만 꺼내고 싶을 때 매우 불편함. → 탈락
옵션 3. RAID 방식
- 특징: 여러 개의 HDD를 묶어서 하나의 논리적 드라이브처럼 사용하는 방식.
- RAID 1(미러링)은 두 개의 HDD에 동일한 데이터를 저장하여 한 쪽이 고장 나도 다른 쪽에서 복구할 수 있음.
- RAID 5는 세 개 이상의 HDD를 사용하여 데이터를 분산 저장하고, 하나의 HDD가 고장 나도 나머지 HDD의 데이터와 패리티 정보를 이용해 복구할 수 있음.
- 장점: HDD가 하나 고장 나도 데이터가 안전하게 보존됨
- 단점:
- RAID 1: 컨트롤러가 백업 HDD를 계속 스캔하기 때문에 감시 프로그램이 여전히 HDD를 타겟으로 삼음. → 탈락
- RAID 5: HDD가 3개 이상 필요하고, 설정이 복잡함. 백업을 복구할 때 잘 해낼 자신이 없음. → 탈락
옵션 4. Kopia (오픈소스 블록 증분 백업)
- 특징: 원본을 잘게 쪼갠 뒤(Chunk) 강력하게 암호화하여 ‘의미 없는 바이너리 조각’으로 저장함.
- 장점:
- 감시 우회 완벽: 문서 형태가 사라지므로 감시 프로그램이 스캔을 포기함.
- 빠른 속도: 블록 단위로 변경된 데이터만 즉시 백업(수 분 내 완료).
- 강력한 복구력:
Reed-Solomon ECC(오류 정정 기술)를 지원하여, 디스크가 고장 나 데이터 일부가 날아가도 수학적으로 100% 복원해 냄.
- 결론: 나의 모든 요구사항을 충족하는 방법
Kopia 하이브리드 구축법 (CLI + GUI)
이렇게 Kopia를 선택했다. Kopia는 Windows를 위한 GUI를 지원한다. 하지만 GUI에서는 ‘오류 정정(ECC) 옵션’을 설정할 수 없었기 때문에 다소 번거로운 방법을 쓸 수 밖에 없었다.
먼저 최초 저장소 생성은 명령어(CLI)로 수행하였다. 그리고 이후 자동 백업 관리는 KopiaUI(GUI)로 진행하였다.
기록을 위해 그 방법을 단계별로 정리해 보았다.
1단계 : 기존 백업 지우기 (초기화)
선택사항이댜. 기존에 일반 파일이 필요 없다면 지운다. 백업할 공간을 마련해 둔다.
2단계 : Kopia 다운로드 및 준비
Kopia 공식 홈페이지 또는 GitHub에 접속한다. CLI용 버전과 GUI 설치용 버전을 모두 다운로드한다.
3단계 : 최초 저장소 생성 (오류 정정 적용)
Windows에서 키보드의 Windows 키 + R을 누르고 cmd를 입력해 명령 프롬프트 창을 연다. 그리고 아래 명령어를 실행시킨다.
물론 자신의 환경에 맞게 kopia cli path(C:\Kopia\kopia.exe)와 --path 옵션(F:\KopiaBackup)을 수정한다.
이렇게 하면 F: 드라이브에 KopiaBackup이라는 저장소를 만들고, 복구용 추가 데이터(패리티)를 20%로 할당하게 된다.
C:\Kopia\kopia.exe repository create filesystem --path F:\KopiaBackup --ecc=REED-SOLOMON-CRC32 --ecc-overhead-percent=20
- 명령어를 치면 비밀번호를 입력하라고 나온다. 비밀번호는 반드시 입력해야 한다. 잊지 않도록 Windows 계정 비밀번호 같이 간단한 걸로 입력한다.
Connected to repository.메시지가 뜨면 성공이다. cmd 창을 닫는다.
4단계 : Backup 스케줄링
이제 GUI 프로그램을 실행시킨다.
- 백업 대상 선택: 상단의
[+ New Snapshot]버튼을 누르고, 원본 데이터가 있는 드라이브 전체 (또는 폴더)를 선택한다. - 자동화 시간 설정: 추가된 경로 우측 끝에 있는 톱니바퀴
[Policies]아이콘을 클릭한다.Scheduling탭에서Time of day를 선택하고 매일 점심시간 등 원하는 시간을 지정한다.Files탭에서 휴지통($RECYCLE.BIN) 등을 백업 제외 폴더로 지정할 수 있다.- 우측 상단
[Save Policy]클릭한다.
- 최초 백업 시작: 경로 우측의
[Snapshot Now]아이콘(재생 버튼)을 누르면 첫 백업이 시작된다. - 백그라운드 설정: 좌측 하단 톱니바퀴(Settings)를 눌러
[Launch at Startup](윈도우 시작 시 실행)과[Minimize to Tray](트레이로 최소화)를 켜둔다.
구축 결과 및 복원 방법
만약 백업 데이터를 복원하고 싶다면 어떻게 해야 할까. Kopia GUI에서 원하는 날짜의 스냅샷 옆에 있는 [Mount as Local Drive] 버튼을 누르기만 하면 된다. Kopia가 마치 USB를 꽂은 것처럼 가상의 Z: 드라이브를 띄워준다. 탐색기에서 원하는 파일을 복사해 온 다음 연결을 해제하면 끝이다.