Virtualisointi keskustelu (KVM/QUEMU ym gpu pass-thru)

Tuota, tulipa tässä joutilaaseen mieleen ajatus. Voiko virtuaalikoneita pyörittävän serverin konffia niin että osaisi etäkäynnistää toisen fyysisen koneen ja muodostaa sen kanssa klusterin kun resurssit alkaa tehdä tiukkaa? :hmm:
 
Ei taida olla sellasta näyttistä että sais näytonohjaimen eri DP/HDMI portit Resource Mappattua eri guestille? Eli olis yks näyttis mutta jokaisesta DP portista tulis kuva eri käyttiksestä niin ei tarttis montaa näyttistä olla PCI-E passthru tilassa.
 
[EDIT] Vika löytyi. USB-asennusmedia luonti oli epäonnistunut jotenkin. Latasin ISO:n uudestaan ja tikun uusiksi tälläkertaa Rufuksella dd:n sijaan, niin nyt toimii.

Osaako kukaan kertoa miten asennetaan Nutanixin Community Edition hypervisori?

Tunnukset on luotu Nutanixille, ladannu Installer iso-tiedoston tuolta: https://next.nutanix.com/discussion-forum-14/download-community-edition-38417 ja luonu siittä USB-asennusmedian ja kone boottaa kyllä siltä, mutta loppuu virheilmoitukseen: "FATAL: Couldn't find a hypervisor and an AOS installed, please package phoenix with hypervisor and an AOS.".

Eihän sieltä tietenkään mitään hypervisoria löydy kun sitä juuri yritän asentaa... En ymmärrä...

Esimerkki YT-videossa tulee alla olevan näköinen ruutu, jota itselle ei taas ilmesty ollenkaan:
nutanix_asennus.jpg
 
Viimeksi muokattu:
[EDIT] Vika löytyi. USB-asennusmedia luonti oli epäonnistunut jotenkin. Latasin ISO:n uudestaan ja tikun uusiksi tälläkertaa Rufuksella dd:n sijaan, niin nyt toimii.

Osaako kukaan kertoa miten asennetaan Nutanixin Community Edition hypervisori?

Tunnukset on luotu Nutanixille, ladannu Installer iso-tiedoston tuolta: https://next.nutanix.com/discussion-forum-14/download-community-edition-38417 ja luonu siittä USB-asennusmedian ja kone boottaa kyllä siltä, mutta loppuu virheilmoitukseen: "FATAL: Couldn't find a hypervisor and an AOS installed, please package phoenix with hypervisor and an AOS.".

Eihän sieltä tietenkään mitään hypervisoria löydy kun sitä juuri yritän asentaa... En ymmärrä...

Esimerkki YT-videossa tulee alla olevan näköinen ruutu, jota itselle ei taas ilmesty ollenkaan:
nutanix_asennus.jpg
Nyt ekaa kertaa kuulin Nutanixista niin ei itse tuosta asennuksesta ole kokemusta mutta onko Secure Boot jäänyt päällä? Sekä mikä näyttis ja näyttö kytkettynä? Oon huomannu jos nvidian näyttis ja jokin +144Hz näyttö niin moni distro käynnistyy mustaan ruutuun jos ei ole nvidian closed source ajureita asennettuna. Kuva tulee kuitenkin 60Hz FullHD paneelilla ongelmitta.
 
Nyt ekaa kertaa kuulin Nutanixista niin ei itse tuosta asennuksesta ole kokemusta mutta onko Secure Boot jäänyt päällä? Sekä mikä näyttis ja näyttö kytkettynä? Oon huomannu jos nvidian näyttis ja jokin +144Hz näyttö niin moni distro käynnistyy mustaan ruutuun jos ei ole nvidian closed source ajureita asennettuna. Kuva tulee kuitenkin 60Hz FullHD paneelilla ongelmitta.

Tuossa viestissäni lukee jo, että asia ratkennut.
 
