逻辑卷的创建方法及装置的制作方法

文档序号:6363704阅读:163来源:国知局
专利名称:逻辑卷的创建方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种逻辑卷的创建方法及装置。
背景技术
目前,逻辑卷的创建通常采用LVM(Logical Volume Manager,逻辑卷管理)软件实现,具体的实现步骤如下根据物理磁盘分区生成pv(physical volume,物理卷),pv可以由多个分区或者磁盘组成,多个pv可以组成vg(volume group,卷组),那么管理员就可以在vg上创建Iv(logical volume,逻辑卷)设备。现有的LVM存在的问题是,逻辑卷管理结构复杂,命令繁多,且查错不好处理,特别是系统或者文件系统出现问题的时候,LVM恢复起来比较麻烦。

发明内容
本发明旨在至少解决上述技术问题之一。为此,根据本发明第一方面的实施例提出一种逻辑卷的创建方法,包括以下步骤 A.判断当前物理磁盘上是否存在一个或多个第一空闲空间,其中所述第一空闲空间大于或等于第一空间,所述第一空间为所要创建的逻辑卷需要的空间;B.如果是,则在所述一个或多个第一空闲空间中的第一最小空闲空间上分配第一数据块,并将所述第一数据块挂载到当前物理磁盘中的数据块链表上;C.如果否,则将所述当前物理磁盘中的第一最大空闲空间分配给第二数据块,并将所述第二数据块挂载到当前物理磁盘中的数据块链表上,以及计算所述逻辑卷需要的第二空间,并执行步骤D ;D.判断所述当前物理磁盘上是否存在一个或多个第二空闲空间,所述第二空闲空间大于或等于所述第二空间;E.如果是,则在所述一个或多个第二空闲空间中的第二最小空闲空间上分配第三数据块,并将所述第三数据块与所述第二数据块链接;以及F.如果否,则将所述当前物理磁盘中的第二最大空闲空间分配给第四数据块并将所述第四数据块与所述第二数据块链接,计算所述逻辑卷需要的第三空间,并返回步骤D。根据本发明实施例的逻辑卷的创建方法,在创建逻辑卷时首先搜寻数据块链表中是否存在足够的空闲空间,在不存在足够的空闲空间时,再针对不同的需求使用最大分配算法,保证创建的数据块的数量尽量少,数据块的空间尽量大,而且在磁盘经过多次创建和删除后,仍能保证空闲空间个数不多,且每个空闲空间较大,保证后续的磁盘分配不因为创建的逻辑卷包含的碎片过多导致磁盘寻道时间过长,从而提高使用效率。根据本发明第二方面的实施例提出一种逻辑卷的创建装置,包括判断模块,所述判断模块用于判断当前物理磁盘上是否存在一个或多个空闲空间,所述空闲空间大于或等于所需要的空间;分配模块,所述分配模块用于当所述当前磁盘上存在大于或等于所需要的第一空间的一个或多个空闲空间时,在所述一个或多个空闲空间中的最小空闲空间上分配分配数据块,当所述当前磁盘上不存在大于或等于所需要的第一空间的空闲空间时,将所述当前磁盘中的最大空闲空间给分配数据块,并计算所述逻辑卷需要的第二空间;以及挂载模块,用于将所分配的第一个数据块挂载到所述当前物理磁盘中的数据块链表上,以及链接分配给所述逻辑卷的所有数据块。根据本发明实施例的逻辑卷的创建装置,在创建逻辑卷时首先搜寻数据块链表中是否存在足够的空闲空间,在不存在足够的空闲空间时,再针对不同的需求使用最大分配算法,保证创建的数据块的数量尽量少,数据块的空间尽量大,而且在磁盘经过多次创建和删除后,仍能保证空闲空间个数不多,且每个空闲空间较大,保证后续的磁盘分配不因为创建的逻辑卷包含的碎片过多导致磁盘寻道时间过长,从而提高使用效率。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,图I是根据本发明一个实施例的逻辑卷的创建方法的流程图;图2是根据本发明一个实施例的数据块的示意图;图3是根据本发明一个实施例的创建逻辑卷的示意图;图4是根据本发明另一个实施例的创建逻辑卷的示意图;图5是根据本发明一个实施例的数据块链表和逻辑卷链表的示意图;图6是根据本发明一个实施例的逻辑卷的创建装置的结构框图;以及图7是根据本发明另一个实施例的逻辑卷的创建装置的结构框图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反, 本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。 下面参考附图描述根据本发明实施例的逻辑卷的创建方法及装置。一种逻辑卷的创建方法,包括以下步骤A.判断当前物理磁盘上是否存在一个或多个第一空闲空间,其中所述第一空闲空间大于或等于第一空间,所述第一空间为所要创建的逻辑卷需要的空间如果是,则在所述一个或多个第一空闲空间中的第一最小空闲空间上分配第一数据块,并将所述第一数据块挂载到当前物理磁盘中的数据块链表上;C.如果否,则将所述当前物理磁盘中的第一最大空闲空间分配给第二数据块,并将所述第二数据块挂载到当前物理磁盘中的数据块链表上,以及计算所述逻辑卷需要的第二空间, 并执行步骤D ;D.判断所述当前物理磁盘上是否存在一个或多个第二空闲空间,所述第二空闲空间大于或等于所述第二空间;E.如果是,则在所述一个或多个第二空闲空间中的第二最小空闲空间上分配第三数据块,并将所述第三数据块与所述第二数据块链接;以及
F.如果否,则将所述当前物理磁盘中的第二最大空闲空间分配给第四数据块并将所述第四数据块与所述第二数据块链接,计算所述逻辑卷需要的第三空间,并返回步骤D。图I是根据本发明一个实施例的逻辑卷的创建方法的流程图。如图I所示,该方法包括下述步骤。步骤S101,判断当前物理磁盘上是否存在一个或多个第一空闲空间,其中第一空闲空间大于或等于第一空间,第一空间为所要创建的逻辑卷需要的空间。在本发明的一个实施例中,空闲空间包括当前物理磁盘上的外碎片(即未被使用的数据块),以及未被分配数据块的空间等。步骤S102,如果是,则在一个或多个第一空闲空间中的第一最小空闲空间上分配第一数据块,并将该第一数据块挂载到当前物理磁盘的数据块链表上。其中,第一最小空闲空间指的是,当前多个空闲空间中最小的空闲空间。“第一”的描述只是为了与下文中将会出现的其他最小空闲空间区分,从而更加清楚的表述,不用于暗示空间大小的排序。具体地,在本发明的一个实施例中,通过以下的公式,在第一最小空闲空间上分配第一数据块,数据块的结束位置=向上取整(第一空间/数据块分配的最小单元)*数据块分配的最小单元+数据块的起始位置-I。也就是说,分配的数据块的大小为数据块分配的最小单元的整数倍。由此,分配的数据块中可能存在未被使用的部分。如图2所示为本发明一个实施例的数据块的示意图, 数据块包括当前使用部分a和空闲部分b,当前使用部分a+起始位置begin+空闲部分b = 结束位置tail。在本发明的另一个实施例中,数据块的结束位置+1 = k*数据块分配的最小单元, 其中k是小于等于物理磁盘大小/数据块分配的最小单元的自然数。如图3所示为本发明一个实施例的逻辑卷创建的示意图。在本实施例中,所要创建的逻辑卷Ivl需要的第一空间为100M,当前物理磁盘上存在1200M的空闲空间,且数据块分配的最小单元为150M,则在该1200M的空闲空间上分配150M的数据块给逻辑卷作为第一空间,并将该数据块链接到物理磁盘的数据块链表上。步骤S103,如果否,则将当前物理磁盘中的第一最大空闲空间分配给第二数据块, 并将第二数据块挂载到当前物理磁盘中的数据块链表上,以及计算逻辑卷需要的第二空间。其中,第一最大空闲空间指的是,当前物理磁盘中的最大的空闲空间。“第一”的描述只是为了与下文中将会出现的其他最大空闲空间区分,从而更加清楚的表述。其中,第二空间=第一空间-第一最大空闲空间。步骤S104,判断当前物理磁盘上是否存在一个或多个第二空闲空间,第二空闲空间大于或等于第二空间。步骤S105,如果是,则在一个或多个第二空闲空间中的第二最小空闲空间上分配第三数据块,并将该第三数据块与上述第二数据块链接起来。其中,第二最小空闲空间指的是,当前多个空闲空间中的最小空闲空间。“第二”的描述只是为了与上文中出现的第一最小空闲空间区分,从而更加清楚的表述,“第一”和“第二”的描述不用于表示空间大小的排序。步骤S106,如果否,则将当前物理磁盘中的第二最大空闲空间给分配第四数据块并将该第四数据块与上述第二数据块链接,计算逻辑卷需要的第三空间,并返回步骤S104, 继续执行上述的分配过程,直至分配的空间满足逻辑卷所需的空间,完成逻辑卷的创建。其中,第二最大空闲空间指的是,在进行完步骤S103的分配后当前物理磁盘中的最大空闲空间。应理解,第二最大空闲空间小于第一最大空闲空间。此外,第一数据块、第二数据块、第三数据块和第四数据块等仅用于描述目的,而不能理解为指示或暗示数据块的大小排序等。如图4所示为本发明另一个实施例的逻辑卷创建的示意图。在本实施例中,所要创建的逻辑卷1ν3需要的第一空间为800M,当前物理磁盘上存在150M以及750M的空闲空间,且数据块分配的最小单元为150M,则首先将该750M的空闲空间分配给数据块A给逻辑卷,并将该数据块A链接到物理磁盘的数据块链表上,然后计算出逻辑卷需要的第二空间为50M,则接着在150M的空闲空间上分配数据块B,并将该数据块B与数据块A链接起来, 完成逻辑卷1ν3的创建。在本发明的一个实施例中,逻辑卷链表可与数据块链表之间建立映射关系。如图 5所示为本发明一个实施例的逻辑卷链表与数据块链表的示意图。其中,I为逻辑卷链表,2 为数据块链表。逻辑卷LVl对应的数据块为LV1:1、LV1:2、LV1:3、LV1:5和LVl:6 ;逻辑卷 LV2对应的数据块为LV2: I、LV2:2和LV2:3 ;逻辑卷LV3对应的数据块为LV3:1和LV3:2。 由此,如果在当前使用过一段时间的物理磁盘上创建逻辑卷,那么在创建之前,需先进行逻辑卷链表与数据块链表的初始化,建立逻辑卷链表与数据块链表的映射关系。根据本发明实施例的逻辑卷的创建方法,在创建逻辑卷时首先搜寻数据块链表中是否存在足够的空闲空间,在不存在足够的空闲空间时,再针对不同的需求使用最大分配算法,保证创建的数据块的数量尽量少,数据块的空间尽量大,而且在磁盘经过多次创建和删除后,仍能保证空闲空间个数不多,且每个空闲空间较大,保证后续的磁盘分配不因为创建的逻辑卷包含的碎片过多导致磁盘寻道时间过长,从而提高使用效率。为实现上述实施例,本发明还提出一种逻辑卷的创建装置。图6是根据本发明一个实施例的逻辑卷的创建装置的结构框图。如图6所示,该装置包括判断模块10、分配模块20和挂载模块30。判断模块10用于判断当前物理磁盘上是否存在一个或多个空闲空间,空闲空间的大小大于或等于所需要的空间的大小。分配模块20用于在当前磁盘上存在满足需要的一个或多个空闲空间时,在该一个或多个空闲空间中的最小空闲空间上分配分配数据块, 在当前磁盘上不存在满足需要的空闲空间时,将当前磁盘中的最大空闲空间分配给数据块,并计算逻辑卷需要的第二空间。其中,第二空间第一空间与最大空闲空间的差。挂载模块30用于将所分配的第一个数据块挂载到当前物理磁盘中的数据块链表上,以及链接分
7配给逻辑卷的所有数据块。具体地,分配模块20可根据以下的公式,在最大空闲空间上分配数据块,数据块的结束位置=向上取整(第一空间/数据块分配的最小单元)*数据块分配的最小单元+数据块的起始位置-I。也就是说,分配的数据块的大小为数据块分配的最小单元的整数倍。由此,分配的数据块中可能存在未被使用的部分。在本发明的一个示例中,数据块包括当前使用部分和空闲部分,当前使用部分+起始位置+空闲部分=结束位置。在本发明的另一个示例中,数据块的结束位置+1 =k*数据块分配的最小单元,其中k是小于等于物理磁盘大小/数据块分配的最小单元的自然数。图7为本发明另一个实施例的逻辑卷的创建装置的结构框图。在图6所示的实施例的基础上,该装置还包括映射模块40。映射模块40用于建立逻辑卷链表与数据块链表之间的映射关系。也就是说,如果在当前使用过一段时间的物理磁盘上创建逻辑卷,那么在创建之前,需先进行逻辑卷链表与数据块链表的初始化,建立逻辑卷链表与数据块链表的映身寸关系。应理解,上述各个模块的工作过程可参照上述方法实施例的描述,此处不再详细描述。根据本发明实施例的逻辑卷的创建装置,在创建逻辑卷时首先搜寻数据块链表中是否存在足够的空闲空间,在不存在足够的空闲空间时,再针对不同的需求使用最大分配算法,保证创建的数据块的数量尽量少,数据块的空间尽量大,而且在磁盘经过多次创建和删除后,仍能保证空闲空间个数不多,且每个空闲空间较大,保证后续的磁盘分配不因为创建的逻辑卷包含的碎片过多导致磁盘寻道时间过长,从而提高使用效率。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
权利要求
1.一种逻辑卷的创建方法,其特征在于,包括以下步骤A.判断当前物理磁盘上是否存在一个或多个第一空闲空间,其中所述第一空闲空间大于或等于第一空间,所述第一空间为所要创建的逻辑卷需要的空间;B.如果是,则在所述一个或多个第一空闲空间中的第一最小空闲空间上分配第一数据块,并将所述第一数据块挂载到当前物理磁盘中的数据块链表上;C.如果否,则将所述当前物理磁盘中的第一最大空闲空间分配给第二数据块,并将所述第二数据块挂载到当前物理磁盘中的数据块链表上,以及计算所述逻辑卷需要的第二空间,并执行步骤D ;D.判断所述当前物理磁盘上是否存在一个或多个第二空闲空间,其中所述第二空闲空间大于或等于所述第二空间;E.如果是,则在所述一个或多个第二空闲空间中的第二最小空闲空间上分配第三数据块,并将所述第三数据块与所述第二数据块链接;以及F.如果否,则将所述当前物理磁盘中的第二最大空闲空间分配给第四数据块并将所述第四数据块与所述第二数据块链接,计算所述逻辑卷需要的第三空间,并返回步骤D。
2.根据权利要求I所述的逻辑卷的创建方法,其特征在于,进一步包括步骤建立逻辑卷链表与数据块链表之间的映射关系。
3.根据权利要求I或2所述的逻辑卷的创建方法,其特征在于,所述第二空间等于所述第一空间与所述第一最大空闲空间的差。
4.根据权利要求I所述的逻辑卷的创建方法,其特征在于,所述步骤C进一步包括根据以下的公式,在所述第一最小空闲空间上分配第一数据块,数据块的结束位置=向上取整(第一空间/数据块分配的最小单元)*数据块分配的最小单元+数据块的起始位置-I。
5.根据权利要求4所述的逻辑卷的创建方法,其特征在于,所述数据块包括当前使用部分以及空闲部分,其中,当前使用部分+起始位置+空闲部分=结束位置。
6.根据权利要求4所述的逻辑卷的创建方法,其特征在于,数据块的结束位置+1 = k*数据块分配的最小单元,其中k是小于等于物理磁盘大小 /数据块分配的最小单元的自然数。
7.一种逻辑卷的创建装置,其特征在于,包括判断模块,所述判断模块用于判断当前物理磁盘上是否存在一个或多个空闲空间,所述空闲空间大于或等于创建逻辑卷所需要的空间;分配模块,所述分配模块用于当所述当前磁盘上存在所述一个或多个空闲空间时,在所述一个或多个空闲空间中的最小空闲空间上分配分配数据块,当所述当前磁盘上不存在大于或等于所需要的第一空间的空闲空间时,将所述当前磁盘中的最大空闲空间分配给数据块,并计算所述逻辑卷需要的第二空间;以及挂载模块,所述挂载模块用于将所分配的第一个数据块挂载到所述当前物理磁盘中的数据块链表上,以及链接分配给所述逻辑卷的所有数据块。
8.根据权利要求7所述的逻辑卷的创建装置,其特征在于,进一步包括映射模块,所述映射模块用于建立逻辑卷链表与数据块链表之间的映射关系。
9.根据权利要求7或8所述的逻辑卷的创建装置,其特征在于,所述第二空间等于所述第一空间与所述最大空闲空间的差。
10.根据权利要求7或8所述的逻辑卷的创建装置,其特征在于,所述分配模块根据以下的公式,在所述最大空闲空间上分配数据块,数据块的结束位置=向上取整(第一空间/数据块分配的最小单元)*数据块分配的最小单元+数据块的起始位置-I。
11.根据权利要求10所述的逻辑卷的创建装置,其特征在于,所述数据块包括当前使用部分以及空闲部分,其中,当前使用部分+起始位置+空闲部分=结束位置。
12.根据权利要求10所述的逻辑卷的创建装置,其特征在于,数据块的结束位置+1 = k*数据块分配的最小单元,其中k是小于等于物理磁盘大小 /数据块分配的最小单元的自然数。
全文摘要
本发明提出一种逻辑卷的创建方法及装置。逻辑卷的创建方法包括以下步骤首先搜寻当前物理磁盘上的所有空闲空间,当存在大于或等于所要创建的逻辑卷的空间的一个或多个空闲空间时,在该一个或多个空闲空间中的最小空闲空间上分配数据块,当不存在时,采用最大匹配算法在多个空闲空间上分配数据块。通过本发明,能够保证创建的数据块的数量尽量少,数据块的空间尽量大,而且在磁盘经过多次创建和删除后,仍能保证空闲空间个数不多,且每个空闲空间较大,保证后续的磁盘分配不因为创建的逻辑卷包含的碎片过多导致磁盘寻道时间过长,从而提高使用效率。
文档编号G06F3/06GK102609220SQ201210019320
公开日2012年7月25日 申请日期2012年1月19日 优先权日2012年1月19日
发明者董洪清 申请人:北京天地云箱科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1