虚拟硬盘的容量扩展方法

文档序号:6586158阅读:263来源:国知局
专利名称:虚拟硬盘的容量扩展方法
技术领域
本发明是关于一种硬盘的容量扩展方法,特别是一种虚拟硬盘的容量扩展方法。
背景技术
虚拟机(Virtual Machine, VM)以及云端运算(Cloud Computing)等将实体资源 虚拟化后提供给使用者的技术,以及其所带来的利益,正受到全世界的注目。其中云端运算 为一种新的基于因特网(Internet)的运算方式,其能通过因特网上不同的服务为个人或 企业的使用者提供所需运算。云端运算的资源是虚拟化的,实体资源被虚拟化后通过因特 网提供给使用者。使用者不需要了解「云端」中实体资源及其相关配置的细节,不必具有相 应的专业知识,也无需对实体资源直接进行控制。使用者可以只关注自己真正需要什么样 的资源以及如何通过网络来得到相应的服务。而虚拟机是将一个或多个处理器、内存或是储存装置等实体资源集合起来后,在 实体资源上被建立的虚拟平台。虚拟机亦可以被视为在实体资源的计算机平台和终端用户 的使用者之间建立一种环境。使用者基于这个虚拟平台所建立的环境来进行所需的运算或 是执行应用程序(Application)。架构在相同实体资源上的每一个虚拟机都可以用有自己 的虚拟资源,例如虚拟的运算单元或虚拟硬盘(Virtual Hard Disk,VHD)。虚拟机亦可像 具有实体的普通的计算机一样执行程序,或用有自己的操作系统(Operating System, OS) 以及应用程序。然而既然虚拟机是架构在实体资源上,使用者在使用虚拟机时亦可能遇到(虚 拟)资源不足的情形。也就是说,使用者可能会遇到虚拟硬盘不敷使用等情况。在实体硬 盘(Physical Hard Disk)等资源还足够的时候,扩展使用者的虚拟硬盘的做法很简单,只 要将剩余的实体硬盘分配给使用者即可。然而当实体硬盘本身的剩余容量亦不敷使用时, 为使用者扩展虚拟硬盘的方法或变的复杂且费时许多。传统的扩展方法需在添加新的实体 硬盘后,将使用者原先具有的数据复制到新的实体硬盘以及虚拟硬盘。当使用者的数据是 以兆字节(Terabyte,TB)为单位或是更大时,传统的扩展方法需耗费极为漫长的时间。庞 大的数据在搬移的过程中不但有可能会产生损失;当搬移的过程中发生任何错误时,都会 对使用者造成莫大的伤害。

