Я запускаю SmartOS 20130405T010449Z с Ubuntu KVM внутри. Виртуальная машина Ubuntu исправно работала в течение нескольких месяцев, а затем после перезагрузки физического оборудования виртуальная машина больше не подключается к сети при запуске, поэтому я не могу подключиться к ней по 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 никогда не появляется в сети.
Что мне делать дальше, чтобы получить доступ к этой виртуальной машине?
Хорошо, в конце концов я восстановил то, что хотел, от виртуальной машины, поэтому для потомков вот что я сделал:
Сначала обновил 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-адреса с других машин в моей сети.