6.8.1 Подготовка Freezer к использованию¶
ВАЖНО.
Freezer Scheduler и Freezer Agent должны быть установлены вместе – на один управляющий узел.
6.8.1.1 Подготовка базы данных¶
Чтобы создать базу данных, выполните следующие действия:
- Используйте клиент БД, для подключения к серверу БД от имени пользователя root (root@controller).
mysql -u root -p
- Создайте базу данных freezer:
MariaDB (none)> CREATE DATABASE freezer;
- Предоставьте доступ к БД 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“ соответствующим паролем.
- Настройте административное окружение для доступа к ресурсам Openstack с помощью CLI-команд и выполните настройку сервиса.
Подключитесь к УУ с правами суперпользователя:
ssh root@controllerВыполните нижеописанные действия (на УУ).
Создайте пользователя freezer:
openstack user create --domain default --password-promt freezerПосле выполнения команды необходимо задать соответствующий пароль для пользователя в интерактивном режиме.
Предоставьте роль администратора пользователю freezer:
openstack role add --project service --user freezer adminОбратите внимание, что команда не предоставляет вывода какой-либо информации при корректном выполнении.
Примечание.
Впоследствии, аналогичной командой необходимо давать пользователю freezer доступ к тем проектам, для которых будет выполняться бэкап.
Создайте службу OpenStack с названием
freezer
:openstack service create --name freezer --description "Freezer Backup Service" backupСоздайте новые эндпоинты для сервиса резервного копирования:
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.8.1.2 Установка и настройка компонентов¶
6.8.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.8.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.8.1.3 Проверка доступности API¶
После успешного прохождения вышеописанных шагов рекомендуется проверить доступность API по заданным эндпоинтам.
Подключитесь к УУ (root@controller) и выполните выпуск токена для авторизации в Keystone. Выполните команду:
openstack token issue
Будет выведен ответ в виде таблицы с информацией о новом токене.
Скопируйте в буфер обмена значение параметра id
. Пример ответа:
Поле (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.8.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.8.1.5 Проверка работоспособности служб¶
Выполните вход в интерфейс управления TIONIX.Dashboard и перейдите:
(локализованный на русский язык)
или
(английский язык интерфейса)
Настройте задание, содержащее ряд действий (создание РК, восстановление и удаление).
Сноски
[1] | https://docs.openstack.org/freezer/latest/install/get_started.html#concepts-and-definitions |