Questa pagina descrive che cos'è un'istantanea, come funziona e illustra le limitazioni e le best practice.
Per scoprire come utilizzare gli snapshot, consulta le seguenti guide:
- Mantenere lo stato dei dati con gli snapshot
- Ripristinare un file da uno snapshot
- Ripristinare una condivisione file a uno snapshot precedente
- Pianificare gli snapshot di Filestore Enterprise
Che cos'è uno snapshot?
Uno snapshot di Filestore è lo stato preservato 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 figlie dell'istanza. Non replicano dati né consumano capacità fino a quando i dati nell'istanza non vengono modificati. Tutti gli snapshot di un'istanza condividono i dati in comune, il che significa che l'istanza conserva solo le differenze tra gli snapshot.
Sebbene gli snapshot offrano un'efficienza in termini di costi 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.
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 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.
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. La lunghezza combinata del nome della condivisione file e del nome dello snapshot può essere pari a un massimo di 78 caratteri.
Coerenza degli snapshot
Gli snapshot di Filestore hanno la 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 la sezione 3.3.7 della RFC-1813 NFSv3.
Prepara la condivisione file per una maggiore coerenza degli snapshot
La qualità di uno snapshot dipende dalla capacità dell'applicazione di recuperare degli snapshot creati durante carichi di lavoro di scrittura intensi. Nella maggior parte delle situazioni, puoi creare snapshot con una buona coerenza anche mentre le applicazioni scrivono dati nella condivisione file. Tuttavia, se le tue applicazioni richiedono una coerenza rigorosa, ti consigliamo di eseguire una o più delle seguenti azioni:
- Utilizza l'opzione di montaggio sync o apri i file con
O_DIRECT|O_SYNC
. Entrambi questi 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 fai in modo che svuotino le modifiche nella condivisione file prima di avviare lo snapshot. Per ulteriori informazioni, consulta 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 gli screenshot acquisiti per la directory principale. Tutti i comandi NFS e bash funzionano per queste directory, tranne che per 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 comandiREADDIR
oREADDIRPLUS
e non è presente nemmeno nel comando bashls -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.
Eliminare 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.
Ripristinare uno stato dello 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 viene ripristinato lo stato di un'istanza in uno snapshot, tutti i nuovi datiscritti dalla creazione dello snapshot di destinazione vengono eliminati e non possono essererecuperati. 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 la funzionalità di Annulla con cautela.
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
esnapshot3
vengono creati in sequenza. Il ripristino dell'istanza allo stato acquisito insnapshot2
significa che tutti i dati scritti doposnapshot2
, nonché tutti gli snapshot acquisiti dopo la creazione disnapshot2
, vengono eliminati durante la procedura di ripristino.La pulizia di questi dati eliminati può richiedere da sei ore a dieci giorni. La capacità e le prestazioni delle istanze potrebbero essere interessate durante questo periodo.
Il ripristino di un'istanza a uno stato di snapshot aggiorna l'ID 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 dell'operazione di ripristino e rimontali al termine.
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 di snapshot successivi nella catena, può richiedere da sei ore a dieci giorni, 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 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 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
- Scopri come creare e gestire gli snapshot.
- Scopri di più sui backup.