Proxmox Backup Server: установка, настройка и резервное копирование VM

Proxmox Backup Server: установка и настройка резервного копирования
Быстрый ответ
Proxmox Backup Server (PBS) — отдельный дистрибутив для дедуплицированного резервного копирования VM, контейнеров и физических хостов.
Устанавливается на отдельный сервер или VM, подключается к Proxmox VE через веб-интерфейс, бэкапы настраиваются через Backup Job с расписанием. Полная установка и первый бэкап — около 30 минут.

Proxmox Backup Server: установка, настройка и резервное копирование VM

Каждый раз когда я слышу «у нас нет бэкапов, зато есть RAID» — где-то в мире падает ещё один продакшн. RAID защищает от отказа диска. Бэкап защищает от тебя самого. Это разные задачи.

Proxmox Backup Server закрывает тему резервного копирования для инфраструктуры на Proxmox VE чище чем любой сторонний инструмент. Дедупликация, инкрементальные бэкапы, шифрование, верификация — всё из коробки. И всё это бесплатно.

В этой статье пройдём весь путь: от установки PBS на железо до первого работающего backup job с расписанием и проверенным восстановлением.

Что такое Proxmox Backup Server и зачем он нужен

PBS — это отдельный дистрибутив на базе Debian. Не плагин, не расширение для Proxmox VE — именно отдельный сервер со своим веб-интерфейсом, своим хранилищем и своим API.

Главное отличие от обычного бэкапа через NFS/SMB в Proxmox VE — дедупликация на уровне блоков. Когда у тебя 10 VM с одинаковой базой Ubuntu, PBS хранит общие блоки один раз. Реальная экономия дискового пространства — 40-70% в типичной инфраструктуре.

Второе отличие — инкрементальные бэкапы. Первый бэкап полный, все последующие — только изменённые блоки. Бэкап VM на 100 ГБ после первого раза занимает минуты вместо часов.

PBS vs vzdump — это не просто разные инструменты, это разные подходы к резервному копированию. vzdump пакует VM в архив каждый раз заново. PBS — полноценная backup-платформа с API, политиками хранения proxmox backup retention, верификацией proxmox backup verify и централизованным управлением backup jobs. Если у тебя больше трёх VM и ты думаешь о бэкапах всерьёз — PBS правильный выбор.

%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#ffffff',
    'primaryTextColor': '#1e293b',
    'primaryBorderColor': '#94a3b8',
    'lineColor': '#64748b',
    'fontSize': '15px',
    'fontFamily': 'ui-sans-serif, system-ui, sans-serif'
  },
  'flowchart': {'curve': 'linear', 'nodeSpacing': 50, 'rankSpacing': 50}
}}%%
flowchart TD
    A["Proxmox VE Node"] --> B["PBS Client (встроен в PVE)"]
    C["Windows Host"] --> D["PBS Agent (установить отдельно)"]
    E["Linux Host"] --> F["PBS Agent (установить отдельно)"]
    B --> G["Proxmox Backup Server"]
    D --> G
    F --> G
    G --> H["Datastore (хранилище)"]
    H --> I["Дедупликация + сжатие"]
    I --> J["Диск / NFS / ZFS"]
    style A fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
    style C fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
    style E fill:#f8fafc,stroke:#3b82f6,stroke-width:2px,color:#1e40af
    style G fill:#f8fafc,stroke:#22c55e,stroke-width:2px,color:#15803d
    style H fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
    style I fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
    style J fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
    style B fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
    style D fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b
    style F fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#1e293b

Proxmox Backup Server — системные требования

Компонент Минимум Рекомендуется Примечания
CPU 64-bit, 2 ядра 4+ ядра Дедупликация и шифрование нагружают CPU
RAM 2 ГБ 8+ ГБ 1 ГБ RAM на каждые 1 ТБ хранилища для индекса
Системный диск 16 ГБ 32 ГБ SSD Отдельно от диска под бэкапы
Диск для бэкапов Зависит от задачи Отдельный HDD/ZFS Лучше отдельный от системного
Сеть 1 Гбит 10 Гбит Пропускная способность напрямую влияет на время бэкапа
ОС PBS ISO (Debian) PBS ISO Можно поставить пакеты на чистый Debian 12

