掌桥专利:专业的专利平台
掌桥专利
首页

交换分区管理方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 11:11:32


交换分区管理方法、装置、电子设备和存储介质

技术领域

本申请涉及数据存储领域,尤其涉及一种交换分区管理方法、装置、电子设备和存储介质。

背景技术

虚拟机(Virtual Machine,VM)在主机上运行时,为了能够有效使用虚拟机的内存,可将物理内存中的部分虚拟机数据交换到交换(SWAP)分区中,或者从交换分区中恢复数据到物理内存中,从而,更大限度的利用内存资源,实现交换分区功能。

在相关技术中,在实现交换分区功能时,主要采用全局SWAP分区机制,将SWAP分区作为一个整体,同一个SWAP分区对应多个不同的虚拟机。在同一个SWAP分区中不同虚拟机可以访问所有正在运行的虚拟机的SWAP文件,因此,存在一定的数据安全风险。同时,SWAP分区的大小难以进行灵活配置。因此,如何提高交换分区管理的安全性和灵活性成为亟待解决的重要问题。

发明内容

本申请实施例提供了一种交换分区管理方法、装置、电子设备和存储介质,可以提高交换分区管理的安全性和灵活性。

本申请实施例提供了一种交换分区管理方法,包括:

建立虚拟机和交换分区的映射关系;

根据所述交换分区的存储路径的信息、以及所述虚拟机和交换分区的映射关系,创建所述虚拟机对应的交换分区;

根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行管理。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行管理,包括以下至少一种情况:

根据所述虚拟机和交换分区的映射关系,对所述虚拟机中的虚拟机数据进行数据处理;

根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行权限控制;

根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置。

在一种实现方式中,所述虚拟机数据包括所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表,所述待回收的页的内存访问频率小于预设频率;所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机中的虚拟机数据进行数据处理,包括:

确定所述虚拟机对应的物理内存处于内存超配状态;

根据所述虚拟机和交换分区的映射关系,将所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,将所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区,包括:

获取所述虚拟机的页表和所述虚拟机的映射关系;

根据所述虚拟机的页表和所述虚拟机的映射关系、所述虚拟机和交换分区的映射关系,将所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区。

在一种实现方式中,所述获取所述虚拟机的页表和所述虚拟机的映射关系,包括:

获取所述虚拟机的页表的标记信息;

根据所述虚拟机的页表的标记信息与所述虚拟机的映射关系,建立所述虚拟机的页表和所述虚拟机的映射关系。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行权限控制,包括:

根据所述虚拟机和交换分区的映射关系,确定所述虚拟机对应的交换分区的访问权限。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机中的虚拟机数据进行数据处理,包括:

根据所述虚拟机和交换分区的映射关系,在所述虚拟机对应的交换分区中建立所述虚拟机数据的内存快照。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置,包括:

根据所述虚拟机和交换分区的映射关系,确定挂载所述虚拟机对应的交换分区所需的磁盘性能信息;

根据所述磁盘性能信息配置所述虚拟机对应的交换分区。

在一种实现方式中,所述根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置,包括:

根据所述虚拟机和交换分区的映射关系,挂载所述虚拟机对应的交换分区;

启动所述虚拟机;

确定所述虚拟机处于关闭状态时,根据所述虚拟机和交换分区的映射关系,删除所述虚拟机对应的交换分区,或者,保留所述虚拟机对应的交换分区。

在一种实现方式中,在所述虚拟机进行迁移时,所述虚拟机对应的交换分区包括:源主机的交换分区和/或目的主机的交换分区;

其中,所述源主机的交换分区和所述目的主机的交换分区位于共享存储时,所述源主机的交换分区和所述目的主机的交换分区对应相同的交换分区文件;

所述源主机的交换分区和所述目的主机的交换分区位于非共享存储时,所述方法还包括:将所述源主机的交换分区中的虚拟机数据发送至所述目的主机的交换分区。

在一种实现方式中,所述交换分区的存储路径的信息包括以下信息中的至少一项:

所述交换分区的源文件的存储路径信息、所述交换分区的目标文件的存储路径信息。

本申请实施例提供了一种交换分区管理装置,包括:

建立模块,用于建立虚拟机和交换分区的映射关系;

处理模块,用于根据所述交换分区的存储路径的信息、以及所述虚拟机和交换分区的映射关系,创建所述虚拟机对应的交换分区;

管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行管理。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行管理,包括以下至少一种情况:

根据所述虚拟机和交换分区的映射关系,对所述虚拟机中的虚拟机数据进行数据处理;

根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行权限控制;

根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置。

在一种实现方式中,所述虚拟机数据包括所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表,所述待回收的页的内存访问频率小于预设频率;所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机中的虚拟机数据进行数据处理,包括:

确定所述虚拟机对应的物理内存处于内存超配状态;

根据所述虚拟机和交换分区的映射关系,将所述虚拟机数据包括所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,将所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区,包括:

获取所述虚拟机的页表和所述虚拟机的映射关系;

根据所述虚拟机的页表和所述虚拟机的映射关系、所述虚拟机和交换分区的映射关系,将所述虚拟机对应的物理内存中待回收的页和/或所述虚拟机的页表从所述物理内存写入所述虚拟机对应的交换分区。

在一种实现方式中,所述管理模块,用于获取所述虚拟机的页表和所述虚拟机的映射关系,包括:

获取所述虚拟机的页表的标记信息;

根据所述虚拟机的页表的标记信息与所述虚拟机的映射关系,建立所述虚拟机的页表和所述虚拟机的映射关系。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行权限控制,包括:

根据所述虚拟机和交换分区的映射关系,确定所述虚拟机对应的交换分区的访问权限。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置,包括:

根据所述虚拟机和交换分区的映射关系,在所述虚拟机对应的交换分区中建立所述虚拟机数据的内存快照。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置,包括:

根据所述虚拟机和交换分区的映射关系,确定挂载所述虚拟机对应的交换分区所需的磁盘性能信息;

根据所述磁盘性能信息配置所述虚拟机对应的交换分区。

在一种实现方式中,所述管理模块,用于根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行配置,包括:

根据所述虚拟机和交换分区的映射关系,挂载所述虚拟机对应的交换分区;

启动所述虚拟机;

确定所述虚拟机处于关闭状态时,根据所述虚拟机和交换分区的映射关系,删除所述虚拟机对应的交换分区;或者,保留所述虚拟机对应的交换分区。

在一种实现方式中,在所述虚拟机进行迁移时,所述虚拟机对应的交换分区包括:源主机的交换分区和/或目的主机的交换分区;

其中,所述源主机的交换分区和所述目的主机的交换分区位于共享存储时;所述源主机的交换分区和所述目的主机的交换分区对应相同的交换分区文件;

所述源主机的交换分区和所述目的主机的交换分区位于非共享存储时,所述方法还包括:将所述源主机的交换分区中的虚拟机数据发送至所述目的主机的交换分区。

在一种实现方式中,所述交换分区的存储路径的信息包括以下信息中的至少一项:

所述交换分区的源文件的存储路径信息、所述交换分区的目标文件的存储路径信息。

本申请实施例提供一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的交换分区管理方法。

本申请实施例提供一种存储介质,所述存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的交换分区管理方法。

基于本申请实施例提供的交换分区管理方法,建立虚拟机和交换分区的映射关系;根据所述交换分区的存储路径的信息和所述虚拟机和交换分区的映射关系,创建所述虚拟机对应的交换分区;根据所述虚拟机和交换分区的映射关系,对所述虚拟机对应的交换分区进行管理。在建立虚拟机和交换分区的映射关系的基础上,不同虚拟机对应的交换分区可以独立进行资源配置和权限控制,从而,提高交换分区管理的安全性和灵活性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。

附图说明

图1为相关技术中的一种交换分区管理方法的系统架构图;

图2为本申请实施例提供的一种交换分区管理方法的流程示意图;

图3为本申请实施例提供的另一种交换分区管理方法的流程示意图;

图4为本申请实施例提供的又一种交换分区管理方法的流程示意图;

图5为本申请实施例提供的一种交换分区管理方法的系统架构图;

图6为本申请实施例提供的又一种交换分区管理方法的流程示意图;

图7为本申请实施例提供的又一种交换分区管理方法的流程示意图;

图8为本申请实施例提供的一种交换分区管理装置的结构示意图;

图9为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。

虚拟机在主机上运行时,为了能够有效使用虚拟机的内存,可将物理内存中的部分虚拟机数据交换到交换分区中,或者从交换分区中恢复数据到物理内存中,从而,更大限度的利用内存资源,实现交换分区功能。

