Linux上的虛擬化技術(shù) Xen 初學(xué)者指南
本文約定;
虛擬平臺(tái)是指能支持運(yùn)行Xen的真實(shí)安裝的操作系統(tǒng);
虛擬操作系統(tǒng):是指在虛擬平臺(tái)上安裝和虛擬運(yùn)行的操作系統(tǒng);
比如我在Slackware 中安裝了Xen,那Slackware就是虛擬平臺(tái),通過虛擬平臺(tái)就可以虛擬其它操作系統(tǒng)了;比如通過Slackware來(lái)虛擬Debian、Fedora ... ...
1、什么是Xen;
Xen 是一個(gè)開放源代碼的para-virtualizing虛擬機(jī)(VMM),或“管理程序 ”,是為x86架構(gòu)的機(jī)器而設(shè)計(jì)的。Xen 可以在一套物理硬件上安全的執(zhí)行多個(gè)虛擬機(jī);Xen是基于內(nèi)核的虛擬程序,它和操作平臺(tái)結(jié)合的極為密切,所以它占用的資源最少。
什么是虛擬機(jī)呢?可能大家知道VMWARE吧,是的,Xen就是類似這樣的程序,比如我們可以在Fedora 上虛擬安裝和使用Slackware、Debian、Gentoo ... ... 等發(fā)行版。因?yàn)閄en是基于內(nèi)核的,相對(duì)VMWARE 來(lái)說,它占用的系統(tǒng)資源也就是VMWARE的百分之幾左右。Xen是不是更有優(yōu)勢(shì)呢?只有您實(shí)踐了才知道。這也是我寫本文的最主要原因;
1.1 Xen的特性;
虛擬機(jī)的性能更接近真實(shí)硬件環(huán)境)
在真實(shí)物理環(huán)境的平臺(tái)和虛擬平臺(tái)間自由切換)
在每個(gè)客戶虛擬機(jī)支持到 32個(gè)虛擬CPU,通過 VCPU熱插拔)
支持PAE指令集的x86/32, x86/64平臺(tái)
通過Intel 虛擬支持VT的支持來(lái)用虛擬原始操作系統(tǒng)(未經(jīng)修改的)支持(包括Microsoft Windows)
優(yōu)秀的硬件支持.支持幾乎所有的Linux設(shè)備驅(qū)動(dòng)
1.2 Xen的應(yīng)用范圍;
服務(wù)器整合:在虛擬機(jī)范圍內(nèi),在一臺(tái)物理主機(jī)上安裝多個(gè)服務(wù)器, 用于演示及故障隔絕;
無(wú)硬件依賴:允許應(yīng)用程序和操作系統(tǒng)對(duì)新硬件的移值測(cè)試;
多操作系統(tǒng)配置:以開發(fā)和測(cè)試為目的,同時(shí)運(yùn)行多個(gè)操作系統(tǒng);
內(nèi)核開發(fā):在虛擬機(jī)的沙盒中,做內(nèi)核的測(cè)試和調(diào)試,無(wú)需為了測(cè)試而單獨(dú)架設(shè)一臺(tái)獨(dú)立的機(jī)器;
集群運(yùn)算:和單獨(dú)的管理每個(gè)物理主機(jī)相比較,在VM級(jí)管理更加靈活,在負(fù)載均衡方面,更易于控制,和隔離;
為客戶操作系統(tǒng)提供硬件技術(shù)支持:可以開發(fā)新的操作系統(tǒng), 以得益于現(xiàn)存操作系統(tǒng)的廣泛硬件支持,比Linux;
1.3 Xen的操作系統(tǒng)支持和硬件支持;
2、Xen的一點(diǎn)理論基礎(chǔ);
基于Xen的操作系統(tǒng),有多個(gè)層,最底層和最高特權(quán)層是 Xen程序本身。Xen 可以管理多個(gè)客戶操作系統(tǒng),每個(gè)操作系統(tǒng)都能在一個(gè)安全的虛擬機(jī)中實(shí)現(xiàn)。在Xen的術(shù)語(yǔ)中,Domain由Xen控制,以高效的利用CPU的物理資源。每個(gè)客戶操作系統(tǒng)可以管理它自身的應(yīng)用。這種管理包括每個(gè)程序在規(guī)定時(shí)間內(nèi)的響應(yīng)到執(zhí)行,是通過Xen調(diào)度到虛擬機(jī)中實(shí)現(xiàn)。
當(dāng)Xen啟動(dòng)運(yùn)行后,第一個(gè)虛擬的操作系統(tǒng),就是Xen本身,我們通過xm list,會(huì)發(fā)現(xiàn)有一個(gè)Domain 0的虛擬機(jī)。Domain 0 是其它虛擬主機(jī)的管理者和控制者,Domain 0 可以構(gòu)建其它的更多的Domain ,并管理虛擬設(shè)備。它還能執(zhí)行管理任務(wù),比如虛擬機(jī)的體眠、喚醒和遷移其它虛擬機(jī)。
一個(gè)被稱為xend的服務(wù)器進(jìn)程通過domain 0來(lái)管理系統(tǒng),Xend 負(fù)責(zé)管理眾多的虛擬主機(jī),并且提供進(jìn)入這些系統(tǒng)的控制臺(tái)。命令經(jīng)一個(gè)命令行的工具通過一個(gè)HTTP的接口被傳送到xend。
【編輯推薦】