Puoi creare snapshot Persistent Disk e Google Cloud Hyperdisk in qualsiasi momento, ma puoi farlo più rapidamente e con maggiore affidabilità se utilizzi le seguenti best practice.
Considerazioni sulla sicurezza
Per evitare un'escalation indesiderata dei privilegi, assicurati di concedere le autorizzazioni IAM relative agli snapshot solo alle entità di cui ti fidi per leggere e ripristinare i dati degli snapshot o degli snapshot istantanei. Le seguenti autorizzazioni consentono agli utenti di leggere e ripristinare i dati dagli snapshot o dagli snapshot istantanei:
compute.snapshots.useReadOnly
compute.instantSnapshots.useReadOnly
Qualsiasi entità che dispone di una delle autorizzazioni precedenti può ripristinare i dati dagli snapshot o dagli snapshot istantanei del tuo progetto in un progetto controllato dall'entità, incluso un progetto che si trova in un'altra organizzazione. Ad esempio, se un malintenzionato ottenesse un ruolo IAM per gli snapshot nel tuo progetto, potrebbe ripristinare lo snapshot nel proprio progetto personale e accedere ai dati contenuti nello snapshot
Per scoprire come controllare le autorizzazioni di un'entità, consulta Determina quali entità dispongono di determinati ruoli o autorizzazioni.
Prepara la creazione di snapshot coerenti
Se crei uno snapshot Persistent Disk o Hyperdisk mentre l'applicazione è in esecuzione, lo snapshot potrebbe non acquisire le scritture in attesa che sono in transito dalla memoria al disco. A causa di queste incoerenze, lo snapshot potrebbe non riflettere lo stato esatto dell'applicazione al momento dell'acquisizione. In questo scenario, lo snapshot è considerato coerente con gli arresti anomali perché acquisisce lo stato dell'applicazione come se la macchina avesse avuto un arresto anomalo al momento dell'acquisizione dello snapshot.
Se vuoi, puoi mettere in pausa l'applicazione in modo che tutte le relative transazioni vengano completate e il sistema possa fare il flush di tutte le scritture in attesa dalla memoria al disco prima dell'acquisizione dello snapshot. In questo scenario, lo snapshot è considerato coerente con l'applicazione.
Crea snapshot coerenti con gli arresti anomali
Quando esegui uno snapshot Persistent Disk o Hyperdisk, non devi eseguire ulteriori passaggi per rendere coerente lo snapshot con gli arresti anomali. In particolare, non è necessario mettere in pausa il workload.
Se il tuo workload non è in grado di tollerare una pausa temporanea, puoi utilizzare la procedura seguente per creare snapshot coerenti con gli arresti anomali:
- Acquisisci uno snapshot mentre le applicazioni sono in esecuzione, presupponendo che ci siano alcune incoerenze nei dati delle applicazioni.
- Verifica di poter ripristinare il tuo workload dallo snapshot in modo che lo stato dell'applicazione sia accettabile.
- In base al passaggio precedente, mantieni o elimina lo snapshot.
È probabile che gli snapshot coerenti con gli arresti anomali richiedano la riproduzione dei log a livello di file system e di applicazione prima dell'utilizzo. Pertanto, la qualità dello snapshot dipende dalla capacità dell'applicazione di recuperare rapidamente da uno stato coerente con gli arresti anomali e riprendere la pubblicazione.
Crea snapshot coerenti con l'applicazione
- Utenti di Windows Server: per i dischi collegati a istanze Windows Server, utilizza gli snapshot VSS.
- Utenti Linux: per ottenere la coerenza con l'applicazione per gli snapshot dei dischi collegati a istanze Linux, crea script shell pre e post snapshot per preparare il sistema alla coerenza con l'applicazione. Quindi, crea uno snapshot con l'opzione
guest-flush
abilitata. In questo modo vengono eseguiti gli script pre e post prima e dopo l'acquisizione dello snapshot. Per le istruzioni, vedi la sezione vedi Crea snapshot coerenti con l'applicazione Linux.
Crea manualmente snapshot coerenti con l'applicazione
In alcuni scenari, potrebbe essere necessario mettere in pausa manualmente le applicazioni per ottenere snapshot coerenti con l'applicazione.
Ad esempio, utilizza questa opzione se hai bisogno di coerenza dell'applicazione tra più volumi Persistent Disk o Hyperdisk. In questo caso, devi bloccare tutti i file system su ogni disco e completare tutti gli snapshot per questi dischi prima di riprendere le app.
Non è necessario arrestare le VM. La messa in pausa dell'applicazione può comportare, ad esempio, il blocco e lo smontaggio del file system. Dopo aver messo in pausa manualmente le applicazioni, riprendi i workload solo dopo che la risorsa snapshot raggiunge lo stato UPLOADING
.
Quando richiedi uno snapshot, controlla lo stato dell'operazione chiamando il metodo globalOperations.get
.
La tabella seguente mostra la relazione tra lo stato dell'operazione che riguarda lo snapshot e lo stato della risorsa snapshot.
Stato operazione | Stato risorsa snapshot |
---|---|
PENDING |
Non esiste ancora una risorsa snapshot. |
RUNNING |
CREATING o UPLOADING
CREATING : la creazione dello snapshot non è ancora completata.
UPLOADING : lo snapshot è stato creato, ma non è ancora stato salvato in Cloud Storage. |
DONE |
FAILED o READY . |
Limiti di frequenza degli snapshot
Esistono limiti alla frequenza con cui puoi acquisire uno snapshot di un disco.
Crea snapshot da Persistent Disk o Hyperdisk
Puoi acquisire lo snapshot di un singolo disco al massimo 6 volte ogni 60 minuti.
Se il limite viene superato, l'operazione non va a buon fine e viene restituito il seguente errore:
"code": "RESOURCE_OPERATION_RATE_EXCEEDED", "message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'. Too frequent operations from the source resource."
Questo limite si applica alle seguenti operazioni:
- Creazione di snapshot di un volume Persistent Disk
- Creazione di snapshot di un volume Hyperdisk
- Creazione di immagini da un Persistent Disk
- Creazione di snapshot standard o di archiviazione da snapshot istantanei
Questo limite non si applica alle seguenti operazioni:
- Creazione di pianificazioni per gli snapshot dei dischi. Gli snapshot pianificati adottano considerazioni sulla frequenza separate e non contribuiscono al limite di frequenza degli snapshot.
- Importazione manuale delle immagini del disco di avvio
Come best practice, acquisisci uno snapshot del disco una volta all'ora. Evita di acquisire screenshot più spesso. Il modo più semplice per farlo è impostare una pianificazione degli snapshot
Crea nuovi dischi a livello di zona dagli snapshot
Puoi creare un nuovo Hyperdisk o Persistent Disk a livello di zona da un determinato snapshot per zona target al massimo 6 volte ogni 60 minuti. Per zona target si intende la località di archiviazione del nuovo disco creato dallo snapshot.Google Cloud non garantisce la possibilità di creare dischi da uno snapshot a una velocità superiore, anche se potresti essere in grado di crearne più di frequente se non hai creato dischi dallo snapshot nell'ultima ora.
Tieni presente che più snapshot degli stessi dischi sono considerati snapshot distinti rispetto a questo limite di frequenza.
Se questo limite viene superato, l'operazione non va a buon fine e viene restituito il seguente errore:
"code": "RESOURCE_OPERATION_RATE_EXCEEDED", "message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."
Questo limite si applica alle seguenti operazioni:
Questo limite non si applica alle seguenti operazioni:
- Creazione di nuovi dischi permanenti a livello di regione da uno snapshot.
- Creazione di nuovi dischi permanenti a livello di zona o di regione utilizzando un'immagine come origine.
Per creare più dischi da uno snapshot, utilizza lo snapshot per creare un'immagine, quindi crea i dischi dall'immagine:
Per i dischi non di avvio, attieniti alle istruzioni per la creazione di dischi permanenti dall'immagine e segui questi passaggi:
- Nella console Google Cloud , seleziona Immagine come Tipo di origine del disco.
- Con gcloud CLI, utilizza il flag
image
. - Con REST, utilizza il parametro
sourceImage
.
Utilizza gli snapshot esistenti come base di riferimento per gli snapshot successivi
Se esistono snapshot di un disco (Persistent Disk o Hyperdisk), il sistema li utilizza automaticamente come base di riferimento per tutti gli snapshot successivi che crei dallo stesso disco.
- Crea un nuovo snapshot da un disco prima di eliminare lo snapshot precedente dallo stesso disco. Il sistema può creare il nuovo snapshot più rapidamente se può utilizzare lo snapshot precedente e leggere solo i dati nuovi o modificati dal disco.
- Attendi il completamento dei nuovi snapshot prima di acquisire quelli successivi dallo stesso disco. Se esegui due snapshot contemporaneamente sullo stesso disco, entrambi partono dalla stessa base di riferimento e raddoppiano la difficoltà. Se aspetti il completamento del nuovo snapshot, gli snapshot successivi vengono eseguiti più rapidamente perché acquisiscono solo i dati che sono cambiati dal completamento dell'ultimo snapshot.
Pianifica gli snapshot al di fuori delle ore di punta
Se pianifichi snapshot regolari per i dischi (Persistent Disk o Hyperdisk), puoi ridurre il tempo necessario per completare ogni snapshot creandoli, se possibile, lontano dalle ore di punta.
- Pianifica gli snapshot automatici durante il giorno lavorativo nella zona in cui si trova il tuo disco. Di solito la creazione di snapshot raggiunge il picco alla fine del giorno lavorativo.
- Pianifica gli snapshot automatici la mattina presto nella zona in cui si trova il disco anziché immediatamente a mezzanotte. La creazione degli snapshot solitamente raggiunge il picco a mezzanotte.
Organizza i dati su dischi separati
Se crei uno snapshot di un disco (Persistent Disk o Hyperdisk), tutti i dati archiviati sul disco vengono inclusi nello snapshot. Quantità maggiori di dati generano snapshot più grandi, che costano di più e richiedono più tempo per la creazione. Per assicurarti di creare uno snapshot solo dei dati di cui hai bisogno, organizza i dati su dischi separati.
- Memorizza i dati critici su un disco secondario o di dati anziché sul disco di avvio. In questo modo puoi creare uno snapshot dei dischi di avvio solo quando necessario o con una frequenza inferiore.
- Se crei snapshot dei dischi di avvio, archivia le partizioni di scambio, i file di paging, i file della cache e i log non critici su un disco separato. Questi file e partizioni cambiano spesso e il processo di creazione dello snapshot probabilmente li identifica come dati modificati che devono essere inclusi in uno snapshot incrementale.
- Riduci il numero di snapshot da creare raggruppando i dati simili su un unico disco. Mantieni il sistema operativo e i dati volatili separati dai dati di cui vuoi creare lo snapshot, ma non devi necessariamente distribuire i dati critici su più dischi come faresti per una macchina fisica. Un disco di grandi dimensioni è in grado di raggiungere le stesse prestazioni di vari dischi più piccoli che sommati hanno la stessa dimensione totale.
Attiva l'opzione discard
o esegui fstrim
sul disco
Nelle istanze Linux, se non hai formattato e montato i dischi (Persistent Disk o Hyperdisk) con l'opzione di eliminazione, esegui il comando fstrim
sull'istanza prima di creare uno snapshot. Il comando rimuove i blocchi non più necessari per il file system, in modo che il sistema possa creare lo snapshot più rapidamente e con una dimensione inferiore.
Per scoprire come configurare l'opzione di eliminazione sui dischi, consulta Formattare e montare un disco non di avvio su una VM Linux.
Crea un'immagine di uno snapshot di uso frequente
Se utilizzi ripetutamente uno snapshot nella stessa zona per creare un disco (Persistent Disk o Hyperdisk), puoi risparmiare sui costi di networking utilizzando lo snapshot una volta e creando un'immagine dello snapshot. Archivia questa immagine e utilizzala per creare il disco e avviare un'istanza VM. Per le istruzioni, consulta Creare un'immagine personalizzata.
Come best practice, acquisisci uno snapshot del disco una volta all'ora. Evita di acquisire screenshot più spesso. Il modo più semplice per farlo è impostare una pianificazione degli snapshot.
Altre best practice
- Utilizza file system di journaling come
ext4
per ridurre il rischio che i dati vengano memorizzati nella cache senza essere effettivamente scritti sul disco permanente. - Crea uno snapshot dei dati con una pianificazione regolare per ridurre al minimo la perdita di dati dovuta a un errore imprevisto.
Passaggi successivi
- Scopri come creare snapshot dei dischi.
- Scopri come visualizzare, elencare, condividere ed eliminare gli snapshot.
- Scopri come creare pianificazioni per gli snapshot dei dischi.