Często spotykanym problem w życiu codziennym jest mylenie roli snapshotu maszyny wirtualnej z jej backup-em. Oczywiście snapshot to nie backup, o czym będę starał się przekonać w dalszej części artykułu.
Zapewne prawie każdy Administrator Systemu spotkał się kiedyś z prośbą skierowaną do niego od zespołu programistów lub od właściciela technicznego systemu, aby wykonać dla niego „snapshot, czyli backup środowiska”. Ten sam Administrator „rwał sobie nie raz włosy z głowy” widząc, ile snapshot danej maszyny wirtualnej jest w stanie wykonać osoba mająca takie uprawnienia w systemie, ale nie mająca świadomości istotnych różnic pomiędzy tymi czynnościami.
Oczywiście duża liczba snapshot-ów maszyny wirtualnej nie podnosi bezpieczeństwa tego środowiska – wręcz przeciwnie – może wpłynąć negatywnie na jego wydajność i stanowić duży problem przy próbie usunięcia starych snapshot-ów, co może w skrajnym przypadku wiązać się nawet z potencjalnym ryzykiem utraty danych podczas powtórnego scalania maszyny.
Ktoś może spytać – to po co w ogóle jest snapshot, skoro ma tyle wad? Otóż ma sporo zalet, jeżeli rozumiemy jego istotę. Snapshot umożliwia „zamrożenie” stanu danych środowiska na określony moment, przez co możemy w stosunkowo krótkim czasie cofnąć się do tego stanu np. w przypadku niepowodzenia wdrażania jakiejś zmiany lub nawet awarii po jej wdrożeniu.
Jest oczywiście inna opcja – po wykonaniu snapshot zmiany zostały wdrożone poprawnie, uznajemy stan środowiska za stabilny i nie przewidujemy opcji cofania się w czasie do poprzedniego stanu – to moment na usunięcie snapshot, a właściwie scalenie danych – źródłowych zapisanych w momencie wykonywania snahspot ze zmianami powstałymi od tego momentu. Jeżeli nie usuniemy snapshot – środowisko będzie oczywiście działać, ale plik danych snapshot będzie z biegiem czasu, w miarę przybywania danych „puchł” i może nawet przekroczyć w skrajnym przypadku rozmiar pliku źródłowego.
Różnice między snapshot a backup
Tak więc wykonujmy nadal snapshot-y, ale pamiętajmy o dobrych praktykach oraz różnicach pomiędzy snapshot a backup, czyli:
- wykonanie snapshot liczymy zazwyczaj w minutach, wykonanie backup (full backup) trwa zazwyczaj min. kilka godzin.
- przeniesienie danych snapshot (tylko snapshot) z jednej fizycznej lokalizacji do drugiej nie umożliwia odtworzenia środowiska – dla porównania przeniesienie danych backup daje taką możliwość.
- w odniesieniu do maszyny wirtualnej, wykonanie snapshot tej maszyny tworzy oddzielny plik różnicy, gdzie od momentu wykonania snapshot zapisywane są nowe dane.
- dobre praktyki zalecają jak najszybsze „pozbycie się” snapshota poprzez scalenie danych maszyny wirtualnej (źródła i różnicy). Im dłużej „żyje” snapshot, tym dłużej potrwa powtórne scalenie danych a ryzyko niepowodzenia tej operacji rośnie; dla porównania dobre praktyki nie zalecają jak najszybszego „pozbycia się” backup-u 🙂
Na koniec trochę definicji:
- Snapshot – określany jako „migawka”, zrzut danych zapewniający dostęp do ich starszych wersji. Często używany w odniesieniu do maszyn wirtualnych, oznaczając „zamrożenie” stanu dysków maszyny wirtualnej.
- Backup – określany jako „kopia bezpieczeństwa”, zrzut danych zapewniający możliwość ich odtworzenia w przypadku ich awarii lub uszkodzenia.
Zostaw komentarz