IT業界

VMWareによるシステム構築っていいかも

先日のエントリーにも書いたようにいまさらながらVMWareブーム到来である。さてWindowsのメインマシンでインストールしたDebian Linuxがディスクイメージをコピーするだけで、自宅サーバーのwww.saitoudaitoku.comでなにごともなかったように起動して動くのを見てふと「これでいいじゃん」と思ったわけである。

なにが「これでいいじゃん」かと言うと「システムって全部仮想マシンの上に構築すればいいじゃん」という仮説である。ポイントはいったん構成した仮想マシンのサーバーは何の変更もなくどのサーバーでも動くということだ。「install once run anyware」といったところだろうか。

まずOSとミドルウェアのインストール作業について考えてみよう。仮想マシンの場合だと、OSのインストールはインストール済みの仮想マシンのディスクイメージをコピーするだけだ。もっというとソフトウェアベンダーなりが従来のミドルウェアのインストールイメージの代わりに、ミドルウェアをインストール済みの仮想マシンのディスクイメージを配布してもいいだろう。ミドルウェアのインストールという作業が本質的に何なのか考えてみると、「OSが動いているサーバーにミドルウェアの各種ファイルをコピーしてミドルウェアが使えるようにする」ことである。従来だとこのインストール作業というのはなんというか一期一会であり各サーバーに対して一回ずつ必要だ。が、しかし仮想マシンだとこのインストール作業が再利用できる。つまりディスクイメージをコピーするだけでOSとミドルウェアのインストールが数分で完了する。またインストール作業を外注してインストール済みのイメージだけをもらうことも出来るかもしれない。

さらにシステム構築もはるかに簡単になる。例えば、アプリケーション・サーバーやデータベース・サーバーなど計5台のLinuxサーバーからなるシステムを構築する場合を考えよう。普通なら当然、本番環境のサーバーを5台用意して1台ずつOSをインストールして最新のパッチをあててミドルウェアをインストールしてというステップを地道に踏んでいく。が、仮想マシンを使うとそのへんの余っているサーバー1台の上で5台分の仮想サーバーを構築して(といっても上で述べたようにコピーするだけ)、ネットワークや各種パラメーター設定を行い、動作確認を行うところまで実機なしで出来る。動作確認が済んだらおもむろに構成済みのディスクイメージを本番環境にコピーして起動するだけである。つまり環境構築の期間が短縮できる上、実機がなくても環境構築が可能になる。

さらに運用時にもメリットはいろいろとある。まずサーバーの変更が自由自在だ。「ちょっとこのサーバーだと性能厳しいからもうちょっと速いのにしたい」とか「このサーバー壊れたから別のマシンを再構築しないと」とか言う場合も仮想マシンのディスク・イメージをコピーして起動するだけだ。さらにディスクイメージをSAN上の共有ディスクにおいておけばコピーすら必要ない。また仮想マシンはホストOSからすると1プロセスなので、動いている仮想サーバーをプロセスマイグレーションにより停止することなく別のサーバーに動かすことも出来るかもしれない。またサーバーの二重化にも簡単になるだろう。

さてずいぶんバラ色の世界に思えるが、この世界に行くためにはいろいろと課題もある。

- パフォーマンスは?(この便利さに比べたら10-30%程度の劣化は問題ないかも)
- CPUが違うと動かない、エミュレーターで動かしても遅い(x86がデファクトスタンダード?)
- マルチプロセッサーのハンドリングは?(2つ以上のCPUがあったら使えるのか?)

もちろんこういった仮想化技術はメインフレームやハイエンドサーバーでは実現されているが、Intelも仮想化技術に力を入れているしそろそろローエンドの世界にも一気に広まりそうである。こうやって書いてると近い将来システムはすべてXenなどの上に仮想サーバーとして構築されるようになる気が猛烈にしてきました。そしてきっと私がシニアになったときに若者に「昔はサーバーには1つのOSしか動かなかったもんさ」などと言って「古っ!」とか思われる日が来るのでしょうなー。

similar posts

8 Comments

comment

You can skip to the end and leave a response. Pinging is currently not allowed.

次のHTMLタグが使えます。: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

*Required Fields