日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

云计算之虚拟化技术

發(fā)布時間:2023/12/9 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云计算之虚拟化技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載:https://www.jianshu.com/p/312056e70387?from=timeline

?云叔和云計算?關(guān)注

?0.1?2017.12.10 13:32*?字數(shù) 3194?閱讀 7608評論 0喜歡 5

通過前幾篇文章的閱讀,相信大家對云計算概念、架構(gòu)和技術(shù)有了一定的認識。那么,我們這里來談?wù)勗朴嬎愕暮诵募夹g(shù)之一:虛擬化。

在講虛擬化技術(shù)前,我們先來學(xué)習(xí)幾個概念:

(1)物理平臺----實現(xiàn)虛擬技術(shù)的真實物理硬件和操作系統(tǒng)平臺。

(2)虛擬平臺----在物理平臺上,虛擬出來的運行不同操作系統(tǒng)的各種虛擬機。

(3)VMM----虛擬機監(jiān)視器,一種監(jiān)控和管理虛擬機運行的核心軟件層,也叫Hypervisor。

(4)宿主機----真實的物理服務(wù)器,上面可以運行虛擬出來的虛擬機。

(5)客戶機----就是指從宿主機上虛擬出來的虛擬機。

?

1 什么是虛擬化?

云計算的核心技術(shù)之一就是虛擬化技術(shù)。所謂虛擬化,是指通過虛擬化技術(shù)將一臺計算機虛擬為多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨立的空間內(nèi)運行而互不影響,從而顯著提高計算機的工作效率。

虛擬化的核心軟件VMM,是一種運行在物理服務(wù)器和操作系統(tǒng)之間的中間層軟件。VMM是一種在虛擬環(huán)境中的“元”操作系統(tǒng)。他們可以訪問服務(wù)器上包括CPU、內(nèi)存、磁盤、網(wǎng)卡在內(nèi)的所有物理設(shè)備。VMM不但協(xié)調(diào)著這些硬件資源的訪問,也同時在各個虛擬機之間施加防護。當(dāng)服務(wù)器啟動并執(zhí)行VMM時,它會加載所有虛擬機客戶端的操作系統(tǒng)同時會分配給每一臺虛擬機適量的內(nèi)存,CPU,網(wǎng)絡(luò)和磁盤。

2 虛擬化方式

虛擬化技術(shù)有很多實現(xiàn)方式,比如根據(jù)虛擬化的程度和級別,有軟件虛擬化和硬件虛擬化,全虛擬化和半虛擬化。

2.1軟件虛擬化

軟件虛擬化,顧名思義,就是采用純軟件的方法在在現(xiàn)有的物理平臺上實現(xiàn)物理平臺訪問的截獲和模擬,該物理平臺往往不支持硬件虛擬化。

常見的軟件虛擬化技術(shù)QEMU,是通過純軟件來仿真X86平臺處理器的指令,然后解碼和執(zhí)行,該過程并不在物理平臺上直接執(zhí)行,而是通過軟件模擬實現(xiàn),因此往往性能比較差,但是可以在同一平臺上模擬出不同架構(gòu)平臺的虛擬機。

VMware則采用了動態(tài)二進制翻譯技術(shù)。VMM在可控的范圍內(nèi),允許客戶機的指令在可控的范圍內(nèi)直接運行。客戶機指令在運行前會被VMM掃描,其中突破VMM限制的指令被動態(tài)替換為可以在物理平臺上直接運行的安全指令,或者替換為對VMM的軟件調(diào)用。因此其性能上比QEMU有大幅提升,但是其失去了跨平臺虛擬化的能力。

2.2硬件虛擬化

硬件虛擬化,簡單來說,就是物理平臺本身提供了對特殊指令的截獲和重定向的硬件支持,新的硬件會提供額外的資源來幫助軟件實現(xiàn)對關(guān)鍵硬件資源的虛擬化,從而提升性能。

比如X86平臺,CPU帶有特別優(yōu)化過的指令集來控制虛擬過程,通過這些指令集,VMM會將客戶機置于一種受限模式下運行,一旦客戶機試圖訪問硬件資源,硬件會暫??蛻魴C的運行,將控制權(quán)交回給VMM處理。同時,VMM還可以利用硬件的虛擬化增強技術(shù),將客戶機對硬件資源的訪問,完全由硬件重定向到VMM指定的虛擬資源。

