Windows 10-et kell KVM guestbe telepíteni úgy, hogy a teljesítménye közel azonos legyen a "natív" környezettel.
Az egyszerűség kedvéért a példa legyen gaming. Ha az jól megy akkor más is. :)
Linux hoston QEMU/KVM-ben működik a Windows 10 guest, amire SteamLink csatlakozik LAN-on.
Hardver AMD Ryzen7 nyolc fizikai maggal (16 szállal), 16GB ram és GeForce GTX 1060 6GB
Kérdések:
1. Milyen Linuxot érdemes hostnak használni? Van értelme adott PC-ra optimalizáltan fordított Gentoot használni? Vagy ez csak időpocsékolás és jó egy normál Ubuntu vagy Mint is? Esetleg van direkt erre direkt optimalizált disztribúció? (Proxmoxot nem szeretnék használni)
2. Windows 10 guestnek közvetlen VGA hozzáférést kell biztosítani a megfelelő graf teljesítményhez. Mire kell ügyelni, hogy biztosan PCIe X16-ban működjön a GeForce? Nem megfelelő beállítással a guestben néha csak X1-ben megy, ami rendesen visszafogja a teljesítményt.
3. Normálisan működő audióhoz kell valami extra beállítás? Ehhez kell közvetlen audio hardver hozzáférés a guest számára vagy nem szükséges? Mikrofon működni fog rendesen?
4. Ha nincs GPU az a proci mellett, azaz nem APU, akkor kell egy második VGA kártya is, ha a hoston is szükség van desktopra. A GeForce GTX 1060 oda lett adva a Windows 10 guestnek, igaz? (Illetve még egy harmadik is ha két guest működne párhuztamosan hardveres VGA hozzáféréssel. Bár ehhez nem egyszerű alaplapot találni)
Ez a második (harmadik) VGA lehet egy másik, kisebb teljesítményű és fogyasztású Geforce is? Például Geforce 710 vagy jobb egy kis fogyasztású Radeon?
5. Mennyi cpu magot kell mindenképp fenntartani a host rendszernek? Elég egy CPU mag is, ami valójában a 16 szál miatt csak egy fél fizikai CPU-nak felel meg? Vagy kell egy fizikai cpu-nak megfelelő 2 mag?
6. Optimális esetben milyen teljesítmény várható a Windows 10 guesten? Mennyi % a veszteség ahhoz képest ha natívan fut ugyanazon a PC-n? Feltételezve természetesen, hogy a hoston nem megy semmilyen erőforrásigényes folyamat párhuzamosan és másik guest sem lett elindítva mellette.
7. A jobb teljesítmény érdekében érdemes fizikai partícióra telepíteni a Windows guest rendszert. Ebben az esetben be lehet bootolni dual-bootban natívan is a Windows 10-et, igaz?
8. Power management mennyire működik hatékonyan a guestekben? Desktop PC ahol ez nem annyira fontos, viszont az nem lenne szerencsés ha mindig full órajelen pörögne az összes guest-nek adott cpu mag. A hardveres hozzáférés miatt a Geforce kártyán feltételezem rendben működik a power management.
Hozzászólások
Én is épp ezzel szemezgetek, mert a Dead By Daylight-ban az Easy Anti-Cheat (amit amúgy röhögve kijátszanak) nem hajlandó elindulni, lévén rossz binárist rángat le (konkrátan a Linux-osat) és nyilván nem sikerül elindulnia. 7 Days To Die játsziban is pont ugyan ez az EAC található meg, de ott érdekes mód működik.
Amit még érdemes szem előtt tartani, hogy a másodlagos guest videokártyának is külön kell videokimenet. Én is jobban örülnék, ha meglehetne ezt Xnest-szerűen oldani valahogy.
Próbáltad natívan elindítani a Windows guestet? Ez persze csak akkor lehetséges ha fizikai partícióra lett telepítve. Ha ott a megfelelőt tudod telepíteni, működni fog talán már guest Windowsban is.
Egyébként a játékok teljesítményén észre lehet venni valamit?
"Amit még érdemes szem előtt tartani, hogy a másodlagos guest videokártyának is külön kell videokimenet. Én is jobban örülnék, ha meglehetne ezt Xnest-szerűen oldani valahogy."
Úgy érted valódi monitort vagy (dummy kamumonitort) kell kötni a guest vga kártyára?
Sosem csináltam ilyet, de amennyire a neten nézelődtem a témában a level1tech fórumon vannak jó leírások és segítenek is ha kell. Pl. https://forum.level1techs.com/t/the-vfio-and-gpu-passthrough-beginners-resource/129897
Köszönöm! Hasznos link.
Micsoda oldal! Hasznosnak néz ki, köszönet érte!
> Ha nincs GPU az a proci mellett, azaz nem APU, akkor kell egy második VGA kártya is, ha a hoston is szükség van desktopra. A GeForce GTX 1060 oda lett adva a Windows 10 guestnek, igaz?
igen
> Ez a második (harmadik) VGA lehet egy másik, kisebb teljesítményű és fogyasztású Geforce is? Például Geforce 710 vagy jobb egy kis fogyasztású Radeon?
lehet, de egyszerűbb megoldani ha nem nvidia (pl intel hd, radeon)
> Van értelme adott PC-ra optimalizáltan fordított Gentoot használni?
ez esetben sincs
> Normálisan működő audióhoz kell valami extra beállítás?
dedikált eszközzel a legjobbak a tapasztalataim (gtx mellett átadok egy pcie usb3 kártyát is, és azon lóg egy usb audio eszköz)
> Optimális esetben milyen teljesítmény várható a Windows * guesten?
gpu benchmark 100%
cpu benchmark ~90%
> A jobb teljesítmény érdekében érdemes fizikai partícióra telepíteni a Windows guest rendszert.
miért? qcow2/virtio, szt jónapot
inputot nem kérdezted, de: evdev passthrough
Szvsz a qcow2 botrányosan szar teljesítményű.
Diszken nagyon, ssd-n nem tűnt fel annyira hogy rámérjek
A fizikai partíció Win10-nél azért kell, hogy közvetlenül is be lehessen bootolni ugyanazt a Windows 10-et. Hardver konfiguráció megváltozása miatt ugyan hosszabb a rendszer indulása, de a lehetőség mindenképpen hasznos.
nem ertem miert jo megegy reteget (ext4 fs) belerakni a tortenetbe. mit tud ez amit a lvm/thinlvm nem?
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Távlati célok között szerepel MacOS guest lehetősége, amiatt gondoltam Geforce 710-re, mert azt még támogatja, és keveset fogyaszt. De látom nem lehet két azonos típusú VGA, szóval akkor kelleni fog egy kis fogyasztású Radeon és mindenképpen lesz két VGA egy gyártótól, persze két különböző modell ha AMD a CPU. Intel CPU-nál lehet Nvidia+Radeon+IntelVGA. Ha jól látom az Arch wikiben nem minden PCIe slot felel meg egy alaplapon, így ezzel is szűkül a megfelelő alaplapok választéka.
Szerinted jobb az Intel CPU a célra mint az AMD?
Jelenleg van olyan PC-m Win10-el amire nincs monitor kötve, se billentyűzet. Egy dummy egér azért kellett, hogy remote lássam az egérmutatót. Wireless egér usb vége erre megfelel, nem kell működnie magának az egérnek. Ez így teljesen jól működik. Legjobb remote desktop képminőséget a jó Steam steam adja, notepad.exe trükkel elérhető a teljes desktop. Van sajnos néhány hiányossága. Például az admin jogot kérő ablakkal nem tud mit kezdeni. RDP elmegy még, bár TeamViewer jobb nála. Lokális neten ismeri közvetlen az adatforgalmat a TW.
Ha KVM-ben input így nem megy majd megoldom. De alapvetően remote desktoppal lenne elérve minden, a guest(-ek) és a host is. Monitorra ha nem lenne szükség jól jönne, ha mégis kell dummy vga plug.
bar nem tudom ez milyen gep meg hol van, de ha ennyi vgat kell belerakni a hazba. akkor crypto vilagban van pcie eloszto kartya. ez x1-es, tehat gamingra nem lesz jo, de azert nemkell tole fele, a sima desktop feladat dolgai atmegy x1-en is. (az usb csati nem zavarjon meg, az csak a fizikai csatlakozo, nincs ott semmi usb)
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Vannak ebből a koncepcióból egészen elvadult példányok is: https://www.amazon.com/B250-MINING-EXPERT-Motherboard-Cryptocurrency/dp…
és https://www.amazon.com/Graphics-Extension-Powered-Adapter-Capacitors/dp…
Cryptozás mellett egyéb cuda-s projektekre is jól jöhet. Nálam viszont most a normál gyors desktop mindenképp a kritériumok között szerepel. Ezért írtam a kezdő hozzászólásba a virtualizált gamer pc-t, mint amolyan mércét. Ha ez a funkció jól működik megfelel, de ha csak kompromisszumokkal akkor nem. Még ha nem is igazán játék a cél.
A három VGA értelme az lenne, hogy egyszerre két guest is tudjon működni saját dedikált gpu-val, például egy Win10 és egy macOS és a host-nak is kell még egy. De ennél több párhuzamos guest saját vga-val nem kell.
Nekem hasonló setup van, Unraid két guest-tel (Win10,MacOS Catalina) Geforce 710 illetve AMD RX560 passthrough-val, két monitoron, atom stabil AMD Ryzenen
Na ha ezt sikerül összeraknod, akkor igazán visszajöhetnél ide, és leírhatnád, hogy miből és hogyan. Annyira sok helyen tud ez eltörni, hogy tényleg szeretnék már végre látni valakit, akinek sikerült.
Ha marad rá időm írok egy részletes blogot róla. A hardver összeállításra jó kiinduló pont a korábban linkelt oldalról elérhető konfig gyűjtemény: https://passthroughpo.st/vfio-increments/
AMD-vel nincs tapasztalatom, de nálam legalább 3, de lehet, hogy inkább 4 éve gond nélkül működik hasonló felállás Skylake + GTX + NVMe SSD + LVM + VirtIO + libvirt alapokon, amit először megcsináltam Proxmoxszal, aztán váltottam Archra.
Biztosan nem én vagyok az első és egyetlen, akinél hibátlanul működik, mert nulla KVM tudással vágtam bele és az infókat másoktól szedtem össze. Talán ez a legjobb naprakészen tartott összefoglaló oldal a témában: https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/
Az egyik állandó VM-ben OMV fut standalone KODI-val, mintegy NAS + HTPC kombóként, az kapta PCI passtrough-val az IGD-t és az Intel Audiot, a Windows 10 VM kapta a GTX-et, így a host VGA nélkül maradt. Többeknek volt problémája a hanggal, de én egyik VM-ben sem tapasztaltam rendellenességet, ami külön kezelést igényel volna. Működik az Nvidia GameStream + Moonlight is, habár mostanság csak ritkán van alkalom játékra, de nem maradt parlagon a GTX, március óta éjjel-nappal a folding@home koptatja az erőforrásokat. Hagytam annyi erőforrást szabadon, hogy a 2 "állandó" VM mellett tudjak csinálni még egyet, ha valamit éppen ki akarok próbálni.
Lehet, hogy tényleg sok helyen el tud törni, de nem olyan nagy ördöngösség jól megcsinálni, hozzátéve, hogy hardvert venni tudni kell, ahhoz meg előbb nem árt olvasni és csak utána bevásárolni. :-)
Szabi
Arch-ot jobb választásnak tartod erre a feladatra? Vagy csak kézenfekvő volt mert Arch wiki a legjobb és legrészletesebb ebben a témában?
Ismerőseim beszámolói alapján, akik desktop linuxnak használnak Arch-ot, több hónapos uptime nem jellemző. Pár hetente lefagy néha a rendszerük. Cserébe friss minden és optimalizált. Kicsit bleeding edge. Virtualizációs host-ként, pláne grafika nélkül lehet ez nem jön elő és stabil alap.
Szerinted felesleges a VGA a hostra? Tudatos döntés volt vagy csak nem maradt VGA a hostnak és úgy maradt?
VGA nélküli hostnak mennyi erőforrást hagytál? Mennyi CPU mag (vagy thread), illetve mennyi ram?
Néhány éve KVM tanulás gyanánt döntöttem úgy, hogy csinálok egy otthoni mindenes szervert. Először az ajánlások miatt megcsináltam Proxmoxszal, de előjött egy bosszantó hiba, amit nem tudtam megoldani, ezen felül szerettem volna pontosan megérteni a működésnek azokat a részeit is, amiket a Proxmox elfedett előlem. Ezután váltottam Archra, ami a dokumentációk miatt is adta magát, de egyébként is érdekelt, mint bleeding edge rolling distro, mert korábban valahogy kimaradt az életemből. Pedig nem ebben az évezredben kezdtem az "ipart", otthon volt Debian, FreeBSD, sokáig Gentoo, aztán Ubuntu, a melóban meg RHEL, AIX és Windows. A család mellett persze mások lettek a prioritások, el is kényelmesedtem, így az állandó reszelgetés, hegesztgetés helyett otthoni desktop rendszernek már vagy tizenpár éve megmaradt az Ubuntu. Viszont hobbi projektnek és a KVM tanuláshoz meg abszolút bevált nekem az Arch, soha semmi problémám nem volt vele, de ettől még YMMV.
Nálam nem szükséges a hostnak VGA, inkább felhasználtam az OMV-s VM-ben a KODI-hoz, ami persze futhatna akár a hoston is, és akkor nem is kellene passtrough, de az úgy nem lenne olyan menő, igaz? :-). Másnak lehetnek ettől eltérő igényei. Nálam a Proxmoxból végül Arch lett, a Xpenologyból meg OMV. Kinek a pap, kinek a papné.
Jelen felállásban az i7-6700 8 magjából és a 16 GB RAM-ból 6 mag és 12 GB van a Windows VM-nek kiosztva, 1 mag és 2 GB az OMV+KODI VM-nek, így 1 mag és 2 GB marad a hostnak. Ez azt is jelenti, hogy ha jelenleg szeretnék még egy harmadik VM-et futtatni, akkor valamelyiket addig le kellene állítanom vagy a Windowstól el kellene vennem legalább 1 magot.
Szabi
Alternatív lehetőség: ha Win10-ről akarsz játszani, nem kell feltétlenül virtuális gépbe telepíteni. Lehet egy USB-s külső drive-ra is, ahonnan bebootol. A trükkje annyi, hogy az USB-s drive-ot kell odaadni a KVM virtuális gépnek, egészében, miután feltelepült rá a Win10, utána leállítani a virtuális gépet, és a gépet újraindítva fizikailag is bebootolni róla. Nekem simán ment így, minden hardvert natívan visz, mivel a vasról bootol. Nincs semmilyen trükközés a telepítést kivéve, nem kell 2 GPU, meg PCI passthrough-val és egyebekkel szórakozni.
Ha ez bonyás, akkor keresel egy Windowsos virutális gépet, és ott Rufus-szal írsz ki a kérdéses USB meghajtóra Win10-et Win to Go módban. Ez is ugyanazt eredményezi.
Ezeknek a módszereknek az a hátránya, hogy így Win to Go módban telepítve a nagyobb évszakos frissítések nem fognak felmenni, mert kiírja, hogy ilyen telepítésre nem lehet őket felrakni. De ezt leszámítva teljes értékű Win10 telepítések ezek, épp úgy futnia kell róla a Steamnek, játékoknak, mindennek.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
Itt nem a Win10 hordozásának usb driveos megkönnyítése a cél. Virtualizáció minimális teljesítményveszteséggel. Ennek előnyei, teljesség nélkül pár dolog: több virtualizált rendszer párhuzamosan egy gépen; guest rendszer különböző összeállításainak gyors és kényelmes cserélhetősége; bármilyen probléma adódik egy guest rendszerrel távolról host-on keresztül teljes elérésed van kb kvm csak másként; másik hasonló vfio pc -re gyors guest os deployment; kb felhős desktophoz hasonló előnyök csak egy host pc-n nálad.
Ezek közül több pontot az általad leírt megoldás is tud, de mindent egyben amit egy vfio pc.
Akkor félreértettelek, azt hittem játszani kell. Az sose lesz natív teljesítmény virtuális gépen, főleg ha többet futtatsz egymás mellett és mindenféle felhős meg egyéb guest feauter-öket akarsz. Akkor írd legközelebb ezt.
“A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)
Sajnálom ha félreérthető voltam.
Az itt leírtak és más források alapján, a vfio pc közel natív teljesítményt tud. Természetesen akkor ha egyedüli (kövér) guest és a host rendszeren sem működik erőforrásigényes folyamat. Maga a virtualizáció és teljesítménykritikus gaming nem zárják ki egymást. A Microsoft Xbox One konzolja egy virtualizált megoldást használ. Speciális Windows hoston működik az Xbox360 továbbfejlesztett és AMD64-re portolt OS-e. Illetve működik mellette egy lightos Windows, a játék közben kommunikációra. Sony PS4 konzervatívabb megoldása egy külön ARM alapú boardot használ játék közbeni kommunikációra. Teljesítményben, már amennyire lehet erről beszélni konzoloknál jobb a PS4, de életképes megoldás az Xbox One is.
Vfio PC-n a grafikus kártya közvetlen hozzáférése a kulcs. Desktop virtualizációnál a közvetlen GPU hozzáférés hiánya a teljesítményproblémák legfőbb oka. Természetesen hangkártya és egyéb hardver közvetlen guest hozzáférése is hasznos, de GPU messze a legfontosabb.
https://www.youtube.com/watch?v=h8LdfZJunrs
Két éves videó, elég jó fps-t tudott már akkor, hiába "csak" virtualizáció.
Szóba kerültek a miértek? Ebben cikkben elég jól összeszedte a szerző az elején az okokat:
https://www.erianna.com/amd-ryzen2-pci-passthrough-vfio-libvirt-ubuntu1804-windows10/
Még annyival lehetne kiegészíteni a járványhelyzet miatti állapot tanulságait levonva, hogy egy több gyerekes családban gazdaságosabb megoldás lehet, egy erős családi desktop pc-t fejleszteni virtualizált rendszerekkel, amikre rácsatlakozhatnak a korosabb notebookok vagy akár egy Raspberry Pi + monitor kombó is, mint folyamatosan napra készen tartani, vásárolni gyerekek száma + 2 szülő darab notebookot vagy desktopot.
Használtam sokáig (1-1,5 év), utoljára talán 2 évvel ezelőtt, pusztán csak játékokra. Manapság viszont nem éri meg szerintem (csak játékokra), mert ott a DXVK és mert annyit fejlődött a Steam Proton. Sokszor natív Windows teljesítménnyel egyezőt kapsz már wine alatt is. Persze tudom, hogy nem tökéletes minden játékhoz, az én igényeimet azonban teljesen lefedi.
nincs különösebb jelentősége, szerintem.
Alaplap függő, amelyiknek van rendes PCIex16 és tud normálisan PCI Passtrough-t, azoknál nem lesz gond.
Tudsz szoftveres audio-t emulálni qemu alatt, az működik rendesen, bár profi audio munkát ne akarj csinálni. Ha ez nem jó akkor USB passtrough valami normális usb-s DAC.
90-95%-a a natívnak kb.
Nem feltétlenül, de ha akarsz róla dual boot-olni, akkor mindenképpen azt kell. Viszont, én biztos, hogy másik fizikai drive-ra tenném és nem másik partícióra azonos disk-en.
És igen, ebben az esetben, be tud bootolni a Windows qemu nélkül is.