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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

虚拟化技术

發(fā)布時間:2024/6/21 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 虚拟化技术 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、虛擬化基本知識

計算機的基本部件

控制集:CPU

存儲:mem,

I/O:

  keyboard,moitor

虛擬化就是將一組物理平臺,虛擬化為多組不同的,彼此之間隔離的平臺。

CPU在OS安裝以后就已經(jīng)被虛擬化了,每個進程認為自己是獨占CPU,內(nèi)存的。CPU的虛擬化就是將其分為時間片

用戶空間的進程需要使用硬件,

cpu執(zhí)行方式:

最外層運行普通指令環(huán)3,用戶空間的執(zhí)行運行在這里

最內(nèi)存環(huán)0:也叫特權(quán)環(huán),所有特權(quán)指令,cpu中敏感寄存器,尤其是硬件管控寄存機需要由環(huán)0中指令才能執(zhí)行,也就是內(nèi)和空間在環(huán)0

環(huán)1與環(huán)2(但是在x86平臺上有些敏感指令也運行在這些環(huán)上運行)

運行在環(huán)3上的guest內(nèi)核如何調(diào)用硬件?

guest的cpu實現(xiàn)方式:

3、軟件模擬,創(chuàng)建一個進程或者一個線程模擬的cpu,讓guest使用

X86虛擬化面臨的常出的問題:

   1、特卻集壓縮:某些敏感指令,放在環(huán)1,環(huán)2上, 內(nèi)核運行在環(huán)0上,但是兼顧環(huán)1,環(huán)2,如果運用虛擬化,guestOS需要運行在環(huán)1,環(huán)2上。從而可以直接運行敏感指令,所以這些指令需要自行捕獲,
    才會避免guestOS避免執(zhí)行這些指令。 2、特卻集別名:guestOS操作系統(tǒng)實際運行在環(huán)1,環(huán)2上,但guestOS認為自己運行在環(huán)0,所以我們需要將環(huán)1,環(huán)2將其虛擬為環(huán)0.因此我們需要將其起名為環(huán)0 3、非特權(quán)敏感指令:x86平臺上有些敏感指令運行在環(huán)1,環(huán)2上。
4、地址空間壓縮:每一個虛擬機所得到的內(nèi)存地址空間中必須保留一部分給vmm(虛擬機監(jiān)控器,比如關(guān)閉虛擬機之類的命令)使用。說明有些vmm直接運行在GuestOS當中的。HOST主機中。vmm會進入虛
    擬化和退出虛擬化。所以guestOS使用的內(nèi)存需要給vmm保留一部分,實際使用要比看上去少,使用的地址被壓縮了。  5、靜默特權(quán)失敗:X86的某些特卻指令在執(zhí)行失敗后不會返回錯誤的。所以vmm不能捕獲這些錯誤。我們就不知道各個虛擬機實例運行的狀態(tài)。  6、屏蔽虛擬化:在虛擬化場景中,屏蔽中斷,和非屏蔽中斷,guestOS對于特權(quán)資源的每次訪問都會觸發(fā)處理器異常,(中斷發(fā)生,處理器必須要要處理)都需要在中斷時異常需要由vmm處理,
然后再把結(jié)果送個guest中。來回切換導(dǎo)致性能降低。

  

4、CPU實現(xiàn)虛擬化方式:

  1、完全虛擬化

  BT技術(shù)提升虛擬化性能               二進制翻譯

    硬件層 ---> 環(huán)0(vmm) ----> 環(huán)1 (guestos 內(nèi)核)----> 環(huán)2 空閑 ---->環(huán)3(應(yīng)用程序)

    guestOS與vmm之間使用的二進制翻譯

這個平臺為完全虛擬化,guestOS不知道自己是虛擬化。這種虛擬化需要給每個guestOS虛擬機模擬一個環(huán)0,所以性能確實很厲害

  2、 半虛擬化:

硬件層 ---> 環(huán)0(vmm 與 guestos 內(nèi)核)) ----> 環(huán)1 、 環(huán)2 空閑 ---->環(huán)3(應(yīng)用程序)

   guestOS不會直接調(diào)用環(huán)0,特權(quán)指令需要使用VMM,這時guestOS知道自己是虛擬化。(hypercall調(diào)用請求)

guestOS的內(nèi)核被修改了。知道自己是虛擬化。windows不能運行在半虛擬化環(huán)境,因為不能修改close的操作系統(tǒng)

  

3、硬件虛擬化 hvm

