Запуск Proxmox Backup Server (PBS) на Windows или NAS. Организация синхронизации бэкапов между PBS

Возврат:: к списку статей мои статьи


Вступление, или очередная проблема из неоткуда

Система бэкапов Proxmox (PBS) является достаточно мощным и удобным инструментом для создания резервных копий виртуальных машин Proxmox, но она имеет одну проблему, которая мешала мне для организации задуманной мной системы домашнего сервера. PBS не может делать синхронизацию с удаленным каталогом по протоколу SAMBA.

Синхронизация бэкапов в PBS доступна только между несколькими экземплярами самого сервера бэкапов, то есть для переноса бэкапов на другое устройство там должен быть установлен Debian с пакетом PBS. Альтернативой может являться создание хранилища данных в удаленной папке, созданной по протоколу NFS. В моем случае стояла задача восстановить исходную схему резервирования бэкапов, которая была реализована до перехода на создание бэкапы с помощью PBS, когда резервные копии также переносились на мой основной компьютер, откуда отправлялись на внешний диск.

Так как основной компьютер работает под управлением Windows, возникли неожиданные сложности. NFS не поддерживается не серверными версиями Windows, остаются только сторонние варианты реализации. Но и в такой ситуации есть ряд подводных камней, фактически NFS будет являться просто сетевой папкой, куда складываются бэкапы, следовательно для резервного копирования в момент выполнения задачи компьютер с данной папкой должен быть включен. В результате моих поисков было найдено два основных варианта для решения поставленной задачи:

1. Запустить виртуальную машину с PBS

2. Запустить PBS в Docker-контейнере

В дальнейшем я выбрал вариант запуска через Docker-контейнер, так как он для меня оказался более удобным и менее прожорливым по ресурсам (вся система Docker с запущенным PBS потребляет до 700 Мб ОЗУ). Также мне было откровенно лень разбираться с пробросом портов из виртуальной машины и еще пачкой ненужных задач. Для виртуальных машин Proxmox - ван лав. Так же данный способ подойдет для запуска на NAS.

Установка и запуск PBS в докере

Данный способ является не рекомендуемым и явно не поддерживаемым, для большей стабильности рекомендую использовать вариант запуска через виртуальную машину. Настройка синхронизации между двумя экземплярами PBS будет описана в следующем разделе.

Для установки PBS на Debian в виртуалке приведен на официальном сайте: https://pbs.proxmox.com/docs/installation.html#install-proxmox-backup-server-on-debian

Для запуска докер в Windows необходимо установить docker desktop с официального сайта https://www.docker.com/products/docker-desktop/ для полноценной работы потребуется регистрация на докер хаб.

После установки и первого запуска попадаем в стартовое окно docker desktop которое на самом деле очень бесполезное, в дальнейшем он нам понадобиться только для администрирования контейнера.

Pasted image 20240620145025.png

В принципе этой установки должно быть достаточно, но лучше так же установить WSL если не был установлен ранее. Идем в Microsoft Store (да на удивление он все еще живой, сам в шоке) и находим там Windows Subsystem for Linux.

Pasted image 20240620145039.png

Данная подсистема предназначена для запуска Linux системы прямо в Windows без использования стороннего софта для виртуализации, а так же его использует докер.

Переходим в настройки докера и включаем запуск при старте Windows и включаем WSL2/

Pasted image 20240620145049.png

В принципе данных настроек должно быть достаточно для запуска необходимого нам контейнера.

Но дополнительно настроим что бы докер не съедал наши ресурсы до бесконечности, по умолчанию потребление.

Идем в основную папку пользователя: C:\Users\UserName

И создаем там файлик со следующим именем: .wslconfig

Открываем файл через любой текстовый редактор (рекомендую Notepad ++) И вставляем следующий конфиг:

[wsl2]
memory=1GB
processors=1

Данная настройка вступит в силу после перезагрузки компьютера. Таким образом мы ограничиваем работу докера что бы он мог использовать не более 1Гб озу и не более одного виртуального ядра, чего для наших задач достаточно. Отдельно отмечу что минимальный объем может быть 1Гб так как происходит округление до целых значений. Данное ограничение действует на весь WSl в целом.

Подробней о данном конфиг файле можно почитать тут: https://learn.microsoft.com/ru-ru/windows/wsl/wsl-config