发明内容
本发明所要解决的技术问题在于,提供一种虚拟硬盘(Virtual Hard Disk, VHD) 的容量扩展方法,其用以扩展一第一实体硬盘(physical hard disk)中被指派给一虚拟机 (Virtual Machine,VM)的一第一虚拟硬盘的容量。虚拟硬盘的容量扩展方法包括提供一 第二实体硬盘,其中第二实体硬盘的可用容量不小于一扩充总容量;停止对第一虚拟硬盘 的存取操作;于第二实体硬盘上建立容量为扩展总容量的一第二虚拟硬盘;连结第二虚拟 硬盘与第一虚拟硬盘的储存空间;以及运行一虚拟机管理器(Virtual Machine Manager, VMM)程序,以将第二虚拟硬盘指派给虚拟机,并恢复虚拟机对第二虚拟硬盘的存取操作。
较佳的是,其中第一虚拟硬盘的容量加上第一实体硬盘剩余的可用容量小于扩展 总容量。为了删除原先存放于第一虚拟硬盘的数据,根据本发明的虚拟硬盘的容量扩展方 法在「运行虚拟机管理器程序」的步骤之后另可包括接收一删除命令,其中删除命令指定 仅存在于第一虚拟硬盘中的一删除目标档案;以及删除第一虚拟硬盘中的删除目标档案, 或是删除目标档案与第二虚拟硬盘的连结。而为了在「运行虚拟机管理器程序」的步骤之后新增档案,虚拟硬盘的容量扩展方 法另可包括接收一新增命令,其中新增命令包括一新增目标档案;以及将新增目标档案 新增于第二虚拟硬盘。也就是说,容量扩展之后,新增的数据是被存放于第二虚拟硬盘。根据本发明的一实施范例,在「将新增目标档案新增于第二虚拟硬盘」的步骤之 后,另可包括接收一修改命令,其中修改命令指定第二虚拟硬盘中的一修改目标档案,修 改命令中并包括一修改数据;以及依据修改数据修改修改目标档案。而在「将新增目标档案新增于第二虚拟硬盘」的步骤之后,亦可包括接收删除命 令,其中删除命令指定第二虚拟硬盘中的删除目标档案;以及由第二虚拟硬盘中删除此删 除目标档案。换句话说,新增于第二虚拟硬盘的数据可以被直接存取以、修改或是删除。根据本发明的一实施范例,为了修改原先存放于第一虚拟硬盘的数据,根据本发 明的虚拟硬盘的容量扩展方法在「运行虚拟机管理器程序」的步骤之后另可包括接收修 改命令,其中修改命令指定第一虚拟硬盘中的修改目标档案,修改命令并包括修改数据;以 及将修改数据新增于第二虚拟硬盘,并将修改数据作为修改目标档案的一部份与修改目标 档案相连接。其中修改数据为目标档案被改过的部分,且仅有修改数据的部分被储存于第 二虚拟硬盘。为了读取上述因被修改过而被分开存放于第一虚拟硬盘以及第二虚拟硬盘的数 据,在「将修改数据新增于第二虚拟硬盘,并将修改数据作为修改目标档案的一部份与修改 目标档案相连接」的步骤之后,另可包括接收一读取命令,其中读取命令指定一读取目标 档案,且读取目标档案部分存在于第一虚拟硬盘以及第二虚拟硬盘;读取第一虚拟硬盘以 及第二虚拟硬盘中的读取目标档案;以及合并并输出由第一虚拟硬盘以及第二虚拟硬盘中 读取的读取目标档案。最后,为了删除上述因被修改过而被分开存放于第一虚拟硬盘以及第二虚拟硬盘 的数据,在「将修改数据新增于第二虚拟硬盘,并将修改数据作为修改目标档案的一部份与 修改目标档案相连接」的步骤之后,亦可包括接收删除命令,其中删除命令指定删除目标 档案,且删除目标档案是部分存在于第一虚拟硬盘以及第二虚拟硬盘;以及第二虚拟硬盘 中的删除目标档案,以及删除目标档案与第一虚拟硬盘的连结。综上所述,本发明所提供的虚拟硬盘的容量扩展方法是可扩展指派给虚拟机的第 一虚拟硬盘的容量,且虚拟硬盘的容量扩展方法并不需搬移第一虚拟硬盘内原有的数据。 而在扩展容量之后,客户端亦能一如往常地读取、新增、修改或删除档案;且这些作业亦不 需要将第一虚拟硬盘内原有的数据搬移去第二虚拟硬盘。






