Se a VM Linux estiver inacessível por algum motivo, tente resgatá-la seguindo as etapas a seguir.
Funções exigidas
Para receber as permissões necessárias para resgatar uma VM, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
administrador de instâncias do Compute(v1) (
roles/compute.instanceAdmin.v1
) -
VMs que usam uma conta de serviço:
Usuário da conta de serviço (
roles/iam.serviceAccountUser
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esses papéis predefinidos contêm as permissões necessárias para resgatar 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 resgatar uma VM:
-
compute.instances.create
no projeto -
compute.disks.create
no projeto -
compute.instances.get
no projeto -
compute.disks.createSnapshot
em discos -
compute.instances.attachDisk
em uma nova VM -
compute.disks.use
no disco -
compute.instances.start
em uma VM nova e inacessível -
compute.instances.stop
em uma VM nova e inacessível
Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.
Resgatar uma VM
Se não for possível se conectar à VM ou se o disco de inicialização estiver cheio, crie uma VM temporária para localizar a VM inacessível.
- (Opcional) Interrompa a VM inacessível.
- Crie um snapshot no disco de inicialização da VM de origem.
- Crie uma VM temporária usando uma imagem pública mais próxima do SO da VM inacessível.
- Verifique se é possível se conectar à VM temporária usando o SSH.
Adicione mais um disco à VM temporária seguindo estas etapas:
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique no nome da VM temporária que você criou.
Clique em
Editar.Em Discos adicionais, clique em
Adicionar novo disco e faça o seguinte:- Adicione o nome do disco, como my-recovery-disk
- Em Tipo de origem, selecione a guia Snapshot.
- No menu suspenso Snapshot de origem, selecione o snapshot da VM de origem criada anteriormente nestas etapas.
- Clique em Concluído.
Clique em Save.
Conecte-se à VM temporária usando SSH.
execute o seguinte comando:
ls -l /dev/disk/by-id/google-*
A saída será semelhante a esta:
/dev/disk/by-id/google-my-vm -> ../../sda /dev/disk/by-id/google-my-vm-part1 -> ../../sda1 /dev/disk/by-id/google-my-vm-part14 -> ../../sda14 /dev/disk/by-id/google-my-vm-part15 -> ../../sda15 /dev/disk/by-id/google-my-recovery-disk -> ../../sdb /dev/disk/by-id/google-my-recovery-disk-part1 -> ../../sdb1 /dev/disk/by-id/google-my-recovery-disk-part2 -> ../../sdb2 /dev/disk/by-id/google-my-recovery-disk-part5 -> ../../sdb5
Use os links simbólicos (
/dev/disk/by-id/google-my-recovery-disk-partN
) para localizar o dispositivo e as partições subjacentes do disco recém-adicionado, por exemplo,/dev/sdb1
.O link simbólico do disco é google-DISK_NAME ou, se você tiver especificado um nome de dispositivo personalizado para o disco, google-DEVICE_NAME. Anote o nome do dispositivo que o novo link simbólico do disco aponta.
Crie um ponto de montagem em
/mnt/newdisk
:sudo mkdir /mnt/newdisk
Ative a partição extra de disco no ponto de montagem
/mnt/newdisk
:sudo mount -o discard,defaults DISK_NAME /mnt/newdisk
Substitua DISK_NAME pelo nome do disco que você anotou anteriormente nessas etapas, por exemplo,
/dev/sdb1
.Se você vir o erro
Filesystem has duplicate UUID XXXXXX - can't mount
,mount: /mnt/newdisk: wrong fs type, bad option
oubad superblock on /dev/sdb
, use o seguinte comando:sudo mount -o nouuid DISK_NAME /mnt/newdisk
Agora, o sistema de arquivos da VM inacessível está ativado em
/mnt/newdisk
. É possível navegar pelo sistema de arquivos, alterar arquivos de configuração, corrigir problemas ou recuperar os dados.
Reverter as alterações e inicializar a VM inacessível novamente
Depois que o problema for corrigido ou os dados forem recuperados, você precisará recuperar a VM real. Siga as etapas abaixo para restaurar a VM original:
Desmonte o disco adicional ativado em
/mnt/newdisk
na VM temporária:cd ~ sudo umount /mnt/newdisk
No console do Google Cloud, acesse a página Instâncias de VMs.
Selecione a VM temporária que você criou.
Clique em
Editar.Em Discos adicionais, clique em
do disco criado nas etapas anteriores para removê-lo da VM temporária.Clique em Save.
Acesse a página Instâncias de VMs no Console do Google Cloud.
Se a VM inacessível ainda estiver em execução, interrompa a VM.
Clique no nome da VM que você acabou de interromper e clique em
Editar.Em Disco de inicialização, clique em
Remover disco de inicialização para remover o disco de inicialização da VM inacessível.Em seguida, clique em Resgatar uma VM nesta página.
CONFIGURAR DISCO DE INICIALIZAÇÃO para anexar o disco que você criou e corrigiu anteriormente em- Na seção Disco de inicialização, clique na guia Discos existentes.
- Na lista suspensa, selecione o disco que você criou na seção
anterior, por exemplo,
my-recovery-disk
. - Clique em Selecionar e em Salvar.
Agora você poderá conectar-se à VM usando SSH.