Crie um instantâneo de disco consistente de uma aplicação Windows

No Compute Engine, pode usar capturas de ecrã para fazer uma cópia de segurança dos dados do disco. Como as imagens instantâneas são incrementais, pode criá-las com um desempenho superior e custos de armazenamento totais inferiores em comparação com a criação de imagens de disco completas.

As cópias instantâneas consistentes com a aplicação capturam o estado dos dados da aplicação no momento da cópia de segurança com todas as transações da aplicação concluídas e todas as escritas pendentes descarregadas para o disco. Nas VMs do Windows, usa o serviço de cópia de sombra de volumes (VSS) para criar instantâneos consistentes com as aplicações sem parar primeiro a instância nem desanexar o disco da VM.

Antes de começar

  • Crie uma instância do Windows.
  • Reveja as práticas recomendadas para criar instantâneos.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    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. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Limitações

Os instantâneos de discos no Windows têm as seguintes limitações:

  • As cópias instantâneas de VSS só funcionam em instâncias do Windows com a versão v20160810 da imagem e mais recentes. Para instâncias com imagens mais antigas, crie um instantâneo sem usar o VSS.
  • O disco anexado tem de usar um sistema de ficheiros NTFS, exFAT ou ReFS.
  • Os instantâneos de VSS ajudam a preservar os seus dados apenas se estiver a executar aplicações compatíveis com VSS que possam coordenar a criação de uma cópia de segurança consistente dos seus dados.
  • Se a operação de instantâneo do VSS não for concluída no prazo de 300 segundos, o instantâneo falha com um erro de limite de tempo.

Crie um instantâneo do VSS do Windows

Pode criar instantâneos do serviço de cópia de sombra de volume (VSS) sem ter de parar a instância nem desanexar o disco da sua VM. As imagens instantâneas do VSS destinam-se a fins de cópia de segurança e recuperação em sistemas com apps compatíveis com o VSS.

As imagens instantâneas de VSS têm o mesmo preço que as imagens instantâneas normais de disco persistente ou Hyperdisk e cobram apenas o tamanho total da imagem instantânea.

Crie o instantâneo

Consola

  1. Aceda à página Criar uma captura instantânea na Google Cloud consola.

    Aceda à página Crie um instantâneo
  2. Introduza um Nome para o instantâneo.
  3. Selecione um Tipo de instantâneo. A predefinição é uma cópia instantânea STANDARD, que é a melhor opção para cópias de segurança a longo prazo e recuperação de desastres.

    Escolha Arquivo de instantâneo para uma retenção de dados mais rentável.

  4. Opcional: introduza uma descrição do instantâneo.
  5. Em Disco de origem, selecione o disco existente do qual quer criar uma captura instantânea.
  6. Na secção Localização, escolha a localização de armazenamento das suas fotos instantâneas.

    A localização predefinida ou personalizada definida nas definições de instantâneo é selecionada automaticamente. Opcionalmente, pode substituir as definições de instantâneo e armazenar os instantâneos numa localização de armazenamento personalizada da seguinte forma:

    1. Escolha o tipo de localização de armazenamento que quer para a sua captura instantânea.

    2. No campo Selecionar localização, selecione a região específica ou multirregião que quer usar. Para usar a região ou a multirregião mais próxima do disco de origem, selecione Com base na localização do disco.
  7. Selecione a opção Ativar instantâneo consistente da aplicação.
  8. Clique em Criar para criar a captura de ecrã.

gcloud

Para criar uma captura instantânea de VSS, use o comando gcloud compute snapshots create e inclua a flag --guest-flush.

Pode criar o instantâneo na política de localização de armazenamento definida pelas suas definições de instantâneo ou usando uma localização de armazenamento alternativa à sua escolha. Para mais informações, consulte o artigo Escolha a localização de armazenamento das capturas de ecrã.

  • Para criar uma captura de ecrã na localização predefinida ou personalizada configurada nas definições de captura de ecrã, use o 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
    
  • Em alternativa, para substituir as definições de imagens instantâneas e criar uma imagem instantânea numa localização de armazenamento personalizada, inclua a flag --storage-location para indicar onde armazenar a imagem 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
    
  • (Pré-visualização) Para criar um instantâneo com âmbito regional numa região permitida, inclua a flag --region para indicar onde criar o instantâneo.

    gcloud beta compute snapshots create SNAPSHOT_NAME \
        --region=SNAPSHOT_SCOPE_REGION
        --source-disk=SOURCE_DISK_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --snapshot-type=SNAPSHOT_TYPE
    

