Sdílená grafika s video výstupy pod VM

RDa

  • *****
  • 3 062
    • Zobrazit profil
    • E-mail
Sdílená grafika s video výstupy pod VM
« kdy: 05. 09. 2025, 22:23:30 »
Ahoj, mám tu silné cpu a silnou GPU (nvidia rtx aXXXX rada, tj. nastupce quadro) - a chci udělat multi-seat setup.

Dá se nasdílet grafika vícero virtuálům a zachovat jeden či dva video výstupy pro každou VM ?
(GPU má 4x DP, mám buď 4 monitory nebo 2+1 monitor co vyžaduje dva DP kabely)

Našel jsem zatím jen od NVidie vGPU - a to je o sdílení compute/memory resources.. neřeší to video výstup (CRTC?).

Jak by jste tento setup řešili po sw stránce, když nechci gpu passthrough a přiřadit celou kartu do jednoho VM ?
(a více karet pak dost popírá myšlenku konsolidace ... taky máme přece NAS, aby šlo sdílet storage.. cpu se sdílí.. ale co GPU ?)

Neříkejte že to GPU budu moci využít jen jako výpočetní, nebo jenom v hypervisoru (nebo jedné VM), která bude ostatní virtuálky s emulovanou grafikou zobrazovat a la vnc/spice.

Po dvou třech dekádách vývoje virtualizací bych čekal že řešení bude existovat.


Re:Sdílená grafika s video výstupy pod VM
« Odpověď #1 kdy: Dnes v 01:51:22 »
Ahoj. Co si pamatuju, tak tohle nikdy nefungovalo ani v jedné variantě toho virtualizačního mechanismu.
Jinými slovy, i když má karta fyzické výstupy (Quadro, RTX..), tak se po přepnutí do vGPU/GRID režimu vypnou.
A to jak u starších generací, co mají ty mdevy (virtuální grafiky přiřazené do virtuálů) emulované softwarově z jednoho PCIe zařízení, tak u novějších od Ampere (to máš ty) a dál, kde už je ta izolace po přepnutí řešená hardwarově přes SR-IOV a VF, jako třeba u síťovek.
Ani si vlastně nejsem jistý, jestli s fyzickým výstupem počítá NVIDIA GRID ovladač na virt. grafiku, který pak instaluješ do virtuálu. Pokud uděláš "obyčejné" PCI pass-thru celé karty, používáš normální ovladač bez licence a máš samozřejmě všechny výstupy. Jakmile je to v tom virtualizačním režimu, používá se na ty emulované karty ovladač jiný, který pak místo výstupu zachytává framebuffer, kóduje ho třeba přes NVENC a pouští přes daného VDI klienta (Jako např. Horizon u VMWare nebo speciální build KVM/QEMU s DCV VNC serverem, nechodí to se standardním Spice)
Ale také si po každém spuštění daného virtuálu průběžně kontroluje licenci on-line. A ta není úplně levná - řekněme 250 dolarů ročně za rok, pokud chceš virtuální RTX - workstation třídu, tzn. třeba zaplatíš 2500 za deset souběžně spuštěných virtuálů (resp. vzdálených sezení VDI).

Nicméně stejně mi to tvé přání (víc virtuálů s fyzickými výstupy) přijde trochu zvláštní, resp. dost nezvyklý use-case. Netuším, na co by to prakticky sloužilo, ani jsem nikdy nic takového neslyšel.. Buď mám fyzický stroj s lokálním grafikou a monitorem, nebo se ze vzdáleného klienta připojuju na server (veřejný cloud s nějakou škálovatelností a dostupností, firemní server třeba pro home office s nějakými CADy atp.). Ty fyzické výstupy z jedné bedny (extendery ke klientům?) a zároveň virtualizace s nějakým síťovým ovládáním mi přijde trochu jako kočkopes. Možná i proto se tím nikdo moc nezabývá.

Re:Sdílená grafika s video výstupy pod VM
« Odpověď #2 kdy: Dnes v 12:11:28 »
Tak jeden (dávný) čas se docela řešila multiklientská stanice na X serveru  - jeden počítač pro více lokálních uživatelů současně. Možná tu jde o něco podobného.

Re:Sdílená grafika s video výstupy pod VM
« Odpověď #3 kdy: Dnes v 13:13:08 »
V podstatě bys potřeboval nějakou OpenGL (nebo Vulkan) proxy, něco jako VirtualGL, která by klientům umožnila vytvářet OpenGL kontexty/seance a mapovat je na výstup na monitor. Realizovatelné to podle mého je, ale nevím, jestli to někdo už udělal nebo jestli by k tomu šlo přiohnout to VirtualGL (to podle mého použije GPU k vypočítání obrazu, ale pak ho pošle klientovi, ať si ho zobrazí sám).

Tak jeden (dávný) čas se docela řešila multiklientská stanice na X serveru  - jeden počítač pro více lokálních uživatelů současně. Možná tu jde o něco podobného.

Z toho by asi šlo vyjít – každá VM by měla svého uživatele a v tom by to fungovalo stejně jak ten kdysi používaný multi-seat. Jde o to, aby se ten výsledný obraz poslal rovnou na monitor a neprocházel přes VNC/SPICE. Chtělo by to vyzkoušet, jak je na tom qemu s SDL výstupem na celou obrazovku…
« Poslední změna: Dnes v 13:15:50 od Franta Kučera »