顯示具有 virtualization 標籤的文章。 顯示所有文章
顯示具有 virtualization 標籤的文章。 顯示所有文章

2014年2月13日 星期四

VMWare ESXi host 的 WID 與 CID

VMware ESXi run 在實體機器與 guest OS 之間的中介層又叫 VMKernel


這是一個 linux based 的 micro kernel, 並且有提供 SSH 服務, 可以讓管理者 login 進去

當 login 進去後可以使用 ps command, 但是列表顯示的不是一般 linux system 的 PID, PPID
之類的欄位, 反而是沒聽過的 WID(World ID), CID(Cartel ID)

其實 WID 可以想像成是 PID, 因為 VMware 把 run 在 VMKernel 上的 process 稱作是 WORLD
所以 assign 給它的識別碼就稱為 World ID

一個 Virtual Machine 會由幾個 World 所組成, 在 VMware 叫做 Cartels, 所以屬於同一個 Virtual Machine 的 World 會有同一個 Cartel ID

Reference:
http://searchvmware.techtarget.com/definition/VMkernel
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1001101
http://www.experts-exchange.com/Software/VMWare/Q_27906573.html

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