Как стать автором
Обновить

Есть ли жизнь в виртуалке на ПК?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров12K
Всего голосов 11: ↑10 и ↓1+11
Комментарии34

Комментарии 34

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

А теперь сделайте тест с хотя бы двумя хостами работающими одновременно и поймете что все далеко не так радужно как вы описали.


Вы, наверное, имеете ввиду не хостами а двумя запущенными виртуалками на хосте? Но тут если мы пробрасываем ядра как host, то кол-во виртуалок ограничены только числом наших ядер/потоков, что логично, если мы выделяем виртуалке виртуальные ядра, то, согласен, производительность будет зависеть от общей нагрузки на ПК/ноутбук в конкретный момент времени, еще можно словить ограничения, гипотетические если плохой охлад, по троттлингу

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

Живу на виртуальных машинах с проброшенным GPU с 2012ого года и радуюсь. В игровых VM использую проброс GPU и USB 3.0 контроллера через IOMMU, чтобы напрямую к VM подключать периферию. Раньше еще пробрасывал NVM-E диск, но, NVM-E RAID работает, как оказалось, быстрее одиночного SSD. Даже внутри VM.

Производительность LVM поверх NVME RAID10 внутри Windows под QEMU/KVM
Производительность LVM поверх NVME RAID10 внутри Windows под QEMU/KVM

Это очень удобно. Легко делать бэкапы и снапшоты. Легко экспериментировать. Можно держать несколько операционных систем на разных VM и переключаться. Можно нарезать ресурсы хоста как угодно и держать несколько VM с разными OC одновременно.

С тех пор, как впервые попробовал использовать проброс GPU в 2012ом, больше не представляю, как можно без этого жить)

Подскажите, как реализовать проброс GPU из хоста на Proxmox в ВМ Win10? Чтобы было понятно и просто. Кучу мануалов перечитал, у всех что-то отличается, что-то не работает, не расписаны многие шаги, особенно, если мало знаком с linux

вот инструкция для обычного linux'а, в проксмоксе отличие в том что вместо редактирования xml конфига виртуалке для добавления pci-e устройства в конфиг вм надо мышкой в вм тыкнуть.

Подскажите, как реализовать проброс GPU из хоста на Proxmox в ВМ Win10?

Вот, к примеру, моя статья для ноутбука, но там больше под связку Intel+Nvidia, для ПК точно так же:

Проброс видеокарты в ноутбуке. Laptop GPU Passthrough
Прим. В этой статье рендер Хабра заменил кавычки штрихом "" на кавычки елочкой «», при следовании гайду нужно это иметь ввиду.

На самом деле очень хорошая статья про это на Вики Proxmox'а

https://pve.proxmox.com/wiki/PCI_Passthrough

по сути проблем 2- софтовая и железная, железо должно поддерживать технологии и их нужно активировать в BIOS/UEFI

Затем ставится тот же Proxmox, к примеру, и начинается работа с текстовой консолью, но можно ее упростить если подключиться к такому ПК/ноутбуку по локальной сети с другого ПК/ноутбука через браузер по его IP, а дальше через веб-интерфейс получаем доступ к текстовой консоли и начинаем писать/копировать в нее разные команды, править и сохранять различные текстовые файлы. После чего ставим Windows, подключаем кабель от монитора непосредственно в пробрасываемую видеокарту и ставим ОС как обычно... разница будет только в том что на этапе установки нужно будет подбросить диск с драйверами для виртуального контроллера жестких дисков, а так же после установки установить гостевые дополнения. Если Вы получили картинку на монитор с логотипом Proxmox'а после настройки хоста, то значит все будет работать, если черный экран, то тут или ограничения железа или софт - придется разбираться, из недавнего: по ноутукам я консультировал двоих людей онлайн в разное время, на Леново Легион 5 нам удалось получить картинку, а вот с Асер Нитро 5 - нет. Возможно проблема в том что в последнем случае был установлен сырой Proxmox 8, человек должен был откатиться на 7-ю версию. Эти краткие истории о том, что важен подбор железа, именно рабочего, ЦП, как правило, поддерживают технологии, а вот материнские платы - не факт, в сети есть неполный перечень рабочего железа, возможно Вам поможет:

