@arbrspb

Как сделать проброс видеокарты на виртуальную машину?

Имеется сервер с установленным на него ubuntu linux. Суть задачи заключается в том чтобы на него поставить виртуальную машину в которой можно будет пробросить физическую видеокарту nvidia для использования ее в майнинге. На виртуальную машину планируется установить wondows 10. Возможно ли такое реализовать? К серверу имеется доступ удаленный доступ по ssh
  • Вопрос задан
  • 438 просмотров
Пригласить эксперта
Ответы на вопрос 3
@LuchS-lynx
инженер-ПТО
arbrspb,
Имеется сервер с установленным на него ubuntu linux. Суть задачи заключается в том чтобы на него поставить виртуальную машину в которой можно будет пробросить физическую видеокарту nvidia для использования ее в майнинге. На виртуальную машину планируется установить wondows 10. Возможно ли такое реализовать?

1. О главном! За железо.
- К серверу должен быть физический доступ для первоначальной настройки. Все эти конфигурации, включение-выключения и подсоединения к монитору для того что бы видеть воочию.

- Железо должно поддерживать VT-d (сейчас почти у всех есть поддержка этой технологии) и VT-x. (Для АМД AMD-Vi, IOMMU) Обязательно нужно активировать указанные технологии в BIOS'е. Если на этом этапе VT-x включить нельзя, или он не включается вместе с VT-d, то идем менять железо, и меняем его до тех пор, пока опция не будет активирована и в любой ОС программы анализаторы железа не покажут, что технология включена и работает. Можно использовать читы, в виде анализа чужого опыта, т.е. косплея конфиги тех пользователей в сети, которые хвастливо утверждают, еще лучше, показывают что у них все получилось.

- Железо. Правишь Grub, активируя в нем
для процессоров Интел
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
для процессоров АМД
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
Далее, после перезагрузки хоста отрой консоль и выполни как написано в копипасте из соответствующего раздела Wiki:
1) Run the «dmesg | grep ecap» command.

2) On the IOMMU lines, the hexadecimal value after «ecap» indicates whether interrupt remapping is supported. If the last character of this value is an 8, 9, a, b, c, d, e, or an f, interrupt remapping is supported. For example, «ecap 1000» indicates there is no interrupt remapping support. «ecap 10207f» indicates interrupt remapping support, as the last character is an «f».

Interrupt remapping will only be enabled if every IOMMU supports it.

Если здесь тебя поджидает облом, то опять меняем мать, пока не пройдем тест.

2. О не менее главном. О софте.
Если все получилось, то дальше 2 пути, или KVM+QEMU, либо Proxmox (надстройка над Debian Linux + KVM). Т.е. или KVM или KVM. После чего пользуешься гайдами, например:
Ubuntu KVM+QEMU: ubuntovod.ru/instructions/probros-videokarty-v-kvm...
Proxmox: https://habr.com/ru/post/437598/

Об Nvidia и Ошибке 43.
В процессе настройки можно поиметь проблему, широко известную в узких кругах, как Ошибка 43, это драйвер видеокарт Nvidia не дает запустить ВК в ВМ. Лечится путем правки конфигов, с тем что бы скрыть от драйвер, что оборудование проброшено в ВМ.
в Proxmox'е лечится путем внесении доп. параметра в конфигурационный файл ВМ:
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off'

еще лечится прописыванием таких команд:
echo "softdep nouveau pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
echo "softdep nvidia pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf
echo "softdep nvidia* pre: vfio-pci" >> /etc/modprobe.d/nvidia.conf

То же делается и в Ubuntu KVM+QEMU, но hv_vendor_id=willitwork прописывается в libvirt.xml
https://www.reddit.com/r/VFIO/comments/479xnx/gues...

После успешной настройки выглядит это так:
https://www.youtube.com/watch?v=wjlmWHJiEug

ЗЫ.
Тут Nvidia утверждает, что, якобы, в последних вариантов драйверов она больше не будет гадить пользователям с ошибкой 43, но это не точно.
https://habr.com/ru/news/t/550678/

В особо упоротых случаях может потребоваться подмена ROM'а ВК через гипервизор, или даже перепрошивка Биоса Видеокарты. Но в последнее время эти технологии уходят в прошлое.
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Какая-то сомнительная идея - зачем вам прослойка в виде виртуализации? По-моему, как раз обычно рекомендуют линукс в качестве ОС для майнинга.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
nvidia - практически никак. nvidia намеренно противодействует запуску дров винды, если обнаруживает проброс видеокарты. Ну и кроме этого нужно нехилое везение с железом и умение все это настроить.
С AMD можно - сам не делал, но тут есть одна success story
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы