仮想マシン(Virtual Machine、VM)とは、1台の物理的なコンピューターの中に、ソフトウェアによって作り出された「もう一つのコンピューター」のことです。実際の機械ではなく仮想的に用意されたものですが、その中では本物と同じようにOSやアプリを動かせます。
現実世界でいえば、1つの建物の中を区切って作った複数の貸し部屋のようなものです。建物(物理マシン)は1つでも、中はいくつもの独立した部屋(仮想マシン)に分かれていて、それぞれの部屋で別々の住人(OS)が、お互いに干渉せず暮らせます。
仮想マシンの仕組み
仮想マシンを作るには、ハイパーバイザーと呼ばれるソフトウェアを使います。ハイパーバイザーは、物理マシンが持つCPU・メモリ・ストレージといった資源を切り分け、それぞれの仮想マシンに割り当てます。各仮想マシンは、割り当てられた資源を使って独自のOS(ゲストOS)を動かします。仮想マシンからは、まるで自分専用のコンピューターがあるかのように見えます。
物理マシンとの違い
実際の機械である物理マシンと、ソフトで作られた仮想マシンには、それぞれ長所があります。
| 種類 | 特徴 | ひとことで言うと |
|---|---|---|
| 物理マシン | 実在するコンピューター。性能をフルに使えるが、台数を増やすには機械そのものが必要になる。 | 本物の建物 |
| 仮想マシン | ソフトで作った仮想のコンピューター。1台の中に複数作れ、コピーや移動も手軽。性能は割り当て分に依存する。 | 建物の中の貸し部屋 |
仮想マシンのメリット
1台のマシンを仮想的に分けることで、さまざまな利点が生まれます。
- 資源を有効活用できる
1台の高性能なマシンを複数の用途に分けて使え、無駄が減ります。 - 独立していて安全
1つの仮想マシンで不具合が起きても、ほかの仮想マシンには影響しにくいです。 - 作成・複製が手軽
必要なときにすぐ用意でき、丸ごとコピーしたり別の物理マシンへ移したりできます。 - 異なるOSを同居できる
1台のマシンの中で、WindowsとLinuxなど別々のOSを同時に動かせます。
コンテナとの違い
仮想マシンと似た技術にコンテナがあります。仮想マシンは各部屋にOSまるごと(ゲストOS)を用意するのに対し、コンテナはOSの一部を共有し、アプリの実行に必要な部分だけを軽く区切ります。そのため、コンテナは起動が速く軽量ですが、仮想マシンはOSごと独立しているぶん分離性が高い、という違いがあります。
仮想マシンが使われる場面
仮想マシンは、サーバーを効率よく運用したいデータセンターや、AWS・Azureといったクラウドサービスの基盤として広く使われています。開発者が手元のパソコンで別のOSを試したり、本番とは別の検証環境を用意したりする用途でも活躍します。代表的なソフトにVMware、Hyper-V、VirtualBoxなどがあります。

コメント