PBS можно запустить как VM внутри того же Proxmox VE которую ты бэкапишь. Это работает, но помни: если упадёт гипервизор — VM с PBS тоже недоступна. Для серьёзного продакшна PBS должен жить на отдельном железе.

На момент публикации актуальна версия PBS 3.x. Перед установкой проверь свежие релизы на официальном сайте.

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

Скачать ISO

Официальный ISO доступен на сайте Proxmox:


https://www.proxmox.com/en/downloads/proxmox-backup-server

Скачай последний стабильный ISO. Запиши на USB через Rufus (Windows) или dd (Linux):


# Linux - записать ISO на USB (замени /dev/sdX на свой диск)
dd if=proxmox-backup-server_*.iso of=/dev/sdX bs=1M status=progress
sync
Осторожно с dd
Команда dd затирает диск без предупреждений. Дважды проверь что /dev/sdX — это именно твой USB, а не системный диск. lsblk поможет не ошибиться.

Установка через инсталлятор

Загрузись с USB. Инсталлятор PBS похож на Proxmox VE — графический, понятный.

Шаги установки:

Шаг 1. Выбери «Install Proxmox Backup Server». Прими лицензионное соглашение.

Шаг 2. Выбери целевой диск для установки системы. Здесь выбирай системный диск, не тот который пойдёт под бэкапы.

Шаг 3. Настрой локализацию: страна, часовой пояс, раскладка клавиатуры.

Шаг 4. Задай пароль root и email для уведомлений.

Шаг 5. Настрой сеть: IP-адрес, маску, шлюз, DNS. Используй статический IP — PBS должен быть всегда доступен по одному адресу.

Шаг 6. Подтверди установку. Дождись завершения — обычно 5-10 минут.

После перезагрузки PBS запустится. Веб-интерфейс доступен по адресу:


https://IP_АДРЕС_PBS:8007

Войди как root с паролем который задал при установке.

Альтернативная установка на существующий Debian 12

Если не хочешь ставить с нуля — добавь репозиторий PBS на чистый Debian 12 Bookworm:


# Добавить репозиторий PBS (no-subscription)
echo "deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" > /etc/apt/sources.list.d/pbs-no-subscription.list

# Добавить ключ Proxmox
wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

# Обновить и установить
apt update && apt install -y proxmox-backup-server

# Запустить сервис
systemctl enable --now proxmox-backup

Вот тут важно: no-subscription репозиторий работает без лицензии. Enterprise репозиторий требует платную подписку. Для домашней лабы и небольших инсталляций no-subscription вполне нормально.

Первоначальная настройка PBS

Создать хранилище (Datastore)

После первого входа в веб-интерфейс первым делом создай datastore — это каталог на диске где PBS будет хранить бэкапы.

В веб-интерфейсе: Administration — Storage/Disks.

Сначала посмотри что есть из дисков:


# На сервере PBS - посмотреть диски
lsblk

# Посмотреть диски которые видит PBS
proxmox-backup-manager disk list

Если под бэкапы выделен отдельный диск без разметки — инициализируй его через интерфейс PBS. Administration — Storage/Disks — выбери диск — Initialize Disk with GPT.

После инициализации создай директорию и зарегистрируй datastore.

Через веб-интерфейс: Configuration — Datastore — Add Datastore.

Заполни поля:

  • Name: произвольное имя, например «main-backup»
  • Path: путь к директории, например /mnt/backup
  • Comment: описание

Или через командную строку:


# Создать точку монтирования
mkdir -p /mnt/backup

# Добавить datastore
proxmox-backup-manager datastore create main-backup /mnt/backup

Настроить политику хранения (Prune Policy)

Prune policy определяет сколько бэкапов хранить. Без политики диск рано или поздно заполнится.

В интерфейсе PBS: выбери datastore — Edit — вкладка Prune Options.

Типичная политика для продакшна:


Keep Last:    3    (последние 3 бэкапа)
Keep Hourly:  0
Keep Daily:   7    (ежедневные за 7 дней)
Keep Weekly:  4    (еженедельные за 4 недели)
Keep Monthly: 3    (ежемесячные за 3 месяца)
Keep Yearly:  0