На этом предварительный этап закончен, приступаем непосредственно к запуску PBS.

Сам проект задумывался для того что бы запускать PBS на NAS с поддержкой докера что в принципе является не плохим решением. Подробней с ним можете ознакомиться по ссылке: https://github.com/ayufan/pve-backup-server-dockerfiles

Приступаем к запуску, для этого создадим папку в которой будет храниться конфиги и все данные нашего PBS (при желании можно развести их по разным папкам путем модификации docker compose).

Нам потребуется вот такая структура папок:

Pasted image 20240620145115.png

Создаем в корневой папке новый файл с именем docker-compose.yml и вставляем следующий конфиг:

version: '2.1'

services:
  pbs:
    image: ayufan/proxmox-backup-server:latest
    container_name: pbs
    hostname: hostName
    mem_limit: 128Mb
    environment:
      - TZ=Europe/Moscow
    volumes:
      - D:\Proxmox Backup Server\etc:/etc/proxmox-backup
      - D:\Proxmox Backup Server\logs:/var/log/proxmox-backup
      - D:\Proxmox Backup Server\lib:/var/lib/proxmox-backup
      - D:\Proxmox Backup Server\backups:/backups
    ports:
      - 8007:8007
    tmpfs:
      - /run
    restart: unless-stopped
    stop_signal: SIGHUP

Изменяем параметры volumes на свои а так же устанавливаем hostname для адекватного отображения имени хоста в интерфейсе PBS.

Сохраняем файл и открываем консоль windows.

Pasted image 20240620145143.png

Вводим стандартную команду запуска docker compose

docker compose up -d

Pasted image 20240620145159.png

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

Возвращаемся в окно docker desktop и видим появившийся новый контейнер и потребление выделенных ресурсов.

Pasted image 20240620145207.png

Фактическое потребление (зарезервировано) для системы в моем случае:

Pasted image 20240620145218.png

На это этап запуска PBS в докере закончен, приступаем к непосредственной настройке синхронизации.

Настройка нового экземпляра PBS

Заходим в веб морду нашего нового экземпляра PBS по адресу: https://<Ip-pc>:8007/

По умолчанию доступен один пользователь: admin с паролем pbspbs

Заходим в систему и приступаем к настройке.

Нам необходимо создать хранилище данных, для этого нажимаем «Добавить хранилище данных».

Pasted image 20240620145246.png

Путь к хранилищу указываем на папку, которую прокинули из компьютера для хранения бэкапов.

Тут же настроим задание проверки резервных копий на целостность.

Pasted image 20240620145304.png

Pasted image 20240620145257.png

Следующим шагом необходимо настроить права для работы с полученным хранилищем. Идем в радел управление доступом и создаем нового пользователя:

Pasted image 20240620145323.png

Нам необходимо создать нового пользователя и сменить пароль для существующего.

Так же выдаем права пользователю:

Pasted image 20240620145333.png

В моем примере хранилище данных называется deniom-pc.

В хранилище данных должно быть так:

Pasted image 20240620145341.png

Настройка синхронизации между экземплярами PBS

Основные настройки будут происходить на вторичном PBS который будет вытягивать бэкапы из PBS на хосте proxmox.

Данные настройки выполняем под пользователем admin так как могут быть проблемы с правами. Подключаться мы так же будет через root пользователя к основному серверу. В идеале необходимо разграничивать права и использовать ограниченного пользователя.

Переходим в удаленные хранилища, и добавляем новое подключение

Pasted image 20240620145356.png

Заполняем данные для авторизации на основном сервере PBS.

Pasted image 20240620145405.png

Отдельно надо отметить поле отпечаток, он нужен для установки ssl соединения между нашими системами. Что бы его получить возвращаемся в интерфейс PBS основного сервера PBSи на вкладке панелью мониторинга нажимаем показать отпечаток.

Pasted image 20240620145414.png

Переходим в хранилище данных и настроим синхронизацию

Pasted image 20240620145427.png

В данной настройке будет выполняться попытка синхронизации каждых два часа.

Заключение

На этом настройка фактически завершена, на самом деле мы имеем практически полноценный экземпляр PBS.

Так же мы можем подключить данный экземпляр PBS напрямую к proxmox и делать бэкапы прямо в него, данное решение будет удобно для установки на NAS.

Спасибо за внимание.