さくらVPSにFreeBSD 9.0R を入れて virtio化したらディスク爆速すぎワロタ!

とりあえず、釣りっぽいタイトルにしてみました(・∀・)

 

一時期は人気過ぎて契約の予約待ち状態だった さくらの VPS ですが、一時期の過熱状態を脱したのか、先週の金曜日に普通に申し込みができたので、一番小さい 1G タイプを使って見ることにしました。

 

◇とりあえずFreeBSD

居酒屋のとりあえずビール的に、デフォルトのCentOS から FreeBSD へ入れ替えます。

「OS再インストール」>「カスタムOSインストール」で、FreeBSD 8.1 amd64 を選択します。

最新の9.0R が選択肢にないので、とりあえず 8.1R をインストール。

vertio化する際に、srcが必要なので、src-all も入れておきます。

インストールが終わったら、おもむろに

# sed -i '' -e 's/=_/=%@_/' /usr/sbin/freebsd-update

# freebsd-update -r 9.0-RELEASE upgrade install

# reboot

# freebsd-update install

# reboot

# freebsd-update install

# reboot

 これで、FreeBSD 9.0R になるはず。

 

◇virtio化

つぎにvirtio化していきます。

 

kernel module を ports からインストール。

# cd /usr/ports/emulators/virtio-kmod
# make install clean

これで、kernel module がインストールされるので、これをロードするように設定します。

/boot/loader.conf に以下を追記します。

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

 

次に /etc/fstab を virtio 的デバイスに書き換えます。

CDROMドライブ以外のデバイス部分はすべて書き換えていきます。/dev/ad0s1a だったら、/dev/vtbd0s1a になります。

置換ルールとしては s/ad/vtbd/ ってかんじで置換しましょう。

fstab の書き換えが済んだら、

# shutdown -p now

でマシンを落としておきます。

 

次に、ハイパーバイザ側のvirtioを有効化します。

さくらのVPSは、Linuxがインストールされていると virtio が有効になっていますが、FreeBSD だと無効化されています。

そこで、ちょこっとだけLinuxを入れるふりをして、virtioだけ有効化させます。

「OS再インストール」>「カスタムOSインストール」で、

CentOS 5 x86_64 を選択します。

OSのインストーラが起動して、最初の言語選択メニューが表示されたら、コントロールパネルからおもむろに再起動します。

 

これでvirtioが有効化された状態で FreeBSD が上がってきます。

 

◇virtio化の恩恵

 簡単なdisk書き込みテストを実施してみました。

[virtio化まえ]

% sudo time dd if=/dev/zero of=/tmp/hoge bs=16384 count=16384
16384+0 records in
16384+0 records out
268435456 bytes transferred in 4.780483 secs (56152371 bytes/sec)
        4.96 real         0.00 user         0.84 sys

[virtio化あと]

% sudo time dd if=/dev/zero of=/tmp/hoge bs=16384 count=16384
16384+0 records in
16384+0 records out
268435456 bytes transferred in 0.451433 secs (594629745 bytes/sec)
        0.45 real         0.00 user         0.42 sys

 

なんと11倍!(当社比

とりあえずの環境づくりのベースとしてはこんな感じでいいんじゃないですかね。