Chi si occupa di backup avrà sentito nominare il termine Microsoft Volume Shadow Copy Service, in breve VSS.
E magari sa anche che VSS gira in background nel corso dell'esecuzione di un backup.
Molti tecnici si fermano qui, ma se si vogliono personalizzare i propri backup o si incontrano problemi con VSS vale la pena saperne di più.
Vediamo più nel dettaglio il Virtual Shadow Copy Service.
 
Quale problema di backup risolve VSS?

I processi di backup, a seconda del tipo di backup e della quantità di dati, possono richiedere molto tempo; un problema, poiché i dati coinvolti possono modificarsi nel tempo.
Ciò significa che il backup contiene dati riferiti a momenti di tempo differenti: in altre parole, non è coerente.
Se infatti un file che viene backuppato subisce delle modifiche durante il processo, cosa conterrà il backup?
Questa incongruenza provoca problemi di coerenza delle informazioni, specialmente nel caso di dati applicativi come database che cambiano continuamente.

VSS risolve il problema dell'incoerenza dei dati creando e mantenendo una copia (snapshot) di un determinato istante temporale del volume sottoposto al backup; a questo punto il job di backup può eseguire la copia di questo snapshot.
VSS può creare snapshot con due livelli di coerenza:
  1. coerenza a livello di crash: viene creata la copia snapshot del volume selezionato. Questa copia non contiene dati in corso di modifica o presenti in memoria, pertanto alcuni possono mancare o essere incoerenti.
  2. Coerenza a livello di applicazione: l'applicazione sottoposta a backup controlla i propri file presenti nella copia snapshot per accertarsi che siano corretti. Per esempio, comprende le informazioni residenti in memoria e le transazioni di database non ancora completate in modo da essere più precisa e coerente.
Come funziona VSS

Il servizio VSS si compone di tre sottosistemi che interagiscono per creare e mantenere le copie snapshot:
  • VSS requester (in pratica il programma di backup): richiede la creazione della copia snapshot e, quando questa non è più necessaria, ne richiede la rimozione.
  • VSS writer: permette a un'applicazione di accertarsi che i rispettivi file inclusi in una copia snapshot siano coerenti con l'applicazione stessa. I VSS writer sono integrati nelle applicazioni compatibili con VSS come per esempio Exchange e SQL Server.
  • VSS provider: crea e mantiene le copie snapshot. I sistemi operativi Microsoft sono dotati di un VSS provider denominato Microsoft VSS Provider.
Chiariti quali siano i sottosistemi usati da VSS, vediamo da vicino come funzionano insieme per creare una copia snapshot. Nello specifico, consideriamo uno snapshot creato e mantenuto da un Microsoft VSS Provider.
Il Microsoft VSS Provider crea normalmente le copie snapshot sul medesimo volume dei dati di cui effettua la copia.
Se questi dati cambiano, una copia della loro precedente versione viene salvata in una destinazione denominata "shadow storage".
In questo modo la copia snapshot può mantenere una versione dei dati originali risalenti a un determinato istante temporale occupando su disco lo spazio equivalente ai soli dati modificati nel frattempo.
Questo per quanto riguarda il mantenimento della copia snapshot; e per quanto riguarda il suo utilizzo da parte del job di backup?
Il job di backup chiede al servizio VSS di fornire i dati selezionati. A questo punto:
  • se i dati sono cambiati, lo snapshot fornisce al job di backup una copia dei dati precedenti al momento del cambiamento prelevandoli dallo shadow storage;
  • se i dati non sono cambiati, la copia snapshot fornisce al job di backup i dati del volume attualmente in uso.
Il processo di copiare i dati di produzione prima che cambino provoca una piccola riduzione delle performance nella scrittura del volume coinvolto. Più a lungo rimane necessaria la copia snapshot, più grande essa diventa; più rapidamente cambiano i dati, più velocemente cresce la snapshot.
Lo spazio a disposizione delle copie snapshot deve essere sufficiente per poter mantenere tutte le modifiche apportate ai dati fintanto che lo snapshot esiste.

Analisi del processo passo passo

I diagrammi che seguono illustrano la comunicazione che avviene tra il software di backup, i dati, la copia snapshot e i sottosistemi. Tutta questa comunicazione viene gestita da e attraverso il servizio VSS.
  1. ll VSS requester (programma di backup) indica al servizio Microsoft VSS Provider quel di cui ha bisogno avviando la preparazione di una copia snapshot.
  2. Il Microsoft VSS Provider effettua allora la copia snapshot e la mantiene seguendo le modifiche che vengono apportate man mano ai dati originali.
 
 
  1. Affinché i backup siano coerenti dal punto di vista delle applicazioni, tutti i VSS writer assegnati segnalano alla copia snapshot ogni modifica apportata ai dati originali.
 
 
  1. La copia snapshot è completa e pronta all'uso, e il controllo ritorna al programma di backup, il VSS requester.

 
Il job di backup può ora iniziare richiedendo i dati dal servizio VSS per creare il backup.
Una volta che un'applicazione VSS-aware come Exchange Server sa che è stato completato il backup dei dati, il suo VSS writer effettua alcune operazioni di pulizia come la cancellazione dei log delle transazioni del database: in questo modo viene liberato spazio su disco e si velocizzata l'applicazione stessa.
Il job di backup utilizza un percorso variabile che punta sia alla copia snapshot che al volume su cui risiede l'applicazione.
Il servizio VSS determina se il file richiesto dal backup risiede nella copia snapshot o tra i dati di produzione.
Il software di backup non conosce la provenienza (snapshot o produzione) dei dati di cui esegue il backup.


Condividi sui Social Network