Snapshot (informatyka)Snapshot – rodzaj zrzutu danych rozumianego jako sposób zapewniania dostępu do starszych wersji danych przechowywanych w pamięci masowej, zwłaszcza dyskowej. Ze względu na brak utrwalonego i zaakceptowanego odpowiednika w języku polskim zjawisko to opisywane jest czasami przy pomocy kalki językowej migawka. Sposób realizacjiZazwyczaj snapshoty danych wykonywane są w taki sposób, że realizujący je obiekt (dysk, baza danych, system plików itp.) zaczyna zapisywać nowe dane w miejscu niezajętym dotąd przez starsze informacje. Równocześnie, zapewniony jest sposób odczytu zarówno danych współczesnych, jak i starszych. Podczas odczytu danych współczesnych, dane starsze, zastąpione już nowszymi są ignorowane, mimo że fizycznie nadal znajdują się na nośniku. W efekcie, użytkownik nawet nie musi być świadomy, że takie starsze dane nadal przechowywane są na przykład na dysku twardym. Podczas odczytu danych starszych, dane nowsze są ignorowane, a starsze (nienadpisane) dane są udostępniane aplikacjom. Większość współczesnych realizacji funkcjonalności snapshotów umożliwia tworzenie wielu snapshotów i w efekcie dostęp do wielu wersji historycznych. Aby móc zrealizować funkcjonalność snapshotów, należy zagwarantować:
ImplementacjeFunkcjonalność snapshotów realizowana może być na kilku warstwach stosu związanego z zapisywaniem danych w pamięci masowej. W szczególności, mogą być to: Macierze dyskoweNiektóre macierze dyskowe umożliwiają wykonanie snapshotu. Starsze dane mogą być udostępniane na przykład przy pomocy specjalnego LUN. System plikówSystemy plików (na przykład ZFS, UFS i NTFS) realizują funkcjonalność snapshotów, rezerwując na nie część przestrzeni dyskowej. Użytkownik systemu ma możliwość sięgnięcia do starszych wersji danych, na przykład, gdy w systemie Windows Vista nadpisze lub skasuje pliki. W systemach Microsoft Windows snapshoty często określane są nazwą Shadow Copy, a usługa odpowiedzialna za ich obsługę nazywa się VSS. Bazy danychMicrosoft SQL Server w edycji Enterprise umożliwia tworzenie migawek przy pomocy polecenia CREATE DATABASE xxx AS SNAPSHOT OF yyy. W takiej sytuacji oryginalna baza yyy nadal jest dostępna i normalnie pracuje, podczas gdy użytkownik uzyskuje dostęp tylko do odczytu do bazy xxx będącej snapshotem. W prosty sposób można zarówno skasować snapshot (gdy nie jest już potrzebna), jak i powrócić do zachowanego w migawce stanu danych. Dyski maszyn wirtualnychJednym z praktycznych zastosowań snapshotów jest „zamrożenie” stanu dysków maszyn wirtualnych. Dzięki takiej funkcjonalności możliwe jest przywrócenie stanu maszyny do zapamiętanego wcześniej punktu. Umożliwia to proste odtwarzanie w przypadku niektórych rodzajów awarii lub problemów związanych z konfiguracją. Praktyczna realizacja takich snapshotów może opierać się zarówno na mechanizmach udostępnianych przez system plików, jak i na wirtualnych dyskach, zapisywanych w wielu plikach na dysku twardym. |