Speed up FreeBSD KVM guests using Virtio

Опубликовано:

Установка VirtIO в FreeBSD.

Про паравиртуальные драйвера VirtIO я уже писал, поэтому повторно расписывать что это, не имеет смысла. Привожу пример установки virtio-драйверов в гостевую систему FreeBSD.
Обновляем систему
# freebsd-update fetch
# freebsd-update install

Устанавливаем пакет virtio-kmod. В диалогах везде принимаем настройки по умолчанию.
# cd /usr/ports/emulators/virtio-kmod
# make clean install

После установки копируем модули в каталог ядра
# cp -Rp /usr/local/modules/* /boot/kernel/
# kldxref /boot/kernel

Правим конфигурацию загрузчика
# vi /boot/loader.conf
virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"

Правим /etc/fstab, использование virtio определяет другое именование блочных устройств
# vi /etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/vtbd0p2    /               ufs     rw      1       1
/dev/vtbd0p3    none            swap    sw      0       0

Имена сетевых карт также изменятся, поэтому следует отредактировать имена в rc.conf
# vi /etc/rc.conf
ifconfig_vtnet0="DHCP"

Выключаем гостя.
# shutdown -p now

Перед запуском меняем настрйоки виртуальной машины, менятем тип блочного устройства на virtio. После чего запускаем машину и проверяем что VirtIO включено и используется.
# kvm ... -drive file=/dev/vg00/k101-fbsd-root,if=none,index=0,id=disk101 -device virtio-blk-pci,drive=disk101
— netdev tap,ifname=itap101,id=itap101,script=no,downscript=no -device virtio-net-pci,netdev=itap101,mac=00:fc:44:d5:01:01
# kldstat
Id Refs Address            Size     Name
1   12 0xffffffff80200000 11cdab0  kernel
2    5 0xffffffff813ce000 4ca0     virtio.ko
3    1 0xffffffff813d3000 5880     virtio_pci.ko
4    1 0xffffffff813d9000 5010     virtio_blk.ko
5    1 0xffffffff813df000 aeb0     if_vtnet.ko
6    1 0xffffffff813ea000 3210     virtio_balloon.ko

Понравилась статья, расскажи о ней друзьям, нажми кнопку!