日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著云計算技術的發(fā)展及其應用的普及和深入,云平臺資源的高效利用成為越來越重要的問題,而服務器虛擬化技術是云計算實現(xiàn)資源有效利用的關鍵技術。 云計算的云端系統(tǒng), 其實質上就是一個大型的分布式系統(tǒng)。 虛擬化通過在一個物理平臺上虛擬出更多的虛擬平臺, 而其中的每一個虛擬平臺則可以作為獨立的終端加入云端的分布式系統(tǒng)。 比起直接使用物理平臺, 虛擬化在資源的有效利用、 動態(tài)調配和高可靠性方面有著巨大的優(yōu)勢。

一、虛擬化技術

服務器擬化技術是指能夠在一臺物理服務器上運行多臺虛擬服務器的技術,并且上述虛擬服務器在用戶、應用軟件甚至操作系統(tǒng)看來,幾乎與物理服務器沒有區(qū)別,用戶可以在虛擬服務器上靈活地安裝任何軟件。除此以外,服務器虛擬化技術還應該確保上述多個虛擬服務器之間的數(shù)據(jù)隔離,資源占用可控。

在X86平臺虛擬化技術中,新引入的虛擬化層通常稱為虛擬機監(jiān)控器(Virtual machineMonitor, VMM), 也叫做Hypervisor。 虛擬機監(jiān)控器運行的環(huán)境,也就是真實的物理平臺,稱之為宿主機(host machine)。而虛擬出來的平臺通常稱為客戶機(guest machine),里面運行的系統(tǒng)對應地也稱為客戶機操作系統(tǒng),如下圖:

虛擬化技術與原理簡介

 

1974年,Popek和Goldberg在一篇論文中定義了"經(jīng)典虛擬化(Classical virtualization)"的基本需求,他們認為,一款真正意義上的VMM至少要符合三個方面的標準:

等價執(zhí)行(Equivalient execution):除了資源的可用性及時間上的不同之外,程序在虛擬化 環(huán)境中及真實環(huán)境中的執(zhí)行是完全相同的。

性能(Performance):指令集中的大部分指令要能夠直接運行于CPU上。

安全(Safety):VMM要能夠完全控制系統(tǒng)資源。



 

二、 CPU虛擬化技術實現(xiàn)

軟件虛擬化和硬件虛擬化

1)軟件虛擬化

純軟件虛擬化,顧名思義,就是用純軟件的方法在現(xiàn)有的物理平臺上(往往并不支持硬件虛擬化) 實現(xiàn)對物理平臺訪問的截獲和模擬。常見的軟件虛擬機例如QEMU,它是通過純軟件來仿真X86平臺處理器的取值、解碼和執(zhí)行,客戶機的指令并不在物理平臺上直接執(zhí)行。由于所有的指令都是軟件模擬的,因此性能往往比較差,但是可以在同一平臺上模擬不同架構平臺的虛擬機。

VMWare的軟件虛擬化則使用了動態(tài)二進制翻譯(BT)的技術,與QEMU這種模擬的方式不同,BT是一種加速虛擬化的方案之一,另一種常見的虛擬化加速方案就是硬件輔助虛擬化技術。BT就是在虛擬機監(jiān)控機可控制的范圍內(nèi),允許客戶機的指令在物理平臺上直接運行。但是,客戶機指令在運行前會被虛擬機監(jiān)控機掃描,其中突破虛擬機監(jiān)控機限制的指令會被動態(tài)替換為可以在物理平臺上直接運行的安全指令,或者替換為對虛擬機監(jiān)控器的軟件調用。這樣做的好處是比純軟件模擬性能有大幅的提升(模擬其根本就是通過一個軟件做出一個假的,可以是不存在的;而虛擬是把這個設備通過某種切割或其他方式虛擬出去提供一定程度的服務), 但是也同時失去了跨平臺虛擬化的能力。

有了BT技術后,Guest的用戶空間運行在CPU ring 3上,而Guest的內(nèi)核空間運行在了CPU ring 1上,Host的內(nèi)核空間運行在CPU ring 0上。BT就監(jiān)控在CPU ring 1上,隨時將Guest內(nèi)核的調用給轉換為特權指令調用。當然CPU ring 1并沒有被使用,BT這種技術讓虛擬化性能得到了大大的提升。但是BT有一個大大的缺點就是無法跨平臺,使用QEMU這種模擬器不管底層硬件是什么,能模擬各種CPU架構平臺,如PowerPC、ARM等;但是BT卻無法做到這點,BT強烈依賴底層架構,比如底層是X86的那么只能創(chuàng)建X86 CPU的虛擬機。

