Hướng dẫn Restore Proxmox Server từ Backup
Tổng quan tình huống
- Server gốc: Proxmox + VMs cài trên SSD 1TB chính
- Backup storage: SSD 1TB riêng biệt (nvme0n1p1) chứa backup
- Backup method:
- Proxmox config backup bằng rclone
- VM backup bằng Proxmox Web UI (vzdump)
- Cloud backup bằng Duplicati lên Google Drive
- Vấn đề: System crash, cần cài mới và restore toàn bộ
Chuẩn bị
Hardware layout sau khi cài mới:
- sda: SSD Proxmox OS mới
- sdb: SSD trống (dùng làm VM storage)
- nvme0n1p1: SSD backup (chứa toàn bộ backup data)
Bước 1: Kiểm tra và Mount Backup Storage
Xác định cấu trúc ổ đĩa
lsblk -f
fdisk -l
Mount SSD backup
# Tạo mount point
mkdir -p /mnt/backup-disk
# Mount SSD backup (nvme0n1p1 chứa backup)
mount /dev/nvme0n1p1 /mnt/backup-disk
# Kiểm tra nội dung backup
ls -la /mnt/backup-disk/
Cấu trúc backup thường có:
dump/
– Backup VMs từ Proxmoxproxmox_host_config/
– Config Proxmox từ rcloneimages/
,iso/
,template/
– Files hỗ trợ
Bước 2: Setup Storage trong Proxmox
Thêm storage vào Proxmox
# Thêm backup storage
pvesm add dir backup-disk --path /mnt/backup-disk --content backup,iso,vztmpl
# Setup VM storage trên SSD riêng
mkdir -p /mnt/vm-storage
mount /dev/sdb1 /mnt/vm-storage
pvesm add dir vm-storage --path /mnt/vm-storage --content images,rootdir
# Kiểm tra storage đã add
pvesm status
Cấu hình auto-mount
# Thêm vào fstab
echo "/dev/nvme0n1p1 /mnt/backup-disk ext4 defaults 0 2" >> /etc/fstab
echo "/dev/sdb1 /mnt/vm-storage ext4 defaults 0 2" >> /etc/fstab
# Test auto mount
mount -a
df -h
Bước 3: Restore Config Proxmox (Tùy chọn)
Kiểm tra backup config
# Xem nội dung backup config
tar -tzf /mnt/backup-disk/proxmox_host_config/catan-host-config-backup-YYYY-MM-DD*.tar.gz | head -20
Restore config (cẩn thận)
# Dừng services
systemctl stop pve-cluster pvedaemon pveproxy pvestatd pvescheduler
# Backup config hiện tại
cp -r /etc/pve /etc/pve.backup-new-install
# Restore từ backup
cd /
tar -xzf /mnt/backup-disk/proxmox_host_config/catan-host-config-backup-YYYY-MM-DD*.tar.gz
# Khởi động services
systemctl start pve-cluster pvedaemon pveproxy pvestatd pvescheduler
Lưu ý: Restore config có thể gây lỗi fstab, cần kiểm tra sau khi reboot.
Bước 4: Restore Virtual Machines
Kiểm tra backup VMs có sẵn
# Liệt kê backup VMs mới nhất
ls -la /mnt/backup-disk/dump/vzdump-qemu-*$(date +%Y_%m_%d)* 2>/dev/null
ls -la /mnt/backup-disk/dump/vzdump-qemu-*2025_09_12* # Backup cụ thể
Restore từng VM
Qua Web UI (dễ nhất):
- Datacenter → Storage → backup-disk → Backups
- Chọn backup file mới nhất
- Click Restore
- Cài đặt:
- VM ID: Giữ nguyên ID cũ
- Storage: vm-storage (hoặc storage mong muốn)
- Unique: KHÔNG tích (để giữ config gốc)
- Start after restore: Tùy chọn
Qua CLI (nhanh hơn):
# Restore từng VM với backup mới nhất
qmrestore /mnt/backup-disk/dump/vzdump-qemu-100-YYYY_MM_DD*.vma.zst 100 --storage vm-storage
qmrestore /mnt/backup-disk/dump/vzdump-qemu-101-YYYY_MM_DD*.vma.zst 101 --storage vm-storage
qmrestore /mnt/backup-disk/dump/vzdump-qemu-102-YYYY_MM_DD*.vma.zst 102 --storage vm-storage
Script restore tất cả VMs
#!/bin/bash
# Script restore tất cả VMs từ backup mới nhất
BACKUP_DIR="/mnt/backup-disk/dump"
STORAGE="vm-storage"
BACKUP_DATE="2025_09_12" # Thay đổi ngày backup
echo "=== Auto Restore All VMs ==="
# Restore các VM với backup ngày cụ thể
for vm_id in 100 101 102 103 104; do
backup_file=$(ls $BACKUP_DIR/vzdump-qemu-${vm_id}-${BACKUP_DATE}*.vma.zst 2>/dev/null | head -1)
if [[ -f "$backup_file" ]]; then
echo "Restoring VM $vm_id from $(basename $backup_file)"
qmrestore "$backup_file" $vm_id --storage $STORAGE
if [ $? -eq 0 ]; then
echo "✓ VM $vm_id restored successfully"
else
echo "✗ Failed to restore VM $vm_id"
fi
sleep 10
else
echo "! No backup found for VM $vm_id"
fi
done
echo "=== Restore completed! ==="
Restore LXC Containers
# Restore container
pct restore 102 /mnt/backup-disk/dump/vzdump-lxc-102-YYYY_MM_DD*.tar.zst --storage vm-storage
Bước 5: Khởi động và Kiểm tra VMs
Khởi động VMs
# Xem danh sách VMs
qm list
pct list
# Khởi động từng VM
qm start 100
qm start 101
qm start 102
qm start 103
qm start 104
# Khởi động containers
pct start 102
# Kiểm tra status
qm list
pct list
Script khởi động tất cả
# Khởi động tất cả VMs
for vm in $(qm list | grep -v VMID | awk '{print $1}'); do
echo "Starting VM $vm..."
qm start $vm
sleep 20
done
# Khởi động tất cả containers
for ct in $(pct list | grep -v VMID | awk '{print $1}'); do
echo "Starting CT $ct..."
pct start $ct
sleep 15
done
Bước 6: Xử lý Sự cố Thường gặp
Lỗi ISO file không tồn tại
# Kiểm tra VM config
qm config <VM_ID>
# Xóa CD/DVD drive
qm set <VM_ID> --delete ide2
# Hoặc set thành none
qm set <VM_ID> --ide2 none,media=cdrom
Lỗi CSRF token trong Web UI
- Refresh trang hoặc đăng nhập lại
- Sử dụng CLI thay vì Web UI khi cần
Lỗi storage mount
# Kiểm tra mount points
df -h
# Remount nếu cần
umount /mnt/backup-disk
mount /dev/nvme0n1p1 /mnt/backup-disk
# Refresh storage trong Proxmox
pvesm set backup-disk --disable
pvesm set backup-disk --enable
Lỗi fstab sau khi restore config
# Vào emergency mode và edit fstab
mount -o remount,rw /
nano /etc/fstab
# Xóa các dòng có:
# - UUID không đúng
# - Mount point không tồn tại
# - Entry trùng lặp
# Chỉ giữ các dòng cần thiết:
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
/dev/sdb1 /mnt/vm-storage ext4 defaults 0 2
/dev/nvme0n1p1 /mnt/pve/BACKUP-CATAN ext4 defaults 0 2
Bước 7: Khôi phục Backup System
Cài đặt lại Duplicati
# Download và cài đặt
wget https://updates.duplicati.com/beta/duplicati_2.0.7.1-1_all.deb
dpkg -i duplicati_2.0.7.1-1_all.deb
# Enable service
systemctl enable duplicati
systemctl start duplicati
# Truy cập Web UI: http://server-ip:8200
Cấu hình backup schedule mới
- Proxmox backup jobs: Datacenter → Backup → Add
- Duplicati jobs: Cấu hình backup lên Google Drive
- Test backup: Chạy thử backup để đảm bảo hoạt động
Bước 8: Khôi phục Users
Tạo lại PAM users bị thiếu
# Kiểm tra user hiện tại
cat /etc/pve/user.cfg
# Tạo lại user admin PAM nếu cần
useradd -m -s /bin/bash admin
passwd admin
usermod -aG sudo admin
# Test login
id admin
su - admin
Checklist Hoàn thành Restore
- [ ] Mount backup storage thành công
- [ ] Add storage vào Proxmox
- [ ] Restore config Proxmox (nếu cần)
- [ ] Restore tất cả VMs từ backup
- [ ] Restore containers từ backup
- [ ] Khởi động thành công tất cả VMs/containers
- [ ] Kiểm tra network connectivity của VMs
- [ ] Khôi phục backup system (Duplicati)
- [ ] Cấu hình lại backup schedule
- [ ] Tạo lại PAM users thiếu
- [ ] Test backup mới hoạt động
- [ ] Cleanup: xóa backup files cũ nếu cần
Lưu ý Quan trọng
- Luôn backup config hiện tại trước khi restore config cũ
- Test restore trên VM nhỏ trước khi restore tất cả
- Kiểm tra fstab sau khi restore config để tránh lỗi boot
- Sử dụng backup mới nhất để tránh mất dữ liệu
- Verify backup integrity bằng
zstd -t
trước khi restore - Document changes so với setup cũ
- Test full system sau khi restore hoàn tất
Backup Prevention cho lần sau
- Backup config thường xuyên với script tự động
- Test restore định kỳ để đảm bảo backup hoạt động
- Giữ multiple backup copies (local + cloud)
- Document system configuration chi tiết
- Monitor backup jobs để phát hiện lỗi sớm
- Keep system updated nhưng test trước trên lab