文件碎片整理方法、装置及设备的制作方法

文档序号:6380867阅读:181来源:国知局
专利名称:文件碎片整理方法、装置及设备的制作方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种文件碎片整理方法、装置及设备。
背景技术
Windows操作系统下的文件系统会存在文件碎片化的问题,即文件被分散保存在磁盘的不同地方,而不是连续地保存。碎片化的文件会导致文件系统不得不用更多的10(输入输出,Input Output)来进行读写操作,这显然会降低性能,增加不必要的CPU、I0和带宽开销。目前常采用磁盘碎片整理工具来对碎片进行整理,如Windows操作系统自带的碎片整理工具,或其它第三方的磁盘碎片整理工具。传统的磁盘碎片整理工具整理磁盘碎片的方法是将文件碎片从其原存储位置搬运到空闲的存储空间上,将分散的碎片重新以连续 的方式排列回原存储空间上,从而形成文件在存储空间上的连续保存。但是这样的磁盘碎片整理方法会带来以下问题在碎片整理的过程中几乎不能进行IO访问;对于剩余磁盘空间过小,或严重碎片化的文件,整理时间非常长且整理效果很差,甚至由于不存在足够的空闲存储空间,而根本无法对其进行碎片整理。

发明内容
有鉴于此,本发明实施例提供了一种在整理过程对主机IO基本无影响,且不受磁盘空间过小或文件严重碎片化的影响的文件碎片整理方法、装置及设备。为达此目的,在第一方面,本发明提出了一种文件碎片整理方法,包括向存储设备发送读取文件的信息的请求;接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;向所述存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。结合第一方面,在第一种可能的实施方式中,所述文件碎片整理方法还包括判断所述文件的碎片中是否有数据没有按虚拟卷页对齐;如果是,则计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页;向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。结合第一方面,在第二种可能的实施方式中,所述文件碎片整理方法还包括修改所述文件的元数据。结合第一方面,在第三种可能的实施方式中,在所述向存储设备发送文件碎片整理请求之前还包括对所述文件进行加锁处理,以禁止访问所述文件。在第二方面,本发明提出了一种文件碎片整理方法,包括根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布;根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小,所述虚拟卷页是虚拟卷的最小存储单位; 接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布;根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。结合第二方面,在第一种可能的实施方式中,所述文件碎片整理方法还包括当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页;接收所述主机发送的数据搬移指令;将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。在第三方面,本发明提出了一种文件碎片整理装置,其特征在于,包括信息请求模块,向存储设备发送读取文件的信息的请求;信息获取模块,接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;查询模块,向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;计算模块,根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;整理请求模块,向所述存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。结合第三方面,在第一种可能的实施方式中,所述文件碎片整理装置还包括判断模块,判断所述文件的碎片中是否有数据没有按虚拟卷页对齐;如果是,则计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;分配指令模块,向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页;
搬移指令模块,向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。结合第三方面,在第二种可能的实施方式中,所述文件碎片整理装置还包括修改模块,修改所述文件的元数据。结合第三方面,在第三种可能的实施方式中,所述文件碎片整理装置还包括加锁模块,在所述向存储设备发送文件碎片整理请求之前对所述文件进行加锁处理,以禁止访问所述文件。在第四方面,本发明提出了一种文件碎片整理装置,包括信息提供模块,根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布;查询响应模块,根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小, 所述虚拟卷页是虚拟卷的最小存储单位;整理请求接收模块,接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布;更改模块,根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。结合第四方面,在第一种可能的实施方式中,所述文件碎片整理装置还包括分配指令接收模块,当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;分配模块,给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页;搬移指令接收模块,接收所述主机发送的数据搬移指令;搬移模块,将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。本发明实施例在计算获得文件的碎片在存储设备的虚拟卷页上的分布以后,通过对所述存储设备的磁盘块与虚拟卷页的映射关系进行更改,使得文件在虚拟卷上呈现连续存储状态,由于没有对所述存储设备的磁盘块上的数据本身进行修改,所以对所述存储设备的磁盘块上的文件的物理存储形态没有改变,对主机IO也基本无影响,基本不损伤磁盘的寿命,且不受磁盘空间过小或文件严重碎片化的影响。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I示出了磁盘阵列的分块及虚拟化的示意图;图2示出了根据本发明的一个实施例的一种文件碎片整理方法的流程图;图3a示出了文件碎片按虚拟卷页对齐的一个示例的虚拟卷的示意图;图3b示出了根据本发明的一个实施例对图3a所示的虚拟卷进行文件碎片整理后得到的虚拟卷的示意图;图4a示出了文件碎片没有按虚拟卷页对齐的一个示例的虚拟卷的示意图;图4b示出了根据本发明的一个实施例对图4a所示的虚拟卷进行虚拟卷页对齐处理的不意图;图4c示出了根据本发明的一个实施例对图4a所示的虚拟卷进行文件碎片整理后得到的虚拟卷的示意图;图5示出了根据本发明的一个实施例的虚拟卷页对齐处理的流程图;图6示出了根据本发明的另一个实施例的一种文件碎片整理方法的结构图;图7示出了根据本发明的另一个实施例的虚拟卷页对齐处理的结构图;
图8示出了根据本发明的一个实施例的文件碎片整理装置的结构图;图9示出了根据本发明的另一个实施例的文件碎片整理装置的结构图;图10示出了根据本发明的另一个实施例的文件碎片整理装置的结构图;图11示出了根据本发明的另一个实施例的文件碎片整理装置的结构图;图12示出了根据本发明的一个实施例的一种文件碎片整理设备的结构图。
具体实施例方式下面将详细参考本发明的各实施例,其示例显示在附图和下文描述中。尽管结合示例性实施例描述了本发明,但应该理解,本说明书无意将本发明限制于这些示例性实施例。相反,本发明不仅覆盖这些示例性实施例,而且也覆盖包含在由所附权利要求书限定的本发明的实质和范围内的各种替代物、修改、等价物和其它实施例。如图I所示,现代存储技术中的磁盘阵列的虚拟化功能将存储设备上所有磁盘的存储空间进行分块,然后将各个磁盘块按一定的原则组合成虚拟卷,向用户呈现为LUN (逻辑单元号,Logical Unit Number)。图I显示了基于RAID (独立冗余磁盘阵列,RedundantArray of Inexpensive Disks)原则组合虚拟卷的情况,其包括被分块的磁盘101,由磁盘块组成的RAID102,和由RAID组成的虚拟卷103。实际上,也可基于其他原则组合虚拟卷。此时每一个虚拟卷都有一个最小的组成单位(如果有RAID,则最小组成单位为RAID的大小;如果没有使用RAID,则最小的组成单位可以为上述磁盘块的大小),下文将虚拟卷的最小组成单位称为虚拟卷页。换言之,虚拟卷可由很多个物理空间连续或不连续的磁盘块组成,实际实现中,一般由将磁盘块映射到虚拟卷页的映射表对各个磁盘块进行组织,从而对用户以虚拟卷的形式呈现为一个连续的空间。图2显示了根据本发明的一个实施例的一种文件碎片整理方法的流程图,在该实施例中,该方法主要包括S201,向存储设备发送读取文件的信息的请求;S202,接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;S203,向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;S204,根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;
S205,向所述存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。在该实施例中,通过更改所述存储设备的磁盘块与虚拟卷中的虚拟卷页的映射关系,可将原本映射到不连续的虚拟卷页上的碎片映射到连续的虚拟卷页上,以在虚拟卷上呈现连续的存储状态,使得文件操作系统能够在虚拟卷上对文件进行连续读取。由于在该实施例中,文件在磁盘上的物理存储状态并未改变,几乎不发生或仅发生很少的实际物理存储空间上的数据搬运,因此碎片整理的过程基本不损伤磁盘的寿命,且数据搬运可在存储后台进行,不消耗主机的CPU,使得整理速度至少提高I 2个数量级,且对主机IO基本无影响。优选地,主机可例如通过文件系统API (应用编程接口,application programminginterface))与存储设备进行通信。优选地,在步骤S202中,所述文件的信息可从文件的元数据获得。在一个示例中,可通过文件的信息获得文件碎片在虚拟卷上逻辑地址,作为文件的碎片在虚拟卷上的分布。优选地,在获得文件的碎片在虚拟卷上的分布以及虚拟卷页的大小之后,在步骤S204中,可计算获得文件的各碎片分别分布在哪些虚拟卷页上,作为文件的碎片在虚拟卷页上的分布。其中,步骤S203也可在步骤S201之前进行,也就是说,本发明对获得文件的信息的操作与获得虚拟卷页的大小的操作的执行顺序不做限定。在图3a所示的本发明的一个实施例中,文件的碎片在所述虚拟卷页上的分布为按虚拟卷页对齐,即虚拟卷页被同一文件的碎片填充。具言之,如图3a所示,每一个方块代表一个虚拟卷页,多个阴影表不的碎片301代表一个文件的多个碎片,多个网格表不的碎片302代表另一个文件的多个碎片。如图3a所示的,碎片301映射在不连续的虚拟卷页上,碎片302也映射在不连续的虚拟卷页上,且碎片301和碎片302全部是按虚拟卷页对齐的,即每个虚拟卷页都被同一文件的碎片填充。在该实施例这种情况下,可在计算获得文件的碎片在虚拟卷页上的上述分布后,直接向存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态,从而完成碎片整理。图3b示出了按照图2所示实施例的方法对图3a所示的虚拟卷进行碎片整理后得到的数据呈连续分布状态的虚拟卷的示意图。在图4a所示的本发明的另一个实施例中,文件的碎片在所述虚拟卷页上的分布为没有按虚拟卷页对齐,即存在一个虚拟卷页被属于不同文件的碎片填充的情况。如图4a所示,每一个方块代表一个虚拟卷页,阴影表示的碎片401、网格表示的碎片402以及网点表示的碎片403分别代表三个文件的碎片。在虚线框出的区域中,有四个虚拟卷页存在文件碎片没有按虚拟卷页对齐的情况,即这四个虚拟卷页没有被来自同一文件的碎片填充满,而是被来自两个(或两个以上)的文件的碎片填充满。在这种情况下,可以在计算获得文件的碎片在虚拟卷页上的分布后,执行图5所示的虚拟卷页对齐处理,包括S501,判断所述文件的碎片中是否有数据没有按虚拟卷页对齐,如果是,则进入步骤S502,如果否,则结束该处理;S502,计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,并进入步骤S503 ;S503,向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页;S504,向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使搬移后的数据按虚拟卷页对齐。在完成上述处理之后,可向存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在虚拟卷页(包含上述空闲虚拟卷页)上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
优选地,在完成映射关系的更改之后,可释放空闲虚拟卷页。图4b示出了根据图5所示的处理进行虚拟卷页对齐的过程,其中图4b的左侧示出了图4a中需要进行虚拟卷页对齐的数据,右侧示出了向分配的空闲虚拟卷页中搬移数据后得到按虚拟卷页对齐的数据。其中右侧的方块401a,402a,403a分别是图4a中的虚线框内的未按虚拟卷页对齐的碎片401、402、403构成的对齐后的虚拟卷页。优选地,使得除位于两文件的交界处的虚拟卷页外,每个空闲的虚拟卷页上仅包含一个文件的碎片,并通过使任意一个包含两个文件的碎片的虚拟卷页(图4b中以方块404所示为例)刚好位于两个文件的交界处,使得无需为该虚拟卷页对应的两个文件的碎片分配空闲虚拟卷页并搬移该两个碎片,从而进一步节省整理时间。优选地,该数据搬移可在后台进行,不消耗主机的CPU,对主机IO基本无影响。图4c示出了图4a所示的虚拟卷在完成碎片整理后得到的结果。图4a中示出的是部分碎片按虚拟卷页对齐、部分碎片没有按虚拟卷页对齐的示例,类似的,对于全部碎片均没有按虚拟卷页对齐的情况,可依照步骤S501-S504对文件碎片进行搬移之后,针对搬移后的碎片在空闲虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使文件在虚拟卷上呈现连续存储状态,完成碎片整理,并释放上述空闲虚拟卷页。优选地,在步骤S205之后,可修改文件的元数据,以记录更改映射关系后的文件的信息。优选地,在步骤S205开始之前还可对文件进行加锁,以禁止对该文件的访问,并可在上述步骤S205之后,解锁该文件。图6示出了根据本发明的另一实施例的一种文件碎片整理方法,包括S601,根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布;S602,根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小,所述虚拟卷页是虚拟卷的最小存储单位;S603,接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布;S604,根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。优选地,当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,上述实施例中的方法还包括如图7所示的虚拟卷页对齐处理S701,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;S702,给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页;S703,接收所述主机发送的数据搬移指令;S704,将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。
图8示出了根据本发明的一个实施例的文件碎片整理装置800,包括信息请求模块801,向存储设备发送读取文件的信息的请求;信息获取模块802,接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;查询模块803,向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;计算模块804,根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;整理请求模块805,向存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。在图9所示的一个优选实施例中,所述文件碎片整理装置在图8所示的实施例的基础上还可包括如下模块,以实现虚拟卷页对齐判断模块901,判断所述文件的碎片中是否有数据没有按虚拟卷页对齐;如果是,则计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;分配指令模块902,向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页;搬移指令模块903,向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。优选地,所述文件碎片整理装置还可包括修改模块,以修改所述文件的元数据。优选地,所述文件碎片整理装置还可包括加锁模块,以对所述文件进行加锁处理,从而禁止访问所述文件。图10示出了根据本发明的另一实施例的一种文件碎片整理装置1000,包括信息提供模块1001,根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布;查询响应模块1002,根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小,所述虚拟卷页是虚拟卷的最小存储单位;整理请求接收模块1003,接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布;
更改模块1004,根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。图11示出了本发明的另一优选实施例,其中文件碎片整理装置在图10所示的实施例的基础上还包括以下模块,以实现虚拟卷页对齐分配指令接收模块1101,当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;分配模块1102,给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页;搬移指令接收模块1103,接收所述主机发送的数据搬移指令;搬移模块1104,将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。 在本发明的一个实施例中,还提出一种文件碎片整理设备,其包括上述的文件碎
片整理装置。图12示出了本发明的另一个实施例的一种文件碎片整理设备的结构框图。所述设备1200可以是包含计算能力的主机服务器,或者是个人计算机PC,或者是可携带的便携式计算机或终端等等,本发明具体实施例并不对计算节点的具体实现做限定。所述设备包括处理器(processor)1210、通信接口(Communications Interface) 1220、存储器(memory array) 1230 和总线 1240。处理器1210、通信接口 1220、以及存储器1230通过总线1240完成相互间的通信。通信接口 1220用于与网元通信,比如虚拟机管理中心、共享存储等。处理器1210用于执行程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器1210可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器1230用于存放文件。存储器1230可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器,存储器1230也可以是存储器阵列。其中所述存储器1230可被分块,且所述块可按一定的原则组合成虚拟卷。程序具体可用于向存储设备发送读取文件的信息的请求;接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;向存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。优选地,存储器1230提供以下指令供处理器1210调用指令1,查询虚拟卷页大小的指令;指令2,根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态的指令;指令3,分配空闲虚拟卷页的指令,及对应的释放指令;指令4,将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐的指令。优选地,对于按虚拟卷页对齐的数据,处理器直接调用指令I和指令2整理文件碎片;对于没有按虚拟卷页对齐的数据,处理器调用指令I至指令4来整理文件碎片。 本发明提出的文件碎片整理方法、装置及系统,由于仅发生很少的数据搬运,且数据搬运在存储后台进行,不消耗主机的CPU,碎片整理速度至少提高f 2个数量级。由于仅发生很少的数据搬运,且数据搬运在存储后台进行,不消耗主机的CPU,仅需要在重新碎片整理过程中对用户的主机IO基本无影响。由于仅发生很少的数据搬运,碎片整理过程基本不损伤磁盘的寿命。由于仅需要分配少量的空闲虚拟卷页进行数据搬运,所以剩余磁盘空间过小,或严重碎片化的文件整理效果完全不受影响。采用本发明后,用户能够将碎片整理常态化,每日业务压力最小的数分钟完成碎片的整理。保持存储的无碎片化状态。上文为了描绘和描述的目的,呈现了本发明的特定示例性实施例。这些示例性实施例并非穷举的,或将本发明限制为公开的精确形式,明显地,根据上述教示的诸多修改和变化都是可行的。选择并描述这些示例性实施例是为了解释本发明的特定原理及其实际应用,从而使本领域技术人员制造并使用本发明的各个示例性实施例,及其各种替代物和修改。事实上本发明的范围由所附的权利要求书及其等价物限定。
权利要求
1.一种文件碎片整理方法,其特征在于,包括 向存储设备发送读取文件的信息的请求; 接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布; 向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位; 根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布; 向所述存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
2.根据权利要求I所述的方法,其特征在于,还包括 判断所述文件的碎片中是否有数据没有按虚拟卷页对齐; 如果是,则计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量; 向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页; 向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。
3.根据权利要求I所述的方法,其特征在于,还包括 修改所述文件的元数据。
4.根据权利要求I所述的方法,其特征在于,在所述向存储设备发送文件碎片整理请求之前还包括 对所述文件进行加锁处理,以禁止访问所述文件。
5.一种文件碎片整理方法,其特征在于,包括 根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布; 根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小,所述虚拟卷页是虚拟卷的最小存储单位; 接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布; 根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
6.根据权利要求5所述的方法,其特征在于,还包括 当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量; 给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页; 接收所述主机发送的数据搬移指令; 将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。
7.一种文件碎片整理装置,其特征在于,包括 信息请求模块,向存储设备发送读取文件的信息的请求; 信息获取模块,接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布; 查询模块,向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位; 计算模块,根据所述信息获取模块获得的所述文件的碎片在所述虚拟卷上的分布以及所述查询模块查询到的所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布; 整理请求模块,向所述存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
8.根据权利要求7所述的装置,其特征在于,还包括 判断模块,判断所述文件的碎片中是否有数据没有按虚拟卷页对齐;如果是,则计算所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量; 分配指令模块,向所述存储设备发送分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量,使得所述存储设备按照所述分配指令分配空闲虚拟卷页; 搬移指令模块,向所述存储设备发送数据搬移指令,使得所述存储设备将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。
9.根据权利要求8所述的装置,其特征在于,还包括 修改模块,修改所述文件的元数据。
10.根据权利要求7所述的装置,其特征在于,还包括 加锁模块,在所述向存储设备发送文件碎片整理请求之前对所述文件进行加锁处理,以禁止访问所述文件。
11.一种文件碎片整理装置,其特征在于,包括 信息提供模块,根据主机发送的读取文件的信息的请求,向所述主机发送文件的信息,以提供所述文件的碎片在所述存储设备的虚拟卷上的分布; 查询响应模块,根据所述主机发送的查询请求,向所述主机发送虚拟卷页的大小,所述虚拟卷页是虚拟卷的最小存储单位; 整理请求接收模块,接收主机发送的文件碎片整理请求,所述文件碎片整理请求包括所述文件的碎片在所述虚拟卷页上的分布; 更改模块,根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
12.根据权利要求11所述的装置,其特征在于,还包括 分配指令接收模块,当所述主机判断出所述文件的碎片中有数据没有按虚拟卷页对齐时,接收所述主机发送的分配指令,所述分配指令包括所述没有按虚拟卷页对齐的数据所需的空闲虚拟卷页的数量;分配模块,给所述没有按虚拟卷页对齐的数据分配空闲虚拟卷页; 搬移指令接收模块,接收所述主机发送的数据搬移指令; 搬移模块,将所述没有按虚拟卷页对齐的数据搬移至所述空闲虚拟卷页,使所述数据按虚拟卷页对齐。·
全文摘要
本发明提出了一种文件碎片整理方法和装置,该方法包括向存储设备发送读取文件的信息的请求;接收所述存储设备发送的文件的信息,以获得所述文件的碎片在所述存储设备的虚拟卷上的分布;向所述存储设备查询并获得所述存储设备中虚拟卷页的大小,所述虚拟卷页是所述虚拟卷的最小存储单位;根据所述文件的碎片在所述虚拟卷上的分布以及所述虚拟卷页的大小,计算获得所述文件的碎片在所述虚拟卷页上的分布;向存储设备发送文件碎片整理请求,使得所述存储设备根据所述文件的碎片在所述虚拟卷页上的分布更改所述存储设备的磁盘块与虚拟卷页的映射关系,使所述文件在虚拟卷上呈现连续存储状态。
文档编号G06F17/30GK102945275SQ20121044386
公开日2013年2月27日 申请日期2012年11月8日 优先权日2012年11月8日
发明者李经纬 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1