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

Создание первоначальных ресурсов в 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 moncloudrc

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

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

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

dctl instance show <deployment-name>

Например:

dctl instance show moncloud

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