一种云平台加速虚拟机I/O的方法、装置及系统制造方法及图纸

技术编号:32219715 阅读:28 留言:0更新日期:2022-02-09 17:25
本发明专利技术公开了一种云平台加速虚拟机I/O的方法、装置、系统及计算机可读存储介质,包括预先创建共享大页内存的虚拟机,并获取目标卷的协议及连接信息;向与虚拟机对应的宿主机上的SPDK vhost

【技术实现步骤摘要】
一种云平台加速虚拟机I/O的方法、装置及系统


[0001]本专利技术涉及计算机
,特别是涉及一种云平台加速虚拟机I/O的方法、装置、系统及计算机可读存储介质。

技术介绍

[0002]在云平台操作系统上,用户可以通过Cinder服务方便创建云硬盘并挂载给云主机使用,而Virtio是目前通用的半虚拟化方案,可用于加速虚拟机的I/O,Virtio为Guest kernel的前端和后端提供了通信的通用接口,Guest kernel的前端和Guest kernel的后端具体可以通过Virtio中的Virtqueues进行数据传递。首先,Guest kernel的前端将数据写入至Virtio的Virtqueues中,然后QEMU从Virtqueues中获取数据后调用系统接口并把数据写入内核态,然后再由QEMU作为Guest kernel的后端根据数据对设备进行读写,读写完成之后再通知Guest kernel的前端。
[0003]随着技术的发展,Hypervisor逐步推出了Vhost

user技术,该Vhost

user技术可以让Guest kernel的后端直接通过Virtqueue与Guest kernel的前端进行交互,减少了数据在用户态到内核态的重复拷贝,并且vhost

user的轮询模式也减少了vm_exit。该Vhost

user技术可以让Guest kernel的后端位于用户态,在减小宕机概率的同时,也增加了后端程序开发的灵活性。目前广泛应用的Guest kernel的后端程序有dpdk、spdk等等,这些程序可以将网络和I/O的性能提升数倍。
[0004]但是,由于Vhost

user技术需要一定的前置条件及限制因素,例如需要虚拟机完全使用大页内存,需要独占一到多个CPU,无法自动对接多种协议的远端盘,导致目前无法将Vhost

user技术应用于OpenStack云平台。
[0005]鉴于此,如何实现将Vhost

user技术应用于OpenStack云平台来加速虚拟机I/O成为本领域技术人员需要解决的问题。

技术实现思路

[0006]本专利技术实施例的目的是提供一种云平台加速虚拟机I/O的方法、装置、系统及计算机可读存储介质,在使用过程中能够实现将Vhost

user技术应用于OpenStack云平台来加速虚拟机I/O,有利于提高加速效率和系统性能。
[0007]为解决上述技术问题,本专利技术实施例提供了一种云平台加速虚拟机I/O的方法,包括:
[0008]预先创建共享大页内存的虚拟机,并获取目标卷的协议及连接信息;
[0009]向与所述虚拟机对应的宿主机上的SPDK vhost

user服务发送创建控制器的请求,以创建vhost

user

scsi控制器;
[0010]根据所述目标卷的协议及连接信息使SPDK bdve接管所述目标卷,并将所述SPDK bdve添加至所述vhost

user

scsi控制器;
[0011]将所述虚拟机与所述vhost

user

scsi控制器相关联,以便所述虚拟机内的QUME
通过调用所述vhost

user

scsi控制器以对所述目标卷进行加速操作。
[0012]可选的,所述获取目标卷的协议及连接信息的过程为:
[0013]依据挂载卷请求调用Nova挂载卷接口;
[0014]通过所述Nova挂载卷接口发送REST API请求至Cinder,以便所述Cinder根据所述REST API请求获取目标卷的协议及连接信息;
[0015]通过所述Nova挂载卷接口接收所述目标卷的协议及连接信息。
[0016]可选的,所述向与所述虚拟机对应的宿主机上的SPDK vhost

user服务发送创建控制器的请求,以创建vhost

user

