Comments 37
Проблемы могут возникать, разве что с «анти-чит» системами в некоторых случаях.
Однако, уже много лет как пользователи игровых VM научились прятать наличие виртуализации, чтобы обманывать GPU GeForce и драйверы NVidia. Несмотря на то, что теперь в этой функциональности нет столь острой необходимости, отключать ее не советую, именно из-за DRM и «анти-чит» систем.
Надо сначала искать гайды про обычный проброс. Часто он специфичен для конкретной серии GPU и может отличаться. Может быть специфичность для вашего процессора/чипсета. Для полного сокрытия нужно удалить из системы виртуальный видеоадаптер. Многие гайды описывают процесс проброса в качестве «второй видеокарты». Он немного проще. И, работает не хуже в 99% случаев. Но, для полного сокрытия этот вариант не подойдет.
Потом гайды про базовое сокрытие виртуализации от гостевой ОС. Пошаманить с настройками гипервизора и флагами CPU.
Потом гуглить гайды про дополнительные шаги для конкретных анти-чит систем. Тут надо будет шаманить с образами BIOS, OEM идентификаторами, реестром. Надо будет пробросить реальный USB контроллер, удалить устройства ввода-вывода виртуальные, и использовать настоящую клавиатуру/мышь для VM или KVM-переключатель. Отказаться от паравиртуализации (virtio).
Часто эти гайды перемешаны. Например, раньше чтобы пробросить NVidia GPU надо было делать «частичное сокрытие виртуализации» сразу, чтобы обмануть драйвер NVidia. Но, у NVidia проверки не супер строгие, достаточно убрать CPU флаги и сменить OEM идентификатор. Для анти-чит систем этого может оказаться недостаточно.
Универсального и полного гайда я не видел.
Гуглить по «headless GPU passthrough».
Возможно, после обновления, сделать это станет «немного проще».
Я вполне успешно обхожусь IPMI/VGA видеоадаптером встроенным в серверную материнскую плату.
У меня на интеловской серверной материнке встроенное видео наотрез отказывается работать в паре с любой внешней видеокартой, приходится ее в биосе отключать
Вообще это характерная особенность Intel-овской встроенной графики. Она по-умолчанию при инициализации VGA BIOS дискретной графики деинициализируется/выключается.
Все это не требует графической среды.
Ура! Наконец-то это свершилось!!!
Очень странная новость. Фактически, такая возможность была всегда, но внутри драйвера был фрагмент кода, делающий что-то вроде:
if gpuFamily!=GPU_FAMILY_TESLA && gpuFamily!=GPU_FAMILY_QUADDRO
Abort();
И были возможности это обойти, и тогда виртуализация с пробросом девайса целиком работала.
Сделано это было с той же целью, что и запрет на установку GeForce в датацентрах, и программная порезка 64 битной производительности. А именно, из-за жадности, чтобы бизнес клиенты не позволяли себе решать свои задачи дешево. Почему приступ жадности временно прошёл, — очень странно.
Возможно существует вероятность, что это произошло случайно, как с отключением запрета на майнинг.
А если эту функцию отключить в новом драйвере, то люди будут пользоваться старым драйвером и не обновлять его, что может принести с собой репутационные потери, особенно если там останется неисправленная критическая уязвимость. Поэтому пришлось это легализовать.
… решать свои задачи дешево. Почему приступ жадности временно прошёл, — очень странно.Вы видели цены на видеокарты?
Видел. И датацентровое решение для ИИ собирал. И цены на карты для бизнеса, которые без вопросов встанут в энтерпрайз железо, тоже видел, вот, например, https://www.ebay.com/itm/nVIDIA-Tesla-V100-GPU-Accelerator-Card-16GB-PCI-e-Machine-Learning-AI-HPC-Volta/153223723116?hash=item23acd8786c:g:L0QAAOSwVx5byKpm
Ждем когда будет наоборот: проброс GPU из windows в WSL, тогда с CUDA будет одни удобства.
docs.nvidia.com/cuda/wsl-user-guide/index.html
Знаю, что VirtualBox поддерживает vt-d в Linux версии, ожидал обещанного появления в Windows версии, но похоже разработчики забыли реализовать.
Это работает благодаря огромному количеству патчей которые есть в ядре специально под проброс конкретных видеокарт, которые пишут энтузиасты.
Шансы получить такие патчи в проприетарных ОС/гипервизорах близки к нулю.
Про что-то такое думал я, когда хотел древнее железо в ВМ запустить используя вот это:
eshop.sintech.cn/pcie-express-x1-to-dual-pci-riser-extender-card-usb30-cable-p-977.html
Если я правильно понял, как оно работает, то, чисто теоретически, пробросить можно целиком PCI — PCI-E мост, и, тогда все устройства на PCI шине будут «работать» внутри VM. Наверно, стоит пробовать qemu/kvm.
Все это только в теории.
If you want to enable multiple virtual machines to have direct access to a single GPU or want the GPU to be able to assign virtual functions to multiple virtual machines, you will need to use NVIDIA Tesla, Quadro, or RTX enterprise GPUs
Про отсутствие UEFI, — это проблема. У меня один из пробрасываемых GPU имеет подобную проблему. К сожалению, под Windows 10 версии 19** и выше у меня запустить его не получилось. Что-то поломали в Windows при загрузке в BIOS режиме. В OVMF (UEFI BIOS для QEMU) нет поддержки CSM коробки, которая нужна, чтобы старые видеокарты работали.
Я пока использую старый адаптер (у меня 2 дискретные графики + 1 встроенная) для проброса в Linux-VM но, планирую менять при первой возможности.
Ну, еще в Windows 8.1 оно вполне успешно работает без UEFI и официальной поддержки.
Более 7 лет пользуем Proxmox VE в кач-ве гипервизора.
Опенсурс, удобно (веб-управление), надежно (zfs — аппаратный raid не требуется), кластеризация из коробки (ceph, glusterfs).
Автобэкапы по расписанию в комплекте (сжатие zstd). Можно прикрутить Proxmox Backup Server с инкрементными бэкапами.
Проброс pci(e)-устройств делается в вебке 2-3 кликами мыши. При поддержке вашим железом этого дела, ес-но (intel vt-d или amd iommu).
Кому интересно, вот forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense-%D0%B8-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5-%D0%B2%D1%81%D0%B5
Зы. Также пользуем Proxmox Mail Gateway как почтовый шлюз. Недавно зарелизился 6.4
ну не в пару кликов все же осуществляется проброс, т.к. сам гипервизор нужно настроить через консоль, организовав правку конфигурационных файлов и даже grub, как для включения поддержки iommu, так и для обходп ошибки 43.
Ранее я уже выкладывал статью о пробросе в Proxmox на Хабрахабре
https://m.habr.com/ru/post/437598/
Как это сделать — есть в оф. вики. После этого достаточно нес-ко кликов мышкой в вебке для проброса.
Касаемо решения Нвидиа.
Теперь не нужно больше воевать с nvidia code 43. Как минимум для настольных систем в виртуалках. С серверными может быть иначе.
Проброс GeForce GPU в Windows VM теперь официально поддерживается