Spójność danych to pojęcie, które obejmuje aktualność, dokładność, użyteczność i integralność danych między poszczególnymi aplikacjami i w całym systemie operacyjnym. Jest ono kluczową cechą każdego rozwiązania do tworzenia kopii zapasowych. W tym artykule szczegółowo omówimy kwestię spójności danych i różne poziomy spójności kopii zapasowych oraz wyjaśnimy, jak zadbać o spójność kopii zapasowych Veeam.
Obecnie trudno sobie wyobrazić firmę, w której spójność danych byłaby nieistotna. Zawsze ma ona znaczenie, zwłaszcza w przypadku, gdy dane podlegają ciągłym zmianom. Dobrym przykładem są systemy bankowe, gdzie w bazach danych kont mogą być jednocześnie realizowane tysiące transakcji bankowych.
Poziomy spójności kopii zapasowych
Istnieje kilka poziomów spójności kopii zapasowych, określanych na podstawie tego, czy kopię zapasową można utworzyć z działającego systemu, czy można zapewnić identyczność współzależnych plików oraz czy istnieje ochrona przed utratą danych transakcyjnych (uwzględnienie specyfiki aplikacji).
Poniżej znajduje się szczegółowe omówienie poszczególnych poziomów spójności kopii zapasowych.
Niespójna kopia zapasowa
Typ pierwszy i najstarszy to niespójna kopia zapasowa. Można ją porównać do zwykłej operacji kopiowania plików, czyli powieleniu wszystkich plików z komputera w innym miejscu, np. na dysku twardym, dysku USB lub urządzeniu NAS. Jeśli podczas wykonywania kopii zapasowej wystąpi zmiana w plikach, otrzymana kopia będzie niespójna. Wówczas zawartość kopii będzie różnić się od zawartości oryginalnych plików. Ponadto wiele plików składających się na system operacyjny gościa działający na maszynie wirtualnej może mieć różne sygnatury czasowe, skutkiem czego powstaje niejednoznaczny punkt odzyskiwania.
Ta metoda nie obejmuje zapisania jakichkolwiek danych z pamięci systemowej i może powodować problemy z dostępem do plików zablokowanych do odczytu.
Kopia zapasowa typu migawkowego
Kolejny poziom to kopia zapasowa typu migawkowego (często określana angielskim terminem „crash-consistent”). Od niespójnej kopii zapasowej różni się tym, że zawiera dane zapisane w tej samej chwili. Można ją porównać do natychmiastowej migawki wszystkich plików znajdujących się na dysku.
Jednak ta metoda nie jest wolna od wad. Gdy przywracamy system z takiej kopii zapasowej, to tak, jakbyśmy przywracali go po twardym resecie, ponieważ podczas tworzenia takiej kopii nie są zapisywane ani otwarte pliki, ani oczekujące operacje we/wy. Dlatego niektóre aplikacje wymagałyby wykonania specjalnych czynności dodatkowych. Mogłoby to być szczególnie szkodliwe w przypadku baz danych.
Na przykład w programie Microsoft Exchange trzeba by było skonfigurować specjalną grupę odzyskiwania i integrację plików dziennika. W przypadku bazy danych Microsoft SQL lub Oracle konieczne byłoby wycofanie transakcji realizowanych w chwili utworzenia kopii zapasowej i niezatwierdzonych w bazie. Ten rodzaj operacji backupu można z grubsza porównać do wyłączenia zasilania serwera fizycznego lub wyłączenia maszyny wirtualnej — dysk jest wstrzymywany natychmiast bez żadnych czynności przygotowawczych.
Kopia zapasowa spójna na poziomie plików
Ta kopia zapasowa zapewnia spójny stan wszystkich plików obecnych w systemie. Różni się więc od kopii typu migawkowego, w której pliki są zapisywane bez najnowszych aktualizacji. Jednak nawet ta metoda nie zapewnia właściwego potraktowania transakcji realizowanych przez aplikacje.
Jeśli chodzi o maszyny wirtualne działające na hoście ESX(i), w narzędziach VMware dostępna jest funkcja przełączania w stan spoczynku (ang. quiescence). Gdy chcemy wykonać migawkę działającej maszyny wirtualnej, narzędzia VMware przełączają w stan spoczynku jej system plików.
Kopia zapasowa spójna pod względem transakcyjnym
Taka kopia zapasowa nie ma wyżej wymienionych wad i zawiera wszystkie dane z tej samej chwili, w tym ukończone transakcje. Wyzwanie polega na uzyskaniu takiej kopii w działającym systemie, gdy przestoje są niedopuszczalne, a aplikacje muszą działać non stop.
Aby wykonywać kopie zapasowe spójne pod względem transakcyjnym, rozwiązanie Veeam korzysta ze stworzonej przez Microsoft usługi kopiowania woluminów w tle (Volume Shadow Copy Service — VSS). Usługa Microsoft VSS jest w stanie skoordynować wszystkie czynności, których wykonanie w systemie jest niezbędne w celu przełączenia aplikacji w stan spoczynku. Wstrzymuje ona dyskowe operacje we/wy i wspomaga oprogramowanie do backupu. Microsoft VSS wchodzi w skład wszystkich systemów operacyjnych Windows począwszy od Windows Server 2003.
Przetwarzanie obrazów z uwzględnieniem aplikacji to zastrzeżona technologia firmy Veeam, która gwarantuje pomyślne odzyskiwanie maszyn wirtualnych oraz prawidłowe odzyskiwanie wszystkich aplikacji zainstalowanych na maszynach bez jakiejkolwiek utraty danych. Rozwiązanie Veeam Backup & Replication nie wdraża trwałych agentów na maszynach wirtualnych, ale używa specjalnego procesu koordynującego na każdej maszynie. Jest on uruchamiany z chwilą zażądania operacji backupu i usuwany po jej zakończeniu. Proces ten został zaprojektowany, aby uniknąć potrzeby wykonywania działań związanych z agentami, takich jak ich instalowanie i aktualizowanie oraz rozwiązywanie dotyczących ich problemów.
Aby uruchomić operację VSS freeze, rozwiązanie Veeam Backup & Replication przyjmuje funkcję obiektu żądającego VSS i wysyła do usługi Microsoft VSS żądanie utworzenia spójnego i niezawodnego stanu danych aplikacji przed wykonaniem migawki maszyny wirtualnej lub utworzeniem kopii maszyny w tle w środowisku Hyper-V. Następnie dostawca VSS komunikuje się z aplikacjami obsługującymi usługę VSS, aby „zamrozić” wszystkie operacje we/wy w określonej chwili.
Dzięki temu podczas kopiowania danych nie występują niedokończone transakcje bazodanowe ani niepełne pliki aplikacji.
Jak zapewnić spójność kopii zapasowej?
Podczas konfigurowania zadania backupu należy odszukać krok Guest Processing i włączyć opcję Enable application-aware image processing dla maszyn wirtualnych, których kopie zapasowe mają być tworzone w ramach tego zadania. Następnie należy uruchomić zadanie i sprawdzić, czy zakończyło się powodzeniem.
Warto zwrócić uwagę, że użycie funkcji przetwarzania obrazów z uwzględnieniem aplikacji zapewnia wykonanie tak kluczowych czynności jak przycinanie dzienników serwera SQL i Exchange. Jest to ważny zabieg konserwacyjny w przypadku korzystania z bezagentowych kopii zapasowych. W przeciwnym razie dzienniki mogłyby się rozrastać w sposób niekontrolowany.
Aby w zadaniu umożliwić przełączanie maszyn wirtualnych w stan spoczynku przy użyciu narzędzi VMware, należy wykonać kroki opisane w Centrum pomocy Veeam.
Jeśli włączone jest zarówno przetwarzanie obrazów z uwzględnieniem aplikacji, jak i przełączanie w stan spoczynku przy użyciu narzędzi VMware, rozwiązanie Veeam domyślnie korzysta z tej pierwszej metody, a jeśli nie jest możliwe użycie usługi VSS, używane jest przełączanie w stan spoczynku za pomocą narzędzi VMware.
Warto pamiętać, że kopie zapasowe można zawsze sprawdzić przy użyciu funkcji SureBackup, która pozwala przetestować ich przywracanie w izolowanym środowisku testowym.
Przydatne zasoby:
- Blog Veeam: Tworzenie kopii zapasowej bazy danych MySQL działającej na maszynie wirtualnej Linux
- Centrum pomocy Veeam: Przetwarzanie obrazów z uwzględnieniem aplikacji