0

[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 image.png

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 image.png Mình cũng có đi hỏi các tiền bối đi trước image.png 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 image.png 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 image.png 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. image.png Ở đâ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 image.png 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 image.png Giờ thì nhập vào thôi, nhớ là sử dụng port của API ở đây của mình là 9000 image.png

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 image.png

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. image.png

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. image.png Xong rồi đó.

Kết nối PBS với PVE

image.png 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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí