精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

NFV關鍵技術:計算虛擬化之IO虛擬化

開發 開發工具 數據中心
現實中的外設資源是有限的,為了提高資源的利用率,滿足多個虛擬機操作系統對外部設備的訪問需求,VMM必須通過I/O虛擬化的方式來實現資源的復用,讓有限的資源能被多個虛擬機共享。

Labs 導讀

現實中的外設資源是有限的,為了提高資源的利用率,滿足多個虛擬機操作系統對外部設備的訪問需求,VMM必須通過I/O虛擬化的方式來實現資源的復用,讓有限的資源能被多個虛擬機共享。

1、IO虛擬化概述

如何將服務器上的物理設備虛擬化為多個邏輯設備,并將物理設備與邏輯設備解耦,使虛擬機可以在各個虛擬化平臺間無縫遷移,正是I/O虛擬化的目標。I/O虛擬化的基本要求主要有以下的三點:

  • 保真性,要求在虛擬化平臺下進行的I/O訪問與非虛擬化條件下的I/O訪問除了完成時間差別外,其它效果相同;
  • 安全性,要求各虛擬機操作系統只能訪問VMM分配給其的I/O資源,而各I/O設備也只能與屬于同一個虛擬機的其它資源進行交互,如存儲空間和CPU,而不能越界訪問屬于其它虛擬機的資源;
  • 性能,要求虛擬化系統下I/O訪問的性能與非虛擬化系統下的I/O訪問性能接近。

在這三個基本要求之中最為重要的就是安全性方面的要求,這是保證虛擬化環境可以正常運行的根本,只有首先滿足這一要求才能保證虛擬化I/O的保真性,對于性能的要求才會有意義。虛擬化環境下之所以會出現安全性的問題是因為虛擬機操作系統可見的地址并不是實際的機器物理地址,而是客戶物理地址,設備若無法獲知客戶物理地址和機器物理地址間的轉換關系,直接使用客戶物理地址進行內存訪問,這會導致非法地址訪問、破壞正常數據。

正是由于I/O虛擬化對于I/O空間安全隔離性方面的要求,所以對于虛擬機操作系統的I/O訪問操作一般都需要VMM的介入,而不允許虛擬機操作系統與I/O設備直接進行交互,導致虛擬機操作系統的I/O訪問會受到VMM干預,導致性能與非虛擬化環境有較大差距。而VMM介入之所以會導致性能嚴重損失的根本原因就是發生了上下文切換。

上下文切換分為兩種,虛擬機與虛擬機之間發生的上下文切換以及虛擬機與VMM之間發生的上下文切換。在I/O虛擬化中影響性能的就是虛擬機和VMM之間的上下文切換。虛擬機操作系統產生的I/O請求會被VMM截獲,VMM將I/O請求交由驅動域去處理,驅動域完成I/O請求要返回執行結果,這些過程都會造成上下文切換。虛擬機和VMM之間的上下文切換的開銷主要分為以下三個部分:

  • 直接開銷,這個部分主要由CPU的切換造成,CPU需要停滯虛擬機切換到VMM去執行,之后又要從VMM轉回虛擬機執行下一條指令。
  • 間接開銷,兩種環境的切換導致需要保存上下文環境。
  • 同步開銷,這個部分主要是VMM處理VM EXIT造成的。

因此,一旦發生大量的上下文切換,將嚴重影響I/O虛擬化的性能,尤其在I/O密集型的任務中,上下文切換導致的開銷往往是無法忍受的。為了解決性能的問題,通過DMA重映射、IOMMU等硬件輔助,實現了域間隔離和設備地址轉換,保證被分配給虛擬機的設備不會訪問不屬于該虛擬機的存儲器空間。

I/O虛擬化在具體實現上與CPU和內存虛擬化一樣,分為軟件與硬件虛擬化;在被虛擬機訪問的方式上,又分為共享模式與直接訪問模式。

2、軟件I/O虛擬化技術

軟件I/O虛擬化通過軟件模擬設備的方式,使得I/O設備資源能夠被多個虛擬機共享,該方式可使I/O設備的利用率得到極大的提高,并且可以做到物理設備與邏輯設備分離,具有良好的通用性,但由于該方式需要VMM的介入而導致多次上下文切換,使得I/O性能受到影響。其本質是VMM需要截獲虛擬機操作系統對外部設備的訪問請求,通過軟件的方式模擬出真實的物理設備的效果,這樣,虛擬機看到的實際只是一個虛擬設備,而不是真正的物理設備,這種模擬的方式就是I/O虛擬化的一種實現,下圖所示就是一個典型的虛擬機I/O模型。

為了達到虛擬化I/O的目的,VMM截獲客戶操作系統對設備的訪問請求,然后通過軟件的方式來模擬真實設備的效果。I/O虛擬化中的設備對軟件來說,就是一堆的寄存器(I/O端口)和I/O內存,以及中斷和DMA。而設備虛擬化的過程,就是模擬設備的這些寄存器和內存,然后截獲Guest OS里面對I/O端口和寄存器的訪問,然后通過軟件的方式來模擬真實的硬件。軟件I/O虛擬化需要解決3個問題:

設備發現: 需要控制各虛擬機能夠訪問的設備。

所謂設備發現就是VMM必須采取某種方式,使得虛擬機能夠發現虛擬設備。這樣,虛擬機才能夠加載相應的驅動程序。

