Wykorzystanie technologii kopii w tle systemu plików (Volume Shadow Copy) firmy Microsoft do tworzenia spójnych kopii zapasowych

Podczas wykonywania kopii zapasowej maszyny wirtualnej lub fizycznej z uruchomionymi aplikacjami, zwłaszcza tymi, które intensywnie zapisują dane do plików i baz danych, kluczowe znaczenie ma zapewnienie spójności danych kopii zapasowej. Posiadanie spójnych danych kopii zapasowej ułatwia odzyskiwanie bez uszkodzeń danych i opóźnień. W tym celu firma Microsoft opracowała technologię VSS.

W tym wpisie na blogu wyjaśniono, czym jest usługa Volume Shadow Copy Service (VSS), jak działa i dlaczego ta technologia jest ważna przy wykonywaniu kopii zapasowych maszyn wirtualnych i fizycznych z systemem Windows.

Czym jest VSS?

Usługa Volume Shadow Copy Service (VSS), natywna funkcja systemów operacyjnych Windows, ułatwia tworzenie spójnych kopii zapasowych spójnych z aplikacją. Aby osiągnąć spójność danych kopii zapasowej, dzieje się następujące:

  • VSS tymczasowo zatrzymuje operacje zapisu wykonywane przez aplikacje.
  • Bufory z pamięci są zapisywane na dysk, czyli opróżniane, a system plików jest zamrażany.
  • W systemie operacyjnym Windows tworzona jest migawka woluminu, zwana również kopią cieniową.

Volume Shadow Copy, zwana również usługą Volume Snapshot Service, to zestaw COM (Model obiektowy komponentów) interfejsów w systemie Windows, które zapewniają strukturę do tworzenia spójnych kopii zapasowych dla różnych aplikacji. Usługa VSS została po raz pierwszy wydana w systemach Windows XP i Windows Server 2003.

Dlaczego potrzebna jest technologia VSS

Spójność danych aplikacji jest ważna 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 przywróceniu z kopii zapasowej.

Bez VSS otrzymujesz niespójną kopię zapasową. Taka kopia zapasowa jest tworzona poprzez zwykłe skopiowanie każdego bloku w stanie, w jakim znajduje się w momencie 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 bloki używane przez inne części pliku ulegają zmianie. Zanim pozostałe części pliku zostaną skopiowane do repozytorium kopii zapasowej, bloki w pierwszej części uległy już zmianie. W rezultacie otrzymujemy bloki danych, które są niespójne i nie odzwierciedlają jednego konkretnego momentu w czasie.

Jednym ze sposobów uniknięcia tej sytuacji jest oparty na migawkach tworzenie kopii zapasowej maszyny wirtualnej. Po uruchomieniu procesu tworzenia kopii zapasowej wykonywana jest migawka, czyli dokładna kopia maszyny wirtualnej. W trakcie tego procesu wszystkie dyski maszyn wirtualnych (przedstawiane w środowiskach VMware jako pliki typu ` .vmdk `) stają się tylko do odczytu. Aby zapisać zmiany wprowadzone podczas wykonywania kopii zapasowej na dysku głównym, VMware ESXi tworzy plik różnicowy powiązany z głównym plikiem typu ` .vmdk `. Po utworzeniu pliku różnicowego oprogramowanie do wykonywania kopii zapasowej rozpoczyna kopiowanie danych z pliku tylko do odczytu typu ` .vmdk `. Po zakończeniu procesu wykonywania kopii zapasowej plik różnicowy jest scalany z plikiem typu ` .vmdk `.

Takie podejście może sprawdzić się w przypadku systemów plików o niezbyt dużym obciążeniu, takich jak wewnętrzne magazyny plików lub serwery WWW. Jeśli jednak proces wykonywania kopii zapasowej rozpocznie się w momencie, gdy wykonywane są pewne transakcje i trwają operacje wejścia/wyjścia (I/O), może dojść do utraty danych. 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 dane. W tym przypadku pomocna może być usługa Volume Shadow Copy Service (VSS). Technologia ta pozwala na tworzenie kopii plików otwartych i używanych w danym momencie bez naruszania integralności i użyteczności tych kopii.

Jak działa usługa Volume Shadow Copy Service

Aby zrozumieć, jak działa VSS, musimy najpierw zapoznać się z komponentami składającymi się na tę funkcję. Ogólne składniki VSS to:

  • Dostawca VSS jest podstawowym elementem VSS, który tworzy kopie w tle (migawki) woluminów. Dostawca VSS może mieć implementację programową lub sprzętową. Programowy dostawca VSS typu „copy-on-write” jest dołączony do systemu operacyjnego Windows. Dostawcy sprzętowi są zazwyczaj używani w połączeniu z magazynem SAN (sieć magazynu). Dostawcy sprzętowi odciążają system operacyjny hosta podczas tworzenia kopii w tle.
  • writerzy to komponenty oprogramowania, które zapisują dane do plików i baz danych w celu zapewnienia spójności. Każda aplikacja posiadająca wsparcie dla VSS dodaje swojego writer do systemu operacyjnego podczas instalacji. Przykładami aplikacji udostępniających writer VSS są Microsoft SQL Server i Exchange Server.
  • zleceniodawca to komponent oprogramowania, który nakazuje dostawcy VSS rozpoczęcie lub zakończenie pracy (tworzenie, usuwanie lub importowanie kopii w tle). Żądanie może pochodzić od natywnych komponentów systemu Windows (takich jak NTBackup lub Snapshot Manager dla Hyper-V) lub od aplikacji innych producentów, np. oprogramowania do tworzenia 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ć.

