microVM
デバイスモデルを最小限まで削ぎ落とした軽量な仮想マシン、およびそれを実現する仕組み。伝統的なVMが持つカーネルレベルの分離を保ちつつ、コンテナ並みの起動速度・リソース効率を狙う。 #virtualization
特徴
- 起動時間はミリ秒〜数百ミリ秒程度(伝統的なVMは秒〜分単位)
- 1台あたりのメモリオーバーヘッドが数MiB程度と小さい
- レガシーなデバイスエミュレーション・幅広いハードウェアサポートなど、クラウドワークロードに不要な機能を削ぎ落とし、アタックサーフェスと起動時間を削減している
- 各microVMは専用のカーネル・専用のメモリ空間・仮想化されたデバイスを持ち、コンテナのようなカーネル共有はしない
なぜ起動が速いか
Firecrackerを例にすると、主に3つの要因が重なっている。
- BIOS・ブートローダーを省略した直接カーネルブート — Linuxカーネル自体はBIOS/ブートローダーを必須としない。「64-bit Linux Boot Protocol」を使い、16-bitリアルモードからではなくカーネルのprotected-modeエントリポイントへ直接ジャンプする。ACPIテーブルもカーネル起動に必要な最小限しか用意しない。
- 最小限のデバイスモデル — USB・PCIバス・レガシーデバイスなど不要なハードウェアエミュレーションを排除。Firecrackerが提供するデバイスは実質5種類のみ(virtio-net、virtio-block、virtio-vsock、シリアルコンソール、最小限のキーボードコントローラ)。
- ミニマルなVMMコード — 汎用ハイパーバイザーが持つ幅広いハードウェアサポートのコードパスを持たないため、実行すべきコード量自体が少ない。
これらにより、Firecrackerでは起動125ミリ秒未満・メモリオーバーヘッド5MiB未満を実現している。Hypemanのstandby/restoreのような、起動済みVMのスナップショットからの復元(ミリ秒単位)を使えばさらに短縮できる。
代表的な実装
- Firecracker — AWSが開発。AWS Lambda/Fargateを支える
- Cloud Hypervisor — Intel主導、Rust製。rust-vmmプロジェクトの成果を活用
用途
サーバーレス実行環境やAIエージェント向けサンドボックスなど、マルチテナントで多数の短命なワークロードを高速に隔離・起動する必要がある場面で採用される。HypemanはFirecracker/Cloud Hypervisor/QEMU/Apple Virtualization.frameworkを切り替え可能な形で統一的に扱うランタイム。
コンテナ向け軽量VM技術の中での位置づけ
コンテナ向け軽量VM技術群の土台となる概念そのもの。
出典
- What is a microVM? - Koyeb
- What is AWS Firecracker? The microVM technology, explained | Northflank
- firecracker/FAQ.md at main · firecracker-microvm/firecracker
- How AWS Firecracker works: a deep dive – Unixism
- firecracker/docs/rootfs-and-kernel-setup.md at main · firecracker-microvm/firecracker