图1示出了相关技术中的一种交换分区管理方法的系统架构图。参见图1,虚拟机管理器(Virtual Machine Manager,WMM)运行于物理主机上,基于物理主机的硬件系统和主机内核虚拟化出多个虚拟机,采用标识符区分虚拟化出的不同虚拟机,多个虚拟机的标识符分别为:VM1、VM2、…VMi…、VMn,其中,n为运行于主机上的虚拟机的个数,VM1为第1个虚拟机,VMi为第i个虚拟机,VMn为第n个虚拟机。

参见图1,在全局SWAP分区机制中,将SWAP分区作为一个整体,同一个SWAP分区对应多个不同的虚拟机。在SWAP分区中,虚拟机数据包括VM1 SWAP part1、VM1 SWAP part2、VM2 SWAP part1、VM2 SWAP part2,其中,VM1 SWAP part1、VM1 SWAP part2为VM1的虚拟机数据。在将VM1迁移时,需要将虚拟机数据VM1 SWAP part1、VM1 SWAP part2从SWAP分区移动到VM1所在源主机的物理内存中,进而,将虚拟机数据从VM1所在源主机的物理内存发送至目的主机的物理内存。

在全局SWAP分区机制中,SWAP分区的大小需要由用户预分配,且SWAP分区需要足够大以支持主机上运行的所有VM,然而,SWAP分区较大时容易浪费存储空间。因此,交换分区配置的灵活性较差。SWAP分区的访问权限属于全局性的,在同一个SWAP分区中不同虚拟机可以访问所有正在运行的虚拟机的SWAP文件;因此,交换分区管理存在数据安全风险。

图2示出了本申请实施例提供的一种交换分区管理方法的流程示意图,参见图2,本申请提供的交换分区管理方法,可以包括以下步骤:

步骤A201:建立虚拟机和交换分区的映射关系。

这里,交换分区可以对应磁盘上的分区,例如,Linux系统中的虚拟内存分区。交换分区可以对应磁盘上的交换分区文件,例如,扩展名为“.swp”的文件。

应理解,扩展名为“.swp”的文件,即存储于交换分区的SWAP文件。SWAP分区可以对应一个或多个SWAP文件。

示例性地,虚拟机和交换分区的映射关系可以采用数据表的形式进行存储,从而,关联虚拟机的标识符VMi和交换分区的标识信息WMi swapfile的映射关系。

示例性地,在数据表中,字段VMi可以用来标识运行于主机的第i个虚拟机,字段WMi swapfile可以用来标识第i个虚拟机对应的交换分区。

示例性地,每一个虚拟机对应一个SWAP分区,SWAP分区的交换分区的标识信息为WMi swapfile。

示例性地,基于虚拟机的标识符VMi和交换分区的标识信息WMi swapfile建立虚拟机和交换分区的映射关系。

步骤A202:根据交换分区的存储路径的信息、以及虚拟机和交换分区的映射关系,创建虚拟机对应的交换分区。

这里,交换分区的存储路径信息可以包括交换分区的源文件的路径信息和交换分区的目标文件的路径信息。

示例性地,虚拟机所在主机开启后,根据用户配置信息获取SWAP分区的存储路径的信息。即,由用户自定义SWAP分区的存储路径的信息。

示例性地,基于对用户输入的Linux命令行的解析结果,获取用户配置信息,从而,获取交换分区的存储路径的信息。

示例性地,用户输入的Linux命令行为“dd if=/dev/zero of=/home/VM1swapfile bs=1M count=10240”,其中,“if=/dev/zero”为SWAP分区的源文件的路径信息,“of=/home/VM1 swapfile”为虚拟机VM1对应的SWAP分区的目标文件的路径信息,“bs=1M count=1024”即虚拟机VM1对应的SWAP分区的大小为1G。

示例性地,根据虚拟机的标识符VMi和交换分区的标识信息WMi swapfile的映射关系,在SWAP分区的存储路径下,创建虚拟机VMi对应的SWAP分区。

示例性地,在Linux系统使用mkswap命令“mkswap/home/VM1swapfile”创建SWAP分区对应的SWAP文件,从而,建立SWAP分区的文件系统。

示例性地,在Linux系统使用swapon命令“swapon/home/VM1swapfile”,启用虚拟机VM1对应的SWAP文件VM1 swapfile,从而,挂载虚拟机VM1对应的SWAP分区;或者,使用swapoff命令“swapoff/home/VM1 swapfile”,将虚拟机VM1对应的SWAP分区删除。

