openEuler系統(tǒng)管理- 課件 第10章 虛擬化技術(shù)_第1頁
openEuler系統(tǒng)管理- 課件 第10章 虛擬化技術(shù)_第2頁
openEuler系統(tǒng)管理- 課件 第10章 虛擬化技術(shù)_第3頁
openEuler系統(tǒng)管理- 課件 第10章 虛擬化技術(shù)_第4頁
openEuler系統(tǒng)管理- 課件 第10章 虛擬化技術(shù)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

虛擬化技術(shù)深入了解虛擬化技術(shù)的原理與應(yīng)用01云計算的技術(shù)基礎(chǔ)虛擬化技術(shù)簡介核心思想云計算創(chuàng)新顯著提高計算機(jī)的工作效率,使得資源能夠得到更充分的利用,降低了企業(yè)的運(yùn)營成本。效率提升進(jìn)入21世紀(jì),計算機(jī)領(lǐng)域最大的創(chuàng)新之一就是“云計算”,它改變了傳統(tǒng)的計算模式,為企業(yè)和個人提供了更靈活、高效的計算資源使用方式。虛擬化技術(shù)是云計算的技術(shù)基礎(chǔ),通過軟件策略將一臺物理計算機(jī)虛擬為多臺邏輯計算機(jī),提高了計算機(jī)的工作效率。核心思想是將物理計算機(jī)虛擬為多臺邏輯計算機(jī),每臺邏輯計算機(jī)可獨(dú)立運(yùn)行不同操作系統(tǒng),應(yīng)用程序在獨(dú)立空間運(yùn)行互不影響。虛擬化基礎(chǔ)云計算與虛擬化傳統(tǒng)架構(gòu)一臺宿主機(jī)上可運(yùn)行多臺虛擬機(jī),共享CPU、內(nèi)存等資源,邏輯上相互隔離。虛擬機(jī)內(nèi)部可獨(dú)立運(yùn)行操作系統(tǒng)和應(yīng)用程序,互不干擾。資源共享傳統(tǒng)架構(gòu)容易造成資源浪費(fèi),如個人計算機(jī)的CPU、存儲、網(wǎng)絡(luò)等資源利用率低。以CPU為例,用戶實(shí)際有效使用的價值可能僅占購買價值的一小部分。一套硬件設(shè)備由一個操作系統(tǒng)統(tǒng)一管理,如個人計算機(jī)、數(shù)據(jù)中心小型服務(wù)器。這種架構(gòu)在計算機(jī)技術(shù)發(fā)展初期發(fā)揮了重要作用,但隨著技術(shù)的進(jìn)步,其資源利用率低的問題逐漸凸顯。打破操作系統(tǒng)和硬件的強(qiáng)綁定,多操作系統(tǒng)共享底層資源,且相互隔離。通過虛擬化管理程序?qū)⑺拗鳈C(jī)資源抽象成虛擬機(jī),提高了資源的利用率。資源浪費(fèi)傳統(tǒng)架構(gòu)與虛擬化架構(gòu)對比虛擬化架構(gòu)01030204將宿主機(jī)的物理資源抽象成邏輯資源,如CPU、內(nèi)存、磁盤等,為虛擬機(jī)提供統(tǒng)一的資源接口。通過抽象,虛擬機(jī)可以獨(dú)立于物理硬件,提高了系統(tǒng)的靈活性和可擴(kuò)展性。關(guān)鍵作用技術(shù)定義VMM是保障虛擬化系統(tǒng)穩(wěn)定工作的關(guān)鍵,對下層調(diào)度宿主機(jī)物理資源,對上層分割邏輯資源供虛擬機(jī)使用。它負(fù)責(zé)管理和分配宿主機(jī)的各種資源,確保虛擬機(jī)的正常運(yùn)行。資源抽象高效調(diào)度和管理宿主機(jī)資源,滿足虛擬機(jī)的不同需求。根據(jù)虛擬機(jī)的資源需求和使用情況,動態(tài)分配資源,提高資源的利用率。資源調(diào)度本書所講虛擬化技術(shù)主要指VMM層對宿主機(jī)資源的調(diào)度和虛擬機(jī)管理技術(shù)。VMM的功能和性能直接影響著虛擬化系統(tǒng)的整體性能。虛擬化管理程序VMM受限推廣20世紀(jì)60年代前后,虛擬化技術(shù)用于IBM大型機(jī),通過VMM劃分計算資源實(shí)例。當(dāng)時的虛擬化技術(shù)主要是為了滿足大型企業(yè)對計算資源的高效利用需求。起源商用方案技術(shù)回歸2001年,VMware推出第一代商用服務(wù)器虛擬化解決方案VMwareESX。這標(biāo)志著虛擬化技術(shù)開始走向商業(yè)化應(yīng)用,為企業(yè)提供了更高效的計算資源管理方式。21世紀(jì),計算機(jī)計算能力提升,傳統(tǒng)模式不能充分發(fā)揮算力,虛擬化技術(shù)重新受到關(guān)注。隨著芯片制作工藝的提升和多核技術(shù)、集群計算技術(shù)的引入,計算機(jī)的計算能力有了很大的提高,為虛擬化技術(shù)的發(fā)展提供了條件。受限于普通計算機(jī)硬件算力,未大范圍推廣,僅用于IBM大型機(jī)等少數(shù)場景。由于當(dāng)時計算機(jī)硬件的性能有限,無法支持虛擬化技術(shù)在更廣泛的場景中應(yīng)用。早期發(fā)展Xen方案2006年,Qumranet公布KVM,融入Linux內(nèi)核,紅帽收購后用于RHEL6及后續(xù)版本。KVM作為Linux內(nèi)核的一部分,具有良好的兼容性和性能,成為了企業(yè)級虛擬化的主流選擇之一。開源方案發(fā)展開源方案促進(jìn)了虛擬化技術(shù)發(fā)展與生態(tài)繁榮,眾多企業(yè)基于開源推出商用方案。開源方案的出現(xiàn)降低了虛擬化技術(shù)的使用門檻,吸引了更多的企業(yè)和開發(fā)者參與到虛擬化技術(shù)的研究和應(yīng)用中。生態(tài)繁榮2003年,劍橋大學(xué)開源Xen1.0,后被Citrix收購,加入Linux基金會,支持ARM架構(gòu)。Xen虛擬化解決方案在開源社區(qū)的推動下不斷發(fā)展和完善,為不同架構(gòu)的計算機(jī)提供了虛擬化支持。開源推動KVM方案如華為基于Xen推出CNA虛擬化解決方案,豐富了虛擬化技術(shù)的應(yīng)用場景。不同企業(yè)基于開源方案開發(fā)的商用解決方案,進(jìn)一步推動了虛擬化技術(shù)在各個領(lǐng)域的應(yīng)用和發(fā)展。傳統(tǒng)架構(gòu)不能充分利用算力,虛擬化技術(shù)可提高資源利用率,適應(yīng)芯片發(fā)展。虛擬化技術(shù)通過對資源的抽象和管理,使得計算機(jī)能夠更高效地利用有限的硬件資源,滿足了芯片技術(shù)發(fā)展帶來的挑戰(zhàn)。技術(shù)趨勢物理極限虛擬化需求1965年戈登·摩爾提出,芯片晶體管數(shù)量每18個月翻番,成本降低。摩爾定律描述了計算機(jī)芯片技術(shù)的發(fā)展趨勢,對計算機(jī)行業(yè)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響。摩爾定律2011年后,晶體管數(shù)量接近原子等級,達(dá)到物理極限,有摩爾定律失效說法。隨著芯片集成度的不斷提高,物理極限成為了制約芯片技術(shù)發(fā)展的重要因素。摩爾定律與虛擬化虛擬化技術(shù)是應(yīng)對芯片發(fā)展和資源利用問題的重要技術(shù)趨勢,將在未來的計算機(jī)領(lǐng)域發(fā)揮更加重要的作用。隨著計算機(jī)技術(shù)的不斷發(fā)展,虛擬化技術(shù)將不斷創(chuàng)新和完善,為企業(yè)和個人提供更高效、更靈活的計算資源使用方式。分區(qū)、隔離、封裝與硬件無關(guān)虛擬化特點(diǎn)虛擬化技術(shù)可對物理機(jī)進(jìn)行邏輯分割,實(shí)現(xiàn)一臺物理機(jī)運(yùn)行多臺不同規(guī)格虛擬機(jī)。通過邏輯分割,物理機(jī)的資源可以被更靈活地分配和使用,滿足不同用戶的需求。可根據(jù)業(yè)務(wù)需求靈活增加或減少虛擬機(jī)數(shù)量,適應(yīng)業(yè)務(wù)變化。企業(yè)可以根據(jù)業(yè)務(wù)的發(fā)展情況,隨時調(diào)整虛擬機(jī)的數(shù)量和配置,提高了企業(yè)的運(yùn)營效率和靈活性。邏輯分割資源分配靈活擴(kuò)展獨(dú)立運(yùn)行根據(jù)虛擬機(jī)的需求,合理分配計算、存儲等資源,提高資源利用率。通過對資源的精細(xì)分配,虛擬機(jī)可以獲得足夠的資源來運(yùn)行應(yīng)用程序,同時避免了資源的浪費(fèi)。每臺虛擬機(jī)可獨(dú)立運(yùn)行操作系統(tǒng)和應(yīng)用程序,互不干擾。虛擬機(jī)之間的獨(dú)立性保證了系統(tǒng)的穩(wěn)定性和安全性,即使一臺虛擬機(jī)出現(xiàn)故障,也不會影響其他虛擬機(jī)的正常運(yùn)行。分區(qū)特性避免一臺虛擬機(jī)的資源占用影響其他虛擬機(jī)性能。通過資源隔離,每個虛擬機(jī)都可以獲得穩(wěn)定的資源供應(yīng),保證了應(yīng)用程序的正常運(yùn)行。模擬硬件環(huán)境,為虛擬機(jī)運(yùn)行完整操作系統(tǒng)提供條件。通過模擬硬件環(huán)境,虛擬機(jī)可以像物理機(jī)一樣運(yùn)行操作系統(tǒng)和應(yīng)用程序,提高了系統(tǒng)的兼容性和可移植性。安全隔離資源保護(hù)硬件模擬不同虛擬機(jī)上的操作系統(tǒng)獨(dú)立運(yùn)行,互不影響。即使一臺虛擬機(jī)出現(xiàn)故障,也不會影響其他虛擬機(jī)的正常運(yùn)行,保證了系統(tǒng)的穩(wěn)定性和可靠性。獨(dú)立運(yùn)行虛擬機(jī)之間在邏輯上相互隔離,防止數(shù)據(jù)泄露和惡意攻擊。隔離特性為虛擬機(jī)提供了安全的運(yùn)行環(huán)境,保護(hù)了用戶的數(shù)據(jù)和隱私。隔離特性虛擬化的分類硬件輔助虛擬化不同方案各有優(yōu)缺點(diǎn),企業(yè)可根據(jù)需求選擇合適的虛擬化方案。企業(yè)在選擇虛擬化方案時,需要考慮自身的業(yè)務(wù)需求、硬件資源、成本等因素,選擇最適合自己的方案。全虛擬化修改虛擬機(jī)操作系統(tǒng),請求VMM訪問硬件,開銷小、性能好,如Xen。半虛擬化通過修改虛擬機(jī)操作系統(tǒng),使得虛擬機(jī)可以直接與VMM進(jìn)行交互,減少了系統(tǒng)開銷,提高了性能。借助CPU虛擬化模塊,性能優(yōu)異,需專有CPU,如KVM。硬件輔助虛擬化利用CPU的虛擬化功能,減少了軟件模擬的開銷,提高了系統(tǒng)的性能,但需要特定的CPU支持。方案對比VMM模擬硬件環(huán)境,指令解碼執(zhí)行,兼容性好但開銷大,如QEMU。全虛擬化通過軟件模擬硬件環(huán)境,使得虛擬機(jī)可以運(yùn)行不同的操作系統(tǒng),但由于模擬過程需要消耗大量的計算資源,因此系統(tǒng)開銷較大。半虛擬化按實(shí)現(xiàn)過程分類04030102物理資源由宿主機(jī)操作系統(tǒng)管理,VMM作為驅(qū)動或軟件運(yùn)行,如VirtualBox。宿主機(jī)虛擬化在宿主機(jī)操作系統(tǒng)的基礎(chǔ)上運(yùn)行VMM,通過調(diào)用宿主機(jī)操作系統(tǒng)的服務(wù)來實(shí)現(xiàn)虛擬化功能,降低了系統(tǒng)的復(fù)雜度。裸金屬虛擬化兩種結(jié)構(gòu)在資源管理和性能上存在差異,企業(yè)可根據(jù)實(shí)際情況選擇。裸金屬虛擬化的性能較高,但對硬件的要求也較高;宿主機(jī)虛擬化的靈活性較好,但性能相對較低。宿主機(jī)虛擬化結(jié)構(gòu)差異按VMM實(shí)現(xiàn)結(jié)構(gòu)分類VMM看作操作系統(tǒng),直接管理物理資源,如KVM。裸金屬虛擬化將VMM作為一個獨(dú)立的操作系統(tǒng),直接管理物理資源,提高了系統(tǒng)的性能和效率。應(yīng)用場景不同的應(yīng)用場景對虛擬化結(jié)構(gòu)有不同的要求,如企業(yè)級應(yīng)用可能更適合裸金屬虛擬化。企業(yè)需要根據(jù)自身的應(yīng)用場景和需求,選擇合適的虛擬化結(jié)構(gòu)。按虛擬化對象分類CPU虛擬化綜合應(yīng)用隔離虛擬機(jī)內(nèi)存空間,保證獨(dú)立地址空間,提高內(nèi)存管理效率。內(nèi)存虛擬化通過對內(nèi)存資源的管理和分配,使得每個虛擬機(jī)都有獨(dú)立的內(nèi)存地址空間,提高了內(nèi)存的利用率和管理效率。內(nèi)存虛擬化實(shí)現(xiàn)多虛擬機(jī)共享CPU,模擬CPU指令,提高CPU利用率。CPU虛擬化通過對CPU資源的管理和調(diào)度,使得多個虛擬機(jī)可以共享有限的CPU資源,提高了CPU的利用率。三種虛擬化對象相互配合,共同實(shí)現(xiàn)虛擬化系統(tǒng)的高效運(yùn)行。在實(shí)際應(yīng)用中,CPU虛擬化、內(nèi)存虛擬化和輸入輸出虛擬化需要相互配合,才能實(shí)現(xiàn)虛擬化系統(tǒng)的高效運(yùn)行。復(fù)用外部設(shè)備資源,截獲訪問請求,軟件模擬硬件。輸入輸出虛擬化通過對外部設(shè)備資源的管理和調(diào)度,使得多個虛擬機(jī)可以共享有限的外部設(shè)備資源,提高了外部設(shè)備的利用率。輸入輸出虛擬化openEuler的虛擬化解決方案ARM架構(gòu)支持的主流虛擬化技術(shù)ARMv8引入VHE,不修改虛擬機(jī)操作系統(tǒng)實(shí)現(xiàn)高效虛擬化,打破早期限制。VHE技術(shù)的引入使得ARM架構(gòu)能夠更好地支持虛擬化技術(shù),提高了系統(tǒng)的性能和效率。VMM運(yùn)行在Hypervisor級別,保證虛擬機(jī)隔離和資源控制。VMM在Hypervisor級別運(yùn)行,能夠有效地控制宿主機(jī)的所有資源,保證了虛擬機(jī)之間的隔離和系統(tǒng)的安全性。特權(quán)級別避免VMM與虛擬機(jī)操作系統(tǒng)指令級別沖突,引入Hypervisor特權(quán)級別。為了避免VMM和虛擬機(jī)操作系統(tǒng)之間的指令級別沖突,ARM架構(gòu)引入了Hypervisor特權(quán)級別,實(shí)現(xiàn)了對指令級別的統(tǒng)一管理。VHE技術(shù)技術(shù)突破指令沖突隔離保障操作系統(tǒng)用特權(quán)級別限制資源調(diào)用,VMM需最高特權(quán)級別控制資源。特權(quán)級別是操作系統(tǒng)管理資源的重要手段,VMM需要具備最高的特權(quán)級別才能有效地控制宿主機(jī)的所有資源。02030104可在單個平臺實(shí)現(xiàn)異構(gòu)架構(gòu)操作系統(tǒng)部署,如x86部署ARM版openEuler。QEMU作為仿真器,可以在不同的硬件平臺上運(yùn)行不同架構(gòu)的操作系統(tǒng),提高了系統(tǒng)的兼容性和可移植性。虛擬機(jī)功能動態(tài)翻譯技術(shù)模擬物理設(shè)備,轉(zhuǎn)換二進(jìn)制代碼。QEMU的動態(tài)翻譯技術(shù)可以將已編譯成虛擬機(jī)架構(gòu)下的二進(jìn)制代碼動態(tài)翻譯成物理機(jī)架構(gòu)下的代碼,實(shí)現(xiàn)了對物理設(shè)備的模擬。資源消耗資源消耗隨虛擬機(jī)數(shù)量和負(fù)載增加,大型數(shù)據(jù)中心較少直接使用。由于QEMU的資源消耗較大,在大型數(shù)據(jù)中心的建設(shè)中,很少直接使用QEMU方案來實(shí)現(xiàn)對資源的虛擬化。動態(tài)翻譯仿真器功能純軟件模擬底層硬件,虛擬機(jī)操作系統(tǒng)可直接運(yùn)行,提供統(tǒng)一接口。QEMU作為虛擬機(jī),可以通過純軟件的方式模擬底層硬件資源,為虛擬機(jī)操作系統(tǒng)提供統(tǒng)一的接口,使得虛擬機(jī)操作系統(tǒng)可以不做任何修改直接運(yùn)行在QEMU之上。QEMU技術(shù)中間適配Libvirt功能開源管理工具和API,管理虛擬化平臺,支持虛擬機(jī)操作和設(shè)備熱插拔。Libvirt作為開源管理工具和API,可以方便地管理虛擬化平臺,支持虛擬機(jī)的創(chuàng)建、啟動、暫停、關(guān)閉等操作,以及對虛擬機(jī)設(shè)備的熱插拔。Linux內(nèi)核模塊,提供虛擬化功能,需借助QEMU模擬輸入輸出設(shè)備。KVM作為Linux內(nèi)核的一部分,具有良好的兼容性和性能,但需要借助QEMU等技術(shù)來模擬輸入輸出設(shè)備。屏蔽底層Hypervisor細(xì)節(jié),為上層提供統(tǒng)一API,應(yīng)用廣泛。Libvirt作為中間適配層,屏蔽了底層Hypervisor的細(xì)節(jié),為上層管理工具提供了一個統(tǒng)一的、較穩(wěn)定的API,使得上層管理工具可以方便地管理不同類型的Hypervisor和虛擬機(jī)。KVM加QEMU成為主流VMM實(shí)現(xiàn)方式,openEuler支持。KVM和QEMU的組合方案在性能和兼容性上都有較好的表現(xiàn),成為了主流的VMM實(shí)現(xiàn)方式之一。KVM與Libvirt技術(shù)組合方案KVM架構(gòu)KVM與Libvirt技術(shù)KVM架構(gòu)用戶空間管理工具與Hypervisor及虛擬機(jī)的基本交互框架CPU、內(nèi)存與輸入輸出虛擬化虛擬化關(guān)鍵技術(shù)x86和ARM架構(gòu)采用不同方法解決指令沖突問題。不同架構(gòu)的處理器在解決指令沖突問題上采用了不同的方法,以保證虛擬化系統(tǒng)的正常運(yùn)行。調(diào)度策略CPU虛擬化技術(shù)目標(biāo)VMM為虛擬機(jī)虛擬出與物理CPU同質(zhì)的vCPU,保證控制和“獨(dú)享”錯覺。通過虛擬CPU,VMM可以對CPU資源進(jìn)行有效的管理和調(diào)度,保證每個虛擬機(jī)都能獲得足夠的CPU資源。包括資源上限限制、下限預(yù)留、份額分配,實(shí)現(xiàn)資源有序利用。CPU調(diào)度策略可以根據(jù)虛擬機(jī)的需求和使用情況,合理分配CPU資源,避免資源搶占和浪費(fèi)。指令沖突虛擬CPU實(shí)現(xiàn)多虛擬機(jī)共享物理CPU,解決共享和指令模擬問題。CPU虛擬化的目標(biāo)是提高CPU的利用率,使得多個虛擬機(jī)可以共享有限的CPU資源。物理CPU與vCPU數(shù)量的對應(yīng)關(guān)系IntelCPU提供EPT技術(shù),降低復(fù)雜度,提升性能。EPT技術(shù)直接在硬件上支持地址轉(zhuǎn)換,降低了內(nèi)存虛擬化實(shí)現(xiàn)的復(fù)雜度,提高了內(nèi)存虛擬化的性能。內(nèi)存虛擬化對內(nèi)存再抽象,保證虛擬機(jī)獨(dú)立地址空間,建立映射關(guān)系。內(nèi)存虛擬化通過對內(nèi)存資源的管理和分配,使得每個虛擬機(jī)都有獨(dú)立的內(nèi)存地址空間,提高了內(nèi)存的利用率和管理效率。內(nèi)存抽象硬件支持地址轉(zhuǎn)換采用兩階段地址翻譯或影子頁表技術(shù),提升轉(zhuǎn)換效率。地址轉(zhuǎn)換是內(nèi)存虛擬化的關(guān)鍵環(huán)節(jié),通過采用不同的技術(shù),可以提高地址轉(zhuǎn)換的效率和性能。虛擬內(nèi)存內(nèi)存虛擬化抽象虛擬內(nèi)存概念,保證進(jìn)程獨(dú)立地址空間,通過頁表管理映射。虛擬內(nèi)存的概念使得每個進(jìn)程都有獨(dú)立的地址空間,提高了系統(tǒng)的安全性和穩(wěn)定性。內(nèi)存虛擬化虛擬內(nèi)存空間內(nèi)存虛擬化當(dāng)在一個宿主機(jī)上創(chuàng)建多個虛擬機(jī)之后,每個虛擬機(jī)都認(rèn)為自己占有整個物理地址空間。因此,與虛擬內(nèi)存的概念類似,內(nèi)存虛擬化需要對內(nèi)存再做一次抽象,保證每個虛擬機(jī)都有獨(dú)立的地址空間。虛擬機(jī)和物理機(jī)中均有VA和PA的概念,即GVA和GPA,以及HVA和HPA。虛擬機(jī)中的進(jìn)程訪問宿主機(jī)物理內(nèi)存的過程,就是虛擬機(jī)內(nèi)進(jìn)程使用的GVA與HPA建立映射關(guān)系的過程。兩個VA到PA(GVA到GPA以及HVA到HPA)的映射同樣使用頁表管理,GPA到HVA一般是幾段連續(xù)的線性映射,由虛擬機(jī)的管理程序VMM進(jìn)行管理。應(yīng)用場景輸入輸出虛擬化復(fù)用外部設(shè)備資源,截獲訪問請求,軟件模擬硬件。輸入輸出虛擬化的目的是提高外部設(shè)備的利用率,使得多個虛擬機(jī)可以共享有限的外部設(shè)備資源。技術(shù)目的網(wǎng)絡(luò)虛擬化虛擬機(jī)通過虛擬網(wǎng)卡、交換機(jī)連接物理網(wǎng)卡,VMM實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)。網(wǎng)絡(luò)虛擬化是輸入輸出虛擬化的重要組成部分,通過虛擬網(wǎng)卡和交換機(jī),虛擬機(jī)可以連接到物理網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)的傳輸和共享。網(wǎng)橋和OpenvSwitch是典型實(shí)現(xiàn)方法,各有特點(diǎn)。網(wǎng)橋和OpenvSwitch是兩種常見的虛擬交換機(jī)實(shí)現(xiàn)方法,它們在功能和性能上有所不同,企業(yè)可以根據(jù)實(shí)際需求選擇合適的虛擬交換機(jī)。虛擬交換機(jī)輸入輸出虛擬化廣泛應(yīng)用于網(wǎng)絡(luò)、磁盤、顯卡等外部設(shè)備。輸入輸出虛擬化技術(shù)在各個領(lǐng)域都有廣泛的應(yīng)用,為企業(yè)和個人提供了更高效、更靈活的外部設(shè)備使用方式。虛擬化技術(shù)深入了解openEuler中KVM虛擬化部署02KVM虛擬化的硬件與組件安裝虛擬化環(huán)境安裝最低硬件要求安裝虛擬化核心組件部署KVM虛擬化解決方案需要部署QEMU、Libvirt和KVM組件。KVM是openEuler內(nèi)核模塊的一部分,只要確保openEuler能夠調(diào)用它即可,因此不需要單獨(dú)安裝,而QEMU和Libvirt需要手動安裝。具體流程如圖所示。安裝虛擬化核心組件(1)驗(yàn)證openEuler是否支持KVM虛擬化??赏ㄟ^查看openEuler內(nèi)核是否支持KVM虛擬化,即查看/dev/kvm和/sys/module/kvm文件是否存在,驗(yàn)證openEuler是否支持KVM虛擬化。若上述文件存在,說明openEuler內(nèi)核支持KVM虛擬化。若上述文件不存在,則說明openEuler內(nèi)核編譯時未開啟KVM虛擬化,需要更換為支持KVM虛擬化的openEuler內(nèi)核。(2)安裝QEMU和Libvirt。安裝QEMU和Libvirt可直接使用yum命令。虛擬機(jī)鏡像文件包含可以直接啟動并使用的操作系統(tǒng)以及操作系統(tǒng)上部署的應(yīng)用軟件。通過鏡像文件可以在分鐘級別完成虛擬機(jī)的部署,大大提高了虛擬機(jī)的部署效率。常見格式鏡像作用準(zhǔn)備虛擬機(jī)鏡像文件常見虛擬機(jī)鏡像文件有.raw格式和.qcow2格式。.raw指裸格式,創(chuàng)建該格式文件時就需要指定存儲容量,不支持動態(tài)擴(kuò)容,不支持快照,但性能較好。.qcow2格式文件具有占用更小的空間、支持動態(tài)擴(kuò)容、支持壓縮、支持AES加密、支持快照等特性,但性能略遜于.raw格式文件。參數(shù)說明imgFormat用于設(shè)置鏡像格式,取值為raw、qcow2等fileOption用于設(shè)置鏡像文件的特性,如指定后端鏡像文件、壓縮、加密等特性fileName用于設(shè)置文件名稱diskSize用于指定塊磁盤設(shè)備的大小,支持的單位有K、M、G、T,分別代表KB、MB、GB、TB使用qemu-img工具的create命令可創(chuàng)建鏡像文件,命令格式為:qemu-imgcreate-f<imgFormat>-o<fileOption><fileName><diskSize>04030102使用qemu-img工具修改鏡像磁盤空間大小,命令為$qemu-imgresize[+|-]。其中imgFiLeName為鏡像名稱,“+”和“-”分別表示需要增加或減小的鏡像磁盤空間大小,單位為K、M、G、T,代表KB、MB、GB、TB。需求背景可以使用qemu-imginfo命令查詢當(dāng)前虛擬機(jī)鏡像磁盤空間大小。例如,查詢openEuler-image.qcow2鏡像磁盤空間大小的命令為[root@openeuler~]#qemu-imginfoopenEuler-image.qcow2,通過該命令可以了解鏡像的當(dāng)前磁盤空間大小。修改鏡像磁盤空間大小修改命令查詢示例當(dāng)虛擬機(jī)需要更大的磁盤空間時,就需要修改虛擬機(jī)鏡像磁盤空間的大小。隨著業(yè)務(wù)的發(fā)展,虛擬機(jī)可能需要存儲更多的數(shù)據(jù),因此需要對磁盤空間進(jìn)行擴(kuò)展。修改示例將openEuler-image.qcow2鏡像磁盤空間大小從4GB擴(kuò)展到24GB,即在原來4GB基礎(chǔ)上增加20GB,使用命令[root@openeuler~]#qemu-imgresizeopenEuler-image.qcow2+20G。修改完成后,再使用qemu-imginfo命令查詢修改后的鏡像磁盤空間大小。為了使虛擬機(jī)可以與外部網(wǎng)絡(luò)進(jìn)行通信,需要為虛擬機(jī)配置網(wǎng)絡(luò)環(huán)境。虛擬機(jī)在運(yùn)行過程中,可能需要與外部服務(wù)器、客戶端等進(jìn)行數(shù)據(jù)交互,因此網(wǎng)絡(luò)配置是必不可少的。合理的網(wǎng)絡(luò)配置可以提高虛擬機(jī)的網(wǎng)絡(luò)性能,確保數(shù)據(jù)的快速傳輸。不同的網(wǎng)絡(luò)配置方式對虛擬機(jī)的網(wǎng)絡(luò)性能有不同的影響,需要根據(jù)實(shí)際需求進(jìn)行優(yōu)化。通信需求支持類型性能影響選擇依據(jù)網(wǎng)絡(luò)配置重要性KVM虛擬化支持Linux網(wǎng)橋等多種類型的網(wǎng)橋和OpenvSwitch。這些不同類型的網(wǎng)絡(luò)配置方式可以滿足不同用戶的需求,用戶可以根據(jù)實(shí)際情況進(jìn)行選擇。用戶可以根據(jù)情況選擇搭建網(wǎng)橋的類型。例如,對于一些簡單的網(wǎng)絡(luò)環(huán)境,Linux網(wǎng)橋可能是一個不錯的選擇;而對于需要更復(fù)雜網(wǎng)絡(luò)功能和自動化編排的場景,OpenvSwitch可能更合適。Linux網(wǎng)橋通常通過brctl工具管理,首先要安裝bridge-utils軟件包,使用[root@openeuler~]#yuminstall-ybridge-utils。該軟件包提供了brctl工具,用于網(wǎng)橋的創(chuàng)建、管理等操作。使用brctladdbr命令創(chuàng)建網(wǎng)橋,例如[root@openeuler~]#brctladdbrbr0。創(chuàng)建網(wǎng)橋是搭建Linux網(wǎng)橋網(wǎng)絡(luò)的第一步,為后續(xù)的網(wǎng)卡綁定等操作提供基礎(chǔ)。搭建Linux網(wǎng)橋網(wǎng)橋創(chuàng)建工具安裝選項(xiàng)說明addbr創(chuàng)建網(wǎng)橋delbr刪除網(wǎng)橋addif將網(wǎng)卡接口接入網(wǎng)橋delif刪除網(wǎng)橋接入的網(wǎng)卡接口show查詢網(wǎng)橋信息Linux網(wǎng)橋通常通過brctl工具管理,brctl命令格式為:brctl[選項(xiàng)]<bridge>

其中,各選項(xiàng)及說明如表所示:搭建Linux網(wǎng)橋02030104使用OpenvSwitch提供虛擬網(wǎng)絡(luò),需要安裝OpenvSwitch網(wǎng)絡(luò)虛擬化組件,使用[root@openeuler~]#yuminstall-yopenvswitch-kmod和[root@openeuler~]#yuminstall-yopenvswitch。安裝這些組件是搭建OpenvSwitch網(wǎng)絡(luò)的基礎(chǔ)。服務(wù)啟動搭建OpenvSwitch使用ovs-vsctladd-br命令創(chuàng)建OpenvSwitch虛擬交換機(jī),例如[root@openeuler~]#ovs-vsctladd-brbr0。創(chuàng)建交換機(jī)是OpenvSwitch網(wǎng)絡(luò)配置的重要步驟。網(wǎng)卡添加與IP設(shè)置用[root@openeuler~]#ovs-vsctladd-portbr0eth0將物理網(wǎng)卡eth0添加到br0。eth0連交換機(jī)后無需IP地址,用[root@openeuler~]#ifconfigeth00.0.0.0設(shè)置其IP為0.0.0.0。之后為openvSwitch網(wǎng)橋br0分配IP:有DHCP服務(wù)器用dhclient設(shè)置動態(tài)IP;無則配置靜態(tài)IP,如192.168.1.2。交換機(jī)創(chuàng)建組件安裝啟動OpenvSwitch服務(wù),使用[root@openeuler~]#systemctlstartopenvswitch。啟動服務(wù)后,才能進(jìn)行后續(xù)的交換機(jī)創(chuàng)建和配置等操作。搭建OpenvSwitch底層開發(fā)配置文件實(shí)現(xiàn)原理XML格式的配置文件具有良好的通用性,不同的虛擬化管理工具都可以識別和處理,方便在不同環(huán)境中使用。通用性Libvirt工具采用XML格式的文件來描述虛擬機(jī)的特征,包括虛擬機(jī)的名稱、CPU、內(nèi)存、磁盤、網(wǎng)卡等各種信息。XML的結(jié)構(gòu)化特點(diǎn)使得配置信息清晰易讀。創(chuàng)建虛擬機(jī)的多種方法,如KVM自帶命令行工具、virsh命令、virt-manager等,基本上都是通過開源的Libvirt來開發(fā)的。Libvirt是實(shí)現(xiàn)虛擬機(jī)配置的核心工具。用戶可以通過修改XML配置文件來對虛擬機(jī)進(jìn)行管理,如調(diào)整資源分配、添加或刪除設(shè)備等。XML描述管理方式配置文件設(shè)置流程設(shè)置虛擬機(jī)配置文件的流程

domain:XML配置文件的根元素,用于配置運(yùn)行此虛擬機(jī)的hypervisor的類型。(屬性type為虛擬化中虛擬機(jī)的類型。openEuler虛擬化中的屬性值為kvm。)

name:虛擬機(jī)的名稱。XML配置文件格式(1)計算配置。虛擬機(jī)的名稱為一個字符串,同一個主機(jī)上的虛擬機(jī)名稱不能重復(fù),虛擬機(jī)的名稱由數(shù)字、字母、“_”“-”“:”中的一種或多種組成,但不支持全數(shù)字的字符串,且虛擬機(jī)名稱不超過64個字符。虛擬CPU和虛擬內(nèi)存的常用配置包含以下元素。

①vcpu:虛擬處理器的個數(shù)。

②memory:虛擬內(nèi)存的大小。(屬性unit:指定內(nèi)存單位,屬性值支持KiB、MiB、GiB、TiB等。)

③cpu:虛擬處理器模式。(屬性mode:表示虛擬CPU的模式。)

④子元素topology:元素cpu的子元素,用于描述虛擬CPU模式的拓?fù)浣Y(jié)構(gòu)。子元素topology的屬性socket、cores、threads分別描述了虛擬機(jī)具有多少個cpusocket,每個cpusocket中包含多少個處理器核心(Core),每個處理器核心具有多少個超線程(Thread),屬性值為正整數(shù)且三者的乘積等于虛擬CPU的個數(shù)。

