首页 / 专利库 / 资料储存系统 / 大容量存储 / 一种基于移动设备虚拟化环境的数据存储方法及装置

一种基于移动设备虚拟化环境的数据存储方法及装置

阅读:979发布:2024-02-10

专利汇可以提供一种基于移动设备虚拟化环境的数据存储方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 适用于虚拟化环境技术领域,提供了一种基于移动设备虚拟化环境的数据存储方法及装置,方法包括:在移动设备虚拟化环境中,获取 虚拟机 内 操作系统 发出的输入或者输出的数据 请求 ;在将数据请求中的数据进行地址转换之前,通过虚拟 块 地址VBA,区分出数据请求中的数据为文件系统元数据或者为普通用户数据;根据区分结果,在数据请求中配置标志位;在将数据请求进行地址转换之后,根据数据请求中配置的标志位,检测出数据请求中的数据为文件系统元数据或者为普通用户数据;当检测出数据请求中的数据为文件系统元数据时,将文件系统元数据存储到非易失RAM 存储器 中。本发明提高了移动虚拟化系统整体的I/O性能并延长NAND闪存寿命。,下面是一种基于移动设备虚拟化环境的数据存储方法及装置专利的具体信息内容。

1.一种基于移动设备虚拟化环境的数据存储方法,其特征在于,包括:
在移动设备虚拟化环境中,获取虚拟机操作系统发出的输入或者输出的数据请求
在将所述数据请求中的数据进行地址转换之前,通过虚拟地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
根据区分结果,在所述数据请求中配置标志位;
在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
其中,所述文件系统元数据为虚拟机内文件系统元数据;
所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
2.根据权利要求1所述的方法,其特征在于,所述标志位为文件系统元数据请求的标志位或者为普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同。
3.根据权利要求1或2所述的方法,其特征在于,所述根据区分结果,在所述数据请求中配置标志位,具体包括:
当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同;或者,
当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置所述文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,不对所述数据请求进行处理;或者,
当区分结果表示所述数据请求中的数据为文件系统元数据时,不对所述数据请求进行处理,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置所述普通用户数据请求的标志位。
4.根据权利要求1所述的方法,其特征在于,所述当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中,具体为:
当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量;
判断所述文件系统元数据的总容量是否大于非易失RAM存储器的容量,是则,将全部的所述文件系统元数据均存储在所述非易失RAM存储器中,否则,将部分所述文件系统元数据存储到所述非易失RAM存储器中。
5.根据权利要求4所述的方法,其特征在于,在所述当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量之前,所述方法包括:
建立文件系统元数据总容量统计模型,所述文件系统元数据总容量统计模型如下:
其中,n表示在移动设备虚拟化环境中虚拟机运行的个数,δi表示第i个虚拟机内文件系统元数据的容量,α表示文件系统元数据的总容量,当n等于0时,表示在移动设备虚拟化环境中没有虚拟机运行,虚拟机内文件系统元数据的容量为0,当n大于0时,表示在移动设备虚拟化环境中有虚拟机运行,将所有虚拟机内文件系统元数据的容量相加,获得所述文件系统元数据的总容量α。
6.一种基于移动设备虚拟化环境的数据存储装置,其特征在于,包括:
获取模块,用于在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求;
区分模块,用于在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
配置模块,用于根据区分结果,在所述数据请求中配置标志位;
检测模块,用于在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
文件系统元数据存储模块,用于当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
普通用户数据存储模块,用于当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
其中,所述文件系统元数据为虚拟机内文件系统元数据;
所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
7.根据权利要求6所述的装置,其特征在于,所述标志位为文件系统元数据请求的标志位或者为普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同。
8.根据权利要求6或7所述的装置,其特征在于,所述配置模块包括:
第一配置单元,用于当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同;或者,
第二配置单元,用于当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置所述文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,不对所述数据请求进行处理;或者,
第三配置单元,用于当区分结果表示所述数据请求中的数据为文件系统元数据时,不对所述数据请求进行处理,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置所述普通用户数据请求的标志位。
9.根据权利要求6所述的装置,其特征在于,所述文件系统元数据存储模块,包括:
统计单元,用于当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量;
文件系统元数据存储单元,用于判断所述文件系统元数据的总容量是否大于非易失RAM存储器的容量,是则,将全部的所述文件系统元数据均存储在所述非易失RAM存储器中,否则,将部分所述文件系统元数据存储到所述非易失RAM存储器中。
10.根据权利要求9所述的装置,其特征在于,所述装置包括:
文件系统元数据总容量统计模型建立模块,用于建立文件系统元数据总容量统计模型,所述文件系统元数据总容量统计模型如下:
其中,n表示在移动设备虚拟化环境中虚拟机运行的个数,δi表示第i个虚拟机内文件系统元数据的容量,α表示文件系统元数据的总容量,当n等于0时,表示在移动设备虚拟化环境中没有虚拟机运行,虚拟机内文件系统元数据的容量为0,当n大于0时,表示在移动设备虚拟化环境中有虚拟机运行,将所有虚拟机内文件系统元数据的容量相加,获得所述文件系统元数据的总容量α。

说明书全文

一种基于移动设备虚拟化环境的数据存储方法及装置

技术领域

[0001] 本发明属于虚拟化环境技术领域,尤其涉及一种基于移动设备虚拟化环境的数据存储方法及装置。

背景技术

[0002] 伴随着移动设备的广泛应用,虚拟化技术已经越来越多的应用在移动设备中。因为虚拟化技术可以在一个移动设备中提供多种不同的软件系统,同时可以有效地提高系统的安全性以及减少系统开发的成本。
[0003] 在移动设备虚拟化环境中,移动设备的虚拟机的外存包括NAND闪存、eMMC闪存以及SD卡。其中,主要使用NAND闪存作为外存。而NAND闪存的使用有很多限制和约束,详述如下:
[0004] 一、NAND闪存不支持同一地址内数据的更新;
[0005] 二、NAND闪存的使用寿命有限且需要很长时间的垃圾回收,垃圾回收是指回收因数据更新产生的无效数据页。
[0006] 但是,在移动设备虚拟化环境的设计中没有考虑到NAND闪存的特性,因而导致移动设备虚拟化环境中系统的I/O性能变得很差。
[0007] 此外,在移动设备虚拟化环境中,如果用户在虚拟机文件系统中创建一个虚拟机镜像文件,镜像文件中会包含更新频率较高的文件系统元数据和普通用户数据。这些更新频繁的文件系统元数据会导致NAND闪存产生较多的无效数据页,进而频繁地触发垃圾回收,这不仅影响了系统的整体性能,同时也会降低NAND闪存的寿命。
[0008] 此外,在移动设备虚拟化环境中,在虚拟机正常生效的情况下,无法区分出虚拟机镜像文件中的元数据和普通用户数据,这是因为虚拟机内文件系统数据传输到虚拟机监控器时需要经过两层的地址转换表:虚拟地址转换表和镜像地址转换表。虚拟地址转换表将虚拟地址转换成镜像块地址,然后镜像地址转换表将镜像块地址转换成物理块地址。因此,主机操作系统只能看见经过转换的物理块地址,这导致所有和虚拟机内文件系统相关联的元数据的信息丢失,因此不能区分出虚拟机镜像文件中的元数据和普通用户数据,进而不能将虚拟机内文件系统中更新较为频繁的元数据分离出来。
[0009] 综上所述,在移动设备虚拟化环境中,由于受到NAND闪存固有缺陷和无法将虚拟机内文件系统中更新较为频繁的元数据分离出来的影响,导致移动设备虚拟化环境中系统的输入输出I/O性能低,NAND闪存的寿命短。

发明内容

