17편에서 이미 백업을 한 번 써봤다. 그런데 Proxmox Backup Server(PBS)는 왜 필요할까?
이 질문은 예전에도 Thuận Bùi 형님 블로그에서 다뤄졌다.

PBS 선택: PVE에 VM으로? 독립 PBS?
나도 꽤 고민했다. Proxmox 포럼에서는 PBS를 VM에서 돌리지 말라는 Myth가 있었고,
공식 포럼에서도 staff가 권장하지 않았다.

선배들에게도 물어봤다.

결정적으로, 예전에 같이 프로젝트 했던 친구가 VPSTTT의 3개월 1TB 무료 버킷 소식을 알려줬다. 버킷은 PBS에서 쓰는 용도라 PBS로 가기로 했다.
게다가 Thuận Bùi 형님의 글을 보니 PBS를 Docker+VPS에서 돌리는 게 가능했다. 그래서 1년짜리 VPS에 올리기로 결정했다.
설치 진행
나는 Hypercore VPS를 사용했다. (Hypercore는 내 선택 =))
Hypercore VPS는 Proxmox 기반이라, Debian VM 위에서 Docker를 돌리는 구조다. PVE에서 LXC 위에 Docker를 올리는 것과 크게 다르지 않다.
사용한 repo: https://github.com/ayufan/pve-backup-server-dockerfiles
PBS용 폴더와 docker-compose.yml 생성
mkdir ~/pbs
cd ~/pbs
nano docker-compose.yml
내용은 다음과 같다.
services:
pbs:
image: ayufan/proxmox-backup-server:latest
ports:
- 8007:8007
mem_limit: 2G
volumes:
- ./pbs_etc:/etc/proxmox-backup
- ./pbs_logs:/var/log/proxmox-backup
- ./pbs_lib:/var/lib/proxmox-backup
- ./backups:/backups
tmpfs:
- /run
cap_add: # smartctl support
- SYS_RAWIO
#devices:
# - /dev/sda
restart: unless-stopped
stop_signal: SIGHUP
VPS는 가상 디스크라 devices:는 주석 처리했다. 환경에 맞게 수정 가능하다.
접속 방법은 3가지.
방법 1: VPN 사용
방법 2: Firewall 허용 후 http://<VPS-IP>:8007로 접속
sudo ufw allow 8007/tcp
sudo ufw reload
sudo ufw status
방법 3: Cloudflared
처음엔 Cloudflared를 썼지만, 나중엔 Token Verify 문제가 있어 PVE↔PBS 연결이 안 됐다. 그래서 추천하지 않는다.
PBS 첫 로그인
기본 계정 정보:
Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server

로그인 후 Access Control에서 Add를 눌러 새 계정을 만들고,

Permission 탭에서 Add로 admin 권한을 부여한다.

(이 부분은 Thuận Bùi 형님의 글 일부를 참고했다.)
S3 스토리지 추가
PBS UI에서 다음 위치로 이동한다.

여기에 S3 제공 업체의 정보를 입력한다. 나는 VPSTTT의 MinIO를 사용했다.

포트는 9000을 사용했다.

PBS에 Datastore 생성
왼쪽 메뉴에서 Add Datastore를 눌러 다음과 같이 입력한다. Backing Path는 /backups이며, docker-compose.yml 11번째 줄에서 선언한 경로다.

Datastore가 생성되면 Show Connection Information에서 접속 정보를 확인한다. IP로 바로 접속할 수도 있지만, 나는 도메인을 쓰고 싶어서 다음 단계로 진행했다.

Caddy로 Reverse Proxy 구성
Caddy를 한 번 써보고 싶어서 선택했다. 자동으로 SSL을 받아준다.
sudo apt update -y
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update -y
sudo apt install -y caddy
sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl status caddy --no-pager
nano /etc/caddy/Caddyfile 후 아래처럼 수정:
도메인-이름 {
reverse_proxy https://127.0.0.1:8007 {
transport http {
tls_insecure_skip_verify
}
}
}
그리고 PBS의 docker-compose.yml에서 포트를 localhost로 바꾼다.
services:
pbs:
image: ayufan/proxmox-backup-server:latest
ports:
- 127.0.0.1:8007:8007
mem_limit: 2G
volumes:
- ./pbs_etc:/etc/proxmox-backup
- ./pbs_logs:/var/log/proxmox-backup
- ./pbs_lib:/var/lib/proxmox-backup
- ./backups:/backups
tmpfs:
- /run
cap_add: # smartctl support
- SYS_RAWIO
#devices:
# - /dev/sda
restart: unless-stopped
stop_signal: SIGHUP
도메인 관리에서 A record를 VPS IP로 지정한다.

끝.
PBS를 PVE에 연결

앞에서 확인한 Show Connection Information을 참고해 연결하면 된다.
사용 방법은 17편과 비슷하지만, 백업 대상 디스크를 PBS로 선택하는 점이 다르다.
성공을 기원한다!
Comments
Join the conversation
Leave a comment
No comments yet
Be the first to share your thoughts!