クラウドコンピュート

仮想化 かそうか

仮想化サーバー仮想化ネットワーク仮想化ストレージ仮想化コンテナ抽象化
仮想化について教えて

簡単に言うとこんな感じ!

物理リソースをソフトウェアで「論理的に分割・抽象化」する技術のこと。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中心」から「コンテナ中心」へとシフトしました。


仮想化レイヤーの俯瞰

クラウドにおける仮想化の全体像 アプリケーション層(コード・データ) コンテナ / サーバーレス(アプリ仮想化) 仮想マシン / ゲストOS(サーバー仮想化) ハイパーバイザー(仮想化基盤) VPC / VLAN(ネットワーク仮想化) EBS / S3(ストレージ仮想化) 物理ハードウェア(サーバー・NIC・ストレージ)

関連する規格・RFC

規格内容
IEEE 802.1QVLANによるネットワーク仮想化
VXLAN(RFC 7348)ネットワーク仮想化の拡張技術
OCI(Open Container Initiative)コンテナ仮想化の標準仕様
DMTF OVF仮想マシンのポータブルなパッケージ形式

関連用語