我正在运行 Debian Wheezy Beta 4,它带有基于 KVM 的客户系统,它们运行相同的操作系统。我使用 LibVirt 来管理虚拟化。
我想做的是通过 Virtio 将基于 LVM 的块设备连接到正在运行的客户系统。如果我通过它进行配置,virsh edit [MACHINE]
它将如下所示:
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/volume_group/logical_volume'/>
<target dev='vdb' bus='virtio'/>
</disk>
我尝试找出如何使用 来实现这一点virsh attach-disk
。到目前为止,我发现了以下几点:
virsh attach-disk guest /dev/volume_group/logical_volume vdb --driver qemu --type raw --cache none --persistent
我如何指定目标bus
和驱动程序的io
字段?我确实需要这些选项与 XML 中指定的完全一致。
答案1
目前 virsh(1) 拥有所有的命令行选项,您可以简单地运行例如:
sudo virsh attach-disk \
--domain guestname \
--source /dev/volume_group/logical_volume \
--target vdb \
--driver qemu \
--subdriver raw \
--cache none \
--io native \
--targetbus virtio \
--config \
--live
virsh attach-disk --help
显示了一切。
答案2
我发现命令行指定选项的方式非常有限。尝试使用attach-device
行动并在 XML 文件中指定磁盘配置。
virsh # attach-device [MACHINE] /tmp/new-disk.xml
使用包含new-disk.xml
您要添加的五行内容的文件edit
。
添加--persistent
以让它为您更新机器的 XML 定义。
更新
确保在添加设备之前已在客户机中加载热插拔内核模块:
modprobe acpiphp
modprobe pci_hotplug
然后你应该会看到内核抛出一些调试消息dmesg
,如下所示:
[ 321.946440] virtio-pci 0000:00:06.0: using default PCI settings
[...]
[ 321.952782] vdb: vdb1 vdb2