【技术实现步骤摘要】
一种NVMe
‑
oF用户态客户端的数据访问方法和装置
[0001]本申请涉及但不限于计算机
,尤其涉及一种NVMe
‑
oF用户态客 户端的数据访问方法和装置。
技术介绍
[0002]virtio是目前被广泛接受的输入/输出(Input/Output,I/O)虚拟化的抽象设 备接口,通过对虚拟队列(virtqueue)以及虚拟环形队列(vring)的定义实现了 对不同虚拟化外设部件互连标准(Peripheral Component Interconnect,PCI)设备 的支持。virtio旁路(offload)到主机(host)叫做虚拟主机(virtual host,vhost), 可以在内核态实现。在内核态的实现主要在Linux的内核(kernel)实现。
[0003]存储性能开发套件(Storage performance development kit,SPDK)的vhostuser方案是目前最新的演进方案,通过用户态的轮询模式驱动(polling modedriver ...
【技术保护点】
【技术特征摘要】
1.一种NVMe
‑
oF用户态客户端的数据访问方法,所述方法包括:接收虚拟主机vhost设备发送的数据访问请求消息;解析所述数据访问请求消息,得到第一服务端标识和访问操作指令;基于所述第一服务端标识选择第一环形队列,通过第一环形队列,将所述访问操作指令写入第一NVMe
‑
oF服务端的控制指令区域;其中,所述第一环形队列为所述vhost设备与第一NVMe
‑
oF服务端之间的队列。2.根据权利要求1所述的方法,所述基于所述第一服务端标识选择第一环形队列之前,所述方法包括:获取第一队列连接信息,基于所述第一队列连接信息将所述vhost设备的数据流环形队列,与所述第一NVMe
‑
oF服务端的环形队列连接,建立所述第一环形队列。3.根据权利要求1所述的方法,所述基于所述第一服务端标识选择第一环形队列之后,所述方法包括:在所述第一NVMe
‑
oF服务端不可访问的场景下,切换到所述NVMe
‑
oF的用户态客户端连接的第二NVMe
‑
oF服务端;通过第二环形队列,将所述访问操作指令写入所述第二NVMe
‑
oF服务端的控制指令区域;其中,所述第二环形队列为所述vhost设备与第二NVMe
‑
oF服务端之间的队列。4.根据权利要求3所述的方法,所述第一NVMe
‑
oF服务端不可访问的场景,包括如下至少之一:所述NVMe
‑
oF的用户态客户端与所述第一NVMe
‑
oF服务端之间的网络连接断开;所述第一NVMe
‑
oF服务端宕机;所述NVMe
‑
oF的用户态客户端与所述第一NVMe
‑
oF服务端之间的输入/输出通讯超时;接收到从所述第一NVMe
‑
oF服务端切换至所述第二NVMe
‑
oF服务端的指令。5.根据权利要求4所述的方法,所述接收到从所述第一NVMe
‑
oF服务端切换至所述第二NVMe
‑
oF服务端的指令,包括:接收到所述NVMe
‑
oF用户态客户端的上层管理系统...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。