6.7.1 Подготовка Freezer к использованию

ВАЖНО.

Freezer Scheduler и Freezer Agent должны быть установлены вместе – на один управляющий узел.

6.7.1.1 Подготовка базы данных

Чтобы создать базу данных, выполните следующие действия:

  1. Используйте клиент БД, для подключения к серверу БД от имени пользователя root (root@controller).
mysql -u root -p
  1. Создайте базу данных freezer:
MariaDB (none)>
CREATE DATABASE freezer;
  1. Предоставьте доступ к БД freezer:
MariaDB (none)>
GRANT ALL PRIVILEGES ON freezer.* TO 'freezer'@'localhost' IDENTIFIED BY 'FREEZER_DBPASS';
GRANT ALL PRIVILEGES ON freezer.* TO 'freezer'@'%' IDENTIFIED BY 'FREEZER_DBPASS';

Замените „FREEZER_DBPASS“ соответствующим паролем.

  1. Настройте административное окружение для доступа к ресурсам Openstack с помощью CLI-команд и выполните настройку сервиса.

Подключитесь к УУ с правами суперпользователя:

Выполните нижеописанные действия (на УУ).

  1. Создайте пользователя freezer:

    openstack user create --domain default --password-promt freezer
    

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

  1. Предоставьте роль администратора пользователю freezer:

    openstack role add --project service --user freezer admin
    

Обратите внимание, что команда не предоставляет вывода какой-либо информации при корректном выполнении.

Примечание.

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

  1. Создайте службу OpenStack с названием freezer:

    openstack service create --name freezer --description "Freezer Backup Service" backup
    
  2. Создайте новые эндпоинты для сервиса резервного копирования:

    openstack endpoint create backup --region RegionOne admin http://http://controller:9090
    openstack endpoint create backup --region RegionOne internal http://http://controller:9090
    openstack endpoint create backup --region RegionOne public http://http://controller:9090
    

6.7.1.2 Установка и настройка компонентов

6.7.1.2.1 Freezer API

Подключитесь к УУ (root@controller) и установите пакет (с зависимостями):

dnf install freezer-api

Примечание.

Вместе с пакетом будут также установлены зависимости, необходимые для работы Freezer API.

Актуальные версии пакетов скачиваются из репозитория tionix-extras, который был настроен ранее (для установки модулей TIONIX).

Отредактируйте файл /etc/freezer/freezer-api.conf – в секции [database] укажите параметр доступа к БД („connection = „):

[database]
...
connection = mysql+pymysql://freezer:FREEZER_DBPASS@controller/freezer

ВАЖНО.

Не забудьте изменить переменную „FREEZER_DBPASS“ на пароль для доступа к БД, заданный ранее.

В секции [DEFAULT] укажите путь к файлу, в который будут записываться логи API:

[DEFAULT]
...
log_file = /var/log/freezer/freezer-api.log

Отредактируйте/создайте секцию [keystone_authtoken], в соответсвии со следующим примером:

[keystone_authtoken]
...
www_authenticate_uri = http://controller:5000/v3
auth_url = http://controller:5000/v3
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = freezer
password = FREEZER_USER_PASSWORD

Измените переменную „FREEZER_USER_PASSWORD“ в соответствии с паролем пользователя freezer (который был задан ранее).

В секции [storage] укажите следующие параметры:

[storage]
backend = sqlalchemy
driver = sqlalchemy

Дополните файл /etc/freezer/freezer-api.conf следующими разделами, при их отсутствии:

[oslo_middleware]
enable_proxy_headers_parsing = True

[paste_deploy]
config_file = /etc/freezer/freezer-paste.ini

Для первичной инициализации БД выполните следующую команду:

freezer-manage db sync

Выполните ряд команд для запуска системной службы freezer-api.service:

systemctl daemon-reload
systemctl enable freezer-api.service
systemctl start  freezer-api.service

6.7.1.2.2 Freezer Web UI

Freezer Web UI – надстройка интерфейса управления (OpenStack Horizon), позволяющая выполнять администрирование службы Backup aaS с помощью web-интерфейса. Надстройка совместима с TIONIX.Dashboard.

Установка необходимых компонентов осуществляется после подключения к УУ ssh root@controller):

dnf install freezer-web-ui

Перейдите в директорию с установленным приложением и выполните копирование файла активации панели в файловую структуру Horizon (Openstack Dashboard).

cp /usr/lib/python3.6/site-packages/disaster_recovery/enabled/_5050_freezer.py /usr/share/openstack-dashboard/openstack_dashboard/enabled/

Выполните перезапуск веб-сервера:

systemctl restart httpd

Выполните вход интерфейс управления (Dashboard, Раздел 6.4.1) и убедитесь в появлении панели Freezer (Аварийное восстановление, Disater&Recovery).

6.7.1.3 Проверка доступности API

После успешного прохождения вышеописанных шагов рекомендуется проверить доступность API по заданным эндпоинтам.

Подключитесь к УУ (root@controller) и выполните выпуск токена для авторизации в Keystone. Выполните команду:

openstack token issue

Будет выведен ответ в виде таблицы с информацией о новом токене. Скопируйте в буфер обмена значение параметра id. Пример ответа:

Таблица 6.5 Перечень поддерживаемого оборудования
Поле (Field) Значение (Value)
expires_id 2022-07-25T10:08:14+0000
project_id gAAAAABi3l1-nuiLliWjXD5Iti_IEu2Snp_q4A4RuqaPqqwb1bjdYmh6Cm4eP7Lxhb6XucFnp2cjQngC3B7JWdkwHI8aI- IoM88zB6h9eV5SDq1wEV1R2PJwzrKwNE8iVrTGM2qMApld0qfW1rNuFA7O8B-RYYO4PsjajsfE_8JDiQ_crToGmLg
user_id fabd301c08bf45588bf4161d907cf209

Выполните экспорт переменной, содержащей id токена, скопированный ранее:

export my_token=gAAAAABi3l1-nuiLliWjXD5Iti_IEu2Snp_q4A4RuqaPqqwb1bjdYmh6Cm4eP7Lxhb6XucFnp2cjQngC3B7JWdkwHI8aI-IoM88zB6h9eV5SDq1wEV1R2PJwzrKwNE8iVrTGM2qMApld0qfW1rNuFA7O8B-RYYO4PsjajsfE_8JDiQ_crToGmLg

Выполните HTTP-запрос на адрес и порт, на котором должен работать сервис Freezer API:

curl -X GET -H "X-Auth-Token: $my_token" http://controller:9090/v2 | jq

После выполнения команды ответ от API приходит в формате JSON.

6.7.1.4 Установка и настройка Scheduler/Agent

Следующим важным этапом разворачивания СРК является установка Freezer SchedulerAgent. Данные компоненты работают в связке друг с другом, отвечают за создание бэкапов непосредственно на узлах.

Подключитесь к УУ (ssh root@controller) и выполните установку необходимых компонент:

dnf install freezer python-freezerclient

Создайте/отредактируйте файл /etc/freezer/freezer-scheduler.conf в соответствии с примером ниже. В секции [DEFAULT] необходимо настроить авторизацию в службе Keystone:

[DEFAULT]
...
os_auth_url = http://controller:5000/v3
os_username = freezer
os_password = FREEZER_PASS
os_project_name = service
os_project_domain_name = default
os_user_domain_name = default
os_backup_endpoint = http://controller:9090/
...

Обратите внимание, что переменная „os_password“ должна содержать пароль, который был указан при создании служебного пользователя freezer в системе.

Дополните указанную выше секцию следующими строками:

[DEFAULT]
...
jobs_dir = /etc/freezer/scheduler/conf.d
log_file = /var/log/freezer/freezer-scheduler.log
...

Выполните запуск systemd-сервиса (freezer-scheduler.service):

systemctl daemon-reload
systemctl enable freezer-scheduler.service
systemctl start freezer-scheduler.service

Убедитесь, что Freezer Scheduler зарегистрировал ноду в Freezer API с помощью CLI-клиента freezerclient и данной команды:

freezer client --list

Пример ответа (root@controller):

Client ID uuid hostname description
хэш-код_controller 5cac43214ec64991842b61966c6067a0 controller None

6.7.1.5 Проверка работоспособности служб

Выполните вход в интерфейс управления TIONIX.Dashboard и перейдите:

Аварийное восстановление (локализованный на русский язык)

или

Disaster & Recovery (английский язык интерфейса)
../_images/Freezer-UI.png

Рис. 6.48 Интерфейс пользователя (Freezer UI)

Настройте задание, содержащее ряд действий (создание РК, восстановление и удаление).

Сноски

[1]https://docs.openstack.org/freezer/latest/install/get_started.html#concepts-and-definitions