FreeBSD Daily Topics

2011年12月13日VirtIO、FreeBSD 10-CURRENTに登場

src

VirtIO on FreeBSD 10-CURRENT

FreeBSD 10-CURRENTにVirtIO関連の実装とカーネルモジュールが追加されました。仮想環境で動作するFreeBSDの性能を引き上げる重要な実装となります。

VirtIOは準仮想化の仕様です。従来の仮想環境ではディスクコントローラやEthernetデバイスを仮想化環境がエミュレートして提供していますが、この方法は効率が悪いところがあります。VirtIOはゲスト-ホスト間(仮想マシン―ハイパーバイザ間)で効率の良いインターフェースを規定するもので、より効率の良いEthernetデバイスやブロックデバイス、メモリ管理の実現を目指すものです。

sys/dec/virtio、sys/dev/vte、sys/modules/virtioに実装がまとまっています。

FreeBSD 10-CURRENTに導入されたVirtIO実装
# cd /usr/src
# find . | grep -E '(virtio)|(if_vt)'
./share/man/man4/virtio.4
./share/man/man4/virtio_blk.4
./share/man/man4/virtio_balloon.4
./sys/dev/virtio
./sys/dev/virtio/balloon
./sys/dev/virtio/balloon/virtio_balloon.c
./sys/dev/virtio/balloon/virtio_balloon.h
./sys/dev/virtio/block
./sys/dev/virtio/block/virtio_blk.c
./sys/dev/virtio/block/virtio_blk.h
./sys/dev/virtio/network
./sys/dev/virtio/network/if_vtnet.c
./sys/dev/virtio/network/if_vtnetvar.h
./sys/dev/virtio/network/virtio_net.h
./sys/dev/virtio/pci
./sys/dev/virtio/pci/virtio_pci.c
./sys/dev/virtio/pci/virtio_pci.h
./sys/dev/virtio/virtio.c
./sys/dev/virtio/virtio.h
./sys/dev/virtio/virtio_bus_if.m
./sys/dev/virtio/virtio_if.m
./sys/dev/virtio/virtio_ring.h
./sys/dev/virtio/virtqueue.c
./sys/dev/virtio/virtqueue.h
./sys/dev/vte/if_vte.c
./sys/dev/vte/if_vtereg.h
./sys/dev/vte/if_vtevar.h
./sys/modules/virtio
./sys/modules/virtio/Makefile
./sys/modules/virtio/balloon
./sys/modules/virtio/balloon/Makefile
./sys/modules/virtio/block
./sys/modules/virtio/block/Makefile
./sys/modules/virtio/network
./sys/modules/virtio/network/Makefile
./sys/modules/virtio/pci
./sys/modules/virtio/pci/Makefile
./sys/modules/virtio/virtio
./sys/modules/virtio/virtio/Makefile
#

最新の10-CURRENTでは/boot/kernel/に次のカーネルモジュールが生成されることを確認できます。

新しく導入されたVirtIO関連のカーネルモジュール
# cd /boot/kernel/
# ls | grep -E '(virtio)|(if_vt)'
if_vte.ko
if_vte.ko.symbols
if_vtnet.ko
if_vtnet.ko.symbols
virtio.ko
virtio.ko.symbols
virtio_balloon.ko
virtio_balloon.ko.symbols
virtio_blk.ko
virtio_blk.ko.symbols
virtio_pci.ko
virtio_pci.ko.symbols
#

VirtIOに対応した仮想環境に、VirtIOに対応したOSをインストールすることでこの機能を活用できます。たとえばKVM/QEMUにFreeBSD 10-CURRENTをゲストOSとしてインストール、VirtualBoxにFreeBSD 10-CURRENTをゲストOSとしてインストールする場合など、VirtIOによる性能の向上を確認できます。ケースによっては大幅な性能の向上となります。

おすすめ記事

記事・ニュース一覧