示例性地,在虚拟机启动前,根据虚拟机标识符VMi和SWAP分区的标识信息WMiswapfile的映射关系,创建虚拟机VMi对应的SWAP分区。

示例性地,在主机内核或者物理内存中,保存虚拟机的标识符VMi和SWAP分区的标识信息WMi swapfile的映射关系、SWAP分区的标识信息WMi swapfile和SWAP分区的映射关系。

示例性地,SWAP分区的大小为虚拟机对应的物理内存的大小,在Linux系统使用swapon命令“swapon-s”可以查看SWAP分区的大小。

示例性地,基于创建虚拟机对应的交换分区,确定虚拟机对应的物理内存处于内存超配状态时,可以将物理内存中的虚拟机数据保存到交换分区中。

步骤A203:根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理。

示例性地,在对虚拟机对应的交换分区进行管理时,可以基于虚拟机的标识符VMi和交换分区的标识信息WMi swapfile的映射关系,对不同的交换分区采用不同的配置信息,或者,对不同的交换分区设置不同的访问权限。

示例性地,在虚拟机对应的物理内存处于超配状态时,基于虚拟机的标识符VMi和交换分区的标识信息WMi swapfile的映射关系,对虚拟机VMi中的虚拟机数据进行数据处理。

基于本申请提供的交换分区管理方法,建立虚拟机和交换分区的映射关系;根据交换分区的存储路径的信息和虚拟机和交换分区的映射关系,创建虚拟机对应的交换分区;根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理。在建立虚拟机和交换分区的映射关系的基础上,不同虚拟机对应的交换分区可以独立进行资源配置和权限控制,从而,提高交换分区管理的安全性和灵活性。

在实际应用中,上述步骤A201至步骤A203可以采用处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal ProcessingDevice,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。

在一种实现方式中,在上述步骤A203中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理,可以包括:根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理。

这里,按照存储路径区分,虚拟机数据可以包括虚拟机的物理内存保存的虚拟机数据,或者,从虚拟机对应的物理内存交换到交换分区的虚拟机数据。

在一种实现方式中,在上述步骤A203中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理,可以包括:根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行权限控制。

示例性地,根据虚拟机和交换分区的映射关系,对不同SWAP分区采用不同的密钥进行加密,防止虚拟机所在主机、虚拟机管理器对SWAP分区中的虚拟机数据的访问或篡改,相应地,提升了SWAP分区管理的安全性。

相应地,在读写虚拟机对应的SWAP分区的虚拟机数据时,读取虚拟机的标识符,采用与虚拟机的标识符绑定的密钥,对虚拟机对应的SWAP分区进行解密。

在一种实现方式中,在上述步骤A203中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理,可以包括:根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置。

示例性地,可以根据虚拟机和交换分区的映射关系,确定虚拟机对应的SWAP分区的配置信息。

这里,SWAP分区的配置信息可以包括以下至少一项:SWAP分区的存储路径的信息、SWAP分区的存储空间大小信息、挂载SWP分区所需的磁盘性能信息。

其中,SWAP分区的存储路径的信息可以包括SWAP分区的源文件的存储路径信息、SWAP分区的目标文件的存储路径信息。

示例性地,在命令行“dd if=/dev/zero of=/home/VM1 swapfile bs=1Mcount=10240”中,“if=/dev/zero”对应SWAP分区的源文件的路径信息,“of=/home/VM1swapfile”对应虚拟机VM1对应的SWAP分区的目标文件的路径信息,“bs=1M count=1024”对应SWAP分区的存储空间大小信息。

在一种实现方式中,虚拟机数据包括虚拟机对应的物理内存中待回收的页和/或虚拟机的页表,其中,待回收的页的内存访问频率小于预设频率;在上述交换分区管理方法中,根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理,参见图3,可以包括以下步骤:

步骤A301:确定虚拟机对应的物理内存处于内存超配状态。

这里,内存超配状态下,主机上运行的若干个虚拟机的配置内存总和大于主机的物理内存。

示例性地,基于监测虚拟机的页表的工作状态,在内存超配时物理内存的空闲内存不足,物理内存中的部分内存空间不能直接访问,触发虚拟机的页表的工作状态异常,由此,可以确定虚拟机对应的物理内存处于内存超配状态。

示例性地,虚拟机的页表包括多个页表项,每个页表项可以包含一内存页面的虚拟内存地址和物理内存地址的映射关系。

应理解,在访问某一虚拟内存地址时,可以从虚拟机的页表中查找到包含该虚拟内存地址的页表项,访问该页表项中的物理内存地址,从而,获取该物理内存地址所指示的内存页面中的虚拟机数据。

示例性地,对于物理内存中的每一个的内存页,根据内存页的内存访问频率和预设频率的比较结果,可以将内存访问频率小于预设频率的内存页确定为待回收的页。

示例性地,在访问虚拟机的物理内存时,确定虚拟机对应的物理内存处于内存超配状态,对虚拟机的物理内存中待回收的页和/或虚拟机的页表进行回收。

示例性地,在确定虚拟机对应的物理内存处于内存超配状态时,由虚拟机管理器对虚拟机的物理内存中待回收的页和/或虚拟机的页表进行回收,进而,根据虚拟机的内存需求重新进行内存分配。

应理解,在对虚拟机的物理内存中待回收的页和/或虚拟机的页表回收完成时,虚拟机对应的物理内存中待回收的页和/或虚拟机的页表相应的存储空间得到释放,使得虚拟机对应的物理内存存在空闲内存,进而,可以将待写入的虚拟机数据写入虚拟机对应的物理内存。

步骤A302:根据虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区。

示例性地,确定虚拟机对应的物理内存处于内存超配状态时,可以对虚拟机进行迁移。在对虚拟机迁移时,可以根据虚拟机和交换分区的映射关系,将虚拟机的物理内存中待回收的页和/或虚拟机的页表从源主机的物理内存交换到虚拟机对应的SWAP分区。

进一步地,将虚拟机的物理内存中待回收的页和/或虚拟机的页表从虚拟机对应的SWAP分区交换到目的主机的物理内存,由此,将虚拟机从源主机迁移到目的主机。

示例性地,根据SWAP分区和虚拟机的映射关系和虚拟机的页表和虚拟机的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表写入虚拟机对应的SWAP分区。

应理解,结合SWAP分区和虚拟机的映射关系,可以将虚拟机的页表写入虚拟机对应的SWAP分区中,由于不同虚拟机对应的SWAP空间可以独立进行资源配置和权限控制,因此,可以实现不同虚拟机对应的SWAP分区间的相互隔离。

在一种实现方式中,在上述步骤A302中,根据虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区,参见图4,可以包括以下步骤:

步骤A401:获取虚拟机的页表和虚拟机的映射关系。

示例性地,在访问虚拟机的页表时,采用虚拟机对应的交换分区的标识信息WMiswapfile对虚拟机的页表进行标记,其中,交换分区的标识信息WMi swapfile与每个虚拟机一一对应,因此,可以通过交换分区的标识信息WMi swapfile建立虚拟机的页表和虚拟机的映射关系。

步骤A402:根据虚拟机的页表和虚拟机的映射关系、虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区。

在一种实现方式中,在上述步骤A401中,获取虚拟机的页表和虚拟机的映射关系,可以包括以下步骤:

步骤A1:获取虚拟机的页表的标记信息。

这里,虚拟机的页表的标记信息可以是虚拟机对应的SWAP分区的标识信息。

示例性地,在访问虚拟机的页表时,采用SWAP分区的标识信息WMi swapfile对虚拟机的页表进行标记。

步骤A2:根据虚拟机的页表的标记信息与虚拟机的映射关系,建立虚拟机的页表和虚拟机的映射关系。

示例性地,采用SWAP分区的标识信息作为虚拟机的页表的标识信息,由于SWAP分区的标识信息关联了SWAP分区和虚拟机的映射关系,由此,建立虚拟机的页表和虚拟机的映射关系。

在一种实现方式中,在上述交换分区管理方法中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行权限控制,包括:

根据虚拟机和交换分区的映射关系,确定虚拟机对应的交换分区的访问权限。

应理解,在建立虚拟机和交换分区的映射关系的基础上,每一个虚拟机独占一个SWAP分区,SWAP分区无法被独占SWAP分区外的虚拟机访问,从而,实现不同虚拟机对应的SWAP分区间的相互隔离,不同虚拟机对应的SWAP分区可以独立进行资源配置、权限控制,相应地,提高了SWAP分区配置和权限控制的灵活性。

在一种实现方式中,在上述交换分区管理方法中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置,包括:

根据虚拟机和交换分区的映射关系,确定挂载虚拟机对应的交换分区所需的磁盘性能信息;根据磁盘性能信息配置虚拟机对应的交换分区。

示例性地,根据虚拟机和交换分区的映射关系和虚拟机的优先级,确定挂载虚拟机对应的交换分区所需的磁盘性能信息;根据磁盘性能信息配置虚拟机对应的交换分区。

这里,虚拟机的优先级可以由用户对虚拟机的使用需求进行设置。

示例性地,虚拟机的优先级为高优先级,确定挂载虚拟机对应的交换分区所需的磁盘性能信息为:高可用、高性能磁盘阵列。从而,将虚拟机的SWAP分区挂载在高可用、高性能磁盘阵列上。

示例性地,虚拟机的优先级为低优先级,确定挂载虚拟机对应的交换分区所需的磁盘性能信息为:低可用、低性能的磁盘阵列。从而,将虚拟机的SWAP分区挂载在低可用、低性能的磁盘阵列上。

示例性地,可以将VM对应SWAP置于固态硬盘(Solid State Disk,SSD)上,从而,提高VM的虚拟机性能和可靠性。

进一步地,根据上述磁盘性能信息配置虚拟机对应的交换分区。

在一种实现方式中,在上述交换分区管理方法中,根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理,包括:根据虚拟机和交换分区的映射关系,在虚拟机对应的交换分区中建立虚拟机数据的内存快照。

应理解,通过内存快照可以捕获某一时间点虚拟机的内存状况,保留虚拟机的实时状况信息。

示例性地,当虚拟机发生异常时,获取虚拟机的内存快照,根据虚拟机的内存快照将VM虚机恢复到虚拟机发生异常时的运行状态。

示例性地,在虚拟机对应的SWAP分区中建立虚拟机数据的内存快照时,可以将虚拟机数据序列化后写入快照文件。

在相关技术中,全局SWAP分区机制下,主机需要遍历SWAP分区中的所有虚拟机数据,以查询得到虚拟机对应虚拟机数据,进而,将虚拟机对应虚拟机数据写入快照文件。因此,虚拟机的内存快照的性能较差。

在本申请实施例中,在建立虚拟机与SWAP分区的映射关系的基础上,不同虚拟机对应的SWAP分区相互隔离,因此,可以直接在虚拟机对应的SWAP分区中建立虚拟机数据的内存快照,将虚拟机数据写入到快照文件中,无需在SWAP分区中查询虚拟机对应的虚拟机数据,从而,提升虚拟机的内存快照的性能。

在一种实现方式中,在上述交换分区管理方法中,根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置,可以包括以下步骤:

步骤B1:根据虚拟机和交换分区的映射关系,挂载虚拟机对应的交换分区。

示例性地,在虚拟机启动前创建SWAP分区,SWAP分区的大小等于虚拟机对应的物理内存的大小,在虚拟机关闭时删除虚拟机对应的SWAP分区。

步骤B2:启动虚拟机。

应理解,在虚拟机启动前创建虚拟机对应的SWAP分区,无需在操作系统启动时预分配SWAP空间。

步骤B3:确定所述虚拟机处于关闭状态时,根据虚拟机和交换分区的映射关系,删除虚拟机对应的交换分区,或者,保留虚拟机对应的交换分区。

应理解,在保留虚拟机对应的交换分区时,虚拟机的启动时间相对减少,提高了虚拟机的启动速度。

在一种实现方式中,在虚拟机进行迁移时,虚拟机对应的交换分区包括:源主机的交换分区和/或目的主机的交换分区。

其中,源主机的交换分区和目的主机的交换分区位于共享存储时,源主机的交换分区和目的主机的交换分区对应相同的交换分区文件。

所述源主机的交换分区和所述目的主机的交换分区位于非共享存储时,所述方法还包括:将所述源主机的交换分区中的虚拟机数据发送至所述目的主机的交换分区。

这里,共享存储使用相同的文件系统共享存储磁盘。读写节点和只读节点间通过共享存储来共享数据文件。

示例性地,共享存储可以采用网络存储技术(Network Storage Technologies,NAS)实现NAS共享存储,NAS共享存储将分布、独立的数据整合为大型、集中化管理的数据中心。

其中,NAS共享存储基于标准网络协议实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份。

