Zastosowanie dysków wirtualnych VHD

VHD (skrót od. Virtual Hard Disk) to plik obrazu pełniący rolę dysku twardego. Potrafi przechowywać dane o takiej samej strukturze jak jego fizyczny odpowiednik. Obowiązuje tutaj również podział na partycje oraz system plików NTFS czy FAT32. Wirtualne dyski twarde, często określane przeze mnie jako kontenery, pozwalają na odpalanie maszyn wirtualnych z różnymi systemami operacyjnymi w czasie rzeczywistym. Jest to ich podstawowa funkcja do jakiej zostały stworzone. Stanowią główny składnik w Hyper-V, ale wykorzystuje je również VirtualBox. Niemniej jednak wirtualne dyski możemy traktować jako obrazy przechowujące wrażliwe lub mniej wrażliwe dane i sposób na lepsze zarządzanie naszymi zasobami czy kolekcjami.

Trochę historii

Popularność dysków w moim odczuciu zaczęła się od wprowadzenia na rynek systemu Windows 7. To on jako pierwszy pozwalał na bezpośrednią instalację i uruchomienie z pliku VHD. Posiada również wbudowane mechanizmy pozwalające na podmontowanie partycji i korzystanie z niego bez konieczności stosowania zewnętrznych programów. Windows 7 zapoczątkował również wirtualizację starszych systemów. Zaczęło się od funkcji Windows XP Mode, gdzie odpalano wirtualną maszynę, a następnie w niej instalowano aplikację, która na nowszym systemie po prostu nie działała. Dyski VHD opracowane były już w 2005 roku. Poznałem je jednak dopiero po przesiadce na Windows 7. Chodź wirtualizację systemów zacząłem na VirtualBoxie jeszcze za czasów Windows XP. Hyper-V nie było wtedy popularne, a co najważniejsze niedostępne z poziomu konsumenckich wersji.

Więcej partycji

Dysk fizyczny możemy dzielić na partycję tylko do jakiegoś momentu. W przypadku sektora MBR (Master Boot Record), możemy ograniczyć się do 4 partycji. Limit ten został zniesiony dopiero po wprowadzaniu GPT (GUID Partition Table), gdzie tego limitu już nie ma. Jednak podział fizycznego dysku na partycje to utraty przestrzeni, ponieważ zmniejszenie czy rozszerzenie po dłuższym czasie użytkowania nie zawsze jest możliwe. Trzeba wtedy zastosować profesjonalne oprogramowanie, które oprócz podziału przepisuje dane w inne miejsce. Z wirtualnymi dyskami takiego problemu już nie ma. Plików VHD możemy mieć bardzo dużo. Nie zawsze muszą być aktywne/podmontowane. Zatem, gdy potrzebujemy zajrzeć do środka wystarczy zamontować i przypisać literę. Na czas pracy plik VHD jest w użyciu, a po zakończeniu odłączamy i zwalniamy. W ten sposób możemy również chronić nasze dane przed awarią czy niepowołanym dostępem.

Lepsze zarządzanie

Pojedynczy plik VHD możemy łatwo skopiować do innego komputera lub przerzucić na pendrive’a. Nie ma z tym żadnego problemu, tym bardziej, że dysk może być dynamicznie rozszerzany, czyli zajmuje tyle miejsca ile znajduje się w nim danych. Windows 7 czy nowszy nie ma co prawda opcji auto montowania, ale można to rozwiązać odpowiednio przygotowanym skryptem lub, w szybszy i prostszy sposób, stosując zewnętrzny program np. VHD Attach. Plik podpinany jest zaraz przy starcie systemu. Każdy nowo zalogowany użytkownik będzie go widział jak tradycyjną partycję. Możemy ograniczyć do niego dostęp tak samo jak w przypadku fizycznego dysku. Dysk wirtualny jest również kompatybilny z metodami szyfrowania danych np. BitLocker.

Do czego taki dysk można przeznaczyć? Poza wirtualizacją, VHD można zastosować do przechowywania ważnych dokumentów, programów, zdjęć, wideo itd. Ja jednak w swojej infrastrukturze stosuje wirtualne dyski do magazynowania informacji, które chce odseparować od pozostałych. Istnieje również pewna reguła przedstawiona poniżej.

Gdy z danego nośnika pliki tylko odczytujemy => ISO (Obraz dysku)
Gdy z danego nośnika pliki przetwarzamy, czyli zapisujemy i odczytujemy => VHD

