Visão geral do encerramento sem dificuldades


Este documento apresenta uma visão geral do processo de desligamento normal em instâncias do Compute Engine. Para saber mais sobre os estados que uma instância pode passar durante o ciclo de vida, consulte Ciclo de vida da instância do Compute Engine.

Ao interromper ou excluir uma instância, o Compute Engine permite um curto período para que o SO convidado seja totalmente desligado. Se o SO convidado não concluir a execução das tarefas dentro desse período, o Compute Engine vai forçar um encerramento, o que pode levar à perda de dados ou corromper sistemas de arquivos.

Para evitar esses problemas, ative o desligamento normal em uma instância. Com essa configuração ativada, o SO convidado tem até uma hora para concluir as tarefas antes de o Compute Engine encerrá-lo. O encerramento normal é útil para cenários em que você quer fazer o seguinte:

  • Permitir o desligamento completo de um job de computação de alto desempenho (HPC).

  • Permitir que um banco de dados termine de enviar transações ativas.

  • Permitir que um servidor de e-mail termine o processamento antes do desligamento.

  • Permitir que uma sessão de jogo multiplayer termine de ser executada.

Sobre o encerramento normal

As seções a seguir explicam como o desligamento normal funciona.

Período de encerramento

Em uma instância de computação, o desligamento normal está desativado por padrão. É possível ativar esse recurso ao criar ou atualizar uma instância. Ao ativar o encerramento normal, você pode especificar um período de encerramento da seguinte maneira:

  • Período padrão: se você não especificar um período de desligamento, o Compute Engine usará um período padrão de 10 minutos.

  • Período personalizado: de um segundo a uma hora.

Recomendamos escolher um período de desligamento que dê aos aplicativos tempo suficiente para concluir as tarefas em execução. Por exemplo, se você estimar que seus aplicativos precisam de 10 minutos para concluir as tarefas em execução, recomendamos especificar um período de desligamento de 15 minutos. Essa abordagem evita que as tarefas sejam interrompidas à força e a possível corrupção de dados. Depois que todas as tarefas no SO convidado forem concluídas, encerre manualmente o desligamento normal para economizar custos, conforme descrito na próxima seção.

Processo de desligamento

Quando você interrompe ou exclui uma instância de computação com o encerramento normal ativado, ou se o Compute Engine a interrompe ou exclui por uma interrupção ou exclusão programada, o estado da instância muda para PENDING_STOP. O encerramento normal começa, permitindo que os aplicativos concluam a execução das tarefas.

O Compute Engine encerra o desligamento normal de uma instância quando o período de desligamento normal atinge o tempo limite ou quando você encerra manualmente o desligamento normal da seguinte maneira:

  • No SO convidado. Você interrompe a instância usando o comando de desligamento do SO convidado, por exemplo, sudo shutdown -h now.

  • De Google Cloud. Você interrompe ou exclui a instância usando um dos métodos a seguir:

    • Console doGoogle Cloud : siga estas etapas:

      1. Acesse a página Instâncias da VM.

      2. Selecione a instância e clique em Parar ou Excluir. Se não houver uma opção Interromper ou Excluir, clique em Mais ações > Interromper ou Excluir.

      3. Na caixa de diálogo exibida, marque a caixa de seleção Ignorar o desligamento normal (se aplicável) antes de confirmar a interrupção ou exclusão da instância.

    • Google Cloud CLI: inclua a flag --no-graceful-shutdown no comando.

    • API REST: inclua o parâmetro de consulta noGracefulShutdown=true no URL da solicitação.

Quando o processo de encerramento normal termina, o Compute Engine envia o sinal de desligamento suave G2 da Interface de configuração e energia avançada (ACPI) para o SO convidado, define o estado da instância como STOPPING e continua com a operação de interrupção ou exclusão.

Parar ou excluir sem encerramento otimizado

Depois de ativar o encerramento normal em uma instância, ainda é possível interrompê-la ou excluí-la sem passar pelo processo de encerramento normal. Essa abordagem ajuda a economizar custos quando, por exemplo, não é necessário encerrar normalmente a instância em um dia específico ou se a carga de trabalho em execução na instância mudou.

Para pular o encerramento sem dificuldades, siga um destes procedimentos:

Limitações

O encerramento normal tem as seguintes limitações:

  • Não é possível ativar o desligamento normal nas seguintes instâncias de computação:

  • Depois de ativar o desligamento normal em uma instância, não é possível fazer o seguinte:

    • Não é possível atualizar propriedades de instância que exigem uma reinicialização.

    • Se a instância for uma VM de TPU, não será possível simular eventos de manutenção do host.

  • Se um encerramento completo estiver em andamento (PENDING_STOP), não será possível fazer o seguinte:

    • Não é possível atualizar as propriedades da instância.

    • Se a instância estiver sendo excluída, não será possível ativar ou desativar a proteção contra exclusão.

  • O encerramento sem dificuldades da instância é interrompido se:

  • Só é possível encerrar e excluir até 8.000 instâncias por vez por projeto e por região.

  • É possível encerrar normalmente ou modificar as configurações de encerramento normal para instâncias criadas em massa somente depois que o Compute Engine terminar de criar todas as instâncias.

Preços

Não há custo para ativar ou desativar o desligamento otimizado em uma instância de computação. No entanto, quando você interrompe ou exclui uma instância com desligamento normal ativado, as cobranças continuam sendo geradas como se ela estivesse em execução. Esses encargos são interrompidos quando o período de encerramento normal termina e o estado da instância muda para STOPPING.

Para informações mais detalhadas sobre preços, consulte Preços de instâncias de VM.

A seguir