作者简介:
万群
Intel 存储软件工程师
主要从事SPDK软件测试工作
_1 背景介绍_
正如我们之前在微信中所讨论的在物理机器
[1]上使用SoftRoCE部署SPDK NVMe-oF的方法一样,现在,我们将要讨论在虚拟机上使用部署SPDK NVMe测试案例
[2]的方法。为什么我们需要在虚拟机上部署它呢?原因很明显随着主机CPU Core越来越强大,我们需要有效地利用CPU Core,而对于不同种类且不需要太多计算和内存资源的功能测试来说,我们可以充分利用虚拟机运行功能测试如NVMe,vhost, i SCSI测试。限于篇幅,这篇文章主要介绍如何在VM上部署SPDK NVME测试案例。后面会有陆续介绍vhost和 iS CSI的介绍。同时在9月北京的峰会我们也会做一些相应的介绍。
希望通过这篇文章能让大家熟悉SPDK,不管在真实NVMe SSD场景下,还是在虚拟环境下。
_2 配置虚拟机环境_
在Windows10(1607)操作系统的机器上配置虚拟机的步骤如下所示:
1.安装 VirtualBox (https://www.virtualbox.org/wiki/Downloads) 及其相关组件,需要安装两个安装包
在BIOS里面确保VT选项是打开的,安装VirtualBox5.1.38 或者更新版本(建议使用5.1.38版本)
搜索“Windows features”并关闭Hyper-V选项,重启windows 操作系统,安装VirtualBox ExtensionPack(https://www.virtualbox.org/wiki/Downloads)5.1.38版本或者更新版本(同样建议使用5.1.38版本)
2.安装Vagrant(https://www.vagrantup.com/)1.9.4版本或者更新版本(建议使用1.9.4版本)
3.安装 Git Bash (https://www.git-scm.com/download/win) (版本不做要求)
4.打开Gitbash终端,下载SPDK代码并创建虚拟机环境
a.如果有防火墙,建议使用代理来提高下载速度
i.设置http_proxy和https_proxy代理,命令行如下
$export https_proxy=
$export http_proxy=
|
ii.安装proxyconf plugin,命令如下
$vagrant plugin install vagrant-proxyconf
|
b.下载SPDK代码,命令行如下
$
git clone
https://github.com/spdk/spdk.git
|
c.编译并创建虚拟机,命令行如下
$cd spdk/
$git submodule update –init
$./spdk/scripts/vagrant/create_vbox.sh –n 4 –s 4096 fedora28
(
-n
指定虚拟机
CPU
数量,
-s
指定虚拟机内存大小,执行这一步如遇到下面的问题,则很有可能是网络不够稳定或者网速太慢,可以选择一个网速比较稳定或者快的时间重新下载
)
|
d.登录虚拟机,命令如下
$cd fedora28-virtualbox
$vagrant ssh
|
恭喜你!从现在开始,你可以登录虚拟机工作了
e.验证虚拟NVMe设备是否存在,命令行如下
$lspci | grep “Non-Volatile”
00:0e.0 Non-Volatile memory controller: InnoTek Systemberatung GmbH Device 4e56
|
f.同样,在虚拟机里面,也需要对代理进行设置,然后编译SPDK代码,命令行如下:
$apt-get update
$cd ~/spdk_repo/spdk
$git submodule update –init
(
如果无法成功执行上面的命令,可以尝试重新下载
SPDK
代码,命令为
$
git clone
https://github.com/spdk/spdk.git
)
$scripts/pkgdep.sh
&#
|