新聞中心
隨著IT技術的不斷發(fā)展,虛擬化技術成為了當今IT領域的熱門話題。那么,什么是虛擬化?虛擬化是指通過軟件技術,將一臺計算機設備劃分為多個虛擬計算機環(huán)境,使得每個虛擬計算機環(huán)境都可以獨立運行,并且擁有自己的操作系統(tǒng)、應用程序等資源。

虛擬化技術不僅提高了IT資源的利用率,還可以實現(xiàn)資源的共享和動態(tài)分配。因此,在今天這個日趨變化的技術發(fā)展時代中,虛擬化技術被視為企業(yè)IT架構中必不可少的一部分。下面,我們將詳細介紹。
1. 虛擬化的概念
虛擬化技術將一臺計算機設備上的資源進行分解,從而創(chuàng)建多個虛擬的計算機環(huán)境,使得每個虛擬環(huán)境都可以獨立運行,而不會與其他環(huán)境產(chǎn)生干擾。虛擬化技術的出現(xiàn),使得多個應用程序可以在一臺服務器上運行,使得資源的利用率得到了極大的提高。
2. 虛擬化的類型
虛擬化技術具有多種類型,其中最常見的類型包括服務器虛擬化、存儲虛擬化和桌面虛擬化。
– 服務器虛擬化:將一臺服務器劃分為多個虛擬服務器,在一個物理服務器上運行多個虛擬服務器,從而實現(xiàn)資源的共享和優(yōu)化;
– 存儲虛擬化:通過通過軟件技術來管理存儲設備,使得多個應用程序可以同時訪問同一存儲設備,從而共享存儲資源;
– 桌面虛擬化:將多個桌面虛擬機運行在一臺物理計算機上,使得多個桌面虛擬機能夠共享物理資源和數(shù)據(jù)。
3. 虛擬化的優(yōu)勢
虛擬化技術的出現(xiàn),可以帶來許多優(yōu)勢,包括:
– 充分利用資源:虛擬化技術可以將一臺物理服務器切分為多個虛擬服務器,使得不同的應用程序可以在不同的虛擬服務器上獨立運行。
– 簡化管理:虛擬化技術可以讓管理員通過一個控制面板來管理多個虛擬機,從而簡化了管理工作。
– 提高可用性:虛擬化技術可以通過快照和備份功能,為服務器建立快速恢復的機制。在出現(xiàn)系統(tǒng)故障時,可以快速恢復系統(tǒng)。
– 節(jié)省成本:虛擬化技術可以通過共享物理資源,使得企業(yè)可以節(jié)省大量的成本。此外,虛擬化技術還可以降低硬件和管理成本。
4. 虛擬機的架構
虛擬化技術的核心是虛擬機技術。虛擬機是一種軟件程序,類似于一部計算機,擁有自己的CPU、內(nèi)存、硬盤、網(wǎng)卡等資源。虛擬機可以安裝操作系統(tǒng)和應用程序,并獨立運行。
在虛擬化技術中,有兩種虛擬機:
– 宿主機:也稱為物理機,是一臺物理服務器,它運行虛擬機軟件,并與虛擬機之間交換信息;
– 客戶機:也稱為虛擬機,是在宿主機上運行的虛擬計算機環(huán)境,它可以安裝操作系統(tǒng)和應用程序,擁有獨立的資源。
5. 虛擬化的實現(xiàn)
虛擬化技術的實現(xiàn),需要通過特定的虛擬化軟件進行,虛擬化軟件可以分為兩種類型:
– 類型1:基于物理架構的虛擬化。該類型的虛擬化軟件直接在物理計算機上安裝,它通常使用虛擬機監(jiān)控程序(VMM)來管理虛擬機,并將虛擬機訪問指令轉(zhuǎn)化為物理機訪問指令;
– 類型2:基于操作系統(tǒng)的虛擬化。該類型的虛擬化軟件運行在操作系統(tǒng)上,通過操作系統(tǒng)提供的虛擬化接口實現(xiàn)虛擬化。這種虛擬化軟件的優(yōu)勢在于它們很容易安裝,但是它們的性能通常比基于物理架構的虛擬化軟件要低。
虛擬化技術是IT領域中的重要技術,它可以幫助企業(yè)實現(xiàn)IT資源的更大化利用,提高企業(yè)業(yè)務的效率和可用性。虛擬化技術不僅提高了IT資源的利用率,還可以實現(xiàn)資源的共享和動態(tài)分配。對于企業(yè)而言,實現(xiàn)虛擬化技術可以降低硬件和管理成本,并且提高系統(tǒng)安全性。因此,虛擬化技術是當今企業(yè)IT架構中必不可少的一部分。
相關問題拓展閱讀:
- linux中ks和xen是什么服務
- 請問為什么在Redhat Linux Enterprise 5中做集群時,需要更改啟動內(nèi)核為標準內(nèi)核,而不使用Xen內(nèi)核?謝謝
- 【重識云原生】第.節(jié)——主流虛擬化技術之Xen
linux中ks和xen是什么服務
我不清楚ks代表什么,但是我知道xen是指虛擬化技派戚術的一種,啟動了帶皮或xen技術的linux內(nèi)核塵握陵,就可以在這個linux上建立符合xen規(guī)范的虛擬機。
請問為什么在Redhat Linux Enterprise 5中做集群時,需要更改啟動內(nèi)核為標準內(nèi)核,而不使用Xen內(nèi)核?謝謝
因為 Xen內(nèi)核不是很穩(wěn)定,尤其是再對做LINUX HA的時候,因褲喊為Xen內(nèi)核啟動之后,系統(tǒng)本身就是一手耐個Xen虛擬機胡薯野,而系統(tǒng)下的eth0和真正的物理網(wǎng)卡0其實是一種特殊的映射關系,有可能發(fā)生拔掉網(wǎng)線卻不報錯的情況。。
開機啟動grub里可以選擇,一個帶xen,一個不帶XEN,仔細看。
【重識云原生】第.節(jié)——主流虛擬化技術之Xen
Xen知識地圖:
Xen是由劍橋大學計算機實驗室開發(fā)的一個開源項目,是一個開源的可直接運行于硬件層之上的虛擬化軟件,它屬于type-I型虛擬化系統(tǒng),支持萬貫虛擬化和超虛擬化,以高性數(shù)改能、占用資源少著稱,贏得了IBM、AMD、HP、Red Hat和Novell等眾多世界級軟硬件廠商的高度認可和大力支持,已被國內(nèi)外眾多企事業(yè)用戶用來搭建高性能的虛擬化平臺。
Xen僅對CPU和Memory直接接管,而其它IO硬件驅(qū)動則由其上運行的之一個虛擬機來提供支持,它能夠在計算機硬件上并發(fā)的運行多個客戶操作系統(tǒng)(Guest OS)。支持x86、x86-64、安騰( Itanium)、Power PC和ARM多種處理器,因此Xen可游橘以在大量的計算設備上運行,目前Xen支持Linux、NetBSD、FreeBSD、Solaris、 Windows和其他神畢團常用的操作系統(tǒng)作為客戶操作系統(tǒng)在其管理程序上運行。
Xen默認認為自己是直接運行于硬件層之上的虛擬化軟件(即Xen Hypervisor層),并且可以直接驅(qū)動CPU和內(nèi)存,需注意CPU和內(nèi)存是所有想要運行的操作系統(tǒng)必須能直接支持的,但Xen為保證自身的小巧,它并沒有提供虛擬機的管理接口,因此它采用了一種獨特的方式,先運行一臺特權虛擬機(即Domain 0),且這臺VM必須支持Kernel的修改,因此選擇開源的Linux做為特權VM是最合適的,這樣也可方便采用Linux所支持的方式來開發(fā)虛擬機管理接口,實現(xiàn)與Xen Hypervisor層直接交互來完成為VM分配CPU和內(nèi)存資源及創(chuàng)建、刪除、停止、啟動VM的管理接口。通常這臺特權虛擬機一定會采用當前比較流行的Linux發(fā)行版,因為它能支持更多IO硬件設備,如:網(wǎng)卡,磁盤,顯卡,聲卡等;到目前為止,NetBSD,GNU/Linux,F(xiàn)reeBSD和Plan 9,OpenSolaris等系統(tǒng)已經(jīng)支持已半虛擬化方式運行在Xen的DomU中。目前Xen已經(jīng)支持x86、x86_64和ARM等平臺,并正在向IA64、PPC移植。移植到其他平臺從技術上是可行的,未來有可能會實現(xiàn)。
Xen虛擬機支持在不停止的情況下在多個物理主機之間實時遷移。在操作過程中,虛擬機在沒有停止工作的情況下內(nèi)存被反復地復制到目標機器。虛擬機在最終目的地開始執(zhí)行之前,會有一次60-300毫秒的非常短暫的暫停以執(zhí)行最終的同步化,給人無縫遷移的感覺。類似的技術被用來暫停一臺正在運行的虛擬機到磁盤,并切換到另外一臺,之一臺虛擬機在以后可以恢復。
如上圖所示,Xen虛擬環(huán)境由三部分組件組成:
XEN Hypervisor
Xen Hypervisor 是介于操作系統(tǒng)和硬件之間的一個軟件抽象層。它負責在各個虛擬機之間進行CPU調(diào)度和內(nèi)存分配。Xen Hypervisor不僅抽象出虛擬機的硬件,同時還控制著各個虛擬機的執(zhí)行。Xen Hypervisor不會處理網(wǎng)絡、存儲設備、視頻以及其他 I/O。
Domain 0 Guest
Domain 0是特權域,是一個修改過的Linux kernel,是唯一運行在 Xen Hypervisor之上的虛擬機,它擁有訪問物理 I/O 資源的權限,同時和系統(tǒng)上運行的其他虛擬機(Domain U: PV and HVM Guest)進行交互。Domain 0需要在其它Domain啟動之前啟動。
Domain 0 中有兩個驅(qū)動 Network Backend Driver 和 Block Backend Driver,它們分別用來處理來自 Domain U 的網(wǎng)絡和本地磁盤請求。 Network Backend Driver與本地網(wǎng)絡硬件直接通信,以此來處理來自于Domain U所有虛擬機訪問網(wǎng)絡設備的請求;Block Backend Drive與本地存儲設備進行通信,以此來處理來自于Domain U的磁盤數(shù)據(jù)讀寫的請求。
Domain U Guest(Dom U)
Domain U沒有直接訪問物理硬件的權限(Domain U的”U”是來自于英文單詞 unprivileged,是指沒有權限的),但Domain 0有。
運行在 Xen Hypervisor 上的所有半虛擬化(paravirtualized)虛擬機被稱為“Domain U PV Guests”,其上運行著被修改過內(nèi)核的操作系統(tǒng),如 Linux、Solaris、FreeBSD 等其它 UNIX 操作系統(tǒng)。
所有的全虛擬化虛擬機被稱為“Domain U HVM Guests”,其上運行著不用修改內(nèi)核的操作系統(tǒng),如 Windows 等。
Domain U PV Guest 中也包括兩個驅(qū)動“PV Network Driver”和“PV Block Driver”,它們分別也是用來處理發(fā)送網(wǎng)絡和本地磁盤請求用的,這與 Domain 0 中的兩個驅(qū)動是相對應的。
Xen對虛擬機的虛擬化分為兩大類,半虛擬化(Para virtualization)和完全虛擬化(Hardware VirtualMachine)。
半虛擬化(Paravirtualization)有些資料稱為“超虛擬化”,簡稱為PV,是Xen主導的虛擬化技術。這種技術允許虛擬機操作系統(tǒng)感知到自己運行在Xen Hypervisor上而不是直接運行在硬件上,同時也可以識別出其他運行在相同環(huán)境中的客戶虛擬機。
在Xen Hypervisor上運行的半虛擬化的操作系統(tǒng),為了調(diào)用系統(tǒng)管理程序(Xen Hypervisor),要有選擇地修改操作系統(tǒng),然而卻不需要修改操作系統(tǒng)上運行的應用程序。由于 Xen 需要修改操作系統(tǒng)內(nèi)核,所以您不能直接讓當前的 Linux 內(nèi)核在 Xen 系統(tǒng)管理程序中運行,除非它已經(jīng)移植到了Xen 架構。不過,如果當前系統(tǒng)可以使用新的已經(jīng)移植到 Xen 架構的Linux 內(nèi)核,那么您就可以不加修改地運行現(xiàn)有的系統(tǒng)。
完全虛擬化(Hardware Virtual Machine)又稱“硬件虛擬化”,簡稱HVM,是指運行在虛擬環(huán)境上的虛擬機在運行過程中始終感覺自己是直接運行在硬件之上的,并且感知不到在相同硬件環(huán)境下運行著其他虛擬機的虛擬技術。此種虛擬化需要借助于Intel的VT-x 或 AMD的AMD-v 等硬件輔助虛擬化技術(詳細技術原理參見1.5.1節(jié))及Qemu的IO硬件模擬技術,才能支持GuestOS的kernel不修改,就可直接被DomU支持。
在Xen Hypervisor運行的完全虛擬化虛擬機,所運行的操作系統(tǒng)都是標準的操作系統(tǒng),即:無需任何修改的操作系統(tǒng)版本。同時也需要提供特殊的硬件設備。
值的注意的是,在Xen上虛擬的Windows虛擬機必須采用完全虛擬化技術。
為了提高性能,完全虛擬化的Guests可以使用特殊的半虛擬設備驅(qū)動程序(PVHVM或PV-on-HVM驅(qū)動)。這些驅(qū)動程序在HVM環(huán)境下優(yōu)化你的 PV驅(qū)動,模擬的磁盤和網(wǎng)絡IO旁路運行,從而讓你的PV在HVM中有更好的性能。這意味著你在用戶窗口操作方面可以得到更佳的性能。
注意,Xen項目PV(半虛擬化)的Guest自動使用PV驅(qū)動,因此不需要這些驅(qū)動程序,因為你已經(jīng)自動使用優(yōu)化的驅(qū)動程序。PVHVM只會在HVM(全虛擬化)guest虛擬機中需要。
Xen 的 VMM ( Xen Hypervisor ) 位于操作系統(tǒng)和硬件之間,負責為上層運行的操作系統(tǒng)內(nèi)核提供虛擬化的硬件資源,負責管理和分配這些資源,并確保上層虛擬機(稱為域 Domain)之間的相互隔離。Xen采用混合模式,因而設定了一個特權域用以輔助Xen管理其他的域,并提供虛擬的資源服務,該特權域稱為Domain 0,而其余的域則稱為Domain U。
Xen向Domain提供了一個抽象層,其中包含了管理和虛擬硬件的API。Domain 0內(nèi)部包含了真實的設備驅(qū)動(原生設備驅(qū)動),可直接訪問物理硬件,負責與 Xen 提供的管理 API 交互,并通過用戶模式下的管理工具來管理 Xen 的虛擬機環(huán)境。
Xen2.0之后,引入了分離設備驅(qū)動模式。該模式在每個用戶域中建立前端(front end)設備,在特權域(Dom0)中建立后端(back end)設備。所有的用戶域操作系統(tǒng)像使用普通設備一樣向前端設備發(fā)送請求,而前端設備通過IO請求描述符(IO descripror ring)和設備通道(device channel)將這些請求以及用戶域的身份信息發(fā)送到處于特權域中的后端設備。這種體系將控制信息傳遞和數(shù)據(jù)傳遞分開處理。
在Xen體系結構設計中,后端設備運行的特權域被賦予一個特有的名字—隔離設備域(Isolation Device Domain, IDD),而在實際設計中,IDD 就處在Dom0中。所有的真實硬件訪問都由特權域的后端設備調(diào)用本地設備驅(qū)動 (native device driver)發(fā)起。前端設備的設計十分簡單,只需要完成數(shù)據(jù)的轉(zhuǎn)發(fā)操作,由于它們不是真實的設備驅(qū)動程序,所以也不用進行請求調(diào)度操作。而運行在IDD中的后端設備,可以利用Linux的現(xiàn)有設備驅(qū)動來完成硬件訪問,需要增加的只是IO請求的橋接功能—能完成任務的分發(fā)和回送。
1)半虛擬化技術實現(xiàn)原理
采用半虛擬化技術的虛擬機操作系統(tǒng)能夠識別到自己是運行在Xen Hypervisor而非直接運行于硬件之上,并且也可以識別到在相同的機器上運行的其他虛擬機系統(tǒng)。而且運行的操作系統(tǒng)都需要進行相應的修改。
半虛擬化客戶機(Domain U PV Guests)包含兩個用于操作網(wǎng)絡和磁盤的驅(qū)動程序,PV Network Driver 和PV Block Driver。
PV Network Driver負責為Domain U提供網(wǎng)絡訪問功能。PV Block Driver負責為Domain U提供磁盤操作功能。
2)完全虛擬化技術實現(xiàn)原理
完全虛擬化客戶機(Domain U HVM Guests)運行的是標準版本的操作系統(tǒng),因此其操作系統(tǒng)中不存在半虛擬化驅(qū)動程序(PV Driver),但是在每個完全虛擬化客戶機都會在Domain 0中存在一個特殊的精靈程序,稱作:Qemu-DM,Qemu-DM幫助完全虛擬化客戶機(Domain U HVM Guest)獲取網(wǎng)絡和磁盤的訪問操作。
完全虛擬化客戶機必須和在普通硬件環(huán)境下一樣進行初始化,所以需要在其中加入一個特殊的軟件Xen virtual firmware,來模擬操作系統(tǒng)啟動時所需要的BIOS。
開源社區(qū)中將一系列的Linux精靈程序分類為“管理”和“控制”兩大類。這些服務支撐著整個虛擬環(huán)境的管理和控制操作,并且存在于Domain 0虛擬機中。
下面將對直接服務進行詳細的描述。
注:為了清晰的描述Xen的運行流程,畫圖時將精靈程序放在Domain 0外部來描述,但事實上所有精靈程序都存在于Domain 0 之中。
1)Xend
Xend精靈線程是一個Python應用程序,它作為Xen環(huán)境的系統(tǒng)管理員。它利用Libxenctrl類庫向Xen Hypervisor發(fā)出請求。
所有Xend處理的請求都是由XM工具使用XML RPC接口發(fā)送過來的。
2)Xm
用于將用戶輸入通過XML RPC接口傳遞到Xend中的命令行工具。
3)Xenstored
Xenstored精靈程序用于維護注冊信息,這些信息包括內(nèi)存和在連接Domain 0和所有其他Domain U之間的事件通道。Domain 0虛擬機利用這些注冊信息來與系統(tǒng)中其他虛擬機建立設備通道,即幫助Domain U虛擬機訪問硬件資源。
4)Libxenctrl
Libxenctrl是C程序類庫,用于讓Xend具有通過Domain 0與Xen Hypervisor進行交互的能力。在Domain 0中存在一個特殊的驅(qū)動程序稱作privcmd,它將請求發(fā)送給Hypervisor。
5)Qemu-DM
在Xen環(huán)境下,每個完全虛擬化虛擬機都需要擁有自己的Qemu精靈程序。Qemu-DM處理在Xen環(huán)境下完全虛擬化客戶機所能允許執(zhí)行的所有關于網(wǎng)絡 和磁盤請求和操作。Qemu程序必須存在于Hypervisor之外同時又需要訪問網(wǎng)絡和I/O,所以Qemu-DM必須存在于Domain 0 中(參見前面章節(jié)對Domain 0 的描述)。
未來版本的Xen中,一種新的工具Stub-DM將會提供一系列對所有完全虛擬化客戶機都可用的服務,以此來替代需要在每個虛擬機上都生成一個Qemu的邏輯。
6)Xen Virtual Firmware
Xen Virtual Firmware是被嵌入到所有完全虛擬化客戶機中的虛擬BIOS系統(tǒng),來確保所有客戶操作系統(tǒng)在正常啟動操作中接收到標準的啟動指令集并提供標準的軟件兼容環(huán)境。
根據(jù)前幾章節(jié)所述,Xen Hypervisor不負責處理網(wǎng)絡和磁盤請求,因此半虛擬化客戶機(Domain U PV)必須通過Domain 0 與Xen Hypervisor進行通信,從而完成網(wǎng)絡和磁盤的操作請求。下面以半虛擬化客戶機(Domain U PV)執(zhí)行向本地磁盤寫入數(shù)據(jù)為例描述Domain 0與Domain U PV的交互過程。
半虛擬化客戶機(Domain U PV)的PV Block Driver接收到要向本地磁盤寫入數(shù)據(jù)的請求,然后通過Xen Hypervisor將與Domain 0共享的本地內(nèi)存中的數(shù)據(jù)寫入到本地磁盤中。在Domain 0 和半虛擬化Domain U之間存在事件通道,這個通道允許它們之間通過存在于Xen Hypervisor內(nèi)的異步中斷來進行通信。Domain 0將會接收到一個來自于Xen Hypervisor的系統(tǒng)中斷,并觸發(fā)Domain 0中的Block Backend驅(qū)動程序去訪問本地系統(tǒng)內(nèi)容,并從與半虛擬化客戶機的共享內(nèi)存中讀取適合的數(shù)據(jù)塊。從共享內(nèi)存中讀取的數(shù)據(jù)隨后被寫入到本地磁盤的指定位置中。
上圖中所顯示的事件通道是直接連接Domain 0 和Domain U PV是為了清晰和簡單的描述系統(tǒng)是如何運行的。但事實上,事件通道(Event Channel)運行于Xen Hypervisor中,并在Xenstored中注冊特定的系統(tǒng)中斷,以此來讓Domain 0 和Domain U PV能夠通過本地內(nèi)存快速的共享信息。
Xen在給VM提供CPU的虛擬化時,它采用的也是在Xen hypervisor層啟動一個線程,并將這些線程映射到某個物理核心上,當然通過DomU的配置文件中的cpus可以指定將這些模擬CPU的線程綁定到某幾個物理核心上;而內(nèi)存的虛擬化則是內(nèi)存頁的映射,將物理內(nèi)存上多個連續(xù)或不連續(xù)的內(nèi)存頁映射給VM,讓VM看來這就是一個完整的連續(xù)的內(nèi)存空間。
當啟動一個用戶VM(DomU)時,該VM所需的CPU和內(nèi)存都由Xen Hypervisor提供,而它若需要使用IO設備時,則向特權VM(即Dom0)發(fā)起請求,特權VM會為該用戶VM創(chuàng)建一個模擬的硬件設備線程,并運行于特權VM的用戶空間,當用戶VM向該IO硬件發(fā)起調(diào)用時,特權VM上相應的模擬設備接收請求并將其轉(zhuǎn)化為特權VM對IO硬件的操作,交給特權VM的內(nèi)核來代為完成其操作。這里需注意這些虛擬IO硬件需要由Qemu來模擬,Xen本身并沒有提供相應的模擬功能。(注:特權VM的CPU和內(nèi)存也是有Xen Hypervisor提供)
1)Qemu模擬IO設備(完全虛擬化方式)
Qemu模擬IO設備(完全虛擬化方式):假如用戶VM向特權VM請求磁盤,特權VM可以將一個分區(qū)、文件等,通過Qemu將其模擬成一個磁盤設備,就拿文件來說,特權VM先創(chuàng)建一個映像文件,再通過Qemu為該文件模擬一個磁盤控制器芯片;然后,將其映射到用戶VM上,當然模擬的這個磁盤控制器芯片一定是一個最常見的,用戶VM的Kernel一定支持的,但需注意:模擬的磁盤可能會與實際的物理磁盤不同,因為要盡可能兼容。這樣一來用戶VM假如要寫數(shù)據(jù)到磁盤的過程如下:
用戶VM-APP—>用戶VM-Kernel調(diào)用虛擬磁盤的驅(qū)動進行寫數(shù)據(jù)前的準備(如:數(shù)據(jù)寫入到磁盤中的扇區(qū)位置/數(shù)據(jù)編碼等)—>
用戶VM-Kernel將編碼后的信息發(fā)給特權VM的模擬磁盤進程—>
特權VM的模擬磁盤進程再將編號信息還原后發(fā)給特權VM-kernel—>
特權VM-kernel調(diào)用真實物理磁盤的驅(qū)動對數(shù)據(jù)進行寫前準備—>最后磁盤驅(qū)動調(diào)度磁盤完成寫入
摘錄補充:(
)
Xen向Domain提供了一個抽象層,其中包含了管理和虛擬硬件的API。Domain 0內(nèi)部包含了真實的設備驅(qū)動(原生設備驅(qū)動),可直接訪問物理硬件,Xen 提供的管理 API 可與其交互,并通過用戶模式下的管理工具(如:xm/xend、xl等)來管理 Xen 的虛擬機環(huán)境。
2)半虛擬化IO設備
半虛擬化的IO設備:它與模擬更大不同是DomU知道自己是運行在虛擬化環(huán)境中的,并且知道這個磁盤不是真正的磁盤,它只是Xen模擬的一個磁盤前端驅(qū)動(Disk Frontend),它要寫數(shù)據(jù)時,直接將數(shù)據(jù)交給Disk Frontend,而不再去調(diào)用磁盤驅(qū)動進行數(shù)據(jù)編碼,當特權VM端的Disk backend收到來自DomU的數(shù)據(jù)時,也是直接轉(zhuǎn)給特權VM-Kernel,由其直接調(diào)用物理磁盤驅(qū)動來對這些原始數(shù)據(jù)進行處理并寫入磁盤。
摘錄補充:(
)
Xen2.0之后,引入了分離設備驅(qū)動模式。該模式在每個用戶域中建立前端(front end)設備,在特權域(Dom0)中建立后端(back end)設備。所有的用戶域操作系統(tǒng)像使用普通設備一樣向前端設備發(fā)送請求,而前端設備通過IO請求描述符(IO descripror ring)和設備通道(device channel)將這些請求以及用戶域的身份信息發(fā)送到處于特權域中的后端設備。這種體系將控制信息傳遞和數(shù)據(jù)傳遞分開處理(類似云計算中常說的控制面與數(shù)據(jù)面分離設計)。
半虛擬化客戶機(Domain U PV)的PV Block Driver接收到要向本地磁盤寫入數(shù)據(jù)的請求,然后通過Xen Hypervisor將自己與Domain 0共享的本地內(nèi)存中的數(shù)據(jù)寫入到本地磁盤中。在Domain 0 和半虛擬化Domain U之間存在事件通道,這個通道允許它們之間通過存在于Xen Hypervisor內(nèi)的異步中斷來進行通信。Domain 0將會接收到一個來自于Xen Hypervisor的系統(tǒng)中斷,并觸發(fā)Domain 0中的Block Backend驅(qū)動程序去訪問本地系統(tǒng)內(nèi)容,并從自己與半虛擬化客戶機的共享內(nèi)存中讀取適合的數(shù)據(jù)塊后,隨即被寫入到本地磁盤的指定位置中。
但無論采用模擬或半虛擬化最終都是對物理磁盤的操作,假如當前只有一個物理磁盤,眾多用戶VM都在進行大量的讀寫請求,此時,為了避免用戶VM無限制的向特權VM發(fā)起請求,特權VM中采用一個環(huán)狀緩存區(qū),每到一個IO請求,就先將其塞入這個環(huán)狀緩沖區(qū)的槽位中,若緩沖區(qū)滿了,就會告訴用戶VM IO設備繁忙。當然其它各種IO設備大致都采用這種機制來控制。
在虛擬化環(huán)境中虛擬網(wǎng)絡是十分重要但又比較難,需要特別注意;
在Linux中實現(xiàn)虛擬網(wǎng)絡的方法中比較常用的工具有兩個:bridge-utils 和 openvswitch,它們創(chuàng)建的虛擬網(wǎng)絡設備是不能相互使用的,比如:bridge-utils創(chuàng)建的橋設備,openvswitch是無法識別的。
用下圖來做簡單說明:
1)Bridge模式
Xend啟動時流程:
1、創(chuàng)建虛擬網(wǎng)橋 xenbr0;
2、停止物理網(wǎng)卡 eth0;
3、物理網(wǎng)卡 eth0 的 MAC 地址和 IP 地址被復制到虛擬網(wǎng)卡 veth0;
4、物理網(wǎng)卡 eth0 重命名為 peth0;
5、Veth0 重命名為 eth0;
6、Peth0 的 MAC 地址更改( FE:FF:FF:FF:FF:FF ),ARP 功能關閉;
7、連接 peth0、vif0.0 到網(wǎng)橋 xenbr0
8、啟動 peth0、vif0.0、xenbr0
Domain U 啟動時的流程:
1、vif.0 連接到 xenbr0
2、啟動vif.0
2)Route 模式
Xend啟動時的流程:
1、開啟Domain 0的IP Forward。
Domain U啟動時的流程:
1、創(chuàng)建 vif.0 ,dom U eth0的IP地址被拷貝到vif。
2、啟動 vif.0。
3、為domU的配置文件中指向虛擬接口vif.0分配的IP地址增加靜態(tài)路由。
3)NAT模式
NAT 模式會使用虛擬局域網(wǎng) virbr0
安裝了Xen的Linux機器,在Dom 0中能看到以下幾類網(wǎng)卡(網(wǎng)絡接口設備 ):
(X ,Y都為數(shù)字)
pethY
ethY
xenbrY
virbrY
vifX.Y(X為DomaiID,Y表示該虛擬網(wǎng)卡是該Domain的第幾塊虛擬網(wǎng)卡)
vethY (一般在Xend啟動完成以后就不存在了)
xend : 這是Xen Hypervisor的Dom0上運行的服務,此服務用來監(jiān)控xm命令發(fā)來的指令,并完成相應的動作。
xm : Xen Management,用來管理VM的創(chuàng)建、刪除、啟動、快照、刪除、停止等的管理工具。
xl : 這是一個基于libxenlight庫的一個輕量級VM管理工具,它從Xen4.1開始出現(xiàn),從4.3以后,它被作為主要的VM管理工具,而xm這個重量級管理工具開始被提示廢棄.以下為xm、xl的對比圖:
xl 和 xm都需要調(diào)用libxenlight,但xl不需要運行任何服務,它可直接調(diào)用libxenlight完成相關操作。
xe/XAPI,是xend的一個API管理接口,通常用于Xen Cloud環(huán)境中:Xen Server, XCP
virsh/ libvirt : 這是Redhat發(fā)起開發(fā)的一套用于管理眾多不同類別的VM的管理工具。
virsh : 這是一個命令行工具
libvirt: 則是一個lib庫, libvirtd守護進程用于監(jiān)聽virsh命令操作,并調(diào)用lbvirt完成相關操作.
10年4月Xen4.0.0發(fā)布,改進后Xen的DomU更大可支持虛擬CPU 64顆,Xen主機可支持1TB內(nèi)存和128顆物理CPU,磁盤可支持快照和克?。籋VM客戶機支持虛擬內(nèi)存頁共享;
11年4月發(fā)布的Xen4.1版后,xm/xend開始被提示廢棄,xl這個更輕量級的Xen VM管理工具逐漸成為主流。
15年為止已經(jīng)發(fā)布Xen4.5版本,目前yum源可用的最新版Xen是4.6.1版的(
)。
Linux2.6.37:kernel開始對Xen進行支持,并加其加入到Kernel中。
Linux3.0:Kernel開始對Xen的關鍵部分進行優(yōu)化。
RHEL對Xen的支持概況:
Redhat系列對Xen的支持情況:
RHEL5.7 ~ 及以前版本:默認的企業(yè)虛擬化技術為Xen。
但Redhat提供了兩種內(nèi)核:
kernel-… :這是僅允許RHEL系統(tǒng)的內(nèi)核,不能運行在DomU中。
kernel-xen.. :這是需要部署XenServer時,使用的Kernel版本。
RHEL6 ~ 及以后版本:默認支持KVM(收購自以色列的一款虛擬化工具),并且不在對Xen做任何支持,但允許自己運行在DomU中。
Linux內(nèi)核態(tài)、用戶態(tài)簡介與IntelCPU特權級別–Ring0-3_weixin_的博客-CSDN博客
云計算技術 — 云計算技術發(fā)展編年史_煙云的計算-CSDN博客_云計算編年史
虛擬化技術原理(CPU、內(nèi)存、IO)_joneslee的博客-CSDN博客_虛擬化原理
五種主流的虛擬化技術_遠有青山-CSDN博客_虛擬化技術
Xen原理
Xen原理 – 張朝鋒 – 博客園
Xen虛擬化技術原理_IT人生活的技術博客_51CTO博客
Xen虛擬化基本原理詳解
Xen虛擬化基本原理詳解 – stardsd – 博客園
Xen工作原理_為幸福寫歌的博客-CSDN博客_xen原理
Xen_百度百科
關于linux內(nèi)核是xen的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
分享題目:虛擬化的基礎(linux內(nèi)核是xen)
文章地址:http://m.fisionsoft.com.cn/article/cdpppip.html


咨詢
建站咨詢
