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の仮想マシン設定 - ネットワーク 「高度」を選択して詳細表示にします。「アダプタタイプ」のところが「Intel PRO/1000 MT Desktop (8254OEM)」のようになっているかと思います。
図2 「高度」を選択してアダプタタイプをチェック 「アダプタタイプ」 の候補に 「準仮想化ネットワーク(virtio-net)」 という項目がありますので、 これに設定を変更します。これでEtherデバイスとして準仮想化ネットワークが利用できるようになります。 図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に対して実行されるようになります。