Это даёт тебе гибкость восстановиться на вчера, на прошлую неделю или на начало месяца.

Создать пользователя для Proxmox VE

Не используй root для подключения PVE к PBS. Создай отдельного пользователя с минимально необходимыми правами.

Configuration — Access Control — Add User:


# Создать пользователя
proxmox-backup-manager user create backup-user@pbs --password "СильныйПароль123"

# Назначить роль DatastoreBackup на нужном хранилище
proxmox-backup-manager acl update /datastore/main-backup DatastoreBackup --auth-id backup-user@pbs

Роль DatastoreBackup даёт права на запись бэкапов и восстановление. Для read-only доступа используй DatastoreReader.

Подключение Proxmox VE к Proxmox Backup Server

Это делается в интерфейсе Proxmox VE, не PBS.

В PVE: Datacenter — Storage — Add — Proxmox Backup Server.

Заполни поля:

Поле Значение Пример
ID Имя хранилища в PVE pbs-main
Server IP или hostname PBS 192.168.1.50
Username Пользователь PBS backup-user@pbs
Password Пароль пользователя
Datastore Имя хранилища на PBS main-backup
Fingerprint TLS fingerprint PBS берётся из PBS

Fingerprint PBS найди в интерфейсе PBS: Dashboard — показывает fingerprint. Или через командную строку на сервере PBS:


proxmox-backup-manager cert info | grep Fingerprint

После добавления хранилище появится в списке Storage в PVE. Можно проверить подключение через PVE CLI:


# На ноде Proxmox VE
pvesm status

В выводе должна быть строка с твоим PBS-хранилищем и статусом active.

Настройка Backup Job в Proxmox VE

Backup Job — это расписание резервного копирования. Один job покрывает несколько VM и контейнеров. Именно через backup jobs proxmox реализует автоматическое резервное копирование всей инфраструктуры — задал расписание, забыл, получаешь email с отчётом каждое утро.

В PVE: Datacenter — Backup — Add.

Параметры Backup Job

Параметр Описание Рекомендация
Node Нода PVE Выбери нужную ноду или All
Storage Хранилище для бэкапа Твой PBS datastore
Schedule Расписание daily (ежедневно), или cron-выражение
Selection Что бэкапить All или конкретные VM ID
Mode Режим бэкапа Snapshot — без остановки VM
Compression Сжатие ZSTD — баланс скорости и сжатия
Prune Применить политику хранения Включи, выбери политику
Send email to Email уведомления Укажи свой email

Режим бэкапа — вот тут важно:

  • Snapshot — бэкап без остановки VM через механизм снапшотов. Работает для большинства дисков. Минус — данные внутри гостевой ОС могут быть в незаписанном состоянии. Для БД нужен агент или ручной flush.
  • Suspend — VM приостанавливается на время создания снапшота. Консистентнее, но есть кратковременный простой.
  • Stop — VM останавливается на время бэкапа. Максимальная консистентность, максимальный простой. Только для некритичных VM.

Для продакшна используй Snapshot с QEMU Guest Agent — он делает quiesce файловой системы перед снапшотом.

Запустить Backup Job вручную

После создания job запусти его сразу чтобы убедиться что всё работает:


# На ноде Proxmox VE
# Посмотреть список job
vzdump --list

# Запустить бэкап конкретной VM (замени 100 на ID своей VM)
vzdump 100 --storage pbs-main --mode snapshot --compress zstd

Или через веб-интерфейс PVE: Datacenter — Backup — выбери job — Run now.

Смотри прогресс в Tasks в нижней части интерфейса PVE.

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

PBS Agent нужен для бэкапа физических серверов (bare-metal хостов) — не виртуалок, а реальных машин с Windows или Linux. Для VM внутри PVE агент не нужен.

Установка агента на Linux


# Добавить репозиторий PBS на клиентскую машину (Debian/Ubuntu)
echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" > /etc/apt/sources.list.d/pbs-client.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 -y proxmox-backup-client

# Проверить установку
proxmox-backup-client version

После установки настрой переменные окружения для подключения к PBS:


# Установить переменные (можно добавить в ~/.bashrc или /etc/environment)
export PBS_REPOSITORY="backup-user@pbs@192.168.1.50:main-backup"
export PBS_PASSWORD="СильныйПароль123"
export PBS_FINGERPRINT="xx:xx:xx:..."  # fingerprint с PBS сервера

# Создать бэкап директории
proxmox-backup-client backup etc.pxar:/etc --backup-id my-server

Установка агента на Windows

Скачай Windows agent с сайта Proxmox:


https://www.proxmox.com/en/downloads/proxmox-backup-server

Раздел «Windows Client». Установи MSI-пакет. После установки агент работает как Windows-сервис.

Настрой подключение через GUI агента или через реестр. Укажи адрес PBS сервера, credentials и datastore.

Проверь что сервис запущен:


# Проверить статус агента
Get-Service "Proxmox Backup Agent"

# Запустить если остановлен
Start-Service "Proxmox Backup Agent"

Proxmox Backup: восстановление VM

Бэкап который ты не проверял — это не бэкап. Это надежда.

Проверь восстановление сразу после первого успешного бэкапа. Не через месяц когда реально нужно будет.

Восстановление VM через веб-интерфейс PVE

В PVE: выбери ноду — Storage — pbs-main — Backups. Найди нужный бэкап VM.

Кликни Restore. Выбери:

  • Storage куда восстанавливать (можно то же хранилище или другое)
  • VM ID — можно оставить тот же или выбрать новый (для параллельного запуска)
  • Галка «Start after restore» — если нужно сразу запустить

Подтверди — и началось восстановление. Время зависит от размера VM и скорости сети.

Восстановление через командную строку


# На ноде Proxmox VE
# Посмотреть доступные бэкапы
proxmox-backup-client list --repository backup-user@pbs@192.168.1.50:main-backup

# Восстановить VM (замени ID и snapshot)
qmrestore pbs-main:backup/vm/100/2025-04-20T03:00:00Z 100 --storage local-lvm

# Восстановить контейнер
pct restore 101 pbs-main:backup/ct/101/2025-04-20T03:00:00Z --storage local-lvm

Восстановление отдельных файлов (File Restore)

PBS умеет восстанавливать отдельные файлы из бэкапа без восстановления всей VM. Это одна из главных фич которую не умеют классические бэкап-решения.

В PBS веб-интерфейсе: Datastore — выбери бэкап — File Restore. Откроется браузер файлов внутри бэкапа. Выбери нужный файл — Download.


# Через CLI на PBS сервере
# Монтировать бэкап как виртуальную файловую систему
proxmox-backup-client mount vm/100/2025-04-20T03:00:00Z /mnt/restore \
  --repository backup-user@pbs@192.168.1.50:main-backup

# Теперь /mnt/restore содержит файловую систему VM
ls /mnt/restore

# После копирования нужных файлов - размонтировать
proxmox-backup-client unmount /mnt/restore

Проверка работоспособности

Проверить статус PBS


# На сервере PBS
systemctl status proxmox-backup
systemctl status proxmox-backup-proxy

# Проверить datastore
proxmox-backup-manager datastore list

# Статистика хранилища
proxmox-backup-manager datastore show main-backup

Проверить список бэкапов


# На сервере PBS - все бэкапы в datastore
proxmox-backup-client snapshots --repository backup-user@pbs@localhost:main-backup

# С ноды PVE
proxmox-backup-client list --repository backup-user@pbs@192.168.1.50:main-backup

Запустить верификацию бэкапа

proxmox backup verify — встроенная проверка целостности. PBS проверяет SHA256-хэши всех чанков в datastore. Если хоть один блок повреждён — задача падает с ошибкой и приходит email. Запускай верификацию по расписанию, не только после инцидентов.

В веб-интерфейсе PBS: Datastore — Verify All. Или по расписанию через Verify Job.


# Через CLI
proxmox-backup-manager verify-job create verify-main \
  --datastore main-backup \
  --schedule "weekly" \
  --ignore-verified true

Проверить логи


# Логи PBS сервиса
journalctl -u proxmox-backup -n 100 --no-pager

# Логи прокси (веб-интерфейс и API)
journalctl -u proxmox-backup-proxy -n 100 --no-pager

# Задачи в PBS
proxmox-backup-manager task list --limit 20

