Panoramica degli snapshot

Questa pagina descrive cos'è uno snapshot, come funziona, alcuni casi d'uso comuni e le best practice per la creazione e l'utilizzo degli snapshot. Per scoprire come creare e gestire gli snapshot e come ripristinare i dati Filestore da uno snapshot, consulta Preservare lo stato dei dati con gli snapshot.

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 che vengono modificati dopo la creazione dello snapshot. Se vuoi ripristinare un file allo stato conservato nello snapshot, puoi sovrascrivere il file attuale con il file della directory dello snapshot pertinente.

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

Creazione di snapshot

Ogni directory di una condivisione file contiene una directory .snapshot nascosta. Ogni directory .snapshot contiene gli snapshot della directory principale 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 esistenti all'interno della 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.

La creazione di snapshot di solito non richiede più di due minuti perché non prevede 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 di massimo 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 spazio di archiviazione stabile o che è seguita da un COMMIT confermato viene inclusa nello snapshot. Per i dettagli, consulta NFSv3 RFC-1813 sezione 3.3.7.

Prepara la condivisione file per ottenere la migliore coerenza possibile degli snapshot

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

  • Utilizza l'opzione di montaggio di sincronizzazione 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 causano l'eliminazione delle modifiche apportate alla 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 su tutte le condivisioni file e crea snapshot di tutte le condivisioni 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 nascoste speciali 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 denominato .snapshot perché è riservato agli snapshot.
  • La directory .snapshot non è elencata negli output dei comandi READDIR o READDIRPLUS né nel comando ls -a bash.
  • Per passare a una directory .snapshot, devi digitare esplicitamente la stringa .snapshot. Esempio: cd somedir/.snapshot/
  • Il completamento automatico per i comandi shell non elencherà .snapshot come opzione.

Elimina i file acquisiti in uno snapshot

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

Ripristina lo stato di snapshot

Il ripristino di un'istanza allo stato di snapshot è in disponibilità generale solo per istanze di zona, SSD ad alta scalabilità, a livello di regione e aziendali.

Quando un'istanza viene ripristinato 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, in cui vengono eliminati i dati dal file system attivo e ogni snapshot successivo più recente della catena. Di conseguenza, aumenta il rischio di perdita accidentale di dati. Si tratta di un comportamento notevolmente diverso rispetto al ripristino da un backup, in cui il backup rimarrà nello stato attuale dopo l'uso, consentendoti di tentare di eseguire il ripristino da più backup per trovare quello migliore. Utilizza la funzionalità di ripristino con attenzione.

  • Tutti i dati scritti dopo la creazione dello snapshot di destinazione vengono eliminati all'inizio del processo di ripristino 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 e di tutti gli snapshot acquisiti dopo la creazione di snapshot2 durante il processo di ripristino.

    La pulizia dei dati eliminati può richiedere da sei ore a dieci giorni. Durante questo periodo potrebbero essere influenzate la capacità e le prestazioni dell'istanza.

  • Il ripristino dello stato di snapshot di un'istanza aggiorna l'ID del file system NFS (fsid). I tentativi di accedere ai client che utilizzano montaggi esistenti restituiranno errori di handle dei file inattivi. 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 degli snapshot successivi nella catena, può richiedere da sei ore a dieci giorni, a seconda del numero di file coinvolti.
    • Puoi eseguire altre operazioni mentre l'operazione di ripristino è in esecuzione e mentre la pulizia è in corso.
    • 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 e HDD di base.

  • Solo le istanze con una singola condivisione possono tornare allo stato di snapshot.

  • Sebbene gli snapshot siano supportati nel livello di servizio Enterprise, non possono essere combinati con la funzionalità Condivisioni multiple Filestore.

Passaggi successivi