Ubuntu 12.04 LTS KVM主机与OpenBSD 5.4来宾,`virsh关机`不工作/冻结客人

我有一个OpenBSD 5.4客户的Ubuntu 12.04 LTS KVM主机。

我有一个关于virsh shutdown不工作/冻结客人的问题。

在调用关机之后,guest虚拟机冻结并且没有响应。 任何SSH会话冻结,任何VNC控制台都没有响应。 客户端在冻结时没有logging。

唯一的解决办法就是消灭客人。


该问题类似于: 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分钟后,没有状态改变。

closures客人

  • 在关机请求期间logging日志:

sudo tail -F /var/log/messages

  • 由于closures请求而没有logging附加值。
  • terminal(ssh)和控制台(通过vnc)都没有响应。
  • Write failed: Broken pipeterminal(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

客户安装步骤

  • 已下载amd64 install54.iso: http ://ftp.openbsd.org/pub/OpenBSD/5.4/amd64/install54.iso

  • 创build磁盘:

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

  • 运行virt-install:

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连接到本地主机5910,继续安装。

  • 没有安装game54.tgz或任何x包:

-game* -x*

Qemu对OpenBSD不支持的ACPI做了一些假设。 在多个OpenBSD和多个Qemu / KVM版本的过程中,我发现有效closuresOpenBSD客户的唯一方法是

 halt -p 

在客人本身。

当试图在KVM中closures时,这是OpenBSD作为虚拟机的常见问题。

解决:

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