和歌山のプログラミング・システム開発ならシステムキューブ
最近IT関連で、仮想化という言葉、仮想マシン、仮想サーバなどという言葉をよく耳にするかもしれません。
仮想化技術により、一台のコンピュータは、その中に複数のコンピュータが存在するかのように振る舞います。
パソコンで例えるなら、一台のパソコンの中にWindows7とWindows8、Windows10をインストールした3つのパソコンが独立して存在しているように見え、それぞれを個別に操作しアプリなどを立ち上げることができるようになります。
主にサーバの世界で、規模の大きいコンピュータのなかに複数のサーバーが存在して、それぞれが個別の役割(複数のWebサーバ、DBサーバなど)を果たすように使われることが多いです。
パソコンは大まかに切り分けると、機器、OS、アプリケーションの三つの層で動作しています。
機器はCPU、メモリ、ハードディスク、DVDドライブ、USBポート、電源など機械としてのコンピュータそのものです。
OSはアプリケーションの操作を受け取り、機器を認識し、電気的な信号を用いて制御し、応答を待ちます。
これらの機器がセットになったコンピュータをパソコンの上にソフトウェアで作り出したものが仮想機械、仮想マシンと呼ばれるものです。
仮想化はOSに仮想マシンを認識させ、機器を制御するための信号を仮想マシンが受け取り、仮想マシンが応答を返します。
OSから見れば、正しく認識でき、制御、応答してくるものがあれば、それを機器とみなし動作します。
仮想化ソフトウェアはCPUの演算、メモリの読み書き、ハードディスクの読み書きなどこれらの処理を、実機、物理的に存在するコンピュータに割り当てます。
仮想化ソフトウェアがハードディスクへの書き込みの処理を仮想マシンから受けた場合、実機のハードディスクへ書き込みが行われるまでにワンクッションを置くことになります。
その分、実機で直接動作するOSよりも動作の遅れが発生しますが、これを解消するためにハイパーバイザという技術も採用されています。
ハイパーバイザは仮想マシンが直接実機の機器へアクセスするための手法です。
仮想化のメリットとしては、機器を複数台メンテナンスせず、複数のサーバを運用することができるようになることです。
Webサーバ1、Webサーバ2、DBサーバ、3台のサーバが同時に動作していないと正常に動作しないシステムがあるとします。
これら3台のうち、1台でも故障になれば動作しなくなるのであれば、3台の非常に堅牢なサーバーを用意するか、それぞれにバックアップのためのサーバを運用して6台を動作させ続けなければならないことになります。
実際はもっと複雑ですが、ここでは単純な考え方を使います。
ここに3台分の処理能力を持つ高性能なサーバを用意し、それぞれ3つのサーバを仮想化して動作させるとすれば、バックアップ機を用意するとしても、運用に必要なコストは3分の1になります。
機器購入の初期費用も、ある程度は高性能なサーバーになりますので高くなりますが、それでも3台分の費用と比べると格段に安価になります。
このような形でWebサーバーのホスティングなどを提供するVPSなども、専用サーバーと価格差を強調できるのでレンタルサーバー運営企業がユーザー向けに提供しています。
開発などでも仮想化は便利に利用され、開発環境ごとに別々の仮想マシンを利用すれば、再インストールの手間を省いて全く別の環境を同じパソコンの上に作り出すことができます。