一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统的制作方法

文档序号:8258122阅读:631来源:国知局
一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统的制作方法
【技术领域】
[0001]本发明涉及虚拟化技术领域,特别是涉及一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统。
【背景技术】
[0002]近年来虚拟化技术迅猛发展,在人们日常工作和生活中已被广泛应用。计算机资源(例如中央处理器(Central Processing Unit, CPU)、内存、网络卡数量、存储容量等)虚拟化之后,人们对计算机资源的使用方式也发生了较大的变化,对于计算机资源都是按需申请、按需使用的,即为需要多少资源就申请多少,随着业务量的增加再不断的扩容。
[0003]随着技术发展,对计算机资源扩展的需求也越来越多。虚拟机资源动态调整成为虚拟化的关键技术之一。目前,业界已经实现了在虚拟化资源管理器(Virtual ResourceManager,VRM)完成对CPU、内存、网卡的扩展,不需要终端用户的参与。但是,对虚拟机磁盘空间的扩展(例如,当前虚拟机D盘空间为20G,随着需求增加,希望扩展至30G)还存在一定的技术困难。
[0004]现有技术中,对于虚拟机数据盘的扩展,通常的方法为:先在VRM增加磁盘存储设备,然后在终端用户的虚拟机中,使用第三方磁盘管理工具,修改虚拟机的磁盘分区表,从而实现扩展虚拟机磁盘空间的目的。
[0005]但是,现有技术中扩展虚拟机数据盘空间的方法,操作较复杂,需要虚拟机用户具备较高的专业技能才能完成,因此可实施性较差;同时,现有技术还不能实现对虚拟机系统盘的空间扩展。

【发明内容】