图1所示为根据本发明-图2所示为根据本发明-图3所示为根据本发明-图4所示为根据本发明-主要组件符号说明
-实施范例的虚拟机的方块示意图; -实施范例的容量扩展前的虚拟硬盘的对应示意图; 实施范例的虚拟硬盘的容量扩展方法的流程示意图;以及 -实施范例的容量扩展后的虚拟硬盘的对应示意图。
10 20 22 24 30
32,32a 34 36 38
客户端 储存池
第一实体硬盘 第二实体硬盘 虚拟机管理器 虚拟机 虚拟硬盘 第一虚拟硬盘 第二虚拟硬盘
具体实施例方式以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何熟悉 相关技术的人了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、申请专 利范围及附图,任何熟悉相关技术的人可轻易地理解本发明相关的目的及优点。本发明提供一种虚拟硬盘(Virtual Hard Disk, VHD)的容量扩展方法,其用以扩 展一第一实体硬盘(physical hard disk)中被指派给一虚拟机(VirtualMachine,VM)的 一第一虚拟硬盘的容量。请参阅「图1」,其为根据本发明一实施范例之虚拟机的方块示意 图。如图所示,客户端10可通过一虚拟管理器(Virtual Machine Manager,VMM) 30与远程 的虚拟机32联机。其中每一个虚拟机32都具有至少一虚拟硬盘34,而虚拟硬盘34建立于 一储存池20中的第一实体硬盘22。第一实体硬盘22为架构虚拟机32所需的实体硬设备(即实体资源)中的储存设 备,可以例如是硬盘、固态硬盘(Solid State Disk,SSD)或是磁盘阵列(Redundant Array of Independent Disks, RAID).而储存池20则为提供给虚拟机32使用的所有储存设备的 集合。储存池20除了包括第一实体硬盘22之外,另可包括其它的实体硬盘以供虚拟机32使用。为了架构虚拟机32,在第一实体硬盘22等实体资源上可先架构一虚拟平台 (host,未绘示),再于虚拟平台上建立这些虚拟机32。更详细地说,一个虚拟平台上可被配 置至少一个虚拟机32,且这些虚拟机32均由架构虚拟平台的实体资源运行。每一个虚拟 机32都可具有自己的虚拟资源,以提供给联机的客户端10使用。客户端10可以将联机的 虚拟机32视为一个具有处理器与储存装置的普通的计算机,在虚拟机32中安装一操作系 统(Operating System, OS)各式各样的应用程序(Application)并使用之。换句话说,虚 拟机32之间是可以互相独立的。架构在同一个实体资源上的虚拟机32甚至可以安装不同 的操作系统例如窗口(Windows)操作系统或是Linux操作系统。且对于客户端10而言,每一个虚拟机32都拥有自己的虚拟硬盘34可以使用。接下来将详述本发明所提供的虚拟硬盘的容量扩展方法,以说明如何扩展第一虚 拟硬盘的容量。请先参照「图2」,其为根据本发明一实施范例的容量扩展前的虚拟硬盘的 对应示意图。如「图2」所示,储存池20中的第一实体硬盘22的所有的可用空间可被分割成多 个部分(虚拟硬盘34),且可以个别提供给不同的虚拟机32使用。其中第一虚拟硬盘36分 配给虚拟机32a使用,而其余的虚拟硬盘34则分配给其它的虚拟机32。根据本发明的一实施范例,第一实体硬盘22处于储存空间比较紧张的状态。当使 用者觉得第一虚拟硬盘36的储存空间不足而想要扩展容量时,使用者想要扩展的容量大 于第一实体硬盘22剩余的可用空间(意即尚未被配置为虚拟硬盘34的空间)。更详细地 说,使用者要将原先的第一虚拟硬盘36的总容量扩展为一扩展总容量,而第一虚拟硬盘36 的总容量加上第一实体硬盘22的剩余的可用容量小于使用者指定的扩展总容量。请同时参阅「图3」以及「图4」,其分别为根据本发明一实施范例的虚拟硬盘的容 量扩展方法的流程示意图以及容量扩展后的虚拟硬盘的对应示意图。于虚拟硬盘的容量扩 展方法中,首先提供一第二实体硬盘与储存池20(步骤S110),且第二实体硬盘的可用容量 不小于扩充总容量。由于扩展第一虚拟硬盘36时,第一虚拟硬盘36无法接受虚拟机32a任何的存取, 因此需先停止虚拟机32a对第一虚拟硬盘36的存取操作(步骤S120)。为了确保在扩展容 量的途中第一虚拟硬盘36不会被虚拟机32a存取到,亦可直接停止虚拟机32a。接着于新增的第二实体硬盘24上建立容量为扩展总容量的一第二虚拟硬盘 38(步骤S130)。以Linux的VHD-util (应用程序)工具为例,可建立一个VHD格式的空白 档案作为第二虚拟硬盘38,并对这个空白档案配置相关的数据。得到容量为扩展总容量的 第二虚拟硬盘38后,连结第二虚拟硬盘38与第一虚拟硬盘36的储存空间(步骤S140)。 也就是说,仅需将第二虚拟硬盘38与第一虚拟硬盘36的储存空间产生连结,而不需将第一 虚拟硬盘36中的数据移转至第二虚拟硬盘38中。以Linux的VHD-util为例,当虚拟硬34式文件类型时,步骤S130以及步骤S140 可以下述的指令范例实施之。vhd-util create-name = VD2_size = 20G_parent = VD1步骤S130以及步骤S140以可以用例如逻辑块管理器(Logical VolumeManager, LVM)的逻辑块(Logical Volume,LM,或称为块设备)类型实作,指令的范例如下。.lvcreate-name = lvd2_size = 20G VG_Storage2vhd-util create-name = /dev/VG-Storage2/lvd2-size = 20G_parent = lvdl最后,再运行一虚拟机管理器程序,以将第二虚拟硬盘38指派给虚拟机32a,并恢 复虚拟机32a对第二虚拟硬盘38的存取操作(步骤S150)。虚拟机管理器程序为运行于虚 拟机管理器30的程序,其余步骤S150中将第二虚拟硬盘38连结与虚拟机32a,以让客户端 10能够使用。而就客户端10看起来,虚拟机32仅对应于容量为扩充总容量的第二虚拟硬 盘38,且第二虚拟硬盘38的储存空间是连续的。接下来将说明客户端10如何以虚拟机32a来读取、新增、修改或删除存放于第一 虚拟硬盘36与第二虚拟硬盘38中的档案或数据。较佳的是,数据(data,亦即上述的数据)的保存是以固定长度的块(block)为单位。存放在于第二虚拟硬盘38上的数据块,以第二 虚拟硬盘38上为准;而于第二虚拟硬盘38上不存在的数据块,则以第一虚拟硬盘36为准。首先为了在扩展容量之后新增档案,虚拟硬盘的容量扩展方法另可包括接收一 新增命令,其中新增命令包括一新增目标档案;以及将新增目标档案新增于第二虚拟硬盘 38。也就是说,容量扩展之后,作为新增目标档案的使用者新增的数据被存放于第二虚拟硬 盘38。于第二虚拟硬盘38新增了新增目标档案之后,被新增的档案可供虚拟机32a直接 由第二虚拟硬盘38中读取、修改或删除。因此虚拟硬盘的容量扩展方法另可包括接收一修改命令,其中修改命令指定第 二虚拟硬盘38中的一修改目标档案,修改命令中并包括一修改数据;以及依据修改数据修 改修改目标档案。且虚拟硬盘的容量扩展方法亦可包括接收一删除命令,其中删除命令指定第二 虚拟硬盘38中的删除目标档案;以及由第二虚拟硬盘38中删除此删除目标档案。而于修改原先存放于第一虚拟硬盘36的数据时,在容量扩展之后虚拟硬盘的容 量扩展方法另可包括接收修改命令,其中修改命令指定第一虚拟硬盘36中的修改目标档 案,修改命令并包括修改数据;以及将修改数据新增于第二虚拟硬盘38。其中修改数据为 修改目标档案被改过的部分,也就是原始版本与修改后的版本的差异。换句话说,被修改过 的原先存放于第一虚拟硬盘36的数据会被分为两部分,其中仅有修改数据被存放在第二 虚拟硬盘38,而原先存放于第一虚拟硬盘36的部分并不会被修改。为了读取上述因被修改过而被分开存放于第一虚拟硬盘36以及第二虚拟硬盘38 的数据,可接收一读取命令,其中读取命令指定一读取目标档案。且读取目标档案已被修改 过而部分存在于第一虚拟硬盘36以及第二虚拟硬盘38。读取分别存放于第一虚拟硬盘36 以及第二虚拟硬盘38中的读取目标档案后,接着合并由第一虚拟硬盘36以及第二虚拟硬 盘38中读取的读取目标档案,并输出给客户端10。且删除上述因被修改过而被分开存放于第一虚拟硬盘36以及第二虚拟硬盘38的 数据时,虚拟硬盘的容量扩展方法亦可包括接收删除命令,其中删除命令指定删除目标档 案,且删除目标档案部分存在于第二虚拟硬盘38 ;以及,删除第二虚拟硬盘38中的删除目 标档案,以及删除目标档案与第一虚拟硬盘36的连结。更详细的说,第二虚拟硬盘38中可维护一档案配置表(File AllocationTable, FAT),其中档案配置表与第二虚拟硬盘38的删除目标档案之间的连结(link)字段被删除。 且被分开存放于第一虚拟硬盘36以及第二虚拟硬盘38的删除目标档案之中,第一虚拟硬 盘36以及第二虚拟硬盘38间的连结亦被删除。第二虚拟硬盘38中删除目标档案所包括的 数据块可以被初始化,也就是可用空的数据块将原先删除目标档案所占用的数据块覆盖, 使得客户端10不会再读取到删除目标档案。而第一虚拟硬盘36中原有的数据(即存放于 第一虚拟硬盘36中的部分的删除目标档案)可以不被删除。最后,要删除第一虚拟硬盘36中在扩展容量前所存放的数据时,可直接删除第一 虚拟硬盘36上的删除目标档案,亦可仅删除删除目标档案与第二虚拟硬盘38之间的连结。 也就是说,虚拟硬盘的容量扩展方法另可包括接收删除命令,其中删除命令指定仅存在于 第一虚拟硬盘36中的删除目标档案;以及删除第一虚拟硬盘36中的删除目标档案,或是删除目标档案与第二虚拟硬盘38的连结。删除目标档案与第二虚拟硬盘38的连结之后,虽 存放于第一虚拟硬盘36中删除目标档案未被删除,亦可使得客户端10不会再读取到删除 目标档案。综上所述,本发明所提供的虚拟硬盘的容量扩展方法可在第一实体硬盘的储存空 间不足时,扩展架构于第一实体硬盘上之第一虚拟硬盘的容量。且虚拟硬盘的容量扩展方 法并不需搬移第一虚拟硬盘内原有的数据,而能够非常快速地提供客户端第二虚拟硬盘。 此外,在扩展容量之后,客户端亦能一如往常地读取、新增、修改或删除档案;且这些作业亦 不需要将第一虚拟硬盘内原有的数据搬移去第二虚拟硬盘。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,在不背离本发 明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和 变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
一种虚拟硬盘的容量扩展方法,用以扩展一第一实体硬盘中被指派给一虚拟机的一第一虚拟硬盘的容量,其特征在于,该方法包括提供一第二实体硬盘,该第二实体硬盘的可用容量不小于一扩充总容量;停止对该第一虚拟硬盘的存取操作;于该第二实体硬盘上建立容量为该扩展总容量的一第二虚拟硬盘;连结该第二虚拟硬盘与该第一虚拟硬盘的储存空间;以及运行一虚拟机管理器程序,以将该第二虚拟硬盘指派给该虚拟机,并恢复该虚拟机对该第二虚拟硬盘的存取操作。
2.如权利要求1所述的虚拟硬盘的容量扩展方法,其特征在于,在该运行该虚拟机管 理器程序的步骤之后另包括接收一新增命令,其中该新增命令包括一新增目标档案;以及 将该新增目标档案新增于该第二虚拟硬盘。
3.如权利要求2所述的虚拟硬盘的容量扩展方法,其特征在于,在该将该新增目标档 案新增于该第二虚拟硬盘的步骤之后,另包括接收一修改命令,其中该修改命令指定该第二虚拟硬盘中的一修改目标档案,该修改 命令并包括一修改数据;以及依据该修改数据修改该修改目标档案。
4.如权利要求2所述的虚拟硬盘的容量扩展方法,其特征在于,在该将该新增目标档 案新增于该第二虚拟硬盘的步骤之后,另包括接收一删除命令,其中该删除命令指定该第二虚拟硬盘中的一删除目标档案;以及 由该第二虚拟硬盘中删除该删除目标档案。
5.如权利要求1所述的虚拟硬盘的容量扩展方法,其特征在于,在该运行该虚拟机管 理器程序的步骤之后另包括接收一修改命令,其中该修改命令指定该第一虚拟硬盘中的一修改目标档案,该修改 命令并包括一修改数据;以及将该修改数据新增于该第二虚拟硬盘,并将该修改数据作为该修改目标档案的一部份 与该修改目标档案相连接。
6.如权利要求5所述的虚拟硬盘的容量扩展方法,其特征在于,在该将该修改数据新 增于该第二虚拟硬盘,并将该修改数据作为该修改目标档案的一部份与该修改目标档案相 连接的步骤之后,另包括接收一读取命令,其中该读取命令指定一读取目标档案,且该读取目标档案部分存在 于该第一虚拟硬盘以及该第二虚拟硬盘;读取该第一虚拟硬盘以及该第二虚拟硬盘中的该读取目标档案;以及 合并并输出由该第一虚拟硬盘以及该第二虚拟硬盘中读取的该读取目标档案。
7.如权利要求5所述的虚拟硬盘的容量扩展方法,其特征在于,在该将该修改数据新 增于该第二虚拟硬盘,并将该修改数据作为该修改目标档案的一部份与该修改目标档案相 连接的步骤之后,另包括接收一删除命令,其中该删除命令指定一删除目标档案,且该删除目标档案部分存在 于该第一虚拟硬盘以及该第二虚拟硬盘;以及删除该该第二虚拟硬盘中的该删除目标档案,以及该删除目标档案与该第一虚拟硬盘 的连结。
8.如权利要求1所述的虚拟硬盘的容量扩展方法,其特征在于,在该运行该虚拟机管 理器程序的步骤之后另包括接收一删除命令,其中该删除命令指定仅存在于该第一虚拟硬盘中的一删除目标档 案;以及删除该第一虚拟硬盘中的该删除目标档案,或是删除该目标档案与该第二虚拟硬盘的 连结。
9.如权利要求1所述的虚拟硬盘的容量扩展方法,其特征在于,该第一虚拟硬盘的容 量加上该第一实体硬盘的可用容量小于该扩展总容量。
全文摘要
本发明公开了一种虚拟硬盘的容量扩展方法,用以扩展第一实体硬盘中被指派给虚拟机的第一虚拟硬盘的容量。虚拟硬盘的容量扩展方法包括提供第二实体硬盘,其中第二实体硬盘的可用容量不小于扩充总容量;停止对第一虚拟硬盘的存取操作;于第二实体硬盘上建立容量为扩展总容量的第二虚拟硬盘;连结第二虚拟硬盘与第一虚拟硬盘的储存空间;以及运行虚拟机管理器程序,以将第二虚拟硬盘指派给虚拟机,并恢复虚拟机对第二虚拟硬盘的存取操作。
文档编号G06F3/06GK101876884SQ20091025332
公开日2010年11月3日 申请日期2009年11月30日 优先权日2009年11月30日
发明者闫硕, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1