仮想マシン(Virtual Machine)

仮想マシン(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を試したり、本番とは別の検証環境を用意したりする用途でも活躍します。代表的なソフトにVMwareHyper-V、VirtualBoxなどがあります。

あわせて知っておきたい用語

  • ハイパーバイザー
    物理マシンの資源を分け、仮想マシンを動かす土台となるソフトウェアです。
  • コンテナ
    アプリの実行環境を軽く区切る技術。仮想マシンより軽量で起動が速いのが特徴です。
  • ゲストOS
    仮想マシンの中で動くOS。土台側のOSはホストOSと呼ばれます。
  • クラウド
    インターネット越しにコンピューター資源を借りる仕組み。仮想マシンが基盤に使われます。
  • オートスケーリング
    負荷に応じて仮想マシンなどの数を自動で増減させる仕組みです。

コメント

タイトルとURLをコピーしました