intel dpdk 在虚拟机 VMware 中安装部署

声明:此文档只做学习交流使用,请勿用作其他商业用途

author:朝阳_tonyE-mail : linzhaolover@gmail.comCreate Date: 2013-12-28 23:38:47 SaturdayLast Change: 2014-1-1 22:33:42 Wednesday

转载请注明出处:

intel DPDK交流群希望大家加入互相学习,QQ群号:289784125

假如你没有intel的网卡,没有相应的linux系统,只是想简单的使用了解一下dpdk,那么你可以选择在vmware中部署一套简单的dpdk环境;

1、在vmware中安装配置适合dpdk运行的虚拟机;1)、虚拟机的配置要求,

vcpu = 2 最少两个cpu,因为dpdk是需要绑定core,一个是没办正常运行dpdk的,如你电脑运行,最好多配置几个;

memory=1024 也就是1G ,当然越多越好,因为要配置hugepage,还是多分点吧;

系统,我装的是rhel6.1 ,当然你可以选择更高版本,但不能选择低版本,怕不支持; 这有 RHEL6.3 6.4 6.5的下载地址;

系统的在装好后要更新一下kernel,我目前虚拟机里使用的是 linux-3.3.2,你最好选择3.0 至3.8之间的,这之间的kernel有些人用过,是可以跑起dpdk的;

网卡, 给两个吧,

vmware装虚拟机系统我在这就不多说了,网上有很多的教程;

2)、添加dpdk支持的网卡

同学们虚拟网卡,大家就不要吝啬了,至少添加两块intel 网卡吧;因为一块会报错误;

dpdk是intel出的,目前似乎只支持intel的网卡,在装好虚拟机好,我们看一下当前虚拟机的网卡是什么样的;用lspci命令查看;

# lspci | grep Ethernet02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)02:05.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)vmware安装虚拟机,默认的网卡是amd的,我们该怎样正确添加intel的网卡呢??????

好吧,先将虚拟机shutdown;

再添加一块网卡,这时别急,先不启动虚拟机;我们还需要去修改一下当前虚拟机的配置文件,

我的配置文件时在E:\Users\adm\Documents\Virtual Machines\Red Hat Enterprise Linux 5\Red Hat 6.vmx

你在安装虚拟机时,应该选择了其工作目录,自己将鼠标放在VMware左侧栏你创建的虚拟机名字处,就会自动显示它的工作目录的了;

用记事本打开配置文件,然后添加一行

ethernet2.virtualDev = "e1000"由于我的是添加的第3块网卡了,如果从0开始数,刚好是eth2,添加后的样子是ethernet2.virtualDev = "e1000"ethernet2.present = "TRUE"

e1000是intel的网卡中的一个千兆网卡;

好了,在重新启动虚拟机,查看一下网卡,多了一个82545em 的网卡,

# lspci | grep Ethernet02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)02:05.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)02:06.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)2、部署dpdk1)、下载源码

在开启虚拟机后,从dpdk官网下载最新的code

git clone git://dpdk.org/dpdk2)、设置环境变量

进入dpdk目录;编辑一个环境变量文件,然后source;

export RTE_SDK=`pwd`#export RTE_TARGET=x86_64-default-linuxapp-gccexport RTE_TARGET=i686-default-linuxapp-gcc由于我的是32虚拟机,所以我选择i686,将x86_64那行环境变量注释掉;

我将上面3行放在dpdkrc文件中,然后用source启用这几个环境变量;

source dpkdrc注意,你以后如果从新登陆终端,进入这个目录,都要source一下这个文件,才能正常运行dpdk的程序;3)、用dpdk的脚本运行dpdk;

运行脚本进行dpdk测试;

然后再运行脚本

./tools/setup.sh———————————————————- Step 1: Select the DPDK environment to build———————————————————-[1] i686-default-linuxapp-gcc[2] i686-default-linuxapp-icc[3] x86_64-default-linuxapp-gcc[4] x86_64-default-linuxapp-icc选择 1

我的是32位系统,所以我选择 1 ,, 采用gcc编译32位源码;如果你是64位虚拟机,请选择 3

———————————————————- Step 2: Setup linuxapp environment———————————————————-[5] Insert IGB UIO module[6] Insert KNI module[7] Setup hugepage mappings for non-NUMA systems[8] Setup hugepage mappings for NUMA systems[9] Display current Ethernet device settings[10] Bind Ethernet device to IGB UIO module编译ok后,选择 5

进行igb_uio.ko驱动的安装,这个驱动在编译后是,在i686-default-linuxapp-gcc/kmod/ 目录中;其实在安装igb_uio.ko之前,脚本先安装了uio模块,uio是一种用户态驱动的实现机制,dpdk有些东西时基于uio实现的;有兴趣的可以了解一下uio的驱动使用

选择 7

设置hugepage,

Removing currently reserved hugepages.echo_tmp: line 2: /sys/devices/system/node/node?/hugepages/hugepages-2048kB/nr_hugepages: 没有那个文件或目录Unmounting /mnt/huge and removing directory Input the number of 2MB pages Example: to have 128MB of hugepages available, enter ’64’ to reserve 64 * 2MB pagesNumber of pages: 64Reserving hugepagesCreating /mnt/huge and mounting as hugetlbfs提示没有nr_hugepage文件,我没有理它,暂且不知道起原因;

有让你输入预留内存大小的 我输入的是 64 , 64 乘以 2M 可以128M 做个简单的测试够了,

选 9 累死累活不说,走马观花反而少了真实体验,

intel dpdk 在虚拟机 VMware 中安装部署

相关文章:

你感兴趣的文章:

标签云: