Вы можете настроить прямое подключение (проброс) оборудования с графическим процессором (GPU) к виртуальной машине (ВМ). Это позволит:
- использовать производительность GPU на ВМ для задач пользователя (например, машинного обучения и моделирования);
- запускать на ВМ приложения с высокими требованиями к графике (игровые платформы, системы автоматизированного проектирования, программы для обработки изображений);
- изолировать ресурсы GPU-устройств — каждое GPU-устройство будет использоваться только определённой ВМ.
Ограничения функции
Проброс GPU поддерживается для устройств с интерфейсом PCI (PCIe). Управлять пробросом GPU может только администратор платформы.
Не поддерживается совместная работа проброса GPU и следующих функций платформы:
- включение отказоустойчивости в кластере, если ВМ с GPU находится в списке ВМ для восстановления;
- включение балансировщика в кластере;
- эвакуация ВМ с GPU в режиме обслуживания узла кластера;
Чтобы перевести узел, на котором есть ВМ с GPU, в режим обслуживания, вы можете:
- не выполнять эвакуацию этих ВМ;
- отключить проброс GPU на этих ВМ.
- создание снимков ВМ.
Миграция ВМ с проброшенными GPU не поддерживается.
Подготовка
Проверка устройств
Перед настройкой проброса убедитесь, что GPU-устройства корректно определяются системой:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Выполните команду:
lspci | grep -iE "vga|3d"
- Изучите вывод команды. Пример вывода
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)
- Если вывод команды не содержит сведения об устройстве, убедитесь, что:
- Устройство правильно установлено в сервере.
- Устройство активно в BIOS (UEFI) сервера.
Настройка IOMMU
IOMMU (Input/Output Memory Management Unit) — технология управления памятью для устройств ввода-вывода. IOMMU обеспечивает виртуализацию физических адресов памяти, используемых устройствами PCI, и изолирует ресурсы между гостевыми операционными системами.
Для корректного проброса устройств включите IOMMU в настройках загрузчика GRUB:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- В файле /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"
- Intel —
- Обновите конфигурацию GRUB: AlmaLinux
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Astra Linux, Ubuntusudo update-grub
- Перезагрузите сервер:
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:
- На стороне VMmanager:
- Создайте конфигурацию ВМ с параметром Проброшенные GPU-устройства. Подробнее см. в статье Конфигурации виртуальных машин.
- Добавьте созданную конфигурацию в фильтры распределения на узлах с GPU:
- На стороне BILLmanager при создании тарифа в параметре Шаблон виртуального сервера выберите созданную конфигурацию.
Настроить продажу услуг виртуального сервера с GPU определённого типа можно следующим образом. Например, вам нужно настроить тарифы для продажи виртуальных серверов с устройствами RTX 6000 и RTX 4090. Для этого:
- Установите устройства RTX 6000 в один из узлов кластера (N1). Создайте конфигурацию RTX 6000 и укажите её в фильтрах распределения на узле N1.
- Создайте тариф "Виртуальный сервер с RTX 6000" и укажите для него Шаблон виртуального сервера — RTX 6000.
- Установите устройства RTX 4090 в другой узел кластера (N2). Создайте конфигурацию RTX 4090 и укажите её в фильтрах распределения на узле N2.
- Создайте тариф "Виртуальный сервер с RTX 4090" и укажите для него Шаблон виртуального сервера — RTX 4090.
Возможные проблемы
Ошибки инициализации драйвера
После проброса устройств Nvidia в гостевых ОС семейства Linux могут возникать ошибки из-за попыток инициализации драйвера nouveau. Чтобы устранить ошибки, установите в гостевой ОС драйверы Nvidia или добавьте модуль ядра nouveau в "чёрный список". Для добавления модуля в "чёрный список":
- Подключитесь к ВМ по SSH.
- Добавьте в конфигурационный файл /etc/modprobe.d/blacklist.conf строки:
# VMmanager GPU passthrough fix for Nvidia blacklist nouveau