Panoramica degli snapshot

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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 informazioni su come creare e gestire gli snapshot, nonché su come ripristinare i dati Filestore da uno snapshot, vedi Conservare lo stato dei dati con gli snapshot.

Cos'è uno snapshot?

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

Gli snapshot sono archiviati all'interno dell'istanza Filestore e sono risorse figlio dell'istanza. Non replicano alcun dato o 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 snapshot

Ogni directory di una condivisione di file contiene una directory .snapshot nascosta. Ogni directory .snapshot contiene gli snapshot della directory principale creata, ad esempio:

foo/
│   bar.txt
│
└───.snapshot
    │
    ├───snap1/
    │        bar.txt
    │
    ├───snap2/
    │        bar.txt
    │
    └───snap3/
             bar.txt

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

La creazione degli snapshot di solito non richiede più di due minuti perché non prevede la copia dei dati e non influisce sulle prestazioni delle istanze.

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

Coerenza snapshot

Gli snapshot di Filestore hanno una semantica di coerenza NFSv3. Prima di iniziare uno snapshot, qualsiasi scrittura riconosciuta dall'istanza Filestore come spazio di archiviazione stabile o seguita da un elemento COMMIT confermato viene inclusa nello snapshot. Per maggiori dettagli, consulta la sezione NFSv3 RFC-1813 della sezione 3.3.7.

Preparazione alla condivisione di file per la migliore coerenza delle istantanee

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

  • Utilizza l'opzione di montaggio sync o apri i file con l'elemento O_DIRECT|O_SYNC. Uno dei due metodi migliora la coerenza, ma non lo garantisce.
  • Prima di avviare lo snapshot, metti in pausa le applicazioni o i processi del sistema operativo che scrivono i dati nella condivisione di file e li svuotano della stessa. Per ulteriori informazioni, consulta la sezione fsync(2).
  • Se le tue applicazioni richiedono coerenza tra più condivisioni, metti in pausa tutte le applicazioni in tutte le istanze che scrivono in tutte le condivisioni file e crea istantanee di tutte le condivisioni file prima di riprendere le applicazioni.
  • Se hai bisogno di coerenza a livello di applicazione, interrompi le applicazioni e smonta la condivisione file prima di creare uno snapshot.

Semantica NFS della directory .snapshot

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

  • Non puoi creare un file o una directory denominata .snapshot perché è riservato per gli snapshot.
  • La directory .snapshot non è elencata negli output dei comandi READDIR o READDIRPLUS e non è elencata 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 elenca .snapshot come opzione.

Eliminazione dei file acquisiti in un'istantanea

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

Ripristino di uno stato dello snapshot

Quando un'istanza torna allo stato acquisito in uno snapshot, tutti i nuovi dati scritti dalla creazione dello snapshot di destinazione vengono eliminati e non possono essere più recuperati. Gli snapshot creati dopo lo snapshot di destinazione vengono eliminati anche dal processo di ripristino.

Passaggi successivi