Deduplikować czy nie?

0

Firmy coraz częściej wdrażają wirtualizację serwerów i desktopów, a wiele z nich rozbudowuje swoją wirtualną infrastrukturę. To wymusza stosowanie nowych technologii macierzowych, które są przystosowane do pracy w takim środowisku, ponieważ obrazy maszyn wirtualnych znacznie się różnią od obrazów dysków serwerów fizycznych.

Serwer wirtualny to po prostu duży plik sformatowany tak, żeby przypominać dysk twardy (VHD, VMDK lub w innym formacie). Ten paradygmat prowadzi do diametralnych zmian w sposobie dostarczania zasobów serwera. W efekcie rozwiązania, które dobrze współpracują z fizycznymi macierzami, mają szereg ograniczeń obejmujących nie tylko deduplikację, omawianą w niniejszym artykule.

Deduplikacja danych obejmuje różne technologie, które analizą dane pod kątem powtarzających się treści (ciągów znaków) w celu zredukowania przestrzeni dyskowej zajmowanej przez dane oraz zmniejszenia przepustowości łączy wykorzystywanej do ich przesłania. Deduplikacja jest bardzo użyteczną techniką w wielu środowiskach, ale przypadku wirtualnego środowiska specyficzna natura wirtualizacji sprawia, że deduplikcja się nie sprawdza. Jeśli deduplikacja nie jest wykorzystywana, bloki danych nie są analizowane w momencie przesyłania z maszyny wirtualnej do kanałów I/O.

Dlaczego nie deduplikować?
W środowisku wirtualnym, szczególnie w przypadku wirtualizacji desktopów, większość maszyn wirtualnych jest pochodną jednej maszyny wirtualnej. Referencyjny obraz maszyny wirtualnej często jest określany mianem golden image. Taki obraz zawiera system operacyjny oraz aplikacje. Dostarczenie nowego serwera polega na stworzeniu maszyny wirtualnej, która jest kopią referencyjnego obrazu. Taka kopia jest wierną repliką głównego obrazu. Z czasem pojawi się w niej wiele zmian i nabierze indywidualnego charakteru, ostatecznie ewoluując znacznie od oryginału. Nawet jeśli kopia będzie się zmieniać, wciąż będzie zawierać wiele elementów identycznych z oryginałem. Niektóre klony mogą się różnić tylko w niewielkim stopniu, podczas gdy inne mogą zawierać bardziej zauważalne zmiany. Niezależnie od tego, wszystkie klony będą w jakimś stopniu różnić się od oryginału.

Wirtualne dyski maszyn wirtualnych zawierają system operacyjny oraz specyficzne dla każdej maszyny wirtualnej ustawienia. Zasoby, które składają się na maszynę wirtualną, to wirtualny dysk, zasoby serwera (procesor i pamięć) oraz przestrzeń dyskowa na macierzy. Aby uruchomić dużą liczbę maszyn wirtualnych, naturalnym procesem jest stworzenie referencyjnego obrazu, a następnie klonowanie go wiele razy. Pojedynczy obraz referencyjny może być wykorzystany do stworzenia bardzo wielu pochodnych maszyn wirtualnych. W większości przypadków przestrzeń dyskowa wykorzystywana do przechowywania kopii tego obrazu jest zajmowana przez powtarzające się dane, identyczne z oryginalnym obrazem i których część nigdy się nie zmieni.

Aby tego uniknąć, w macierzach dyskowych implementuje się technologie deduplikacji. Jednak skanowanie i analiza dużych ilości danych jest operacją pochłaniająca dużo zasobów. Typowo wymaga to skanowania każdego bloku danych w celu stworzenia wzorca danych, a następnie porównywania tego wzorca ze zbiorem danych, a następnie wykonania dodatkowych obliczeń i porównań w przypadku wykrycia, że taki wzorzec już wystąpił. Jest to trudne do wykonania w czasie rzeczywistym, gdy przetwarzane są duże ilości danych, ze względu na czas, jaki algorytm skanujący potrzebuje do przetwarzanie określonego zbioru danych. Skalowalne technologie deduplikacji będące w stanie przetwarzać na bieżące dane w systemach transakcyjnych wymagają szybkości przetwarzania i ilości pamięci wykraczający poza rozwiązania dostępne obecnie na rynku.

Ponieważ technologie deduplikacji są tak zasobożerne, że nie nadają się do użycia w czasie rzeczywistym w środowisku maszyn wirtualnych, w większości przypadków ich stosowanie nie ma sensu. Środowisko uruchomieniowe obecnych systemów operacyjnych jest duże – w większości są to pliki wykonywalne, a pozostała niewielka część przechowuje domyślne dane konfiguracyjne. Pliki wykonywalne nigdy się nie zmienią, natomiast ilość danych unikalnych dla danej maszyny wirtualnej nigdy nie przekroczy 10-20 procent wielkości obrazu tej maszyny. Mają to na uwadze, najlepszym sposobem deduplikacji maszyn wirtualnych jest stałe dostarczanie nowych obrazów dysków.

Wybierając podejście bez deduplikacji, identyczne bloki danych są współdzielone pomiędzy maszynami wirtualnymi. Kiedy dane są zapisywane do referencyjnego obrazu lub jednego z klonów, współdzielony blok przestrzeni dyskowej przestaje być współdzielony i staje się oddzielnym blokiem przypisanym tylko do danej maszyny wirtualnej. Niezmienione bloki pozostaną w puli współdzielonych danych i nie będą zajmować dodatkowej przestrzeni dyskowej. Dzięki temu nie ma potrzeby deduplikacji, ponieważ nie powstają redundantne dane. Takie podejście pozwala szybko osiągnąć korzyści z ograniczenia wykorzystania przestrzeni dyskowej.

Rafał Janus

PODZIEL SIĘ

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