Utilizzo della tecnologia Volume Shadow Copy di Microsoft per backup coerenti

Quando si crea un backup di una macchina virtuale o fisica con applicazioni in esecuzione, in particolare applicazioni che scrivono intensivamente dati su file e database, è essenziale garantire la coerenza dei dati di backup. Disporre di dati di backup coerenti facilita il ripristino senza corruzione dei dati o ritardi. A tal fine, Microsoft ha sviluppato la tecnologia VSS.

Questo post del blog spiega cos’è il Volume Shadow Copy Service (VSS), come funziona e perché questa tecnologia è importante per il backup di macchine virtuali e fisiche basate su Windows.

Che cos’è VSS?

Il Volume Shadow Copy Service (VSS), una funzionalità nativa dei sistemi operativi Windows, facilita la creazione di backup coerenti con le applicazioni. Per ottenere la coerenza dei dati di backup, avviene quanto segue:

  • VSS interrompe temporaneamente le operazioni di scrittura eseguite dalle applicazioni.
  • I buffer dalla memoria vengono scritti su disco, ovvero svuotati, e il file system viene bloccato.
  • Nel sistema operativo Windows viene creata un’istantanea del volume, chiamata 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 VM e delle macchine fisiche. La coerenza garantisce che le applicazioni in esecuzione su VM o macchine fisiche siano completamente funzionanti dopo il ripristino da un backup.

Senza VSS, si ottiene un backup incoerente. Tale backup viene creato semplicemente copiando ogni blocco nello stato in cui si trova al momento della copia. Supponiamo che un file sia utilizzato continuamente da un’applicazione come un database o un’applicazione di sistema. Questa applicazione modifica continuamente i dati nel file aperto scrivendo/eliminando blocchi. Mentre la prima parte del file viene copiata, i blocchi utilizzati da altre parti del file stanno cambiando. Quando le altre parti del file vengono copiate nel repository di backup, i blocchi nella prima parte sono già cambiati. Il risultato sono blocchi di dati non coerenti che non rappresentano un singolo punto specifico nel tempo.