在沒有虛擬化的系統中,由BIOS或者操作系統通過遍歷PCI總線上的所有設備完成設備發現過程,而在虛擬化系統中,則由VMM決定向虛擬機呈現哪些設備。具體過程要根據設備是否存在于物理總線上來進行。對于一個真實存在于物理總線的設備,如果是不可枚舉的類型,例如PS/2鍵盤,由于這類設備是硬編碼固定的,驅動程序會通過其特定的訪問方式來檢查設備是否存在,因此VMM只要在相應端口上模擬出該設備,虛擬機即可成功檢測到它;如果是可枚舉的類型,譬如PCI設備或者PCIe設備,這種設備通常定義了完整的設備發現方法,并允許BIOS或者操作系統在設備枚舉過程中通過PCI配置空間對其資源進行配置。因此VMM不僅要模擬這些設備本身的邏輯,還要模擬PCI總線的一些屬性,包括總線拓撲關系及相應設備的PCI配置空間,以便虛擬機OS在啟動時能夠發現這些設備。

VMM不僅可以模擬真實設備,還可以實際并不存在的虛擬設備。由于這類設備并沒有現實中的規范和模型與之相對應,因此完全由VMM決定它們的總線類型。這類虛擬設備可以掛載在已有PCI總線上,也可以完全自定義一套新的總線。若使用自定義的新總線,則必須在虛擬機中加載特殊的總線驅動程序,且影響虛擬機在不同虛擬化平臺的遷移性。

訪問截獲: 通過I/O端口對設備的訪問。

所謂訪問截獲就是虛擬機操作系統發現虛擬設備之后,虛擬機上的驅動程序就會按照特定接口訪問這個虛擬設備。驅動程序對于接口的調用必須能夠被VMM截獲,并能按照真實設備的行為進行模擬。

以分配到端口I/O資源的設備為例,由于CPU對于端口I/O資源的控制與指令流所處的特權級別和相關 I/O位圖有關,而在虛擬化環境中虛擬機OS又被降級到非特權級別,因此OS能否訪問設備的I/O端口就完全由I/O位圖決定。對于沒有直接分配給虛擬機的設備,VMM就可以把它的I/O端口在I/O位圖中關閉,當 虛擬機操作系統在訪問該端口時,就會拋出一個保護異常,VMM即可獲得異常原因,并進而將請求發送給底層設備模擬器進行模擬,并異常訪問處理結果返回給虛擬機;如果該設備是直接分配給虛擬機,那么VMM就可以在I/O位圖中打開它的I/O端口,這樣虛擬機驅動程序就可以直接訪問該設備。

同理,對于分配到MMIO(Memory Mapped I/ O)資源的設備,比如某些PCIe設備,由于MMIO是系統物理地址空間的一部分,物理地址空間由頁表管理,因此VMM同樣可以通過控制MMIO相應的頁表項是否有效來截獲虛擬機操作系統對于MMIO資源的訪問。

設備模擬:通過軟件的方式模擬真實的物理設備

所謂設備模擬就是模擬設備的功能,內容十分多樣且復雜。對于像PS/2鍵盤、鼠標這樣的設備,VMM需要根據設備的接口規范模擬設備的所有行為,才能夠無需修改驅動就在虛擬機上展現出設備應有的效果。而對于磁盤存儲系統,則不必受限于實際的磁盤控制器以及具體磁盤類型和型號。比如,對IDE硬盤其I/O端口虛擬化時,底層可以是一塊磁盤,可以是一個分區,也可以是不同格式的文件;然后在其上實現一個專門的塊設備抽象層;最后在塊設備上使用文件系統,并引入一些真實硬件沒有的高級特性,例如:加密、備份、增量存儲等。

上述三個環節僅是VMM處理一個虛擬 機所發出I/O請求的流程。在實際中,系統的物理設備需要同時接受來自多個虛擬 機的I/O請求。因此,VMM還要將多個虛擬機的I/O請求合并為單獨一個I/O數據流發送給底層設備驅動。當VMM收到來自底層設備驅動完成I/O請求的中斷時,VMM還要能夠將中斷響應結果轉發給正確的虛擬機,以通知其I/O操作結束。同時VMM在調度各個虛擬機發送來的I/O請求處理時,必須依據一定的算法確保虛擬機I/O的QoS與設備共享的公平性。

在實現架構上,軟件I/O虛擬化技術主要包括Hypervisor全虛架構和前端/后端的半虛架構來說實現。

2.1 全虛擬化---模擬模型

即完全使用軟件來模擬真實硬件,模擬通常硬件,例如鍵盤鼠標。該架構使用最為廣泛的I/O設備虛擬化模型,采用軟件的方式模擬設備行為,為虛擬機模擬出與底層硬件完全一致的虛擬化環境,保證虛擬機操作系統的行為與非虛擬化環境下完全一致。在模擬模型中,虛擬設備必須以某種方式讓虛擬機可以發現,導致虛擬機被“欺騙”。當虛擬機訪問虛擬設備時,訪問請求被VMM截獲,然后VMM將I/O請求交由domain0來模擬完成,最后將結果返回給虛擬機。如下圖所示是一個基于設備模擬的xen的I/O虛擬化模型。

這種架構最大的優點在于不需要對虛擬機操作系統內核做修改,也不需要為改寫其原生驅動程序,因此,這種架構是可移植性與兼容性最佳的一種I/O設備虛擬模型,這也是它被如此廣泛使用的主要原因,除了Xen架構的全虛模型外,VMware的Workstations和ESX都有類似的全虛模型,且是全虛模型的典型代表。

