Linux內(nèi)核級(jí)虛擬環(huán)境分析
選用合適的虛擬主機(jī)方案,能有效利用各種服務(wù)器的資源,為節(jié)約開(kāi)支,簡(jiǎn)化硬件環(huán)境的維護(hù)帶來(lái)便利。 同時(shí)它也為隔離各服務(wù)模塊提供了有效的解決方法,并能一定程度上增強(qiáng)系統(tǒng)的安全性。
以下介紹三種不同的虛擬方式,隨后詳細(xì)介紹在生產(chǎn)環(huán)境比較常見(jiàn)的內(nèi)核級(jí)虛擬主機(jī)。
Emulation 硬件虛擬
為在虛擬出的環(huán)境中運(yùn)行無(wú)修改的操作系統(tǒng)提供了可能。這一類(lèi)的實(shí)現(xiàn)包括了從純虛擬化到允許部分代碼直接在CPU上執(zhí)行以提高性能。此類(lèi)實(shí)現(xiàn)最大的弊端是低性能,低密度。常見(jiàn)的桌面虛擬機(jī)多屬于此類(lèi),如 VMware products, QEmu, Bochs 和 Parallels.
并行虛擬化
可用于在一套管理程序或者虛擬主機(jī)控制器內(nèi)運(yùn)行多個(gè)操作系統(tǒng)。此類(lèi)實(shí)現(xiàn)包括Xen和UML。與硬件虛擬化相比,并行虛擬化有較好的性能。
操作系統(tǒng)級(jí)虛擬化
這種方式在一個(gè)系統(tǒng)內(nèi)核中實(shí)現(xiàn)了多個(gè)獨(dú)立的程序運(yùn)行環(huán)境,可理解為chroot在更低層次的實(shí)現(xiàn)。此種方式的實(shí)現(xiàn)有最優(yōu)的性能和密度,并允許資源的動(dòng)態(tài)管理. 這種方式下,多個(gè)虛擬主機(jī)共用相同的系統(tǒng)內(nèi)核。FreeBSD Jail, Linux-VServer, OpenVZ 和 Virtuozzo 屬于此類(lèi),在生產(chǎn)環(huán)境中使用的樣例比較常見(jiàn)。
OpenVZ在Redhat系列的主機(jī)中比較常見(jiàn)(官方支持此發(fā)行版),Vserver在Debian系列中比較流行(Debian官方支持此實(shí)現(xiàn))。OpenVZ采用SWsoft的Virutozzo虛擬化服務(wù)器軟件產(chǎn)品的內(nèi)核,Virutozzo是SWsoft公司提供的商業(yè)虛擬化解決方案,OpenVZ是其開(kāi)源解決方案。相比[url=admon.org]Vserver[/url],OpenVZ有更為嚴(yán)格的測(cè)試,也有更為完善的安全框架模型。Vserver與OpenVZ的管理,維護(hù)方式大同小異,大部分命令使用方式類(lèi)似。在安裝上vserver更為簡(jiǎn)潔一些,它不需要借助操作系統(tǒng)模板來(lái)簡(jiǎn)化安裝。
以下以O(shè)penVZ為例,介紹具體實(shí)現(xiàn):
OpenVZ的結(jié)構(gòu)
OpenVZ的安裝參考這里。安裝完成后即可用 “vzctl enter VPS-NAME” 登錄系統(tǒng)。登錄后看到的將是一個(gè)完善的系統(tǒng),它與主系統(tǒng)共享所有硬件資源,包括CPU、內(nèi)存和磁盤(pán)空間(可指定大小,并支持quota),并可擁有自己的 IP地址。如果需要把主系統(tǒng)中的服務(wù)遷移到VPS中,需要把服務(wù)綁定到指定的IP地址上。如果不綁定,訪(fǎng)問(wèn)相同端口的服務(wù)(比如SSH)實(shí)際會(huì)訪(fǎng)問(wèn)主系統(tǒng)。
OpenVZ主要由三部分組成:內(nèi)核、管理程序及操作系統(tǒng)模板。在安裝之前需要確認(rèn)使用了內(nèi)核已支持OpenVZ,OpenVZ官方已提供。
工具程序 ——— OpenVZ提供幾種工具程序以創(chuàng)建、監(jiān)控和管理虛擬服務(wù)器、軟件包管理和操作系統(tǒng)模板管理,并提供系統(tǒng)快照和熱遷移。熱遷移執(zhí)行不需要共享存儲(chǔ),維護(hù)網(wǎng)絡(luò)連接,并且在不易察覺(jué)的幾秒鐘之內(nèi)完成。vzctl用于創(chuàng)建,配置,修改,啟動(dòng)和關(guān)閉VPS。
模板———為了使VPS創(chuàng)建更容易,OpenVZ提供了模板包,里面是用于定義常見(jiàn)Linux發(fā)行版的元數(shù)據(jù). 只要你下載或安裝了一個(gè)內(nèi)核和一些附加的軟件包,建立一個(gè)OpenVZ系統(tǒng)既快速又容易。創(chuàng)建一個(gè)操作系統(tǒng)模板或下載一個(gè)預(yù)創(chuàng)建操作系統(tǒng)模板需要比較多的時(shí)間和帶寬,不過(guò)一旦你設(shè)置了模板指令,創(chuàng)建運(yùn)行在任何支持的Linux版本上的VPS非??焖俸腿菀?。創(chuàng)建一臺(tái)VPS和啟動(dòng)它只要不到兩分鐘的時(shí)間。
#p#OpenVZ的特點(diǎn)
由于一臺(tái)OpenVZ 虛擬主機(jī)只是一套運(yùn)行在類(lèi)似chroot環(huán)境中的程序,它僅消耗運(yùn)行這些程序所需要的CPU和內(nèi)存。一臺(tái)運(yùn)行Web的VPS(如 Apache Web服務(wù)器 Sshd Sendmail和 Syslogd)大約只有10個(gè)程序,這為單臺(tái)主機(jī)提供高密度的虛擬環(huán)境提供了可能。OpenVZ開(kāi)發(fā)者作過(guò)一些測(cè)試,在一個(gè)RAM為2GB的奔4處理器上可以運(yùn)行高達(dá)320臺(tái)的VPS。OpenVZ如此輕便,但功能卻沒(méi)減少。OpenVZ有自己的資源管理平臺(tái),系統(tǒng)管理員能為每臺(tái)VPS上動(dòng)態(tài)分配資源。
OpenVZ的優(yōu)勢(shì)
OpenVZ適用于許多地方,包括服務(wù)器整合、安全、開(kāi)發(fā)與測(cè)試。如果有多臺(tái)服務(wù)器的資源未被充分利用,OpenVZ可以用來(lái)把它們整合成少數(shù)物理機(jī)。為了提高系統(tǒng)的安全性,系統(tǒng)管理員可把生產(chǎn)環(huán)境運(yùn)行在VPS中,它對(duì)物理主機(jī)是透明的,這樣即便失去了VPS的控制權(quán),重做系統(tǒng)和恢復(fù)環(huán)境可在不到3分鐘的時(shí)間內(nèi)完成。當(dāng)然,使用VPS后,單臺(tái)主機(jī)上將會(huì)根據(jù)實(shí)際出現(xiàn)多個(gè)同網(wǎng)段的IP地址,對(duì)維護(hù)略有影響。
【編輯推薦】