Безопасность

Шифрование бэкапов
PBS поддерживает шифрование на стороне клиента. Ключ шифрования хранится только у тебя — администратор PBS сервера не может прочитать зашифрованные бэкапы. Это принципиально важно если PBS работает не на твоём железе.

Настрой шифрование при добавлении PBS Storage в PVE. В поле «Encryption Key» выбери «Auto-generate a client encryption key». Ключ сохранится в PVE и будет использоваться автоматически.

Сохрани ключ шифрования отдельно
Ключ шифрования хранится на ноде PVE. Если нода умрёт без возможности восстановления — зашифрованные бэкапы станут бесполезны. Экспортируй ключ и храни в безопасном месте отдельно от сервера.

# Экспортировать ключ шифрования на ноде PVE
cat /etc/pve/priv/pbs-backup-key.json

# Сохрани этот вывод в защищённом месте (password manager, зашифрованный USB)

Настройка firewall для PBS

Порт Протокол Направление Назначение
8007 TCP Входящий Веб-интерфейс и API PBS
22 TCP Входящий SSH (ограничь по IP)

# Настроить UFW на сервере PBS
ufw default deny incoming
ufw default allow outgoing

# Разрешить только с сети PVE (замени на свою подсеть)
ufw allow from 192.168.1.0/24 to any port 8007 proto tcp
ufw allow from 192.168.1.0/24 to any port 22 proto tcp

ufw enable
ufw status

Резервное копирование самого PBS

PBS хранит бэкапы. Но кто бэкапит PBS? Отдельный вопрос который все игнорируют до первого инцидента.

Что нужно бэкапить на сервере PBS:

  • /etc/proxmox-backup/ — конфигурация PBS
  • /var/lib/proxmox-backup/ — база данных заданий и метаданные
  • Ключи шифрования если они хранятся на PBS

# Простой скрипт бэкапа конфигурации PBS
#!/bin/bash
BACKUP_DIR="/mnt/external-backup"
DATE=$(date +%Y%m%d)

tar -czf "$BACKUP_DIR/pbs-config-$DATE.tar.gz" \
  /etc/proxmox-backup/ \
  /var/lib/proxmox-backup/

# Хранить последние 30 дней
find "$BACKUP_DIR" -name "pbs-config-*.tar.gz" -mtime +30 -delete

echo "PBS config backup completed: pbs-config-$DATE.tar.gz"

Добавь в cron:


crontab -e
# Добавить строку:
0 4 * * * /usr/local/bin/pbs-config-backup.sh >> /var/log/pbs-backup.log 2>&1

Мониторинг

PBS имеет встроенные уведомления через email. Настрой их сразу — узнавать о проблемах из письма лучше чем из звонка директора.


# Настроить email уведомления в PBS
proxmox-backup-manager notification config update \
  --mode sendmail \
  --mailto admin@example.com \
  --from-address pbs@example.com

Для более серьёзного мониторинга PBS предоставляет метрики через API. Их можно забирать в Prometheus через node_exporter или через прямые запросы к API:


# Проверить API PBS (заменить данные на свои)
curl -sk -H "Authorization: PBSAPIToken=backup-user@pbs!mytoken:TOKEN_VALUE" \
  https://192.168.1.50:8007/api2/json/admin/datastore/main-backup/status \
  | python3 -m json.tool

Обновление Proxmox Backup Server

Перед обновлением — проверь что последние бэкапы успешно завершились. Обновление само по себе безопасно, но лучше знать что есть свежие копии.


# Проверить доступные обновления
apt update
apt list --upgradable | grep proxmox

# Обновить PBS
apt update && apt dist-upgrade

# После обновления проверить статус
systemctl status proxmox-backup
systemctl status proxmox-backup-proxy

После мажорных обновлений (например 2.x -> 3.x) проверь Release Notes на сайте Proxmox — там бывают breaking changes требующие ручных действий.

Как откатиться если обновление сломало

PBS хранит старые версии пакетов в кэше apt. Откат:


# Посмотреть доступные версии пакета
apt-cache showpkg proxmox-backup-server

# Откатить на предыдущую версию
apt install proxmox-backup-server=ВЕРСИЯ proxmox-backup=ВЕРСИЯ