How does VSS work?

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 formacie 3517271a-d214-3a47-c5ea-01137a4fe675.

Technologia VSS może być wykorzystywana jako natywne narzędzie systemu Windows do zapisywania kopii w określonym momencie (migawek) woluminów dyskowych. Kopie te pozwalają cofnąć zmiany i powrócić do zapisanego stanu całego woluminu lub poszczególnych plików. Niemniej jednak, w celu zapewnienia bardziej niezawodnej ochrony danych zaleca się tworzenie prawdziwej kopii zapasowej, która zostanie zapisana na nośniku zewnętrznym.

VSS jest procedurą przyrostową – 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 wielkości 16 KB. Jeśli na dysku wystąpią zmiany, usługa zapisuje cały ten 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 przydziela 10% przestrzeni woluminu na kopie w tle.

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 w tle VSS

Do zarządzania kopiami w tle woluminów można używać natywnych narzędzi systemu Windows. Znajomość ich działania w połączeniu z migawkami może pomóc w lepszym zrozumieniu technologii VSS i 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, których można używać 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 wyłącznie w wersjach Windows Server. Jest to zaawansowana implementacja vssadmin , która pozwala nie tylko pracować w trybie interaktywnym, ale także tworzyć skrypty.

Należy pamiętać, że te dwa narzędzia różnią się od siebie i działają w różnych kontekstach. Kopią cieniową utworzoną w vssadmin nie można zarządzać w diskshadow i odwrotnie. Można wyświetlić migawkę utworzoną za pomocą innego narzędzia, ale nie można wykonywać na niej żadnych czynności.

Interfejs API usługi Volume Shadow Copy Service jest dostępny, aby umożliwić aplikacjom do tworzenia kopii zapasowych korzystanie z VSS i tworzenie spójnych kopii zapasowych z uwzględnieniem spójności z aplikacją w celu zapewnienia spójności danych kopii zapasowej.

Maszyny wirtualne VMware z systemem Windows używają komponentu VMware VSS jako sterownika VSS w gościnnym systemie operacyjnym Windows do wyciszania. Sterownik jest instalowany podczas zainstaluj VMware Tools. W innych przypadkach, podczas korzystania ze starszych wersji systemu Windows, używany jest sterownik SYNC. Oto lista systemów operacyjnych obsługiwanych dla gości systemy do tworzenia kopii zapasowych spójnych z aplikacją w środowiskach VMware.

Jak tworzona jest kopia w tle

Po utworzeniu kopii w tle (migawki woluminu) jej rozmiar wynosi 0 bajtów. Gdy zapisywane są nowe dane, są one zapisywane na dysku (gdzie zazwyczaj powinny się znajdować), ale stare dane są zapisywane w kopii w tle, dzięki czemu można je później przywrócić. W rezultacie rozmiar kopii w tle rośnie.

Istnieją dwa główne podejścia do zapisywania danych podczas tworzenia migawki:

  • Redirect on write (RoW): Zapisywanie nowych bloków do migawki (kopii cieniowej) i zapisywanie metadanych z informacją, do których bloków na dysku należy je zapisać. Podejście to wiąże się z szybkim zapisywaniem danych, ale powolnym ich odczytywaniem. Jeśli konieczne jest przywrócenie stanu początkowego z momentu utworzenia migawki, zajmuje to kilka sekund poprzez usunięcie migawki (prawie natychmiast). Podejście RoW jest stosowane w przypadku tworzyć migawki dysków wirtualnych maszyn wirtualnych (VMDK) w VMware ESXi i VMware stacja robocza.
  • Copy on Write (CoW): Zapisywanie nowych bloków w wymaganym miejscu na dysku i wysyłanie zawartości przepisanych bloków do migawki. Zapis jest powolny, ale odczyt jest szybki. Poprzednie migawki (poprzednie stany danych) są usuwane w ciągu kilku sekund (prawie natychmiast). Podejście CoW jest stosowane w przypadku migawek VSS.

Ponieważ istnieje tak wiele różnych aplikacji, które mogą zapisywać dane na dyskach, firma Microsoft stworzyła ujednolicony interfejs z VSS, aby powiadamiać wszystkie aplikacje o zamiarze utworzenia migawki po zainicjowaniu jej tworzenia. Idea komunikatu powiadamiającego jest następująca: System utworzy migawkę – należy wstrzymać operacje zapisu i opróżnić bufory zapisu na dyskach, aby zapewnić spójność danych.

