GoTheDistance

ござ先輩と言われています。(株) クオリティスタートという会社をやっています。

仮想化ソフトって便利ですよ

最近仮想化ベンダー周りの動きが激しい。VMWareも上場したし、XenSourceもシンクライアントベンダーのCitrixに結構なお値段で買収された。5億ドルってステキ。その1厘でいいから僕を買収して欲しい。1毛でも、まぁいいよw

仮想化って一言で言うと「ハードウェアのソフト化」にある。VMWareとかでいうと、あるハードの状態をまるまる1つのイメージファイルとして保存することが出来る。RedHatのAS2.1でApache1.3.3のTomcatは5.5、といったプラットフォーム周りのスナップショットを取ることができる。

これがどういうメリットがあるかというと、各種検証環境の構築が非常に楽になる。何しろファイルを読み込むだけで環境が構築できるし、不要になったらそのファイルをUnloadすればよいだけだ。まっさらのLinux・Win環境が予めあるだけでも、かなり手間は省けると感じた。検証環境、つまり本番環境と同じプラットフォーム構成を作る手間というのは、結構バカにならない。

世の中には気まぐれな製品があって、手順どおりインストールしても「キレイに入る時と入らない時」が存在したりする。今までOSごとのバックアップとなれば、テープとかの外部媒体に丸ごと避難する方法が主流だと思う。アークサーブとか。ハードウェアをハードでバックアップする方式。VMWareとかでは、そのハードウェアが1つのファイルとなってバックアップされる。配布も簡単。

自分は運用をやったことが無いので良く分からないのだけど、IT環境をソフトウェアレベルで管理できる仕組みというのはかなり運用を楽にするのではないかと勝手に思っている。

例えばハードウェア障害で全部ぶっこわれた〜、なんて時もバックアップ対象のファイルをもう1回差し込めばよい。某社のあるサーバー製品はFixpackというパッチを定期的に出しているのだが、これを適用したら動いていたアプリがJVMごと落ちた、なんていう悲しい状況に陥った事例を知っている。一応元に戻す、つまりパッチを外すコマンドもあったように記憶しているが、「ゴミ」が残っている可能性も捨てきれず、事故歴のある車に乗っているような微妙な不安さは拭いきれないのではないだろうか?

ぶっちゃけ一度この味を覚えてしまうと、ハードからセットアップするのは大変バカバカしく思えてしまう。

VMWareの場合は、ホストOSとゲストOSという概念がある。ゲストOSというのは仮想化対象のプラットフォームのこと。ホストOSというのは、VMWareそのものを稼動させるためのもの。で、ホストOSに1CPU、ゲストOSに1CPU必要なので、VMWareを使って複数OSを起動させる為には最低2CPUが必要だった記憶があり、IBMのeSeriesを購入した。

また仮想化ソフトというのは、結構ファイルI/Oが弱い。弱いというのはパフォーマンスが悪いと言い換えても良い。ログの書き込み、DBのCRUD関連が弱い。運用環境ではなく開発・検証環境用途がメインだと考えれば、ハードが貧弱なことは開発者の腕を試すようなものなので、個人的にはヘボい環境で動くことが保証された方が枕を高くして眠ることが出来るのでオススメしますw

どうしてファイルI/Oが弱いのかを調べていたら、エクセレントな説明に出会えた。

またVMware仮想マシンでは、指定したサイズのディスク領域が最初から確保されるわけではありません。仮想マシンのディスク領域は、物理マシン上では1つの巨大ファイルとして見えます。仮想マシン内部でのディスク消費に応じて、このファイルのサイズが徐々に増加する仕組みです。しかしこの構成で複数の仮想マシンを運用すると、ディスク・ドライブのフラグメンテーションが急速に進み、ディスクI/O性能の足を大きく引っ張ります。

実に簡潔明瞭な説明です。この説明にはて☆スタをつけたい。

あわせて書きたい

Nicholas Carrが仮想化が進んだらハードウェアビジネスはどうなるのか的なエントリ書いていたから近日中に英語でわかるITトレンド風に書いてPOSTします。

SQLを学習できるWebサービスを作りました。