CN117369734B - 一种存储资源管理***、方法及存储虚拟化*** - Google Patents
一种存储资源管理***、方法及存储虚拟化*** Download PDFInfo
- Publication number
- CN117369734B CN117369734B CN202311676268.2A CN202311676268A CN117369734B CN 117369734 B CN117369734 B CN 117369734B CN 202311676268 A CN202311676268 A CN 202311676268A CN 117369734 B CN117369734 B CN 117369734B
- Authority
- CN
- China
- Prior art keywords
- request
- storage
- address
- data packet
- storage resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000004044 response Effects 0.000 claims description 121
- 230000005540 biological transmission Effects 0.000 claims description 107
- 238000007726 management method Methods 0.000 claims description 70
- 238000012795 verification Methods 0.000 claims description 70
- 230000006870 function Effects 0.000 claims description 58
- 238000004891 communication Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 claims description 3
- 238000002955 isolation Methods 0.000 abstract description 8
- 230000000875 corresponding effect Effects 0.000 description 68
- 238000005516 engineering process Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种存储资源管理***、方法及存储虚拟化***,涉及虚拟化领域,为解决现有的存储资源访问隔离安全性差的问题,该存储资源管理***包括控制模块和数据处理模块,控制模块包括至少一个虚拟功能,数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层。本发明能够排除恶意访问的可能,提高存储资源隔离的安全性,保障异构存储虚拟化的安全性。
Description
技术领域
本发明涉及虚拟化领域,特别涉及一种存储资源管理***、方法及存储虚拟化***。
背景技术
在依托数据中心网络的云服务业务中,以DPU(Data Processing Unit,数据处理器)、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)加速卡等异构设备承载的FPGA虚拟化技术因其可编程、易管理等优势被云服务厂商广泛使用。在开放计算语言(OpenCL)定义的异构计算编程模型中,主机会先将数据提交给设备内存,FPGA内核中的计算单元会根据用户定义的计算加速功能模块,将数据从设备内存读取至FPGA芯片的本地存储等待使用或读取后不经缓存直接使用。
现有的基于PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)设备的FPGA虚拟化设计中,设备存储资源的访问主要基于流式DMA(Direct Memory Access,直接访问内存)的平台访问实现。这种方案需要主机驱动程序与虚拟机监视器配合实现FPGA存储资源的统一管理,存储资源访问的安全性完全依赖主机驱动程序创建的描述符内容,虚拟机可以访问未分配给其的存储资源,隔离安全性较差。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种存储资源管理***、方法及存储虚拟化***,能够排除恶意访问的可能,提高存储资源隔离的安全性,保障异构存储虚拟化的安全性。
为解决上述技术问题,本发明提供了一种存储资源管理***,包括控制模块和数据处理模块,所述控制模块包括至少一个虚拟功能,所述数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层,其中:
所述底层通信协议层,用于建立各个所述虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;所述数据传输通道用于传输所述虚拟机发送的请求数据包及向所述虚拟机返回的响应数据包;
所述控制模块,用于对所述请求数据包进行地址校验,并向所述传输控制协议层发送地址校验结果;所述地址校验结果为地址校验成功或地址校验失败;
所述传输控制协议层,用于基于所述地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
所述存储虚拟化实现层,用于基于所述请求命令访问对应的存储资源得到所述响应数据。
在一示例性实施例中,所述控制模块包括物理功能,所述物理功能与至少一个所述虚拟功能关联;
所述控制模块还用于在对所述请求数据包进行地址校验之前,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表,并将所述存储信息表存储到所述物理功能的基地址寄存器空间;所述存储信息表包括各个所述存储资源的地址信息与各个所述虚拟功能的映射关系,所述物理功能的基地址寄存器空间与所述虚拟功能的基地址寄存器空间关联;
对所述请求数据包进行地址校验的过程包括:
基于所述存储信息表对所述请求数据包对应的目标地址进行校验。
在一示例性实施例中,将所述存储信息表存储到所述物理功能的基地址寄存器空间的过程包括:
通过寄存器访问操作将所述存储信息表配置到所述物理功能的基地址寄存器空间。
在一示例性实施例中,基于所述存储信息表对所述请求数据包对应的目标地址进行校验的过程包括:
利用接收到所述请求数据包的所述虚拟功能,确定所述请求数据包对应的目标地址,并查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址,当所述自身分配的所述存储资源的地址与所述目标地址一致,判定地址校验成功,当所述自身分配的所述存储资源的地址与所述目标地址不一致,判定地址校验失败。
在一示例性实施例中,所述查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址的过程包括:
通过寄存器访问操作查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址。
在一示例性实施例中,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表的过程包括:
利用所述物理功能将所述存储虚拟化***的存储资源总量信息上报至所述宿主机端,以便所述宿主机端的主机驱动根据用户需求对所述存储虚拟化***的所有存储资源进行分配,并根据分配结果通过所述物理功能的基地址寄存器空间配置所述存储信息表。
在一示例性实施例中,所述数据传输通道包括发送队列,对所述请求数据包进行地址校验的过程包括:
确定所述虚拟机发送的请求数据包对应的目标地址及发送队列的标识;
基于所述标识和所述存储信息表对所述目标地址进行地址校验。
在一示例性实施例中,所述底层通信协议层还用于在获取到访问通知时,从目标共享空间获取所述请求数据包。
在一示例性实施例中,在获取到访问通知时,从目标共享空间获取所述请求数据包的过程包括:
在获取到访问通知时,向所述目标共享空间发起直接存储器访问请求,以通过所述虚拟机对应的发送队列获取所述请求数据包。
在一示例性实施例中,所述控制模块还用于当所述底层通信协议层向所述目标共享空间发起直接存储器访问请求之后,利用所述虚拟功能向所述发送队列发送中断请求。
在一示例性实施例中,所述宿主机还用于当所述底层通信协议层在获取到访问通知时,从目标共享空间获取所述请求数据包之前,创建与用户操作请求对应的请求数据包及对应发送队列的发送描述符,并将所述请求数据包和所述发送描述符存入所述目标共享空间;所述用户操作请求为基于虚拟机用户应用发起的操作请求。
在一示例性实施例中,所述宿主机还用于在将所述请求数据包和所述发送描述符存入所述目标共享空间之后,向对应的通知寄存器发送写请求,以便所述通知寄存器生成所述访问通知。
在一示例性实施例中,所述底层通信协议层还用于基于所述请求数据包得到请求命令包;所述请求命令包的头结构包括数据包类型字段、数据包编号字段、数据包长度字段、请求地址字段、请求响应状态字段和数据负载字段;
基于所述地址校验成功的请求数据包得到请求命令的过程包括:
利用所述传输控制协议层对地址校验成功的请求数据包对应的请求命令包进行解析,得到请求命令。
在一示例性实施例中,所述数据传输通道还包括接收队列,所述传输控制协议层还用于在对响应数据进行封装得到响应数据包之后,确定所述响应数据包对应的接收队列的接收描述符,将所述接收描述符和所述响应数据包写入目标共享内存。
在一示例性实施例中,所述控制模块还用于在所述传输控制协议层将所述接收描述符和所述响应数据包写入目标共享内存之后,利用所述虚拟功能对所述接收队列发起接收中断请求,以便所述底层通信协议层从中断的所述接收队列对应的目标共享内存中读取所述响应数据包。
在一示例性实施例中,所述传输控制协议层还用于缓存所述请求数据包对应的请求信息;
对响应数据进行封装得到响应数据包的过程包括:
利用所述传输控制协议层获取响应数据,并查询所述请求信息;
基于所述请求信息和所述响应数据构建响应数据包。
在一示例性实施例中,所述请求信息包括发送队列的标识和所述请求数据包的编号;
将所述接收描述符和所述响应数据包写入目标共享内存的过程包括:
将所述接收描述符和所述响应数据包通过所述标识对应的接收队列写入目标共享内存。
在一示例性实施例中,基于所述请求命令访问对应的存储资源得到所述响应数据的过程包括:
基于所述请求命令创建控制访问指令;
对所述控制访问指令进行协议转换后,得到内存访问指令,基于所述内存访问指令访问对应的存储资源得到所述响应数据。
为解决上述技术问题,本发明还提供了一种存储虚拟化***,包括存储资源及如上文任意一项所述的存储资源管理***。
在一示例性实施例中,所述存储资源包括双倍速率同步动态随机存取存储器和/或高带宽存储器。
为解决上述技术问题,本发明还提供了一种存储资源管理方法,应用于存储资源管理***,所述存储资源管理***包括控制模块和数据处理模块,所述控制模块包括至少一个虚拟功能,所述数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层,所述存储资源管理方法包括:
利用所述底层通信协议层建立各个所述虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;所述数据传输通道用于传输所述虚拟机发送的请求数据包及向所述虚拟机返回的响应数据包;
利用所述控制模块对所述请求数据包进行地址校验,并向所述传输控制协议层发送地址校验结果;所述地址校验结果为地址校验成功或地址校验失败;
利用所述传输控制协议层基于所述地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
利用所述存储虚拟化实现层基于所述请求命令访问对应的存储资源得到所述响应数据。
本发明提供了一种存储资源管理***,通过单根虚拟化技术在控制模块中分配不同的虚拟功能,底层通信协议层建立各个虚拟功能与宿主机端的虚拟机一一对应的数据传输通道,通过单根虚拟化技术与多数据传输通道的结合,提高存储资源隔离的安全性,在底层通信协议层的上层封装一层控制传输协议,实现数据收发控制与处理,并通过控制模块实现请求数据包的地址校验,排除了恶意访问的可能,从而保障了异构存储虚拟化的安全性。本发明还提供了一种存储资源管理方法及存储虚拟化***,具有和上述存储资源管理***相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种存储资源管理***的结构示意图;
图2为本发明所提供的一种基于FPGA的存储虚拟化***的软、硬件整体架构示意图;
图3为本发明所提供的另一种存储资源管理***的结构示意图;
图4为本发明所提供的一种存储资源管理方法的步骤流程图。
具体实施方式
本发明的核心是提供一种存储资源管理***、方法及存储虚拟化***,能够排除恶意访问的可能,提高存储资源隔离的安全性,保障异构存储虚拟化的安全性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,请参照图1,图1为本发明所提供的一种存储资源管理***的结构示意图,该存储资源管理***包括控制模块1和数据处理模块2,控制模块1包括至少一个虚拟功能,数据处理模块2包括由下至上的底层通信协议层21、传输控制协议层22以及存储虚拟化实现层23,其中:
底层通信协议层21,用于建立各个虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;数据传输通道用于传输虚拟机发送的请求数据包及向虚拟机返回的响应数据包;
控制模块1,用于对请求数据包进行地址校验,并向传输控制协议层22发送地址校验结果;地址校验结果为地址校验成功或地址校验失败;
传输控制协议层22,用于基于地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
存储虚拟化实现层23,用于基于请求命令访问对应的存储资源得到响应数据。
可以理解,本实施例中的存储资源管理***应用于存储虚拟化***,请参照图2,图2为本发明所提供的一种基于FPGA的存储虚拟化***的软、硬件整体架构示意图,包括宿主机和虚拟化设备,虚拟化设备为FPGA,其中,硬件部分基于PCIe总线结构,通过SRIOV(Single Root I/O Virtualization,单根虚拟化)功能实现一个FPGA管理用PF(PhysicalFunction,物理功能)0,即图2中管理物理功能,一个存储设备PF1,即图2中的存储设备物理功能,以及隶属于该PF1的若干存储设备VF(Virtual Funcion,虚拟功能),如图2中的存储设备虚拟功能1、存储设备虚拟功能2。控制模块1为FPGA静态区内实现的RTL(RegisterTransfer Level,寄存器转换级电路)逻辑,用于管理存储资源的分配和校验用户地址访问行为的安全性。FPGA的存储资源包括DDR(Double Data Rate(Syncronized Dynamic RAM),双倍速率同步动态随机存取存储器)/HBM(High Bandwidth Memory,高带宽存储器),经虚拟化后提供给虚拟机用户使用。软件部分分为FPGA存储虚拟化***的主机驱动、客户驱动两部分,主机驱动在软件端完成VF使能、地址分配、地址更新等功能,客户驱动实现virtio(半虚拟化)驱动、传输控制协议、向虚拟机用户提供存储访问接口,即用户应用程序接口。
本实施例中,底层通信协议层21通过DMA技术将virtio虚拟队列传输的后端设备卸载到FPGA,构建主机驱动、客户驱动到FPGA物理设备的数据传输通道。传输控制协议层22实际上是一种自定义的virtio设备协议,集中处理发送、接收队列的调度控制与中断解释。存储虚拟化实现层23在驱动软件侧对用户应用提供存储访问接口,在FPGA硬件侧提供异构存储资源到virtio设备的数据转发。
可以理解,可以根据用户需求在宿主机端创建多个虚拟机,当为各个虚拟机分配存储资源并反馈给虚拟机后,用户通过虚拟机用户应用能够发起虚拟化存储资源的读、写等操作请求,由虚拟机的用户应用程序接口接收,即用户API(Application ProgrammingInterface,应用程序接口)接收,然后通过底层通信协议层21创建的对应的数据传输通道将请求数据包传输至控制模块1的与该虚拟机对应的虚拟模块以及传输控制协议层22,控制模块1对该请求数据包进行地址校验,传输控制协议层22基于地址校验成功的请求数据包得到请求命令,然后通过存储虚拟化实现层23基于请求命令访问对应的存储资源得到响应数据,并将响应数据反馈至传输控制协议层22,传输控制协议层22基于响应数据构建响应数据包,将响应数据包通过底层通信协议层21创建的数据传输通道返回至虚拟机。
可见,本实施例中,通过单根虚拟化技术在控制模块1中分配不同的虚拟功能,底层通信协议层21建立各个虚拟功能与宿主机端的虚拟机一一对应的数据传输通道,通过单根虚拟化技术与多数据传输通道的结合,提高存储资源隔离的安全性,在底层通信协议层21的上层封装一层控制传输协议,实现数据收发控制与处理,并通过控制模块1实现请求数据包的地址校验,排除了恶意访问的可能,从而保障了异构存储虚拟化的安全性。
在上述实施例的基础上:
在一示例性实施例中,控制模块1包括物理功能,物理功能与至少一个虚拟功能关联;
控制模块1还用于在对请求数据包进行地址校验之前,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表,并将存储信息表存储到物理功能的基地址寄存器空间;存储信息表包括各个存储资源的地址信息与各个虚拟功能的映射关系,物理功能的基地址寄存器空间与虚拟功能的基地址寄存器空间关联;
对请求数据包进行地址校验的过程包括:
基于存储信息表对请求数据包对应的目标地址进行校验。
在一示例性实施例中,将存储信息表存储到物理功能的基地址寄存器空间的过程包括:
通过寄存器访问操作将存储信息表配置到物理功能的基地址寄存器空间。
在一示例性实施例中,基于存储信息表对请求数据包对应的目标地址进行校验的过程包括:
利用接收到请求数据包的虚拟功能,确定请求数据包对应的目标地址,并查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址,当自身分配的存储资源的地址与目标地址一致,判定地址校验成功,当自身分配的存储资源的地址与目标地址不一致,判定地址校验失败。
在一示例性实施例中,查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址的过程包括:
通过寄存器访问操作查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址。
在一示例性实施例中,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表的过程包括:
利用物理功能将存储虚拟化***的存储资源总量信息上报至宿主机端,以便宿主机端的主机驱动根据用户需求对存储虚拟化***的所有存储资源进行分配,并根据分配结果通过物理功能的基地址寄存器空间配置存储信息表。
参照图2,客户驱动可以通过寄存器访问方式查询其虚拟功能的BAR(BaseAddress Register,基地址寄存器)空间,以获取其被分配的存储资源分配信息。本实施例中,由PF1向主机驱动提供虚拟化设备的存储资源总量信息,主机驱动根据存储资源总量信息对存储空间进行重新编址,根据用户需求对存储资源进行分配,将分配结果以寄存器访问方式配置到存储设备PF1的BAR空间中的VF存储信息表内,该表项的索引数量对应VF数量。配置完成后,客户驱动同样可以通过寄存器访问方式查询其VF的BAR空间以获取其被分配的存储资源信息,通过FPGA中的控制模块1实现PF与VF BAR空间的关联逻辑,从而节省与VF存储信息表等量的寄存器资源。
可以理解,通过寄存器访问的方式可将PF和VF的访问均映射到同一存储有VF存储信息表的地址,两者逻辑空间独立方便驱动程序配置、物理空间共享以节省资源。若虚拟机用户更改需求,主机驱动可在收集需求后修改PF BAR空间的存储地址空间分配方式。修改后,旧的虚拟机访问请求将被硬件拦截无法通过安全校验,直到用户驱动查询VF BAR空间的最新配置信息,并重新发起合法的访问请求。
在一示例性实施例中,数据传输通道包括发送队列,对请求数据包进行地址校验的过程包括:
确定虚拟机发送的请求数据包对应的目标地址及发送队列的标识;
基于标识和存储信息表对目标地址进行地址校验。
本实施例中,请求数据包的队列的标识与虚拟机存在一一对应关系,每一虚拟机被分配的存储资源信息中还包括传输队列标识和各存储资源地址的关系,因此,获取发送队列的标识,即可确定当前用于校验的存储资源的地址,以便进行地址校验。
在一示例性实施例中,底层通信协议层21还用于在获取到访问通知时,从目标共享空间获取请求数据包。
在一示例性实施例中,在获取到访问通知时,从目标共享空间获取请求数据包的过程包括:
在获取到访问通知时,向目标共享空间发起直接存储器访问请求,以通过虚拟机对应的发送队列获取请求数据包。
在一示例性实施例中,控制模块1还用于当底层通信协议层21向目标共享空间发起直接存储器访问请求之后,利用虚拟功能向发送队列发送中断请求。
在一示例性实施例中,存储资源管理***包括:
宿主机还用于当底层通信协议层21在获取到访问通知时,从目标共享空间获取请求数据包之前,创建与用户操作请求对应的请求数据包及对应发送队列的发送描述符,并将请求数据包和发送描述符存入目标共享空间;用户操作请求为基于虚拟机用户应用发起的操作请求。
在一示例性实施例中,宿主机还用于在将请求数据包和发送描述符存入目标共享空间之后,向对应的通知寄存器发送写请求,以便通知寄存器生成访问通知。
可以理解,通过DMA实现virtio后端设备的硬件卸载,每个存储设备VF通过一个发送队列、一个接收队列构建FPGA到宿主机端的虚拟机的透传数据通道,即数据传输通道,队列的标识被硬件存储设备统一管理,与VF编号的映射关系固定。发送队列以及接收队列的类型既可以选择传统的分段式队列(split queue),也可以选择打包式队列(packedqueue),该虚拟队列实现在虚拟机的共享内存区域,可由FPGA通过DMA直接访问。其中发送队列TXQ仅支持主机到板卡方向(h2c,host to card)的数据传输,接收队列RXQ仅支持板卡到主机方向(c2h,card to host)的数据传输,发送队列与接收队列的数据传输由virtio驱动提供给存储设备VF的描述符控制,其中发送描述符由驱动根据数据传输需求定义,指向共享内存中的待发数据;接收描述符由驱动预分配,指向共享内存中的闲置缓冲区,每当描述符被使用完毕,存储设备都会发起对应发送或接收队列的中断请求。
本实施例中,虚拟机用户应用发起虚拟化存储资源的读、写请求,由用户API接收,经过传输控制协议层22创建请求命令包和对应发送队列描述符,存入目标共享内存,以便虚拟化设备直接访问,然后对虚拟化设备的通知状态寄存器发起写请求,以便通知状态寄存器生成访问通知,虚拟化设备根据通知队列依次发起描述符、请求命令包的DMA读请求,向发送队列发起发送中断请求,以告知虚拟机端其发送的请求已被硬件设备接收并正在处理,可以选择等待响应或开启其他线程的处理。
在一示例性实施例中,底层通信协议层21还用于基于请求数据包得到请求命令包;请求命令包的头结构包括数据包类型字段、数据包编号字段、数据包长度字段、请求地址字段、请求响应状态字段和数据负载字段;
基于地址校验成功的请求数据包得到请求命令的过程包括:
利用传输控制协议层22对地址校验成功的请求数据包对应的请求命令包进行解析,得到请求命令。
可以理解,virtio底层通信协议层21仅提供收发两个传输队列,针对本发明的存储设备场景,需要在此基础上封装一层上层协议实现存储访问的读写控制、处理底层的收发队列中断请求。本传输控制协议层22规定存储资源的访问采用基于数据包的数据传输机制,定义底层virtio通信数据包的头结构如下:
数据包类型字段:区分通过virtio传输的某个数据包的功能类型,包括存储读请求、存储写请求、存储读响应、存储写响应四种类型;
数据包编号字段:由传输控制协议层22分配和回收,作为响应数据包的识别依据,用以在乱序传输场景下正确识别并处理响应数据包。此字段的开销与设备的乱序容忍能力正相关;
数据包长度字段:记录一个数据包的总长度,包含协议头本身;
请求地址字段:一次存储访问的起始地址,此地址为经主机驱动重新编址后的虚拟地址,可由FPGA静态区逻辑转换为DDR/HBM物理地址;
请求响应状态字段:仅在读写响应数据包中有效,读写请求命令包中该字段保留,响应状态包括成功、从设备出错(DDR/HBM器件报错)、地址译码出错(请求越界或请求地址不存在)、请求出错(请求字节数与数据负载不匹配);
数据负载字段:承载写请求命令或读响应数据。
在一示例性实施例中,数据传输通道还包括接收队列,传输控制协议层22还用于在对响应数据进行封装得到响应数据包之后,确定响应数据包对应的接收队列的接收描述符,将接收描述符和响应数据包写入目标共享内存。
在一示例性实施例中,控制模块1还用于在传输控制协议层22将接收描述符和响应数据包写入目标共享内存之后,利用虚拟功能对接收队列发起接收中断请求,以便底层通信协议层21从中断的接收队列对应的目标共享内存中读取响应数据包。
在一示例性实施例中,传输控制协议层22还用于缓存请求数据包对应的请求信息;
对响应数据进行封装得到响应数据包的过程包括:
利用传输控制协议层22获取响应数据,并查询请求信息;
基于请求信息和响应数据构建响应数据包。
在一示例性实施例中,请求信息包括发送队列的标识和请求数据包的编号;
将接收描述符和响应数据包写入目标共享内存的过程包括:
将接收描述符和响应数据包通过标识对应的接收队列写入目标共享内存。
本实施例中,所有FPGA的存储资源的读写请求只能由用户应用发起,请求命令包通过TXQ传输,存储设备VF接收到后对TXQ发起中断请求,然后通过请求命令包解析模块,创建存储访问指令并缓存请求信息,响应数据包构建模块收到响应命令与响应数据后,查询缓存的请求信息,构建响应数据包通过RXQ传输,存储设备VF先完成c2h方向的DMA写入,然后对RXQ发起中断请求,客户驱动收到发送队列的中断请求后可判断请求已被硬件设备接收并正在处理,可以选择等待响应或开启其他线程的处理,收到接收队列的中断请求后可判断响应数据包已被存入共享内存,可读取并解析响应数据包。
可以理解,为了进一步避免乱序,在一些实施例中,请求信息包括发送队列的标识和请求命令包的编号;将接收描述符和响应数据包写入目标共享内存的过程包括:将接收描述符和响应数据包通过标识对应的接收队列写入目标共享内存。
在一示例性实施例中,基于请求命令访问对应的存储资源得到响应数据的过程包括:
基于请求命令创建控制访问指令;
对控制访问指令进行协议转换后,得到内存访问指令,基于内存访问指令访问对应的存储资源得到响应数据。
其中,控制模块1完成地址的安全校验后,触发传输控制协议层22基于请求命令生成控制访问指令后,由AXI-mm(memory map,存储器映射)接口转换模块完成协议转换,访问DDR/HBM内存资源,得到响应数据。传输控制协议层22获取到响应数据构建完成响应数据包后,消耗接收队列描述符并发起DMA写请求,DMA完成后发出接收队列中断。客户驱动从中断的接收队列对应共享内存中读取响应数据包,将读写响应状态或读数据通过用户API提供给用户应用,至此一次虚拟存储资源的创建与访问完成。
参照图3所示,图3为本发明所提供的另一种存储资源管理***的结构示意图,其中,控制模块1包括物理功能/虚拟功能基地址寄存器空间映射与适配模块11和地址管理模块12,通过物理功能/虚拟功能基地址寄存器空间映射与适配模块11和地址管理模块12实现对BAR空间的读写访问,在硬件设备侧通过AXI-lite片内通信协议模拟BAR空间的构建。数据处理模块2的实现划分为三个协议层次,分别为底层通信协议层21、传输控制协议层22和存储虚拟化实现层23,底层通信协议层21通过DMA技术将virtio虚拟队列传输的后端设备卸载到存储虚拟化设备,构建主机驱动、客户驱动到存储虚拟化设备的数据传输通道。传输控制协议层22实际上是一种自定义的virtio设备协议,集中处理发送、接收队列的调度控制与中断解释,存储虚拟化实现层23驱动软件侧对用户应用提供存储访问接口,存储虚拟化设备的硬件侧提供异构存储资源到virtio设备的数据转发。底层通信协议层21包括高速串行计算机扩展总线硬核模块211、直接存储器访问事务层传输协议适配模块212、半虚拟化输入输出协议底层实现模块213,传输控制协议层22包括响应数据包构建模块221和请求命令包解析模块222,存储虚拟化实现层23包括先进可扩展接口内存映射协议转换模块231,存储资源包括双倍速率同步动态随机存取存储器/高速带宽存储器。
其中,半虚拟化输入输出协议底层实现模块213用于输出发送队列请求命令包以及接收队列响应数据包,请求命令包解析模块解析发送队列请求命令包得到当前请求地址,通过地址管理模块12进行地址校验,校验成功后,请求命令包解析模块222将卡到主机/主机到卡的请求命令以及主机到卡请求命令发送给先进可扩展接口内存映射协议转换模块231,同时将卡到主机/主机到卡的请求信息缓存,先进可扩展接口内存映射协议转换模块231和双倍速率同步动态随机存取存储器/高速带宽存储器进行数据交互,先进可扩展接口内存映射协议转换模块231将卡到主机的响应数据以及卡到主机/主机到卡的响应命令返回给响应数据包构建模块221,响应数据包构建模块221基于卡到主机的响应数据、卡到主机/主机到卡的响应命令以及缓存的请求信息生成并发送接收队列响应数据包至半虚拟化输入输出协议底层实现模块进行后续处理。
综上,本发明的软件驱动部分的底层通信协议符合virtio标准,被Linux内核支持,因此客户驱动程序的底层通信协议无需单独开发,在虚拟机中的部署成本较低。本发明不依赖于任何厂商定义的FPGA开发框架或DMA通信IP,具有较强的通用性、移植性。本发明将存储资源的地址管理功能通过存储设备PF与VF的寄存器空间配置实现,两者逻辑空间独立方便驱动程序配置、物理空间共享以节省资源。本发明通过VF、虚拟队列、存储地址空间的绑定和实现在物理设备的校验功能,排除了来自软件的恶意访问的可能,保障了异构存储虚拟化的安全性。
第二方面,本发明还提供了一种存储虚拟化***,包括存储资源及如上文任意一个实施例所描述的存储资源管理***。
在一示例性实施例中,存储资源包括双倍速率同步动态随机存取存储器和/或高带宽存储器。
对于本发明所提供的一种存储虚拟化***的介绍请参照上述实施例,本发明在此不再赘述。
本发明所提供的一种存储虚拟化***具有和上述存储资源管理***相同的有益效果。
第三方面,请参照图4,图4为本发明所提供的一种存储资源管理方法的步骤流程图,应用于存储资源管理***,存储资源管理***包括控制模块和数据处理模块,控制模块包括至少一个虚拟功能,数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层,存储资源管理方法包括:
S401:利用底层通信协议层建立各个虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;数据传输通道用于传输虚拟机发送的请求数据包及向虚拟机返回的响应数据包;
S402:利用控制模块对请求数据包进行地址校验,并向传输控制协议层发送地址校验结果;地址校验结果为地址校验成功或地址校验失败;
S403:利用传输控制协议层基于地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
S404:利用存储虚拟化实现层基于请求命令访问对应的存储资源得到响应数据。
可见,本实施例中,通过单根虚拟化技术在控制模块中分配不同的虚拟功能,底层通信协议层建立各个虚拟功能与宿主机端的虚拟机一一对应的数据传输通道,通过单根虚拟化技术与多数据传输通道的结合,提高存储资源隔离的安全性,在底层通信协议层的上层封装一层控制传输协议,实现数据收发控制与处理,并通过控制模块实现请求数据包的地址校验,排除了恶意访问的可能,从而保障了异构存储虚拟化的安全性。
在一示例性实施例中,控制模块包括物理功能,物理功能与至少一个虚拟功能关联;
在对请求数据包进行地址校验之前,存储资源管理方法还包括:
利用控制模块获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表,并将存储信息表存储到物理功能的基地址寄存器空间;存储信息表包括各个存储资源的地址信息与各个虚拟功能的映射关系,物理功能的基地址寄存器空间与虚拟功能的基地址寄存器空间关联;
对请求数据包进行地址校验的过程包括:
基于存储信息表对请求数据包对应的目标地址进行校验。
在一示例性实施例中,将存储信息表存储到物理功能的基地址寄存器空间的过程包括:
通过寄存器访问操作将存储信息表配置到物理功能的基地址寄存器空间。
在一示例性实施例中,基于存储信息表对请求数据包对应的目标地址进行校验的过程包括:
利用接收到请求数据包的虚拟功能,确定请求数据包对应的目标地址,并查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址,当自身分配的存储资源的地址与目标地址一致,判定地址校验成功,当自身分配的存储资源的地址与目标地址不一致,判定地址校验失败。
在一示例性实施例中,查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址的过程包括:
通过寄存器访问操作查询自身对应的基地址寄存器空间以获取自身分配的存储资源的地址。
在一示例性实施例中,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表的过程包括:
利用物理功能将存储虚拟化***的存储资源总量信息上报至宿主机端,以便宿主机端的主机驱动根据用户需求对存储虚拟化***的所有存储资源进行分配,并根据分配结果通过物理功能的基地址寄存器空间配置存储信息表。
在一示例性实施例中,数据传输通道包括发送队列,对请求数据包进行地址校验的过程包括:
确定虚拟机发送的请求数据包对应的目标地址及发送队列的标识;
基于标识和存储信息表对目标地址进行地址校验。
在一示例性实施例中,存储资源管理方法还包括:
利用底层通信协议层在获取到访问通知时,从目标共享空间获取请求数据包。
在一示例性实施例中,在获取到访问通知时,从目标共享空间获取请求数据包的过程包括:
在获取到访问通知时,向目标共享空间发起直接存储器访问请求,以通过虚拟机对应的发送队列获取请求数据包。
在一示例性实施例中,当底层通信协议层向目标共享空间发起直接存储器访问请求之后,存储资源管理方法还包括:
利用虚拟功能向发送队列发送中断请求。
在一示例性实施例中,利用底层通信协议层在获取到访问通知时,从目标共享空间获取请求数据包之前,存储资源管理方法包括:
利用宿主机创建与用户操作请求对应的请求数据包及对应发送队列的发送描述符,并将请求数据包和发送描述符存入目标共享空间;用户操作请求为基于虚拟机用户应用发起的操作请求。
在一示例性实施例中,在将请求数据包和发送描述符存入目标共享空间之后,存储资源管理方法还包括:
利用宿主机向对应的通知寄存器发送写请求,以便通知寄存器生成访问通知。
在一示例性实施例中,存储资源管理方法还包括:
利用底层通信协议层基于请求数据包得到请求命令包;请求命令包的头结构包括数据包类型字段、数据包编号字段、数据包长度字段、请求地址字段、请求响应状态字段和数据负载字段;
基于地址校验成功的请求数据包得到请求命令的过程包括:
利用传输控制协议层对地址校验成功的请求数据包对应的请求命令包进行解析,得到请求命令。
在一示例性实施例中,数据传输通道还包括接收队列;
在对响应数据进行封装得到响应数据包之后,存储资源管理方法还包括:
利用传输控制协议层确定响应数据包对应的接收队列的接收描述符,将接收描述符和响应数据包写入目标共享内存。
在一示例性实施例中,在传输控制协议层将接收描述符和响应数据包写入目标共享内存之后,存储资源管理方法还包括:
利用虚拟功能对接收队列发起接收中断请求,以便底层通信协议层从中断的接收队列对应的目标共享内存中读取响应数据包。
在一示例性实施例中,存储资源管理方法还包括:
利用传输控制协议层缓存请求数据包对应的请求信息;
对响应数据进行封装得到响应数据包的过程包括:
利用传输控制协议层获取响应数据,并查询请求信息;
基于请求信息和响应数据构建响应数据包。
在一示例性实施例中,请求信息包括发送队列的标识和请求数据包的编号;
将接收描述符和响应数据包写入目标共享内存的过程包括:
将接收描述符和响应数据包通过标识对应的接收队列写入目标共享内存。
在一示例性实施例中,基于请求命令访问对应的存储资源得到响应数据的过程包括:
基于请求命令创建控制访问指令;
对控制访问指令进行协议转换后,得到内存访问指令,基于内存访问指令访问对应的存储资源得到响应数据。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (20)
1.一种存储资源管理***,其特征在于,包括控制模块和数据处理模块,所述控制模块包括至少一个虚拟功能,所述数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层,其中:
所述底层通信协议层,用于建立各个所述虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;所述数据传输通道用于传输所述虚拟机发送的请求数据包及向所述虚拟机返回的响应数据包;
所述控制模块,用于对所述请求数据包进行地址校验,并向所述传输控制协议层发送地址校验结果;所述地址校验结果为地址校验成功或地址校验失败;
所述传输控制协议层,用于基于所述地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
所述存储虚拟化实现层,用于基于所述请求命令访问对应的存储资源得到所述响应数据;
所述控制模块包括物理功能,所述物理功能与至少一个所述虚拟功能关联;
所述控制模块还用于在对所述请求数据包进行地址校验之前,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表,并将所述存储信息表存储到所述物理功能的基地址寄存器空间;所述存储信息表包括各个所述存储资源的地址信息与各个所述虚拟功能的映射关系,所述物理功能的基地址寄存器空间与所述虚拟功能的基地址寄存器空间关联;
对所述请求数据包进行地址校验的过程包括:
基于所述存储信息表对所述请求数据包对应的目标地址进行校验。
2.根据权利要求1所述的存储资源管理***,其特征在于,将所述存储信息表存储到所述物理功能的基地址寄存器空间的过程包括:
通过寄存器访问操作将所述存储信息表配置到所述物理功能的基地址寄存器空间。
3.根据权利要求1所述的存储资源管理***,其特征在于,基于所述存储信息表对所述请求数据包对应的目标地址进行校验的过程包括:
利用接收到所述请求数据包的所述虚拟功能,确定所述请求数据包对应的目标地址,并查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址,当所述自身分配的所述存储资源的地址与所述目标地址一致,判定地址校验成功,当所述自身分配的所述存储资源的地址与所述目标地址不一致,判定地址校验失败。
4.根据权利要求3所述的存储资源管理***,其特征在于,所述查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址的过程包括:
通过寄存器访问操作查询自身对应的基地址寄存器空间以获取自身分配的所述存储资源的地址。
5.根据权利要求1所述的存储资源管理***,其特征在于,获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表的过程包括:
利用所述物理功能将所述存储虚拟化***的存储资源总量信息上报至所述宿主机端,以便所述宿主机端的主机驱动根据用户需求对所述存储虚拟化***的所有存储资源进行分配,并根据分配结果通过所述物理功能的基地址寄存器空间配置所述存储信息表。
6.根据权利要求1所述的存储资源管理***,其特征在于,所述数据传输通道包括发送队列,对所述请求数据包进行地址校验的过程包括:
确定所述虚拟机发送的请求数据包对应的目标地址及发送队列的标识;
基于所述标识和所述存储信息表对所述目标地址进行地址校验。
7.根据权利要求1所述的存储资源管理***,其特征在于,所述底层通信协议层还用于在获取到访问通知时,从目标共享空间获取所述请求数据包。
8.根据权利要求7所述的存储资源管理***,其特征在于,在获取到访问通知时,从目标共享空间获取所述请求数据包的过程包括:
在获取到访问通知时,向所述目标共享空间发起直接存储器访问请求,以通过所述虚拟机对应的发送队列获取所述请求数据包。
9.根据权利要求8所述的存储资源管理***,其特征在于,所述控制模块还用于当所述底层通信协议层向所述目标共享空间发起直接存储器访问请求之后,利用所述虚拟功能向所述发送队列发送中断请求。
10.根据权利要求7所述的存储资源管理***,其特征在于,所述宿主机还用于当所述底层通信协议层在获取到访问通知时,从目标共享空间获取所述请求数据包之前,创建与用户操作请求对应的请求数据包及对应发送队列的发送描述符,并将所述请求数据包和所述发送描述符存入所述目标共享空间;所述用户操作请求为基于虚拟机用户应用发起的操作请求。
11.根据权利要求10所述的存储资源管理***,其特征在于,所述宿主机还用于在将所述请求数据包和所述发送描述符存入所述目标共享空间之后,向对应的通知寄存器发送写请求,以便所述通知寄存器生成所述访问通知。
12.根据权利要求10所述的存储资源管理***,其特征在于,所述底层通信协议层还用于基于所述请求数据包得到请求命令包;所述请求命令包的头结构包括数据包类型字段、数据包编号字段、数据包长度字段、请求地址字段、请求响应状态字段和数据负载字段;
基于所述地址校验成功的请求数据包得到请求命令的过程包括:
利用所述传输控制协议层对地址校验成功的请求数据包对应的请求命令包进行解析,得到请求命令。
13.根据权利要求1所述的存储资源管理***,其特征在于,所述数据传输通道还包括接收队列,所述传输控制协议层还用于在对响应数据进行封装得到响应数据包之后,确定所述响应数据包对应的接收队列的接收描述符,将所述接收描述符和所述响应数据包写入目标共享内存。
14.根据权利要求13所述的存储资源管理***,其特征在于,所述控制模块还用于在所述传输控制协议层将所述接收描述符和所述响应数据包写入目标共享内存之后,利用所述虚拟功能对所述接收队列发起接收中断请求,以便所述底层通信协议层从中断的所述接收队列对应的目标共享内存中读取所述响应数据包。
15.根据权利要求13所述的存储资源管理***,其特征在于,所述传输控制协议层还用于缓存所述请求数据包对应的请求信息;
对响应数据进行封装得到响应数据包的过程包括:
利用所述传输控制协议层获取响应数据,并查询所述请求信息;
基于所述请求信息和所述响应数据构建响应数据包。
16.根据权利要求15所述的存储资源管理***,其特征在于,所述请求信息包括发送队列的标识和所述请求数据包的编号;
将所述接收描述符和所述响应数据包写入目标共享内存的过程包括:
将所述接收描述符和所述响应数据包通过所述标识对应的接收队列写入目标共享内存。
17.根据权利要求1-16任一项所述的存储资源管理***,其特征在于,基于所述请求命令访问对应的存储资源得到所述响应数据的过程包括:
基于所述请求命令创建控制访问指令;
对所述控制访问指令进行协议转换后,得到内存访问指令,基于所述内存访问指令访问对应的存储资源得到所述响应数据。
18.一种存储虚拟化***,其特征在于,包括存储资源及如权利要求1-17任意一项所述的存储资源管理***。
19.根据权利要求18所述的存储虚拟化***,其特征在于,所述存储资源包括双倍速率同步动态随机存取存储器和/或高带宽存储器。
20.一种存储资源管理方法,其特征在于,应用于存储资源管理***,所述存储资源管理***包括控制模块和数据处理模块,所述控制模块包括至少一个虚拟功能,所述数据处理模块包括由下至上的底层通信协议层、传输控制协议层以及存储虚拟化实现层,所述存储资源管理方法包括:
利用所述底层通信协议层建立各个所述虚拟功能与宿主机端运行的各个虚拟机一一对应的数据传输通道;所述数据传输通道用于传输所述虚拟机发送的请求数据包及向所述虚拟机返回的响应数据包;
利用所述控制模块对所述请求数据包进行地址校验,并向所述传输控制协议层发送地址校验结果;所述地址校验结果为地址校验成功或地址校验失败;
利用所述传输控制协议层基于所述地址校验成功的请求数据包得到请求命令,并对响应数据进行封装得到响应数据包;
利用所述存储虚拟化实现层基于所述请求命令访问对应的存储资源得到所述响应数据;
所述控制模块包括物理功能,所述物理功能与至少一个所述虚拟功能关联;
利用所述控制模块在对所述请求数据包进行地址校验之前,所述存储资源管理方法还包括:
利用所述控制模块获取对存储虚拟化***的所有存储资源进行分配得到的存储信息表,并将所述存储信息表存储到所述物理功能的基地址寄存器空间;所述存储信息表包括各个所述存储资源的地址信息与各个所述虚拟功能的映射关系,所述物理功能的基地址寄存器空间与所述虚拟功能的基地址寄存器空间关联;
对所述请求数据包进行地址校验的过程包括:
基于所述存储信息表对所述请求数据包对应的目标地址进行校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311676268.2A CN117369734B (zh) | 2023-12-08 | 2023-12-08 | 一种存储资源管理***、方法及存储虚拟化*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311676268.2A CN117369734B (zh) | 2023-12-08 | 2023-12-08 | 一种存储资源管理***、方法及存储虚拟化*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117369734A CN117369734A (zh) | 2024-01-09 |
CN117369734B true CN117369734B (zh) | 2024-03-08 |
Family
ID=89400678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311676268.2A Active CN117369734B (zh) | 2023-12-08 | 2023-12-08 | 一种存储资源管理***、方法及存储虚拟化*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369734B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
CN105808167A (zh) * | 2016-03-10 | 2016-07-27 | 深圳市杉岩数据技术有限公司 | 一种基于sr-iov的链接克隆的方法、存储设备及*** |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机***和存储访问装置 |
CN110365508A (zh) * | 2018-04-10 | 2019-10-22 | ***通信有限公司研究院 | 虚拟网络功能实例化的方法和网络功能虚拟化编排器 |
CN115629843A (zh) * | 2022-11-02 | 2023-01-20 | 华中科技大学 | 一种云端异构虚拟化数字仿真平台 |
CN116126455A (zh) * | 2022-09-26 | 2023-05-16 | 海光信息技术股份有限公司 | 一种虚拟机的数据处理方法、计算设备及存储介质 |
CN116737618A (zh) * | 2023-08-14 | 2023-09-12 | 浪潮电子信息产业股份有限公司 | Fpga架构、器件、数据处理方法、***及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2013CH05400A (zh) * | 2013-11-22 | 2015-05-29 | Ineda Systems Pvt Ltd | |
KR102473665B1 (ko) * | 2015-07-28 | 2022-12-02 | 삼성전자주식회사 | 스토리지 디바이스 및 스토리지 가상화 시스템 |
US11194735B2 (en) * | 2017-09-29 | 2021-12-07 | Intel Corporation | Technologies for flexible virtual function queue assignment |
LU101362B1 (en) * | 2019-08-26 | 2021-03-12 | Microsoft Technology Licensing Llc | Computer device including process isolated containers with assigned virtual functions |
-
2023
- 2023-12-08 CN CN202311676268.2A patent/CN117369734B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751284A (zh) * | 2009-12-25 | 2010-06-23 | 北京航空航天大学 | 一种分布式虚拟机监控器的i/o资源调度方法 |
CN105808167A (zh) * | 2016-03-10 | 2016-07-27 | 深圳市杉岩数据技术有限公司 | 一种基于sr-iov的链接克隆的方法、存储设备及*** |
CN107894913A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 一种计算机***和存储访问装置 |
CN110365508A (zh) * | 2018-04-10 | 2019-10-22 | ***通信有限公司研究院 | 虚拟网络功能实例化的方法和网络功能虚拟化编排器 |
CN116126455A (zh) * | 2022-09-26 | 2023-05-16 | 海光信息技术股份有限公司 | 一种虚拟机的数据处理方法、计算设备及存储介质 |
CN115629843A (zh) * | 2022-11-02 | 2023-01-20 | 华中科技大学 | 一种云端异构虚拟化数字仿真平台 |
CN116737618A (zh) * | 2023-08-14 | 2023-09-12 | 浪潮电子信息产业股份有限公司 | Fpga架构、器件、数据处理方法、***及存储介质 |
Non-Patent Citations (2)
Title |
---|
《SRVM: Hypervisor Support for Live Migration with Passthrough SR-IOV Network Devices》;Xin Xu等;ACM SIGPLAN NOTICES;20160315;全文 * |
《虚拟存储技术研究》;任玉玲,唐靖;商丘职业技术学院学报;20091031;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117369734A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4398556A2 (en) | Storage transactions with predictable latency | |
WO2022095348A1 (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
CN113688072B (zh) | 数据处理方法及设备 | |
US7370174B2 (en) | Method, system, and program for addressing pages of memory by an I/O device | |
CN110109852B (zh) | 硬件实现tcp_ip协议的方法 | |
WO2017066944A1 (zh) | 一种存储设备访问方法、装置和*** | |
US11940933B2 (en) | Cross address-space bridging | |
WO2016093895A1 (en) | Generating and/or employing a descriptor associated with a memory translation table | |
KR20140112717A (ko) | 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법 | |
JP6498844B2 (ja) | コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法 | |
WO2015027806A1 (zh) | 一种内存数据的读写处理方法和装置 | |
CN103425538A (zh) | 进程通讯方法及*** | |
US7469309B1 (en) | Peer-to-peer data transfer method and apparatus with request limits | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
EP3051426B1 (en) | Method, device, and system for accessing memory | |
CN117369734B (zh) | 一种存储资源管理***、方法及存储虚拟化*** | |
US20150220430A1 (en) | Granted memory providing system and method of registering and allocating granted memory | |
WO2023186143A1 (zh) | 一种数据处理方法、主机及相关设备 | |
WO2022141250A1 (zh) | 数据传输方法和相关装置 | |
CN117369906B (zh) | Pcie验证平台、方法、装置、存储介质及电子设备 | |
CN117493236B (zh) | Fpga加速器以及加速器*** | |
KR20040110540A (ko) | 네트워크 전자기기의 데이터 인터페이스 장치 및 방법 | |
CN105874757A (zh) | 一种数据处理方法及多核处理器*** | |
US20240012684A1 (en) | Memory disaggregation method, computing system implementing the method | |
CN117971135B (zh) | 存储设备的访问方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |