Подготовка серверов для виртуализации графических карт#
Для включения поддержки виртуализации графических карт необходимо установить модуль ядра NVIDIA. Если необходимо включить поддержку виртуализации для графической карты, которая ранее была отсоединена для ее использования в режиме сквозной передачи, нужно дополнительно модифицировать конфигурационный файл GRUB.
Предварительные требования
Для авторизации команд OpenStack должен быть настроен клиент интерфейса командной строки OpenStack, как описано в разделе Подключение к интерфейсу командной строки OpenStack.
Включение поддержки виртуализации графических карт на сервере
На сервере с физической графической картой выполните следующие действия:
Если физическая графическая карта сервера подсоединена.
Добавьте драйвер Nouveau в черный список:
# rmmod nouveau # echo -e "blacklist nouveau\noptions nouveau modeset=0" > /usr/lib/modprobe.d/nouveau.conf # echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/nouveau.conf
Если физическая графическая карта сервера отсоединена.
В файле
/etc/sysconfig/grubнайдите переменнуюGRUB_CMDLINE_LINUX, а затем удалитеpci-stub.ids=<gpu_vid>:<gpu_pid>из ее значения. Например, для графической карты, у которой VID:PID — это10de:1eb8, удалитеpci-stub.ids=10de:1eb8и проверьте получившийся файл:# cat /etc/sysconfig/grub | grep CMDLINE GRUB_CMDLINE_LINUX="crashkernel=auto tcache.enabled=0 quiet iommu=pt rd.driver.blacklist=nouveau nouveau.modeset=0"
Сгенерируйте конфигурационный файл GRUB.
Для системы с BIOS выполните:
# /usr/sbin/grub2-mkconfig -o /etc/grub2.cfgДля системы с UEFI выполните:
# /usr/sbin/grub2-mkconfig -o /etc/grub2-efi.cfg
Перезагрузите сервер, чтобы применить изменения:
# reboot
Установите модуль ядра vGPU KVM из пакета NVIDIA GRID:
# bash NVIDIA-Linux-x86_64-460.73.02-vgpu-kvm.run
Пересоздайте загрузочный образ Linux, выполнив:
# dracut -f
Перезагрузите сервер, чтобы завершить установку модуля ядра:
# reboot
Проверка того, что поддержка виртуальных графических карт включена для физической графической карты
Получите список всех графических карт сервера и их PCI-адреса:
# lspci -D | grep NVIDIA
0000:01:00.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
0000:81:00.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)
0000:01:00.0 и
0000:81:00.0 — это PCI-адреса графических карт.
Проверьте, что поддержка виртуальных графических карт включена для физической графической карты:
ls /sys/bus/pci/devices/0000\:03:00.0/mdev_supported_types
nvidia-222 nvidia-223 nvidia-224 nvidia-225 nvidia-226 nvidia-227 nvidia-228 nvidia-229 nvidia-230 nvidia-231
nvidia-232 nvidia-233 nvidia-234 nvidia-252 nvidia-319 nvidia-320 nvidia-321
Для физической графической карты, для которой включена виртуализация, папка содержит список типов поддерживаемых виртуальных графических карт. Тип виртуальной графической карты — это конфигурация виртуальной графической карты, которая определяет объем виртуальной памяти, максимальное разрешение, максимальное количество графических процессоров и другие параметры.
Проверка того, что на сервере есть ресурсы виртуальных графических карт для выделения
Получите список поставщиков ресурсов вычислительного кластера, чтобы узнать их идентификаторы. Например:
# openstack --insecure resource provider list
+--------------------------------------+-----------------------------------------+------------+--------------------------------------+--------------------------------------+
| uuid | name | generation | root_provider_uuid | parent_provider_uuid |
+--------------------------------------+-----------------------------------------+------------+--------------------------------------+--------------------------------------+
| 359cccf7-9c64-4edc-a35d-f4673e485a04 | node001.vstoragedomain_pci_0000_03_00_0 | 1 | 4936695a-4711-425a-b0e4-fdab5e4688d6 | 4936695a-4711-425a-b0e4-fdab5e4688d6 |
| b8443d1b-b941-4bf5-ab4b-2dc7c64ac7d1 | node001.vstoragedomain_pci_0000_81_00_0 | 1 | 4936695a-4711-425a-b0e4-fdab5e4688d6 | 4936695a-4711-425a-b0e4-fdab5e4688d6 |
| 4936695a-4711-425a-b0e4-fdab5e4688d6 | node001.vstoragedomain | 823 | 4936695a-4711-425a-b0e4-fdab5e4688d6 | None |
+--------------------------------------+-----------------------------------------+------------+--------------------------------------+--------------------------------------+
В этом выводе поставщик ресурсов с идентификатором 4936695a-4711-425a-b0e4-fdab5e4688d6 обладает двумя дочерними поставщиками ресурсов для двух физических графических карт с PCI-адресами 0000:03:00.0 и 0000:81:00.0.
Используйте полученный идентификатор дочернего поставщика ресурсов, чтобы получить его инвентарный список. Например:
# openstack --insecure resource provider inventory list 359cccf7-9c64-4edc-a35d-f4673e485a04
+----------------+------------------+----------+----------+-----------+----------+-------+
| resource_class | allocation_ratio | max_unit | reserved | step_size | min_unit | total |
+----------------+------------------+----------+----------+-----------+----------+-------+
| VGPU | 1.0 | 8 | 0 | 1 | 1 | 8 |
+----------------+------------------+----------+----------+-----------+----------+-------+
Этот дочерний поставщик ресурсов обладает ресурсами виртуальных графических карт, которые могут быть выделены виртуальным машинам.