Я использую SmartOS 20130405T010449Z с Ubuntu KVM внутри. Ubuntu VM работала нормально в течение нескольких месяцев, затем после перезагрузки физического оборудования виртуальная машина перестала подключаться к сети при запуске, поэтому я не могу подключиться к ней по ssh, чтобы проверить ее работоспособность.
Я могу войти в SmartOS и запустить виртуальную машину:
$ vmadm start [uuid]
убедитесь, что он работает:
$ vmadm list
UUID TYPE RAM STATE ALIAS
[uuid] KVM 10240 running steve
и пингуем его:
$ ping steve
steve is alive
но когда я пытаюсь зайти в консоль виртуальной машины, команда просто зависает навсегда:
$ vmadm console [uuid]
[hangs forever]
Тот же результат я получаю, когда пытаюсь подключиться по ssh изнутри SmartOS:
$ ssh steve
[hangs forever]
Я не могу подключиться по ssh с других машин в сети, потому что IP-адрес виртуальной машины Ubuntu никогда не появляется в сети.
Что мне следует попробовать сделать дальше, чтобы получить доступ к этой виртуальной машине?
решение1
Хорошо, в конце концов я восстановил то, что хотел, из виртуальной машины, так что для потомков вот что я сделал:
Сначала я обновил SmartOS. Сначала я колебался, опасаясь потери данных, но обновление прошло совершенно безболезненно: записал новую версию на новый USB-накопитель, выключил, поменял местами накопители и перезагрузил.
После обновления vmadm console
все ssh
равно зависало при подключении к виртуальной машине, поэтому ключевым моментом (раньше я об этом не знал) было подключение через 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
Там проблема была сразу очевидна: виртуальная машина застряла в меню загрузки, ожидая выбора варианта загрузки. Я выбрал вариант по умолчанию и вуаля, виртуальная машина заработала совершенно нормально.
Но была одна загвоздка: вероятно, когда я обновил SmartOS, я потерял "внешнюю" сетевую карту, поэтому виртуальная машина запустилась без канала во внешний мир. Мне пришлось вручную редактировать /usbkey/config
SmartOS и добавлять эти строки, которых не хватало:
external_nic=[MAC address]
external0_ip=192.168.1.20
external0_netmask=255.255.255.0
external0_gateway=192.168.1.1
а затем добавьте внешнюю сетевую карту к виртуальной машине:
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]
Мне пришлось перезагрузить SmartOS, чтобы изменения конфигурации вступили в силу, после чего виртуальная машина обнаружила сетевой интерфейс.
Предостережение: vmadm console
все еще не работает, по какой-то причине; все еще висит бесконечно. Однако ssh steve
работает изнутри SmartOS, и я могу подключиться по ssh к IP-адресу с других машин в моей сети.