scsi控制器的过程为:
[0017]通过Nova检查虚拟机元数据,判断是否存在共享大页内存的虚拟机,若存在,则通过所述Nova发送连接卷请求至cyborg;所述连接卷请求包括所述目标卷的协议及连接信息;
[0018]通过所述cyborg判断是否存在与所述虚拟机对应的vhost

user

scsi控制器,若不存在,则发送创建控制器的请求至与所述虚拟机对应的宿主机上的SPDK vhost

user服务,以创建vhost

user

scsi控制器。
[0019]可选的,所述将所述虚拟机与所述vhost

user

scsi控制器相关联,以便所述虚拟机内的QUME通过调用所述vhost

user

scsi控制器以对所述目标卷进行加速操作的过程为:
[0020]获取所述vhost

user

scsi控制器的路径信息,将所述路径信息通过所述cyborg返回至所述Nova,以便所述Nova依据所述路径信息通过所述vhost

user

scsi控制器输出Libvirt xml以调用QUME在所述虚拟机内对所述目标卷进行加速操作。
[0021]可选的,所述创建vhost

user

scsi控制器为:
[0022]通过vhost_create_scsi_controller命令创建vhost

user

scsi控制器。
[0023]可选的,所述协议为iSCSI协议、rbd协议、NVMe

oF协议中的一种。
[0024]本专利技术实施例还提供了一种云平台加速虚拟机I/O的装置,包括:
[0025]创建模块,用于预先创建共享大页内存的虚拟机;
[0026]获取模块,用于获取目标卷的协议及连接信息;
[0027]发送模块,用于向与所述虚拟机对应的宿主机上的SPDK vhost

user服务发送创建控制器的请求,以创建vhost

user

scsi控制器;
[0028]控制模块,用于根据所述目标卷的协议及连接信息使SPDK bdve接管所述目标卷,并将所述SPDK bdve添加至所述vhost

user

scsi控制器;
[0029]关联模块,用于将所述虚拟本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种云平台加速虚拟机I/O的方法,其特征在于,包括:预先创建共享大页内存的虚拟机,并获取目标卷的协议及连接信息;向与所述虚拟机对应的宿主机上的SPDK vhost

user服务发送创建控制器的请求,以创建vhost

user

scsi控制器;根据所述目标卷的协议及连接信息使SPDK bdve接管所述目标卷,并将所述SPDK bdve添加至所述vhost

user

scsi控制器;将所述虚拟机与所述vhost

user

scsi控制器相关联,以便所述虚拟机内的QUME通过调用所述vhost

user

scsi控制器以对所述目标卷进行加速操作。2.根据权利要求1所述的云平台加速虚拟机I/O的方法,其特征在于,所述获取目标卷的协议及连接信息的过程为:依据挂载卷请求调用Nova挂载卷接口;通过所述Nova挂载卷接口发送REST API请求至Cinder,以便所述Cinder根据所述REST API请求获取目标卷的协议及连接信息;通过所述Nova挂载卷接口接收所述目标卷的协议及连接信息。3.根据权利要求2所述的云平台加速虚拟机I/O的方法,其特征在于,所述向与所述虚拟机对应的宿主机上的SPDK vhost

user服务发送创建控制器的请求,以创建vhost

user

scsi控制器的过程为:通过Nova检查虚拟机元数据,判断是否存在共享大页内存的虚拟机,若存在,则通过所述Nova发送连接卷请求至cyborg;所述连接卷请求包括所述目标卷的协议及连接信息;通过所述cyborg判断是否存在与所述虚拟机对应的vhost

user

scsi控制器,若不存在,则发送创建控制器的请求至与所述虚拟机对应的宿主机上的SPDK vhost

user服务,以创建vhost

user

scsi控制器。4.根据权利要求3所述的云平台加速虚拟机I/O的方法,其特征在于,所述将所述虚拟机与所述vhost

user

scsi控制器相关联,以便所述虚拟机内的QUME通过调用所述vhost

user

scsi控制器以对所述目标卷进行加速操作的过程为:获取所述vhost

user

...

【专利技术属性】
技术研发人员:马翱宇马豹海鑫轩艳东
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:

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

1