https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware

https://en.wikipedia.org/wiki/List_of_IOMMU-supporting_hardware

Я должен заметить, что этот список местами сильно устарел, потому, что его перестали поддерживать в тот момент, когда поддержка VT-d/AMD-Vi стала стандартной фичей присутствующей практически во всех новых системах, а, ее отсутствие стало, скорее, багом/проблемой конкретной платформы.

Да, сейчас эта опция идет в большинстве современных чипсетов из коробки, другое дело что у населения много старых конфигураций, которые имеют по сегодняшним меркам достойную производительность. И все еще встречаются платы где эта опция отключена, либо требует, как в случае ноутбуков, доступа к расширенному функционалу UEFI/BIOS

Система виртуализации — гипервизор Proxmox 7.4-16

Обновил ноды в HA Cluster до proxmox-ve 8.0.2 на Debian GNU/Linux 12 (bookworm)
Всегда ставил proxmox-ve на уже развернутый Debian.

Рекомендую ознакомиться с ballooning – динамическое управление памятью на (qemu-kvm -m xxxx -balloon virtio) и proxmox-ve
Dynamic Memory Management
https://pve.proxmox.com/wiki/Dynamic_Memory_Management

Динамическая память не совместима с пробросом видеокарт, которым пользуется автор.

> Всегда ставил proxmox-ve на уже развернутый Debian.

Не надо. Ставьте из офиц. образа и на zfs. Сплошные плюсы. Про жрущую память zfs не слушайте - размер zfs arc cache ОЧ гибко регулируется, если знать ГДЕ )

> Рекомендую ознакомиться с ballooning – динамическое управление памятью на (qemu-kvm -m xxxx -balloon virtio) и proxmox-ve

Memory ballooning - хорошая штука для экономии ОЗУ.

Но не всегда работает - напр, на freebsd и не всегда уместен - напр, ВМ с 1c + sql.

Спасибо за статью, ваши статьи были мне полезны, когда я игрался с пробросом видяхи. Пробросил RX560, пробросил встроенку от Xeon 2286m, также заработало Intel GVT-g. Radeon HD 6770 пробросить не удалось, думаю потому, что для нее нужна была более старая версия qemu/kvm.

Может кому будет полезным - со проброшенной видяхой вы не сможете сделать снимок состояния включенной машины. Но гибернация работала.

Спасибо за отзыв. Рад что мои тексты помогают людям ;)

> Может кому будет полезным - со проброшенной видяхой вы не сможете сделать снимок состояния включенной машины.

Это не так. Pve 7\8 на ZFS - снепшоты создаются прекрасно на вкл. ВМ.

Может у вас lvm + ext4 в кач-ве ФС?

Я в этом разбираюсь мало, только лишь экспериментировал. И нашел вот что по данному вопросу:

https://forum.proxmox.com/threads/snapshot-blocked-by-pci-e-device.53790/

Но это было больше двух лет назад, возможно, что произошли изменения. Буду рад почитать о вашем опыте, если вы например пробросите видеокарту, запустите игру, сделаете снапшот и успешно сможете восстановить состояние.

А как на счет потребления электроэнергии с ProxMox? Я заметил что компьютер расходует больше электроэнергии, походу все фичи по переходу в режим экономия электроэнергии не работают.

Энергии расходуется больше, но тут нужно понимать, что если на нативном ПК в простое всегда есть активность 1-5%, то эту активность надо суммировать по всем активным/запущенным виртуальным машинам. Сам по себе Proxmox, без GUI, много не потребляет, на уровне 1%, возможно меньше, с GUI больше. Если Вы переживаете по поводу может ли 1-2 виртуалки в офисной работе не вызывать рев кулеров в ноутбуке - да, это возможно, при условии хорошей СО и некоторой оптимизации и настройке всех операционных систем. Будут ли они потреблять батарейку больше чем одна система тоже верно, но если Вы думаете что виртуалка это всегда рев и загрузка на 100%, вовсе нет, в госте энергосберегающая политика возможна, хоть и не всегда напрямую, т.к. есть ограничения, порой, достучаться до железки программными методами, если она не проброшена физически по методам указанным в статье, и чаще всего такая экономия достигается исключительно уменьшением нагрузки/оптимизацией кода/типовых рутин.

