Crea uno snapshot del disco coerente con l'applicazione Windows

In Compute Engine, puoi utilizzare gli snapshot per eseguire il backup dei dati del disco. Poiché gli snapshot sono incrementali, puoi crearli con prestazioni più elevate e costi di archiviazione totali inferiori rispetto alla creazione di immagini disco complete.

Gli snapshot coerenti con l'applicazione acquisiscono lo stato dei dati dell'applicazione al momento del backup con tutte le transazioni dell'applicazione completate e tutte le scritture in attesa eliminate sul disco. Sulle VM Windows, utilizzi il servizio VSS (Volume Shadow Copy Service) per creare snapshot coerenti con l'applicazione senza prima arrestare l'istanza o scollegare il disco dalla VM.

Prima di iniziare

  • Crea un'istanza Windows.
  • Consulta le best practice per la creazione di snapshot.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per maggiori informazioni, consulta Autenticazione per REST nella documentazione sull'autenticazione di Google Cloud.

Limitazioni

Gli snapshot di dischi su Windows presentano le seguenti limitazioni:

  • Gli snapshot VSS funzionano solo nelle istanze Windows con versione immagine v20160810 e successive. Per istanze con immagini meno recenti, crea uno snapshot senza utilizzare VSS.
  • Il disco collegato deve utilizzare un file system NTFS, exFAT o ReFS.
  • Gli snapshot VSS consentono di preservare i dati solo se esegui applicazioni compatibili con VSS che possono coordinarsi per creare un backup coerente dei dati.
  • Se l'operazione di snapshot VSS non viene completata entro 300 secondi, lo snapshot ha esito negativo e restituisce un errore di timeout.

Crea uno snapshot Windows VSS

Puoi creare snapshot del servizio di copia shadow del volume (VSS) senza dover arrestare l'istanza o scollegare il disco dalla VM. Gli snapshot VSS sono destinati a scopi di backup e ripristino su sistemi con app compatibili con VSS.

Gli snapshot VSS hanno lo stesso prezzo dei normali snapshot di Persistent Disk o hyperdisk e prevedono addebiti solo per le dimensioni totali dello snapshot.

Crea lo snapshot

Console

  1. Vai alla pagina Crea uno snapshot nella console Google Cloud.

    Vai alla pagina Crea uno snapshot
  2. Inserisci un nome per lo snapshot.
  3. Seleziona un Tipo di snapshot. Il valore predefinito è uno snapshot STANDARD, che è l'opzione migliore per il backup a lungo termine e il ripristino di emergenza.

    Scegli Archivia istantanea per una conservazione dei dati più conveniente.

  4. (Facoltativo) Inserisci una descrizione dello snapshot.
  5. In Disco di origine, seleziona il disco esistente di cui vuoi creare uno snapshot.
  6. Nella sezione Località, scegli la località di archiviazione degli snapshot.

    La posizione predefinita o personalizzata definita nelle impostazioni dello snapshot viene selezionata automaticamente. Facoltativamente, puoi eseguire l'override delle impostazioni degli snapshot e archiviare gli snapshot in una posizione di archiviazione personalizzata seguendo questi passaggi:

    1. Scegli il tipo di posizione di archiviazione per lo snapshot.

      • Scegli Più regioni per una disponibilità maggiore a un costo superiore.
      • Scegli gli Snapshot regionali per un maggiore controllo sulla località fisica dei dati a un costo inferiore.
    2. Nel campo Seleziona località, seleziona una o più regioni specifiche che vuoi utilizzare. Per utilizzare una o più regioni più vicine al disco di origine, seleziona In base alla località del disco.
  7. Seleziona l'opzione Abilita snapshot coerente con l'applicazione.
  8. Fai clic su Crea per creare lo snapshot.

gcloud

Per creare uno snapshot VSS, utilizza il comando gcloud compute snapshots create e includi il flag --guest-flush.

