BitVisor(VMM)
薄いVMMで、物理デバイスがぶら下がっている OSvも、薄い
OSv on BitVisor
OSv from Takuya Asada
カバーガラスとスライドガラス
OSv code readingをやってみて、ブートプロセスを見る
/scripts/run.py
Pythonスクリプト
このスクリプトを動かすと、VMMの上でOSvが動く
/scripts/run.py→Image Update→PXE Boot→IPMI→NetworkBoot
BitVisorはゲストにデバイスを直接触らせるけど、OSvは仮想マシン上で動かすことしか考えていないため、OSvに物理マシンのドライバが必要、と #kernelvm
— Fadis (@fadis_) October 18, 2014
ACPI workaround
実験環境が特殊で、NUMA12ノード、メモリ90GBくらい #kernelvm
— Hiraku Toyooka (@hiraku_wfs) October 18, 2014
物理マシンが遅いので起動が2分かかる
パフォーマンスOSb vs OSv
OSb 20.75 OSv 21
NIC埋め込み
- ちょっとごまかしてVirtioNICに見せかけることをやる
- Faking IDs
Virtio NICをBitVisorに実装。下はIntel PRO/1000 #kernelvm
— Hiraku Toyooka (@hiraku_wfs) October 18, 2014
Faking BARs
PRO/1000 IO spaceに入れる
NICを偽装する capabilityを偽装する
OSvはVirtioのNICを期待しているから、BitVisorにIntel NICをVirtio NICに偽装するラッパを実装する、と #kernelvm
— Fadis (@fadis_) October 18, 2014
いやVMMの本質ってそういうフックの塊だからBitVisorに限られた話ではないのでは。書きやすいのかも知れないが(よんだことないや)#kernelvm
— しゅううさん (@syuu1228) October 18, 2014
まとめ
- OSv on BitVisorでブート
- NICを偽装