Резервное Копирование Proxmox: Настраиваем PBS И Восстанавливаем Виртуальную Машину
В предыдущей статье мы установили Windows Server на Proxmox. Теперь разберёмся с резервными копиями. Настроим Proxmox Backup Server, сделаем бэкап виртуальной машины и восстановим её под другим ID. Рабочую машину при этом не трогаем.
Что имеем?
Ниже — пример конфигурации для Proxmox VE 9.x и PBS 4.x. Адреса, диски и номера VM нужно заменить своими.
| Что | Значение в примере |
|---|---|
| Узел Proxmox VE | 192.168.10.10 |
| Отдельный сервер PBS | 192.168.10.20 |
| Имя PBS | pbs01.example.net |
| Хранилище копий на PBS | backup-vm |
| Подключение PBS в Proxmox VE | pbs-office |
| Исходная виртуальная машина | 101 |
| ID для проверки восстановления | 901, свободный во всём кластере |
| Хранилище восстановленных дисков | local-lvm |
local-lvm должно существовать на выбранном узле и иметь достаточно свободного места. Если диски VM лежат на ZFS или другом хранилище, при восстановлении выберите нужное вам.
Иллюстрации ниже взяты из официальной документации Proxmox. Часть сделана в более ранних версиях интерфейса. Это не снимки описанного стенда: имена пользователей, хранилищ и параметры берём из текста, а не копируем с картинок.
1. Устанавливаем Proxmox Backup Server
Скачиваем ISO с сайта Proxmox, записываем на загрузочную флешку и загружаем с неё отдельный сервер.
В установщике:
- Выбираем системный диск PBS. Диск для резервных копий пока не используем.
- Задаём пароль
rootи действующий адрес электронной почты администратора. - Указываем имя
pbs01.example.net, статический IP192.168.10.20, свой шлюз и DNS. - После установки извлекаем флешку и перезагружаемся.
Установщик удалит данные на выбранном диске. Перед подтверждением сверяем модель и объём.
Открываем https://192.168.10.20:8007. Входим под root, realm — Linux PAM. Проверяем время и часовой пояс сервера. От узла Proxmox VE до PBS должен быть разрешён TCP-порт 8007.
В Administration → Repositories проверяем репозитории. При наличии подписки используем Enterprise. Для стенда без подписки отключаем недоступный Enterprise и добавляем соответствующий версии PBS репозиторий No-Subscription через интерфейс. Затем устанавливаем обновления через Administration → Updates. No-Subscription получает менее тщательно проверенные пакеты; для рабочего сервера выбирайте репозиторий осознанно.
2. Готовим диск для резервных копий
На PBS, в Shell, смотрим накопители:
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTSНужен отдельный пустой диск. Сверяем серийный номер, а не только имя вроде sdb: порядок устройств может измениться.
Открываем Administration → Storage / Disks → Directory → Create:
- Disk — проверенный пустой накопитель;
- Filesystem —
ext4; - Name —
backup-vm; - Add as Datastore — включено.
Создание файловой системы уничтожит прежнее содержимое выбранного диска. После завершения слева должен появиться datastore backup-vm.
Проверяем на PBS:
proxmox-backup-manager datastore list
findmnt /mnt/datastore/backup-vm
df -h /mnt/datastore/backup-vmПуть должен находиться на выделенном диске. Если у вас уже есть подготовленная файловая система, не форматируйте её повторно: используйте Add Datastore с каталогом на смонтированном накопителе. Управление дисками и datastore.
3. Создаём пользователя и API-токен
На PBS открываем Configuration → Access Control → User Management → Add. Создаём пользователя pve-backup в realm pbs, задаём отдельный пароль, оставляем Enabled включённым.

Во вкладке API Token нажимаем Add, выбираем pve-backup@pbs, имя токена — pve01. Сохраняем выданный секрет в менеджере паролей: повторно он не показывается.
Полный идентификатор токена:
pve-backup@pbs!pve01В Permissions добавляем две записи:
| Path | Кому | Role |
|---|---|---|
/datastore/backup-vm |
Пользователю pve-backup@pbs |
DatastoreBackup |
/datastore/backup-vm |
Токену pve-backup@pbs!pve01 |
DatastoreBackup |
В обоих случаях включаем Propagate. Для пользователя используем Add → User Permission, для токена — Add → API Token Permission.

DatastoreBackup позволяет создавать и восстанавливать собственные копии. Удаление старых копий настроим на самом PBS. Права токена ограничены правами пользователя: одной записи для токена недостаточно. Права доступа PBS.
4. Подключаем PBS к Proxmox VE
Сначала на PBS получаем отпечаток сертификата:
proxmox-backup-manager cert infoКопируем значение Fingerprint (sha256) целиком.
Теперь в Proxmox VE открываем Datacenter → Storage → Add → Proxmox Backup Server:
| Поле | Значение |
|---|---|
| ID | pbs-office |
| Server | 192.168.10.20 |
| Username | pve-backup@pbs!pve01 |
| Password | Секрет API-токена |
| Datastore | backup-vm |
| Namespace | Пусто, корневое пространство |
| Fingerprint | Отпечаток, полученный на PBS |
Нажимаем Add. В Shell узла Proxmox VE проверяем:
pvesm status --storage pbs-officeОжидаем состояние active. Если получили 401 или 403, проверяем идентификатор, секрет и обе записи прав. При ошибке сертификата сверяем отпечаток на PBS. Не отключаем его проверку ради успешного подключения.
5. Делаем первую копию вручную
Для работающей VM устанавливаем QEMU Guest Agent внутри гостевой ОС и включаем его в VM → Options → QEMU Guest Agent. Для Windows установщик агента есть на ISO VirtIO; после установки проверяем службу агента. Если включение опции требует полного выключения и запуска VM, выполняем это в согласованное окно.
На узле Proxmox VE проверяем связь с агентом:
qm agent 101 pingВ VM → Hardware проверяем диски: все диски с нужными данными должны участвовать в бэкапе, опция Backup не должна быть отключена.
Открываем VM 101 → Backup → Backup now:
- Storage —
pbs-office; - Mode —
Snapshot.
То же действие из Shell Proxmox VE:
vzdump 101 --storage pbs-office --mode snapshotВыбираем один способ запуска. В журнале задания проверяем итоговый TASK OK и отсутствие ошибок агента. Затем на PBS открываем Datastore → backup-vm → Content: должна появиться группа vm/101 с новой копией.
Режимы резервного копирования Proxmox VE.
6. Включаем расписание
В Proxmox VE → Datacenter → Backup → Add создаём задание:
| Параметр | Значение |
|---|---|
| Storage | pbs-office |
| Schedule | 02:00, ежедневно |
| Selection mode | Include selected VMs |
| Выбранные VM | 101 |
| Mode | Snapshot |
| Enabled | Включено |
На вкладке Retention оставляем Keep all backups: удалением управляет PBS. С ролью DatastoreBackup попытка очистки со стороны PVE может завершиться ошибкой прав.
Нажимаем Run now и проверяем именно созданное задание. При ежедневной копии можно потерять изменения после последнего успешного запуска — примерно до суток при исправном расписании. Если это слишком много, сокращаем интервал.
7. Настраиваем хранение и очистку
На PBS → Datastore → backup-vm → Prune & GC добавляем Prune Job:
| Поле | Значение |
|---|---|
| Namespace | Root |
| Schedule | 04:00 |
| Keep Daily | 7 |
| Keep Weekly | 4 |
| Keep Monthly | 3 |
Остальные поля Keep оставляем пустыми. Это политика хранения, а не обещание ровно 14 копий: число зависит от истории запусков. Перед применением проверяем правила в Prune Simulator.

Prune удаляет устаревшие снимки из списка. Garbage Collection освобождает блоки, которые больше не нужны оставшимся копиям. Ставим GC на 05:00. Освобождение места не обязательно произойдёт сразу: действует защитный период.
Время здесь примерное. Сначала измеряем длительность ночного бэкапа, затем разносим тяжёлые задания так, чтобы они не конкурировали за диск. Обслуживание PBS.
8. Проверяем целостность копий
На PBS → Datastore → backup-vm → Verify Jobs → Add задаём:
- Schedule —
06:00; - Skip Verified — включено;
- Re-Verify After —
30дней; - Namespace — Root.

Первую копию проверяем вручную через Content → Verify. Ждём успешного завершения. Verify проверяет целостность данных; загрузку ОС и работоспособность приложения проверим отдельно.
9. Восстанавливаем VM под другим ID
Исходную VM 101 не удаляем. На узле Proxmox VE открываем хранилище pbs-office → Backups, выбираем копию vm/101 и нажимаем Restore.
Указываем:
- VM ID — свободный
901; - Storage —
local-lvmили своё хранилище дисков; - Unique — включено, чтобы создать новые MAC-адреса;
- Start after restore — выключено;
- Live restore — выключено.
После завершения, до первого запуска, открываем VM 901 → Hardware и отключаем каждый сетевой адаптер через Disconnect. Для сетевого теста можно вместо этого подключить адаптеры к заранее подготовленному изолированному bridge без физических портов и маршрута в рабочую сеть.
Запускаем VM 901 и открываем консоль. Проверяем:
- ОС загрузилась без режима восстановления.
- Нужные диски и файлы доступны.
- Службы запускаются, приложение открывает свои данные.
- Данные соответствуют времени выбранного бэкапа.
Для файлового сервера открываем несколько документов. Для базы — выполняем проверку средствами СУБД. Если приложению нужна сеть, проводим проверку на изолированном стенде.
Записываем дату копии, время восстановления и результат проверки приложения. После теста выключаем VM 901. Не оставляем работающий клон «на всякий случай».
10. Настраиваем уведомления
Отдельно проверяем Proxmox VE → Datacenter → Notifications и PBS → Configuration → Notifications. Создаём доступный канал доставки, например SMTP, выполняем Test и убеждаемся, что сообщение пришло.
Настраиваем matchers так, чтобы получать результаты резервного копирования, ошибки Verify и GC. Для начала удобно получать все результаты: отсутствие привычного сообщения тоже повод проверить расписание. Настройки PVE и PBS независимы. Уведомления PBS.
Что ещё нужно для рабочего сервера
Отдельный PBS защищает от потери основного узла, но обе машины могут пострадать одновременно. Нужна ещё одна копия вне этой площадки: например, на втором PBS с собственной политикой хранения и отдельными учётными данными. Синхронизация PBS.
Если включаете клиентское шифрование, сохраните ключ восстановления и пароль к нему отдельно от PVE и PBS. Без ключа зашифрованная копия бесполезна. Шифрование резервных копий.
Не забываем и о конфигурации самого гипервизора: бэкап VM не является образом установленного Proxmox VE.
Заключение
На этом базовая настройка закончена. Есть расписание, сроки хранения, проверка целостности и понятный порядок восстановления. Повторяем тест восстановления после значимых изменений и периодически по графику. Именно он показывает, можно ли вернуть сервер в работу.