[홈서버] Proxmox Backup Server
1. 요구사항
- 물리적으로 분리된 하드웨어에 백업.
- 중요한 데이터는 최소 주 1회 백업.
- 백업 자동화.
- 비용 최소화
- 소음 최소화
Proxmox Backup Server
Proxmox Backup Server is an enterprise backup solution, for backing up and restoring VMs, containers, and physical hosts.
www.proxmox.com
증분 백업을 위해서 Proxmox Backup Server를 설치한다.
(Proxmox, PBS 모두 오픈소스다!)
하드웨어로는 집에서 놀고 있는 라즈베리파이 3B+와 외장하드를 사용한다.
지금은 PBS를 Proxmox의 VM으로 생성하지만 가능한 빠른 시일 내로 PBS를 Proxmox에서 분리해야 한다.
전용 하드웨어 또는 최소한 다른 하이퍼바이저로 옮겨야 한다.
2. OMV
가. omv 설치
집에서 놀고 있는 라즈베리 3B+에 PiOS Lite 설치. (생략)
이후에 Arm 용 OMV 설치.
역시 집에서 놀고 있는 1TB 외장하드 연결.
전용 충전기와 발열 해소를 위해서 케이스 구매.
나. 외장하드 mount
외장하드 권한 수정 → vim /etc/fstab
→ umask=000
추가.
exFat과 같은 비리눅스 파일시스템은 NFS로 공유할 수 없음.
대신에 SMB로 공유한다.
3. PBS
가. PBS 설치
sudo apt install cifs-utils -y
PBS에 cifs-utils
설치.
mkdir /mnt/pve/PBS_Backup_SMB
chmod -R 777 /mnt/pve/PBS_Backup_SMB
PBS에 마운트 할 디렉터리 생성 후 권한 수정.
vim /root/.PBS_Backup_SMB
username=omv-user-name
password=omv-user-password
SMB 연결을 위한 자격증명을 저장할 /root/.PBS_Backup_SMB
생성.
(구체적인 경로는 자유)
chmod 400 /root/.PBS_Backup_SMB
민감한 정보임으로 권한을 최소로 부여.
vim /etc/fstab
재부팅 시에도 자동으로 마운트 하기 위해서 FileSystemTable 수정.
omv는 구체적인 절대경로가 아니라 //ip/공유폴더이름
으로 작성해야 함.
mount -a
df -h
마운트 확인.
나. 데이터스토어 생성.
PBS 웹 GUI에서 데이터스토어에 추가.
데이터스토어 생성 확인.
(생성에 무려 이틀 걸림ㄷㄷㄷ… SMB + 라즈베리파이의 최악의 조합.)
여유가 생기는 대로 스토리지 서버를 구축하고 옮겨야겠다.
다. 사용자 추가
사용자 추가.
사용자 백업 권한 부여.
라. PBS 등록
PBS fingerprint 복사.
Proxmox에 PBS 등록.
Proxmox가 속한 Default network와 PBS가 속한 Infra 5 subnet 간의 통신은 방화벽에서 차단하고 있음.
Proxmox와 PBS 간의 방화벽을 연다.
연결 완료.
4. 백업 설정
가. 백업 생성
반드시! PBS는 백업 대상에서 제외한다!
(필요하다면 PBS는 수동으로 Proxmox 내부에 따로 백업할 예정)
월, 수, 금 새벽 3시에 스냅샷을 남기도록 설정했다.
나. Prune & Garbage Collection
- Prune
: 백업 정책에 따라서 오래된 스냅샷들을 삭제하는 작업.
: 하지만, 백업 데이터 자체(chunks)는 삭제되지 않음. - GC(Garbage Collection)
: Prune 이후 사용되지 않는 chunk(데이터 조각)들을 삭제하는 작업.
: 더 이상 참조되지 않는 데이터를 완전히 정리하여 디스크 공간을 확보.
Prune → GC 순서로 실행해야 저장 공간 절약 가능!
GC는 기본적으로 하루에 한 번 동작하게 설정되어 있다.
Prune만 추가하면 된다.
Proxmox Backup Server Prune Simulator
pbs.proxmox.com
Prune 시뮬레이터가 있으니 사용해 보며 동작을 파악하면 되겠다.