Kuinka helppoa näin vuonna 2024 on asentaa virtualisoitu windows linux hostin alle gpu passthrough -tuella? Joskus luin vähän aiheesta ja jäi käsitys että osa coreista ym. resursseista kannattaisi etukäteen ovarata virtualisoidulle käyttikselle, että hostin ja questin prosessit ei käytä samoja coreja ja cacheja. Saako homman toimimaan niin, että tuo resurssien allokointi tapahtuu vasta kun virtuaalikone käynnistyy, vai olenko ymmärtänyt jo alunperinkin väärin?

Onko näppis ja hiiri järkevää kytkeä kvm:n avulla hostiin tai questiin, vai hoituuko homma läpinäkyvästi looking glassilla tms. systeemillä? Entä jos pyörittää quest-käyttiksessä striimauspalvelinta (sunshine) ja ottaa siihen hostista etäyhteyden moonlightilla?

En ole varma tarvitsenko ko. systeemiä mihinkään, mutta olisi hauska kokeilla kun koneesta löytyy sekä integroitu että erillinen näyttis ja fedora käyttää oletuksena integroitua. Erillistä voisi käyttää virtualisoidun windowsiin pyörittämiseen ja ai-juttuihin fedoran puolella.
 
Kuinka helppoa näin vuonna 2024 on asentaa virtualisoitu windows linux hostin alle gpu passthrough -tuella? Joskus luin vähän aiheesta ja jäi käsitys että osa coreista ym. resursseista kannattaisi etukäteen ovarata virtualisoidulle käyttikselle, että hostin ja questin prosessit ei käytä samoja coreja ja cacheja. Saako homman toimimaan niin, että tuo resurssien allokointi tapahtuu vasta kun virtuaalikone käynnistyy, vai olenko ymmärtänyt jo alunperinkin väärin?

Onko näppis ja hiiri järkevää kytkeä kvm:n avulla hostiin tai questiin, vai hoituuko homma läpinäkyvästi looking glassilla tms. systeemillä? Entä jos pyörittää quest-käyttiksessä striimauspalvelinta (sunshine) ja ottaa siihen hostista etäyhteyden moonlightilla?

En ole varma tarvitsenko ko. systeemiä mihinkään, mutta olisi hauska kokeilla kun koneesta löytyy sekä integroitu että erillinen näyttis ja fedora käyttää oletuksena integroitua. Erillistä voisi käyttää virtualisoidun windowsiin pyörittämiseen ja ai-juttuihin fedoran puolella.

Itellä oli käytössä samantyyppinen systeemi niin, että Proxmoxin päällä oli virtuaaliset Window ja Linux. Windows oli parin pelin pyörittämistä varten ja Linux pääasiallinen käyttis.

Resurssit allokoidaan vasta, kun virtuaalikone käynnistyy. Virtuaalikonetta luodessa määritellään paljonko resursseja sillä on käyttössä, yrimien määrä (sisältää säikeet), muistin määrä, tallennustila, jne.

Siirtyminen Windowssin ja Linuxin välillä näytön suhteen onnistui näytön tuloa vaihtamalla. Näppiksen ja hiiren siirto noiden välillä hoitui Barrier-softalla.

Ei tuollaisen pystyttäminen mitenkään vaikeaa ole.
 
Itellä oli käytössä samantyyppinen systeemi niin, että Proxmoxin päällä oli virtuaaliset Window ja Linux. Windows oli parin pelin pyörittämistä varten ja Linux pääasiallinen käyttis.

Resurssit allokoidaan vasta, kun virtuaalikone käynnistyy. Virtuaalikonetta luodessa määritellään paljonko resursseja sillä on käyttössä, yrimien määrä (sisältää säikeet), muistin määrä, tallennustila, jne.

Siirtyminen Windowssin ja Linuxin välillä näytön suhteen onnistui näytön tuloa vaihtamalla. Näppiksen ja hiiren siirto noiden välillä hoitui Barrier-softalla.

Ei tuollaisen pystyttäminen mitenkään vaikeaa ole.

Ok eli tuo proxmox oli host ja molempia käyttiksiä ajettiin questeina. Onko tuo parempi ratkaisu kuin tehdä pääkäyttiksestä host ja ajaa windowssia questina, valmiimpi paketti kenties?

