《DPDK套用基礎》是2016年8月人民郵電出版社出版的圖書,作者是唐宏、柴卓原、任平、王勇。
基本介紹
- 中文名:DPDK套用基礎
- 作者:唐宏、柴卓原、任平、王勇
- ISBN:9787115426048
- 頁數:190頁
- 定價:49元
- 出版社:人民郵電出版社
- 出版時間:2016年8月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書不僅深入淺出地介紹了DPDK的基礎原理和安裝調試方法,還詳細介紹了DPDK在NFV中的套用場景和測試方法,並敘述了DPDK套用開發的技術細節和實踐經驗,是DPDK的入門必讀,是了解NFV加速轉發技術的**指南。
圖書目錄
第 一部分 基礎原理
第 1 章 背景概述........................................................................................................ 3
1.1 產業背景.................................................................................................................. 3
1.1.1 x86 架構性能分析..............................................................................................4
1.1.2 NFV 中的網路轉發性能分析..............................................................................5
1.1.3 DPDK 的引入.......................................................................................................7
1.1.4 本書範圍............................................................................................................... 8
1.2 DPDK 開源社區.................................................................................................. 9
1.2.1 社區起源............................................................................................................... 9
1.2.2 社區網站............................................................................................................. 10
1.3 DPDK 原始碼...................................................................................................... 11
1.3.1 版本總述............................................................................................................. 11
1.3.2 **新版本特性介紹.............................................................................................12
參考文獻........................................................................................................................... 13
第 2 章 DPDK 技術簡介.............................................................................................. 14
2.1 軟體架構................................................................................................................. 14
2.2 巨頁技術.................................................................................................................. 16
2.3 輪詢技術.................................................................................................................. 16
2.4 CPU 親和技術........................................................................................................ 16
2.5 DPDK 性能影響因素........................................................................................ 17
2.5.1 硬體結構............................................................................................................. 17
2.5.2 OS 版本及其核心...............................................................................................18
2.5.3 OVS 性能問題.................................................................................................... 20
2.5.4 記憶體管理............................................................................................................. 20
2.5.5 CPU 核間無鎖通信 ............................................................................................22
2.5.6 目標 CPU 類型的正確設定 ...............................................................................22
第 3 章 DPDK 庫函式.................................................................................................. 23
3.1 EAL 庫................................................................................................................. 24
3.1.1 核心初始化與啟動.............................................................................................24
3.1.2 記憶體..................................................................................................................... 25
3.1.3 多執行緒與親和性.................................................................................................25
3.2 Ring 庫.................................................................................................................. 26
3.2.1 單消費者入隊..................................................................................................... 26
3.2.2 單消費者出隊..................................................................................................... 28
3.3 Mempool 庫 ......................................................................................................... 29
3.4 mbuf 庫 .................................................................................................................. 30
3.4.1 數據存儲............................................................................................................. 30
3.4.2 緩衝區分配與釋放.............................................................................................31
3.4.3 相關操作............................................................................................................. 31
3.5 PMD 驅動........................................................................................................... 31
3.5.1 需求與設計......................................................................................................... 31
3.5.2 配置..................................................................................................................... 32
3.6 IVSHMEM 庫........................................................................................................ 32
3.6.1 API 概述 ............................................................................................................. 33
3.6.2 環境配置............................................................................................................. 34
3.7 Timer 庫.................................................................................................................... 34
3.8 LPM 庫..................................................................................................................... 34
3.8.1 API 概述 ............................................................................................................. 35
3.8.2 實現說明............................................................................................................. 35
3.9 Hash 庫................................................................................................................. 36
3.9.1 API 概述 ............................................................................................................. 36
3.9.2 實現說明............................................................................................................. 36
3.10 多進程支持....................................................................................................... 37
3.10.1 記憶體共享............................................................................................................. 38
3.10.2 局限性................................................................................................................. 38
參考文獻........................................................................................................................... 39
第 4 章 DPDK 安裝與部署.................................................................................... 40
4.1 系統要求.............................................................................................................. 40
4.1.1 BIOS 設定要求................................................................................................... 40
4.1.2 DPDK 編譯要求................................................................................................. 40
4.1.3 運行 DPDK 應用程式要求................................................................................41
4.2 使用原始碼編譯 DPDK............................................................................................. 43
4.2.1 安裝 DPDK 安裝包............................................................................................43
4.2.2 安裝 DPDK 目標環境........................................................................................43
4.2.3 查看已安裝的 DPDK 環境................................................................................44
4.2.4 啟用 DPDK 用戶空間 I/O 的模組.....................................................................44
4.2.5 載入 VFIO 模組.................................................................................................. 45
4.2.6 在核心模組綁定/解除網路連線埠........................................................................45
4.3 編譯和運行示例應用程式...............................................................................46
4.3.1 編譯示例應用程式.............................................................................................46
4.3.2 運行示例應用程式.............................................................................................47
4.3.3 應用程式的邏輯核使用.....................................................................................47
4.3.4 應用程式巨頁記憶體使用.....................................................................................48
4.3.5 其他套用示例程式.............................................................................................48
4.3.6 測試應用程式..................................................................................................... 48
4.4 啟用其他功能...................................................................................................... 49
4.4.1 高精度事件計時器(HPET)功能...................................................................49
4.4.2 無許可權運行 DPDK 應用程式............................................................................49
4.4.3 電源管理和節能功能.........................................................................................50
4.4.4 核隔離功能......................................................................................................... 50
4.4.5 載入 DPDK KNI 核心模組................................................................................50
4.4.6 IOMMU 功能...................................................................................................... 51
4.4.7 小數據分組高速轉發功能.................................................................................51
4.5 快速啟動設定腳本............................................................................................ 52
4.5.1 腳本組織結構..................................................................................................... 52
4.5.2 使用場景............................................................................................................. 53
第 5 章 DPDK 自帶套用軟體調試..............................................................................54
5.1 命令行套用例....................................................................................................... 54
5.1.1 概述..................................................................................................................... 54
5.1.2 套用例編譯......................................................................................................... 55
5.1.3 套用例運行......................................................................................................... 55
5.1.4 代碼說明............................................................................................................. 55
5.2 HelloWorld 套用例............................................................................................. 56
5.2.1 套用例編譯......................................................................................................... 57
5.2.2 運行套用例......................................................................................................... 57
5.2.3 代碼說明............................................................................................................. 57
5.3 L2 轉發套用例 .................................................................................................... 58
5.3.1 概述..................................................................................................................... 58
5.3.2 編譯..................................................................................................................... 59
5.3.3 運行..................................................................................................................... 59
5.3.4 代碼說明............................................................................................................. 60
5.4 L3 轉發套用例 .................................................................................................... 65
5.4.1 概述..................................................................................................................... 65
5.4.2 L3 轉發套用例編譯............................................................................................65
5.4.3 L3 轉發套用例運行............................................................................................65
5.4.4 代碼說明............................................................................................................. 66
5.5 負載均衡套用例................................................................................................. 69
5.5.1 概述..................................................................................................................... 69
5.5.2 編譯與運行......................................................................................................... 70
5.5.3 代碼說明............................................................................................................. 70
5.6 QoS 調度套用例................................................................................................... 72
5.6.1 QoS 調度套用例概述.........................................................................................72
5.6.2 QoS 調度套用例編譯.........................................................................................72
5.6.3 QoS 調度套用例運行.........................................................................................73
5.6.4 套用例代碼說明................................................................................................. 75
5.7 定時器套用例....................................................................................................... 76
5.7.1 套用例編譯與運行.............................................................................................76
5.7.2 套用例代碼說明................................................................................................. 76
5.8 分發器套用例..................................................................................................... 78
5.8.1 概述..................................................................................................................... 78
5.8.2 分發器套用例編譯.............................................................................................79
5.8.3 分發器套用例運行.............................................................................................79
5.8.4 分發器套用例代碼說明.....................................................................................79
5.8.5 調試與統計信息................................................................................................. 80
參考文獻........................................................................................................................... 80
第 二部分 DPDK 套用與測試
第 6 章 DPDK 在 NFV 的套用和相關測試方法......................................................... 83
6.1 DPDK 在 NFV 中的套用場景.............................................................................. 83
6.1.1 x86 伺服器上的套用..........................................................................................83
6.1.2 虛擬機+OVS 的套用..........................................................................................84
6.1.3 虛擬機+SR-IOV 技術的套用.............................................................................86
6.2 NFV 場景下的測試方法................................................................................ .... ..87
6.2.1 測試拓撲............................................................................................................. 87
6.2.2 測試標準............................................................................................................. 88
6.2.3 測試平台說明..................................................................................................... 89
第 7 章 DPDK 專項測試與結論.................................................................................. 92
7.1 測試用例介紹............................................................................................................. 92
7.2 專項測試詳情.......................................................................................................... 93
7.2.1 x86 伺服器三層轉發測試..................................................................................93
7.2.2 SR-IOV 測試..................................................................................................... 108
7.2.3 OVS 測試.......................................................................................................... 126
第三部分 DPDK 套用開發及實例解析
第 8 章 DPDK 套用開發基礎....................................................................................... 135
8.1 網卡設備................................................................................................................ 135
8.1.1 設備驅動........................................................................................................... 135
8.1.2 套用接口........................................................................................................... 136
8.1.3 設備接口........................................................................................................... 137
8.2 進程..................................................................................................................... 145
8.2.1 執行緒................................................................................................................... 145
8.2.2 單進程............................................................................................................... 146
8.2.3 多進程............................................................................................................... 147
參考文獻............................................................................................................................... 149
第 9 章 vDPI 套用實例.................................................................................................. 150
9.1 DPI 簡介 ................................................................................................................... 150
9.2 總體設計.................................................................................................................... 151
9.2.1 模型設計........................................................................................................... 151
9.2.2 組件設計...........................................................................................................151
9.3 實現方案設計.............................................................................................................. 152
9.4 基於 l3fwd 的實現方案.......................................................................................... 153
9.4.1 DPDK 乙太網接口........................................................................................... 153
9.4.2 DPI 乙太網接口................................................................................................ 154
9.4.3 DPDK 與 DPI 的數據接口轉換.......................................................................155
9.4.4 代碼解析........................................................................................................... 155
9.5 基於 pipeline 的實現方案.................................................................................... 157
9.6 實例運行及性能測試.................................................................................................. 158
參考文獻............................................................................................................................... 159
第 10 章 mTCP 和 BRAS 套用實例.................................................................................. 160
10.1 mTCP 案例解析 ...................................................................................................160
10.1.1 mTCP 簡介 ..................................................................................................... 160
10.1.2 mTCP 套用解析.............................................................................................. 161
10.2 BRAS 案例解析 ........................................................................................................ 165 10.2.1 BRAS 簡介 ..................................................................................................... 165
10.2.2 BRAS 套用解析.............................................................................................. 166
參考文獻............................................................................................................................... 168
附錄
附錄一 作業系統服務關閉說明......................................................................................... 171 附錄二 作業系統安裝......................................................................................................... 172 附錄三 DPDK 編譯............................................................................................................. 173
附錄四 作業系統啟動參數................................................................................................ 174
附錄五 l3fwd 程式編譯 ................................................................................................... 175
附錄六 l3fwd 啟動配置 ................................................................................................... 178
附錄七 SR-IOV 測試配置........................................................................................................ 181
附錄八 OVS 安裝.................................................................................................................. 183
附錄九 OVS 測試配置...................................................................................................... 184
附錄十 l3fwd 在不同流量下啟動配置 .............................................................................187
附錄十一 大流表測試 l3fwd 啟動配置 ............................................................................. 190