Puoi creare lo snapshot nel criterio della località di archiviazione definito dalle tue impostazioni dello snapshot o utilizzando una località di archiviazione alternativa a tua scelta. Per maggiori informazioni, consulta Scegliere la posizione di archiviazione degli snapshot.

  • Per creare uno snapshot nel percorso predefinito o personalizzato predefinito configurato nelle impostazioni dello snapshot, utilizza il comando gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --guest-flush
    
  • In alternativa, per eseguire l'override delle impostazioni dello snapshot e creare uno snapshot in una posizione di archiviazione personalizzata, includi il flag --storage-location per indicare dove archiviare lo snapshot.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION \
        --guest-flush
    

    Sostituisci quanto segue:

    • SNAPSHOT_NAME: il nome dello snapshot.
    • SOURCE_ZONE: la zona del disco di origine.
    • SOURCE_DISK_NAME: il nome del volume del disco da cui vuoi creare uno snapshot.
    • SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIA. Se non viene specificato un tipo di snapshot, viene creato uno snapshot STANDARD.
    • STORAGE_LOCATION (Facoltativo) La regione Cloud Storage o la regione Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola posizione di archiviazione.

      Utilizza il parametro --storage-location solo quando vuoi eseguire l'override della posizione di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot.

    Per creare uno snapshot VSS di un Persistent Disk a livello di regione, negli esempi precedenti sostituisci --source-disk-zone= con --source-disk-region= e specifica la regione in cui si trova il Persistent Disk a livello di regione.

    Google Cloud CLI attende che l'operazione restituisca uno stato di READY o FAILED o raggiunga il timeout massimo e restituisca gli ultimi dettagli noti dello snapshot.

REST

Quando crei uno snapshot, per indicare che vuoi creare uno snapshot VSS, includi la proprietà guestFlush nel corpo della richiesta POST al metodo compute.snapshots.insert.

Puoi creare lo snapshot nel criterio della località di archiviazione definito dalle tue impostazioni dello snapshot o utilizzando una località di archiviazione alternativa a tua scelta. Per maggiori informazioni, consulta Scegliere la posizione di archiviazione degli snapshot.

  • Per creare uno snapshot nella posizione predefinita o personalizzata configurata nelle impostazioni dello snapshot, effettua una richiesta POST al metodo snapshots.insert:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "guestFlush": true,
    }
    
  • In alternativa, per eseguire l'override delle impostazioni dello snapshot e creare uno snapshot in una posizione di archiviazione personalizzata, effettua una richiesta POST al metodo snapshots.insert e includi la proprietà storageLocations nella richiesta:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "storageLocations": [
          "STORAGE_LOCATION"
      ],
      "guestFlush": true,
    }
    

Sostituisci quanto segue:

  • DESTINATION_PROJECT_ID: l'ID del progetto in cui vuoi creare lo snapshot.
  • SNAPSHOT_NAME: il nome dello snapshot.
  • SOURCE_PROJECT_ID: l'ID del progetto del disco di origine.
  • SOURCE_ZONE: la zona del disco di origine.
  • SOURCE_DISK_NAME: il nome del volume del disco da cui vuoi creare uno snapshot.
  • SNAPSHOT_TYPE: il tipo di snapshot, STANDARD o ARCHIVIO. Se non viene specificato un tipo di snapshot, viene creato uno snapshot STANDARD.
  • STORAGE_LOCATION (Facoltativo) La regione Cloud Storage o la regione Cloud Storage in cui vuoi archiviare lo snapshot. Puoi specificare una sola posizione di archiviazione.

    Utilizza il parametro storageLocations solo quando vuoi eseguire l'override della posizione di archiviazione predefinita o personalizzata configurata nelle impostazioni degli snapshot.

Per creare uno snapshot VSS di un Persistent Disk a livello di regione, nelle richieste POST mostrate in precedenza, sostituisci la riga seguente:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Usa questa riga quando crei uno snapshot di un Persistent Disk a livello di regione:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

(Facoltativo) Contrassegna il disco come disponibile per la lettura e la scrittura

Quando crei uno snapshot VSS, Windows Server contrassegna il volume nello snapshot come di sola lettura. Quando crei un nuovo disco dallo snapshot VSS, anche quel disco viene impostato in modalità di sola lettura.

Questo potrebbe causare problemi. Ad esempio, se crei un'istanza VM con un nuovo disco di avvio da uno snapshot VSS di un disco di avvio esistente, il flag di sola lettura sul nuovo disco di avvio impedisce alla VM di avviarsi correttamente.

