2014年2月11日 星期二

各種虛擬化名詞與技術

Hypervisor
wiki: A hypervisor or virtual machine monitor (VMM) is a piece of computer software, firmware or hardware that creates and runs virtual machines

VMware ESXi 是一個 hypervisor, Citrix Xen 是一個 hypervisor


Type 1 and Type 2
Hypervisor 可以粗略分成兩種 type, type1 和 type 2

VMware ESXi 是 type 1 hypervisor, VMware workstation 是 type 2 hypervisor



早期的 X86 架構中, guest OS 發出的一些特權指令無法被 hypervisor 攔截到,
但是 hypervisor 必須要攔截到這些特權指令並且做檢查, 如果沒問題才能執行
為了解決這問題衍伸出三種虛擬化技術

Full-Virtualization
全虛擬化, 利用 binary translation 將特權指令轉為完全等價的某些指令的組合
不需要修改 guest OS kernel code 就可以讓 guest OS 跑在 hypervisor 上

VMware ESXi 是 full-virtualization

Para-Virtualization
半虛擬化, 在 OS kernel code 中植入 hypercall 讓執行流程主動進入 hypervisor 以檢查
特權指令

需要修改 guest OS kernel code 才可以讓 guest OS 跑在 hypervisor 上

Citrix 的 Xen 和 Microsoft 的 Hyper-V 是 para-virtualization

這個架構中除了 guest OS 外還會有一個特別的 OS, 這個特別的 OS 是用來讓系統管理員
管理 hypervisor

Hardware-Assisted-Virtualization
硬體協助的虛擬化 Intel VT-x 與 AMD-V技術, 兩大家 CPU 廠商修改了處理器架構, 讓
guest OS 發出的特權指令可以被 hypervisor 攔截到, 使用這種新型處理器後,  全虛擬化
和半虛擬化其實沒甚麼差異了


雖然 hypervisor 可粗略分成 type 1 和 type 2, 但這並不是很清楚的分類, 例如
KVM(Kernel-based Virtual Machine)
它是一個 linux kernel module, 當載入後可以讓 linux OS 成為 type 1 的 hypervisor, 
但是 linux 本身也是一個 OS, 所以它同時擁有 type 1 和 type 2 的性質

Reference:
http://wiki.weithenn.org/cgi-bin/wiki.pl?VMware_%E7%B0%A1%E8%BF%B0
http://www.hwazone.com.tw/httpdoc/index.php/2011-04-16-05-10-10/virtualization
http://en.wikipedia.org/wiki/Hypervisor

沒有留言:

張貼留言