Hướng dẫn cài đặt Veeam Backup & Replication để Backup Máy Ảo Proxmox VE

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Ba lựa chọn backup cho Proxmox VE: Cái nào phù hợp với bạn?

Mình chạy homelab với Proxmox VE quản lý 12 VM và container — đây là playground để test mọi thứ trước khi đưa lên production. Sau nhiều năm thử nghiệm đủ loại tool backup, câu hỏi mình hay gặp nhất từ các junior sysadmin là: dùng PBS là đủ rồi, sao còn cần Veeam?

Câu trả lời không phải lúc nào cũng là “Veeam tốt hơn”. Đúng hơn là: mỗi tool phù hợp với một bài toán khác nhau. Có ba hướng chính để backup VM trên Proxmox VE:

  • vzdump — Built-in, miễn phí, cài đặt tối thiểu
  • Proxmox Backup Server (PBS) — Miễn phí, thiết kế riêng cho Proxmox
  • Veeam Backup & Replication — Giải pháp enterprise, hỗ trợ đa nền tảng

vzdump — Đơn giản nhưng giới hạn rõ ràng

vzdump là tool có sẵn trong Proxmox, backup được cả VM KVM lẫn LXC container. Phù hợp khi bạn chỉ có 3–5 VM và không cần retention policy phức tạp. Nhược điểm: không có deduplication thật sự, incremental backup chỉ hoạt động ở snapshot mode, quản lý restore khá thủ công.

Proxmox Backup Server — Đủ dùng cho đa số trường hợp

PBS tích hợp sâu với Proxmox, có deduplication và compression tốt qua PXAR format, incremental backup thật sự. Với workload server thông thường, dedup ratio đạt khoảng 2:1–3:1 — tiết kiệm đáng kể khi giữ nhiều restore point. Mình đã viết riêng một bài về PBS rồi — nếu môi trường thuần Proxmox và budget bằng không, PBS là lựa chọn tối ưu. Không cần đọc tiếp bài này.

Veeam Backup & Replication — Khi nào thật sự cần?

Veeam hỗ trợ Proxmox VE kể từ phiên bản 12.1 (đầu năm 2024). Điểm mạnh nằm ở những chỗ PBS không có:

  • Môi trường hybrid: vừa có Proxmox, vừa có VMware/Hyper-V, vừa có cloud — một console quản lý tất cả
  • VM Replication sang DR site — PBS không có tính năng này
  • Instant Recovery — boot VM trực tiếp từ backup file trong vài phút, không cần chờ restore xong
  • Compliance và reporting có audit trail cho doanh nghiệp
  • Veeam Agent cho physical server và cloud workload trong cùng một giao diện

Phân tích ưu nhược điểm: PBS vs Veeam

Nhìn vào từng tiêu chí cụ thể:

  • Chi phí: PBS miễn phí hoàn toàn; Veeam có Community Edition miễn phí tối đa 10 workload, bản Enterprise tính phí theo workload
  • Deduplication: Cả hai đều có, PBS dùng PXAR chunks, Veeam dùng per-job hoặc global dedup
  • VM Replication: PBS không có; Veeam có, sync VM sang site phụ với RPO thấp
  • Instant Recovery: PBS hỗ trợ giới hạn; Veeam nhanh và ổn định hơn, boot VM trực tiếp từ backup
  • Multi-platform: PBS chỉ cho Proxmox; Veeam hỗ trợ VMware, Hyper-V, Proxmox, AWS, Azure
  • OS cài Backup Server: PBS chạy trên Linux/Debian; Veeam B&R yêu cầu Windows Server
  • Độ phức tạp setup: PBS đơn giản hơn; Veeam nhiều bước hơn nhưng có wizard rõ ràng

Chọn giải pháp nào?

Theo kinh nghiệm mình, tùy vào môi trường:

  • Homelab hoặc SMB thuần Proxmox → PBS là đủ, đừng làm phức tạp hóa
  • Môi trường doanh nghiệp hybrid (Proxmox + VMware/cloud) → Veeam xứng đáng xem xét
  • Cần VM Replication sang DR site → Veeam là lựa chọn tốt nhất hiện tại
  • Dưới 10 VM, muốn trải nghiệm enterprise feature miễn phí → Veeam Community Edition

Bài hướng dẫn này dùng Veeam Community Edition — free cho đến 10 workload, đủ để trải nghiệm đầy đủ tính năng trước khi quyết định mua license.

Chuẩn bị môi trường

