[Projekt] CML - domácí server pro tenké klienty
Napsal: ned 6. kvě 2018, 17:09
Rozhodl jsem se racionalizovat počet počítačů v domácnosti a rozhodl se pro kompletní centralizaci v jednom serveru.
Cílem je mít jeden server, kde každý uživatel bude mít vlastní VM, na kterou bude přistupovat po LAN nebo i z internetu.
Aktuálně provozuji 4 desktopy a jeden NAS. Celkem nějakých 14jader (Sandy, Llano, Richland), 22GB RAM a 15TB disků které se zbytečně většinu času flákají a HW je celkem nevyužitý. Protože počítače nikdy nejsou zároveň vytížené na maximum bude sdílením HW prostředků mezi uživately na serveru možné dosáhnout redukce nevyužitého HW a zároveň díky sdílení nevyužitých HW prostředků stoupne teoretický maximální výkon, který je uživateli dostupný.
Celé řešení server - klient je ale závislé na SW. Existuje celá řada protokolů pro vzdálený přístup, cílem je najít nejlevnější řešení, které se nejvíce blíží baremetal. Klíčovou podmínkou je tedy HW akcelerace desktopu.
Uvažovaná řešení:
ESXI - těžkopádné a uživatelsky nepřívětivé. Nejasná reálná situace kolem HW akcelerace desktopu a složité licencování.
Zen Desktop - Pravděpodobně HW akcelerace desktopu je možná, ale je to drahé.
Hyper-V + remoteFX - toto jsem zkoušel, lze si vše vyzkoušet celkem jednoduše v rámci trialu. Pro windows power usera uživatelsky velmi přívětivé. Nicméně HW akcelerace pomocí vGPU je dost omezená a pustit si přes to hru je prakticky nemožné. Možností by bylo passthrough GPU přímo do VM. Negativum je drahá a komplikovaná licenční politika.
unRAID + moonlight gamestrem / nomachine NX - unRAID je hezký OS pro NAS, který má zabudovaný KVM s podporou GPU passthrough. Systém je bohužel jen v AJ, ale pro uživatele je velmi přehledný a téměř vše jde nastavit v klikacím GUI. Existuje také velké množství přehledných návodů a člověk se neztrácí v hromadě dezinformační propagandy jako u výše jmenovaných řešení. unRAID má již v základu implementovány patche pro nVidia GPU, tudíž, lze bezproblému nainstalovat drivery do VM a plnohodnotně využívat všechny funkce GPU. Při kombinaci např. ubuntu+KVM je nutné si pohlídat, aby nVidia driver nezjistil, že běží ve virtuálním stroji.
Licenční politika unRAIDu je přehledná a odvíjí se podle počtu HDD v NASu.
gamestrem a klient moonlight je dostupný bezplatně. Streamováním mstsc.exe má uživatel plně HW akcelerovaný desktop s minimálním lagem. Klient moonlight je dostupný pro android, Chrome nebo ARM-linux(Raspberry Pi, Orange Pi, Cube)
nomachine NX je pro základní použití také zdarma. Klient je dostupný pro android, ARM-linux, windows,...
Je zřejmé, že po softwarové stránce se kloním k unRAID + gamestream. Největší nevýhodou je, že každý uživatel s HW akcelerací potřebuje mít na serveru vlastní nVidia GPU. V případě Steam inhome streamingu je možné použít libovolné GPU, ale tam není takový výběr klientských platforem, klient musí být X86 nebo steam link.
Gamestream a klient moonlight mají ale jeden zásadní problém a to zařízení připojená na straně klienta (flash disk,...) Tyto zařízení je nutné forwardovat do VM na serveru. Vzhledem k uvážené nízké četnosti připojování USB zařízení se jeví jako dobré řešení připojit se dočasně pomocí nomachine klienta, který umí forwarding nejběžnějších USB zařízení, ale specialitky jako sériovou linku nezvládne. Na takové požadavky bude nutné zařízení připojit přímo do USB portu na serveru.
HW klient. Moonlight a nomachine mohou běžet jak na androidu, tak ARM-linuxu, volba klienta je tudíž poměrně náročná, ptotože je možné volit z bezpočtu Android TV krabiček a klonů raspberry Pi.
Jako ideální by byl TV box s Androidem 8 a podporou project Treble, tudíž by bylo možné jednou za čas aktualizovat Android. Aktuálně jsou na trhu ale jen TV boxy s Androidem 7 a nižším a kvalita ROM není valná. Ideální bude volba TV boxu se SoC Almlogic, s ověřenou podporou distribuce armbian. Takové řešení dává možnost vše nastavit na Androidu a po čase TV box flashnout na armbian, pokud by bylo třeba, ale pro uživatelské pohodlí je možné zůstat na androidu.
Klony Raspberry jsou vesměs dražší než TV boxy po započítání nákladů na šasi, napájecí adaptér a SD kartu, ale lze je použít, pokud jsou kompatibilní s moonlight-embedded.
HW server. Server bude postaven na Ryzenu 2XXX s ECC pamětí 16GB. Ještě nevím, jestli použít X470 nebo X399/X499 platformu, ale pravděpodobně zvítězí nižší cena X470.
Požadavek je, aby jeden uživatel měl plný výkon GTX 1080, ostatním stačí pouze multimediální HW akcelerace, tudíž si vystačí i s GTX 1050 na PCIe x1 lince.
Jelikož zatím není třeba ukládat moc dat, začnu s 2x 4TB WD GOLD a jedním 128GB SSD na cache. unRaid má jeden HDD jako paritní a jeden na data. V budoucnu půjde snadno rozšířit. SSD slouží jako cache pro zápis.
Vzhledem k provozu 24/7 jsem zvolil Seasonic Prime Ultra titanium 1000W , ve své kategorii vychází jako nejúčinější zdroj spolu s 850W verzí. Corsair má účinnost srovnatelnou v rámci 0.1%, tudíž není důvod připlácet za vyšší výkon.
Skříň plánuji The Tower 900 s kompletním vodním okruhem. Budu stavět z PETG trubic.
To asi na úvod stačí.
Přibližný harmonogram:
červen objednání posledních součástek na server a čekání na doručení
červenec stavba serveru
srpen testovací provoz s OrangePi, a android TV boxem
září vyhodnocení beta provozu a kompletní nahrazení desktopů tenkými klienty (Linux/android)
Cílem je mít jeden server, kde každý uživatel bude mít vlastní VM, na kterou bude přistupovat po LAN nebo i z internetu.
Aktuálně provozuji 4 desktopy a jeden NAS. Celkem nějakých 14jader (Sandy, Llano, Richland), 22GB RAM a 15TB disků které se zbytečně většinu času flákají a HW je celkem nevyužitý. Protože počítače nikdy nejsou zároveň vytížené na maximum bude sdílením HW prostředků mezi uživately na serveru možné dosáhnout redukce nevyužitého HW a zároveň díky sdílení nevyužitých HW prostředků stoupne teoretický maximální výkon, který je uživateli dostupný.
Celé řešení server - klient je ale závislé na SW. Existuje celá řada protokolů pro vzdálený přístup, cílem je najít nejlevnější řešení, které se nejvíce blíží baremetal. Klíčovou podmínkou je tedy HW akcelerace desktopu.
Uvažovaná řešení:
ESXI - těžkopádné a uživatelsky nepřívětivé. Nejasná reálná situace kolem HW akcelerace desktopu a složité licencování.
Zen Desktop - Pravděpodobně HW akcelerace desktopu je možná, ale je to drahé.
Hyper-V + remoteFX - toto jsem zkoušel, lze si vše vyzkoušet celkem jednoduše v rámci trialu. Pro windows power usera uživatelsky velmi přívětivé. Nicméně HW akcelerace pomocí vGPU je dost omezená a pustit si přes to hru je prakticky nemožné. Možností by bylo passthrough GPU přímo do VM. Negativum je drahá a komplikovaná licenční politika.
unRAID + moonlight gamestrem / nomachine NX - unRAID je hezký OS pro NAS, který má zabudovaný KVM s podporou GPU passthrough. Systém je bohužel jen v AJ, ale pro uživatele je velmi přehledný a téměř vše jde nastavit v klikacím GUI. Existuje také velké množství přehledných návodů a člověk se neztrácí v hromadě dezinformační propagandy jako u výše jmenovaných řešení. unRAID má již v základu implementovány patche pro nVidia GPU, tudíž, lze bezproblému nainstalovat drivery do VM a plnohodnotně využívat všechny funkce GPU. Při kombinaci např. ubuntu+KVM je nutné si pohlídat, aby nVidia driver nezjistil, že běží ve virtuálním stroji.
Licenční politika unRAIDu je přehledná a odvíjí se podle počtu HDD v NASu.
gamestrem a klient moonlight je dostupný bezplatně. Streamováním mstsc.exe má uživatel plně HW akcelerovaný desktop s minimálním lagem. Klient moonlight je dostupný pro android, Chrome nebo ARM-linux(Raspberry Pi, Orange Pi, Cube)
nomachine NX je pro základní použití také zdarma. Klient je dostupný pro android, ARM-linux, windows,...
Je zřejmé, že po softwarové stránce se kloním k unRAID + gamestream. Největší nevýhodou je, že každý uživatel s HW akcelerací potřebuje mít na serveru vlastní nVidia GPU. V případě Steam inhome streamingu je možné použít libovolné GPU, ale tam není takový výběr klientských platforem, klient musí být X86 nebo steam link.
Gamestream a klient moonlight mají ale jeden zásadní problém a to zařízení připojená na straně klienta (flash disk,...) Tyto zařízení je nutné forwardovat do VM na serveru. Vzhledem k uvážené nízké četnosti připojování USB zařízení se jeví jako dobré řešení připojit se dočasně pomocí nomachine klienta, který umí forwarding nejběžnějších USB zařízení, ale specialitky jako sériovou linku nezvládne. Na takové požadavky bude nutné zařízení připojit přímo do USB portu na serveru.
HW klient. Moonlight a nomachine mohou běžet jak na androidu, tak ARM-linuxu, volba klienta je tudíž poměrně náročná, ptotože je možné volit z bezpočtu Android TV krabiček a klonů raspberry Pi.
Jako ideální by byl TV box s Androidem 8 a podporou project Treble, tudíž by bylo možné jednou za čas aktualizovat Android. Aktuálně jsou na trhu ale jen TV boxy s Androidem 7 a nižším a kvalita ROM není valná. Ideální bude volba TV boxu se SoC Almlogic, s ověřenou podporou distribuce armbian. Takové řešení dává možnost vše nastavit na Androidu a po čase TV box flashnout na armbian, pokud by bylo třeba, ale pro uživatelské pohodlí je možné zůstat na androidu.
Klony Raspberry jsou vesměs dražší než TV boxy po započítání nákladů na šasi, napájecí adaptér a SD kartu, ale lze je použít, pokud jsou kompatibilní s moonlight-embedded.
HW server. Server bude postaven na Ryzenu 2XXX s ECC pamětí 16GB. Ještě nevím, jestli použít X470 nebo X399/X499 platformu, ale pravděpodobně zvítězí nižší cena X470.
Požadavek je, aby jeden uživatel měl plný výkon GTX 1080, ostatním stačí pouze multimediální HW akcelerace, tudíž si vystačí i s GTX 1050 na PCIe x1 lince.
Jelikož zatím není třeba ukládat moc dat, začnu s 2x 4TB WD GOLD a jedním 128GB SSD na cache. unRaid má jeden HDD jako paritní a jeden na data. V budoucnu půjde snadno rozšířit. SSD slouží jako cache pro zápis.
Vzhledem k provozu 24/7 jsem zvolil Seasonic Prime Ultra titanium 1000W , ve své kategorii vychází jako nejúčinější zdroj spolu s 850W verzí. Corsair má účinnost srovnatelnou v rámci 0.1%, tudíž není důvod připlácet za vyšší výkon.
Skříň plánuji The Tower 900 s kompletním vodním okruhem. Budu stavět z PETG trubic.
To asi na úvod stačí.
Přibližný harmonogram:
červen objednání posledních součástek na server a čekání na doručení
červenec stavba serveru
srpen testovací provoz s OrangePi, a android TV boxem
září vyhodnocení beta provozu a kompletní nahrazení desktopů tenkými klienty (Linux/android)