# Зафиксировать версию чтобы apt не обновил автоматически
apt-mark hold proxmox-backup-server proxmox-backup

Troubleshooting

Ошибка «SSL certificate verify failed» при подключении PVE к PBS

Причина — fingerprint в настройках Storage в PVE не совпадает с фактическим fingerprint PBS. Бывает после перевыпуска сертификата.

Ошибка SSL fingerprint
Получи актуальный fingerprint с PBS сервера и обнови настройки Storage в PVE.

# На сервере PBS - получить актуальный fingerprint
proxmox-backup-manager cert info | grep Fingerprint

# В PVE обновить Storage: Datacenter - Storage - выбери PBS хранилище - Edit
# Вставь новый fingerprint

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

Причина чаще всего в сети. Проверь пропускную способность между PVE и PBS:


# На ноде PVE - тест скорости до PBS (замени IP)
iperf3 -c 192.168.1.50

# Если iperf3 не установлен
apt install -y iperf3

# Простой тест через dd + netcat
# На PBS
nc -l 9999 > /dev/null

# На PVE
dd if=/dev/zero bs=1M count=1024 | nc 192.168.1.50 9999

Также проверь нагрузку на PBS в момент бэкапа:


# На PBS во время бэкапа
htop
iostat -x 2

Ошибка «datastore full» — хранилище заполнено


# Проверить заполненность datastore
df -h /mnt/backup

# Запустить принудительное применение Prune Policy
proxmox-backup-manager prune-datastore main-backup \
  --keep-last 3 \
  --keep-daily 7 \
  --keep-weekly 4

# После prune запустить garbage collection (физически удаляет блоки)
proxmox-backup-manager garbage-collection start main-backup
proxmox-backup-manager task log $(proxmox-backup-manager task list --limit 1 | tail -1 | awk '{print $1}')

Ошибка при восстановлении: «permission denied»

Пользователь PBS не имеет прав на восстановление. Нужна роль DatastoreRestore или Admin.


# Добавить права на восстановление
proxmox-backup-manager acl update /datastore/main-backup DatastoreRestore \
  --auth-id backup-user@pbs

QEMU Guest Agent не отвечает — бэкап в режиме Snapshot может быть неконсистентным

Установи QEMU Guest Agent внутри VM:


# Внутри Linux VM
apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

# Внутри Windows VM - установи virtio-win драйвера
# https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/

В настройках VM в PVE: Options — QEMU Guest Agent — Enabled.

Альтернативные решения

Veeam Backup for Proxmox — коммерческое решение с богатым функционалом и поддержкой. Имеет бесплатную версию с ограничениями. Хорош если уже используешь Veeam для VMware/Hyper-V.

Proxmox VE встроенный бэкап на NFS/CIFS — проще в настройке, не требует отдельного сервера. Нет дедупликации, нет инкрементальных бэкапов, но для небольших инсталляций вполне работает.

Bareos / Bacula — энтерпрайз-класс open-source решения. Мощные, гибкие, и требуют серьёзной настройки. Если у тебя смешанная инфраструктура (не только Proxmox) — стоит рассмотреть.

Restic + rclone — связка для тех кто любит делать руками. Restic делает инкрементальные дедуплицированные бэкапы, rclone отправляет их в облако. Нет GUI, настройка через конфиги, но полный контроль.

Практический опыт: реальные цифры

Расскажу как это выглядит на практике, а не в маркетинговых слайдах Proxmox.

Конкретная инсталляция: PBS на отдельном мини-сервере (Intel N100, 16 ГБ RAM, SSD под систему, 4 ТБ HDD под proxmox backup datastore). Бэкапит ноду PVE с 9 VM — микс из Ubuntu Server, Debian, Windows Server 2022 и пары Alpine-контейнеров. Суммарный размер дисков VM — около 900 ГБ.

После двух недель ежедневных backup jobs цифры такие. Физически занято на диске PBS — 380 ГБ. Дедупликация proxmox backup дала соотношение примерно 2.4:1. Это 58% экономии — то есть без дедупликации под те же данные с той же политикой хранения ушло бы под 900 ГБ.

