Utilizzo della tecnologia Volume Shadow Copy di Microsoft per backup coerenti
Quando si esegue il backup di una VM o di una macchina fisica con applicazioni in esecuzione, in particolare applicazioni che scrivono intensamente dati su file e database, è fondamentale garantire la coerenza dei dati di backup. Disporre di dati di backup coerenti facilita i ripristini senza corruzione dei dati o ritardi. A tal fine, Microsoft ha sviluppato la tecnologia VSS.
Questo articolo del blog spiega cos’è il Volume Shadow Copy Service (VSS), come funziona e perché questa tecnologia è importante per il backup di VM e macchine fisiche basate su Windows.
Cos’è il VSS?
Il Volume Shadow Copy Service (VSS), una funzione nativa dei sistemi operativi Windows, facilita la creazione di backup coerenti con le applicazioni. Per garantire la coerenza dei dati di backup, avviene quanto segue:
- Il VSS interrompe temporaneamente le operazioni di scrittura eseguite dalle applicazioni.
- I buffer della memoria vengono scritti su disco, ovvero svuotati, e il file system viene congelato.
- Nel sistema operativo Windows viene creata un’istantanea del volume, detta anche copia shadow.
Volume Shadow Copy, noto anche come Volume Snapshot Service, è un insieme di COM (Component Object Model) interfacce in Windows che forniscono il framework per creare backup coerenti per diverse applicazioni. VSS è stato rilasciato per la prima volta con Windows XP e Windows Server 2003.
Perché è necessaria la tecnologia VSS
La coerenza dei dati delle applicazioni è importante per i backup delle macchine virtuali e delle macchine fisiche. La coerenza garantisce che le applicazioni in esecuzione su macchine virtuali o fisiche siano pienamente funzionanti dopo il ripristino da un backup.
Senza VSS, si ottiene un backup incoerente. Un backup di questo tipo viene creato semplicemente copiando ogni blocco nello stato in cui si trova al momento della copia. Supponiamo che un file venga utilizzato continuamente da un’applicazione, come un database o un’applicazione di sistema. Questa applicazione modifica continuamente i dati nel file aperto scrivendo o eliminando blocchi. Mentre viene copiata la prima parte del file, i blocchi utilizzati da altre parti del file stanno cambiando. Quando le altre parti del file vengono copiate nel repository di backup, i blocchi della prima parte sono già cambiati. Ciò che si ottiene sono blocchi di dati non coerenti che non rappresentano un unico momento specifico nel tempo.
Un modo per evitare questa situazione è il backup della VM basato su snapshot . All’avvio del processo di backup, viene acquisita una snapshot, ovvero una copia esatta della VM. Durante questo processo, tutti i dischi VM (che sono rappresentati come file .vmdk negli ambienti VMware) diventano di sola lettura. Per memorizzare le modifiche apportate durante il processo di backup sul disco master, VMware ESXi crea un file delta collegato al file principale .vmdk. Dopo la creazione del file delta, il software di backup inizia a copiare i dati dal file .vmdk in sola lettura. Una volta completato il processo di backup, il file delta viene unito al file .vmdk.
Questo approccio può funzionare bene per i file system con un carico non molto elevato, come lo storage interno o i server web. Tuttavia, se il processo di backup inizia nel momento in cui sono in esecuzione determinate transazioni e sono in corso operazioni di I/O (input/output), i dati possono andare persi. Quando si utilizzano applicazioni o database come Microsoft SQL Server, Active Directory, o Exchange Server, non si può semplicemente chiudere il file e poi appendere dei dati. In questo caso, il Servizio Copia Shadow del Volume (VSS) può essere d’aiuto. Questa tecnologia consente di creare copie puntuali di file aperti e in uso senza compromettere l’integrità e l’usabilità di queste copie.
Come funziona il Servizio Copia Shadow del Volume
Per capire come funziona VSS, dobbiamo prima esaminare i componenti che costituiscono questa funzione. I componenti di alto livello di VSS sono:
- Il provider VSS è il componente principale di VSS, che crea copie shadow (snapshot) dei volumi. Il provider VSS può avere un’implementazione software o hardware. Il provider VSS software con copy-on-write è incluso nel sistema operativo Windows. I provider hardware sono solitamente utilizzati con lo storage SAN (rete di archiviazione). I provider hardware alleggeriscono l’host OS quando creano una copia shadow.
- Gli scrittori sono componenti software che scrivono dati su file e database per garantire la coerenza. Ogni applicazione con supporto VSS aggiunge il proprio scrittore al sistema operativo durante l’installazione. Esempi di applicazioni che forniscono uno scrittore VSS sono Microsoft SQL Server e Exchange Server.
- Il richiedente è un componente software che comanda al provider VSS di avviare o fermare l’operazione (creando, eliminando o importando copie shadow). Il richiedente può essere costituito da componenti nativi di Windows (come NTBackup o Snapshot Manager per Hyper-V) oppure da un’applicazione di terze parti, come un software di backup.
- Il servizio VSS è un componente del sistema operativo che garantisce che tutti gli altri componenti possano comunicare e interagire tra loro.
Le istantanee vengono acquisite a livello di volume e VSS opera con i blocchi (che sono utilizzati dai file). Questo è il motivo per cui non è possibile acquisire istantanee di file o cartelle. Una copia shadow può essere memorizzata sullo stesso volume o su un altro volume. Lo spazio su un volume destinato alla memorizzazione delle copie shadow è denominato “area di differenza”.
La cartella “System Volume Information” viene utilizzata per memorizzare i file delle copie shadow VSS. I file hanno identificatori del tipo 3517271a-d214-3a47-c5ea-01137a4fe675.
La tecnologia VSS può essere utilizzata come strumento nativo di Windows per salvare copie puntuali (snapshot) dei volumi del disco. Le copie consentono di annullare le modifiche e tornare allo stato salvato dell’intero volume o di file specifici. Tuttavia, per una protezione dei dati più affidabile, si raccomanda di creare un vero e proprio backup da salvare su un supporto esterno.
VSS è una procedura incrementale: Windows può creare più snapshot del volume una dopo l’altra. Dopo aver creato la prima copia shadow, VSS tiene traccia delle modifiche sui dischi suddividendo i dati in blocchi da 16 KB. Se sul disco sono presenti modifiche, il servizio scrive l’intero blocco in una copia shadow. Di conseguenza, non è necessario copiare l’intero set di dati ad ogni nuova snapshot, ma vengono copiati solo i blocchi modificati.
Requisiti e limitazioni principali di VSS :
- Per creare snapshot VSS sono obbligatori almeno 300 MB di spazio su disco.
- Il numero massimo di snapshot di volume è 64 per impostazione predefinita.
- Il sistema Windows alloca il 10% dello spazio del volume alle copie shadow.
Si noti che le istantanee VSS attivate da un’applicazione di backup vengono solitamente eliminate al termine del lavoro di backup.
Strumenti nativi per la gestione delle copie shadow VSS
È possibile utilizzare gli strumenti nativi di Windows per gestire le copie shadow dei volumi. Conoscere il loro funzionamento con le istantanee può aiutare a comprendere meglio la tecnologia VSS e a risolvere eventuali problemi (ad esempio, un’istantanea VSS temporanea non eliminata dopo la creazione di un backup completato).
Alcune opzioni VSS sono disponibili nell’interfaccia grafica di Windows, ma tutte le opzioni sono accessibili dalla riga di comando, il che è più interessante per noi. Esistono due strumenti VSS che è possibile utilizzare in Windows PowerShell o CMD:
vssadmin– disponibile su tutte le versioni di Windows a partire da Windows XP (incluso Windows 10), ad eccezione di Windows 8.diskshadow– disponibile solo sulle versioni di Windows Server. Si tratta di un’implementazione avanzata di vssadmin , che consente non solo di lavorare in modalità interattiva, ma anche di creare script.
Si noti che queste due utilità sono diverse e operano in contesti diversi. Una copia shadow creata in vssadmin non può essere gestita in diskshadow e viceversa. È possibile visualizzare l’istantanea creata con uno strumento diverso, ma non è possibile eseguire alcuna azione su di essa.
L’API del Servizio Copie Shadow dei Volumi (VSS) è disponibile per consentire alle applicazioni di backup di utilizzare VSS e creare backup coerenti con le applicazioni per garantire la coerenza dei dati di backup.
Le macchine virtuali VMware con sistema operativo Windows utilizzano il componente VMware VSS come driver VSS nel sistema operativo Windows guest per la sospensione (quiescing). Il driver viene installato quando si esegue installare VMware Tools. In altri casi, quando si utilizzano versioni precedenti di Windows, viene utilizzato un driver SYNC.
Come viene creata una copia ombra
Una volta creata una copia ombra (istantanea del volume), la sua dimensione è pari a 0 byte. Quando vengono scritti nuovi dati, questi vengono scritti sul disco (dove normalmente dovrebbero trovarsi), ma i dati precedenti vengono scritti in una copia ombra in modo da poterli ripristinare in un secondo momento. Di conseguenza, la dimensione della copia ombra aumenta.
Esistono due approcci principali per la scrittura dei dati durante la creazione di un snapshot:
Redirect on write (RoW): la scrittura di nuovi blocchi in un snapshot (copia ombra) e il salvataggio dei metadati con le informazioni relative ai blocchi del disco in cui devono essere scritti. Questo approccio comporta una scrittura veloce dei dati ma una lettura lenta. Se è necessario ripristinare lo stato iniziale al momento della creazione dell’ snapshot, bastano pochi secondi per eliminare l’ snapshot (quasi istantaneamente). L’approccio RoW viene utilizzato per creare snapshot dei dischi virtuali delle VM (VMDK) in VMware ESXi e VMware workstation.Copy on Write (CoW): Scrivere i nuovi blocchi nella posizione necessaria sul disco e inviare il contenuto dei blocchi riscritti allo snapshot. La scrittura è lenta, ma la lettura è veloce. Gli snapshot precedenti (gli stati precedenti dei dati) vengono eliminati in pochi secondi (quasi istantaneamente). L’approccio CoW viene utilizzato per gli snapshot VSS.
Data la grande varietà di applicazioni in grado di scrivere dati sui dischi, Microsoft ha creato un’interfaccia unificata con VSS per notificare a tutte le applicazioni che sta per essere creato uno snapshot dopo aver avviato la procedura di creazione. L’idea alla base del messaggio di notifica è: Un sistema creerà uno snapshot: interrompi le attività di scrittura e svuota i buffer di scrittura sui dischi per portare i dati in uno stato coerente.
Il flusso di lavoro per creare un snapshot VSS è il seguente:
- Il richiedente VSS verifica i servizi disponibili con cui può comunicare, enumera i writer e raccoglie i metadati.
- Dopo aver raccolto un elenco di writer, il richiedente comunica con il provider VSS e indica all’istantanea quali dati desidera creare e l’ubicazione dell’istantanea. Nella maggior parte dei casi, l’istantanea si trova sullo stesso volume del disco originale. In casi alternativi, i fornitori di hardware SAN possono creare un volume separato per uno snapshot, denominato “snapshot di storage”.
-
Preparazione al backup. Questa fase prevede la richiesta dello stato effettivo dei writer VSS (dopo aver ottenuto i metadati) e la preparazione all’operazione più importante, in cui i writer devono agire in sequenza. Ai writer viene comunicato che devono prepararsi alla creazione dello snapshot. Il buffer di sistema viene svuotato e l’applicazione viene bloccata per garantire che sia possibile effettuare una copia coerente dei dati. Ogni writer deve rientrare nel tempo a sua disposizione, impostato di default a 60 secondi. Microsoft Exchange Server ha a disposizione solo 20 secondi per questa operazione (questo tempo è impostato da Microsoft).
Nota: 20 secondi sono un periodo breve. Se un’applicazione non riesce a rientrare in questo lasso di tempo, i writer restituiscono un errore e lo snapshot non viene acquisito. Se le prestazioni dello storage non sono sufficienti per rientrare in questo limite di tempo, è possibile provare ad effettuare un upgrade dell’hardware per risolvere il problema. Ad esempio, è possibile sostituire i dispositivi di storage HDD con SSD. In alternativa, si può provare a migrare altri carichi di lavoro su un altro sistema di storage e utilizzare uno storage dedicato esclusivamente per la macchina su cui è in esecuzione Microsoft Exchange Server. Controllare i log per individuare quale writer non sia riuscito a completare l’operazione di creazione dello snapshot.
-
Se tutto è a posto e l’attività di sistema è sospesa, VSS segnala che il provider può creare una copia shadow. Si hanno a disposizione solo 10 secondi per creare una snapshot. Le richieste di I/O del file system sono temporaneamente indisponibili durante questo periodo. Questo è il momento in cui è possibile anche creare una snapshot della VM. Una volta trascorsi i 10 secondi, tutti i writer vengono sbloccati e le operazioni di input/output (I/O) riprendono.
Nota: Se i provider VSS impiegano più di 10 secondi per confermare la copia shadow, l’operazione fallisce.
- VSS comunica ai programmi di scrittura che le applicazioni possono sbloccare le richieste di I/O e continuare a scrivere dati sui dischi. Se si utilizza un’applicazione di backup ed è stato creato un backup tramite il servizio VSS di Windows, è possibile eliminare lo snapshot VSS. Questa operazione può essere eseguita dall’applicazione di backup stessa. In alternativa, è possibile eliminare uno snapshot del volume con
diskshadowovssadmin.In caso di problemi con VSS, il riavvio del computer può risolvere la situazione in molti casi in cui altri metodi non funzionano. Alcuni problemi legati ai limiti di tempo (ad esempio, 10 secondi per creare una snapshot) possono essere risolti con un upgrade dell’hardware, compresi i dispositivi disco, oppure riducendo i carichi.
Provate a creare una snapshot manualmente e verificate se riuscite a rispettare i 20 secondi a disposizione (utilizzando Exchange Server come esempio). In caso di errore, riavviate il sistema, riducete i carichi e riprovate.
A partire da Windows Server 2012, VSS supporta le condivisioni file SMB in Windows. La tecnologia VSS è molto utile con le condivisioni file, poiché i file possono essere continuamente scritti da utenti e applicazioni, rendendo i backup delle condivisioni una sfida senza VSS. NAKIVO Backup & Replication 10.7 supporta backup delle risorse di condivisione file.
Come funziona il Volume Shadow Copy Service nella soluzione di NAKIVO
Abbiamo esaminato come funziona VSS in generale. Ora vediamo come funziona la tecnologia VSS durante la creazione di backup di macchine virtuali VMware vSphere con un software di backup dedicato come NAKIVO Backup & Replication.
In sintesi, il Volume Shadow Copy Service funziona come segue: il richiedente avvia il provider VSS. Il provider reindirizza i processi di scrittura affinché scrivano i dati in un file di log e avvia la creazione dello snapshot del volume. Dopo che il richiedente ha inviato il segnale di arresto al provider (di solito una volta che lo snapshot è pronto), inizia a trasferire i dati dal file di log al volume.
In questo caso, NAKIVO Backup & Replication diventa un richiedente VSS quando esegue il backup di una macchina virtuale VMware vSphere utilizzando VSS.
- Prima che inizi il backup della macchina virtuale, la soluzione NAKIVO scrive i dati tramite il proprio writer VSS.
- All’avvio del backup, NAKIVO Backup & Replication richiede al provider VSS di iniziare a operare. Il writer reindirizza i dati nel file di log mentre il volume viene “bloccato”.
- NAKIVO Backup & Replication avvia la creazione di uno snapshot a livello della macchina virtuale. L’operazione può richiedere da pochi secondi a diversi minuti, a seconda del carico dello storage VMFS. Durante questo periodo, il writer continua a scrivere i dati nel file di log.
- Lo snapshot della macchina virtuale è stato creato con successo. NAKIVO Backup & Replication, in qualità di richiedente, invia al provider il segnale di interrompere l’attività.
- Il provider VSS trasferisce le modifiche dal file di log al volume. NAKIVO Backup & Replication copia il blocco di dati dello snapshot della VM nel repository di backup.
È possibile configurare la modalità coerente con le applicazioni per garantire la coerenza dei dati di backup nella procedura guidata al
Optionspassaggio. In questo modo si abilita il servizio VSS su una macchina con sistema operativo Windows per il backup di tale macchina.
Conclusione
Il Volume Shadow Copy Service (VSS) è un’ottima tecnologia per garantire la coerenza dei backup delle VM, ma funziona solo su macchine basate su Windows. Per creare backup coerenti per macchine basate su Linux, è necessario implementare speciali script di pre-freeze e post-thaw. La soluzione NAKIVO fornisce inoltre backup coerenti automatizzati per server e workstation Linux.



