Xen HVM domU VNC 不刷新屏幕

Xen HVM domU VNC not refreshing screen

在我们的一个管理程序 运行 Xen(戴尔 R420 上的 Debian Jessie 之上的 v.4.6.0)上,当我们为 HVM 配置一个 domU 并通过 VNC 连接到控制台时,连接显示静态图像并且似乎不接受鼠标或键盘输入(让您认为 VM 是 frozen/not 响应)。关闭并通过 VNC 重新连接后,该行为仍然存在,但现在反映了上一个会话的 mouse/keyboard 输入(因此,如果您按 tab 键三次,您可以看到相应的单选按钮或输入按钮在 closing/opening VNC 连接,但你需要再次关闭 window 才能看到下一个输入在哪里,使其无法使用。

我们在其他三台配置了 HVM 的 domUs 的物理机上顺利地安装了 Xen 运行(2x Debian Jessie,1x Ubuntu Xenial,都使用 v.4.6.0)并且一直在比较什么可能有所不同,我们注意到 QEMU 可以在麻烦的 Xen 主机上更新。将 QEMU 从 1.2.2 升级到 1.2.5(匹配工作主机上的版本)并重新启动后,问题仍然存在。我们已将 VM 配置复制到另一台主机并取得成功,这让我们相信这台机器有一些孤立的东西。

猫的结果/sys/hypervisor/properties/capabilities

xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

xl 信息的结果:

host                   : vm-host
release                : 3.16.0-4-amd64
version                : #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02)
machine                : x86_64
nr_cpus                : 16
max_cpu_id             : 47
nr_nodes               : 1
cores_per_socket       : 8
threads_per_core       : 2
cpu_mhz                : 2500
hw_caps                : bfebfbff:2c100800:00000000:00007f00:77bee3ff:00000000:00000001:00000281
virt_caps              : hvm hvm_directio
total_memory           : 32704
free_memory            : 17945
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 6
xen_extra              : .0
xen_version            : 4.6.0
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : placeholder dom0_mem=1024M,max:1024M dom0_max_vcpus=1 dom0_vcpus_pin no-real-mode edd=off
cc_compiler            : gcc (Debian 5.3.1-8) 5.3.1 20160205
cc_compile_by          : ijc
cc_compile_domain      : debian.org
cc_compile_date        : Tue Feb  9 17:46:27 UTC 2016
xend_config_format     : 4

示例 domU 配置:

name="VM1"
uuid="91f4c306-101b-431b-bf73-2146b2a137fb"
vcpus=2
memory=2048
disk = [ "phy:/dev/vg1/centos,xvda2,w",
     "file:/path/folder/images/CentOS-7-x86_64-Minimal-511.iso,xvdb:cdrom,r" ]
builder = "hvm"
boot = "dc"
vnc = "1"
vnclisten = "0.0.0.0"
vncdisplay = "0"
vncpasswd = "password"
vga ="stdvga"
videoram = 64

任何关于如何让 VNC 顺利和正确工作的建议都将不胜感激!

尝试将 GRUB_GFXPAYLOAD_LINUX="keep"GRUB_GFXPAYLOAD_LINUX="640x480"(或其他分辨率)添加到 DomU 上的 /etc/default/grub,然后 运行 update-grub2(在 DomU 上)并重新启动。这帮助我解决了同样的错误。

感谢推荐。事实证明,我们安装了混合版本的 Xen 及其依赖项(有些是 4.4,有些是 4.6)。我们最终删除了 Xen 和所有相关的软件包并重新安装。在安装过程中,我们注意到安装 xen-hypervisor-4.6-amd64 来自 stretch repo(预期),但它的依赖项来自旧版本的 jessie main repo(例如,libxen-4.4 而不是 libxen-4.6)。为了解决这个问题,我们 运行 apt-get -t stretch install xen-hypervisor-4.6-amd64 它正确安装了 stretch 的所有依赖项,并且在重新启动后,与 HVM domU 的 VNC 连接按预期工作。