Tuota sunshine + moonlight -comboa olen jo käyttänyt pelien pelaamiseen pöytäkoneella läppärin kautta, joten sekin on kyllä hyvä systeemi jos se virtualisoinnin kanssa toimii ja miksei toimisi. Vaatii toki jonkin backupin, kuten tuo näytön tulon vaihto.
 
Viimeksi muokattu:
Ok eli tuo proxmox oli host ja molempia käyttiksiä ajettiin questeina, onko tuo parempi ratkaisu kuin tehdä pääkäyttiksestä host ja ajaa windowssia questina?

Tuota sunshine + moonlight -comboa olen jo käyttänyt pelien pelaamiseen pöytäkoneella läppärin kautta, joten sekin on kyllä hyvä systeemi jos se virtualisoinnin kanssa toimii ja miksei toimisi. Vaatii toki jonkin backupin, kuten tuo näytön tulon vaihto.

Ei se mitenkään parempi ratkaisu ole, kun molemmat nojaavat KVM:n, tai no Proxmoxin WebGUI on parempi, kuin esim. Virt-Manager. En nyt enään muista syitä miksi päädyin käyttämään Proxmoxia alustana, enkä suoraan jotain työpöytä Linuxia, jota olisin ajellut pääasiallisena käyttiksenä.
 
Ei se mitenkään parempi ratkaisu ole, kun molemmat nojaavat KVM:n, tai no Proxmoxin WebGUI on parempi, kuin esim. Virt-Manager. En nyt enään muista syitä miksi päädyin käyttämään Proxmoxia alustana, enkä suoraan jotain työpöytä Linuxia, jota olisin ajellut pääasiallisena käyttiksenä.
Ok, täytyy perehtyä asiaan.
 
No niin asentelin tuon nyt kokeeksi fedoraan ja clientiksi myös fedora. Aloituspostaukseen linkitettyä ohjetta (risingprism) mukaillen blacklistasin nvidian kokonaan hostin puolella ja latasin tarvittavat vfio-moduulit. Virtual machine managerin asetuksien kanssa sai vähän tapella, että virtuaalisen näytönohjaimen sai kokonaan disabloitua. Se taas aiheutti sen, että guest fedora ei enää bootannut, kunnes keksin ottaa guestille jaetun näytönohjaimen asetuksista "ROM BAR" täpän pois, mikä se sitten lieneekään. VBios rommia ei nähtävästi tarvitse enää nvidialla dumpata, patchata ja ladata, vaan toimii ainakin minulla ilmankin.

Hyvin toimii guestin puolella system shockin pelaaminen omalla näytöllä, näppiksellä ja hiirellä samalla kun guestilla on fedora normaalisti toiminnassa. Guestin puolella pitää kuitenkin olla xorg käytössä, waylandilla kuva repeilee totaalisesti, jos ajetaan 3d-softaa vähänkään isommassa ikkunassa / resoluutiolla.

Seuraavaksi täytyy kokeilla sunshine -> moonlight striimausta.

E: hyvin toimii sekin, mitä nyt nykii pahasti kun rautaenkoodaus ei suostu toimimaan linuxissa nvidialla.
 
Viimeksi muokattu:
Onko joku kokeillut näytönohjaimen dynaamista bindausta virtuaalikoneen ja hostin välillä, eli siten että jaettua näyttistä pystyisi tarvittaessa käyttämään guestista käsin, mutta myös hostin puolelta ilman että xorgista tms. tarvitsee loggautua välillä ulos?

Kokeilin jonkin ohjeen mukaan 'echo "0000:01:00.0" > /sys/bus/pci/drivers/nvidia/unbind' , mutta homma jumittuu ja menee zombiprosessiksi jos sen tappaa, eikä järjestelmää saa edes bootattua, koska systemd jää odottamaan sen sulkeutumista, tai jotain.

Ongelma on ilmeisesti siinä että laite on käynnissä kun xorg on käynnissä, gdm sammutettuna konsolista käsin toimii, mutta nvtop ei näytä mitään prosessia ja xorg.conffiin on lisätty 'Section "ServerFlags" Option "AutoAddGPU" "off" EndSection'.