⑤子元素model:元素cpu的子元素,當(dāng)mode為custom時用于描述CPU的模型。

⑥子元素feature:元素cpu的子元素,當(dāng)mode為custom時用于描述某一特性的使能情況。其中,屬性name表示特性的名稱,屬性policy表示某一特性的使能控制策略。

force:表示強(qiáng)制使能某一特性,無論主機(jī)CPU是否支持某一特性。

require:表示使能某一特性,當(dāng)主機(jī)CPU不支持這一特性并且hypervisor不支持模擬這一特性時,創(chuàng)建虛擬機(jī)失敗。

optional:表示某一特性的使能情況與主機(jī)上某一特性的使能情況保持一致。

disable:禁用某一特性。

forbid:禁用某一特性,當(dāng)主機(jī)支持這一特性時創(chuàng)建虛擬機(jī)失敗。

XML配置文件格式(2)存儲設(shè)備配置。XML配置文件可以配置虛擬存儲設(shè)備信息,包括軟盤、磁盤、光盤等存儲介質(zhì)及其存儲類型等信息,下面介紹存儲設(shè)備的配置方法。元素屬性含義屬性值及其含義disktype指定后端存儲介質(zhì)類型block:塊設(shè)備file:文件設(shè)備dir:目錄路徑device指定呈現(xiàn)給虛擬機(jī)的存儲介質(zhì)disk:磁盤(默認(rèn))floppy:軟盤cdrom:光盤disk常見的屬性子元素子元素含義屬性說明source指定后端存儲介質(zhì),與disk元素的屬性type指定類型相對應(yīng)file:對應(yīng)file類型,值為對應(yīng)文件的完全限定路徑dev:對應(yīng)block類型,值為對應(yīng)主機(jī)設(shè)備的完全限定路徑dir:對應(yīng)dir類型,值為用作磁盤目錄的完全限定路徑driver指定后端驅(qū)動的詳細(xì)信息type:磁盤格式的類型,常用的有.raw和.qcow2,需要與source的格式一致io:磁盤I/O模式,支持“native”和“threads”值cache:磁盤的cache模式,可選值有“none”“writethrough”“directsync”等iothread:指定為磁盤分配的I/O線程target指磁盤呈現(xiàn)給虛擬機(jī)的總線和設(shè)備dev:指定磁盤的邏輯設(shè)備名稱,如SCSI、SATA、USB類型總線常用命名習(xí)慣為sd[a-p],IDE類型設(shè)備磁盤常用命名習(xí)慣為hd[a-d]bus:指定磁盤設(shè)備的類型,常見的有“scsi”“usb”“sata”“virtio”等類型boot表示此磁盤可以作為啟動盤使用order:指定磁盤的啟動順序readonly表示磁盤具有只讀屬性,磁盤內(nèi)容不可以被虛擬機(jī)修改,通常與光驅(qū)結(jié)合使用

