Crea una instantánea de disco coherente cpn la aplicación de Windows


En Compute Engine, puedes usar instantáneas para hacer una copia de seguridad de tus datos de disco. Debido a que las instantáneas son incrementales, puedes crearlas con un rendimiento mayor y costos totales de almacenamiento menores en comparación con la creación de imágenes de disco completas.

Las instantáneas coherentes de aplicación capturan el estado de los datos de aplicación en el momento en que se realizó la copia de seguridad con todas las transacciones de la aplicación completadas y todas las escrituras pendientes vaciadas al disco. En las VMs de Windows, debes usar el servicio de instantáneas de volumen (VSS) para crear instantáneas coherentes con la aplicación sin detener primero la instancia ni desconectar el disco de tu VM.

Antes de comenzar

  • Crea una instancia de Windows.
  • Revisa las prácticas recomendadas para crear instantáneas.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña sobre cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Limitaciones

Las instantáneas de disco en Windows tienen las siguientes limitaciones:

  • Las instantáneas de VSS solo funcionan en instancias de Windows con la versión de imagen v20160810 o posterior. Para las instancias con imágenes más antiguas, crea una instantánea sin usar VSS.
  • El disco adjunto debe usar un sistema de archivos NTFS, exFAT o ReFS.
  • Las instantáneas de VSS solo ayudan a preservar tus datos si ejecutas aplicaciones compatibles con VSS que puedan coordinarse para crear una copia de seguridad coherente de tus datos.
  • Si la operación de instantánea de VSS no se completa en 300 segundos, la instantánea falla y se muestra un error de tiempo de espera.

Crea una instantánea de Windows VSS

Puedes crear instantáneas del servicio de instantáneas de volumen (VSS) sin tener que detener la instancia ni desconectar el disco de tu VM. Las instantáneas de VSS están diseñadas para crear copias de seguridad y recuperar elementos en sistemas con apps compatibles con VSS.

Las instantáneas de VSS tienen el mismo precio que las instantáneas de Persistent Disk o Hyperdisk y solo se cobran por el tamaño total de la instantánea.

Crea la instantánea

Console

  1. Dirígete a la página Crear una instantánea en la consola de Google Cloud.

    Ir a la página Crear una instantánea
  2. Ingresa un Nombre para la instantánea.
  3. Selecciona un Tipo de instantánea. El valor predeterminado es una instantánea STANDARD, que es la mejor opción para la copia de seguridad a largo plazo y la recuperación ante desastres.

    Elige Instantánea de archivo para lograr una retención de datos más rentable.

  4. Opcional: ingresa una descripción de la instantánea.
  5. En Disco de origen, elige el disco existente del que deseas crear una instantánea.
  6. En la sección Ubicación, elige la ubicación de almacenamiento de instantáneas.

    La ubicación predeterminada predefinida o personalizada que se define en la configuración de la instantánea se elige de forma automática. De manera opcional, puedes anular la configuración de la instantánea y almacenar tus instantáneas en una ubicación de almacenamiento personalizada si haces lo siguiente:

    1. Elige el tipo de ubicación de almacenamiento que deseas para tu instantánea.

      • Elige Multirregional para obtener una mayor disponibilidad a un costo más alto.
      • Elige Instantáneas regionales para tener más control sobre la ubicación física de los datos a un costo más bajo.
    2. En el campo Seleccionar ubicación, elige la región o multirregión específica que deseas usar. Para usar la región o multirregión más cercana al disco de origen, elige En función de la ubicación del disco.
  7. Marca la opción Habilitar instantánea coherente de la aplicación.
  8. Haz clic en Crear para crear la instantánea.

gcloud

Para crear una instantánea de VSS, usa el comando gcloud compute snapshots create y, luego, incluye la marca --guest-flush.

Puedes crear tu instantánea en la política de ubicación de almacenamiento que define tu configuración de instantáneas o usar una ubicación de almacenamiento alternativa de tu elección. Para obtener más información, consulta Elige la ubicación de almacenamiento de tu instantánea.

  • Para crear una instantánea en la ubicación predefinida o en la ubicación personalizada predeterminada que se estableció en la configuración de instantánea, usa el 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
    
  • De lo contrario, si quieres anular la configuración de la instantánea y crear una instantánea en una ubicación de almacenamiento personalizada, incluye la marca --storage-location para indicar dónde almacenar la instantánea.

    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
    

    Reemplaza lo siguiente:

    • SNAPSHOT_NAME: Es un nombre para la instantánea.
    • SOURCE_ZONE: Es la zona del disco de origen.
    • SOURCE_DISK_NAME: Es el nombre del volumen de disco desde el que deseas crear una instantánea.
    • SNAPSHOT_TYPE: Es el tipo de instantánea, ya sea STANDARD o ARCHIVE. Si no se especifica un tipo de instantánea, se crea una instantánea STANDARD.
    • STORAGE_LOCATION: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.

      Usa el parámetro --storage-location solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.

    Para crear una instantánea de VSS de un Persistent Disk regional, en los ejemplos anteriores, se reemplaza --source-disk-zone= por --source-disk-region= y se especifica la región en la que se encuentra el Persistent Disk regional.

    Google Cloud CLI espera hasta que la operación muestre un estado de READY o FAILED, o hasta que alcance el tiempo de espera máximo y muestre los últimos detalles conocidos de la instantánea.

REST

Cuando creas una instantánea, para indicar que deseas crear una instantánea de VSS, incluye la propiedad guestFlush en el cuerpo de la solicitud de tu solicitud POST al método compute.snapshots.insert.

Puedes crear tu instantánea en la política de ubicación de almacenamiento que define tu configuración de instantáneas o usar una ubicación de almacenamiento alternativa de tu elección. Para obtener más información, consulta Elige la ubicación de almacenamiento de tu instantánea.

  • Para crear la instantánea en la ubicación predeterminada o personalizada establecida en tu configuración de instantáneas, haz una solicitud POST al método 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,
    }
    
  • De forma alternativa, para anular la configuración de instantáneas y crear una instantánea en una ubicación de almacenamiento personalizada, haz una solicitud POST al método snapshots.insert y, además, incluye la propiedad storageLocations en tu solicitud:

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

Reemplaza lo siguiente:

  • DESTINATION_PROJECT_ID: Es el ID del proyecto en el que deseas crear la instantánea.
  • SNAPSHOT_NAME: Es un nombre para la instantánea.
  • SOURCE_PROJECT_ID: Es el ID del proyecto del disco de origen.
  • SOURCE_ZONE: Es la zona del disco de origen.
  • SOURCE_DISK_NAME: Es el nombre del volumen de disco desde el que deseas crear una instantánea.
  • SNAPSHOT_TYPE: Es el tipo de instantánea, ya sea STANDARD o ARCHIVE. Si no se especifica un tipo de instantánea, se crea una instantánea STANDARD.
  • STORAGE_LOCATION: Opcional: la multirregión de Cloud Storage o la región de Cloud Storage en la que quieres almacenar la instantánea. Solo puedes especificar una ubicación de almacenamiento.

    Usa el parámetro storageLocations solo cuando quieras anular la ubicación de almacenamiento predeterminada o personalizada establecida en tu configuración de instantáneas.

Para crear una instantánea de VSS de un Persistent Disk regional, en las solicitudes POST que se mostraron antes, reemplaza la siguiente línea:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
En su lugar, usa esta línea cuando crees una instantánea de un Persistent Disk regional:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Marca el disco como disponible para lectura y escritura (opcional)

Cuando creas una instantánea de VSS, Windows Server marca el volumen en la instantánea como de solo lectura. Cuando creas un disco nuevo a partir de la instantánea de VSS, ese disco también se configura en modo de solo lectura.

Esto podría causar problemas. Por ejemplo, si creas una instancia de VM con un disco de arranque nuevo a partir de una instantánea de VSS de un disco de arranque existente, la marca de solo lectura en el disco de arranque nuevo evitará que la VM se inicie de forma correcta.

Para solucionar este problema, quita la marca de solo lectura de cualquier disco nuevo que crees a partir de una instantánea de VSS mediante los siguientes pasos:

  1. Asegúrate de que el disco esté conectado a una VM.

    • Si el disco que creaste a partir de la instantánea de VSS es un disco de datos que no es de arranque, puedes conectar el disco a cualquier VM nueva o existente.
    • Si el disco que creaste a partir de la instantánea de VSS es un disco de arranque y deseas usarlo para iniciar una VM, debes conectarlo de forma temporal a otra VM existente. Después de completar los siguientes pasos, podrás desconectar el disco de esa VM y usarlo para iniciar una instancia de VM nueva.
  2. Accede a la VM de Windows a la que está conectado el disco.

  3. Abre un símbolo del sistema de PowerShell y ejecuta la herramienta diskpart.

    PS C:\> diskpart
    
  4. Identifica el disco que deseas volver a activar.

    DISKPART> list disk
    
  5. Usa el comando select disk para seleccionar el disco.

    DISKPART> select disk DISK_NUMBER
    

    Reemplaza DISK_NUMBER por el número del disco que deseas activar.

  6. Activa el disco.

    DISKPART> online disk
    
  7. Genera una lista de todos los volúmenes en el disco.

    DISKPART> list volume
    
  8. Elige el volumen nuevo.

    DISKPART> select volume VOLUME_NUMBER
    

    Reemplaza VOLUME_NUMBER por el número de volumen que se configurará como lectura y escritura.

  9. Borra la marca de solo lectura.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Sal de la herramienta diskpart.

    DISKPART> exit
    
  11. Si el disco es un disco de arranque para otra VM, sincroniza los archivos de disco de arranque con la firma de disco nueva.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Reemplaza DRIVE_LETTER por la letra de la unidad de volumen que deseas sincronizar. Por ejemplo, F para F:\:

