Neste documento, descrevemos como suspender ou retomar uma instância de máquina virtual (VM).
Se você quiser manter a instância de VM, mas não quiser receber cobranças por ela quando ela não estiver em uso, suspenda a VM. Quando você suspende uma VM, o Google preserva a VM no projeto e move o conteúdo da memória da VM para o armazenamento. Enquanto a VM está suspensa, o Google cobra apenas pelo armazenamento usado para preservar a memória da VM. Os atributos, como endereços IP estáticos, permanecem em vigor para que as funções de rede funcionem conforme o esperado quando você retoma a VM. Após a retomada, o Google move a memória da VM do armazenamento de volta para a instância e começa a cobrar você pela instância de VM em execução.
Suspender uma instância é ideal para:
- Ambientes de desenvolvimento e teste que não estão sendo totalmente utilizados durante períodos de inatividade, como durante noites ou fins de semana, para economizar custos ou inicialização mais rápida do que criar novas instâncias de VM
- Aplicativos que exigem um longo período de inicialização depois que a instância inicializa, mas antes que o aplicativo esteja pronto para atender à primeira solicitação, como estações de trabalho de desenvolvedores virtuais ou aplicativos Java complexos
Como funciona a suspensão
Suspender uma instância envia um sinal
ACPI S3 suspend
para o sistema operacional da instância. A suspensão de uma instância é análoga
ao fechamento do laptop, colocando-a no
estado SUSPENDED
.
A suspensão de uma instância é diferente da interrupção de uma instância das seguintes maneiras:
- As instâncias suspensas preservam a memória do SO convidado, o estado do dispositivo e o estado do aplicativo.
- O Google cobra pelo armazenamento necessário para salvar a memória da instância.
- Só é possível suspender uma instância por até 60 dias. Após 60 dias, a instância é movida
automaticamente para o estado
TERMINATED
.
Todos os recursos anexados à instância permanecem anexados a ela e serão cobrados, incluindo discos permanentes e endereços IP externos estáticos ou reservados. Todos esses recursos são cobrados de acordo com a tabela de preços, mesmo que uma instância seja suspensa.
Não é possível suspender uma instância usando os processos padrão integrados
ao ambiente convidado. Não há comandos disponíveis, como o systemctl suspend
no Ubuntu 16.04 e versões posteriores. Só é possível usar a
Google Cloud CLI ou a REST para suspender uma instância.
Se você não se importa em restaurar a memória de uma instância e o estado do dispositivo ao retomar a instância posteriormente, é possível interromper a instância, o que não gera cobranças extras de armazenamento.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Não é possível suspender uma instância que usa uma GPU.
- Não é possível suspender uma instância do Bare Metal.
- Não é possível suspender uma instância usando os processos padrão integrados
ao ambiente convidado. Não há comandos disponíveis, como o
systemctl suspend
no Ubuntu 16.04 e versões posteriores. O sinal de convidado é ignorado. - A instância só pode ser suspensa por até 60 dias antes que a VM seja interrompida automaticamente.
- Não é possível suspender instâncias com mais de 208 GB de memória.
- É possível suspender instâncias preemptivas, mas elas podem ser encerradas antes de serem suspensas.
- Não é possível suspender uma VM confidencial.
- Não é possível suspender uma VM que tenha discos protegidos por CSEK anexados.
- Memória da instância (consulte os preços das instâncias de VM suspensas).
- Qualquer uso de disco permanente relacionado ao disco de inicialização e quaisquer outros discos anexados à instância (consulte Preços de discos permanentes)
- Quaisquer IPs estáticos anexados à instância
- A suspensão de VMs pode economizar nas taxas de licenciamento de software. Por exemplo, se você suspender VMs do Windows, não receberá cobranças de licença do Windows. As taxas de licença para outras imagens podem ter Termos e Condições diferentes e podem resultar em cobranças, mesmo quando suspensas.
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione uma ou mais instâncias a serem suspensas.
Clique em Suspender.
Quando solicitado, se quiser descartar os dados do SSD local, selecione Descartar o conteúdo do SSD. Quando a instância for retomada, todos os dados de SSD locais da instância terão sido descartados.
PROJECT_ID
: o ID do projeto;ZONE
: a zona da VM;VM_NAME
: a instância que você quer suspender.No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione uma ou mais instâncias para retomar.
Clique em Iniciar / continuar.
PROJECT_ID
: o ID do projeto desta solicitação;ZONE
: a zona da VM;VM_NAME
: a instância a ser retomada.Conecte-se à instância de VM com ssh:
gcloud compute ssh VM_NAME
Na instância da VM, crie um diretório na pasta
acpi
:sudo mkdir -p /etc/acpi/events/
Configure o ACPID para processar o evento do botão de suspensão:
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOF
Crie o script de manipulação de eventos de suspensão:
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOF
Configure as permissões do script:
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.sh
Reinicie o ACPID:
sudo systemctl restart acpid.service
Conecte-se à instância de VM com ssh:
gcloud compute ssh VM_NAME
Na instância da VM, instale
dbus
:sudo apt-get install dbus
Restart
logind
:sudo systemctl restart systemd-logind.service
- Exclua uma instância se não precisar mais dela.
- Pare ou reinicie uma instância.
- Revise o Ciclo de vida da instância.
- Consulte Solução de problemas de suspensão de VM se você tiver problemas para suspender uma VM.
Go
Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Java
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Node.js
Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
PHP
Para usar os exemplos PHP desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Limitações
As limitações a seguir são aplicáveis a esse recurso:
SSDs locais
Normalmente, suspender uma instância de VM que usa SSD local descartará todos os dados nos drives SSD locais, o mesmo comportamento de uma interrupção da instância.
Consulte a documentação do SSD local para mais detalhes.
VMs preemptivas
É possível suspender uma VM preemptiva, mas se a preempção (não o aviso antecipado que precede a preempção) ocorrer antes da conclusão da operação de suspensão, a suspensão será encerrada e a instância sofrerá preempção.
Compatibilidade do SO
A maioria dos sistemas operacionais oferecidos no Compute Engine é compatível com a funcionalidade de suspensão e retomada, mas alguns SOs não são compatíveis. Consulte a página de detalhes do SO para ver a lista completa.
Preços
Ao suspender uma instância, você é cobrado por:
Suspender uma instância
Para suspender uma instância, use o console do Google Cloud, a CLI gcloud, a API ou as Bibliotecas de cliente do Cloud.
Não é possível suspender uma instância usando os processos padrão integrados ao ambiente convidado. Use o console do Google Cloud, a Google Cloud CLI ou a API para suspender uma instância.
A operação de suspensão poderá falhar se for acionada logo após a instância ser iniciada. A instância precisa ser totalmente iniciada (incluindo processos como o Agente convidado) para que a operação de suspensão seja bem-sucedida.
Console
gcloud
Para suspender uma instância na Google Cloud CLI, faça o seguinte:
gcloud compute instances suspend VM_NAME
Depois que você faz uma solicitação para suspender uma instância, pode levar algum tempo para o Compute Engine preservar todos os dados necessários para a instância. Durante esse período, você continuará sendo cobrado pela instância enquanto ela continuar em execução.
Uma instância suspensa é marcada com o status
SUSPENDED
. Verifique o status de uma instância fazendo uma solicitaçãodescribe
:gcloud compute instances describe VM_NAME
Para suspender uma instância com dados do SSD local, forneça a flag
--discard-local-ssd
:gcloud compute instances suspend VM_NAME --discard-local-ssd
Usar
--discard-local-ssd
ou--discard-local-ssd=True
descartará o conteúdo do SSD local. O Compute Engine--discard-local-ssd=False
está atualmente em pré-lançamento público. O uso dessa flag salva o conteúdo de até 32 discos SSD locais durante a suspensão. Consulte a documentação do SSD local para mais detalhes.Go
Java
Node.js
PHP
Python
REST
Na API, faça uma solicitação usando o método
instances.suspend
:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend
Substitua o seguinte:
Depois que você faz uma solicitação para suspender uma instância, pode levar algum tempo para o Compute Engine preservar todos os dados necessários para a instância. Durante esse período, você será cobrado pela instância enquanto ela permanecer em execução.
O Compute Engine marca a instância suspensa com o status
SUSPENDED
. Verifique o status de uma instância fazendo uma solicitaçãoGET
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
O status da instância é visível no campo de status. Por exemplo:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "SUSPENDED", "name": "example-vm", ...
Para suspender uma instância com mais de 32 discos SSD locais, é necessário descartar os dados do SSD local fornecendo o parâmetro de consulta
discardLocalSsd
da seguinte maneira:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend?discardLocalSsd=true
Para mais informações, consulte a documentação do SSD local.
Retome uma instância suspensa.
Só será possível retomar uma instância se houver capacidade suficiente na zona em que a VM reside. Na maioria dos casos, isso não é um problema, mas se você tiver problemas de capacidade, tente fazer a solicitação de retomada novamente mais tarde.
Para retomar uma instância suspensa, use o console do Google Cloud , a CLI gcloud , a API ou as Bibliotecas de cliente do Cloud.
Console
gcloud
Para retomar uma instância na Google Cloud CLI, faça o seguinte:
gcloud compute instances resume VM_NAME
Depois de fazer uma solicitação para retomar uma instância, pode levar algum tempo para o Compute Engine restaurar todos os dados necessários para ela. Durante esse período, você será cobrado pela instância enquanto ela estiver sendo retomada.
Uma instância é retomada quando está marcada como
RUNNING
. Verifique o status de uma instância fazendo uma solicitação de descrição:gcloud compute instances describe VM_NAME
Go
Java
Node.js
PHP
Python
REST
Faça uma solicitação ao método
instances.resume
:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/resume
Substitua o seguinte:
Depois de fazer uma solicitação para retomar uma instância, pode levar algum tempo para o Compute Engine restaurar todos os dados necessários para ela. Durante esse período, você será cobrado pela instância enquanto ela estiver sendo retomada.
O Compute Engine marca a instância com o status
RUNNING
quando a retomada é concluída. Verifique o status de uma instância fazendo uma solicitaçãoGET
:GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance
O status da instância é visível no campo de status. Por exemplo:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "RUNNING", "name": "example-instance", ...
Processo de suspensão
Ao fazer uma solicitação de suspensão, você envia um sinal de suspensão ACPI para a instância da VM. Se a VM não responder ao sinal de suspensão ACPI S3 em alguns minutos, o Compute Engine cancelará a tentativa de suspensão e retornará a VM para um estado
RUNNING
.A tabela a seguir descreve o efeito da suspensão de uma instância de VM nos recursos associados:
Recurso Suporte Memória Somente VMs com 208 GB ou menos de memória podem ser suspensas. SSD local Os dados do SSD local são descartados. Disco permanente Os discos SSD e HDD permanentes são mantidos. Endereços IP Os IPs temporários são liberados durante a suspensão, mas os IPs estáticos permanecem anexados às instâncias de VM. Se você quiser manter o ID temporário, promova-o. Configuração de VM (como tipo de máquina, metadados, rótulos etc.) Todas as configurações de VM, exceto os endereços IP temporários, são preservadas e restauradas quando a instância é retomada. Como configurar uma VM do Debian para aceitar a suspensão e a retomada
As VMs que executam o Debian 8 e 9 podem suspender e retomar, mas precisam ser configuradas com antecedência. Para configurar sua instância do Debian, conclua um dos seguintes conjuntos de instruções, opção A ou B. Recomendamos que você configure o ACPID, se possível (opção A).
Opção A
Essa opção configura o ACPID para processar o evento do botão de suspensão e adiciona um script de shell para manipular o evento de suspensão.
Opção B
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-21 UTC.
-