CN109960569B - 一种虚拟化处理方法及装置 - Google Patents

一种虚拟化处理方法及装置 Download PDF

Info

Publication number
CN109960569B
CN109960569B CN201910232899.2A CN201910232899A CN109960569B CN 109960569 B CN109960569 B CN 109960569B CN 201910232899 A CN201910232899 A CN 201910232899A CN 109960569 B CN109960569 B CN 109960569B
Authority
CN
China
Prior art keywords
virtual machine
storage
storage resource
host
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
Application number
CN201910232899.2A
Other languages
English (en)
Other versions
CN109960569A (zh
Inventor
李桂清
何海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201910232899.2A priority Critical patent/CN109960569B/zh
Publication of CN109960569A publication Critical patent/CN109960569A/zh
Application granted granted Critical
Publication of CN109960569B publication Critical patent/CN109960569B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种虚拟化处理方法及装置,与现有技术在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关需求文件向虚拟机分配相应大小的存储资源并虚拟化的虚拟化机制不同,本申请提供的虚拟化处理方法及装置,是在虚拟机启动后,并且在接受到虚拟机的申请使用存储资源的请求后,才为虚拟机分配物理存储资源并对分配的物理存储资源进行虚拟化的,由于是在虚拟机启动后且在接受到虚拟机的申请使用存储资源的请求后进行存储资源分配,从而对虚拟机的存储资源分配更贴近其实际需求,可一定程序上避免虚拟机启动后未实际使用但仍然占用存储资源的现象,降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。

Description

一种虚拟化处理方法及装置
技术领域
本申请属于存储虚拟化技术领域,尤其涉及一种虚拟化处理方法及装置。
背景技术
目前,虚拟机(如Windows Server 2019的Hyper-V虚拟机)对物理存储资源进行虚拟化的机制是将物理存储资源划分成多个小块,在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关存储资源需求文件向其分配相应大小的资源块(包括一个或多个块),并将所分配的资源块连接到虚拟机,以满足虚拟机运行过程中的虚拟化存储资源需求,为虚拟机所分配的存储资源在虚拟机的整个运行过程中不再发生变动。
然而,在虚拟机的整个运行过程中,经常存在已分配的存储资源(或部分)闲置的情况,例如,在虚拟机启动后,可能存在一段时间并不需要使用存储资源或者并不需要使用已分配的全量存储资源(后续,在启动之后等待一段时间可能才基于任务需求需要使用存储资源),从而,会造成虚拟机占用硬件资源但实际并不使用的情况,因此,现有技术的上述虚拟化机制存在不能充分利用存储资源的存储空间的缺陷,造成了存储资源的浪费,无形中也增加了主机的虚拟化存储成本。
发明内容
有鉴于此,本申请的目的在于提供一种虚拟化处理方法及装置,用于在虚拟机中更合理地使用存储资源,以降低存储资源的浪费,相应降低主机的虚拟化存储成本。
为此,本发明公开如下技术方案:
一种虚拟化处理方法,包括:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后;
为第一虚拟机分配物理存储资源;
对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求。
上述方法,优选的,所述为第一虚拟机分配物理存储资源,包括:
获取第一虚拟机所需使用的存储资源的第一存储空间容量值;
判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果;
若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源;
若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能。
上述方法,优选的,所述从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,包括:
解除所述至少一个第二虚拟机对所占用的第一存储资源中的至少部分资源的占用;所述第三存储资源的存取性能低于所述第一存储资源的存取性能。
上述方法,优选的,所述对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,包括:
将所分配的物理存储资源的地址信息提供给所述第一虚拟机的持久性存储控制器;
由所述持久性存储控制器将所述物理存储资源映射至第一虚拟机的虚拟化存储资源,以得到可用的虚拟化存储资源。
上述方法,优选的,在所述第一虚拟机启动之前,还包括:
在主机中创建所述第一虚拟机;
获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值;
确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值;
若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
上述方法,优选的,在确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源之后、在所述第一虚拟机启动之前,还包括:
为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
一种虚拟化处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后;
为第一虚拟机分配物理存储资源;
对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求。
上述装置,优选的,所述处理器为第一虚拟机分配物理存储资源,具体包括:
获取第一虚拟机所需使用的存储资源的第一存储空间容量值;
判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果;
若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源;
若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能。
上述装置,优选的,所述处理器在所述第一虚拟机启动之前,还用于:
在主机中创建所述第一虚拟机;
获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值;
确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值;
若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
上述装置,优选的,所述处理器在确定出主机中存在所述第二存储空间容量值的第一存储资源之后、在所述第一虚拟机启动之前,还用于:
为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
由以上方案可知,与现有技术在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关需求文件向虚拟机分配相应大小的存储资源并虚拟化的虚拟化机制不同,本申请提供的虚拟化处理方法及装置,是在虚拟机启动后,并且在接受到虚拟机的申请使用存储资源的请求后,才为虚拟机分配物理存储资源并对分配的物理存储资源进行虚拟化的,由于是在虚拟机启动后且在接受到虚拟机的申请使用存储资源的请求后进行存储资源分配,从而对虚拟机的存储资源分配更贴近其实际需求,可一定程序上避免虚拟机启动后未实际使用但仍然占用存储资源的现象,降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的虚拟化处理方法实施例一的流程图;
图2是本申请提供的虚拟化处理方法的预处理过程实施例二的流程图;
图3是本申请提供的虚拟化处理方法的预处理过程实施例三的流程图;
图4是本申请提供的虚拟化处理方法实施例四的流程图;
图5是本申请提供的虚拟化处理装置实施例五的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在虚拟化技术领域中,一般来说,可基于实际需求,在个人计算机或局域网/云端服务器中创建一个或多个虚拟机,同时,为了支持所创建的虚拟机的正常运行,个人计算机或局域网/云端服务器等作为虚拟机的宿主机,通常会在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关存储资源需求文件向其分配相应大小的存储资源并对所分配的存储资源进行虚拟化,以满足虚拟机运行过程中的虚拟化存储资源需求。然而,如上文所述,该在虚拟机启动前为虚拟机分配存储资源并虚拟化的方式存在不能充分利用存储资源的存储空间的缺陷,为了在虚拟机中更合理地使用存储资源,以降低存储资源的浪费,相应降低主机的虚拟化存储成本,本申请提供了一种虚拟化处理方法及装置,该虚拟化处理方法及装置可应用于但不限于个人计算机或局域网/云端服务器的主机中,以下将通过多个实施例对本申请的虚拟化处理方法及装置进行详细说明。
实施例一
参考图1,是本申请提供的一种虚拟化处理方法实施例一的流程图,本实施例中,所述虚拟化处理方法可以包括以下步骤:
步骤101、在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,为第一虚拟机分配物理存储资源。
所述第一虚拟机可以是但不限于在个人计算机或局域网/云端服务器的主机中所创建的虚拟机,如Windows Server 2019的Hyper-V虚拟机等。
第一虚拟机的申请使用存储资源的请求,可以是第一虚拟机基于其实际的任务需求所触发的需使用存储资源的请求,比如,在第一虚拟机用户下载并存储数据时,第一虚拟机则相对应需执行数据的下载及存储任务,此种情况下,则可生成申请使用存储资源的请求,以支持该数据下载及存储任务的正常执行;再比如,在虚拟机基于条件触发利用单线程或多线程自动执行一数据处理并存储处理结果的任务时,同样可生成申请使用存储资源的请求。
与现有技术在虚拟机启动之前为虚拟机分配存储资源并对分配的存储资源进行虚拟化的机制不同,本申请是在第一虚拟机启动之后,并且在接受到第一虚拟机的申请使用存储资源的请求之后,才通过响应该请求为第一虚拟机分配物理存储资源的,也即,从第一虚拟机启动的时间节点直至第一虚拟机申请使用存储资源的时间节点,第一虚拟机所在的主机(个人计算机或局域网/云端服务器的主机)并不为第一虚拟机分配存储资源,相对应地,在这一时间段内第一虚拟机也不会对其所在主机的存储资源进行占用。
为第一虚拟机分配的物理存储资源可以包括但不限于NVDIMM(Non-VolatileDual In-line Memory Module,非易失性双列直插式内存模块)和/或符合NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)的存储资源,所述符合NVMe的存储资源示例性地比如可以是NVMe SSD(Solid State Disk,固态硬盘)等。
NVDIMM是一种性能很好的非易失性存储器件,集成了DRAM(Dynamic RandomAccess Memory,动态随机存取存储器)及非易失性内存芯片,在完全断电时依然能够保存完整的内存数据,其数据存取性能优于NVMe存储资源,虚拟机可以通过使用和管理NVDIMM,给用户带来较好的性能体验,鉴于该特点,本申请在为第一虚拟机分配物理存储资源时,会优先向第一虚拟机进行NVDIMM的分配。
步骤102、对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求。
在通过响应第一虚拟机的申请使用存储资源的请求为第一虚拟机分配物理存储资源之后,可进一步对分配给第一虚拟机的物理存储资源进行虚拟化处理,例如对分配给第一虚拟机的NVDIMM和/或NVMe存储资源进行虚拟化处理等,以使得所分配的存储资源对第一虚拟机可用,进而满足第一虚拟机使用虚拟化存储资源的需求。
由以上方案可知,与现有技术在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关需求文件向虚拟机分配相应大小的存储资源并虚拟化的虚拟化机制不同,本实施例提供的虚拟化处理方法,是在虚拟机启动后,并且在接受到虚拟机的申请使用存储资源的请求后,才为虚拟机分配物理存储资源并对分配的物理存储资源进行虚拟化的,由于是在虚拟机启动后且在接受到虚拟机的申请使用存储资源的请求后进行存储资源分配,从而对虚拟机的存储资源分配更贴近其实际需求,可一定程序上避免虚拟机启动后未实际使用但仍然占用存储资源的现象,降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。
实施例二
虚拟机的启动及运行,需以已预先在个人计算机或局域网/云端服务器的主机中完成了虚拟机的创建及相应初始化等工作为基础,鉴于此,本实施例中,参考图2,所述虚拟化处理方法在第一虚拟机启动之前还可以包括以下的预处理过程:
步骤201、在主机中创建所述第一虚拟机。
在主机中创建第一虚拟机,示例性地,具体可以是但不限于在主机中创建支持VPMEM(Virtual Persistent Memery,虚拟持久化存储)的操作系统的二代Hyper-V虚拟机。
其中,可由用户在其个人计算机中基于实际需求创建所需的第一虚拟机,或者,还可以由局域网/云端服务器在终端基于服务需求申请虚拟机时,创建相应的用于为终端提供所需服务的第一虚拟机。
在创建第一虚拟机之前,个人计算机或者局域网/云端服务器的主机一般会首先对存储资源进行格式化,如将NVDIMM格式化成DAX(Direct Access,直接访问)模式等,以便于后续的存储资源分配与管理。
步骤202、获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值。
每个虚拟机都会有对存储资源的相应使用要求,且通常会在其相关存储资源需求文件中提供其所需存储资源的相关信息,如提供所需存储资源的空间容量大小等。
因此,在创建所述第一虚拟机后,可从其相关存储资源需求文件中读取第一虚拟机所需存储资源的第一存储空间容量值。
步骤203、确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值。
在对第一虚拟机进行存储资源分配时,本申请会优先为其分配主机中的高存取性能的存储资源,比如优先分配主机中的NVDIMM等,鉴于此,所述第一存储资源可以是主机中的NVDIMM等高存取性能的存储资源。
为了尽可能保障第一虚拟机运行过程中能够有效申请到其所需量的高存取性能存储资源,进而保障第一虚拟机的正常运行,本实施例在启动虚拟机之前预先确定主机中是否具备足够的第一存储资源(高存取性能的存储资源),若具备,则表示可支持该第一虚拟机运行过程中对高存取性能存储资源的正常使用,从而可在完成第一虚拟机的初始化处理后继续启动第一虚拟机,若不具备,则主机返回执行其他任务,直至主机中具备足够的第一存储资源后(如主机上的其他虚拟机运行结束或销毁从而释放存储资源)再继续执行后续处理并启动第一虚拟机。
现有技术由于在虚拟机启动之前为虚拟机分配存储资源且为虚拟机分配的存储资源在虚拟机的整个运行过程中不再发生变动,这就隐含在虚拟机运行过程中不会存在不同虚拟机之间的存储资源调配,从而,在启动虚拟机前对主机进行可用存储资源的判断时,会严格判断主机中是否具备不低于虚拟机所需的第一存储空间容量值的剩余(或闲置)存储资源,以对虚拟机分配NVDIMM为例,则会判断主机中是否具备不低于虚拟机所需的存储空间容量值的剩余NVDIMM,若不具备,则返回执行其他任务,待主机具备不低于虚拟机所需空间容量值的存储资源后再向虚拟机进行存储资源分配进而启动虚拟机,若具备则直接分配并启动虚拟机。
与现有技术相区别,本申请在判断主机中是否具备足够的第一存储资源时,允许第一虚拟机所申请的第一存储空间容量值相比于主机中的剩余第一存储资源存在一定的冗余度,即允许“(第一存储空间容量值主机剩余第一存储资源的容量值)/主机剩余第一存储资源的容量值”为大于0的值(该数值一般大于0且小于1),比如具体存在25%或其他数值的冗余度等。不再严格判断主机中是否具备不低于第一虚拟机所需的第一存储空间容量值的剩余(或闲置)存储资源,而是判断主机中是否具备不低于第二存储空间容量值的剩余存储资源,显然,所述第二存储空间容量值小于第一虚拟机所需的所述第一存储空间容量值。
以下举例说明,以主机中剩余128GB的NVDIMM为例,则最多可允许第一虚拟机申请160GB的NVDIMM空间(现有技术则最多允许申请128GB的NVDIMM),相对应地,若虚拟机申请使用160GB的NVDIMM,则判断主机中是否具备不低于128GB的剩余NVDIMM即可(后续在启动第一虚拟机后,可基于相应的动态调配机制为第一虚拟机实际分配其所需量的存储资源)。
所述冗余度的具体数值可由技术人员或用户基于资源调配策略预先设定。
步骤204、若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供一虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
其中,若主机中存在不低于所述第二存储空间容量值的剩余第一存储资源(如NVDIMM),则表示主机中具备支持第一虚拟机的运行所需的存储资源,从而允许第一虚拟机启动,在该情况下,可选地,可在启动第一虚拟机之前,记录第一虚拟机所需的该第一存储空间容量值至预先建立的存储资源管理列表,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时读取。
此外,还可以向所述第一虚拟机添加一持久性存储(PM,Persistent Memery)控制器,并可向所述持久性存储控制器提供一虚假的物理存储资源地址信息,以实现将一虚假的物理存储资源绑定至所述持久性存储控制器,该持久性存储控制器在绑定所述虚假的物理存储资源后,会将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
所述虚假的物理存储资源是指主机中实际并不存在的物理存储资源,虚假的物理存储资源的地址信息则相应地不在主机中对应任何的存储资源,本实施例在第一虚拟机启动之前向所述持久性存储控制器绑定虚假的物理存储资源并对其进行虚拟化,目的在于在虚拟机启动之后至真正向虚拟机分配存储资源之前,仍可在虚拟机上显示正常的存储资源界面,如显示正常的虚拟磁盘界面等,以不影响用户的使用感受,也即,虽然在第一虚拟机启动之后至第一虚拟机提出申请使用存储资源的请求时主机并未向虚拟机分配存储资源,但从用户角度来说,其拥有正常的虚拟存储资源感受(如可查看到正常的虚拟存储资源界面等)。
在完成上述处理后,可进一步启动虚拟机,并按上文实施例一中步骤101-102的处理过程实现针对第一虚拟机的存储资源分配及虚拟化。
本实施例在启动虚拟机前判断主机中是否具备足够的存储资源时,允许第一虚拟机所申请的第一存储空间容量值相比于主机中的剩余第一存储资源存在一定的冗余度,可有效提升主机在虚拟化管理方面的灵活性,同时对主机存储资源的使用也更为合理,降低了主机的虚拟化存储成本。
实施例三
对于前文所述的实施例二,在确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源之后、在所述第一虚拟机启动之前,参考图3,所述预处理过程还可以包括:
步骤204’、为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
可选地,在启动所述第一虚拟机之前,当确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源时,还可以为所述第一虚拟机分配一第一存储资源起始地址并记录该第一存储资源起始地址,其中,同样可将所述第一存储资源起始地址记录在上文所述的存储资源管理列表中,主机可通过所述存储资源管理列表管理与维护主机上创建或运行的一个或多个虚拟机所需的存储空间容量值以及所分配的存储资源起始地址等信息。
所分配并记录的该第一存储资源起始地址用于指向主机中的剩余第一存储资源,从而,在第一虚拟机启动后需为第一虚拟机分配存储资源时,可直接读取并参考该第一存储资源起始地址为第一虚拟机进行物理存储资源(如NVDIMM)的分配,而不必再从存储资源的起始位置进行遍历以确定其中的闲置第一存储资源,有效降低了存储资源分配时的处理工作量,提升了为虚拟机分配存储资源时的分配效率。
实施例四
本实施例进一步提供为第一虚拟机分配物理存储资源并对分配的存储资源进行虚拟化的具体实现过程,参考图4示出的虚拟化处理方法流程图,所述虚拟化处理方法可以通过以下的处理过程实现:
步骤401、在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,获取第一虚拟机所需使用的存储资源的第一存储空间容量值。
所述第一存储空间容量值,即为创建第一虚拟机时,第一虚拟机所要求的存储资源的第一存储空间容量值。
在启动第一虚拟机后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,为了响应该请求实现为第一虚拟机分配其所需空间容量值的存储资源,需首先获知所述第一虚拟机所需存储资源的第一存储空间容量值,其中,具体可从所述存储资源管理列表中读取第一虚拟机所需的第一存储空间容量值。
步骤402、判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果。
在为第一虚拟机进行存储资源分配时,本申请会优先考虑为其分配主机中的高存取性能存储资源,如NVDIMM等第一存储资源,鉴于此,在获得第一虚拟机所需的所述第一存储空间容量值后,会进一步判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源。
步骤403、若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源。
若判断结果表示存在,则可直接基于主机中的剩余第一存储资源为第一虚拟机进行物理存储资源的分配,具体可从主机的剩余第一存储资源中划分出大小为所述第一存储空间容量值的第一存储资源(如NVDIMM)进而分配给第一虚拟机。
且进一步地,若在启动第一虚拟机之前的初始化阶段,已预先为第一虚拟机分配并记录了一第一存储资源起始地址,则可以以该记录的第一存储资源起始地址为参考,从主机的剩余第一存储资源中进行资源划拨(而不必再从存储资源的起始位置进行遍历以确定其中的闲置第一存储资源),并将划拨的资源分配给第一虚拟机。
其中,分配给第一虚拟机的存储资源通常为一个或多个资源块,如一个或多个NVDIMM块等。
步骤404、若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能。
反之,若所述判断结果表示不存在,比如,主机的所有第一存储资源均被占用(可能被主机上运行的其他一个或多个虚拟机占用)或者仅剩余有低于所述第二存储空间容量值的第一存储资源,则可选地,作为一种可能的实施方式,可从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,所调配出的第一存储资源的空间容量值(或者结合主机自身剩余的第一存储资源)以尽可能满足第一虚拟机对第一存储资源的使用需求为准,之后,若在调配之前主机中没有任何的第一存储资源闲置,则可直接基于调配出的第一存储资源对第一虚拟机进行物理存储资源分配,若在调配之前主机中有剩余相应的第一存储资源,则可结合主机自身剩余的第一存储资源以及调配出的第一存储资源对第一虚拟机进行物理存储资源分配,并具体向第一虚拟机分配所述第一存储空间容量值的第一存储资源,以满足其存储资源使用需求。
其中,在从主机中的至少一个第二虚拟机调配第一存储资源时,优先选择所分配的第一存储资源存在闲置/部分闲置(即占用了存储资源但其中的全部或部分资源并未被实际使用)的第二虚拟机进行第一存储资源的调配,对于这部分闲置的第一存储资源,可直接解除其所在的第二虚拟机对该部分资源的占用;如果各个第二虚拟机的闲置第一存储资源的总量(或者结合主机自身的剩余第一存储资源)仍不能满足第一虚拟机的使用需求,则可进一步从主机中选取出对存取性能要求不高的至少一个第二虚拟机,并向其分配存取性能低于所述第一存储资源的第三存储资源,将其在相应第一存储资源的数据/部分数据导入该新分配的第三存储资源中,进而释放该至少一个对存取性能要求不高的第二虚拟机对其至少部分第一存储资源的占用,并将释放的该部分第一存储资源调配给第一虚拟机,以满足第一虚拟机的使用需求。
所述第三存储资源的存取性能低于所述第一存储资源的存取性能,具体地,该第三存储资源可以是但不限于NVMe存储资源。
另外,可选地,作为第二种可能的实施方式,还可以至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源,比如,在主机自身未剩余任何第一存储资源的情况下,可直接基于主机的第二存储资源对第一虚拟机进行物理存储资源分配,在主机自身有剩余相应第一存储资源(但低于所述第二存储空间容量值)的情况下,可结合主机自身剩余的第一存储资源以及主机上的第二存储资源为第一虚拟机分配物理存储资源。
所述第二存储资源的存取性能同样低于所述第一存储资源的存取性能,所述第二存储资源可以与所述第三存储资源相同或不同,示例性地,所述第二存储资源同样可以是主机上的NVMe存储资源。
可选地,作为第三种可能的实施方式,还可以对上述的第一种及第二种实施方式进行结合应用,即基于从主机的至少一个第二虚拟机调配出的第一存储资源以及主机的第二存储资源(或者还可以结合主机自身剩余的第一存储资源)对第一虚拟机进行物理存储资源分配。
上述的三种实施方式,均提供了主机中的高存取性能存储资源不足的情况下的相应解决方案,其中的第一种实施方式适用于第一虚拟机对存储资源的存取性能要求较高的情形,该实施方式能够通过对主机上其他虚拟机即所述第二虚拟机的资源调配来尽可能满足第一虚拟机对高存取性能的第一存储资源的需求;第二种实施方式适用于第一虚拟机对存储资源的存取性能要求较低的情形,该实施方式不会挤压主机中的其他虚拟机对高存取性能的第一存储资源的使用;第三种实施方式则适用于第一虚拟机对存储资源的存取性能无明确要求的情形,该实施方式既可以为第一虚拟机分配部分的高存取性能存储资源,又可以通过为其分配部分的低存取性能存储资源来降低第一虚拟机对其他虚拟机的高存取性能存储资源的挤压。具体实施中,可结合主机中第一虚拟机以及其他各第二虚拟机对存储资源的存取性能要求,来选取合适的实施方式对第一虚拟机进行物理存储资源分配。
从而,最终为第一虚拟机所分配的物理存储资源为大小为所述第一存储空间容量值的第一存储资源和/或第二存储资源,如NVDIMM和/或NVMe存储资源等。
步骤405、将所分配的物理存储资源的地址信息提供给所述第一虚拟机的持久性存储控制器。
在为第一虚拟机分配物理存储资源后,可将所分配的物理存储资源的地址信息提供给第一虚拟机的持久性存储控制器,以此实现将所分配的物理存储资源绑定至所述持久性存储控制器。
步骤406、由所述持久性存储控制器将所述物理存储资源映射至第一虚拟机的虚拟化存储资源,以得到可用的虚拟化存储资源。
持久性存储控制器会进一步将所绑定的物理存储资源映射至第一虚拟机的虚拟化存储资源,在实现物理存储资源与第一虚拟机的虚拟化存储资源的映射之后,第一虚拟机的虚拟化存储资源即具备了可用性,在此基础上,当用户对第一虚拟机的虚拟化存储资源进行存取操作时,会基于所构建的虚拟化存储资源与底层物理存储资源间的映射关系,将该对虚拟化存储资源的存取操作映射为对底层相应物理存储资源的数据写、读操作。
需要说明的是,在构建所分配的物理存储资源与第一虚拟机的虚拟化存储资源的映射关系之前,需首先解除第一虚拟机的虚拟化存储资源与之前分配的虚假的物理存储资源之间的映射。
基于本实施例的虚拟化处理过程,可在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,才为第一虚拟机分配其所需的空间容量值的物理存储资源并对所分配的物理存储资源进行虚拟化,一定程度上避免了在第一虚拟机启动后不实际使用但占用主机存储资源的情况,且在主机上的其他虚拟机存在对存储资源的使用需求时,还可在第一虚拟机运行过程中动态将该第一虚拟机的闲置存储资源释放以调配给有需求的虚拟机进行使用,进一步降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。
另外,对于云端服务器中的虚拟机应用场景,基于本申请方案,还可实现主机存储资源的超卖,降低了运营商/服务商的成本,且由于可基于存储资源的动态调配来满足每个虚拟机的存储资源需求,从而不会带来性能上的影响,不会影响用户体验。
实施例五
对应于上述的虚拟化处理方法,本申请还提供了一种虚拟化处理装置,可应用于但不限于个人计算机或局域网/云端服务器的主机中,参考图5示出的虚拟化处理装置的结构示意图,该装置可以包括:
存储器501,用于至少存储一组指令集;
处理器502,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后;
为第一虚拟机分配物理存储资源;
对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求。
所述第一虚拟机可以是但不限于在个人计算机或局域网/云端服务器的主机中所创建的虚拟机,如Windows Server 2019的Hyper-V虚拟机等。
第一虚拟机的申请使用存储资源的请求,可以是第一虚拟机基于其实际的任务需求所触发的需使用存储资源的请求,比如,在第一虚拟机用户下载并存储数据时,第一虚拟机则相对应需执行数据的下载及存储任务,此种情况下,则可生成申请使用存储资源的请求,以支持该数据下载及存储任务的正常执行;再比如,在虚拟机基于条件触发利用单线程或多线程自动执行一数据处理并存储处理结果的任务时,同样可生成申请使用存储资源的请求。
与现有技术在虚拟机启动之前为虚拟机分配存储资源并对分配的存储资源进行虚拟化的机制不同,本申请是在第一虚拟机启动之后,并且在接受到第一虚拟机的申请使用存储资源的请求之后,才通过响应该请求为第一虚拟机分配物理存储资源的,也即,从第一虚拟机启动的时间节点直至第一虚拟机申请使用存储资源的时间节点,第一虚拟机所在的主机(个人计算机或局域网/云端服务器的主机)并不为第一虚拟机分配存储资源,相对应地,在这一时间段内第一虚拟机也不会对其所在主机的存储资源进行占用。
为第一虚拟机分配的物理存储资源可以包括但不限于NVDIMM(Non-VolatileDual In-line Memory Module,非易失性双列直插式内存模块)和/或符合NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)的存储资源,所述符合NVMe的存储资源示例性地比如可以是NVMe SSD(Solid State Disk,固态硬盘)等。
NVDIMM是一种性能很好的非易失性存储器件,集成了DRAM(Dynamic RandomAccess Memory,动态随机存取存储器)及非易失性内存芯片,在完全断电时依然能够保存完整的内存数据,其数据存取性能优于NVMe存储资源,虚拟机可以通过使用和管理NVDIMM,给用户带来较好的性能体验,鉴于该特点,本申请在为第一虚拟机分配物理存储资源时,会优先向第一虚拟机进行NVDIMM的分配。
在通过响应第一虚拟机的申请使用存储资源的请求为第一虚拟机分配物理存储资源之后,可进一步对分配给第一虚拟机的物理存储资源进行虚拟化处理,例如对分配给第一虚拟机的NVDIMM和/或NVMe存储资源进行虚拟化处理等,以使得所分配的存储资源对第一虚拟机可用,进而满足第一虚拟机使用虚拟化存储资源的需求。
由以上方案可知,与现有技术在虚拟机启动之前,按虚拟机创建时的存储资源要求通过读取虚拟机的相关需求文件向虚拟机分配相应大小的存储资源并虚拟化的虚拟化机制不同,本实施例提供的虚拟化处理装置,是在虚拟机启动后,并且在接受到虚拟机的申请使用存储资源的请求后,才为虚拟机分配物理存储资源并对分配的物理存储资源进行虚拟化的,由于是在虚拟机启动后且在接受到虚拟机的申请使用存储资源的请求后进行存储资源分配,从而对虚拟机的存储资源分配更贴近其实际需求,可一定程序上避免虚拟机启动后未实际使用但仍然占用存储资源的现象,降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。
实施例六
虚拟机的启动及运行,需以已预先在个人计算机或局域网/云端服务器的主机中完成了虚拟机的创建及相应初始化等工作为基础,鉴于此,本实施例中,所述虚拟化处理装置中的处理器502在第一虚拟机启动之前还可以执行以下的预处理过程:
在主机中创建所述第一虚拟机;
获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值;
确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值;
若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供一虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
在主机中创建第一虚拟机,示例性地,具体可以是但不限于在主机中创建支持VPMEM(Virtual Persistent Memery,虚拟持久化存储)的操作系统的二代Hyper-V虚拟机。
其中,可由用户在其个人计算机中基于实际需求创建所需的第一虚拟机,或者,还可以由局域网/云端服务器在终端基于服务需求申请虚拟机时,创建相应的用于为终端提供所需服务的第一虚拟机。
在创建第一虚拟机之前,个人计算机或者局域网/云端服务器的主机一般会首先对存储资源进行格式化,如将NVDIMM格式化成DAX(Direct Access,直接访问)模式等,以便于后续的存储资源分配与管理。
每个虚拟机都会有对存储资源的相应使用要求,且通常会在其相关存储资源需求文件中提供其所需存储资源的相关信息,如提供所需存储资源的空间容量大小等。
因此,在创建所述第一虚拟机后,可从其相关存储资源需求文件中读取第一虚拟机所需存储资源的第一存储空间容量值。
在对第一虚拟机进行存储资源分配时,本申请会优先为其分配主机中的高存取性能的存储资源,比如优先分配主机中的NVDIMM等,鉴于此,所述第一存储资源可以是主机中的NVDIMM等高存取性能的存储资源。
为了尽可能保障第一虚拟机运行过程中能够有效申请到其所需量的高存取性能存储资源,进而保障第一虚拟机的正常运行,本实施例在启动虚拟机之前预先确定主机中是否具备足够的第一存储资源(高存取性能的存储资源),若具备,则表示可支持该第一虚拟机运行过程中对高存取性能存储资源的正常使用,从而可在完成第一虚拟机的初始化处理后继续启动第一虚拟机,若不具备,则主机返回执行其他任务,直至主机中具备足够的第一存储资源后(如主机上的其他虚拟机运行结束或销毁从而释放存储资源)再继续执行后续处理并启动第一虚拟机。
现有技术由于在虚拟机启动之前为虚拟机分配存储资源且为虚拟机分配的存储资源在虚拟机的整个运行过程中不再发生变动,这就隐含在虚拟机运行过程中不会存在不同虚拟机之间的存储资源调配,从而,在启动虚拟机前对主机进行可用存储资源的判断时,会严格判断主机中是否具备不低于虚拟机所需的第一存储空间容量值的剩余(或闲置)存储资源,以对虚拟机分配NVDIMM为例,则会判断主机中是否具备不低于虚拟机所需的存储空间容量值的剩余NVDIMM,若不具备,则返回执行其他任务,待主机具备不低于虚拟机所需空间容量值的存储资源后再向虚拟机进行存储资源分配进而启动虚拟机,若具备则直接分配并启动虚拟机。
与现有技术相区别,本申请在判断主机中是否具备足够的第一存储资源时,允许第一虚拟机所申请的第一存储空间容量值相比于主机中的剩余第一存储资源存在一定的冗余度,即允许“(第一存储空间容量值主机剩余第一存储资源的容量值)/主机剩余第一存储资源的容量值”为大于0的值(该数值一般大于0且小于1),比如具体存在25%或其他数值的冗余度等。不再严格判断主机中是否具备不低于第一虚拟机所需的第一存储空间容量值的剩余(或闲置)存储资源,而是判断主机中是否具备不低于第二存储空间容量值的剩余存储资源,显然,所述第二存储空间容量值小于第一虚拟机所需的所述第一存储空间容量值。
以下举例说明,以主机中剩余128GB的NVDIMM为例,则最多可允许第一虚拟机申请160GB的NVDIMM空间(现有技术则最多允许申请128GB的NVDIMM),相对应地,若虚拟机申请使用160GB的NVDIMM,则判断主机中是否具备不低于128GB的剩余NVDIMM即可(后续在启动第一虚拟机后,可基于相应的动态调配机制为第一虚拟机实际分配其所需量的存储资源)。
所述冗余度的具体数值可由技术人员或用户基于资源调配策略预先设定。
其中,若主机中存在不低于所述第二存储空间容量值的剩余第一存储资源(如NVDIMM),则表示主机中具备支持第一虚拟机的运行所需的存储资源,从而允许第一虚拟机启动,在该情况下,可选地,可在启动第一虚拟机之前,记录第一虚拟机所需的该第一存储空间容量值至预先建立的存储资源管理列表,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时读取。
此外,还可以向所述第一虚拟机添加一持久性存储(PM,Persistent Memery)控制器,并可向所述持久性存储控制器提供一虚假的物理存储资源地址信息,以实现将一虚假的物理存储资源绑定至所述持久性存储控制器,该持久性存储控制器在绑定所述虚假的物理存储资源后,会将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
所述虚假的物理存储资源是指主机中实际并不存在的物理存储资源,虚假的物理存储资源的地址信息则相应地不在主机中对应任何的存储资源,本实施例在第一虚拟机启动之前向所述持久性存储控制器绑定虚假的物理存储资源并对其进行虚拟化,目的在于在虚拟机启动之后至真正向虚拟机分配存储资源之前,仍可在虚拟机上显示正常的存储资源界面,如显示正常的虚拟磁盘界面等,以不影响用户的使用感受,也即,虽然在第一虚拟机启动之后至第一虚拟机提出申请使用存储资源的请求时主机并未向虚拟机分配存储资源,但从用户角度来说,其拥有正常的虚拟存储资源感受(如可查看到正常的虚拟存储资源界面等)。
在完成上述处理后,可进一步启动虚拟机,并对第一虚拟机进行存储资源分配及虚拟化。
本实施例在启动虚拟机前判断主机中是否具备足够的存储资源时,允许第一虚拟机所申请的第一存储空间容量值相比于主机中的剩余第一存储资源存在一定的冗余度,可有效提升主机在虚拟化管理方面的灵活性,同时对主机存储资源的使用也更为合理,降低了主机的虚拟化存储成本。
实施例七
对于前文所述的实施例六,在确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源之后、在所述第一虚拟机启动之前,所述处理器502还可以执行以下处理:
为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
可选地,在启动所述第一虚拟机之前,当确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源时,还可以为所述第一虚拟机分配一第一存储资源起始地址并记录该第一存储资源起始地址,其中,同样可将所述第一存储资源起始地址记录在上文所述的存储资源管理列表中,主机可通过所述存储资源管理列表管理与维护主机上创建或运行的一个或多个虚拟机所需的存储空间容量值以及所分配的存储资源起始地址等信息。
所分配并记录的该第一存储资源起始地址用于指向主机中的剩余第一存储资源,从而,在第一虚拟机启动后需为第一虚拟机分配存储资源时,可直接读取并参考该第一存储资源起始地址为第一虚拟机进行物理存储资源(如NVDIMM)的分配,而不必再从存储资源的起始位置进行遍历以确定其中的闲置第一存储资源,有效降低了存储资源分配时的处理工作量,提升了为虚拟机分配存储资源时的分配效率。
实施例八
本实施例进一步提供处理器502为第一虚拟机分配物理存储资源并对分配的存储资源进行虚拟化的具体实现过程,其中,处理器502可通过执行以下处理实现该过程:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,获取第一虚拟机所需使用的存储资源的第一存储空间容量值;
判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果;
若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源;
若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能;
将所分配的物理存储资源的地址信息提供给所述第一虚拟机的持久性存储控制器;
由所述持久性存储控制器将所述物理存储资源映射至第一虚拟机的虚拟化存储资源,以得到可用的虚拟化存储资源。
所述第一存储空间容量值,即为创建第一虚拟机时,第一虚拟机所要求的存储资源的第一存储空间容量值。
在启动第一虚拟机后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,为了响应该请求实现为第一虚拟机分配其所需空间容量值的存储资源,需首先获知所述第一虚拟机所需存储资源的第一存储空间容量值,其中,具体可从所述存储资源管理列表中读取第一虚拟机所需的第一存储空间容量值。
在为第一虚拟机进行存储资源分配时,本申请会优先考虑为其分配主机中的高存取性能存储资源,如NVDIMM等第一存储资源,鉴于此,在获得第一虚拟机所需的所述第一存储空间容量值后,会进一步判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源。
若判断结果表示存在,则可直接基于主机中的剩余第一存储资源为第一虚拟机进行物理存储资源的分配,具体可从主机的剩余第一存储资源中划分出大小为所述第一存储空间容量值的第一存储资源(如NVDIMM)进而分配给第一虚拟机。
且进一步地,若在启动第一虚拟机之前的初始化阶段,已预先为第一虚拟机分配并记录了一第一存储资源起始地址,则可以以该记录的第一存储资源起始地址为参考,从主机的剩余第一存储资源中进行资源划拨(而不必再从存储资源的起始位置进行遍历以确定其中的闲置第一存储资源),并将划拨的资源分配给第一虚拟机。
其中,分配给第一虚拟机的存储资源通常为一个或多个资源块,如一个或多个NVDIMM块等。
反之,若所述判断结果表示不存在,比如,主机的所有第一存储资源均被占用(可能被主机上运行的其他一个或多个虚拟机占用)或者仅剩余有低于所述第二存储空间容量值的第一存储资源,则可选地,作为一种可能的实施方式,可从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,所调配出的第一存储资源的空间容量值(或者结合主机自身剩余的第一存储资源)以尽可能满足第一虚拟机对第一存储资源的使用需求为准,之后,若在调配之前主机中没有任何的第一存储资源闲置,则可直接基于调配出的第一存储资源对第一虚拟机进行物理存储资源分配,若在调配之前主机中有剩余相应的第一存储资源,则可结合主机自身剩余的第一存储资源以及调配出的第一存储资源对第一虚拟机进行物理存储资源分配,并具体向第一虚拟机分配所述第一存储空间容量值的第一存储资源,以满足其存储资源使用需求。
其中,在从主机中的至少一个第二虚拟机调配第一存储资源时,优先选择所分配的第一存储资源存在闲置/部分闲置(即占用了存储资源但其中的全部或部分资源并未被实际使用)的第二虚拟机进行第一存储资源的调配,对于这部分闲置的第一存储资源,可直接解除其所在的第二虚拟机对该部分资源的占用;如果各个第二虚拟机的闲置第一存储资源的总量(或者结合主机自身的剩余第一存储资源)仍不能满足第一虚拟机的使用需求,则可进一步从主机中选取出对存取性能要求不高的至少一个第二虚拟机,并向其分配存取性能低于所述第一存储资源的第三存储资源,将其在相应第一存储资源的数据/部分数据导入该新分配的第三存储资源中,进而释放该至少一个对存取性能要求不高的第二虚拟机对其至少部分第一存储资源的占用,并将释放的该部分第一存储资源调配给第一虚拟机,以满足第一虚拟机的使用需求。
所述第三存储资源的存取性能低于所述第一存储资源的存取性能,具体地,该第三存储资源可以是但不限于NVMe存储资源。
另外,可选地,作为第二种可能的实施方式,还可以至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源,比如,在主机自身未剩余任何第一存储资源的情况下,可直接基于主机的第二存储资源对第一虚拟机进行物理存储资源分配,在主机自身有剩余相应第一存储资源(但低于所述第二存储空间容量值)的情况下,可结合主机自身剩余的第一存储资源以及主机上的第二存储资源为第一虚拟机分配物理存储资源。
所述第二存储资源的存取性能同样低于所述第一存储资源的存取性能,所述第二存储资源可以与所述第三存储资源相同或不同,示例性地,所述第二存储资源同样可以是主机上的NVMe存储资源。
可选地,作为第三种可能的实施方式,还可以对上述的第一种及第二种实施方式进行结合应用,即基于从主机的至少一个第二虚拟机调配出的第一存储资源以及主机的第二存储资源(或者还可以结合主机自身剩余的第一存储资源)对第一虚拟机进行物理存储资源分配。
上述的三种实施方式,均提供了主机中的高存取性能存储资源不足的情况下的相应解决方案,其中的第一种实施方式适用于第一虚拟机对存储资源的存取性能要求较高的情形,该实施方式能够通过对主机上其他虚拟机即所述第二虚拟机的资源调配来尽可能满足第一虚拟机对高存取性能的第一存储资源的需求;第二种实施方式适用于第一虚拟机对存储资源的存取性能要求较低的情形,该实施方式不会挤压主机中的其他虚拟机对高存取性能的第一存储资源的使用;第三种实施方式则适用于第一虚拟机对存储资源的存取性能无明确要求的情形,该实施方式既可以为第一虚拟机分配部分的高存取性能存储资源,又可以通过为其分配部分的低存取性能存储资源来降低第一虚拟机对其他虚拟机的高存取性能存储资源的挤压。具体实施中,可结合主机中第一虚拟机以及其他各第二虚拟机对存储资源的存取性能要求,来选取合适的实施方式对第一虚拟机进行物理存储资源分配。
从而,最终为第一虚拟机所分配的物理存储资源为大小为所述第一存储空间容量值的第一存储资源和/或第二存储资源,如NVDIMM和/或NVMe存储资源等。
在为第一虚拟机分配物理存储资源后,可将所分配的物理存储资源的地址信息提供给第一虚拟机的持久性存储控制器,以此实现将所分配的物理存储资源绑定至所述持久性存储控制器。
持久性存储控制器会进一步将所绑定的物理存储资源映射至第一虚拟机的虚拟化存储资源,在实现物理存储资源与第一虚拟机的虚拟化存储资源的映射之后,第一虚拟机的虚拟化存储资源即具备了可用性,在此基础上,当用户对第一虚拟机的虚拟化存储资源进行存取操作时,会基于所构建的虚拟化存储资源与底层物理存储资源间的映射关系,将该对虚拟化存储资源的存取操作映射为对底层相应物理存储资源的数据写、读操作。
需要说明的是,在构建所分配的物理存储资源与第一虚拟机的虚拟化存储资源的映射关系之前,需首先解除第一虚拟机的虚拟化存储资源与之前分配的虚假的物理存储资源之间的映射。
基于本实施例的虚拟化处理过程,可在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后,才为第一虚拟机分配其所需的空间容量值的物理存储资源并对所分配的物理存储资源进行虚拟化,一定程度上避免了在第一虚拟机启动后不实际使用但占用主机存储资源的情况,且在主机上的其他虚拟机存在对存储资源的使用需求时,还可在第一虚拟机运行过程中动态将该第一虚拟机的闲置存储资源释放以调配给有需求的虚拟机进行使用,进一步降低了虚拟机对存储资源的浪费,相应降低了主机的虚拟化存储成本。
另外,对于云端服务器中的虚拟机应用场景,基于本申请方案,还可实现主机存储资源的超卖,降低了运营商/服务商的成本,且由于可基于存储资源的动态调配来满足每个虚拟机的存储资源需求,从而不会带来性能上的影响,不会影响用户体验。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种虚拟化处理方法,包括:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后;
为第一虚拟机分配物理存储资源;
对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求;
在所述第一虚拟机启动之前,还包括:
在主机中创建所述第一虚拟机;
获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值;
确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值;
若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
2.根据权利要求1所述的方法,所述为第一虚拟机分配物理存储资源,包括:
获取第一虚拟机所需使用的存储资源的第一存储空间容量值;
判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果;
若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源;
若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能。
3.根据权利要求2所述的方法,所述从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,包括:
解除所述至少一个第二虚拟机对所占用的第一存储资源中的至少部分资源的占用;
若解除的所述至少一个第二虚拟机的至少部分资源的总量或结合所述主机自身的剩余第一存储资源的总量不能满足第一虚拟机的使用需求,从主机中选取出对存取性能要求不高的至少一个第二虚拟机,并向所述对存取性能要求不高的至少一个第二虚拟机分配第三存储资源,所述第三存储资源的存取性能低于所述第一存储资源的存取性能;
将所述对存取性能要求不高的至少一个第二虚拟机在第一存储资源的数据或部分数据导入所述第三存储资源中;
解除所述对存取性能要求不高的第二虚拟机对所占用的第一存储资源中的至少部分资源的占用。
4.根据权利要求1所述的方法,所述对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,包括:
将所分配的物理存储资源的地址信息提供给所述第一虚拟机的持久性存储控制器;
由所述持久性存储控制器将所述物理存储资源映射至第一虚拟机的虚拟化存储资源,以得到可用的虚拟化存储资源。
5.根据权利要求1所述的方法,在确定出主机中存在不低于所述第二存储空间容量值的剩余第一存储资源之后、在所述第一虚拟机启动之前,还包括:
为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
6.一种虚拟化处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在第一虚拟机启动后,并且,在接受到第一虚拟机的申请使用存储资源的请求后;
为第一虚拟机分配物理存储资源;
对所分配的物理存储资源进行虚拟化处理,得到可用的虚拟化存储资源,以满足所述第一虚拟机的存储资源需求;
所述处理器在所述第一虚拟机启动之前,还用于:
在主机中创建所述第一虚拟机;
获取所述第一虚拟机所需使用的存储资源的第一存储空间容量值;
确定主机中是否存在不低于第二存储空间容量值的剩余第一存储资源,所述第二存储空间容量值小于所述第一存储空间容量值;
若存在,则:记录所述第一存储空间容量值,以供主机在第一虚拟机启动后需向第一虚拟机分配存储资源时获取;向所述第一虚拟机添加持久性存储控制器,并向所述持久性存储控制器提供虚假的物理存储资源的地址信息,以使得所述持久性存储控制器将所述虚假的物理存储资源映射至第一虚拟机的虚拟化存储资源。
7.根据权利要求6所述的装置,所述处理器为第一虚拟机分配物理存储资源,具体包括:
获取第一虚拟机所需使用的存储资源的第一存储空间容量值;
判断第一虚拟机所在的主机中是否存在不低于所述第一存储空间容量值的剩余第一存储资源,得到判断结果;
若所述判断结果表示存在,则基于所述剩余第一存储资源为第一虚拟机分配物理存储资源;
若所述判断结果表示不存在,则从所述主机的至少一个第二虚拟机所占用的第一存储资源中调配出至少部分的第一存储资源,并至少基于调配出的至少部分的第一存储资源为第一虚拟机分配物理存储资源;或者,至少基于主机上空闲的第二存储资源为第一虚拟机分配物理存储资源;所述第二存储资源的存取性能低于所述第一存储资源的存取性能。
8.根据权利要求6所述的装置,所述处理器在确定出主机中存在所述第二存储空间容量值的第一存储资源之后、在所述第一虚拟机启动之前,还用于:
为所述第一虚拟机分配一第一存储资源起始地址,并记录该第一存储资源起始地址,以使得在第一虚拟机启动后需向第一虚拟机分配存储资源时为主机的资源分配操作提供参考。
CN201910232899.2A 2019-03-26 2019-03-26 一种虚拟化处理方法及装置 Active CN109960569B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910232899.2A CN109960569B (zh) 2019-03-26 2019-03-26 一种虚拟化处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910232899.2A CN109960569B (zh) 2019-03-26 2019-03-26 一种虚拟化处理方法及装置

