OpenEBS Mayastor中创建 DiskPool时使用SPDK访问 NVMe盘

OpenEBS Mayastor中创建 DiskPool时使用SPDK访问 NVMe盘

本文将介绍如何使用 SPDK 直接访问 NVMe 设备并在 OpenEBS Mayastor 中创建一个 DiskPool,如果你想要直接通过SPDK 访问NVMe盘而绕过内核,那么需要进行一些额外的工作,你必须将 NVMe 设备从内核中分离出来。

步骤指南

1. 下载并配置 SPDK

1.1 首先,下载 SPDK 源码:

git clone git@github.com:spdk/spdk.git
cd spdk

1.2 配置 SPDK 并查看当前系统的 Hugepages 和 NVMe 设备状态:

sudo ./scripts/setup.sh status

输出示例如下:

Hugepages node hugesize free / total node0 1048576kB
0 / 0 node0 2048kB 566 / 1024 node1 1048576kB
0 / 0 node1 2048kB 1024 / 1024

Type BDF Vendor Device NUMA Driver Device
Block devices NVMe 0000:13:00.0 15ad 07f0 0 nvme
nvme0 nvme0n1

2. 将 NVMe 设备绑定到 vfio-pci 驱动程序

使用以下命令将 NVMe 设备绑定到 vfio-pci 驱动程序:

sudo PCI_ALLOWED=0000:13:00.0 ./scripts/setup.sh

3. 创建 DiskPool

创建一个 YAML 文件(例如 disk_pool_01_spdk.yaml),其内容如下:

apiVersion: "openebs.io/v1beta1"
kind: DiskPool
metadata:
  name: pool-on-node-1
  namespace: mayastor
spec:
  node: yangxx01
  disks: ["pcie:///0000:13:00.0"]

使用以下命令应用该 YAML 文件以创建 DiskPool:

kubectl apply -f disk_pool_01_spdk.yaml

你应该会看到如下输出:

diskpool.openebs.io/pool-on-node-1 created

4. 查看 DiskPool 状态

使用以下命令查看所有命名空间中的 DiskPool 状态:

kubectl get dsp -A

输出示例如下:

NAMESPACE   NAME             NODE       STATE     POOL_STATUS   CAPACITY       USED   AVAILABLE
mayastor    pool-on-node-1   yangxx01   Created   Online        107265130496   0      107265130496

总结

通过以上步骤,你可以成功配置 SPDK 以通过 PCIe 直接访问 NVMe 设备,并在 OpenEBS Mayastor 中创建一个 DiskPool。如果在执行过程中遇到任何问题,请确保按照每一步的指示操作,并参考相关文档获取更多帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值