Откуда такой результат? Шесть из девяти VM на одинаковом базовом образе Ubuntu 22.04. Общие блоки ядра, системных библиотек, конфигов — PBS хранит их один раз. Чем больше однотипных VM, тем выше дедупликация.

Расписание backup jobs: ежедневно в 3:00. Политика proxmox backup retention: keep-last 3, keep-daily 7, keep-weekly 4. Инкрементальный бэкап всех 9 VM занимает 12-18 минут. Первый полный бэкап занял около 2 часов — по сети 1 Гбит.

Ошибки которые встречались живьём:

  • Windows Server VM периодически давала ошибку «guest agent not responding» — лечится установкой актуальных virtio-win драйверов и перезапуском сервиса внутри гостя.
  • После обновления PVE с 8.1 на 8.2 слетел fingerprint PBS в настройках Storage — занял 2 минуты на обновление, но если не знать причину можно долго искать.
  • Один раз backup job завис намертво из-за I/O ошибки на HDD под datastore. PBS это поймал, задача упала с ошибкой, пришёл email. Диск проверил — оказался bad sector на краю. Своевременно.

Вывод по железу: N100 справляется без напряга. CPU во время бэкапа поднимается до 40-60% при включённом сжатии ZSTD. Если бы включил ещё шифрование на стороне клиента — нагрузка была бы выше. Для 9-12 VM на гигабитной сети N100 с 16 ГБ RAM — нормальная база.

FAQ

Чем отличается Proxmox Backup Server от обычного backup в Proxmox VE?

Встроенный backup в Proxmox VE через vzdump пишет полный архив VM каждый раз — .vma или .tar.gz файл на NFS/CIFS хранилище. Никакой дедупликации, никаких инкрементальных бэкапов. Каждый бэкап VM на 200 ГБ занимает 200 ГБ на диске. PBS использует чанк-дедупликацию и инкрементальные снапшоты: только изменённые блоки передаются и хранятся. Плюс PBS vs vzdump — верификация, шифрование на клиенте, восстановление отдельных файлов без разворачивания всей VM, и централизованное управление proxmox backup retention политиками.

Можно ли хранить proxmox backup datastore на HDD?

Можно, и это нормальная практика для datastore под бэкапы. HDD медленнее SSD при случайных операциях, но бэкапы пишутся последовательно — разница не критичная. Важнее скорость сети между PVE и PBS. На SSD имеет смысл держать только системный раздел PBS и индекс чанков — он активно читается при дедупликации. Хорошая схема: системный SSD 32-64 ГБ, отдельный HDD или ZFS-пул под datastore.

Как подключить NFS или SMB хранилище к PBS?

PBS поддерживает datastore только на локальных путях — не умеет напрямую создавать datastore на NFS/SMB. Но можно смонтировать NFS/SMB как точку монтирования и создать datastore на этом пути. Сначала смонтируй шару:


# Смонтировать NFS
apt install -y nfs-common
mount -t nfs 192.168.1.100:/backup /mnt/nfs-backup

# Добавить в /etc/fstab для автомонтирования
echo "192.168.1.100:/backup /mnt/nfs-backup nfs defaults,_netdev 0 0" >> /etc/fstab

# Создать datastore на смонтированном пути
proxmox-backup-manager datastore create nfs-store /mnt/nfs-backup

Учти: дедупликация proxmox backup работает хуже на сетевых хранилищах из-за латентности при обращении к индексу чанков. Для активного использования лучше локальный диск.

Как работает дедупликация в PBS?

PBS разбивает данные VM на чанки фиксированного размера (по умолчанию 4 МБ) и вычисляет SHA256-хэш каждого чанка. При следующем бэкапе передаются только чанки с новыми хэшами — те блоки которые изменились. Уже известные чанки просто регистрируются по хэшу без повторной передачи и хранения. Это работает и между разными VM: если десять машин имеют одинаковый /boot раздел — соответствующие чанки хранятся один раз в datastore. Сжатие идёт поверх дедупликации — каждый уникальный чанк ещё дополнительно сжимается через ZSTD или LZO.

Можно ли восстановить отдельный файл из резервной копии VM?

