VMmanager

Проброс GPU-устройств

Вы можете настроить прямое подключение (проброс) оборудования с графическим процессором (GPU) к виртуальной машине (ВМ). Это позволит: 

  • использовать производительность GPU на ВМ для задач пользователя (например, машинного обучения и моделирования);
  • запускать на ВМ приложения с высокими требованиями к графике (игровые платформы, системы автоматизированного проектирования, программы для обработки изображений);
  • изолировать ресурсы GPU-устройств — каждое GPU-устройство будет использоваться только определённой ВМ.

Ограничения функции

Проброс GPU поддерживается для устройств с интерфейсом PCI (PCIe). Управлять пробросом GPU может только администратор платформы.

Не поддерживается совместная работа проброса GPU и следующих функций платформы:

  • включение отказоустойчивости в кластере, если ВМ с GPU находится в списке ВМ для восстановления;
  • включение балансировщика в кластере;
  • эвакуация ВМ с GPU в режиме обслуживания узла кластера; 

    Чтобы перевести узел, на котором есть ВМ с GPU, в режим обслуживания, вы можете:

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

Миграция ВМ с проброшенными GPU не поддерживается.

Подготовка

Проверка устройств

Перед настройкой проброса убедитесь, что GPU-устройства корректно определяются системой:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Выполните команду:
    lspci | grep -iE "vga|3d" 
  3. Изучите вывод команды. 
    Пример вывода
    00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 0c)
    01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480]
    02:00.0 VGA compatible controller: NVIDIA Corporation TU106 [GeForce RTX 2060 SUPER] (rev a1)
  4. Если вывод команды не содержит сведения об устройстве, убедитесь, что:
    1. Устройство правильно установлено в сервере.
    2. Устройство активно в BIOS (UEFI) сервера.

Настройка IOMMU

IOMMU (Input/Output Memory Management Unit) — технология управления памятью для устройств ввода-вывода. IOMMU обеспечивает виртуализацию физических адресов памяти, используемых устройствами PCI, и изолирует ресурсы между гостевыми операционными системами.

Для корректного проброса устройств включите IOMMU в настройках загрузчика GRUB:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. В файле /etc/default/grub добавьте в конец переменной GRUB_CMDLINE_LINUX_DEFAULT параметры IOMMU. Имена параметров зависят от типа процессора, установленного в сервере:
    • Intel — iommu=on, intel_iommu=on
      Пример переменной
      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=on intel_iommu=on"
    • AMD — iommu=on, amd_iommu=on
      Пример переменной
      GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=on amd_iommu=on"
  3. Обновите конфигурацию GRUB:
    AlmaLinux
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    Astra Linux, Ubuntu
    sudo update-grub
  4. Перезагрузите сервер: 
    sudo reboot

Управление GPU-устройствами

Чтобы получить информацию о GPU-устройствах в кластере, перейдите в Кластеры → выберите кластер → кнопка Параметры → вкладка PCI-устройства.

Интерфейс вкладки

Чтобы управлять GPU-устройствами на узле кластера, перейдите в Узлы → выберите узел → кнопка Параметры → вкладка PCI-устройства. На вкладке отображается информация об устройствах:

  • название;
  • производитель;
  • номер;
  • использование — используется ВМ, занято узлом, свободно; 
    Статус "Занято узлом" означает, что устройство используется операционной системой или относится к IOMMU Group с номером 0.
  • номер IOMMU Group — группы PCI-устройств, объединённых общим адресным пространством памяти IOMMU. Группа устройств создается системой автоматически на основании архитектуры оборудования и конфигурации шин PCI. Проброс устройств группы с номером 0 не поддерживается;
  • проброс GPU — включён или выключен;
  • примечание.

Интерфейс вкладки

Чтобы включить или выключить проброс GPU для устройства, нажмите на переключатель в столбце Проброс GPU. Вы можете включить или выключить проброс GPU одновремено для нескольких устройств. Для этого выделите нужные устройства и нажмите кнопку Включить проброс GPU (Отключить проброс GPU) в верхней части таблицы. 

Если устройство используется ВМ, то отключение проброса не поддерживается.

Если устройство используется узлом, то проброс GPU недоступен.

Чтобы изменить примечание к устройству, нажмите значок Примечание.

Чтобы обновить информацию об устройствах, нажмите кнопку Обновить список устройств.

Настройка GPU на ВМ

Количество GPU-устройств, доступных для проброса на ВМ, задаётся в параметре Проброшенные GPU-устройства конфигурации ВМ. Выбор конкретных GPU для проброса не поддерживается.

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

Пример настройки

Количество проброшенных устройств отображается в таблице ВМ в колонке GPU. По умолчанию эта колонка отключена. Чтобы включить её отображение, в шапке таблицы нажмите значок → отметьте пункт GPU

Продажа ВМ с GPU через BILLmanager

Чтобы настроить продажу услуг виртуального сервера с GPU:

  1. На стороне VMmanager:
    1. Создайте конфигурацию ВМ с параметром Проброшенные GPU-устройства. Подробнее см. в статье Конфигурации виртуальных машин.
    2. Добавьте созданную конфигурацию в фильтры распределения на узлах с GPU:
      1. Перейдите в раздел Узлы → выберите узел → кнопка Параметры → вкладка Настройка распределения VM.
      2. В поле Параметры VM выберите Конфигурации (выбрать).
      3. В поле Значение параметра выберите созданную конфигурацию.
      4. Нажмите кнопку Сохранить.
           
  2. На стороне BILLmanager при создании тарифа в параметре Шаблон виртуального сервера выберите созданную конфигурацию.

Настроить продажу услуг виртуального сервера с GPU определённого типа можно следующим образом. Например, вам нужно настроить тарифы для продажи виртуальных серверов с устройствами RTX 6000 и RTX 4090. Для этого:

  1. Установите устройства RTX 6000 в один из узлов кластера (N1). Создайте конфигурацию RTX 6000 и укажите её в фильтрах распределения на узле N1.
  2. Создайте тариф "Виртуальный сервер с RTX 6000" и укажите для него Шаблон виртуального сервераRTX 6000.
  3. Установите устройства RTX 4090 в другой узел кластера (N2). Создайте конфигурацию RTX 4090 и укажите её в фильтрах распределения на узле N2.
  4. Создайте тариф "Виртуальный сервер с RTX 4090" и укажите для него Шаблон виртуального сервераRTX 4090.

Возможные проблемы

Ошибки инициализации драйвера

После проброса устройств Nvidia в гостевых ОС семейства Linux могут возникать ошибки из-за попыток инициализации драйвера nouveau. Чтобы устранить ошибки, установите в гостевой ОС драйверы Nvidia или добавьте модуль ядра nouveau в "чёрный список". Для добавления модуля в "чёрный список":

  1. Подключитесь к ВМ по SSH.
  2. Добавьте в конфигурационный файл /etc/modprobe.d/blacklist.conf строки: 
    # VMmanager GPU passthrough fix for Nvidia
    blacklist nouveau


Дата последнего обновления статьи: 27.05.2025. Статья подготовлена техническими писателями ISPsystem.