研究室では学生が Windows を使うので (こまったものだ)、大学がライセンス導入している Symantec Antivirus の Corporate Edition みたいなやつを使っている。これは、普通に僕らが電器屋さんで買ってくる奴と違って、サーバで集中管理できるようになっており、定義ファイルをサーバから更新したり、サーバから各クライアントをスキャンしたりすることができて、大変便利。
しかし、このサーバは Windows でしか動かなくて、研究室のサーバ部屋を兼ねている僕の部屋には、Windows の動くマシンというのは、ノートパソコンしかないわけです。じゃあ、Antivirus サーバのために一台計算機増やすか、といわれると、それは夏がつらくなるわけで、絶対無理。
幸いにして Antivirus サーバはそれほど重くないので、研究室の samba サーバになっているマシンに QEMU を入れて、WindowsXP を動かしていた。必要なときに vncviewer や rdesktop で画面を覗けばいいし、けっこう便利だったのだ。kqemu (QEMU accelerator) も動くから、けっこう速い。
ところが、最近 QEMU + kqemu をアップデートしたのがきっかけなのか、Antivirus の動作が変わったのか、Liveupdate をしたら急に重たくなり、ディスクのアクセスランプが付きっぱなしでほとんど動かなくなってしまった。FreeBSD 本体は元気に動いているのだが、rdesktop や vncviewer の反応は全然ダメで、qemu の process status をみると、ずっと ZFS への io が続いており、CPU 使用率は 0.5% とか、それくらい。
つまり、ディスクアクセスがボトルネックなのだ。それに加えて、ZFS な領域にディスクイメージを置いていたので、ZFS が足を引っ張っている状態。この ZFS な領域は、頻繁に更新されるものは置いてなかったので、UFS にすることを決意して、34GB のデータを他のマシンのディスクに rsync して、zpool を破棄して newfs した。
そしたら、一番しんどいときでも CPU 使用率が 5% くらい出るようになり、時間はかかるものの、ちゃんと Liveupdate も完了するようになった。
I/O がボトルネックになるのは、こういう virtual machine の常ではあるけれど、最近 FreeBSD に port された、VirtualBox とかはどうなのかしら。まだ安定してなさそうなので、手を出さずにいるのだけれど…
しかし、喫緊の課題は、ZFS やめてディスクがミラーじゃなくなっちゃったので、これを gmirror か何かでミラーすることである。これは、一度止めないとだめだな…