仮想化とは何か

仮想化(virtualization)とは、1台の物理的なサーバー(ハードウェア)の上に、ソフトウェアの力で複数の独立した実行環境を作り出す技術です。仮想化によって作られる、独立したOSが動作する実行環境の1つ1つを仮想マシン(VM:Virtual Machine)と呼びます。

物理サーバーを1台導入するたびにOSを1つしか動かせない、という従来の使い方に比べ、仮想化を使うことで、1台の物理サーバー上で複数のOS・アプリケーションを同時に、互いに独立した状態で動作させられます。これにより、サーバーのハードウェア資源をより効率的に活用でき、サーバーの台数・設置スペース・電力消費を抑えられるといった利点があります。

ハイパーバイザー

物理サーバーのCPU・メモリ・ストレージといったハードウェア資源を、複数の仮想マシンに割り当てて管理するソフトウェアをハイパーバイザー(hypervisor)と呼びます。ハイパーバイザーには、大きく分けて2つのタイプがあります。

Type 1(ベアメタル型)

物理サーバーのハードウェアに近い層で動作するハイパーバイザーです。一般にType 2に比べてオーバーヘッドが小さくなる傾向があり、データセンターや企業の本番環境で広く使われる方式です。Linux KVMはLinuxカーネルの仮想化機能として動作しますが、一般にType 1に分類されます。

  • 代表例:VMware ESXi、Microsoft Hyper-V、Linux KVM 等

Type 2(ホスト型)

WindowsやmacOSなど、既存のホストOSの上に、通常のアプリケーションと同様にインストールして動かすハイパーバイザーです。ホストOSを経由するため、Type 1に比べるとオーバーヘッドが大きくなりますが、既存のPC環境に手軽に導入できる手軽さがあり、開発・検証環境や学習用途でよく使われます。

  • 代表例:VMware Workstation、Oracle VirtualBox 等

仮想スイッチ(vSwitch)

複数の仮想マシンが1台の物理サーバー上に同居する環境では、仮想マシンどうし、および仮想マシンと外部の物理ネットワークとの通信を中継する仕組みが必要です。この役割を果たすのが、ハイパーバイザーの中にソフトウェアとして実装される仮想スイッチ(vSwitch:Virtual Switch)です。

仮想スイッチは、物理的なL2スイッチと同様に、仮想マシンの仮想NIC(vNIC)を接続するポートを持ち、VLANの割り当てなど、物理スイッチに近い機能を提供する場合もあります。仮想サーバー環境と物理ネットワーク環境をつなぐ際は、仮想スイッチがホストの物理NICをアップリンクとして利用し、その物理NICのポートを実際の物理スイッチのポートへ接続します。

仮想マシンとコンテナの違い(概要)

仮想化に関連する技術として、近年はコンテナ(container)もよく使われますが、両者の仕組みは異なります。


補足

  1. コンテナ技術の代表例にDockerがありますが、コンテナ自体の詳細な仕組み・オーケストレーション(Kubernetes等)は、CCNA 200-301の出題範囲では概要レベルの理解にとどめられており、深い実装知識までは求められていません。 ↩