AWS Firecracker 特色, 以及 Linux Virtualization 及 Container 入門理解
AWS
Firecracker
的 Papers 值得推薦給對 Linux Virtualization 及 Container 入門有興趣的人閱讀。
Linux containers 及 virtualizations 差別
可看出 Firecracker
為了 security 及 compatibility 的權衡,選擇採用 virtualization 而不是 container 的原因。
Isolation Options 的三大類
1. Linux Containers
LXC
和 Docker
屬於此類,也提到為了進一步解決 container 下的 security 及 compatibility 權衡,Google 在此基礎上推出了 gvisor
。這與 Firecracker
基於 virtualization 之上有所不同。
2. Language-Specific Isolation
Java Virtual Machine
(JVM
) 和 V8
屬於此類。
3. Virtualization
KVM
及 QEMU
屬於此類。以及為了解決啟動時間等問題的 Unikernel
也為此類。
主角 Firecracker
採用此類方案。Firecracker
基於 KVM
,但用更安全的程式語言及更少的程式碼 (more code = more bug) 來替換 VMM,所以這裡自然就會提到 Rust
。Firecracker
包含大約 5 萬行的 Rust
程式碼 (僅佔 QEMU
的 4%)。
類似 Firecracker 的其他方案
提到主角 Firecracker
與 Kata Containers, Intel’s Clear Containers 及 NEC’s LightVM 都是 hypervisor-based virtualization,且挑戰類似的領域。
但其他方案不是基於 QEMU
/KVM
就是 Xen
。而 Firecracker
只想基於 KVM
而重寫 VMM 以完全取代 QEMU
,達到更安全、程式碼更少的目的。
總結
本篇 Papers 除了能認識基礎 Firecracker
外,也引入門了 Isolation Options,更說明了各 Isolation Options 間的差異。對整體通盤的瞭解有所助益。
資料來源
Firecracker: Lightweight Virtualization for Serverless Applications