Edit: kokeilin myös pakotta xorgin käyttämään vain toista näyttistä, mutta ei näytä olevan vaikutusta prkl. Jo gdm:n käynnistäminen estää nvidia_drm:n poistamisen rmmodilla, sama homma jos ajan manuaalisesti startx:n. Tuohon host gpu:n kohdalle laitoin siis integroidun näyttikseni, ajurina amdgpu ja busid joku pci:1:13:0.

Section "ServerFlags"
# Do not scan for GPUs
Option "AutoAddGPU" "0"
Option "AutoBindGPU" "0"
# It's OK to scan and add peripherals however.
Option "AutoAddDevices" "1"
Option "AutoEnableDevices" "1"
EndSection

# Define the host GPU here, no others
Section "Device"
Identifier "Device0"
# Pick the right driver for your host GPU vendor.
Driver "nvidia"
# And the correct bus ID (lspci -D)
BusID "PCI:1:0:0"
# Do not probe for others.
Option "ProbeAllGpus" "0"
EndSection

Edit2: nyt onnistuu laitteen unbindaus, ilmeisesti kernel parametrit nogpumanager ja/tai nvidia_drm.modeset=0 ja sen jälkeen dracut --force (fedorassa) auttoi.
 
Viimeksi muokattu:
Nyt sain toimimaan tuon gpu passthrougn siten, että kakkosnäyttiksen pystyy siirtämään guestin käytöstä takaisin hostille ja taas takaisin ilman että graafisesta ympäristöstä (gnome) tarvitsee poistua ja xorg käynnistää uudelleen. Eli sillä näyttiksellä mikä ei pyöritä gnomea ym. softaa voi ajaa välillä vaikka windowsia ja välillä pytorchia tms. natiivina.

Kirjoittelen siitä juttua jos jollakin on tuolle tarvetta, kunhan ehdin/jaksan.
 
Kokeilin nyt unigine superpositionia virtualisoidussa vs natiivissa windowsissa, virtualisoitu oli noin 0.5% hitaampi kuin natiivi. Tosin natiivi windows oli 11 ja virtualisoitu 10 sekä ajuriversio natiivina hieman vanhempi, mutta erot näyttää joka tapauksessa olevan olemattomia. Fedoran alla virtualisoidussa windowsissa pyörivä unigine oli yli 10% nopeampi, kuin uniginen linux-versio.
 
Nyt asennettu myös looking glass hosti virtualisoidun windowsin puolelle ja clientti fedoraan. Toimii aika loistavasti, 4k työpöytä toimii nykimättä omassa ikkunassaan, hiiri ja näppäimistö menee virtuaalikoneen puolelle läpinäkyvästi. Ruudun striimaus virtuaalikoneesta hostiin laskee uniginen pisteitä noin 15% 4k-resolla, noin 5% fhd-resolla.

Näitä konffeja käytän fedorassa. VFIO-moduulit on ladattava ennen nvidian moduuleita, muuten xorg varastaa näyttiksen itselleen, eikä moduuleja saa enää poistettua poistumatta xorgista.
/etc/modules-load.d/vfio.conf:
vfio_pci
vfio
vfio_iommu_type1

etc/modprobe.d/iommu.conf (pci id:t korvattava oikeilla osoitteilla, lspci kertoo):
options vfio_pci ids=10de:1f82,10de:10fa

/etc/X11/xorg.conf:
Section "ServerFlags"
# Do not scan for GPUs
Option "AutoAddGPU" "0"
Option "AutoBindGPU" "0"
# It's OK to scan and add peripherals however.
Option "AutoAddDevices" "1"
Option "AutoEnableDevices" "1"
EndSection

# Define the host GPU here, no others
Section "Device"
Identifier "Device0"
# Pick the right driver for your host GPU vendor.
Driver "amdgpu"
# And the correct bus ID (lspci -D) (oltava muistaakseni kymmendesimaalina)
BusID "PCI:13:0:0"
# Do not probe for others.
Option "ProbeAllGpus" "0"
Option "AutoAddGPU" "false"
EndSection

Ja skriptit nvidian kortin siirtoon hostin ja guestin välillä, ajettava roottina, en ole jaksanut keksiä parempaa, suid-bitti päälle?
/home/jak/bin/nv_unload:
#!/bin/bash
rmmod nvidia_uvm
rmmod nvidia_modeset
rmmod nvidia
modprobe vfio_pci

/home/jak/bin/nv_load:
#!/bin/bash
rmmod vfio_pci
modprobe nvidia

E: Kokeilin vielä työpöydän striimausta verkossa tuon päälle. Eli VM guesti striimaa kuvan hostille, joka taas pakkaa monitorilla näkyvän kuvan lennossa ja striimaa sen verkon yli läppärille. Hyvin toimii sekin.
 
Viimeksi muokattu:
Siirrän Proxmoxin VM:t/LXC:t uudelle levylle.

Pistänkö uuden levyn ZFS, LVM vai LVM-Thin ja miksi?

Kokoonpano on tuon jälkeen
NVMe - Itse Proxmox
NVMe (Uusi ja juuri asennettu) - VM ja LXC käyttöön
Sata SSD - NFS backup ja NAS (Tästä tulee menemään ulkoiset backupit toisaalle)

Kokoonpanosta johtuen raideille ja tuollaisille ei tarvetta/mahdollisuutta.

En tiedä mitä oikeasti tarvitsen tuon osalta muuta kuin snapshotit. Tilan käyttö on riittävä eli ZFS:n paremmuutta snapshoteissa en myöskään tiedä tarvitsevani.
 
Siirrän Proxmoxin VM:t/LXC:t uudelle levylle.

Pistänkö uuden levyn ZFS, LVM vai LVM-Thin ja miksi?

Kokoonpano on tuon jälkeen
NVMe - Itse Proxmox
NVMe (Uusi ja juuri asennettu) - VM ja LXC käyttöön
Sata SSD - NFS backup ja NAS (Tästä tulee menemään ulkoiset backupit toisaalle)

Kokoonpanosta johtuen raideille ja tuollaisille ei tarvetta/mahdollisuutta.

En tiedä mitä oikeasti tarvitsen tuon osalta muuta kuin snapshotit. Tilan käyttö on riittävä eli ZFS:n paremmuutta snapshoteissa en myöskään tiedä tarvitsevani.
Ehkä helpoin jos tekee lvm-thin poolin uudelle levylle ja siirtää sitten halutut vm:t sinne. Siirto pitäisi pystyä tekemään WebGUI:n kautta VM:n hardware valikosta. Muistaa vaan määrittää Datacenter->storage asetuksita uudelle osiolle tarvittavat sisältö asetukset.

Kannattaa toki lukasta proxmox dokumentit thin pool ja perus LVM poolin eroista ja käyttökohteista.

Tosin oma backup ssd näkyy olevan xfs formaatissa ja mountattu Directoryn kautta. En muista enään miksi tein sen noin.
 
Ehkä helpoin jos tekee lvm-thin poolin uudelle levylle ja siirtää sitten halutut vm:t sinne. Siirto pitäisi pystyä tekemään WebGUI:n kautta VM:n hardware valikosta. Muistaa vaan määrittää Datacenter->storage asetuksita uudelle osiolle tarvittavat sisältö asetukset.

Kannattaa toki lukasta proxmox dokumentit thin pool ja perus LVM poolin eroista ja käyttökohteista.

Tosin oma backup ssd näkyy olevan xfs formaatissa ja mountattu Directoryn kautta. En muista enään miksi tein sen noin.

Jes. Olen noita eroja jostain yrittänyt tavata, mutta ei ole ymmärrys riittänyt :)
Vakiona tuo LVM-Thin on tullut VM/LXC jutuille, niin ehkäpä se on se ”juttu”. Pitää tuo linkkisi vielä katsoa, jos se avaisi jotain.
 
Tullut nyt vähän treenattua Proxmox käyttöä mini-pc:llä ennenkuin saan uuden serverin kasaan josta olisi siis tarkoitus tulla kodin nas + media yms keskus.

Samalla yrittänyt saada dockerilla mahdollisimman paljon juttuja toimimaan ja moni asia jo onnistuukin, mutta Plex/Jellyfin tuottaa harmaita hiuksia, ja lähinnä hardware transcoding.

