В середине июле этого года мы рассказывали о том, что была представлена бета-версия Proxmox Backup Server (PBS). В день холостяков, 11.11.2020 в 11:11, Proxmox Server Solutions GmbH опубликовали релиз версии 1.0.1, что не прошло незамеченным. Взглянем детально, как использовать PBS и для чего он подходит.
Основной упор при создании PBS был сделан на совместимость и удобство работы с Proxmox VE (PVE). Разработчики постарались максимально упростить процесс интеграции и сделать так, чтобы все элементы интерфейса и подход к управлению резервным копированием были интуитивно понятны пользователям PVE.
Прежде всего установим Proxmox Backup Server. С момента выхода beta-версии инсталлятор остался точно таким же.
Доступные варианты файловых систем в инсталляторе
Примечательно то, что система может сама собрать ZFS-массив и установиться сразу на него. Также для выбора доступна традиционная для Linux файловая система EXT4.
Вариант с XFS не рекомендуем, поскольку у нее имеется ряд существенных недостатков, таких как невозможность уменьшить размер существующей файловой системы, а также сложность восстановления данных при возникновении сбоев.После установки и перезагрузки появляется возможность зайти в веб-интерфейс управления PBS. Отметим, что не все действия можно выполнить непосредственно из него, часть придется выполнять через CLI. Вероятно, с развитием продукта ситуация в корне поменяется.
Внешний вид веб-интерфейса управления
Главная страница достаточно информативна. Удобные индикаторы, показывающие в реальном времени нагрузку на сервер, данные по занятому дисковому пространству, наиболее длительные операции за последний месяц, а также запущенные задания резервного копирования.
Главное не забыть обновления
Чтобы потом не было мучительно больно получать ошибки вида HTTP Error 404 Not Found: Path '/fixed_index' not found при создании заданий бэкапа, следует озаботиться обновлением серверов PVE и PBS до актуальных версий. Если у вас есть платная подписка на Enterprise-репозиторий, то просто обновляете дистрибутивы командой:
apt update && apt full-upgrade
Если подписки нет ничего страшного. Пропишем в систему no-subscription репозиторий и обновимся с него.
nano /etc/apt/sources.list.d/pve-enterprise.list
Закомментируем строку платного репозитория символом # и добавим следующую строку.
Для Proxmox Backup Server:
deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
Для Proxmox Virtual Environment:
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Выходим Ctrl + X и отвечаем y. Теперь можно обновить пакеты вышеуказанной командой и приступить к интеграции PBS.
Добавляем PBS-сервер в Proxmox VE
Перед тем как добавлять сервер резервного копирования в среду виртуализации Proxmox VE, потребуется выполнить ряд предварительных действий непосредственно на сервере Proxmox Backup Server.
Создание пользователей
Управление пользователями в Proxmox Backup Server
Перед тем как переходить к бэкапам, нужно первым делом сконфигурировать доступы. Советуем сразу зайти в Configuration Access Control и создать пользователей для хранилища. Для демонстрации мы изначально создали пользователя test@pbs, которого станем использовать для подключения. Обратите внимание, что при вводе имени пользователя часть '@pbs' обязательна, в противном случае будет выдаваться ошибка о неверно введенных данных.
Теперь переходим к созданию нужных репозиториев (Datastore в терминологии PBS). Это дает возможность четко распределить бэкапы по необходимым системному администратору критериям, а также распределить права доступа. Для создания нам потребуется директория, расположенная на одном из примонтированных дисков.
Создание Datastore и указание прав доступа
Управление дисками в Proxmox Backup Server
Заходим в раздел Administration Storage / Disks. Выбираем нужный диск и инициализируем его нажатием кнопки Initialize Disk with GPT. Теперь переходим в раздел Directory Create:Directory и создаем директорию для хранения данных. Здесь указываем имя репозитория и абсолютный путь к созданной директории. Если поставить галочку Add as Datastore, то новый репозиторий сразу будет подключен как сущность для хранения данных.
Осталось лишь указать пользователей, которые имеют право использовать этот репозиторий, и их уровень доступа. Для этого кликаем на имя созданного репозитория, переходим в раздел Permissions и нажимаем кнопку Add User Permission. Выбираем нужного пользователя и его роль, затем подтверждаем нажатием Add. На этом предварительная подготовка закончена.
Сохранение отпечатка пальца сервера
По умолчанию PBS поставляется с самоподписанным сертификатом SSL. Чтобы в дальнейшем установить доверенное соединение между клиентом и сервером PBS, следует считать его отпечаток и сохранить для последующего использования.
Заходим в Administration Shell и снимаем отпечаток пальца сервера:
proxmox-backup-manager cert info | grep Fingerprint
Ответом на команду будет строка вида:
Fingerprint (sha256):bb:fb:13:0f:f7:59:df:32:f0:bf:70:38:22:f8:22:93:05:2f:22:80:bc:71:07:cc:8d:1f:6e:f8:0f:da:bf:73
В дальнейшем мы будем использовать этот отпечаток для установки соединения.
Добавление сервера в роли хранилища
Увы, на данный момент нет способа добавить новое хранилище с типом pbs непосредственно из веб-интерфейса Proxmox VE. Так что воспользуемся консолью и проделаем следующие шаги. Добавляем наш Datastore командой:
pvesm add pbs PVE_STORAGE_NAME --server PBS_SERVER_ADDRESS --datastore STORAGE_NAME
Немного разберем, что делает эта команда:
- pvesm add pbs добавление хранилища (Storage в терминологии PVE);
- PVE_STORAGE_NAME это имя будет отображаться в веб-интерфейсе PVE и может отличаться от имени хранилища;
- --server PBS_SERVER_ADDRESS указываем хостнейм или IP-адрес сервера PBS (при необходимости можно указать и другой порт подключения через --port);
- --datastore STORAGE_NAME тут указываем имя существующего datastore на сервере PBS.
pvesm set PVE_STORAGE_NAME --username test@pbs --password PASSWORD
Тут все также логично. Нам нужно указать реквизиты для подключения к хранилищу. Именно для этого мы предварительно создавали пользователя и распределяли права доступа. Осталось лишь прописать отпечаток пальца сервера для установки доверенного соединения.
pvesm set PVE_STORAGE_NAME --fingerprint bb:fb:13:0f:f7:59:df:32:f0:bf:70:38:22:f8:22:93:05:2f:22:80:bc:71:07:cc:8d:1f:6e:f8:0f:da:bf:73
Так выглядит правильно подключенное хранилище сервера PBS
После выполненных действий мы увидим наше хранилище в списке доступных для хранения данных бэкапов виртуальных машин и контейнеров, а также статистику заполненности. Пора сделать первый бэкап.
Бэкап LXC-контейнера
Тестовый контейнер с Ubuntu
Для теста мы из стандартного шаблона создали и запустили контейнер СТ100 с запущенной внутри операционной системой Ubuntu 16.04. Теперь переходим в раздел Backup, выбираем нужный Storage и нажимаем кнопку Backup Now. Выбираем тип резервного копирования (об этом можно детально прочитать в одной из предыдущих статей) и выполняем резервное копирование.
Успешно выполненный бэкап из web-интерфейса PVE
Зайдя на сервер PBS, мы также увидим, что у нас теперь есть информация о выполненном задании резервного копирования.
Успешно выполненный бэкап из web-интерфейса PBS
Восстановление контейнера
Сделать бэкап это лишь половина успеха. Гораздо важнее из него восстановиться. Удаляем наш LXC-контейнер с Ubuntu и попробуем выполнить процедуру восстановления. Для этого в веб-интерфейсе PVE переходим на наш Storage в раздел Content и выбираем файл бэкапа.
Выбор опций восстановления
Для восстанавливаемого контейнера выбираем место размещения, новый ID (по умолчанию будет стоять тот, который был на момент резервного копирования), а также скоростной лимит чтения данных. Это позволит не перегрузить входящий канал сервера виртуализации. Нажимаем Restore и запускаем наш контейнер.
Контейнер восстановлен и запущен
Контейнер успешно восстановлен. На нашем тестовом стенде процедура бэкапа заняла чуть более 9 секунд и восстановилась за 14. Скорость будет зависеть как от выбранных опций, так и от характеристик обоих серверов.
Бэкап виртуальной машины
Процедура бэкапа полноценной виртуальной машины ничем не отличается от процедуры бэкапа контейнера, разве что времени занимает больше. Мы для теста создали машину с ID 100 и развернули на ней Ubuntu 16.04, после чего выполнили резервное копирование.
Успешно выполненный бэкап виртуальной машины из веб-интерфейса PVE
Со стороны Proxmox Backup Server это выглядело следующим образом:
Успешно выполненный бэкап виртуальной машины из веб-интерфейса PBS
Как и в случае с контейнером, процедура восстановления проста и тривиальна. Указываем, какой бэкап, куда разворачиваем и будем ли включать машину после завершения процедуры.
Бэкап данных с любого Linux-хоста
Помимо виртуальных машин и контейнеров, заявлено, что Proxmox Backup Server позволяет бэкапить любые Linux-хосты целиком. Проверим это на практике. Будет использован тот же PBS-сервер. Для корректного выполнения нам потребуется на бэкапируемом хосте выполнить ряд дополнительных действий по установке агента под названием proxmox-backup-client. В роли тестовой машины у нас будет компьютер с той же самой Ubuntu 16.04.
Утилиты proxmox-backup-client в репозиториях Ubuntu нет, поэтому для начала добавим 3 репозитория. Два из них нужны для разрешения зависимостей утилиты, а еще один содержит нужный нам клиент:
sudo nano /etc/apt/sources.list
В конец добавляем строки:
deb http://ftp.debian.org/debian buster main contribdeb http://ftp.debian.org/debian buster-updates main contribdeb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
Выходим из редактора Ctrl + X и отвечаем y на вопрос о сохранении данных. Вытягиваем и устанавливаем ключики репозиториев:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7BF2812E8A6E88E0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 04EE7237B7D453EC
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com DCC9EFBF77E11517
Обновляем список источников приложений:
sudo apt update
Устанавливаем бэкап-клиент:
sudo apt install proxmox-backup-client
Осталось лишь выполнить бэкап. Для примера мы забэкапим корневую директорию нашей тестовой машины:
sudo proxmox-backup-client backup root.pxar:/ --repository PBS_IP_ADDRESS:DATASTORE_NAME
Успешно выполненный бэкап хоста
Восстановление отдельных файлов из бэкапа
Часто бывает так, что восстанавливать данные целиком не требуется, нужно лишь вытащить определенный файл или директорию. Сделать это в два щелчка можно прямо из веб-интерфейса PBS:
Пример скачивания отдельного файла из бэкапа
Заключение
Proxmox Backup Server стал тем кусочком паззла, которого не хватало для полноценной среды виртуализации Enterprise-уровня. Один раз настроив выполнение бэкапов по расписанию, можно будет не переживать, что виртуальные машины или контейнеры пропадут, например, при сбое носителей информации. Восстановить их теперь тривиальная задача, практически не требующая никаких лишних телодвижений. Подняли новый хост, добавили репозиторий и запустили восстановление.
Добавим к этому, что разработчики активно расширяют возможности своего ПО и не бросают пользователей на произвол судьбы, составляя грамотную документацию и помогая в рамках коммьюнити-форума.