disk常見子元素及子元素屬性XML配置文件格式(3)網(wǎng)絡(luò)設(shè)備配置。通過XML配置文件可以配置虛擬網(wǎng)絡(luò)設(shè)備,包括ethernet模式、bridge模式、vhostuser模式等,下面介紹虛擬網(wǎng)卡設(shè)備的配置方法。XML配置文件中使用元素interface的屬性type表示虛擬網(wǎng)卡的模式,可選的值有ethernet、bridge、vhostuser等bridge模式虛擬網(wǎng)卡常用子元素及其屬性XML配置文件格式(4)總線配置??偩€是計算機(jī)各個部件之間進(jìn)行信息通信的通道。外部設(shè)備需要掛載到對應(yīng)的總線上,每個設(shè)備都會被分配一個唯一地址(由子元素address指定),通過總線網(wǎng)絡(luò)完成與其他設(shè)備或CPU的信息交換。常見的設(shè)備總線有ISA總線、PCI總線、USB總線、SCSI總線、PCIe總線。PCIe總線是一種典型的樹結(jié)構(gòu),具有比較好的擴(kuò)展性,總線之間通過控制器關(guān)聯(lián),這里以PCIe總線為例介紹如何為虛擬機(jī)配置總線拓?fù)洹T贚ibvirt的XML配置中,每個控制器元素(控制器controller)可以表示一個總線,根據(jù)虛擬機(jī)架構(gòu)的不同,一個控制器上通??梢話燧d一個或多個控制器或設(shè)備。這里介紹控制器元素常用的屬性和子元素。