示例性地,当源主机的SWAP分区、目的主机的SWAP分区位于共享存储时,源主机的SWAP分区和目的主机的SWAP分区对应同一文件。这样,在虚拟机从源主机迁移至目的主机后,目的主机无需创建新的SWAP分区。

应理解,当源主机的SWAP分区、目的主机的SWAP分区位于共享存储时,源主机无需将虚拟机数据从SWAP分区交换到源主机的物理内存中,或者,从SWAP分区发送到目的主机的交换分区。因此,提高了虚拟机的热迁移性能。

示例性地,当源主机的SWAP分区、目的主机的SWAP分区位于非共享存储时,上述交换分区管理方法还包括:将虚拟机数据从源主机的SWAP分区发送到目的主机的SWAP分区。

在相关技术中,在对虚拟机迁移时,需要将虚拟机数据从源主机的交换分区交换到源主机的物理内存中,进而,将虚拟机数据从源主机的物理内存发送至目的主机的物理内存。这样,占用较多的处理器资源和网络带宽,因此,虚拟机的热迁移性能较差。

在本申请实施例中,在对虚拟机迁移时,源主机可以将虚拟机数据从源主机的交换分区发送到目的主机的交换分区,无需将虚拟机数据从源主机的交换分区交换到源主机的物理内存中。这样,占用较少的处理器资源和网络带宽,同时,降低源主机上物理内存的负载,从而,提升虚拟机的热迁移性能。

基于前述实施例相同的技术构思,参见图5,在本申请实施例提供的交换分区管理方法的系统架构图中,基于本申请提供的交换分区管理方法,建立虚拟机VM1、VM2、……、VMn和交换分区VM1 swapfile、VM2 swapfile、……、VMn swapfile的映射关系;进而,根据交换分区的存储路径的信息、以及虚拟机和交换分区的映射关系,创建虚拟机VM1、VM2、……、VMn对应的交换分区。根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区VM1swapfile、VM2 swapfile、……、VMn swapfile进行管理。

应理解,在建立虚拟机和交换分区的映射关系的基础上,不同虚拟机对应的交换分区可以独立进行资源配置和权限控制,从而,提高交换分区管理的安全性和灵活性。

基于前述实施例相同的技术构思,参见图6,本申请实施例提供的交换分区管理方法,可以包括以下步骤:

步骤A601:启动虚拟机所在主机。

这里,关于步骤A601的实现过程参考上述步骤A201,此处不作赘述。

步骤A602:获取虚拟机对应的SWAP分区的存储路径信息。

这里,关于步骤A602的实现过程参考上述步骤A201,此处不作赘述。

步骤A603:创建虚拟机对应的SWAP文件。

这里,关于步骤A603的实现过程参考上述步骤A201,此处不作赘述。

步骤A604:挂载虚拟机对应的SWAP分区。

这里,关于步骤A604的实现过程参考上述步骤A201,此处不作赘述。

步骤A605:保存虚拟机的标识符和SWAP分区的标识信息的映射关系、SWAP分区的标识信息和SWAP分区的映射关系。

这里,关于步骤A605的实现过程参考上述步骤A201,此处不作赘述。

步骤A606:启动虚拟机。

示例性地,在虚拟机对应的SWAP分区创建完成后启动虚拟机。

在本申请实施例中,对虚拟化环境中的SWAP分区进行管理时,在建立虚拟机与SWAP分区的映射关系的基础上,可以对不同虚拟机对应的SWAP分区进行独立配置、权限控制,从而,提高了SWAP分区管理的灵活性和安全性。相应地,提升虚拟机的热迁移性能、虚拟机的内存快照性能,改善SWAP分区的数据安全性。

基于前述实施例相同的技术构思,参见图7,本申请实施例提供的交换分区管理方法,可以包括以下步骤:

步骤A701:访问虚拟机对应的物理内存。

这里,关于步骤A701的实现过程参考上述步骤A301,此处不作赘述。

步骤A702:检测虚拟机的页表的工作状态。

这里,关于步骤A702的实现过程参考上述步骤A301,此处不作赘述。

步骤A703:确定虚拟机对应的物理内存处于内存超配状态。

这里,关于步骤A703的实现过程参考上述步骤A302,此处不作赘述。

步骤A704:根据内存页表的信息获取虚拟机对应的SWAP分区的标识信息。

