前回は、いま流行の仮想化技術をタイプ別に大きく3つに分け解説した。仮想化技術には、分身、合体、変身という3つのタイプがあり、これらを組み合わせるため複雑になってしまう。複雑な仮想化に出会った際には、「この仮想化は合体して分身しているな」「合体してさらに変身しているな」といったように、どのタイプがどのように利用されているかを考えてみるといいだろう。
さて、今回は仮想化にはどんなメリットがあるのか、逆に仮想化導入で気にかけておくべきことは何かについて考えていきたい。サーバの仮想化、ストレージの仮想化といった個々の仮想化技術のメリット、デメリットを詳細に説明するのではなく、仮想化と呼ばれる技術の総合的なメリット、デメリットについて解説していく。
分身でリソースの有効活用
なぜ仮想化技術を導入するのかという問いに対し、現在最も多い回答は「リソースを有効利用したいから」というものだろう。リソースの有効活用は、仮想化の分身技術に起因するメリットだ。
これは、サーバリソースの稼働率で考えてみる分かりやすい。世の中で稼動しているサーバの多くは、10〜20%程度しかリソースが使われていないとされている。つまり残り80%程度の力が各サーバで遊んでいるのだ。この遊んでいる部分を分割し仮想化して、別のアプリケーションから利用できれば、サーバの稼働率を100%に近づけられる。
これはストレージでも同様だ。1つのマシンに接続しているストレージの使用率が100%ということはない。サーバリソース程ではなくとも、余裕があるはずだ。この余裕部分を分割し、別マシンから利用できれば、そのストレージの稼働率を上げられる。このように、仮想化の分身技術を使えば余剰なリソースを有効活用できる。これが、いま最も注目されている仮想化のメリットなのだ。
合体で新たなパワーを得る
それでは、合体の技術にはどんな効果が期待できるだろうか。イメージしやすいのは、サーバのクラスタリングだ。Oracleデータベースのグリッドなどをイメージしてもらうといいだろう。Oracleのグリッドは、複数のサーバを合体させ、アプリケーション側からはあたかもCPUがたくさん搭載された大きなサーバでデータベースシステムが動いているように見せる仮想化技術だ。
小さくて非力なサーバも、数が集まれば大規模サーバと同様に高い性能が得られる。ストレージの場合も同じく、仮想化で小さなストレージを集め、大きなストレージがあるように見せることができる。非力なものを集めて大きな力にするのが、仮想化の合体技術のメリットなのだ。
変身で管理の手間を削減する
変身技術のメリットは、管理の手間の削減だ。アプリケーションが物理的なハードウェアと直接結びついていると、何らかの障害が発生してハードウェアを交換する際、アプリケーション側で新しいハードウェアに合わせた設定やプログラムを変更する必要がある。この改変の手間を削減するのが、変身の技術だ。
アプリケーションの接続先が仮想化されたハードウェアであれば、その下にあるハードウェアを交換しても仮想化ハードウェアにはなんら変化がないので、アプリケーション側を改変する必要がない。例えば、物理的なネットワークボードが故障して機器を取り替えても、サーバ名やIPアドレスで同じサーバにアクセスできるというのが、このメリットの典型的な例だ。