带有 blktap 磁盘(“tap:aio:”)的 Xen 4.1 主机(dom0)未连接

带有 blktap 磁盘(“tap:aio:”)的 Xen 4.1 主机(dom0)未连接

在运行带有 dom0 xen-4.1 的 Ubuntu Precise 库存内核的 xen-4.1 中使用 blktap 时出现问题。

我得到:

[    5.580106] XENBUS: Waiting for devices to initialise: 295s...290s.
...
[  300.580288] XENBUS: Timeout connecting to device: device/vbd/51713 (local state 3, remote state 1)

还有一些系统日志行:

May 17 13:07:30 localhost logger: /etc/xen/scripts/blktap: add XENBUS_PATH=backend/tap/10/51713
May 17 13:07:31 localhost logger: /etc/xen/scripts/blktap: Writing backend/tap/10/51713/hotplug-status connected to xenstore.

使用 tap:aio: 磁盘行。file:/ 有效。

disk = [
    'tap:aio:/data/root.img,xvda1,w',
]

问题存在于 lucid 和 precises domU 内核中,并且两个客户机都在 Ubuntu hardy dom0 Host 64bit 2.6.24-28-xen xen-3.3 中运行

 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:        12.04
Codename:       precise

答案1

就像所有有问题的事情一样。寻求帮助通常可以解决问题。即使没有人回答问题。

因此答案有两个方面。显然,在 Ubuntu 中安装 xen* 东西是不够的。Blktap 和其他东西是单独的软件包,需要 tapdisk 用户空间程序和 blktap 模块。

安装blktap-utils和依赖项...您将获得tapdisk并使用 dkms 打包内核模块blktap

这还不够。显然,Blktap 在 Ubuntu Hardy 和 Precise XEN 版本(xen-3.3 -> xen-4.1)之间的某个时间点被更改为 blktap2。因此磁盘包含在“tap2:tapdisk:aio:”中,而不是“tap:aio:”中

# Use this to convert existing files
perl -i.backup -pe 's/tap:aio:/tap2:tapdisk:aio:/g' *.cfg

Xen blktap2用于 tap2 磁盘选项。


如果您在使用 blktap 时仍然遇到问题,接下来的这些命令可能有助于诊断缺少的内容。

ls /lib/modules/$(uname -r)/updates/dkms/blktap.ko && echo run: modprobe blktap || echo Missing module 
ls /usr/src/linux-headers-$(uname -r ) || echo MISSING kernel headers
ls /usr/src/blktap-2* || echo MISSING blktap-dkms
ls /var/lib/dkms/blktap/kernel-$(uname -r)* || echo dkms compilation failed

并为所有 dkms 模块手动激活编译:

sudo dkms autoinstall -k $(uname -r)

相关内容