这里,关于步骤A704的实现过程参考上述步骤A401,此处不作赘述。

步骤A705:根据SWAP分区的标识信息确定虚拟机对应的SWAP分区。

这里,关于步骤A705的实现过程参考上述步骤A402,此处不作赘述。

步骤A706:将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表写入虚拟机对应的SWAP分区。

这里,关于步骤A706的实现过程参考上述步骤A402,此处不作赘述。

步骤A707:将待写入的虚拟机数据写入虚拟机对应的物理内存。

基于前述实施例相同的技术构思,参见图8,本申请实施例提供的一种交换分区管理装置,包括:

建立模块801,用于建立虚拟机和交换分区的映射关系;

处理模块802,用于根据交换分区的存储路径的信息、以及虚拟机和交换分区的映射关系,创建虚拟机对应的交换分区;

管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理。

基于本申请提供的交换分区管理装置,建立虚拟机和交换分区的映射关系;根据交换分区的存储路径的信息和虚拟机和交换分区的映射关系,创建虚拟机对应的交换分区;根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理。在建立虚拟机和交换分区的映射关系的基础上,不同虚拟机对应的交换分区可以独立进行资源配置和权限控制,从而,提高交换分区管理的安全性和灵活性。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行管理,包括以下至少一种情况:

根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理;

根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行权限控制;

根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置。

在一种实现方式中,虚拟机中的虚拟机数据包括虚拟机对应的物理内存中待回收的页和/或虚拟机的页表,待回收的页的内存访问频率小于预设频率;管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理,包括:

确定虚拟机对应的物理内存处于内存超配状态;

根据虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区,包括:

获取虚拟机的页表和虚拟机的映射关系;

根据虚拟机的页表和虚拟机的映射关系、虚拟机和交换分区的映射关系,将虚拟机对应的物理内存中待回收的页和/或虚拟机的页表从物理内存写入虚拟机对应的交换分区。

在一种实现方式中,管理模块803,用于获取虚拟机的页表和虚拟机的映射关系,包括:

获取虚拟机的页表的标记信息;

根据虚拟机的页表的标记信息与虚拟机的映射关系,建立虚拟机的页表和虚拟机的映射关系。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行权限控制,包括:

根据虚拟机和交换分区的映射关系,确定虚拟机对应的交换分区的访问权限。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机中的虚拟机数据进行数据处理,包括:

根据虚拟机和交换分区的映射关系,在虚拟机对应的交换分区中建立虚拟机中的虚拟机数据的内存快照。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置,包括:

根据虚拟机和交换分区的映射关系,确定挂载虚拟机对应的交换分区所需的磁盘性能信息;

根据磁盘性能信息配置虚拟机对应的交换分区。

在一种实现方式中,管理模块803,用于根据虚拟机和交换分区的映射关系,对虚拟机对应的交换分区进行配置,包括:

根据虚拟机和交换分区的映射关系,挂载虚拟机对应的交换分区;

启动虚拟机;

确定虚拟机处于关闭状态时,根据虚拟机和交换分区的映射关系,删除虚拟机对应的交换分区,或者,保留虚拟机对应的交换分区。

在一种实现方式中,在虚拟机进行迁移时,虚拟机对应的交换分区包括:源主机的交换分区和/或目的主机的交换分区;

其中,源主机的交换分区和目的主机的交换分区位于共享存储时,源主机的交换分区和目的主机的交换分区对应相同的交换分区文件;

源主机的交换分区和目的主机的交换分区位于非共享存储时,上述交换分区管理方法还包括:将所述源主机的交换分区中的虚拟机数据发送至所述目的主机的交换分区。

在一种实现方式中,所述交换分区的存储路径的信息包括以下信息中的至少一项:

所述交换分区的源文件的存储路径信息、所述交换分区的目标文件的存储路径信息。

基于前述实施例相同的技术构思,参见图9,本申请实施例提供的一种电子设备900,可以包括:存储器901和处理器902;其中,

存储器901,用于存储计算机程序和数据;

处理器902,用于执行存储器中存储的计算机程序,以实现前述实施例中的任意一种交换分区管理方法。

在实际应用中,上述存储器901可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合。上述存储器901可以向处理器902提供指令和数据。

在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述

本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 交换分区管理方法、装置、电子设备和存储介质
  • 电子设备的管理方法、装置、电子设备及可读存储介质
技术分类

06120112837445