Panoramica degli snapshot

Questa pagina descrive cos'è un'istantanea, come funziona e illustra le 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 nel momento in cui viene creato lo 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 figlie dell'istanza. Non replicano nessun dato né consumano capacità fino a quando i dati sull'istanza non vengono modificati. Tutti gli snapshot di una condivisione di istanze dati comuni, vale a dire che l'istanza conserva solo le differenze gli snapshot.

Mentre gli snapshot offrono efficienza in termini di costi rispetto ad altri Filestore, delle operazioni di recupero dati, la capacità delle istanze disponibili diminuisce continuamente vengono apportate modifiche ai file.

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 che 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 uno snapshot in genere non richiede più di due minuti perché non comporta la copia dei dati e non influisce sul rendimento dell'istanza.

Puoi avere fino a 240 snapshot per istanza alla volta. Il nome della condivisione file Il nome dello snapshot può avere una lunghezza complessiva di un massimo 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, vedi NFSv3 RFC-1813 sezione 3.3.7.

Prepara la condivisione file per la massima coerenza degli snapshot

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

  • Utilizzare l'opzione di montaggio per sincronizzare o aprire i file con O_DIRECT|O_SYNC. Entrambi i metodi migliorano la coerenza, ma non lo garantiscono.
  • Metti in pausa le applicazioni o i processi del sistema operativo che scrivono dati nel file condividere e fare il flush delle modifiche alla condivisione file prima per 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 file e crea snapshot 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 directory nascoste speciali che contengono snapshot acquisiti per la directory principale. Tutti i comandi NFS e bash funzionano in queste directory, con le seguenti eccezioni:

  • Non puoi creare un file o una directory con nome .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 shell non elenca .snapshot come opzione.

Elimina i file acquisiti in uno snapshot

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

Ripristina lo stato di snapshot

Il ripristino di un'istanza a uno stato di snapshot è generalmente disponibile solo per le istanze zonali, SSD con scalabilità elevata, regionali e Enterprise.

Quando un'istanza viene ripristinato allo stato acquisito in uno snapshot, tutti i nuovi dati poiché la creazione dello snapshot di destinazione è stata eliminata e non può essere recuperato. Anche gli snapshot creati dopo lo snapshot target vengono eliminati dalla procedura di ripristino.

Limitazioni delle funzionalità

  • La funzionalità di ripristino dello snapshot è un'operazione irreversibile che elimina i dati dal file system in tempo reale ed elimina ogni snapshot successivo più recente nella catena. Pertanto, presenta un rischio maggiore di perdita accidentale dei dati. Si tratta di un comportamento molto diverso rispetto al ripristino da un backup, in cui il backup rimarrà nello stato attuale dopo l'utilizzo, consentendoti di tentare di ripristinare da più backup per trovare quello migliore. Utilizza il metodo di ripristino la funzionalità 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. Ripristino in corso lo stato acquisito in snapshot2 indica che tutti i dati scritti dopo il giorno snapshot2, nonché tutti gli snapshot creati dopo la creazione snapshot2 vengono eliminate durante il processo di ripristino.

    La pulizia di questi dati eliminati può richiedere da sei ore a dieci giorni. Istanza la capacità e le prestazioni potrebbero risentirne.

  • Il ripristino dello stato di snapshot di un'istanza aggiorna l'ID del file system NFS (fsid). I tentativi di accedere ai client utilizzando i mount esistenti restituiranno errori relativi a handle file non aggiornati. Come best practice, smonta tutti i client dall'istanza prima del ripristino e rimontarla 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, come l'eliminazione di snapshot successivi della catena possono richiedere da sei ore a dieci giorni completato, a seconda del numero di file coinvolti.
    • Puoi eseguire altre operazioni durante l'esecuzione dell'operazione di ripristino e al termine del cleanup.
    • 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 servizi diversi livelli. Gli snapshot non sono disponibili nei livelli di servizio SSD base e HDD base.

  • Solo le istanze con una singola condivisione possono ripristinare uno stato di snapshot.

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

Passaggi successivi