当前位置: 首页 > 专利查询>浙江大学专利>正文

实现存储设备的虚拟化的方法技术

技术编号:39591236 阅读:8 留言:0更新日期:2023-12-03 19:45
本公开涉及实现存储设备的虚拟化的方法

【技术实现步骤摘要】
实现存储设备的虚拟化的方法、存储设备、数据处理系统


[0001]本公开涉及存储领域,特别涉及存储设备虚拟化技术


技术介绍

[0002]NVMe(Non

Volatile Memory Express
,非易失内存高速协议
)
主要是面向
PCIe(Peripheral Component Interconnect Express
,外部组件互联总线
)
接口的
SSD(SolidStateDrive
,固态硬盘
)
制定的标准接口协议,能够充分发挥高速存储介质性能,解除了旧标准施放在
SSD
上的各种限制

它具有低延迟

低能耗

高性能,并有良好的扩展性等优点,已逐渐在云计算数据中心中成为主流

[0003]NVMe
存储设备虚拟化是云计算中一项必不可少的关键技术之一,它能够将存储资源有效共享

目前的
NVMe
存储设备虚拟化技术主要存在硬件加速和软件模拟两大类

[0004]典型的硬件加速方案有通过
VFIO、SR

IOV
技术实现硬件直通
(passthrough)
,或使用
FPGA(Field Programmable Gate Arrays
,现场可编程逻辑门阵列
>)

ASIC(Application Specific Integrated Circuit
,特定用途集成电路
)
等额外硬件虚拟化
NVMe SSD


[0005]典型的软件模拟的虚拟化方案有
Linux cgroups

。Linux cgroups
的全称是
Linux Control Groups
,它是
Linux
内核的特性,主要作用是限制

记录和隔离进程组
(process groups)
使用的物理资源
(CPU、
内存
、I/O

)。cgroups
为进程提供资源控制,它主要的功能包括:限制进程使用的资源上限,比如最大内存

文件系统缓存使用限制;进行优先级控制,可以给不同的组赋予不同的优先级,比如
CPU
使用和磁盘
IO
吞吐;计算组的资源使用情况,可以用来计费;挂起一组进程,或者重启一组进程等

目前
cgroups
已经成为很多技术的基础
。cgroups
是在操作系统层面的资源隔离技术,但无法做到
NVMe
设备内部的资源
(

I/O
队列等
)
隔离

[0006]NVMe
存储设备在服务使用过程中,也面临另外一个常见需求和挑战:
QoS(Quality of Service
,服务质量
)
,即可以根据上层服务特点或需求,有区别地提供不同优先级或者不同水平
(

99.99
%延时等
)

I/O
读写服务

常见的
QoS
服务可以采用操作系统的
cgroup
机制来实现,但该机制并不能有效保障
QoS
,且需要消耗较多的操作系统资源

[0007]为此,需要一种改进的存储设备虚拟化方案


技术实现思路

[0008]本公开要解决的一个技术问题是提供一种改进的存储设备虚拟化方案,其能够提升资源隔离的安全性能

[0009]根据本公开的第一个方面,提供了一种实现存储设备的虚拟化的方法,包括:主机将存储设备虚拟化为多个虚拟存储设备,并且至少为每个虚拟存储设备分配用于访问存储设备的至少一种主机内存资源中的互不重叠的一部分;存储设备的控制器获得分配给各个虚拟存储设备的主机内存资源部分,并且还获得给各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围;以及存储设备的控制器在处理来自主机的命令之前,根据所述
主机内存资源部分与存储地址范围的信息,检查所述命令的合法性

[0010]可选地,存储设备的控制器还获得给各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围的步骤包括:存储设备的控制器从主机获得主机为各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围;或者存储设备的控制器为各个虚拟存储设备分配存储设备中的互不重叠的存储地址范围

[0011]可选地,存储设备的控制器检查所述命令的合法性的步骤包括:存储设备的控制器检查所述命令使用的主机内存资源与所述命令指定的存储地址是否属于分配给同一个虚拟存储设备的主机内存资源部分与存储地址范围

[0012]可选地,该方法还包括:主机在发送所述命令之前,根据分配给各个虚拟存储设备的主机内存资源部分


/
或存储地址范围的信息,检查所述命令的合法性

[0013]可选地,该方法还包括:主机为分配给各个虚拟存储设备的主机内存资源部分


/
或存储地址范围设置优先级;以及存储设备的控制器根据优先级来获取和
/
或处理来自主机的命令

[0014]可选地,所述存储设备为
SSD。
可选地,所述存储设备采用
NVMe
协议

可选地,所述主机内存资源包括用于存放主机发送给存储设备的命令的队列


/
或用于存放读取数据的内存区域

可选地,所述存储地址包括逻辑块地址

可选地,所述存储地址范围包括一个或更多个命名空间

可选地,所述主机内存资源部分与存储地址范围的信息包括分配给相同虚拟存储设备的主机内存资源部分与存储地址范围绑定形成的资源域的信息

[0015]可选地,主机上安装的应用程序能够在使用虚拟存储设备时直通使用分配给虚拟存储设备的主机内存资源部分

[0016]根据本公开的第二个方面,提供了一种实现存储设备的虚拟化的方法,在存储设备上执行,所述存储设备包括控制器,所述方法包括:所述控制器获得分配给各个虚拟存储设备的主机内存资源部分,并且还获得给各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围;以及所述控制器在处理来自主机的命令之前,根据所述主机内本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种实现存储设备的虚拟化的方法,包括:主机将存储设备虚拟化为多个虚拟存储设备,并且至少为每个虚拟存储设备分配用于访问存储设备的至少一种主机内存资源中的互不重叠的一部分;存储设备的控制器获得分配给各个虚拟存储设备的主机内存资源部分,并且还获得给各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围;以及存储设备的控制器在处理来自主机的命令之前,根据所述主机内存资源部分与存储地址范围的信息,检查所述命令的合法性
。2.
根据权利要求1所述的方法,其中,存储设备的控制器还获得给各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围的步骤包括:存储设备的控制器从主机获得主机为各个虚拟存储设备分配的存储设备中的互不重叠的存储地址范围;或者存储设备的控制器为各个虚拟存储设备分配存储设备中的互不重叠的存储地址范围
。3.
根据权利要求1所述的方法,其中,存储设备的控制器检查所述命令的合法性的步骤包括:存储设备的控制器检查所述命令使用的主机内存资源与所述命令指定的存储地址是否属于分配给同一个虚拟存储设备的主机内存资源部分与存储地址范围
。4.
根据权利要求1所述的方法,还包括:主机在发送所述命令之前,根据分配给各个虚拟存储设备的主机内存资源部分和
/
或存储地址范围的信息,检查所述命令的合法性
。5.
根据权利要求1所述的方法,还包括:主机为分配给各个虚拟存储设备的主机内存资源部分


/
或存储地址范围设置优先级;以及存储设备的控制器根据优先级来获取和
/
或处理来自主机的命令
。6.
根据权利要求1所述的方法,其中,所述存储设备为
SSD
;并且
/
或者所述存储设备采用
NVMe
协议;并且
/
或者所述主机内存资源包括用于存放主机发送给存储设备的命令的队列


/
或用于存放读取数据的内存区域;并且
/
或者所述存储地址包括逻辑块地址;并且
/
或者所述存储地址范围包括一个或更多个命名空间;...

【专利技术属性】
技术研发人员:陈义全王一静靳珍付晓燕陈文智
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1