拥有即时处理能力的NVMe虚拟化方法、系统、介质及设备技术方案

技术编号:37146389 阅读:14 留言:0更新日期:2023-04-06 21:58
本发明专利技术提供了一种拥有即时处理能力的NVMe虚拟化方法、系统、介质及设备,包括:物理资源池模块进行初始化;创建若干个内核线程作为I/O controller;租户管理模块初始化;当虚拟机创建后,租户管理模块向为其创建一个虚拟设备,将其绑定到该虚拟机上;将该虚拟设备给到一个当前活跃的I/O controller,进行信息沟通和设置;I/O controller基于算法运行,进行全局的I/O和带宽分级和即时处理。本发明专利技术基于现有的NVMe

【技术实现步骤摘要】
拥有即时处理能力的NVMe虚拟化方法、系统、介质及设备


[0001]本专利技术涉及虚拟化的
,具体地,涉及拥有即时处理能力的NVMe虚拟化方法、系统、介质及设备,尤其涉及一种拥有带宽分级和即时处理能力的的NVMe虚拟化技术。

技术介绍

[0002]目前的NVMe虚拟化技术中,学术界和工业界往往在追求性能和扩展性,在某种程度上,这两点已经被较好的实现了。而虚拟化技术往往运用在云环境下,而云环境下的存储系统中,QoS能力是必须的,如果没有QoS能力,租户的性能就完全无法得到保证,这在商业上无法接受。
[0003]具体来说,当前的NVMe虚拟化技术中,无论是virt io

blk,virtio

scsi,spdk还是纯硬件实现的sr

iov,他们都没有QoS能力,而且他们有的在本身实现中,就存在了难以实现QoS的某些硬伤。
[0004]学术界有一种NVMe虚拟化技术,NVMe

Mdev,其是一种全虚拟化的技术,能够在保证扩展性的情况下,提供极高的性能。
[0005]在当前的NVMe SSD中,许多都已经在硬件内支持了WRR(weight

round

robin权重轮询)机制,其中,物理队列被分为两个大类,一种是urgent队列,一种是非urgent队列。非urgent队列分为三个小类,分别是high,medium,low。Urgent队列中的指令会被无条件的直接处理,同时,非urgent队列中的指令将被通过WRR的方式来轮询处理。
[0006]学术界有一些基于NVMe SSD的带宽分级实现,他们是D2FQ和MQFQ等,但是他们都是是现在host的block层中,在虚拟化场景下不通用,根据调研,他们因为没有一个好的全局管控机制,实现的QoS能力不够理想。
[0007]因此,需要提出一种新的技术方案以改善上述技术问题。

技术实现思路

[0008]针对现有技术中的缺陷,本专利技术的目的是提供一种拥有即时处理能力的NVMe虚拟化方法、系统、介质及设备。
[0009]根据本专利技术提供的一种拥有即时处理能力的NVMe虚拟化方法,所述方法包括如下步骤:
[0010]步骤S1:物理资源池模块进行初始化,通过原生的NVMe驱动对当前宿主机使用的硬件进行物理队列获取;
[0011]步骤S2:创建若干个内核线程作为I/O controller,同时和物理资源池模块进行沟通,执行默认的物理资源绑定;
[0012]步骤S3:租户管理模块初始化,默认宿主机上有多个不同优先级的租户,每个租户默认拥有一些能够即时处理的带宽大小或者时间长度;
[0013]步骤S4:当虚拟机创建后,租户管理模块向为其创建一个虚拟设备,将其绑定到该虚拟机上;将该虚拟设备给到一个当前活跃的I/O controller,进行信息沟通和设置;
[0014]步骤S5:I/O controller基于算法运行,进行全局的I/O和带宽分级和即时处理。
[0015]优选地,所述步骤S1包括如下步骤:
[0016]步骤S1.1:检查当前系统中接入的NVMe SSD,判断其是否支持WRR特性,如果支持,则在安装系统模块时,分别创建预设数量的优先级为urgent、high、medium、low的物理队列,否则判定系统不适用本物理机;
[0017]步骤S1.2:设定默认的队列权重;
[0018]步骤S1.3:对创建好的物理队列进行封装,加入到物理资源池模块中的队列相关数据结构中,暴露相应接口,供其他模块使用。
[0019]优选地,所述步骤S2包括如下步骤:
[0020]步骤S2.1:初始化每个租户的实时带宽值,设为0,初始化两个阈值,分别是θ
h
和θ
m