Pracując nad jakimś projektem często mnoży mi się mnóstwo plików powiązanych. Utrzymanie ich w jednym folderze często doprowadza do fragmentacji partycji. Często też wolę odwoływać się do konkretnej litery i katalogu maksymalnie zagnieżdżonego o dwa poziomy niż męczyć się z długimi ścieżkami. Oprócz tego szybciej i łatwiej się robi backup całego stanu struktury plików niż pojedynczego folderu. Tworzenie dodatkowej partycji nie ma sensu, ponieważ tracimy cenną przestrzeń. Cofnięcie już raz utworzonej partycji, przynajmniej po dłuższym czasie użytkowania jest bardzo czasochłonne. Otóż pliki zapisane na tym obszarze dysku muszą być przeniesione do innego. Przeważnie nie da się tego zrobić, gdy aktywny jest system operacyjny. Pozostaje posiłkować się narzędziami zewnętrznymi, startującymi z poziomu BIOSu lub EFI.

Separacja

Dysk VHD jest oddzielną strukturą na której możemy wykonywać różne operacje i zmieniać jego właściwości. Istnieją programy wykorzystujące jego zalety. Np. Deslock firmy ESET. Tworzy zaszyfrowane obrazy VHD, stanowiące sejf ważnych plików. To samo możemy osiągnąć stosując funkcję BitLocker systemu Windows. Nie musimy więc szyfrować całego dysku. Jeśli mamy ważne określone zasoby lub chcemy je udostępnić, wystarczy zamieścić w pliku VHD.

Ograniczenia

Dyski wirtualne VHD jak i każdy inny format charakteryzuje się minimalnie mniejszą prędkością zapisu i odczytu. Przy plikach o małych rozmiarach praktycznie niezauważalne. Przy większych operacjach już tak. Dlatego wykorzystuje się tutaj dysk wirtualny o stałym rozmiarze, czyli takim, który zajmuje tyle samo miejsca na dysku fizycznym co jego zdefiniowana przestrzeń. Rozwiązuje to w większym stopniu problem z transmisją danych, ale tracimy przestrzeń, która może być w rzeczywistości niewykorzystana. Przenoszenie takiego obrazu jest często czasochłonne i bezsensowne. VHD zajmuje parę giga, a pliki w nim parę kilo. Wydłuża to czas kopiowania mimo, że rzeczywista zawartość jest znacznie mniejsza.

Drugi problem powiązany jest z dynamicznym rozszerzaniem dysku. Wraz z napływem danych rozmiar obrazu rośnie. Zajmuje tyle samo ile zawartość jaka się w nim znajduje plus tablica partycji. Schody zaczynają się kiedy danych na dysku wirtualnym ubywa, a jego rozmiar już niekoniecznie. To jest moim zdaniem jedna z wad VHD. Gdy nagle osiągniemy rozmiar 500 GB i sformatujemy go, fizyczna przestrzeń nadal będzie zajęta na tym samym poziomie. Hyper-V ma wbudowane narzędzia, które pozwalają ten dysk zmniejszyć. Nie uświadczymy jednak tego w Windows 7. Pozostaje wtedy korzystać z zewnętrznych narzędzi. Ponadto kiedy dysk znajduje się na komputerze, który nie ma takich aplikacji musimy go przenieść. A to kolejne godziny czekania. Lepiej wtedy bezpośrednio przenieść zawartość na nowy dysk.

Obraz ISO, a VHD

Jeszcze na koniec chciałbym przybliżyć różnice między obrazem ISO, a VHD. Otóż obraz ISO jest odpowiednikiem dysków CD/DVD lub BluRay. Montuje się je w wirtualnym napędzie, który odpowiada fizycznemu napędowi płyt. Za emulację odpowiadają zewnętrzne programy takie jak Daemon Tools, PowerISO, UltraISO czy Alcohol 120%. Od Windows 8 w górę, system posiada wbudowane moduły, które pozwalają na podmontowanie obrazów ISO. Pozostałymi możemy również je tworzyć.

ISO to format, który został opracowany z myślą na przechowywanie kopii naszych płyt CD/DVD. Nastawiony jest z góry tylko na odczyt zawartości. Jakakolwiek zmiana wymaga zapisu całego obrazu od nowa. Wykorzystuje go również wirtualizacja, jako odpowiednik płyty w wirtualnym napędzie maszyny. Z niej instaluje się systemy operacyjne czy programy.

Podsumowując, VHD to wirtualny odpowiednik fizycznego dysku twardego, a obraz ISO płyty CD/DVD.

Podsumowanie

Gdy posiadasz dużą przestrzeń dyskową liczącą kilkaset GB lub kilka TB, warto rozważyć zastosowanie dysków wirtualnych niż dzielić przestrzeń na partycję. Tym bardziej, że VHD jest bardziej elastyczne i optymalne. Dzięki dyskom VHD zabezpieczymy również swoje dane i zapewnimy lepszą organizację.