さくらの VPS の FreeBSD で VirtIO を有効にする

さくらの VPS は最近のプラン変更(512プランが無くなった)時に、 VirtIO による準仮想化に対応しました。
FreeBSD は標準では対応していないため OS 選択時に VirtIO が無効になりますが、 完全仮想化ではパフォーマンスの低下がみられる事となります。
とくに、 どうも同一マシン上の他の仮想環境で負荷が上がった際に影響を受けやすくなるようです。
そんなわけで FreeBSD で VirtIO を有効にしたいと思います。

まずは ports にある emulators/virtio-kmod で VirtIO のカーネルモジュールをインストールします。

/boot/loader.conf に以下を記述し有効にします。

virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"

/etc/rc.conf に以下を記述し NIC の名前を設定します。
必ずしも必要ではありません。

ifconfig_vtnet0_name="em0"

/etc/fstab/dev/ad0 から始まるところを /dev/vtbd0 に全て書き換えます。

shutdown -p now でシャットダウンし、 カスタム OS での再セットアップを選び、 CentOS 5.5 x86_64 を選びます。
インストーラーが起動したらもう VirtIO が有効になっていますので、 さっさと再起動します。

以上で完了です。
詳細は ここ にまとまっています。

dd での Disk I/O の速度は確かに向上しています。
同一マシン上の他の仮想環境が高負荷の際の問題については、 調査依頼した際に当該環境を制限したようで確認できませんでした。

それほど手間でもないので VirtIO 有効はおすすめです。

カテゴリ: 

sakura