Przebieg tworzenia migawki VSS jest następujący:

  1. Wnioskodawca VSS sprawdza dostępne usługi, z którymi może się komunikować, wylicza urządzenia zapisujące i gromadzi metadane.
  2. Po zebraniu listy urządzeń zapisujących wnioskodawca komunikuje się z dostawcą VSS i informuje go, które dane chce utworzyć oraz gdzie powinna znajdować się migawka. 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.
  3. Przygotowanie do wykonania kopii zapasowej. Ten krok 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 aplikacja jest zamrażana, aby zapewnić możliwość wykonania spójnej kopii danych. Każdy moduł zapisujący 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 ustawiony przez firmę Microsoft).

    Uwaga: 20 sekund to krótki okres. Jeśli aplikacja nie zmieści się w tym czasie, moduły zapisujące zwracają błąd, a migawka nie jest tworzona. Jeśli wydajność magazynu jest niewystarczająca, aby zmieścić się w tym limicie czasowym, możesz spróbować zmodernizować sprzęt, aby rozwiązać ten problem. Na przykład można zmienić dyski HDD na dyski SSD. Alternatywnie można spróbować przenieść inne obciążenia na inną pamięć masową i używać dedykowanej pamięci masowej wyłącznie dla komputera z uruchomionym serwerem Microsoft Exchange. Należy sprawdzić logi, aby wykryć, który moduł zapisu nie wykonał zadania tworzenia migawki.

  1. Jeśli wszystko jest w porządku, a aktywność systemu jest wstrzymana, wówczas VSS informuje, że dostawca może utworzyć kopię w tle. Na utworzenie migawki jest tylko 10 sekund. W tym czasie żądania wejścia/wyjścia 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 są odblokowywane, a operacje wejścia/wyjścia (I/O) znów działają.

    Uwaga: Jeśli dostawcy VSS potrzebują więcej niż 10 sekund na zatwierdzenie kopii w tle, operacja kończy się niepowodzeniem.

  1. Usługa VSS informuje programy zapisujące, że aplikacje mogą odblokować żądania wejścia/wyjścia i kontynuować zapisywanie danych na dyskach. Jeśli korzystamy z aplikacji do tworzenia kopii zapasowych 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 tworzenia kopii zapasowych. Alternatywnie można usunąć migawkę woluminu za pomocą polecenia diskshadow lub vssadmin.

    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 przydzielonym czasie 20 sekund (na przykładzie serwera Exchange). W przypadku niepowodzenia zrestartuj 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ć stale zapisywane przez użytkowników i aplikacje, co sprawia, że tworzenie kopii zapasowych udziałów bez VSS stanowi wyzwanie. NAKIVO Backup & Replication 10.7 obsługuje kopia zapasowa plików udostępnionych na udziale plików.

Jak działa usługa Volume Shadow Copy Service w rozwiązaniu 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: żądający inicjuje dostawcę VSS. Dostawca przekierowuje programy zapisujące do zapisywania danych do pliku dziennika i rozpoczyna tworzenie migawki woluminu. Po wysłaniu przez żądającego sygnału zatrzymania do dostawcy (zwykle po przygotowaniu migawki) rozpoczyna on przenoszenie danych z pliku dziennika 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.

  1. Przed rozpoczęciem wykonywania kopii zapasowej maszyny wirtualnej rozwiązanie NAKIVO zapisuje dane za pośrednictwem swojego modułu zapisu VSS.

VSS writer services are working with applications

  1. Wraz z rozpoczęciem wykonywania kopii zapasowej NAKIVO Backup & Replication żąda od dostawcy VSS rozpoczęcia pracy. Moduł zapisujący przekierowuje dane do pliku dziennika, podczas gdy wolumin zostaje „zamrożony”.

VSS backup has been started

  1. NAKIVO Backup & Replication rozpoczyna tworzenie migawki na poziomie maszyny wirtualnej. Może to potrwać od kilku sekund do kilku minut, w zależności od obciążenia magazynu VMFS. W tym czasie moduł zapisujący kontynuuje zapisywanie danych do pliku dziennika.
  2. Migawka maszyny wirtualnej została pomyślnie utworzona. NAKIVO Backup & Replication, jako strona żądająca, wysyła do dostawcy sygnał o zaprzestaniu pracy.

VM backup using VSS software is in process

  1. Dostawca VSS przenosi zmiany z pliku dziennika na wolumin. NAKIVO Backup & Replication kopiuje blok danych migawki maszyny wirtualnej do repozytorium kopii zapasowych.

    Tryb spójności z aplikacją, zapewniający spójność danych kopii zapasowej, można skonfigurować w kreatorze na etapie Options . W ten sposób włącza się usługę VSS na komputerze z systemem Windows w celu wykonania kopii zapasowej tego komputera.
    The app-aware mode is used to enable VSS for VM backup

Wnioski

Usługa Volume Shadow Copy Service (VSS) to świetna technologia zapewniająca spójność kopii zapasowej maszyn wirtualnych, ale działa tylko na komputerach z systemem Windows. Aby tworzyć spójne kopie zapasowe dla komputerów z systemem Linux, należy wdrożyć specjalne skrypty przed zamrożeniem i po odmrożeniu. Rozwiązanie NAKIVO zapewnia również automatyczne spójne kopie zapasowe dla serwerów i stacji roboczych z systemem Linux.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read