由于硬件虛擬化可提供全新的架構(gòu),支持操作系統(tǒng)直接在上面運行,無需進行二進制翻譯轉(zhuǎn)換,減少的性能開銷,極大地簡化了VMM的設(shè)計,從而使VMM可以按標(biāo)準編寫,通用性更好,性能更強。

需要說明的是,硬件虛擬化技術(shù)是一套解決方案,完整的情況需要CPU、主板芯片組、BIOS和軟件的支持。Intel在其處理器產(chǎn)品線中實現(xiàn)了Intel VT虛擬化技術(shù)(包括Intel VT-x/d/c)。AMD也同樣實現(xiàn)了其芯片級的虛擬化技術(shù)AMD-V。

2.3全虛擬化

完全虛擬化技術(shù)又叫硬件輔助虛擬化技術(shù),最初所使用的虛擬化技術(shù)就是全虛擬化(Full Virtualization)技術(shù),它在虛擬機(VM)和硬件之間加了一個軟件層Hypervisor,或者叫做虛擬機管理程序或虛擬機監(jiān)視器(VMM)。

完全虛擬化技術(shù)幾乎能讓任何一款操作系統(tǒng)不用改動就能安裝到虛擬服務(wù)器上,而它們不知道自己運行在虛擬化環(huán)境下。主要缺點是,性能方面不如裸機,因為VMM需要占用一些資源,給處理器帶來開銷。

2.4半虛擬化

半虛擬化技術(shù)是后來才出現(xiàn)的技術(shù),也叫做準虛擬化技術(shù),現(xiàn)在比較熱門,它就是在全虛擬化的基礎(chǔ)上,把客戶操作系統(tǒng)進行了修改,增加了一個專門的API,這個API可以將客戶操作系統(tǒng)發(fā)出的指令進行最優(yōu)化,即不需要VMM耗費一定的資源進行翻譯操作。因此VMM的工作負擔(dān)變得非常的小,因此整體的性能也有很大的提高。不過缺點就是,要修改包含該API的操作系統(tǒng),但是對于某些不含該API的操作系統(tǒng)(主要是Windows)來說,就不行能用這種方法。

半虛擬化技術(shù)的優(yōu)點是性能高。經(jīng)過半虛擬化處理的服務(wù)器可與VMM協(xié)同工作,其響應(yīng)能力幾乎不亞于未經(jīng)過虛擬化處理的服務(wù)器。它的客戶操作系統(tǒng)(Guest OS)集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因為操作系統(tǒng)自身能夠與虛擬進程進行很好的協(xié)作。

3 虛擬化實現(xiàn)

虛擬化技術(shù)指的是軟件層面的實現(xiàn)虛擬化的技術(shù),整體上分為開源虛擬化和商業(yè)虛擬化兩大陣營。典型的代表有:Xen,KVM,WMware,Hyper-V、Docker容器等。

這里介紹一下開源的KVM和Xen以及微軟的Hyper-V技術(shù)。

3.1 KVM

?

KVM(Kernel-based Virtual Machine)是基于內(nèi)核的虛擬機,KVM是集成到Linux內(nèi)核的VMM,是X86架構(gòu)且硬件支持虛擬化技術(shù)(Intel VT或AMD-V)的Linux的全虛擬化解決方案。它是Linux的一個很小的模塊,利用Linux做大量的事,如任務(wù)調(diào)度、內(nèi)存管理與硬件設(shè)備交互等。

KVM本身不執(zhí)行任何模擬,需要用戶控件程序通過/dev/kvm接口設(shè)置一個客戶機的虛擬虛擬地址空間,向它提供模擬的I/O,并將其視頻顯示映射回宿主機的顯示屏。

KVM繼承了Linux系統(tǒng)管理內(nèi)存的諸多特性,比如,分配給虛擬使用的內(nèi)存可以被交換至交換空間、能夠使用大內(nèi)存頁以實現(xiàn)更好的性能,以及對NUMA的支持能夠讓虛擬機高效訪問更大的內(nèi)存空間等。

