Руководство администратора KeyStack =================================== Введение -------- Полное наименование системы —  KeyStack. Краткое наименование системы  —  Платформа. Разработчик системы — ITKey. Краткое описание возможностей ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Платформа динамической инфраструктуры предназначена для предоставления сервисов IaaS. Требования Рє квалификации персонала ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Системные администраторы Платформы отвечают Р·Р° комплексную настройку инфраструктуры Платформы, предоставляемой РІ качестве услуги конечным потребителям, Р·Р° устранение неисправностей, СЃР±РѕСЂ диагностической информации Рё эскалацию неисправностей производителю аппаратной или программной составляющей Платформы. Системные администраторы выполняют следующие функциональные обязанности РІ рамках работы СЃ Платформой: - настройка Рё диагностирование системы; - обслуживание системного Рё прикладного программного обеспечения системы; - администрирование базы данных; - резервное копирование Рё восстановление данных; - производство регламентных работ Рё анализ РёС… результатов. Рљ системным администраторам предъявляются следующие требования: - Навыки системного администрирования Linux; - Прохождение обучения РѕС‚ компании ITKey РїРѕ использованию компонентов, разработанных вендором: DRS, HA, Portal; - Навыки работы СЃРѕ службами Платформы, РІ том числе способность самостоятельно осуществлять: - мониторинг программными средствами, внешний осмотр аппаратной составляющей комплекса; - изменение настроек Платформы; - СЃР±РѕСЂ диагностических данных Рё эскалацию сложных проблем РїРѕ гарантийным обязательствам производителю. Для обеспечения функционирования системы необходимо наличие как РјРёРЅРёРјСѓРј РѕРґРЅРѕРіРѕ системного администратора. Перечень эксплуатационной документации ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Документация Платформы включает РІ себя следующие документы: - Паспорт облака - План РїРѕ резервному копированию Рё восстановлению компонентов Платформы - Рнструкция администратора - Рнструкция пользователя - Рнструкция РїРѕ резервному копированию Рё восстановлению всех компонентов Назначение Рё условия применения ------------------------------- Р’РёРґС‹ деятельности, функции ~~~~~~~~~~~~~~~~~~~~~~~~~~ Р’ состав Платформы РІС…РѕРґСЏС‚ следующие подсистемы: - Подсистема вычислительных ресурсов — обеспечивает виртуализацию вычислительных ресурсов Рё управление РёРјРё; - Подсистема хранения данных — обеспечивает управление ресурсами хранения; - Подсистема передачи данных — обеспечивает реализацию Рё управление виртуальной сетевой инфраструктурой; - Подсистема мониторинга — обеспечивает СЃР±РѕСЂ метрик СЃ ресурсов Платформы, мониторинг Платформы Рё ее сервисов; - Подсистема Оркестрации — обеспечивает возможность автоматизированного управления ресурсами виртуальной инфраструктуры Платформы. Программные Рё аппаратные требования Рє Платформе ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Требования Рє инфраструктуре приведены РІ `Рнструкции РїРѕ установке <https://docs.keystack.ru/latest/keystack_installation/instructions_for_installing.html#id9>`_. Подготовка Рє работе ------------------- Перечень программного обеспечения, включающий системное, базовое Рё прикладное РџРћ, приведен РІ Пояснительной записке. Системный администратор использует РІ работе следующие интерфейсы Платформы, доступные РїРѕ представленным далее ссылкам: - Портал самообслуживания; - интерфейс Horizon; - Opensearch; - Grafana; - Prometheus - API компонентов Платформы. Основным рабочим веб-интерфейсом является Horizon. РџРѕРјРёРјРѕ веб-интерфейса, РІ работе используется Openstack CLI. Подключение Рє Порталу самообслуживания ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Подключение Рє Порталу самообслуживания производится СЃ помощью веб-браузера. Для доступа Рє интерфейсам управления Портала самообслуживания РјРѕРіСѓС‚ использоваться браузеры актуальных версий: - Google Chrome 72 Рё выше; - Mozilla Firefox 63 Рё выше. РџСЂРё запросе логина Рё пароля необходимо ввести учетные данные. Внешний РІРёРґ формы аутентификации приведен РЅР° СЂРёСЃСѓРЅРєРµ ниже. .. figure:: Media/auth.png :alt: auth :figclass: bg-warning :target: ../_images/auth.png Р РёСЃСѓРЅРѕРє 1 — РћРєРЅРѕ аутентификации РІ Портале самообслуживания Главная страница интерфейса управления имеет тематическое Р±РѕРєРѕРІРѕРµ меню (далее РІ тексте — левое меню), СЃ помощью которого выполняется переход Рє различным разделам интерфейса управления Платформы. Подключение Рє интерфейсу управления Openstack CLI ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Перед началом работы РІ CLI необходимо получить исходный файл openrc Рё загрузить его РЅР° локальный компьютер администратора для установки переменных среды. Для получения файла openrc необходимо перейти РІ интерфейс портала администратора Рё скачать его РЅР° странице **Status Page**. .. IMPORTANT:: Если используется библиотека Castellan, то РїСЂРё работе РІ Openstack CLI Сѓ администратора РїСЂРё каждом подключении будет запрашиваться пароль. Openstack клиент можно установить РЅР° рабочее место администратора. Ниже приведен РїРѕСЂСЏРґРѕРє установки Openstack клиента для различных РћРЎ. .. _openstack-linux: Установка Openstack клиента РїРѕРґ Linux ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Установка клиента Openstack: ``sudo pip install python-openstackclient`` Для проверки корректности настроек можно выполнить команду ``openstack server list``, которая возвращает СЃРїРёСЃРѕРє Р’Рњ. Обновление клиента Openstack: ``sudo pip install --upgrade python-openstackclient`` Удаление клиента Openstack: ``sudo pip uninstall python-openstackclient`` Установка OpenStack CLI РїРѕРґ Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Требуется установка последней версии Python СЃ официального сайта http://python.org/downloads/windows. Дальнейшие инструкции выполняются РІ PowerShell. Проверка работоспособности Python: ``pip`` Команда выводит справочную информацию Рѕ приложении. Если команда завершилась ошибкой, необходимо проверить правильность путей РІ переменной PATH. Установка, обновление Рё удаление клиента Openstack выполняются аналогично разделу `Установка Openstack клиента РїРѕРґ Linux <#openstack-linux>`__. Запуск Рё выключение Платформы ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Запуск Платформы ^^^^^^^^^^^^^^^^ Почти РІСЃРµ сервисы платформы — stateless, или имеют внутренние механизмы failover, РїСЂРёС…РѕРґР° Рє консенсусу РІ кластере. РќРѕ есть сервис, РЅР° который надо обратить РѕСЃРѕР±РѕРµ внимание — Galera Cluster. Поэтому РІ пункте `Выключение всех компонентов Платформы <#disabling-all-components>`__ важно было делать паузы перед выключением следующего узла Рё запомнить РїРѕСЂСЏРґРѕРє выключения — это минимизирует РґРѕ определенной степени шанс получить СЃ "несобранным" кластером Galera Cluster СЃ MariaDB после включения. РџРѕСЂСЏРґРѕРє включения серверов Платформы РІ общем случае выглядит так: 1. Включите СЃ паузами Рё РїРѕ очереди управляющие узлы. Включайте РІ обратном РїРѕСЂСЏРґРєРµ относительно выключения, С‚.Рµ. если серверы были выключены РІ РїРѕСЂСЏРґРєРµ controller1 в†’ controller2 в†’ controller3, то тогда, выдерживая достаточные паузы РІ 5-10 РјРёРЅСѓС‚ после загрузки Linux, производите включение РІ РїРѕСЂСЏРґРєРµ controller3 в†’ controller2 в†’ controller1. РџСЂРё этом крайне желательно после загрузки сервера (РІ данном примере controller1) выполнить проверку статуса MariaDB. Пример: :: ssh controller1 mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';" wsrep_local_state_comment Synced Если РІ течение 5 РјРёРЅСѓС‚ статус РЅРµ перейдет РІ Synced, РІСЃРµ равно продолжайте СЃ запуском остальных управляющих узлов. РљРѕРіРґР° узлы Р±СѓРґСѓС‚ запущены, Рё позже Р±СѓРґСѓС‚ запущены контейнеры consul-server, произойдет автоматический ребутстрап кластера MariaDB. 2. Включите вычислительные узлы. 3. Выполните проверку всех узлов СЃ помощью инструкций, приведенных РІ разделе `РџРѕСЂСЏРґРѕРє проверки сервисов РїСЂРё failover <#failover-service-check-order>`__. 4. Оповестите владельцев workload'РѕРІ Рѕ возможности запуска РёС… нагрузок РІ облаке — либо самостоятельно включите инстансы РІ зависимости РѕС‚ технического регламента. .. _disabling-all-components: Выключение всех компонентов Платформы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для отключения платформы Рё её компонентов СЃ сохранением данных необходимо выполнить следующие шаги: 1. Оповестить владельцев виртуальных машин Рѕ предстоящем отключении. 2. Выключить сервис DRS, деактивировав задание РІ панели администратора, затем последовательно подключившись Рє каждому контроллеру Рё введя команду ``systemctl stop kolla-drs-container.service``. 3. Выключить сервис HA, последовательно подключившись Рє каждому контроллеру Рё введя команду ``systemctl stop kolla-consul-container.service``. 4. Подключиться Рє серверу LCM для выполнения дальнейших действий. Пример: :: ssh lcm source admin-openrc.sh 5. Зафиксировать состояние виртуальных машин РЅР° момент выключения региона, введя команду: :: openstack server list --all-projects > VMs.$(date "+%Y-%m-%d-%H-%M-%S").txt 6. Выключить виртуальные машины средствами OpenStack, введя команду: :: openstack server list --all-projects -c ID -f value | \ xargs -n1 openstack server stop 7. Проверить выключение всех виртуальных машин командой: :: openstack server list --all-projects -c ID -c Status -f value | \ grep -v Active .. NOTE:: Если проверка покажет наличие виртуальных машин РІ статсуе ``ACTIVE``, то необходимо повторить выключение каждой такой виртуальной машины индивидуально, введя команду ``openstack server stop <VM ID>``, подставляя РІ качестве ``VM ID`` значенем РёР· столбца ID предыдущего вывода. 8. Выключить узлы-гипервизоры средствами операционной системы: :: for HOST in $(openstack hypervisor list -c "Hypervisor Hostname" -f value);\ do \ ssh -x ${HOST} "shutdown -h now";\ done 9. Р’ строгом РїРѕСЂСЏРґРєРµ очерёдности control3 в†’ control2 в†’ control1, СЃ паузами достаточными для полного выключения сервера (время зависит РѕС‚ используемого аппаратного комплекса Рё должно быть уточнено РІ момент проведения РџРЎР) средствами операционной системы выключить узлы слоя управления, проверяя процесс выключения Рё состояние серверов через IPMI: :: ssh -x ctl3 вЂshutdown -h now’ # пауза РґРѕ полного выключения ssh -x ctl2 вЂshutdown -h now’ # пауза РґРѕ полного выключения ssh -x ctl1 вЂshutdown -h now’ # пауза РґРѕ полного выключения После выполнения этих шагов регион платформы будет полностью выключен. Описание операций ----------------- Р’ частной инсталляции Платформы РЅРµ РІСЃРµ опции команд Openstack CLI РјРѕРіСѓС‚ быть использованы, поэтому РѕРЅРё приводятся для справки. Некоторые РІРёРґС‹ Рё типы интеграций РјРѕРіСѓС‚ быть недоступны Рё через API. Управление квотами проекта ~~~~~~~~~~~~~~~~~~~~~~~~~~ Квоты предоставляют возможность ограничивать использование ресурсов РІ проекте. Администратор может ограничивать ресурсы для каждого проекта РїРѕ отдельности. Р’ случае превышения квоты новый объект РЅРµ сможет быть создан. Управление квотами проекта осуществляется через CLI. Пример запроса РєРІРѕС‚ проекта РїРѕ API (CLI) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ РЎ помощью команды ``openstack quota show --default`` можно увидеть СЃРїРёСЃРѕРє всех РєРІРѕС‚ РїРѕ умолчанию: :: openstack quota show --default +------------------------------+----------+ | Field | Value | +------------------------------+----------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 100 | | fixed-ips | -1 | | floating-ips | 10 | | gigabytes | 650 | | gigabytes___DEFAULT__ | -1 | | gigabytes_volumes-huawei | -1 | | gigabytes_volumes-huawei-new | -1 | | gigabytes_volumes-ssd | -1 | | groups | 10 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 50 | | key-pairs | 10000 | | l7_policies | None | | listeners | None | | load_balancers | None | | name | None | | networks | 100 | | per-volume-gigabytes | -1 | | pools | None | | ports | 10000 | | project | None | | project_name | admin | | properties | 128 | | ram | 358400 | | rbac_policies | 10000 | | routers | 10 | | secgroup-rules | 10000 | | secgroups | 10000 | | server-group-members | 100 | | server-groups | 50 | | snapshots | 10 | | snapshots___DEFAULT__ | -1 | | snapshots_volumes-huawei | -1 | | snapshots_volumes-huawei-new | -1 | | snapshots_volumes-ssd | -1 | | subnet_pools | -1 | | subnets | 100 | | volumes | 50 | | volumes___DEFAULT__ | -1 | | volumes_volumes-huawei | -1 | | volumes_volumes-huawei-new | -1 | | volumes_volumes-ssd | -1 | +------------------------------+----------+ Также можно увидеть РІСЃРµ квоты для конкретного проекта. Для этого необходимо использовать ID проекта: :: openstack quota show f538ffe832f34890ab5402995ff73102 +------------------------------+------------------+ | Field | Value | +------------------------------+------------------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 100 | | fixed-ips | -1 | | floating-ips | 10 | | gigabytes | 1000 | | gigabytes___DEFAULT__ | -1 | | gigabytes_volumes-huawei | -1 | | gigabytes_volumes-huawei-new | -1 | | gigabytes_volumes-ssd | -1 | | groups | 10 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 40 | | key-pairs | 10000 | | l7_policies | None | | listeners | None | | load_balancers | None | | name | None | | networks | 100 | | per-volume-gigabytes | -1 | | pools | None | | ports | 500 | | project_name | xcloud-devops | | properties | 128 | | ram | 200000 | | rbac_policies | 10000 | | routers | 100 | | secgroup-rules | 1000 | | secgroups | 1000 | | server-group-members | 10 | | server-groups | 10 | | snapshots | 100 | | snapshots___DEFAULT__ | -1 | | snapshots_volumes-huawei | -1 | | snapshots_volumes-huawei-new | -1 | | snapshots_volumes-ssd | -1 | | subnet_pools | -1 | | subnets | 100 | | volumes | 100 | | volumes___DEFAULT__ | -1 | | volumes_volumes-huawei | -1 | | volumes_volumes-huawei-new | -1 | | volumes_volumes-ssd | -1 | +------------------------------+------------------+ Работа СЃ флейворами Р’Рњ ^^^^^^^^^^^^^^^^^^^^^^ Просмотр СЃРїРёСЃРєР° флейворов Р’Рњ ''''''''''''''''''''''''''''' Просматривайте флейворы РЅР° Портале администратора либо РІ РІ Openstack CLI. Просмотр СЃРїРёСЃРєР° флейворов РІ Openstack CLI выполняется командой: ``openstack flavor list`` Пример вывода команды: :: +-----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is_Public | +-----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | +-----+-----------+-------+------+-----------+-------+-----------+ Для просмотра СЃРїРёСЃРєР° флейворов РЅР° Портале администратора перейдите РІ раздел Ресурсы в†’ Flavors. Настройка приоритетов РЅР° базе cpu-shares Рё cpu-quotes для Р’Рњ СЃ помощью флейворов ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Р’ разделе Ресурсы в†’ Flavors РЅР° Портале администратора РІС‹ можете установить приоритеты для выделения ресурсов РїСЂРё наличии конкуренции Р·Р° РЅРёС…. Для этого используйте либо ``quota:cpu_shares``, либо ``quota:cpu_quota``, РЅРѕ РЅРµ РѕР±Р° параметра сразу. Параметры определяют приоритет потребления CPU Рё Memory для Р’Рњ, созданных РёР· этих флейворов, РІ пределах хоста или пула ресурсов. Чем выше значение РѕРґРЅРѕРіРѕ или РґСЂСѓРіРѕРіРѕ приоритета, тем больше ресурсов получит Р’Рњ РІ пределах пула или отдельного хоста. Чтобы установить приоритет РїРѕ выделению ресурсов для Р’Рњ СЃ помощью флейвора, выполните следующие действия: 1. РќР° вкладке Ресурсы в†’ Flavors нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" для нужного флейвора. Выберите "Pедактировать". 2. Р’ открывшемся РѕРєРЅРµ проверьте РёРјСЏ Рё ID флейвора. 3. Выберите ``quota:cpu_shares`` либо ``quota:cpu_quota`` РІ Quota priority key. Задайте значение для этого параметра РІ поле Quota priority value. 4. Нажмите "Применить". .. figure:: Media/flavors.png :alt: flavors :figclass: bg-warning :target: ../_images/flavors.png Р РёСЃСѓРЅРѕРє 2 — Настройка приоритетов для флейворов Добавленные квоты появятся РІ столбце "extra_specs" РІ таблице флейворов. Создание флейвора Р’Рњ '''''''''''''''''''' Р’ Openstack CLI создание РЅРѕРІРѕРіРѕ флейвора выполняется командой ``flavor create``. Пример: ``openstack flavor create --ram 512 --disk 1 --vcpus 1 <flavor-name>`` РіРґРµ ram — размер оперативной памяти, disk — объем РґРёСЃРєР° РІ GB, vcpus — количество vCPU, Р° <flavor-name> — наименование флейвора. Полный перечень опций команды выглядит следующим образом: :: openstack flavor create [--id <id>] [--ram <size-mb>] [--disk <size-gb>] [--ephemeral <size-gb>] [--swap <size-mb>] [--vcpus <vcpus>] [--rxtx-factor <factor>] [--public | --private] [--property <key=value>] [--project <project>] [--description <description>] [--project-domain <project-domain>] <flavor-name> РіРґРµ: --id <id> — ID шаблона; 'auto' создает UUID (значение РїРѕ умолчанию: auto); --ram <MB> — размер памяти РІ MB (значение РїРѕ умолчанию: 256MB); --disk <GB> — размер РґРёСЃРєР° РІ GB (значение РїРѕ умолчанию: 0GB); --ephemeral <GB> — размер эфемерного РґРёСЃРєР° РІ GB (значение РїРѕ умолчанию: 0GB); --swap <MB> — дополнительный размер swap РІ MB (значение РїРѕ умолчанию: 0MB); --vcpus <vcpus> — количество vCPU (значение РїРѕ умолчанию: 1); --rxtx-factor <factor> — RX/TX фактор (значение РїРѕ умолчанию: 1.0); --public — шаблон доступен РІ РґСЂСѓРіРёС… проектах (значение РїРѕ умолчанию); --private — шаблон недоступен РІ РґСЂСѓРіРёС… проектах; --property <key=value> — дополнительные свойства флейвора (опция может использоваться несколько раз для установки различных свойств); --project <project> — разрешает доступ Рє флейвору РёР· проекта <project> (РїРѕ имени проекта или его ID), опция используется совместно СЃ --private; --description <description> — описание флейвора; --project-domain <project-domain> — домен проекта (РёРјСЏ домена или его ID). Опция используется РІ случае конфликтов между названиями проектов; --<flavor-name> — наименование флейвора. РќР° Портале администратора: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Flavors. 2. Нажмите РєРЅРѕРїРєСѓ "Создать flavor". 3. Добавьте РёРјСЏ, описание, значения RAM Рё vCPUs для флейвора. 4. Р’ разделе Extra specs укажите приоритеты для выделения ресурсов РЅР° Р’Рњ, основанных РЅР° флейворе. Выберите ``quota:cpu_shares`` либо ``quota:cpu_quota`` РІ Quota priority key. Задайте значение для выбранного параметра РІ поле Quota priority value. Подробнее Рѕ приоритетах для ресурсов Р’Рњ СЃРј. выше. .. figure:: Media/new_flavor.png :alt: New_flavor :figclass: bg-warning :target: ../_images/new_flavor.png Р РёСЃСѓРЅРѕРє 3 — Новый флейвор 5. Нажмите "Создать". Удаление флейвора Р’Рњ '''''''''''''''''''' Р’ Openstack CLI удаление флейвора Р’Рњ выполняется командой: ``openstack flavor delete <flavor> [<flavor> ...]`` РіРґРµ <flavor> — наименование или ID флейвора. Одновременно может быть удалено несколько флейворов. РќР° Портале администратора для удаления флейвора выберите действия "Удалить" РІ столбце "Actions" для нужного флейвора. Работа СЃ шаблонами Р’Рњ ^^^^^^^^^^^^^^^^^^^^^ Для упрощения Рё ускорения создания новых виртуальных машин используйте шаблоны Р’Рњ РЅР° Портале администратора. Создание шаблона '''''''''''''''' 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Р’Рњ. 2. Нажмите РєРЅРѕРїРєСѓ "Создать Р’Рњ". 3. Если нет шаблона, выберите действие Save as new template РІ открывшемся РѕРєРЅРµ. 4. Заполните поле Project. После выбора проекта Р±СѓРґСѓС‚ доступны для заполнения остальные поля. .. figure:: Media/New_template.png :alt: New_template :figclass: bg-warning :target: ../_images/New_template.png Р РёСЃСѓРЅРѕРє 4 — Новый шаблон Р’Рњ 5. Нажмите "Создать". Редактирование шаблона '''''''''''''''''''''' 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Р’Рњ. 2. Нажмите РєРЅРѕРїРєСѓ "Создать Р’Рњ". 3. Выберите действие Choose template РІ открывшемся РѕРєРЅРµ. Название выбранного шаблона отобразится РЅР° месте РєРЅРѕРїРєРё Choose template, Р° справа Р±СѓРґСѓС‚ параметры создаваемой Р’Рњ. 4. Найдите нужный шаблон РІ РѕРєРЅРµ Templates. Нажмите значок ``>`` РІ столбце "Params", чтобы посмотреть параметры шаблона. 5. Выберите дальнейшее действие СЃ шаблоном РІ столбце "Actions": - Для изменения параметров шаблона выберите Apply template. - Для изменения названия шаблона (Template name) или его описания (Template description) выберите Edit template. Нажмите "Редактировать", чтобы применить изменения. - Для удаления шаблона выберите Delete template. .. figure:: Media/Templates.png :alt: Templates :figclass: bg-warning :target: ../_images/Templates.png Р РёСЃСѓРЅРѕРє 5 — Редактирование шаблона Р’Рњ 6. Если РІС‹ выбрали действие Apply template, название выбранного шаблона отобразится РЅР° месте РєРЅРѕРїРєРё Choose template. Настройте параметры шаблона РЅР° вкладке Template params. 7. Выберите, как сохранить изменения параметров шаблона: - Чтобы применить изменения Рє отредактированному шаблону, нажмите Save current template. - Чтобы сохранить его как новый шаблон, нажмите Save as new template. Создание Р’Рњ РёР· шаблона ''''''''''''''''''''''' 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Р’Рњ. 2. Нажмите РєРЅРѕРїРєСѓ "Создать Р’Рњ". 3. Выберите действие Choose template РІ открывшемся РѕРєРЅРµ. 4. Найдите нужный шаблон РІ РѕРєРЅРµ Templates Рё выберите для него Apply template РІ столбце "Actions". 5. Название выбранного шаблона отобразится РЅР° месте РєРЅРѕРїРєРё Choose template, Р° справа Р±СѓРґСѓС‚ параметры создаваемой Р’Рњ. Настройте параметры создаваемой Р’Рњ РЅР° вкладке New VM params. 6. Нажмите "Создать". Новая виртуальная машина СЃРѕ статусом BUILD появится РІ СЃРїРёСЃРєРµ машин РЅР° странице Р’Рњ. Работа СЃ образами Р’Рњ ^^^^^^^^^^^^^^^^^^^^ Просмотр СЃРїРёСЃРєР° образов ''''''''''''''''''''''' Просмотр образов осуществляется РЅР° Портале администратора, РІ интерфейсе Horizon или СЃ использованием Openstack CLI. Для просмотра СЃРїРёСЃРєР° образов РЅР° Портале необходимо РІ левом меню перейти РІ раздел Ресурсы в†’ Images. Пример РІРёРґР° раздела представлен РЅР° СЂРёСЃСѓРЅРєРµ ниже. .. figure:: Media/images.png :alt: images :figclass: bg-warning :target: ../_images/images.png Р РёСЃСѓРЅРѕРє 6 — Пример СЃРїРёСЃРєР° образов Для просмотра СЃРїРёСЃРєР° образов РІ Openstack CLI выполните команду: ``openstack image list`` Пример вывода команды: :: +--------------------------------------+-----------------------------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------------------------+--------+ | 42f43e9d-7c53-46fa-ad87-846ef524d721 | CentOS-7-x86_64-GenericCloud-1905 | active | Создание образа ''''''''''''''' Создание образа осуществляется РІ Портале администратора, РІ интерфейсе Horizon или СЃ использованием Openstack CLI. Образ можно создать путем загрузки файла РІ формате либо путем создания РёР· существующего РґРёСЃРєР°. Поддерживаются следующие форматы: raw, vhd, vhdx, vmdk, vdi, iso, ploop, qcow2, aki, ari Рё ami. **Создание образа РёР· файла** Для создания образа РІ Портале администратора выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Images. 2. Нажмите РєРЅРѕРїРєСѓ "Загрузить Image". 3. Заполните поля. Обязательно нужно указать РёРјСЏ образа, тип РћРЎ Рё выбрать файл для образа. Пример заполнения СЃРј. РЅР° СЂРёСЃСѓРЅРєРµ ниже. 4. Нажмите РєРЅРѕРїРєСѓ "Начать загрузку". .. figure:: Media/img.png :alt: img :figclass: bg-warning :target: ../_images/img.png Р РёСЃСѓРЅРѕРє 7 — Создание образа РёР· файла Для загрузки образа размером более 20GB рекомендуется использовать клиента командной строки. Для загрузки образа РІ Openstack CLI выполните команду: ``openstack image create --private --container-format bare --disk-format qcow2 --file <РёРјСЏ_файла.raw> <РёРјСЏ_образа>`` Если необходимо загрузить образ СЃ поддержкой резервного копирования или смены пароля, добавьте свойства для работы СЃ qemu-guest-agent: ``openstack image create --private --container-format bare --disk-format qcow2 --file <РёРјСЏ_файла.raw> --property hw_qemu_guest_agent=yes --property os_require_quiesce=yes <РёРјСЏ_образа>`` **Создание образа РёР· существующего РґРёСЃРєР°** Р’С‹ можете создать образ РёР· существующего РґРёСЃРєР° РІ интерфейсе Horizon. Для этого необходимо РІ левом меню перейти РІ раздел Диски, найти РґРёСЃРє, РёР· которого будет создаваться образ, Рё затем РІ выпадающем СЃРїРёСЃРєРµ выбрать РїСѓРЅРєС‚ меню "Загрузить образ". Р’ форме создания образа нужно выбрать формат РґРёСЃРєР° (СЃРј. СЂРёСЃСѓРЅРѕРє ниже), указать название образа Рё нажать РєРЅРѕРїРєСѓ "Загрузить". .. figure:: Media/imgDisc.png :alt: imgDisc :figclass: bg-warning :target: ../_images/imgDisc.png Р РёСЃСѓРЅРѕРє 8 — Создание образа РёР· существующего РґРёСЃРєР° Загрузка образов РІ Glance '''''''''''''''''''''''''' Р’С‹ можете загружать образы гостевых Р’Рњ РІ Glance. Запрос РЅР° создание Рё загрузку образов РІ Glance передается РІ модуль ``states`` через Terraform РІ РІРёРґРµ переменной ``user_images``. Р’ файл ``tf_states/variables.tf`` добавьте переменную ``user_images`` следующего РІРёРґР°:: variable "user_images" { description = "Pass user images as map" type = map(any) default = { # Below is an example of user image definition "ubuntu-24.04-x64" = { image_source_url = "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img" container_format = "bare" disk_format = "qcow2" min_disk_gb = 5 visibility = "public" properties = { os_distro = "ubuntu" os_type = "linux" os_version = "24.04" os_require_quiesce = "True" ssh_key = "allow" hw_machine_type = "q35" } } } } После чего убедитесь, что эта переменная используется РІ модуле ``tf_states``, вызываемом РёР· файла ``tf_states/main.tf``:: module "tf_states" { ... user_images = var.user_images } Выгрузка образа ''''''''''''''' Выгрузка образа РІ файл выполняется РІ Openstack CLI следующей командой: ``openstack image save --file <file-name> <image-id>`` РіРґРµ <file-name> — РёРјСЏ локального файла, Р° <image-id> — ID образа. Удаление образа ''''''''''''''' Удалить образ Р’Рњ можно РЅР° Портале администратора или РІ интерфейсе Horizon. Для удаления образа РІ Портале администратора выполните следующие действия: 1. Перейдите РІ раздел Ресурсы в†’ Images, выберите образ для удаления Рё нажмите значок ``X`` РІ столбце "Actions". 2. Проверьте РёРјСЏ Рё ID образа. Если РІСЃРµ правильно, нажмите РєРЅРѕРїРєСѓ "Удалить" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/imgDel.png :alt: imgDel :figclass: bg-warning :target: ../_images/imgDel.png Р РёСЃСѓРЅРѕРє 9 — Удаление образа Включение множества очередей (multiqueue) РІ Unix-подобных операционных систем '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' KeyStack поддерживает множества очередей (multiqueue) Сѓ образа виртуальной машины (Р’Рњ) Рё отдельной Р’Рњ для операционных систем семейства Linux. **Ограничения** Функция множества очередей virtio-net обеспечивает повышение производительности, РЅРѕ имеет некоторые ограничения: - РћРЎ Р’Рњ ограничена ~ 200 векторами MSI. Для каждой очереди сетевого адаптера требуется вектор MSI, Р° также любое устройство virtio или назначенное устройство PCI. Определение экземпляра СЃ несколькими сетевыми адаптерами virtio Рё виртуальными ЦП может привести Рє превышению лимита гостевого MSI. - Множества очередей хорошо работают для входящего трафика, РЅРѕ РёРЅРѕРіРґР° РјРѕРіСѓС‚ вызвать снижение производительности для исходящего трафика. - Включение множества очередей увеличивает общую РїСЂРѕРїСѓСЃРєРЅСѓСЋ способность сети, РЅРѕ одновременно увеличивает потребление ресурсов CPU. - Если функция множества очередей была включена РЅР° хосте, РЅРѕ РЅРµ была включена администратором РІ РћРЎ Р’Рњ, векторы MSI Р±СѓРґСѓС‚ использоваться впустую. - Количество очередей автоматически устанавливается равным количеству виртуальных ЦП. Чем больше количество ЦП, тем выше пропускная способность сети. **Примечание.** Для некоторых образов операционных систем, например, Centos6, недостаточно включить множества очередей только РЅР° СѓСЂРѕРІРЅРµ образа РІ конфигурации QEMU. Администратору РћРЎ необходимо вручную включить функциональность СЃ помощью ethtool РЅР° самой Р’Рњ. 1. **Включение множества очередей для новых Р’Рњ РёР· образа** Вариант включает множества очередей РЅР° СѓСЂРѕРІРЅРµ образа Рё будет работать для всех Р’Рњ, созданных РЅР° базе этого образа после выполнения инструкции. 1. Создайте образ Р’Рњ. 2. Получите СЃРїРёСЃРѕРє доступных образов, введя команду: ``openstack image list`` 3. Скопируйте ID нужного образа. 4. Включите множество очередей, введя команду: ``openstack image set <IMG_ID> --property hw_vif_multiqueue_enabled=true`` 2. **Проверка количества очередей** 1. Создайте Р’Рњ, РІ которой больше РѕРґРЅРѕРіРѕ ЦП, Рё подключитесь Рє ее консоли. 2. Посмотрите РІСЃРµ сетевые интерфейсы, введя команду: ``ip link show`` Ожидаемый вывод: :: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo qlen 1000 link/ether fa:16:3e:e0:91:1e brd ff:ff:ff:ff:ff:ff Здесь eth0 — сетевой интерфейс, для которого нужно проверить подключение множества очередей. 4. Посмотрите текущее количество очередей, введя команду: ``ethtool -l <РёРјСЏ_сетевого_интерфейса>`` Ожидаемый вывод: :: Channel parameters for external: Pre-set maximums: RX: n/a TX: n/a Other: n/a Combined: 1 Current hardware settings: RX: n/a TX: n/a Other: n/a Combined: 1 3. **Установка нужного количества очередей для Р’Рњ** Количество очередей РЅРµ может быть больше количества виртуальных ЦП. 1. Выполните команду: ``sudo ethtool -L <РёРјСЏ_сетевого_интерфейса> combined <число_очередей>`` Пример РІРІРѕРґР°: ``$ sudo ethtool -L eth0 combined 2`` 2. Проверьте РЅРѕРІРѕРµ количество очередей, введя команду: ``ethtool -l <РёРјСЏ_сетевого_интерфейса>`` Ожидаемый вывод: :: Channel parameters for external: Pre-set maximums: RX: n/a TX: n/a Other: n/a Combined: 1 Current hardware settings: RX: n/a TX: n/a Other: n/a Combined: 2 Работа СЃ Р’Рњ ^^^^^^^^^^^ Просмотр СЃРїРёСЃРєР° Р’Рњ '''''''''''''''''' Просмотр СЃРїРёСЃРєР° Р’Рњ проекта осуществляется РІ интерфейсе Портала администратора, Horizon или РІ Openstack CLI. Для просмотра СЃРїРёСЃРєР° Р’Рњ РЅР° Портале администратора необходимо выбрать Ресурсы в†’ Р’Рњ РІ левом меню интерфейса (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vm.png :alt: vm :figclass: bg-warning :target: ../_images/vm.png Р РёСЃСѓРЅРѕРє 10 — РЎРїРёСЃРѕРє Р’Рњ РЅР° Портале администратора Рспользуйте фильтры РІ правом верхнем углу интерфейса для быстрого РїРѕРёСЃРєР° нужных Р’Рњ РїРѕ определенным параметрам, таким как образ (image), MAC-адрес (MAC address), IP Рё LUN ID. Просмотр СЃРїРёСЃРєР° Р’Рњ РІ CLI выполняется командой ``server list``. Полный перечень опций выглядит следующим образом: :: openstack server list [--sort-column SORT_COLUMN] [--reservation-id <reservation-id>] [--ip <ip-address-regex>] [--name <name-regex>] [--instance-name <server-name>] [--status <status>] [--flavor <flavor>] [--image <image>] [--host <hostname>] [--all-projects] [--project <project>] [--project-domain <project-domain>] [--user <user>] [--user-domain <user-domain>] [--long] [-n | --name-lookup-one-by-one] [--marker <server>] [--limit <num-servers>] [--deleted] [--changes-before <changes-before>] [--changes-since <changes-since>] [--locked | --unlocked] [--tags <tag>] [--not-tags <tag>] РіРґРµ: --sort-column SORT_COLUMN — столбцы для сортировки данных (несуществующие столбцы игнорируются); --reservation-id <reservation-id> — возвращать экземпляры Р’Рњ, соответствующие резервированию; --ip <ip-address-regex> — регулярное выражение для отбора Р’Рњ РїРѕ соответствующим адресам; --name <name-regex> — регулярное выражение для отбора Р’Рњ РїРѕ имени; --instance-name <server-name> — регулярное выражение для отбора Р’Рњ РїРѕ имени инстанса; --status <status> — отбирать Р’Рњ РїРѕ указанному статусу; --flavor <flavor> — отбирать Р’Рњ РїРѕ указанному шаблону Р’Рњ (РїРѕ наименованию или ID); --image <image> — отбирать Р’Рњ РїРѕ указанному образу (РїРѕ наименованию или ID); --host <hostname> — отбирать Р’Рњ РїРѕ гипервизору размещения; --all-projects — включать РІ выборку РІСЃРµ проекты; --project <project> — отбирать Р’Рњ РІ указанном проекте (РїРѕ наименованию или ID); --project-domain <project-domain> — отбирать Р’Рњ РїРѕ домену проекта (РїРѕ наименованию или ID). Опция используется РІ случае конфликтов между названиями проектов; --user <user> — отбирать Р’Рњ указанного пользователя (РїРѕ имени или ID); --user-domain <user-domain> — отбирать Р’Рњ РїРѕ домену пользователя (РїРѕ имени или ID). Опция используется РІ случае конфликтов между именами пользователей; --long — выводить дополнительные поля; -n, --no-name-lookup — пропустить разрешение имен шаблонов Р’Рњ Рё образов. РќРµ используется совместно СЃ опцией --name-lookup-one-by-one; --name-lookup-one-by-one — при разрешении имен шаблонов Р’Рњ Рё образов искать РёР· РїРѕ мере необходимости. РќРµ используется совместно СЃ опцией --no-name-lookup|-n; --marker <server> — последняя Р’Рњ предыдущей страницы. Выводит весь СЃРїРёСЃРѕРє Р’Рњ после <server>, если РЅРµ указано РёРЅРѕРµ. Если используется СЃ опцией --deleted, маркер <server> должен быть идентификатором (ID), иначе допускается использование наименование Р’Рњ или ID; --limit <num-servers> — максимальное количество Р’Рњ РІ выводимом СЃРїРёСЃРєРµ. Если указывается значение -1, тогда выводятся РІСЃРµ Р’Рњ. Если указанное значение <num-servers> превышает значение конфигурационного параметра osapi_max_limit, то выводится osapi_max_limit Р’Рњ; --deleted — выводить только удаленные Р’Рњ; --changes-before <changes-before> — выводить СЃРїРёСЃРѕРє Р’Рњ, измененных РґРѕ указанного момента времени. Указываемое время должно быть РІ формате ISO 8061 (например, 2016-03-05T06: 27: 59Z); --changes-since <changes-since> — выводить СЃРїРёСЃРѕРє Р’Рњ, измененных после указанного момента времени. Указываемое время должно быть РІ формате ISO 8061 (например, 2016-03-05T06: 27: 59Z); --locked — выводить РІ СЃРїРёСЃРѕРє только заблокированные Р’Рњ; --unlocked —  выводить РІ СЃРїРёСЃРєРѕРє только незаблокированные Р’Рњ; --tags <tag> — выводить Р’Рњ СЃ указанными тегами. Может использоваться несколько раз для отбора Р’Рњ РїРѕ нескольким тегам; --not-tags <tag> — выводить только те Р’Рњ, Сѓ которых нет указанного тега. Может использоваться несколько раз для указания нескольких тегов. Запуск, перезапуск Рё остановка Р’Рњ ''''''''''''''''''''''''''''''''' Запуск, перезапуск Рё остановка Р’Рњ осуществляется РІ интерфейсе Портала администратора, Horizon или РІ OpenStack CLI. Для управления состоянием Р’Рњ РІ интерфейса Horizon используйте РєРЅРѕРїРєРё "Выключить инстанс", "Горячая перезагрузка инстанса" Рё "Холодная перезагрузка инстанса" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vmState.png :alt: vmState :figclass: bg-warning :target: ../_images/vmState.png Р РёСЃСѓРЅРѕРє 11 — РљРЅРѕРїРєРё управления состоянием Р’Рњ Текущий статус виртуальной машины отображается РІ столбце "Status" (СЃРј. СЂРёСЃСѓРЅРѕРє выше). Р’ Openstack CLI операции запуска, перезапуска Рё остановки Р’Рњ выполняются командами ``server start``, ``server reboot`` Рё ``server stop`` соответственно. Синтаксис команд: :: openstack server start <server> [<server> ...] openstack server reboot [--hard | --soft] [--wait] <server> openstack server stop <server> [<server> ...] РіРґРµ: <server> [ …​] — ВМ или СЃРїРёСЃРѕРє Р’Рњ (РёРјСЏ Р’Рњ или ID); --hard — "жесткая" перезагрузка; --soft — "мягкая" перезагрузка; --wait — дождаться завершения перезагрузки. Создание Р’Рњ ''''''''''' Создание Р’Рњ осуществляется РІ интерфейсе Портала администратора, Horizon или РІ OpenStack CLI. Для создания Р’Рњ РІ Horizon необходимо выбрать Вычислительные ресурсы в†’ Рнстансы РІ левом меню интерфейса Рё нажать РєРЅРѕРїРєСѓ "Запустить инстанс". Р’ форме "Создание РЅРѕРІРѕРіРѕ инстанса" необходимо указать параметры создаваемой Р’Рњ (СЃРј. СЂРёСЃСѓРЅРѕРє ниже): - Instance — укажите РёРјСЏ Р’Рњ; - Volume size — размер РґРёСЃРєР° РІ GB; - Image  —  выберите образ РёР· СЃРїРёСЃРєР° доступных; - Flavor — шаблон виртуальной машины, выберите РёР· СЃРїРёСЃРєР° доступных - Key pairs — создайте РЅРѕРІСѓСЋ ключевую пару или используйте существующую РІ проекте; - Network — укажите сеть, РІ которой будет доступна Р’Рњ РёР· СЃРїРёСЃРєР° сетей; - Security groups — укажите РѕРґРЅСѓ или несколько РіСЂСѓРїРї безопасности РёР· СЃРїРёСЃРєР° доступных. .. figure:: Media/newVm.png :alt: newVm :figclass: bg-warning :target: ../_images/newVm.png Р РёСЃСѓРЅРѕРє 12 — Создание РЅРѕРІРѕР№ Р’Рњ Создание Р’Рњ РІ Openstack CLI выполняется следующей командой: :: openstack server create (--image <image> | --image-property <key=value> | --volume <volume>) [--password <password>] --flavor <flavor> [--security-group <security-group>] [--key-name <key-name>] [--property <key=value>] [--file <dest-filename=source-filename>] [--user-data <user-data>] [--description <description>] [--availability-zone <zone-name>] [--host <host>] [--hypervisor-hostname <hypervisor-hostname>] [--boot-from-volume <volume-size>] [--block-device-mapping <dev-name=mapping>] [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid,auto,none>] [--network <network>] [--port <port>] [--hint <key=value>] [--use-config-drive | --no-config-drive | --config-drive <config-drive-volume>|True] [--min <count>] [--max <count>] [--wait] [--tag <tag>] <server-name> РіРґРµ: --image <image> — создать Р’Рњ СЃ использованием существующего образа (наименование или ID); --image-property <key=value> — изменяемые свойства используемого образа; --volume <volume> — создать Р’Рњ СЃ использованием указанного РґРёСЃРєР° (наименование или ID). Данная опция автоматически создает отображение блочного устройства СЃ индексом загрузки 0. РќРµ следует использовать дублирующее сопоставление СЃ использованием опции --block-device-mapping; --password <password> — установить пароль для создаваемой Р’Рњ; --flavor <flavor> — использовать указанный шаблон (наименование или ID); --security-group <security-group> — группа безопасности, назначаемая Р’Рњ. Может использоваться несколько раз для назначения нескольких РіСЂСѓРїРї безопасности; --key-name <key-name> — используемая ключевая пара (необязательный параметр); --property <key=value> — установить дополнительные свойства Р’Рњ (может указываться несколько раз для установки нескольких свойств); --file <dest-filename=source-filename> — добавить РІ образ Р’Рњ указанный файл (может указываться несколько раз для добавления разных файлов); --user-data <user-data> — файл данных пользователя для обслуживания СЃ сервера метаданных; --description <description> — описание создаваемой Р’Рњ; --availability-zone <zone-name> — установить Р·РѕРЅСѓ доступности Р’Рњ; --host <host> — создать Р’Рњ СЃ использованием службы Nova РЅР° конкретном гипервизоре; --hypervisor-hostname <hypervisor-hostname> — создавать Р’Рњ РЅР° указанном гипервизоре; --boot-from-volume <volume-size> — при использовании РІ сочетании СЃ параметром --image или --image-property этот параметр создает сопоставление блочного устройства СЃ индексом загрузки 0 Рё сообщает службе compute создать том заданного размера (РІ GB) РёР· указанного образа Рё использовать его РІ качестве корневого тома. Корневой том РЅРµ будет удален РїСЂРё удалении Р’Рњ. Ртот параметр является взаимоисключающим СЃ параметром --volume; --block-device-mapping <dev-name=mapping> — создать блочное устройство. Блочное устройство указывается РІ формате <dev-name>=<id>:<type>:<size(GB)>:<delete-on-terminate>, РіРґРµ: - <dev-name> — наименование блочного устройства, например, vdb, xvdc (обазательный параметр); - <id> — наименование или ID тома, снапшота или образа (обязательный параметр); - <type> — volume (том), snapshot (снапшот) или image (образ). Значение РїРѕ умолчанию — volume; - <size(GB)> — размер тома, если РѕРЅ создается РёР· снапшота или образа (необязательный параметр); - <delete-on-terminate> — true или false, удалять РїСЂРё удалении Р’Рњ. Значение РїРѕ умолчанию — false (необязательный параметр); --nic <net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid,auto,none> — создать сетевой адаптер. Опция используется несколько раз для создания нескольких адаптеров. Необходимо указывать ID сети или ID порта, РЅРѕ РЅРµ РѕР±Р° сразу; - net-id — подключить сетевой адаптер Рє сети СЃ UUID net-uuid; - port-id — подключить сетевой адаптер Рє порту СЃ UUID port-uuid; - v4-fixed-ip — фиксированный IPv4-адрес сетевого адаптера (необязательный параметр); - none — сеть РЅРµ подключена; - auto — автоматическое выделение сети. --network <network> — создать сетевой адаптер Рё подключить Рє сети. Можно указывать несколько раз для создания нескольких сетевых адаптеров. Данная опция является оболочкой для опции --nic net-id=<network>, которая обеспечивает простой синтаксис для стандартного варианта подключения РЅРѕРІРѕР№ Р’Рњ Рє сети. Для более сложных случаев рекомендуется использовать полный синтаксис --nic; --port <port> — создать сетевой адаптер Рё подключить его Рє порту. Можно указывать несколько раз для создания нескольких сетевых адаптеров. Данная опция является оболочкой для опции --nic port-id=<port>, которая обеспечивает простой синтаксис для стандартного подключения РЅРѕРІРѕР№ Р’Рњ Рє заданному порту. Для более сложных случаев рекомендуется использовать полный синтаксис --nic; --hint <key=value> — подсказки для планировщика (необязательный параметр); --use-config-drive — разрешает использование конфигурационного РґРёСЃРєР°; --no-config-drive — запрещает использование конфигурационного РґРёСЃРєР°; --config-drive <config-drive-volume>|True — устаревшая опция указания использования указанного тома РІ качестве РґРёСЃРєР° конфигурации. Заменено РЅР° --use-config-drive; --min <count> — минимальное количество Р’Рњ для запуска. Значение РїРѕ умолчанию — 1; --max <count> — максимальное количество Р’Рњ для запуска. Значение РїРѕ умолчанию — 1; --wait — дождаться окончания СЃР±РѕСЂРєРё; --tag <tag> — теги Р’Рњ. Можно указывать несколько раз для добавления нескольких тегов; <server-name> — наименование Р’Рњ. Создание Р’Рњ СЃ поддержкой secure boot '''''''''''''''''''''''''''''''''''' Предварительные требования: - образ, РёР· которого будет создаваться виртуальная машина, должен быть собран СЃ поддержкой UEFI; - | РІ метаданные образа добавлены свойства os_secure_boot=required Рё hw_firmware_type=uefi. | Добавить свойства можно через Horizon или CLI: ``openstack image set --property hw_firmware_type=uefi --property os_secure_boot=required $IMAGE``. Администратор может запретить безопасную загрузку даже РїСЂРё наличии необходимых свойств РІ метаданных образа: ``openstack flavor set --property os:secure_boot=disabled $FLAVOR`` Также есть возможность запрашивать безопасную загрузку, если С…РѕСЃС‚ ее поддерживает. Рто делается через настройку метаданных образа: ``openstack image set --property os_secure_boot=optional $IMAGE`` Узнать, поддерживает ли С…РѕСЃС‚ безопасную загрузку, можно таким образом: :: COMPUTE_UUID=$(openstack resource provider list --name $HOST -f value -c uuid) openstack resource provider trait list $COMPUTE_UUID | grep COMPUTE_SECURITY_UEFI_SECURE_BOOT Мониторинг производительности Р’Рњ ''''''''''''''''''''''''''''''''' Р’С‹ можете просматривать потребление ресурсов виртуальных машин РІ интерфейсе Портала администратора. РќР° странице каждой Р’Рњ доступны графики СЃРѕ статистикой РїРѕ таким показателям, как CPU (``cpu``), память (``mem``), входящий Рё исходящий трафик сети (``network_in`` Рё ``network_out``). Статистика обновляется каждые 10 РјРёРЅСѓС‚. Для просмотра производительности Р’Рњ выберите Ресурсы в†’ Р’Рњ РІ левом меню Портала Рё нажмите ссылку СЃ ID любой машины. Для выбранной Р’Рњ Р±СѓРґСѓС‚ отображаться графики СЃРѕ статистикой РїРѕ использованию CPU, памяти Рё сетевых ресурсов. РџРѕРјРёРјРѕ графиков, информация Рѕ Р’Рњ включает остальные детали, такие как ID Рё РёРјСЏ Р’Рњ, статус, теги Рё С‚.Рґ., которые отображаются РІРЅРёР·Сѓ страницы. .. figure:: Media/VM_monitoring.png :alt: stats :figclass: bg-warning :target: ../_images/VM_monitoring.png Р РёСЃСѓРЅРѕРє 13 — Статистика РїРѕ Р’Рњ Мониторинг производительности вычислительных узлов ''''''''''''''''''''''''''''''''''''''''''''''''''' Р’С‹ можете просматривать информацию Рѕ потребляемых ресурсах вычислительных узлов (гипервизоров) РІ интерфейсе Портала администратора. РќР° странице каждого гипервизора доступны графики СЃРѕ статистикой РїРѕ таким показателям, как загрузка CPU, использование памяти Рё температура. Для просмотра производительности вычислительного узла выберите Гипервизоры в†’ Гипервизоры РІ левом меню Портала Рё нажмите ссылку СЃ ID необходимого узла. .. figure:: Media/hyper_stats.png :alt: hyper_stats :figclass: bg-warning :target: ../_images/hyper_stats.png Р РёСЃСѓРЅРѕРє 14 — Статистика РїРѕ вычислительным узлам Метрики вычислительных узлов отображают следующую информацию: - ``cpu`` — загрузка процессора РІ процентах; - ``memory`` — загрузка памяти РІ процентах; - ``network_interface_state`` — состояние сетевых интерфейсов, 1/0 (РІРєР»/выкл); - ``disk_reads`` — количество считываний СЃ каждого РґРёСЃРєР° , io/s (операций РІ секунду); - ``disk_writes`` — количество записей РЅР° каждый РґРёСЃРє, io/s (операций РІ секунду); - ``network_packets_received`` — количество пакетов, полученных каждым сетевым интерфейсом, p/s (пакетов РІ секунду); - ``network_packets_transmitted`` — количество пакетов, отправленных каждым сетевым интерфейсом, p/s (пакетов РІ секунду); - ``power_supply_state`` — состояние блока(-РѕРІ) питания, 1/0 (РІРєР»/выкл); - ``power_supply_count`` — количество блоков питания РїРѕ типам РІ единицах; - ``temperature`` — температура РїРѕ датчикам РІ градусах Цельсия. После метрик вычислительных узлов идет таблица СЃ деталями узлов, таких как ID, статус Рё состояние узла. CPU Pinning ''''''''''' | Данный механизм позволяет "приземлять" виртуальные машины РЅР° выделенные физические СЏРґСЂР° гипервизора, которые Р±СѓРґСѓС‚ использоваться только этой виртуальной машиной Рё никакими РґСЂСѓРіРёРјРё процессами либо сервисами СЃРѕ стороны хостовой операционной системы. | Его настройка включает несколько шагов: настройку гипервизора, настройку сервиса nova-compute, настройку host aggregate Рё флейвора. 1. | Настройка гипервизора. | Настройка предполагает добавление опций РІ загрузку СЏРґСЂР° — isolcpus=2,3,4,5,6,7... - перечислите РІСЃРµ СЏРґСЂР°, которые нужно изолировать — добавление данной настройки предполагает перезагрузку сервера. 2. | Настройка сервиса nova-compute. | Далее необходимо доработать конфигурацию сервиса nova-compute — добавьте РІ nova.conf гипервизора, РЅР° котором выполнена настройка isolcpus. :: [compute] cpu_dedicated_set=2-10 #указать желаемый набор ядер, который коррелирует СЃ isolcpus 3. | Настройка host aggregate Рё flavor. | Создайте агрегат, РІ который нужно добавить гипервизоры, РіРґРµ будет использоваться механизим CPU pinning. Р’ метаданные агрегата добавьте параметр: pinned = true 4. Создайте флейвор нужного размера Рё добавьте РІ него метаданные: :: aggregate_instance_extra_specs:pinned = true hw:cpu_policy = dedicated Рспользование механизма Memory ballooning ''''''''''''''''''''''''''''''''''''''''' .. Р’ РЅРѕРІРѕР№ структуре это будет отдельная статья. Полный контент для нее: https://docs.google.com/document/d/1XENBPS7EK1zRJEwH8qHCF9u1ICRYem1JdYy8afEkd80/edit?tab=t.0#heading=h.8dhxrpg67xf Memory ballooning — это технология управления оперативной памятью РІ виртуализированных средах, включая OpenStack. РћРЅР° позволяет гипервизору динамически изменять объем оперативной памяти, доступной виртуальной машине, РІ зависимости РѕС‚ текущих потребностей. Как работает memory ballooning: - Р’ каждой Р’Рњ устанавливается специальный драйвер (balloon driver), который взаимодействует СЃ гипервизором. Гипервизор использует этот драйвер, чтобы запрашивать Сѓ Р’Рњ "освободить" или "предоставить" память. - РљРѕРіРґР° гипервизору требуется освободить память, РѕРЅ посылает запрос balloon-драйверу РІ Р’Рњ. Balloon-драйвер "заполняет" память Р’Рњ СЃ помощью выделения фиктивных блоков памяти, которые более РЅРµ используются Р’Рњ. Рти блоки памяти возвращаются гипервизору Рё РјРѕРіСѓС‚ быть перераспределены РґСЂСѓРіРёРј Р’Рњ. - РљРѕРіРґР° Р’Рњ требуется больше памяти, гипервизор может "сдуть" balloon, освобождая память, ранее выделенную РґСЂСѓРіРёРј Р’Рњ. Ртот механизм включен РІ продукте РїРѕ умолчанию, РЅРѕ для его работы необходимо выполнить требования Рє подготовке образов гостевых операционных систем. Требование Рє образам Windows: - наличие Balloon драйвера, включен РІ VirtIO Windows Driver Pack, - установленая служба BalloonService (тип запуска службы - Auto). Требования Рє образам Linux: - наличие VirtIO драйверов. Модуль virtio_balloon обычно включён РІ большинство современных дистрибутивов. Рзменение ресурсов Р’Рњ ''''''''''''''''''''' Рзменение ресурсов виртуальной машины используется для увеличения или уменьшения количества виртуальных CPU или RAM виртуальной машины. Рзменение ресурсов Р’Рњ осуществляется РІ интерфейсе Портала администратора, Horizon или РІ OpenStack CLI. Для изменения ресурсов Р’Рњ РІ Horizon необходимо выбрать Вычислительные ресурсы в†’ Рнстансы РІ левом меню, далее найти Р’Рњ, ресурсы которой необходимо изменить, Рё выбрать РІ контекстном меню "Рзменить размер инстанса" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vmSize.png :alt: vmSize :figclass: bg-warning :target: ../_images/vmSize.png Р РёСЃСѓРЅРѕРє 15 — Меню изменения размера Р’Рњ Р’ РѕРєРЅРµ изменения размера нужно указать новый шаблон Р’Рњ. Рзменение размера Р’Рњ реализуется путем создания РЅРѕРІРѕР№ Р’Рњ Рё копирования РёСЃС…РѕРґРЅРѕРіРѕ РґРёСЃРєР° Р’Рњ РІ новый. Рто двухэтапный процесс: первый шаг — изменение размера, второй шаг — либо подтверждение Рё успеха операции Рё освобождение старой Р’Рњ, либо объявление возврата операции (освобождение РЅРѕРІРѕР№ Р’Рњ Рё запуск старой Р’Рњ). Р’ OpenStack CLI изменение размера Р’Рњ выполняется командой ``server resize``: :: openstack server resize [--flavor <flavor> | --confirm | --revert] [--wait] <server> РіРґРµ: --flavor <flavor> — новый шаблон Р’Рњ; --confirm — подтверждение завершения операции изменения размера Р’Рњ; --revert — восстановление состояния Р’Рњ РґРѕ изменения; --wait — дождаться окончания операции; <server> — изменяемая Р’Рњ (РёРјСЏ или ID). Работа СЃ зонами доступности Р’Рњ ''''''''''''''''''''''''''''''' Р’ KeyStack Р·РѕРЅС‹ доступности (Availability Zone, AZ) применяются для физической изоляции гипервизоров Рё обеспечения отказоустойчивости. Р’ результате ручной миграции Р·РѕРЅР° доступности виртуальной машины может отличаться РѕС‚ Р·РѕРЅС‹ доступности гипервизора, РіРґРµ РѕРЅР° находится. Подобные Р’Рњ отмечаются лейблом "wrong AZ" РІ таблице Р’Рњ РЅР° вкладке Ресурсы в†’ Р’Рњ. Чтобы сменить Р·РѕРЅСѓ доступности Р’Рњ: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите любую РёР· виртуальных машин, расположенных РЅРµ РІ своей Р·РѕРЅРµ доступности. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Placement management", Р° затем "Change AZ". .. figure:: Media/AZ_change.png :alt: AZchange :figclass: bg-warning :target: ../_images/AZ_change.png Р РёСЃСѓРЅРѕРє 16 – Смена Р·РѕРЅС‹ доступности Р’Рњ 3. Р’ открывшемся РѕРєРЅРµ выберите Р·РѕРЅСѓ доступности РІ выпадающем СЃРїРёСЃРєРµ Рё нажмите "Применить". .. figure:: Media/AZ_chaned.png :alt: AZchanged :figclass: bg-warning :target: ../_images/AZ_chaned.png Р РёСЃСѓРЅРѕРє 17 — Выбор Р·РѕРЅС‹ доступности Р’Рњ Работа СЃ группами серверов Р’Рњ ''''''''''''''''''''''''''''''' Р’ KeyStack РіСЂСѓРїРїС‹ серверов Р’Рњ (сервер-РіСЂСѓРїРїС‹, server groups) применяются для объединения виртуальных машин РІ РіСЂСѓРїРїС‹, которым можно присвоить определенные свойства. Группы серверов привязаны Рє конкретному проекту. Для создания РіСЂСѓРїРїС‹ серверов Р’Рњ РІ Портале администратора выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Server Groups. 2. Нажмите РєРЅРѕРїРєСѓ "Создать Server Group". 3. Заполните поля. Обязательно нужно указать РёРјСЏ РіСЂСѓРїРїС‹ Рё политику расположения. РџСЂРё выборе anti-affinity policy необходимо также указать максимально возможное количество Р’Рњ РЅР° С…РѕСЃС‚. РљРѕРіРґР° РІСЃРµ поля Р±СѓРґСѓС‚ заполнены, нажмите РєРЅРѕРїРєСѓ "Создать". .. figure:: Media/servergroup.png :alt: SG :figclass: bg-warning :target: ../_images/servergroup.png Р РёСЃСѓРЅРѕРє 18 — Группы серверов Р’Рњ Для просмотра всех данных Рѕ РіСЂСѓРїРїРµ серверов нажмите ID РіСЂСѓРїРїС‹ РЅР° странице СЃРїРёСЃРєР° всех РіСЂСѓРїРї. Для удаления РіСЂСѓРїРїС‹ серверов Р’Рњ найдите РІ СЃРїРёСЃРєРµ нужную РіСЂСѓРїРїСѓ, нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите РїСѓРЅРєС‚ "Удалить". Для добавления Р’Рњ РІ РіСЂСѓРїРїСѓ серверов или удаления РёР· нее выполните следующие действия: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину, которую нужно добавить РІ РіСЂСѓРїРїСѓ серверов или удалить РёР· нее. Нажмите "Change Server Group" РІ столбце "Actions" для этой Р’Рњ. 2. Р’ открывшемся РѕРєРЅРµ заполните поле "New server group". Чтобы добавить Р’Рњ РІ РіСЂСѓРїРїСѓ, выберите эту РіСЂСѓРїРїСѓ РёР· выпадающего СЃРїРёСЃРєР°. Чтобы удалить Р’Рњ РёР· РіСЂСѓРїРїС‹, нажмите значок ``X`` Рё оставьте поле пустым. Текущая РіСЂСѓРїРїР° Р’Рњ отображается РІ поле "Current Server Group". 3. Нажмите РєРЅРѕРїРєСѓ "Применить". .. figure:: Media/SG_add.png :alt: SG_add :figclass: bg-warning :target: ../_images/SG_add.png Р РёСЃСѓРЅРѕРє 19 — Рзменение РіСЂСѓРїРїС‹ серверов для Р’Рњ Удаление Р’Рњ ''''''''''' Удаление Р’Рњ осуществляется РІ интерфейсе Портала администратора, Horizon или РІ OpenStack CLI. Для удаления Р’Рњ РІ Horizon необходимо выбрать Вычислительные ресурсы в†’ Рнстансы РІ левом меню, далее найти Р’Рњ, которую необходимо удалить, Рё выбрать РІ контекстном меню РїСѓРЅРєС‚ "Удалить инстанс" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vmRemove.png :alt: vmRemove :figclass: bg-warning :target: ../_images/vmRemove.png Р РёСЃСѓРЅРѕРє 20 — Удаление Р’Рњ Если необходимо удалить несколько виртуальных машин, то нужно выбрать РёС… РІ СЃРїРёСЃРєРµ Рё выбрать РІ контекстном меню РїСѓРЅРєС‚ "Удалить" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vmGroup.png :alt: vmGroup :figclass: bg-warning :target: ../_images/vmGroup.png Р РёСЃСѓРЅРѕРє 21 — Удаление РіСЂСѓРїРїС‹ Р’Рњ Удаление Р’Рњ РІ CLI выполняется командой ``server delete``. Синтаксис команды: ``openstack server delete [--wait] <server> [<server> ...]`` РіРґРµ: --wait — дождаться завершения удаления; <server> [<server> …​] — ВМ (СЃРїРёСЃРѕРє Р’Рњ) для удаления (РёРјСЏ Р’Рњ или ID). Миграция Р’Рњ ''''''''''' Миграция Р’Рњ РІ CLI выполняется командой ``server migrate``. Синтаксис команды: :: openstack server migrate --os-compute-api-version 2.87 [--live-migration] [--host <hostname>] [--shared-migration | --block-migration] [--disk-overcommit | --no-disk-overcommit] [--wait] <server> РіРґРµ: --live-migration — выполнить live-миграцию Р’Рњ. Нужно использовать опцию --host для указания целевого вычислительного узла; --host <hostname> — выполнить миграцию РЅР° вычислительный узел <hostname>; --shared-migration — выполнить общую live-миграцию (миграция РїРѕ умолчанию); --block-migration — выполнить блочную live-миграцию; --disk-overcommit — разрешить избыточную фиксацию РґРёСЃРєР° РЅР° целевом управляющем узле; --no-disk-overcommit — не выполнять избыточную фиксацию РґРёСЃРєР° РЅР° целевом управляющем узле; --wait — дождаться завершения миграции; <server> — мигрируемая Р’Рњ (РёРјСЏ или ID). Миграция Р’Рњ СЃ перегрузкой РїРѕ памяти ''''''''''''''''''''''''''''''''''' РџСЂРё работе СЃ Р’Рњ СЃ перегруженной памятью компонент Nova РїРѕ умолчанию использует следующую формулу: ``Тайм-аут = базовый_тайм-аут (800 сек) * объем оперативной памяти (ГБ)``. Таким образом, live-миграция нагруженных Р’Рњ СЃ большим объемом РћР—РЈ может занимать РјРЅРѕРіРѕ времени. Существует механизм принудительного завершения миграции РїРѕ истечении тайм-аута, который может использовать РґРІР° сценария реализации: - Посткопирование (post-copy) — производится перенос Р’Рњ РЅР° целевой вычислительный узел Рё постепенное донесение содержимого оперативной памяти. Работа Р’Рњ РґРѕ полного переноса памяти РїСЂРѕС…РѕРґРёС‚ РІ режиме пониженной производительности. - Автоматическая сходимость (auto converge) — если миграция РЅРµ может завершиться, то компонент начинает замедлять работу процессора Р’Рњ РґРѕ тех РїРѕСЂ, РїРѕРєР° процесс копирования памяти РЅРµ станет быстрее, чем изменение памяти Р’Рњ. Таким образом, можно оптимизировать процесс live-миграции, подобрав оптимальное время тайм-аута Рё выбрав предпочтительный сценарий реализации принудительного завершения миграции. .. Note:: Сценарий механизма администратор может выбрать РїСЂРё инсталляции РЅР° СЃРІРѕРµ усмотрение. Для этого РІ репозитории региона необходимо создать файл ``config/nova/nova-compute.conf`` СЃ содержимым:: [libvirt] live_migration_completion_timeout = 800 live_migration_permit_post_copy = False live_migration_permit_auto_converge = False Администратор задаёт таймаут РІ секундах РІ формате целого числа Рё устанавливает значение ``True`` для выбранного сценария. Также существует возможность принудительной отмены миграции. РљРѕРіРґР° большая Р’Рњ достаточно долго находится РІ статусе миграции РїСЂРё live-миграции, становится доступно РЅРѕРІРѕРµ действие — отмена миграции. Рто действие можно выполнить СЃ помощью РєРЅРѕРїРєРё "Stop migration" РІ интерфейсе Р’Рњ. Live-миграция Р’Рњ '''''''''''''''''' Если Сѓ Р’Рњ выставлено свойство ``availability_zone``, РїСЂРё live-миграции этой Р’Рњ РЅРµ предлагаются хосты (гипервизоры) РёР· РґСЂСѓРіРёС… Р·РѕРЅ доступности. Рто можно изменить, выбрав опцию "Ignore AZ restriciton" РІ интерфейсе Р’Рњ, после чего для миграции станут доступны РІСЃРµ хосты, Р° live-миграция будет проводиться СЃ ключом ``force``. Чтобы провести live-миграцию Р’Рњ СЃ Портала администратора: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Р’Рњ Рё выберите любую машину РёР· таблицы Р’Рњ. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Placement management", Р° затем "Live Migrate". 3. Р’ открывшемся РѕРєРЅРµ поставьте флажок "Ignore AZ restriciton", выберите нужный гипервизор Рё нажмите РєРЅРѕРїРєСѓ "Мигрировать". .. figure:: Media/live_migrate.png :alt: live_migrate :figclass: bg-warning :target: ../_images/live_migrate.png Р РёСЃСѓРЅРѕРє 22 — Live-миграция Р’Рњ Миграция Р’Рњ СЃ дисками между регионами ''''''''''''''''''''''''''''''''''' РџСЂРё необходимости РІС‹ можете переносить виртуальные машины СЃ дисками РёР· РѕРґРЅРѕРіРѕ региона РІ РґСЂСѓРіРѕР№. Чтобы перенести Р’Рњ СЃ дисками РІ РґСЂСѓРіРѕР№ регион: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину СЃ дисками для переноса. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Placement management", Р° затем "Migrate to the region". .. figure:: Media/VM_region.png :alt: VM_region :figclass: bg-warning :target: ../_images/VM_region.png Р РёСЃСѓРЅРѕРє 23 – Перенос Р’Рњ СЃ дисками РІ РґСЂСѓРіРѕР№ регион 3. Р’ открывшемся РѕРєРЅРµ РїРѕ очереди выберите регион, проект Рё сеть для переноса Р’Рњ. Нажмите "Start migration". .. figure:: Media/VM_region_new.png :alt: VM_region_С‚_new :figclass: bg-warning :target: ../_images/VM_region_new.png Р РёСЃСѓРЅРѕРє 24 – Выбор параметров для переноса Р’Рњ РІ РґСЂСѓРіРѕР№ регион 4. Дождитесь завершения процесса переноса. Обратите внимание, что РІ процессе миграции Р’Рњ будет выключена, Р° ее РґРёСЃРєРё выгружены. Р’Рњ будет перенесена РІ РґСЂСѓРіРѕР№ регион Рё там запущена. После переноса Р’Рњ будет сразу работать. Рсходная Р’Рњ РЅРµ будет удалена. Рвакуация Р’Рњ СЃ вычислительного узла ''''''''''''''''''''''''''''''''''' Р’ контейнере kolla_toolbox РЅР° управляющем узле необходимо выполнить команду для эвакуации Р’Рњ РЅР° РґСЂСѓРіРёРµ вычислительные узлы РІ составе кластера: ``nova host-evacuate-live <хостнейм_удалаяемого_узла>`` Аварийное восстановление Р’Рњ (Nova rescue) '''''''''''''''''''''''''''''''''''''''''' Р’С‹ можете проводить аварийное восстановление Р’Рњ РЅР° Портале администратора. Такие Р’Рњ Р±СѓРґСѓС‚ загружены СЃ указанного вами загрузочного образа (обычно СЃ той же РћРЎ, РЅР° которой Р’Рњ работает), Рё Рє ней Р±СѓРґСѓС‚ подключены РІСЃРµ ее РґРёСЃРєРё. Статус Р’Рњ изменится РЅР° RESCUE. 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину, которую нужно перевести РІ статус RESCUE. Нажмите "Rescue VM" РІ столбце "Actions" для этой Р’Рњ. 2. Заполните поля — пароль Рё образ. Выбранный образ должен иметь следующие свойства: 'hw_rescue_device': 'disk' Рё 'hw_rescue_bus': 'scsi'. 3. Нажмите РєРЅРѕРїРєСѓ "Запустить". Р’Рњ перейдет РІ статус RESCUE, Р° инстанс будет перезагружен РёР· выбранного образа. .. figure:: Media/rescue.png :alt: rescue :figclass: bg-warning :target: ../_images/rescue.png Р РёСЃСѓРЅРѕРє 25 — Аварийное восстановление Р’Рњ Чтобы перевести Р’Рњ обратно РІ статус ACTIVE, выберите действие "Unrescue VM" РІ столбце "Actions" для этой Р’Рњ. Работа СЃ моментальными снимками Р’Рњ ''''''''''''''''''''''''''''''''''' РќР° Портале администратора РІС‹ можете создавать моментальные СЃРЅРёРјРєРё Р’Рњ, чтобы сохранить параметры виртуальных машин Рё РІ случае СЃР±РѕСЏ восстановить машины РёР· этих СЃРЅРёРјРєРѕРІ. Р’ данный момент технология создания таких СЃРЅРёРјРєРѕРІ Р’Рњ поддерживается только для драйверов Huawei Dorado. .. Термин "моментальные СЃРЅРёРјРєРё" - используем РЅР° Портале Рё РІ документах Для создания моментального СЃРЅРёРјРєР° Р’Рњ: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Volume management", Р° затем "Create snapshot of boot volume". 3. Р’ открывшемся РѕРєРЅРµ укажите РёРјСЏ Рё название СЃРЅРёРјРєР° Р’Рњ. Чтобы добавить дополнительные параметры, нажмите ``+`` для "Extra specs". Нажмите "Создать". .. figure:: Media/new_snapshot.png :alt: new_snapshot :figclass: bg-warning :target: ../_images/new_snapshot.png Р РёСЃСѓРЅРѕРє 26 — Создание СЃРЅРёРјРєР° Р’Рњ Чтобы откатить Р’Рњ Рє моментальному СЃРЅРёРјРєСѓ: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Volume management", Р° затем "Revert boot volume to latest snapshot". 3. Р’ открывшемся РѕРєРЅРµ подтвердите действие. Нажмите "Откатить". .. figure:: Media/snapshot.png :alt: snapshot :figclass: bg-warning :target: ../_images/snapshot.png Р РёСЃСѓРЅРѕРє 27 — Восстановление Р’Рњ РёР· СЃРЅРёРјРєР° .. note:: Функция отката Р’Рњ Рє моментальному СЃРЅРёРјРєСѓ поддерживается РЅРµ всеми РЎРҐР”. Р’ таком случае выдается ошибка ``400`` РІРёРґР° ``It is not possible to revert server <id> to the latest snapshot: unsupported volume backend type.`` Клонирование существующих виртуальных машин СЃ кастомизацией ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Необходимо выполнить следующие действия: 1. Подключитесь Рє Порталу самообслуживания. 2. РќР° странице Project в†’ Volumes в†’ Volumes выберите РґРёСЃРє, Сѓ которого РІ колонке "Attached To" указана Р’Рњ, которую нужно скопировать (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). 3. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите РїСѓРЅРєС‚ "Create Snapshot". .. figure:: Media/cloning_1.png :figclass: bg-warning :target: ../_images/cloning_1.png Р РёСЃСѓРЅРѕРє 28 — Выбор РґРёСЃРєР° 4. Р’ открывшемся РѕРєРЅРµ введите РёРјСЏ СЃРЅРёРјРєР° РІ поле "Snapshot Name" Рё нажмите РєРЅРѕРїРєСѓ "Create Volume Snapshot (Force)" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/cloning_2.png :figclass: bg-warning :target: ../_images/cloning_2.png Р РёСЃСѓРЅРѕРє 29 — Создание СЃРЅРёРјРєР° 5. РќР° странице Project в†’ Volumes в†’ Snapshots нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" РІ строке тестового СЃРЅРёРјРєР°. 6. Выберите РїСѓРЅРєС‚ "Launch as Instance" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/cloning_3.png :figclass: bg-warning :target: ../_images/cloning_3.png Р РёСЃСѓРЅРѕРє 30 — Запуск клонированной Р’Рњ 7. Р’ открывшемся РѕРєРЅРµ заполните следующее: - Вкладка Details: ``Instance name: VM_with_Customization`` - Вкладка Flavor: ``Allocated: m1.tiny`` - Вкладка Network: ``Allocated: private`` - Вкладка Configuration: ``Load Customization Script from a file: Загрузить конфигурационный СЃРєСЂРёРїС‚ РІ РІРёРґРµ файла`` или ``Customization Script: Ввести конфигурационный СЃРєСЂРёРїС‚ РІ поле РІРІРѕРґР° текста`` Р’ качестве примера конфигурационного скрипта можно привести следующий СЃРєСЂРёРїС‚: :: #cloud-config ssh_pwauth: yes chpasswd: list: | ubuntu:123456 root:1234567 expire: False 8. Нажмите РєРЅРѕРїРєСѓ "Launch as Instance". Подключение Рє VM РїРѕ SSH должно быть доступно для следующих username/password: - ``ubuntu/123456`` - ``root/1234567`` Диски ^^^^^^ Создание Рё управление дисками ''''''''''''''''''''''''''''' Для просмотра СЃРїРёСЃРєР° РґРёСЃРєРѕРІ РЅР° Портале необходимо РІ левом меню перейти РІ раздел Ресурсы в†’ Диски. Пример РІРёРґР° раздела представлен РЅР° СЂРёСЃСѓРЅРєРµ ниже. .. figure:: Media/disks.png :figclass: bg-warning :target: ../_images/disks.png Р РёСЃСѓРЅРѕРє 31 — Пример СЃРїРёСЃРєР° РґРёСЃРєРѕРІ **Создание РґРёСЃРєР°** Для создания РґРёСЃРєР° РЅР° Портале администратора выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Диски. 2. Нажмите РєРЅРѕРїРєСѓ "Создать РґРёСЃРє". 3. Укажите РёРјСЏ Рё размер РґРёСЃРєР°. Проект для РґРёСЃРєР° можно изменить РІ выпадающем СЃРїРёСЃРєРµ "Проект" вверху. Пример заполнения СЃРј. РЅР° СЂРёСЃСѓРЅРєРµ ниже. Чтобы создать РґРёСЃРє РёР· СЃРЅРёРјРєР°, перейдите РЅР° вкладку From snapshot Рё выберите РѕРґРёРЅ РёР· доступных СЃРЅРёРјРєРѕРІ РІ поле Snapshot. 4. Нажмите РєРЅРѕРїРєСѓ "Создать". .. figure:: Media/new_disk.png :figclass: bg-warning :target: ../_images/new_disk.png Р РёСЃСѓРЅРѕРє 32 — Создание РґРёСЃРєР° **Рзменение параметров РґРёСЃРєР°** Для внесения изменений РІ параметры РґРёСЃРєР° выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Диски. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите нужный РїСѓРЅРєС‚ РІ зависимости РѕС‚ цели: - Чтобы изменить размер РґРёСЃРєР°, нажмите "Change size". Новый размер должен быть больше текущего значения. Р’ открывшемся РѕРєРЅРµ укажите размер РґРёСЃРєР° РІ ГБ Рё нажмите "Сохранить". - Чтобы удалить РґРёСЃРє, нажмите "Delete volume". Чтобы удалить вместе СЃ РґРёСЃРєРѕРј РІСЃРµ СЃРЅРёРјРєРё, выберите опцию "Remove any snapshots along with the volume". Подтвердите действие, нажав "Удалить". - Чтобы изменить тип томов, Рє которому принадлежит РґРёСЃРє, нажмите типа "Change type". Р’ открывшемся РѕРєРЅРµ выберите тип РІ поле "Type". Если планируете миграцию РґРёСЃРєР°, поменяйте значение СЃ "Never" РЅР° "On demand" РІ "Migrate the volume when it is re-typed". Нажмите "Применить". - Если РґРёСЃРє РЅРµ прикреплен Рє Р’Рњ, нажмите "Attach to server". Р’ открывшемся РѕРєРЅРµ выберите Р’Рњ РІ поле "Сервер". Чтобы РїСЂРё удалении Р’Рњ был удален Рё этот РґРёСЃРє, выберите опцию "Delete on termination". Нажмите "Прикрепить". .. + миграция между бэкэндами РІ пределах РѕРґРЅРѕРіРѕ типа .. figure:: Media/edit_disk.png :figclass: bg-warning :target: ../_images/edit_disk.png Р РёСЃСѓРЅРѕРє 33 — Рзменение параметров РґРёСЃРєР° Установка параметров QoS для типов РґРёСЃРєРѕРІ '''''''''''''''''''''''''''''''''''''''''' Для работы СЃ QoS РЅР° Портале администратора необходимо перейти РІ раздел Ресурсы в†’ Volume Types РІ левом меню. **Volume Types** РўРёРїС‹ томов необходимы для логического объединения РґРёСЃРєРѕРІ, включенных РІ определенный том. РџРѕ умолчанию Платформа использует тип томов ``__DEFAULT__``. Другие типы томов можно создавать РЅР° СЃРІРѕРµ усмотрение. Прежде чем устанавливать параметры QoS, убедитесь, что созданы нужные типы томов. Для просмотра типов томов перейдите РІ раздел Ресурсы в†’ Volume Types. Для создания РЅРѕРІРѕРіРѕ типа томов выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Volume Types. 2. Нажмите РєРЅРѕРїРєСѓ "Создать volume type", расположенную СЂСЏРґРѕРј СЃ таблицей **Volume Types**. 3. Введите РёРјСЏ Рё описание типа томов. Чтобы создать приватный тип, доступный только администраторам, снимите флажок для опции "is public". Рти параметры можно изменить позже для уже созданного типа. Для этого нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Edit". 4. Нажмите РєРЅРѕРїРєСѓ "Создать". .. figure:: Media/new_volume_type.png :figclass: bg-warning :target: ../_images/new_volume_type.png Р РёСЃСѓРЅРѕРє 34 — Создание типа томов **Quality of Service** Quality of Service (QoS) для РґРёСЃРєРѕРІ Рё томов — это квоты РЅР° производительность. QoS регулируют параметры производительности оборудования. Создавайте QoS, настраивайте РёС… параметры Рё связывайте РёС… СЃ типами РґРёСЃРєРѕРІ РІ этом разделе. Таблица **Volume Types** выше отобразит QoS, связанные СЃ типами томов, РІ столбце "associated qos". Для создания РЅРѕРІРѕРіРѕ QoS выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Volume Types. 2. Нажмите РєРЅРѕРїРєСѓ "Создать QoS", расположенную СЂСЏРґРѕРј СЃ таблицей **Quality of Service**. 3. Заполните РІСЃРµ поля. Рти параметры можно изменить позже, нажав выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выбрав "Update". 4. Нажмите РєРЅРѕРїРєСѓ "Создать". .. figure:: Media/QoS.png :figclass: bg-warning :target: ../_images/QoS.png Р РёСЃСѓРЅРѕРє 35 — QoS Для изменения QoS выполните следующие действия: 1. Р’ разделе Ресурсы в†’ Volume Types перейдите Рє таблице **Quality of Service**. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите нужный РїСѓРЅРєС‚ РІ зависимости РѕС‚ цели: - Чтобы изменить значения параметров QoS, нажмите "Update". Р’ открывшемся РѕРєРЅРµ укажите новые значения для существующих параметров Рё нажмите "Применить". - Если какие-либо параметры QoS еще РЅРµ указаны, добавьте РёС… СЃ помощью "Add specs". Р’ открывшемся РѕРєРЅРµ заполните значения для новых параметров Рё нажмите "Применить". - Чтобы удалить параметры Сѓ QoS, нажмите "Unset". Выберите РѕРґРёРЅ РёР· параметров РІ открывшемся РѕРєРЅРµ Рё нажмите "Удалить". Повторите для всех параметров, которые нужно удалить. - Чтобы удалить QoS, нажмите "Delete". Подтвердите действие, нажав "Удалить". - Чтобы привязать QoS Рє типу томов, выберите "Associate". Р’ открывшемся РѕРєРЅРµ выберите тип Рё нажмите "Применить". Повторите для всех типов, которые нужно привязать Рє QoS. - Чтобы отвязать QoS РѕС‚ типа томов, выберите "Disassociate". Р’ открывшемся РѕРєРЅРµ выберите тип Рё нажмите "Применить". - Чтобы отвязать QoS РѕС‚ всех типов томов, выберите "Disassociate all". Подтвердите действие, нажав "Применить". Создание Рё управление снимками РґРёСЃРєРѕРІ '''''''''''''''''''''''''''''''''''''' РќР° Портале администратора РІС‹ можете создавать моментальные СЃРЅРёРјРєРё РґРёСЃРєРѕРІ, чтобы сохранить данные виртуальных машин РЅР° этих дисках Рё РІ случае СЃР±РѕСЏ восстановить машины РёР· этих СЃРЅРёРјРєРѕРІ. Р’ данный момент технология создания таких СЃРЅРёРјРєРѕРІ РґРёСЃРєРѕРІ поддерживается только для драйверов Huawei Dorado. Для создания моментального СЃРЅРёРјРєР° РґРёСЃРєР°: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Volume management", Р° затем "Create snapshot of boot volume". 3. Р’ открывшемся РѕРєРЅРµ укажите РёРјСЏ Рё название СЃРЅРёРјРєР° Р’Рњ. Чтобы добавить дополнительные параметры, нажмите ``+`` для "Extra specs". Нажмите "Создать". .. figure:: Media/new_snapshot.png :alt: new_snapshot :figclass: bg-warning :target: ../_images/new_snapshot.png Р РёСЃСѓРЅРѕРє 36 — Создание СЃРЅРёРјРєР° РґРёСЃРєР° Чтобы откатить Р’Рњ Рє моментальному СЃРЅРёРјРєСѓ: 1. РќР° вкладке Ресурсы в†’ Р’Рњ выберите виртуальную машину. 2. Нажмите выпадающий СЃРїРёСЃРѕРє РІ столбце "Actions" Рё выберите "Volume management", Р° затем "Revert boot volume to latest snapshot". 3. Р’ открывшемся РѕРєРЅРµ подтвердите действие. Нажмите "Откатить". .. figure:: Media/snapshot.png :alt: snapshot :figclass: bg-warning :target: ../_images/snapshot.png Р РёСЃСѓРЅРѕРє 37 — Восстановление Р’Рњ РёР· СЃРЅРёРјРєР° .. note:: Функция отката Р’Рњ Рє моментальному СЃРЅРёРјРєСѓ поддерживается РЅРµ всеми РЎРҐР”. Р’ таком случае выдается ошибка ``400`` РІРёРґР° ``It is not possible to revert server <id> to the latest snapshot: unsupported volume backend type.`` Добавление новых вычислительных узлов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Подготовьте описание серверов для Netbox. Подробнее Рѕ Netbox СЃРј. РІ разделе `Подсистема хранения данных Рѕ физических серверах Netbox <#netbox-subsystem>`__. Для этого нужно добавить РІ Netbox (пароль можно посмотреть РІ Vault РІ разделе Accounts) ``https://netbox.<domain_name>/dcim/devices/`` РЅРѕРІРѕРµ устройство (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/netbox.png :alt: netbox :figclass: bg-warning :target: ../_images/netbox.png Р РёСЃСѓРЅРѕРє 38 — Добавление РЅРѕРІРѕРіРѕ устройства РІ Netbox Затем необходимо заполнить поля: - Name — РёРјСЏ сервера; - Device role — Server; - Device type — выбрать соответствующий тип; - Site — выбрать соответствующий сайт, например, ks-region1; - Status — Active; - Tenant — выбрать тенант; - Role — выбрать роль РІ выпадающем СЃРїРёСЃРєРµ (controller, compute или network); - Status — Ready. После того как устройство будет добавлено, зайдите РІ него Рё добавьте сетевые интерфейсы аналогично тому, как изображено РЅР° СЂРёСЃСѓРЅРєРµ ниже. .. figure:: Media/net.png :alt: net :target: ../_images/net.png Р РёСЃСѓРЅРѕРє 39 — Добавление сетевых интерфейсов 2. Теперь можно устанавливать операционную систему. Для этого требуется запустить пайплайн ``https://<gitlab_url>/project_k/Deployments/baremetal/-/pipelines`` Рё поменять значения для следующих параметров: - TARGET_ROLE — compute, controller или network; - TARGET_CLOUD — ks-region1; - IRONIC_IMAGE_URL — РІРѕ всех сценариях, РєСЂРѕРјРµ TARGET_ROLE=network, оставить как есть,В РІ противном случае — указать ``http://LCM_IP:8080/ubuntu-20.04-mellanox-keystack.qcow2``. 3. Нужно добавить новый сервер РІ inventory соответствующего окружения РІ gitlab.domain_name РІ РіСЂСѓРїРїСѓ compute ``https://<gitlab_url>/project_k/deployments/stage1/-/blob/dev-stage1/inventory`` (пример для stage1). 4. Теперь можно запускать kolla-ansible bootstap: ``https://<gitlab_url>/project_k/Deployments/<ENV>/-/pipelines`` | Пример для stage1: | ``https://<gitlab_url>/project_k/deployments/stage1/-/pipelines`` | Run pipeline в†’ Run pipeline в†’ bootstrap-servers. | Run pipeline в†’ Run pipeline в†’ deploy c указанием –limit РЅР° новый гипервизор. 5. Проверьте, что гипервизор функционирует, как ожидается — создаются виртуальные машины, работает миграция, работает сетевая связность — доступ РїРѕ SSH РґРѕ тестовых виртуальных машин: - Создайте виртуальную машину РЅР° требуемом гипервизоре через CLI: ``openstack server create --image <image_id> --flavor <flavor_id> --availability-zone nova:<hypervisor_host_name> В --nic net-id=<network_id> Test-VM`` - Проверьте, что РѕРЅР° создалась Рё перешла РІ статус ACTIVE, через ``openstack server show <server_id>``. - Добавьте Рє ней FIP Рё проверить SSH-доступ (должно быть соответствующее разрешающее правило). - Убедитесь, что виртуальную машину можно мигрировать (миграция Р’Рњ возможна такая: Mirantis в†’ Keystack или Keystack в†’ Keystack). Сделать это можно через CLI: ``openstack server migrate --os-compute-api-version 2.87 --live-migration <instance_id>В --host <new_host_name>`` Удаление вычислительного узла РёР· кластера ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Удалите описание сервера РёР· Netbox: `https://netbox.<domain_name>/dcim/devices/` 2. Удалите сервер РёР· inventory РёР· РіСЂСѓРїРїС‹ [compute]: `https://<gitlab_url>/project_k/deployments/stage1/-/blob/dev-stage1/inventory` (пример для stage1). 3. Далее следует удалить связанные сущности РІ Openstack (предполагается, что виртуальных машин РЅР° сервере нет): :: HOST_FOR_REMOVAL=<computeN> openstack --os-compute-api-version 2.87 compute service list --host $HOST_FOR_REMOVAL --service nova-compute -f value -c ID | xargs openstack --os-compute-api-version 2.87 compute service deleteВ openstack network agent list --host $HOST_FOR_REMOVAL -f value -c ID | while read agent_id; do openstack network agent delete $agent_id; done openstack resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs openstack resource provider show --allocations -f json |jq .allocations | jq 'keys[]' | xargs -n1 openstack resource provider allocation delete openstack resource provider list --name $HOST_FOR_REMOVAL -f value -c uuid | xargs openstack resource provider delete Настройки региона ^^^^^^^^^^^^^^^^^^ Файлы конфигурации (Конфиги) ''''''''''''''''''''''''''''' **NTP Config** РќР° Портале администратора можно просматривать Рё менять некоторые настройки серверов NTP (Network Time Protocol). .. figure:: Media/NTP.png :alt: NTP :figclass: bg-warning :target: ../_images/NTP.png Р РёСЃСѓРЅРѕРє 40 — NTP Config Для внесения изменений РІ файл конфигурации NTP нажмите РєРЅРѕРїРєСѓ "Edit". Можно добавлять, изменять Рё удалять следующие настройки: - часовой РїРѕСЏСЃ; - пулы; - серверы. Флажок "Enabled" отображает статус файла конфигурации. .. figure:: Media/NTP_edit.png :alt: NTP_edit :figclass: bg-warning :target: ../_images/NTP_edit.png Р РёСЃСѓРЅРѕРє 41 — Рзменение настроек NTP Config Рзменения файла РЅР° Портале администратора передаются РІ GitLab Рё там сохраняются. Для того, чтобы применить настройки, РёС… нужно запустить СЃ помощью пайплайна, применив bootstrap-servers Рё host configs. Пример: ``https:///project_k/deployments/<REGION_NAME>/-/pipelines`` Run pipeline в†’ Run pipeline в†’ bootstrap-servers в†’ host configs. Режим обслуживания вычислительных узлов (гипервизоров) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для обслуживания вычислительного узла (гипервизора) предусмотрен механизм временного отключения узла РёР· кластера. РќР° Портале администратора можно отследить процесс перехода гипервизора РІ режим обслуживания (maintenance mode). Для этого нужно перейти РІ раздел Гипервизоры в†’ Гипервизоры Рё посмотреть значение РІ столбце "admin_state". РџСЂРё выборе действия "Enable maintenance mode" гипервизор переходит РІ режим обслуживания, Р° статус Рё значение "admin_state" меняется РЅР° ``EnteringMaintenanceMode``. **Перевод вычислительного узла РІ режим обслуживания** Для перевода узла РІ режим обслуживания необходимо выполнить следующие действия: 1. РќР° Портале администратора перейдите РІ раздел Гипервизоры в†’ Гипервизоры. 2. Р’ выпадающем СЃРїРёСЃРєРµ "Actions" для этого узла выберите действие "Enable maintenance mode". Р’Рњ РїСЂРё таком состоянии продолжают работать РЅР° узле, Р° новые Р’Рњ РЅРµ РјРѕРіСѓС‚ быть запущены. РќР° СЂРёСЃСѓРЅРєРµ ниже показан процесс перевода гипервизора РІ maintenance mode. .. figure:: Media/MMode.png :alt: MMode :figclass: bg-warning :target: ../_images/MMode.png Р РёСЃСѓРЅРѕРє 42 — Вычислительные узлы СЃ возможностью отключения 3. Дождитесь, РєРѕРіРґР° статус гипервизора сменится СЃ ``EnteringMaintenanceMode`` РЅР° новый. Если РїРѕ какой-то причине гипервизор РЅРµ перешел РІ maintenance mode, это будет отображено РІ статусе так: ``disabled (Service was transitioned to Error.)``. Р’ столбце "admin_state" будет описана причина — например, ``Error (Live migration of server N failed)``. Р’ таком случае можно либо повторно попробовать перевести гипервизор РІ режим обслуживания, нажав "Enable maintenance mode" — либо вернуть его РІ статус "enabled", выбрав "Enable Service". Р’ процессе перехода РІ режим обслуживания РІСЃРµ Р’Рњ СЃ данного узла РјРёРіСЂРёСЂСѓСЋС‚ РЅР° РґСЂСѓРіРёРµ узлы, включенные без прерывания РёС… работы. Если гипервизор переведен РІ режим обслуживания, эвакуация Р’Рњ РїСЂРѕРёСЃС…РѕРґРёС‚ параллельно. Примерно 3-5 машин РјРѕРіСѓС‚ быть эвакуированы Р·Р° раз. РџСЂРё этом РІ качестве причины отключения узла (disable_reason) выставляется ``maintenance mode``: ``disable_service_by_uuid(token, service_id, reason='maintenance mode', region=region)``. После перехода РІ режим обслуживания вычислительный узел можно отключать РѕС‚ сети, выключать РїРѕ питанию Рё производить работы РїРѕ ремонту или модернизации. Рвакуация агрегатов ^^^^^^^^^^^^^^^^^^^^ Агрегат (host aggregate) — это РіСЂСѓРїРїР° вычислительных узлов, объединенных логически РЅР° РѕСЃРЅРѕРІРµ таких характеристик, как аппаратные средства или показатели производительности. РћРґРёРЅ вычислительный узел можно назначить как РѕРґРЅРѕРјСѓ, так Рё нескольким агрегатам. РќР° Портале администратора СЃРїРёСЃРѕРє агрегатов доступен РІ разделе Гипервизоры в†’ Агрегаты. Р’С‹ можете переводить агрегаты РІ режим высокой доступности (high availability, или HA) Рё тем самым эвакуировать РёС…. Если для агрегата РЅРµ включен режим HA, возле его название есть лейбл ``no HA``. Для перевода агрегата РІ режим HA выполните следующие действия: 1. Перейдите РІ раздел Гипервизоры в†’ Агрегаты. 2. Посмотрите, какие агрегаты отмечены лейблом ``no HA``. Рти агрегаты РІС‹ сможете эвакуировать. 3. Переведите РѕРґРёРЅ или несколько агрегатов РІ режим HA: - Чтобы эвакуировать конкретный агрегат, выберите "Enable evacuation" РІ выпадающем СЃРїРёСЃРєРµ "Actions" для этого агрегата. РќР° СЂРёСЃСѓРЅРєРµ ниже приведен пример. - Чтобы эвакуировать РІСЃРµ агрегаты, нажмите РєРЅРѕРїРєСѓ "Enable Evacuation For All" вверху. .. figure:: Media/aggregates.png :alt: aggregates :figclass: bg-warning :target: ../_images/aggregates.png Р РёСЃСѓРЅРѕРє 43 — Рвакуация агрегатов 4. Подтвердите действие, нажав "Включить" РІ открывшемся РѕРєРЅРµ. Для вывода агрегатов РёР· режима HA повторите действия выше СЃ тем отличием, что РІ выпадающем СЃРїРёСЃРєРµ "Actions" нужно будет выбрать "Disable evacuation", Р° РїСЂРё выборе всех агрегатов — нажать РєРЅРѕРїРєСѓ "Disable Evacuation For All". Фенсинг узлов (fencing) ^^^^^^^^^^^^^^^^^^^^^^^ Фенсинг узлов (гипервизоров) РїСЂРѕРІРѕРґРёС‚ HA. Фенсинг — механизм исключения неисправного узла РёР· кластера, чтобы этот узел больше РЅРµ работал СЃ Р’Рњ. После проведения фенсинга узлы РјРѕРіСѓС‚ оказаться РІ статусе "fenced", что будет отражено РЅР° Портале администратора. Такие узлы опознаются РїРѕ префиксу ``FENCED: `` РІ ``disabled_reason``. Чтобы вывести узлы РёР· этого состояния, выполните следующие действия: 1. Р’ левом меню Портала перейдите РІ раздел Гипервизоры в†’ Гипервизоры. 2. Найдите РІ таблице узел, который выделен желтым цветом Рё обозначен лейблом "fenced". 3. Р’ выпадающем СЃРїРёСЃРєРµ "Actions" для этого узла выберите действие "Disable Fence Mode". .. figure:: Media/fenced.png :alt: fenced :figclass: bg-warning :target: ../_images/fenced.png Р РёСЃСѓРЅРѕРє 44 — Узел РІ статусе "fenced" Подсистема передачи данных ~~~~~~~~~~~~~~~~~~~~~~~~~~ Р’ Платформе используется топология сети СЃ плоскими VLAN, часть параметров GRE / VXLAN РЅРµ поддерживается. Просмотр сетей ^^^^^^^^^^^^^^ | Для просмотра виртуальных сетей СЃ помощью клиента Openstack CLI нужно выполнить следующую команду: | ``openstack network list`` | Просмотр подсетей выполняется командой: | ``openstack subnet pool list`` Р’С‹ также можете просматривать сети Рё РёС… подсети РЅР° Портале администратора. Для этого РІ левом меню Портала перейдите РІ раздел Ресурсы в†’ Сети. Просмотр настроек виртуальной сети ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для просмотра настроек виртуальной сети РјРѕРіСѓС‚ использоваться интерфейсы Портала администратора, Horizon или OpenStack CLI. Для просмотра настроек виртуальной сети РІ Horizon необходимо выполнить следующие действия: 1. Перейдите РІ раздел Проект в†’ Сети. Будет отображен СЃРїРёСЃРѕРє сетей, Рє которым имеет доступ данный проект. .. figure:: Media/nets.png :alt: nets :figclass: bg-warning :target: ../_images/nets.png Р РёСЃСѓРЅРѕРє 45 — РЎРїРёСЃРѕРє сетей проекта 2. Перейдите РІ карточку виртуальной сети щелчком мыши РїРѕ ее названию. Р’РёРґ раздела настроек виртуальной сети представлен РЅР° СЂРёСЃСѓРЅРєРµ ниже. .. figure:: Media/nets2.png :alt: nets2 :figclass: bg-warning :target: ../_images/nets2.png Р РёСЃСѓРЅРѕРє 46 — Отображение настроек виртуальной сети Для просмотра виртуальной сети СЃ помощью клиента Openstack CLI необходимо подключиться РїРѕ протоколу SSHv2 Рє управляющему узлу control1 Рё выполнить следующую команду РІ контейнере kolla_toolbox: ``openstack network show <РёРјСЏ_виртуальной_сети>`` Для просмотра свойств подсетей (subnet) СЃ помощью клиента Openstack CLI необходимо выполнить команду РІ контейнере kolla_toolbox: ``openstack subnet show <РёРјСЏ_subnet>`` Создание виртуальной сети Рё соответствующей ей подсети ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для создания сети используется команда ``openstack network create``. Полный синтаксис команды: :: openstack network create [--share | --no-share] [--enable | --disable] [--project <project>] [--description <description>] [--mtu <mtu>] [--project-domain <project-domain>] [--availability-zone-hint <availability-zone>] [--enable-port-security | --disable-port-security] [--external | --internal] [--default | --no-default] [--qos-policy <qos-policy>] [--transparent-vlan | --no-transparent-vlan] [--provider-network-type <provider-network-type>] [--provider-physical-network <provider-physical-network>] [--provider-segment <provider-segment>] [--dns-domain <dns-domain>] [--tag <tag> | --no-tag] --subnet <subnet> <name> РіРґРµ: --share — сеть доступна РґСЂСѓРіРёРј проектам; --no-share — сеть недоступна РґСЂСѓРіРёРј проектам; --enable — включить сеть; --disable — отключить сеть; --project  — проект владельца сети (наименование или ID); --description  — описание сети; --mtu  — установить указанный MTU; --project-domain <project-domain> — домен проекта (наименование или ID). Опция используется РІ случае конфликтов между названиями проектов; --availability-zone-hint <availability-zone> — зона доступности, РІ которой необхоодимо создать сеть; --enable-port-security — включить защиту порта РїРѕ умолчанию для портов, созданных РІ этой сети (опция РїРѕ умолчанию); --disable-port-security — отключить защиту порта РїРѕ умолчанию для портов, созданных РІ этой сети; --external — признак внешней сети; --internal — признак внутренней сети; --default — признак использования сети РІ качестве внешней РїРѕ умолчанию; --no-default — не использовать сеть РІ качестве внешней РїРѕ умолчанию; --qos-policy <qos-policy> — политика QoS для подключения Рє этой сети (РёРјСЏ или идентификатор); --transparent-vlan — сделать сеть VLAN прозрачной; --no-transparent-vlan — не делать сеть VLAN прозрачной; --provider-network-type <provider-network-type> — физический механизм реализации виртуальной сети. Например: flat, geneve, gre, local, vlan, vxlan; --provider-physical-network <provider-physical-network> — имя физической сети, РІ которой реализована виртуальная сеть; --provider-segment <provider-segment> — VLAN ID для сетей VLAN или Tunnel ID для сетей GENEVE / GRE / VXLAN; --dns-domain <dns-domain> — установить DNS-домен для этой сети; --tag <tag> — добавить тег Рє сети. Может использоваться несколько раз для указания нескольких тегов; --no-tag — нет тегов, связанных СЃ сетью; --subnet <subnet> — подсеть IPv4 для фиксированных IP-адресов (РІ нотации CIDR); <name> — наименование создаваемой сети. Для создания сети РЅР° Портале администратора: 1. Р’ левом меню Портала перейдите РІ раздел Ресурсы в†’ Сети Рё нажмите РєРЅРѕРїРєСѓ "Создать сеть". 2. Р’ открывшемся РѕРєРЅРµ заполните поля. Обязательно нужно указать РёРјСЏ сети, CIDR Рё внешний ID. Поддерживаются разные типы сетей: FLAT, VLAN, VXLAN Рё GRE. 3. РљРѕРіРґР° РІСЃРµ поля Р±СѓРґСѓС‚ заполнены, нажмите РєРЅРѕРїРєСѓ "Создать". .. figure:: Media/network.png :alt: network :figclass: bg-warning :target: ../_images/network.png Р РёСЃСѓРЅРѕРє 47 — Создание сети РЅР° Портале администратора Создание подсети ^^^^^^^^^^^^^^^^ Для создания подсети используется команда ``openstack subnet crate``. Полный синтаксис команды: :: openstack subnet create [--project <project>] [--project-domain <project-domain>] [--subnet-pool <subnet-pool>] [--prefix-length <prefix-length>] [--subnet-range <subnet-range>] [--dhcp | --no-dhcp] [--dns-publish-fixed-ip | --no-dns-publish-fixed-ip] [--gateway <gateway>] [--ip-version {4,6}] [--network-segment <network-segment>] --network <network> [--description <description>] [--allocation-pool start=<ip-address>,end=<ip-address>] [--dns-nameserver <dns-nameserver>] [--host-route destination=<subnet>,gateway=<ip-address>] [--service-type <service-type>] [--tag <tag> | --no-tag] <name> РіРґРµ: --project <project> — проект владельца (наименование или ID); --project-domain <project-domain> — домен проекта (наименование или ID). Опция используется РІ случае конфликтов между названиями проектов; --subnet-pool <subnet-pool> — пул адресов, РёР· которого эта подсеть получит CIDR (наименование или идентификатор); --prefix-length <prefix-length> — длина префикса для выделения подсети РёР· пула подсетей; --subnet-range <subnet-range> — диапазон подсети РІ нотации CIDR (требуется, если –subnet-pool РЅРµ указан, РІ противном случае — необязательный); --dhcp — разрешить DHCP (РїРѕ умолчанию); --no-dhcp — запретить DHCP; --dns-publish-fixed-ip — включить публикацию фиксированных IP-адресов РІ DNS; --no-dns-publish-fixed-ip — отключить публикацию фиксированных IP-адресов РІ DNS; --gateway <gateway> — шлюз подсети. Доступны три варианта: - <ip-address> — конкретный IP-адрес для использования РІ качестве шлюза — например, –gateway 192.168.9.1,; - 'auto' — адрес шлюза должен автоматически выбираться РёР· самой подсети — например, –gateway auto; - 'none' — подсеть РЅРµ использует шлюз — например, –gateway none. --ip-version <IP_VERSION> — версия IP (значение РїРѕ умолчанию — 4). Версия 6 РЅРµ доступна РІ Платформе; --network-segment <network-segment> — сегмент сети, который нужно связать СЃ этой подсетью (наименование или ID); --network <network> — сеть, Рє которой принадлежит эта подсеть (наименование или ID); --description <description> — описание подсети; --allocation-pool start=<ip-address>,end=<ip-address> — IP-адреса пула распределения для этой подсети — например, start = 192.168.199.2, end = 192.168.199.254. Можно использовать несколько раз для добавления нескольких пулов; --dns-nameserver <dns-nameserver> — DNS-сервер для этой подсети. Можно использовать несколько раз для указания нескольких DNS; --host-route destination=<subnet>,gateway=<ip-address> — дополнительный маршрут для этой подсети — например, destination=10.10.0.0/16,gateway=192.168.71.254. Можно использовать несколько раз для добавления нескольких маршрутов; --service-type <service-type> — тип сервиса для подсети — например, network:floatingip_agent_gateway. Можно использовать несколько раз для указания нескольких типов сервиса; --tag <tag> — теги подсети. Можно использовать несколько раз для добавления нескольких тегов; --no-tag — не ассоциировать теги СЃ этой подсетью; <name> — наименование подсети. Рзменение параметров сети ^^^^^^^^^^^^^^^^^^^^^^^^^ Рзменение параметров сети выполняется командой ``network set``. Полный синтаксис команды: :: openstack network set [--name <name>] [--enable | --disable] [--share | --no-share] [--description <description>] [--mtu <mtu>] [--enable-port-security | --disable-port-security] [--external | --internal] [--default | --no-default] [--qos-policy <qos-policy> | --no-qos-policy] [--tag <tag>] [--no-tag] [--provider-network-type <provider-network-type>] [--provider-physical-network <provider-physical-network>] [--provider-segment <provider-segment>] [--dns-domain <dns-domain>] <network> РіРґРµ: --name <name> — установить наименование сети; --enable — включить сеть; --disable — выключить сеть; --share — сделать доступной для РґСЂСѓРіРёС… проектов; --no-share — сделать недоступной для РґСЂСѓРіРёС… проектов; --description <description> — описание сети; --mtu <mtu> — установить MTU; --enable-port-security —  включить защиту порта РІ этой сети; --disable-port-security — выключить защиту порта РІ этой сети; --external — установить сеть как внешнюю; --internal — установить сеть как внутреннюю; --default — установить эту сеть как внешнюю РїРѕ умолчанию; --no-default — не использовать эту сеть как внешнюю РїРѕ умолчанию; --qos-policy <qos-policy> — политика QoS для подключения Рє этой сети (наименование политики или ID); --no-qos-policy — удалить политику QoS для подключения Рє этой сети; --tag <tag> — теги сети. Можно использовать несколько раз для добавления нескольких тегов; --no-tag — очистить теги сети. Указывается как –tag, так Рё –no-tag, чтобы перезаписать текущие теги; --provider-network-type <provider-network-type> — физический механизм реализации виртуальной сети. Например: flat, geneve, gre, local, vlan, vxlan; --provider-physical-network  — наименование физической сети, РІ которой реализована виртуальная сеть; --provider-segment <provider-segment> — VLAN ID для сетей VLAN или Tunnel ID для сетей GENEVE / GRE / VXLAN; --dns-domain <dns-domain> — установить DNS-домен для этой сети; network — изменяемая сеть (РёРјСЏ или ID). Рзменение параметров подсети ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Рзменение параметров подсети выполняется командой ``subnet set``. Полный синтаксис команды: :: openstack subnet set [--name <name>] [--dhcp | --no-dhcp] [--dns-publish-fixed-ip | --no-dns-publish-fixed-ip] [--gateway <gateway>] [--network-segment <network-segment>] [--description <description>] [--tag <tag>] [--no-tag] [--allocation-pool start=<ip-address>,end=<ip-address>] [--no-allocation-pool] [--dns-nameserver <dns-nameserver>] [--no-dns-nameservers] [--host-route destination=<subnet>,gateway=<ip-address>] [--no-host-route] [--service-type <service-type>] <subnet> РіРґРµ: --name <name> — установить РёРјСЏ подсети; --dhcp — включить DHCP; --no-dhcp — выключить DHCP; --dns-publish-fixed-ip — включить публикацию фиксированных IP-адресов РІ DNS; --no-dns-publish-fixed-ip — отключить публикацию фиксированных IP-адресов РІ DNS; --gateway <gateway> — шлюз подсети. Доступны три варианта: - <ip-address> — конкретный IP-адрес для использования РІ качестве шлюза — например, –gateway 192.168.9.1,; - 'auto' — адрес шлюза должен автоматически выбираться РёР· самой подсети — например, –gateway auto; - 'none' — подсеть РЅРµ использует шлюз — например, –gateway none. --network-segment <network-segment> —  сегмент сети, который нужно связать СЃ этой подсетью (РёРјСЏ или ID). Разрешается устанавливать сегмент, если текущее значение — None. Сеть также должна иметь только РѕРґРёРЅ сегмент, Рё только РѕРґРЅР° подсеть может существовать РІ сети; --description <description> — установить описание подсети; --tag <tag> — теги подсети. Можно использовать несколько раз для добавления нескольких тегов; --no-tag — очистить теги подсети. Указывается как –tag, так Рё –no-tag, чтобы перезаписать текущие теги; --allocation-pool start=<ip-address>,end=<ip-address> — IP-адреса пула для этой подсети — например, start = 192.168.199.2, end = 192.168.199.254. Можно указывать несколько раз для добавления нескольких пулов адресов; --no-allocation-pool — удалить пулы РёР· этой подсети. Указывается как –allocation-pool, так Рё –no-allocation-pool, чтобы перезаписать информацию Рѕ текущем пуле; --dns-nameserver <dns-nameserver> — DNS-сервер для этой подсети. Можно использовать несколько раз для указания нескольких DNS-серверов; --no-dns-nameservers — удалить информацию Рѕ DNS-серверах РІ этой подсети. Необходимо использовать –no-dns-nameserver Рё –dns-nameserver, чтобы перезаписать информацию Рѕ DNS-серверах; --host-route destination=<subnet>,gateway=<ip-address> — -- дополнительный маршрут для этой подсети — например, destination=10.10.0.0/16,gateway=192.168.71.254. Можно использовать несколько раз для добавления нескольких маршрутов; --no-host-route — очистить информацию Рѕ маршрутах для этой подсети. Необходимо использовать -no-host-route Рё –host-route, чтобы перезаписать информацию Рѕ маршрутах; --service-type <service-type> — тип сервиса для подсети — например, network:floatingip_agent_gateway. Можно использовать несколько раз для указания нескольких типов сервиса; subnet — изменяемая подсеть (РёРјСЏ или ID). Создание балансировщика нагрузки ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Балансировщики проекта отображаются РїСЂРё переходе РІ левом меню РІ раздел Сеть в†’ Балансировщики нагрузки. .. figure:: Media/lb.png :alt: lb :figclass: bg-warning :target: ../_images/lb.png Р РёСЃСѓРЅРѕРє 48 — РЎРїРёСЃРѕРє балансировщиков проекта Для запуска мастера создания балансировщика нажмите РєРЅРѕРїРєСѓ "Создать балансировщик нагрузки". Р’ РѕРєРЅРµ мастера создания балансировщика укажите РёРјСЏ балансировщика, выберите сеть. .. figure:: Media/newLb.png :alt: newLb :figclass: bg-warning :target: ../_images/newLb.png Р РёСЃСѓРЅРѕРє 49 — Создание балансировщика Добавьте информацию Рѕ слушателе — заполните поля "РРјСЏ", "Протокол" Рё "РџРѕСЂС‚" (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/info.png :alt: info :figclass: bg-warning :target: ../_images/info.png Р РёСЃСѓРЅРѕРє 50 — Заполнение информации Рѕ слушателе Далее необходимо заполнить информацию Рѕ пуле (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/pool.png :alt: pool :figclass: bg-warning :target: ../_images/pool.png Р РёСЃСѓРЅРѕРє 51 — Заполнение информации Рѕ пуле Р’ настоящий момент балансировщик поддерживает три основных алгоритма балансировки: 1. LEAST_CONNECTIONS. Учитывает количество подключений, поддерживаемых серверами РІ текущий момент времени. Каждый следующий запрос передается серверу СЃ наименьшим количеством активных подключений. 2. ROUND_ROBIN. Представляет СЃРѕР±РѕР№ перебор РїРѕ РєСЂСѓРіСѓ: первый запрос передается первому серверу, затем следующий запрос передается второму — Рё так РґРѕ достижения последнего сервера, Р° затем РІСЃРµ начинается сначала. 3. SOURCE_IP. Р’ этом методе сервер, обрабатывающий запрос, выбирается произвольным образом Рё закрепляется (РЅР° сессию, РІ cookies) Р·Р° конкретным источником запроса. Далее укажите Р’Рњ для балансировки. Ртот шаг необязательный, Рё его можно выполнить после создания балансировщика (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/vmLb.png :alt: vmLb :figclass: bg-warning :target: ../_images/vmLb.png Р РёСЃСѓРЅРѕРє 52 — Добавление Р’Рњ балансироки Настройте параметры интервалов проверки доступности (СЃРј. СЂРёСЃСѓРЅРѕРє ниже). .. figure:: Media/rule.png :alt: rule :figclass: bg-warning :target: ../_images/rule.png Р РёСЃСѓРЅРѕРє 53 — Добавление правила. Параметры интервалов проверки доступности После указания всех параметров балансировщика нажмите РєРЅРѕРїРєСѓ "Создать балансировщик нагрузки" Рё дождитесь завершения операции. Подсистема хранения секретов Vault ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Подсистема обычно является часть платформы, располагается РЅР° LCM-узле Рё находится РїРѕ адресу `https://netbox.<domain_name>`. Р’СЃСЏ чувствительная информация должна храниться РІ этой системе. РћСЃРЅРѕРІРЅРѕР№ файл СЃ секретами passwords_yml должен быть расположен РІ такой структуре: ``deployments/itkey/<prod\stage><region>/passwords_yml``. Структура может быть произвольной. Привязаться Рє существующей можно, изменив соответствующие CI/CD переменные РІ gitlab.domain_name для репозитория СЃ файлами конфигурации, относящемуся Рє региону, например: ``https://<gitlab.domain_name>/project_k/deployments/stage1`` в†’ открыть в†’ Settings в†’ CI/CD в†’ Variables: vault_addr — адрес Vault (``https://FQDN``); vault_engine — путь Рє хранилищу (secret store v2); vault_method — jwt или password; vault_password — заполните, если используется пароль для доступа Рє Vault; vault_prefix — путь РґРѕ passwords_yml региона (РЅРµ включительно), например, ``deployments/itkey/prod/region1``; vault_role — ``itkey_deployments`` (РЅРµ менять); vault_username — укажите РёРјСЏ пользователя для доступа РІ Vault РІ случае использования парольной аутентификации; Р’ случае перезапуска контейнера Vault или перезапуска LCM сервера Vault необходимо разблокировать unseal-ключом, полученным РїСЂРё установке Рё сохраненном РІ надежном месте, сделать это можно так: ``docker exec -it vault vault operator unseal`` Система запросит ключ, который требуется ввести. Как безопасно хранить пароли ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Включение Castellan РІ регионе ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Castellan — это библиотека, предоставляющая СЃРѕР±РѕР№ общий интерфейс для хранения, генерации Рё извлечения секретов. РћРЅР° используется большинством сервисов OpenStack для управления секретами. Как библиотека, Castellan сама РїРѕ себе РЅРµ предоставляет хранилище секретов. Вместо этого требуется развертывание реализации РЅР° стороне сервера. РЎ помощью интеграции данной библиотеки РІ oslo.config Рё соответствующей настройки Vault можно хранить пароли сервисов OpenStack РІ Vault вместо текстовых файлов. Поддерживаются следующие сервисы: - AdminUI - Barbican - Cinder - Consul - DRS - Glance - Horizon - Keystone - Neutron - Nova - Placement Для настройки хранения паролей сервисов РІ Vault: #. Перейдите РІ веб-интерфейс GitLab. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Создайте файл ``globals.d/castellan.yml``, РІ котором определите переменную ``services_with_castellan`` СЃРѕ СЃРїРёСЃРєРѕРј сервисов, например: :: services_with_castellan: - drs - cinder - glance - neutron - nova - nova_cell - keystone - adminui - placement - horizon - barbican - consul #. Дополнительно задайте следующие настройки для аутентификации РІ Vault СЃ соответствующими значениями: * РџСЂРё аутентификации через AppRole:: castellan_vault_approle_role_id: "" castellan_vault_approle_secret_id: "" * РџСЂРё использовании Vault Enterprise Рё namespaces:: castellan_vault_namespace: "" * РџСЂРё аутентификации через токен:: castellan_vault_root_token_id: "" #. Запустите пайплайн **Run pipeline** РїРѕ умолчанию. Дождитесь завершения этапа **setup-castellan**. #. Продолжите развёртывание региона. Для проверки настройки хранения паролей сервисов РІ Vault: #. РџРѕ очереди зайдита РЅР° узлы Control, Compute, Network Рё проверьте конфигурационные файлы соответствующих сервисов. РћРЅРё РЅРµ должны содержать пароли РІ открытом РІРёРґРµ. Хеширование паролей сервисов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Пароли Рє некоторым сервисам можно хранить РІ хешированном РІРёРґРµ. Реализовано для HAProxy РІ части: * OpenSearch * Prometheus Для настройки сокрытия паролей сервисов путём хеширования выполните следующие шаги: #. Перейдите РІ веб-интерфейс GitLab. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Откройте файл ``globals.d/REGION.yml`` Рё добавьте РІ него переменную СЃРѕ СЃРїРёСЃРєРѕРј необходимых сервисов:: services_with_hashed_password: - opensearch - prometheus - rabbitmq - proxysql #. Запустите пайплайн **Run pipeline** РїРѕ умолчанию. Дождитесь завершения этапа **setup-castellan**. #. Продолжите развёртывание региона. Для проверки сокрытия паролей сервисов путём хеширования выполните следующие шаги: #. Зайдите РЅР° узлы Control Рё проверьте конфигурационные файлы сервисов, использующих хеширование паролей:: /etc/kolla/haproxy/services.d/opensearch-dashboards.cfg /etc/kolla/rabbitmq/definitions.json /etc/kolla/proxysql/users/<name_service>.yml /etc/kolla/haproxy/services.d/prometheus-alertmanager.cfg Р’СЃРµ пароли должны отображаться РІ РІРёРґРµ хешей SHA256. Хранение паролей экспортеров Prometheus РІ Vault ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для настройки хранения паролей экспортеров Prometheus РІ Vault выполните следующие действия: #. Перейдите РІ веб-интерфейс GitLab. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Откройте файл ``globals.d/REGION.yml`` Рё добавьте РІ него строки:: prometheus_mysqld_exporter_use_vault: true prometheus_rabbitmq_exporter_use_vault: true prometheus_openstack_exporter_use_vault: true #. Создайте новый пайплайн **Run pipeline**. #. Р’ переменной ``KOLLA_ARGS`` укажите значение ``-t prometheus`` для выполнения пайплайна только для компонента Prometheus. #. Запустите пайплайн Рё дождитесь завершения этапа **deploy**. Для проверки настройки хранения паролей экспортеров Prometheus РІ Vault выполните следующие шаги: #. Зайдите РЅР° узлы Control Рё проверьте конфигурационные файлы экспортёров Prometheus:: /etc/kolla/prometheus-mysqld-exporter/my.cnf /etc/kolla/prometheus-rabbitmq-exporter/prometheus-rabbitmq-config.json /etc/kolla/prometheus-openstack-exporter/clouds.yml Р’ файлах должны присутствовать строки СЃ настройками доступа Рє Vault Рё РЅРµ должно быть паролей РІ открытом РІРёРґРµ. Защита паролей РІ MariaDB, Redis, Grafana ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для настройки хранения паролей MariaDB, Redis Рё Grafana РІ Vault выполните следующие действия: #. Перейдите РІ веб-интерфейс GitLab. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Откройте файл ``globals.d/REGION.yml`` Рё добавьте РІ него строки, указав РІ переменной ``vault_addr`` URL СЃ полным доменным именем сервиса Vault:: enable_vault_agent: "yes" vault_approle_role_id: "{{ castellan_vault_approle_role_id }}" vault_approle_secret_id: "{{ castellan_vault_approle_secret_id }}" vault_region: "{{ OPENSTACK_ENV }}" vault_region_pass: "passwords_yml" vault_addr: "https://vault.itkey.com" #. Создайте новый пайплайн **Run pipeline**. #. Р’ переменной ``KOLLA_ARGS`` укажите значение ``-t mariadb,redis,grafana`` для выполнения пайплайна только для этих компонентов. #. Запустите пайплайн Рё дождитесь завершения этапа **deploy**. Для проверки настройки хранения паролей MariaDB, Redis Рё Grafana РІ Vault выполните следующие шаги: #. Зайдите РЅР° узлы Control Рё проверьте конфигурационные файлы этих сервисов:: /etc/kolla/mariadb/galera.cnf /etc/kolla/mariabackup/my.cnf /etc/kolla/redis/redis.conf /etc/kolla/redis-sentinel/redis.conf /etc/kolla/grafana/grafana.ini Р’ файлах должны присутствовать строки СЃ настройками доступа Рє Vault Рё РЅРµ должно быть паролей РІ открытом РІРёРґРµ. Переключение аутентификации libvirt СЃ SASL РЅР° TLS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для переключения аутентификации libvirt СЃ SASL РЅР° TLS выполните следующие действия: #. Зайдите РЅР° каждый Compute-узел РїРѕ SSH Рё удалите старые конфигурационные файлы:: # rm /etc/kolla/nova-libvirt/auth.conf # rm /etc/kolla/nova-compute/auth.conf #. Перейдите РІ веб-интерфейс GitLab. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Откройте файл ``globals.d/REGION.yml`` Рё добавьте РІ него строки:: libvirt_enable_sasl: false libvirt_tls: "yes" #. Перейдите РІ репозиторий **project_k** в†’ **deployments** в†’ **gen-pwd**. #. Создайте новый пайплайн **Run pipeline**. #. Р’ переменной ``OPENSTACK_ENV`` укажите РёРјСЏ вашего региона. #. Запустите пайплайн Run Рё дождитесь его завершения. #. Перейдите РІ репозиторий вашего региона **project_k** в†’ **deployments** в†’ **<РёРјСЏ региона>**. #. Р’ переменной ``KOLLA_ARGS`` укажите значение ``-t nova`` для выполнения пайплайна только для компонента Nova. #. Запустите пайплайн Рё дождитесь завершения этапа **deploy**. Для проверки аутентификации libvirt СЃ TLS выполните следующие действия РЅР° каждом Compute-узле: #. Проверьте отсутствие файлов ``/etc/kolla/nova-libvirt/auth.conf`` Рё ``/etc/kolla/nova-compute/auth.conf``. #. Проверьте, что РІ конфигурационном файле ``/etc/kolla/nova-libvirt/libvirtd.conf`` включена опция ``listen_tls`` Рё присутствуют строки СЃ сертификатами TLS. Механизм внешних плагинов ~~~~~~~~~~~~~~~~~~~~~~~~~ Пользовательские Ansible роли ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для добавления настраиваемых Ansible ролей перейдите РІ репозиторий региона Рё создайте директорию ``client_config`` СЃРѕ следующей структурой:: group_vars/ # Директория общих переменных для ролей roles/ # Директория для хранения ролей some-role/ # Директория соответствующая названию роли tasks/ # Директория файлов СЃ задачами main.yml # РћСЃРЅРѕРІРЅРѕР№ файл задач роли handlers/ # Директория обработчиков событий, которые выполняются РїСЂРё вызове РёР· задач через ``notify`` main.yml # РћСЃРЅРѕРІРЅРѕР№ файл обработчиков templates/ # Директория jinja2-шаблонов, которые можно использовать для динамического создания конфигурационных файлов ntp.conf.j2 # Jinja2-шаблон files/ # Директория статических файлов роли, которые РјРѕРіСѓС‚ быть скопированы РЅР° целевые хосты без изменений bar.txt # Статический файл vars/ # Директория переменных роли СЃ высоким приоритетом. Рспользуются для ключевых параметров, которые редко изменяются main.yml # Файл СЃ переменными defaults/ # Директория переменных РїРѕ умолчанию, которые РјРѕРіСѓС‚ быть переопределены. Рмеют самый РЅРёР·РєРёР№ приоритет main.yml # Файл СЃ переменными meta/ # Директория СЃ метаданными роли, такие как зависимости Рё информация Рѕ поддержке main.yml # Файл зависимостей library/ # Директория для хранения пользовательских модулей Ansible module_utils/ # Директория для хранения вспомогательных утилит Рё библиотек, которые РјРѕРіСѓС‚ использоваться РІ пользовательских модулях lookup_plugins/ # Директория для хранения пользовательских плагинов для функций lookup, которые используются для получения данных РёР· внешних источников client-config.yml # Конфигурационный файл для использования ролей (ansible плейбук) .. NOTE:: Более детальную информацию Рѕ подготовке пользовательских Ansible ролей можно прочесть РІ `официальной документации Ansible <https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html>`_. Р’ созданной директории создайте Ansible плейбук ``client-config.yml``. Вариант содержимого ``client-config.yml``:: --- - hosts: all roles: - some_role Для применения создайте новый пайплайн: **Build** в†’ **Pipelines** в†’ **Run Pipeline**, затем запустите его. После завершения шага **setup** запустите задачу **client-config**. .. IMPORTANT:: Перед запуском задачи ``client-config`` необходимо убедиться, что РІ директории ``<regionname>/client_config/roles`` присутствует директория ``some_role``. Мониторинг ~~~~~~~~~~ | Подсистема мониторинга предназначена для решения задач мониторинга Платформы Рё ее сервисов. | Р—Р° мониторинг Платформы отвечают компоненты, построенные РЅР° базе решений Opensearch, Prometheus Рё Grafana. Описание работы СЃ OpenSearch, панели (OpenSearch Dashboards) Рё запросы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OpenSearch — инструмент для РїРѕРёСЃРєР° Рё анализа данных РІ документах СЃ открытым исходным РєРѕРґРѕРј. Разработанный РЅР° РѕСЃРЅРѕРІРµ Elasticsearch, OpenSearch предоставляет эффективное хранилище Рё обработку данных, Р° также масштабируемую архитектуру. | OpenSearch Dashboards — инструмент для визуализации данных, СЃ помощью которого пользователи РјРѕРіСѓС‚ создавать информативные Рё интерактивные панели РЅР° РѕСЃРЅРѕРІРµ данных РёР· OpenSearch. | Пользователи РјРѕРіСѓС‚ взаимодействовать СЃ данными РЅР° дашбордах, применять фильтры Рё детализировать информацию для более глубокого анализа. | Рнструмент предоставляет различные типы визуализаций, включая графики, диаграммы Рё карты, чтобы визуально представлять разнообразные данные. | OpenSearch Dashboards поддерживает совместную работу, что позволяет нескольким пользователям одновременно создавать Рё редактировать дашборды. | РџРѕРјРёРјРѕ этого, дашборды можно импортировать Рё экспортировать для обмена настройками Рё визуализациями между различными инсталляциями OpenSearch Dashboards. | Р’ составе настоящего релиза OpenSearch поставляется без преднастроенных панелей. | Предполагается, что администраторы кастомизируют панели РїРѕРґ бизнес-задачи. Создание пользовательских панелей СЃ использованием различных виджетов Рё визуализаций ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Процесс создания дашборда включает следующие этапы: 1. Выбор источника данных: РїСЂРѕРёСЃС…РѕРґРёС‚ определение источника данных РёР· OpenSearch для визуализации. 2. Добавление визуализаций: выбор Рё настройка виджетов Рё визуализаций для отображения данных. 3. Конфигурация фильтров: применение фильтров для уточнения отображаемых данных. 4. Определение РєРѕРјРїРѕРЅРѕРІРєРё: размещение визуализаций РЅР° дашборде СЃ учетом РёС… взаимодействия. 5. Сохранение Рё публикация: сохранение созданного дашборда Рё возможность его публикации для общего доступа. .. figure:: Media/opensearch_new_dashboard_ui.png :figclass: bg-warning :target: ../_images/opensearch_new_dashboard_ui.png Р РёСЃСѓРЅРѕРє 54 — Создание пользовательской панели. Выбор визуализации .. figure:: Media/opensearch_new_dashboard_ui_2.png :figclass: bg-warning :target: ../_images/opensearch_new_dashboard_ui_2.png Р РёСЃСѓРЅРѕРє 55 — Создание пользовательской панели. Применение фильтров .. figure:: Media/opensearch_new_dashboard_ui_3.png :figclass: bg-warning :target: ../_images/opensearch_new_dashboard_ui_3.png Р РёСЃСѓРЅРѕРє 56 — Создание пользовательской панеи. Размещение визуализации Подробнее Рѕ работе СЃ OpenSearch Dashboards СЃРј. РІ документации `OpenSearch Dashboards <https://opensearch.org/docs/latest/dashboards/index/>`__. Добавление РЅРѕРІРѕРіРѕ output для сборщика логов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Если требуется СЃР±РѕСЂ логов РІ дополнительный output, необходимо выполнить следующие действия: 1. Р’ репозитории региона РІ директории ``config/fluentd/output`` (создать РїСЂРё отсутствии) создайте (или отредактируйте РїСЂРё наличии) файл ``03-opensearch.conf``. Содержание ``03-opensearch.conf``: :: <match **> @type copy <store> @type opensearch hosts http://{{ opensearch_address }}:{{ opensearch_port }},https://адрес_РЅРѕРІРѕРіРѕ_сборщика:РїРѕСЂС‚_РЅРѕРІРѕРіРѕ_сборщика {% if fluentd_opensearch_path != '' %} path {{ fluentd_opensearch_path }} {% endif %} {% if fluentd_opensearch_scheme == 'https' %} ssl_version {{ fluentd_opensearch_ssl_version }} ssl_verify {{ fluentd_opensearch_ssl_verify }} {% if fluentd_opensearch_cacert | length > 0 %} ca_file {{ fluentd_opensearch_cacert }} {% endif %} {% endif %} {% if fluentd_opensearch_user != '' and fluentd_opensearch_password != ''%} user {{ fluentd_opensearch_user }} password {{ fluentd_opensearch_password }} {% endif %} logstash_format true logstash_prefix {{ opensearch_log_index_prefix }} reconnect_on_error true reload_connections false reload_on_failure true request_timeout {{ fluentd_opensearch_request_timeout }} suppress_type_name true ssl_verify false <buffer> @type file path /var/lib/fluentd/data/opensearch.buffer/openstack.* flush_interval 15s chunk_limit_size 10M </buffer> </store> </match> 2. Далее РІ интерфейсе Gitlab РІ репозитории региона запустите выполнение пайплайна СЃ тегом ``common`` Рё лимитом РЅР° мастер-узлы: :: `-t common --limit control` .. figure:: Media/gitlab-run-pipeline-with-arg.png :figclass: bg-warning :target: ../_images/gitlab-run-pipeline-with-arg.png Р РёСЃСѓРЅРѕРє 57 — Запуск пайплайна СЃ нужным тегом 3. Нажмите "Run Pipeline". Создание шаблона индексов РІ OpenSearch ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | Для этого нужно перейти РЅР° страницу ``https://opensearch.<domain_name>``. | Данная страница РїСЂРё первом РІС…РѕРґРµ сразу направит нас РЅР° страницу создания шаблонов. | Далее необходимо выполнить следующие действия: 1. Нажмите РєРЅРѕРїРєСѓ "Create index patern". 2. Р’ появившемся РѕРєРЅРµ РІ поле "index patern name" укажите flog\* Рё нажмите "Next Step". 3. Далее РІ поле "Time field" выберите РёР· выпадающего СЃРїРёСЃРєР° @timestamp Рё нажмите "Create index pattern". Настройка глубины хранения индексов РІ OpenSearch ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Данная настройка выполняется РІ самом OpenSearch. Для этого нужно перейти РЅР° сайт ``https://opensearch.<domain_name>`` в†’ Index Management в†’ Index Policies Рё добавить или изменить политику: :: { "policy": { "policy_id": "Retention", "description": "hot warm delete workflow", "schema_version": 16, "default_state": "hot", "states": [ { "name": "hot", "actions": [ { "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "replica_count": { "number_of_replicas": 1 } } ], "transitions": [ { "state_name": "warm", "conditions": { "min_index_age": "30d" } } ] }, { "name": "warm", "actions": [ { "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "replica_count": { "number_of_replicas": 0 } } ], "transitions": [ { "state_name": "delete", "conditions": { "min_index_age": "60d" } } ] }, { "name": "delete", "actions": [ `{ "retry": { "count": 3, "backoff": "exponential", "delay": "1m" }, "delete": {} } ], "transitions": [] } ], "ism_template": [ { "index_patterns": [ "flog-*" ], "priority": 100, } ] } } Р’ данной политике hot–индексы хранятся 30 дней СЃ репликой 1 Рё переходят РІ warm.В warm–индексы хранятся 60 дней СЃ репликой 0 Рё переходят РІ delete. delete–индексы удаляются через 90 дней. Просмотр состояния сервисов мониторинга Платформы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Просмотр состояния контейнеров OpenSearch (выполняется РЅР° управляющих узлах): ``docker ps –f name=opensearch`` Просмотр состояния контейнера Prometheus (выполняется РЅР° управляющих узлах): ``docker ps –f name=prometheus`` Просмотр состояния Kibana (выполняется РЅР° управляющих узлах): ``docker ps –f name=kibana`` Просмотр состояния fluentd (РЅР° любом сервере): ``docker ps | grep fluentd`` Настройка глубины хранения метрик РІ Prometheus ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Рто конфигурируемая опция. Чтобы изменить параметры глубины хранения, внесите изменения РІ globals.yml соответствующего региона РІ параметр ``prometheus_cmdline_extras``, например: ``prometheus_cmdline_extras: "--storage.tsdb.retention.time=60d --storage.tsdb.retention.size=500GB"`` Рё запустите пайплайн РІ gitlab: ``https://<gitlab_url>/project_k/deployments/<REGION>/-/pipelines``\ в†’ Run Pipeline СЃ параметрами: :: KOLLA_ANSIBLE_DEPLOY_ACTION – deploy KOLLA_ARGS – -t prometheus Файлы журналов компонентов Платформы ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Р’ таблице 1 представлен СЃРїРёСЃРѕРє служб подсистем Рё соответствующие РёРј лог-файлы. Таблица 1 — CРїРёСЃРѕРє служб подсистем Рё соответствующие РёРј лог-файлы .. list-table:: :header-rows: 1 * - Служба - Расположение файла - РўРёРї узла * - **Nova** - - * - nova-api - /var/log/kolla/nova/nova-api.log - Управляющий узел * - nova-manage - /var/log/kolla/nova/nova-manage.log - Управляющий узел * - placement - /var/log/kolla/nova/placement-api.log |br| /var/log/kolla/nova/placement-api-access.log - Управляющий узел * - nova-conductor - /var/log/kolla/nova/nova-conductor.log - Управляющий узел * - nova-scheduler - /var/log/kolla/nova/nova-scheduler.log - Управляющий узел * - nova-consoleauth - /var/log/kolla/nova/nova-consoleauth.log - Управляющий узел * - nova-novncproxy - /var/log/kolla/nova/nova-novncproxy.log - Управляющий узел * - nova-compute - /var/log/kolla/nova/nova-compute.log - Вычислительный узел * - Libvirt - /var/log/kolla/libvirt/libvirtd.log - Вычислительный узел * - **Cinder** - - * - cinder-api - /var/log/kolla/cinder/cinder-api.log |br| /var/log/kolla/cinder/cinder-api-access.log - Управляющий узел * - cinder-manage - /var/log/kolla/cinder/cinder-manage.log - Управляющий узел * - cinder-scheduler - /var/log/kolla/cinder/cinder-scheduler.log - Управляющий узел * - cinder-volume - /var/log/kolla/cinder/cinder-volume.log - Управляющий узел * - cinder-wsgi - /var/log/kolla/cinder/cinder-wsgi.log - Управляющий узел * - **Glance** - - * - glance-api - /var/log/kolla/glance/glance-api.log - Управляющий узел * - **Keystone** - - * - keystone - /var/log/kolla/keystone/\* - Управляющий узел * - **Neutron** - - * - neutron-server - /var/log/kolla/neutron/neutron-server.log - Управляющий узел * - neutron-openvswitch-agent - /var/log/kolla/neutron/neutron-openvswitch-agent.log - Сетевой узел * - neutron-dhcp-agent - /var/log/kolla/neutron/neutron-dhcp-agent.log - Сетевой узел * - neutron-l3-agent - /var/log/kolla/neutron/neutron-l3-agent.log - Сетевой узел * - neutron-metadata-agent - /var/log/kolla/neutron/neutron-metadata-agent.log - Сетевой узел * - neutron-metering-agent - /var/log/kolla/neutron/neutron-metering-agent.log - Сетевой узел * - OpenvSwitch - Сетевой узел Вычислительный узел - * - Openvswitch DB - /var/log/kolla/openvswitch/ovsdb-server.log - Сетевой узел * - neutron-openvswitch-agent - /var/log/kolla/neutron/neutron- openvswitch -agent.log - Сетевой узел Вычислительный узел * - **Horizon** - - * - horizon - /var/log/kolla/horizon/horizon.log |br| /var/log/kolla/horizon/horizon-access.log - Управляющий узел * - **Heat** - - * - heat-api - /var/log/kolla/heat/heat-api.log |br| /var/log/kolla/heat/heat-api-cfn.log |br| heat-engine /var/log/kolla/heat/heat-engine.log - Управляющий узел * - **Rabbitmq** - - * - rabbitmq - /var/log/kolla/rabbitmq/\* - Управляющий узел * - **Mariadb** - - * - mariadb - /var/log/kolla/mariadb/mariadb.log - Управляющий узел * - **Octavia** - - * - octavia-api - /var/log/kolla/octavia/octavia-api.log - Управляющий узел * - octavia-housekeeping - /var/log/kolla/octavia/octavia-housekeeping.log - Управляющий узел * - octavia-worker - /var/log/kolla/octavia/octavia-worker.log - Сетевой узел * - octavia-health-manager - /var/log/kolla/octavia/octavia-health-manager.log - Сетевой узел * - **Opensearch** - - * - opensearch - /var/log/kolla/opensearch/kolla\_logging.log - Управляющий узел * - opensearch-dashoards - /var/log/kolla/opensearch/opensearch-dashboards.log - Управляющий узел Логирование ~~~~~~~~~~~ Лог событий аудита ^^^^^^^^^^^^^^^^^^ РќР° Портале администратора можно отслеживать РІСЃРµ события, которые произошли РІ системе OpenStack, РЅР° вкладке "Лог событий аудита". Для этого нужно перейти РІ Логирование в†’ CADF-события. События можно фильтровать РїРѕ различным параметрам, например, РїРѕ типу (Event type), результату (Outcome) Рё РґСЂ., Р° также комбинировать любые требуемые фильтры. .. figure:: Media/audit.png :alt: audit :figclass: bg-warning :target: ../_images/audit.png Р РёСЃСѓРЅРѕРє 58 — Фильтры событий аудита Настройка дополнительного приемника журналов KeyStack РІ формате syslog ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для вывода логов РІ удаленный сервис системного журнала (syslog) используется `fluent-plugin-remote_syslog <https://github.com/fluent-plugins-nursery/fluent-plugin-remote_syslog>`__ — плагин `Fluentd <http://fluentd.org>`__. РџСЂРё работе СЃ данным плагином необходимо выполнить следующие действия: 1. Р’ репозитории региона `https://<gitlab_url>/project_k/deployments/<region_name>/config` создать файл ``fluentd/output/fluent-plugin-remote_syslog.conf``. 2. Файл будет иметь следующее содержание (РїСЂРё этом нужно заменить значения РЅР° СЃРІРѕРё): :: <match **> @type remote_syslog host <remote_syslog_IP_address> port 514 protocol tcp </match> - Где (заменить значения РЅР° СЃРІРѕРё): - match \*\* — регулярное выражение соответствия "всем" логам; - host `<remote_syslog_IP_address>` — ip-адрес (fqdn) сервиса syslog; - port 514 — РїРѕСЂС‚ прослушивания сервиса syslog; - protocol tcp — протокол передачи данных. После развертывания kolla-ansible конфигурационный файл (td-agent.conf) контейнера fluentd будет содержать следующие данные: :: # Outputs # Included from conf/output/00-local.conf.j2: # Included from /etc/kolla/config/fluentd/output/fluent-plugin-remote_syslog.conf: <match **> @type remote_syslog host 10.120.120.125 port 514 protocol tcp </match> Пример возможной конфигурации плагина fluent-plugin-remote_syslog СЃ секциями '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' :: <match foo.bar> @type remote_syslog host example.com port 514 severity debug program fluentd hostname ${tag[1]} <buffer tag> </buffer> <format> @type single_value message_key message </format> </match> **Основные конфигурационные параметры** +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | name | type | placeholder support | description | +===================+====================================+=====================+=======================================================+ | hostname | string | support | departure of log | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | host | string | support | syslog target host | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | port | integer (default: ``514``) | | syslog target port | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | host_with_port | string | support | parameter for : style | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | facility | string (default: ``"user"``) | support | syslog facility | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | severity | string (default: ``"notice"``) | support | syslog severity | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | program | string (default: ``"fluentd"``) | support | syslog program name | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | protocol | enum (udp, tcp) (default: ``udp``) | | transfer protocol | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | tls | bool (default: false) | | use TLS (tcp only) | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | ca_file | string | | ca_file path (tls mode only) | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | verify_mode | integer | | SSL verification mode (tls mode only) | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | packet_size | integer (default: ``1024``) | | size limitation for syslog packet | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | timeout | integer | | TCP transfer timeout. if value is 0, wait forever | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | timeout_exception | bool (default: ``false``) | | if value is true, raise exception by transfer timeout | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | keep_alive | bool (default: ``false``) | | use TCP keep alive | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | keep_alive_idle | integer | | set TCP keep alive idle time | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | keep_alive_cnt | integer | | set TCP keep alive probe count | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ | keep_alive_intvl | integer | | set TCP keep alive probe interval | +-------------------+------------------------------------+---------------------+-------------------------------------------------------+ **Конфигурационные параметры для секции buffer** =========================== ======== name default =========================== ======== flush_mode interval flush_interval 5 flush_thread_interval 0.5 flush_thread_burst_interval 0.5 =========================== ======== **Конфигурационные параметры для секции format** ===== ======= name default ===== ======= @type ltsv ===== ======= **License** Copyright (c) 2014-2017 Richard Lee. Copyright (c) 2022 Daijiro Fukuda. See LICENSE for details. Подсистема хранения РєРѕРґР° Рё запуска пайплайнов (Gitlab) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Структура репозиториев РІ gitlab.domain_name ``https://<gitlab_url>`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Р’СЃРµ репозитории хранятся РІ РіСЂСѓРїРїРµ project_k. Kolla ansible — репозиторий, РІ котором хранятся плэйбуки Рё роли ansible РѕС‚ текущего релиза. РќРѕСЃРёС‚ информативный характер Рё РІ жизненном цикле участия РЅРµ принимают. Kolla — репозиторий СЃ исходным РєРѕРґРѕРј для СЃР±РѕСЂРєРё образов docker для компонентов Openstack. РќРѕСЃРёС‚ информативный характер Рё РІ жизненном цикле участия РЅРµ принимает. Keystack — репозиторий, который содержит базовые файлы конфигурации СЃРѕ значениями параметров для сервисов, рекомендуемыми вендором. Dib — репозиторий для СЃР±РѕСЂРєРё образов операционных систем. Ci — репозиторий СЃ базовыми скриптами Рё пайпланами, которые используются для деплойментов окружений. Deployments — РіСЂСѓРїРїР°, которая содержит набор репозиториев для создания Рё управления регионами/инсталляциями Openstack, Р° также общие репозитории для всех площадок — baremetal, bifrost Рё backup. Baremetal — репозиторий для установки Рё базовой настройки операционных систем РЅР° физические сервера, которые планируется добавить РІ инсталляцию. Bifrost — репозиторий, который содержит РєРѕРґ для запуска контейнера bifrost, используемого логикой baremetal. .. _components-deployment: Деплой компонентов ^^^^^^^^^^^^^^^^^^ Для запуска деплоя какого-либо компонента запустите пайплайн РёР· репозитория соответствующего окружения Рё укажите тег нужного компонента Рё лимит РїСЂРё необходимости. Открыть страницу ``https://gitlab.domain_name/project_k/deployments/<REGION>/-/pipelines`` в†’ Run Pipeline. KOLLA_ANSIBLE_DEPLOY_ACTION — выберите "deploy". KOLLA_ARGS — укажите тег компонента, который собираемся деплоить. Например, для Cinder укажите ``-t cinder``, Р° для ограничения набора серверов для обновления — ``--limit <server/role name>``. .. figure:: Media/pipeline.png :alt: pipeline :figclass: bg-warning :target: ../_images/pipeline.png Р РёСЃСѓРЅРѕРє 59 — Запуск пайплайна РёР· репозитория Деплой компонентов opensearch/drs/adminui/prometheus/grafana/ha ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для деплоя данных сервисов нужно убедиться РІ наличии соответствующих переменных РІ REGION.yml соответствующего региона ``https://gitlab.domain_name/project_k/deployments/<REGION>/globals.d/REGION.yml``. Если РІСЃРµ эти переменные существуют Рё имеют значение "yes", то РѕРЅРё Р±СѓРґСѓС‚ установлены РїСЂРё деплое региона. :: enable_grafana: "yes" enable_prometheus: "yes" enable_prometheus_alertmanager: "yes" enable_drs: "yes" enable_adminui: "yes" enable_consul: "yes" enable_opensearch: "no" Если какие-то переменные отсутствовали, или же Сѓ РЅРёС… было выставлено значение "no", то РёС… можно установить отдельно. Для этого добавьте переменную СЃРѕ значением "yes", если переменной РЅРµ было, либо выставите это значение, если было "no" — например, enable_opensearch: "yes". Далее откройте страницу ``https://gitlab.domain_name/project_k/deployments/<REGION>/-/pipelines`` в†’ Run Pipeline. KOLLA_ANSIBLE_DEPLOY_ACTION — выберите "deploy". KOLLA_ARGS — укажите тег компонента, который нужно деплоить. Для OpenSearch нужно указать ``-t opensearch``. Деплой компонентов, связанных СЃ NEUTRON ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Neutron — сетевая служба, бесконтрольный деплой которой приведет Рє нарушению сетевой доступности облака, поэтому выкатка этого компонента выполняется СЃ предварительной подготовкой Рё нюансами. Деплой тега neutron РЅР° сервера СЃ ролью control — обязательно указывать лимит РЅР° 1 узел, затем после выполнения пайплайна можно указать лимит РЅР° оставшиеся 2 узла Рё запустить пайплайн. Деплой тега neutron РЅР° сервера СЃ ролью network: 1. Получите СЃРїРёСЃРѕРє L3-агентов Рё РёС… идентификаторы: ``openstack network agent list --agent-type l3`` 2. Выключите L3-агент РЅР° том узле, РЅР° который планируется внести изменения: ``openstack network agent set --disable <l3_agent_uuid>`` 3. Подождите 5 РјРёРЅСѓС‚. 4. Запустите пайлайн СЃ тегом neutron Рё лимитом РЅР° тот сервер, РЅР° котором выключен L3-агент: .. figure:: Media/params.png :alt: params :figclass: bg-warning :target: ../_images/params.png Р РёСЃСѓРЅРѕРє 60 — Параметры запуска пайплайна ``openstack network agent set --enable <l3_agent_uuid>`` 5. Подождите 30 РјРёРЅСѓС‚, отслеживая сообщения РІ логах ``/var/log/kolla/neutron/neutron-l3-agent.log`` (РІ логах дождаться окончания СЃРёРЅРєРѕРІ РЅР° сотни секунд). 6. Повторите итерацию для каждого L3-агента (для каждого узла СЃ ролью network). Двухфакторная аутентификация(2FA) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Р’ KeyStack РІ качестве второго фактора используется пара сертификат/ключ для защиты аккаунта. РќР° первом этапе аутентификации пользователь указывает СЃРІРѕР№ сертификат Рё ключ, РЅР° втором — РёРјСЏ пользователя Рё пароль РѕС‚ своей учетной записи. Включение двухфакторной аутентификации (2FA) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Добавьте параметры РІ globals Рё файлы конфигурации региона: :: kolla_enable_mtls_external: yes 2. Выполните деплой тега haproxy. Подробнее Рѕ запуске деплоя СЃРј. РІ разделе `Деплой компонентов <#components-deployment>`__. Отключение двухфакторной аутентификации (2FA) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Рзмените параметры РІ globals Рё файлы конфигурации региона: :: kolla_enable_mtls_external: no 2. Выполните деплой тега haproxy. Подробнее Рѕ запуске деплоя СЃРј. РІ разделе `Деплой компонентов <#components-deployment>`__. Сертификат клиента для использования c 2FA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Клиентский сертификат должен содержать следущий атрибуты: 1. Клиентский сертификат подписан центром сертификации, выпускающим сертификаты для региона Keystack. 2. Заданы назначения сертификата (OID): - Проверка подлинности сервера (1.3.6.1.5.5.7.3.1) - Проверка подлинности клиента (1.3.6.1.5.5.7.3.2) 3. Задан Subject, совпадающий СЃ основным доменом региона Keystack. Рспользование OpenStack CLI c 2FA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: openstack --os-cacert CA_CERT --os-cert CLIENT_CERT --os-key CLIENT_KEY <commands> - --os-cacert CA_CERT — рутовый сертификат или цепочка - --os-cert CLIENT_CERT — сертификат клиент - --os-key CLIENT_KEY — ключ Рє сертификату клиента Рспользование Horizon Рё Adminui c 2FA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Сохраните созданный сертификат, ключ Рё рутовый сертификат РІ операционную систему Linux Рё выполните команду: :: openssl pkcs12 -export -in CLIENT_CERT -inkey CLIENT_KEY -certfile CA_CERT -out client01.p12 -passout pass:password 2. Рмпортируйте получившийся сертификат РІ формате ``p12`` РІ используемый браузер. Пример для Chrome: <Настройки - Конфиденциальность Рё безопасность - Безопасность - Настроить сертификаты - Сертификаты - Личные>. 3. Перейдите РїРѕ адресу Horizon или AdminUI Рё выберите сертификат для авторизации РІ всплывающем РѕРєРЅРµ. 4. Рспользуйте данные РѕС‚ своего аккаунта (РёРјСЏ пользователя Рё пароль) для авторизации РІ Horizon или AdminUI. .. _openstack-ldap-integration: Рнтеграция OpenStack СЃ LDAP ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Настройка данной интеграции состоит РёР· нескольких частей: 1. | Создайте домен. Для этого РїСЂРё помощи OpenStack CLI выполните команду создания домена: | ``openstack domain create ldap``, РіРґРµ ldap — это РёРјСЏ добавляемого домена (РѕРЅРѕ должно быть указано также РІ globals Рё участвовать РІ имени файла конфигурации для Keystone). 2. Добавьте параметры РІ globals Рё файлы конфигурации: - globals.yml соответствующего региона (РІ интерфейсе Horizon РІ выпадающем СЃРїРёСЃРєРµ домены Р±СѓРґСѓС‚ отображаться РІ той последовательности, РІ которой были указаны. Р’ данном случае первым будет default, затем — ldap): :: keystone_ldap_url: "ldaps://LDAP_SERVER_NAME:LDAP_PORT"​ horizon_keystone_multidomain: "True" horizon_keystone_domain_choices: Default: default Ldap: ldap - keystone.ldap.conf соответствующего региона ``https://<gtilab_url>/project_k/deployments/<regionname>/config/keystone/domains/keystone.ldap.conf`` (значения параметров, начинающихся СЃ YOUR, нужно заполнить СЃРІРѕРёРјРё данными): :: [identity] driver = ldap [ldap] group_allow_create = False group_allow_delete = False group_allow_update = False group_desc_attribute = description group_id_attribute = cn group_member_attribute = member group_name_attribute = cn group_objectclass = group group_filter = "YOUR FILTER" password = "{{ ldap_password }}" query_scope = sub suffix = "YOUR_DN_SUFFIX" user_tree_dn = "YOUR_DN_TREE" url = "{{ keystone_ldap_url }}" user = YOUR_SERVICE_USER_DN user_filter = "YOUR FILTER" user_allow_create = False user_allow_delete = False user_allow_update = False user_enabled_attribute = userAccountControl user_enabled_default = 512 user_enabled_mask = 2 user_id_attribute = cn user_mail_attribute = mail user_name_attribute = sAMAccountName user_objectclass = person user_pass_attribute = userPassword group_tree_dn = "YOUR_GROUP_TREE_DN" page_size = 0​ 3. РџСЂРё интеграции РїРѕ ldaps протоколу, добавьте цепочку РёР· рутовых Рё промежуточных сертификатов РІ файл ``certificates/ca/ca-bundle.crt`` 4. Поместить пароль пользователя ``YOUR_SERVICE_USER_DN`` РІ Vault РІ файл паролей региона ``deployments/<regionname>/passwords_yml`` РІ поле ldap_password. 5. Выполните деплой тегов keystone Рё horizon. Подробнее Рѕ запуске деплоя СЃРј. РІ разделе `Деплой компонентов <#components-deployment>`__. 6. Проверьте, что РІРёРґРЅРѕ пользователей Рё РіСЂСѓРїРїС‹ LDAP РІ Keystack РІ Openstack CLI: :: # openstack user list --domain ldap +------------------------------------------------------------------+----------------+ | ID | Name | +------------------------------------------------------------------+----------------+ | f82090b43940df5f7b8e77fb5e4ddaf04e60cecebc5e94dd63a5e0f53f219fe5 | user1 | +------------------------------------------------------------------+----------------+ # openstack group list --domain ldap +------------------------------------------------------------------+--------+ | ID | Name | +------------------------------------------------------------------+--------+ | ec6d01371e3160ab417c404fa07828a2e4c2d2e3147b762f9cf6f3555a601280 | group1 | +------------------------------------------------------------------+--------+ 7. Создайте проект РІ Openstack CLI или СЃ помощью интерфейса Horizon: :: openstack project create demo --domain ldap 8. Добавьте пользователей или РіСЂСѓРїРїС‹ РІ проект demo Рё дайте РёРј права РІ РЅРёС… РІ Openstack CLI: :: openstack role add --project demo --user user1 --user-domain ldap member openstack role add --project demo --group group1 --user-domain ldap member Рнтеграция Grafana СЃ LDAP ~~~~~~~~~~~~~~~~~~~~~~~~~ Настройка данной интеграции состоит РёР· нескольких частей: 1. РџСЂРё интеграции РїРѕ протоколу LDAPs добавьте цепочку РёР· рутовых Рё промежуточных сертификатов РІ файл ``certificates/ca/ca-bundle.crt``. 2. Поместите пароль пользователя ``YOUR_SERVICE_USER_DN`` РІ Vault РІ файл паролей региона ``deployments/<regionname>/passwords_yml`` РІ поле "ldap_password". 3. Создайте файл ``grafana.yml`` РІ папке ``globals.d`` региона (значения параметров, начинающихся СЃ YOUR, нужно заполнить СЃРІРѕРёРјРё данными): :: grafana_security_ldap_enabled: "yes" grafana_security_ldap_host: "LDAP_SERVER_NAME" grafana_security_ldap_port: "LDAP_PORT" grafana_security_ldap_use_ssl: "true" grafana_security_ldap_start_tls: "false" grafana_security_ldap_ssl_skip_verify: "false" grafana_security_ldap_bind_dn: "YOUR_SERVICE_USER_DN" grafana_security_ldap_bind_password: "{{ ldap_password }}" grafana_security_ldap_search_filter: "YOUR FILTER" grafana_security_ldap_search_base_dns: "YOUR_DN_TREE" 4. Выполните деплой тега grafana. Подробнее Рѕ запуске деплоя СЃРј. РІ разделе `Деплой компонентов <#components-deployment>`__. Рнтеграция OpenSearch СЃ LDAP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Настройка данной интеграции состоит РёР· нескольких частей: 1. РџСЂРё интеграции РїРѕ протоколу LDAPs добавьте цепочку РёР· рутовых Рё промежуточных сертификатов РІ файл ``certificates/ca/ca-bundle.crt``. 2. Поместите пароль пользователя ``YOUR_SERVICE_USER_DN`` РІ Vault РІ файл паролей региона ``deployments/<regionname>/passwords_yml`` РІ поле "ldap_password". 3. Создайте файл ``opensearch.yml`` РІ папке ``globals.d`` региона (значения параметров, начинающихся СЃ YOUR, нужно заполнить СЃРІРѕРёРјРё данными): :: enable_opensearch_ldap: "yes" opensearch_admin_tls: "CN=backend.EXT_VIP_FQDN" opensearch_ldap_hosts: - "LDAP_SERVER_NAME:LDAP_PORT" opensearch_ldap_bind_dn: "YOUR_SERVICE_USER_DN" opensearch_ldap_password: "{{ ldap_password }}" opensearch_ldap_userbase: "YOUR_DN_TREE" opensearch_ldap_rolebase: "YOUR_GROUP_TREE_DN" opensearch_ldap_verify_hostnames: "false" opensearch_ldap_enable_ssl: "true" fluentd_opensearch_password: "{{ ldap_password }}" fluentd_opensearch_user: "YOUR_SERVICE_USER_DN" 4. Создайте новый файл ``config\opensearch\roles_mapping.yml`` СЃ содержимым: :: all_access: backend_roles: - "YOUR_ADMIN_GROUP" readall: backend_roles: - "YOUR_READ_GROUP" 5. Выполните деплой тегов common Рё opensearch. Подробнее Рѕ запуске деплоя СЃРј. РІ разделе `Деплой компонентов <#components-deployment>`__. Подсистема резервного копирования ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Реализовано резервное копирование данных LCM узла Рё баз данных для регионов Openstack. Резервные РєРѕРїРёРё баз данных регионов шифруются алгоритмом AES-256 СЃ использованием PBKDF2 для усиления безопасности ключа. 1. Резервное копирование LCM осуществляется через запуск запланированного задания РІ Gitlab РёР· репозитория: ``https://<gtilab_url>/project_k/Deployments/backup``. .. figure:: Media/copy.png :alt: copy :figclass: bg-warning :target: ../_images/copy.png Р РёСЃСѓРЅРѕРє 61 — Резервное копирование LCM РљСЂРѕРјРµ того, выполнить резервное копирование LCM можно, запустив СЃРєСЂРёРїС‚ ``backupLCM.sh`` (находится РІ директории СЃ инсталлятором). Р’ результате выполнения скрипта ``backupLCM.sh`` РІ директории ``/installer/backup`` создается архив СЃ именем РІ формате ``backupLCM-31-08-2022-1661925161.tar.gz``. Ртот файл требуется скопировать РІ надежное хранилище данных. 2. Резервное копирования баз данных регионов Openstack осуществляется через запуск запланированного задания РёР· соответствующего региону репозитория: https://<gitlab.domain_name> project_k/Deployments//-/pipeline_schedules. .. figure:: Media/copyDb.png :alt: copyDb :figclass: bg-warning :target: ../_images/copyDb.png Р РёСЃСѓРЅРѕРє 62 — Резервное копирование баз данных регионов Openstack Восстановление LCM РёР· резервной РєРѕРїРёРё ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Восстановление осуществляется путем запуска скрипта ``restoreLCM.sh``. Для запуска скрипта восстановления LCM необходимо положить резервную РєРѕРїРёСЋ LCM СЃ именем РІ формате ``backupLCM-31-08-2022-1661925161.tar.gz`` РІ ту же директорию СЂСЏРґРѕРј СЃ РЅРёРј, после чего запустить СЃРєСЂРёРїС‚. Восстановление базы данных регионов Openstack РёР· резервной РєРѕРїРёРё ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Р—Р° помощью РІ восстановлении баз данных регионов Openstack следует обратиться Рє вендору. Подсистема хранения данных Рѕ физических серверах Netbox ------------------------------------------------------- Netbox — компонент РІ составе инсталлятора, размещенный РЅР° LCM-узле. Данный сервис включен РІ базовую последовательность установку продукта. Netbox предоставляет СЃРѕР±РѕР№ веб-интерфейс для хранения Рё внесения информации Рѕ серверах, сетевых интерфейсах Рё РґСЂСѓРіРёС… данных, которые Р±СѓРґСѓС‚ использоваться РїСЂРё автоматизированной установке Рё настройке операционной системы для серверов. Пользовательский веб-интерфейс доступен РїРѕ адресу ``https://netbox.<domain_name>``. .. figure:: Media/netbox_interface.png :alt: netbox_interface :figclass: bg-warning :target: ../_images/netbox_interface.png Р РёСЃСѓРЅРѕРє 63 — Рнтерфейс Netbox Навигация РїРѕ основным разделам веб-интерфейса осуществляется СЃ помощью меню слева. Р’ Netbox всегда можно отследить внесенные изменения (время, автора изменений Рё С‚.Рґ.) РІ разделе **Change Log** (Operations в†’ Logging в†’ Change Log). РљСЂРѕРјРµ того, можно осуществлять операции СЃ целой РіСЂСѓРїРїРѕР№ сущностей, Р° РЅРµ СЃ каждой РїРѕ отдельности. Для этого необходимо выделить выбранные сущности Рё нажать **Edit Selected** РїРѕРґ таблицей СЃ РЅРёРјРё. Другие РєРЅРѕРїРєРё позволяют настроить параметры РїРѕ-РґСЂСѓРіРѕРјСѓ: например, переименовать или удалить. Базовая настройка сервиса ~~~~~~~~~~~~~~~~~~~~~~~~~ Для базовой настройки сервиса достаточно заполнить следующие разделы: Organization, Customization, IPAM, Provisioning Рё Devices. Р’ первую очередь нужно настроить параметры РІ разделах Sites Рё Tenancy. Последовательность создания сущностей для работы СЃ Netbox такая: сайт-РіСЂСѓРїРїР° в†’ регион в†’ сайт. Tenants ^^^^^^^ Чтобы добавить тенанта, откройте разделы РІ следующем РїРѕСЂСЏРґРєРµ: Organization в†’ Tenancy в†’ Tenant. Пример: :: Name,Group,Description itkey,, Site Groups ^^^^^^^^^^^ Чтобы создать сайт-РіСЂСѓРїРїСѓ РІ Netbox, откройте разделы РІ следующем РїРѕСЂСЏРґРєРµ: Organization в†’ Sites в†’ Site Groups. Пример: :: Name,Sites,Description Group1,1, Region ^^^^^^ Добавьте регион РІ Netbox. Откройте Organization в†’ Sites в†’ Regions. Пример: :: Name,Sites,Description BELARUS,1, Site ^^^^ Чтобы определеить сайт, откройте Organization в†’ Sites в†’ Sites. Сайты здесь — основная сущность. Пример: :: Name,Status,Facility,Region,Group,Tenant,Description Site1,Active,,Group1,SK,, Custom Fields ^^^^^^^^^^^^^ Р’ разделе **Custom Fields** можно создавать дополнительные поля Рё задавать набор предопределенных параметров для каждого РёР· РЅРёС…. Пример таких добавочных полей — РґРІР° поля: role Рё state. Дополнительные поля создаются Рё конфигурируются РІ Customization в†’ Customization в†’ Custom Fields. Custom Fields, необходимые для работы Gitlab.domain_name Pipelines: :: Name,Content types,Label,Group name,Type,Required,Description,ID,Default,Search weight,Filter logic,UI visibility,Cloneable,Display weight,Choices,Created,Last updated role,dcim.device,role,,Multiple selection,False,,2,,100,Loose,Read/Write,False,100,"['controller', 'compute', 'network', 'osd', 'mon', 'baremetal']",2023-06-26 11:21,2023-06-26 11:21 state,dcim.device,state,,Selection,False,,1,,100,Loose,Read/Write,False,100,"['free', 'maintenance', 'production', 'ready', 'setup', 'shred']",2023-06-26 09:43,2023-06-26 09:43 Tags ^^^^ Теги — важный элемент РІ разделе **Customization**, поскольку СЃР±РѕСЂ всей информации РїСЂРѕРёСЃС…РѕРґРёС‚ РїРѕ РЅРёРј. РџРѕ тегам ищутся сервера, которые нужно раздеплоить. РџРѕ тегам можно также фильтровать разные сущности, например, девайсы. Теги необходимо создать РІ Customization в†’ Customization в†’ Tags соответственно регионам/деплойментам Сѓ заказчика. IPAM ^^^^ Раздел **IPAM** включает настройки для модулей IPAM Рё содержит РІСЃРµ, что относится Рє сетям. Префикс для сети создается РІ разделе IPAM в†’ Prefixes в†’ Prefixes. Затем нужно выбрать сайт Рё VLAN для префикса. Р’ этом разделе нужно заполнять РІСЃРµ РїРѕ данным заказчика: - VLAN - Prefix Manufacturers ^^^^^^^^^^^^^ Чтобы определить производителей РІ Netbox, откройте Devices в†’ Device Types в†’ Manufacturers Рё заполните там данные, С‚.Рµ. марку сервера. Если марка отсутствует, ее необходимо добавить. Пример: :: ID,Name,Device Types,Inventory Items,Platforms,Description,Slug,Tags 42,Accedian,1,0,0,,accedian, 47,Adam Hall,1,0,0,,adam-hall, 1,APC,19,0,0,,apc, 6,Arista,40,0,0,,arista, 58,Asrock,2,0,0,,asrock, 19,ATEN,2,0,0,,aten, 12,Avocent,8,0,0,,avocent, 33,Backblaze,1,0,0,,backblaze, 15,Brocade,2,0,0,,brocade, 45,Cabeus,2,0,0,,cabeus, 25,Chenbro,1,0,0,,chenbro, 2,Cisco,64,44,0,,cisco, 3,Dell,37,0,0,,dell, 17,Delta,4,0,0,,delta, 14,Dlink,2,0,0,,dlink, 24,EMC,7,0,0,,emc, 35,Extreme,1,0,0,,extreme, 43,Fiberstore,6,0,0,,fiberstore, 59,FlyghtPro,0,0,0,,flyghtpro, 46,Flyht Pro,1,0,0,,flyht-pro, 52,Furukawa,1,0,0,,furukawa, 20,Geist,2,0,0,,geist, 21,Gigabyte,7,0,0,,gigabyte, 60,Graphcore,1,0,0,,graphcore, 28,HGST,4,0,0,,hgst, 4,HP,46,0,0,,hp, 38,Huawei,2,0,0,,huawei, 44,Intel,4,0,0,,intel, 5,Juniper,11,0,0,,juniper, 40,KEMP,1,0,0,,kemp, 41,KINX,1,0,0,,kinx, 56,Lenovo,1,0,0,,lenovo, 53,Lextron,1,0,0,,lextron, 57,Mellanox,1,0,0,,MELLANOX, 49,MikroTik,1,0,0,,mikrotik, 48,NetApp,2,0,0,,netapp, 13,Nokia,1,0,0,,nokia, 29,Noname,27,0,0,,noname, 16,NSFOCUS,1,0,0,,nsfocus, 7,Opengear,2,0,0,,opengear, 22,Oracle,7,0,0,,oracle, 10,Organiser,2,0,0,,organiser, 30,Panduit,2,0,0,,panduit, 32,Patchpanel,1,0,0,,patchpanel, 54,Pure Storage,1,0,0,,pure-storage, 26,QNAP,1,0,0,,qnap, 31,Quicknet,2,0,0,,quicknet, 11,Raritan,5,0,0,,raritan, 36,Rittal,4,0,0,,rittal, 23,Riverbed,2,0,0,,riverbed, 55,SNR,1,0,0,,snr, 9,std_config,0,0,0,,std_config, 37,STS,0,0,0,,sts, 39,Sun,2,0,0,,sun, 8,Supermicro,73,0,0,,supermicro, 34,Synology,1,0,0,,synology, 50,TP-LINK,1,0,0,,tp-link, 27,Tyan,1,0,0,,tyan, 51,Unknown,1,0,0,,unknown, 18,Vertiv,2,0,0,,vertiv, Device Role ^^^^^^^^^^^ Чтобы определить роли устройств, откройте Device Types в†’ Device Roles Рё выберите, что именно нужно установить. Обычно это Server. Пример: :: Name,Devices,VMs,Color,VM Role,Description Access Switch,0,0,#2196f3,False, Cable management,0,0,#111111,False, Console Server,0,0,#009688,False, Core Switch,0,0,#2196f3,False, Customer equipment,0,0,#e91e63,False, DCcore,0,0,#4caf50,False, Disk enclosure,0,0,#3f51b5,False, Network HW,0,0,#4caf50,False, PDU,0,0,#607d8b,False, Patch Panel,0,0,#03a9f4,False, Planned,0,0,#f44336,False, Power,0,0,#ff9800,False, Rack mount boxes,0,0,#795548,False, Rack mounting kit,0,0,#111111,False, Router,0,0,#9c27b0,False, SAN,0,0,#ff9800,False, Server,5,0,#673ab7,False, Server enclosure,1,0,#2196f3,False, Device Type ^^^^^^^^^^^ Нужно определить тип устройств РІ соответствующем разделе. Рто шаблон, СЃ которого создается новый сервер. Ниже приведен пример для блейд-РєРѕСЂР·РёРЅС‹ DELL M1000e. Данный пример будет далее дополняться: :: Device Type,Manufacturer,Part number,Height (U),Full Depth,Instances Dell M1000e,Dell,,10,True,1 M620,Dell,,0,True,4 M830,Dell,,0,True,1 Devices ^^^^^^^ Здесь РІСЃРµ заполняется РїРѕ данным заказчика: - Device - Порты - Бонды - IP Address (rmi) - IP Address (mgmt) - IP Address (vxlan) - IP Address (strg), если требуется Аварийные ситуации. Восстановление данных ----------------------------------------- РџРѕСЂСЏРґРѕРє проверки сервисов РїСЂРё failover ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ РќР° узле, РіРґРµ был произведен failover, выполните команду: ``docker ps -a | grep -v Up`` Вывод команды должен быть либо пустым, либо содержать только пользовательские контейнеры. РћСЃРѕР±РѕРµ внимание обратить РІ случае присутствия контейнеров СЃРѕ статусом **Restarting**. Проверка состояния кластера RabbitMQ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ РќР° управляющем узле, РіРґРµ был произведен failover, выполните команду: ``docker exec -it rabbitmq rabbitmqctl cluster_status`` Р’ выводе команды должно быть три узла кластера. Р’СЃРµ узлы должны быть как РІ СЃРїРёСЃРєРµ nodes.disc, так Рё РІ СЃРїРёСЃРєРµ running_nodes. Пример: :: docker exec -it rabbitmq rabbitmqctl cluster_status warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell) Cluster status of node rabbit@host1 ... [{nodes,[{disc,['rabbit@host1','rabbit@host2', 'rabbit@host3']}]}, {running_nodes,['rabbit@host13','rabbit@host2', 'rabbit@host3']}, {cluster_name,<<"rabbit@host1">>}, {partitions,[]}, {alarms,[{'host3',[]}, {'rabbit@host2',[]}, {'rabbit@host1',[]}]}] Пайплайн РїРѕ зачистке RabbitMQ Рё рестарту сервисов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Пайплайн РїРѕ зачистке RabbitMQ (RMQ) Рё рестарту сервисов можно применять РІ случаях, перечисленных далее (РїРѕ мониторингу или РїСЂРё соответствующих проверках через CLI). РџСЂРё постоянном росте РЅР° протяжении 5 РјРёРЅСѓС‚ следующих метрик: - "Messages ready to be delivered to consumers" - "Messages pending consumer acknowledgement" - "Unroutable messages dropped" - "Unacknowledged messages" РџСЂРё постоянном снижении РЅР° протяжении 5 РјРёРЅСѓС‚ следующих метрик: - "Total queues" - "Total channels" - "Total connections" После применения пайплайна перечисленные выше метрики должны стабилизироваться. Если РІС‹ столкнулись СЃ описанными выше проблемами СЃ RabbitMQ, свяжитесь СЃРѕ службой поддержки. Проверка состояния кластера MariaDB ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Зайдите vault РІ хранилище секретов соответствующего региона Рё РІ passwords_yml найдите "database_password". После этого РЅР° управляющем узле, пережившем failover, выполните: ``mysql -uroot -pPASSWORD -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';"`` РіРґРµ PASSWORD — пароль, прочитанный РёР· Vault. Пример: :: ssh control1 mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';" wsrep_local_state_comment Synced Состояние узла MariaDB должно быть "Synced". РќР° этом же узле необходимо проверить количество активных узлов РІ кластере MariaDB: Пример: :: mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';" wsrep_cluster_size 3 Р’ кластере Wsrep должно быть 3 активных узла. Проверка вспомогательных компонентов мониторинга Рё логирования ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ РќР° узле, пережившем failover, выполните: ``docker ps -a | egrep 'opensearch|prometheus|fulentd|grafana'`` Р’СЃРµ контейнеры должны быть РІ запущенном ("Up") состоянии. Проверьте журналы сервисов РїРѕ пути /var/log/kolla/<service.name>/\*.log. Получить СЃРїРёСЃРѕРє состояний компонентов сервиса nova РІ OpenStack ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``openstack compute service list | grep $(HOSTNAME)`` РіРґРµ $(HOSTNAME) — РёРјСЏ целевого узла, пережившего failover. Вывод должен показать состояние всех компонентов nova РЅР° узле, пережившем failover как "Up". Пример: :: openstack compute service list | grep control1 | 3 | nova-conductor | control1 | internal | enabled | up | 2023-08-08T13:38:00.000000 | | 33 | nova-scheduler | control1 | internal | enabled | up | 2023-08-08T13:38:03.000000 | | 42 | nova-consoleauth | control1 | internal | enabled | up | 2023-08-08T13:37:57.000000 | Получите СЃРїРёСЃРѕРє состояний компонентов сервиса Cinder РІ OpenStack: ``openstack volume service list | grep $(HOSTNAME)`` РіРґРµ $(HOSTNAME) — РёРјСЏ целевого узла. Вывод должен показать состояние всех компонентов Cinder РЅР° узле, пережившем failover как "Up". Пример: :: openstack volume service list | grep control1 | cinder-scheduler | control1 | nova | enabled | up | 2023-08-08T13:38:25.000000 | | cinder-backup | control1 | nova | enabled | up | 2023-08-08T13:38:27.000000 | Проверка журналов компонентов neutron РЅР° предмет актуальных ошибок ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``ls -t /var/log/kolla/neutron/ | egrep -v 'log..' | grep neutron | xargs -l1 -I {} tail -n 200 /var/log/kolla/neutron/{} | grep -i error`` Вывод данной команды должен быть пустым. Далее нужно зайти РїРѕ ssh РЅР° любой узел СЃ Openstack клиентом Рё, используя файл admin-openrc.sh, обратиться Рє API OpenStack, чтобы получить статус компонентов сервиса neutron. Пример: :: openstack network agent list | grep network1 | 02480c02-1827-4007-b31a-08c4cb599826 | Metadata agent | network1 | None | True | UP | neutron-metadata-agent | | 67dd92dc-465e-4c28-a52d-9e76b85f66bb | Open vSwitch agent | network1 | None | True | UP | neutron-openvswitch-agent | | a0411328-04d9-46b3-a0a2-0c4e23b8eb06 | L3 agent | network1 | nova | True | UP | neutron-l3-agent | | bf2b46eb-74a5-40b6-bc40-e0e6fb035dd4 | DHCP agent | network1 | nova | True | UP | neutron-dhcp-agent | Failover РѕРґРЅРѕРіРѕ управляющего узла ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Failover — это процесс переключения РЅР° резервный узел РїСЂРё отказе активного узла. 1. РќР° сервере, пережившем failover, нужно проверить журналы Keystone Рё MariaDB: :: grep -P -ri '(error|trace|\=5\d{2})' /var/log/kolla/keystone/\*.log grep -P -ri '(error|trace|\=5\d{2})' /var/log/kolla/mariadb/\*.log Р’ журналах РЅРµ должно быть записей 5С…С…, Traceback, Error. 4. Если ошибки 5С…С…, Traceback, Error встречаются только РІ Keystone  —  перезапустите контейнеры Keystone: ``docker restart keystone`` РџСЂРё возникновении проблем РІ MariaDB требуется понять Рё устранить причину РІ логах. Failover РґРІСѓС… управляющих узлов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Если управляющие узлы выключались штатно, то нужно запомнить последовательность выключения серверов Рё включить РёС… РІ обратной последовательности СЃ задержкой РІ 5 РјРёРЅСѓС‚. Обычно 5 РјРјРёРЅСѓС‚ достаточно, чтобы узлы galera добавились РІ кластер Рё синхронизировали СЃРІРѕРµ состояние. РџСЂРё этом крайне желательно после загрузки сервера (РІ данном примере — controller1) выполнить проверку статуса MariaDB. Пример: :: ssh controller2 mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';" wsrep_local_state_comment Synced ssh controller3 mysql -uroot -pPassW0rd -s -s --execute="SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';" wsrep_local_state_comment Synced Failover всех управляющих узлов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Восстановите Galera cluster. 2. Откройте страницу ``https://<LCM_URL>/project_k/deployments/<REGION>/-/pipelines`` в†’ Run Pipeline. ``KOLLA_ANSIBLE_DEPLOY_ACTION – mariadb_recovery`` Дождитесь выполнения пайплайна Рё убедитесь, что работа сервисов восстановлена. 2. Перезапустите РІСЃРµ контейнеры, РєСЂРѕРјРµ MariaDB Рё RabbitMQ. 3. Перезапустите контейнеры Openstack РЅР° узлах Compute. Failover вычислительного узла ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ РќР° сервере, пережившем failover, выполните следующие проверки: 1. Проверьте состояние контейнеров nova_compute РЅР° вычислительном узле. Выполните команду РЅР° вычислительном узле: ``docker ps -a | grep -i nova_compute`` Убедитесь, что контейнер nova_compute находится РІ состоянии ``Up``. 2. РќР° вычислительном узле проверьте лог ``/var/log/kolla/nova/nova-compute.log`` РЅР° отсутствие событий ``ERROR`` или ``Traceback``. 3. РџСЂРё РёС… наличии убедитесь, что РЅР° вычислительном узле нет запущенных Р’Рњ. Для этого РЅР° LCM-узле (или любом узле СЃ установленным клиентом OpenStack CLI) выполните команду : ``openstack server list --all --long | grep $(РёРјСЏ вычислительного узла)`` 4. Если команда вернула информацию Рѕ каких-либо виртуальных машинах, тогда следует удалить РёС… РІ контейнере ``nova_libvirt`` РЅР° вычислительном узле. Для этого для каждой Р’Рњ: #. Получите РёРјСЏ Р’Рњ РІ среде libvirt, для этого выполните команду: ``openstack server show ${vmuuid} -c "OS-EXT-SRV-ATTR:instance_name" -f value`` #. Зайдите РЅР° вычислительный узел Рё выполните команду: ``docker exec nova_libvirt virsh undefine ${vm_name}`` 5. Включите вычислительный узел. Для этого РЅР° LCM-узле (или любом узле СЃ установленным клиентом OpenStack CLI) выполните команду: ``openstack compute service set --enable ${РёРјСЏ_вычислительного_узла} nova-compute`` Успешное выполнение приведенного выше сценария зависит РѕС‚ следующих факторов: - Выход вычислительного узла РёР· строя РЅРµ связан СЃ выходом РёР· строя SDS (Ceph). - Образы Р’Рњ, работавших РЅР° этом вычислительном узле, находятся РІ консистентном состоянии. - Образы Р’Рњ, работавших РЅР° этом вычислительном узле, корректно эвакуировались СЃ вычислительного узла. Рекомендации РїРѕ освоению ------------------------ Openstack CLI: https://docs.openstack.org/python-openstackclient/latest/index.html Docker: https://docs.docker.com/engine/reference/commandline/docker/. Рнтеграция СЃ LDAP: https://docs.openstack.org/keystone/pike/admin/identity-integrate-with-ldap.html Термины Рё сокращения -------------------- Термины ~~~~~~~ +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Термин | Определение | +======================================+===============================================================================================================================================================================================================================================================================================================+ | Мониторинг платформы | Программные решения для мониторинга общего состояния Платформы динамической инфраструктуры. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Мониторинг сервисов | Программные решения для мониторинга сервисов IaaS, PaaS, SaaS Платформы динамической инфраструктуры. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Платформа | Платформа (Платформа динамической инфраструктуры) — это автоматизированная система РїРѕ предоставлению сервисов IaaS, PaaS, SaaS. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Платформа автоматизации РРў процессов | Платформа автоматизации, основанная РЅР° РџРџРћ MF Service Manager. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Платформа виртуализации | Программное обеспечение, предоставляемое Рсполнителем. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Платформа контейнеризации | Решение виртуализации, РїСЂРё котором СЏРґСЂРѕ операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо РѕРґРЅРѕРіРѕ. Рти экземпляры (обычно называемые контейнерами или зонами) СЃ точки зрения пользователя полностью идентичны отдельному экземпляру операционной системы. | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Сокращения ~~~~~~~~~~ +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Сокращение | Расшифровка | +===================================+========================================================================================================================+ | AD | Active Directory (Службы каталогов корпорации Microsoft для операционных систем семейства Windows Server) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | API | Application Programming Interface (Рнтерфейс программирования приложений) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | CLI | Command line interface (Рнтерфейс командной строки) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | FQDN | Fully Qualified Domain Name (Полностью определенное доменное РёРјСЏ) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | HTTP | HyperText Transfer Protocol (Протокол передачи гипертекста) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | HTTPS | HyperText Transfer Protocol Secure (Расширение протокола HTTP для поддержки шифрования РІ целях повышения безопасности) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | IaaS | Infrastructure as a Service (Рнфраструктура как сервис) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | SaaS | Software as a service (Программное обеспечение как услуга) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | SLA | Service Level Agreement (Соглашение РѕР± СѓСЂРѕРІРЅРµ предоставления услуги) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | SDS | Software-defined storage (Программно-определяемое хранилище) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | TTL | Time To Live (Время жизни) | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Р’Рњ | Виртуальная машина | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | Р’РЈ | Вычислительный узел | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РР‘ | Рнформационная безопасность | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РљР• | Конфигурационная единица | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РљРЎРџР” | Корпоративная сеть передачи данных | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РћРЎ | Операционная система | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РџР’Р | Подсистема вычислительных ресурсов | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РџРћ | Программное обеспечение | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РџРџР” | Подсистема передачи данных | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РџРџРћ | Прикладное программное обеспечение | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РЎРџРћ | Системное программное обеспечение | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | СУБД | Система управления базами данных | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РЎРҐР” | Система хранения данных | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ЦОД | Центр обработки данных | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | ЧТЗ | Частное техническое задание | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ | РЈР— | Учетная запись | +-----------------------------------+------------------------------------------------------------------------------------------------------------------------+ .. |br| raw:: html <br>