首页 > TAG信息列表 > spdk

spdk vhost 虚机挂盘

spdk vhost 能够有效降低虚机IO到后端存储的延时,用vhost 启动盘的时候,实际使用中通常会碰到各种问题。下面记录下来,避免走弯路。 1. 盘的socket 不对 现象: 虚机里无法挂到盘 解决办法 2. vm 已经使用过 现象 construct_vhost_blk_controller is deprecated, use vhost_create_bl

spdk rpc.py 踩坑记

现象 spdk 程序启动之后,总是没法和后端定制的bdev 互通数据。出现下边的错误: rpc.c: 181:spdk_rpc_listen: *ERROR*: RPC Unix domain socket path /var/tmp/spdk.sock in use. Specify another. rpc.c: 72:spdk_rpc_initialize: *ERROR*: Unable to start RPC service at /var/tm

在spdk中添加bdev驱动三部曲

背景 spdk 框架提供了和存储前后端高效的接入方式,通过模块化、分层的方式,使得业务方只需要关注核心功能。 通过上图可以看到, 实现所需要的bdev就可以对接上层功能。这就涉及到给spdk添加bdev驱动,那么,如何给spdk添加bdev 驱动呢? 主要模块 首先,需要了解spdk 的主要框架: 参考spdk.io

SPDK/PWDK 学习

SPDK是针对整个存储服务和协议栈, PWDK侧重于Persistent Memory 的应用场景。 其中原属于SPDK中的vTUNE Profiler单独拿出来成为性能分析的综合工具。 SPDK: (Storage Performance development Kits) https://spdk.io/ 用于编写高性能、可伸缩、用户态存储应用程序的工具和库。 关

[转]spdk线程模型 spdk_thread

转自 https://blog.csdn.net/weixin_37097605/article/details/101488760 SPDK Thread 模型是SPDK诞生以来十分重要的模块,它的设计确保了spdk应用的无锁化编程模型,本文基于spdk最新的release 19.07版本介绍了整体thread模型的设计与实现,并详细分析了NVMe-oF的使用案例。     SP

【SPDK官方文档】Introduction/Getting Started

Getting Started Getting the Source Code git clone https://github.com/spdk/spdk cd spdk git submodule update --init ------------------------------------------------------- 获取源码 git clone https://github.com/spdk/spdk cd spdk git submodule update -

深入理解SPDK之八:性能优化

根笔者最近在SPDK优化上的工作,下面总结了一些可以提升性能的优化点。 永远保持高队列深度 对于NVME SSD和RDMA这种基于completion queue/submittion queue 硬件机制的设备,就应该根据硬件队列执行的特性,始终保持队列中有物理队列深度这么多的请求在跑,这样才可能榨干硬件性能。 数据

深入理解SPDK之七: 常见问题排查C篇

内存复用 starting write I/O failed, push back, reback to previous status 写入的数据长度为0 现象: nvme_qpair.c: 137:nvme_io_qpair_print_command: *NOTICE*: WRITE sqid:1 cid:71 nsid:1 lba:0 len:65536 nvme_qpair.c: 306:nvme_qpair_print_completion: *NOTICE*: INVALID

SPDK问题排查之二

下面记录SPDK常见错误的解决方法,以免重复走弯路 读写没对齐 512B 现象: nvme_qpair.c: 137:nvme_io_qpair_print_command: *NOTICE*: WRITE sqid:1 cid:191 nsid:1 lba:0 len:65536 nvme_qpair.c: 306:nvme_qpair_print_completion: *NOTICE*: INVALID FIELD (00/02) sqid:1 cid:19

深入理解nvme hardware queue pair

hardware queue pair是什么 hardware queue pair是我们理解nvme/spdk的牛鼻子,只有深入理解才可能把nvme用好。 从nvme控制器寄存器的角度看 顾名思义,就是一些硬件寄存器组成的队列。 空队列 满队列 问题:能否并发入队、出队?不行 submission hardware queue entry 每个entry如下

深入理解SPDK之四:nvme 协议重点解读

熟悉nvme 协议是深入理解spdk 代码的基础。 重要寄存器 下面寄存器都是位于pcie memory space, bar[0/1] 空间。 Offset 24h: AQA – Admin Queue Attributes The Admin Submission Queue’s priority is determined by the arbitration mechanism selected, refer to section 4.11

深入理解SPDK: 内存管理

CPU 内存 物理地址空间会散列 ( interleave between channel/memory controller); NVME 设备对使用内存物理地址空间的限制:The NVMe 1.0 specification requires all physical memory to be describable by what is called a PRP list. To be described by a PRP list, memory mus

深入理解SPDK 之二: 消息和无锁队列

并发理论 期望: 随着硬件的线性增加,性能也线性增加; 传统 锁 的优点: 无锁 到有锁 扩展的方便; 锁直接加在共享数据的前面; 缺点:随着系统内线程的增加,数据和临界段的竞争越来越激烈,而且多个线程可能处于不同物理core,频繁竞争导致剧烈的L1 cache 失效。 SPDK的做法:各管各妈;你看我