2016年3月6日 星期日

裸機虛擬化(Bare-metal Hypervisor):以 Jailhouse hypervisor 為例

 

寫個作業,虛擬化相關的主題都還滿有趣的,不過暫時想不到能在自己的專案中有什麼應用XD





一、虛擬機器監視器(Hypervisor)


一般來說,虛擬機器 (VM) 架構由虛擬化層(Hypervisor layer)的位置加以區分有兩種典型的類別:

  • 裸機虛擬化(Bare-Metal) : 虛擬機管理程序直接運行在主機的硬體(如 CPU、記憶體、磁碟和網路介面)來控制硬體和管理客體作業系統上。
  • 主機式虛擬化(Host) : 虛擬機管理程序運行在傳統的作業系統上,就像其他電腦程式那樣運行。



[用心去感覺] 半虛擬化與全虛擬化 vs Hypervisor與主機式虛擬化

半虛擬化與全虛擬化指的是廠商在解決 x86 CPU 特權等級,運用不同的技術,解決敏感指令不能被虛擬化的問題,與 Bare-Metal 或 Hosted 安裝方式無關。




二、裸機虛擬化架構


Hypervisor 支援在裸機裝置上進行硬體層級的虛擬化。Hypervisor 軟體直接位於實體硬體和 OS 之間,而此虛擬化層就稱為 VMM 或 Hypervisor。

  • 微核心 Hypervisor :只包含基本和不變的功能 (例如實體記憶體管理和處理器排程)。 裝置驅動程式和其他可變的元件則在 Hypervisor 之外。
  • 整合型 Hypervisor :會實作上述所有功能,包括裝置驅動程式的功能。


也因此,微核心 Hypervisor 的 Hypervisor 程式碼大小比整合型 Hypervisor 小。 基本上,Hypervisor 必須能夠將實體裝置轉換成虛擬資源,專供部署的 VM 使用。




三、Jailhouse hypervisor


由德國西門子公司發起的一項以 GPLv2 釋出的輕量級虛擬化技術,沿用 Linux 核心的機制,得以在 Linux 以外,執行即時作業系統(RTOS)或裸機(bare-metal)環境(跑裸機環境要與linux合作)。


linux 早有許多虛擬化的工具,例如:KVM, VirtualBox, Xen, VMware, lguest, hobbyst Xvisor,而使用 Jailhouse 的特點是輕量且安全。

與其他虛擬化不同的是,Jailhouse 提出一個能夠隔離執行 (partitioning) 的 hypervisor,在工業控制與即時領域有需求。詳見:http://www.slideshare.net/jserv/realtime-linux (從 Page 103 開始看)
(感謝jserv的熱心回饋 : D)

安裝和設定:
https://github.com/siemens/jailhouse
https://ntuoss.hackpad.com/Jailhouse-hypervisor-for-x86_64-4ZGvEiCbKgU
https://ntuoss.hackpad.com/HW2-Jailhouse-Hypervisor-cC90xmupcmM


最後就可以跑囉~





References


雲端運算: 虛擬化類別
https://technet.microsoft.com/zh-tw/magazine/hh802393.aspx

wiki - Hypervisor
https://zh.wikipedia.org/wiki/Hypervisor

wiki - QEMU
https://zh.wikipedia.org/wiki/QEMU

關於 Hypervisor 的問與答
http://vlife.pixnet.net/blog/post/18754670-%E9%97%9C%E6%96%BC-hypervisor-%E7%9A%84%E5%95%8F%E8%88%87%E7%AD%94

透過Bare Metal玩Raspberry Pi
http://www.makezine.com.tw/make2599131456/bare-metalraspberry-pi











技術提供:Blogger.