【ざっくり仮想化】
仮想化
仮想化は、CPUやメモリ、ストレージ等のハードウェアリソースをユーザーから隠蔽し、代わりとなる論理的なリソースを提供する技術
- 仮想化される個々のハードウェアリソース
- 仮想CPU
- 仮想メモリ
- 仮想ネットワーク ...etc
1台のコンピュータマシンを仮想化した場合、それらを仮想マシン(VM: VirtualMachine) 等と呼ぶ。
仮想マシンの活用用途
- 1台の物理マシン上で、複数の仮想マシンを動かすことができる
- ユーザーからは物理マシンのように見え、表面的な違いはない(透過的性質)
- 物理マシンのハードウェアリソースが許す限り、何台でも仮想マシンを作成することが可能
- 仮想マシンは複製や移行が容易なため、システムの柔軟性と拡張性を向上させる
- 複数の物理マシンで構成していたシステムを仮想マシンに置き換えることで、物理マシンを集約できる
仮想化ソフトウェアの実装方式
一般的な3つ
- ホストOS型
- ハイパーバイザー型(ベアメタル型)
- コンテナ型
ホストOS型
ホストOS型は、物理マシンにOSをインストールし、そのOS上で仮想化ソフトウェアと仮想マシンを動かす。
- 物理マシン上で動作するOSをホストOS
- 仮想マシン上で動作するOSをゲストOS
※ ゲストOSとホストOSを使うので重くなりがち
ハイパーバイザー型(ベアメタル型)
ハイパーバイザー型(ベアメタル型)は、ホストOSを必要としない仮想化方式。
ハイパーバイザーと呼ばれるソフトウェアを物理マシンに直接インストールし、その上で仮想化ソフトウェアと仮想マシンを動かす。
※ ホストOSを介さないので高速でリソース効率が良いのでパフォーマンスが高い。仮想環境の構築に限られる。
コンテナ型
コンテナ型は、近年急速に普及した仮想化方式。
ホストOS型と同じように、物理マシンにインストールされているOS上でコンテナエンジンを動かし、ゲストOSを使わずにコンテナイメージを作成し、仮想環境(コンテナ)を動かす。
※ コンテナエンジンという、仮想化ソフトウェア
ホストOS型との大きな違いとして、コンテナはコンテナ間でホストOSを共有しており、仮想環境(コンテナ)にゲストOSや仮想ハードウェアが含まれない。
1つのOSで動くため高速。コンテナイメージのコピーが容易なので手軽にコンテナを動かすことができる。コンテナのデプロイ時はOSの再起動が不要なのでデプロイも高速である。
簡単まとめ
ホストOS型
- 物理マシンの上にホストOS、ホストOSの上に仮想化ソフトウェア、仮想化ソフトウェアの上にゲストOS
ハイパーバイザー型(ベアメタル型)
- 物理マシンの上にハイパーバイザー、ハイパーバイザーの上にゲストOS
※ ホストOS型のホストOSと仮想化ソフトウェアは、ハイパーバイザー型のハイパーバイザー。
コンテナ型
- 物理マシンの上にホストOS、ホストOSの上にコンテナエンジン、コンテナエンジンの上にコンテナイメージ
※ ホストOS型の仮想化ソフトウェアは、コンテナ型のコンテナエンジン。ホストOS型のゲストOSは、コンテナ型のコンテナイメージ。