Crea una instantánea sin usar VSS

En algunas situaciones, es posible que quieras crear instantáneas de discos conectados a VMs de Windows sin usar VSS.

Para crear una instantánea de disco en una VM de Windows sin usar VSS, haz lo siguiente:

  1. Prepara el sistema para obtener una instantánea limpia.
  2. Crea la instantánea
  3. Vuelve a activar el disco
  4. Marca el disco como disponible para lectura y escritura

Prepara el sistema para obtener una instantánea limpia

Antes de crear una instantánea de disco, asegúrate de tomar una instantánea que sea coherente con el estado que deseas para el disco. Si tomas una instantánea de tu disco en un estado “sucio”, puedes forzar una verificación del disco, lo que puede llegar a producir una pérdida de datos. Considera sincronizar y desactivar tu sistema de archivos.

Sincroniza el sistema de archivos

Si no puedes desactivar el disco, por ejemplo, si una aplicación está escribiendo datos en el disco, puedes sincronizar el sistema de archivos para vaciar los búferes de disco. Para sincronizar tu sistema de archivos, haz lo siguiente:

  1. Accede a tu VM de Windows.
  2. Descarga y, luego, instala la herramienta Sync desde Microsoft.
  3. Evita que tus aplicaciones escriban en el disco.
  4. Abre una ventana del símbolo del sistema con privilegios elevados.
  5. En la ventana de la línea de comandos, ejecuta el siguiente fragmento:

    PS C:\> sync DRIVE_LETTER
    

    Reemplaza DRIVE_LETTER por la letra de la unidad de volumen que deseas sincronizar. Por ejemplo, F para F:\:

Desactiva el disco

  1. Accede a tu VM de Windows.

  2. Abre un símbolo del sistema de PowerShell y ejecuta la herramienta diskpart.

    PS C:\> diskpart
    
  3. Identifica la instantánea y el disco que deseas desactivar.

    DISKPART> list disk
    
  4. Luego, elige el disco con el número de disco que acabas de encontrar:

    DISKPART> select disk DISK_NUMBER
    

    Reemplaza DISK_NUMBER por el número del disco que deseas volver a activar.

  5. Desactiva el disco.

    DISKPART> offline disk
    

Crea una instantánea

Vuelve a activar el disco

  1. Accede a tu VM de Windows.

  2. Abre un símbolo del sistema de PowerShell y ejecuta la herramienta diskpart.

    PS C:\> diskpart
    
  3. Identifica el disco que deseas volver a activar.

    DISKPART> list disk
    
  4. Usa el comando select disk para seleccionar el disco.

    DISKPART> select disk DISK_NUMBER
    

    Reemplaza DISK_NUMBER por el número del disco que deseas activar.

  5. Activa el disco.

    DISKPART> online disk
    

Quita la marca de solo lectura del disco

  1. Si es necesario, completa estos pasos:

    1. Accede a tu VM de Windows.

    2. Abre un símbolo del sistema de PowerShell y ejecuta la herramienta diskpart.

      PS C:\> diskpart
      
  2. Genera una lista de todos los volúmenes en el disco.

    DISKPART> list volume
    
  3. Elige el volumen nuevo.

    DISKPART> select volume VOLUME_NUMBER
    

    Reemplaza VOLUME_NUMBER por el número de volumen que deseas configurar para lectura y escritura.

  4. Borra la marca de solo lectura.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  5. Sal de la herramienta diskpart.

    DISKPART> exit
    
  6. Si el disco es un disco de arranque para otra instancia de VM, en el símbolo del sistema de PowerShell, sincroniza los archivos de disco de arranque con la firma de disco nueva.

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

    Reemplaza DRIVE_LETTER por la letra de la unidad de volumen que deseas sincronizar. Por ejemplo, F para F:\:

¿Qué sigue?