Добавление блочных устройств Virtio во время выполнения в Libvirt KVM
Я использую Debian Wheezy Beta 4 с гостевыми системами на основе KVM, которые работают под той же операционной системой. Я использую LibVirt для управления виртуализацией.
Я хотел бы подключить блочное устройство на основе LVM к работающей гостевой системе через Virtio. Если бы я настроил это через 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
показывает все это.
Я нахожу способ указания параметров командной строки довольно ограниченным. Попробуйте использовать 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