Linux KVM - az összes rendelkezésre álló memoria odaadása egy VM-nek

Fórumok

Üdv,

Tudja valaki hogy centos 7 KVM alatt, ha egyetlen egy vm-et működtetek a szerveren és a szerver összes memóriáját odaadom a VM-nek az okozhat-e gondot a későbbiekben? Tehát ha van a szerveben 64 GB RAM és a vm-et 64 GB RAM-al hozom létre történhet crash vagy valami más gond ha pl a VM memóriája telítődik? Más VM vagy szolgáltatás nem lesz a szerveren, csak alap centos- minimal, KVM és az az 1 darab VM. A swap partíció 16 GB. 

Kösz előre is a segítséget.

Hozzászólások

Csak swap legyen :D

Fedora 35, Thinkpad x280

Csak nem mindegy hol.

A legjobb, ha a hoston nincs (vagy legalabbis nincs kihasznalva) a swap, a guesten viszont van swap. A guest kernel latja valoszinuleg legjobban, hogy minek mennyire kell memoria es hol lehet reclaimelni. Plusz ha a guestben van memory ballooning driver (virtio_balloon), es a KVM konfigban engedelyzve is van, akkor a host mestersegesen vissza tudja fogatni a guest memoriafogyasztasat es kikenyszeriteni, hogy az swappoljon, ne a host.

Egyel kevesbe jo, ha a guesten nincs, a hoston van swap.

A leheto legrosszabb, ha mindket fel swappol, az kb barmi aron kerulendo. Olyan trashinget tud okozni, mikor a guest tudatlanul egyik swapbol a masikba masolgatja az adatot, amit nem akarsz latni.

Fel szokott meg merulni otletkent a "memoriapotlo" aka. zram swap. Ez elegge hit or miss. Nagyon alkalmazasfuggo, hogy jol jarsz-e vele. Ha van idod es lehetoseged load-tesztelgetni, akkor megerhet egy probat. Nem csodaszer, leginkabb annyit er, hogy ne hirtelen alljon be a gep, mint a gerely, hanem fokozatosan kezd belassulni.

Régóta vágyok én, az androidok mezonkincsére már!

hát, szegény host OS biztosan finnyogni fog ha a VM elhasználja mindet...

(ami a gyakorlatban abból fog látszani, hogy megáll minden mint a szög)

 

szóval röviden: nem jó ötlet,

és igen nagy valószínűséggel crash lesz a vége.

Működni működhet, de szerintem nem éri meg ezzel rizikózni. Mindenképp hagyj elég memóriát a hostnak, ez a virtualizáció alapszabálya. Ha az összes 64 giga RAM kell, akkor a VM-be szánt guest OS-t tedd fel a hostra bare metal.

A computer is like air conditioning – it becomes useless when you open Windows.” (Linus Torvalds)

Lehet ez lesz. Szűkebre szabom a VM RAM-ot és ha kiderül hogy nem elég akkor bővítünk, és remélem hogy nagyon nagyon későre derül ki hogy nem elég ... De hogy a kérdésedre is válaszoljak, a VM nek van egy speicifikációja. Max terheléshez 64 GB RAM kell. Erre a beszerző osztály, ennek az infónak alapján megrendelte a 64 GB-s BMS-t mert hogy ennyi kell a hostnak, de arra már nem gondolt hogy a hypervisornak is kell valami én meg itt állok hogy telpítsem a specifikációnak megfelelően a vm-et vagy úgy hogy nem hagyok a hypervisornak semmit, vagy ésszerűen hogy ne omoljon meg az egész max terhelsénél ... 

The worst or stupidest ideas are always the most popular.

Nem tudjuk mi az ami benne fut, de hatha felismeri hogy nonxs eleg ram, hatha hasznal swap-et, hatha csak egy sales-es info a 64Gb es valoban soha se kell.

Ha nem egy olyan kritikus alkalmazas aminek egyben kell 64gb, akkor nem lesz para. Ha a vm-ben is egy os fut (99% az esely) akkor az abban levonszolgaltatasok sincsenek pontosan tervezve, egy elmeleti maximumrol beszelunk, itt 2% szoras belefer. 

@BCsabaEngine

Egy juniper vsrx fog futni benne aminek 19+3 vcpu és 64 GB RAM a követelménye 10000 Ipsec VPN tnuel esetén. Az hogy valaha eléri e ezt arról fogalmam sincs mert én csak telepítem és deployolom de nem én üzemeltetem. Én csak azt akarom elkerülni hogy ha mégis eléri, ne legyen újjal mutogatás rám hogy azért nem megy mert szűkre szabtam a RAM-ot. Vagy ha pontosan bekonfigolom akkor meg összeomoljon a miatt hogy nem marad a hypervisornak RAM. Itt a link a specifikációról: https://www.juniper.net/documentation/us/en/software/vsrx/vsrx-consolid… 

The worst or stupidest ideas are always the most popular.

Hát nézd, vagy az van, hogy ha ilyen a játék, hogy visszaadod, hogy erre nem lehet üzembiztosan feltelepíteni a kívánt speckót, bocs, vagy mégis csak lehet valakivel érdemben beszélni, hogy elég-e a kicsit kevesebb.

És egyébként nyilván rendszerfüggő, de azért én olyan nagyon nem izgulnék. Még ha célra gyártott cucc, akkor is szokott lenni tartalék a méretezésben, az a ~3% memória azért csak nem fáj. Ha valami off the shelf, akkor szállító oldalról vannak valami méretezési ökölszámok, amikből az integrátor szoroz egyet, majd beletesz egy jó mérnöki ráhagyást, és utána még felkerekíti értelmes modul méretre (szóval már az 50ből is simán lesz 64). A megrendelő oldalon meg nyilván ugyanezt csinálják a max terheléssel.

Természetesen van, mikor ez nem ilyen, de még ez is az az optimális eset, amikor az eladó tudja, hogy valójában mit bír a vacka, a vevő meg, hogy valójában mekkora lesz a terhelés, mert azért ezek is szoktak ám megnyálazott mutatóujj szélbe tartásával keletkezni nem ritkán :D

Ha teszel mellé swap-et akkor legföljebb baromi lassú lesz a végén, mert a host nem fogja magát hagyni kinyírni.
Én biztos kicsit kisebbre venném a guestet (mondjuk 48) és adnék a guestnek swap-et.

De erősen függ a szitu a workloadtól is.

Gábriel Ákos

A BMS storage SSD, talán ez javít a helyzeten. A workload nem tudom mennyi lesz de a host maximum ram követelménye pont annyi mint a BMS RAM-ja, tehát az egészet oda kéne adjam neki, hogy a host ne legyen limitálva a maximum workload elérésében. Ha megtörténik hogy eléri a max workloadot és lassú lesz ez már a tervezők hibája. Engem az érdekel hogy ha így felconfigolom akkor működik csak lassabban, vagy lehal az egész mert a hypervisor ram nélkül marad?

The worst or stupidest ideas are always the most popular.

KVM-mel túlallokálhatsz, a VM "döglött" memóriaterületét a host os kirakja swapre.