Для того, чтобы пробросить устройство в ВМ, необходимо выключить ВМ.
Выбрав нужную ВМ нажать на вкладку «Конф.»
«Обновить конфигурацию»
Вкладка «Все остальное»
Ввести в поле «Данные» следующие записи:
<devices> <disk type='block' device='lun'> <driver name='qemu' type='raw'/> <source dev='/dev/disk/by-id/wwn-0x60cc6cc100ec7dd30d74835300000074'/> <target dev='sda' bus='scsi'/> </disk> <controller type='scsi' index='0' model='virtio-scsi'/> </devices> |
Для просмотра необходимого значения в source dev= необходимо посмотреть информацию о всех доступных лунах на стороне гипервизора с помощью следующих команд:
lsblk -d -o path,state,rota,size,tran,vendor |
pvcreate /dev/sde |
ls -la /dev/disk/by-id/ |
После внесения изменений, в левом нижнем углу «Конф.» высветиться заполненная информация о пробрасываемом диске или устройстве
После запуска ВМ при просмотре подключенных устройств будет виден диск, при этом со стороны СГУ в разделе Хранилище, будет стандартный набор дисков.
<devices> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x88' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x88' slot='0x00' function='0x0'/> </hostdev> </devices> |
В данном примере осуществляется проброс блочного устройства SSD. Необходимо определить параметры domain, bus, slot и function на хосте, где установлена СГУ. Например, список блочных устройств SSD Intel выведет несколько записей, если используется несколько SSD:
lspci | grep Intel | grep SSD |
Чтобы определить конкретное устройство можно воспользоваться командой:
ls -l /dev/disk/by-path |
В выводе данной команды будет одновременно и путь и id устройства. Определяем id устройства.
Альтернативный способ - выполняем команду:
lspci -vmm |
Получив вывод параметров всех устройств PCI, необходимо найти устройство SSD и взять параметр Slot. Выглядит нужный вывод примерно так
Далее вводится команда, в которой подставляется после опции-s номер Slot
lspci -s 88:00.0 -D |
Вывод будет содержать следующую информацию:
0000:88:00.0 Non-Volatile memory controller: Intel Corporation PCIe Data Center SSD (rev 01) |
Где слева направо для подставляемого кода 0000 - это domain, 88 - bus, 00- это slot, и ноль в самом конце после точки - это function.
Получится:
domain=0000, bus=88, slot=00, function=0 |
Все эти данные необходимо записать по одной из форм, представленных ниже:
Вариант А: Если для этого устройства необходимо задать конкретные параметры bus, slot, function внутри ВМ
<devices> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x88' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x88' slot='0x00' function='0x0'/> </hostdev> </devices> Вариант Б: Если для этого устройства необходимо получить значения параметров автоматически: <devices> <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x88' slot='0x00' function='0x0'/> </source> </hostdev> </devices> |
Данная запись записывается в поле «Данные» и нажимается «Обновить» для сохранения конфигурации. После чего можно запустить ВМ.