Pull to refresh

Comments 28

UFO just landed and posted this here
Производительность карты должна быть около 99% от нормальной.
Поставил Win8 в гостя с пробросом Radeon 7970, работаю с пакетом Adobe (PS, AE, PR). Производительность изумительная. Изначально на машине стояла полноценная винда. Бенчмарки не гонял, но по ощущениям — никакой разницы. Слабое место — диски, которые и в гипервизоре не особо хорошо себя чувствуют. А вот если пробросить раздел с SSD — будет шикарно.
Добавлю, что пробросится не каждая карта, зависит от ее биоса. У меня например Gigabyte 7870 пробросилась, но драйвера корректно не работают. Похожая статья для Archlinux
Могу выложить XML файл конфигурации для libvirt с проброшенной видеокартой.
> Добавлю, что пробросится не каждая карта, зависит от ее биоса.
А можно поподробнее? Пробрасывали 5 радеонов и чуть меньше нвидий, никаких проблем не возникло. Вы сами столкнулись с этой проблемой?
Да, с проблемой столкнулся сам, ОС Archlinux, карта Gigabyte 7870. Если пробрасывать ее без биоса, то не работает вообще. Если подпихнуть ей при пробросе rom файл с биосом другой версии, то работает, но драйвера от AMD не работают. Пока не пробовал перепрошивать карту (лень).
Драйвера не будут корректно работать, если:
1) В системе два радеона и на гипервизоре стоит каталист
2) В системе два радеона и они установлены в запараллеленные порты pci-e
Если кого интересует, некоторые карты nVidia, которые просто так не пробрасываются, можно немного модифицировать, превратив GTX в Tesla/Quadro и модифицированная карта уже пробросится без проблем.
Автор, а почему Вы сделали:
-cpu Opteron_G4,+perfctr_nb,+perfctr_core,+topoext,+nodeid_msr,+lwp,+wdt,+skinit,+ibs,+osvw,+cr8legacy,+extapic,+cmp_legacy,+fxsr_opt,+mmxext,+osxsave,+monitor,+ht,+vme

вместо
-cpu host
Из каких соображений?
Все верно, для проброса всех возможностей процессора в гость достаточно указать
-cpu host

Обозначенный вариант выбран из соображений совместимости при тестировании. Исправил на более предпочтительный.
А нет ещё технологий виртуализации, которые позволяли бы пробрасывать карту туда-сюда между несколькими запущенными гестами, или хотя бы между хостом и гестом?

Хотелось бы иметь одновременно запущенные Windows и Linux дома с возможностью при переключении между ними такого вот переброса…
Так это уже возможно. В гостевой винде необходимо «извлечь» видеоустройство и его можно будет использовать дальше.
Хм, а не расскажете поподробней?
Если речь идет об одной видеокарте, которую предполагается использовать между хостом и гостем или гостями, то теоретически такое переключение возможно.
Для реализации подобного следует обратить внимание на технологию SPICE. Она позволит на хост-машине под управлением Linux эмулировать видеокарту, отключив физическую. После вы сможете пробросить ее в гостя.

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

Далее, если вы захотите вернуть видеокарту в хост-систему или перебросить в другой хост, то действовать вы будете вслепую, поэтому у вас есть следующие пути решения:
— создать демона для прослушки процесса и выполнения операций включения устройства обратно в хост или запуска другого хоста с видеокартой в автоматическом неконтролируемом режиме.
— удаленное администрирование по любому доступному протоколу (например, ssh, http, vnc) хост-машины с другой машины с целью выполнения указанных ранее действий.
Ну так это можно совместить — сделать пару скриптов на хосте и гесте. В первом гест связывается например по ssh с хостом, отключает свою видеокарту и включает на хосте. Во втором — наоборот. Скорее вопрос как практически делать это переключение «на лету» без перезапусков хоста и/или геста. Просто нигде ничего про это не сказано.
VFIO — Virtual Function I/O — как раз для этого и предназначен. Именно поэтому мы и пробрасываем устройство через этот модуль. Поэтому чисто практически каждый решает для себя сам, но необходимо, чтобы гость рапортовал о завершении использования устройства (видеокарты в том числе), а для этого в госте нужно устройство «извлечь». То есть извлекаем либо гипервизором принудительно и передаем управление другому гостю, либо в самом госте завершаем использование, а в другом начинаем.
Вопрос а как из геста «извлечь». Принудительно это слишком уж жёстко. Скажем гест — Win7, хост Linux — и как сделать извлечение из Win7?
С помощью виндового трея, ровно так же, как извлекаете usb устройство. Необходимо заметить, что технология вцелом еще крайне сырая. То ли vfio, то ли поддержка со стороны kvm. У меня запущено чуть более 20 гостей, которые постоянно трудятся с графикой и не только. Извлечение частенько вешает виртуалку наглухо. Бывает не вешает, но я отказался от использования этой фичи. Де факто, для меня это пока абстрактная альфа-версия функционала.
А вот чем с ОС технически отличается «извлекаемое» устройство от «не извлекаемого»? А то я много раз видел, что в виртуалке сетевуху или там жёсткий диск можно «извлечь», а на обычной машине — нельзя, но как-то ни разу не разбирался, почему так.
Ответ на ваш вопрос — virtio драйвер. Я довольно недавно в этой теме, не могу утверждать, но насколько я успел понять в 90 процентах случаев для проброса или эмуляции устройств используется virtio. В тонкости реализации я не вдавался, поэтому пояснить более развернуто не могу. Если коротко — драйвер устройства дает понять ОС, что устройство что-то типа Plug&Play.
А с помощью командной строки извлечь нельзя?
Гуглите. Я так часто делаю ;)
Эээ, есть глупый вопрос.
А монитора в таком случае тоже нужно два? А если он один, то его нужно переключать на вторую видеокарту при включении гостя?
Возможно кто-то задавался вопросом. Пробросить встроенную видео на второй вход монитора.
Видео Intel HD Graphics Haswell способная работать одновременно с дискретной NVidia 550 Ti.
Пока ничего не выходит, возможно у кого есть подобный опыт использования.
Для начала убедитесь, что все необходимые технологии у вас присутствуют в системе. Во вторых, есть большая вероятность, что проброс видеокарт реализован более-менее для nvidia, ati, maxtor, поэтому для начала попробуйте пробросить вторую видеокарту, а не intel. И в третьих, проверьте, на какой видеокарте работает ваша система, т.к. карта для проброса должна быть «отключена».
К сожалению вопрос снят, физически мой процессор (самый недорогой из Хасвелов BX80646G3420) не поддерживает технологию VT-d. Ближайший кто держит стоит почти в три раза дороже, хотя даже меньше по гигагерцам :(. Сейчас начал копать в любом другом направлении, которое даст возможность отказаться от отдельного раздела с виндой навсегда. Проблема в возможности запускать ArcheAge под линуксом. Пока не решена. Если есть идеи, буду очень благодарен.
Попробуйте это wine или откажитесь от использования ПО, которое предназначено для запуска под ОС отличной от Linux, коли используете последнюю.
Wine к сожалению не подходит. Как не крути, а это всего-лиш набор библиотек для работы, а не полноценное окружение. Отказ тоже не приемлем по причинам указанным выше. Поиск продолжается.
Sign up to leave a comment.

Articles