RuBackup: готовим тукана к работе


Сегодня установим и настроим до рабочего состояния RuBackup

Начать стоит с того, что установку мы будем проводить на Ubuntu 20.04. Если посмотреть на страницу скачивания — вариантов не импортозамещённых ОС у нас не так много. Вариант с Debian 10 и CentOS 7 и 8 мне нравится меньше, чем Ubuntu 20, по-этому выбрал для установки именно её.
Если почитать гайд по установке, то там сказано о том, что сервер управления может быть установлен на ОС без GUI, но у меня так и не получилось его завести, а в личном диалоге инженеры RuBackup порекомендовали всё же поставить GUI на сервер. Делается в Ubuntu довольно легко при помощи tasksel.

sudo apt install tasksel
sudo tasksel install ubuntu-desktop

после чего необходимо перезапустить машину.

Перейдём к установке. Сначала нужно установить зависимые пакеты, которые потребуются клиенту RuBackup:

sudo apt-get -y install mailutils libcurl4 openssl

А для самого RBM (консоли управления) потребуется ещё libqt5sql5-psql:

sudo apt-get -y install libqt5sql5-psql

RuBackup в качестве БД использует PostgreSQL и его нам так же необходимо установить:

sudo apt-get -y install postgresql postgresql-contrib
sudo -u postgres psql -c "alter user postgres password 'super_secret_db_password';"

Конфигурируем

cat << EOF > /etc/postgresql/12/main/pg_hba.conf
local   all             postgres                                peer
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.0.0/16          md5
EOF
sudo nano /etc/postgresql/12/main/postgresql.conf
	listen_addresses = '*'
systemctl restart postgresql

Я устанавливаю версию 2.0.99.U1.13 Update 1, которая ещё имеет статус Beta. Почему использую именно его — ответ прост, в этой версии добавлена поддержка гиппервизора VMware, ибо остальных поддерживаемых вариантов у меня в лабе просто нет, а агентский бекап это не так уж и интересно.

Теперь необходимо закинуть на сервер следующие пакеты:
rubackup-client
rubackup-common
rubackup-rbm
rubackup-server
это минимальный рабочий набор для сервера управления. Так же я установлю пакет rubackup-vmware, который и отвечает за интеграцию с VMware. Установка:

dpkg -i rubackup-common_2.0.99.U1.13-1_amd64.deb rubackup-client_2.0.99.U1.13-1_amd64.deb rubackup-server_2.0.99.U1.13-1_amd64.deb rubackup-rbm_2.0.99.U1.13-1_amd64.deb rubackup-vmware_2.0.99.U1.13-1_amd64.deb

Далее в .bashrc необходимо добавить путь до /opt/rubackup/lib

cat << EOF >> /home/korp/.bashrc
PATH=$PATH:/opt/rubackup/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rubackup/lib
export PATH
export LD_LIBRARY_PATH
EOF

И ещё одна важная вещь — пользователя под которым мы будем работать в ОС необходимо добавить в группу rubackup, иначе будете получать ошибки об отсутствии модулей QT.

sudo usermod -a -G rubackup korp

Проинициализируем сервер RuBackup:

rb_init -y -n primary-server -H 127.0.0.1 -X super_secret_db_password -Y super_secret_admin_password -i ens160 -f /default_pool -l /rubackup_tmp -R yes

Здесь обращаем главное внимание на директории и выделение места под них. Принцип работы таков, что сначала данные льются во временную директорию с хоста VMware, а потом уже переливаются в пул, так что свободного места нужно заготовить заранее с запасом.
Теперь нам необходимо настроить модуль для VMware, делается это в конфигурационном файле /opt/rubackup/etc/rb_module_vmware_vm.conf

vcenter https://vc.korphome.local/
login crypted YWRtaW5pc3RyYXRvckB2c3BoZXJlLmxvY2FsOkE0e3N5RTZxRCkqM1I0RSV1WmF1
ca_info /opt/rubackup/vmware-certs/certs/lin/5d361c0f.0

кодированный логопас получаем при помощи команды base64 в косоли

echo -n 'LOGIN:PASSWORD' | base64

сертификаты скачиваем

wget /certs/download.zip --no-check-certificate

и кладём в директорию /opt/rubackup/vmware-certs/certs/lin/, например
проверить работу модуля можно перейдя в директорию /opt/rubackup/modules и выполнив

$ ./rb_module_vmware_vm -t
[2023-09-28 15:21:00] Info: Module version: 2.0
[2023-09-28 15:21:00] Info: Connected to: https://vc.korphome.local
[2023-09-28 15:21:00] Info: rb_vmware_connector version: 0.003
[2023-09-28 15:21:00] Info: VMware vCenter Server version: 8.0.2.00000

Вообще не обязательно ставить данный модуль именно на сервер управления, просто в моём случае конфигурация all-in-one это подразумевает. В продуктивной же среде лучшим решением будет использовать отдельные серверы для роли медиасервера.

Далее в случаем Linux или MacOS (для современных версий MacOS необходимо отдельно установить XQuartz) вашей рабочей станции просто запускаем

ssh -X host -l user

Ну а для клиента под Windows лучше взять MobaXterm в котором уже есть сервер X’ов.
Пароль от консоли мы указывали при инициализации сервера, а стандартный логин — rubackup.

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

