私はSmartOS20130405T010449ZをUbuntu KVM内部で実行しています。UbuntuVMは数か月間正常に動作し、その後、物理ハードウェアを再起動した後、VMは動作しなくなりました。起動時にネットワークに接続するため、ネットワークに接続して状態を確認することはできません。
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にアクセスするには、次に何を試す必要がありますか?
さて、私は最終的にVMから必要なものを回復したので、後世のために、これが私がしたことです:
まず、SmartOSを更新しました。私は最初はデータの損失を恐れて躊躇していましたが、アップグレードはまったく苦痛がありませんでした。新しいバージョンを新しいUSBスティックに置き、シャットダウンし、スティックを交換して、再起動します。
更新後も、VMに接続するときに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
そこで、問題はすぐに明らかになりました。VMがブートメニューでスタックし、ブートオプションが選択されるのを待っていました。デフォルトのオプションを選択しました。VMは完全に正常になりました。
ただし、落とし穴がありました。おそらく、SmartOSを更新したときに、「外部」NICを失ったため、VMは、外部へのチャネルなしで起動しました。手動で/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
次に、外部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 steve
はSmartOS内から機能し、ネットワーク上の他のマシンからIPアドレスにSSH接続できます。