Картографування USB-накопичувача безпосередньо на віртуальній машині libvirt KVM?


9

Я шукаю інформацію про відображення наявного накопичувача (USB-накопичувача) на віртуальній машині KVM за допомогою libvirt. Я переходив http://libvirt.org/formatstorage.html#StoragePoolTarget . Але я не зовсім розумію, які варіанти потрібні, щоб виставити наявний пристрій на VM (або якщо це навіть можливо).

З того, що я читаю, targetелемент очікує, що pathелемент у папці на машині зберігатиме зображення на основі файлів. Чи може pathбути такий пристрій, як /dev/sdc1? з typeз raw?

Відповіді:


9

Перевірте "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 вашого VM. Просто змініть початковий розробник, щоб він відповідав тому, що було призначено вашому usb під час його підключення. Однак ви не можете гарантувати, що призначення deb usb переживе перезавантаження, якщо інші пристрої будуть додані чи вилучені, тому я рекомендую підхід у перше посилання вище замість цього.

Якщо посилання зникає, ось відповідний прохідний розділ USB пов'язаних документів:

Використання Libvirt

запустив попередньо існуючу вм

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-диск на vm

sudo virsh attach-device maverick2 /tmp/a.xml

ЯКЩО це не працює з включеним додатком. Ви повинні або відключити додаток, або додати його

/dev/bus/usb/*/[0-9]* rw,

до або /etc/apparmor.d/libvirt-qemu(що надає всім гостям повний доступ до фізичних пристроїв хоста) або до

/etc/apparmor.d/libvirt/libvirt-<uuid>

який надасть доступ лише одному гостю. (Дякуємо jdstrand за допомогу, щоб зрозуміти це.)


1
Дякую, ця сторінка була дуже корисною. Я все працював. Але замість продавця та товару я використав addressелемент. Під час використання постачальника та продукту я не зміг підключити 2 однакових USB-накопичувача. Це пройшло б лише через перше.
Енді Шінн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.