Khác với PBS chạy trên Linux, Veeam B&R yêu cầu Windows Server — đây là điểm cần chuẩn bị trước. Yêu cầu tối thiểu:

  • Windows Server 2019 hoặc 2022 (Windows 10/11 dùng được cho lab)
  • 4 CPU core, 8GB RAM (khuyến nghị 16GB)
  • 100GB disk cho cài đặt + storage riêng cho backup repository
  • Kết nối mạng đến Proxmox host trên port 443 và 22

Tạo VM Windows Server trên Proxmox để chạy Veeam:

# Chạy trên Proxmox node
qm create 200 --name veeam-backup-server \
  --memory 16384 \
  --cores 4 \
  --sockets 1 \
  --cpu host \
  --net0 virtio,bridge=vmbr0 \
  --scsihw virtio-scsi-pci \
  --scsi0 local-lvm:100 \
  --ide2 local:iso/windows-server-2022.iso,media=cdrom \
  --boot order=ide2 \
  --ostype win11

# Khởi động VM
qm start 200

Cài đặt Veeam Backup & Replication

Bước 1: Download và mount ISO

Vào trang chủ Veeam, tạo account miễn phí và tải ISO (khoảng 10GB). Mount vào Windows Server, chạy Setup.exe là xong bước đầu.

Nếu muốn cài silent qua PowerShell:

# Giả sử ISO được mount ở drive D:
# Cài silent, chấp nhận license tự động
D:\Setup.exe /silent /acceptlicensepolicy /acceptthirdpartylicenses

# Theo dõi progress qua log
Get-Content "C:\ProgramData\Veeam\Setup\Temp\VeeamSetup.log" -Wait -Tail 20

Bước 2: Wizard cài đặt GUI

Thông thường bạn sẽ dùng wizard. Các bước quan trọng:

  1. Chọn Veeam Backup & Replication (bỏ qua các component khác lúc đầu)
  2. Để mặc định installation path: C:\Program Files\Veeam\
  3. SQL Server: chọn Install new instance of SQL Server Express — installer tự cài, không cần chuẩn bị trước
  4. Service account: dùng LOCAL SYSTEM cho lab, domain account cho production
  5. Chờ khoảng 20–30 phút

Kết nối Proxmox VE vào Veeam

Tạo user API riêng trên Proxmox

Không dùng root cho Veeam. Tạo user riêng với đúng quyền cần thiết:

# Chạy trên Proxmox node (SSH vào hoặc dùng Shell trong web UI)

# Tạo user veeam trong realm pve
pveum useradd veeam@pve --comment "Veeam Backup Service Account"

# Tạo role với các quyền cần thiết
pveum roleadd VeeamRole -privs "VM.Audit VM.Backup VM.Config.Disk VM.Config.Options VM.Console VM.Monitor VM.Snapshot VM.Snapshot.Rollback Datastore.AllocateSpace Datastore.Audit"

# Gán role cho user ở root path (áp dụng cho toàn cluster)
pveum aclmod / -user veeam@pve -role VeeamRole

# Đặt password
pveum passwd veeam@pve

# Verify quyền
pveum user list | grep veeam

Add Proxmox host vào Veeam Console

  1. Mở Veeam Backup & Replication Console
  2. Vào InventoryVirtual InfrastructureAdd Server
  3. Chọn Proxmox Virtual Environment
  4. Nhập IP hoặc hostname của Proxmox node
  5. Thêm credentials: user veeam@pve và password vừa tạo
  6. Accept SSH fingerprint khi được hỏi

Nếu có Proxmox Cluster, add địa chỉ cluster VIP thay vì IP của từng node — Veeam sẽ tự discover tất cả:

# Kiểm tra cluster và lấy thông tin node
pvecm status
pvecm nodes

# Lấy IP của cluster (thường là corosync ring0 address)
cat /etc/pve/corosync.conf | grep addr

Tạo Backup Repository

Veeam lưu backup vào repository. Các lựa chọn phổ biến:

  • Linux server qua SSH — tiết kiệm, không cần thêm Windows license
  • NFS/SMB share từ NAS
  • S3-compatible object storage (MinIO tự host hoặc cloud)
  • Local disk trên Windows Server — đơn giản nhất nhưng kém linh hoạt

