SLV Backup - 빠른 시작

🗄️ SLV Backup

SLV Backup은 restic을 사용해 노드의 암호화된 증분 백업을 만듭니다. 모든 데이터는 업로드 전에 클라이언트 측에서 AES-256으로 암호화되므로, 서버는 평문 데이터를 볼 수 없습니다.
레거시 모드: SLV는 암호화되지 않은 tar+zstd 백업(--restic 없이)도 지원합니다. 새로 만드는 백업에는 모두 --restic 사용을 강력히 권장합니다.

사전 요구 사항

  • 대상 노드에 SLV CLI 설치
  • sudo 권한 (전체 디스크 백업에 필요)
  • 활성 스토리지 구독이 있는 계정으로 로그인 (slv login)
  • restic 설치 (apt install restic)

암호화된 백업 만들기

bash
sudo slv backup create --restic --yes
🗄️  SLV Backup (restic mode)

  Region:    default
  Retention: 7 days

⚠️  Restic encryption password generated and saved to:
   /home/solv/.slv/restic-password
   BACK UP THIS FILE — without it, backups cannot be restored.

🔧 Initializing restic repository (if needed)...
📦 Creating restic backup...

Files:       151263 new,     0 changed,     0 unmodified
Dirs:        22486 new,     0 changed,     0 unmodified
Added to the repository: 4.107 GiB (1.837 GiB stored)

processed 151263 files, 4.366 GiB in 0:50
snapshot b6925e6d saved

✅ Restic backup complete
🧹 Applying retention policy (keep within 7 days)...
✅ Backup complete.

첫 실행 시 일어나는 일

  1. 무작위 암호화 비밀번호가 생성되어 ~/.slv/restic-password에 저장됩니다 (mode 0600)
  2. ERPC Cloud Storage에 restic 리포지토리가 초기화됩니다
  3. 디스크 전체가 백업됩니다 (시스템 의사 파일 시스템 제외)

이후 실행

변경된 파일만 업로드됩니다 (증분). 중복 제거로 스토리지 비용을 낮게 유지합니다.

백업 목록

bash
sudo slv backup list
클라우드 스토리지에 있는 restic 스냅샷과 레거시 tar 백업을 모두 표시합니다.

백업에서 복원

최신 스냅샷 복원:
bash
sudo slv backup restore latest
특정 스냅샷 복원:
bash
sudo slv backup restore b6925e6d
레거시 tar 백업 복원:
bash
sudo slv backup restore backup-mynode-20260318.tar.zst

백업 무결성 검증

restic check를 직접 실행하려면 스토리지 액세스 키로 연결합니다. 이 엔드포인트에서는 RPC API 키가 허용되지 않습니다.
  1. Storage 페이지를 열고 스토리지 액세스 키로 이동한 다음 키 발급을 클릭합니다. check에는 읽기 전용이면 충분합니다.
  2. 키를 만든 직후에 표시되는 restic 리포지토리 URL을 복사합니다. 한 번만 표시되므로 잃어버리면 키를 폐기하고 새 키를 발급하세요.
  3. 그 URL로 check를 실행합니다.
bash
sudo restic -r '<RESTIC_REPOSITORY_URL>' \
  --password-file ~/.slv/restic-password check

자동 백업 설정 (Cron)

bash
sudo slv backup create --restic --cron daily
주기설명
daily하루에 한 번 실행
weekly일주일에 한 번 실행
monthly한 달에 한 번 실행
offcron 작업 제거

보존 기간

기본적으로 7일보다 오래된 스냅샷은 자동으로 정리됩니다:
bash
sudo slv backup create --restic --retention 14

제외 경로 사용자 지정

현재 제외 목록 보기:
bash
slv backup create --list-excludes
제외 경로 추가:
bash
sudo slv backup create --restic --exclude /home/solv/ledger --exclude /home/solv/snapshots

암호화 및 보안

항목세부 내용
암호화AES-256-CTR + Poly1305-AES (클라이언트 측)
무결성SHA-256 콘텐츠 주소 지정 스토리지
중복 제거콘텐츠 정의 청킹
서버 측 가시성없음 — 서버는 암호화된 blob만 볼 수 있습니다
비밀번호 파일~/.slv/restic-password (mode 0600)
백업에서 제외~/.slv/restic-password, ~/.slv/api.yml, ~/.slv/backup.env
⚠️ 중요: ~/.slv/restic-password 파일은 별도로 백업하세요. 이 파일이 없으면 백업을 다시는 복구할 수 없습니다.

옵션 참조

옵션설명
--resticrestic으로 암호화된 증분 백업 (권장)
-r, --region <region>스토리지 리전 (기본값: eu)
--exclude <path>추가로 제외할 경로 (반복 지정 가능)
--include <path>기본 제외 목록에서 제거 (반복 지정 가능)
--list-excludes현재 제외 목록을 표시하고 종료
--retention <days>N일보다 오래된 스냅샷 정리 (기본값: 7)
--cron <interval>cron 작업 설정 (daily/weekly/monthly/off)
-y, --yes확인 프롬프트 건너뛰기
--upload레거시: tar 백업을 클라우드 스토리지에 업로드
-o, --output <path>레거시: tar 백업의 출력 파일 경로

레거시 모드 (tar+zstd)

하위 호환성을 위해 암호화되지 않은 tar 백업도 계속 지원합니다:
bash
sudo slv backup create --upload --yes     # Unencrypted tar backup
참고: 레거시 백업은 암호화되지 않습니다. 새로 만드는 백업에는 모두 --restic으로 전환할 것을 권장합니다.