FreeBSD Daily Topics

2011年12月15日VirtualBox上のFreeBSDでVirtIOネットワークを有効にする方法

virtualization

How to enable the virtio-net of the VirtualBox and FreeBSD

VirtIOの機能をてっとりばやく試してみる方法のひとつは、VirtualBoxでFreeBSD 10-CURRENTを実行してみることです。VirtualBoxはVirtIOの準仮想化ネットワーク(virtio-net)に対応しています。この機能を活用することで、VirtualBoxで動作するFreeBSDのネットワーク性能を桁違いに高速化できます。

準仮想化ネットワークの機能を利用するには、まずVirtualBox側で設定を有効にする必要があります。仮想マシンの設定ダイアログからネットワークの項目を選択します。

図1 VirtualBoxの仮想マシン設定 - ネットワーク
図1 VirtualBoxの仮想マシン設定 - ネットワーク

「高度」を選択して詳細表示にします。「アダプタタイプ」のところが「Intel PRO/1000 MT Desktop (8254OEM)」のようになっているかと思います。

図2 「高度」を選択してアダプタタイプをチェック
図2 「高度」を選択してアダプタタイプをチェック

「アダプタタイプ」の候補に「準仮想化ネットワーク(virtio-net)」という項目がありますので、これに設定を変更します。これでEtherデバイスとして準仮想化ネットワークが利用できるようになります。

図3 準仮想化ネットワークを選択
図3 準仮想化ネットワークを選択

FreeBSD 10-CURRENTゲストOSではvirtio(4)、virtio_pci(4)、if_vtnet(4)のカーネルモジュールを読み込んでおきます。毎回読み込むのは手間ですので、/boot/loader.confファイルに次の設定を追加しておきます。起動時に自動的にカーネルモジュールが読み込まれるようになります。

/boot/loader.confに追加する設定
virtio_load="YES"
virtio_pci_load="YES"
if_vtnet_load="YES"

ここまでセットアップすると、次のようにネットワークインターフェースとして「vtnet0」が利用できるようになります。

準仮想化ネットワークに対応したネットワークインターフェースvtnet
vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=c03ba<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,VLAN_HWTSO,LINKSTATE>
        ether 08:00:27:90:16:9d
        inet 192.168.1.221 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet 1000baseT <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
        inet 127.0.0.1 netmask 0xff000000 
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

vtnet0に対する設定はほかのネットワークインターフェースと同じように実施できます。たとえば/etc/rc.confに「ifconfig_vtnet0="DHCP"」のように書いておけば、起動時にDHCPクライアントがvtnet0に対して実行されるようになります。

おすすめ記事

記事・ニュース一覧