Neste documento, explicamos como interromper e reiniciar manualmente uma instância de máquina virtual (VM), bem como como redefinir ou reiniciar uma VM.
Interrompa uma VM se ela não for mais usada ou se você quiser modificar uma ou mais propriedades dela. Por exemplo, se você quiser renomear a VM, alterar o tipo de máquina, adicionar ou remover discos anexados ou alterar a plataforma mínima da CPU. Depois de interromper a VM, reinicie-a para retomar a carga de trabalho ou exclua a VM se ela não for mais necessária.
Redefina a VM se, por exemplo, ela não responder ou se o sistema operacional (SO) convidado tiver falhado. Depois de redefinir a VM, é possível retomar sua carga de trabalho.
Reinicialize uma VM no SO convidado se, por exemplo, você quiser limpar a memória da VM e reinicializá-la para o estado de inicialização original. Depois de reiniciar uma VM no SO convidado, é possível retomar a carga de trabalho.
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.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.
gcloud
-
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
- Defina uma região e uma zona padrão.
Go
Para usar as amostras de Go nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para usar as amostras de Java nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para usar as amostras de Node.js nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para usar as amostras de PHP nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para usar as amostras de Python nesta página de um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure o Application Default Credentials com as credenciais de usuário.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:
gcloud init
-
Funções exigidas
Para receber as permissões necessárias para interromper e reiniciar uma VM,
peça ao administrador para conceder a você o
Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1
) ter um papel do IAM no projeto.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esse papel predefinido contém as permissões necessárias para interromper e reiniciar uma VM. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para interromper e reiniciar uma VM:
-
Para interromper uma VM:
compute.instances.stop
na VM -
Para interromper uma VM no SO convidado:
compute.instances.setMetadata
na VM se ela usar chaves SSH públicas no nível da instância. -
Para reiniciar uma VM:
compute.instances.start
na VM -
Para reiniciar uma VM que usa chaves de criptografia:
compute.instances.startWithEncryptionKey
na VM -
Para redefinir uma VM:
compute.instances.reset
na VM -
Para reiniciar uma VM no SO convidado:
compute.instances.setMetadata
na VM
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Interromper uma VM
Quando você interrompe uma VM em execução, acontece o seguinte:
O Compute Engine envia o sinal de encerramento ACPI para a VM e aguarda um breve período para que o SO convidado execute um encerramento limpo. Em seguida, o Compute Engine define o estado da VM como
STOPPING
primeiro e, em seguida, faz a transição paraTERMINATED
em um minuto.A VM é redefinida para o estado de ativação e mantém os IPs internos, endereços MAC, definições de configuração e metadados. No entanto, a VM perde os dados na memória e o estado da VM. Se for necessário manter os dados na memória e o estado da VM, suspenda a VM.
Além disso, se você anexou recursos à VM, eles permanecem
anexados até que você os desanexe manualmente ou exclua a VM. Se a VM tiver algum disco SSD local anexado, interromper a VM descartará todos os dados nos discos SSD locais por padrão. Para manter os dados nos discos SSD locais, interrompa a VM
usando a CLI gcloud com a sinalização --discard-local-ssd=false
.
Para mais informações, consulte Interromper uma VM com SSD local.
Para interromper uma VM, selecione um dos métodos descritos neste documento:
Depois de interromper uma VM, é possível reiniciá-la ou excluí-la. Se você não planeja reiniciar a VM, é recomendável excluí-la.
interromper uma VM pelo Google Cloud
Para interromper mais de uma VM por vez, use o console do Google Cloud.
Console
Para interromper uma ou mais VMs, faça o seguinte:
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione as VMs que você quer interromper.
Clique em
Parar e, em seguida, em Parar para confirmar.
gcloud
Para interromper uma VM, use o
comando gcloud compute instances stop
:
gcloud compute instances stop VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Substitua:
VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Se você anexou um disco SSD local à VM e quer manter os dados do SSD local após interromper a VM, use o comando gcloud beta compute instances stop
com --discard-local-ssd=false
.
gcloud beta compute instances stop VM_NAME \
--discard-local-ssd=false \
--project=PROJECT_ID \
--zone=ZONE
Go
Java
Node.js
PHP
Python
REST
Para interromper uma VM, faça uma solicitação POST
para o
método instances.stop
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Substitua:
VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Interromper uma VM no SO convidado
Para interromper uma VM no SO convidado quando você estiver conectado a ela, selecione uma das guias a seguir.
Linux
Para interromper uma VM do Linux, selecione um dos seguintes métodos:
Para um encerramento limpo que permita que a VM execute scripts de encerramento antes de enviar o sinal de encerramento da ACPI para a VM, execute o seguinte comando:
sudo shutdown -h now
Caso contrário, para forçar um encerramento, execute o seguinte comando:
sudo poweroff
Windows
Para interromper uma VM do Windows, selecione um dos seguintes métodos:
Para um encerramento limpo que permita que a VM execute scripts de encerramento antes de enviar o sinal de encerramento da ACPI para a VM, execute o seguinte comando:
shutdown /s
Caso contrário, para forçar um encerramento, execute o seguinte comando:
shutdown /f
Reiniciar uma VM
Só é possível reiniciar uma VM interrompida se ela estiver no estado TERMINATED
. Para
reiniciar uma VM, selecione um dos seguintes métodos descritos neste documento:
Reiniciar uma VM sem discos criptografados
Reiniciar uma VM interrompida que não usa discos criptografados (padrão). Para reiniciar mais de uma VM por vez, use o console do Google Cloud.
Console
Para reiniciar uma ou mais VMs, faça o seguinte:
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione uma ou mais VMs.
Clique em
Iniciar / continuar .
gcloud
Para interromper uma VM, use o
comando gcloud compute instances start
:
gcloud compute instances start VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Substitua:
VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Go
Java
Node.js
PHP
Python
REST
Para reiniciar uma VM, faça uma solicitação POST
para o
método instances.start
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
Substitua:
VM_NAME
: o nome da VM a ser reiniciada.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Reiniciar uma VM que tem discos criptografados
É possível reiniciar uma VM interrompida que use chaves de criptografia fornecidas pelo cliente para criptografar os discos permanentes anexados a ela.
Console
Para reiniciar uma VM que usa discos criptografados, faça o seguinte:
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione a VM a ser reiniciada.
Clique em
Iniciar / continuar .Especifique as chaves de criptografia para cada um dos discos criptografados anexados a essa VM e clique em Iniciar.
gcloud
Para reiniciar uma VM que usa discos criptografados, use o
comando gcloud compute instances start
com a sinalização --csek-key-file
. Se você estiver usando uma chave incorporada por RSA, utilize o comando gcloud beta compute instances start
.
gcloud compute instances start VM_NAME \
--csek-key-file=ENCRYPTION_KEY_FILE \
--project=PROJECT_ID \
--zone=ZONE
Substitua:
VM_NAME
: o nome da VM.ENCRYPTION_KEY_FILE
: o caminho relativo para o arquivo JSON que contém a chave de criptografia fornecida pelo cliente.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Go
Java
Node.js
PHP
Python
REST
Para reiniciar uma VM que usa discos criptografados, faça uma solicitação POST
para o
método instances.startWithEncryptionKey
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/startWithEncryptionKey
{
"disks": [
{
"source": "DISK_URL",
"diskEncryptionKey": {
"ENCRYPTION_TYPE": "ENCRYPTION_KEY"
}
}
]
}
Substitua:
PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.DISK_URL
: o URL do recurso correspondente ao nome completo do recurso do disco anexado, criptografado com uma chave de criptografia fornecida pelo clienteENCRYPTION_TYPE
: o tipo de criptografia de disco que você está usando, que pode ser uma das seguintes opções:rawKey
,kmsKeyName
oursaEncryptedKey
. Se você usar o tiporsaEncryptedKey
, faça uma solicitaçãoPOST
para a API Beta, não para a API v1.ENCRYPTION_KEY
: a chave de criptografia usada para criptografar os discos permanentes anexados à VM. As chavesrawKey
oursaEncryptedKey
precisam ser codificadas em base64. Além disso, para preparar uma chaversaEncryptedKey
, consulte Encapsulamento de chaves por RSA.
Redefina uma VM
Redefinir uma VM em execução é semelhante a uma reinicialização forçada no computador, por exemplo, pressionar um botão de redefinição ou tocar e pressionar o botão liga/desliga. Ao redefinir uma VM, você não dá tempo a ela para executar um encerramento limpo do SO convidado. Consequentemente, os sistemas de arquivos do disco podem ser corrompidos. O Google Cloud recomenda redefinir uma VM somente se o SO convidado tiver falhado e você não tiver outras opções. Se você quiser reinicializar uma VM e executar um encerramento limpo, consulte Reiniciar uma VM neste documento.
Ao redefinir uma VM, acontece o seguinte:
A VM é reinicializada para o estado de inicialização inicial com os metadados, a imagem e os discos permanentes originais.
A VM força a exclusão permanente do conteúdo da memória, a menos que você faça backup dos dados.
O estado da VM permanece
RUNNING
durante o processo.
Redefinir uma VM não altera nenhuma das propriedades da VM. A VM mantém IPs temporários, IPs estáticos externos, discos permanentes, discos SSD locais (se houver) e tipo de máquina.
Console
Para redefinir uma ou mais VMs em execução, siga estas etapas:
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione as VMs que você quer redefinir.
Clique em Redefinir e, em seguida, clique em Redefinir novamente.
gcloud
Para redefinir uma VM em execução, use o
comando gcloud compute instances reset
.
gcloud compute instances reset VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Substitua:
VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Go
Java
Node.js
PHP
Python
REST
Para redefinir uma VM em execução, faça uma solicitação POST
para o
método instances.reset
.
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reset
Substitua:
VM_NAME
: o nome da VM.PROJECT_ID
: o ID do projeto em que a VM está localizada.ZONE
: a zona em que a VM está localizada.
Reinicializar uma VM
Quando você reinicializa uma VM no SO convidado, acontece o seguinte:
A VM é reinicializada para o estado de inicialização inicial com os metadados, a imagem e os discos permanentes originais.
A VM exclui permanentemente o conteúdo da memória da máquina, a menos que você faça backup dos dados.
O estado da VM permanece
RUNNING
durante o processo.
Em comparação com a redefinição de uma VM, reinicializar uma VM no SO convidado aguarda que a VM conclua todas as tarefas em execução antes de enviar o sinal de encerramento da ACPI para a VM. Isso permite que a VM execute um encerramento limpo.
Reiniciar uma VM não altera nenhuma das propriedades da VM. A VM mantém IPs temporários, IPs estáticos externos, discos permanentes, discos SSD locais (se houver) e tipo de máquina.
Linux
Para redefinir uma VM do Linux, reinicialize o SO convidado executando o seguinte comando:
sudo reboot
Windows
Para redefinir uma VM do Windows, reinicialize o SO convidado executando o seguinte comando:
shutdown /r /t 0
Se quiser monitorar o processo de encerramento e reinicialização da VM, ative o menu do Gerenciador de Inicialização do Windows.
Faturamento
Depois que uma VM é interrompida e o Compute Engine define o estado dela como TERMINATED
, não há mais cobranças pelo uso da CPU. No entanto, você continua sendo cobrado por todos os recursos anexados à VM, como discos permanentes e endereços IP externos.
Para interromper as cobranças pelos recursos anexados a uma VM, siga um seguinte:
Remova esses recursos da VM interrompida.
Exclua a VM. Essa ação também exclui todos os recursos anexados à VM.
A seguir
Saiba como programar VMs para iniciar e parar automaticamente.
Saiba como limitar o ambiente de execução de uma VM.
Aprenda a resolver problemas de uma VM depois que ela é encerrada inesperadamente com uma das seguintes opções:
Resolver problemas de desligamentos e reinicializações de VMs.
Solucione o problema da VM usando o console serial interativo.
Aprenda a alterar o tipo de máquina em uma VM.