Xen介紹:
xen是一個開放的源代碼虛擬機監視器,有劍橋大學研發。它打算在單個計算機上運行多達128個滿足特征的操作系統,操作系統必須進行顯示地修改("移植")以在Xen上運行(但是提供對用戶應用的兼容性)。這使得無需特殊硬件支持,就能達到高性能的虛擬化。
Xen由三部分組成:
第一部分:Xen Hypervisor,又稱虛擬機監控程序(Virtual Machien Monitor簡稱VMM),VMM工作原有linux系統內核位置,替代了linux系統內核,用于虛擬CPU、Memeory等;
第二部分:Xen Dom0,又稱特殊區域;為vmm提供硬件驅動程序,用于協助vmm驅動各個底層硬件,同時又為Xen DomU提供模擬IO等功能;由于特殊原因Linux-2.6.37以后的內核才支持Xen Dom0,建議大家在使用xen時使用linxu-3.0以后的內核;
第三部分:Xen DomU,非特權區域;實際生產中的操作系統
Xen虛擬技術分類:
(1)完全虛擬化:DomU中的各個硬件都是由VMM和Dom0虛擬和模擬實現;
(2)半虛擬化:DomU中的CPU、Memory有VMM模擬實現,IO等設備分為前端(Front)和后端(Back),前端工作在DomU中,而后端工作在Dom0中;
DomU中的網卡eth0與Dom0中的viif#中的設備對應,不再由Dom0模擬,這大大提升了IO性能
(3)借助于硬件設備的半虛擬化;例如Intel的vt-d技術
Xen Hypervisor分類:
(1)default/xm(Xen-4.1):需要依賴于xend守護進程
(2)defualt/xl(Xen-4.2):無須啟動xend服務進程
CPU虛擬化實現的方式:
(1)模擬(emulation): 純軟件方式,性能較差
(2)虛擬化(Virtualization):虛擬化由分為兩類
第一類:完全虛擬化
BT: VMware軟件實現的技術;稱為二進制翻譯
HVM: 硬件輔助的虛擬化
第二類:半虛擬化
Memroy虛擬化實現的方式:
在進程角度看memory是線性地址空間,而站在內核角度看memroy是物理地址空間;
虛擬化實現方式:
Intel:Intel的Extended Page Table技術,簡稱為EPT
AMD: AMD的Nested Page Table技術,簡稱為NPT
IO的虛擬化實現方式:
(1)模擬:完全有軟件來模擬真實的硬件來實現
(2)半虛擬化:借助于前端(front)和后端(back)實現
(3)IO透傳(IO-Through): 例如Intel的VT-d技術,基于北橋硬件的輔助虛擬化
虛擬化網絡:由TUN或TAP實現
在計算機網絡中,TUN與TAP是操作系統內核中的虛擬網絡設備。不同于普通靠硬件網絡板卡實現的網絡設備,這些虛擬的網絡設備全部用軟件實現,并向運行于操作系統的軟件提供與硬件的網絡設備完全相同的功能。TAP等同于一個以太網設備,它操作第二次數據包如以太網數據幀;TUN模擬了網絡層設備,操作三層數據包比如IP數據包;操作系統通過TUN/TAP設備向綁定該設備的用戶空的程序發送數據,反之,用戶空間的程序也可以像操作硬件網絡設備那樣,通過TUN/TAP設備發送數據,在后中情況下,TUN/TAP設備向操作系統的網絡棧投遞(或"注入")數據包,從而模擬從外部接受數據報的過程。
常見的方式有以下幾類:
(1)nat mode;(2)bridge mode;(3)host-only;4)route mode;(5)isolation mode:
以上是本人的學習總結,總結的不是很好,希望大家多多給意見; O(∩_∩)O
原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/7290