在純軟件虛擬化解決方案中,VMM在軟件套件中的位置是傳統(tǒng)意義上操作系統(tǒng)所處的位置,而操作系統(tǒng)的位置是傳統(tǒng)意義上應用程序所處的位置, 這種轉換必然會增加系統(tǒng)的復雜性。軟件堆棧的復雜性增加意味著,這些環(huán)境難于管理,因而會加大確保系統(tǒng)可靠性和安全性的困難。

2)硬件輔助虛擬化

硬件輔助虛擬化(HVM),簡而言之,就是物理平臺本身提供了對特殊指令的截獲和重定向的硬件支持,甚至,新的硬件會提供額外的資源來幫助軟件實現(xiàn)對關鍵硬件資源的虛擬化,從而提升性能。可以理解為CPU額外增加了一個ring -1環(huán)專門提供給虛擬機運行的。以X86平臺的虛擬化為例,支持虛擬技術的X86 CPU帶有特別優(yōu)化過的指令集來控制虛擬過程,通過這些指令集,VMM會很容易將客戶機置于一種受限制的模式下運行,一旦客戶機試圖訪問物理資源,硬件會暫停客戶機的運行,將控制權交回給VMM處理。VMM還可以利用硬件的虛擬化增強機制,將客戶機在受限模式下對一些特定資源的訪問,完全由硬件重定向到VMM指定的虛擬資源,整個過程不需要暫停客戶機的運行和VMM軟件的參與。

由于虛擬化硬件可提供全新的架構,支持操作系統(tǒng)直接在上面運行,無需進行二進制轉換,減少了相關的性能開銷,極大簡化了VMM 設計,進而使VMM能夠按通用標準進行編寫, 性能更加強大。

需要說明的是, 硬件虛擬化技術是一套解決方案。完整的情況需要CPU、主板芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統(tǒng)本身。即使只是CPU支持虛擬化技術,在配合VMM軟件的情況下,也會比完全不支持虛擬化技術的系統(tǒng)有更好的性能。鑒于虛擬化的巨大需求和硬件虛擬化產(chǎn)品的廣闊前景,Intel一直都在努力完善和加強自己的硬件虛擬化產(chǎn)品線。自2005年末,Intel便開始在其處理器產(chǎn)品線中推廣應用Intel Virtualization Technology(IntelVT)虛擬化技術,發(fā)布了具有IntelVT虛擬化技術的一系列處理器產(chǎn)品,包括桌面的Pentium和Core系列,還有服務器的Xeon至強和Itanium安騰。Intel一直保持在每一代新的處理器架構中優(yōu)化硬件虛擬化的性能和增加新的虛擬化技術。現(xiàn)在市面上,從桌面的Core i3/5/7,到服務器端的E3/5/7/9,幾乎全部都支持Intel VT技術。可以說, 在不遠的將來, Intel VT很可能會成為所有Intel處理器的標準配置。當然AMD的CPU也都支持虛擬化技術。

3)總結

硬件輔助虛擬化貌似比BT技術更好,如果BT技術能夠讓虛擬機性能達到物理機80%的性能的話,那么硬件輔助虛擬化(HVM)就能夠讓虛擬機性能達到物理機85%左右。當然這中間的轉換還是需要的,只不過是由硬件直接完成了,僅此而已。


全虛擬化和半虛擬化

1)Full-virtualization(全虛擬化)

全虛擬化為客戶機提供了完整的虛擬X86平臺, 包括處理器、 內(nèi)存和外設, 支持運行任何理論上可在真實物理平臺上運行的操作系統(tǒng), 為虛擬機的配置提供了最大程度的靈活性。不需要對客戶機操作系統(tǒng)做任何修改即可正常運行任何非虛擬化環(huán)境中已存在基于X86平臺的操作系統(tǒng)和軟件,這也是全虛擬化無可比擬的優(yōu)勢。

在全虛擬化情況下,虛擬機并不知道自己運行在虛擬化環(huán)境下,是無感知的,安裝使用時跟在物理機上沒有什么區(qū)別。但是這種完全虛擬化中間需要軟件做支撐的,需要軟件去模擬提供所有的硬件資源,至少是這個CPU的特權指令需要用軟件去模擬的,因為你要讓各Guest并不知道自己運行在虛擬環(huán)境中,那么你就必須要提供一個帶有特權指令的CPU。

在虛擬化環(huán)境中,通常虛擬跟模擬是兩個概念,VMWare的動態(tài)二進制翻譯技術(BT)是虛擬的而QEMU軟件技術是模擬的。最大的區(qū)別在于,模擬通過軟件實現(xiàn)時需要模擬CPU ring 0-3,也就是需要轉換CPU ring 0-3所有的指令,而虛擬只需要轉換CPU ring 0特權指令即可。

當然不管上面說到的BT技術還是QEMU還是硬件輔助虛擬化技術都屬于完全虛擬化技術,都是需要指令轉換的,都是需要復雜的步驟才能完成的,如果我們能夠精簡這其中的步驟那么虛擬機的性能一定會有提升的。那么怎么精簡呢?這就是下面說的半虛擬化技術。

