Установка и настройка¶
Важно
Вначале необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Важно
Установка производится на управляющий узел. Для работы модуля необходимо установить службу OpenStack Nova Api.
Установка¶
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/tionix_rollback/node_control pip freeze > /tmp/tionix_rollback/node_control/
После чего в каталоге
/tmp/tionix_rollback/node_control
будет находиться файлpip_before.txt
с перечнем установленных приложений.Также сохраните версии миграции:
openstack tnx db list -n tnx_node_control > /tmp/tionix_rollback/node_control/migrations.txt
Где:
/tmp/tionix_rollback/node_control/
- директория файла;migrations.txt
- наименование файла с версиями миграций.
Установите пакет TIONIX.NodeControl:
из репозитория Python-пакетов:
# Ubuntu, CentOS: pip install tionix-node-control
из репозитория RPM пакетов:
# ALT Linux 7: apt-get -y install python-module-tionix_node_control # CentOS: yum -y install python-tionix_node_control
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip freeze > /tmp/tionix_rollback/node_control/pip_after.txt
Добавьте пользователя:
useradd -m tionix passwd tionix
Установка на двух и более контроллерах¶
При установке TIONIX.NodeControl на двух и более контроллерах необходимо:
- Реплицировать базу данных на каждый из контроллеров;
- Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров;
- Процессы
tionix-node-control-node-tracker.service
иtionix-node-control-node-syncer.service
должны быть активны только на одном контроллере. У этого же контроллера должен быть настроен доступ к серверу брокера сообщений; - Инициализацию вычислительных узлов и устройств управления питанием необходимо проводить только на одном из контроллеров.
Примечание
Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.
Настройка¶
Примечание
Рассматривается настройка запуска API сервиса через WSGI-сервер, поставляемый вместе с библиотекой eventlet
. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: tionix_node_control.api.node_control_api.wsgi
.
Выполните первичную настройку модуля:
openstack tnx configure -n tnx_node_control tnx_client
Создайте каталог для логов с нужными правами:
mkdir -p /var/log/tionix/node-control chown -R tionix:tionix /var/log/tionix/node-control
Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):
cp /etc/tionix/node_control.yaml.example /etc/tionix/node_control.yaml
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте пользователя tionix c паролем password CREATE USER 'tionix'@'localhost' IDENTIFIED BY 'password'; # Создайте базу данных tionix_node_control CREATE DATABASE tionix_node_control; # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных tionix_node_control GRANT ALL PRIVILEGES ON tionix_node_control.* TO 'tionix'@'localhost'; # Осуществите выход из базы данных
Выполните миграцию базы данных:
openstack tnx db migrate -n tnx_node_control
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user tionix password rabbitmqctl add_vhost tionix rabbitmqctl set_permissions -p tionix tionix ".*" ".*" ".*" rabbitmqctl set_permissions tionix ".*" ".*" ".*"
Создайте пользователя в OpenStack для API сервисов:
openstack user create --domain default --project service --project-domain default --password password --or-show tionix
Назначьте пользователю роль service:
openstack role add --user tionix --user-domain default --project service --project-domain default service
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable tionix-node-control-api.service systemctl start tionix-node-control-api.service systemctl enable tionix-node-control-node-syncer.service systemctl start tionix-node-control-node-syncer.service systemctl enable tionix-node-control-node-tracker.service systemctl start tionix-node-control-node-tracker.service systemctl enable tionix-node-control-worker.service systemctl start tionix-node-control-worker.service systemctl enable tionix-node-control-agent.service systemctl start tionix-node-control-agent.service
Создайте сервис NodeControl API:
openstack service create --name tnx-nc --description "TIONIX Node Control Service" tnx-nc
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne tnx-nc internal http://controller:9362 openstack endpoint create --region RegionOne tnx-nc admin http://controller:9362 openstack endpoint create --region RegionOne tnx-nc public http://controller:9362
Файл конфигурации¶
Примечание
По умолчанию в файле node_control.yaml.example
строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в yaml
формате и состоит из следующих секций и параметров:
Параметр | Описание | Значение по умолчанию |
---|---|---|
DB |
Настройка подключения к базе данных, где:
|
tionix_node_control |
SETTINGS_TRACKER |
Настройка мониторинга вычислительных узлов, где:
|
|
DHCP_LEASES_FILEPATHS |
Путь до директории с .leases файлами DHCP сервера. |
/var/lib/dhcp/dhcpd/state/dhcpd.leases , /var/lib/dhcp/dhcpd.leases |
SYNC_NOVA_NODES_TIME |
Интервал синхронизации вычислительных узлов в секундах. | 60 |
DB_CONNECTION_MAX_RETRIES |
Количество попыток подключения к базе данных. | 2 |
TIMEOUT_RESERV_NODE_UP |
Время ожидания поднятия резервного вычислительного узла в минутах. | 15 |
PXE |
Настройка PXE, где:
|
/var/lib/tftpboot/pxelinux.cfg |
MAX_DOWN_HOSTS |
Максимально допустимое количество вычислительных узлов в статусе down , за исключением резервных. При превышении этого количества автоматическая эвакуация не производится ни для одного из узлов. Отрицательные числа недопустимы. |
0 |
ALLOW_HOST_AUTO_POWER_OFF |
Параметр разрешает, либо запрещает перезапуск вычислительного узла в случае его перехода в статус
Значения являются регистронезависимыми. |
False |
MAX_TICK_COUNT |
Максимальное количество итераций проверки статуса вычислительного узла при выключении хоста с эвакуацией виртуальных машин при отключении питания гипервизора консольной утилитой. | 10 |
SLEEP_TIME |
Время ожидания до начала следующей итерации во время проверки статуса вычислительного узла при выключении хоста с эвакуацией виртуальных машин при отключении питания гипервизора консольной утилитой. Измеряется в секундах. | 30 |
HOST_RESTART_TIMEOUT |
Время ожидания перезапуска вычислительного узла. Измеряется в секундах. | 600 |
HOST_ATTACH_MAX_RETRIES |
Количество повторных попыток привязки хоста к виртуальному контроллеру в случае ошибки. | 10 |
HOST_ATTACH_RETRY_DELAY |
Время ожидания до следующей попытки привязки хоста к виртуальному контроллеру. Измеряется в секундах. | 120 |
HOST_ATTACH_NETWORK_TAG |
Тэг для фильтрации сетей при выборе сетевого интерфейса виртуального контроллера. | |
KEY_PATH |
Путь до закрытого ключа, необходимого для обращения к виртуальному контроллеру. | /etc/tionix/hybrid/tionix.crt |
CONTROLLER_USERNAME |
Имя пользователя для подключения к виртуальному контроллеру. | tionix |
CONTROLLER_AUTH_PATH |
Путь до расположенного на виртуальном контроллере файла с авторизационными данными. | /etc/tionix/hybrid/admin-openrc |
LOG_LEVEL |
Уровень логирования. Доступные значения:
Значения являются регистронезависимыми. Подробное описание параметров доступно в разделе Уровни логирования. |
INFO |
SENTRY |
Настройки логирования Sentry, где:
Значения являются регистронезависимыми. |
|
ENABLE_CEPH_INTEGRATION |
Параметр для включения или отключения функционала работы со службой Ceph, в том числе, программно-определяемыми хранилищами (SDS). Допустимые значения:
Значения являются регистронезависимыми. При значении параметра |
False |
ENABLE_NETWORK_ISOLATION |
Параметр для включения или отключения функционала работы с изолированными программно-определяемыми сетями (SDN). Допустимые значения:
Значения являются регистронезависимыми. |
False |
ENABLE_AGENT |
Параметр для включения или отключения функционала управления узлами, предоставляемого модулем TIONIX.Agent. Допустимые значения:
Значения являются регистронезависимыми. |
False |
NETWORK_ISOLATION_API_HOST |
Хост, на котором запущен сервис изоляции сети. | |
NETWORK_ISOLATION_API_PORT |
Порт, на котором запущен сервис изоляции сети. | 5549 |
RABBIT_QUEUES |
Имя vhost в брокере сообщений RabbitMQ. | vhost: tionix |
RETRIES_WAIT_FOR_NODE_STATE |
Максимальное количество попыток опроса состояния гипервизора. | 240 |
RETRIES_WAIT_FOR_VM_STATUS |
Максимальное количество попыток опроса состояния виртуальной машины. | 60 |
ALLOW_EVACUATE_HOST |
Параметр разрешает, либо запрещает эвакуацию хоста. Допустимые значения:
Значения являются регистронезависимыми. |
True |
NODE_CONTROL_API_AUDIT_ENABLED |
Параметр, включающий аудит запросов службы NodeControl API. Допустимые значения:
|
True |
NODE_CONTROL_API_LISTEN |
IP-адрес, на котором будет запущена служба NodeControl API. | 0.0.0.0 |
NODE_CONTROL_API_LISTEN_PORT |
Порт, на котором будет запущена служба NodeControl API. | 9362 |
NODE_CONTROL_API_LOGFILE |
Путь до лог файла службы tionix-node-control-api . |
/var/log/tionix/node-control/node-control-api.log |
NODE_CONTROL_NODE_SYNCER_LOGFILE |
Путь до лог файла службы tionix-node-control-node-syncer . |
/var/log/tionix/node-control/node-syncer.log |
NODE_CONTROL_STORAGE_SYNCER_LOGFILE |
Путь до лог файла службы node_control-storage-syncer . |
/var/log/tionix/node-control/storage-syncer.log |
NODE_CONTROL_NODE_TRACKER_LOGFILE |
Путь до лог файла службы tionix-node-control-node-tracker . |
/var/log/tionix/node-control/node-tracker.log |
NODE_CONTROL_WORKER_LOGFILE |
Путь до лог файла службы tionix-node-control-worker . |
/var/log/tionix/node-control/worker.log |
NODE_CONTROL_NOVA_LISTENER_LOGFILE |
Путь до лог файла службы tionix-node-control-nova-listener . |
/var/log/tionix/node-control/nova-listener.log |
NODE_CONTROL_AGENT_LOGFILE |
Путь до лог файла службы tionix-node-control-agent . |
/var/log/tionix/node-control/agent.log |
NODE_CONTROL_DRS_TRIGGER_LOGFILE |
Путь до лог файла службы tionix-node-control-drs-trigger . |
/var/log/tionix/node-control/drs-trigger.log |
DRS_TRIGGER_INTERVAL |
Интервал запуска автоматического применения результатов аудита. Измеряется в секундах. | 600 |
DRS |
Настройка подключения к внешней системе DRS, где: |
|
STORAGE_SYNC_INTERVAL |
Интервал запуска синхронизации информации о дисках. Измеряется в секундах. | 60 |
RECOVERY_PRIORITY |
Значение приоритета восстановления, которое будет использоваться при переносе виртуальной машины во время автоэвакуации в случае неполадок на вычислительном узле. Принимает значения от 0 (перенос не осуществляется) до 10 (перенос осуществляется в первую очередь). | 5 |
PRIORITIZED_EVACUATION_TIMEOUT |
Интервал между запусками эвакуации групп виртуальных машин с одинаковыми приоритетами восстановления. Измеряется в секундах. | 60 |
EXTRA_AVAILABILITY_CHECK |
Настройка дополнительной проверки доступности вычислительных узлов через хранилище, где:
|
|
Дополнительные параметры¶
Параметр | Описание | Значение по умолчанию |
---|---|---|
TRACEBACK_ENABLED |
Параметр для вывода трассировки ошибки при логировании. Возможные значения:
Значения являются регистронезависимыми. |
False |
Важно
При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
Возможности использования модуля¶
- Инициализация вычислительных узлов;
- Заполнение информации о вычислительных узлах;
- Создание образа для PXE;
- Инициализация устройств управления питанием;
- Управление питанием вычислительных узлов;
- Синхронизация вычислительных узлов;
- Мониторинг и управление вычислительными узлами;
- Управление резервированием гипервизоров.
План восстановления¶
В случае неудачной установки или обновления модуля TIONIX.NodeControl выполните возврат к исходному состоянию:
Сравните версии миграций в файле
/tmp/tionix_rollback/node_control/migrations.txt
с текущими. При наличии отличий произведите миграцию на предыдущую версию. Пример миграции:openstack tnx db list -n tnx_node_control openstack tnx db migrate -n tnx_node_control --migration 27
Произведите возврат к предыдущему состоянию пакетов:
cd /tmp/tionix_rollback/node_control diff --changed-group-format='%>' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_uninstall.txt diff --changed-group-format='%<' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_install.txt pip uninstall -r pip_uninstall.txt pip install -r pip_install.txt