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 console
e ssh
ainda 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/config
no 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 console
ainda não funciona, por algum motivo; ele ainda trava indefinidamente. No entanto, ssh steve
funciona de dentro do SmartOS e posso usar ssh para o endereço IP de outras máquinas na minha rede.