server 24.03.2026 Евгений Семёнов

Proxmox Backup Server: установка, настройка и удалённый бэкап

Proxmox Backup Server — установка и настройка

Резервные копии — критический элемент любой инфраструктуры. Правило «3-2-1» (три копии, два носителя, одна удалённая) давно стало стандартом, но реализовать его на практике — отдельная задача. Proxmox Backup Server (PBS) — специализированное решение для инкрементального бэкапа виртуальных машин, контейнеров и хостов, которое идеально интегрируется с Proxmox VE.

PBS бесплатен и с открытым исходным кодом. Платная подписка даёт доступ к enterprise-репозиторию и техподдержку, но все функции доступны бесплатно.

Зачем нужен отдельный сервер бэкапов

Хранение бэкапов на том же сервере, где работают виртуальные машины — типичная ошибка. При отказе сервера вы теряете и данные, и их копии. При атаке шифровальщика — тот же результат.

PBS решает эти проблемы:

Системные требования PBS

PBS нетребователен к CPU, но жаден до дисков:

Для datastore рекомендуются ZFS-массивы (mirror или raidz1/raidz2) — PBS нативно поддерживает ZFS-снимки, что ускоряет операции и добавляет уровень защиты данных.

Установка Proxmox Backup Server

PBS устанавливается с ISO-образа, аналогично Proxmox VE:

  1. Скачайте ISO с proxmox.com/downloads
  2. Запишите на USB через Balena Etcher или dd
  3. Загрузитесь с USB, следуйте мастеру установки
  4. Выберите диск для ОС (рекомендуется ZFS mirror)
  5. Настройте сеть (статический 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:

  1. Перейдите в Datacenter → Storage → Add → Proxmox Backup Server
  2. Укажите IP/имя PBS-сервера, порт (8007)
  3. Введите учётные данные или API-токен
  4. Скопируйте Fingerprint сертификата с Dashboard PBS
  5. Выберите 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:

Политика хранения (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
Храните ключ шифрования в безопасном месте ОТДЕЛЬНО от PBS-сервера! Без ключа восстановление зашифрованных бэкапов невозможно. Рекомендуется Paper Key (распечатанный QR-код).

Удалённая синхронизация: правило 3-2-1

Для полноценной защиты бэкапы нужно хранить на географически удалённой площадке. PBS поддерживает два режима синхронизации:

Push Sync (локальный сервер → удалённый)

Локальный PBS «толкает» данные на удалённый:

  1. На удалённом PBS: создайте datastore и пользователя с правами DatastoreAdmin
  2. На локальном PBS: Configuration → Remotes → Add Remote
  3. Укажите Remote ID, адрес, учётные данные, fingerprint
  4. Создайте Push Sync Job на datastore
  5. Настройте расписание и Rate Limit (чтобы не забить канал)

Pull Sync (удалённый сервер ← локальный) — более безопасный

Удалённый PBS «вытягивает» данные с локального. Преимущество: локальный сервер не имеет доступа к удалённому хранилищу. Если локальный сервер скомпрометирован — удалённые бэкапы в безопасности.

  1. На локальном PBS: создайте пользователя с правами DatastoreReader (только чтение!)
  2. На удалённом PBS: настройте Remote, указывающий на локальный сервер
  3. Создайте 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

Оптимизация производительности

Типичные проблемы и их решения

Бэкап зависает или работает медленно

Проверьте: 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 предоставляет функции, которые критически важны для сервера бэкапов:

# Рекомендуемая настройка 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 часа ночи. Формула расчёта:

Практический пример: 10 виртуальных машин по 100 ГБ каждая (1 ТБ суммарно). С дедупликацией и инкрементальными бэкапами за месяц потребуется приблизительно 1.5-2 ТБ на datastore. С учётом роста на год — выделите 3-4 ТБ.

Настройте алерт на заполнение datastore выше 80%. В PBS: Configuration → Notifications. Или через внешний мониторинг: проверяйте вывод proxmox-backup-manager datastore list --output-format json и следите за полем used.

Сценарии аварийного восстановления

Бэкап нужен не ради бэкапа, а ради восстановления. Регулярно проверяйте, что восстановление действительно работает.

Сценарий 1: Восстановление VM после сбоя диска

  1. Замените вышедший диск, восстановите Proxmox VE (или используйте другой узел)
  2. Подключите PBS-хранилище в Datacenter → Storage
  3. Выберите нужную VM и точку восстановления
  4. Restore — VM создастся с новым VMID или перезапишет существующую

Сценарий 2: Восстановление отдельного файла из VM

PBS позволяет просматривать содержимое бэкапа и восстанавливать отдельные файлы через веб-интерфейс. Выберите бэкап → File Browser → навигация по файловой системе → Download.

Сценарий 3: Полная катастрофа — восстановление инфраструктуры с нуля

  1. Установите Proxmox VE на новое железо
  2. Если PBS на отдельном сервере — подключите его
  3. Если PBS был на том же сервере — установите PBS из бэкапа (поэтому удалённая копия критична!)
  4. Восстановите VM в порядке приоритета: DNS, AD/LDAP, базы данных, приложения
Проводите учебное восстановление минимум раз в квартал. Создайте документ «Runbook» с пошаговыми инструкциями для каждого сценария. Храните его вне инфраструктуры (распечатанный или в облаке).

Сравнение 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 и используйте Pull Sync для удалённых копий.

Обновление и обслуживание PBS

PBS требует минимального обслуживания, но есть регулярные задачи:

# Скрипт мониторинга здоровья 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).

IT-аутсорсинг для бизнеса

Нужна помощь с настройкой серверной инфраструктуры?

Компания ITfresh предоставляет полный спектр IT-услуг: от настройки серверов и систем резервного копирования до внедрения Kubernetes и почтовых решений. Более 10 лет опыта, сотни довольных клиентов.

10+лет опыта
500+проектов
24/7поддержка

Читайте также