帶有 OpenBSD 5.4 來賓的 Ubuntu 12.04 LTS KVM 主機,「virsh shutdown」不工作/凍結來賓

帶有 OpenBSD 5.4 來賓的 Ubuntu 12.04 LTS KVM 主機,「virsh shutdown」不工作/凍結來賓

我有 Ubuntu 12.04 LTS KVM 主機和 OpenBSD 5.4 guest 虛擬機器。

virsh shutdown我遇到了無法工作/凍結客人的問題。

呼叫關閉後,來賓凍結且無響應。所有 ssh 會話都會凍結,並且所有 vnc 控制台均無回應。凍結時客戶端中沒有任何記錄。

唯一的解決辦法就是消滅維什中的客人。


該問題類似於: http://comments.gmane.org/gmane.os.openbsd.misc/200982


從主機關閉

  • 來自主機:

$ sudo virsh list --all ... 15 ssh2 running ...

$ sudo virsh shutdown ssh2 Domain ssh2 is being shutdown

$ sudo virsh list --all ... 15 ssh2 running ...

  • 等待 5 分鐘後,狀態沒有變化。

從訪客關閉

  • 在歷史關閉請求期間監視日誌:

sudo tail -F /var/log/messages

  • 沒有記錄任何其他值作為 shutdown 請求的結果。
  • 終端機 (ssh) 和控制台(透過 vnc)都變得無回應。
  • 終端機 (ssh) 最終會出現錯誤Write failed: Broken pipe

主機詳情

  • 主持人:

$ uname -a Linux kvm2 3.2.0-51-generic #77-Ubuntu SMP Wed Jul 24 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"

  • 主機kvm版本:

$ virsh version Compiled against library: libvir 0.9.8 Using library: libvir 0.9.8 Using API: QEMU 0.9.8 Running hypervisor: QEMU 1.0.0

  • 在來賓上託管 kvm dominfo:

$ virsh dominfo ssh2 Id: - Name: ssh2 UUID: 7bb1977e-7268-f40a-32d4-5ae972be7e5f OS Type: hvm State: shut off CPU(s): 2 Max memory: 524288 kB Used memory: 524288 kB Persistent: yes Autostart: disable Managed save: no Security model: apparmor Security DOI: 0

訪客安裝步驟

sudo qemu-img create -f qcow2 -o preallocation=metadata /vm/ssh2-disk0.qcow2 2G

  • 運行 virt 安裝:

sudo virt-install \ --name ssh2 \ --ram 512 \ --vcpus=1 \ --os-variant=openbsd4 \ --hvm \ --cdrom /vm/install/install54-amd64.iso \ --network bridge:br0,model=virtio \ --graphics vnc \ --disk path=/vm/ssh2-disk0.qcow2,bus=virtio,size=2

  • 注意:使用 br0 而不是 virbr0,因為主機使用 br0。

  • 來自 kvm:

sudo virsh vncdisplay ssh2

  • 從桌面:

ssh -L 5910:127.0.0.1:5909 kvm2

  • 透過 vnc 連接到 localhost 5910,繼續安裝。

  • 沒有安裝 game54.tgz 或任何 x 軟體包:

-game* -x*

答案1

Qemu 對 ACPI 做了一些假設,而 OpenBSD 則沒有。在使用多個 OpenBSD 和多個 Qemu/KVM 版本的過程中,我發現有效關閉 OpenBSD 用戶機的唯一方法是

halt -p

在客人本身。

答案2

這是 OpenBSD 作為虛擬機器嘗試在 KVM 中關閉時的常見問題。

解決方法:

root@myhost:~# config -ef /bsd
disable mpbios
q
root@myhost:~# reboot

相關內容