Substitua o seguinte:

  • SNAPSHOT_NAME: um nome para o resumo.
  • SOURCE_ZONE: a zona do disco de origem.
  • SOURCE_DISK_NAME: o nome do volume do disco a partir do qual quer criar uma captura instantânea.
  • SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE. Se não for especificado um tipo de instantâneo, é criado um instantâneo STANDARD.
  • STORAGE_LOCATION: Opcional: para instantâneos com âmbito global, a multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar o instantâneo. Só pode especificar uma localização de armazenamento.

    Use o parâmetro --storage-location apenas quando quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo.

  • SNAPSHOT_SCOPE_REGION: opcional: para resumos com âmbito regional, a região à qual o resumo se destina. Se incluir este parâmetro, não pode usar o parâmetro --storage-location. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION.

Para criar uma captura instantânea de VSS de um disco persistente regional, nos exemplos anteriores, substitua --source-disk-zone= por --source-disk-region= e especifique a região onde o disco persistente regional está localizado.

A CLI do Google Cloud aguarda até que a operação devolva um estado de READY, FAILED ou atinja o limite de tempo máximo e devolve os últimos detalhes conhecidos da cópia instantânea.

REST

Quando criar um instantâneo, para indicar que quer criar um instantâneo VSS, inclua a propriedade guestFlush no corpo do pedido para o seu pedido POST ao método compute.snapshots.insert.

Pode criar o instantâneo na política de localização de armazenamento definida pelas suas definições de instantâneo ou usando uma localização de armazenamento alternativa à sua escolha. Para mais informações, consulte o artigo Escolha a localização de armazenamento das capturas de ecrã.

  • Para criar um instantâneo na localização predefinida ou personalizada configurada nas definições de instantâneos, faça um pedido POST ao 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,
    }
    
  • Em alternativa, para substituir as definições de instantâneo e criar um instantâneo numa localização de armazenamento personalizada, faça um pedido ao método POST e inclua a propriedade snapshots.insert no seu pedido:storageLocations

    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,
    }
    
  • (Pré-visualização) Para criar uma imagem instantânea com âmbito regional numa região permitida, faça um pedido POST ao método snapshots.insert e defina a região de criação:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotType": "SNAPSHOT_TYPE"
    }
    

Substitua o seguinte:

  • DESTINATION_PROJECT_ID: o ID do projeto no qual quer criar a captura de ecrã.
  • SNAPSHOT_NAME: um nome para o resumo.
  • SOURCE_PROJECT_ID: o ID do projeto do disco de origem.
  • SOURCE_ZONE: a zona do disco de origem.
  • SOURCE_DISK_NAME: o nome do disco a partir do qual quer criar uma captura instantânea.
  • SNAPSHOT_TYPE: o tipo de instantâneo, STANDARD ou ARCHIVE. Se não for especificado um tipo de instantâneo, é criado um instantâneo STANDARD.
  • STORAGE_LOCATION: Opcional: para instantâneos com âmbito global, a multirregião do Cloud Storage ou a região do Cloud Storage onde quer armazenar o instantâneo. Só pode especificar uma localização de armazenamento.

    Use o parâmetro storageLocations apenas quando quiser substituir a localização de armazenamento predefinida ou personalizada configurada nas definições de instantâneo.

  • SNAPSHOT_SCOPE_REGION: Opcional: para resumos com âmbito regional, a região à qual o resumo se destina. Se incluir este parâmetro, não pode usar o parâmetro storageLocations. O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION.

Para criar uma captura instantânea de VSS de um disco persistente regional, nos pedidos POSTmostrados anteriormente, substitua a seguinte linha:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Em vez disso, use esta linha quando criar um instantâneo de um disco persistente regional:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Crie um disco gravável a partir de um instantâneo do VSS

Quando cria um instantâneo de VSS, o Windows Server marca o volume no instantâneo como só de leitura. Quando cria um novo disco a partir da cópia instantânea do VSS, esse disco também é definido como modo só de leitura.

Isto pode causar problemas. Por exemplo, se criar uma instância de VM com um novo disco de arranque a partir de um instantâneo VSS de um disco de arranque existente, a flag de só leitura no novo disco de arranque impede o arranque correto da VM.

Para contornar este problema, remova a flag de só de leitura de qualquer novo disco que criar a partir de uma captura instantânea do VSS através dos seguintes passos:

  1. Certifique-se de que o disco está associado a uma VM:

    • Se o disco que criou a partir da captura instantânea de VSS for um disco de dados não inicializável, pode anexá-lo a qualquer VM nova ou existente.
    • Se o disco que criou a partir do instantâneo de VSS for um disco de arranque e quiser usá-lo para arrancar uma VM, tem de anexar temporariamente o disco a uma VM existente separada. Depois de concluir os passos seguintes, pode desanexar o disco dessa VM e usá-lo para arrancar uma nova instância de VM.
  2. Inicie sessão na VM do Windows à qual o disco está anexado.

  3. Abra uma linha de comandos do PowerShell e execute a ferramenta diskpart.

    PS C:\> diskpart
    
  4. Identifique o disco que quer montar.

    DISKPART> list disk
    
  5. Use o comando select disk para selecionar o disco.

    DISKPART> select disk DISK_NUMBER
    

    Substitua DISK_NUMBER pelo número do disco que quer montar.

  6. Monte o disco.

    DISKPART> online disk
    
  7. Liste todos os volumes no disco.

    DISKPART> list volume
    
  8. Selecione o novo volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Substitua VOLUME_NUMBER pelo número do volume a configurar como leitura e escrita.

  9. Limpar a flag só de leitura.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. Saia da ferramenta diskpart.

    DISKPART> exit
    
  11. Se o disco for um disco de arranque para outra VM, sincronize os ficheiros do disco de arranque com a nova assinatura do disco.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    Substitua DRIVE_LETTER pela letra da unidade do volume que quer sincronizar. Por exemplo, F para F:\.

Crie um instantâneo sem usar o VSS

Em algumas situações, pode querer criar instantâneos de discos anexados a VMs do Windows sem usar o VSS.

Para criar um instantâneo de disco numa VM do Windows sem usar o VSS, faça o seguinte:

  1. Prepare o seu sistema para um instantâneo limpo
  2. Crie o instantâneo
  3. Volte a montar o disco

Prepare o seu sistema para uma captura de ecrã limpa

Antes de criar uma captura instantânea do disco, certifique-se de que está a criar uma captura instantânea consistente com o estado que quer para o disco. Se tirar uma captura instantânea do disco num estado "não limpo", pode forçar uma verificação do disco e, possivelmente, levar à perda de dados. Considere sincronizar e desmontar o sistema de ficheiros.

Sincronize o sistema de ficheiros

Se a desmontagem do disco não for uma opção, como em cenários em que uma aplicação pode estar a escrever dados no disco, pode sincronizar o sistema de ficheiros para limpar as memórias intermédias do disco. Para sincronizar o sistema de ficheiros:

  1. Inicie sessão na sua VM do Windows.
  2. Transfira e instale a ferramenta Sync da Microsoft.
  3. Impedir que as suas aplicações escrevam no disco.
  4. Abra uma janela de linha de comandos elevada.
  5. Na janela da linha de comandos, execute:

    PS C:\> sync DRIVE_LETTER
    

    Substitua DRIVE_LETTER pela letra da unidade do volume que quer sincronizar. Por exemplo, F para F:\.

Desmonte o disco

  1. Inicie sessão na sua VM do Windows.

  2. Abra uma linha de comandos do PowerShell e execute a ferramenta diskpart.

    PS C:\> diskpart
    
  3. Identifique o disco que quer desmontar e criar uma captura de ecrã.

    DISKPART> list disk
    
  4. Em seguida, selecione o disco através do número do disco que acabou de encontrar.

    DISKPART> select disk DISK_NUMBER
    

    Substitua DISK_NUMBER pelo número do disco que quer remontar.

  5. Desmonte o disco.

    DISKPART> offline disk
    

Criar um instantâneo

Volte a montar o disco

  1. Inicie sessão na sua VM do Windows.

  2. Abra uma linha de comandos do PowerShell e execute a ferramenta diskpart.

    PS C:\> diskpart
    
  3. Identifique o disco que quer montar.

    DISKPART> list disk
    
  4. Use o comando select disk para selecionar o disco.

    DISKPART> select disk DISK_NUMBER
    

    Substitua DISK_NUMBER pelo número do disco que quer montar.

  5. Monte o disco.

    DISKPART> online disk
    

O que se segue?