В предыдущих статьях мы рассмотрели базовую схему виртуальной инфраструктуры и настройку среды для удалённой работы. Теперь переходим к финальному этапу — организации резервного копирования виртуальных машин. Это необходимо, чтобы защитить рабочие системы от случайных сбоев, ошибок настройки, неудачных обновлений и других ситуаций, которые могут привести к потере данных или простою сервисов. Сначала мы настроим локальные backup, а затем добавим второй уровень защиты — внешнюю копию в S3-совместимое хранилище.

Как работает схема

В этой конфигурации используется следующая логика:

  • Proxmox VE отправляет backup виртуальных машин в локальный datastore, например pbs-local
  • после завершения backup выполняются служебные задачи PBS: Prune и Garbage Collection
  • затем запускается Sync Job, который копирует данные из pbs-local во второй datastore, например pbs-s3
  • второй datastore использует S3-совместимое объектное хранилище как backend

В результате локальный backup остаётся быстрым, а внешняя копия создаётся уже после него и не влияет на рабочие виртуальные машины.

Настройка двухуровневого резервного копирования в Proxmox Backup Server - Image 1

Шаг 0. Установка Proxmox Backup Server

Перед началом настройки резервного копирования необходимо установить Proxmox Backup Server. В нашей схеме он используется локально, на том же сервере, что и основная инфраструктура, так как именно в таком варианте мы сначала создаём быстрые локальные backup, а уже затем добавляем внешний уровень хранения.

Пошаговую установку Proxmox Backup Server можно посмотреть в официальной документации Proxmox по этой ссылке:
https://pbs.proxmox.com/docs/installation.html

В рамках нашего примера предполагается, что Proxmox Backup Server уже установлен, доступен через веб-интерфейс и готов к созданию datastore для резервных копий.

Шаг 1. Создайте локальный datastore в PBS

Сначала создайте обычный datastore в PBS, который будет использоваться для хранения локальных резервных копий Proxmox VE.

Для этого в интерфейсе Proxmox Backup Server:

  1. Откройте Add Datastore
  2. В поле Name укажите, например, pbs-local
  3. В поле Backing Path укажите путь к локальному каталогу хранения, например /mnt/pbs-local
  4. Сохраните datastore

Этот datastore должен находиться на локальном диске или отдельном разделе сервера.

Шаг 2. Добавьте локальный PBS в Proxmox VE

После создания datastore его нужно подключить в Proxmox VE как backup storage.

В Proxmox VE:

  1. Перейдите в Datacenter → Storage
  2. Нажмите Add → Proxmox Backup Server
  3. Заполните поля:
    • ID: например pbs-local
    • Server: адрес PBS, например localhost или IP сервера
    • Username: пользователь PBS
    • Password: пароль пользователя
    • Datastore: pbs-local
    • Fingerprint: fingerprint сертификата PBS
  4. Нажмите Add

После этого storage pbs-local появится в списке хранилищ Proxmox VE.

Настройка двухуровневого резервного копирования в Proxmox Backup Server - Image 2

Шаг 3. Создайте backup job в Proxmox VE

Теперь нужно настроить обычное резервное копирование виртуальных машин в локальный PBS datastore.

В Proxmox VE:

  1. Перейдите в Datacenter → Backup
  2. Нажмите Add
  3. Укажите:
    • Node: нужный узел
    • Storage: pbs-local
    • Selection mode: выберите нужные VM
    • Mode: Snapshot
    • Schedule: удобное время запуска
  4. При необходимости настройте retention
  5. Сохраните задание

С этого момента backup виртуальных машин будет сначала сохраняться в локальный datastore.

Шаг 4. Добавьте S3 endpoint в PBS 

После настройки локального backup можно подготовить второй datastore для внешней копии.

