PancrasL的博客

SPDK安装指南

2021-03-04

See the source image

1. 安装SPDK

1.1 安装

  • 系统环境
1
2
$ cat /proc/version
Linux version 5.4.0-66-generic (buildd@lgw01-amd64-039) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04))
  • 下载SPDK
1
2
3
4
5
6
7
# 下载
$ git clone git@github.com:spdk/spdk.git
$ cd spdk
# 切换到某一个分支
$ git checkout branch v21.01.x
# 安装子模块
$ git submodule update --init

注意:由于网络原因,获取子模块时可能会失败,可通过手动修改github的dns映射解决。

参考https://www.cnblogs.com/melodyjerry/p/13031571.html

  • 安装依赖
1
$ sudo ./scripts/pkgdep.sh
  • 编译
1
2
$ ./configure
$ make

1.2 检测是否安装成功

  • 执行单元测试,查看是否安装成功
1
2
3
4
5
6
7
8
$ ./test/unit/unittest.sh
...
...
=====================
All unit tests passed
=====================
WARN: lcov not installed or SPDK built without coverage!
WARN: neither valgrind nor ASAN is enabled!

2. 运行示例程序

2.1 分配大页面

在运行SPDK应用程序之前,必须分配一些大页面,并且必须从本机内核驱动程序中取消绑定任何NVMe和I / OAT设备。SPDK包含一个脚本,可以在Linux和FreeBSD上自动执行此过程。该脚本应该以root身份运行。它只需要在系统上运行一次。

1
$ sudo scripts/setup.sh

要将设备重新绑定回内核,您可以运行

1
2
3
4
# 解除绑定
$ sudo scripts/setup.sh reset
# 查看所有可用参数
$ sudo scripts/setup.sh help

2.2 查看系统中所有NVMe设备的示例程序

1
2
3
4
$ pwd
/home/pancras/spdk
$ sudo ./build/examples/identify
...some info...

Reference
https://spdk.io/doc/getting_started.html