Да, это одна из главных фич PBS которой нет у стандартного vzdump. В веб-интерфейсе PBS выбери datastore, найди нужный снапшот VM, нажми File Restore — откроется файловый браузер прямо внутри бэкапа. Скачай нужный файл без восстановления всей VM. Через CLI монтируй снапшот как виртуальную ФС командой proxmox-backup-client mount и копируй нужное. Работает для ext4, XFS, btrfs, NTFS файловых систем внутри VM.

Как часто делать backup виртуальных машин?

Зависит от RPO — допустимой потери данных. Для большинства рабочих VM ежедневный backup jobs в ночное время достаточен. Для VM с базами данных или активной записью — рассмотри несколько раз в день. PBS не нагружает гипервизор сильно благодаря инкрементальным бэкапам, поэтому дважды в сутки вполне реально без заметного влияния на производительность. Политика proxmox backup retention: keep-last 3 плюс keep-daily 7 даёт хорошую гибкость восстановления при умеренном расходе места.

Как удалить старые резервные копии вручную?

Через веб-интерфейс PBS: выбери datastore — перейди в список снапшотов нужной VM — выдели лишние — Delete. Через CLI:


# Посмотреть все снапшоты VM 100 в datastore
proxmox-backup-client snapshots \
  --repository backup-user@pbs@192.168.1.50:main-backup \
  vm/100

# Удалить конкретный снапшот
proxmox-backup-client forget vm/100/2025-01-15T03:00:00Z \
  --repository backup-user@pbs@192.168.1.50:main-backup

# После удаления - запустить GC для освобождения места
proxmox-backup-manager garbage-collection start main-backup

Важно: proxmox backup prune удаляет метаданные снапшотов, но физическое место освобождается только после Garbage Collection. Если после прунинга df показывает то же самое — запусти GC и подожди завершения.

Что делать если datastore заполнен и бэкапы перестали запускаться?

Три шага по порядку. Первый — прунинг: Datastore — Prune All в веб-интерфейсе PBS или через CLI. Второй — GC: Datastore — Garbage Collect. GC физически освобождает место от чанков на которые больше нет ссылок. Третий — проверь настройки proxmox backup retention если ситуация повторяется. Если после прунинга и GC места всё равно нет — datastore реально мал для твоей политики хранения, нужно либо добавить диск, либо урезать keep-weekly/keep-monthly.

Можно ли запустить Proxmox Backup Server как VM внутри Proxmox VE?

Можно. Технически работает нормально для тестовой среды или небольших инфраструктур. Главное ограничение: если нода PVE упадёт физически, VM с PBS тоже будет недоступна. Восстановиться с PBS в этот момент не получится. Для серьёзного продакшна PBS должен жить на отдельном железе или как минимум на другой ноде кластера.

Итог

PBS — это правильный ответ на вопрос «как бэкапить Proxmox». Не NFS-шара, не скрипт с rsync, а полноценное решение с дедупликацией, верификацией и восстановлением отдельных файлов.

Главное что ты сделал после этой статьи: поднял PBS, подключил к PVE, настроил backup job с расписанием, проверил восстановление. Именно проверил, а не предположил что оно работает.

Не заработало?
Если при подключении PVE к PBS падает ошибка, backup job зависает или восстановление не стартует — пиши в комментарии. Укажи версии PVE и PBS, текст ошибки из логов, и что уже пробовал. Разберёмся.
Андрей Анатольевич
Author: Андрей Анатольевич

Руководитель ИТ / Кризис-менеджер 25 лет в IT: от инженера в МегаФоне до руководителя отдела. Знаю, как выглядит бардак: нестабильные сети, устаревшая инфраструктура, конфликты в команде, раздутые сроки. Помогаю бизнесу выходить из кризиса: навожу порядок в легаси, стабилизирую то, что разваливается, выстраиваю прогнозируемые процессы. Не раз возвращал к жизни ИТ-структуры — знаю цену хаосу. 📍 Ищу проект для полной реорганизации / стабилизации. 📬 Telegram: @over_dude ✉️ mail@it-apteka.com

Оставайтесь на связи

Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.

Подписаться на IT-Аптеку →

Мы ВКонтакте

IT-Аптека — советы, новости и помощь рядом.

Вступить в группу ВКонтакте →
Поделитесь:

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх