Nesta página, você aprende a mover uma instância de VM entre zonas
usando a API
projects.moveInstance
ou manualmente, por meio de uma série de etapas.
Sempre que possível, mova uma instância automaticamente
usando a API
projects.moveInstance
. Se você não puder usar a API, ainda será possível
mover a instância manualmente usando estas
etapas:
- Crie snapshots dos discos permanentes anexados à instância original.
- Crie cópias dos discos permanentes na zona de destino.
- Para endereços IP externos e internos:
- Se você estiver movendo uma instância entre zonas na mesma região e quiser preservar o endereço IP efêmero, promova temporariamente o endereço IP efêmero atribuído à instância para um endereço IP estático e atribua-o à nova instância de VM criada na zona de destino.
- Se você estiver movendo uma instância entre regiões, precisará escolher um endereço IP diferente para a instância de VM.
- Crie e inicialize uma nova instância na zona de destino. Se você estiver movendo instâncias entre regiões, escolha também uma nova sub-rede para a nova instância.
- Anexe os novos discos permanentes à nova instância.
- Atribua um endereço IP externo à nova instância. Se necessário, rebaixe-o para um endereço IP externo temporário.
- Exclua os snapshots, os discos e a instância originais.
Antes de começar
- Para usar os exemplos de linha de comando deste guia, siga estas etapas:
- Instale ou atualize a ferramenta de linha de comando gcloud para a versão mais recente.
- Defina uma região e uma zona padrão.
- Para usar os exemplos de API deste guia, configure o acesso à API.
- Leia a documentação sobre zonas.
Requisitos
Antes de mover sua instância, é preciso atender aos seguintes requisitos:
- O projeto precisa ter cotas suficientes para novos snapshots e para promover quaisquer endereços IP externos temporários.
- Na sua região de destino é preciso cota suficiente para a nova instância e os discos. Por exemplo, se você tiver três discos anexados à instância que pretende mover, é preciso ter cota suficiente para criar três snapshots temporários de discos permanentes e três novos discos. Depois de criar os novos discos, você pode excluir os snapshots temporários.
- Os discos permanentes conectados à instância que você quer mover não podem estar anexados a mais de uma instância.
- Se a instância incluir GPUs, verifique se as GPUs que você quer usar estão disponíveis na zona de destino. Para uma lista de GPUs e zonas em que estão disponíveis, consulte GPUs no Compute Engine.
Observe que, embora a VM esteja em movimento, ela será encerrada e reiniciada após a migração. Depois de mover a instância, atualize as referências existentes ao recurso original, como instâncias ou pools de destino que apontam para a instância antiga.
Limitações
Quando possível, use a API moveInstances
para poupá-lo de algum trabalho, mas
em alguns cenários o uso da API moveInstances
não é uma opção.
Os seguintes cenários exigem uma mudança manual:
- A VM está atualmente no estado
TERMINATED
. - Você quer mover sua instância de região, por exemplo, entre
us-west1-a
easia-south1-b
, e sua VM pertence a uma sub-rede. Faça a mudança manualmente e selecione uma nova sub-rede para a instância. - A instância tem SSDs locais anexados a ela ou tem GPUs que não estão disponíveis na zona de destino.
- Observação: SSDs locais são destinados ao armazenamento temporário, e os dados nos SSDs locais não são preservados após o encerramento manual das instâncias, o que seria necessário como parte da movimentação da instância. Se você precisar preservar dados do SSD local, replique-os usando uma opção de armazenamento durável, como discos permanentes.
- Se as GPUs desejadas não estiverem disponíveis na zona de destino, escolha uma nova zona que ofereça as mesmas GPUs ou escolha novas GPUs na zona de destino.
- A VM é uma VM protegida que usa firmware UEFI.
Na movimentação tanto manual quanto automática, é necessário que os requisitos sejam atendidos para que a instância seja movida com êxito.
Propriedades do recurso
Durante a movimentação, algumas propriedades da instância e dos discos geradas pelo servidor são alteradas.
Propriedades alteradas das instâncias
Nome da propriedade | Alterações |
---|---|
Endereço IP interno | Geralmente, é atribuído um novo endereço IP interno, mas é possível que a instância mantenha o endereço IP interno original. |
Endereço IP externo | Se a instância for movida entre zonas na mesma região, o endereço IP externo continuará igual. Caso contrário, escolha um endereço IP externo diferente para a instância da VM. |
Plataforma de CPU | Dependendo da plataforma de CPU disponível na zona de destino, a instância poderá ter uma plataforma de CPU diferente depois que ela for movida. Para ver uma lista completa de plataformas de CPU em cada zona, consulte Regiões e zonas disponíveis. |
Rede/sub-rede | Se você estiver movendo entre regiões uma instância que pertence a uma sub-rede, escolha uma nova sub-rede para a instância. As instâncias movidas entre zonas da mesma região mantêm a mesma sub-rede. |
Propriedades alteradas dos discos
Nome da propriedade | Alterações |
---|---|
Snapshot de origem | O snapshot de origem do novo disco é definido como o snapshot temporário criado durante a movimentação. |
ID do snapshot de origem | A ID do snapshot da origem é definida como a ID do snapshot temporário. |
Imagem de origem | O campo de imagem de origem está vazio. |
ID da imagem | A ID da imagem está vazia. |
Carimbo de data/hora da última desconexão | O carimbo de data/hora da última desconexão está vazio. |
Carimbo de data/hora da última conexão | O carimbo de data/hora da última conexão é alterado para o momento em que o disco novo é conectado à nova instância. |
Propriedades alteradas das instâncias e dos discos
Nome da propriedade | Alterações |
---|---|
ID | Uma nova ID do recurso é gerada. |
Carimbo de data/hora da criação | Um novo carimbo de data/hora da criação é gerado. |
URLs de recursos da zona | Todos os URLs de recursos da zona são alterados para refletir a zona de destino. A
lista a seguir mostra os URLs dos recursos que mudam:
|
Como mover uma instância automaticamente
Antes de mover uma instância, verifique os requisitos e as limitações.
gcloud
Verifique se sua instância está em execução. Em seguida, com a ferramenta gcloud
,
execute o subcomando compute instances move
para mover sua instância.
Por exemplo, para mover uma instância chamada example-instance-1
com todos os
discos permanentes anexados de us-central1-b
, onde está em execução,
para us-central1-f
, sua nova região, execute o seguinte comando:
gcloud compute instances move example-instance-1 \
--zone us-central1-b --destination-zone us-central1-f
API
Na API, faça uma solicitação de POST
para a
API moveInstance
com
corpo de solicitação que contenha targetInstance
e
destinationZone
. Por exemplo:
{
"targetInstance": "zones/us-central1-b/instances/example-instance-1",
"destinationZone": "zones/us-central1-f"
}
Como mover uma instância manualmente
Sempre que possível, mova uma instância automaticamente
usando a API moveInstance
, que executa todas as etapas para mover uma instância
para você. No entanto, se não for possível usar a API,
mova a instância manualmente.
O exemplo a seguir descreve como mover uma instância myinstance
com dois
discos permanentes, mybootdisk
e mydatadisk
, de europe-west1-a
para
us-west1-b
. A instância de exemplo tem a seguinte aparência:
gcloud compute instances list
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS myinstance europe-west1-a n1-standard-4 10.240.116.177 146.148.112.106 RUNNING
Para mover a instância para outra zona:
Identifique os discos associados à instância que você quer mover.
Neste exemplo, você encontrará os dois discos associados a seguir para a instância
myinstance
:- Um disco de inicialização chamado
mybootdisk
- Um disco de dados chamado
mydatadisk
- Um disco de inicialização chamado
Defina o estado de exclusão automática de
mybootdisk
emydatadisk
parafalse
para garantir que os discos não sejam excluídos automaticamente quando a instância for excluída.gcloud compute instances set-disk-auto-delete myinstance --zone europe-west1-a \ --disk mybootdisk --no-auto-delete
Se o estado foi atualizado,
gcloud compute
retorna a respostaUpdated [...]
. Se o estado de exclusão automática já tiver sido definido como falso,gcloud compute
retornará:No change requested; skipping update for [myinstance].
(Opcional) Salve os metadados da instância.
Ao excluir a instância, os metadados dela também são removidos. É possível salvar essas informações em um arquivo separado e reaplicar os metadados à nova instância.
Descreva os metadados da instância da seguinte forma:
gcloud compute instances describe myinstance --zone europe-west1-a
Salve o conteúdo em um arquivo separado.
Crie backups dos dados.
Como precaução, crie backups dos dados enquanto os discos permanentes ainda estiverem conectados à instância usando snapshots de discos permanentes. Antes de criar um snapshot, verifique se ele está consistente com o estado do disco permanente limpando os buffers do disco.
Depois de limpar os buffers de disco, crie os snapshots:
gcloud compute disks snapshot mybootdisk mydatadisk \ --snapshot-names backup-mybootsnapshot,backup-mydatasnapshot \ --zone europe-west1-a
Para verificar se o snapshot foi criado, execute
gcloud compute snapshots list
.(Opcional) Se você estiver movendo uma instância entre zonas na mesma região e quiser preservar o endereço IP interno ou externo efêmero, promova o IP interno ou externo para um endereço IP estático, que pode ser reutilizado mais tarde.
Exclua a instância.
A exclusão da instância a encerra corretamente e desconecta quaisquer discos permanentes.
gcloud compute instances delete myinstance --zone europe-west1-a
A
gcloud
gcloud solicita que você confirme a exclusão:The following instances will be deleted. Any attached disks configured to be auto-deleted will be deleted unless they are attached to any other instances or the
--keep-disks
flag is given and specifies them for keeping. Deleting a disk is irreversible and any data on the disk will be lost. — [myinstance] in [europe-west1-a]Do you want to continue (Y/n)?
Como você desativou o estado de exclusão automática de discos anteriormente neste processo, digite Y para continuar e ignorar o aviso.
Em seguida, crie outro instantâneo do disco de inicialização e do disco de dados.
gcloud compute disks snapshot mybootdisk mydatadisk \ --snapshot-names mybootsnapshot,mydatasnapshot \ --zone europe-west1-a
Created [.../mydatasnapshot]. Created [.../mybootsnapshot].
(Opcional) Exclua os discos permanentes.
Se você pretende usar os mesmos nomes dos discos permanentes nos novos discos, precisa excluir os discos atuais para liberar os nomes. A exclusão dos discos também economiza custos com armazenamento em disco permanente.
Se você não planeja reutilizar os mesmos nomes de disco, não é necessário excluí-los.
gcloud compute disks delete mybootdisk mydatadisk --zone europe-west1-a
Criar novos discos permanentes em
us-west1-b
dos snapshots que você criou. Primeiro, crie o disco de inicialização.gcloud compute disks create mybootdiskb --source-snapshot mybootsnapshot \ --zone us-west1-b
Created [.../mybootdiskb]. NAME ZONE SIZE_GB TYPE STATUS mybootdiskb us-west1-b 100 pd-standard READY
Em seguida, crie o disco de dados.
gcloud compute disks create mydatadiskb --source-snapshot mydatasnapshot \ --zone us-west1-b
Created [.../mydatadiskb]. NAME ZONE SIZE_GB TYPE STATUS mydatadiskb us-west1-b 4000 pd-standard READY
Para redefinir a instância usando um
us-west1-b
.Se você salvou os metadados da instância em um arquivo, por exemplo
myinstance.describe
, é possível usá-lo para definir os mesmos metadados na instância.Se a instância tinha um endereço IP externo estático, é possível reatribuir aquele endereço à nova instância especificando a opção
--address [ADDRESS]
. Se você estiver movendo uma instância entre regiões, precisará escolher um endereço IP externo diferente para a nova instância de VM.Se a instância tinha um endereço IP interno estático, é possível reatribuir aquele endereço à nova instância especificando a opção
--private-network-ip ADDRESS
. Se você estiver movendo uma instância entre regiões, precisará escolher um endereço IP interno diferente para a nova instância de VM.Se a instância incluía GPUs, adicione-as à instância usando a opção
--accelerator
.Se a instância usar uma sub-rede específica, adicione a sinalização
--subnet [SUBNET_NAME]
.
Para uma lista completa de sinalizações opcionais, consulte gcloud compute instances create.
gcloud compute instances create myinstanceb --machine-type n1-standard-4 \ --zone us-west1-b \ --disk name=mybootdiskb,boot=yes,mode=rw \ --disk name=mydatadiskb,mode=rw
Created [.../myinstanceb]. NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS myinstanceb us-west1-b n1-standard-4 10.240.173.229 146.148.112.106 RUNNING
(Opcional) Exclua os snapshots de discos permanentes.
Depois de confirmar que suas máquinas virtuais foram movidas, exclua os snapshots temporários que você criou para economizar nos custos de armazenamento.
gcloud compute snapshots delete mybootsnapshot mydatasnapshot
Se você não precisar mais dos seus snapshots de backup, exclua-os também:
gcloud compute snapshots delete backup-mybootsnapshot backup-mydatasnapshot
A seguir
- Aprenda a alterar a zona/região padrão do projeto.
- Saiba mais sobre a migração em tempo real.
- Verifique o status de uma instância.
- Saiba como migrar VMs para o Compute Engine.