Proxmox Backup Server использует продвинутую систему дедупликации на уровне блоков (4 МБ chunks), что позволяет хранить десятки бэкапов, занимая место лишь немного больше одного. Это принципиально отличает PBS от традиционных решений резервного копирования.
Как работает дедупликация PBS
Процесс бэкапа в PBS:
- Клиент читает данные VM и делит их на блоки по 4 МБ
- Вычисляет SHA-256 хеш каждого блока
- Передаёт на PBS только блоки, которых ещё нет в хранилище
- PBS хранит каждый уникальный блок один раз
Реальный пример экономии пространства:
| Сценарий | Без дедупликации | С PBS дедупликацией |
|---|---|---|
| 10 одинаковых VM (50 ГБ каждая) | 500 ГБ | ~60 ГБ |
| 30 ежедневных бэкапов одной VM | 1500 ГБ | ~80 ГБ (инкременты) |
| 10 клонов из одного шаблона | 500 ГБ | ~55 ГБ |
Просмотр статистики дедупликации
# Через CLI
proxmox-backup-manager datastore show backup-store
# Пример вывода:
# Total Size: 2.5 TiB
# Used: 450 GiB
# Dedup Factor: 5.8x <- экономия в 5.8 раз
# Disk I/O Stats: ...
# Через API
proxmox-backup-client snapshot list --repository pbs:backup-store
Настройка шифрования бэкапов
PBS поддерживает end-to-end шифрование AES-256 GCM. Шифрование происходит на стороне клиента, PBS хранит только зашифрованные блоки:
# Создать ключ шифрования
proxmox-backup-client key create /etc/pve/priv/backup.key
# Посмотреть fingerprint ключа
proxmox-backup-client key show /etc/pve/priv/backup.key
# Зарегистрировать ключ в конфигурации хранилища
# Storage → my-pbs → Edit → Encryption Key → выбрать файл ключа
Экспорт и резервная копия ключа шифрования
# Экспортировать ключ в защищённый формат (с паролем)
proxmox-backup-client key export-config /etc/pve/priv/backup.key /tmp/backup-key-export.json
# Распечатать ключ как QR-код для физического хранения
proxmox-backup-client key paperkey /etc/pve/priv/backup.key
Правило резервирования ключа: Храните ключ шифрования минимум в трёх местах: на самом PBS (в /etc/pve/priv/), в защищённом хранилище паролей (Bitwarden, 1Password), и физически (распечатайте QR-код paperkey). Потеря ключа = потеря всех бэкапов.
Garbage Collection
Для освобождения места от удалённых бэкапов запустите сборку мусора:
# Запустить немедленно
proxmox-backup-manager garbage-collect backup-store
# Автоматически — через веб-интерфейс
# PBS → Datastore → backup-store → GC Schedule → установить cron
Проверка целостности бэкапов
# Верифицировать конкретный бэкап
proxmox-backup-client verify pbs:backup-store:vm/100/...
# Запустить полную верификацию датастора
proxmox-backup-manager verify backup-store --verify-outdated 1
# Установить расписание верификации
# PBS → Datastore → Verify Schedule