一种缩小虚拟化镜像文件占用磁盘空间的方法及系统与流程

文档序号:32439191发布日期:2022-12-06 20:43阅读:250来源:国知局
一种缩小虚拟化镜像文件占用磁盘空间的方法及系统与流程

1.本发明涉及云计算机及虚拟化技术领域,尤其涉及一种缩小虚拟化镜像文件占用磁盘空间的方法及系统。


背景技术:

2.云计算的云端系统实际上是一个大型的分布式系统,而虚拟化是构建云端系统的云基础架构不可或缺的关键技术之一;虚拟化通过在一个物理平台上虚拟出多个虚拟平台,每一个虚拟平台作为独立的终端加入到云端的分布式系统。比起直接使用物理平台,虚拟化在资源的有效利用、动态调配和高可靠性方面有着巨大的优势;利用虚拟化技术,企业不必抛弃现有的基础架构即可构建全新的信息基础架构,从而能够更加充分地利用原有的计算机资源。
3.虚拟化镜像文件是虚拟机在部署、生成及传输过程中必要的一环;虚拟化镜像文件根据虚拟化平台的不同而存在不同格式、不同种类的虚拟化镜像文件,比如:vmware虚拟化平台下的镜像文件格式为vmdk格式,virtualbox虚拟化平台下的镜像文件格式为vdi格式,kvm虚拟化平台下的镜像文件格式为qcow2、raw或img格式。目前,使用开源云计算管理平台openstack通用的生成虚拟化镜像文件的方式,具有虚拟化镜像文件大、虚拟化镜像文件中存在的脏数据导致磁盘空间占用大的问题,造成物理硬件资源的浪费;另外,这些大文件形式的虚拟机镜像在文件在传输及文件拷贝过程速度很慢,影响数据传输的效率;此外,虚拟机镜像文件在磁盘扩展使用一段时间以后,其磁盘占用率极高,并且删除磁盘上的内容后虚拟机镜像文件占用空间仍然不会缩小,这些被占用的空间无法利用,造成极大的浪费。


技术实现要素:

4.本发明的目的在于克服现有技术中的不足,提供一种缩小虚拟化镜像文件占用磁盘空间的方法、装置及系统,解决现有技术中的虚拟化镜像文件在常规镜像制作过程中,因虚拟机磁盘占用文件过大导致的文件拷贝和传递的速度慢、造成资源浪费的技术问题。
5.为解决上述技术问题,本发明是采用下述技术方案实现的:第一方面,本发明提供了一种缩小虚拟化镜像文件占用磁盘空间的方法,所述方法包括:将待处理的虚拟机磁盘转化为qcow2格式的虚拟机磁盘;将所述qcow2格式的虚拟机磁盘进行空洞消缺,直至磁盘空间被占满;判断所述虚拟机磁盘文件是否能再进行写入操作,若能,则继续进行空洞消缺,否则对所述虚拟机磁盘进行取证擦除,释放磁盘空间;对所述释放磁盘空间后的虚拟机进行虚拟化镜像文件的操作,并导出所述虚拟化镜像文件;将导出的虚拟化镜像文件进行定向转换压缩,得到缩小的qcow2格式的虚拟化镜像文件,节约磁盘空间。
6.结合第一方面,优选的,将所述qcow2格式的虚拟机磁盘进行空洞消缺,包括以下
步骤:对所述虚拟机磁盘剩余的所有空间进行零填充,所述零填充是通过无限的空字符写入虚拟机的根目录,形成一个或多个零填充文件,直到磁盘剩余空间被占满。
7.结合第一方面,优选的,所述虚拟机磁盘剩余的所有空间包括磁盘本身空闲的磁盘空间和删除磁盘上的内容后对应的虚拟机镜像文件仍占用的磁盘空间。
8.结合第一方面,优选的,对所述虚拟机磁盘进行取证擦除包括以下步骤:对所述零填充文件进行标识位记录,通过比对标识位的方式将所述零填充文件进行删除,释放被占用的磁盘空间。
9.结合第一方面,优选的,其特征在于,所述将导出的虚拟化镜像文件进行定向转换压缩包括以下步骤:将导出的虚拟化镜像文件均标记为未初始化状态;将所述标记为未初始化状态的虚拟化镜像文件按照系统标准划分到多个不同的虚拟磁盘块;将多个所述虚拟磁盘块的扇区分别进行重写,得到多个相应的非压缩扇区;分别对多个所述非压缩扇区进行稀疏映象后生成为多个增量文件;将多个所述增量文件进行合并,得到压缩后的qcow2格式的虚拟化镜像文件。
10.结合第一方面,优选的,对所述虚拟机磁盘进行空洞消缺时,所述虚拟机保持在开机状态。
11.结合第一方面,优选的,对所述释放磁盘空间后的虚拟机进行虚拟化镜像文件的操作时,所述虚拟机保持在关机状态。
12.第二方面,本发明提供了一种缩小虚拟化镜像文件占用磁盘空间的系统,所述系统包括:转换模块,用于将待处理的虚拟机磁盘转化为qcow2格式的虚拟机磁盘;空洞消缺模块,用于将所述qcow2格式的虚拟机磁盘进行空洞消缺,直至磁盘空间被占满;取证擦除模块,用于判断所述虚拟机磁盘文件是否能再进行写入操作,若能,则继续进行空洞消缺,否则对所述虚拟机磁盘进行取证擦除,释放磁盘空间;导出模块,用于对所述释放磁盘空间后的虚拟机进行虚拟化镜像文件的操作,并导出所述虚拟化镜像文件;压缩模块,用于将导出的虚拟化镜像文件进行定向转换压缩,得到缩小的qcow2格式的虚拟化镜像文件,节约磁盘空间。
13.第三方面,本发明提供了一种缩小虚拟化镜像文件占用磁盘空间的装置,包括处理器及存储介质;所述存储介质用于存储指令;所述处理器用于根据所述指令进行操作以执行如第一方面任一所述的缩小虚拟化镜像文件占用磁盘空间的方法的步骤。
14.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面任一所述的缩小虚拟化镜像文件占用磁盘空间的方法的步骤。
15.与现有技术相比,本发明所达到的有益效果:本发明通过将虚拟机磁盘进行空洞消缺和取整取证擦除,使虚拟机内真实的可用
空间得到回收,从而释放虚拟化镜像文件上未使用的空间;并通过导出的虚拟化镜像文件进行定向转换压缩,生成最终转换后的镜像文件,极大的减少了磁盘空间的占用率,减轻因大量镜像文件导致的磁盘压力,达到降低成本,提高生产效率,避免资源浪费的作用。
附图说明
16.图1为本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的方法的流程示意图;图2为本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的系统的结构原理框图。
具体实施方式
17.下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本技术实施例以及实施例中的具体特征是对本技术技术方案的详细的说明,而不是对本技术技术方案的限定,在不冲突的情况下,本技术实施例以及实施例中的技术特征可以相互组合。
18.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符"/",一般表示前后关联对象是一种“或”的关系。
19.实施例一:如图1所示,本发明实施例介绍一种缩小虚拟化镜像文件占用磁盘空间的方法,基于开源云计算管理openstack平台实现,具体包括如下步骤:步骤1:将待处理的虚拟机磁盘转化为qcow2格式的虚拟机磁盘;步骤2:将所述qcow2格式的虚拟机磁盘进行空洞消缺,直至磁盘空间被占满;需要说明的是,在虚拟机的使用过程中,虚拟机内的文件经过大量的增、删、改等操作后,会使得虚拟机磁盘的体积变大,即使删除了虚拟机内的文件,已经分配给虚拟磁盘的空间却并不会被回收;作为本发明的一种实施例,可以进行手动回收这些虚拟机没有使用的空间,释放虚拟机磁盘使用后并标记未进行回收的磁盘空间;具体回收时,本发明实施例通过在虚拟机开机状态下,对虚拟机磁盘剩余的所有空间进行零填充,即通过无限的空字符写入虚拟机的根目录,形成一个或多个零填充文件,直到磁盘剩余空间被占满;其中,所述虚拟机磁盘剩余的所有空间包括磁盘本身空闲的磁盘空间和删除磁盘上的内容后对应的虚拟机镜像文件仍占用的磁盘空间。操作时,使用dd命令(用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换),参数输入文件名,缺省为标准输入即这里指定源文件;参数输出文件名,缺省为标准输入即这里指定目标文件,零填充目标直到空间用完为止;此时虚拟机磁盘空间已经被完全占用,更多的操作或者磁盘文件的增加此时都会被禁止。
20.步骤3:判断所述虚拟机磁盘文件是否能再进行写入操作,若能,则继续进行空洞消缺,否则对所述虚拟机磁盘进行取证擦除,释放磁盘空间;作为本发明的一种实施例,判断虚拟机磁盘文件不能再进行写入操作后,对零填充文件进行标识位记录,通过不断比对标识位的方式将步骤2形成的零填充文件进行删除,使得被占用的磁盘空间被释放;操作时,可以使用rm命令(用于删除一个文件或者目录的命
令)进行磁盘标识位文件的删除。
21.步骤4:对所述释放磁盘空间后的虚拟机进行虚拟化镜像文件的操作,并导出所述虚拟化镜像文件;执行本步骤时,先关闭虚拟机,让虚拟机保持在关机状态,判断待导出的虚拟机的合法性及是否符合系统资源预设阈值要求,然后指定虚拟机磁盘文件路径,通过复制磁盘文件后结合加载的虚拟机脚本信息xml文件,经过创建创建域dumpxml配置文件再导出虚拟机的磁盘文件到指定路径。
22.步骤5:将导出的虚拟化镜像文件进行定向转换压缩,得到缩小的qcow2格式的虚拟化镜像文件,节约磁盘空间。
23.本发明实施例提供的步骤5中将导出的虚拟化镜像文件进行定向转换压缩包括以下步骤:步骤5.1:将导出的虚拟化镜像文件均标记为未初始化状态;步骤5.2:将所述标记为未初始化状态的虚拟化镜像文件按照系统标准划分到多个不同的虚拟磁盘块;步骤5.3:将多个所述虚拟磁盘块的扇区分别进行重写,得到多个相应的非压缩扇区;步骤5.4:分别对多个所述非压缩扇区进行稀疏映象后生成为多个增量文件;步骤5.5:将多个所述增量文件进行合并,得到压缩后的qcow2格式的虚拟化镜像文件。
24.作为本发明的一种实施例,步骤5在操作时,首先,使用qemu-img命令,执行对镜像文件qcow2的定向转换压缩(qemu-img是qemu的磁盘管理工具,用于离线创建、转换和修改磁盘镜像文件),由于qemu-img命令不拷贝虚拟磁盘中的0数据块,这样就达到了压缩磁盘的目的;其次,使用convert方法将原格式镜像文件根据选项转换为目标格式的镜像文件,此时默认的镜像格式为raw格式(裸磁盘格式,默认的虚拟磁盘格式),需将其转换为qcow2格式的镜像文件;再次对输出的镜像文件进行磁盘压缩,这里只有qcow2或者qcow格式的镜像才支持镜像压缩,并且这种压缩操作类型是只读的,若是压缩的扇区被重写,则会被重写为未压缩的数据。
25.下面通过试验来分析本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的方法的有效性和工作性能;在开源云计算openstack平台上配置各个相关基础服务:身份认证服务,镜像服务,网络服务,计算服务和控制平面服务,基于以上服务构建出两个操作系统完全一致的虚拟机,操作系统以centos7或者windows为例,这里我们命令分别将两台虚拟主机命名为vma和vmb,在虚拟主机的运行期间,保证执行动作、操作内容都是相同的,这样他们对磁盘的消耗所导致的磁盘占用基本保持一致,vma和vmb配置相同的磁盘的实例类型资源。对于vma采用现有技术中常用的方法启用虚拟机,经过一段时间的使用后先将虚拟机vma执行关机操作,然后导出虚拟机的镜像文件,导出的方式为通过封装好的openstack镜像服务的导出api接口将虚拟机的镜像文件以qcow2格式导出;操作时,可以直接使用导出的命令glance download;导出后虚拟机化镜像文件后,通过操作系统原生系统工具df查看镜像文件占用空间发现其占用空间大小为2.7g。对于vmb,执行本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的方法的步骤,最终我们看到vmb所占用的虚拟化磁盘镜像
文件大小为700mb,与vma虚拟化磁盘镜像文件对比,大幅度减少了虚拟化镜像磁盘文件所占用磁盘的容量,而vmb的qcow2虚拟化镜像文件就是虚拟化磁盘空间缩小后的虚拟化镜像文件,这个虚拟化镜像文件在网络传输及文件传输中消耗更少的网络带宽资源,使用起来更方便,更高效率。
26.进一步说明的是,本发明实施例提供了多个典型操作系统版本在不同规格下的虚拟机的原始磁盘空间大小、经过现有技术中通用的生成虚拟化镜像文件的方法占用磁盘空间大小、经过本发明提供的方法生成的虚拟化镜像文件占用磁盘空间大小的试验数据,具体实验数据汇总如下表所示:从实验数据可以看出,本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的方法,能有效缩小虚拟机在系统中磁盘占用的空间大小,减轻因大量镜像文件导致的磁盘压力,大大的节约了磁盘空间。
27.综上所述,本发明实施例提供的方法能够有效解决现有技术中的虚拟化镜像文件
在常规镜像制作过程中,因虚拟机磁盘占用文件过大导致的文件拷贝和传递的速度慢、造成资源浪费的技术问题;本发明实施例提供的方法使虚拟机内真实的可用空间得到回收,释放虚拟化镜像文件上未使用的空间,极大的减少了磁盘空间的占用率,达到降低成本,提高生产效率,避免资源浪费的作用,具有广阔的应用前景。
28.实施例二:如图2所示,本发明实施例提供了一种缩小虚拟化镜像文件占用磁盘空间的系统,可以用于实施实施例一所述的方法,所述系统包括:转换模块,用于将待处理的虚拟机磁盘转化为qcow2格式的虚拟机磁盘;空洞消缺模块,用于将所述qcow2格式的虚拟机磁盘进行空洞消缺,直至磁盘空间被占满;取证擦除模块,用于判断所述虚拟机磁盘文件是否能再进行写入操作,若能,则继续进行空洞消缺,否则对所述虚拟机磁盘进行取证擦除,释放磁盘空间;导出模块,用于对所述释放磁盘空间后的虚拟机进行虚拟化镜像文件的操作,并导出所述虚拟化镜像文件;压缩模块,用于将导出的虚拟化镜像文件进行定向转换压缩,得到缩小的qcow2格式的虚拟化镜像文件,节约磁盘空间。
29.本发明实施例提供的缩小虚拟化镜像文件占用磁盘空间的系统与实施例一提供的缩小虚拟化镜像文件占用磁盘空间的方法基于相同的技术构思,能够产生如实施例一所述的有益效果,在本实施例中未详尽描述的内容可以参见实施例一。
30.实施例三:本发明实施例提供了一种缩小虚拟化镜像文件占用磁盘空间的装置,包括处理器及存储介质;所述存储介质用于存储指令;处理器用于根据指令进行操作以执行根据实施例一中任一项方法的步骤。实施例四:本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如实现实施例一中任一项方法的步骤。
31.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
32.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
33.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
34.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
35.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1