Publications (2)

Publication Number Publication Date
CN109960569A CN109960569A (zh) 2019-07-02
CN109960569B true CN109960569B (zh) 2021-04-13

Family

ID=67024883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910232899.2A Active CN109960569B (zh) 2019-03-26 2019-03-26 一种虚拟化处理方法及装置

Country Status (1)

Country Link
CN (1) CN109960569B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703914B (zh) * 2021-08-06 2024-02-23 长江存储科技有限责任公司 测试方法和测试系统
CN113703913B (zh) * 2021-08-06 2024-04-23 长江存储科技有限责任公司 设备测试方法及装置
CN114221994B (zh) * 2021-12-15 2022-09-13 北京安盟信息技术股份有限公司 一种pcie密码卡虚拟化资源动态分配方法
CN117850658A (zh) * 2022-09-30 2024-04-09 华为云计算技术有限公司 虚拟实例的存储资源管理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120317A (zh) * 2005-02-17 2008-02-06 英特尔公司 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN103503376A (zh) * 2011-12-29 2014-01-08 华为技术有限公司 云计算系统和管理云计算系统中存储资源的方法
CN106201652A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种数据处理方法及虚拟机
CN106293945A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种跨虚拟机的资源感知方法及系统
CN107885574A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种虚拟机的部署方法、业务节点、控制装置及控制节点

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622189B (zh) * 2011-12-31 2015-11-25 华为数字技术(成都)有限公司 存储虚拟化的装置、数据存储方法及系统
US9720717B2 (en) * 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
US9841931B2 (en) * 2014-03-31 2017-12-12 Vmware, Inc. Systems and methods of disk storage allocation for virtual machines
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120317A (zh) * 2005-02-17 2008-02-06 英特尔公司 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统
CN102467408A (zh) * 2010-11-12 2012-05-23 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN103503376A (zh) * 2011-12-29 2014-01-08 华为技术有限公司 云计算系统和管理云计算系统中存储资源的方法
CN106201652A (zh) * 2016-06-29 2016-12-07 联想(北京)有限公司 一种数据处理方法及虚拟机
CN106293945A (zh) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 一种跨虚拟机的资源感知方法及系统
CN107885574A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种虚拟机的部署方法、业务节点、控制装置及控制节点