但是,全虛模型有一個很大的不足之處,即性能不夠高,主要原因有兩方面:第一、模擬方式是用軟件行為進行模擬,這種方式本身就無法得到很高的性能;第二、這種模型下I/O請求的完成需要虛擬機與VMM多次的交互,產生大量的上下文切換,造成巨大開銷。模擬IO虛擬化方式的最大開銷在于處理器模式的切換:包括從Guest OS到VMM的切換,以及從內核態的VMM到用戶態的IO模擬進程之間的切換。

在全虛擬化,由于VMM實現模式不同,采用的設備虛擬化方式也不同。比如,全虛擬化最有代表性的VMware ESX和VMWare Workstattion。

在VMware ESX中,VMM直接運行在物理硬件之上,直接操作硬件設備,而Guest OS看到的則是一組統一的虛擬IO設備。Guest OS對這些虛擬設備的每一個IO操作都會陷入VMM 中,由VMM對IO指令進行解析并映射到實際的物理設備,然后直接控制硬件完成。

而VMWare WorkStation采用了不同的方式。VMM實際上運行在一個傳統的操作系統之上,這類VMM無法獲得對硬件資源的完全控制,因此采用軟件模擬的方式來模擬IO設備。Guest OS的IO操作會被VMM捕獲,并轉發給宿主機(host OS)的一個用戶態進程,該進程通過對宿主機操作系統的系統調用來模擬設備的行為。

以下是VMware的ESX架構,VMkernel負責管理虛擬機對于網絡和存儲設備的訪問。通過設備模擬術,不同的物理設備對于虛擬機可以呈現為某種特定的虛擬設備,甚至并不存在的虛擬設備。

對于存儲,物理服務器上部署的可能是某種SCSI設備、磁盤陣列甚至是SAN存儲網絡,但是ESX能夠模擬出BusLogic或者LSILogic的SCSI適配器,因此對于虛擬機總是呈現為SCSI設備。而對于網絡ESX則模擬為AMD Lance適配器或者一個并不存在的自定義接口vmxnet,來幫助虛擬機對網絡的問。上圖顯示了在ESXi服務器內部經過的I/O路徑。其中,虛擬機分別使用vmxnet虛擬網絡適配器與LSI Logic虛擬SCSI適配器對網絡和存儲進行訪問,而物理服務器則使用Intel e1000網卡連接到SAN網絡的QLogic光纖HBA卡。

  • 第1步所示,虛擬機中的某個應用程序通過操作系統發起I/O訪問,比如發送一個網絡數據包或者向磁盤寫入一個文件;
  • 第2步表示操作系統對其進行處理,并調用設備驅動處理相應的I/O請求;
  • 第3步表示當設驅動試圖訪問外設時,VMM攔截到該操作并將控制權切換到Vmkernel;
  • 第4步為VMkernel獲得控制權后,I/O請求會被轉發到與設備無關的網絡或者存儲抽象層進行處理;
  • 第5步表示VMkernel還會同時接收到來自其他虛擬機的多個I/O請求,并對這些I/O請求按照特定算法進行優先級調度處理。

I/O請求最終會被轉發到具有物理設備驅動程序的硬件接口層進行處理。當I/O請求的完成中斷到達時,I/O處理過程則與上述路徑完全相反。VMkernel中設備驅動會將到達的中斷保護起來,并調用VMkernel來處理該中斷;接下來VMkernel會通知相應虛擬機的VMM進程,VMM進程會向虛擬機發起中斷,以通知I/O請求處理完畢;同時VMkernel還要確保I/O處理完畢的相關信息與其他虛擬機的數據相互隔離。

由于上述過程需要VMkernel處理I/O請求,因此從虛擬機到VMkernel上下文的切換過程會導致一定的開銷。為了降低開銷,vmxnet在收發數據包之前,會收集一組數據包再轉發給各個虛擬機或者一起發送出去。對于多個虛擬機之間的設備資源管理方面,對于網絡ESX采用了流量整形的方式限制每個虛擬機的總帶外流量;對于存儲ESX實現了比例公平的算法平衡多個虛擬機之間磁盤訪問帶寬。

2.2 半虛擬化---泛虛擬化模型

即屬于前后端驅動模型的IO虛擬化,也稱為分離驅動模型。泛虛擬化模型是被廣泛使用的另一種I/O設備虛擬化模型。相比于全虛模型而言,泛虛擬化模型在性能上有很大的提升。主要有以下兩個原因:

  • 一是該模型采用了I/O環機制(一種大塊多隊列聚合傳輸技術,支持I/O環適配功能的虛擬機操作系統,只有安裝了Tools才能使用到IO環適配功能),減少了虛擬機與VMM之間的切換;
  • 二是該模型摒棄了傳統的中斷機制,而采用事件或回調機制來實現設備與客戶機間的通信。進行中斷處理時,傳統的中斷服務程序需要進行中斷確認和上下文切換,而采用事件或回調機制,無需進行上下文切換。如下圖所示是一個基于泛虛擬化的Xen的I/O虛擬化模型。

前端/后端架構也稱為“Split I/O”,即將傳統的I/O驅動模型分為兩個部分,一部分是位于客戶機OS內部的設備驅動程序(前端),該驅動程序不會直接訪問設備,所有的I/O設備請求會轉發給位于一個特權虛機的驅動程序(后端),后端驅動可以直接調用物理I/O設備驅動訪問硬件。前端驅動負責接收來自其他模塊的I/O操作請求,并通過虛擬機之間的事件通道機制將I/O請求轉發給后端驅動。后端在處理完請求后會異步地通知前端。相比于全虛模型中VMM需要截獲每個I/O請求并多次上下文切換的式,這種基于請求/事務的方式能夠在很大程度上減少上下文切換的頻率,并降低開銷。但是這種I/O模型有一個很大的缺點,要修改操作系統內核以及驅動程序,因此會存在移植性和適用性方面的問題,導致其使用受限。下滿以Xen架構的模型為例說明:

