【重識云原生】第四章云網(wǎng)絡(luò)4.7.8節(jié)——SR-IOV方案

1 高性能SR-IOV網(wǎng)絡(luò)(SR-IOV)

1.1 SR-IOV原理簡介

????????SR-IOV是Single Root I/O Virtualization的縮寫执庐。SR-IOV 技術(shù)是一種基于硬件的虛擬化解決方案幕垦,可提高性能和可伸縮性榕堰。SR-IOV 標準允許在虛擬機之間高效共享 PCIe(Peripheral Component Interconnect Express,快速外設(shè)組件互連)設(shè)備神妹,并且它是在硬件中實現(xiàn)的,可以獲得能夠與本機性能媲美的 I/O 性能愿吹。SR-IOV 規(guī)范定義了新的標準捺氢,根據(jù)該標準,創(chuàng)建的新設(shè)備可允許將虛擬機直接連接到 I/O 設(shè)備把曼。

????????SR-IOV 規(guī)范由 PCI-SIG 在?http://www.pcisig.com?上進行定義和維護杨帽。

????????單個 I/O 資源可由許多虛擬機共享。共享的設(shè)備將提供專用的資源嗤军,并且還使用共享的通用資源注盈。這樣,每個虛擬機都可訪問唯一的資源叙赚。因此老客,啟用了 SR-IOV 并且具有適當?shù)挠布?OS 支持的 PCIe 設(shè)備(例如以太網(wǎng)端口)可以顯示為多個單獨的物理設(shè)備,每個都具有自己的 PCIe 配置空間震叮。

SR-IOV 技術(shù)

SR-IOV 中的兩種新功能類型是:

  • 物理功能 (Physical Function, PF)

????????用于支持 SR-IOV 功能的 PCI 功能胧砰,如 SR-IOV 規(guī)范中定義。PF 包含 SR-IOV 功能結(jié)構(gòu)苇瓣,用于管理 SR-IOV 功能尉间。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 設(shè)備一樣進行發(fā)現(xiàn)击罪、管理和處理哲嘲。PF 擁有完全配置資源,可以用于配置或控制 PCIe 設(shè)備媳禁。

  • 虛擬功能 (Virtual Function, VF)

????????與物理功能關(guān)聯(lián)的一種功能眠副。VF 是一種輕量級 PCIe 功能,可以與物理功能以及與同一物理功能關(guān)聯(lián)的其他 VF 共享一個或多個物理資源竣稽。VF 僅允許擁有用于其自身行為的配置資源囱怕。

????????每個 SR-IOV 設(shè)備都可有一個物理功能 (Physical Function, PF)槽唾,并且每個 PF 最多可有 64,000 個與其關(guān)聯(lián)的虛擬功能 (Virtual Function, VF)。PF 可以通過寄存器創(chuàng)建 VF光涂,這些寄存器設(shè)計有專用于此目的的屬性。

????????一旦在 PF 中啟用了 SR-IOV拧烦,就可以通過 PF 的總線忘闻、設(shè)備和功能編號(路由 ID)訪問各個 VF 的 PCI 配置空間。每個 VF 都具有一個 PCI 內(nèi)存空間恋博,用于映射其寄存器集齐佳。VF 設(shè)備驅(qū)動程序?qū)拇嫫骷M行操作以啟用其功能,并且顯示為實際存在的 PCI 設(shè)備债沮。創(chuàng)建 VF 后炼吴,可以直接將其指定給 IO 來賓域或各個應(yīng)用程序(如裸機平臺上的 Oracle Solaris Zones)。此功能使得虛擬功能可以共享物理設(shè)備疫衩,并在沒有 CPU 和虛擬機管理程序軟件開銷的情況下執(zhí)行 I/O硅蹦。

1.2 SR-IOV 的優(yōu)點

????????SR-IOV 標準允許在 IO 來賓域之間高效共享 PCIe 設(shè)備。SR-IOV 設(shè)備可以具有數(shù)百個與某個物理功能 (Physical Function, PF) 關(guān)聯(lián)的虛擬功能 (Virtual Function, VF)闷煤。VF 的創(chuàng)建可由 PF 通過設(shè)計用來開啟 SR-IOV 功能的寄存器以動態(tài)方式進行控制童芹。缺省情況下,SR-IOV 功能處于禁用狀態(tài)鲤拿,PF 充當傳統(tǒng) PCIe 設(shè)備假褪。

????????具有 SR-IOV 功能的設(shè)備可以利用以下優(yōu)點:

  • 高性能-從虛擬機環(huán)境直接訪問硬件梅屉。
  • 成本降低-節(jié)省的資本和運營開銷包括:
    • 節(jié)能
    • 減少了適配器數(shù)量
    • 簡化了布線
    • 減少了交換機端口

1.3 SR-IOV限制

????????在SR-IOV passthrough的場景下枷颊,虛擬機(VM)可以獲得與裸金屬主機上相比擬的網(wǎng)絡(luò)性能。但是缩麸,仍然存在兩個限制:

????????(1)SR-IOV VF passthrough到VM后窒升,VM的遷移性會受限缀遍,主要原因在于SR-IOV這種passthrough I/O借助了Intel CPU VT-d(Virtualization Technology for Directed I/O)或AMD的IOMMU(I/O Memory Management Unit)技術(shù),在VM上VF網(wǎng)卡初始化的時候饱须,建立了Guest虛擬地址到Host物理地址的映射表瑟由,所以這種“有狀態(tài)”的映射表在熱遷移的過程中會丟失。

????????(2)由于SR-IOV VF passthrough到VM冤寿,而SR-IOV PF直接連接到TOR上歹苦,在這種部署環(huán)境中虛擬機(VM)對外的網(wǎng)絡(luò)需要自定義,如需要像OVS-DPDK那樣自動開通網(wǎng)絡(luò)督怜,則需要將TOR加入SDN控制器的管理范疇殴瘦,由SDN控制器統(tǒng)一管控,這樣做通常會使網(wǎng)絡(luò)運營變的非常復(fù)雜号杠。

????????針對上面第二個問題蚪腋,Mellanox最早提出在其智能網(wǎng)卡上支持OVS Fastpath硬件卸載丰歌,結(jié)合SR-IOV VF passthrough到VM一起使用,提供臨近線速轉(zhuǎn)發(fā)的網(wǎng)絡(luò)能力屉凯,解決了虛擬機(VM)租戶網(wǎng)絡(luò)自動化編排開通的問題立帖。

????????在OVS Fastpath卸載后,OVS轉(zhuǎn)發(fā)報文時悠砚,數(shù)據(jù)流首包仍然做軟件轉(zhuǎn)發(fā)晓勇,在轉(zhuǎn)發(fā)過程中生成Fastpath轉(zhuǎn)發(fā)流表并配置到硬件網(wǎng)卡上,這個數(shù)據(jù)流的后續(xù)報文則通過硬件直接轉(zhuǎn)發(fā)給虛擬機(VM)灌旧。由于早期的Mellanox智能網(wǎng)卡還沒有集成通用CPU核绑咱,OVS的控制面依然在物理主機上運行。

1.4 SR-IOV內(nèi)部架構(gòu)

????????以上圖為例逐個解釋關(guān)鍵詞:

  1. PF就是物理網(wǎng)卡所支持的一項PCI功能枢泰,PF可以擴展出若干個VF
  2. VF是支持SRIOV的物理網(wǎng)卡所虛擬出的一個“網(wǎng)卡”或者說虛出來的一個實例描融,它會以一個獨立網(wǎng)卡的形式呈現(xiàn)出來,每一個VF有它自己獨享的PCI配置區(qū)域衡蚂,并且可能與其他VF共享著同一個物理資源(公用同一個物理網(wǎng)口)
  3. PF miniport driver即PF驅(qū)動是工作于Hyper-V虛擬化平臺父區(qū)域的窿克,并在VF之前最先加載
  4. VF miniport driver即VF驅(qū)動是工作于Hyper-V虛擬化平臺子區(qū)域的,即guestOS毛甲;需要注意的是让歼,VF及PF之間是隔離的,任何經(jīng)由VF驅(qū)動或所執(zhí)行的結(jié)果都不會影響到其他的VF或PF
  5. Network Interface Card即物理網(wǎng)卡丽啡,在啟用SRIOV之后會生成若干vport谋右,物理NIC所要做的就是轉(zhuǎn)發(fā)physical port與vport之間的流量
  6. physical port顧名思義就是物理網(wǎng)口,在SRIOV場景中physical port充當一個面向?qū)ν獾木W(wǎng)絡(luò)媒介
  7. VPort是個抽象出來的接口补箍,類似于物理網(wǎng)口改执,它們被映射給每一個VF或者PF,供parentOS或guestOS來使用

????????通過以上架構(gòu)的描述就可以看出坑雅,啟用SRIOV之后辈挂,物理NIC將通過VF與虛擬機(VF driver)進行數(shù)據(jù)交互,反之亦然裹粤。那么這樣一來即可跳過中間的虛擬化堆棧(即VMM層)终蒂,以達到近乎于純物理環(huán)境的性能;這一點也是SRIOV最大的價值所在

參考鏈接

DPU和CPU互聯(lián)的接口之爭:Virtio還是SR-IOV遥诉? - 極術(shù)社區(qū) - 連接開發(fā)者與智能計算生態(tài)

KVM 虛擬化詳解 - 知乎

DPU應(yīng)用場景系列(一)網(wǎng)絡(luò)功能卸載 - 知乎

SR-IOV 基本原理 - 灰信網(wǎng)(軟件開發(fā)博客聚合)

虛擬化中的SR-IOV_謝睿的工作博客的技術(shù)博客_51CTO博客

網(wǎng)絡(luò)虛擬化——SR-IOV_dillanzhou的博客-CSDN博客_sr-iov

SR-IOV虛擬化簡解_來杯清咖_的博客-CSDN博客_sr-iov

SR-IOV 簡介 - 編寫設(shè)備驅(qū)動程序

SR-IOV是什么拇泣?性能能好到什么程度? - 知乎

SR-IOV_百度百科

SR-IOV 簡介 - 編寫設(shè)備驅(qū)動程序

IO虛擬化——SR-IOV 原理

SR-IOV詳解_43259260的博客-CSDN博客_sr-iov

虛擬化中的SR-IOV_謝睿的工作博客的技術(shù)博客_51CTO博客

SR-IOV 基本原理 - 灰信網(wǎng)(軟件開發(fā)博客聚合)

?《重識云原生系列》專題索引:?

  1. 第一章——不謀全局不足以謀一域
  2. 第二章計算第1節(jié)——計算虛擬化技術(shù)總述
  3. 第三章云存儲第1節(jié)——分布式云存儲總述
  4. 第四章云網(wǎng)絡(luò)第一節(jié)——云網(wǎng)絡(luò)技術(shù)發(fā)展簡述
  5. 第四章云網(wǎng)絡(luò)4.2節(jié)——相關(guān)基礎(chǔ)知識準備
  6. 第四章云網(wǎng)絡(luò)4.3節(jié)——重要網(wǎng)絡(luò)協(xié)議
  7. 第四章云網(wǎng)絡(luò)4.3.1節(jié)——路由技術(shù)簡述
  8. 第四章云網(wǎng)絡(luò)4.3.2節(jié)——VLAN技術(shù)
  9. 第四章云網(wǎng)絡(luò)4.3.3節(jié)——RIP協(xié)議
  10. 第四章云網(wǎng)絡(luò)4.3.4節(jié)——OSPF協(xié)議
  11. 第四章云網(wǎng)絡(luò)4.3.5節(jié)——EIGRP協(xié)議
  12. 第四章云網(wǎng)絡(luò)4.3.6節(jié)——IS-IS協(xié)議
  13. 第四章云網(wǎng)絡(luò)4.3.7節(jié)——BGP協(xié)議
  14. 第四章云網(wǎng)絡(luò)4.3.7.2節(jié)——BGP協(xié)議概述
  15. 第四章云網(wǎng)絡(luò)4.3.7.3節(jié)——BGP協(xié)議實現(xiàn)原理
  16. 第四章云網(wǎng)絡(luò)4.3.7.4節(jié)——高級特性
  17. 第四章云網(wǎng)絡(luò)4.3.7.5節(jié)——實操
  18. 第四章云網(wǎng)絡(luò)4.3.7.6節(jié)——MP-BGP協(xié)議
  19. 第四章云網(wǎng)絡(luò)4.3.8節(jié)——策略路由
  20. 第四章云網(wǎng)絡(luò)4.3.9節(jié)——Graceful Restart(平滑重啟)技術(shù)
  21. 第四章云網(wǎng)絡(luò)4.3.10節(jié)——VXLAN技術(shù)
  22. 第四章云網(wǎng)絡(luò)4.3.10.2節(jié)——VXLAN Overlay網(wǎng)絡(luò)方案設(shè)計
  23. 第四章云網(wǎng)絡(luò)4.3.10.3節(jié)——VXLAN隧道機制
  24. 第四章云網(wǎng)絡(luò)4.3.10.4節(jié)——VXLAN報文轉(zhuǎn)發(fā)過程
  25. 第四章云網(wǎng)絡(luò)4.3.10.5節(jié)——VXlan組網(wǎng)架構(gòu)
  26. 第四章云網(wǎng)絡(luò)4.3.10.6節(jié)——VXLAN應(yīng)用部署方案
  27. 第四章云網(wǎng)絡(luò)4.4節(jié)——Spine-Leaf網(wǎng)絡(luò)架構(gòu)
  28. 第四章云網(wǎng)絡(luò)4.5節(jié)——大二層網(wǎng)絡(luò)
  29. 第四章云網(wǎng)絡(luò)4.6節(jié)——Underlay 和 Overlay概念
  30. 第四章云網(wǎng)絡(luò)4.7.1節(jié)——網(wǎng)絡(luò)虛擬化與卸載加速技術(shù)的演進簡述
  31. 第四章云網(wǎng)絡(luò)4.7.2節(jié)——virtio網(wǎng)絡(luò)半虛擬化簡介
  32. 第四章云網(wǎng)絡(luò)4.7.3節(jié)——Vhost-net方案
  33. 第四章云網(wǎng)絡(luò)4.7.4節(jié)vhost-user方案——virtio的DPDK卸載方案
  34. 第四章云網(wǎng)絡(luò)4.7.5節(jié)vDPA方案——virtio的半硬件虛擬化實現(xiàn)
  35. 第四章云網(wǎng)絡(luò)4.7.6節(jié)——virtio-blk存儲虛擬化方案
  36. 第四章云網(wǎng)絡(luò)4.7.8節(jié)——SR-IOV方案
  37. 第四章云網(wǎng)絡(luò)4.7.9節(jié)——NFV
  38. 第四章云網(wǎng)絡(luò)4.8.1節(jié)——SDN總述
  39. 第四章云網(wǎng)絡(luò)4.8.2.1節(jié)——OpenFlow概述
  40. 第四章云網(wǎng)絡(luò)4.8.2.2節(jié)——OpenFlow協(xié)議詳解
  41. 第四章云網(wǎng)絡(luò)4.8.2.3節(jié)——OpenFlow運行機制
  42. 第四章云網(wǎng)絡(luò)4.8.3.1節(jié)——Open vSwitch簡介
  43. 第四章云網(wǎng)絡(luò)4.8.3.2節(jié)——Open vSwitch工作原理詳解
  44. 第四章云網(wǎng)絡(luò)4.8.4節(jié)——OpenStack與SDN的集成
  45. 第四章云網(wǎng)絡(luò)4.8.5節(jié)——OpenDayLight
  46. 第四章云網(wǎng)絡(luò)4.8.6節(jié)——Dragonflow
本文由[mdnice](https://mdnice.com/?platform=6)多平臺發(fā)布
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矮锈,一起剝皮案震驚了整個濱河市霉翔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苞笨,老刑警劉巖债朵,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件子眶,死亡現(xiàn)場離奇詭異,居然都是意外死亡序芦,警方通過查閱死者的電腦和手機臭杰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谚中,“玉大人渴杆,你說我怎么就攤上這事〔卣龋” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵脉顿,是天一觀的道長蝌麸。 經(jīng)常有香客問我,道長艾疟,這世上最難降的妖魔是什么来吩? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蔽莱,結(jié)果婚禮上弟疆,老公的妹妹穿的比我還像新娘。我一直安慰自己盗冷,他們只是感情好怠苔,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仪糖,像睡著了一般柑司。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锅劝,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天攒驰,我揣著相機與錄音,去河邊找鬼故爵。 笑死玻粪,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的诬垂。 我是一名探鬼主播劲室,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼结窘!你這毒婦竟也來了痹籍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晦鞋,失蹤者是張志新(化名)和其女友劉穎蹲缠,沒想到半個月后棺克,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡线定,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年娜谊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斤讥。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡纱皆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芭商,到底是詐尸還是另有隱情派草,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布铛楣,位于F島的核電站近迁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏簸州。R本人自食惡果不足惜鉴竭,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岸浑。 院中可真熱鬧搏存,春花似錦、人聲如沸矢洲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽读虏。三九已至蛆橡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掘譬,已是汗流浹背泰演。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留葱轩,地道東北人睦焕。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像靴拱,于是被迫代替她去往敵國和親垃喊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容