Also Published As

Publication number Publication date
CN109960569A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN109960569B (zh) 一种虚拟化处理方法及装置
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US8850156B2 (en) Method and system for managing virtual machine storage space and physical host
WO2018223075A1 (en) Method and apparatus for implementing virtual gpu and system
US9547510B2 (en) Tracking guest memory characteristics for memory scheduling
US8056084B2 (en) Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
CN110750336B (zh) 一种OpenStack虚拟机内存热扩容方法
WO2016122670A1 (en) Backup image restore
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
CN111694658A (zh) Cpu资源分配方法、装置、电子设备和存储介质
CN110990114A (zh) 一种虚拟机资源分配方法、装置、设备及可读存储介质
CN113032101A (zh) 虚拟机的资源分配方法、服务器及计算机可读存储介质
CN111522659B (zh) 一种空间使用方法和装置
CN115280285A (zh) 由独立操作的多个调度器在公共资源集上调度工作负载
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US20150127916A1 (en) Dynamic memory allocation
CN110471744B (zh) 密码修改方法、装置、设备和计算机可读存储介质
CN107766122B (zh) 一种宿主机的可用内存空间设置方法和装置
CN115794362A (zh) 资源分配方法、云主机、计算机可读存储介质
CN114035901A (zh) 用于运行进程的容器的构建方法、装置和电子设备
US11016685B2 (en) Method and defragmentation module for defragmenting resources
CN112583653A (zh) 压力测试方法、装置及计算机存储介质
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
CN114356231B (zh) 数据处理方法、设备及计算机存储介质
CN113918283A (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