仮想化とは?
仮想化とは非常に一般的な用語で、仮想的な何かを提供しさえすれば仮想化を行っていると言うことができますが、最近ではバーチャルマシンと呼ばれる計算機の仮想化のことを指すことが増えてきました。バーチャルマシンは計算機が持つCPUやメモリなどのハードウェアを仮想化したもので、その上でオペレーティングシステム(OS)やアプリケーションを動かすことができます。バーチャルマシンのためのソフトウェアとしてはXenやVMwareが有名です。
計算機を丸ごと仮想化するバーチャルマシンは非常にオーバヘッドが大きかったため、計算機の性能が低い間はあまり実用的な速度では動作しませんでした。そのため、少し前まではOSによるハードウェアの擬似的な仮想化が一般的でした。1台の計算機の上で複数のアプリケーションを動かすことができるのはOSによる仮想化のおかげです。
しかし、最近ではインテル社のVTやAMD社のSVMなどのCPUによる仮想化支援のおかげもあって、バーチャルマシンは十分に実用的な速度で動作するようになってきています。
バーチャルマシンの歴史
バーチャルマシンの歴史は古く、60年代には既にIBMのメインフレームで実現されています。当時のバーチャルマシンを使う主な目的の1つは互換性でした。メインフレームの機種間には互換性がなかったため、古いメインフレーム上で動作しているアプリケーションを新しいメインフレーム上で動作させることはできませんでした。そこで、古いメインフレーム用のバーチャルマシンを提供して、その上で古いOSとアプリケーションを動作させていました。このようにすることで、アプリケーションを書き直すコストをかけずに、より高速な新しいメインフレーム上で実行を行うことができます。
また、当時のメインフレームは非常に高価なものでしたので、1台のメインフレーム上で業務だけでなく、その他の用途にも使うという目的もありました。例えば、アプリケーションをバージョンアップする際には新しく作成したバーチャルマシン上で行えば、その間の業務を停止させなくて済みます。
バーチャルマシンを用いたサーバー統合
近年では安価なPCの性能が大幅に向上したため、PC上でバーチャルマシンを用いてサーバー統合が行われるようになってきています。従来、サーバー機の稼働率は平均すると20%程度しかありませんでした。稼働率の低いサーバーをバーチャルマシンを用いて1台のサーバー機に集約することで稼働率を上げることができます。サーバーを二重化している場合には、普段は使われない待機サーバーを他のサーバーと一緒に動作させておくことで無駄を省くことができます。
従来のサーバー統合はOSレベルで行われることが多かったのですが、バーチャルマシンを使うメリットは何でしょうか?
まず、メインフレームの時代と同様に、古いOSを動作させられるという点が挙げられます。1台のサーバー機で複数のOSを動作させることもできます。OSレベルでのサーバー統合では1つのOSに統一する必要があるため、2種類以上のOSを使っていた場合にはうまく移行できない可能性があります。
また、既存のサーバー機からそのままバーチャルマシンのイメージを作成することができるため、サーバー統合が容易に行えるというメリットもあります。この場合はバーチャルマシンのネットワークの設定に注意を払うだけで十分です。それに対して、OSレベルのサーバー統合では対象となるアプリケーションが必要とするファイルだけを選び出さなければなりません。さらに、統合先のサーバー機でアプリケーション同士が干渉しないように注意深く設定を行う必要があります。