仮想化とは?
実在するIT資源を論理的に異なる資源であるかのように認識させる技術である。
仮想化できる資源はサーバー、デスクトップ、ストレージ、ネットワークがある。今回はサーバの仮想化について説明する。
サーバーの仮想化とは?
1台の物理サーバーで複数のOSを使用できること。
通常は、1つのサーバーで1つのOSしか動かせないが、仮想化することで複数の別のOSを動かすことが出来る。
例えば、windowsOSのPCをサーバーとすると、macOSとLinux系のcentoOSの2つのOSを仮想化で構築できる。
仮想化は主に3種類ある。
1. ホスト型仮想化システム
仮想化アプリケーションをホストOSと呼ばれる物理マシン上で動作させる。
既存のハードウェア内にあるWindowsやMacOSなどのOSを上に仮想化ソフトウェアをインストールする。
ホスト型の仮想化ソフトウェアの製品はOracle VM VirtualBox
などがある。
2. ハイパーバイザー型仮想化システム
ハードウェアの上にハイパーバイザーと呼ばれる仮想環境を構築するためのアプリケーションを利用する。
ホストOSを使用せずに、仮想サーバーの構築が可能。
ハイパーバイザーの製品はHyper-VやvSphereなどが挙げられる。
3. コンテナ型
ホストOS上にコンテナ型仮想化ソフトウェアをインストールし、コンテナ上でアプリケーションを構築することができる。そのため、ゲストOSは不要となり、CPUやメモリ、ストレージなどのリソースも不要となり、動作速度が速い。
つまりコンテナ上で構築されたアプリケーションはすべて直接ホストOSによって起動される
直接ホストOSに依存するため、ストOSに未対応のアプリケーションを起動できない。
例えば、OSがMacOSの場合、MacOSに未対応なアプリケーションを構築できないということ。
コンテナ型仮想化ソフトウェアの製品はDockerがある。
クラウドコンピューティング(クラウド)との違い
現在ではクラウドでアプリケーションを構築するのが主流になりつつある。
このクラウドも仮想化技術をもとに構築されている。ただ、異なる点がある。
上記で挙げた3種類の仮想化サーバはPC(物理サーバ)上で構築されている。
クラウドはそれらと異なり、インターネット上に仮想環境を構築している。それぞれ特徴が異なり、開発に合った選択をする必要がある。
まとめ
ホスト型
- ホストOS上の仮想化マシンによって構築される
- ゲストOSに様々なOSをインストールができる
- 動作速度が遅く、リソースが必要となる
- 小規模な開発に向いている
ハイパーバイザー型
- ホストOSの代わりにハイパーバイザー上で仮想環境を構築
- 比較的に速度は速い
- 大規模開発に向いてる
コンテナ型
- ホストOS上の仮想化マシンによって構築される
- コンテナ上に構築
- ゲストOSが不要
- ホストOSに依存する
- 動作速度が速く、リソースの心配がない
まだ初学者のため、間違えているところがありましたらご指摘いただけると幸いです。
参考