屬性type:控制器必選屬性,表示總線類型,常用取值有pci、usb、scsi、virtio-serial、fdc、ccid。

屬性index:控制器必選屬性,表示控制器的總線bus編號(編號從0開始),可以在地址元素address中使用。

屬性model:控制器必選屬性,表示控制器的具體型號,其可取的值與控制器類型type的值相關(guān)。

子元素address:為設(shè)備或控制器指定其在總線網(wǎng)絡(luò)中的掛載位置。子元素address的屬性type用于表示設(shè)備地址類型,常用取值有pci、usb、drive。子元素address的type類型不同,對應(yīng)的含義也不同。

子元素model:控制器具體型號的名稱。子元素model的屬性name用于指定控制器具體型號的名稱,和父元素controller中的屬性model對應(yīng)。XML配置文件格式虛擬機(jī)不同狀態(tài)及轉(zhuǎn)換規(guī)則虛擬機(jī)生命周期介紹虛擬機(jī)主要有未定義、關(guān)閉、運(yùn)行、暫停、保存、崩潰等幾種狀態(tài)。這些狀態(tài)反映了虛擬機(jī)在不同階段的運(yùn)行情況,對于合理管理虛擬機(jī)具有重要意義。在Libvirt中,通過Name、UUID、ID表示虛擬機(jī)的標(biāo)識,可對特定虛擬機(jī)進(jìn)行操作。這些標(biāo)識是唯一的,確保了在同一主機(jī)上可以準(zhǔn)確地識別和管理每個虛擬機(jī)。狀態(tài)種類虛擬機(jī)狀態(tài)概述狀態(tài)意義狀態(tài)標(biāo)識狀態(tài)轉(zhuǎn)換了解虛擬機(jī)的不同狀態(tài)有助于用戶更好地管理虛擬機(jī),根據(jù)不同狀態(tài)進(jìn)行相應(yīng)的操作。例如,在虛擬機(jī)處于關(guān)閉狀態(tài)時,可以進(jìn)行啟動操作;在虛擬機(jī)處于運(yùn)行狀態(tài)時,可以進(jìn)行監(jiān)控和管理操作。虛擬機(jī)不同狀態(tài)之間可以相互轉(zhuǎn)換,但必須滿足一定規(guī)則。這些規(guī)則確保了虛擬機(jī)的正常運(yùn)行和管理,避免了因狀態(tài)轉(zhuǎn)換不當(dāng)而導(dǎo)致的問題。與暫停狀態(tài)類似,其運(yùn)行狀態(tài)被保存在持久性存儲介質(zhì)中,可以恢復(fù)到運(yùn)行狀態(tài)。保存狀態(tài)可以在需要時將虛擬機(jī)的運(yùn)行狀態(tài)保存下來,以便在后續(xù)恢復(fù)使用。保存虛擬機(jī)處于運(yùn)行狀態(tài),正在執(zhí)行各種任務(wù)。在運(yùn)行狀態(tài)下,可以對虛擬機(jī)進(jìn)行監(jiān)控、管理和配置等操作。運(yùn)行虛擬機(jī)具體狀態(tài)虛擬機(jī)運(yùn)行被掛起,其運(yùn)行狀態(tài)被臨時保存在內(nèi)存中,可以恢復(fù)到運(yùn)行狀態(tài)。暫停狀態(tài)通常用于臨時停止虛擬機(jī)的運(yùn)行,以便進(jìn)行一些維護(hù)操作暫停虛擬機(jī)已經(jīng)被定義但未運(yùn)行,或者虛擬機(jī)被終止。關(guān)閉狀態(tài)的虛擬機(jī)無ID標(biāo)識,此時可以進(jìn)行啟動、刪除等操作關(guān)閉虛擬機(jī)未定義或未創(chuàng)建,即Libvirt認(rèn)為該虛擬機(jī)不存在。在這種狀態(tài)下,虛擬機(jī)沒有任何配置信息,也無法進(jìn)行任何操作。未定義通常由于內(nèi)部錯誤導(dǎo)致虛擬機(jī)崩潰,不可恢復(fù)到運(yùn)行狀態(tài)崩潰狀態(tài)轉(zhuǎn)換可能會對虛擬機(jī)的運(yùn)行產(chǎn)生影響,例如在轉(zhuǎn)換過程中可能會丟失一些數(shù)據(jù)或?qū)е绿摂M機(jī)出現(xiàn)故障。因此,在進(jìn)行狀態(tài)轉(zhuǎn)換時,需要謹(jǐn)慎操作,并做好數(shù)據(jù)備份和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論