Tällä hetkellä siis mulla on Ubuntu 22.04 virtuaalikone luotu Proxmoxiin johon asennettua docker+kilkkeet. Mutta en saa tuota iGPU:ta millään toimimaan (intel UHD 605) esim Plexin kanssa. LXC containerissa nuo toimii hienosti.

Ennenkuin lähden tätä pohtimaan enemmän niin olenkohan nyt vaan käsittänyt asian väärin:

Jos käytän LXC containeria proxmoxissa niin sillä pystyy helposti käyttämään suoraan host:n rautaa, mutta jos saman haluaa tehdä VM:ssä niin koko kortti pitäisi "luovuttaa" tuolle VM:lle eli mulla pitäisi sinällään olla 2 gpu:ta joista toisen voisin uhrata tuolle VM:lle?

tosiaan vielä aika nyypiö näiden kanssa ja lähinnä nyt vaan testaillut eri asioita, joten ei ole vielä ihan selvää kannattaisiko vaan ajaa noita softia erillisissä LXC containereissa vs yksi docker VM. Dockerissa tietysti se että sen saisi helposti siirrettyä ja replikoitua.
 
Tullut nyt vähän treenattua Proxmox käyttöä mini-pc:llä ennenkuin saan uuden serverin kasaan josta olisi siis tarkoitus tulla kodin nas + media yms keskus.

Samalla yrittänyt saada dockerilla mahdollisimman paljon juttuja toimimaan ja moni asia jo onnistuukin, mutta Plex/Jellyfin tuottaa harmaita hiuksia, ja lähinnä hardware transcoding.

Tällä hetkellä siis mulla on Ubuntu 22.04 virtuaalikone luotu Proxmoxiin johon asennettua docker+kilkkeet. Mutta en saa tuota iGPU:ta millään toimimaan (intel UHD 605) esim Plexin kanssa. LXC containerissa nuo toimii hienosti.

Ennenkuin lähden tätä pohtimaan enemmän niin olenkohan nyt vaan käsittänyt asian väärin:

Jos käytän LXC containeria proxmoxissa niin sillä pystyy helposti käyttämään suoraan host:n rautaa, mutta jos saman haluaa tehdä VM:ssä niin koko kortti pitäisi "luovuttaa" tuolle VM:lle eli mulla pitäisi sinällään olla 2 gpu:ta joista toisen voisin uhrata tuolle VM:lle?

tosiaan vielä aika nyypiö näiden kanssa ja lähinnä nyt vaan testaillut eri asioita, joten ei ole vielä ihan selvää kannattaisiko vaan ajaa noita softia erillisissä LXC containereissa vs yksi docker VM. Dockerissa tietysti se että sen saisi helposti siirrettyä ja replikoitua.

Proxmox ei tarvitse näytönohjainta toimiakseen, eli voit sen ainoan näytönohjaimen osoittaa VM:lle.
 
Meneekö hostin hallinta kuinka paljon hankalammaksi tuolla proxmoxilla verrattuna tilanteeseen missä pääkäyttistä ajetaan natiivina? Mietin josko asentaisi pöytäkoneeseen virtualisoidun pelikäyttiksen olohuoneen telkkarisssa pelailua varten, jolloin koneella voisi samaan aikaan tehdä jotain muutakin. Proxmoxin päällä ajettuna sen ns. pääkäyttiksen voisi bootata ilman että pelailut katkeaa samalla, mutta kone pitää pystyä myös helposti laittamaan lepotilaan, kun sitä ei käytetä.

Eli pitäisikö tuossa tilanteessa molemmat virtualisoidut käyttikset ensin laittaa lepotilaan normaalisti ja sen jälkeen mennä selaimen tai ssh:n kautta nukuttamaan hosti, vai olisiko tuohon jokin helppo ratkaisu. Ehkä skripti joka kyttää guestien hereillä ja oloa ja nukuttaa sitten hostinkin jos vaikka varttiin ei tapahdu mitään. Kaikkein helpoin ratkaisu on tietty antaa koneen idlata 25 watilla vuorokauden ympäri, mutta se tuntuu tyhmältä.
 

Statistiikka

Viestiketjuista
262 563
Viestejä
4 557 519
Jäsenet
74 999
Uusin jäsen
Petrus Saramäki

Hinta.fi

Back
Ylös Bottom