Сопровождение облака и управление ресурсами

Создание первоначальных ресурсов в OpenStack

Интерфейс dctui позволяет создать первоначальные ресурсы в OpenStack:

  1. Ключ SSH undercloud_key для пользователя admin

  2. Группу безопасности ssh_access с разрешением на доступ по SSH и ICMP

  3. Набор публичных флейворов

  4. Образы виртуальных машин

  5. Публичная сеть для назначения плавающих IP-адресов

  6. Приватная сеть для создания виртуальных машин в проекте admin

Для создания ресурсов в OpenStack необходимо зайти во вкладку Prepare cloud в меню развёртывания.

┌────────────────────────────────────── Prepare Cloud Environemnt ───────────────────────────────────────┐
│========================================================================================================│
│Public Flavor Parameters                                                                                █
│========================================================================================================░
│Maximal cpus or memory to be used for public flavor                                                     ░
│MaxMultiplier 8                                                                                         ░
│                                                                                                        ░
│Disk suffix for flavor name                                                                             ░
│DiskSfx       disk                                                                                      ░
│                                                                                                        ░
│========================================================================================================░
│Public Images Parameters                                                                                ░
│========================================================================================================░
│Comma separated list of images or image directories                                                     ░
│Images                                                                                                  ░
│                                                                                                        ░
│========================================================================================================░
│Public Network Parameters                                                                               ░
│========================================================================================================░
│VLAN ID for users public network                                                                        ░
│VlanId                                                                                                  ░
│                                                                                                        ░
│CIDR for users public network                                                                           ░
│Cidr                                                                                                    ░
│                                                                                                        ░
│Gateway for users public network                                                                        ░
│Gateway                                                                                                 ░
│                                                                                                        ░
│Start of IP pool for users public network                                                               ░
│PoolStart                                                                                               ░
│                                                                                                        ░
│End of IP pool for users public network                                                                 ░
│PoolEnd                                                                                                 ░
│                                                                                                        ░
│     < Save/Ctrl+U >           < Start/Ctrl+A >                                   < Cancel/Ctrl+C >     │
└────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Заполните все параметры

  • MaxMultiplier - степень двойки для максимального количества CPU и RAM для публичного флейвора.

    Например, 8 - это 2^8 = 256 CPU и 2^8 = 256 GB RAM

    Дополнительно будут созданы флейворы для оверкоммита CPU и RAM.

  • DiskSfx - суффикс для имени флейвора. Используйте hdd или ssd в зависимости от типа дисков на узлах.

  • Images - список образов или каталогов с образами, которые будут загружены в OpenStack.

    Образы необходимо подготовить заранее самостоятельно и сложить в каталог, например, /home/stack/images.

    Далее можно указать в поле /home/stack/images и все образы будут загружены в OpenStack.

  • VlanId - VLAN ID для публичной сети

  • Cidr - CIDR для публичной сети

  • Gateway - шлюз для публичной сети

  • PoolStart - начало пула IP-адресов для публичной сети

  • PoolEnd - конец пула IP-адресов для публичной сети

Мониторинг

После установки облака будет доступна Grafana по адресу облака на порту 3000.

Доступ к API облака

После развёртывания облака на узле развёртывания появляется файл <deployment-name>rc.

Для управления ресурсами через CLI выполните:

source <deployment-name>rc

Например:

source acloudrc

Обратите внимание, что управление ресурсами развёрнутого облака на узле развёртывания также требует предварительного source stackrc с того же узла.

Файл <deployment-name>rc содержит переменные окружения, где указывается адрес сервиса аутентификации Keystone и учётные данные для пользователя admin.

Если вы использовали доменное имя для эндпойнтов во вкладке Endpoint Data, то все публичные эндпойнты будут находиться по настроенному вами доменному адресу или overcloud.localdomain по умолчанию.

Чтобы посмотреть IP-адрес для вашего облака выполните:

source stackrc
openstack port show <deployment-name>_external_<deployment-name>_virtual_ip \
 -c fixed_ips

Например:

source stackrc
openstack port show acloud_external_acloud_virtual_ip -c fixed_ips

Web-доступ к управлению облаком также доступен по указанному адресу.

Флейворы

Для создания флейворов используется команда:

openstack flavor create cpu<cpu_num>.ram<ram_gb>.disk<disk_gb> \
   --vcpus <cpu_num> \
   --ram <ram_mb> \
   --disk <disk_gb>

По умолчанию создаются публичные флейворы. Необходимо явно ставить флаг --private, чтобы можно было управлять доступом к флейвору.

Чтобы вместе запустить виртуальную машину с ГПУ или другим PCI устройством, настройте его использование на вычислительном узле в nova.conf и указанный alias используйте для создания флейвора:

openstack flavor create --private \
 gpu-<gpu_alias>-x<gpu_num>.cpu<cpu_num>.ram<ram_gb>.disk<disk_gb> \
 --property pci_passthrough:alias='<gpu_alias>:<gpu_num>'

Чтобы поделить узлы по признаку SSD/HDD или с/без ГПУ - существует механизм trait’ов.

Посмотреть их можно для конкретного узла через Placement API:

openstack resource provider trait list <resource_provider_uuid>

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

openstack trait list --sort-column name

Из интересных существующих trait’ов есть STORAGE_DISK_HDD/STORAGE_DISK_SSD - но они не назначаются узлам автоматически. Для этого используется команда:

openstack resource provider trait set --trait <trait_name> \
 <resource_provider_uuid>

Чтобы использовать свой trait, можно использовать команды:

openstack trait create CUSTOM_HAS_GPU
openstack resource provider trait set --trait CUSTOM_HAS_GPU \
 <resource_provider_with_gpu>

Далее запрещаем флейвору без ГПУ занимать узлы с ГПУ:

openstack flavor set cpu1.ram1.hdd10 --property trait:CUSTOM_HAS_GPU=forbidden

Или наоборот:

openstack flavor set cpu1.ram1.hdd10 --property trait:STORAGE_DISK_HDD=required