백업을 안 해서 데이터를 잃는 사람보다, 백업은 했는데 복구가 안 돼서 데이터를 잃는 사람이 훨씬 많다는 얘기가 있어요. 어떤 도구로 어떻게 백업했느냐가 재해 상황에서 실제로 데이터를 되살릴 수 있는지를 가른다는 뜻이에요. 리눅스 서버 백업 도구로는 오래된 rsync부터 비교적 최근에 나온 Restic, BorgBackup까지 여러 선택지가 있는데, 이 셋은 겉보기엔 비슷해 보여도 설계 철학이 완전히 달라요.
rsync는 정확히 무슨 일을 하는 도구일까?
rsync는 원본과 대상 디렉터리를 비교해서 달라진 부분만 효율적으로 전송하는 동기화 도구로, 1996년에 처음 나온 이래 리눅스 서버 관리에서 가장 오래 살아남은 유틸리티 중 하나예요. rsync -avz 한 줄이면 서버 간에 파일을 빠르게 복사할 수 있어서 지금도 배포 스크립트나 간단한 동기화 작업에 널리 쓰이지만, 결정적인 한계가 있어요. rsync는 대상 디렉터리를 원본과 ‘똑같이’ 맞추는 게 목적이라서 버전 이력을 남기지 않고, 실수로 원본 파일을 삭제한 뒤 동기화를 돌리면 백업본에서도 그 파일이 함께 지워져요. 즉 rsync는 재해 복구용 백업이라기보다는 파일 전송·미러링 도구에 훨씬 가까워요.
Restic은 rsync와 근본적으로 뭐가 다를까?
Restic은 파일을 고정 크기가 아닌 가변 크기 청크로 쪼개 저장하고, 이미 저장된 청크와 내용이 같으면 다시 저장하지 않는 콘텐츠 기반 중복 제거를 핵심 구조로 삼아요. 그 덕분에 매일 전체 백업을 돌려도 실제로 바뀐 데이터양만큼만 저장 공간을 차지하고, 스냅샷이라는 단위로 시점별 복구가 가능해서 “어제 삭제한 파일을 되살리고 싶다” 같은 상황에도 바로 대응할 수 있어요. 모든 데이터는 저장소에 올라가기 전에 클라이언트에서 먼저 암호화되기 때문에, S3나 백블레이즈 같은 외부 클라우드 저장소를 백업 대상으로 써도 그 업체조차 내용을 들여다볼 수 없어요. Go 언어로 작성돼 리눅스, 윈도우, macOS를 가리지 않고 동일한 바이너리 하나로 동작한다는 점도 실무에서 크게 편한 부분이에요.
BorgBackup은 Restic과 비교해 뭐가 강점일까?
BorgBackup도 Restic과 마찬가지로 청크 기반 중복 제거와 암호화를 지원하지만, 압축 알고리즘과 청크 캐싱을 더 정교하게 튜닝해서 반복 백업에서의 속도와 저장 공간 효율이 대체로 더 뛰어나요. 다만 Restic이 SFTP·S3·백블레이즈 등 다양한 원격 백엔드를 폭넓게 지원하는 것과 달리, Borg는 SSH 기반 원격 저장소 위주로 설계돼 있어서 클라우드 오브젝트 스토리지를 직접 백업 대상으로 쓰려면 rclone 같은 추가 도구를 조합해야 해요. borg prune 명령으로 보관 정책(일간 7개, 주간 4개, 월간 6개처럼)을 세밀하게 관리할 수 있다는 점도 장기 백업 운영에서 강점으로 꼽혀요.
3-2-1 규칙은 도구 선택과 어떤 관계가 있을까?
3-2-1 백업 규칙은 원본을 포함해 데이터를 3개 복사본으로, 서로 다른 2종류의 매체에, 그중 1개는 물리적으로 다른 장소에 두라는 원칙이에요. 이 규칙을 실제로 구현하려면 로컬 스냅샷(Btrfs와 Snapper 조합 같은)과 원격 백업 도구를 함께 써야 하는데, 로컬 스냅샷은 실수로 파일을 지웠을 때 즉시 복구하는 용도로, Restic이나 Borg 같은 원격 백업은 서버 전체가 사라지는 재해 상황에 대비하는 용도로 역할이 나뉘어요. 결국 파일시스템 스냅샷과 원격 백업 도구는 경쟁 관계가 아니라 서로 다른 위협에 대응하는 상호 보완 관계예요.
백업 도구, 결국 뭘 선택해야 할까?
용도별로 정리하면 선택이 한결 쉬워져요.
- 서버 간 단순 파일 동기화, 배포 스크립트: 지금도 rsync가 가장 빠르고 간단해요.
- 개인 서버나 ARM 기반 소형 서버의 정기 백업: 설정이 직관적이고 원격 백엔드가 다양한 Restic이 편해요.
- 저장 공간 효율과 세밀한 보관 정책이 중요한 대규모 서버: 압축·중복 제거 성능이 더 뛰어난 Borg가 유리해요.
- RHEL 계열처럼 안정성이 최우선인 프로덕션 서버: 스냅샷 기반 로컬 복구와 Restic/Borg 원격 백업을 함께 구성하는 이중화가 안전해요.
어떤 도구를 고르든 마지막으로 반드시 해야 할 일이 하나 남아 있어요. 바로 복구 테스트예요. 백업 파일이 있다는 사실과 그 파일로 실제 복구가 된다는 사실은 전혀 다른 이야기라서, 정기적으로 실제 복구를 리허설해보지 않으면 정작 필요한 순간에 백업이 무용지물이었다는 걸 뒤늦게 깨닫게 될 수도 있어요.
자주 묻는 질문
Q1. rsync만으로 제대로 된 백업이라고 할 수 있나요?
rsync는 원본과 대상을 동기화할 뿐 버전 이력을 관리하지 않기 때문에, 실수로 파일을 지우고 바로 동기화하면 백업본에서도 함께 사라져서 엄밀히는 백업보다 미러링에 가까워요.
Q2. Restic과 Borg 중 뭐가 더 빠른가요?
초기 전체 백업 속도는 비슷하지만, 이후 증분 백업에서는 청크 캐싱 방식이 정교한 Borg가 대체로 더 빠른 편이에요.
Q3. 백업 파일이 암호화되어 있으면 클라우드에 올려도 안전한가요?
네, Restic과 Borg 모두 클라이언트 측에서 암호화한 뒤 전송하기 때문에 저장소를 제공하는 클라우드 업체조차 내용을 볼 수 없어요.
Q4. 중복 제거(deduplication)가 왜 중요한가요?
매일 백업을 돌려도 실제로 바뀐 데이터만 저장하기 때문에, 전체 백업을 매번 새로 저장하는 방식보다 디스크 사용량과 백업 시간을 크게 줄여줘요.
Q5. 3-2-1 백업 규칙이 뭔가요?
원본을 포함해 데이터를 3개 복사본으로, 서로 다른 2종류의 매체에, 그중 1개는 물리적으로 다른 장소에 보관하라는 백업 원칙이에요.
Q6. 백업만 해두면 복구 테스트는 안 해도 되나요?
아니요, 실제로 복구가 되는지 정기적으로 테스트하지 않으면 백업 파일 자체가 손상돼 있어도 알아챌 방법이 없어서 반드시 주기적인 복구 리허설이 필요해요.
htop, btop, Netdata, 리눅스 서버 모니터링 도구 비교
터미널에서 즉시 확인하는 htop·btop과 웹 대시보드로 기록을 남기는 Netdata·Prometheus+Grafana, 개인 서버와 프로덕션 환경에 맞는 모니터링 도구를 비교합니다.
BFQ 비디오 재생 벤치마크: 반응성을 높인 대가로 프레임이 얼마나 떨어졌나
BFQ+의 low-latency 휴리스틱이 반응성을 높이는 대신 소프트 실시간 애플리케이션에 어떤 지연 시간 대가를 요구하는지 논문의 비디오 재생 벤치마크로 확인합니다.
NCQ가 켜지면 디스크 스케줄러 보장이 무너지는 이유 (BFQ 논문 실측)
Native Command Queueing이 활성화되면 BFQ, CFQ 같은 OS 스케줄러의 공정성·지연 보장이 어떻게 무력화되는지 논문의 실측 데이터로 설명합니다.