Hướng dẫn cài đặt và cấu hình Proxmox Backup Server (PBS): Deduplication và mã hóa phân tán

Tưởng tượng công ty bạn có 10 máy tính cùng tải một file hướng dẫn nội bộ nặng 100MB. Nếu copy toàn bộ ổ cứng của cả 10 máy vào ổ di động, bạn mất đứt 1GB cho cùng một nội dung. Sao lưu máy ảo kiểu cũ cũng ngốn tài nguyên y như thế. Proxmox Backup Server (PBS) giải quyết đúng điểm nghẽn này. Hệ thống chỉ lưu một bản duy nhất, rồi gắn cờ tham chiếu cho 10 máy còn lại.

Hạ tầng lab của mình hiện chạy Proxmox VE với 12 VM và container. Trước đây, mỗi lần chạy backup toàn bộ cụm là một cực hình: nghẽn mạng nội bộ, dung lượng NAS vơi đi nhanh chóng. Chuyển sang PBS giải phóng hoàn toàn gánh nặng đó.

So sánh các giải pháp sao lưu máy ảo Proxmox

Quản trị viên hạ tầng Proxmox thường cân nhắc ba hướng đi quen thuộc:

  • VZDump truyền thống (Full Backup ra NAS/NFS): Mỗi lần chạy là một file nén (.vma.zst) gom cả ổ đĩa. Dữ liệu hôm nay giống hệt hôm qua nhưng hệ thống vẫn ghi đè từ đầu. Tốn đĩa và mất thời gian.
  • Snapshot kết hợp ZFS Send/Receive: Tốc độ rất nhanh vì chỉ gửi các block thay đổi. Điểm trừ là bạn phải dùng ZFS ở cả máy nguồn lẫn máy đích, đồng thời việc đặt lịch dọn dẹp (retention policy) khá cồng kềnh.
  • Proxmox Backup Server (Chunk-based Deduplication): PBS cắt ổ đĩa thành từng mảnh nhỏ (trung bình 4MB) rồi tính mã băm SHA-256. Mảnh nào đã nằm trên server sẽ được bỏ qua. Máy chủ chỉ truyền đúng những mảnh mới qua mạng.

Bảng so sánh kỹ thuật

Mỗi giải pháp đều có đánh đổi riêng về tài nguyên và mức độ tiện dụng:

Tiêu chí VZDump (Full Backup) ZFS Send/Receive Proxmox Backup Server (PBS)
Tốc độ sao lưu Chậm, dễ nghẽn mạng LAN Rất nhanh Cực nhanh (chỉ gửi chunk mới)
Hiệu quả lưu trữ Kém nhất, lãng phí terabyte đĩa Khá tốt Tối ưu nhất (Deduplication đạt 4x – 15x)
Bảo mật lưu trữ từ xa Đặt mật khẩu nén thủ công Cần ZFS Native Encryption Mã hóa Client-side (PVE tự mã hóa)
Khôi phục file lẻ Phải giải nén cả file backup lớn Phải mount snapshot thủ công Mở và tải trực tiếp từng file trên web UI

Điểm đáng giá nhất của PBS nằm ở mã hóa phía client (Client-side Encryption). Khóa bí mật nằm tại máy chủ Proxmox VE (PVE). PVE băm nhỏ và mã hóa dữ liệu trước khi bắn qua mạng đến PBS. Kể cả khi bạn đặt PBS ở datacenter thuê ngoài, kỹ thuật viên bên đó cũng không thể đọc nội dung bên trong VM.

Khi nào nên chuyển sang PBS?

Hạ tầng của bạn chỉ có 1-2 VM tĩnh, ít thay đổi dữ liệu? Cắm một ổ cứng di động rồi lên lịch VZDump cuối tuần là đủ. Không cần phức tạp hóa vấn đề.

Tuy nhiên, bạn nên dựng PBS ngay nếu quản lý từ 5 VM trở lên, có nhiều máy cùng chạy Ubuntu hoặc Windows Server. PBS cũng là cứu cánh khi bạn cần backup định kỳ mỗi 1-2 tiếng trong giờ làm việc. Thời gian chạy sẽ rút từ 30 phút xuống còn 15-30 giây, mạng hoàn toàn không bị nghẽn.

5 bước cấu hình Proxmox Backup Server thực tế

Bước 1: Tạo kho lưu trữ Datastore trên PBS

Sau khi cài PBS, bạn vào web UI (cổng 8007) hoặc SSH vào server. Khuyến nghị dùng ổ SSD riêng cho datastore để tốc độ băm chunk đạt tối đa:

# Tạo thư mục chứa datastore
mkdir -p /mnt/backup-pool/pbs-datastore
chown -R backup:backup /mnt/backup-pool/pbs-datastore

# Khởi tạo datastore có tên 'production-backup'
proxmox-backup-manager datastore create production-backup /mnt/backup-pool/pbs-datastore

Bước 2: Lấy Fingerprint xác thực của PBS

Lấy mã vân tay chứng thực SHA-256 để PVE nhận diện đúng máy chủ PBS, tránh rủi ro bị tấn công man-in-the-middle:

proxmox-backup-manager cert info | grep "Fingerprint:"

Bước 3: Tạo Encryption Key trên máy chủ Proxmox VE

Đăng nhập vào máy chủ PVE để tạo khóa mã hóa. File khóa này được lưu tại chỗ và dùng để mã hóa chunk trước khi gửi:

# Tạo key mã hóa ngẫu nhiên trong thư mục cấu hình PVE
pvesm pbs-encryption-key create /etc/pve/pbs-enc.key

# Kiểm tra fingerprint của key vừa tạo
pvesm pbs-encryption-key show /etc/pve/pbs-enc.key

Bước 4: Gắn PBS Storage vào Proxmox VE

Thực hiện khai báo PBS làm một target storage trực tiếp từ CLI của Proxmox VE:

pvesm add pbs PBS-Storage \
    --server 192.168.1.50 \
    --datastore production-backup \
    --username root@pam \
    --password 'MatKhauCuaPBS' \
    --fingerprint 'ab:cd:12:34:56:78:90:ef:ab:cd:12:34:56:78:90:ef:ab:cd:12:34:56:78:90:ef:ab:cd:12:34:56:78' \
    --encryption-key /etc/pve/pbs-enc.key

Bước 5: Chạy backup và theo dõi chỉ số Deduplication

Chạy thử một lượt backup cho máy ảo bất kỳ (ví dụ VM ID 101):

vzdump 101 --storage PBS-Storage --mode snapshot

Lần đầu chạy, hệ thống sẽ đẩy toàn bộ dữ liệu thô. Hãy đợi 10 phút rồi chạy lại lệnh trên lần thứ hai. Bạn sẽ thấy quá trình hoàn tất chỉ sau vài giây.

Mở mục Datastore Summary trên giao diện PBS. Chỉ số Deduplication Factor sẽ hiển thị ngay. Với 5 máy ảo Linux có base image giống nhau, tỷ lệ này thường chạm mốc 4.0x – 8.0x rất nhanh, giúp bạn tiết kiệm hàng trăm gigabyte ổ cứng.

Lưu ý sống còn khi dùng mã hóa

Mã hóa client-side bảo vệ bạn trước con mắt tò mò, nhưng không có tính năng “quên mật khẩu”. Nếu mất file pbs-enc.key, dữ liệu trên PBS sẽ trở thành một đống rác vô nghĩa. Không ai có thể cứu được.

Ngay sau bước 3, hãy backup file key này vào ít nhất hai nơi độc lập: một password manager như Bitwarden/1Password và một bản in giấy cất trong tủ an toàn.

Share: