FreeBSD Daily Topics

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

この記事を読むのに必要な時間:およそ 1.5 分

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に対して実行されるようになります。

コメント

コメントの記入