Un modo per evitare questa situazione è il backup della VM basato su snapshot . Quando viene avviato il processo di backup, viene eseguito uno snapshot, ovvero una copia esatta della VM. Durante questo processo, tutti i dischi della VM (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 avvia la copia dei dati dal file di sola lettura .vmdk . 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 l’archiviazione interna dei file 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 potrebbero andare persi. Quando si utilizzano applicazioni o database come Microsoft SQL Server, Active Directory o Exchange Server, non è possibile semplicemente chiudere il file e poi aggiungervi dei dati. In questo caso, Volume Shadow Copy Service (VSS) può essere d’aiuto. Questa tecnologia consente di creare copie puntuali dei file aperti e in uso senza compromettere l’integrità e l’usabilità di tali copie.

Come funziona Volume Shadow Copy Service

Per comprendere come funziona VSS, è necessario innanzitutto 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 snapshot dei volumi. Il provider VSS può avere un’implementazione software o hardware. Il provider VSS software copy-on-write è incluso nel sistema operativo Windows. I provider hardware vengono solitamente utilizzati con lo storage SAN (storage area network). I provider hardware scaricano il sistema operativo host durante la creazione di una copia shadow.
  • Gli writer sono componenti software che scrivono i dati su file e database per garantire la coerenza. Ogni applicazione con supporto VSS aggiunge il proprio writer al sistema operativo durante l’installazione. Esempi di applicazioni che forniscono un writer VSS sono Microsoft SQL Server ed Exchange Server.
  • Il richiedente è un componente software che comanda al provider VSS di avviare o interrompere il funzionamento (creazione, eliminazione o importazione di copie shadow). Il richiedente può essere un componente nativo di Windows (come NTBackup o Snapshot Manager per Hyper-V) o 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 funzionare tra loro.

How does VSS work?

Gli snapshot vengono acquisiti a livello di volume e VSS opera con blocchi (i blocchi sono utilizzati dai file). Questo è il motivo per cui non è possibile acquisire snapshot di file o cartelle. Una copia shadow può essere archiviata sullo stesso volume o su un altro volume. Lo spazio su un volume allocato per l’archiviazione delle copie shadow è chiamato area diff.

La cartella System Volume Information viene utilizzata per archiviare i file delle copie shadow VSS. I file hanno identificatori come 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 ripristinare le modifiche e tornare allo stato salvato dell’intero volume o di file particolari. Tuttavia, per una protezione dei dati più affidabile, si consiglia di creare un vero e proprio backup da salvare su un supporto esterno.

VSS è una procedura incrementale: Windows può creare più snapshot di volumi uno dopo l’altro. Dopo aver creato la prima copia shadow, VSS tiene traccia delle modifiche sui dischi dividendo i dati in blocchi da 16 KB. Se ci sono modifiche sul disco, il servizio scrive l’intero blocco su una copia shadow. Di conseguenza, non è necessario copiare l’intero set di dati di ogni nuova snapshot, ma vengono copiati solo i blocchi modificati.

Requisiti e limitazioni principali di VSS:

  • Per creare snapshot VSS è obbligatorio avere almeno 300 MB di spazio su disco.
  • Il numero massimo di snapshot del volume è 64 per impostazione predefinita.
  • Il 10% dello spazio del volume è allocato per le copie shadow dal sistema Windows.

Si noti che i snapshot VSS attivati da un’applicazione di backup vengono solitamente eliminati 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 del volume. Conoscere il loro funzionamento con gli snapshot può aiutare a comprendere meglio la tecnologia VSS e a risolvere eventuali problemi (ad esempio, uno snapshot VSS temporaneo non eliminato dopo la creazione di un backup completato).

Alcune opzioni VSS sono disponibili nella GUI di Windows, ma tutte le opzioni sono accessibili dalla riga di comando, 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 da Windows XP (incluso Windows 10) e ad eccezione di Windows 8.
  • diskshadow – disponibile solo sulle versioni 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 funzionano in contesti diversi. Una copia shadow creata in vssadmin non può essere gestita in diskshadow e viceversa. È possibile visualizzare il snapshot creato con uno strumento diverso, ma non è possibile eseguire alcuna azione con esso.

L’API Volume Shadow Copy Service è 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 che eseguono Windows utilizzano il componente VMware VSS come driver VSS in un sistema operativo Windows guest per la quiescing. Il driver viene installato quando si installa VMware Tools. In altri casi, quando si utilizzano versioni precedenti di Windows, viene utilizzato un driver SYNC. Ecco un elenco dei sistemi operativi guest supportati per il quiescing coerente con le applicazioni in ambienti VMware.

Come viene creata una copia shadow

Una volta creata una copia shadow (snapshot del volume), la sua dimensione è pari a 0 byte. Quando vengono scritti nuovi dati, questi vengono scritti sul disco (dove dovrebbero normalmente trovarsi), ma i dati precedenti vengono scritti su una copia shadow in modo da poterli ripristinare in un secondo momento. Di conseguenza, la dimensione della copia shadow aumenta.

Esistono due approcci principali alla scrittura dei dati durante la creazione di uno snapshot:

  • Reindirizzamento in scrittura (RoW): scrittura di nuovi blocchi in uno snapshot (copia shadow) e salvataggio dei metadati con le informazioni relative ai blocchi su cui devono essere scritti sul disco. Questo approccio comporta una scrittura veloce dei dati ma una lettura lenta degli stessi. Se è necessario ripristinare lo stato iniziale in cui si trovava lo snapshot al momento della creazione, sono sufficienti pochi secondi eliminando lo snapshot (quasi istantaneamente). L’approccio RoW viene utilizzato per creare snapshot dei dischi virtuali VM (VMDK) in VMware ESXi e VMware Estazione di lavoro.
  • Copy on Write (CoW): Scrittura di nuovi blocchi nella posizione necessaria sul disco e invio del contenuto dei blocchi riscritti a uno snapshot. La scrittura è lenta, ma la lettura è veloce. Gli snapshot precedenti (stati dei dati precedenti) vengono eliminati in pochi secondi (quasi istantaneamente). L’approccio CoW viene utilizzato per gli snapshot VSS.

Con così tante applicazioni diverse 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 creata un’istantanea dopo aver avviato la creazione dell’istantanea. L’idea del messaggio di notifica è: un sistema creerà un’istantanea – interrompete le vostre attività di scrittura e svuotate i buffer di scrittura sui dischi per adottare i dati nello stato coerente.

Il flusso di lavoro per creare un snapshot VSS è il seguente:

  1. Il richiedente VSS controlla i servizi disponibili con cui può comunicare, enumera i writer e raccoglie i metadati.
  2. Dopo aver raccolto un elenco di scrittori, il richiedente comunica con il provider VSS e indica a uno snapshot quali dati desidera creare e l’ubicazione dello snapshot. Nella maggior parte dei casi, lo snapshot si trova sullo stesso volume del disco originale. In casi alternativi, i provider di hardware SAN possono creare un volume separato per uno snapshot chiamato snapshot di storage.
  3. Preparazione per il backup. Questo passaggio comporta la richiesta dello stato reale degli scrittori VSS (dopo aver ottenuto i metadati) e la preparazione per l’operazione più importante quando gli scrittori devono agire uno dopo l’altro. Gli scrittori vengono informati che devono prepararsi per la creazione dello snapshot. Il buffer di sistema viene svuotato e l’applicazione viene bloccata per garantire che sia possibile eseguire una copia coerente dei dati. Ogni writer deve rispettare il tempo assegnato di 60 secondi per impostazione predefinita. Microsoft Exchange Server ha 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 tempo, gli scrittori restituiscono un errore e lo snapshot non viene acquisito. Se le prestazioni di 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 dispositivi SSD. In alternativa, è possibile provare a migrare altri carichi di lavoro su un altro archivio e utilizzare un archivio dedicato solo per il computer che esegue Microsoft Exchange Server. Controllare i log per individuare quale writer non è riuscito a completare l’attività di creazione dello snapshot.

  1. Se tutto è OK e l’attività di sistema è bloccata, VSS comunica che il provider può creare una copia shadow. Ci sono solo 10 secondi per creare uno snapshot. Le richieste di I/O del file system non sono temporaneamente disponibili durante questo periodo. Questo è il momento in cui è anche possibile creare uno 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 eseguire il commit della copia shadow, l’operazione non va a buon fine.

  1. VSS comunica agli scrittori che le applicazioni possono sbloccare le richieste I/O e continuare a scrivere dati sui dischi. Se si utilizza un’applicazione di backup e è stato creato un backup utilizzando il servizio VSS di Windows, è possibile eliminare l’istantanea VSS. Questa operazione può essere eseguita dall’applicazione di backup stessa. In alternativa, è possibile eliminare un’istantanea del volume con diskshadow o vssadmin.

    Se si riscontrano problemi con VSS, in molti casi è possibile risolverli riavviando il computer quando altri metodi non funzionano. Alcuni problemi relativi ai limiti di tempo (ad esempio, 10 secondi per creare uno snapshot) possono essere risolti con un upgrade dell’hardware, inclusi i dispositivi disco, o riducendo i carichi.

    Provare a creare uno snapshot manualmente e verificare se si rientra nei 20 secondi assegnati (utilizzando Exchange Server come esempio). In caso di errore, riavviate il computer, 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 scritti continuamente da utenti e applicazioni, rendendo i backup delle condivisioni una sfida senza VSS. NAKIVO Backup & Replication 10.7 supporta il backup delle condivisioni file.

Come funziona il servizio Copia shadow del volume nella soluzione NAKIVO

Abbiamo esaminato il funzionamento generale di VSS. Ora vediamo come funziona la tecnologia VSS durante la creazione di backup di macchine virtuali VMware vSphere con software di backup dedicati come NAKIVO Backup & Replication & Replication.

In breve, il servizio Copia shadow del volume funziona come segue: il richiedente avvia il provider VSS. Il provider reindirizza i writer per scrivere i dati in un file di log e avvia la creazione dell’istantanea del volume. Dopo che il richiedente ha inviato il segnale di arresto al provider (di solito dopo che l’istantanea è pronta), inizia a spostare i dati dal file di log al volume.

In questo caso, NAKIVO Backup & Replication diventa un richiedente VSS durante il backup di una VM VMware vSphere utilizzando VSS.

  1. Prima dell’avvio del backup della VM, la soluzione NAKIVO scrive i dati tramite il suo writer VSS.

VSS writer services are working with applications

  1. All’avvio del backup, NAKIVO Backup & Replication & richiede al provider VSS di iniziare a funzionare. Il writer reindirizza i dati nel file di log mentre il volume “si blocca”.

VSS backup has been started

  1. NAKIVO Backup & Replication inizia a creare uno snapshot sul livello VM. L’operazione può richiedere da pochi secondi a diversi minuti, a seconda del carico di storage VMFS. Durante questo periodo, il writer continua a scrivere i dati nel file di log.
  2. Lo snapshot della VM è stato creato correttamente. NAKIVO Backup & Replication, in qualità di richiedente, invia il segnale al provider affinché interrompa il funzionamento.

VM backup using VSS software is in process

  1. Il provider VSS sposta le modifiche dal file di log al volume. NAKIVO Backup & La replica copia il blocco di dati dello snapshot della VM nel repository di backup.

    È possibile configurare la modalità coerente con le applicazioni per la coerenza dei dati di backup nella procedura guidata al punto Opzioni . In questo modo si abilita VSS in un computer che esegue Windows per il backup di tale computer.
    The app-aware mode is used to enable VSS for VM backup

Conclusione

Il servizio Volume Shadow Copy (VSS) è un’ottima tecnologia per mantenere coerenti i backup delle macchine virtuali, ma funziona solo su macchine basate su Windows. Per creare backup coerenti per macchine basate su Linux, è necessario implementare speciali script pre-freeze e post-thaw. La soluzione NAKIVO fornisce anche backup coerenti automatizzati per server e stazioni di lavoro Linux.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Le persone leggono anche