Files
obsidian/infra/backup.md

3.3 KiB

title, updated, tags
title updated tags
백업 파이프라인 2026-03-22
infra
backup

incus 백업 (inbest 데이터)

3단계 백업 파이프라인. 소스: incus-kr2 inbest 프로젝트 inbest-data 커스텀 볼륨.

1. rsync → NAS

  • 호스트: incus-kr2
  • 스크립트: /usr/local/bin/backup-inbest.sh
  • systemd: backup-inbest.timer / backup-inbest.service
  • 스케줄: 매일 03:00 (±5분)
  • 소스: /var/lib/incus/storage-pools/default/custom/inbest_inbest-data/
  • 대상: kaffa@192.168.205.100:/volume1/incus/inbest/
  • 제외: */data/session/
  • SSH 키: /home/kaffa/.ssh/id_ed25519
  • 옵션: rsync -rlz --omit-dir-times --delete (Synology 퍼미션 호환)

2. btrfs 스냅샷 (NAS)

  • rsync 완료 직후 자동 실행 (같은 스크립트)
  • 스냅샷 경로: /volume1/incus/.snapshots/incus-YYYYMMDD
  • 타입: 읽기 전용 (btrfs subvolume snapshot -r)
  • 보관: 3일 초과 자동 삭제
  • 용도: 논리적 복구 (실수 삭제/덮어쓰기), NAS 내부에서만 유효

3. R2 sync (NAS → Cloudflare R2)

  • 호스트: Synology NAS (192.168.205.100)
  • systemd: r2-incus-backup.timer / r2-incus-backup.service
  • 스케줄: 매일 06:00 (±5분)
  • 소스: /volume1/incus/
  • 대상: R2 버킷 incus-backup (APAC 리전)
  • 제외: .snapshots/**, @eaDir/**
  • rclone: Docker (rclone/rclone:latest), 설정 /volume1/docker/rclone/rclone.conf
  • 성능: transfers 32, checkers 32, 첫 전체 업로드(7.97GB) 약 12분
  • TimeoutStartSec: 3600 (1시간)

NAS 설정 메모

  • Synology sudo PATH 문제: /etc/sudoers.d/pathsecure_path 추가 (2026-03-17)
  • NAS /volume1/incus/inbest/ 소유자: kaffa:users (rsync 쓰기용)
  • btrfs subvolume: /volume1/incus (ID 741)

복구 시나리오

상황 복구 방법
파일 실수 삭제/덮어쓰기 NAS btrfs 스냅샷에서 복원
NAS 장애 R2에서 rclone copy로 복원
kr2 장애 NAS rsync 미러에서 복원

etcd 스냅샷 백업

K3s datastore인 외부 etcd 클러스터의 스냅샷 백업.

1. etcd snapshot (hp2 etcd 컨테이너)

  • 호스트: incus-hp2, etcd 컨테이너
  • 스크립트: /usr/local/bin/etcd-backup.sh
  • systemd: etcd-backup.timer / etcd-backup.service
  • 스케줄: 매일 03:30 (±5분)
  • 출력: /backup/etcd-YYYYMMDD_HHMMSS.db (컨테이너) = /opt/etcd-backup/ (호스트)
  • 보관: 7일 초과 자동 삭제
  • 크기: ~65MB

2. rsync → NAS (hp2 호스트)

  • 호스트: incus-hp2
  • 스크립트: /usr/local/bin/etcd-backup-sync.sh
  • systemd: etcd-backup-sync.timer / etcd-backup-sync.service
  • 스케줄: 매일 04:00 (±5분)
  • 소스: /opt/etcd-backup/
  • 대상: kaffa@192.168.9.100:/volume1/k3s-backup/etcd/
  • SSH 키: /home/kaffa/.ssh/id_ed25519
  • NAS IP: hp2에서는 192.168.9.100 사용 (kr2에서는 192.168.205.100)

3. R2 sync (기존 r2-backup.timer로 자동 포함)

NAS /volume1/k3s-backup/ → R2 k3s-backup 버킷 (매일 05:00)

k3s 백업 (기존)

  • 호스트: Synology NAS
  • systemd: r2-backup.timer / r2-backup.service
  • 스케줄: 매일 05:00 (±5분)
  • 소스: /volume1/k3s-backup/
  • 대상: R2 버킷 k3s-backup (ENAM 리전)
  • rclone: Docker, transfers 4, checkers 8