在Xen架構的半虛擬化模型中,通過修改Guest OS的內核,將原生的設備驅動從Guest OS移出,放到一個特殊的設備虛擬機中Dom0了,其余虛擬機中的I/O請求都由設備虛擬機處理。而在Guest OS內部,為每個虛擬設備安裝一個特殊的驅動程序,由該驅動程序負責I/O請求的傳遞,設備虛擬機經過VMM授權,解析收到的請求并映射到實際物理設備,最后交給設備的原生驅動來完成IO。實際上在這種情況下,Guest OS的驅動是消息代理的作用,把I/O事件轉換為消息,發送給設備虛擬機處理。具體前后端驅動配合實現物理設備驅動功能,需要通過以下幾步實現:

Step1:如何實現設備發現?

  • 所有VM的設備信息保存在Domain0的XenStore中。
  • VM中的XenBus (為Xen開發的半虛擬化驅動)通過與Domain0的XenStore通信,獲取設備信息。
  • 加載設備對應的前端驅動程序。

Step2:如何實現設備數據截獲?

  • 前端設備驅動將數據通過VMM提供的接口全部轉發到后端驅動。
  • 后端驅動VM的數據進行分時分通道進行處理。

Step3:如何模擬使用IO設備

Domain U中虛擬機程序使用IO設備時,通過前端驅動Front-End Driver由XenBus總線訪問Domain 0中的Back-End Driver,Back-End Driver通過XenStor中記錄的IO設備信息,找到真實的設備驅動Native Driver去訪問真實IO設備。

需要注意一點:這種前后端驅動架構的瓶頸就是Domain 0,因為Domain 0通過XenBus總線采用時分復用的策略與前端多個DomainU聯動。

3、硬件I/O虛擬化技術

為了改善I/O性能,旨在簡化I/O訪問路徑的設備直通訪問方式又被提了出來。代表技術為Intel公司出 的VT-d與AMD公司的IOMMU技術。盡管這兩種技術在一定程度上提高了I/O訪問性能,但代價卻是限制了系統的可擴展性。目前PCI-SIG提出的SR-IOV與MR-IOV是平衡I/O虛擬化通用性、訪問性能與系統可擴展性的很好的解決方案。

3.1 IO透傳---設備直接分配模型,即直接分配給虛擬機物理設備

軟件實現I/O虛擬化的技術中,所有的虛擬機都共享物理平臺上的硬件設備。如果物理條件好,有足夠的硬件,就可以考慮讓每個虛擬機獨占一個物理設備,這樣無疑會提高系統的性能。把某一個設備直接分配給一個虛擬機,讓虛擬機可以直接訪問該物理設備而不需要通過VMM或被VMM截獲,這就是設備直通技術。如下圖所示為設備直接分配的I/O模型。

在設備直接分配模型中,虛擬機操作系統可直接擁有某一物理設備的訪問控制權限,VMM不再干涉其訪問操作。因此,該模型可以較大地改善虛擬化設備的性能,降低VMM程序的復雜性,易于實現,并且不需要修改操作系統,保證了高可用性。

設備直接分配模型雖然在性能上相比軟件方式的兩種I/O設備虛擬化模型有著很大的提升,但是該模型的使用也是有一定限制的。因為該模型將一件物理設備直接分配給了一個虛擬機,其它虛擬機是無法使用該設備的,所產生的一個問題就是如果其它虛擬機需要訪問該設備則無法滿足需求,解決辦法就是物理資源充分滿足需求或者通過硬件虛擬化技術虛擬出多個IO設備(與物理設備性能極為接近)供多個虛擬機使用(硬件必須支持)。

3.2 Intel的設備硬件虛擬化技術---VT-d

VT-d,即VT for Direct I/O,主要在芯片組中實現,允許虛擬機直接訪問I/O設備,以減少VMM和CPU的負擔,如下圖畫紅框部分。

Intel公司提出的VT系列技術中VT-d其目的就是讓虛擬機直接訪問物理機底層I/O設備,使虛擬機能夠使用自己的驅動直接操作I/O設備,而無需VMM的介入和干涉。通過引入DMA重映射,VT-d不僅可以使虛擬機直接訪問設備,同時還提供了一種安全隔離機制,防止其他虛擬機或者VMM訪問分配給指定虛擬機的物理內存。VT-d中DMA重映射原理如下圖所示:(在北橋也就是現在CPU封裝中實現)

具體來說,VT-d技術在北橋引入了DMA重映射技術,并通過兩種數據結構(Root Entry 和 Context Entry)維護了設備的I/O頁表。設備上的DMA操作都會被DMA重映射硬件截獲,并根據對應的I/O頁表對DMA中的地址進行轉換,同時也會對要訪問的地址空間進行控制。

在具體實現上,VT-d使用PCI總線中的設備描述符BDF(Bus Device Function)來標示DMA操作發起者的標示符。其次,VT-d使用兩種數據結構來描述PCI總線結構,分別是根條目(Root Entry)和上下文條目(Context Entry)。如下圖所示,其中根條目用于描述PCI總線。由于PCI總線個數可以達到256個,因此根條目的范圍是0~255,其中每個根條目的一個指針字段都指向該總線的所有PCI設備的上下文條目表指針(Context Table Pointer,CTP)。由于一個PCI總線可以包含256個設備,因此上下文條目表的范圍也是0~255 。在每個上下文條目中都包含兩個重要字段:地址空間根(Address Space Root,ASR) 指向該設備的I/O頁表;域標示符(Domain ID,DID)可以理解為唯一標示一個虛擬機的標示符。

