SPDK Vagrant使用入门指南

1、Vagrant基本概况

Vagrant是用于创建和提供可移植虚拟机的开源项目。使用Vagrant,您可以在极短的时间内启动多台虚拟机。它将允许您尝试同时使用几个操作系统或发行版本,而不会打断您下载ISO文件。

2、在SPDK中使用Vagrant

Vagrant还提供了一种快速方法,可以在不需要任何特殊硬件的情况下运行启用基本NVMe的虚拟机沙箱。 SPDK的Vagrant环境支持Ubuntu 16.04和CentOS 7.2。 此环境需要Vagrant 1.9.4或更高版本、VirtualBox 5.1或更高版本、以及匹配的VirtualBox扩展包。
虚拟机从位于/ SPDK的源构建SPDK和DPDK。

注意:

如果您处于公司防火墙之内,请在尝试启动虚拟机之前在您的环境中设置http_proxy和https_proxy。同时还要确保你已经安装了可选的vagrant模块vagrant-proxyconf:

如果您想使用kvm/libvirt,您还应该安装vagrant-libvirt。

3、Vagrant的环境配置

本文将演示如何在CentOS 7环境中配置和使用Vagrant。

步骤1

在 CentOS 7 主机系统上安装 VirtualBox 5.1 (假设主机系统未安装任何依赖项)。首先安装 VirtualBox 依赖项:

然后添加VirtualBox库:

步骤2

在CentOS 7中安装Vagrant。在这里,我们使用yum命令安装2.0.2版本。对于64位计算机,请使用以下命令:

对于32位计算机,请使用以下命令:

然后创建一个目录来安装操作系统:

安装vagrant-proxyconf,这将使您能够在虚拟机中使用与主机相同的代理:

安装 vagrant-cachier:

在虚拟机中安装操作系统, 使用以下命令自动创建Vagrantfile, 以Ubuntu为例:

由于Vagrant cloud box文件已被重定向,我们可能需要执行另一个步骤来更改Vagrantfile中的以下行。
将下面这行:

替换为以下内容(这是为了将Vagrant引导到正确的文件夹位置):

然后使用以下命令在虚拟机上启动和安装操作系统,这将花费几分钟的时间,但具体耗时取决于网络速度:

现在可以使用以下命令登录到虚拟机:

4、SPDK虚拟机配置,以及运行简单的Hello World实例

步骤1

在主机上下载SPDK并进入文件夹/spdk/scripts/vagrant,SPDK创建了现有的Vagrant文件,您可能需要更改Vagrantfile中的以下行。
将下面这行:

替换为以下内容(这是为了将Vagrant引导到正确的文件夹位置):

或者您可以将virtualbox.box文件直接下载到本地文件夹,并将其分配给config.vm.box,如下所示:

然后运行以下命令来启动虚拟机,这将花费几分钟的时间:

然后可以使用以下命令登录到虚拟机中:

使用以下命令更改为root用户:

步骤2

使用以下命令检查虚拟机中是否存在NVMe设备:

步骤3

在虚拟机上下载最新的DPDK和SPDK。

步骤4

在虚拟机上安装相关依赖包。

步骤5

编译SPDK,探测uio, uio_pci_generic驱动并运行setup.sh脚本:

步骤6

在示例中运行“Hello World”:

5、故障分析

(1) 虚拟机操作系统1404无法加载uio_pci_generic模块,导致./script/setup.sh失败。

解决方案:

您可以从网站 :https://vagrantcloud.com/puppetlabs/boxes/
直接下载 virtualbox 文件到您的本地环境, 然后将其分配给您的 vm.config.box

(2) 启动的操作系统无法加载uio_pci_generic,这是运行SPDK驱动程序的基础。

解决方案:

使用以下命令将相应的内核源文件下载到虚拟机。

解压并编译相应的内核:

从现有内核复制配置文件:

检查已编译的uio_pci_generic.ko文件:

(3) 调整vmdk文件的大小

通常,vagrant将为vm分配10G磁盘空间,在配置期间,我们需要安装大量的库,因此空间将在短时间内耗尽。 您可以参考以下关于如何调整大小的链接:
https://www.jeffgeerling.com/blogs/jeff-geerling/resizing-virtualbox-disk-image

我们列出了以下步骤作为参考:

然后您将看到磁盘空间现在是40GB。

6、常见问题

  • 对于笔记本电脑和个人电脑等服务器,只有一个单独的CPU,因此分配给虚拟机的CPU应该只有一个,这意味着虚拟机中的CPU不应超过主机上的CPU。
  • RDMA支持在虚拟机中运行NVMf loopback。限于篇幅,关于这部分的介绍会在之后的推送中进行。
  • RDMA支持在主机上同时运行两个vagrant来运行NVMf测试。限于篇幅,关于这部分的介绍会也将在之后的推送中进行。敬请期待。

参考文献

  • https://www.tecmint.com/how-to-install-vagrant-on-centos-7/
  • https://ci.spdk.io/download/events/2018-summit/day2_01_VerkampLogicalVolumes.pdf
  • http://www.spdk.io/doc/logical_volumes.html

原文地址:DPDK开源社区

发表评论

电子邮件地址不会被公开。 必填项已用*标注