2020-10 upd: we reached the first fundraising goal and rented a server in Hetzner for development! Thank you for donating !
Внимание! Данные страницы описывают CBSD версии 13.0.x. Если вы используете более раннюю версию, рекомендуется сначала обновиться.
bhyve PCI Passthrough
Commands bhyve-ppt
% cbsd bhyve-ppt
Описание:
CBSD позволяет сконфигурировать аргументы bhyve для пробрасывания устройств внутрь гостя, если ваше оборудование это поддерживает
Внимание! Ознакомьтесь с информацией на странице FreeBSD Wiki: bhyve pci_passthru
Для того, чтобы пометить устройство как пробрасываемое, вы должны поместить в /boot/loader.conf параметр, как написано в странице wiki, например:
pptdevs="2/0/0"
Если необходимо указать несколько устройств:
pptdevs="2/0/0 1/2/6 4/9/0"
Обратите внимание, что при использовании pptdevs, vmm модуль должен быть проинициализирован на этапе /boot/loader.conf, чтобы подхватить эти записи.
Если вы загружаете vmm уже после загрузки ядра, например через kldload, то pptdevs не сработает.
Далее, после загрузки системы убедитесь, что CBSD видит маркированные устройства. По команде 'cbsd bhyve-ppt mode=list' вы должны увидете ваши устройства:
% cbsd bhyve-ppt mode=list 5/1/0 : DGE-528T Gigabit Ethernet Adapter : D-Link System Inc : - 0/31/3 : 7 Series/C216 Chipset Family SMBus Controller : Intel Corporation : -
Теперь, используя ppt устройство ( 5/1/0 или 0/31/3 в этом примере) вы можете подключить или отключить это устройство к определенной виртуальной машине:
cbsd bhyve-ppt mode=attach jname=vmname
cbsd bhyve-ppt mode=detach jname=vmname
SR-IOV
Работа bhyve/CBSD протестирована в том числе с технологией SR-IOV
В этом случае, устройства ppt ничем не отличаются от тех, которые вы конфигурируете с помощью pptdevs
% cbsd bhyve-ppt mode=list 1/0/131 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/133 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/135 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/137 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/139 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/141 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/143 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/145 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/147 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/149 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/151 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/153 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/155 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/157 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/159 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/161 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/163 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/165 : X540 Ethernet Controller Virtual Function : Intel Corporation : - 1/0/167 : X540 Ethernet Controller Virtual Function : Intel Corporation : -
Каждую VF (Virtual Function) вы можете подключить к любой виртуальной машине через описанную выше: cbsd bhyve-ppt mode=attach