SPDK环境搭建
- 运行环境
- 源码拉取
- 编译
- 增加虚拟盘,运行样例
本来21年就写了这篇博客,但因为在博客中放了vmware的密钥,违规了,最近正好又要用到spdk,就重新搭建一下spdk,简单改一下博客再发一遍
运行环境
VMware16+Ubuntu21.04
Ubuntu下载地址:https://repo.huaweicloud.com/ubuntu-releases/
安装后记得换源
源码拉取
官网给出的命令如下
git clone https://github.com/spdk/spdk
cd spdk
git submodule update --init
这一次我没有遇到下载速度慢的问题,,直接就成功了
下载速度慢的可能解决方案
可以将https改成git,或者在com后加入.cnpmjs.org后缀。
git clone git://github.com/spdk/spdk
git clone https://github.com.cnpmjs.org/spdk/spdk
git clone命令完成后,修改spdk文件夹中的.gitmodules文件
[submodule "dpdk"]
path = dpdk
url = https://github.com.cnpmjs.org/spdk/dpdk.git
[submodule "intel-ipsec-mb"]
path = intel-ipsec-mb
url = https://github.com.cnpmjs.org/spdk/intel-ipsec-mb.git
[submodule "isa-l"]
path = isa-l
url = https://github.com.cnpmjs.org/spdk/isa-l.git
[submodule "ocf"]
path = ocf
url = https://github.com.cnpmjs.org/Open-CAS/ocf.git
[submodule "libvfio-user"]
path = libvfio-user
url = https://github.com.cnpmjs.org/nutanix/libvfio-user.git
最后再执行
cd spdk
git submodule update --init
彻底解决git clone以及 recursive慢的问题
git相关策略
- 关闭电脑代理,重置git代理
git config --global --unset http.proxy
git config --global --unset https.proxy
- 修改hosts文件,添加github与ip地址映射 https://github.com/521xueweihan/GitHub520
- 重启网络或主机
不过最后还是重启比较有效,git主打一个运气
编译
sudo ./scripts/pkgdep.sh #安装依赖
sudo ./configure
make
./test/unit/unittest.sh # 中途报错无所谓,脚本末尾的最后一条消息表示成功或失败。
增加虚拟盘,运行样例
在运行SPDK应用程序之前,必须分配一些大页面,并且必须从本机内核驱动程序中取消绑定任何NVMe和I / OAT设备。SPDK包含一个脚本,可以在Linux和FreeBSD上自动执行此过程。该脚本应该以root身份运行。它只需要在系统上运行一次。
在VMware上增加一个未格式化NVMe硬盘
注意要是新的硬盘设备(x:0)
不需要任何分区,挂载,格式化操作,裸盘即可
添加完之后用lsblk命令查看是否添加成功(nvme1n1)
而后运行
sudo scripts/setup.sh #绑定空白盘
sudo build/example/hello_world #运行测试用例
问题: No valid drivers found [vfio-pci, uio_pci_generic, igb_uio]. Please enable one of the kernel modules.
由于虚拟机切换过内核,有些模块没装,故装一下extra-module
docker ubuntu镜像中 缺少uio驱动和uio_pci_generic驱动的问题
绑定与解绑操作,HUGEMEM默认是2G
spdk github地址:
https://github.com/spdk/spdk
spdk官方文档中文版
英文官网地址:
https://spdk.io/doc/