Quy trình thêm repository trong Veeam Console:

  1. Vào Backup InfrastructureBackup RepositoriesAdd Repository
  2. Chọn loại: Linux (SSH) hoặc Network attached storage
  3. Nhập IP server, credentials SSH, đường dẫn thư mục lưu backup
  4. Cấu hình concurrent tasks: 4–8 cho server 16GB RAM
  5. Enable Decompress backup data blocks before storing nếu repository hỗ trợ dedup riêng (ZFS, NAS)

Tạo Backup Job cho Proxmox VM

Tạo job cơ bản

  1. HomeJobsBackup JobVirtual machine
  2. Đặt tên job, ví dụ Proxmox-Production-Daily
  3. Virtual MachinesAdd → chọn VM cần backup từ danh sách Proxmox đã kết nối
  4. Chọn Backup repository vừa tạo
  5. Cấu hình Restore points to keep: thường 14 (giữ 2 tuần daily backup)

Cấu hình schedule

# Lịch backup tiêu biểu cho production:
# Daily incremental: 2:00 AM mỗi ngày
# Active Full Backup: Chủ nhật 1:00 AM (rebuild full backup hàng tuần)
# Retry failed VMs: 3 lần, cách nhau 10 phút
# Terminate job nếu chạy quá: 8 giờ

# Cấu hình trong tab Schedule của job wizard:
# [x] Run the job automatically
#     Daily at this time: 2:00 AM
# [x] Retry failed VM processing: 3 times
#     Wait before each retry attempt: 10 minutes
# [x] Terminate job if it exceeds: 8 hours

Kiểm tra trạng thái job sau khi chạy

# Từ PowerShell trên Veeam server
Add-PSSnapin VeeamPSSnapIn

# Lấy thông tin job gần nhất
$job = Get-VBRJob -Name "Proxmox-Production-Daily"
$lastSession = $job | Get-VBRJobSession | Sort-Object CreationTime -Descending | Select-Object -First 1
$lastSession | Select-Object Name, Result, CreationTime, EndTime

# Xem chi tiết VM nào fail (nếu có)
$lastSession | Get-VBRTaskSession | Where-Object {$_.Status -ne "Success"} | Select-Object Name, Status, Info

Restore VM từ Backup

Instant VM Recovery — Boot VM trực tiếp từ backup

Đây là tính năng mình thích nhất ở Veeam — thứ PBS không làm được. VM boot lên trong vài phút mà không cần chờ restore xong:

  1. Trong HomeBackups, chuột phải vào VM → RestoreInstant Recovery to Proxmox
  2. Chọn restore point cụ thể (theo ngày/giờ)
  3. Chọn target Proxmox host và storage
  4. VM boot lên trong 2–5 phút — Veeam mount backup file làm storage tạm
  5. Verify VM hoạt động bình thường, sau đó click Migrate to Production để sync data về storage thật

Full VM Restore — Khi cần khôi phục hoàn toàn

  1. Chuột phải vào VM backup → RestoreEntire VM restore
  2. Chọn restore point và destination (original hoặc Proxmox host khác)
  3. Có thể chọn Quick rollback nếu chỉ restore các block thay đổi (nhanh hơn nhiều)

Lưu ý từ thực tế

Sau một thời gian dùng Veeam với Proxmox, mình rút ra vài điểm cần chú ý:

  • CBT reset sau kernel update: Changed Block Tracking đôi khi bị reset sau khi Proxmox node update kernel. Backup lần đầu tiên sau đó sẽ là full backup — chiếm nhiều thời gian và dung lượng hơn bình thường. Không phải lỗi, chỉ cần biết để không hoảng khi thấy
  • Database VMs: VM chạy MySQL/PostgreSQL nên enable application-aware processing trong job settings để đảm bảo crash-consistent backup. Cần cài Veeam Agent bên trong guest OS
  • Tính toán repository size: Dự trù dư ít nhất 30% so với tổng dung lượng VM cần backup. Dedup ratio thực tế dao động 2:1–4:1 tùy workload — VM web server tiết kiệm hơn, VM database thay đổi nhiều nên ratio thấp hơn
  • Community Edition giới hạn 10 workload: mỗi Proxmox VM tính là 1 workload. Nếu có 12 VM như mình thì phải mua license cho 2 VM còn lại hoặc chọn lọc VM nào cần backup qua Veeam

Veeam không thay thế PBS trong mọi trường hợp — đó không phải mục tiêu. Nhưng khi môi trường lớn lên và phức tạp hơn, PBS bắt đầu đến giới hạn của nó. Replication sang DR site, quản lý đồng thời VMware và cloud từ một console — những bài toán này Veeam giải được, còn PBS thì không.

Share: