仮想化とは
仮想化(Virtualization)とは、物理的なIT資源(CPUやメモリ、ディスクなど)をソフトウェアの力で分割したり統合したりして、異なる構成に見せる技術です。最も一般的な例は、1台の高性能な物理サーバー上で、複数の仮想マシン(VM)を独立して同時に動かす「サーバー仮想化」です。これにより、機器を効率的に使え、導入コストや管理の手間を大幅に削減できます。
具体例
大きな一軒家を壁で区切って「シェアハウス」にし、複数の住人が個室で独立して生活する様子に似ています。住人同士はお互いの部屋の中身を見られず、独立して暮らせます。サーバー仮想化を実現する制御ソフトを「ハイパーバイザ」と呼びます。
+--------------------------------------------------+
| [仮想マシンA (Linux)] [仮想マシンB (Windows)] |
+--------------------------------------------------+
| [ ハイパーバイザ ] |
+--------------------------------------------------+
| [ 物理サーバー (ハードウェア) ] |
+--------------------------------------------------+\nもう少し詳しく
仮想化(Virtualization)は、1つの物理的なハードウェアを、論理的(ソフトウェア的)に複数に分割して利用したり、逆に複数の物理ハードウェアを1つに統合して見せたりする技術の総称です。ITインフラの効率化と柔軟性を飛躍的に高める技術であり、現代のクラウドコンピューティングの基盤となっています。
最も代表的な「サーバーの仮想化」には、主に2つの方式があります。
- ホストOS型:物理サーバーにインストールされた通常のOS(WindowsやmacOSなど:ホストOS)の上で、仮想化用のアプリケーション(VMware WorkstationやVirtualBoxなど)を動かし、その中で仮想マシン(ゲストOS)を動かす方式です。手軽に導入できますが、ホストOSを経由する分、処理のオーバーヘッド(無駄な負荷)が大きくなります。
- ハイパーバイザ型(ベアメタル型):ハードウェアの上に直接「ハイパーバイザ(VMware ESXiやHyper-Vなど)」と呼ばれる仮想化専用の薄い制御ソフトウェアをインストールし、その上で仮想マシンを動かす方式です。ホストOSが存在しないためオーバーヘッドが少なく、高性能を発揮できるため、企業のサーバー環境やクラウドデータセンターではこの方式が主流です。
サーバー以外にも様々な仮想化技術があります。
- ストレージ仮想化:複数の物理ストレージを束ねて、1つの巨大な仮想ストレージプールとして扱う技術です。
- ネットワーク仮想化(SDN / NFV):ルーターやスイッチなどのネットワーク機器の機能をソフトウェアで実現し、物理的な配線を変更することなくネットワーク構成を柔軟に変更できる技術です。
- デスクトップ仮想化(VDI):個人のパソコン環境をサーバー上で仮想的に動かし、画面情報だけを手元の端末に転送する技術です。
仮想化の大きなメリットの1つに「ライブマイグレーション」があります。これは、仮想マシンを稼働状態のまま、別の物理サーバーへ移動させる技術です。物理サーバーのメンテナンス時にもシステムを停止させる必要がなくなります。
試験でのポイント
基本情報技術者試験では、「ホストOS型」と「ハイパーバイザ型」の違いがよく問われます。物理サーバー上にOSがあるかないか(OSの上にソフトを乗せるか、直接ハードウェアに乗せるか)で判別してください。
また、最近では仮想マシンよりもさらに軽量な仮想化技術である「コンテナ型仮想化(Dockerなど)」との違いも出題されます。仮想マシンは「それぞれが独立したOSを丸ごと起動する」のに対し、コンテナは「ホストOSのカーネル(核)を共有し、アプリケーションの実行環境だけを隔離する」ため、非常に軽量で起動が速いという違いを押さえておきましょう。
関連する用語
仮想マシンを制御する基盤ソフトウェアである ハイパーバイザ や、OSを共有して軽量に動く コンテナ、無停止で仮想マシンを移動させる ライブマイグレーション などの技術用語と合わせて理解を深めてください。