현재 백업이 없다. 이 문서는 그것을 세우기 위한 실행 절차다.
디스크 한 장이 죽으면 가족 사진, Vaultwarden 비밀번호, Paperless 서류,
컨테이너 20개의 설정이 한꺼번에 사라진다. Scrutiny 는 "죽을 것 같다"를 알려줄 뿐
복구해주지 않는다.
df -h /volume1
sudo du -sh /volume1/docker
sudo du -sh /volume1/@docker/volumes
sudo du -sh /volume1/001_PIC
⚠️ 기존에 쓰던 디스크를 재활용한다면 안의 자료를 먼저 옮길 것. 포맷하면 전부 지워진다.
DSM 패키지 센터에서 Hyper Backup 설치 후:
001_PIC(사진), 010_MV, 020_MS, docker, homesHyper Backup 은 DSM 설정까지 백업할 수 있는 것이 장점이다.
NAS 를 통째로 다시 세울 때 결정적이다.
Hyper Backup 으로는 /volume1/@docker/volumes(네임드 볼륨 실체) 를 선택하기 번거롭다.
지금 대부분의 컨테이너 데이터가 여기 있으므로 별도로 챙긴다.
services:
kopia:
image: kopia/kopia:latest
container_name: kopia
hostname: nas
restart: unless-stopped
ports:
- "51515:51515"
command:
- server
- start
- --disable-csrf-token-checks
- --insecure
- --address=0.0.0.0:51515
- --server-username=admin
- --server-password=<비밀번호>
volumes:
- kopia_config:/app/config
- kopia_cache:/app/cache
- /volume1/docker:/data/docker:ro
- /volume1/@docker/volumes:/data/docker-volumes:ro
- /volumeUSB1/usbshare:/repository
volumes:
kopia_config:
kopia_cache:
외장 HDD 경로(
/volumeUSB1/usbshare)는 실제 마운트 경로로 바꿀 것.ls /volumeUSB*
http://192.168.0.240:51515 접속 → 저장소 생성 → 스냅샷 대상으로 /data/docker 와
/data/docker-volumes 지정 → 매일 실행.
Kopia 는 중복 제거 + 압축 + 클라이언트측 암호화를 하므로,
나중에 클라우드로 한 벌 더 보낼 때도 내용이 노출되지 않는다.
백업은 복원해 본 적이 있어야 백업이다.
이걸 안 해두면 정작 필요할 때 안 되는 것을 그때 알게 된다.
3벌 — 원본 + 백업 2개
2매체 — 서로 다른 종류 (NAS + 외장 HDD)
1외부 — 한 벌은 집 밖에 (클라우드, 또는 회사 서랍의 디스크)
집에 불이 나거나 도둑이 들면 NAS 와 옆의 외장 HDD 가 같이 사라진다.
대체 불가능한 데이터(사진, Vaultwarden)만이라도 클라우드에 한 벌 올려둔다.
Kopia 가 암호화해서 보내므로 클라우드 사업자는 내용을 볼 수 없다.
/volume1/001_PIC — 사진 (대체 불가)/volume1/@docker/volumes — Vaultwarden(비밀번호), Paperless(서류), Memos, Wiki.js DB/volume1/docker — 컨테이너 설정, _stacks, _docsPortainer 의 스택 정의는 Portainer DB 안에만 있다.
볼륨 백업에 포함되기는 하지만, 사람이 읽을 수 있는 형태로 남기는 편이 복구가 빠르다.
sudo mkdir -p /volume1/docker/_stacks
sudo chmod 700 /volume1/docker/_stacks
스택을 만들거나 고칠 때마다 YAML 을 여기에 저장한다.
_stacks 에 저장