Virtualizace desítek systémů

Virtualizace desítek systémů
« kdy: 28. 11. 2022, 02:50:00 »
Rad bych s komunitou zkonzultovat tema, jak virtualizovat desitky (50-150 instanci) shodnych ale plne izolovanych systemu.
Idea je takova, ze by se bootoval (ze site, ze sdileneho uloziste, ...) nejaky jednotny (centralne udrzovany a upravovany) image a kazda instance by pouzila nejaky rozlisujici prvek (dynamicky pridelenou IP adresu nebo jakykoliv dostupny identifikator, pripadne nejakou jednoduchou externi ridici sluzbu) k rozliseni toho, co ma delat.

Rad bych efektivne dynamicky sdilel zdroje hardware, kdy kazda instance potrebuje cca 5GB diskoveho prostoru (ale neperzistentniho), 2GB RAM a nejakou neprilis velkou cast CPU vykonu, ale nepotrebuje tyto zdroje nutne staticky rezervovane.

Chceme se drzet co nejniz k hardware a nelze pouzivat nastroje typu qemu, sandboxovaci reseni, vysokourovnovou virtualizaci. Idealni by bylo, aby system uvnitr nemel zadnou moznost detekovat, ze je virtualizovan nebo tuto moznost alespon minimalizovat.

Uvazujeme o XEN para-virtualizaci, ale rad bych si poslechnul napady, jestli neexistuje nejake vhodnejsi reseni.
Naklady na provoz nejsou primarni kriterium. Podstatna je kvalita/stabilita a minimalizace naroku na spravu.
Diky za nazory
« Poslední změna: 28. 11. 2022, 09:45:42 od Petr Krčmář »


alex6bbc

  • *****
  • 1 392
    • Zobrazit profil
    • E-mail
Re:virtualizace desitek systemu
« Odpověď #1 kdy: 28. 11. 2022, 04:17:56 »
cely system provozujete jen sam pro sebe, tak proc potrebujete virtualizovat?
virtualizace ma smysl, kdyz mate ruzne zakazniky na svych masinach.

Re:virtualizace desitek systemu
« Odpověď #2 kdy: 28. 11. 2022, 04:23:54 »
cely system provozujete jen sam pro sebe, tak proc potrebujete virtualizovat?
virtualizace ma smysl, kdyz mate ruzne zakazniky na svych masinach.

Virtualizaci je mozne pouzit treba k uspore nakladu kdy nemate 150 fyzickych serveru ale treba dva.


Re:virtualizace desitek systemu
« Odpověď #3 kdy: 28. 11. 2022, 04:26:18 »
Proc neni mozne pouzit normalni hypervizor typu jako vmware? Nejaky specificky hw? Umite poskytnout trochu vice informaci k ucelu pouziti tech systemu?

Re:virtualizace desitek systemu
« Odpověď #4 kdy: 28. 11. 2022, 04:36:19 »
Proc neni mozne pouzit normalni hypervizor typu jako vmware? Nejaky specificky hw? Umite poskytnout trochu vice informaci k ucelu pouziti tech systemu?
hardware si mohu vybrat

pouzit vmware mozne je, ale nevim v cem je "normalnejsi" nez XEN a proc by to melo byt efektivnejsi

navic vmware je asi pomerne dobre detekovatelny z hostovaneho systemu (napr. se to dalo/da poznat z graficke karty apod.)
proto uvazujeme smerem k necemu, co ma bliz k hardware

vmware je taky o dost vetsi "klikacka" a v danem mnozstvi guest systemu potrebujeme maximalni moznost to automatizovat

ucelem je obecne vzato potreba bezet paralelne stary, neupravitelny a velmi specificky software, ktery jednak neni technicky pripraven na beh vice instanci v ramci jednoho systemu a dvak se tomu i castecne brani - verim, ze to ale neni podstatne pro navrh reseni, zajima me ciste navrh, jak to nejlepe virtualizovat


Re:virtualizace desitek systemu
« Odpověď #5 kdy: 28. 11. 2022, 04:38:11 »
cely system provozujete jen sam pro sebe, tak proc potrebujete virtualizovat?
virtualizace ma smysl, kdyz mate ruzne zakazniky na svych masinach.
potrebuju to automatizovane a efektivne spravovat

osobne nevidim zpusob, jak provozovat desitky kusu hardwaru z mnoha praktickych duvodu, nemluve o nakladech

alex6bbc

  • *****
  • 1 392
    • Zobrazit profil
    • E-mail
Re:virtualizace desitek systemu
« Odpověď #6 kdy: 28. 11. 2022, 04:43:00 »
cely system provozujete jen sam pro sebe, tak proc potrebujete virtualizovat?
virtualizace ma smysl, kdyz mate ruzne zakazniky na svych masinach.

Virtualizaci je mozne pouzit treba k uspore nakladu kdy nemate 150 fyzickych serveru ale treba dva.

i na dvou serverech muzete spoustet hafo procesu, proc by mely byt odizolovane, kdyz jsou vsecky procesy vase?!

aha ted jsem si precetl o specificnosti software. a nestacil by chroot?
« Poslední změna: 28. 11. 2022, 04:45:12 od alex6bbc »

Re:virtualizace desitek systemu
« Odpověď #7 kdy: 28. 11. 2022, 04:46:19 »
aha ted jsem si precetl o specificnosti software. a nestacil by chroot?
nestacil

alex6bbc

  • *****
  • 1 392
    • Zobrazit profil
    • E-mail
Re:virtualizace desitek systemu
« Odpověď #8 kdy: 28. 11. 2022, 04:50:45 »
docker?

ldj

Re:virtualizace desitek systemu
« Odpověď #9 kdy: 28. 11. 2022, 07:21:40 »
Celkem zajimave reseni muze byt i pomoci Portable Services, ktere uz nejakou dobu podporuje systemd.

Re:virtualizace desitek systemu
« Odpověď #10 kdy: 28. 11. 2022, 08:19:58 »
Asi by bylo dobré upřesnit o co konkrétně ti jde.
To je nějaké sdílení ve škole?
A nebo chceš ušetřit licenční poplatky za software?
Jaký host OS chceš virtualizovat, a aplikace?
Budeš používat "vysokou dostupnost", tzn. nějaké live migrace atd?
A jaký máš reálný rozpočet?

Re:virtualizace desitek systemu
« Odpověď #11 kdy: 28. 11. 2022, 09:35:55 »
Předpokládám, že to chcete migrovat bez nějakých výraznějších zásahů, takže chcete plnohodnotné virtuální stroje a ne jen kontejnery.

Pro vytvoření virtuálních strojů použijte nějaký nástroj pro orchestraci – Terraform, Ansible, Puppet…

Pro rozlišení jednotlivých instancí použijte cloud-init – je to standardní řešení, nebudete muset vymýšlet a ručně nějakou konfiguraci podle IP adres a podobně.

Vytvoření 150 obdobných virtuálních strojů není žádný neobvyklý požadavek, nekliká se to ručně, jsou na to nástroje (viz výše).

Jose D

  • *****
  • 844
    • Zobrazit profil
Re:Virtualizace desítek systémů
« Odpověď #12 kdy: 28. 11. 2022, 12:33:37 »
jak virtualizovat desitky (50-150 instanci) shodnych ale plne izolovanych systemu.

Ovládání přes API má dneska jak vmware, proxmox tak libvirt, třeba ansible oproti vmware jsem psal letos na jaře a paráda.

Co je to těžký a specifický na tvým tasku je zjistit, která virtualizace projde z hlediska toho software co chceš mít uvnitř..  A to ti nikdo nedokážeme poradit, protože ten soft neznáme.

Takže jako další krok bych zkusil rozjet ten soft na free esxi, na proxmoxím kvm, na proxmoxím LXC, docker... zjistit konfiguraci virtuálního hardware, která na tom bude šlapat, a pak si o tom něco myslet a kouknout na nacenění supportu v úrovni, kterou potřebuješ..

Napsat orchestraci okolo pak taky chvíli zabere, ale to už je něco, co už před tebou řešilo XX lidí..

Re:Virtualizace desítek systémů
« Odpověď #13 kdy: 28. 11. 2022, 16:45:49 »
diky vsem za hinty vyse - probehnu to

jeste se jen zeptam, jestli je tu nekdo, kdo ma silny nazor nebo praktickou zkusenost pro porovnani ruznych virtualizacnich reseni s ohledem na to, jak moc (ne)ma hostovany system moznost poznat, ze je virtualizovan (napr. osahavanim virtualizovaneho/proxovaneho hardware, inspekci prostredi co do toolu pro sdileni periferii a obecne pro zlepseni user experience pri praci ve VM, ktere jsou asi typickym zpusobem jak detekovat sebevirtualizaci)

diky

Re:Virtualizace desítek systémů
« Odpověď #14 kdy: 28. 11. 2022, 17:29:44 »
Rad bych efektivne dynamicky sdilel zdroje hardware, kdy kazda instance potrebuje cca 5GB diskoveho prostoru (ale neperzistentniho), 2GB RAM a nejakou neprilis velkou cast CPU vykonu, ale nepotrebuje tyto zdroje nutne staticky rezervovane.
Sdílet diskový prostor by šlo jednoduše tím, že by všechny virtuálky používaly jeden disk přes  NSF, Sambu nebo nějaký cloud.  Řešení je více. Co se týká RAM, tak tady máš pro inspiraci ballooning nebo memory hot plug/unplug. Tady je Detailnější popis příkazů pro memory hot plug/unplug pro libvirt.

Chceme se drzet co nejniz k hardware a nelze pouzivat nastroje typu qemu ... Uvazujeme o XEN para-virtualizaci
Qemu má také paravirtualizované ovladače (virtio).

Idealni by bylo, aby system uvnitr nemel zadnou moznost detekovat, ze je virtualizovan nebo tuto moznost alespon minimalizovat.
Obávám se, že s para-virtuálizací možnost detekce zvýšíš.

navic vmware je asi pomerne dobre detekovatelny z hostovaneho systemu (napr. se to dalo/da poznat z graficke karty apod.)
proto uvazujeme smerem k necemu, co ma bliz k hardware
I u XENu o kterém uvažuješ určitě půjde z grafické karty poznat, že OS běží uvnitř virtuálky. Aby to nešlo poznat z grafické karty, tak bys musel fyzickou grafickou kartu předat (pci-passthrough) nebo sdílet (Intel GVT-g, SR-IOV), NVIDIA (Nvidia VGPU, SR-IOV) a AMD (AMD SR-IOV), více info. Pro 50-150 VM dost nerálné = drahé. Pokud budeš používat cokoliv jíného (tzn. virtuální GPU), tak půjde zjistit, že OS běží uvnitř VM. Jedině, že bys přesně věděl z jakých informací se daná aplikace dozvěděla, že běží uvnitř VM a ty informace bys jí potom podstrčil falešné (kdyby si třeba zjišťovala informace z dmidecode, tak tam (např. u Qemu) není problém dmi informace podstrčit.

jeste se jen zeptam, jestli je tu nekdo, kdo ma silny nazor nebo praktickou zkusenost pro porovnani ruznych virtualizacnich reseni s ohledem na to, jak moc (ne)ma hostovany system moznost poznat, ze je virtualizovan (napr. osahavanim virtualizovaneho/proxovaneho hardware, inspekci prostredi co do toolu pro sdileni periferii a obecne pro zlepseni user experience pri praci ve VM, ktere jsou asi typickym zpusobem jak detekovat sebevirtualizaci)
Např. aplikace které dodává výrobce základní desky si zjišťují na jaké desce běží. Kdysi jsem se snažil takovou aplikaci spustit ve VM tím, že jsem jí podstrkoval různé falešné informace o základní desce, ale bez úspěchu. Nebylo to nic důležitého, takže jsem tomu nevěnoval čas. Je to v podstatě vytváření cracku - nejdříve musíš zjistit podle čeho si daná aplikace ověřuje licenci (nebo to že běží uvnitř VM) a na základě toho uděláš crack, který jí podstrčí ony konkrétní falešné informace.