基于這種方式,當某一個設備發起DMA操作及被DMA重映射硬件截獲時,通過該設備的BDF中的Bus字段,可以找到其所在的根條目。根據device和function字段,可以索引到具體設備的上下文條目。這樣就可根據上下文條目中的ASR字段找到該設備的I/O頁表,再通過DMA重映射硬件將I/O請求的GPA轉換為HPA,從而達到設備直接訪問虛擬機內存的目的。

使用VT-d將設備直接分配給虛擬機的I/O訪問性能十分接近無虛擬化環境下的I/O訪問性能,然而VT-d事實上是一種I/O設備被虛擬機獨占的方式,這種方式犧牲了虛擬化平臺中的設備共享能力,設備用率大大降低,而且系統的可擴展性受到物理平臺插槽個數的限制。比如,假定一個服務器配置4個CPU,每個CPU為8核,按照平均分配方式每個虛擬機一個核,則可以創建32個虛擬機,如果按照備 直接訪問的方式分配網卡,則需要32個物理插槽,這是不現實的。

VT-d還為DMA重映射提供了安全隔離的保障。上圖是沒有VT-d技術與有VT-d技術的虛擬化平臺的對比。可以看出,圖(a)部分沒有VT-d虛擬化技術的平臺中,物理設備的DMA操作可以訪問整個系統內存。而圖(b)有VT-d技術的平臺中,對設備DMA操作的地址范圍進行了限制,只能訪問指定的地址空間。

除了DMA重映射外,VT-d還提供了中斷重映射功能,有興趣的可以參考Intel官網的VT技術手冊。

3.3 VMDq和VMDc技術

在集群和數據中心這類環境中,每臺主機通常同時運行大量的虛擬機。由于主機的網絡設備數目有限,多個虛擬機不得不復用同一個網絡設備,從而導致性能下降。Intel VT-c 技術可針對虛擬化進一步優化網絡性能。VT-c 包括如下兩個關鍵技術:

3.3.1 虛擬機設備隊列(Virtual Machine Device Queues,VMDq)

收到一個數據包時,VMM必須將其分類以確定應該轉發給哪個虛擬機,這占用了大量寶貴的處理器資源。如果以太網控制器支持 VMDq 技術,VMM可以為虛擬機使用不同的數據包隊列,以太網控制器自動分類數據包并投放到相應的隊列中,大大減輕VMM的負擔,提高了I/O吞吐量,如下圖所示。

而Intel所使用的VMDq就是通過網卡芯片內建的 Layer 2 classifier / sorter 以加速網絡數據傳送,它可以先行將不同的虛擬機所需的網絡數據包,直接在芯片里規劃好,然后再通過 receive queue直送給虛擬機。這樣就不用送過虛擬交換機轉發數據包減少網絡的負載與CPU的開銷,有VMDq和沒VMDq的對比如下:

3.3.2 虛擬機直接連接(Virtual Machine Direct Connect,VMDc)

這是Intel借鑒了SR-IOV技術的特點。與SR-IOV技術一樣,支持該技術的網絡設備能夠對外展現出多個虛擬功能接口VF(Virtual Function)。每個功能接口相當于一個網絡設備,VMM可將其直接分配給某個虛擬機,從而“避免”了網絡設備的復用。例如,VMM僅用單個英特爾萬兆位服務器網卡,可為10個客戶機操作系統分配獨立受保護的1Gb/秒的專用鏈路,VMM無需繼續管理這些直接通信鏈路,進一步提升I/O性能并減少主機CPU的負載 。

3.4 SR-IOV與MR-IOV:PCIe的虛擬化

如前所述,軟件設備模擬盡管實現了物理與邏輯的分離,但是性能受到影響;VT-d或者IOMMU技術則以犧牲系統擴展性為代價獲得近似于直接訪問設備的I/O性能,而且其中任何一種都不是基于現有的工業標準。因此,業界希望重新設計一種可以原生共享的設備。具有原生共享特性的設備可同時為多個虛擬機提供單獨的內存空間、工作隊列、中斷與命令處理,使得設備的資源能夠在多個虛擬機之間共享。同時,這些設備能夠從多個源端同時接收命令,并將其合并再一起發送出去。因此,原生共享設備不需要VMM模擬設備,同時也在硬件層次上使得多個虛擬機同時訪問設備,很好地兼顧了虛擬化系統的性能與可擴展性。

PCI-SIG組織提出了一個新的技術規范:SR-IOV(Single Root I/O Virtualization)。該規范定義了一個單根設備(如 一個以太網卡端口)如何呈現為多個虛擬設備。在SR-IOV中,定義了兩個功能類型:一是物理功能類型PF,負責管理SR-IOV設備的特殊驅動,其主要功能是提供設備訪問功能和全局共享資源配置的功能,虛擬機所有影響設備狀態的操作均需通過通信機制向PF發出請求完成。二是虛擬功能類型VF是輕量級的PCIe功能,包含三個方面:向虛擬機操作系統提供的接口;數據的發送、接收功能;與PF進行通信,完成全局相關操作。由于VF的資源僅是設備資源的子集,因此VF驅動能夠訪問的資源有限,對其它資源的訪問必須通過PF完成。

