Wykorzystanie technologii Volume Shadow Copy firmy Microsoft do tworzenia spójnych kopii zapasowych
Podczas tworzenia kopii zapasowej maszyny wirtualnej lub fizycznej z uruchomionymi aplikacjami, zwłaszcza aplikacjami intensywnie zapisującymi dane w plikach i bazach danych, zapewnienie spójności danych kopii zapasowej ma kluczowe znaczenie. Spójne dane kopii zapasowej ułatwiają odzyskiwanie bez uszkodzenia danych i opóźnień. W tym celu firma Microsoft opracowała technologię VSS.
Ten wpis na blogu wyjaśnia, czym jest Volume Shadow Copy Service (VSS), jak działa oraz dlaczego ta technologia jest ważna podczas tworzenia kopii zapasowych maszyn wirtualnych i fizycznych opartych na systemie Windows.
Czym jest VSS?
Volume Shadow Copy Service (VSS) — natywna funkcja systemów operacyjnych Windows — ułatwia tworzenie spójnych kopii zapasowych zgodnych z aplikacjami. Aby zapewnić spójność danych kopii zapasowej, wykonywane są następujące czynności:
- VSS tymczasowo zatrzymuje operacje zapisu wykonywane przez aplikacje.
- Bufory z pamięci są zapisywane na dysku, czyli opróżniane, a system plików zostaje zamrożony.
- W systemie operacyjnym Windows tworzona jest migawka woluminu, nazywana również kopią w tle.
Volume Shadow Copy, nazywana również Volume Snapshot Service, to zestaw COM (Model obiektowy komponentów) interfejsów w systemie Windows, które zapewniają strukturę umożliwiającą tworzenie spójnych kopii zapasowych dla różnych aplikacji. VSS wydano po raz pierwszy wraz z systemami Windows XP i Windows Server 2003.
Dlaczego potrzebujesz technologii VSS
Spójność danych aplikacji ma znaczenie w przypadku kopii zapasowych maszyn wirtualnych i serwerów fizycznych. Spójność gwarantuje, że aplikacje działające na maszynach wirtualnych lub fizycznych będą w pełni funkcjonalne po ich przywróceniu z kopii zapasowej.
Bez VSS otrzymujesz niespójną kopię zapasową. Taka kopia zapasowa jest tworzona przez zwykłe kopiowanie każdego bloku w stanie, w jakim znajduje się on w chwili kopiowania. Załóżmy, że plik jest stale używany przez aplikację, taką jak baza danych lub aplikacja systemowa. Aplikacja ta nieustannie zmienia dane w otwartym pliku, zapisując lub usuwając bloki. Podczas kopiowania pierwszej części pliku zmieniają się bloki używane przez inne części pliku. Zanim pozostałe części pliku zostaną skopiowane do repozytorium kopii zapasowych, bloki w pierwszej części ulegną zmianie. Otrzymujesz wówczas bloki danych, które nie są spójne i nie przedstawiają jednego określonego punktu w czasie.
Jednym ze sposobów uniknięcia tej sytuacji jest oparty na migawkach tworzenie kopii zapasowej maszyny wirtualnej. Po rozpoczęciu procesu tworzenia kopii zapasowej tworzona jest migawka, czyli dokładna kopia maszyny wirtualnej. W trakcie tego procesu wszystkie dyski maszyn wirtualnych (które w środowiskach VMware są reprezentowane jako pliki .vmdk) stają się tylko do odczytu. Aby przechowywać zmiany wprowadzone podczas tworzenia kopii zapasowej na dysku głównym, VMware ESXi tworzy plik różnicowy połączony z głównym plikiem .vmdk. Po utworzeniu pliku różnicowego oprogramowanie do tworzenia kopii zapasowych rozpoczyna kopiowanie danych z pliku .vmdk tylko do odczytu. Po zakończeniu procesu tworzenia kopii zapasowej plik różnicowy jest łączony z plikiem .vmdk.
To podejście może dobrze sprawdzać się w przypadku systemów plików o niezbyt dużym obciążeniu, takich jak wewnętrzne magazyny danych lub serwery internetowe. Jeśli jednak proces tworzenia kopii zapasowej rozpocznie się w momencie, gdy trwają określone transakcje i wykonywane są operacje wejścia/wyjścia, dane mogą zostać utracone. W przypadku korzystania z aplikacji lub baz danych, takich jak Microsoft SQL Server, Active Directory lub Exchange Server, nie można po prostu zamknąć pliku, a następnie dołączyć do niego danych. W takiej sytuacji pomocna może być usługa Volume Shadow Copy Service (VSS). Technologia ta umożliwia tworzenie kopii plików z określonego punktu w czasie, które są otwarte i używane, bez naruszania integralności ani użyteczności tych kopii.
Jak działa usługa Volume Shadow Copy Service
Aby zrozumieć, jak działa VSS, należy najpierw omówić komponenty składające się na tę funkcję. Główne komponenty VSS to:
- Dostawca VSS stanowi podstawowy element systemu VSS, odpowiedzialny za tworzenie kopii cieniowych (migawek) woluminów. Dostawca VSS może mieć postać oprogramowania lub sprzętu. Programowy dostawca VSS wykorzystujący mechanizm copy-on-write jest dołączony do systemu operacyjnego Windows. Dostawcy sprzętowi są zazwyczaj używani wraz z magazynem SAN (siecią pamięci masowej). Dostawcy sprzętowi odciążają system operacyjny hosta podczas tworzenia kopii w tle.
- Moduły zapisujące to komponenty oprogramowania, które zapisują dane do plików i baz danych w celu zapewnienia spójności. Każda aplikacja obsługująca VSS dodaje swój moduł zapisujący do systemu operacyjnego podczas instalacji. Przykładami aplikacji udostępniających moduł zapisujący VSS są Microsoft SQL Server i Exchange Server.
- Moduł żądający to komponent oprogramowania, który wydaje dostawcy VSS polecenia dotyczące rozpoczęcia lub zakończenia działania (tworzenia, usuwania lub importowania kopii cieniowych). Żądanie może pochodzić od natywnych komponentów systemu Windows (takich jak NTBackup lub Snapshot Manager dla Hyper-V) lub od aplikacji innej firmy, np. oprogramowania do wykonywania kopii zapasowych.
- Usługa VSS jest komponentem systemu operacyjnego, który zapewnia, że wszystkie pozostałe komponenty mogą się ze sobą komunikować i współpracować.
Migawki są tworzone na poziomie woluminu, a usługa VSS operuje na blokach (a bloki są wykorzystywane przez pliki). Dlatego nie można tworzyć migawek plików ani folderów. Kopia cieniowa może być przechowywana na tym samym woluminie lub na innym woluminie. Miejsce na woluminie przeznaczone do przechowywania kopii cieniowych nazywa się obszarem różnicowym.
Folder „System Volume Information” służy do przechowywania plików kopii cieniowych VSS. Pliki te mają identyfikatory w postaci 3517271a-d214-3a47-c5ea-01137a4fe675.
Technologia VSS może być wykorzystywana jako natywne narzędzie systemu Windows do tworzenia migawek w określonym momencie (woluminów dyskowych). Kopie te umożliwiają cofnięcie zmian i przywrócenie całego woluminu lub poszczególnych plików do zapisanego stanu. Niemniej jednak w celu zapewnienia bardziej niezawodnej ochrony danych zaleca się tworzenie pełnej kopii zapasowej, która zostanie zapisana na nośniku zewnętrznym.
VSS działa w trybie przyrostowym – system Windows może tworzyć wiele migawek woluminów jedna po drugiej. Po utworzeniu pierwszej kopii w tle usługa VSS śledzi zmiany na dyskach, dzieląc dane na bloki o rozmiarze 16 KB. Jeśli na dysku wystąpią zmiany, usługa zapisuje cały blok do kopii w tle. W rezultacie nie ma potrzeby kopiowania pełnego zestawu danych przy każdym nowym zestawie migawek, a kopiowane są tylko zmienione bloki.
Główne wymagania i ograniczenia usługi VSS :
- Do tworzenia migawek VSS wymagane jest co najmniej 300 MB miejsca na dysku.
- Domyślnie maksymalna liczba migawek woluminów wynosi 64.
- System Windows rezerwuje 10% przestrzeni woluminu na kopie cieniowe.
Należy pamiętać, że migawki VSS uruchamiane przez aplikację do wykonania kopii zapasowej są zazwyczaj usuwane po zakończeniu zadania wykonania kopii zapasowej.
Natywne narzędzia do zarządzania kopiami cieniowymi VSS
Do zarządzania kopiami cieniowymi woluminów można używać natywnych narzędzi systemu Windows. Znajomość ich działania w kontekście migawek może pomóc w lepszym zrozumieniu technologii VSS oraz w rozwiązywaniu ewentualnych problemów (na przykład tymczasowej migawki VSS, która nie została usunięta po wykonaniu zakończonej kopii zapasowej).
Niektóre opcje VSS są dostępne w graficznym interfejsie użytkownika systemu Windows, ale wszystkie opcje są dostępne w wierszu poleceń, co jest dla nas bardziej interesujące. Istnieją dwa narzędzia VSS, z których można korzystać w Windows PowerShell lub CMD:
vssadmin– dostępne we wszystkich wersjach systemu Windows począwszy od Windows XP (w tym Windows 10), z wyjątkiem Windows 8.diskshadow– dostępne tylko w wersjach systemu Windows Server. Jest to zaawansowana implementacja narzędzia vssadmin , która umożliwia nie tylko pracę w trybie interaktywnym, lecz także tworzenie skryptów.
Należy pamiętać, że te dwa narzędzia różnią się od siebie i działają w różnych kontekstach. Migawki utworzonej w narzędziu vssadmin nie można zarządzać w narzędziu diskshadow i odwrotnie. Można wyświetlić migawkę utworzoną za pomocą innego narzędzia, ale nie można wykonywać na niej żadnych działań.
Interfejs API usługi Volume Shadow Copy Service jest dostępny, aby umożliwić aplikacjom do tworzenia kopii zapasowych korzystanie z usługi VSS i tworzenie spójnych z aplikacją kopii zapasowych zapewniających spójność danych kopii zapasowej.
Maszyny wirtualne VMware z systemem Windows używają komponentu VMware VSS jako sterownika VSS w gościnnym systemie operacyjnym Windows w celu zapewnienia spójnego stanu. Sterownik jest instalowany podczas zainstaluj VMware Tools. W innych przypadkach, podczas korzystania ze starszych wersji systemu Windows, używany jest sterownik SYNC.
Jak jest tworzona migawka
Po utworzeniu migawki (migawki woluminu) jej rozmiar wynosi 0 bajtów. Gdy zapisywane są nowe dane, są one zapisywane na dysku (czyli w miejscu, w którym powinny się znajdować), natomiast stare dane są zapisywane w migawce, aby można było je później przywrócić. W rezultacie rozmiar migawki rośnie.
Istnieją dwa główne sposoby zapisywania danych podczas tworzenia migawki:
Redirect on write (RoW): zapisywanie nowych bloków w migawce (kopii w tle) i zapisywanie metadanych zawierających informacje o tym, w których blokach na dysku należy je zapisać. Takie podejście zapewnia szybki zapis danych, ale wolny odczyt danych. Jeśli konieczne jest przywrócenie stanu początkowego z chwili utworzenia migawki, usunięcie migawki zajmuje kilka sekund (niemal natychmiast). Podejście RoW jest używane w przypadku tworzyć migawki dysków wirtualnych maszyn wirtualnych (VMDK) w VMware ESXi i VMware Workstation.Copy on Write (CoW): zapisywanie nowych bloków w odpowiednim miejscu na dysku i wysyłanie zawartości zastępowanych bloków do migawki. Zapis jest wolny, ale odczyt szybki. Poprzednie migawki (poprzednie stany danych) są usuwane w ciągu kilku sekund (niemal natychmiast). Podejście CoW jest używane w przypadku migawek VSS.
Ponieważ tak wiele różnych aplikacji może zapisywać dane na dyskach, firma Microsoft utworzyła ujednolicony interfejs VSS, który po rozpoczęciu tworzenia migawki powiadamia wszystkie aplikacje, że wkrótce zostanie utworzona migawka. Treść komunikatu powiadomienia jest następująca: System utworzy migawkę – należy wstrzymać operacje zapisu i opróżnić bufory zapisu na dyskach, aby doprowadzić dane do spójnego stanu.
Przebieg tworzenia migawki VSS jest następujący:
- Podmiot wysyłający żądanie VSS sprawdza dostępne usługi, z którymi może się komunikować, wylicza urządzenia zapisujące i gromadzi metadane.
- Po zebraniu listy urządzeń zapisujących podmiot wysyłający żądanie komunikuje się z dostawcą VSS i informuje, jaką migawkę chce utworzyć oraz gdzie powinna się ona znajdować. W większości przypadków migawka znajduje się na tym samym woluminie na oryginalnym dysku. W innych przypadkach dostawcy sprzętu SAN mogą utworzyć oddzielny wolumin dla migawki, zwany migawką pamięci masowej.
-
Przygotowanie do wykonania kopii zapasowej. Ten etap obejmuje sprawdzenie rzeczywistego stanu modułów zapisujących VSS (po uzyskaniu metadanych) oraz przygotowanie do najważniejszej operacji, podczas której moduły zapisujące muszą działać jeden po drugim. Moduły zapisujące otrzymują powiadomienie, że muszą przygotować się do utworzenia migawki. Bufor systemowy jest opróżniany, a działanie aplikacji jest wstrzymywane, aby zapewnić utworzenie spójnej kopii danych. Każdy moduł zapisu musi zmieścić się w przydzielonym mu czasie, który domyślnie wynosi 60 sekund. Serwer Microsoft Exchange ma na tę operację tylko 20 sekund (czas ten jest ustalony przez firmę Microsoft).
Uwaga: 20 sekund to krótki okres. Jeśli aplikacja nie zmieści się w tym czasie, moduły zapisu zwracają błąd, a migawka nie zostanie utworzona. Jeśli wydajność magazynu jest niewystarczająca, aby zmieścić się w tym limicie czasowym, można spróbować zmodernizować sprzęt, aby rozwiązać ten problem. Na przykład można wymienić dyski HDD na dyski SSD. Alternatywnie można spróbować przenieść inne obciążenia na inną pamięć masową i wykorzystać dedykowaną pamięć masową wyłącznie dla maszyny, na której działa serwer Microsoft Exchange. Należy sprawdzić logi, aby wykryć, który moduł zapisujący nie wykonał zadania tworzenia migawki.
-
Jeśli wszystko jest w porządku, a aktywność systemu jest wstrzymana, wówczas VSS sygnalizuje, że dostawca może utworzyć kopię cieniową. Na utworzenie migawki jest tylko 10 sekund. W tym czasie żądania wejścia/wyjścia (I/O) systemu plików są tymczasowo niedostępne. W tym czasie można również utworzyć migawkę maszyny wirtualnej. Po upływie 10 sekund wszystkie moduły zapisujące zostają odblokowane, a operacje wejścia/wyjścia (I/O) są ponownie aktywne.
Uwaga: Jeśli dostawcy VSS potrzebują więcej niż 10 sekund na zatwierdzenie kopii cieniowej, operacja kończy się niepowodzeniem.
- Usługa VSS informuje programy zapisujące, że aplikacje mogą odblokować żądania wejścia/wyjścia i kontynuować zapis danych na dyskach. Jeśli korzystamy z aplikacji do wykonania kopii zapasowej i utworzono kopię zapasową przy użyciu usługi VSS systemu Windows, migawkę VSS można usunąć. Operację tę może wykonać sama aplikacja do wykonania kopii zapasowej. Alternatywnie można usunąć migawkę woluminu za pomocą poleceń
diskshadowlubvssadmin.W przypadku problemów z usługą VSS ponowne uruchomienie komputera może w wielu przypadkach rozwiązać problem, gdy inne metody nie działają. Niektóre problemy związane z ograniczeniami czasowymi (na przykład 10 sekund na utworzenie migawki) można rozwiązać poprzez modernizację sprzętu, w tym urządzeń dyskowych, lub poprzez zmniejszenie obciążenia.
Spróbuj ręcznie utworzyć migawkę i sprawdź, czy zmieścisz się w wyznaczonym limicie 20 sekund (na przykładzie serwera Exchange). W przypadku niepowodzenia uruchom ponownie komputer, zmniejsz obciążenie i spróbuj ponownie.
Począwszy od systemu Windows Server 2012, usługa VSS obsługuje udziały plików SMB w systemie Windows. Technologia VSS jest bardzo przydatna w przypadku udziałów plików, ponieważ pliki mogą być na bieżąco zapisywane przez użytkowników i aplikacje, co sprawia, że wykonywanie kopii zapasowych udziałów bez VSS stanowi wyzwanie. NAKIVO Backup & Replication 10.7 obsługuje kopia zapasowa udziału plików.
Jak działa usługa Volume Shadow Copy Service w rozwiązaniu firmy NAKIVO
Omówiliśmy ogólne zasady działania usługi VSS. Teraz przyjrzyjmy się, jak technologia VSS działa podczas tworzenia kopii zapasowych maszyn wirtualnych VMware vSphere przy użyciu dedykowanego oprogramowania do tworzenia kopii zapasowych, takiego jak NAKIVO Backup & Replication.
W skrócie usługa Volume Shadow Copy Service działa w następujący sposób: podmiot wysyłający żądanie inicjuje działanie dostawcy VSS. Dostawca przekierowuje procesy zapisujące, aby zapisywały dane do pliku dziennika, i rozpoczyna tworzenie migawki woluminu. Gdy żądający wyśle sygnał zatrzymania do dostawcy (zazwyczaj po przygotowaniu migawki), ten zaczyna przenosić dane z pliku dziennika z powrotem na wolumin.
W tym przypadku NAKIVO Backup & Replication staje się żądającym VSS podczas wykonywania kopii zapasowej maszyny wirtualnej VMware vSphere przy użyciu VSS.
- Przed rozpoczęciem wykonywania kopii zapasowej maszyny wirtualnej rozwiązanie NAKIVO zapisuje dane za pośrednictwem swojego modułu zapisu VSS.
- W momencie rozpoczęcia wykonywania kopii zapasowej NAKIVO Backup & Replication żąda od dostawcy VSS rozpoczęcia pracy. Moduł zapisu przekierowuje dane do pliku dziennika, podczas gdy wolumin zostaje „zamrożony”.
- NAKIVO Backup & Replication rozpoczyna tworzenie migawki na poziomie maszyny wirtualnej. Może to zająć od kilku sekund do kilku minut, w zależności od obciążenia pamięci masowej VMFS. W tym czasie moduł zapisu kontynuuje zapisywanie danych do pliku dziennika.
- Migawka maszyny wirtualnej została pomyślnie utworzona. NAKIVO Backup & Replication, jako zgłaszający, wysyła sygnał do dostawcy, aby zatrzymał działanie.
- Dostawca VSS przenosi zmiany z pliku dziennika na wolumin. NAKIVO Backup & Replication kopiuje blok danych migawki maszyny wirtualnej do repozytorium kopii zapasowych.
Możesz skonfigurować tryb spójności z aplikacją dla spójności danych kopii zapasowej w kreatorze na kroku
Options. W ten sposób włączasz VSS na maszynie działającej w systemie Windows w celu wykonania kopii zapasowej tej maszyny.
Podsumowanie
Usługa Volume Shadow Copy Service (VSS) to świetna technologia do utrzymania spójności kopii zapasowych maszyn wirtualnych, ale działa tylko na maszynach opartych na systemie Windows. Aby utworzyć spójne kopie zapasowe dla maszyn opartych na systemie Linux, należy zaimplementować specjalne skrypty wykonywane przed zamrożeniem i po rozmrożeniu. Rozwiązanie NAKIVO zapewnia również zautomatyzowane spójne kopie zapasowe dla serwerów i stacji roboczych opartych na systemie Linux.



