DPDK Pktgen+Docker搭建VNF環境及驗證
作者簡介:文殊博,北京郵電大學未來網路理論與應用實驗室(FNL)研究生
一、簡介及參考文獻
本文主要是搭建一個基於DPDK的VNF開發實驗環境,利用docker和vhost-user擺脫DPDK的硬體約束,方便在一臺機器上進行VNF的開發和測試。但是,DPDK的PMD對不同網絡卡的特性支援差異很大,所以不能完全以這種環境下的執行結果為準。接下來會先介紹環境的配置過程然後搭建一個簡單的拓撲,最後會對DPDK的testpmd應用中最簡單的iofwd轉發引擎中關鍵部分進行簡單說明。
- NFV(Network Funciton Virtualization, 網路功能虛擬化)旨在通過標準化裝置替代現存的專用IT裝置,以降低CapEX和OpEX並提供更高的靈活性。更詳細內容的可以檢視ETSI釋出的
- DPDK是intel開發的開源高效能資料平面開發工具集。它提供了在通用處理器上進行快速包處理的庫和驅動,這種特性非常適合NFV。更詳細內容的內容可以檢視DPDK官方文件。
- pktgen即packet generator,以下都特指pktgen-dpdk。這是一款基於DPDK的強大的流量產生工具。更詳細的內容可以檢視pktgen官方文件
- Docker是一款簡單易用的容器管理工具。由於容器本身啟停快、體積小等、
- 特點,容器化也成為了NFV的趨勢之一。更詳細內容可以檢視Docker官方文件
- vhost-user是實現在使用者態的vhost,相比virtio和vhost需要核心支撐,vhost-user可以完全工作在使用者態。vhost-user通過socket檔案和共享記憶體來完成資料的傳遞。更詳細內容可以檢視QEMU關於
二、環境配置
2.1 DPDK的安裝
-
下載DPDK原始碼,並配置安裝所需環境變數。
123456789 wget http://fast.dpdk.org/rel/dpdk-17.05.2.tar.xztar-xvf dpdk-17.05.2.tar.xzcd dpdk-stable-17.05.2#設定DPDK庫目錄位置echo export RTE_SDK=$(pwd)>>~/.bashrc#設定DPDK目標環境#注意!這裡的x86_64-native-linuxapp-gcc應替換為實際執行環境echo export RTE_TARGET 配置DPDK
1 vim config/common_base 這裡由於要是用Vhost-user驅動,修改使得檔案中CONFIG_RTE_LIBRTE_VHOST=y。如果需要連線其他驅動的網絡卡,也要確認其他驅動相關設定正確。
-
安裝DPDK
123 make configT=$RTE_TARGETmakeT=$RTE_TARGET-j8make installT=$RTE_TARGET-j8
2.2 hugepages的配置
- 本實驗中由於我們需要使用virtio-user這種連線方式,由於實現時的一些限制導致使用vhost-user時同時最多隻能使用8個hugepages無論2M還是1G大小的hugepagesize。所以這裡必須使用1G大小的hugepagesize同時最多分配8個。
1 2 3 4 5 6 7 8 9 10 11 | sudo vim/etc/default/grub #找到其中一項為 GRUB_CMDLINE_LINUX_DEFAULT= ,不論後面的引號內包含任何內容,在原本內容之後新增 default_hugepagesz=1GB hugepagesz=1G hugepages=8(這裡分配了8個1G的hugepages) sudo update-grub #之後需要重啟一下 reboot #檢視分配情況 grep Huge/proc/meminfo #分配成功後進行掛載 mkdir-p/dev/hugepages mount-thugetlbfs none/dev/hugepages #之後每次重啟後都要再執行後兩句 |
2.3 Pktgen的安裝
-
pktgen的安裝依賴於DPDK,安裝前確保RTE_SDK和RTE_TARGET環境變數設定正確。
1234567 | #安裝依賴sudo apt-get install-ylibpcap-dev lua5.3wget http
相關推薦DPDK Pktgen+Docker搭建VNF環境及驗證作者簡介:文殊博,北京郵電大學未來網路理論與應用實驗室(FNL)研究生 一、簡介及參考文獻 本文主要是搭建一個基於DPDK的VNF開發實驗環境,利用docker和vhost-user擺脫DPDK的硬體約束,方便在一臺機器上進行VNF的開發和測試。 vue.js:搭建開發環境及構建項目ini cnpm 直接 人在 mod 不發送 package 3.0 mage 發環境的搭建 安裝node.js 直接下一步就好, 註意安裝的位置 Node.js官網:https://nodejs.org/en/ 驗證Node.js是否安裝好,在windows下,wi 搭建caffe環境及訓練模型visio macosx gpu .sh 編寫 共享庫 image ins bash Mac OS搭建caffe環境 一、相關軟件安裝 1、 安裝CUDA8 (1) 安裝xcode及命令行 (2) 安裝CUDA的dmg包 (3) 配置環境變量並 vue.js2.0:如何搭建開發環境及構建項目包管理器 webp data- header 開發環境 mage all ins 點擊 1,安裝node.js Node.js官網:https://nodejs.org/en/ 進入Node.js官網,選擇下載並安裝Node.js。安裝過程只需要點擊“下一步”即可, 如下圖 Redis集群~windows下搭建Sentinel環境及它對主從模式的實際意義sent bsp windows 意義 HR 主從模式 nbsp OS AS Redis集群~windows下搭建Sentinel環境及它對主從模式的實際意義 學習了:https://www.cnblogs.com/lori/p/5825691.html 哨兵機制; Re docker搭建 LNMP 環境更換 n) nec 示例 名稱 chmod onf local 想要 一、準備鏡像安裝完docker後,更換完鏡像源(docker的安裝十分簡單自行百度即可)打開/etc/docker目錄下的daemon.json添加以下內容 {"registry-mirror MongoDB復制集搭建簡單講解及驗證oca serve aac 復制 color water 介紹 集成 mongod 一.MongoDB復制集搭建介紹 二.復制集搭建搭建環境:Centos 7mongodb-linux-x86_64-3.2.12.tgz 1.解壓安裝mongodb到/usr/local/m eclipse搭建struts2環境及所遇到的問題頭文件 exceptio 訪問 ble standard filters patch ner direct 最近幾天一直在搭建struts2框架,本身struts2框架的搭建是非常簡單的,但不知道為什麽最近就是總是報錯,報了一大串的錯 首先就是每次在類的根路徑下創建stru [step by step]利用docker搭建Tensorflow環境(tensorboard + tensorflow+gpu)前言 本篇文章搭建環境的作業系統是ubuntu14,windows搭建docker的方式與ubuntu有所區別,win的使用者可以點選原文中的參考連線進行docker的搭建。掛載tensorboard的方法是一樣的,可供大家參考 搭建docker 官方文件 https://do docker 搭建php環境映象1,下載centos docker pull centos 2,啟動centos映象的一個容器 docker run -it centos /bin/bash 3,進入容器更新yum(要檢視centos的版本更新相應的,本人的為centos7) 更新yum源 rpm -Uvh https 使用docker搭建LAMP環境環境:Centos7.4[[email protected] ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) Get the most up-to-date version of Dockerhttps://get.d Linux下搭建go環境及安裝beego,建立一個名為“Hello"的應用程式【一】搭建 go 環境 1.在官網上下載 go1.9.2.linux-amd64.tar.gz 國內下載地址:http://www.golangtc.com/download) 2.將其移動到 /usr/local/ sudo mv /home/go1.9.2.linux-amd64 / 使用docker搭建開發環境我的主力機是windows,windows下面有太多提升效率的軟體.但是開發的時候不得不使用linux.就單單開發而言.我還是喜歡使用linux.所以就造成了我得在windows下面使用虛擬機器.這是最開始的辦法.後面得知有vagrant這個東西之後,用了一陣子感覺還不錯.但 使用SpringBoot搭建SpringSecurity環境與驗證Security作用描述源自:https://www.cnblogs.com/jaylon/p/4905769.html實操:搭配環境一.首先需要建立IDEA建立一個SpringBoot專案,需要選擇上Security 二.建立完畢後測試一下是否可以執行(建立完專案後會有 10分鐘搭建Vue環境及安裝腳手架(Vue入門篇)Vue理念(題外話) 1、Node安裝 2、基於node.js,安裝淘寶映象 國內直接使用 npm 的官方映象是非常慢的,這裡推薦使用淘寶 NPM 映象。 新建一個資料夾,開啟資料夾,在資料夾中按住鍵盤的 shift鍵 + 滑鼠 docker搭建python環境並打包映象然後使用映象啟動python程式和flask程式搭建python環境 雙擊開啟docker 然後下載映象: docker pull ubuntu進入ubuntu容器互動系統: docker run -i -t ubuntu /bin/ba docker搭建python環境並打包映象(快捷但不規範操作)sudo docker pull ubuntu 進入ubuntu容器互動系統: -t 是啟動終端 -i是允許進行互動 這時候敲python命令會發現沒有python sudo docker run -i -t ubuntu /bin/bash 因為 Redis叢集~windows下搭建Sentinel環境及它對主從模式的實際意義回到目錄 關於redis-sentinel出現的原因 Redis叢集的主從模式有個最大的弊端,就是當主master掛了之前,它的slave從伺服器無法提升為主,而在redis-sentinel出現之後,有效的解決了這個問題,它相當於是一個投票者或者哨兵,它時刻監視著redis叢集的各個伺服器,當主mas docker搭建開發環境模板個人習慣用的辦公環境還是windows,資源還是比較豐富。但又需要考慮linux的開發環境。 考慮到docker容器比虛擬機器有太多的優勢。服務秒開,資源佔用低,分發簡單。建立多個虛擬機器開銷太大,所以在windows中用vmware建立了centos7的虛擬機器,然後在c Ubuntu16.04下搭建開發環境及編譯tiny4412 Android系統1.安裝ssh伺服器(可通過網路遠端登入系統,如putty、xshell) sudo apt-get install openssh-server 2.安裝ftp伺服器(預設已安裝) windows 可使用leapFTP工具登入 sudo apt-get in |