Créer un instantané de disque d'application cohérent Windows


Dans Compute Engine, vous pouvez sauvegarder les données de vos disques à l'aide d'instantanés. En raison de leur nature incrémentale, créer des instantanés vous permet de bénéficier de performances plus élevées et de frais de stockage plus réduits que si vous aviez créé des images complètes de vos disques.

Les instantanés d'application cohérents capturent l'état des données d'application au moment de la sauvegarde, avec toutes les transactions d'application terminées et toutes les écritures en attente vidées sur le disque. Sur les VM Windows, vous utilisez le service VSS (Volume Shadow Copy Service) pour créer des instantanés d'application cohérents sans arrêter au préalable l'instance ou dissocier le disque de votre VM.

Avant de commencer

  • Créez une instance Windows.
  • Consultez les bonnes pratiques relatives à la création d'instantanés.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Limites

Les instantanés de disque sous Windows présentent les limites suivantes:

  • Les instantanés VSS fonctionnent uniquement sur les instances Windows avec une version d'image v20160810 ou ultérieure. Pour les instances utilisant des images plus anciennes, créez un instantané sans utiliser VSS.
  • Le disque associé doit utiliser un système de fichiers NTFS, exFAT ou ReFS.
  • Les instantanés VSS ne permettent la conservation des données que si vous exécutez des applications compatibles avec VSS capables de se coordonner pour créer une sauvegarde cohérente de vos données.
  • Si l'opération d'instantané VSS ne se termine pas dans les 300 secondes, elle échoue et renvoie une erreur de délai avant expiration.

Créer un instantané Windows VSS

Vous pouvez créer des instantanés du service VSS (Volume Shadow Copy Service) sans avoir à arrêter l'instance ou à dissocier le disque de votre VM. Les instantanés VSS sont destinés à la sauvegarde et à la restauration sur les systèmes équipés d'applications compatibles VSS.

Les instantanés VSS coûtent le même prix que les instantanés de disques persistants ou Hyperdisk normaux et ne sont facturés qu'en fonction de la taille totale de l'instantané.

Créer l'instantané

Console

  1. Accédez à la page Créer un instantané dans la console Google Cloud.

    Accéder à la page "Créer un instantané"
  2. Saisissez un nom d'instantané.
  3. Sélectionnez un Type d'instantané. La valeur par défaut est un instantané STANDARD, qui est la meilleure option pour la sauvegarde à long terme et la reprise après sinistre.

    Choisissez Instantané d'archive pour une conservation des données plus économique.

  4. (Facultatif) Saisissez une Description de l'instantané.
  5. Sous Disque source, sélectionnez le disque existant dont vous souhaitez créer un instantané.
  6. Dans la section Emplacement, choisissez l'emplacement de stockage de votre instantané.

    L'emplacement par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés est automatiquement sélectionné. Vous pouvez éventuellement remplacer les paramètres d'instantané et stocker vos instantanés dans un emplacement de stockage personnalisé en procédant comme suit :

    1. Choisissez le type d'emplacement de stockage souhaité pour votre instantané.

      • Choisissez Multirégional pour une disponibilité plus élevée à un coût plus élevé.
      • Choisissez des instantanés régionaux pour mieux contrôler l'emplacement physique de vos données, à moindre coût.
    2. Dans le champ Sélectionner un emplacement, sélectionnez la région ou l'emplacement multirégional spécifique que vous souhaitez utiliser. Pour utiliser la région ou l'emplacement multi-régional le plus proche de votre disque source, sélectionnez Basé sur l'emplacement du disque.
  7. Cochez l'option Activer l'instantané d'application cohérent.
  8. Cliquez sur Créer pour créer l'instantané.

gcloud

Pour créer un instantané VSS, exécutez la commande gcloud compute snapshots create en incluant l'option --guest-flush.

Vous pouvez créer votre instantané dans la stratégie d'emplacement de stockage définie par vos paramètres d'instantanés ou en utilisant un autre emplacement de stockage de votre choix. Pour en savoir plus, consultez la section Choisir l'emplacement de stockage de vos instantanés.

  • Pour créer un instantané à l'emplacement par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantané, utilisez la commande 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
    
  • Sinon, pour remplacer les paramètres d'instantané et créer un instantané dans un emplacement de stockage personnalisé, incluez l'option --storage-location pour spécifier où stocker l'instantané.

    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
    

    Remplacez les éléments suivants :

    • SNAPSHOT_NAME : nom de l'instantané.
    • SOURCE_ZONE : zone du disque source.
    • SOURCE_DISK_NAME : nom du volume de disque à partir duquel vous souhaitez créer un instantané.
    • SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
    • STORAGE_LOCATION : Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

      N'utilisez le paramètre --storage-location que si vous souhaitez ignorer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.

    Pour créer un instantané VSS d'un disque persistant régional, dans les exemples précédents, remplacez --source-disk-zone= par --source-disk-region=, puis spécifiez la région où se trouve le disque persistant régional.

    La Google Cloud CLI attend que l'opération renvoie un état READY ou FAILED, ou atteigne le délai maximal avant expiration. Il renvoie alors les informations les plus récentes sur l'instantané.

REST

Lors de la création d'un instantané, pour indiquer que vous souhaitez créer un instantané VSS, incluez la propriété guestFlush dans le corps de la requête POST à la méthode compute.snapshots.insert.

Vous pouvez créer votre instantané dans la stratégie d'emplacement de stockage définie par vos paramètres d'instantanés ou en utilisant un autre emplacement de stockage de votre choix. Pour en savoir plus, consultez la section Choisir l'emplacement de stockage de vos instantanés.

  • Pour créer un instantané dans l'emplacement par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés, envoyez une requête POST à la méthode 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,
    }
    
  • Pour remplacer les paramètres d'instantané et créer un instantané dans un emplacement de stockage personnalisé, vous pouvez aussi envoyer une requête POST à la méthode snapshots.insert et incluez la propriété storageLocations dans votre requête :

    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,
    }
    

Remplacez les éléments suivants :

  • DESTINATION_PROJECT_ID : ID du projet dans lequel vous souhaitez créer l'instantané.
  • SNAPSHOT_NAME : nom de l'instantané.
  • SOURCE_PROJECT_ID : ID de projet du disque source.
  • SOURCE_ZONE : zone du disque source.
  • SOURCE_DISK_NAME : nom du volume de disque à partir duquel vous souhaitez créer un instantané.
  • SNAPSHOT_TYPE : type d'instantané, STANDARD ou ARCHIVE. Si aucun type d'instantané n'est spécifié, un instantané STANDARD est créé.
  • STORAGE_LOCATION : Facultatif : emplacement multirégional Cloud Storage ou la région Cloud Storage dans laquelle vous souhaitez stocker l'instantané. Vous ne pouvez spécifier qu'un seul emplacement de stockage.

    N'utilisez le paramètre storageLocations que si vous souhaitez ignorer l'emplacement de stockage par défaut prédéfini ou personnalisé configuré dans vos paramètres d'instantanés.

Pour créer un instantané VSS d'un disque persistant régional, dans les requêtes POST présentées précédemment, remplacez la ligne suivante:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Utilisez cette ligne à la place lorsque vous créez un instantané d'un disque persistant régional:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Facultatif : Marquez votre disque comme disponible en lecture et en écriture

Lorsque vous créez un instantané VSS, Windows Server marque le volume dans l'instantané comme étant en lecture seule. Lorsque vous créez un disque à partir de l'instantané VSS, ce disque est également défini sur "Lecture seule".

Cela risque d'entraîner des problèmes. Par exemple, si vous créez une instance de VM avec un nouveau disque de démarrage à partir d'un instantané VSS d'un disque de démarrage existant, l'indicateur de lecture seule sur le nouveau disque de démarrage empêche la VM de démarrer correctement.

Pour contourner ce problème, supprimez l'option de lecture seule de tout disque que vous créez à partir d'un instantané VSS en procédant comme suit :

  1. Assurez-vous que le disque est associé à une VM.

    • Si le disque que vous avez créé à partir de l'instantané VSS est un disque de données non amorçable, vous pouvez associer le disque à n'importe quelle VM nouvelle ou existante.
    • Si le disque que vous avez créé à partir de l'instantané VSS est un disque de démarrage et que vous souhaitez l'utiliser pour démarrer une VM, vous devez temporairement associer le disque à une VM existante distincte. Après avoir suivi les étapes ci-dessous, vous pouvez dissocier le disque de cette VM et l'utiliser pour démarrer une nouvelle instance de VM.
  2. Connectez-vous à la VM Windows à laquelle le disque est associé.

  3. Ouvrez une invite de commande PowerShell et exécutez l'outil diskpart.

    PS C:\> diskpart
    
  4. Identifiez le disque que vous souhaitez installer.

    DISKPART> list disk
    
  5. Utilisez la commande select disk pour sélectionner le disque.

    DISKPART> select disk DISK_NUMBER
    

    Remplacez DISK_NUMBER par le numéro du disque que vous souhaitez installer.

  6. Montez le disque.

    DISKPART> online disk
    
  7. Répertoriez tous les volumes du disque.

    DISKPART> list volume
    
  8. Sélectionnez le nouveau volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Remplacez VOLUME_NUMBER par le numéro du volume à configurer en lecture et écriture.

  9. Effacez l'option en lecture seule.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Quittez l'outil diskpart.

    DISKPART> exit
    
  11. Si le disque est un disque de démarrage pour une autre VM, synchronisez les fichiers du disque de démarrage avec la nouvelle signature de disque.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Remplacez DRIVE_LETTER par la lettre du disque pour le volume que vous souhaitez synchroniser. Par exemple, F pour F:\.

Créer un instantané sans utiliser VSS

Dans certains cas, vous pouvez créer des instantanés de disques associés à des VM Windows sans utiliser VSS.

Pour créer un instantané de disque sur une VM Windows sans utiliser VSS, procédez comme suit:

  1. Préparer votre système à un instantané réussi.
  2. Créer l'instantané
  3. Réinstallez votre disque.
  4. Marquer le disque comme disponible pour les opérations de lecture/écriture

Préparer votre système à un instantané réussi

Avant de créer un instantané de disque, assurez-vous de prendre un instantané conforme à l'état souhaité pour le disque. Le fait de prendre un instantané de votre disque dans un état "incorrect" peut aboutir à une vérification automatique du disque et provoquer une perte de données. Envisagez de synchroniser et de désinstaller votre système de fichiers.

Synchroniser le système de fichiers

S'il n'est pas possible de désinstaller votre disque, par exemple si une application est en train d'écrire des données sur le disque, vous pouvez synchroniser votre système de fichiers pour vider les tampons du disque. Pour synchroniser votre système de fichiers :

  1. Connectez-vous à votre VM Windows.
  2. Téléchargez et installez l'outil de synchronisation de Microsoft.
  3. Empêchez vos applications d'écrire sur le disque.
  4. Ouvrez une fenêtre d'invite de commande avec privilèges élevés.
  5. Dans la fenêtre de ligne de commande, exécutez:

    PS C:\> sync DRIVE_LETTER
    

    Remplacez DRIVE_LETTER par la lettre du disque pour le volume que vous souhaitez synchroniser. Par exemple, F pour F:\.

Désinstaller le disque

  1. Connectez-vous à votre VM Windows.

  2. Ouvrez une invite de commande PowerShell et exécutez l'outil diskpart.

    PS C:\> diskpart
    
  3. Identifiez le disque que vous souhaitez désinstaller pour prendre un instantané.

    DISKPART> list disk
    
  4. Sélectionnez ensuite le disque en utilisant le numéro de disque que vous venez de trouver.

    DISKPART> select disk DISK_NUMBER
    

    Remplacez DISK_NUMBER par le numéro du disque que vous souhaitez réinstaller.

  5. Désinstaller le disque.

    DISKPART> offline disk
    

Créer un instantané

Réinstallez votre disque.

  1. Connectez-vous à votre VM Windows.

  2. Ouvrez une invite de commande PowerShell et exécutez l'outil diskpart.

    PS C:\> diskpart
    
  3. Identifiez le disque que vous souhaitez installer.

    DISKPART> list disk
    
  4. Utilisez la commande select disk pour sélectionner le disque.

    DISKPART> select disk DISK_NUMBER
    

    Remplacez DISK_NUMBER par le numéro du disque que vous souhaitez installer.

  5. Montez le disque.

    DISKPART> online disk
    

Supprimer l'indicateur de lecture seule du disque

  1. Si nécessaire, procédez comme suit:

    1. Connectez-vous à votre VM Windows.

    2. Ouvrez une invite de commande PowerShell et exécutez l'outil diskpart.

      PS C:\> diskpart
      
  2. Répertoriez tous les volumes du disque.

    DISKPART> list volume
    
  3. Sélectionnez le nouveau volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Remplacez VOLUME_NUMBER par le numéro du volume que vous souhaitez configurer en lecture et en écriture.

  4. Effacez l'option en lecture seule.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  5. Quittez l'outil diskpart.

    DISKPART> exit
    
  6. Si le disque est un disque de démarrage pour une autre instance de VM, synchronisez les fichiers du disque de démarrage avec la nouvelle signature de disque lorsque l'invite de commande PowerShell s'affiche.

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

    Remplacez DRIVE_LETTER par la lettre du disque pour le volume que vous souhaitez synchroniser. Par exemple, F pour F:\.

Étapes suivantes