Hyper-V Dynamic Memory
Volt néhány üres órám utánaolvasni, hogy mi is ez a nagy hévvel beharangozott feature a legújabb Hyper-V-ben. Hát először nem értettem, hogy miért is örülnek ennyire. Nem értettem, mivel nem ezt a funkciót várták szerintem a Hyper-V-t használó ügyfelek, és nem értettem, hogy mi ez a hype, mivel ez a funkció kb. 7 éve létezik az okosabb (értsd VMware-es) tábornál
A Dynamic Memory gyakolatilag a Hyper-V 1.0 kripli memória-kezelését orvosolja. Anno ugyanis, amennyi RAM-ot odaatál egy VM-nek, azt a VM a fizikai memóriából rögtön ki is harapta. Ennek köszönhetően aztán, hibába szerettél volna 10VM-et futtatni mindet 1-1gb ram-mal, ha a host-ban csak 8Gb ram volt, akkor a 7. VM után vége volt a konszolidációnak.
A DM most már megengedi, hogy a VM-ek dinamikusan használják fel a gépi memóriát, előre meghatározott méretek között. Szerencsére az MS nem a guestOS-re bízta az újabb ram területek allokációját, hanem az enlightenment-en keresztül végzi el. Ennek köszönhetően azon guestOS-ek is használhatják ezt a funkciót, amelyek egyébként hot-add funkciót nem tudnak.
Nos, ez a feature ESX-nél még a 2.0 soroztban megjelent (2003). Az ESX-nél alap kialakítás, hogy a VM-ekszinte soha nem kapják meg a számukra konfigurált ram-ot. Az esx van annyira okos, hogy csak akkor áldoz fizikai ram-ot egy VM-re ha annak valóban szüksége van rá. Emiatt aztán a konszolidációs ráta is sokkal-sokkal magasabb, mint egy hyper-v esetben.
A DM szépséghibája, hogy nem minden guestOS támogatott. Szerencsére a legnépszerűbb OS-ek hasznáhatják, de pl. linux VM-ek egyelőre nem. A VMware-nél ilyen limitáció természetesen nincs, a funkció teljesen OS agnostic.
A DM gyakorlatilag az ESX-ekben lévő Share funkciónak feleltethető meg. Persze ESX-ben share-ekkel a CPU-t és a disk IO-t is tudjuk szabályozni a ram mellett, továbbá ezen értékek futás közben is, sőt időzítve is változtathatóak. Számomra nem derült ki, hogy a DM prioritása bekapcsolt gépnél vajon változtható vagy sem…
Mi van még hátra? Nos ha az MS be akarja fogni az ESX ram kezelését, még van mit csinálni:
- nincs page sharing
- nincs kernel swap
- az ESX 4.1-ben lévő Memory Compression újabb elképsztő megoldást hozott, ami szerintem egy újabb mérföldkő ram kezelés terén.




A page sharing nem véletlenül hiányzik. Érdemes ezeket a technológiai elemzéseket elolvasni:
http://blogs.technet.com/b/virtualization/archive/2010/04/07/dynamic-memory-coming-to-hyper-v-part-3.aspx
http://blogs.technet.com/b/virtualization/archive/2010/04/21/dynamic-memory-coming-to-hyper-v-part-4.aspx
A kernel swap-ot (second level paging) jó okkal hagytuk el: http://blogs.technet.com/b/virtualization/archive/2010/05/20/dynamic-memory-coming-to-hyper-v-part-5.aspx
A Memory compression szép funkció, grat. Szívesen olvasnék az új HA skálázhatóságról, a VMAX együttműködésről és egyéb I/O javításokról.
Üdv:
Tamás