コンテンツにスキップ

仮想化

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. 仮想化とは

1個の物理サーバー上で、仮想的なシステム (ハードウェア、ソフトウェア) を稼働させる技術のこと。


02. ハードウェア仮想化

ハードウェア仮想化とは

物理サーバー上で、物理サーバーのハードウェアとソフトウェアの要素を完全に仮想化する。


ホスト型仮想化

▼ ホスト型仮想化とは

ホスト型仮想化

物理サーバーのホスト上で、ハードウェアとソフトウェアの要素が完全に仮想化されたサーバー (マシン) を作成する。

▼ Provider例

  • Oracle VM VirtualBox
  • VMware Workstation


ハイパーバイザー型仮想化

▼ ハイパーバイザー型仮想化とは

ハイパーバイザー型仮想化

物理サーバーのBIOSから起動したハイパーバイザー上で、ハードウェアとソフトウェアの要素が完全に仮想化されたサーバー (マシン) を作成する。

この時、ホストは使用しない。

▼ Provider例

  • VMware vSphere Hypervisor
  • Xen
  • KVM


02-02. OS仮想化

OS仮想化とは

物理サーバー上で、ソフトウェアであるOSを部分的に仮想化しつつ、各仮想環境でハードウェアは共有する。


コンテナ型仮想化

▼ コンテナ型仮想化とは

コンテナ型仮想化

物理サーバーのホスト上で、OSのユーザー空間を分割し、独立した各ユーザー空間上でコンテナを作成する。

▼ Provider例

  • Docker
  • Containerd
  • Podman
  • LXC
  • OpenVZ


03. 各仮想化の性能の比較

セットアップの速さの違い

ホスト型とハイパーバイザ型では、ハードウェア要素 (例:CPU、メモリ、ストレージ) とソフトウェア (例:ゲストOS) を仮想化する必要がある。

一方で、コンテナ型では、OSのユーザー空間を分割するだけのため、仮想化のセットアップが速い。

仮想化の比較


処理速度の違い

▼ オーバーヘッドの小ささ

ゲストOS上のアプリケーションを操作する場合、ホスト型とハイパーバイザ型では、ハードウェアやハイパーバイザーを経由する必要がある。

この分だけ、時間 (オーバーヘッド) を要する。

一方で、コンテナ型では、各コンテナがホストとカーネルを共有するため、オーバーヘッドが小さい。

仮想化の比較

▼ オーバーヘッドの比較

sysbenchというベンチマークツールを使用して、CPU・メモリ・I/O処理に着目し、物理サーバー・コンテナ型仮想化 (Docker) ・ホスト型仮想化 (VirtualBox) の性能を比較すると、コンテナ型であるDockerは最もオーバーヘッドが小さい。

overhead