Ubuntu

對無法啟動的 SmartOS VM 進行故障排除

  • November 1, 2015

我正在執行帶有 Ubuntu KVM 的 SmartOS 20130405T010449Z。Ubuntu 虛擬機健康執行了幾個月,然後在重新啟動物理硬體後,虛擬機在啟動時不再連接到網路,所以我無法通過 ssh 進入它來檢查它的健康狀況。

我可以登錄 SmartOS 並啟動 VM:

$ vmadm start [uuid]

驗證它是否正在執行:

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

並ping它:

$ ping steve
steve is alive

但是當我嘗試進入虛擬機的控制台時,命令只是永遠掛起:

$ vmadm console [uuid]
[hangs forever]

當我嘗試從 SmartOS 內部 ssh 時得到相同的結果:

$ ssh steve
[hangs forever]

我無法從網路上的其他機器 ssh,因為 Ubuntu VM 的 IP 地址永遠不會出現在網路上。

接下來我應該嘗試什麼來訪問這個虛擬機?

好的,我最終從 VM 中恢復了我想要的東西,所以為了後代,這就是我所做的:

首先,我更新了 SmartOS。起初我很猶豫,擔心數據失去,但升級完全沒有痛苦:將新版本放在新的 U 盤上,關機,更換 U 盤,然後重新啟動。

更新後vmadm consolessh連接到 VM 時仍會掛起,因此關鍵見解(我之前不知道)是通過 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

在那裡,問題立即顯現:VM 卡在啟動菜單中,等待選擇啟動選項。我選擇了預設選項,嘿,很快,VM 執行良好。

但是有一個問題:大概當我更新 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 以獲取配置更改,然後 VM 提供了一個網路介面。

警告:vmadm console由於某種原因,仍然無法正常工作;它仍然無限期地掛起。但是,ssh steve可以在 SmartOS 內部工作,我可以從網路上的其他機器 ssh 到 IP 地址。

引用自:https://serverfault.com/questions/728252