在 Libvirt KVM 中运行时添加 Virtio 块设备

在 Libvirt KVM 中运行时添加 Virtio 块设备

我正在运行 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

相关内容