上圖是一個支持SR-IOV的網卡配置。其中左側三個VM是通過VF可以直接分配到的網卡資源,而該網卡的PF所具有的完整資源仍能用于最右側兩個虛擬機對模擬設備的訪問路徑。一個具備SR-IOV特性的設備通過VMM配置可以在PCI配置空間中呈現為多個VF,每個VF都配置了基地址寄存器(Base Address Register,BAR)的完整配置空間。VMM通過將一個或多個VF的配置空間映射到虛擬機的PCI配置空間中實現VF的分配。結合VT-d內存映射等技術,虛擬機可以直接訪問VF的內存空間,這就 能繞過VMM直接訪問I/ O設備。如下圖所示:

SR-IOV還實現了地址轉換服務(Address Translation Service,ATS)來提供更好的性能。通過緩存TLB到本地,I/O設備可以在發起PCI事務之前直接對DMA地址進行轉換,這樣就避免了在IOMMU中進行地址轉換時可能發生的缺頁情況。通過這種方式,綁 定到VF的虛擬機可 獲得與基于硬件I/O虛擬 化虛擬機接近的性能。但是與基于硬件I/O虛擬化較低的可擴展性相比,一個SR-IOV設備可以具有幾百個VF,因此SR-IOV具有更好的可擴展性。

MR-IOV(Multiple Root I/O Virtualization)擴展了SR-IOV規范。MR-IOV允許PCIe設備在多個有獨立PCI根的系統之間共享,這些系統通過基于PCIe轉換器的拓撲結構與PCIe設備或者PCIe-PCI橋相接。MR-IOV與SR-IOV相比,每個VH(Virtual Hierarchy,一個VH就是一個虛擬獨立的SR-IOV設備)擁有獨立的PCI Memory,IO,配置空間。如下圖是MR-IOV的作用,本來每個系統只有一個Host,兩個PCIe設備,但是有了MRA Switch之后,系統里面有2個Host,4個PCIe設備。

MR-IOV里有個重要概念:VH,Virtual Hirearchy:每個VH至少包含一個PCIe Switch,這個PCIe Switch是MRA Switch里面的一個虛擬組件。每個VH可以包含各種PCIe設備、MRA PCIe設備、或者PCIe-PCI橋的組合。如下圖,在MRA PCIe Switch中,可以有多個根端口Root Port,RP。

這樣,有了MR-IOV之后,軟件系統變成了下面這種,物理機之間也能相互通信,PCIe設備被多臺物理機共享。下圖中的SI就是虛擬機OS、VI就是虛擬機監視器VMM。

【本文為51CTO專欄作者“移動Labs”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

 

責任編輯:未麗燕 來源: 移動Labs
相關推薦

2021-12-21 15:46:16

NFV內存虛擬化計算虛擬化

2021-06-17 13:28:20

NFV虛擬化服務器

2021-05-17 14:57:22

NFV虛擬化數據

2022-04-12 14:11:27

存儲虛擬化軟件定義服務器

2019-01-09 13:20:51

2019-10-30 15:35:08

虛擬化云計算封裝

2011-12-28 10:44:02

PowerVM虛擬化

2013-04-28 14:34:02

服務器虛擬化

2011-04-21 09:20:28

IaaS網絡虛擬化

2018-05-08 15:16:59

內存虛擬化處理器

2018-04-17 15:03:40

CPU虛擬化半虛擬化

2019-11-25 15:32:30

虛擬化IO故障

2010-02-04 09:51:53

虛擬交換機

2011-04-21 09:23:32

IaaS服務器虛擬化

2013-06-19 09:56:39

2020-11-25 10:55:56

云計算

2022-04-15 15:03:42

云計算容器Linux

2016-01-27 13:28:00

虛擬化

2020-03-10 18:30:06

GPU虛擬化FPGA

2010-09-28 09:08:32

虛擬化云計算
點贊
收藏

51CTO技術棧公眾號

