VPS之虛擬化技術(shù)Xen介紹
VPS(Virtual Private Server)技術(shù),是一種將一臺(tái)物理服務(wù)器分成幾個(gè)虛擬云服務(wù)器的技術(shù)。虛擬化成功提高了資源的利用率,解決了硬件和系統(tǒng)之間的依賴性。
不少用戶在選購(gòu)VPS動(dòng)態(tài)撥號(hào)服務(wù)器時(shí)常常會(huì)有疑問(wèn),為什么相同配置條件下VPS的價(jià)格卻有區(qū)別?這里就要提到一個(gè)專有名詞“虛擬化技術(shù)”:實(shí)現(xiàn)VPS的技術(shù)分為虛擬化技術(shù)和容器技術(shù),專門(mén)對(duì)Xen這種虛擬化技術(shù)進(jìn)行一個(gè)詳細(xì)的講解。
Xen
Xen是一個(gè)開(kāi)放源代碼的Para-virtualizing虛擬機(jī)。
Para既有并列也有半的意思,因此國(guó)內(nèi)翻譯過(guò)來(lái)也會(huì)把這種虛擬化叫做半虛擬化。
小科普:什么是虛擬機(jī)?
虛擬機(jī)(Virtual Machine)是一種通過(guò)軟件模擬出來(lái)的具有一整套硬件系統(tǒng)功能、在一個(gè)完全隔離的環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。創(chuàng)建虛擬機(jī)時(shí)要把實(shí)體機(jī)的部分內(nèi)存和硬盤(pán)容量分割出來(lái)當(dāng)作虛擬機(jī)的內(nèi)存與硬盤(pán)容量,每個(gè)虛擬機(jī)都擁有各自獨(dú)立的硬盤(pán)、CMOS跟操作系統(tǒng),操作起來(lái)與實(shí)體機(jī)的操作一致。
Xen虛擬機(jī)可以在多個(gè)物理服務(wù)器之間實(shí)時(shí)遷移。
根據(jù)筆者自己查閱文獻(xiàn)后的總結(jié),會(huì)發(fā)現(xiàn)Xen比百科中的寥寥數(shù)筆復(fù)雜得多。
Xen出現(xiàn)的時(shí)候還沒(méi)有硬件輔助虛擬化技術(shù),因此要使用Xen的代價(jià)是要修改操作系統(tǒng)內(nèi)核,好讓操作系統(tǒng)在遇到指令時(shí)不會(huì)去調(diào)用CPU指令工作是直接調(diào)用hypercall。Windows操作系統(tǒng)內(nèi)核是無(wú)法修改的,但有支持Xen的Linux版本。
服務(wù)器安裝Linux后再裝Xen,此時(shí)會(huì)修改Linux系統(tǒng)內(nèi)核,改完重啟服務(wù)器后工作系統(tǒng)就不再是Linux而是Xen的Hypercall,圖中的Host Os是之前的Linux,本質(zhì)上是一個(gè)虛擬機(jī)。
假如再創(chuàng)建Guest Os就會(huì)出現(xiàn)在圖中Host Os右側(cè),又被稱為Paravirtualized Os。
在CSDN中把Xen分為Xen Para-virtualized和Xen hvm兩種,上面提到過(guò)Xen不是一個(gè)真正的虛擬機(jī)而是運(yùn)作自己內(nèi)核的一種半虛擬化技術(shù),盡管Xen Para-virtualized因?yàn)閃indows系統(tǒng)內(nèi)核無(wú)法被修改而只支持Linux,但Xen hvm因?yàn)樵趦?nèi)核調(diào)用方面不完全依賴服務(wù)器內(nèi)核因此支持Windows系統(tǒng)(Xen hvm是全虛擬化,可虛擬所有常見(jiàn)操作系統(tǒng),需要CPU指令支持)。