[Homelab] #21 Cài đặt Proxmox Backup Server lên VPS kết hợp với S3 Storage
Ở bài 17 chúng ta đã có một lần sử dụng backup rồi. Vậy thì cái Proxmox Backup Server (PBS) này còn đẻ ra để làm gì nữa?
Câu hỏi này trong quá khứ cũng được hỏi tại Blog của anh Thuận Bùi

Lựa chọn PBS hay PVE VM PBS
Mình khá vân phân trong việc này. Một phần là có Myth về việc không nên chạy PBS trong VM tại các diễn đàn Proxmox
Cả staff cũng không khuyến khích việc này
Mình cũng có đi hỏi các tiền bối đi trước
Cho đến khi mình được ông bạn (từng làm chung dự án) cho một tin của VPSTTT cho Free 1TB trong 3 tháng. Nên mình muốn dùng thử Bucket nó sẽ như thế nào? Và cái Bucket này chỉ khả dụng cho PBS. Nếu tìm cách thì trên PVE vẫn có thể dùng được, nhưng thôi mình muốn làm trên PBS hơn.
Đặc biệt hơn nhờ đến bài này của anh Thuận Bùi cho thấy việc cài PBS trên Docker và VPS khả thi. Thế là mình quyết định cài lên con VPS 1 năm của mình.
Tiến hành cài đặt
Mình dùng VPS của Hypercore vẫn là Hypercore sự lựa chọn của tôi =)) Dòng VPS của Hypercore thì được chạy trên nền tảng Proxmox vậy nên nếu chạy thêm Docker nữa thì có thể hiểu là đang chạy Docker trên một VM Debian và dưới nền tảng ảo hoá Proxmox. Nghe cũng không khác gì việc mình chạy LXC xong chạy Docker trong PVE cả.
Mình dùng repo này: https://github.com/ayufan/pve-backup-server-dockerfiles
Tạo thư mục mới cho PBS và file docker-compose.yml
mkdir ~/pbs
cd ~/pbs
nano docker-compose.yml
Nhập vào nội dung sau
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
Ở đây mình comment phần devices: đi là vì nó là VPS dùng ổ đĩa ảo. Bạn có thể cấu hình lại cho chuẩn cũng được. Mình để vậy để nó tự nhận.
Tiếp theo có ba cách để vào PBS.
Cách 1: Sử dụng VPN
Cách 2: Allow Firewall sau đó connect bằng http://<IP-VPS>:8007
sudo ufw allow 8007/tcp
sudo ufw reload
sudo ufw status
Cách 3: Sử dụng Cloudflared
Ban đầu mình đã sử dụng Cloudflared, tuy nhiên về sau mình thấy nó không Verify được Token, làm cho việc kết nối giữa PVE và PBS. Do đó mình không khuyến khích dùng cách này
Đăng nhập vào Proxmox Backup Server (PBS)
Ở lần đăng nhập đầu tiên, sử dụng thông tin mặc định như sau
Username: admin
Password: pbspbs
Realm: Proxmox Backup authentication server
Sau khi đăng nhập, mình sẽ truy cập vào mục Access Control, bấm nút Add để tạo tài khoản mới
Tiếp theo, chuyển qua tab Permission, nhất nút Add để cấp quyền admin cho tài khoản vừa tạo.
Ở đây mình xin phép sử dụng một phần nội dung từ bài của anh Thuận Bùi
Thêm S3 Storage
Bạn vào giao diện của PBS và vào các mục như trong ảnh
Chỗ này bạn điển các thông tin mà bên cung cấp S3 cho vào. Ở đây mình dùng của VPSTTT với MinIO
Giờ thì nhập vào thôi, nhớ là sử dụng port của API ở đây của mình là 9000

Tạo Datastore trên PBS
Bấm vào nút Add Datastore ở menu bên trái, sau đó nhập vào thông tin như hình. Backing Path: /backups là đường dẫn đã được khai báo ở dòng 11 trong file docker-compose.yml

Datastore mới sẽ được thêm vào, bạn ấn vào Show Connection Information để xem thông tin chi tiết, nếu bạn dùng cách 2 ở trên sử dụng IP VPS thì có thể connect trực tiếp. Mình thì thích rườm rà hơn, mình chọn tên miền. Thế là phải đi đến bước tiếp theo.

Cài đặt Caddy để Reverse Proxy
Mình muốn thử dùng Caddy lâu rồi, tiện thể đang có dịp nên mình dùng luôn, lợi ích của nó là đỡ phải đi xin Cert SSL, có thể tự động xin. Cài đặt Caddy
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
Sau đó bạn nano /etc/caddy/Caddyfile
Sửa lại như thế này
tên-miền-của-bạn {
reverse_proxy https://127.0.0.1:8007 {
transport http {
tls_insecure_skip_verify
}
}
}
Sửa lại file docker-compose.yml của PBS
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
Thêm vào đoạn ports: 127.0.0.1:8007:8007
Tiếp theo vào nơi quản lý tên miền, và trỏ A record về VPS của bạn.
Xong rồi đó.
Kết nối PBS với PVE
Giờ thì dựa vào thông tin ở mục Show Connection Information trước đó để làm tiếp thôi.
Còn cách dùng thì giống như bài 17 nhưng khác ở việc là chọn ổ PBS thôi
Chúc các bạn thành công!
All rights reserved