Я ищу информацию о подключении существующего диска (USB-накопителя) к виртуальной машине KVM с помощью libvirt. Я собирался http://libvirt.org/formatstorage.html#StoragePoolTarget. Но я не совсем понимаю, какие параметры необходимы, чтобы открыть доступ к существующему устройству виртуальной машине (или если это вообще возможно).
Из того, что я читаю, target
элемент ожидает path
в папку на машине для хранения файлового изображения. Может ли path
быть таким устройством, как /dev/sdc1
? с type
из raw
?
Ознакомьтесь с «USB-переходом | Использование Libvirt в разделе эта страница из вики Edubuntu. Больше информации Вот и Вот.
Если вы никогда не планируете горячее подключение / отключение USB-накопителя во время работы гостя, вы также можете попробовать добавить раздел, например
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
в файл определения xml вашей виртуальной машины. Просто измените исходный код разработчика так, чтобы он соответствовал тому, что было назначено вашему USB-накопителю, когда он был подключен. Однако вы не можете гарантировать, что назначение USB-устройства сохранится после перезагрузки, если другие устройства будут добавлены или удалены, поэтому я бы рекомендовал подход в вместо этого первая ссылка выше.
В случае, если ссылка исчезнет, вот соответствующий раздел USB-перехода связанных документов:
Использование Libvirt
запустил уже существующий vm
virsh start maverick2
подключен USB-накопитель
нашел адрес USB, используяlsusb
, который дал мне
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
определил XML-файл с информацией об устройстве:
<hostdev mode='subsystem' type='usb'> <source> <vendor id='0x1058'/> <product id='0x1023'/> </source> </hostdev>
передал USB-накопитель на ВМsudo virsh attach-device maverick2 /tmp/a.xml
ОДНАКО это не работает с включенным apparmor. Вы должны либо отключить apparmor, либо добавить
/dev/bus/usb/*/[0-9]* rw,
либо
/etc/apparmor.d/libvirt-qemu
(что дает всем гостям полный доступ к физическим хост-устройствам) или к/etc/apparmor.d/libvirt/libvirt-<uuid>
который предоставит доступ только одному гостю. (Спасибо jdstrand за помощь в этом.)