起動しない SmartOS VM のトラブルシューティング

起動しない SmartOS VM のトラブルシューティング

私は、Ubuntu KVM を内蔵した SmartOS 20130405T010449Z を実行しています。Ubuntu VM は数か月間正常に動作していましたが、物理ハードウェアを再起動した後、起動時に VM がネットワークに接続しなくなり、ssh で接続して正常性をチェックできなくなりました。

SmartOS にログインして VM を起動できます。

$ vmadm start [uuid]

実行されていることを確認します:

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

そしてpingを実行します:

$ ping steve
steve is alive

しかし、VM のコンソールにドロップしようとすると、コマンドが永久にハングしてしまいます。

$ vmadm console [uuid]
[hangs forever]

SmartOS 内から ssh を試みると、同じ結果になります。

$ ssh steve
[hangs forever]

Ubuntu VM の IP アドレスがネットワーク上で表示されないため、ネットワーク上の他のマシンから ssh できません。

この VM にアクセスするには次に何を試せばいいでしょうか?

答え1

さて、最終的に VM から必要なものを回復できたので、後世のために、私が行ったことを以下に示します。

まず、SmartOS を更新しました。最初はデータ損失を恐れて躊躇しましたが、アップグレードはまったく苦労しませんでした。新しいバージョンを新しい USB スティックに保存し、シャットダウンしてスティックを入れ替え、再起動するだけです。

アップデート後もvmadm consoleVMsshに接続するとハングアップするため、代わりに 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 を更新したときに「外部」NIC が失われ、VM が外部へのチャネルなしで起動したのです。SmartOS/usbkey/configで手動で編集し、不足していた次の行を追加する必要がありました。

external_nic=[MAC address]
external0_ip=192.168.1.20
external0_netmask=255.255.255.0
external0_gateway=192.168.1.1

次に、外部 NIC を 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]

構成の変更を反映するには SmartOS を再起動する必要があり、その後 VM にネットワーク インターフェイスが起動しました。

注意:vmadm console何らかの理由でまだ動作しません。無期限にハングしたままです。ただし、ssh steveSmartOS 内からは動作し、ネットワーク上の他のマシンから IP アドレスに ssh できます。

関連情報