개요
홈서버에서 Proxmox를 운영하게 되면서, VM들에 대한 백업을 어떻게 할 것인가에 대해서 고민해봤다.
찾아보니 Proxmox의 VM들을 백업하는 여러 가지 방법들이 존재했다.
1. Proxmox 내장 백업 기능 (Vzdump
)
Proxmox는 기본적으로 vzdump
라는 백업 유틸리티를 제공한다. 이를 통해 VM이나 CT를 백업할 수 있다고 한다.
백업 방식으로는 스냅샷 방식 과 정지된 상태에서 백업 하는 두 가지 방식이 있고,
Proxmox 인터페이스에서 직접 백업 일정을 설정할 수도 있다.
2. NFS/CIFS에 백업
NAS와 같은 네트워크 스토리지를 Proxmox에 마운트한 후, VM을 해당 스토리지에 주기적으로 백업할 수 있다.
3. Proxmox Backup Server
Proxmox에서 제공하는 PBS
라는 별도의 백업 솔루션을 이용하여 백업하는 방식이다.
이 방법의 경우 VM의 증분 백업을 지원하고, 장기간 데이터를 효율적으로 저장하고 복구도 할 수 있는 백업 솔루션이라고 한다.
나에게는 변경 사항에 대해서 실시간으로 백업이 진행되는 것을 원했기에 증분 백업이 가능한 PBS
를 백업 방식으로 채택하였다.
Proxmox Backup Server
PBS는 VM, 컨테이너 및 물리적 호스트를 백업 및 복구하기 위한 백업 솔루션이다.
중복이 제거된 증분 백업을 지원함으로써 PBS는 네트워크 부하를 줄이고, 저장 공간을 절약할 수 있다고 한다.
또한 강력한 암호화와 데이터 무결성을 보장하는 방법을 사용하여 신뢰할 수 없는 대상에 대해서도 데이터를 안전하게 백업할 수 있다.
1. PBS 설치하기
설치 방법은 어렵지 않다.
기존에 VM을 생성해 올리는 것처럼 PBS도 동일하게 진행해주면 된다.
아래 작업들을 순서대로 따라해보자.
1-1. PBS ISO 다운로드
Proxmox Backup Server ISO
파일을 아래 링크에서 다운로드 받자.
https://www.proxmox.com/en/downloads
ISO를 다운로드 받았다면 Proxmox 시스템에 업로드 해주자.
1-2. VM 생성
생성할 노드를 선택하고 방금 업로드한 PBS ISO를 선택해준다.
PBS 자체의 데이터는 시놀로지의 NFS로 저장할 것이기 때문에 기본 스토리지는 적당하게만 설정해주자.
"일반"
"OS"
"시스템"
"디스크"
1-3. 설치
설치 과정은 Proxmox 설치 과정과 거의 비슷하다.
또한, PBS에서도 Raid나 ZFS 사용이 가능하다.
마지막으로 설정 값 확인 후, Install
클릭하면 설치가 진행된다.
설치가 완료되면 자동으로 재부팅되며, 다음과 같이 Web UI 주소가 출력된다.
출력된 IP와 포트로 접근하게 되면 아래처럼 관리 UI가 나올 것이다.
2. 데이터 스토어 추가
이제 앞서 설치한 PBS에서 데이터스토어로 시놀로지의 NFS를 사용해보자.
2-1. 시놀로지에서 NFS 저장소 만들기
먼저 사용중인 시놀로지에서 NFS 저장소를 생성해주자.
아래와 같이 파일 서비스 -> NFS 에서 NFS를 활성화 시켜주자.
PBS에서 마운트할 공유 폴더를 만들어보자.
생성한 공유 폴더에 편집 -> NFS 권한 -> PBS 서버의 IP 를 입력해주고 확인을 누르자.
그리고 아래의 NFS 마운트 경로를 까먹지 말고 확인해두자.
2-2. PBS에서 NFS 마운트
이제 PBS에서 위에서 생성한 시놀로지의 공유 폴더로 마운트해보자.
먼저 PBS의 shell로 이동한 뒤, 기본 패키지를 설치해주자.
apt install -y nfs-common
기본적으로 패키지가 설치 되어있지만, 기왕이면 최신 버전으로 만들어주자.
그리고 아래 과정을 수행하여 마운트할 디렉토리를 만들고 시놀로지의 /volume1/Proxmox_PBS
로 마운트 해주자.
mkdir -p /data/pbs_nfs
chown backup:backup /data/pbs_nfs
chmod 755 /data/pbs_nfs
mount <시놀로지IP>:<시놀로지 공유폴더 경로> /data/pbs_nfs
df -h | grep '/volume1'
touch /data/pbs_nfs/test.txt
시놀로지에서 Proxmox_PBS
공유 폴더를 들어가 확인해보면 다음과 같이 test.txt
파일이 생성된 것을 볼 수 있다.
이제 PBS가 재부팅 되더라도 NFS가 자동으로 마운트 되도록 아래 명령어를 실행하여 /etc/fstab
에 추가 설정을 진행해주자.
echo "<시놀로지IP>:<시놀로지 공유폴더 경로> /data/pbs_nfs nfs defaults 0 0" >> /etc/fstab
2-3. PBS에 NFS 데이터 저장소 추가
PBS 메인 UI에서 데이터스토어 -> 데이터스토어 추가 를 클릭 후 아래처럼 내용을 작성해주자.
- Backing Path: PBS의 마운트 경로를 입력
2-3-1. Permission Denied
아래와 같이 Permission denied
가 발생한다면 chmod 755
로 NFS쪽 권한 부여를 추가로 진행해주면 된다.
chmod 755 /data/pbs_nfs/.chunks
2-4. 사용자 계정 생성 및 권한 부여
사용자 계정을 만든 후 권한 부여를 진행하도록 하겠다.
환경설정 -> 접근 제어 -> 사용자 관리 -> 추가 -> 계정 추가
계정을 생성했으니 권한을 부여해주자.
데이터스토어 -> PBS_NFS -> 권한 -> 추가 -> 사용자 권한
2-4. Proxmox VE에 PBS 서버 추가
이제 마지막으로 Proxmox Backup Server를 Proxmox VE에 추가할 수 있도록 설정해보자.
먼저 PBS 서버의 쉘에서 아래 명령어를 실행해 인증서의 Fingerprint
값을 미리 복사해주자.
$ proxmox-backup-manager cert info | grep Fingerprint
Fingerprint (sha256): 9d:af:52:28:0e:07:b9:bc:77:4e:0d:ad:9d:49:10:db:3a:93:40:d0:2a:fd:ef:88:11:27:4f:d0:e5:a0:72:a7
그리고 Proxmox VE의 웹 UI로 이동하자.
그리고 데이터센터 -> 스토리지 -> 추가 -> Proxmox Backup Server 를 클릭하자.
- ID: 생성할 PBS 이름
- 서버: PBS 서버 IP
- 사용자 이름: PBS에서 생성했던
사용자 이름@pbs
- 패스워드: PBS에서 생성했던 사용자의 패스워드
- DataStore: PBS에서 생성했던 데이터스토어 명
- 지문: PBS 서버의 쉘에서 실행했던
fingerprint
값
아래와 같이 정상적으로 보인다면 성공이다.
VM 백업의 경우 VM에서 데이터스토어를 지정해주면 된다.