Проброшенной ВК можно резать TDP через MSI Afterburner, а вот с ЦП только из BIOS/UEFI, либо настраивать конфиги самого Proxmox, т.е. Debian Linux (строго говоря Proxmox не только на Debian и его семейство ставится). Из виртуалки упрявлять электропитанием не получится, актуальные частоты виртуалка тоже не видит, только стоковые, но ядра бустуются, фактически, как надо.

Загуглите по 'cpu governor linux'

Напр., amd ryzen умеет динамически от 500МГц до 5ГГц+ частоты менять при ПРАВИЛЬНОМ режиме cpu governor.

Года 2 использую Hyper-v и gpu partitioning. Раньше ещё работало аппаратное кодирование видео в виртуалке, теперь почему-то не работает. Большие разрешения через RDP не прокачиваются :(

А в сумме уже 9 работаю только в виртуалках.

Я пока не смог запустить эту комбинацию (Hyper-V + GPU PassThrough), вроде делал по инструкциям. DELL OptiPlex 7010. Похоже проблемы с BIOS и отсутствием некоторых настроек (( Сейчас уже точно не вспомню, надо воспроизводить заново.

Переходите на светлую сторону - pve с каждым релизом все краше )

P.s. Надо большие разрешения? Moonlight в помощь (ссылка есть у автора).

Написано добротно, спасибо за статью. Меня тоже затянуло в проброс gpu с 2019 года) Единственное, я не являюсь фанатом Debian подобных ОС, просто в силу того, что на работе почти всегда использовали centos/rhel, а потом ушел в openstack и заменил proxmox на него в моем домашнем сетапе. Сути это не меняет, принципы проброса в kvm везде одинаковые, но с openstack надо ещё чуть повозиться. И как верно заметили здесь, отказаться от преимуществ такой установки с годами становиться только сложнее. Под это дело я даже провел в каждую комнату по 4 витой пары 10Гб, так что keyboard video mouse можно иметь в любом уголке квартиры)

> Единственное, я не являюсь фанатом Debian подобных ОС

А прийдется ) После известных событий с сentos (

А почему придется? Вроде же centos stream живет нормально или я что-то проморгал? Ссылочку скиньте, пожалуйста

CentOS Stream это rolling релиз и испытательный полигон для дистрибутива RedHat, в то время как CentOS был именно стабильным релизом там где была нужна надежность. Иными словами CentOS Stream и CentOS это разные системы с разными подходами. Одновременно были внесены изменения в лицензию и возможность копирования исходников RedHat, что бы усложнить жизнь форкам CentOS, которые со временем перестанут быть идентичными RedHat.

Поэтому если требуется именно стабильный дистрибутив Линукс то как минимум одной альтернативой стало меньше. Возможно подобная история повторится снова, в другом месте и иных декорациях с другими действующими лицами - мы не знаем, но после этого случая многие перестали доверять RedHat и стали еще больше опасаться инициатив коммерческих организаций, в т.ч. Линукс... Взять ту же Ubuntu переходящую полностью на свои snap пакеты, Fedora на flatpack... Все эти инициативы, ограничивающие свободное ПО, в массе своей воспринимаются негативно.

В итоге выбор свободного ПО сокращается, это и имел ввиду автор выше, ИМХО.

А что с лицухами?
Вроде как vGPU требует лицензирования.

Пробуйте.

vgpu ж не работает на карточках 30 и 40, только на старых. Получается сейчас такую систему собирать уже и смысла нет. Или как-то можно? Просто тоже интересно, хочется самостоятельно что-то такое собрать, но кажется нельзя

В чем проблема купить подходящую карту? Если надо ехать, конечно. Если надо "шашечки", то тут не помогу.

Спасибо, немного в теме )

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации