Hyper-V Dynamic Memory

Hyper-V Dynamic Memory

  • Comments 2
  • Likes

Jedną z nowości dostępnych w SP1 do Windows 2008 R2 jest Hyper-V Dynamic Memory. Ale o co chodzi tak naprawdę?

W tej chwili, podejście Hyper-V do RAMu można ująć następująco: RAM hosta dzielony jest przez administratora na kawałki i każda maszyna wirtualna dostaje na wyłączność swój obszar. Maszyna się nie mieści – to jej problem. Zajmuje tylko 10% przeznaczonej dla niej pamięci? Trudno, 90% nie jest używane, ale jest gotowe na zapas.

O ile w przypadku serwerów, nie jest to częstym problemem (mądry administrator jest w stanie racjonalnie przydzielić pamięć), o tyle już w przypadku stacji VDI, dynamiczne zarządzanie pamięcią robi się dość istotne. Dać wszystkim klientom po 2GB, licząc że nie zabraknie i godząc się z tym, że większość jest niewykorzystana? Sprawdzać, kto wymaga najwięcej (Excel potrafi całkiem dużo pamięci zjeść) i przydzielać dostępny nadmiar przy najbliższym restarcie? Ale co, jeżeli ten arkusz używany jest tylko pod koniec tygodnia?

A gdyby przydzielać RAM tak jak przydzielany jest procesor? Która maszyna wirtualna poprosi – ta dostanie. A jak przestanie potrzebować, to będzie dla innych.

I tutaj właśnie zaczyna się Hyper-V Dynamic Memory. Dla każdej maszyny wirtualnej, określić można ile RAMu ma mieć minimalnie (z taką ilością maszyna wystartuje) i ile maksymalnie (Hyper-V nie da więcej).

 hvdm3

I teraz, jeżeli maszyna zacznie potrzebować pamięć – Hyper-V ją chętnie da. Od strony VM wygląda to dość ciekawie, bo ilość pamięci widziana przez system rośnie! Gdy pamięć przestanie być potrzebna, Hyper-V ją odbierze i może dać innej maszynie, która akurat jest w potrzebie. Wprawdzie na maszynie wirtualnej ilość widzianej pamięci nie spadnie, ale nie ma to większego znaczenia. Gdy będzie znowu potrzebna, Hyper-V czuwa i przydzieli ile trzeba. Task Manager wprawdzie od tego trochę głupieje, ale jeżeli dla kogoś jest to najważniejsza aplikacja w systemie – nie musi przecież używać Dynamic Memory.

W menedżerze Hyper-V wygląda to tak, że wyświetlana jest ilość pamięci, którą w danej chwili ma maszyna wirtualna oraz ilość "nadmiaru", RAMu przydzielonego w stosunku do RAMu faktycznie potrzebnego stacji. Jeżeli stacja potrzebuje więcej niż ma – trudno. W takiej sytuacji wyświetlany jest ujemny nadmiar.

hvdm1

Warto wiedzieć, że w Dynamic Memory nie ma żadnego "overbookingu". Nie da się maszynom dać więcej pamięci niż faktycznie jest w hoście i każda strona pamięci RAM, przydzielana jest tylko jednej maszynie wirtualnej równocześnie. Zyskiem jest jednak to, że dana porcja RAMu raz może należeć do maszyny X a raz do maszyny Y, stosownie do bieżących potrzeb tych maszyn.

Całość oczywiście wymaga ścisłej współpracy pomiędzy systemem maszyny wirtualnej a Hyper-V. Nie jest to jednak problem dla Integration Services i świetnie działa z Windows 2003, Windows 2008, Windows 2008R2 i wyższymi edycjami Windows 7. Wszystko w wersjach x86 i x64.

Do ogólnego obrazu rozwiązania, warto dorzucić informacje, że:

  • Można przydzielać pamięć statycznie – po staremu
  • Można (również dla pracującej maszyny!) określić jak duży "zapas" pamięci Hyper-V powinien utrzymywać na maszynie wirtualnej
  • Można (również dla pracującej maszyny!) określić jak ważna jest dana maszyna i czy w razie problemów z dostępną pamięcią to ona dostanie RAM, czy jakaś inna

Co ważne, całość nie powoduje spowolnienia pracy użytkownika. Nawet maszyna totalnie ogołocona z pamięci, bardzo sprawnie reaguje na zwiększone zapotrzebowanie i użytkownik nawet nie zauważy, że pamięć, której akurat nie używa, wykorzystywana jest przez kogoś, kto akurat ma taką potrzebę.

Nic tylko używać. Wirtualizacja, która od dawna służy do zwiększenia stopnia efektywności wykorzystania sprzętu, robi to jeszcze lepiej.

Autor: Grzegorz Tworek [MVP]

Comments
  • A propos pamięci - czy w SP1 dla W2k8 R2 wprowadzono nareszcie Live Migration dla przenoszonych maszyn wirtualnych w klastrze Failover?

    Chodzi oczywiście o proces automatycznego przenoszenia, gdy jeden host, na którym aktualnie wirtualna maszyna działa, padnie, a nie o ręczne przenoszenie gdy oba hosty działają.

  • Live Migration jest oczywiście nadal jest. A automatycznego przenoszenia nie wprowadzono. Konkurencji zajęło opracowanie tej funkcjonalności dwanaście lat, a Hyper-V ma dopiero dwa. Poczekajmy do SP2 albo kolejnej wersji systemu :)

    Poza tym, z tego, co kojarzę, rozwiązanie o którym piszesz jest na tyle młode i ograniczone, że w dużych środowiskach produkcyjnych nikt tego nie używa.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment