在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

探究I/O虛擬化及Virtio接口技術(下)

jf_78858299 ? 來源:軟硬件融合 ? 作者:Chaobowx ? 2023-04-04 17:03 ? 次閱讀

2.2 Virtqueue交互隊列

Virtio 1.1引入了Packed Virtqueue的概念,對應的Virtio 1.0的Virtqueue被稱為Split Virtqueue。

如圖3所示,為Virtio1.0的Split Virtqueue結構。Virtqueue由三部分組成:

  • 描述符表
  • 可用的描述符環
  • 已使用的描述符環
  • Virtio 1.0的Split Virtqueue具有一些缺點:
  • 如果是虛擬化場景軟件模擬Virtio設備的話,因為分散的數據結構,導致Cache利用率較低,每次請求都會有很多Cache不命中;
  • 如果是硬件實現的話,每次描述符需要多次設備DMA訪問。

圖片

圖3 Virtio 1.0中的Split Virtqueue

如圖4所示,Virtio 1.1引入了Packed Virtqueue的概念。整個描述符只有一個數據結構。這樣,如果軟件實現Virtio設備模擬的話,可以提升描述符交互的Cache命中率。如果硬件實現的,可以降低設備DMA的訪問次數。

圖片

圖4 Virtio1.1的Packed Virtqueue

2.3 Virtio交互

驅動和設備的交互,符合生產者消費者模型的數據及通知(Notification)的交互行為。驅動把共享隊列的隊列項準備好,通過寫寄存器的方式通知設備。設備收到驅動發送的通知則處理隊列項以及相應的數據搬運工作,結束后更新隊列狀態并通知(設備通知驅動是通過中斷)驅動。驅動接收到中斷通知時候,把已經使用的隊列項釋放,并更新隊列狀態。

一個典型的通用的驅動和設備的交互流程如圖5所示。Virtio場景的驅動和設備交互,驅動給設備的通知(Notification)稱為Kick,設備給驅動的通知稱為Interrupt(中斷)。Kick和Interrupt操作是Virtio接口的一部分,在虛擬化場景,Kick和Interrupt需要非常大的CPU切換代價。驅動希望在Kick之前產生盡可能多的待處理緩沖項(一個緩沖項對應一個描述符和描述符指向的數據塊);同樣的,設備希望處理盡可能多的緩沖項然后再發送一個中斷。通過盡量處理更多的緩沖項的方式,來攤薄通知的代價。

這種策略是一種理想狀態,因為大多數時候驅動并不知道下一組緩沖項何時帶來,因此不得不每一組緩沖項準備好之后就必須要Kick設備。同樣的,設備在處理完相應的緩沖項之后,就盡快的發送中斷給驅動,以達到盡可能小的延遲。

圖片

圖5 Virtio驅動和設備交互示意圖

如圖6所示,在設備模擬的虛擬化場景下,驅動可以暫時禁用中斷,設備也可以暫時禁用Kick。通過這樣的機制,可以最大限度的減少通知的代價,并且不影響性能和延遲。Virtio 1.1支持兩種通知抑制機制,因此共有三種模式:

  • 使能通知模式:完全無抑制,使能通知;
  • 禁用通知模式:如圖6所示,可以完全禁止對方發通知給自己;
  • 使能特定的描述符通知模式:告知對方一個特定的描述符,當對方順序處理到此描述符處理完成時產生通知。

圖片

圖6 通過前后端禁用抑制通知的Virtio驅動和設備交互

2.4 總結

如圖7,Virtio基于分層的設計思想,定義了三層Virtio設備架構:

  • 最下層的總線接口。PCI是最常用的Virtio場景使用的總線,但Virtio協議不僅僅支持PCI,也支持MMIO和Channel IO等。
  • 通用的Virtio交互接口。包括Virtqueue、功能特征位、配置空間等。Virtio交互接口是Virtio最核心的功能,通過Virtio交互接口實現了不同類型設備的標準化。
  • 上層的特定設備接口。在Virtio協議里,定義網絡、塊、控制臺、SCSIGPU等各種不同類型的設備。

圖片

圖7 分層的Virtio框架圖

Virtio的優點體現在:

  • Virtio實現了盡可能多的設計共享。這樣,在開發的時候就可以復用很多軟件和硬件資源,達到快速開發的目的。
  • Virtio實現了接口的標準化。標準化體現在兩個方面:
  • (1)一個是通用的Virtio交互接口,統一了不同的設備類型軟硬件交互;
  • (2)另一個是基于Virtio的Virtio-net、Virtio-block等廣泛應用于云計算虛擬化場景,Virtio已經成為事實上的標準I/O接口。

而Virtio的缺點,則同樣因為Virtio實現了接口的標準化,而忽略了不同設備類型數據傳輸的特點。因此,在一些大數據量傳輸的場景,效率比較低下。如果是在類似HPC這樣的性能和延遲非常敏感的場景,Virtio就不是一個很好的選擇。

**03 **虛擬化卸載

虛擬化卸載指的是計算機虛擬化中消耗CPU資源較多的接口設備模擬、熱遷移、虛擬化管理等任務的卸載。

a. 接口設備的卸載

前面我們介紹了網絡、遠程存儲等IO工作任務的卸載,而虛擬化卸載主要指的是跟IO相關的接口設備的卸載,例如網絡、存儲等接口設備的卸載。IO接口設備的卸載本身上也是IO硬件虛擬化的過程,比如我們通過VT-d技術實現從VM中pass though訪問硬件設備,某種程度上也可以認為是把運行在Hypervisor中的模擬設備 “卸載”到了硬件。因此,IO接口設備的卸載本質上和IO設備硬件虛擬化是一件事情。

如圖8,為了實現設備接口的標準化、加速IO處理的性能以及潛在的充分利用現有的虛擬化生態(例如更好的支持設備熱遷移)等原因,阿里云在神龍芯片里實現了硬件的Virtio接口設備,通過Virtio接口設備支持Virtio-net網絡驅動和Virtio-blk存儲驅動等,實現了類虛擬化IO設備Virtio的硬件“卸載”。

圖片

圖8 阿里云神龍芯片網絡和存儲接口示意圖

AWS的NITRO系統支持網絡、本地存儲和遠程存儲,NITRO實現了網絡接口設備ENA/EFA(AWS自定義接口)的硬件“卸載”以及存儲接口設備NVMe(遠程存儲EBS使用的是NVMe接口,本地存儲也是NVMe接口)的卸載。

b. 接口設備卸載后的遷移問題

當把設備“卸載”到硬件,讓VM直接訪問硬件設備,這使得VM的設備熱遷移變的非常有挑戰。vDPA(vhost Data Path Acceleration,vhost數據路徑加速,其中vhost是Virtio后端設備模擬的輪詢方式實現)實現了一種折中的解決方案,如圖9所示,vDPA把Virtio分為了控制面和數據面:

  • 控制面。vDPA控制面依然是通過要經過Hypervisor的處理,用于設備和VM之間的配置更改和功能協商,用于建立和終止數據面。
  • 數據面。vDPA數據面包括共享隊列以及相應的通知機制,用于在設備和VM之間傳輸實際的數據。

圖片

圖9 vDPA框架示意圖

使用vDPA一個重要原因是,在熱遷移的時候可以很方便的把Virtio數據面的處理切換回傳統的Virtio/Vhost后端設備模擬。這樣,可以充分利用現有的基于KVM/Qemu對Virtio設備遷移的解決方案來完成設備的遷移。

c. 虛擬化管理的卸載

從軟件虛擬化進化到硬件虛擬化的過程,本身就可以看作是一個硬件加速以及硬件卸載的過程。我們逐步的剝離了Hypervisor的功能,比如通過VT-x技術“卸載”了Hypervisor的CPU/內存等的軟件模擬,以及通過VT-d以及vDPA等技術“卸載”了設備軟件模擬。這些剝離,使得Hypervisor越來越輕量,整個系統的虛擬化開銷也越來越少。進一步的,我們可以把虛擬化的管理(例如Linux平臺主流的管理程序Libvirt)卸載到硬件中的嵌入式軟件運行。

如圖10, 我們通過橋接的方式,實現主機軟件和硬件中嵌入式軟件通信機制。把虛擬化管理等軟件任務從主機卸載到嵌入式系統(依然有很小一部分任務無法卸載,如虛擬機資源分配、vCPU調度等)。這樣,可以把幾乎100%的主機資源提供給用戶,使用戶虛擬機得到近乎物理機的性能。

圖片

圖10 虛擬化管理卸載圖

通過虛擬化管理卸載到硬件中的嵌入式CPU軟件,我們可以做到物理上的業務和管理分離,整個業務主機跟云計算管理網絡安全的隔離,只能通過特定的接口訪問到Lite Hypervisor,除此之外,不能訪問主機的任何資源。這樣,即使有潛在的運維操作失誤,也無法對業務主機造成影響。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8885

    瀏覽量

    152976
  • DPU
    DPU
    +關注

    關注

    0

    文章

    386

    瀏覽量

    24592
  • i/o
    i/o
    +關注

    關注

    0

    文章

    33

    瀏覽量

    4662
收藏 人收藏

    評論

    相關推薦

    virtio I/O通信流程及設備框架的實現

    virtio 是一種通用的半虛擬I/O 通信協議,提供了一套前后端 I/
    的頭像 發表于 03-10 13:37 ?6912次閱讀

    《微機原理與接口技術》教學大綱

    微型計算機原理及接口技術,包括CPU的工作原理與時序,IO端口的地址譯碼,CPU和外設之間的數據傳送方式,中斷控制器及中斷技術應用,DMA控制器及應用,并行
    發表于 10-11 09:15

    淺析單片機原理及接口技術

    PPT內容這是單片機原理與接口技術課件ppt,包括了微型計算機基礎,MCS-51單片機結構與時序,習題課,MCS-51與存儲器連接示例,匯編語言程序設計,半導體存儲器,中斷系統,并行I/O接口
    發表于 09-10 07:27

    微機接口技術實用教程

    微機接口技術實用教程1微機接口技術實用教程第1章 微型計算機接口技術基礎 第1章 微型計算機接口技術基礎 1.1 接口技術概述 輸入/輸出(
    發表于 09-13 08:19

    微機原理及接口技術課件(教學)

    微機原理及接口技術課件:微機:IBM PC系列機原理:8088匯編語言程序設計接口:半導體存儲器及其接口I/O
    發表于 12-06 22:24 ?462次下載
    微機原理及<b class='flag-5'>接口技術</b>課件(教學)

    微機原理與接口技術精品課程(課件)

    微機原理與接口技術精品課程(課件):微機:IBM PC系列機原理:8088匯編語言程序設計接口:半導體存儲器及其接口 I/O
    發表于 12-06 22:26 ?170次下載
    微機原理與<b class='flag-5'>接口技術</b>精品課程(課件)

    單片機與接口技術實驗教程

    單片機與接口技術實驗教程 實驗一、P1口實驗……………………………………………… 3實驗二、簡單I/O口擴展實驗………………………………… 5實驗三
    發表于 04-14 14:31 ?39次下載

    輸入輸出設備I/O設備總結

    I/O設備又叫輸入輸出設備。對于I/O bus 包含數據總線、控制總線、地址總線;每一個I/O
    發表于 11-24 09:28 ?3791次閱讀
    輸入輸出設備<b class='flag-5'>I</b>/<b class='flag-5'>O</b>設備總結

    系統虛擬技術virtio總體設計思想

    ,主要有計算資源,存儲資源和網絡資源。所以,系統虛擬技術又可以細分為計算虛擬,存儲虛擬
    的頭像 發表于 05-07 15:40 ?5126次閱讀
    系統<b class='flag-5'>虛擬</b><b class='flag-5'>化</b><b class='flag-5'>技術</b><b class='flag-5'>virtio</b>總體設計思想

    I/O軟件模擬虛擬和類虛擬

    I/O虛擬是SmartNIC/DPU/IPU中最核心的部分,AWS NITRO就是從I/O硬件
    的頭像 發表于 10-13 11:09 ?2870次閱讀

    I/O虛擬Virtio接口介紹

    I/O虛擬是計算機虛擬最復雜的部分,因為涉及到CPU、操作系統、Hypervisor以及
    的頭像 發表于 10-26 17:21 ?4754次閱讀

    探究I/O虛擬Virtio接口技術(上)

    I/O虛擬是SmartNIC/DPU/IPU中最核心的部分,AWS NITRO就是從I/O硬件
    的頭像 發表于 04-04 16:54 ?4188次閱讀
    <b class='flag-5'>探究</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>虛擬</b><b class='flag-5'>化</b>及<b class='flag-5'>Virtio</b><b class='flag-5'>接口技術</b>(上)

    VirtIO Networking虛擬網絡設備實現架構

    VirtIO 由 Rusty Russell 開發,最初是為了支持自己開發的 lguest Hypervisor,其設計目標是在虛擬環境提供與物理設備相近的
    的頭像 發表于 05-08 10:48 ?1477次閱讀
    <b class='flag-5'>VirtIO</b> Networking<b class='flag-5'>虛擬</b>網絡設備實現架構

    panabit加載virtio網卡驅動

    引言:Panabit網絡流量管理系統是一款強大的企業級網絡管理軟件,它提供了豐富的功能和靈活的配置選項。而virtio網卡作為一種高性能的虛擬網絡設備,被廣泛應用于各種虛擬平臺。本文
    的頭像 發表于 11-17 11:13 ?1577次閱讀

    I/O接口I/O端口的區別

    在計算機系統中,I/O接口I/O端口是實現CPU與外部設備數據交換的關鍵組件,它們在功能、結構、作用及運作機制上均存在顯著差異,卻又相互協
    的頭像 發表于 02-02 16:00 ?855次閱讀
    主站蜘蛛池模板: 久久精品视频观看 | 人人干干 | 一道精品视频一区二区三区男同 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看尤物 | 亚洲人成在线精品不卡网 | 国产四虎精品 | 爱婷婷网站在线观看 | 亚洲久久久 | 黄色三级免费网站 | 免费激情网址 | avtom影院永久地址人人影院 | 国产美女精品三级在线观看 | 久久艹免费视频 | 天天综合干 | 天天干天天干天天干天天 | 日韩午夜| 人人干干人人 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | 成人免费播放视频777777 | 亚洲开心激情网 | 四虎www成人影院免费观看 | 色视频综合 | 国产三级精品三级在线观看 | 久久久夜色精品国产噜噜 | 国产又大又黄又粗又爽 | 四虎影院海外永久 | 亚洲日本一区二区三区在线不卡 | 国产特级毛片aaaaaa毛片 | 热99视频| 免费的男女拍拍拍的视频 | 欧美视频一区二区三区在线观看 | 天堂在线www网亚洲 天堂在线观看 | 222在线视频免费观看 | 99久久无色码中文字幕 | 永久看日本大片免费 | 奇米影视久久 | xvideos国产| 视频一区二区在线 | a天堂影院 | 人人干操 | 天堂在线中文无弹窗全文阅读 |