Per risolvere questo problema, rimuovi il flag di sola lettura da qualsiasi nuovo disco che crei da uno snapshot VSS seguendo questa procedura:

  1. Assicurati che il disco sia collegato a una VM:

    • Se il disco che hai creato dallo snapshot VSS è un disco dati non di avvio, puoi collegarlo a qualsiasi VM nuova o esistente.
    • Se il disco che hai creato dallo snapshot VSS è un disco di avvio e vuoi utilizzarlo per avviare una VM, devi collegare temporaneamente il disco a una VM esistente separata. Dopo aver completato i passaggi seguenti, puoi scollegare il disco da quella VM e utilizzarlo per avviare una nuova istanza VM.
  2. Accedi alla VM Windows a cui è collegato il disco.

  3. Apri un prompt dei comandi di PowerShell ed esegui lo strumento diskpart.

    PS C:\> diskpart
    
  4. Identifica il disco che vuoi montare.

    DISKPART> list disk
    
  5. Usa il comando select disk per selezionare il disco.

    DISKPART> select disk DISK_NUMBER
    

    Sostituisci DISK_NUMBER con il numero del disco che vuoi montare.

  6. Monta il disco.

    DISKPART> online disk
    
  7. Elenca tutti i volumi nel disco.

    DISKPART> list volume
    
  8. Seleziona il nuovo volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Sostituisci VOLUME_NUMBER con il numero del volume da configurare come lettura e scrittura.

  9. Cancella il flag di sola lettura.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Esci dallo strumento diskpart.

    DISKPART> exit
    
  11. Se il disco è un disco di avvio per un'altra VM, sincronizza i file del disco di avvio con la nuova firma del disco.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Sostituisci DRIVE_LETTER con la lettera dell'unità per il volume che vuoi sincronizzare. Ad esempio, F per F:\.

Crea uno snapshot senza utilizzare VSS

In alcuni casi, è consigliabile creare snapshot di dischi collegati a VM Windows senza utilizzare VSS.

Per creare uno snapshot del disco su una VM Windows senza utilizzare VSS:

  1. Prepara il sistema per uno snapshot pulito.
  2. Crea l'istantanea.
  3. Rimontare il disco
  4. Contrassegna il disco come disponibile per la lettura/scrittura

Prepara il sistema per uno snapshot pulito

Prima di creare uno snapshot del disco, assicurati di eseguire uno snapshot coerente con lo stato che vuoi per il disco. Se acquisisci uno snapshot del disco in stato "non pulito", potresti forzare un controllo del disco e causare la perdita di dati. Considera la possibilità di sincronizzare e smontare il file system.

Sincronizzare il file system

Se non è possibile smontare il disco, ad esempio in scenari in cui un'applicazione potrebbe scrivere dati sul disco, puoi sincronizzare il file system per eliminare i buffer del disco. Per sincronizzare il file system:

  1. Accedi alla VM Windows.
  2. Scarica e installa lo strumento Sync di Microsoft.
  3. Impedisci alle applicazioni di scrivere sul disco.
  4. Apri una finestra del prompt dei comandi con privilegi elevati.
  5. Nella finestra della riga di comando, esegui:

    PS C:\> sync DRIVE_LETTER
    

    Sostituisci DRIVE_LETTER con la lettera dell'unità per il volume che vuoi sincronizzare. Ad esempio, F per F:\.

Smonta il disco

  1. Accedi alla VM Windows.

  2. Apri un prompt dei comandi di PowerShell ed esegui lo strumento diskpart.

    PS C:\> diskpart
    
  3. Identifica il disco che vuoi smontare e lo snapshot.

    DISKPART> list disk
    
  4. Quindi, seleziona il disco utilizzando il numero del disco che hai appena trovato.

    DISKPART> select disk DISK_NUMBER
    

    Sostituisci DISK_NUMBER con il numero del disco che vuoi rimontare.

  5. Smonta il disco.

    DISKPART> offline disk
    

Crea uno snapshot

Rimonta il disco

  1. Accedi alla VM Windows.

  2. Apri un prompt dei comandi di PowerShell ed esegui lo strumento diskpart.

    PS C:\> diskpart
    
  3. Identifica il disco che vuoi montare.

    DISKPART> list disk
    
  4. Usa il comando select disk per selezionare il disco.

    DISKPART> select disk DISK_NUMBER
    

    Sostituisci DISK_NUMBER con il numero del disco che vuoi montare.

  5. Monta il disco.

    DISKPART> online disk
    

Rimuovi il flag di sola lettura dal disco

  1. Se necessario, completa questi passaggi:

    1. Accedi alla VM Windows.

    2. Apri un prompt dei comandi di PowerShell ed esegui lo strumento diskpart.

      PS C:\> diskpart
      
  2. Elenca tutti i volumi nel disco.

    DISKPART> list volume
    
  3. Seleziona il nuovo volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Sostituisci VOLUME_NUMBER con il numero del volume che vuoi configurare per la lettura e la scrittura.

  4. Cancella il flag di sola lettura.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  5. Esci dallo strumento diskpart.

    DISKPART> exit
    
  6. Se il disco è un disco di avvio per un'altra istanza VM, al prompt dei comandi di PowerShell sincronizza i file del disco di avvio con la nuova firma del disco.

    PS C:\> bcdboot DRIVE_LETTER:\Windows /s DRIVE_LETTER
    

    Sostituisci DRIVE_LETTER con la lettera dell'unità per il volume che vuoi sincronizzare. Ad esempio, F per F:\.

Passaggi successivi