[0021]步骤S2.2:在完成一个命令之后,给该租户的实时带宽值加上此命令的数据长度除以该租户优先级的值;
[0022]步骤S2.3:在完成一轮命令的处理之后,遍历当前活跃的所有租户,通过当前最低的实时带宽值,将实时带宽值重新对齐;
[0023]步骤S2.4:根据重新对齐后的实时带宽值,重新分配所有活跃的虚拟设备使用的物理队列,如果一个租户的实时带宽值小于了θ
h
,那么虚拟设备都将在下一轮中使用high队列;否则,如果一个租户的实时带宽值小于了θ
m
,那么虚拟设备都将在下一轮中使用medium队列;如果其两者都不小于,那么虚拟设备都将在下一轮中使用low队列。
[0024]优选地,所述步骤S3包括如下步骤:
[0025]步骤S3.1:当一个虚拟机需要即时处理时,其向租户管理模块发送信息,租户管理模块判断其是否满足即时处理条件,如满足,则通知I/O controller对其进行相应处理;
[0026]步骤S3.2:I/O controller将该虚拟机使用的虚拟设备所有虚拟队列对应的物理队列,切换到某一个可用的urgent队列上。
[0027]本专利技术还提供一种拥有即时处理能力的NVMe虚拟化系统,所述系统包括如下模块:
[0028]模块M1:物理资源池模块进行初始化,通过原生的NVMe驱动对当前宿主机使用的硬件进行物理队列获取;
[0029]模块M2:创建若干个内核线程作为I/O controller,同时和物理资源池模块进行沟通,执行默认的物理资源绑定;
[0030]模块M3:租户管理模块初始化,默认宿主机上有多个不同优先级的租户,每个租户默认拥有一些能够即时处理的带宽大小或者时间长度;
[0031]模块M4:当虚拟机创建后,租户管理模块向为其创建一个虚拟设备,将其绑定到该虚拟机上;将该虚拟设备给到一个当前活跃的I/O controller,进行信息沟通和设置;
[0032]模块M5:I/O controller基于算法运行,进行全局的I/O和带宽分级和即时处理。
[0033]优选地,所述模块M1包括如下模块:
[0034]模块M1.1:检查当前系统中接入的NVMe SSD,判断其是否支持WRR特性,如果支持,则在安装系统模块时,分别创建预设数量的优先级为urgent、high、medium、low的物理队列,否则判定系统不适用本物理机;
[0035]模块M1.2:设定默认的队列权重;
[0036]模块M1.3:对创建好的物理队列进行封装,加入到物理资源池模块中的队列相关数据结构中,暴露相应接口,供其他模块使用。
[0037]优选地,所述模块M2包括如下模块:
[0038]模块M2.1:初始化每个租户的实时带宽值,设为0,初始化两个阈值,分别是θ
h
和θ
m

[0039]模块M2.2:在完成一个命令之后,给该租户的实时带宽值加上此命令的数据长度除以该租户本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种拥有即时处理能力的NVMe虚拟化方法,其特征在于,所述方法包括如下步骤:步骤S1:物理资源池模块进行初始化,通过原生的NVMe驱动对当前宿主机使用的硬件进行物理队列获取;步骤S2:创建若干个内核线程作为I/O controller,同时和物理资源池模块进行沟通,执行默认的物理资源绑定;步骤S3:租户管理模块初始化,默认宿主机上有多个不同优先级的租户,每个租户默认拥有一些能够即时处理的带宽大小或者时间长度;步骤S4:当虚拟机创建后,租户管理模块向为其创建一个虚拟设备,将其绑定到该虚拟机上;将该虚拟设备给到一个当前活跃的I/O controller,进行信息沟通和设置;步骤S5:I/O controller基于算法运行,进行全局的I/O和带宽分级和即时处理。2.根据权利要求1所述的拥有即时处理能力的NVMe虚拟化方法,其特征在于,所述步骤S1包括如下步骤:步骤S1.1:检查当前系统中接入的NVMe SSD,判断其是否支持WRR特性,如果支持,则在安装系统模块时,分别创建预设数量的优先级为urgent、high、medium、low的物理队列,否则判定系统不适用本物理机;步骤S1.2:设定默认的队列权重;步骤S1.3:对创建好的物理队列进行封装,加入到物理资源池模块中的队列相关数据结构中,暴露相应接口,供其他模块使用。3.根据权利要求1所述的拥有即时处理能力的NVMe虚拟化方法,其特征在于,所述步骤S2包括如下步骤:步骤S2.1:初始化每个租户的实时带宽值,设为0,初始化两个阈值,分别是θ
h
和θ
m
;步骤S2.2:在完成一个命令之后,给该租户的实时带宽值加上此命令的数据长度除以该租户优先级的值;步骤S2.3:在完成一轮命令的处理之后,遍历当前活跃的所有租户,通过当前最低的实时带宽值,将实时带宽值重新对齐;步骤S2.4:根据重新对齐后的实时带宽值,重新分配所有活跃的虚拟设备使用的物理队列,如果一个租户的实时带宽值小于了θ
h
,那么虚拟设备都将在下一轮中使用high队列;否则,如果一个租户的实时带宽值小于了θ
m
,那么虚拟设备都将在下一轮中使用medium队列;如果其两者都不小于,那么虚拟设备都将在下一轮中使用low队列。4.根据权利要求1所述的拥有即时处理能力的NVMe虚拟化方法,其特征在于,所述步骤S3包括如下步骤:步骤S3.1:当一个虚拟机需要即时处理时,其向租户管理模块发送信息,租户管理模块判断其是否满足即时处理条件,如满足,则通知I/O controller对其进行相应处理;步骤S3.2:I/O controller将该虚拟机使用的虚拟设备所有虚拟队列对应的物理队列,切换到某一个可用的urgent队列上。5.一种拥有即时处理能力的NVMe虚拟化系统,其特征在于,所述系统包括如下模块:模块M1:物理资源池模块进行初始化,通过原生的NVMe驱动对当前宿主机使用的硬件进行物理队列获取;模块M2:创建若干个内...

【专利技术属性】
技术研发人员:姚建国谢正平黄益人唐杰彭博
申请(专利权)人:益思芯科技上海有限公司
类型:发明
国别省市:

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

1