仮想化のテクノロジを採用することで、ユーザーから見た複雑性が減少したり、物理的な制約から解放されるメリットが得らる。例えば、100台のサーバの管理を1人でするのは大変だが、仮想化によって論理統合された1台のサーバなら管理は楽になる。
または、内蔵されているディスクの容量が足りなくても、ネットワーク上のストレージを利用することによって、より大きなデータを格納できる。しかし仮想化はプログラムと物理資源の間で中間処理を行うので、何らかのオーバーヘッドを増加する。
さらに仮想化によってシステム内部の複雑性は増してしまう。これによって性能が劣化したり、障害の発生率が高まるリスクが生じる。仮想化を採用する場合はこれらのメリットとデメリットのトレードオフを決める必要がある。
仮想化の現状
現在、仮想化といえばVMwareなどによるサーバ仮想化への注目が高まっているが、仮想化はITスタックのそれぞれのエリアで存在している(図3)。
ネットワークでは、標準の通信プロトコルを利用した公衆網を利用して、専用線と同等な閉鎖性を確保することが挙げられる。たとえば、IP-VPN(Internet Protocol Virtual Private Network)などである。
ストレージでは、 ネットワークに接続されたディスクアレイ、テープドライブなどのストレージをあたかもひとつのストレージのように見せるのであるが、方式にはブロックレベルとファイルレベルがある。
現在、もっとも注目が高いのがサーバおよびOSの仮想化であるが、これには大きく分けて仮想マシン、論理パーティショニング、物理パーティショニングの3つの方式が存在している(図4)。
それぞれの方式によって一長一短があり、実際には利用目的に応じて方式を選択または、組み合わせて利用される。
DBMSは、クラスタ技術によって可用性とスケーラビリティーを向上させてきた。RDBMSのクラスタ機能の代表的な製品には、Oracleの「Oracle Real Application Clusters」があるが、これはデータベースから見て必要となる物理的な資源であるサーバ処理能力を仮想化によって集約したのであって、本来データベース仮想化とは異なる。
データベースの仮想化は物理的な資源ではないが、異なる複数のデータソースを仮想化して、アプリケーションから透過的なアクセスを実現することである。このように考えると、データベースの仮想化はミドルウェアによって提供されるフェデレーション機能であると言える。