Typy dysków w maszynach wirtualnych

Często początkujący amatorzy wirtualizacji zadają sobie pytanie dotyczące typu dysku, jaki powinni wybrać przy tworzeniu maszyny wirtualnej.

Technologia Hyper-V daje nam 3 typy dysków:

  • Dynamicly Expanding VHD
  • Fixed-Size VHD
  • Pass Through Disks

No i teraz oczywiście pada pytanie – czym one się róźnią, które powinienem wybrać, które dają mi największą wydajność ?

Ważne jest jedno – nie ma jednej, właściwej odpowiedzi na to pytanie. Wszystko zależy od tego do czego chcemy wykorzystać maszyny wirtualne i jak chcemy z nich korzystać.

Przejdźmy więc już teraz do konkretów – opowiem o każdym typie dysków i postaram się opowiedzieć o plusach i minusach każdego rozwiązania.

Dynamically Expanding VHD

Jest to typ dysku, który przy jego tworzeniu jest bardzo małym plikiem (kilka MB) i rośnie w trakcie jak dane są zapisywane na tym dysku.

Domyślnie to właśnie taki typ dysku proponuje Hyper-V.

Kiedy tworzymy taki dysk określamy jego maksymalny rozmiar (domyślnie 127GB, ale może być maksimum do 2TB). Określa on jak duży może być maksymalnie nasz dysk. Ale nie oznacza to, że dysk od razu zajmie nam 127GB na fizycznym dysku – na początku będzie to pewnie około 5MB, a miarę potrzeb będzie się poszerzać.

Oczywiście nic nie stoi na przeszkodzie aby, jeśli nasz dysk będzie już miał 127GB, powiększyć go przy użyciu Hyper-V Disk Wizard.

Ze względu na to, że dynamiczne dyski rozsną w miarę zapisywania danych to i dane zapisywane na dysku fizycznym (na maszynie hosta) stają się z czasem coraz bardziej pofragmentowane. I to oczywiście odbija się na wydajności.

Plusy:

  • Wygoda. Nie musimy od razu rezerwować sobie maksymalnej wielkości dysku i nie tracimy miejsca na maszynie fizycznej.
  • Przenośność . W związku z tym, że pliki VHD są z definicji mniejsze na początku to łatwiej je przenosić między maszynami

Minusy:

  • Nieokreślona pojemność . Prosty przykład – tworzycie 10 maszyn wirtualnych z maksymalnym rozmiarem 100GB i wrzucacie je na dysk 500GB. Na początku wszystkie zajmują powiedzmy 10 x 5GB = 50GB i jest wszystko OK. Ale jak dyski Wam się rozrosną i będą podchodziły pod 100 GB każdy to będziecie mieli całkiem spory kłopot.
  • Fragmentacja i obniżenie wydajności. Dyski rosną w miarę potrzeb co oznacza, że za każdym razem przy powiększeniu muszą szukać miejsca na fizycznym dysku – to powoduje zwiększoną fragmentację. Dodatkowo kiedy taki dysk rośnie to NTFS automatycznie musi wyzerować nową alokację (kwestie bezpieczeństwa) co daje nam dodatkowe obniżenie wydajności.

Fixed-Size VHD

Ten typ dysku używa tyle fizycznie miejsca na dysku maszyny hosta, ile określimy przy jego tworzeniu. Czyli jeśli stworzymy dysk o wielkości 100GB to musimy mieć od razu tyle miejsca na fizycznym dysku. Bo po stworzeniu takiego dysku od razu tworzony jest plik VHD o wielkości 100GB.

I w przeciwieństwie do dysków dynamicznych, te nie rozszerzają się – co za tym idzie nie ma problemów z fragmentacją dysku hosta.

A dodatkowo ze względu na to, że przed każdym zapisem na dysku nie musi on być w razie potrzeby powiększany – to i wydajność jest generalnie lepsza.

Plusy:

  • Wydajność . Kiedy tworzymy taki plik to od razu alokujemy sobie całe miejsce na niego na dysku. Zazwyczaj jest duża szansa że dysk ten zapisany zostanie w jednym ciągu (bez fragmentacji) dzięki czemu dostęp do niego będzie dużo szybszy. Dodatkowo NTFS nie ma dodatkowej pracy przy powiększaniu obszaru dysku kiedy jest to potrzebne.
  • Przewidywalność pojemności. Od razu tak naprawdę wiemy ile potrzebujemy miejsca na fizycznym dysku i nie będziemy mieli problemów jeśli nagle w samej maszynie będziemy musieli np. zainstalować coś dużego.

Minusy:

  • Przenośność . Niestety kiedy stworzysz dysk np. 100GB a będziesz miał danych na dysku 1GB to i tak plik dysku VHD będzie zajmował 100GB. I to samo 100GB trzeba będzie na przykład kopiować przez sieć.

Pass-Through Disks

Zarówno przy dyskach dynamicznych jak i statycznych obraz dysku (plik VHD) zapisywany jest na dysku maszyny hosta.

Dyski pass-through są innego rodzaju dyskami, gdzie LUN jest skojarzony z maszyną wirtualną i maszyna ta zapisuje dane bezpośrednio do LUNa bez pośrednictwa wirtualnego dysku. Co za tym idzie – w tym wypadku nie ma pliku VHD!

Plusy:

  • Wydajność . Podobnie jak dyski “fixed-size” tak i te są bardzo szybkie.
  • Wsparcie dla dysków > 2TB. Pliki z dyskami wirtualnymi (VHD) mają ograniczenia do 2TB maksimum każdy. Dzięki dyskom pass-throung limit ten jest zależny tylko od tego czy system operacyjny obsłuży większy plik i czy mamy tyle miejsca na dysku fizycznym.

Minusy:

  • Brak możliwości robienia snapshotów. Kiedy tworzony jest snapshot maszyny wirtualnej, Hyper-V zapisuje stan maszyny i tworzy dysk różnicowy. Tego samego niestety nie jesteśmy w stanie zrobić z dyskiem fizycznym.
  • Przenośność . W wypadku wirtualnych dysków (VHD) wszystkie dane z wirtualnej maszyny zapisywane są w jednym pliku. Dzięki temu w prosty sposób możemy kopiować całą maszynę, przenosić ją i odtwarzać w innych miejscach.

To co w końcu wybrać?

Pewnie po przeczytaniu tego co napisałem nasuwa się Wam jedno czy dwa zasadnicze pytania:

No więc który z typów dysków VHD ma największą wydajność?

Jeśli miałby być ranking to raczej taki:

  1. Pass-Through Disks / Fixed-Size VHD
  2. 2. Dynamically Expanding VHD

Dyski Pass-through i Fixed size pod kątem wydajności generalnie oferują te same możliwości.

No to w takim razie których lepiej używać?

Moim skromnym zdaniem w środowisku produkcyjnym najlepiej korzystać z dysków “fixed size”, bo oferują tą samą wydajność co dyski “pass through”, a dodatkowo:

  1. Są przenośne. Bo przecież dane zapisują się do pliku VHD, który w każdej chwili możemy sobie skopiować, przenieść i uruchomić na innej maszynie.
  2. Można je snapshotować. A nie można tego zrobić z dyskami “pass through"

Jeśli korzystacie z maszyn wirtualnych w środowisku testowym (zwłaszcza na laptopie) to korzystajcie z dysków “dynamic expanded”. Bo wtedy każdy kawałek dysku jest cenny a plik 5 GB przeniesiemy szybciej i wygodniej niż plik 100 GB.

A z jakimi typami dysków współpracuje Quick Migration?

Dobra wiadomość - Quick Migration może współpracować z każdym z tych 3 typów dysków.

Ufff… Mam nadzieję, że po tej przydługiej lekturze nie zanudziłem Was za bardzo. Mam nadzieję, że dzięki tej wiedzy będziecie w stanie lepiej dobrać typy dysków wirtualnych do Waszych potrzeb.

A wpis inspirowany był dyskusją (a w zasadzie monologiem) na wewnętrznej grupie z ekipą od Hyper-V.