DPDK学习之一
环境搭建
1、vmware
1.1、下载vmware workstation 17
1.点击下载,执行 .exe 文件按步骤安装即可(有长期使用需求的可以购买licence)
2、ubuntu环境搭建
2.1、下载16.04 ubuntu镜像
1、下载ubuntu-16.04.7-desktop-amd64.iso
2.2、vmware上安装ubuntu
1、创建虚拟机
2、选择经典,点击下一步
3、选择稍后安装操作系统,点击下一步
4、选择Linux,选择ubuntu64,然后点击下一步
5、随便起个名字,位置改成容量较大的盘,点击下一步
6、根据自己的工程设置磁盘大小40即可,点击下一步
6、点击 自定义硬件
7、添加一个 网络适配器
8、一个网卡设置为桥接模式,一个为nat模式
9、设置处理器2*2,内存4G
10、点击完成
2.3 ubuntu 设置
vmware 启动虚拟机,按照默认步骤点下一步即可,实在不会就百度一下
1、设置root用户&密码
test@test-virtual-machine:~$ sudo passwd root
2、切换root,下载ssh
root@test-virtual-machine:~# apt-get install openssh-server
3、修改/etc/ssh/sshd_config文件
1、修改 PermitRootLogin yes
2、service ssh restart
4、PC ssh远程ubuntu
5、替换阿里源16.04版本:https://developer.aliyun.com/mirror/
1、备份sources.list —> sources.list.bak
2、root@test-virtual-machine:~# vim /etc/apt/sources.list
3、删除 sources.list 里面所有内容,然后复制下面信息,粘贴到文件里面,保存退出
4、运行 sudo apt-get update
5、运行 sudo apt-get upgrade
deb https://mirrors.aliyun.com/ubuntu/ xenial main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial main
deb https://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb https://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial universe
deb https://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb https://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-security main
deb https://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src https://mirrors.aliyun.com/ubuntu/ xenial-security universe
3、DPDK环境搭建
3.1、网络环境设置
使用vmware 设置ubuntu网卡,一个设置为多队列网卡,一个普通网卡
1、设置多队列网卡
一个网卡用nat,一个网卡用桥接,上面2.2已经设置过了。
2、修订.vmx文件,pc上使用everything 搜索 .vmx 文件,找到对应虚拟机的.vmx文件
1、查看ubuntu 网卡情况:ifconfig -a,找到桥接的网卡mac
2、比对.vmx文件 ethernetn.generatedAddress = xx.xx.xx.xx.xx.xx,找到对应的ethernetn,n为网卡编号
3、修改e1000 ----> vmxnet3,使得这个网卡为高性能的网卡。
例:
ethernet1.virtualDev = “e1000”
改为
ethernet1.virtualDev = “vmxnet3”
3、修改虚拟网卡名字
1、修改ens33网卡名为eth0,需要修改/etc/default/grub文件,修订GRUB_CMDLINE_LINUX,复制下面内容即可;
2、然后执行命令 sudo grub-mkconfig -o /boot/grub/grub.cfg
GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US net.ifnames=0 biosdevname=0 default_hugepages=2M hugepagesz=2M hugepages=1024"
4、关掉ubuntu,然后叉掉vmware,然后启动vmware,启动ubuntu,查看多队列网卡设置成功
3.2、代码环境设置
1、下载dpdk代码
1、v19.08.2 代码
2、v17.11.4 代码
3、学习参考:dpdk 官方文档
2、使用17.11.4 代码
1、解压:tar -xf dpdk-17.11.4.tar.xz
2、执行测试代码,源码自带,执行脚本:dpdk-stable-17.11.4/usertools/dpdk-setup.sh 脚本执行顺序参考链接点这
3、dpdk-setup.sh 脚本执行
1、执行脚本./dpdk-setup.sh
2、Option: 14,编译等待时间较长
3、Option: 17,安装IGB UIO
4、Option: 20,设置大页内存,这里设置256个,当然设大点更好,根据自己电脑配置来,电脑没有多少空间,设置256*2=512MB即可。
5、Option: 28,查看大页设置
6、Option: 23,绑定网卡如果出现以下提示,说明网卡处于up状态
注意:
VMXNET3,不是的话,需要重新修订.vmx文件,然后走重启
7、Option: 27 开启测试,start 开始,stop结束
8、Option: 34 退出
4、100行实现一个协议栈
1、测试工具:netassist5.0.3,想办法下载吧
2、代码:
参考:
dpdk环境相关:
vmxnet3设置:[https://www.bilibili.com/read/cv17345493/][1]
19.08.2代码编译:[https://blog.csdn.net/sinat_22338935/article/details/125520351][2]
100行代码实现协议栈:[https://www.bilibili.com/video/BV1xL4y1z7FK/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=0ea40f2e5a78e3b145a2da0a256f6ccb][3]
vmware异常:
[https://blog.csdn.net/qq_43674360/article/details/120911532][4]