Best practice per gli snapshot dei dischi di Compute Engine


Puoi creare snapshot di Persistent Disk e Google Cloud Hyperdisk in qualsiasi momento, ma puoi crea snapshot più rapidamente e con maggiore affidabilità se utilizzi le best practice riportate di seguito.

Considerazioni sulla sicurezza

Per evitare l'escalation dei privilegi indesiderata, assicurati di concedere solo autorizzazioni IAM relative agli snapshot ai principali che ritieni attendibili per leggere e ripristinare i dati degli snapshot o degli snapshot istantanei. La le seguenti autorizzazioni consentono agli utenti di leggere e ripristinare i dati dagli snapshot snapshot istantanei:

  • compute.snapshots.useReadOnly
  • compute.instantSnapshots.useReadOnly

Qualsiasi entità con una delle autorizzazioni precedenti può ripristinare i dati da o snapshot istantanei dal tuo progetto a un progetto controllato da loro; incluso un progetto che si trova in un'altra organizzazione. Ad esempio, se un malintenzionato ottenesse un ruolo IAM di istantanea nel tuo progetto, potrebbe ripristinare l'istantanea nel proprio progetto personale e accedere ai dati contenuti nell'istantanea.

Per scoprire come controllare le autorizzazioni di cui dispone un'entità, consulta Determina quali entità dispongono di determinati ruoli o autorizzazioni.

Preparazione per snapshot coerenti

Se crei uno snapshot del tuo Persistent Disk o Hyperdisk mentre l'applicazione è in esecuzione, lo snapshot potrebbe non acquisire le scritture in attesa in transito dalla memoria disco. A causa di queste incoerenze, l'istantanea potrebbe non riflettere il testo esatto lo stato desiderato dell'applicazione al momento dell'acquisizione dello snapshot. 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 della sua acquisito.

Facoltativamente, puoi mettere in pausa l'applicazione, in modo che transazioni completate e il sistema può cancellare tutte le scritture in sospeso dalla memoria su disco prima di acquisire lo snapshot. In questo scenario, lo snapshot considerata coerente con l'applicazione.

Creazione di snapshot coerenti con gli arresti anomali

Quando crei uno snapshot di un Persistent Disk o di un Hyperdisk, non è necessario eseguire eventuali passaggi aggiuntivi per rendere coerente l'arresto anomalo dello snapshot. In particolare, non è necessario mettere in pausa il carico di lavoro.

Se il carico di lavoro non può tollerare una pausa temporanea, considera quanto segue per creare snapshot coerenti con gli arresti anomali:

  1. Acquisisci uno snapshot mentre le applicazioni sono in esecuzione, supponendo che ci siano alcune incoerenze nei dati delle applicazioni.
  2. Verifica di poter ripristinare del carico di lavoro a uno stato accettabile dell'applicazione dallo snapshot.
  3. 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 ripristinare rapidamente la situazione dopo un arresto anomalo per ripristinare lo stato di pubblicazione.

Creazione di snapshot coerenti con l'applicazione

  • Utenti Windows Server: per i dischi collegati a Windows Le istanze server utilizzano gli snapshot VSS.
  • Utenti Linux: per ottenere la coerenza dell'applicazione per gli snapshot dei dischi collegati alle istanze Linux, crea script shell pre e post snapshot per preparare il sistema alla coerenza dell'applicazione. Quindi crea un snapshot con l'opzione guest-flush abilitata. In questo modo vengono eseguite le script prima e dopo l'acquisizione dell'istantanea. Per istruzioni, vedi Creazione di snapshot coerenti con le applicazioni Linux.

Creazione manuale di snapshot coerenti con l'applicazione

In alcuni casi, 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 Hyperdisk o Persistent Disk. 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 tue applicazioni, riprendi i carichi di lavoro solo dopo raggiunge UPLOADING .

Quando richiedi uno snapshot, controlla lo stato dell'operazione chiamando il metodo Metodo globalOperations.get. La tabella seguente mostra la relazione tra lo stato dello snapshot e lo stato della risorsa snapshot.

Stato operazione Stato risorsa snapshot
PENDING Non esiste ancora nessuna risorsa snapshot.
RUNNING CREATING o UPLOADING

CREATING: la creazione dello snapshot non è ancora completa.
UPLOADING: lo snapshot è stato creato, ma non è ancora stato salvato in di archiviazione ideale 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.

Creazione di snapshot da dischi permanenti 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 riesce e restituisce 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:

Questo limite non si applica alle seguenti operazioni:

