Se a sua VM Linux estiver inacessível por qualquer motivo, pode tentar resgatar a VM através dos seguintes passos.
Funções necessárias
Para receber as autorizações de que precisa para recuperar uma VM, peça ao seu administrador para lhe conceder as seguintes funções da IAM no projeto:
-
Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) -
VMs que usam uma conta de serviço:
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para recuperar uma VM. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações 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
na nova VM -
compute.disks.use
no disco -
compute.instances.start
na VM nova e inacessível -
compute.instances.stop
na VM nova e inacessível
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Recupere uma VM
Se não conseguir estabelecer ligação à sua VM ou o disco de arranque estiver cheio, tem de criar uma VM temporária para recuperar a VM inacessível.
- (Opcional) Pare a VM inacessível.
- Crie um instantâneo a partir do disco de arranque da VM inacessível. Se o sistema de ficheiros raiz estiver dividido em vários discos, tem de criar uma captura instantânea de cada disco.
- Crie uma VM temporária com uma imagem pública mais próxima do SO da VM inacessível. Em alguns casos, uma política de imagens fidedignas pode impedir a criação de discos de arranque a partir de imagens públicas. Nestes casos, tem de pedir a um administrador que levante temporariamente esta restrição antes de poder criar uma VM de recuperação. Consulte o artigo Defina restrições de acesso a imagens para mais informações.
Para cada um dos instantâneos dos discos de arranque da VM inacessível que criou anteriormente, crie um novo disco a partir do instantâneo e anexe-o à VM de recuperação fazendo o seguinte:
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique no nome da VM temporária que criou.
Clique em
Editar.Em Discos adicionais, clique em
Adicionar novo disco e, de seguida, faça o seguinte:- Adicione o nome do disco, como my-recovery-disk
- Para Tipo de origem, selecione o separador Instantâneo.
- No menu pendente Instantâneo de origem, selecione o instantâneo da VM de origem que criou anteriormente nestes passos.
- Clique em Concluído.
Clique em Guardar.
Estabeleça ligação à VM temporária através de SSH.
Identifique o nome de cada um dos discos que anexou anteriormente à VM executando o seguinte comando:
lsblk -d -o NAME,SERIAL
O resultado é semelhante ao seguinte:
NAME SERIAL sda rescue-vm sdb my-recovery-disk
Neste exemplo,
rescue-vm
é o disco de arranque da VM de resgate emy-recovery-disk
é o disco de arranque do instantâneo da VM inacessível. Tome nota doNAME
da VM inacessível para utilização no passo seguinte.Para cada um dos discos que anexou anteriormente à VM, faça o seguinte:
Identifique o sistema de ficheiros de cada partição executando o seguinte comando:
fdisk -l /dev/NAME -o Device,Size,Type
Substitua
NAME
pelo nome do disco de arranque da VM inacessível do passo anterior. Neste exemplo, o nome seriasdb
.O resultado é semelhante ao seguinte:
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: PersistentDisk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: B31430F1-F041-4555-96B9-B2F43DC057AD Device Size Type /dev/sdb1 2M BIOS boot /dev/sdb2 20M EFI System /dev/sdb3 10G Linux filesystem
A coluna
Type
indica o sistema de ficheiros de cada partição. Se o tipo de sistema de ficheiros estiver em falta para alguma partição, execute o seguinte comando:file -sL /dev/PARTITION_NAME
Substitua
NAME
pelo nome da partição.A saída difere consoante o tipo de sistema de ficheiros:
Sem sistema de ficheiros: se o resultado apresentar apenas
data
, a partição não contém um sistema de ficheiros. Exemplo de saída:/dev/sdb1: data
Sistema de ficheiros EFI: se o resultado descrever um setor de arranque DOS/MBR, a partição tem um sistema de ficheiros EFI. Exemplo de saída:
dev/sdb2: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 40960 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 40, sectors/ track 32, heads 64, serial number 0xf2af2664, label: "EFI ", FAT (16 bit)
Sistema de ficheiros Linux: se a saída descrever dados do sistema de ficheiros, a partição é um sistema de ficheiros Linux. Exemplo de saída:
/dev/sdb3: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
Tome nota do nome da partição do sistema de ficheiros Linux.
Crie um ponto de montagem em
/rescue
:sudo mkdir /rescue
Monte a partição do sistema de ficheiros Linux em
/rescue
:sudo mount PARTITION_NAME /rescue
Substitua PARTITION_NAME pelo nome do sistema de ficheiros Linux que anotou anteriormente.
Se quiser modificar o diretório raiz do sistema de ficheiros através do comando
chroot
, também tem de montar o sistema de ficheiros virtual e os dispositivos executando os seguintes comandos:sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
O sistema de ficheiros do disco de arranque inacessível está agora montado em
/rescue
. Pode navegar no sistema de ficheiros, alterar ficheiros de configuração, corrigir problemas ou obter os dados.
Reverta as alterações e reinicie a VM inacessível
Depois de corrigir o problema ou recuperar os dados, tem de repor a VM real. Siga estes passos para restaurar a VM original:
Desmonte o disco adicional montado em
/rescue
na VM temporária:cd ~ sudo umount /rescue
Na Google Cloud consola, aceda à página Instâncias de VM.
Selecione a VM temporária que criou.
Clique em
Editar.Em Discos adicionais, clique em
para desanexar o disco criado nos passos anteriores da VM temporária.Clique em Guardar.
Aceda à página Instâncias de VM na Google Cloud consola.
Se a VM inacessível ainda estiver em execução, pare a VM.
Clique no nome da MV que acabou de parar e, de seguida, clique em
Editar.Em Disco de arranque, clique em
Desanexar disco de arranque para desanexar o disco de arranque existente da VM inacessível.Em seguida, clique em Recuperar uma VM nesta página.
CONFIGURAR DISCO DE ARRANQUE para anexar o disco que criou e corrigiu anteriormente em- Na secção Disco de arranque, clique no separador Discos existentes.
- Na lista pendente, selecione o disco que criou na secção anterior, por exemplo,
my-recovery-disk
. - Clique em Selecionar e, de seguida, clique em Guardar.
Agora, deve conseguir estabelecer ligação à VM através do SSH.