Xen 虚拟化技术
Xen 是一種開源的、屬于類型1(裸金屬虛擬化,Baremetal Hypervisor)的虛擬化技術,它使多個同樣操作系統或不同操作系統的虛擬機運行在同一個物理主機節點上成為可能并實現。
Xen 是唯一的屬于類型1(裸金屬虛擬化,Baremetal Hypervisor)并且開源的虛擬化技術,它被作為商業應用或開源應用的基礎而加以使用,如服務器虛擬化、Infrastructure as a service(Iaas)、桌面虛擬化、安全應用、嵌入式和硬件設備等。
Xen 虛擬化技術的關鍵特性:
1) 輕便小型的設計:核心代碼有1MB左右,它使用了微小內核設計,占用極少內存,加上有限的接口設計,使得它比其他虛擬化技術更健壯、更安全。
2) 操作系統無關性:Domain0 一般安裝在Linux 操作系統中,也可以使用其他操作系統代替。如NetBSD、OpenSolaris等。
3) 驅動分離:Xen 虛擬化技術允許主要的硬件設備驅動運行與虛擬機內部,當驅動出現 crash(宕機)或者報錯時,包含該驅動的虛擬機可以重啟,該驅動也可以重啟,這樣不會影響其他的虛擬機。
4) 半虛擬化技術:運行在半虛擬化技術上的虛擬機已經經過優化,它們可以運行得更加流暢,比運行在需要硬件擴展支持的全虛擬化管理程序(HVM)上的虛擬機更快。
Xen 虛擬化關鍵技術有3點(包括類型、Domain0、Toolstacks)
類型:Xen 虛擬機技術支持半虛擬化(Para-Virtualization,PV)和全虛擬化(Hardware-assisted Virtualization,HVM)兩種類型。
Domain0:Xen 虛擬化架構中包含一個特殊的域(Domain0),其包括硬件設備驅動和控制虛擬機的Toolstack。
Toolstacks:其涵蓋各種不同的Toolstack。
普及知識點:
裸金屬虛擬化(Baremetal Hypervisor),類型1:該類型的虛擬化技術直接運行在物理主機節點硬件上設備上,并且管理虛擬機操作系統。
可托管的虛擬化(Hosted Hypervisor),類型2:該類型的虛擬化技術允許運行在普通的操作系統上,和普通的計算機程序類似。
Xen 架構的重點:
1) Xen 虛擬化管理程序是一個極小的軟件程序,包含大概15萬行代碼。Xen 虛擬化管理程序本沒有I/O功能。
2) 虛擬機是一個虛擬化的環境,每個虛擬機都運行著自己的操作系統和應用程序。Xen 支持兩種虛擬化模式:半虛擬化和全虛擬化模式。在同一個虛擬化管理程序上可以同時并行使用兩種虛擬化模式,也可以串行在全虛擬化模式上使用半虛擬化模式,以此保證半虛擬化和全虛擬化的連續性。虛擬機與硬件之間的完全隔離的,它們沒有任何權限可以訪問底層的硬件和I/O設備等,因此它們也被叫做DomainU(Unprivileged Domain)。
3) Domain0:是一個特殊的虛擬機,其具備特殊的、足夠的權限直接訪問底層的硬件設備,處理所有底層的I/O設備請求,并與其他虛擬機(DomainU)進行交互通信。Domain0對外部開放一個接口,使用戶可以控制整個系統。沒有Domain0,Xen 虛擬化管理程序是無法使用的,它是整個系統啟動后加載的第一個虛擬機。
4) Toolstack:包含在Domain0中,也叫作控制棧,其允許用戶管理虛擬機,包括虛擬機創建、刪除和配置等。
5) 終端是Toolstack 對外部開放的一個接口,用戶可以通過命令行或圖形化界面控制整個系統,OpenStack 和CloudStack 中的編排服務也被支持。
6) Domain0 要求一個支持 Xen 虛擬化管理程序的內核,半虛擬化的虛擬機(DomainU)要求一個支持半虛擬化的內核。比較新的Linux 操作系統基本都支持,也包括Toolstack。
虛擬化類型
半虛擬化(PV):
半虛擬化是由 Xen 虛擬化管理程序引入的一個輕量級、高效的虛擬化模式,之后被其他虛擬化平臺所被采用。半虛擬化不要求物理主機節點CPU具備擴展性,但是其需要支持半虛擬化的內核和驅動。因此,虛擬機能夠感知到虛擬化管理程序;同時,因為沒有硬件仿真,所以運行非常高效。支持半虛擬化的內核包括Linux、FreeBSD、NetBSD和OpenSolaris。
全虛擬化(HVM):
全虛擬化需要物理主機節點CPU擴展特性的支持,為此,Intel和AMD廠商提供了Intel VT和AMD-V技術。Xen 虛擬化管理程序使用QEMU 仿真硬件設備,包括BIOS、IDE磁盤控制器、VGA圖形適配器、USB控制器和網絡適配器等。硬件的擴展特性提高了仿真性能,同時,全虛擬化模式下的虛擬機不再需要特殊內核的支持,這也意味著Windows 操作系統在基于Xen全虛擬化的平臺也是被支持的。一般情況下,半虛擬化的虛擬機比全虛擬化的虛擬機性能表現更好,因為全虛擬化的虛擬機需要硬件仿真,會消耗一部分性能。在某些情況下,可以使用半虛擬化驅動加速全虛擬化虛擬機的I/O性能。在Windows 虛擬機中,需要安裝合適的虛擬化驅動。
全虛擬化模式+半虛擬化驅動(PVHVM)
全虛擬化模式下的虛擬機可以使用指定的半虛擬化驅動,以此達到增強系統性能的目的。這些驅動是為全虛擬化環境而優化的半虛擬化驅動,繞過磁盤和網絡的模式仿真,從而在全虛擬化模式下獲得更好的性能。這也就意味著在使用一些虛擬機操作系統時會獲得更好的性能。
基于Xen 虛擬化管理程序的半虛擬化虛擬機可以自動使用半虛擬化驅動,全虛擬化模式下使用的半虛擬化驅動僅使用于全虛擬化模式的虛擬機。
半虛擬化+硬件擴展特性(PVH)
Xen虛擬化管理程序4.4 版本中包含一種虛擬化模式,叫做基于DomainU的PVH;4.5版本又開發了一種基于Domain0(Linux和BSD)的PVH虛擬化模式,其實質是半虛擬化的虛擬機可以使用半虛擬化驅動以提高I/O性能,也可以使用硬件擴展特性提高系統性能,不需要硬件仿真。從本質上講,PVH對兩種虛擬化模式進行了合并,簡化Xen虛擬化管理程序的架構。
簡而言之,PVH在linux和BSD中使用了極少的代碼和接口,從而減少了TCB和攻擊的可能性,降低了風險。一旦對其進行相應的優化,它將具備更好的性能和更低的延遲,特別是在64位的操作系統上表現更優。PVH要求虛擬機操作系統對其提供支持,在配置文件中設置pvh=1即可啟用PVH支持。
總結
- 上一篇: 二星瓢虫有毒吗
- 下一篇: 快热式电热水器好用吗