2007年1月18日

仮想マシンの泣き所

ホウシャガメ(Geochelone radiata) 天王寺動物園(大阪市)にて

 仕事場に内部向けのwebサービスを構築する予定で、いろいろ物色中。サーバー(サーバと書くのもなんだか気持ち悪いので、サーバーと口語表現)は管理ポイントを少なくするために、RAID5か、RAID6で障害耐性を持たせて、マルチCPUと16GB(4GB*4)ぐらいの機械に仮想マシンを複数台動かす構成にする予定。バックアップはストレージ専用マシンで、定期的にスナップショットを取ったり、MySQLのレプリケーション機能を利用する予定。MySQL専用、Mediawiki専用、Windows2003 をそれぞれ仮想マシンで稼動させて、必要に応じて仮想マシンを追加するという感じで考えていて、たまたま知り合った大手のシンクタンク系の人を通じてSIerに見積もりを用意してもらっている。

 今日、SIerから連絡があって、データベースサーバーと、メールサーバーが同居するのはトランザクションに掛かる負荷が大きいので構成を悩んでいるという電話が入った。メールはSMTP用にしか使わんし(場合によっては不要だし)、データベースといっても、ほぼオンメモリで動ける範囲の規模しか想定してないし、そんなに大きな負荷になるかなぁ?というのが正直なところ。普段、MySQLを使っている限りでは、メモリーさえタップリ使わせてあげれば遅くて困ることはないなぁ。

 とはいうものの気になることが無いわけではなく、ハードディスクへのアクセスというのが結構仮想マシンのパフォーマンスの足引っ張りをするんじゃないかと思う。先日、OpenSolarisのZFSというファイルシステムで遊んでいたのですが、RAID5構成を面白がって、仮想マシンで1GBのハードディスクドライブを8個ほど作って、徐々にRAIDを組む台数を増やしていくという実験をしてみた。最初は2台のストライピングから初めて、最後は8ドライブでRAID5してみた訳であるが、RTAIDを組む台数が多くなればなるほど、ディスクアクセスが遅くなっていくので、???と頭を捻っていたのだが、よく考えると、リアルなハードディスクのアクセスが、RAIDの同時書き込みに追い付かないんだろうな。

 なので、複数の仮想マシンを運用する場合は、なるべくハードディスクにアクセスさせなかったり、同時に稼動しないようにさせるのがパフォーマンスアップのコツなのではないかと思う。

 仮想マシンは本当に便利で面白い。なんとか使い慣れてみたいものだ。

0 件のコメント: