Panoramica degli snapshot

Questa pagina descrive cos'è uno snapshot, come funziona e illustra limitazioni e best practice.

Per scoprire come utilizzare gli snapshot, consulta le seguenti guide:

Che cos'è uno snapshot?

Uno snapshot Filestore è lo stato conservato dei dati della condivisione file al momento della creazione dello snapshot. L'istanza mantiene lo stato dei file modificati dopo la creazione dello snapshot. Se vuoi ripristinare un file allo stato conservato nello snapshot, puoi sovrascrivere il file corrente con il file della directory dello snapshot pertinente.

Gli snapshot vengono archiviati all'interno dell'istanza Filestore e sono risorse figlio dell'istanza. Non replicano i dati né consumano capacità finché i dati sull'istanza non vengono modificati. Tutti gli snapshot di un'istanza condividono dati comuni, il che significa che l'istanza conserva solo le differenze tra gli snapshot.

Sebbene gli snapshot offrano un buon rapporto costi-efficacia rispetto ad altre operazioni di recupero dei dati di Filestore, la capacità dell'istanza disponibile diminuisce continuamente man mano che vengono apportate modifiche ai file.

Livelli supportati

La tabella seguente mostra quali livelli di servizio Filestore supportano gli snapshot e l'operazione revert instance:

Livello Crea snapshot Ripristina istanza
HDD base No No
SSD base No No
A livello di zona
Regionale
Aziende

Gli snapshot e le operazioni revert correlate sono supportati anche nel livello di servizio SSD ad alta scalabilità precedentemente disponibile.

Anche se gli snapshot sono supportati nel livello di servizio Enterprise, non possono essere combinati con la funzionalità Filestore multishare.

Creazione di snapshot

Ogni directory di una condivisione file contiene una directory .snapshot nascosta. Ogni directory .snapshot contiene gli snapshot della directory padre che crei, ad esempio:

volume1/
│   genomics-file.txt
│
└───.snapshot
    │
    ├───snap1/
    │        genomics-file.txt
    │
    ├───snap2/
    │        genomics-file.txt
    │
    └───snap3/
             genomics-file.txt

Gli snapshot contengono una visualizzazione di sola lettura di tutti i file e le sottodirectory presenti nella directory principale al momento della creazione dello snapshot. Tutti gli attributi dei file, come atime, ownership e le autorizzazioni di lettura e scrittura, vengono conservati.

In genere, la creazione di snapshot non richiede più di due minuti perché non comporta la copia dei dati e non influisce sulle prestazioni dell'istanza.

Puoi avere fino a 240 snapshot per istanza alla volta. Il nome della condivisione file e il nome dello snapshot possono avere una lunghezza combinata massima di 78 caratteri.

Coerenza degli snapshot

Gli snapshot Filestore hanno una semantica di coerenza NFSv3. Prima dell'avvio di uno snapshot, qualsiasi scrittura che l'istanza Filestore riconosce come scritta in uno spazio di archiviazione stabile o che è seguita da un COMMIT riconosciuto è inclusa nello snapshot. Per maggiori dettagli, consulta NFSv3 RFC-1813 sezione 3.3.7.

Prepara la condivisione file per la migliore coerenza degli snapshot

La qualità di uno snapshot dipende dalla capacità dell'applicazione di recuperare gli snapshot creati durante i carichi di lavoro di scrittura intensi. Nella maggior parte dei casi, puoi creare snapshot con una buona coerenza anche mentre le tue applicazioni scrivono dati nella condivisione file. Tuttavia, se le tue applicazioni richiedono una coerenza rigorosa, ti consigliamo di eseguire una o più delle seguenti operazioni:

  • Utilizza l'opzione di montaggio sync o apri i file con O_DIRECT|O_SYNC. Entrambi i metodi migliorano la coerenza, ma non la garantiscono.
  • Metti in pausa le applicazioni o i processi del sistema operativo che scrivono dati nella condivisione file e forzali a scaricare le modifiche nella condivisione file prima di avviare lo snapshot. Per ulteriori informazioni, vedi fsync(2).
  • Se le tue applicazioni richiedono coerenza tra più condivisioni, metti in pausa tutte le applicazioni su tutte le istanze che scrivono in tutte le condivisioni di file e crea snapshot di tutte le condivisioni di file prima di riprendere le applicazioni.
  • Se hai bisogno di coerenza a livello di applicazione, arresta le applicazioni e smonta la condivisione file prima di creare uno snapshot.

Semantica NFS della directory .snapshot

Le directory .snapshot sono directory speciali nascoste che contengono gli snapshot acquisiti per la directory principale. Tutti i comandi NFS e bash funzionano per queste directory, con le seguenti eccezioni:

  • Non puoi creare un file o una directory denominati .snapshot perché sono riservati agli snapshot.
  • La directory .snapshot non è elencata negli output dei comandi READDIR o READDIRPLUS e non è elencata nemmeno nel comando bash ls -a.
  • Per passare a una directory .snapshot, devi digitare esplicitamente la stringa .snapshot. Esempio: cd somedir/.snapshot/
  • Il completamento automatico per i comandi della shell non elencherà .snapshot come opzione.

Eliminare i file acquisiti in uno snapshot

Quando un file viene acquisito in uno snapshot, la sua eliminazione non aumenta lo spazio libero sul disco dell'istanza.

Ripristinare lo stato di uno snapshot

Il ripristino di un'istanza allo stato di uno snapshot è disponibile a livello generale solo per le istanze zonali, regionali ed Enterprise.

Quando un'istanza viene ripristinata allo stato acquisito in uno snapshot, tutti i nuovi dati scritti dopo la creazione dello snapshot di destinazione vengono eliminati e non possono essere recuperati. Anche gli snapshot creati dopo lo snapshot di destinazione vengono eliminati dal processo di ripristino.

Limitazioni delle funzionalità

  • La funzionalità di ripristino dello snapshot è un'operazione irreversibile che elimina i dati dal live file system ed elimina ogni snapshot successivo e più recente nella catena. Pertanto, il rischio di perdita accidentale di dati è maggiore. Questo comportamento è molto diverso rispetto al ripristino da un backup, in cui il backup rimane nel suo stato attuale dopo l'uso, consentendoti di tentare il ripristino da più backup per trovare quello migliore. Utilizza con cautela la funzionalità di ripristino.

  • Tutti i dati scritti dopo la creazione dello snapshot di destinazione vengono eliminati all'inizio del processo di rollback e non possono essere recuperati. Vengono eliminati anche tutti gli snapshot più recenti dello snapshot di destinazione. Ad esempio, snapshot1, snapshot2 e snapshot3 vengono creati in sequenza. Il ripristino dell'istanza allo stato acquisito in snapshot2 comporta l'eliminazione di tutti i dati scritti dopo snapshot2, nonché di tutti gli snapshot acquisiti dopo la creazione di snapshot2.

    La pulizia di questi dati eliminati può richiedere da 6 ore a 10 giorni. La capacità e le prestazioni dell'istanza potrebbero risentirne durante questo periodo.

  • Il ripristino di un'istanza allo stato di uno snapshot aggiorna l'ID del file system NFS (fsid). I tentativi di accedere ai client utilizzando i montaggi esistenti restituiranno errori di handle di file obsoleti. Come best practice, smonta tutti i client dall'istanza prima dell'operazione di ripristino e rimontali al termine dell'operazione.

  • Il completamento di un'operazione di ripristino può richiedere fino a due minuti.

    • Qualsiasi pulizia correlata associata all'operazione di ripristino, ad esempio l'eliminazione delle istantanee successive nella catena, può richiedere da 6 ore a 10 giorni per essere completata, a seconda del numero di file coinvolti.
    • Puoi eseguire altre operazioni mentre è in corso l'operazione di ripristino e mentre il processo di pulizia viene completato.
    • Devi attendere il completamento dell'operazione di ripristino prima di avviarne un'altra.
  • Gli snapshot e le relative operazioni revert sono disponibili per la maggior parte dei livelli di servizio. Gli snapshot non sono disponibili nei livelli di servizio SSD base e HDD base.

  • Solo le istanze con una singola condivisione possono essere ripristinate a uno stato di snapshot.

  • Anche se gli snapshot sono supportati nel livello di servizio Enterprise, non possono essere combinati con la funzionalità Filestore multishare.

Passaggi successivi