본문 바로가기

Borg Backup 이란 BorgBackup으로 백업 환경 구축하기

액트 2025. 5. 23.
반응형

기업 IT 환경에서 데이터 백업은 선택이 아닌 필수입니다. 특히 대규모 로그, DB 스냅샷, 코드 저장소 등 빈번한 백업이 요구되는 환경에서는 성능과 저장 효율, 보안성을 모두 만족하는 도구가 필요합니다. 이번 포스트에서는 중복 제거(Deduplication)암호화, 압축을 기본으로 지원하는 오픈소스 백업 솔루션, BorgBackup을 소개합니다.

BorgBackup이란?

BorgBackup(이하 Borg)은 빠르고 효율적인 중복 제거 방식 백업 시스템입니다. 파일 시스템의 변경된 부분만 저장하고, 압축과 암호화, 오프사이트 백업도 지원하여 다양한 운영 환경에 적합합니다.

주요 특징:

  • ✅ 중복 제거 기반 효율적인 스토리지 사용
  • 🔐 AES-256 암호화를 통한 보안성 확보
  • 📦 다양한 압축 알고리즘 지원 (zlib, lz4, zstd 등)
  • 🔁 증분 백업 및 자동화 스크립팅 용이
  • 🔍 마운트 기능으로 백업 내역 탐색 가능 (FUSE)

설치 방법

Ubuntu / Debian

sudo apt update
sudo apt install borgbackup

RHEL / CentOS / Rocky Linux

sudo dnf install epel-release
sudo dnf install borgbackup

사용 예제

1. 저장소 초기화

borg init --encryption=repokey /backup/borgrepo
  • --encryption=repokey 옵션은 로컬에 키를 저장하는 기본 방식입니다. 필요에 따라 keyfile 또는 none도 선택 가능.

2. 백업 실행

borg create --stats /backup/borgrepo::2025-05-23-backup /home /etc /var/log
구성 요소 설명
borg BorgBackup 명령어 시작
create 새로운 백업(아카이브)을 생성하는 명령
--stats 백업 결과에 대한 통계를 출력함 (압축률, 파일 수, 소요 시간 등)
/backup/borgrepo Borg 저장소(repository) 경로. 이 위치에 모든 백업이 저장됨
::2025-05-23-backup 저장할 백업 아카이브(스냅샷)의 이름. 날짜 형식으로 식별 가능
/home /etc /var/log 백업할 디렉토리 목록. 이 경우, 세 디렉토리가 백업 대상임

Borg는 여기서 어떤 일을 하나요?

  • 중복 제거(deduplication): 동일한 파일이나 블록이 이미 저장돼 있다면 중복 없이 처리하여 용량을 절약합니다.
  • 압축: 기본값으로 압축도 수행합니다. --compression 옵션 없이 실행하면 lz4 등 기본 설정 사용.
  • 암호화 (옵션에 따라): 저장소가 암호화되어 있다면, 백업된 데이터는 암호화된 상태로 저장됩니다.
  • 증분 처리: 이미 같은 파일이 이전 아카이브에 존재한다면, 변경된 파일만 새로 저장됩니다.

참고: 자주 추가되는 옵션들

옵션 설명
--compression lz4 더 빠른 백업을 위해 압축 알고리즘 지정
--progress 진행률 표시
--exclude 백업에서 특정 파일/폴더 제외

3. 백업 아카이브 목록 조회

borg list /backup/borgrepo

예시 출력:

bkdata-2025-05-23      Fri, 2025-05-23 03:00:03 [xyz1234567]
bkdata-2025-05-24      Sat, 2025-05-24 03:00:05 [abc9876543]

특정 백업 아카이브 내부 파일 목록 보기

borg list /backup/borg_repo::bkdata-2025-05-23

 예시 출력:

drwxr-xr-x root   root      0 Wed, 2025-05-22 18:00:00 data/
-rw-r--r-- mysql  mysql  1.2M Wed, 2025-05-22 18:00:01 data/db.sql
-rw-r--r-- root   root   3.4K Wed, 2025-05-22 18:00:02 data/info.txt

4. 백업 복원

borg extract /backup/borgrepo::2025-05-23-backup
  • 아카이브 전체가 현재 디렉토리로 풀립니다.
  • 원본 디렉토리 구조가 유지됩니다.

5. 특정 파일만 복원

borg extract /backup/borgrepo::2025-05-23-backup etc/hosts

현재 디렉토리에 etc/hosts 파일이 복원됩니다.

FUSE로 마운트해서 탐색하기 (가장 직관적)

sudo mkdir /mnt/borg
borg mount /backup/borg_repo::bkdata-2025-05-23 /mnt/borg

이제 /mnt/borg 디렉토리에서 백업 내용을 ls, cat, cp 등으로 탐색 가능

마운트 해제

borg umount /mnt/borg

백업 자동화 스크립트 예시

#!/bin/bash

BACKUP_SRC="/home /etc"
REPO="/backup/borgrepo"
ARCHIVE_NAME="$(date +%Y-%m-%d-%H%M)"

borg create --verbose --filter AME --stats --show-rc \
  "$REPO::$ARCHIVE_NAME" $BACKUP_SRC

borg prune -v --list "$REPO" --keep-daily=7 --keep-weekly=4 --keep-monthly=6

 

백업 보존 설정

borg prune -v --list "$REPO" --keep-daily=7 --keep-weekly=4 --keep-monthly=6 명령어 설명

  • /backup/borg_repo : 저장소 경로
  • --keep-daily=7 : 최근 7일치 일간 백업 보존
  • --keep-weekly=4 : 최근 4주치 주간 백업 보존
  • --keep-monthly=6 : 최근 6개월치 월간 백업 보존

 

Tip: cron 또는 systemd timer를 활용하여 자동화하면 더 효과적입니다.

실무 팁

  • 💡 백업 저장소는 다른 디스크/서버에 구성하여 물리적 고장에도 대비하세요.
  • 🔐 저장소 암호화는 필수! 특히 클라우드/외부 NAS에 저장 시 데이터 유출 방지 필수입니다.
  • 🧪 정기적으로 복원 테스트를 하여 실제 복구 가능한지 확인하세요.
  • 🌐 오프사이트 백업 시에는 SSH를 활용한 remote repo 방식도 지원됩니다.

결론

BorgBackup은 단순한 백업을 넘어 효율성과 보안성을 모두 갖춘 강력한 도구입니다. 특히 증분 백업과 중복 제거, 암호화, 자동화가 중요한 IT 인프라 환경에서 그 진가를 발휘합니다. 기업 및 개인 모두에게 추천할 수 있는 오픈소스 백업 솔루션입니다.

관련 링크:

반응형

댓글