Для этого в PBS сначала нужно добавить S3 endpoint:

  1. Откройте Configuration → S3 Endpoints
  2. Нажмите Add
  3. Укажите:
    • имя endpoint
    • endpoint URL
    • access key
    • secret key
    • регион
  4. Если используется S3-совместимое хранилище, которому требуется дополнительная совместимость, в расширенных настройках включите нужные параметры, например Skip If-None-Match header
  5. Сохраните endpoint

После этого PBS сможет использовать объектное хранилище как backend для отдельного datastore.

Настройка двухуровневого резервного копирования в Proxmox Backup Server - Image 3

Шаг 5. Создайте второй datastore с типом S3

Теперь можно создать второй datastore, который будет использовать объектное хранилище.

В PBS:

  1. Нажмите Add Datastore
  2. В поле Name укажите, например, pbs-s3
  3. В поле Datastore Type выберите S3
  4. В поле Local Cache укажите отдельный локальный cache path
  5. В поле S3 Endpoint ID выберите ранее созданный endpoint
  6. В поле Bucket выберите или укажите bucket
  7. Сохраните datastore

Этот datastore будет использовать S3 backend, но локальный cache path всё равно обязателен для работы.

Шаг 6. Настройте Sync Job из локального datastore во внешний

После создания pbs-s3 нужно настроить синхронизацию из локального datastore.

В PBS:

  1. Откройте datastore pbs-s3
  2. Перейдите на вкладку Sync Jobs
  3. Нажмите Add
  4. В качестве источника укажите локальный datastore pbs-local
  5. Настройте расписание синхронизации
  6. Сохраните job

Именно этот шаг обеспечивает вторую копию backup во внешнее хранилище.

Настройка двухуровневого резервного копирования в Proxmox Backup Server - Image 4

Шаг 7. Настройте порядок выполнения задач

Чтобы схема работала корректно, важно выстроить правильную последовательность задач.

Рекомендуемый порядок:

  1. backup из Proxmox VE в pbs-local
  2. Prune для pbs-local
  3. Garbage Collection для pbs-local
  4. Sync Job из pbs-local в pbs-s3

Такой порядок позволяет:

  • сначала завершить локальный backup
  • потом очистить старые backup и неиспользуемые chunks
  • и только после этого синхронизировать уже актуальное состояние во внешний datastore

Настройка двухуровневого резервного копирования в Proxmox Backup Server - Image 5

Шаг 8. Проверьте, что синхронизация завершилась успешно

После первого запуска Sync Job откройте:

  • datastore pbs-s3
  • вкладку Sync Jobs
  • журнал выполнения задачи

Если всё настроено корректно, статус задания должен быть успешным, а в содержимом pbs-s3 появятся backup виртуальных машин.

Также во внешнем объектном хранилище можно увидеть внутреннюю структуру datastore, например каталоги .chunks, .cnt и другие служебные данные. Это нормально: PBS хранит backup не как отдельные архивы vzdump, а в собственной внутренней структуре.

Шаг 9. Добавьте внешний datastore в Proxmox VE

Если требуется восстанавливать виртуальные машины прямо из внешнего datastore через интерфейс Proxmox VE, его тоже нужно добавить как отдельный storage.

В Proxmox VE:

  1. Перейдите в Datacenter → Storage
  2. Нажмите Add → Proxmox Backup Server
  3. Укажите:
    • ID: например pbs-s3
    • Server: тот же PBS
    • Username: пользователь PBS
    • Password: пароль
    • Datastore: pbs-s3
    • Fingerprint: тот же fingerprint сертификата
  4. Сохраните storage

После этого в Proxmox VE можно будет открыть pbs-s3 и видеть backup уже из внешнего datastore.

Итог

Такая схема позволяет разделить быстрый локальный backup и внешнюю копию. Основные резервные копии сначала сохраняются в локальный datastore, а затем синхронизируются во второй datastore на базе S3-совместимого объектного хранилища. Это удобный вариант для тех случаев, когда нужно сохранить высокую скорость локального резервного копирования и при этом иметь дополнительную offsite-копию.