KVM基于Intel的EPT(ExtendedPage Table)或AMD的RVI(Rapid Virtualization Indexing)技術(shù)可以支持更新的內(nèi)存虛擬功能,這可以降低CPU的占用率,并提供較好的吞吐量。此外,KVM還借助于KSM(Kernel Same-pageMerging)這個內(nèi)核特性實現(xiàn)了內(nèi)存頁面共享。KSM通過掃描每個虛擬機的內(nèi)存查找各虛擬機間相同的內(nèi)存頁,并將這些內(nèi)存頁合并為一個被各相關(guān)虛擬機共享的單獨頁面。在某虛擬機試圖修改此頁面中的數(shù)據(jù)時,KSM會重新為其提供一個新的頁面副本。實踐中,運行于同一臺物理主機上的具有相同GuestOS的虛擬機之間出現(xiàn)相同內(nèi)存頁面的概率是很的,比如共享庫、內(nèi)核或其它內(nèi)存對象等都有可能表現(xiàn)為相同的內(nèi)存頁,因此,KSM技術(shù)可以降低內(nèi)存占用進而提高整體性能。

3.2 Xen

?

Xen是一個基于X86架構(gòu)、發(fā)展最快、性能最穩(wěn)定、占用資源最少的開源虛擬化技術(shù)。在Xen使用的方法中,沒有指令翻譯。這是通過兩種方法之一實現(xiàn)的。第一,使用一個能理解和翻譯虛擬操作系統(tǒng)發(fā)出的未修改指令的CPU(此方法稱作完全虛擬化)。另一種,修改操作系統(tǒng),從而使它發(fā)出的指令最優(yōu)化,便于在虛擬化環(huán)境中執(zhí)行(此方法稱作準虛擬化)。

在Xen環(huán)境中,主要有兩個組成部分。一個是虛擬機監(jiān)控器(VMM)。VMM層在硬件與虛擬機之間,是必須最先載入到硬件的第一層。Hypervisor載入后,就可以部署虛擬機了。在Xen中,虛擬機叫做“domain”。在這些虛擬機中,其中一個扮演著很重要的角色,就是domain0,具有很高的特權(quán)。通常,在任何虛擬機之前安裝的操作系統(tǒng)才有這種特權(quán)。

Domain0要負責(zé)一些專門的工作。由于hypervisor中不包含任何與硬件對話的驅(qū)動,也沒有與管理員對話的接口,這些驅(qū)動就由domain0來提供了。通過domain0,管理員可以利用一些Xen工具來創(chuàng)建其它虛擬機(Xen術(shù)語叫domainU)。這些domainU也叫無特權(quán)domain。這是因為在基于i386的CPU架構(gòu)中,它們絕不會享有最高優(yōu)先級,只有domain0才可以。

3.3 Hyper-V

Hyper-V采用微內(nèi)核的架構(gòu),兼顧了安全性和性能的要求。Hyper-V底層的VMM運行在最高的特權(quán)級別下,微軟將其稱為ring -1(而Intel則將其稱為root mode),而虛擬機的OS內(nèi)核和驅(qū)動運行在ring 0,應(yīng)用程序運行在ring 3下,這種架構(gòu)就不需要采用復(fù)雜的BT(二進制特權(quán)指令翻譯)技術(shù),可以進一步提高安全性。

由于Hyper-V底層的VMM代碼量很小,不包含任何第三方的驅(qū)動,非常精簡,所以安全性更高。Hyper-V采用基于VMbus的高速內(nèi)存總線架構(gòu),來自虛機的硬件請求(顯卡、鼠標(biāo)、磁盤、網(wǎng)絡(luò)),可以直接經(jīng)過VSC,通過VMbus總線發(fā)送到根分區(qū)的VSP,VSP調(diào)用對應(yīng)的設(shè)備驅(qū)動,直接訪問硬件,中間不需要Hypervisor的幫助。

這種架構(gòu)效率很高,不再像以前的Virtual Server,每個硬件請求,都需要經(jīng)過用戶模式、內(nèi)核模式的多次切換轉(zhuǎn)移。更何況Hyper-V現(xiàn)在可以支持Virtual SMP,Windows Server 2008虛機最多可以支持4個虛擬CPU;而Windows Server 2003最多可以支持2個虛擬CPU。每個虛機最多可以使用64GB內(nèi)存,而且還可以支持X64操作系統(tǒng)。

總結(jié)

以上是生活随笔為你收集整理的云计算之虚拟化技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。