Proxmox Backup Server: установка, настройка и удалённый бэкап
Резервные копии — критический элемент любой инфраструктуры. Правило «3-2-1» (три копии, два носителя, одна удалённая) давно стало стандартом, но реализовать его на практике — отдельная задача. Proxmox Backup Server (PBS) — специализированное решение для инкрементального бэкапа виртуальных машин, контейнеров и хостов, которое идеально интегрируется с Proxmox VE.
Зачем нужен отдельный сервер бэкапов
Хранение бэкапов на том же сервере, где работают виртуальные машины — типичная ошибка. При отказе сервера вы теряете и данные, и их копии. При атаке шифровальщика — тот же результат.
PBS решает эти проблемы:
- Физическая изоляция — бэкапы на отдельном сервере/площадке
- Инкрементальность — после первого полного бэкапа передаются только изменения
- Дедупликация — одинаковые блоки данных хранятся один раз
- Шифрование — AES-256-GCM на стороне клиента
- Верификация — автоматическая проверка целостности
Системные требования PBS
PBS нетребователен к CPU, но жаден до дисков:
- CPU: 2+ ядра (64-bit, поддержка VT-x/AMD-V не требуется)
- RAM: 2 ГБ минимум, 4+ ГБ рекомендуется (зависит от объёма datastore)
- Диски: SSD для ОС (минимум 32 ГБ), HDD/SSD для datastore
- Сеть: 1 Гбит/с минимум, 10 Гбит/с для больших объёмов
Установка Proxmox Backup Server
PBS устанавливается с ISO-образа, аналогично Proxmox VE:
- Скачайте ISO с proxmox.com/downloads
- Запишите на USB через Balena Etcher или dd
- Загрузитесь с USB, следуйте мастеру установки
- Выберите диск для ОС (рекомендуется ZFS mirror)
- Настройте сеть (статический IP обязателен)
# Альтернативная установка на существующий Debian 12
echo "deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" \
> /etc/apt/sources.list.d/pbs.list
# Импорт ключа
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg \
-O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
apt update && apt install proxmox-backup-server -y
После установки веб-интерфейс доступен на https://IP:8007.
Создание Datastore
Datastore — это каталог, где PBS хранит бэкапы. Перед созданием подготовьте файловую систему:
# Создание ZFS-пула для бэкапов
zpool create -f backup-pool mirror /dev/sdb /dev/sdc
# Создание файловой системы
zfs create backup-pool/datastore
# Создание точки монтирования
zfs set mountpoint=/mnt/backup-datastore backup-pool/datastore
Затем в веб-интерфейсе: Datastore → Add Datastore, укажите путь /mnt/backup-datastore.
Настройка Garbage Collection
GC удаляет неиспользуемые блоки данных (после дедупликации). Настройте расписание — обычно раз в сутки в период минимальной нагрузки:
# В веб-интерфейсе: Datastore → Options → Scheduling
# Или через CLI:
proxmox-backup-manager datastore update mystore \
--gc-schedule "daily 03:00"
Подключение Proxmox VE к PBS
На стороне Proxmox VE:
- Перейдите в Datacenter → Storage → Add → Proxmox Backup Server
- Укажите IP/имя PBS-сервера, порт (8007)
- Введите учётные данные или API-токен
- Скопируйте Fingerprint сертификата с Dashboard PBS
- Выберите Datastore
# Или через CLI на PVE:
pvesm add pbs pbs-storage \
--server 10.0.0.10 \
--port 8007 \
--datastore mystore \
--username backup@pbs \
--password YOUR_PASSWORD \
--fingerprint XX:XX:XX:...
Создание заданий бэкапа
В Proxmox VE: Datacenter → Backup → Add:
- Storage: выберите PBS-хранилище
- Schedule: ежедневно в 01:00 (или по вашему графику)
- Selection mode: All (все VM/CT) или Include/Exclude
- Mode: Snapshot (для VM) или Suspend (гарантирует консистентность)
- Retention: настройте политику хранения
Политика хранения (Retention)
PBS поддерживает гибкую политику:
# Пример: 7 ежедневных + 4 еженедельных + 6 ежемесячных
keep-daily: 7
keep-weekly: 4
keep-monthly: 6
keep-yearly: 2
Итого: ~19 точек восстановления, покрывающих 2 года.
Шифрование бэкапов
PBS поддерживает client-side encryption — данные шифруются на стороне Proxmox VE перед передачей:
# Генерация ключа шифрования
proxmox-backup-client key create /root/pbs-encryption-key.json
# Использование при бэкапе
proxmox-backup-client backup root.pxar:/ \
--repository backup-server:mystore \
--keyfile /root/pbs-encryption-key.json
Удалённая синхронизация: правило 3-2-1
Для полноценной защиты бэкапы нужно хранить на географически удалённой площадке. PBS поддерживает два режима синхронизации:
Push Sync (локальный сервер → удалённый)
Локальный PBS «толкает» данные на удалённый:
- На удалённом PBS: создайте datastore и пользователя с правами DatastoreAdmin
- На локальном PBS: Configuration → Remotes → Add Remote
- Укажите Remote ID, адрес, учётные данные, fingerprint
- Создайте Push Sync Job на datastore
- Настройте расписание и Rate Limit (чтобы не забить канал)
Pull Sync (удалённый сервер ← локальный) — более безопасный
Удалённый PBS «вытягивает» данные с локального. Преимущество: локальный сервер не имеет доступа к удалённому хранилищу. Если локальный сервер скомпрометирован — удалённые бэкапы в безопасности.
- На локальном PBS: создайте пользователя с правами DatastoreReader (только чтение!)
- На удалённом PBS: настройте Remote, указывающий на локальный сервер
- Создайте Pull Sync Job
Верификация бэкапов
Бэкап без проверки — не бэкап. PBS умеет автоматически проверять целостность:
# Настройка задания верификации
proxmox-backup-manager verify-job create daily-verify \
--store mystore \
--schedule "daily 06:00" \
--outdated-after 7
Параметр outdated-after указывает, через сколько дней бэкап считается непроверенным. В веб-интерфейсе статус верификации отображается иконками.
Восстановление из бэкапов
PBS поддерживает несколько сценариев восстановления:
Полное восстановление VM
В Proxmox VE: правый клик на VM → Restore → выберите точку восстановления из PBS-хранилища.
Гранулярное восстановление файлов
Одно из главных преимуществ PBS — возможность просмотра и восстановления отдельных файлов без разворачивания всей VM:
# Просмотр содержимого бэкапа
proxmox-backup-client catalog dump \
--repository backup-server:mystore \
vm/100/2025-03-24T01:00:00Z
# Восстановление отдельного файла
proxmox-backup-client restore \
--repository backup-server:mystore \
vm/100/2025-03-24T01:00:00Z drive-scsi0.img.fidx \
/tmp/restored-disk.raw
Мониторинг и уведомления
PBS отправляет уведомления по email о результатах бэкапов, GC и верификации. Настройте SMTP:
# Configuration → Notifications
# Или через конфиг:
# /etc/proxmox-backup/notifications.cfg
Интегрируйте с внешним мониторингом через API:
# Получение статуса datastore через API
curl -k -H "Authorization: PBSAPIToken=user@pbs!token:UUID" \
https://pbs-server:8007/api2/json/admin/datastore/mystore/status
Оптимизация производительности
- ZFS с SSD — кеширование метаданных значительно ускоряет дедупликацию
- Выделенная сеть — 10 Гбит/с для бэкап-трафика, не конкурирующий с продакшен-трафиком
- ZSTD-сжатие — баланс скорости и степени сжатия (по умолчанию в PBS)
- Параллельные потоки — PBS автоматически использует многопоточность
- Rate Limit для Sync Jobs — не забивайте интернет-канал при удалённой синхронизации
Типичные проблемы и их решения
Бэкап зависает или работает медленно
Проверьте: 1) скорость дисков (fio), 2) загруженность сети (iftop), 3) журнал GC (возможно, datastore переполнен неиспользуемыми чанками).
Ошибка «verification failed»
Возможные причины: сбой диска, bitrot, повреждение файловой системы. Проверьте ZFS: zpool status, запустите zpool scrub. Если повреждён конкретный бэкап — удалите и пересоздайте.
Datastore быстро заполняется
Проверьте настройки Retention — возможно, хранятся слишком старые бэкапы. Убедитесь, что GC работает по расписанию. Рассмотрите более агрессивное сжатие или дополнительные диски.
Интеграция PBS с несколькими Proxmox VE кластерами
В реальной инфраструктуре часто несколько Proxmox VE серверов или кластеров бэкапятся на один PBS. Правильная организация упрощает управление и мониторинг.
Структура datastore
Рекомендуется создавать отдельный datastore для каждого PVE-кластера или площадки. Это позволяет независимо управлять retention, GC и синхронизацией:
# Создание отдельных датасторов
proxmox-backup-manager datastore create office-main \
--path /mnt/backup/office-main \
--gc-schedule "daily 03:00" \
--comment "Главный офис — PVE кластер"
proxmox-backup-manager datastore create office-branch \
--path /mnt/backup/office-branch \
--gc-schedule "daily 04:00" \
--comment "Филиал — отдельный PVE"
API-токены вместо паролей
Для автоматизации используйте API-токены — они безопаснее паролей и позволяют ограничить права:
# Создание пользователя для бэкапа
proxmox-backup-manager user create backup-office@pbs \
--comment "Backup user for main office PVE"
# Создание API-токена
proxmox-backup-manager user generate-token backup-office@pbs office-token
# Назначение прав на конкретный datastore
proxmox-backup-manager acl update /datastore/office-main \
DatastoreBackup --auth-id backup-office@pbs!office-token
Автоматизация с помощью скриптов
PBS предоставляет мощный CLI-клиент proxmox-backup-client, который позволяет автоматизировать бэкап любых Linux-серверов, не только Proxmox VE:
#!/bin/bash
# Скрипт ежедневного бэкапа физического Linux-сервера на PBS
# /usr/local/bin/pbs-backup.sh
REPO="backup-user@pbs@10.0.0.10:server-backups"
KEYFILE="/root/.pbs-encryption-key.json"
# Бэкап конфигурации
proxmox-backup-client backup \
etc.pxar:/etc \
--repository "$REPO" \
--keyfile "$KEYFILE" \
--backup-id "$(hostname)" \
--backup-type host
# Бэкап данных
proxmox-backup-client backup \
data.pxar:/var/lib/important-data \
--repository "$REPO" \
--keyfile "$KEYFILE" \
--backup-id "$(hostname)-data" \
--backup-type host
# Очистка старых бэкапов (оставить 7 ежедневных + 4 еженедельных)
proxmox-backup-client prune \
--repository "$REPO" \
--backup-id "$(hostname)" \
--backup-type host \
--keep-daily 7 \
--keep-weekly 4 \
--keep-monthly 3
echo "Backup completed: $(date)"
# Добавление в cron
echo "0 2 * * * /usr/local/bin/pbs-backup.sh >> /var/log/pbs-backup.log 2>&1" \
| crontab -
ZFS: лучший друг PBS
PBS и ZFS — идеальная пара. ZFS предоставляет функции, которые критически важны для сервера бэкапов:
- Checksums — каждый блок данных проверяется на целостность (защита от bitrot)
- Compression — LZ4 или ZSTD сжатие на уровне файловой системы, дополнительно к дедупликации PBS
- Snapshots — мгновенные снимки состояния для дополнительной защиты
- Scrub — регулярная проверка целостности всего пула
- Send/Receive — инкрементальная репликация между серверами
# Рекомендуемая настройка ZFS для PBS
# Создание пула с RAIDZ1 (аналог RAID5)
zpool create -o ashift=12 backup-pool raidz1 /dev/sdb /dev/sdc /dev/sdd
# Включение сжатия
zfs set compression=zstd backup-pool
# Создание датасета с оптимальными параметрами
zfs create -o recordsize=64K backup-pool/pbs-store
zfs set atime=off backup-pool/pbs-store
zfs set xattr=sa backup-pool/pbs-store
# Настройка еженедельного scrub (проверка целостности)
cat > /etc/cron.d/zfs-scrub << 'EOF'
0 1 * * 0 root zpool scrub backup-pool
EOF
# Мониторинг состояния
zpool status -v backup-pool
zfs list -o name,used,avail,refer,compressratio
Планирование ёмкости хранилища
Правильное планирование избавит от неприятных сюрпризов, когда datastore заполнится в 3 часа ночи. Формула расчёта:
- Первый полный бэкап: примерно равен суммарному размеру активных данных всех VM/CT
- Инкрементальный бэкап: обычно 1-5% от полного (зависит от интенсивности изменений)
- Дедупликация: экономит 30-60% при бэкапе однотипных VM (одинаковая ОС, пакеты)
- Retention: 7 daily + 4 weekly + 6 monthly ≈ 1.5-2x от полного бэкапа
Практический пример: 10 виртуальных машин по 100 ГБ каждая (1 ТБ суммарно). С дедупликацией и инкрементальными бэкапами за месяц потребуется приблизительно 1.5-2 ТБ на datastore. С учётом роста на год — выделите 3-4 ТБ.
proxmox-backup-manager datastore list --output-format json и следите за полем used.Сценарии аварийного восстановления
Бэкап нужен не ради бэкапа, а ради восстановления. Регулярно проверяйте, что восстановление действительно работает.
Сценарий 1: Восстановление VM после сбоя диска
- Замените вышедший диск, восстановите Proxmox VE (или используйте другой узел)
- Подключите PBS-хранилище в Datacenter → Storage
- Выберите нужную VM и точку восстановления
- Restore — VM создастся с новым VMID или перезапишет существующую
Сценарий 2: Восстановление отдельного файла из VM
PBS позволяет просматривать содержимое бэкапа и восстанавливать отдельные файлы через веб-интерфейс. Выберите бэкап → File Browser → навигация по файловой системе → Download.
Сценарий 3: Полная катастрофа — восстановление инфраструктуры с нуля
- Установите Proxmox VE на новое железо
- Если PBS на отдельном сервере — подключите его
- Если PBS был на том же сервере — установите PBS из бэкапа (поэтому удалённая копия критична!)
- Восстановите VM в порядке приоритета: DNS, AD/LDAP, базы данных, приложения
Сравнение PBS с другими решениями для бэкапа
PBS — не единственный вариант для бэкапа Proxmox VE. Рассмотрим альтернативы и когда они оправданы:
PBS vs Vzdump (встроенный бэкап PVE)
Vzdump — встроенный в Proxmox VE механизм бэкапа. Он создаёт полные копии VM/CT. PBS использует vzdump как транспорт, но добавляет инкрементальность и дедупликацию. При 10 виртуальных машинах по 100 ГБ: vzdump потребует 1 ТБ на каждый полный бэкап, PBS — около 1.2 ТБ на месяц инкрементальных бэкапов. Экономия в 5-10 раз.
PBS vs Veeam Backup for Proxmox
Veeam выпустил бесплатную Community Edition для Proxmox. Преимущества Veeam: поддержка гетерогенных сред (VMware + Hyper-V + Proxmox), встроенная проверка восстанавливаемости (SureBackup), богатый GUI. Преимущества PBS: нативная интеграция с PVE, лучшая дедупликация, полностью open-source, работа с ZFS снимками.
PBS vs Borg Backup
Borg — мощный инструмент для бэкапа файловых систем с дедупликацией и шифрованием. Но Borg не понимает структуру Proxmox VM/CT — для гранулярного восстановления виртуальных машин PBS подходит значительно лучше. Borg оправдан для бэкапа физических серверов и файловых хранилищ.
Безопасность PBS: защита от ransomware
Одна из главных угроз для бэкапов — шифровальщики, которые целенаправленно ищут и уничтожают резервные копии. Стратегия защиты PBS:
- Изолированная сеть — PBS доступен только по VLAN бэкап-сети, не из пользовательского сегмента
- Минимальные права — PVE-серверы подключаются с ролью DatastoreBackup (запись бэкапов), но не могут удалять
- Pull Sync для удалённой копии — удалённый PBS «тянет» данные, локальный сервер не имеет доступа к удалённому хранилищу
- Отдельные учётные данные — PBS-аккаунты не связаны с Active Directory или LDAP
- Физический air gap — для максимальной защиты: периодическое копирование на отключаемые носители (внешний HDD, ленточный накопитель)
- Immutable backups — настройте retention так, чтобы бэкапы нельзя было удалить раньше срока
Обновление и обслуживание PBS
PBS требует минимального обслуживания, но есть регулярные задачи:
- Обновления — ежемесячно проверяйте и устанавливайте обновления PBS через apt или веб-интерфейс
- ZFS scrub — еженедельно (автоматически по cron) для раннего обнаружения проблем с дисками
- Garbage Collection — ежедневно автоматически, но следите за логами на ошибки
- Мониторинг дисков — SMART-тесты, прогнозирование замены (
smartctl -a /dev/sdX) - Проверка свободного места — алерт при заполнении свыше 80%
- Тестовое восстановление — ежеквартально проверяйте, что бэкапы действительно можно восстановить
# Скрипт мониторинга здоровья PBS
#!/bin/bash
# /usr/local/bin/pbs-health-check.sh
echo "=== ZFS Pool Status ==="
zpool status -v
echo "=== Datastore Usage ==="
proxmox-backup-manager datastore list
echo "=== Last GC Results ==="
proxmox-backup-manager task list --typefilter garbage_collection --limit 3
echo "=== Last Verify Results ==="
proxmox-backup-manager task list --typefilter verify --limit 3
echo "=== Disk Health ==="
for disk in /dev/sd?; do
echo "--- $disk ---"
smartctl -H "$disk" 2>/dev/null | grep -i "result\|health"
done
FAQ: частые вопросы по Proxmox Backup Server
Можно ли использовать PBS без Proxmox VE?
Да! PBS-клиент (proxmox-backup-client) работает на любом Linux. Можно бэкапить физические серверы, контейнеры Docker, отдельные директории.
PBS или Veeam — что выбрать?
PBS бесплатен, отлично работает с Proxmox VE, поддерживает инкрементальные бэкапы с дедупликацией. Veeam мощнее для гетерогенных сред (VMware + Hyper-V + физические серверы). Для чистого Proxmox-стека PBS — оптимальный выбор.
Какую файловую систему использовать для datastore?
ZFS — первый выбор (нативная поддержка, снимки, checksums). ext4 работает, но без преимуществ ZFS. XFS — компромисс для больших объёмов без ZFS.
Сколько места нужно под бэкапы?
Благодаря дедупликации: обычно 2-3x от объёма активных данных покрывают месяц бэкапов. Для 1 ТБ VM-данных выделите 2-3 ТБ на datastore.
Как защитить PBS от шифровальщика?
1) Изолированная сеть, 2) минимальные права (DatastoreReader для Pull Sync), 3) Client-side encryption, 4) географически удалённая копия, 5) отдельные учётные данные, не связанные с AD/LDAP.
Поддерживает ли PBS бэкап Windows?
Напрямую — нет. Но Windows VM в Proxmox VE бэкапятся через QEMU Guest Agent. Для физических Windows-серверов используйте proxmox-backup-client в WSL2 или сторонние агенты.
Можно ли мигрировать бэкапы с PBS на другой PBS?
Да, через Sync Jobs (Push или Pull). Также можно скопировать datastore целиком на уровне файловой системы (rsync, zfs send/receive).
Нужна помощь с настройкой серверной инфраструктуры?
Компания ITfresh предоставляет полный спектр IT-услуг: от настройки серверов и систем резервного копирования до внедрения Kubernetes и почтовых решений. Более 10 лет опыта, сотни довольных клиентов.