仮想化技術

仮想化とは

CPU、メモリ、ストレージ、通信回線など、コンピュータ資源を、物理的構成に拠らず分割したり統合したりすること。
サーバ仮想化
1台のサーバコンピュータをあたかも複数台のコンピュータであるかのように論理的に分割し、それぞれに別のOSやアプリケーションソフトを動作させる
ストレージ仮想化
複数のディスクをあたかも1台のディスクであるかのように扱い、大容量のデータを一括して保存したり耐障害性を高める

仮想化タイプ

ホスト型
ハイパーバイザー型
コンテナ型

ホスト型

OS上に仮想化用のソフトウェアをインストールし、この上で仮想マシンを稼働させる方式
(このソフトウェアもハイパーバイザと呼ばれる。(=ホスト型ハイパーバイザ)
ゲストOSと呼ばれるアプリケーションの1つとして動作するが、元OS(ホストOS)も動作させる為にリソースを多く消費する。
手軽なのでテスト用にクライアントの仮想化で使用される。
VMwarePlayer、VirtualBox等

ハイパーバイザー型

OSの下で稼働させるソフトウェア(仮想化OS)をインストールし、その上で複数のOS(ゲストOS)を同時に稼働させる方式
ホスト型におけるホストOSに該当するOSは無く、無駄なオーバーヘッドが無い。
ハードウェアに搭載されている資源(CPU、メモリ、ストレージ等)を各ゲストOSへ分割・割当する。
複数のサーバーを1台のハードウェアで稼働させる目的で使用される。
Xen等

コンテナ型

1カーネル上で単一のLinuxOSのプロセスを複数稼働させる仮想化方法。
各プロセスは同一のカーネル、同一のOSを利用する為にリソースの消費が少ない。
各プロセスは固有、他へ影響せず、全てrootで操作可能
OSのインストール等も不要で高速・軽量

Docker

コンテナ型仮想化ソフトウェア
インフラ環境がDockerfileとしてコード化されており
・環境の複製・移動が高速・容易
・環境の変更履歴を管理可能
・環境のアップロード・ダウンロードが高速・容易