Panoramica degli snapshot

In questa pagina vengono descritti che cos'è uno snapshot, il suo funzionamento, 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, nonché come ripristinare i dati Filestore da uno snapshot, consulta Conservare lo stato dei dati con gli snapshot.

Che cos'è un'istantanea?

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 snapshot pertinente.

Gli snapshot sono archiviati all'interno dell'istanza Filestore e sono risorse figlio dell'istanza. Non replicano i dati né consumano capacità fino a quando i dati dell'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 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 esistenti nella directory padre 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 degli snapshot di solito 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 alla volta per istanza. Il nome della condivisione file e il nome dello snapshot possono avere una lunghezza complessiva di massimo 78 caratteri.

Coerenza snapshot

Gli snapshot di Filestore hanno semantica di coerenza NFSv3. Prima dell'avvio di uno snapshot, qualsiasi scrittura che l'istanza Filestore riconosce come scritta nello spazio di archiviazione stabile o 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 di snapshot

La qualità di uno snapshot dipende dalla capacità dell'applicazione di recuperare gli snapshot dagli snapshot creati durante carichi di lavoro di scrittura impegnativi. Nella maggior parte delle situazioni, è possibile creare snapshot di buona coerenza anche mentre le applicazioni scrivono dati sulla condivisione file. Tuttavia, se le tue applicazioni richiedono una elevata coerenza, ti consigliamo di eseguire una o più delle seguenti operazioni:

  • Utilizza l'opzione di montaggio per la sincronizzazione o apri 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 nella condivisione file e causano lo svuotamento delle modifiche apportate alla condivisione file prima di avviare lo snapshot. Per maggiori informazioni, consulta 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 ripristinare 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 directory padre. 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 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 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 libero su disco nell'istanza.

Ripristina uno stato snapshot

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

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 degli snapshot è un'operazione irreversibile, che elimina i dati dal file system attivo ed elimina ogni snapshot successivo più recente nella catena. Di conseguenza, aumenta il rischio di perdita accidentale di dati. Questo comportamento è notevolmente diverso rispetto al ripristino da un backup, in cui il backup rimarrà nello stato attuale dopo l'utilizzo, permettendoti di tentare di ripristinare da più backup per trovare il migliore. Usa con attenzione la funzionalità di ripristino.

  • 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 significa che tutti i dati scritti dopo snapshot2, così come tutti gli snapshot acquisiti dopo la creazione di snapshot2, vengono eliminati durante il processo di ripristino.

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

  • Il ripristino di un'istanza allo stato di snapshot comporta l'aggiornamento degli handle dei file. I tentativi di accedere ai client utilizzando montaggi esistenti restituiranno errori relativi all'handle dei file inattivi. Come best practice, smonta tutti i client dall'istanza prima dell'operazione di ripristino, quindi rimontali al termine dell'operazione.

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

    • L'eventuale pulizia correlata associata all'operazione di ripristino, come 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 durante il completamento della pulizia.
    • 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 di base e HDD di base.

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

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

Passaggi successivi