Solução de problemas de VM do SmartOS que não inicia

Solução de problemas de VM do SmartOS que não inicia

Estou executando o SmartOS 20130405T010449Z com um Ubuntu KVM dentro. A VM do Ubuntu funcionou de maneira saudável por meses e, depois de uma reinicialização do hardware físico, a VM não se conecta mais à rede na inicialização, por isso não consigo fazer ssh para verificar sua integridade.

Posso fazer login no SmartOS e iniciar a VM:

$ vmadm start [uuid]

verifique se está em execução:

$ vmadm list
UUID             TYPE   RAM     STATE     ALIAS
[uuid]           KVM    10240   running   steve

e faça ping:

$ ping steve
steve is alive

mas quando tento entrar no console da VM, o comando simplesmente trava para sempre:

$ vmadm console [uuid]
[hangs forever]

Obtenho o mesmo resultado quando tento fazer ssh de dentro do SmartOS:

$ ssh steve
[hangs forever]

Não consigo fazer ssh de outras máquinas na rede, porque o endereço IP da VM Ubuntu nunca aparece na rede.

O que devo tentar a seguir para acessar esta VM?

Responder1

Ok, finalmente recuperei o que queria da VM, então para a posteridade, aqui está o que fiz:

Primeiro, atualizei o SmartOS. Fiquei hesitante no início, temendo a perda de dados, mas a atualização foi totalmente indolor: coloque uma nova versão em um novo pendrive, desligue, troque os pendrives e reinicie.

Após a atualização vmadm consolee sshainda travaria ao conectar-se à VM, então o principal insight (eu não sabia disso antes) era conectar-se via VNC:

root@smartos $ vmadm info [UUID] vnc
{
  "vnc": {
    "host": "192.168.1.7",
    "port": 64762,
    "display": 58862
  }
}

me@anotherMachine $ xtightvncviewer 192.168.1.7::64762

Lá, o problema ficou imediatamente aparente: a VM ficou presa no menu de inicialização, aguardando a seleção de uma opção de inicialização. Selecionei a opção padrão e pronto, a VM ficou perfeitamente íntegra.

Porém, havia um problema: provavelmente quando atualizei o SmartOS, perdi a NIC "externa", então a VM surgiu sem um canal para o mundo externo. Tive que editar manualmente /usbkey/configno SmartOS e adicionar estas linhas, que estavam faltando:

external_nic=[MAC address]
external0_ip=192.168.1.20
external0_netmask=255.255.255.0
external0_gateway=192.168.1.1

e adicione a NIC externa à VM:

root@smartos $ cat add_nic.json
{
    "add_nics": [
        {
            "physical": "net1",
            "index": 1,
            "nic_tag": "external",
            "mac": "[MAC address]",
            "ip": "192.168.1.8",
            "netmask": "255.255.255.0",
            "gateway": "192.168.1.1"
        }
    ]
}
root@smartos $ cat add_nic.json | vmadm update [UUID]

Tive que reiniciar o SmartOS para captar a alteração na configuração e então a VM criou uma interface de rede.

Advertência: vmadm consoleainda não funciona, por algum motivo; ele ainda trava indefinidamente. No entanto, ssh stevefunciona de dentro do SmartOS e posso usar ssh para o endereço IP de outras máquinas na minha rede.

informação relacionada