仮想化 かそうか
仮想化サーバー仮想化ネットワーク仮想化ストレージ仮想化コンテナ抽象化
仮想化について教えて
簡単に言うとこんな感じ!
物理リソースをソフトウェアで「論理的に分割・抽象化」する技術のこと。1台のサーバーを複数のVM、1台のスイッチを複数の論理ネットワーク、物理ストレージを仮想ディスクに見せる——これらすべてが「仮想化」だよ。
仮想化とは
仮想化(Virtualization)とは、物理的なハードウェアリソースをソフトウェアによって抽象化し、複数の論理的なリソースとして利用できるようにする技術の総称です。
仮想化の本質は「物理的な制約を取り払い、柔軟にリソースを利用する」ことです。1台の物理サーバーを10台の仮想サーバーに見せる、1つの物理ネットワークを複数の論理ネットワークに分ける、物理的に分散したストレージを1つの大きなディスクに見せる——これらすべてが仮想化の応用です。
クラウドコンピューティングは仮想化技術なしには実現できません。AWS・Azure・GCPはすべて、仮想化技術を使って物理インフラを多数の顧客が利用できるサービスに変換しています。
仮想化の種類
| 種類 | 説明 | 代表技術 |
|---|---|---|
| サーバー仮想化 | 物理サーバーを複数の仮想マシンに分割 | KVM, VMware ESXi, Hyper-V |
| ネットワーク仮想化 | 物理ネットワークを論理的に分離・構成 | VLAN, VPC, SDN, VXLAN |
| ストレージ仮想化 | 物理ストレージを抽象化・プール化 | SAN, NAS, EBS, S3 |
| デスクトップ仮想化 | デスクトップ環境をサーバー上で仮想化 | VDI(Citrix, VMware Horizon) |
| アプリケーション仮想化 | アプリを環境から切り離してパッケージ化 | Docker(コンテナ) |
| コンテナ化 | OSを共有しプロセス単位で分離 | Docker, containerd |
仮想化レベルの違い
| 技術 | 分離単位 | オーバーヘッド | 起動速度 |
|---|---|---|---|
| 仮想マシン | OS単位 | 中 | 秒〜分 |
| コンテナ | プロセス単位 | 小 | ミリ秒〜秒 |
| unikernel | 関数単位 | 極小 | ミリ秒 |
| サーバーレス | 関数単位 | なし(利用者から見て) | ミリ秒 |
歴史と背景
仮想化の概念は1960年代のIBMメインフレームに始まります。CP-40/CMS(1967年)が最初の本格的な仮想化システムです。しかし、x86 PCの時代(1980〜90年代)は仮想化が困難で、サーバー1台=OS1つが当たり前でした。
1998年にVMwareがx86向けの商用仮想化を実用化し、2000年代に企業のサーバー統合ブームが起きました。2008年にAmazonがEC2、同年にLXCコンテナ技術が登場。2013年にDockerがコンテナをオペレーター向けに使いやすくし、仮想化の形態が「VM中心」から「コンテナ中心」へとシフトしました。
仮想化レイヤーの俯瞰
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| IEEE 802.1Q | VLANによるネットワーク仮想化 |
| VXLAN(RFC 7348) | ネットワーク仮想化の拡張技術 |
| OCI(Open Container Initiative) | コンテナ仮想化の標準仕様 |
| DMTF OVF | 仮想マシンのポータブルなパッケージ形式 |
関連用語
- 仮想マシン — サーバー仮想化の基本単位
- ハイパーバイザー — サーバー仮想化を実現するソフトウェア
- VMware vSphere・Hyper-V・KVM — 代表的なサーバー仮想化製品
- VPC — クラウドのネットワーク仮想化
- ライブマイグレーション — 仮想化によって実現する高度な機能