[0010] 本发明实施例的目的在于提供一种基于移动设备虚拟化环境的数据存储方法,旨在解决在移动设备虚拟化环境中,由于受到NAND闪存固有缺陷和无法将虚拟机内文件系统中更新较为频繁的元数据分离出来的影响,导致移动设备虚拟化环境中系统的输入输出I/O性能低,NAND闪存的寿命短的问题。
[0011] 本发明实施例是这样实现的,一种基于移动设备虚拟化环境的数据存储方法,包括:
[0012] 在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求
[0013] 在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0014] 根据区分结果,在所述数据请求中配置标志位;
[0015] 在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0016] 当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
[0017] 当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
[0018] 其中,所述文件系统元数据为虚拟机内文件系统元数据;
[0019] 所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
[0020] 所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
[0021] 本发明实施例的另一目的在于提供一种基于移动设备虚拟化环境的数据存储装置,包括:
[0022] 获取模块,用于在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求;
[0023] 区分模块,用于在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0024] 配置模块,用于根据区分结果,在所述数据请求中配置标志位;
[0025] 检测模块,用于在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0026] 文件系统元数据存储模块,用于当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
[0027] 普通用户数据存储模块,用于当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
[0028] 其中,所述文件系统元数据为虚拟机内文件系统元数据;
[0029] 所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
[0030] 所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
[0031] 在本发明实施例中,当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中,当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中,解决了由于受到NAND闪存固有缺陷和无法将虚拟机内文件系统中更新较为频繁的元数据分离出来的影响,导致移动设备虚拟化环境中系统的输入输出I/O性能低,NAND闪存的寿命短的问题,从而达到提高移动虚拟化系统整体的I/O性能以及延长NAND闪存寿命的目的。附图说明
[0032] 图1是本发明实施例提供的基于移动设备虚拟化环境的数据存储方法的实现流程图
[0033] 图2是本发明实施例提供的在数据请求中配置标志位的样例图;
[0034] 图3是本发明实施例提供的基于移动设备虚拟化环境的数据存储方法步骤S105的具体实现流程图;
[0035] 图4是本发明实施例提供的虚拟机内虚拟块地址到物理块地址的转换过程图;
[0036] 图5是本发明实施例提供的读写性能对比图;
[0037] 图6是本发明实施例提供的基于移动设备虚拟化环境的数据存储装置的结构框图
[0038] 图7是本发明实施例提供的文件系统元数据存储模块65的第一结构框图;
[0039] 图8是本发明实施例提供的文件系统元数据存储模块65的第二结构框图。

具体实施方式