cpu虛擬化

  硬件層 --->環(huán) -1 (vmm)-----> 環(huán)0( guestos 內(nèi)核) ----> 環(huán)1 、 環(huán)2 空閑 ---->環(huán)3(應(yīng)用程序)

  guestos內(nèi)核直接安裝在環(huán)0上,不用做修改,cpu設(shè)計時直接支持虛擬化,但是環(huán)0上沒有特權(quán)指令上,只能捕獲操作特權(quán)指令,然后交給環(huán)-1上的vmm來執(zhí)行。

  但是由于還是需要環(huán)-1 環(huán)0 來回切換,還是性能比半虛擬化要差一些

5、內(nèi)存虛擬化:

  正常的內(nèi)存使用就是被虛擬化的。

  指令和數(shù)據(jù)都是由內(nèi)存中獲取的。內(nèi)存本身就是由物理地址轉(zhuǎn)換成線性地址,(MMU來處理的)

MMU 工作原理:

  線性空間轉(zhuǎn)換成物理空間的關(guān)系存在頁表當中的。 (page table)

  每個進程給cpu發(fā)送指令時,cpu要將 page table 及時的加載到mmu,然后通過mmu va ---> pa的轉(zhuǎn)換

  虛擬化后的內(nèi)存虛擬化:

    GVA ---> GPA ---> HPA

    guestOS線性地址空間 -----> guestOS的物理地址空間 -----> HostOS的物理地址空間

   當guestOS中用戶空間訪問內(nèi)存中數(shù)據(jù),直接發(fā)送給HostOS cpu,此時由VMM捕獲到,HCPU通過MMU找到對應(yīng)的物理內(nèi)存地址后會把地址結(jié)果給到VMM,VMM在通知guestOS

    GPA的位置,然后guestOS到gpa中查找。

  后來inter X86 硬件支持(影子mmu),有2個MMU,每次訪問內(nèi)存地址會同時發(fā)給這兩個mmu,如果是虛擬機訪問的就直接返回給虛擬機HPA的地址,跳過了中間的GPA的轉(zhuǎn)換過程。

  tlb技術(shù):保存了va--->pa的對應(yīng)關(guān)系 ,加快MMU的轉(zhuǎn)換速度,但是如果多個guestOS時,為了不混淆多個虛擬機的地址對應(yīng)關(guān)系,所以需要都清除tlb

  后來又有了tagtlb ,這樣在tlb中增加了標記,標記著是那臺虛擬機的映射。

  

6、io虛擬化

本身就很慢,在虛擬化后更慢

IO虛擬化實現(xiàn)的方式借鑒于VMM模型

  type-1、type-2

  type1:

    虛擬機直接跑在硬件上,有一個實例是特權(quán)實例(dome0),管理其他的虛擬機

       =======> ,

io完全虛擬化 : guestOS調(diào)用dome0的虛擬硬盤接口,dome0然后再真正調(diào)用物理IO設(shè)備的接口,進行二次驅(qū)動,這種模擬IO性能比較差

io半虛擬化,前段分為兩半,一般在domeU中,后端在dome0上,前段簡單封裝送給后端,后端做訪問真正IO設(shè)備,進行IO設(shè)備的調(diào)用。

io由dome0自己調(diào)用。hv自己不會有過多的硬件驅(qū)動。所以要借助dome0 io 等各種驅(qū)動。

hypervisor自我實現(xiàn)驅(qū)動硬件,各個硬件廠商需要單獨開發(fā)給hv提供驅(qū)動,但是廠商不會專門給某個hv提供驅(qū)動的,所以hv需要自己開發(fā)驅(qū)動程序。但是硬件設(shè)備太多,自己開發(fā)硬件驅(qū)代價太大,

所以這種的虛擬化技術(shù)對于硬件的兼容性太差。 買服務(wù)器需要找好型號。

io虛擬化,是使用文件來模擬io設(shè)備。 dome0軟件模擬硬件真實的借口。

  type-2: 虛擬機跑在操作系統(tǒng)上

  

vmm不用自己提供任何驅(qū)動,只需要模擬各硬件,真正設(shè)備的驅(qū)動又host來提供

梳理:

各vmm對io的驅(qū)動有三種模式:

  類型1:半虛擬化,自主vmm:vmm自行提供驅(qū)動

      混合vmm:借助于外在OS提供驅(qū)動。XEN、VM

          1、依賴于外部OS提供特權(quán)域

           2、自我提供特權(quán)提供特權(quán)域

  類型2: 寄宿方式,有宿主機的VMM

IO虛擬化模型:

  純模擬,完全虛擬化

  半虛擬化

  透傳:無論是半虛擬化還是模擬都需要借助dome0來實現(xiàn)IO虛擬化的,透傳則是由guest直接使用硬件。dome0管理各硬件

  

另一種技術(shù):

SR-IOV:將一個硬件輪流給多個guestOS使用。

完全虛擬化:vm(類型2) vb kvm, vm-exsi(類型1)

半虛擬化:xen (類型1)

  

總結(jié)

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

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