dpdk 虛擬化簡述

2021-09-24 03:47:20 字數 1620 閱讀 9703

水平有限,純屬扯淡,

dpdk虛擬化,有很多資料就從虛擬化開始不辣不辣的開始講,cpu虛擬化,記憶體虛擬化,然後io虛擬化,咔咔咔半天你早已沒有興趣了,以上描述跟dpdk有毛關係,我說的毛,是有點毛關係的,不許理會,記得當初以為做linux核心肯定有前途那可是核心呀,學習1.0版本那本書,某人寫的狗屁剖析,光講記憶體段模式用了16頁,最後本來懂了大體怎麼回事又被他收回去了,最後才知道人家linux根本就不用段模式,羊駝飄過,咱也不知道,咱也不敢問

直奔主題

io 虛擬化是我們關注的,因為dpdk就是io的乙個平台吧,我就這麼說了,怎麼滴吧,如有不爽直接撞牆,其實我不懂,

io全虛擬化,就是vmware那樣,全模擬,win10不知道在vmware中被安裝,你以為你是自由的,實際上你是被圈養的。(裝置列舉,識別,中斷,dma,我也不知道我為啥寫出這四個東西,背下來就是,時間久了就懂了)

io半虛擬化,就是有通敵的步驟了,win10裡面的io軟體知道自己是處在虛擬機器中的,(間諜就是前端驅動),實體機中的間諜叫後端驅動,(前後端通訊過程就是理解成翻牆的意思就行,乙個vpn客戶端乙個vpn伺服器)

io透傳   win10直接可以使用物理硬碟不用vmware給你假裝模擬一塊,(就是不用翻牆就能訪問的國外**)

這時候應該來張圖:

圖是歪的,所以手機拍照的時候一定要豎著拍,湊活著看吧,反正是抄的。

我也不知道裡面畫的啥,透傳需要pci和pci-e裝置支援intel vt-d才行

最後介紹乙個東東 跟以上沒有關係但也屬於虛的那塊,sr-iov能把物理網絡卡虛擬出好幾個,當物理網絡卡用,我想說中國人說的哪個牛詞,無限的敬仰,太厲害了

intel vt-d,(我也不知道為啥要貼這個,書上這個地方貼的,此處我覺得跟dpdk沒關係)

gpa------->hpa(vt-d就是幹這個的)

gpa----------------|-------------->hpa(vt-d就是幹這個的)

dma重對映硬體截獲然後根據io頁表(同樣支援4k,2m,1g的大頁)也有iotlb,就轉了,啟用vt-d只能訪問指定域的記憶體,

最後vt-d有以下功能:第一,io裝置分配 , dma對映,中斷對映,可靠,完了。

pcie sr-iov(單根io虛擬化,啥意思咱也不知道,咱也不敢問),功能就是能把乙個物理網絡卡搞出多個,ifconfig 只有乙個eth0,開啟以後就能有eth1,或者更多(網絡卡虛擬只是 它的乙個小功能而已,)

pf(配置管理sr-iov,有所有的資源,不能被乾掉,理解成老大就行了)

vf(精簡的,可以通過pf乾掉的或者建立)

此時有圖:

開啟vt-d 1,開bios中的vt-d和vt-x,核心啟動加intel_iommu=on,這樣才能透傳

但是透傳環境下執行dpdk會有問題,這時候核心啟動項新增iommu=pt,這樣就不會被翻譯了,或者繫結vfio-pci驅動,

vfio-pci是乙個iommu使用者態驅動可以使用者態配置iommu,當使用時,dpdk就會設定dma對映,直接實體地址作為對映,說白了就是對映成跟不被對映一樣,直接衝過iommu位址翻譯

iOS元件化簡述

ios應用架構談 元件化方案 a 分層 b 中介軟體 target action,url block,protocl class ctmediator的優點 router的缺點 1 ctmediator中介軟體 整合就可以了 2 模組target 模組的實現以及提供對外的額方法,呼叫action m...

mysql 效能優化簡述

用 explain 分析sql語句。使用max 函式時,給max的字段加索引來優化 把子查詢優化為連表查詢,但要注意有重複資料 優化limit技巧 1.使用有索引的列或主鍵進行order by 2.記錄上一次返回的最大id用where id last max id 來過濾資料 關於索引欄位的優化 出...

JS 前端模組化(簡述)

模組化主要是用來抽離公共 提高 復用率,隔離作用域,避免變數衝突等。通常乙個檔案就是乙個模組,有自己的作用域,只向外暴露特定的變數和函式。目前流行的模組化規範有amd cmd commonjs以及es6的模組系統。模組化的開發方式可以方便進行 的管理。非同步模組定義規範 requirejs 非同步載...