91精品国产乱| 日本一区二区成人在线| 久久久久久久久久国产| 国产高清成人久久| 日韩高清在线| 一区二区在线观看免费 | 日韩av男人天堂| 九一精品国产| 日韩免费在线观看| 麻豆av免费在线| av大全在线| 久久色在线观看| 亚洲一区二区三区香蕉| 无码人妻丰满熟妇奶水区码| 女主播福利一区| 亚洲欧美日韩中文视频| 激情图片中文字幕| 欧美特大特白屁股xxxx| 亚洲愉拍自拍另类高清精品| 日韩欧美精品一区二区| 日本黄色大片视频| 狠狠色丁香婷婷综合| 欧美伊久线香蕉线新在线| 日本少妇高清视频| 人人狠狠综合久久亚洲婷婷| 亚洲精品国产成人| 性久久久久久久久久久久久久| 国产精品迅雷| 天天综合网 天天综合色| 懂色av一区二区三区四区五区| 男人的天堂av高清在线| 成人av电影在线| 91在线免费视频| 中文字幕第2页| 亚洲综合社区| 国语自产精品视频在免费| 午夜爱爱毛片xxxx视频免费看| 国产传媒欧美日韩成人精品大片| 亚洲国产欧美精品| 成人做爰69片免费| 久久九九精品视频| 欧美精品在线观看一区二区| 成人午夜激情av| 中文字幕在线视频网站| 午夜精品一区在线观看| 免费cad大片在线观看| 久操视频在线播放| 国产精品久久久久久久久图文区| 欧美日韩亚洲一区二区三区四区| 香蕉人妻av久久久久天天| 成人中文字幕电影| 亚洲伊人第一页| 国产色片在线观看| 激情国产一区二区| 5g国产欧美日韩视频| 国产浮力第一页| 国产丶欧美丶日本不卡视频| 97se国产在线视频| 成人乱码一区二区三区| 成人黄色大片在线观看 | 久久国产精品国产精品| 免费在线成人激情电影| 欧美吻胸吃奶大尺度电影| 妺妺窝人体色www在线观看| 日日av拍夜夜添久久免费| 在线观看国产一区二区| 青青青在线视频免费观看| 国产美女久久| 在线观看91av| 免费黄色在线播放| 国产色噜噜噜91在线精品| 亚洲国产精品字幕| 成人免费毛片糖心| 久久精品av| 欧美高清第一页| 国产成人亚洲综合无码| 秋霞精品一区二区三区| 老司机一区二区三区| 国产成人激情小视频| 中文字幕欧美在线观看| 国内一区二区视频| 精品国产一区二区三区麻豆小说 | 日韩av大片免费看| 中文字幕第2页| 国产精品白丝jk白祙喷水网站| 国产精品久久久久久久小唯西川| 婷婷丁香一区二区三区| 亚洲国产精品v| 中文字幕の友人北条麻妃| 超级碰碰不卡在线视频| 日韩欧中文字幕| 欧美一级xxxx| 欧美三级电影在线| www.国产一区| 黄色激情视频在线观看| 日本在线不卡视频| 99久久99久久| 番号集在线观看| 亚洲一区二区高清| 国产免费人做人爱午夜视频| 国产精品毛片无码| 国产视频自拍一区| 丰满少妇高潮久久三区| 丝袜美腿高跟呻吟高潮一区| 亚洲专区在线视频| 国产综合在线观看| 亚洲一线二线三线久久久| 草草草在线视频| 亚洲91网站| 中文字幕亚洲国产| 波多野结衣视频网站| 国产精品亚洲一区二区三区妖精| 日韩精品福利视频| 日韩理论视频| 日韩美女天天操| 国产91在线播放九色| 亚洲综合丁香| 国产成人精品福利一区二区三区 | 国产精品无码在线播放| 久久精品免视看| 黄色成人在线看| 玖玖玖视频精品| 中日韩美女免费视频网址在线观看| 91浏览器在线观看| 成人性生交大片免费看中文| 97精品国产97久久久久久粉红 | 国产视频999| 暖暖视频在线免费观看| 亚洲狠狠爱一区二区三区| 国产无遮挡猛进猛出免费软件| 中日韩免视频上线全都免费| 国外色69视频在线观看| 高清一区二区三区四区| 亚洲综合清纯丝袜自拍| 一区二区三区国产好的精华液| 成人免费a**址| 国产精品看片资源| 国产精品一区二区婷婷| 欧洲人成人精品| 国内精品卡一卡二卡三| 久久亚洲欧洲| 欧美精品一区二区视频| 这里有精品可以观看| 精品亚洲男同gayvideo网站| 日韩精品在线免费看| 99这里都是精品| 欧美精品一区免费| 在线成人动漫av| 国产99久久久欧美黑人 | av免费播放网址| 日韩mv欧美mv国产网站| 2018中文字幕一区二区三区| 亚州男人的天堂| 色婷婷亚洲精品| 手机av在线不卡| 久久99精品国产麻豆婷婷| 国产91av视频在线观看| 2020国产精品小视频| 久热精品视频在线| 亚洲精品人妻无码| 午夜亚洲福利老司机| 中文字幕免费看| 奇米综合一区二区三区精品视频| 亚洲一区精品视频| 欧美成年网站| 97视频免费在线看| 黄色片在线免费看| 91精品婷婷国产综合久久| 麻豆一区产品精品蜜桃的特点| 不卡一二三区首页| 成人黄色片视频| 欧美gay男男猛男无套| 亚洲精品免费网站| 白浆在线视频| 亚洲日韩欧美视频| 国产又黄又粗又长| 午夜欧美大尺度福利影院在线看| 亚洲精品午夜视频| 精品一区二区三区蜜桃| 欧美一级视频免费看| 精品日韩一区| 99视频在线免费观看| 国产免费不卡| 久久网福利资源网站| 人妻va精品va欧美va| 91成人看片片| 欧美成人一二三区| 久久久综合九色合综国产精品| 五月婷婷丁香综合网| 午夜激情一区| 老司机精品福利在线观看| 四虎国产精品免费久久| 97成人在线视频| 成人在线播放免费观看| 精品呦交小u女在线| 国产裸体无遮挡| 欧美性xxxx在线播放| 91麻豆免费视频网站| 久久久不卡影院| 人妻av一区二区三区| 日本不卡一二三区黄网| 青青草精品视频在线| 97视频精品| 欧美日韩一区二区视频在线观看 | 久久综合一区二区三区| 国产aa精品| 国产成人精品久久二区二区91 | 成人一区不卡| 激情久久av| 亚洲日本视频在线| 国产日韩在线精品av| 亚洲国产欧美日本视频| 九九九久久久久久| √天堂资源地址在线官网| 精品亚洲一区二区三区在线观看| 亚洲第一成年人网站| 51午夜精品国产| 欧美视频xxxx| 欧美日韩国产一区在线| 久热这里只有精品在线| 中文字幕亚洲在| 超薄肉色丝袜一二三| 久久久亚洲精品石原莉奈| 亚洲av无码一区二区三区网址 | 国产精品av一区| 青娱乐极品盛宴一区二区| 日本不卡视频在线播放| 国产免费拔擦拔擦8x高清在线人| 美女999久久久精品视频| 免费在线观看av| 精品国产一区二区三区久久狼5月| 国产精品久久一区二区三区不卡 | av在线免费网站| 精品国内亚洲在观看18黄| 91xxx在线观看| 国产午夜一区二区| 福利成人在线观看| 在线观看国产精品91| 久久天堂电影| 亚洲性视频网址| 岛国在线视频免费看| 国产一区二区久久精品| av在线免费观看网站| 在线亚洲男人天堂| 日本中文字幕视频在线| 久久精品国产成人| 精品国产99久久久久久| 久久亚洲精品成人| 91精品国产91久久久久久青草| 久久影院中文字幕| 日本孕妇大胆孕交无码| 色综合视频一区中文字幕| 污片视频在线免费观看| 久久久久久久亚洲精品| 色吧亚洲日本| 国产成一区二区| 国产精品99| 成人乱色短篇合集| 伊人久久大香线蕉av超碰| 国产伦精品一区二区三区四区视频| 精品国产18久久久久久洗澡| 久久免费看av| 久久亚洲在线| bt天堂新版中文在线地址| 99综合视频| 99久久激情视频| 久久成人免费日本黄色| 无码人妻一区二区三区精品视频 | 欧美一级日韩不卡播放免费| 亚洲第一色网站| 亚洲女人天堂视频| 2019中文字幕在线视频| 九九视频这里只有精品| av在线理伦电影| 国产999在线观看| 精品国模一区二区三区欧美 | 成人一区而且| 996这里只有精品| 麻豆精品网站| 亚洲制服中文字幕| 97成人超碰视| 多男操一女视频| 五月天亚洲婷婷| 曰批又黄又爽免费视频| 日韩欧美www| 国产高清视频在线观看| 欧美大片网站在线观看| 中文字幕av一区二区三区佐山爱| 亚洲在线一区二区| 国产精品自拍区| 国产情侣第一页| 美女网站色91| a级在线观看视频| 亚洲欧美激情视频在线观看一区二区三区| 国产成人在线播放视频| 欧美精品一卡二卡| 免费在线稳定资源站| 欧美高清在线播放| 成人国产一区二区三区精品麻豆| 国产精品美女黄网| 97精品国产| 成年人免费大片| jizz一区二区| 免费成年人视频在线观看| 色综合激情五月| 人妻偷人精品一区二区三区| 日韩亚洲第一页| 影视一区二区三区| 精品乱码一区二区三区| 中文字幕免费一区二区| 麻豆三级在线观看| 久久一留热品黄| 日本天堂网在线观看| 日韩一区二区三区精品视频| 国产h在线观看| 日本aⅴ大伊香蕉精品视频| 波多野结衣欧美| 青青草免费在线视频观看| 免费av成人在线| 天天躁夜夜躁狠狠是什么心态| 婷婷夜色潮精品综合在线| 99国产在线播放| yw.139尤物在线精品视频| 自拍偷自拍亚洲精品被多人伦好爽| 精品一区二区三区自拍图片区| 韩国欧美一区| 欧美一级片在线免费观看| 成人免费在线观看入口| 一级片视频播放| 国产一区二区三区视频在线观看| 色在线中文字幕| 精品九九九九| 国产综合网站| 亚洲精品乱码久久久久久蜜桃欧美| 亚洲精品高清在线| jizz中国女人| 欧美成人高清视频| 日韩中文字幕无砖| 国产精品无码免费专区午夜| 高清免费成人av| 久久亚洲AV无码| 欧美精品一区二区三区高清aⅴ| 羞羞的网站在线观看| 97欧洲一区二区精品免费| 欧美在线免费一级片| 日韩精品在线播放视频| 亚洲激情五月婷婷| 亚洲av少妇一区二区在线观看| 欧美美最猛性xxxxxx| 亚洲亚洲一区二区三区| 中文字幕无码精品亚洲资源网久久| 豆国产96在线|亚洲| 日韩精品乱码久久久久久| 日韩精品欧美国产精品忘忧草 | 黄网站视频在线观看| 91网站免费观看| 国产一区久久| 免费中文字幕av| 日本高清不卡视频| 日本a级在线| 亚洲已满18点击进入在线看片| 欧美久久一级| 麻豆tv在线观看| 一本到三区不卡视频| 日本中文在线观看| 99精品在线直播| 久久精品观看| 2014亚洲天堂| 亚洲成人亚洲激情| 免费福利视频一区二区三区| 一本一本a久久| 国产91精品一区二区| 欧美一区二区激情视频| 中文字幕少妇一区二区三区| 中文字幕日韩在线| 国产淫片免费看| 国产精品电影院| 欧美在线 | 亚洲| 国产精品美女久久久久av超清| 亚洲乱码在线| 久久精品老司机| 8v天堂国产在线一区二区| 草草在线视频| 亚洲一卡二卡三卡四卡无卡网站在线看| 国产美女在线精品| 天堂中文在线网| 伦理中文字幕亚洲| 亚洲人和日本人hd| 亚洲在线观看网站| 欧美午夜xxx| 午夜小视频福利在线观看| 欧美成人综合一区| 国产精品亚洲视频| 国产一卡二卡三卡| 久久久久久久久久久久久久久久久久av | 91麻豆精品国产91久久久使用方法 | 国产欧洲精品视频| 99精品免费| 中文字幕在线有码| 正在播放欧美视频|