Образы ВМ

Предупреждение

При использовании ОС SberLinux Horizon в KeyStack недоступен. Используйте Портал администратора или OpenStack CLI.

Просмотр списка образов

Просмотр образов осуществляется на Портале администратора или с использованием OpenStack CLI.

Для просмотра списка образов на Портале администратора перейдите в раздел Ресурсы > Образы.

Список образов на Портале администратора

Список образов на Портале администратора

Создание образа

Образ можно создать путём загрузки файла или из существующего диска. Для загрузки файла используйте Портал администратора или OpenStack CLI. Для создания образа из существующего диска используйте Портал администратора, а при использовании Ubuntu — также портал самообслуживания Horizon. Загрузка образов в Glance через GitLab и Terraform описана в разделе Загрузка образов в Glance. Поддерживаются следующие форматы: raw, vhd, vhdx, vmdk, vdi, iso, ploop, qcow2, aki, ari и ami.

Создание образа из файла

Для загрузки образа размером более 20GB рекомендуется использовать OpenStack CLI.

Для создания образа выполните следующие действия:

  1. В левом меню Портала перейдите в раздел Ресурсы > Образы.

  2. Нажмите кнопку Загрузить Image.

  3. Заполните поля. Обязательно нужно указать имя образа, тип ОС и выбрать файл для образа. Пример заполнения см. на рисунке ниже.

  4. Нажмите кнопку Создать.

    Создание образа из файла

    Создание образа из файла

Примечание

При использовании Cinder в качестве бэкенда Glance после загрузки нового образа рекомендуется выполнить пробное создание виртуальной машины из этого образа. Эта процедура обеспечивает обновление кэшей системы хранения данных и позволяет избежать ошибок тайм-аута при создании последующих ВМ.

Создание образа из существующего диска

Для создания образа из существующего диска:

  1. В левом меню Портала администратора перейдите в раздел Ресурсы > Диски.

  2. В строке необходимого диска откройте меню действий, нажав кнопку , и выберите Загрузить в образ.

    Действие «Загрузить в образ»

    Действие «Загрузить в образ»

  3. В открывшемся окне укажите параметры:

    • Имя образа — имя создаваемого образа;

    • Формат диска — формат создаваемого образа;

    • Формат контейнера — формат контейнера образа;

    • Публичный — доступность образа всем проектам. Параметр включён по умолчанию.

    Параметры создаваемого образа

    Параметры создаваемого образа

  4. Нажмите кнопку Создать.

  5. Убедитесь, что созданный образ появился в разделе Ресурсы > Образы.

Загрузка образов в Glance

Вы можете загружать образы гостевых ВМ в Glance. Запрос на создание и загрузку образов в Glance передаётся в модуль states через Terraform в виде переменной user_images.

В GitLab перейдите в репозиторий региона project_k / deployments / <имя региона>, откройте файл 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
}

Для загрузки указанных образов в Glance выполните следующие действия:

  1. Откройте веб-интерфейс GitLab.

  2. Перейдите в репозиторий региона project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  4. Оставьте ветку по умолчанию, соответствующую установленному релизу.

  5. Запустите пайплайн, нажав кнопку New pipeline.

  6. Дождитесь завершения задачи setup.

  7. Запустите задачу states на этапе postconfig и дождитесь её успешного завершения.

  8. На Портале администратора перейдите в раздел Ресурсы > Образы и убедитесь, что указанные в tf_states/main.tf образы появились в списке.

Выгрузка образа

Выгрузка образа в файл выполняется в OpenStack CLI следующей командой: openstack image save --file <file-name> <image-id>, где <file-name> — имя локального файла, а <image-id> — ID образа.

Удаление образа

Удалить образ ВМ можно на Портале администратора.

Для удаления образа в Портале администратора выполните следующие действия:

  1. Перейдите в раздел Ресурсы > Образы, выберите образ для удаления и нажмите значок X в столбце Actions.

  2. Проверьте имя и ID образа. Если все правильно, нажмите кнопку Удалить (см. рисунок ниже).

    Удаление образа

    Удаление образа

Включение множества очередей (multiqueue) в Unix-подобных операционных системах

KeyStack поддерживает множества очередей (multiqueue) у образа виртуальной машины (ВМ) и отдельной ВМ для операционных систем семейства Linux.

Ограничения

Функция множества очередей virtio-net обеспечивает повышение производительности, но имеет некоторые ограничения:

  1. ОС ВМ ограничена ~ 200 векторами MSI. Для каждой очереди сетевого адаптера требуется вектор MSI, а также любое устройство virtio или назначенное устройство PCI. Определение экземпляра с несколькими сетевыми адаптерами virtio и виртуальными ЦП может привести к превышению лимита гостевого MSI.

  2. Множества очередей хорошо работают для входящего трафика, но иногда могут вызвать снижение производительности для исходящего трафика.

  3. Включение множества очередей увеличивает общую пропускную способность сети, но одновременно увеличивает потребление ресурсов CPU.

  4. Если функция множества очередей была включена на хосте, но не была включена администратором в ОС ВМ, векторы MSI будут использоваться впустую.

  5. Количество очередей автоматически устанавливается равным количеству виртуальных ЦП. Чем больше количество ЦП, тем выше пропускная способность сети.

Примечание

Для некоторых образов операционных систем, например CentOS6, недостаточно включить множества очередей только на уровне образа в конфигурации QEMU. Администратору ОС необходимо вручную включить функциональность с помощью ethtool на самой ВМ.

Включение множества очередей для новых ВМ из образа

Вариант включает множества очередей на уровне образа и будет работать для всех ВМ, созданных на базе этого образа после выполнения инструкции.

  1. Создайте образ ВМ.

  2. Добавьте в метаданные образа свойство hw_vif_multiqueue_enabled=true одним из способов:

    1. Перейдите в раздел Ресурсы > Образы.

    2. В строке нужного образа откройте меню действий, нажав кнопку , и выберите Обновить метаданные образа.

    3. Нажмите кнопку +.

    4. В добавленной строке укажите:

      • в поле Ключhw_vif_multiqueue_enabled;

      • в поле Значениеtrue.

    5. Нажмите кнопку Применить.

    6. Повторно откройте окно обновления метаданных и убедитесь, что свойство отображается в списке.

Проверка количества очередей

  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 — сетевой интерфейс, для которого нужно проверить подключение множества очередей.

  3. Посмотрите текущее количество очередей, введя команду:

    # 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
    

Установка нужного количества очередей для ВМ

Количество очередей не может быть больше количества виртуальных ЦП.

  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