用于含虚拟机的宿主机系统的磁盘物理块分配方法和设备的制作方法

文档序号:6467866阅读:171来源:国知局

专利名称::用于含虚拟机的宿主机系统的磁盘物理块分配方法和设备的制作方法
技术领域
:本发明涉及一种为文件分配磁盘块的方法和设备,更具体地,涉及用于包括有虚拟机系统的宿主机系统的磁盘物理块分配方法和设备。
背景技术
:目前,虚拟机技术已经在很多应用领域中得到了广泛的接受。图l示出了一个示例性的虚拟机系统及其宿主机系统的例子。如图1所示,在宿主机系统100中建立了多个虚拟机系统101-104。在宿主机系统中,还包括服务控制台、宿主机系统和虚拟机系统之间的虚拟层。宿主机系统100例如是具有Intel架构,可以包括CPU、内存、硬盘以及网络接口卡等。宿主机系统100根据不同的用途和自身可用的资源为这些虚拟机系统分别分配资源,例如CPU、硬盘、内存等,由此使得每个虚拟机可以独立运行不同的应用程序。在宿主机系统中,每个单独的虚拟机中的操作系统和应用都认为自己运行在一台真实的、类似于主机的独立计算机上。如图1所示,在虚拟机上可以运行诸如Microsoft公司的Windows2000操作系统、WindowsNT操作系统、Li皿x操作系统等。每个虚拟机系统在为该虚拟机分配的虚拟磁盘上存储并读取文件并独立地执行各种运算任务。上述虚拟机的应用可以带来各种优点,例如,由于在一台宿主机系统中可以分配多个虚拟机系统,因此只需要购置宿主机就可以并行互不干扰的执行各种任务。当任务结束后,虚拟机所占用的资源可以被释放或者被灵活地裁减以应用于其他的任务,由此节约了大量的硬件投资并大大增强了系统的伸縮性和灵活性。此外,虚拟机系统还可以为关键的应用保证资源分配。由于上述优点,在实际应用中,使用虚拟机系统可以将软件和硬件成本降低约40%,并且能够降低大约70%的维护成本。在建立虚拟机的过程中,需要从宿主机的物理磁盘中分配一定的空间给虚拟机,作为虚拟机的磁盘,即虚拟磁盘。现有系统中,磁盘的最小存储单元通常称为磁盘块(diskblock),每个磁盘块的大小设置成相同,例如为512字节。虚拟磁盘也被划分成许多磁盘块,下文称为虚拟块(virtualblock),而宿主机的物理磁盘的磁盘块通常被称作物理块(physicalblock)。虚拟块和物理块之间相互映射。以下结合图2说明现有技术的宿主机系统为文件分配磁盘块的过程。如图2所示,待存储的文件是虚拟机中的文件a和文件b,假设文件a和文件b的大小均为8个文件块,即al-a8以及bl-b8。首先,虚拟机系统分配相应的虚拟磁盘块。因为难以保证总是为文件a、b分配地址连续的虚拟磁盘块,为文件a和文件b分配的虚拟磁盘块是往往散布在虚拟磁盘上。从图2可以看到,虚拟机系统为文件a和文件b的文件块al-a8和bl_b8分别分配了8个虚拟磁盘块Val-Va8和Vbl_Vb8。接下来,需要把虚拟机的虚拟块写入物理磁盘上,即为虚拟块分配相应的物理块。现有的宿主机系统在执行这一步骤时,并不考虑待写入的虚拟块之间的关系(例如,各虚拟块是否属于同一文件)。图2示意性地显示了现有技术中一种较简单的映射方式,虚拟磁盘块Val-Va8被映射到物理磁盘块Val-Va8,虚拟磁盘块Vb1-Vb8分别对应于物理磁盘块Pb1-Pb8,而不改变虚拟块Val-Va8、Vb1-Vb8之间相互位置关系。通过上述步骤,文件a和文件b的文件块al-a8、bl-b8被存储到物理块Pal-Pa8、Pbl-Pb8。此外,文件i央al-a8,bl-b8与虚拟i央Val-Va8,Vbl-Vb8、物理i央Pal-Pa8,Pbl-Pb8之间的映射关系也被保持在虚拟机系统和宿主机系统中,例如作为虚拟机系统和宿主机系统中的FAT(文件分配表信息)和目录信息(DirectoryInformation)等而保存。应当注意,图2所示为文件分配磁盘块的过程中,因为并不考虑虚拟磁盘块之间的关系,所以属于同一文件的多个虚拟块常常被分配给分散的、不连续的物理磁盘块。以下进一步解释现有技术中为文件分配存储空间的过程。现有的许多操作系统(尤其是Windows操作系统)中,采用如下的分配策略文件都被紧邻地存放在物理磁盘上。然而,当一个文件变大时,由于紧接在该文件后面的物理磁盘块已经被其他文件占用,该文件增加的内容只能存储在其他文件后面,从而该文件的内容分布在磁盘的不同位置。以下参见图3a-3c来具体说明这一问题。图3a-3c示意性地示出了文件被存储在磁盘空间的例子。图3a_3c的第一行和第一列用于标识磁盘空间地址,其中分别使用字母a-z、a-f作为横坐标和纵坐标。在存储空间头部的TOC(TableOfContents)保存了文件的目录信息,包括例如文件名称、文件的起始地址、终止地址等。参见图3a的T0C,存有文件名称为"hello,txt"的文件,该文件占据了磁盘上的ae-le位置,文件内容为"Hello,iorld"。参见图3b的TOC,存储有两个文件"hello.txt"和"bye.txt",分别占据ae-le和me-ze的位置。第二个文件的内容是"Goodbye,_world",第二个文件"bye.txt"紧邻在第一个"he1lo.txt"之后存储在磁盘上,两个文件之间没有间隙。图3c显示了对第一个文件进行扩展的时候如何在磁盘上存储。举例而言,文件"hello,txt"的内容从"Hello,—world"扩展为"Hello,—world!!"。由于第一个文件之后没有多余的存储空间,因此新增加的文件内容"!!"就无法紧接着原文件的末尾继续写入。根据现有技术的分配规则,在尚未被占用的磁盘空间的起始位置,为第一个文件的扩展内容分配磁盘空间。另一种方法是把第一个文件"hello.txt"之后的文件内容全部向后移动一定量,以容纳第一个文件的扩展内容"!!",从而扩展内容"!!"被紧邻存储在原始文件内容"Hello,jorld"之后。但是,这种方法需要对第一个文件之后的全部文件进行读、写操作,太消耗时间,因此大多数操作系统不采用这种方式。如图3c所示,在第二个文件"bye.txt"之后紧邻着为第一个文件的扩展内容"!!"分配磁盘空间。这样,扩展后的文件内容"!!"位于磁盘上的af-bf位置,相应的T0C信息被修改。这样,第一个文件"hello.txt"被存储在磁盘空间的不同位置,一部分位于磁盘上的ae-le,另一部分位于磁盘上的af-bf。应当指出,上述图3a-3c仅是从概念上示出了文件的存储方式。实际上,不同的操作系统采用不同的文件系统,也使用不同的数据结构。例如,Windows操作系统中,上述关于文件的TOC信息可以被存储在文件分配表(FAT16、FAT32)、目录表(DirectoryTable)。由上述分析可知,现有技术如图2、图3那样进行处理,会导致同一文件的多个文件块被存放在不连续的物理磁盘块。图4示意性示出了同一文件分散存储在不连续的物理磁盘块的情形,其中文件A和文件B被分割成多个碎片存放在磁盘上。这样,即使在访问同一个文件(A或B)时,盘驱动器头也需要频繁地跳转到不同的物理位置来访问文件。这样将导致文件读取时间延长。此外,盘驱动器的频繁跳转会导致使用寿命会縮短,使系统性能下降。
发明内容为了克服上述问题提出了本发明。现有技术的宿主机系统在为虚拟块分配相应的物理块以进行写入操作时,并不考虑待写入的各个虚拟块之间的关系,如图2所示。因此,属于同一文件的多个虚拟块往往被分散到物理磁盘的不连续位置上,从而不能连续存储。本发明提出的一个方案能够分析待写入的虚拟块,以识别它们是否属于同一文件,并为属于同一文件的虚拟块分配连续的物理块。这样,在很大程度上避免了同一文件被分散存储在不连续的物理磁盘块。此外,现有技术的宿主机系统为虚拟机的文件分配磁盘时,文件被相互紧邻地存储在磁盘空间上,如图3所示。本发明提出的另一方案能够使不同文件被分散到物理磁盘上而不相互紧邻地存储,进一步避免了由于文件扩展而导致同一文件被分散存储在不连续的物理磁盘块。根据本发明的一方面,提供了一种用于宿主机系统的磁盘物理块分配方法,所述宿主机系统包括虚拟机系统,所述方法包括以下步骤接收待写入的至少一个虚拟块,所述至少一个虚拟块属于至少一个文件;接收所述虚拟机系统的关于所述虚拟块的文件分配信息;分析所述虚拟块以及所述文件分配信息,以识别属于同一文件的至少一个虚拟块;为属于同一文件的至少一个虚拟块分配相应数量的连续的物理块。根据本发明的另一方面,还提供了一种用于宿主机系统的磁盘物理块分配设备,所述宿主机系统包括虚拟机系统,所述设备包括接收单元,接收待写入的至少一个虚拟块,所述至少一个虚拟块属于至少一个文件,以及接收所述虚拟机系统的关于所述虚拟块的文件分配信息;分析单元,用于分析所述虚拟块以及所述文件分配信息,以识别属于同一文件的至少一个虚拟块;物理块分配单元,用于为属于同一文件的至少一个虚拟块分配相应数量的连续的物理块。此外,所述磁盘物理块分配方法还包括把不同文件分散存储在物理磁盘上使其彼此不相邻。例如,随机地为每个文件分配起始物理块的位置以使不同文件彼此不相邻。还例如,在物理磁盘上为每个文件分配的物理块个数多于所述文件需要的物理块个数。下面将结合附图详细描述本发明的实施例,其中图1示出了根据现有技术的包含虚拟机系统的宿主机系统;图2示出了现有技术中包含虚拟机的宿主机系统为文件分配磁盘块的过程示意图;图3a-3c示出了现有技术的宿主机系统为文件分配存储空间的过程示意图;图4示出了现有技术的文件在磁盘上碎片化存储的示意图;图5为根据本发明第一实施例为文件分配磁盘块的流程图;图6为根据本发明第一实施例为文件分配磁盘块的过程示意图;图7为根据本发明第二实施例为文件分配磁盘块的流程图;图8a和图8b示出了根据本发明第二实施例为文件分配磁盘块的过程示意图9示出用于本发明的为文件分配磁盘块的设备图;图10示出执行本发明上述一系列处理的个人计算机硬件结构的例子。这里所公开的系统和方法在其各种实施例中克服了上述现有技术的缺点,并且实现了这种系统和方法之前不可能存在的优点。以下将参考附图更完整地描述本发明,附图示出了本发明的优选实施例。但是本发明可体现在许多其他的形式中,而不应当被理解为限于这里所述的实施例;相反提供这些实施例是为了公开内容将会详尽和完整,并且将会完整地将本发明的范围传达给本领域的技术人员。具体实施例方式〈第一实施例〉图5示出根据本发明第一实施例为文件分配磁盘块的流程图。具体步骤如下所述。在步骤S510,接收待写入的至少一个虚拟块,其中所述至少一个虚拟块属于至少一个文件,以及所述虚拟块的文件分配信息。在步骤S520,对所接收的虚拟块的内容及其文件分配信息进行分析,以识别属于同一文件的至少一个虚拟块。在步骤S530,为属于同一文件的至少一个虚拟块分配连续的物理块。在步骤S540,更新虚拟块与所述物理块之间的映射关系。以下结合图6为例来具体说明图5的流程。图6顶部显示了虚拟机系统中待写入的文件a和文件b,为了更清楚地说明本发明,文件a、b被示意性地分割为文件块al-a8和bl_b8。但是应当理解,文件a、b仅是示例性的,实际上,待写入的文件可以是任意数量的,待写入的文件的大小也可以是任意的,只要符合特定虚拟机系统的系统约束。首先,接收待写入的虚拟块以及所述虚拟块的文件分配信息,如图5的步骤S510所述。在本实施例中,虚拟机系统接收了待写入的虚拟块Val-Va8、Vbl-Vb8。所述虚拟块Val-Va8、Vbl-Vb8属于两个文件a、b,分别对应于文件块al-a8和bl-b8。此外,两个文件a、b的文件块al-a8、bl-b8与虚拟磁盘块al_a8和bl_b8之间的关系可由虚拟机的文件系统保持。应当指出,实际操作过程中,文件数量不受限制、且文件具有任意大小,而虚拟磁盘空间是有限的。随着在磁盘空间上对文件写入、删除、修改等操作,磁盘空间被逐渐占据,很难保证为每个文件都能够分配地址连续的虚拟空间。如图6所示,为文件a和文件b分配的虚拟磁盘块Val-Va8、Vbl-Vb8是散布在虚拟磁盘上,相互不连续。还应指出,在虚拟磁盘上形成的文件碎片未必一定会影响到系统的性能,如同在
背景技术
所介绍的那样,使系统性能降低的主要原因是物理磁盘中驱动器头的频繁移动。因此,即使在虚拟磁盘中文件a和文件b是碎片化地存储,如果能够保证文件a和文件b相应的物理磁盘块在物理磁盘上是连续的,就可以避免磁头的移动,从而提高系统性能。这也正是本发明的主要思路。根据本发明的第一实施例,所述文件分配信息包括文件分配表(FileAssignmentTable)、目录表(DirectoryTable)。不同的操作系统对文件分配表(FAT)有不同的具体定义,实现文件分配表的具体数据结构也不同。对文件分配信息的进一步详细描述请参见下述附图5的步骤S520。接下来,对所接收的虚拟块Val-Va8、Vbl_Vb8及其文件分配信息进行分析,以识别属于同一文件的至少一个虚拟块,如图5的步骤S520所述。根据本发明的第一实施例,以FAT32为例来具体说明文件分配表(FileAssignmentTable)。文件分配表是一个列表,列表的每一项记录至少如下5项信息-链表中下一块(簇)的块号;-指示链表结束的特定项(EOC);-标记损坏的簇的特定项;-标记被保留的簇的特定项;-标记未使用的簇的0。通过上述文件分配表,维护了各个文件与磁盘的簇(cluster)的对应信息,从而把文件映射到磁盘。接下来以FAT32为例来具体说明目录表(DirectoryTable)目录表至少包括下述信息-DOS文件名称-项目可用且没有后续的项...-FAT32(或FAT12/FAT16)中的第一簇的位置-文件大小。通过分析虚拟块Val-Va8及其文件分配表和目录表,可以识别出与Val_Va8相对应的各个簇属于FAT的同一个链表,而且该链表的第一簇被对应于"文件a"的目录表所标识出来,由此可以识别虚拟块Val-Va8属于"文件a"。以相似的方式,识别出Vbl-Vb8属于"文件b"。应当指出,尽管以上结合FAT32文件系统的文件分配表和目录表来具体说明了如何分析所述文件分配信息以识别属于同一文件的虚拟块,然而,上述对文件分配信息的说明仅是示范性的而非限制性的。实际上,不同的操作文件系统采用不同的文件系统,其文件分配信息可能不限于文件分配表和目录表,实现它们的具体数据结构也可以是各种形式的,例如指针链表、表格、堆栈等,只要能够通过所述虚拟块的文件分配信息识别出虚拟块属于哪一个文件即可。接下来,在步骤S520识别出虚拟块Val-Va8属于同一文件a、Vbl-Vb8属于同一文件b之后,为属于同一文件的虚拟块分配连续的物理块,如步骤S530所述。如图6所示,宿主机在物理磁盘上分别为Val-Va8分配连续的物理磁盘块Pal-Pa8,以及为Vbl-Vb8分配连续的物理磁盘块Pbl_Pb8。优选地使Val-Va8分别与Pal-Pa8——对应,以及使Vbl-Vb8分别与Pbl-Pb8——对应。当然,如果文件过大,没有相同大小的连续磁盘空间可用,则不得不将其存储在磁盘空间的不同位置上。上述分配策略尽量保证了文件a被存储在连续的物理磁盘块,文件b也被存储在连续的物理磁盘块,即同一文件被存储在连续的物理磁盘块,从而在很大程度上避免了同一文件被碎片化地存储在物理磁盘。接下来,在步骤S540更新并保存虚拟磁盘块Val-Va8、Vbl-Vb8与所述物理磁盘块Pal-Pa8、Pbl-Pb8之间的映射关系到虚拟机。本领域技术人员能够理解,虚拟磁盘块Val-Va8、Vbl_Vb8与所述物理磁盘块Pal-Pa8、Pbl-Pb8之间的映射关系可以保持虚拟机系统中。还应指出,上述映射关系也能被保持在宿主机系统中,从而不必由虚拟机再进行保存。如上所述,本发明的第一实施例通过识别属于同一文件的虚拟块并为其分配连续的物理块,从而能够避免同一文件被碎片化地存储在物理磁盘空间上。〈第二实施例>再次参见图3,如
背景技术
中所介绍的那样,如果将文件a和文件b在物理磁盘上紧邻地存储,当需要修改文件a以使其扩展时,所扩展的内容不得不被存储在其它地方,这导致同一文件被碎片化地存储在物理磁盘空间上。为了额外地解决上述技术问题,本发明提出了进一步的实施例。图7示出了根据本发明第二实施例的磁盘块分配方法的流程图,包括以下步骤在步骤S710,接收待写入的至少一个虚拟块,其中所述至少一个虚拟块属于至少一个文件,以及所述虚拟块的文件分配信息。在步骤S720,对所接收的虚拟块的内容及其文件分配信息进行分析,以识别属于同一文件的至少一个虚拟块。在步骤S730,为属于同一文件的至少一个虚拟块分配连续的物理块、并且把不同文件分散地存储在物理磁盘上使其彼此不相邻。在步骤S740,存储虚拟块与所述物理块之间的映射关系。图7所示方法流程与图5所示方法流程的区别在于,在步骤S730不仅为同一文件的虚拟块分配连续的物理块,而且要保证不同的文件不会紧邻地分配到物理空间,其他步骤S710、S720和S740与图5所示方法的相应步骤相同。如图6所示,采用第二实施例的处理方法,文件a和文件b并没有紧挨着存储,而是分散地存储在物理磁盘上使其彼此不相邻,这样就为将来文件a和文件b的扩展留出了余地,在很大程度上避免了扩展文件a或b被碎片化地存储在不同位置上。下面结合图8a-8b进一步说明采用本发明第二实施例的方法流程(如图7所示)所取得的有益效果。参见图8a,两个文件"hello,txt"和"bye.txt"分别被存储于磁盘的"hn-sn"禾口"du-qu"位置,文件"hello,txt"的内容为"Hello,—world",文件"bye.txt"的内容为"Goodbye,_world"两个文件并不紧相邻地存储,其间的空白区域由0表示。参见图8b,对文件"hello,txt"进行修改操作,例如把文件内容"Hello,_world"扩展为"Hello,jorld!!"。由于文件"hello.txt"之后留有空白区域,只需紧挨着原文件内容所占用的地址空间"hn-sn"之后直接写入扩展内容"!!"即可。修改后的文件"hello.txt"占据了一段连续的地址空间"hn-un"。这样,即使文件内容被扩展,也能够在很大程度上避免同一文件被碎片化地存储。如本领域技术人员所能理解的,可以采用各种方式来实现不同文件的分散存储、而非紧邻存储。最简单的是使文件分散存储的方法是通过随机方式来指定文件的起始物理磁盘块,即第一个物理磁盘块。如图6所示,在可分配的磁盘空间中随机地指定磁盘块Pal和Pbl的位置,只要Pbl与Pa8不相邻即可。可替换地,可以采用如下的磁盘分配方式。在文件创建时,为文件分配一连串连续的磁盘块,且所分配的磁盘块的个数多于该文件大小所需的磁盘块个数,从而在该文件之后留有一定量的未使用存储空间。这样可以保证所存储的文件不相邻。当以后文件扩展(增大)时,可以直接向该未使用空间中添加内容,而无需再次为文件分配磁盘块了,这可以在很大程度上减少磁盘碎片的产生。例如,尽管所述文件a和文件b各自只需要8个物理块,但可以分别为每个文件分配IO个物理块。至于所分配的磁盘块个数超过所需个数的额外数量,可以考虑各种因素而确定。例如,所述额外数量可以是固定的值,也可以是可变的值。所述额外数量还可以根据文件的类型、大小而确定。当然,上面只是例示了几种可能的方案,本领域普通技术人员在本发明的提示和教导下,可以根据具体文件系统的实际需要,选用各种适当方式来确定所述额外数量的值。此外,本领域普通技术人员还可以进一步结合本领域的其它文件管理技术(例如ext文件系统与诸如延时分配等)来实现本发明,也能实现文件的分散存储。在ext文件系统中,试图为需要经常扩展的文件预分配更长的块,或者分配至不同的自由空间段中的块,称之为扩展区(extent)。当多个文件同时进行扩展时,其可以避免产生文件碎片,从而避免了这些文件在磁盘上相互交错分布。基于上述实施例的教导,本领域的技术人员可以结合ext文件系统来实施本发明的磁盘块分配方案。最近还有一种称作延时分配的技术被应用于XFS和ZFS中,在reiser4和ext4中,该技术也称作刷新时分配(allocate-on-flush)。这意味着,当写入文件系统时,文件系统块被存储,但是特定文件的位置还没有确定。之后,当由于内存压力或提交处理而被迫刷新时,分配器将对文件的特性有更好的了解。使用该方法的大多数文件系统试图在单个目录中连续地刷新文件。假设经常要从单个目录进行多次读取,则索引的局域性得到了改善。Reiser4还根据目录的哈希表(hashtable)来定制文件布局,使得当以自然文件系统次序来存取文件时,总是可以顺序读取。基于上述实施例的教导,本领域的技术人员可以结合XFS和ZFS文件系统来实施本发明的磁盘块分配方案。关于XFS的进一步介绍可以参见例如http:〃en.wikipedia.org/wiki/XFS。关于ZFS的进一步介绍可以参见例如http:〃图9示出了根据本发明实施例的磁盘块分配设备900的结构图。磁盘块分配设备900包括接收单元905、分析单元910、物理块分配单元915和映射关系存储单元920。接收单元905接收待写入的至少一个虚拟磁盘块,所述虚拟磁盘块属于至少一个文件,并且,该接收单元905还接收关于所示虚拟磁盘块的文件分配信息。根据本发明的一个优选实施例,文件分配信息包括文件分配表和目录文件。分析单元910对接收单元905所接收的虚拟磁盘块内容及其文件分配信息进行分析,以识别属于同一文件的虚拟磁盘块。物理块分配单元915根据分析单元910的分析结果,为同一文件的虚拟磁盘块分配相应数量的连续的物理磁盘块。根据本发明的另一个优选实施例,所述物理块分配单元915还为不同文件分配不相邻的物理磁盘空间。例如,可以随机方式指定每个文件的第一个物理磁盘块的位置,使得不同文件分散存储、而非紧邻存储在物理磁盘上。映射关系存储单元920根据物理块分配单元915的分配结果,存储虚拟磁盘块与物理磁盘块之间的映射关系。还应当指出,根据本发明的另一个优选实施例,上述映射关系还可以保存在宿主机中,如本领域技术人员所能理解且实现的。这样,映射关系存储单元920可以从磁盘块分配设备900省略。图10显示了执行本发明上述一系列处理的个人计算机硬件结构的例子。该计算机中,CPU(中央处理单元)1001、R0M(只读存储器)1002及RAM(随机访问存储器)1003彼此通过总线1004进行连接。输入/输出接口1005连接到总线1004。该输入/输出接口1005连接到由键盘、鼠标、麦克风等构成的输入单元1006、由显示器、扬声器等构成的输出单元1007、由硬盘、非易失性存储器等构成的存储单元1008、由网络接口等构成的通信单元1009及用于驱动诸如磁盘、光盘、磁光盘或半导体存储器等的可移动介质1011的驱动器1010。这种结构的计算机中,CPU1001将存储在存储单元1008中的程序经由输入/输出接口1005和总线1004加载到RAM1003,从而执行程序。计算机(CPU1001)执行的程序被记录在作为由磁盘(包括软盘)、光盘(CD-ROM(压縮盘只读存储器))、DVD(数字多功能盘)、磁光盘、半导体存储器的封装介质的可移动介质1011上,或者经由诸如局域网、互联网以及数字微型广播的有线或无线传输介质进行提供。另外,通过将可移动介质1011安装到驱动器IOIO,程序能够经由输入/输出接口1005安装在存储单元1008中。另外,程序能够经由有线或无线传输介质由通信单元1009进行接收,并且能够被安装在存储单元1008中。此外,程序能够被预先安装在ROM1002中或存储单元1008中。尽管图10中描述的计算机系统能够支持根据本发明的提供的技术方案,但是该计算机系统只是计算机系统的一个例子。本领域的熟练技术人员可以理解,许多其它计算机系统设计也能实现本发明的实施例。本发明还可以实现为例如由图IO所示计算机系统所使用的计算机程序产品,其可以包含有用于实现根据本发明的提供的磁盘物理块分配方法的代码。在使用之前,可以把代码存储在其它计算机系统的存储器中,例如,存储在硬盘或诸如光盘或软盘的可移动的存储器中,或者经由因特网或其它计算机网络进行下载。所公开的本发明的方法可以在软件、硬件、或软件和硬件的结合中实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器、个人计算机(PC)或大型机来执行。另外,本说明书中,"系统"表示由多个设备构成的整个设备。应该注意,本发明的实施例不限于上述实施例,并且在不脱离本发明要点的情况下,可以进行各种变型。本领域技术人员应该明白,可以根据权利要求及其等同物的范围内的设计需求和其它因素想到各种变型、组合、子组合及替换。权利要求一种用于宿主机系统的磁盘物理块分配方法,所述宿主机系统包括虚拟机系统,所述方法包括以下步骤接收待写入的至少一个虚拟块,所述至少一个虚拟块属于至少一个文件;接收所述虚拟机系统的关于所述虚拟块的文件分配信息;分析所述虚拟块以及所述文件分配信息,以识别属于同一文件的至少一个虚拟块;为属于同一文件的至少一个虚拟块分配相应数量的连续的物理块。2.根据权利要求l的方法,其中所述为属于同一文件的至少一个虚拟块分配相应数量的连续的物理块的步骤还包括,把不同文件分散存储在物理磁盘上使其彼此不相邻的步骤。3.根据权利要求2的方法,其中所述把不同文件分散存储在物理磁盘上使其彼此不相邻的步骤还包括,随机地为每个文件分配起始物理块的位置以使不同文件彼此不相邻的步骤。4.根据权利要求2的方法,其中所述把不同文件分散存储在物理磁盘上使其彼此不相邻的步骤还包括,为所述同一文件分配连续的物理块使得所述连续的物理块的数目超过该文件大小所需的物理块数目的步骤。5.根据权利要求l的方法,其中所述文件分配信息包括与所述虚拟块相关的文件分配表和目录表。6.根据权利要求1的方法,还包括存储所述虚拟块与所述物理块之间的映射关系。7.—种用于宿主机系统的磁盘物理块分配设备,所述宿主机系统包括虚拟机系统,所述设备包括接收单元,接收待写入的至少一个虚拟块,所述至少一个虚拟块属于至少一个文件,以及接收所述虚拟机系统的关于所述虚拟块的文件分配信息;分析单元,用于分析所述虚拟块以及所述文件分配信息,以识别属于同一文件的至少一个虚拟块;物理块分配单元,用于为属于同一文件的至少一个虚拟块分配相应数量的连续的物理块。8.根据权利要求7的设备,其中所述物理块分配单元把不同文件分散存储在物理磁盘上使其彼此不相邻。9.根据权利要求8的设备,其中所述物理块分配单元随机地为每个文件分配起始物理块的位置以使不同文件彼此不相邻。10.根据权利要求8的设备,其中所述物理块分配单元为文件分配连续的物理块使得所述连续的物理块的数目超过该文件大小所需的物理块数目。11.根据权利要求7的设备,其中所述文件分配信息包括与所述虚拟块相关的文件分配表和目录表。12.根据权利要求7的设备,还包括映射关系存储单元,用于存储所述虚拟块与所述物理块之间的映射关系。13.—种虚拟机,包括权利要求7-12任一项所述的用于宿主机系统的磁盘物理块分配设备。全文摘要本发明提出了用于包含虚拟机的宿主机系统的磁盘物理块分配方法和设备。现有的宿主机系统在为虚拟块分配相应的物理块以进行写入操作时并不考虑待写入的各个虚拟块之间是否属于同一个文件的关系。因此,属于同一文件的多个虚拟块往往被分散到物理磁盘的不连续位置上。本发明提出的一个方案能够分析待写入的虚拟块,以识别它们是否属于同一文件,并为属于同一文件的虚拟块分配连续的物理块,在很大程度上避免了同一文件被分散存储在不连续的物理磁盘块。文档编号G06F12/06GK101727456SQ200810175010公开日2010年6月9日申请日期2008年10月24日优先权日2008年10月24日发明者李立,田启明,金凌,高志国申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1