[0040] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0041] 实施例一
[0042] 图1是本发明实施例提供的一种基于移动设备虚拟化环境的数据存储方法的实现流程图,详述如下:
[0043] 在步骤S101中,在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求;
[0044] 其中,移动设备虚拟化环境是指移动设备运行虚拟机的环境。
[0045] 在步骤S102中,在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0046] 在步骤S103中,根据区分结果,在所述数据请求中配置标志位;
[0047] 所述标志位为文件系统元数据请求的标志位或者为普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同。
[0048] 在步骤S104中,在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0049] 在将数据请求进行地址转换之后,是指在将数据请求经过虚拟地址转换表和镜像地址转换表进行地址转换之后。
[0050] 在步骤S105中,当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
[0051] 在步骤S106中,当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
[0052] 其中,所述文件系统元数据为虚拟机内文件系统元数据;
[0053] 所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
[0054] 所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
[0055] 在本发明实施例中,将虚拟机内文件系统元数据分离出来,然后存储到非易失RAM存储器中。从而达到提高移动虚拟化系统整体的I/O性能以及延长NAND闪存寿命的目的。
[0056] 实施例二
[0057] 基于移动设备虚拟化环境的数据存储方法步骤S103的有三种实施方式,详述如下:
[0058] 第一种实施方式:当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同。
[0059] 参考图2,图2是本发明实施例提供的在数据请求中配置标志位的样例图。
[0060] 其中,在虚拟机内对每个数据请求增加了一个标志位P,通过使用标志位P来追踪记录虚拟机内文件系统元数据的信息。
[0061] 其中,在虚拟机内操作系统中,VBA表示虚拟块地址,M表示文件系统元数据,IBA表示镜像文件块地址,R表示普通用户数据,PBA表示物理块地址。
[0062] 第二种实施方式:当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置所述文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,不对所述数据请求进行处理。
[0063] 其中,通过在所述数据请求中配置所述文件系统元数据的标志位,使得后续在虚拟机镜像文件中可以检测出文件系统元数据,有标志位的数据即为文件系统元数据,没有标志位的数据即为普通用户数据。
[0064] 第三种实施方式:当区分结果表示所述数据请求中的数据为文件系统元数据时,不对所述数据请求进行处理,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置所述普通用户数据请求的标志位。
[0065] 其中,通过在所述数据请求中配置所述普通用户数据请求的标志位,使得后续在虚拟机镜像文件中可以检测出普通用户数据,有标志位的数据即为普通用户数据,没有标志位的数据即为文件系统元数据。
[0066] 在本发明实施例中,由于将文件系统元数据分离出来,便于后续将文件系统元数据存储到非易失RAM存储器中,因此提高移动虚拟化系统整体的I/O性能,也提高了NAND闪存寿命。
[0067] 实施例三
[0068] 参考图3,图3是本发明实施例提供的基于移动设备虚拟化环境的数据存储方法步骤S105的具体实现流程图,详述如下:
[0069] 在步骤S301中,当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量;
[0070] 在步骤S302中,判断所述文件系统元数据的总容量是否大于非易失RAM存储器的容量,是则,将全部的所述文件系统元数据均存储在所述非易失RAM存储器中,否则,将部分所述文件系统元数据存储到所述非易失RAM存储器中。
[0071] 其中,部分所述文件系统元数据是指最近时间段内,生成的文件系统元数据,最近时间段可以为用户自设,也可以为系统设定,在此不做限制。
[0072] 在本发明实施例中,由于将虚拟机内文件系统元数据分离出来,然后存储到非易失RAM存储器中,因此提高移动虚拟化系统整体的I/O性能,也提高了NAND闪存寿命。
[0073] 实施例四
[0074] 本实施例描述了建立文件系统元数据总容量统计模型的实施过程,详述如下:
[0075] 建立文件系统元数据总容量统计模型,所述文件系统元数据总容量统计模型如下:
[0076]
[0077] 其中,n表示在移动设备虚拟化环境中虚拟机运行的个数,δi表示第i个虚拟机内文件系统元数据的容量,α表示文件系统元数据的总容量,当n等于0时,表示在移动设备虚拟化环境中没有虚拟机运行,虚拟机内文件系统元数据的容量为0,当n大于0时,表示在移动设备虚拟化环境中有虚拟机运行,将所有虚拟机内文件系统元数据的容量相加,获得所述文件系统元数据的总容量α。
[0078] 实施例五
[0079] 参考图4,图4是本发明实施例提供的虚拟机内虚拟块地址到物理块地址的转换过程图,详述如下:
[0080] 在虚拟机监控器中,引入了三个的部件:元数据监控器、决策器和地址分配器。这些部件在设计中相互依赖,起着不同的作用。
[0081] 元数据监控器执行第一部分的程序,所述第一部分的程序用于在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求;在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;根据区分结果,在所述数据请求中配置标志位;在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据。
[0082] 决策器和地址分配器执行第二部分的程序,所述第二部分的程序用于当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中,或者,
[0083] 用于当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量;
[0084] 判断所述文件系统元数据的总容量是否大于非易失RAM存储器的容量,是则,将全部的所述文件系统元数据均存储在所述非易失RAM存储器中,否则,将部分所述文件系统元数据存储到所述非易失RAM存储器中;或者,
[0085] 用于建立文件系统元数据总容量统计模型。
[0086] 为便于说明,下面对虚拟机内虚拟块地址到物理块地址的转换过程进行说明:
[0087] 首先,在数据请求进行地址转换之前,通过虚拟块地址VBA区分出虚拟机内文件系统元数据M和普通用户数据R。如果数据请求是虚拟机内文件系统元数据M,在将P置为0,反之,如果数据请求是普通用户数据,则将P置为1。然后,当虚拟机监控器接收到虚拟机发送来的数据请求之后,通过检查数据请求内的标志位P便可以区分该数据时虚拟机内文件系统元数据和普通用户数据。最后,虚拟机监控器将区分好的数据发送给决策器去决定数据的存储位置,将普通用户数据存储到NAND闪存中,存储位置包括但不限于NAND闪存中的空闲块和有效块,将虚拟机文件系统中的元数据分离出来,存储到非易失RAM存储器中,存储位置包括但不限于非易失RAM存储器中的空闲块和有效块。
[0088] 实施例六
[0089] 本实施例描述了采用真实的嵌入式平台来验证基于移动设备虚拟化环境的数据存储方法的实施过程,详述如下:
[0090] 通过使用真实的嵌入式平台来验证本发明的数据存储方法。实验平台采用ARM v7架构的ARM Cortex-A15双核处理器(Samsung Exynos5250)作为核心处理器。在这个平台中,ARM处理器运行速度为1.7GHz;该处理器包含32KB的指令缓存和32KB的数据缓存。平台运行的是Android 4.2操作系统,该系统的内核为Linux kernel 3.9。该平台中包括
64Gb的eMMC NAND闪存,128Gb的SD卡和2GB的DDR3 RAM。我们通过使用部分RAM来仿真PCM,因为PCM和RAM具有相同的数据访问特性,即PCM和RAM都支持以字节为单位写入,并且都支持在同一个地址内数据的更新。我们捕获发送到RAM的数据请求,并且使用PCM的参数来计算I/O的性能。
[0091] 本发明的数据存储方法实现在KVM(kernel virtual machine)中。KVM是运行在Linux内核中的虚拟机监控器。在实验过程中,QEMU用来模拟ARM处理器;移动操作系统Android 4.2运行在QEMU模拟器中;实验中通过使用一些用户经常使用的Android应用程序,例如微信,进行实验的测试。当应用程序在QEMU内访问外部存储设备时,QEMU将该应用程序的I/O请求发送到KVM中。KVM接收到QEMU的I/O请求后,通过读/写操作将数据请求传送到底层的设备驱动。最后设备驱动再将接收到的读/写请求发送到物理设备。
[0092] 以下部分,将通过实验数据进行实验结果的对比和分析。首先对比和分析I/O性能的改进,然后分析对NAND闪存寿命的影响。实验结果是通过捕获到PCM和NAND闪存的I/O请求,然后根据PCM和NAND闪存的参数获得实验结果。实验设定NAND闪存的读延迟为25us,写延迟为500us;PCM的读延迟为50ns,写延迟为1us。
[0093] 参考图5,图5是本发明实施例提供的读写性能对比图,详述如下:
[0094] 其中,图5对比了原始的Android系统或者baseline的读写性能和本发明的数据存储方法的读写性能。
[0095] 在图5中,白色的柱状图表示本发明的数据存储方法的读写性能,格子柱状图代表原始Android系统的读写性能。实验中,PCM的容量配置为16MB;实验过程中,分别运行1到3个虚拟机以获得运行不同数目虚拟机条件下系统的读写性能。
[0096] 其中,(a)Write performance with one VM为运行一个虚拟机条件下系统的数据写入性能图,(b)Write performance with two VMS为运行两个虚拟机条件下系统的数据写入性能图,(c)Write performance with three VMS为运行三个虚拟机条件下系统的数据写入性能图。
[0097] 其中,(d)Read performance with one VM为运行一个虚拟机条件下系统的数据读取性能图,(e)Read performance with two VMS为运行两个虚拟机条件下系统的数据读取性能图,(f)Read performance with three VMS为运行三个虚拟机条件下系统的数据读取性能图。
[0098] 从实验结果中可以看出,原始Android系统的读写性能比本发明的数据存储方法差很多。
[0099] 对比原始Android系统,本发明的数据存储方法可以提高系统2.44倍的读性能和提高系统3.48倍的写性能。同时,随着虚拟机数据的增加,不论是原始的Android系统还是系统整体的读写性能都会降低。引起这种现象的原始是虚拟机之间的资源竞争,这导致系统和虚拟机的运行速度降低。但是,即使随着虚拟机数目的增加,本发明的数据存储方法仍然能够很好的改善原始Android系统的性能。系统性能的提高得益于将更新频率较频繁的虚拟机内文件系统元数据存储到更快的PCM中。
[0100] 实施例七
[0101] 参考图6,图6是本发明实施例提供的基于移动设备虚拟化环境的数据存储装置的结构框图,该装置可以运行于移动设备中。为了便于说明,仅示出了与本实施例相关的部分。
[0102] 参照图6,该基于移动设备虚拟化环境的数据存储装置,包括:
[0103] 获取模块61,用于在移动设备虚拟化环境中,获取虚拟机内操作系统发出的输入或者输出的数据请求;
[0104] 区分模块62,用于在将所述数据请求中的数据进行地址转换之前,通过虚拟块地址VBA,区分出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0105] 配置模块63,用于根据区分结果,在所述数据请求中配置标志位;
[0106] 检测模块64,用于在将所述数据请求进行地址转换之后,根据所述数据请求中配置的标志位,检测出所述数据请求中的数据为文件系统元数据或者为普通用户数据;
[0107] 文件系统元数据存储模块65,用于当检测出所述数据请求中的数据为文件系统元数据时,将所述文件系统元数据存储到非易失RAM存储器中;
[0108] 普通用户数据存储模块66,用于当检测出所述数据请求中的数据为普通用户数据时,将所述普通用户数据存储在NAND闪存中;
[0109] 其中,所述文件系统元数据为虚拟机内文件系统元数据;
[0110] 所述普通用户数据为虚拟机内除文件系统元数据之外的数据;
[0111] 所述非易失RAM存储器和所述NAND闪存均预置在所述移动设备虚拟化环境中。
[0112] 在本实施例的一种实现方式中,所述标志位为文件系统元数据请求的标志位或者为普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同。
[0113] 在本实施例的一种实现方式中,在该基于移动设备虚拟化环境的数据存储装置中,所述配置模块用于当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置普通用户数据请求的标志位,所述文件系统元数据请求的标志位和所述普通用户数据请求的标志位不同;或者,
[0114] 用于当区分结果表示所述数据请求中的数据为文件系统元数据时,在所述数据请求中配置所述文件系统元数据的标志位,当所述数据请求为虚拟机文件系统的普通用户数据请求时,不对所述数据请求进行处理;或者,
[0115] 用于当区分结果表示所述数据请求中的数据为文件系统元数据时,不对所述数据请求进行处理,当所述数据请求为虚拟机文件系统的普通用户数据请求时,在所述数据请求中配置所述普通用户数据请求的标志位。
[0116] 在本实施例的一种实现方式中,参考图7,图7是本发明实施例提供的文件系统元数据存储模块65的第一结构框图,在该基于移动设备虚拟化环境的数据存储装置中,所述文件系统元数据存储模块65包括:
[0117] 统计单元651,用于当检测出所述数据请求中的数据为文件系统元数据时,采用预先建立的文件系统元数据总容量统计模型,统计出所述文件系统元数据的总容量;
[0118] 文件系统元数据存储单元652,用于判断所述文件系统元数据的总容量是否大于非易失RAM存储器的容量,是则,将全部的所述文件系统元数据均存储在所述非易失RAM存储器中,否则,将部分所述文件系统元数据存储到所述非易失RAM存储器中。
[0119] 在本实施例的一种实现方式中,参考图8,图8是本发明实施例提供的文件系统元数据存储模块65的第二结构框图,在该基于移动设备虚拟化环境的数据存储装置中,所述文件系统元数据存储模块65包括:
[0120] 文件系统元数据总容量统计模型建立模块650,用于建立文件系统元数据总容量统计模型,所述文件系统元数据总容量统计模型如下:
[0121]
[0122] 其中,n表示在移动设备虚拟化环境中虚拟机运行的个数,δi表示第i个虚拟机内文件系统元数据的容量,α表示文件系统元数据的总容量,当n等于0时,表示在移动设备虚拟化环境中没有虚拟机运行,虚拟机内文件系统元数据的容量为0,当n大于0时,表示在移动设备虚拟化环境中有虚拟机运行,将所有虚拟机内文件系统元数据的容量相加,获得所述文件系统元数据的总容量α。
[0123] 本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。
[0124] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。
[0125] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