Назад | Перейти на главную страницу

Устранение неполадок виртуальной машины SmartOS, которая не запускается

Я запускаю 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-адреса с других машин в моей сети.