[发明专利]实现设备虚拟化的方法、装置及计算机可读存储介质在审
申请号: | 202010419033.5 | 申请日: | 2020-05-18 |
公开(公告)号: | CN111651269A | 公开(公告)日: | 2020-09-11 |
发明(设计)人: | 吕争;刘迅思 | 申请(专利权)人: | 青岛镕铭半导体有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 张然 |
地址: | 266100 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 设备 虚拟 方法 装置 计算机 可读 存储 介质 | ||
本发明公开了一种实现设备虚拟化的方法、装置及计算机可读存储介质。实现设备虚拟化的方法,包括:基于非易失性内存主机控制器接口规范NVMe存储协议,将宿主机上的每个NVMe设备枚举出多个命名空间namespace;将每个namespace枚举成一个虚拟设备。采用本发明,利用标准的NVMe存储协议中规定的命名空间的概念,将同一个NVMe设备上的不同命名空间枚举成不同的虚拟设备,通过NVMe协议规定天然地就将不同虚拟设备做到了隔离,同时由于NVMe协议是标准的存储协议,所有的虚拟化方案都天然支持,可以保证该方案可以适配不同的虚拟化场景。
技术领域
本发明涉及计算机领域,尤其涉及一种实现设备虚拟化的方法、装置及计算机可读存储介质。
背景技术
虚拟化技术是一种资源管理技术,具体是指将硬件资源虚拟化,实现隔离性、可扩展性、安全性、资源可充分利用等特点的产品。
在虚拟化技术中,通常将物理主机叫做Hypervisor(宿主机)。将在物理主机上面运行的虚拟主机叫做虚拟机或者容器。在一个宿主机上可以跑多个虚拟机或者容器。不同的虚拟机或者容器之间需要完全隔离,互不影响。用户通过虚拟机或容器来访问软件构造出的虚拟设备。而虚拟化软件构造出的虚拟设备又需要通过一定的接口和实际的物理设备通讯。其中如何实现物理设备和虚拟设备之间的映射是技术核心。其中,如何实现一个物理设备对应多个虚拟设备,多个虚拟设备之间可以共享同一个物理设备的资源是重中之重。
发明内容
本发明实施例提供一种实现设备虚拟化的方法、装置及计算机可读存储介质,用以实现一个物理设备对应多个虚拟设备,多个虚拟设备之间可以共享同一个物理设备的资源。
根据本发明实施例的实现设备虚拟化的方法,包括:
基于非易失性内存主机控制器接口规范NVMe存储协议,将宿主机上的每个NVMe设备枚举出多个命名空间namespace;
将每个所述namespace枚举成一个所述虚拟设备。
根据本发明的一些实施例,所述将宿主机上的每个NVMe设备枚举出多个命名空间namespace,包括:
为每个所述NVMe设备维护一个namespace链表和一个namespace ID table,所述namespace链表中的每个所述namespace在所述namespaceIDtable存在一个位置位;
当所述位置位设置为第一数值,则该位置位对应的namespace待分配;
当所述位置位设置为第二数值,则该位置位对应的namespace已分配;
所述第二数值与所述第一数值不同。
根据本发明的一些实施例,所述宿主机具有多个所述NVMe设备。
根据本发明实施例的实现设备虚拟化的装置,包括:
NVMe驱动,用于基于非易失性内存主机控制器接口规范NVMe存储协议,将宿主机上的每个NVMe设备枚举出多个命名空间namespace;
vfio设备,用于将每个所述namespace枚举成一个所述虚拟设备。
根据本发明的一些实施例,所述NVMe驱动,用于:
为每个所述NVMe设备维护一个namespace链表和一个namespace ID table,所述namespace链表中的每个所述namespace在所述namespace ID table存在一个位置位;
当所述位置位设置为第一数值,则该位置位对应的namespace待分配;
当所述位置位设置为第二数值,则该位置位对应的namespace已分配;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛镕铭半导体有限公司,未经青岛镕铭半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010419033.5/2.html,转载请声明来源钻瓜专利网。