PBS là gì & tại sao dùng?
Proxmox Backup Server (PBS) là backup appliance open-source (Debian-based) chuyên dụng cho hệ sinh thái Proxmox. Hỗ trợ content-defined chunking + deduplication, tiết kiệm 80–95% dung lượng so với backup truyền thống. Có thể backup không chỉ VM mà còn LXC, files, và host config.
Tính năng nổi bật
- ✅ Deduplication chunk-level 4MB → giảm 90% dung lượng
- ✅ Incremental forever — không cần full backup định kỳ
- ✅ End-to-end encryption AES-256 client-side
- ✅ Compression Zstandard (zstd) tốc độ cao
- ✅ Verify backup integrity tự động
- ✅ Tape support (LTO) cho air-gap
- ✅ Sync giữa nhiều PBS → 3-2-1 strategy
- ✅ Web UI :8007 đầy đủ chức năng
Kiến trúc
- • Datastore: nơi lưu chunks + index
- • Chunk store: deduplication pool
- • Backup Group: nhóm theo VM ID
- • Snapshot: 1 point-in-time backup
- • Namespace: phân tách theo project/tenant
- • GC (Garbage Collection): dọn chunk không dùng
- • Prune: xóa snapshot cũ theo policy
- • Verify: kiểm tra checksum chunks
Kiến trúc 3-2-1 với PBS
3 node + Ceph] PBS1[PBS Primary
Local Datastore] end subgraph DR["🌍 DR Site (Offsite)"] PBS2[PBS Secondary
Sync Target] end subgraph TAPE["📼 Cold Storage"] LTO[LTO Tape Library
Air-Gapped] end PVE -.daily backup.-> PBS1 PBS1 -.sync daily.-> PBS2 PBS1 -.tape job weekly.-> LTO style PVE fill:#fef3c7,stroke:#f59e0b,stroke-width:2px style PBS1 fill:#d1fae5,stroke:#10b981,stroke-width:2px style PBS2 fill:#d1fae5,stroke:#10b981,stroke-width:2px style LTO fill:#e0e7ff,stroke:#6366f1,stroke-width:2px
Quy tắc 3-2-1-1-0
3 bản backup · 2 loại media khác nhau · 1 offsite · 1 offline (air-gap) · 0 lỗi verify. PBS đáp ứng đủ với sync + tape.
Tính toán dung lượng & quy hoạch hardware
~15 phút — không thực hiện trên server
Công thức tính dung lượng PBS
Yêu cầu hardware
| Thành phần | Lab / Small | SMB Production | Enterprise |
|---|---|---|---|
| CPU | 2 core | 8 core | 16+ core |
| RAM | 4GB | 16–32GB | 64GB+ (ECC) |
| OS Disk | 32GB SSD | 120GB SSD | 240GB SSD RAID1 |
| Backup Storage | 2TB HDD | 10–20TB HDD RAID6 / RAIDZ2 | 50TB+ RAIDZ2 + SSD special vdev |
| Filesystem | ext4 | ZFS RAIDZ1/2 | ZFS + L2ARC SSD |
| Network | 1Gbps | 10Gbps | 25Gbps + bond |
Tại sao nên dùng ZFS?
PBS chunk có size 4MB cố định → ZFS với recordsize=4M cực kỳ tối ưu. ZFS còn cho snapshot toàn bộ datastore + replication sang PBS thứ 2 nhanh chóng + bit-rot detection.
Cài đặt PBS
~30 phút — 2 cách: ISO standalone hoặc Debian existing
Cách 1: Cài từ ISO (khuyến nghị)
-
1
Download PBS ISO
Tải từ
proxmox.com/en/proxmox-backup-server/get-started(~600MB). Tạo USB boot bằng Rufus/dd. -
2
Boot & Install Wizard
- Chọn ổ OS (240GB SSD) — KHÔNG chọn ổ backup storage
- Filesystem: ZFS RAID1 nếu có 2 SSD
- Hostname FQDN:
pbs01.lab.local - IP / Gateway / DNS
-
3
Đổi repository (no-subscription)
sed -i 's|^deb|#deb|' /etc/apt/sources.list.d/pbs-enterprise.list echo "deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" > /etc/apt/sources.list.d/pbs-no-sub.list apt update apt upgrade -y -
4
Truy cập Web UI
https://<pbs-ip>:8007· login root + Linux PAM
Cách 2: Cài lên Debian 12 có sẵn
Tạo Datastore (kho backup)
~20 phút — chuẩn bị filesystem + tạo datastore
Bước 1: Tạo ZFS pool cho backup storage
Bước 2: Tạo Datastore qua Web UI
-
1
Datastore → Add Datastore
- Name:
backup-main - Backing Path:
/backup-pool/pbs-datastore - GC Schedule:
daily - Prune Schedule:
daily - ✅ Notify on errors
- Name:
-
2
Cấu hình Prune Policy (retention)
Datastore → Prune & GC → Edit Prune Options:
- Keep Last: 3 (luôn giữ 3 bản mới nhất)
- Keep Daily: 14
- Keep Weekly: 8
- Keep Monthly: 12
- Keep Yearly: 3 (cho audit)
-
3
Tạo Verify Job
Datastore → Verify Jobs → Add: schedule weekly, check chunks integrity
Bước 3: Tạo User & API Token cho Proxmox VE
Kết nối PBS với Proxmox VE
~15 phút — thực hiện trên PVE Web UI
-
1
Lấy PBS Fingerprint
# Trên PBS server, chạy: proxmox-backup-manager cert info | grep Fingerprint # VD: Fingerprint (sha256): AB:CD:12:34:...:XY -
2
Add PBS Storage trên Proxmox VE
PVE Web UI → Datacenter → Storage → Add → Proxmox Backup Server
- ID:
pbs-main - Server: PBS IP/FQDN
- Username:
backup@pbs!pve-cluster01(API token format) - Password: API token secret đã lưu
- Datastore:
backup-main - Fingerprint: paste fingerprint từ step 1
- ✅ Enable
- ID:
-
3
Tạo Backup Job
Datacenter → Backup → Add:
- Storage:
pbs-main - Schedule:
02:00daily - Selection mode: All hoặc Include/Exclude
- Mode: Snapshot (no downtime)
- Compression:
zstd - Notification: email khi error
- Storage:
-
4
Test backup ngay
Click vào job → Run Now → quan sát log. Lần đầu sẽ full backup, các lần sau là incremental (chỉ chunk thay đổi).
Khi backup chạy thành công
Trên PBS Web UI → Datastore → Content → thấy VM ID xuất hiện. Click vào để xem các snapshot, verify status, encryption status.
Encryption, Sync & Tape
~40 phút — nâng cao theo chuẩn 3-2-1
Encryption client-side
Data được mã hóa trước khi gửi sang PBS — kể cả admin PBS cũng không đọc được. Key lưu trên PVE.
MẤT KEY = MẤT DATA
Encryption key phải backup ra ít nhất 2 nơi offline. Không thể restore backup nếu mất key. PBS không lưu key trên server.
Sync Job — Replication sang PBS Secondary (offsite)
-
1
Add Remote — PBS Primary connect to PBS Secondary
PBS Primary → Configuration → Remotes → Add: host PBS secondary, user, fingerprint
-
2
Create Sync Job
Datastore → Sync Jobs → Add: source remote + datastore → schedule daily
💡 PBS chỉ sync chunks thay đổi — incremental forever — cực kỳ tiết kiệm bandwidth
Tape Backup (LTO) — Air-gap
1 Cắm tape drive (vd LTO-8) & verify
2 Add Tape Drive & Changer qua GUI
- Tape Backup → Drives → Add (thêm tape drive)
- Tape Backup → Changers → Add (nếu là tape library)
3 Tạo Media Pool (nhóm tape theo retention)
GUI: Tape Backup → Media Pools → Add
NAME
pool-monthly
ALLOCATION
continue
RETENTION
1 year
4 Tạo Tape Backup Job
GUI: Tape Backup → Backup Jobs → Add
DATASTORE
backup-main
POOL
pool-monthly
SCHEDULE
monthly
Test Restore
Backup chỉ tốt khi restore được. Test định kỳ:
Hoàn thành 3-2-1!
VM → PBS Primary → Sync to PBS Secondary (offsite) → Tape monthly (air-gap). Đáp ứng đầy đủ DR best practices.
Troubleshooting thường gặp
Backup chậm
Nguyên nhân thường gặp:
- Network 1Gbps đầy — nâng cấp lên 10Gbps
- HDD chậm — thêm SSD special vdev cho ZFS metadata
- Compression CPU bottleneck — đổi từ zstd-19 xuống zstd-3
- Verify chunks song song — dời job sang giờ thấp điểm
Datastore đầy nhanh — dedup không hoạt động?
Dedup PBS dùng content-defined chunking 4MB. Nếu disk nhiều file nhỏ thay đổi → dedup giảm. Check:
proxmox-backup-manager datastore list --output-format=json # Xem fields: total, used, dedup ratio
Chạy GC để dọn chunks không còn ref: proxmox-backup-manager garbage-collection start backup-main
Verify job báo "chunk corrupt"
Disk hỏng hoặc bit-rot. ZFS sẽ tự heal nếu có redundancy. Check:
zpool status -v backup-pool zpool scrub backup-pool
Nếu pool RAIDZ + chunk bị mất → cần restore từ PBS secondary qua sync.