[0006]本发明实施例提供了一种扩展虚拟机磁盘空间的方法、装置及虚拟机系统,能够直接由虚拟化资源管理器实现对虚拟机的数据盘和系统盘的空间扩展,该方法操作简单,可实施性较强。
[0007]第一方面,提供一种扩展虚拟机磁盘空间的方法,所述方法包括:
[0008]关闭待扩展磁盘的虚拟机;
[0009]为所述虚拟机分配目标磁盘,所述目标磁盘的空间大小等于所述虚拟机所需磁盘空间的期望值;
[0010]将所述虚拟机的当前磁盘中的数据文件完全复制到所述目标磁盘上;
[0011]调用磁盘扩展工具修改所述目标磁盘的主引导记录MBR以及磁盘文件系统,以便识别所述目标磁盘的空间大小;
[0012]建立所述目标磁盘与所述虚拟机之间的关联,并释放所述虚拟机的当前磁盘。
[0013]在第一方面的第一种可能的实现方式中,为所述虚拟机分配目标磁盘包括:向存储资源池申请空间大小等于所述期望值的目标磁盘。
[0014]在第一方面的第二种可能的实现方式中,为所述虚拟机分配目标磁盘包括:向所述存储资源池申请扩展磁盘,所述扩展磁盘的空间大小等于所述期望值与所述当前磁盘空间大小的差值;合并所述虚拟机的当前磁盘和所述扩展磁盘,作为所述虚拟机的目标磁盘。
[0015]结合第一方面和第一方面上述任何一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述调用磁盘扩展工具修改所述目标磁盘的主引导记录MBR文件以及磁盘文件系统分区表包括:
[0016]修改所述目标磁盘的MBR文件中主引导扇区对应的分区表项的结束标识字,使得修改后的结束标识字对应的磁盘空间大小等于所述期望值;
[0017]修改所述目标磁盘的启动$Boot文件中主引导扇区包括的分区数目,使得修改后的主引导扇区包括的分区数目对应的磁盘空间大小等于所述期望值;
[0018]将所述修改后的$Boot文件备份到所述目标磁盘的最后一个分区中;
[0019]修改所述目标磁盘的位图$Bitmap文件和主文件表MFT记录。
[0020]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述修改所述目标磁盘的位图文件$Bitmap文件和主文件表MFT记录包括:
[0021]在所述修改后的$Boot文件的主引导扇区中查找得到所述MFT记录的起始位置;
[0022]结合所述MFT记录的起始位置,找到所述MFT记录的第六项的位置,其中,所述MFT记录的第六项用于存储所述$Bitmap的属性信息;
[0023]读取所述MFT记录的第六项中存储的$Bitmap属性信息,获取所述$Bitmap的数据DATA属性头和簇流列表信息;
[0024]分别对所述$Bitmap的DATA属性头的属性字段和簇流列表信息进行修改;
[0025]修改所述$Bitmap的文件内容。
[0026]结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述对所述$Bitmap的DATA属性头的属性字段进行修改包括:
[0027]修改后的簇流的结束虚拟簇号highest_vcn等于所述目标磁盘的$Bitmap数据区的总簇数减I ;其中,所述$Bitmap数据区是用于存放$Bitmap文件的磁盘空间;
[0028]修改后的为$Bitmap的属性信息分配的空间字节数的大小allocated_size等于对所述目标磁盘的$Bitmap数据区的字节数做按簇向上取整运算的结果值;
[0029]修改后的$Bitmap的属性信息实际占用的空间字节数的大小data_size等于对所述目标磁盘的$Bitmap数据区的字节数做按字节向上取整运算的结果值;
[0030]修改后的$Bitmap的属性信息的初始大小initialized_size等于所述data_Size0
[0031]结合第一方面的第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述对所述$Bitmap的DATA属性头的簇流列表信息进行修改包括:
[0032]修改后的所述DATA属性头的逻辑簇号Icn等于所述虚拟机的当前磁盘的$Bitmap数据区对应的总簇数加I ;
[0033]修改后的所述DATA属性头的长度length等于所述目标磁盘的$Bitmap数据区对应的总簇数。
[0034]第二方面,还提供一种扩展虚拟机磁盘空间的装置,所述装置包括:
[0035]虚拟机控制单元,用于关闭待扩展磁盘的虚拟机;
[0036]磁盘分配单元,用于为所述虚拟机分配目标磁盘,所述目标磁盘的空间大小等于所述虚拟机所需磁盘空间的期望值;
[0037]文件复制单元,用于将所述虚拟机的当前磁盘中的数据文件完全复制到所述目标磁盘上;
[0038]文件修改单元,用于调用磁盘扩展工具修改所述目标磁盘的主引导记录MBR以及磁盘文件系统,以便识别所述目标磁盘的空间大小;
[0039]磁盘关联单元,用于建立所述目标磁盘与所述待扩展磁盘的虚拟机之间的关联,并释放所述待扩展磁盘的虚拟机的当前磁盘。
[0040]在第二方面的第一种可能的实现方式中,所述磁盘分配单元包括:第一申请子单元,用于向存储资源池申请空间大小等于所述期望值的目标磁盘。
[0041]在第二方面的第二种可能的实现方式中,所述磁盘分配单元包括:第二申请子单元,用于向所述存储资源池申请扩展磁盘,所述扩展磁盘的空间大小等于所述期望值与所述当前磁盘空间大小的差值;
[0042]磁盘合并子单元,用于合并所述虚拟机的当前磁盘和所述扩展磁盘,作为所述虚拟机的目标磁盘。
[0043]结合第二方面和第二方面上述任何一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述文件修改单元包括:
[0044]第一修改子单元,用于修改所述目标磁盘的MBR文件中主引导扇区对应的分区表项的结束标识字,使得修改后的结束标识字对应的磁盘空间大小等于所述期望值;
[0045]第二修改子单元,用于修改所述目标磁盘的启动$Boot文件中主引导扇区包括的分区数目,使得修改后的主引导扇区包括的分区数目对应的磁盘空间大小等于所述期望值;
[0046]文件转移子单元,用于将所述修改后的$Boot文件备份到所述目标磁盘的最后一个分区中;
[0047]第三修改子单元,用于修改所述目标磁盘的位图$Bitmap文件和主文件表MFT记录。
[0048]第三方面,提供一种虚拟化资源管理器,所述虚拟化资源管理器包括:如第二方面和第二方面任何一种可能的实现方式所述的扩展虚拟机磁盘空间的装置。
[0049]第四方面,提供一种虚拟机系统,所述系统包括:如第三方面所述的虚拟化资源管理器、至少一台虚拟化主机以及存储资源池;其中,每台所述虚拟化主机可以虚拟得到至少一个虚拟机
[0050]本发明实施例中,当需要对某个虚拟机的磁盘空间进行扩展时,直接由VRM为该虚拟机申请期望大小的目标磁盘,并由所述VRM直接调用磁盘扩展工具对所述目标磁盘的相关文件进行修改,以实现VRM对目标磁盘的空间大小的识别,由此即可实现对虚拟机的磁盘空间的扩展。由此可见,本发明实施例所述方法简便易操作,且不需要用户亲自进行文件修改操作,其可实施性较高,易于实现。
【附图说明】
[0051]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]图1为本发明实施例所述方法具体实施的系统架构图;
[0053]图2为本发明实施例一
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1