Come best practice, crea uno snapshot del disco una volta all'ora. Evita di acquisire screenshot più spesso. Il modo più semplice per raggiungere questo obiettivo è impostare un la pianificazione di snapshot.

Creazione di nuovi dischi a livello di zona da snapshot

Puoi creare un nuovo Persistent Disk o Hyperdisk a livello di zona da un uno snapshot specificato per zona target al massimo una volta ogni 10 minuti. La zona di destinazione si riferisce alla posizione di archiviazione del nuovo disco creato dallo snapshot. Google Cloud non garantisce che potrai creare dischi da uno snapshot a una velocità superiore, anche se potresti essere in grado di creare dischi più di frequente se non ne hai creati dall'ora passata.

Tieni presente che vengono presi in considerazione più snapshot degli stessi dischi snapshot distinti in relazione 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:

  1. Crea un'immagine dall'istantanea.
  2. Crea i dischi dall'immagine.

Per i dischi non di avvio, segui le istruzioni per crea un disco permanente dall'immagine e segui questi passaggi:

  • Nella console Google Cloud, seleziona Immagine come Tipo di origine del disco.
  • Con gcloud CLI, utilizza Flag image.
  • Se utilizzi REST, utilizza Parametro sourceImage.

Utilizzare gli snapshot esistenti come base di riferimento per gli snapshot successivi

Se esistono snapshot di un disco (disco permanente o Hyperdisk), il sistema li utilizza automaticamente come base di riferimento per tutti gli snapshot successivi creati 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 istantanee contemporaneamente sullo stesso disco, entrambe partono dalla stessa base di riferimento e duplicano lo sforzo. Se aspetti il completamento del nuovo snapshot, gli snapshot successivi vengono eseguiti più rapidamente perché ottengono solo i dati che sono cambiati dal completamento dell'ultimo snapshot.

Pianifica gli snapshot durante le ore di punta

Se pianifichi snapshot regolari per i tuoi dischi (Persistent Disk o Hyperdisk), puoi ridurre il tempo necessario per il completamento ogni snapshot creandoli al di fuori delle ore di punta, se possibile.

  • Pianifica gli snapshot automatici durante il giorno lavorativo nella zona in cui si trova il tuo disco. La creazione di snapshot solitamente raggiunge il picco alla fine il giorno lavorativo.
  • Pianifica gli snapshot automatici la mattina presto nella zona in cui non si trova immediatamente a mezzanotte. La creazione di snapshot solitamente ha il picco a mezzanotte.

Organizzare i dati su dischi separati

Se crei lo snapshot di un disco (Persistent Disk o Hyperdisk), qualsiasi dato archiviato sul sia incluso nello snapshot. Maggiore è il volume di dati, che costano di più e richiedono più tempo per la creazione. Per assicurarti di creare un'istantanea dei soli dati di cui hai bisogno, organizza i dati in i dischi permanenti.

  • Archivia i dati critici su un disco secondario, o dati, anziché sul disco di avvio. Ciò ti consente di creare uno snapshot dei tuoi dischi di avvio solo quando necessario o in una programmazione meno frequente.
  • Se crei snapshot dei dischi di avvio, archivia le partizioni di scambio, i file di pagina, i file della cache e i log non critici su un disco separato. Questi file e partizioni cambiano spesso e la procedura di snapshot è probabile che li identifichi come dati modificati che devono essere inclusi in uno snapshot incrementale.
  • Riduci il numero di snapshot che devi creare conservando dati simili su un unico disco. Mantieni il sistema operativo e i dati volatili distintamente dai dati di cui vuoi acquisire lo snapshot, ma non devi 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 più dischi più piccoli della stessa dimensione totale.

Abilita l'opzione discard o esegui fstrim sul tuo disco

Nelle istanze Linux, se non hai formattato e montato i dischi (disco permanente o Hyperdisk) con l'opzione di eliminazione, esegui il comando fstrim sull'istanza prima di creare un snapshot. Il comando rimuove i blocchi non più necessari dal file system, in modo che il sistema possa creare lo snapshot più rapidamente e con dimensioni inferiori. 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 utilizzato di frequente

Se utilizzi ripetutamente uno snapshot nella stessa zona per creare un disco (disco permanente o Hyperdisk), risparmia sui costi di rete 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 la pagina 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 istantanei.

Altre best practice

  • Utilizzare file system di journaling come ext4 per ridurre il rischio che i dati vengano memorizzati nella cache senza essere vengono scritte sul disco permanente.
  • Crea uno snapshot dei tuoi dati con una pianificazione regolare per ridurre al minimo la perdita di dati a causa di un errore imprevisto.

Passaggi successivi