На главной странице мы видим нашего клиента — Ubuntu и поддерживаемые им модули для резервного копирования. Что бы настроить резервное копирование виртуальной машины необходимо перейти на вкладку «Правила» и нажать +. Перед нами предстанет довольно обширная форма, которую нам и необходимо заполнить.

Название правила — я выбираю аналогично имени виртуальной машины
Клиент — оставляем текущий, но если у вас несколько агентов для резервного копирования VMware, то необходимо выбрать нужный
Тип ресурса — VMware VM. ЕСли нажать на … справа, то появится меню для выполнения скриптов до и после создания снепшота виртуальной машины

Ресурс — выбираем необходимую виртуальную машину (обратите внимание, что в поле будет отображаться не её имя, а vmid)
Тип РК — Full, Diff, Inc, соответственно отвечают за типы создаваемых резервных копий
После этого нажимаем кнопку — Добавить правило в шаблон. На этом этапе мы можем добавить несколько виртуальных машин, которые хотим поставить на резервное копирование.
Из интересного мы можем выполнять различные скрипты в случае удачного и неудачного выполнения задания.

Далее в шаблоне глобального расписания мы можем выбрать пул, на котором будут храниться резервные копии (в нашем случае это Default с расположением /default_pool, который мы указали при инициализации RuBackup) и Расписание (привет GUI для cron)

Это минимальный набор параметров, которые нам необходимы на первом этапе для создания резервной копии, но давайте сразу рассмотрим и дополнительные возможности.

Как часто проверять резервные копии
Срок хранения резервных копий
Перемещение резервных копий в другой пул по истечении времени
Автоматическое удаление устаревших резервных копий

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

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

Можно запустить задание вручную, на вкладке Правила, щёлкнув правой кнопкой мыши по заданию и выбрав Выполнить.
Резервное копирование может выполняться в одном из двух режимов — NBD или HotAdd.

После создания резервной копии мы можем перейти в раздел Репозиторий и увидеть наши резервные копии

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

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

Левая часть говорит нам о самой резервной копии — что, когда и почему, а в правой части нам доступна настройка параметров восстановления. Первым необходимо указать Путь назначения — это директория, куда будут предварительно развёрнуты файлы виртуальной машину для х последующей передачи на хост виртуализации. Перейдём к параметрам восстановления VMware

Здесь все параметры предельно понятно — это «точка назначения» куда мы будем восстанавливать виртуальную машину, какое имя ей зададим и в какую сеть включим (не знаю будет ли это исправлено к релизу, но в бете все поля не умещаются в окно настроек, при этом нет вертикального скролбара и не все параметры видны без пролистывания по вертикале).
И последний чекбокс, на который следует обратить внимание — Восстановить на целевом ресурсе. Если его поставить — виртуальная машина будет развёрнута в среде виртуализации, если же не поставить данный чекбокс, то виртуальная машина будет просто развёрнута из резервной копии во временную директорию.

Что ещё интересного вышло в новой бете:

  • Модуль для Greenplum Database, поддерживающий полное и инкрементальное резервное копирования СУБД Greenplum и СУБД ArenaData DB путем взаимодействия с утилитами gpbackup и gprestore
  • Модуль для OpenStack, поддерживающий полное, инкрементальное и дифференциальное резервное копирование
  • Улучшение для модуля для PostgreSQL (Universal), позволяеющее автоматически перезапускать задачи РК при работе с кластером Patroni и обрабатывать сценарии Failover, Switchover и Failback в кластере, а также выполнять РК только с лидера кластера Patroni при включении соответствующей настройки
  • Поддержка Astra Linux в модуле для VMmanager
  • Поддержка Astra Linux 1.7.4
  • Поддержка ПК СВ «Брест» 3.3
  • Поддержка Аэродиск Аист 3.8

Что мне хотелось бы пожелать компании RuBackup по итогу — интерфейс! Я бы даже поставил несколько восклицательных знаков. Толстый клиент на Linux это конечно мягко говоря — перебор, и работает это не так хорошо и выглядит я бы сказал — ужасно. Интерфейс не совсем интуитивно понятен, кое где просто перегружен, да и в целом создаётся впечатление, что это просто надстройка над БД и cron’ом.
Скрипт, который ребята выложили на Хабре — сделать универсальным под все ОС и выдавать вместе с дистрибутивом, вынеся необходимые переменные из скрипта для автоматизации установки — скрипт действительно делает всё сам за несколько минут и не нужно конфигурировать ничего руками — удобно и просто. При этом уницифировать его и сделать скачивание релизов не через NextCloud было бы отличной идеей.
И отдельно, то что касается модуля для VMware — он конечно требует дальнейшей доработки. Пока создавать одно задание на одну машину это как минимум — не удобно и избыточно. Так же нужна поддержка ресурс пулов, тегов и папок, для более удобной навигации по системе, т.к. при большом количестве виртуальных машин искать их просто по списку совершенно не удобно, если мы говорим о кластере хотя бы в несколько десятков виртуальных машин. Тем более, что виртуальные машины могут создаваться и удаляться в рамках ресурс пула и было бы хорошо иметь в рамках задания динамическую сущность. Так же не стоит забыть и о vCloud Director, поддержка которого нужна так же для крупных инсталляций, если RuBackup целится занять и эту нишу.

Добавить комментарий