오라클클라우드 VM에서 로컬 NAS로 백업하기.(Kopia Docker로 백업하기)

안녕하세요. 달소입니다.

이번글에서는 앞서 소개해드린 여러가지 솔루션을 결합해서 오라클클라우드의 데이터를 로컬 NAS로 안전하게 백업관리하는방법을 진행해보겠습니다.

오라클클라우드의 경우 무료인스턴스이다보니 갑자기 중지될수도있고,, 백업의 중요성은 아무리 강조해도 지나치치않기때문에 한번쯤 고려해보시는걸 추천드립니다.

사전 준비과정

Kopia에 대해서 알아보기.

오픈소스 백업 프로젝트 Kopia[서버 구축(Self-Hosted)] 달소 2023.09.18  안녕하세요. 달소입니다.   이번에 소개해드릴 오픈소스 백업 솔루션은 Kopia ...

오라클클라우드와 로컬 NAS간 NFS 연동.

Tailscale을 이용한 Oracle Cloud 와 NAS간 NFS 연...[서버 구축(Self-Hosted)] 달소 2023.09.19  안녕하세요. 달소입니다.   요번에는 내부에 구축해놓은 NAS의 NFS와 오라클클...

여기까지했으면 rsync로도 백업할 수 있겠지만 kopia로 백업한다면 스냅샷방식으로 데이터를 안전하게 백업할 수 있습니다.

Kopia Docker로 백업하기

kopia의 경우 바이너리나 패키지로도 설치가 가능하지만 arm환경때문인지,, 잘 작동을 안해서

docker형식으로 진행해봤습니다.

작동하면서 나오는 cache,logs 등등이 저장될 디렉터리를 먼저 생성해주겠습니다.

mkdir -p /kopia

cd /kopia

vi docker-compose.yml

그리고 제가 작성해놓은걸 약간만 수정해주시면됩니다.

server username/pw는 웹접속시 사용할 계정

environmnt에 있는 건 레포의 계정명/pw입니다.

레포의 계정명은 root@[hostname] 으로 작성해주시면되고 pw는 레포지토리에서 사용할 pw로 써주시면됩니다.

나머지 볼륨들은 주석처리된것들을 봐주시면되는데 /data 가 백업할 데이터라고 보시면되고

/mnt/nas:/repository가 원격 NFS 저장소로 지정할것입니다.

version: '3.7'
services:
   kopia:
       image: kopia/kopia:latest
       hostname: dalso-oracle-arm
       container_name: Kopia
       restart: unless-stopped
       ports:
           - 51515:51515
       # Setup the server that provides the web gui
       command:
           - server
           - start
           - --disable-csrf-token-checks
           - --insecure
           - --address=0.0.0.0:51515
           - --server-username=dalso
           - --server-password=password
       environment:
           # Set repository password
           KOPIA_PASSWORD: "repopass"
           USER: "root@dalso-oracle-arm"
       volumes:
           # Mount local folders needed by kopia
           - ./config:/app/config
           - ./cache:/app/cache
           - ./logs:/app/logs
           # Mount local folders to snapshot
           - /data:/data:ro
           # Mount repository location
           - /mnt/nas:/repository
           # Mount path for browsing mounted snaphots
           - ./tmp:/tmp:shared

구성되면 docker-compose up -d로 실행시켜주세요.

image.png.jpg

저같은경우 tailscale을 사용하기때문에 외부로 포트를 오픈하지않고 ip:51515로 접근했습니다.

image.png.jpg

그리고 레포연결을 진행합니다.

image.png.jpg
image.png.jpg

password는 환경변수에 적어놨던걸로 해주세요. 안그러면 재시작때 컨테이너 실행이 제대로 안됩니다.

image.png.jpg

이렇게 레포 생성 및 연결이 되었으면 백업을 진행 할 수 있습니다.

image.png.jpg

백업경로를 적고 Snapshot 을 해주시면 됩니다. 옵션은 되게 다양한데 크롬번역으로 잘..해주시면됩니다 ㅎ..

image.png.jpg
image.png.jpg
image.png.jpg

압축도 지원하는데 일반적으로는 zstd를 추천한다고하네요.

image.png.jpg

백업은 Tasks에서 확인가능합니다.

image.png.jpg

기본적으로 UI가 잘 구성되어있어서 크게 어려운 부분은없습니다.

시간대를 클릭하면 어떤 파일들이 백업됐는지 나오고 여기서 부분으로 설정값들을 받을수도있고

전체를 마운트해서 뽑을수도있습니다.

image.png.jpg

복구

docker에서는 Local Mount는 안되고 Directories로 복구가 가장 편합니다.

docker-compose.yml 에 restore 경로만 넣어주고 거기다가 마운트하면 됩니당.

image.png.jpg
image.png.jpg
image.png.jpg

참 쉽죠?!?

오라클클라우드의 데이터도 잘 지켜줍시당.