company_banner

Proxmox Backup Server: интеграция с Proxmox VE и базовые операции


    В середине июля этого года мы рассказывали о том, что была представлена бета-версия 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:

    Прежде всего установим 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

    В дальнейшем мы будем использовать этот отпечаток для установки соединения.

    Добавление сервера в роли хранилища


    Добавление хранилища можно выполнить или непосредственно из веб-интерфейса Proxmox VE (DatacenterStorageAdd) или вручную. Мы воспользуемся консолью и проделаем следующие шаги. Добавляем наш 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 contrib
    deb http://ftp.debian.org/debian buster-updates main contrib
    deb 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-уровня. Один раз настроив выполнение бэкапов по расписанию, можно будет не переживать, что виртуальные машины или контейнеры пропадут, например, при сбое носителей информации. Восстановить их теперь — тривиальная задача, практически не требующая никаких лишних телодвижений. Подняли новый хост, добавили репозиторий и запустили восстановление.

    Добавим к этому, что разработчики активно расширяют возможности своего ПО и не бросают пользователей на произвол судьбы, составляя грамотную документацию и помогая в рамках коммьюнити-форума.

    Selectel
    ИТ-инфраструктура для бизнеса

    Комментарии 12

      +2

      Спасибо за статью.
      Так то пазл виртуализации и так был собран. У ПВЕ есть штатная система бекапов и есть возможность подключит прямо с веб-интерфеймп хранилище, по NFS, или SMB, или, хоть, sshfs(но уже из cli) и бекапить сколько угодно. А вот то что завезли клиента и возможность бекапить отдельные каталоги и файлы — это хорошо.

        +2
        Добрый вечер. Это разве не оно?
        Добавление сервера в роли хранилища.
        image
          0
          Добрый вечер. У меня почему-то этот пункт не отображался, поэтому добавлял через консоль. Завтра еще раз проверю на тестовом стенде. Большое спасибо!
            0
            Вы правы, через веб-интерфейс тоже возможно добавить. Статью скорректировал. Еще раз спасибо за найденную неточность.
            +1

            Спасибо за статью! Меня интересует как оно ведёт себя с бэкапом сторонних систем:


            • Что если, скажем, я хочу бэкапить блочные устройства виртуалок (не проксмос) с помощью proxmox-backup-client, будут ли в этом случае работать инкрементальные бэкапы?
            • Могу ли я бэкапить файловые системы отдельно и восстанавливать их через гуй?
            • Вся коммуникация с клиентами только через ssh или поддерживаются и другие протоколы связи?

            В первую очередь интересует как замена restic в виду наличия красивого интерфейса на ExtJS

              0

              так ведь проксмокс это perl+js


              что накинешь в свой форк, то и твоё :D

              +1
              Топикстартер, прошу вставьте в статью ссылку на официальное видео для пришедших сюда через поисковики. Считаю, что будет полезно.
              www.youtube.com/watch?v=hTaQkDwktKM
                0
                Согласен, идея хорошая, видео добавил в начале статьи.
                +2

                Есть наброс от людей с ZFS.
                https://t.me/pro_kvm/86332


                По слухам, оно опирается на qemu bitmap, то есть включенную виртуалку бекапит первый раз целиком, потом дифферанциально. Но если она не в qcow, а в zvol на zfs, то после её выключения, бекап будет отправлять снова полную копию.

                У меня бепап через zfs send-receive по 2ТБ SSD пул на сервер. Стоит такой сервера перезагрузить и в хранилку уедут 2ТБ — это не серьёзно.

                Но я сам не проверял. Поправьте меня, если я ошибаюсь.
                  0
                  Я специально провёл эксперимент, правда, не на ZFS, а на LVM Thin. Второй бекап делается инкрементально и очень быстро. Если виртуалку перезапустить, действительно, по времени это занимает, как полный бекап. Но в хранилище это ничего не занимает, Proxmox Backup Server делает дедупликацию.
                  0
                  Жаль нет возможности делать бэкапы на сетевое хранилище. Впрочем это решилось использованием NFS.

                  Есть вопрос, при создании последующего после первого бэкапа вылетает ошибка: There is a max backup limit of 1 enforced by the target storage or the vzdump parameters. Either increase the limit or delete old backup(s).

                  Не совсем понял где в интерфейсе PBS можно изменить это значение, подскажите куда смотреть? ))
                    0
                    Это меняется в Proxmox VE. Datacenter → Storage → Edit. Там есть опция Max Backups, сейчас выставленная в 1. Увеличьте это значение и все заработает.

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

                  Самое читаемое