あらためて仮想化とは何かを考える
仮想化とは、ソフトウェアに対して物理ハードウェア資源とは異なる特性を有する仮想(論理)ハードウェア資源を見せることで、システム全体の柔軟性向上など様々な価値を提供するテクノロジの総称である。
たとえば仮想メモリというテクノロジにより、物理的なハードウェアのメモリ容量を気にせずにアプリケーションソフトウェアを開発し、動作させることができるようになった。これによりアプリケーション開発プロセスの柔軟性は大きく向上した。仮想化テクノロジは決して新しい概念ではなく、ITの世界のあらゆる場所で過去から広く使われてきた。仮想化という言葉が使われていなくても実質的に仮想化に相当することもある。
とはいえ、今日、仮想化と言えば、サーバ仮想化そしてストレージ仮想化を指すことが多い。通常、サーバ仮想化とは1台の物理サーバを分割して複数の仮想サーバ(論理サーバ)があるかのように見せるテクノロジを指す。これに対し、ストレージ仮想化とは複数の物理的ストレージを組み合わせてひとつの巨大な仮想ストレージ空間を見せるテクノロジを指すことが多い。サーバの場合とストレージの場合で仮想化の意味するところが逆になっているが、ソフトウェアに対して物理ハードウェアではなく仮想ハードウェアを見せることで柔軟性を向上するという点では両者は共通している。
仮想化テクノロジ普及の必然性
今日の企業コンピューティングの世界では、サーバ仮想化とストレージ仮想化はほぼ当たり前のテクノロジになりつつある。なぜ普及が急速に進んできたのだろうか。最大の理由はシステム管理に対する負荷軽減の要請が増してきた点にある。
仮想化テクノロジを採用すれば、システムの柔軟性を向上でき、管理負荷を大きく削減することができる。たとえば複数の小規模なサーバを多数運用する形態では、どのアプリケーションをどのサーバで動かすかという管理負担が大きくなるが、仮想化テクノロジを使用することで、大型サーバ上で複数のOSを稼働し、アプリケーションの集約が可能になる。単なる物理サーバの組み合わせとは異なり、仮想サーバ間でハードウェア資源の融通を自由にできるようになることから、ハードウェア資源を有効活用しつつ、高いサービスレベルを提供できるようになる。
その一方で、仮想化テクノロジを採用することによりシステムのオーバーヘッドが増すという課題がある。要するに、仮想化テクノロジを採用するか否かの意思決定はこの課題と前述した柔軟性向上というメリットとの間のトレードオフということになる。
そして、このトレードオフのバランスは明らかに柔軟性向上が重視される方向へと傾いてきている。ハードウェアの価格性能比向上が継続していることから多少のオーバーヘッドの増大はあまり大きな問題とならなくなりつつある。その一方で、情報システム全体の複雑性増加により、管理負荷の削減が急務となっている。もちろん、アプリケーションの中には効率性が最優先であり仮想化によるオーバーヘッドが望ましくないものも存在する。しかし、全体的に言えばサーバそしてストレージにおける仮想化の普及は今後も進展していくだろう。