另外,在全虛擬化模式下:

CPU如果不支持硬件虛擬化技術:那么所有指令都是通過VMM虛擬的,通過VMM內(nèi)的BT動態(tài)翻譯技術把虛擬機要運行的特權指令轉換為物理指令集,然后到CPU上運行。

CPU如果支持硬件虛擬化技術:VMM運行ring -1,而GuestOS運行在ring 0。

2)Para-virtualization(半虛擬化)

軟件虛擬化可以在缺乏硬件虛擬化支持的平臺上完全通過VMM軟件來實現(xiàn)對各個虛擬機的監(jiān)控,以保證它們之間彼此獨立和隔離。 但是付出的代價是軟件復雜度的增加,和性能上的損失。減輕這種負擔的一種方法就是,改動客戶操作系統(tǒng),使它知道自己運行在虛擬環(huán)境下,能夠與虛擬機監(jiān)控機協(xié)同工作。這種方法就叫半虛擬化(para-virtualization)。虛擬機內(nèi)核明確知道自己是運行在虛擬化之上的,對于硬件資源的使用不再需要BT而是自己向VMM申請使用,如對于內(nèi)存或CPU的使用是直接向VMM申請使用,直接調用而非翻譯。就算對于I/O設備的使用它也可以通過Hyper Call(Hypervisor提供的系統(tǒng)調用)直接可以跟硬件打交道,減少了中間的翻譯步驟自然性能就好了,據(jù)說這種半虛擬化方式能夠讓虛擬化達到物理機90%的性能。本質上,半虛擬化弱化了對虛擬機特殊指令的被動截獲要求,將其轉化成客戶機操作系統(tǒng)的主動通知。但是,半虛擬化需要修改客戶機操作系統(tǒng)的源代碼來實現(xiàn)主動通知。

Xen是開源準虛擬化技術的一個例子,操作系統(tǒng)作為虛擬服務器在Xen Hypervisor上運行之前,它必須在內(nèi)核層面進行某些改變。因此,Xen適用于BSD、linux、Solaris及其他開源操作系統(tǒng),但不適合對像windows這些專有的操作系統(tǒng)進行虛擬化處理,因為它們不公開源代碼,所以無法修改其內(nèi)核。

3)總結

由于硬件輔助虛擬化的出現(xiàn),使得完全虛擬化在性能上也得到了提升。并且相比半虛擬化而言,完全虛擬化使用上更加簡化,虛擬過程對于Guest而言是透明的。所以完全虛擬化更加符合市場需求,比如后面說的KVM虛擬機。



三、虛擬化的運行模式

Type-I:直接運行在操作系統(tǒng)之上的虛擬化,模式如下圖:

虛擬化技術與原理簡介

 

如:Vmware workstations、Kvm等。

Type-II:直接運行在硬件之上的(提供各種硬件驅動),模式如下圖:

虛擬化技術與原理簡介

 

如:Vmware EXSI、Xen等。

但是Xen有點特別,雖然也是直接安裝在硬件之上,提供Hypervisor,但是只負責CPU、內(nèi)存、中斷,不提供I/O驅動,需要額外安裝一個虛擬機再安裝一個Linux系統(tǒng)用來管理I/O設備,如下圖:

虛擬化技術與原理簡介

 

四、其他類型

當然,除了上面提到的基于操作系統(tǒng)或直接基于硬件的虛擬化外,還有如下常見的類型。

容器虛擬化

基于內(nèi)核的虛擬化,所有的虛擬機都是一個獨立的容器,但共同運行硬件之上,使用著同一個內(nèi)核。優(yōu)點就是速度快,部署容易,缺點就是相互間的資源相互隔離比較麻煩,但現(xiàn)在市場也都有了相對成熟的解決方案。如,如今大火的Docker,網(wǎng)上都有人說Docker具有取代虛擬化的勢頭。

模擬器虛擬化

通過模擬器模擬所有的硬件,如QEMU,KVM就是使用QEMU。

庫虛擬化

通過在操作系統(tǒng)之上模擬出不同系統(tǒng)的庫,如Linux上運行Wine就可以支持Windows上的軟件運行,Windows上運行Cywin就可以支持Linux上的軟件運行。因為現(xiàn)在操作系統(tǒng)都是遵循POSIX標準,所以各自提供的庫接口都是同一個標準,只需要在對應的平臺上運行一個可以提供對方庫的軟件,然后在此軟件之上運行針對對方系統(tǒng)編譯好的軟件即可。為什么要運行針對對方平臺編譯好的軟件,因為雖然庫統(tǒng)一了,但是各自的ABI(應用二進制接口)接口還是不同的。

分享到:
標簽:虛擬 技術
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定