Crie um instantâneo de disco consistente de aplicativo do Windows


No Compute Engine, você pode usar snapshots para fazer backup dos dados do disco. Como os snapshots são incrementais, você pode criá-los com maior desempenho e menor custo total de armazenamento em comparação com a criação de imagens de disco completas.

Os snapshots consistentes do aplicativo capturam o estado dos dados do aplicativo no momento do backup, com todas as transações do aplicativo concluídas e todas as gravações pendentes liberadas para o disco. Em VMs do Windows, você usa o Serviço de Cópias de Sombra de Volume (VSS) para criar instantâneos consistentes do aplicativo sem primeiro interromper a instância ou desanexar o disco da sua VM.

Antes de começar

Limitações

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

  • Os snapshots do VSS funcionam apenas em instâncias do Windows com versão de imagem v20160810 e mais recente. Para instâncias com imagens mais antigas, crie um snapshot sem usar VSS .
  • O disco anexado deve usar um sistema de arquivos NTFS, exFAT ou ReFS.
  • Os instantâneos VSS ajudam a preservar seus dados somente se você estiver executando aplicativos compatíveis com VSS que possam ser coordenados para criar um backup consistente de seus dados.
  • Se a operação de captura instantânea do VSS não for concluída em 300 segundos, a captura instantânea falhará com um erro de tempo limite.

Crie um instantâneo do Windows VSS

Você pode criar snapshots do Volume Shadow Copy Service (VSS) sem precisar parar a instância ou desanexar o disco da sua VM. Os snapshots VSS destinam-se a fins de backup e recuperação em sistemas com aplicativos compatíveis com VSS.

Os snapshots VSS têm o mesmo preço dos snapshots normais de disco permanente ou hiperdisco e cobram apenas pelo tamanho total do snapshot .

Crie o instantâneo

Console

  1. Acesse a página Criar um instantâneo no console do Google Cloud.

    Vá para a página Criar um instantâneo
  2. Insira um Nome para instantâneo.
  3. Selecione um tipo de instantâneo . O padrão é um STANDARD PADRÃO, que é a melhor opção para backup de longo prazo e recuperação de desastres.

    Escolha Arquivar snapshot para uma retenção de dados mais econômica.

  4. Opcional: insira uma descrição da captura instantânea.
  5. Em Disco de origem , selecione o disco existente do qual você deseja criar um instantâneo.
  6. Na seção Local , escolha o local de armazenamento do snapshot .

    O local padrão predefinido ou personalizado definido nas configurações do snapshot é selecionado automaticamente. Opcionalmente, você pode substituir as configurações de snapshot e armazená-los em um local de armazenamento personalizado fazendo o seguinte:

    1. Escolha o tipo de local de armazenamento que deseja para seu snapshot.

      • Escolha Multirregional para maior disponibilidade a um custo mais elevado.
      • Escolha snapshots regionais para ter mais controle sobre a localização física dos seus dados a um custo menor.
    2. No campo Selecionar local , selecione a região ou multirregião específica que você deseja usar. Para usar a região ou multirregião mais próxima do disco de origem, selecione Com base na localização do disco .
  7. Marque a opção Habilitar snapshot consistente do aplicativo .
  8. Clique em Criar para criar o instantâneo.

gcloud

Para criar um snapshot do VSS, use o comando gcloud compute snapshots create e inclua a sinalização --guest-flush .

Você pode criar seu instantâneo na política de local de armazenamento definida pelas configurações de instantâneo ou usando um local de armazenamento alternativo de sua escolha. Para obter mais informações, consulte Escolha o local de armazenamento do snapshot .

  • Para criar um snapshot no local padrão predefinido ou personalizado configurado nas configurações do snapshot, 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
    
  • Alternativamente, para substituir as configurações de snapshot e criar um snapshot em um local de armazenamento personalizado, inclua o sinalizador --storage-location para indicar onde armazenar seu 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
    
  • ( Visualização ) Para criar um instantâneo com escopo regional em uma região permitida, inclua o sinalizador --region para indicar onde criar seu 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 instantâneo.
  • SOURCE_ZONE : a zona do disco de origem.
  • SOURCE_DISK_NAME : o nome do volume de disco a partir do qual você deseja criar um instantâneo.
  • SNAPSHOT_TYPE : o tipo de instantâneo, STANDARD ou ARCHIVE . Se um tipo de instantâneo não for especificado, um instantâneo STANDARD será criado.
  • STORAGE_LOCATION : opcional: para snapshots com escopo global, a multirregião do Cloud Storage ou a região do Cloud Storage onde você deseja armazenar o snapshot. Você pode especificar apenas um local de armazenamento.

    Use o parâmetro --storage-location somente quando desejar substituir o local de armazenamento padrão predefinido ou customizado configurado nas configurações do snapshot.

  • SNAPSHOT_SCOPE_REGION : Opcional: para capturas instantâneas com escopo regional, a região para a qual a captura instantânea tem escopo. Se você incluir esse parâmetro, não poderá usar o parâmetro --storage-location . O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION .

Para criar um snapshot VSS de um disco permanente regional, nos exemplos anteriores substitua --source-disk-zone= por --source-disk-region= e especifique a região onde seu disco permanente regional está localizado.

A CLI do Google Cloud aguarda até que a operação retorne um status READY , FAILED ou atinja o tempo limite máximo e retorne os últimos detalhes conhecidos do snapshot.

DESCANSAR

Ao criar uma captura instantânea, para indicar que você deseja criar uma captura instantânea do VSS, inclua a propriedade guestFlush no corpo da solicitação de sua solicitação POST para o método compute.snapshots.insert .

Você pode criar seu instantâneo na política de local de armazenamento definida pelas configurações de instantâneo ou usando um local de armazenamento alternativo de sua escolha. Para obter mais informações, consulte Escolha o local de armazenamento do snapshot .

  • Para criar um snapshot no local padrão predefinido ou personalizado configurado nas configurações do snapshot, faça uma solicitação POST para o 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,
    }
    
  • Alternativamente, para substituir as configurações de snapshot e criar um snapshot em um local de armazenamento personalizado, faça uma solicitação POST para o método snapshots.insert e inclua a propriedade storageLocations em sua solicitação:

    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,
    }
    
  • ( Visualização ) Para criar um snapshot com escopo regional em uma região permitida, faça uma solicitação POST para o 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 você deseja criar o instantâneo.
  • SNAPSHOT_NAME : um nome para o instantâneo.
  • 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 você deseja criar um instantâneo.
  • SNAPSHOT_TYPE : o tipo de instantâneo, STANDARD ou ARCHIVE . Se um tipo de instantâneo não for especificado, um instantâneo STANDARD será criado.
  • STORAGE_LOCATION : opcional: para snapshots com escopo global, a multirregião do Cloud Storage ou a região do Cloud Storage onde você deseja armazenar o snapshot. Você pode especificar apenas um local de armazenamento.

    Use o parâmetro storageLocations somente quando desejar substituir o local de armazenamento padrão predefinido ou customizado configurado nas configurações de snapshot.

  • SNAPSHOT_SCOPE_REGION : Opcional: para capturas instantâneas com escopo regional, a região para a qual a captura instantânea tem escopo. Se você incluir esse parâmetro, não poderá usar o parâmetro storageLocations . O STORAGE_LOCATION é automaticamente definido como SNAPSHOT_SCOPE_REGION .

Para criar um snapshot VSS de um disco permanente regional, nas solicitações POST mostradas anteriormente, substitua a seguinte linha:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
Use esta linha ao criar um snapshot de um disco permanente regional:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

Opcional: marque seu disco como disponível para leitura e gravação

Quando você cria um instantâneo do VSS, o Windows Server marca o volume no instantâneo como somente leitura. Ao criar um novo disco a partir da captura instantânea do VSS, esse disco também é configurado para o modo somente leitura.

Isso pode causar problemas. Por exemplo, se você criar uma instância de VM com um novo disco de inicialização a partir de um snapshot VSS de um disco de inicialização existente, o sinalizador somente leitura no novo disco de inicialização impedirá que a VM seja inicializada corretamente.

Para contornar esse problema, remova o sinalizador somente leitura de qualquer novo disco criado a partir de um instantâneo do VSS usando as seguintes etapas:

  1. Certifique-se de que o disco esteja conectado a uma VM:

    • Se o disco criado a partir do snapshot do VSS for um disco de dados que não é de inicialização , você poderá anexar o disco a qualquer VM nova ou existente.
    • Se o disco criado a partir da captura instantânea do VSS for um disco de inicialização e você quiser usá-lo para inicializar uma VM, será necessário anexar temporariamente o disco a uma VM existente separada. Depois de concluir as etapas a seguir, você poderá desanexar o disco dessa VM e usá-lo para inicializar uma nova instância de VM.
  2. Entre na VM do Windows à qual o disco está conectado.

  3. Abra um prompt de comando do PowerShell e execute a ferramenta diskpart .

    PS C:\> diskpart
    
  4. Identifique o disco que você deseja 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 você deseja 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 ser configurado como leitura e gravação.

  9. Limpe o sinalizador somente leitura.

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

    DISKPART> exit
    
  11. Se o disco for um disco de inicialização para outra VM, sincronize os arquivos do disco de inicialização com a nova assinatura do disco.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

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

Crie um instantâneo sem usar VSS

Em algumas situações, talvez você queira criar instantâneos de discos anexados a VMs do Windows sem usar o VSS.

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

  1. Prepare seu sistema para um snapshot limpo .
  2. Crie o instantâneo .
  3. Remonte seu disco
  4. Marcar o disco como disponível para leitura/gravação

Prepare seu sistema para um snapshot limpo

Antes de criar um instantâneo de disco, certifique-se de tirar um instantâneo que seja consistente com o estado desejado para o disco. Se você tirar um instantâneo do seu disco em um estado "sujo", isso poderá forçar uma verificação do disco e possivelmente levar à perda de dados. Considere sincronizar e desmontar seu sistema de arquivos.

Sincronize o sistema de arquivos

Se a desmontagem do disco não for uma opção, como em cenários em que um aplicativo pode estar gravando dados no disco, você poderá sincronizar o sistema de arquivos para liberar os buffers do disco. Para sincronizar seu sistema de arquivos:

  1. Faça login na sua VM do Windows.
  2. Baixe e instale a ferramenta Sync da Microsoft.
  3. Impeça que seus aplicativos gravem no disco.
  4. Abra uma janela elevada do prompt de comando.
  5. Na janela da linha de comando, execute:

    PS C:\> sync DRIVE_LETTER
    

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

Desmonte o disco

  1. Faça login na sua VM do Windows.

  2. Abra um prompt de comando do PowerShell e execute a ferramenta diskpart .

    PS C:\> diskpart
    
  3. Identifique o disco que você deseja desmontar e tirar instantâneo.

    DISKPART> list disk
    
  4. Em seguida, selecione o disco usando o número do disco que você acabou de encontrar.

    DISKPART> select disk DISK_NUMBER
    

    Substitua DISK_NUMBER pelo número do disco que você deseja remontar.

  5. Desmonte o disco.

    DISKPART> offline disk
    

Crie um instantâneo

Remonte seu disco

  1. Faça login na sua VM do Windows.

  2. Abra um prompt de comando do PowerShell e execute a ferramenta diskpart .

    PS C:\> diskpart
    
  3. Identifique o disco que você deseja 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 você deseja montar.

  5. Monte o disco.

    DISKPART> online disk
    

Remova o sinalizador somente leitura do disco

  1. Se necessário, conclua estas etapas:

    1. Faça login na sua VM do Windows.

    2. Abra um prompt de comando do PowerShell e execute a ferramenta diskpart .

      PS C:\> diskpart
      
  2. Liste todos os volumes no disco.

    DISKPART> list volume
    
  3. Selecione o novo volume.

    DISKPART> select volume VOLUME_NUMBER
    

    Substitua VOLUME_NUMBER pelo número do volume que você deseja configurar para leitura e gravação.

  4. Limpe o sinalizador somente leitura.

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

    DISKPART> exit
    
  6. Se o disco for um disco de inicialização para outra instância de VM, no prompt de comando do PowerShell, sincronize os arquivos do disco de inicialização com a nova assinatura do disco.

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

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

O que vem a seguir