数据处理方法和装置的制作方法

文档序号:6385071阅读:208来源:国知局
专利名称:数据处理方法和装置的制作方法
数据处理方法和装置技术领域
本发明实施例涉及存储技术,尤其涉及一种数据处理方法和装置。
背景技术
存储设备中的存储介质主要用于存储各种文件,存储介质可以分为多种类型的 存储介质,有些存储介质的性能相对较高,有些存储介质的性能相对较低,例如固态硬 盘(Solid State Disk,简称为SSD)的性能高于串行连接小型计算机系统接口(Serial Attached Small Computer System Interface,简称为 SAS)硬盘,SAS硬盘的性能高于串口 (Serial Advanced TechnologyAttachment,简称为SATA)硬盘,而磁带的性能低于各硬盘 的性能等等。但是,在同时存在多种类型存储介质的情况下,需要将各文件进行分级存储。
现有技术中,若在同时存在SSD (高性能存储介质)和SATA硬盘(低性能存储介质) 的情况下,主要通过将文件先存储在SATA硬盘或SSD中,在一定时间内统计SATA硬盘中文 件的访问次数,若该文件的访问次数大于预设值时,则将该文件升级存储至SSD中;在一定 时间内统计SSD中文件的访问次数,若该文件的访问次数小于预设值时,则将该文件降级 存储至SATA硬盘中,从而实现了文件的分硬盘存储。
在实现本发明的过程中,发明人发现现有技术中,对于存储在低性能存储介质中 的小文件,只有当统计的访问次数高时才能存储在高性能存储介质中,但是小文件的访问 呈随机分布,在小文件存储在高性能存储介质后可能不会再被访问了,而将要被访问的小 文件还可能存储在低性能存储介质中,从而一直在访问存储在低性能存储介质的小文件, 无法加速对小文件的访问速度。发明内容
本发明提供一种数据处理方法和装置,用于将待存储文件的第一个数据单元存储 在高性能存储介质中,以实现加速对小文件的访问速度,提高文件的访问效率。
第一方面,本发明实施例提供一种数据处理方法,包括
将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈 值;
将所述待存储文件的第一个数据单元存储在高性能存储介质中。
结合第一方面,在第一方面的第一种可能实现的方式中,所述将所述待存储文件 的第一个数据单元存储在高性能存储介质中之后,还包括
生成所述待存储文件的元数据,将所述待存储文件的元数据存储在高性能存储介 质或低性能存储介质中。
结合第一方面的第一种可能实现的方式,在第一方面的第二种可能实现的方式 中,还包括
若所述高性能存储介质的存储利用率大于第一存储利用率阈值,且所述第一个数 据单元的访问次数小于第一访问次数阈值或所述待存储文件的元数据的访问次数小于第二访问次数阈值,则将存储在所述高性能存储介质中的第一个数据单元转移存储至低性能 存储介质中,并更新所述待存储文件的元数据。
结合第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式,在 第一方面的第三种可能实现的方式中,所述将所述待存储文件的第一个数据单元存储在高 性能存储介质中之后,还包括
将所述待存储文件的后续数据单元存储在低性能存储介质中。
结合第一方面的第三种可能实现的方式,在第一方面的第四种可能实现的方式 中,所述将所述待存储文件的后续数据单元存储在低性能存储介质中之后,还包括
更新所述待存储文件的元数据。
结合第一方面的第四种可能实现的方式,在第一方面的第五种可能实现的方式 中,还包括
若所述高性能存储介质的存储利用率小于第二存储利用率阈值,且所述待存储文 件的后续数据单元的访问次数大于第三访问次数阈值或所述待存储文件的元数据的访问 次数大于第四访问次数阈值,则将存储在所述低性能存储介质中的所述后续数据单元转移 存储至所述高性能存储介质中,并更新所述待存储文件的元数据。
第二方面,本发明实施例提供一种数据处理装置,包括
数据分成单元,用于将待存储文件分成至少一个数据单元,每个数据单元的大小 不超过数据单元阈值;
数据分配单元,用于将所述待存储文件的第一个数据单元存储在高性能存储介质 中。
结合第二方面,在第二方面的第一种可能实现的方式中,还包括
元数据生成单元,用于在所述数据分配单元将所述待存储文件的第一个数据单元 存储在闻性能存储介质中之后,生成所述待存储文件的兀数据;
所述数据分配单元还用于将所述待存储文件的元数据存储在高性能存储介质或 低性能存储介质中。
结合第二方面的第一种可能实现的方式,在第二方面的第二种可能实现的方式 中,所述数据分配单元还用于若所述高性能存储介质的存储利用率大于第一存储利用率阈 值,且所述第一个数据单元的访问次数小于第一访问次数阈值或所述待存储文件的元数据 的访问次数小于第二访问次数阈值,则将存储在所述高性能存储介质中的第一个数据单元 转移存储至低性能存储介质中;
所述元数据生成单元还用于在所述数据分配单元将存储在所述高性能存储介质 中的第一个数据单元转移存储至低性能存储介质中之后,更新所述待存储文件的元数据。
结合第二方面的第一种可能实现的方式或第二方面的第二种可能实现的方式,在 第二方面的第三种可能实现的方式中,所述数据分配单元还用于将所述待存储文件的第一 个数据单元存储在高性能存储介质中之后,将所述待存储文件的后续数据单元存储在低性 能存储介质中。
结合第二方面的第三种可能实现的方式,在第二方面的第四种可能实现的方式 中,所述元数据生成单元,还用于在所述数据分配单元将所述待存储文件的后续数据单元 存储在低性能存储介质中之后,更新所述待存储文件的元数据。
结合第二方面的第四种可能实现的方式,在第二方面的第五种可能实现的方式 中,所述数据分配单元还用于若所述高性能存储介质的存储利用率小于第二存储利用率阈 值,且所述待存储文件的后续数据单元的访问次数大于第三访问次数阈值或所述待存储文 件的元数据的访问次数大于第四访问次数阈值,则将存储在所述低性能存储介质中的所述 后续数据单元转移存储至所述高性能存储介质中;
所述元数据生成单元还用于在所述数据分配单元将将存储在所述低性能存储介 质中的所述后续数据单元转移存储至所述高性能存储介质中之后,更新所述待存储文件的 元数据。
本发明提供一种数据处理方法和装置,通过将待存储文件分成至少一个数据单 元,每个数据单元的大小不超过数据单元阈值;将待存储文件的第一个数据单元存储在高 性能存储介质中。对于文件大小不超过数据单元阈值的小文件,则可以整个存储在高性能 存储介质中,从而可以加速对小文件的访问速度,提高文件的访问效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。
图1为本发明数据处理方法实施例一的流程图2为本发明数据处理方法实施例二的流程图3为本发明数据处理方法实施例三的流程图4为本发明数据处理装置实施例一的结构示意图5为本发明数据处理装置实施例二的结构示意图6为本发明数据处理系统实施例一的结构示意图7为本发明提供的计算节点实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据处理方法实施例一的流程图,如图1所示,本实施例的方法可以 包括
步骤101、将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据 单元阈值。
在本实施例中,将接收到的待存储文件按照数据单元阈值分成至少一个数据单 元,并且每个数据单元的大小不超过数据单元阈值,其中,本领域普通技术人员可以理解, 该数据单元阈值可以根据实际应用的文件系统中小文件的统计信息来确定,本发明在此不 做限制。
当接收到的待存储文件为大小不超过数据单元阈值的小文件时,则可以将该待存 储文件分为一个数据单元。当接收到的待存储文件为大小超过数据单元阈值的大文件时, 则可以将该存储文件分为多个数据单元,其中,最后一个数据单元的大小不超过数据单元 阈值,而除最后一个数据单元之外的其它数据单元的大小均为数据单元阈值。
步骤102、将待存储文件的第一个数据单元存储在高性能存储介质中。
在本实施例中,在存储设备中可以同时存在多种存储介质的情况,可以将该存储 设备中访问速度相对快的存储介质称为高性能存储介质,可以将该存储设备中访问速度相 对慢的存储介质称为低性能存储介质,然后,将待存储文件所分成的第一个数据单元存储 在高性能存储介质中;当待存储文件为大小不超过数据单元阈值的小文件时,则可以将整 个待存储文件(即小文件)存储在高性能存储介质中。当待存储文件为大小超过数据单元阈 值的大文件时,将该存储文件的第一个数据单元存储在高性能存储介质中。
本发明实施例一提供的数据处理方法,通过将待存储文件分成至少一个数据单 元,每个数据单元的大小不超过数据单元阈值;将待存储文件的第一个数据单元存储在高 性能存储介质中。对于文件大小不超过数据单元阈值的小文件,则可以整个存储在高性能 存储介质中,从而可以加速对小文件的访问速度,提高文件的访问效率。
图2为本发明数据处理方法实施例二的流程图,如图2所示,本实施例的方法可以 包括
步骤201、将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据 单元阈值。
步骤202、将待存储文件的第一个数据单元存储在高性能存储介质中。
在本实施例中,步骤201和步骤202的具体实现过程与本发明数据处理方法实施 例一中步骤101和步骤102的具体实现过程一致,详细可以参见上述实施例中的记载,此处 不再赘述。
步骤203、生成待存储文件的元数据,将待存储文件的元数据存储在高性能存储介 质或低性能存储介质中。
在本实施例中,在将待存储文件的第一个数据单元存储在高性能存储介质后,在 完成第一数据单元的存储后,生成该待存储文件的元数据,该元数据包括第一个数据单元 存储在高性能存储介质中的位置标识(Identity,简称为ID),通过元数据中第一个数据单 元存储在高性能存储介质中的位置ID可以从高性能存储介质中获取到该待存储文件的第 一个数据单元;如果待存储文件还有后续数据单元,则将后续数据单元存储在高性存储介 质或低性能存储介质中,在完成后续数据单元的存储后,更新该存储文件的元数据,更新后 的元数据包括第一个数据单元存储在高性能存储介质中的位置ID和后续数据单元在高 性能存储介质或低性能存储介质中的位置ID等。在生成待存储文件的元数据后,可以将待 存储文件的元数据存储在高性能存储介质或低性能存储介质中,优先地,为了提高该存储 文件的访问速度,可以将待存储文件的元数据存储在高性能存储介质中。
进一步地,本发明实施例还可以包括步骤204和步骤205。
步骤204、若高性能存储介质的存储利用率大于第一存储利用率阈值,且第一个数 据单元的访问次数小于第一访问次数阈值或待存储文件的元数据的访问次数小于第二访 问次数阈值,则将存储在高性能存储介质中的第一个数据单元转移存储至低性能存储介质中。
在本实施例中,获取高性能存储介质的存储利用率,并判断该存储利用率的大小, 以确定高性能存储介质中的存储空间是否将要处于饱和状态,可以设置与高性能存储介质 存储利用率对应的第一存储利用率阈值,其中,本领域普通技术人员可以理解,该第一存储 利用率阈值由实际应用的文件系统所决定,本发明在此不做限制;然后判断高性能存储介 质的存储利用率是否大于第一存储利用率阈值,若高性能存储介质的存储利用率大于第一 存储利用率阈值,则说明高性能存储介质中空闲的存储空间不多,需要将高性能存储介质 中不经常访问的数据单元转移存储至低性能存储介质中,以使高性能存储介质具有更多空 闲的存储空间。
在高性能存储介质的存储利用率大于第一存储利用率阈值的场景下,第一种可行 的实现方式中,可以在一定时间内统计存储在高性能存储介质中的第一个数据单元的访问 次数,并判断该第一个数据单元的访问次数是否小于第一访问次数阈值,若判断出该第一 个数据单元的访问次数不小于第一访问次数阈值,则说明该第一个数据单元为经常访问的 数据单元,不执行任何操作,结束。若判断出该第一个数据单元的访问次数小于第一访问次 数阈值,则说明该第一个数据单元为不经常访问的数据单元,然后将存储在高性能存储介 质中的该第一个数据单元转移存储至低性能存储介质中,以使高性能存储介质获得更多空 闲的存储空间,从而可以使高性能存储介质有足够的存储空间存储其它待存储文件的第一 个数据单元;需要说明的是,上述的一定时间的长短根据实际应用的文件系统而定,本发明 在此不做限制,本领域普通技术人员可以理解,上述的第一访问次数阈值由实际应用的文 件系统和一定时间的长短来决定,本发明在此不做限制。
在高性能存储介质的存储利用率大于第一存储利用率阈值的场景中,第二种可行 的实现方式中,由于获取待存储文件之前需要获取该待存储文件的元数据,因此,可以在一 定时间内统计已将第一个数据单元存储在高性能存储介质中的待存储文件的元数据的访 问次数,并判断该元数据的访问次数是否小于第二访问次数阈值,若判断出该元数据的访 问次数不小于第二访问次数阈值,则说明该待存储文件为经常访问的文件,不执行任何操 作,结束。若判断出该元数据的访问次数小于第二访问次数阈值,则说明该待存储文件为不 经常访问的文件,然后将存储在高性能存储介质中的该待存储文件的第一个数据单元转移 存储至低性能存储介质中,以使高性能存储介质获得更多空闲的存储空间,从而可以使高 性能存储介质有足够的存储空间存储其它待存储文件的第一个数据单元。需要说明的是, 上述的一定时间的长短根据实际应用的文件系统而定,本发明在此不做限制,本领域普通 技术人员可以理解,上述的第二访问次数阈值由实际应用的文件系统和一定时间的长短来 决定,本发明在此不做限制。
步骤205、更新待存储文件的元数据。
在本实施例中,由于第一个数据单元的存储位置由高性能存储介质转移至低性能 存储介质中,所以第一个数据单元的存储位置ID发生了变更,还需要更新待存储文件的元 数据,即将元数据中的第一个数据单元存储在高性能存储介质中的位置ID更新为第一个 数据单元存储在低性能存储介质中的位置ID,以通过更新后的元数据中的第一个数据单元 存储在低性能存储介质中的位置ID获取到该第一个数据单元。
本发明实施例二提供的数据处理方法,通过将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;将待存储文件的第一个数据单元存储在高 性能存储介质中;生成待存储文件的元数据,将待存储文件的元数据存储在高性能存储介 质或低性能存储介质中;若高性能存储介质的存储利用率大于第一存储利用率阈值,且第 一个数据单元的访问次数小于第一访问次数阈值或者待存储文件的元数据的访问次数小 于第二访问次数阈值,则将存储在高性能存储介质中的第一个数据单元转移存储至低性能 存储介质中,并更新待存储文件的元数据。对文件大小不超过数据单元阈值的小文件,则可 以整个存储在高性能存储介质中,从而可以加速对小文件的访问速度。进一步,还可以将不 经常访问的待存储文件的第一个数据单元转移存储至低性能存储介质中,以使高性能存储 介质获得更多空闲的存储空间,从而可以使高性能存储介质有足够的存储空间存储其它待 存储文件的第一个数据单元,提高文件的访问效率。
图3为本发明数据处理方法实施例三的流程图,如图3所示,本实施例的方法可以 包括
步骤301、将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据 单元阈值。
步骤302、将待存储文件的第一个数据单元存储在高性能存储介质中。
在本实施例中,步骤301和步骤302的具体实现过程与本发明数据处理方法实施 例一中步骤101和步骤102的具体实现过程一致,详细可以参见上述实施例中的记载,此处 不再赘述。
步骤303、生成待存储文件的元数据,将待存储文件的元数据存储在高性能存储介 质或低性能存储介质中。
在本实施例中,在将待存储文件的第一个数据单元存储在高性能存储介质后,在 完成第一数据单元的存储后,生成该待存储文件的元数据,该元数据包括第一个数据单元 存储在高性能存储介质中的位置ID,通过元数据中第一个数据单元存储在高性能存储介质 中的位置ID可以从高性能存储介质中获取到该待存储文件的第一个数据单元;在生成待 存储文件的元数据后,可以将待存储文件的元数据存储在高性能存储介质或低性能存储介 质中,优先地,为了提高该存储文件的访问速度,可以将待存储文件的元数据存储在高性能 存储介质中。
步骤304、将待存储文件的后续数据单元存储在低性能存储介质中。
在本实施例中,当待存储文件为大小不超过数据单元阈值的小文件时,可以将待 存储文件分成一个数据单元,并将该数据单元存储在高性能存储介质中,因此,该大小不超 过数据单元阈值的待存储文件全部存储在高性能存储介质中,无后续数据单元需存储在低 性能存储介质中。当待存储文件为大小不超过数据单元阈值的大文件时,可以将待存储文 件分成多个数据单元,将第一个数据单元存储在高性能存储介质中,将除第一个数据单元 之外的后续数据单元存储在低性能存储介质中。从而实现了小文件全部存储在高性能存储 介质中,而大文件的第一个数据单元存储在高性能存储介质中,后续数据单元存储在低性 能存储介质中,使得在预先不知道待存储文件是大文件还是小文件时,即可实现小文件和 大文件的分级存储,也就是,边接收待存储文件的数据,边统计待存储文件的数据的大小, 当所接收到的待存储文件的数据的大小达到数据单元阈值时,将这部分数据作为第一数据 单元,并存储在高性能存储介质中,然后统计后续接收到待存储文件的数据的大小,当数据的大小达到数据单元阈值时,即又得到一个数据单元,并存储在低性能存储介质中,可以实 现对待存储文件边接收边存储的过程。
值得注意的是,大文件可以为视频文件、备份文件等,这些大文件在大多数情况下 是被顺序访问的,在顺序访问的时候,在现有技术中,大文件的后续数据单元可以通过预读 机制来加速访问速度,而大文件的第一个数据单元的访问速度不能被加速。在本发明实施 例中,将大文件的第一个数据单元存储在高性能存储介质中,当对大文件进行读写的时候, 可以通过高性能存储介质的特性加速不能被预读的第一个数据单元的访问速度,提高大文 件的初始访问速度。其中,本领域普通技术人员可以理解,上述的预读机制与现有技术中一 致,本发明在此不做详细介绍。
步骤305、更新待存储文件的元数据。
在本实施例,将后续数据单元存储在高性存储介质或低性能存储介质中,在完成 后续数据单元的存储后,更新该存储文件的元数据,更新后的元数据包括第一个数据单元 存储在高性能存储介质中的位置ID和后续数据单元在高性能存储介质或低性能存储介质 中的位置ID等。需要说明的是,后续数据单元存储在低性能存储介质中的位置ID即为后 续数据单元中的每一个数据单元对应地具有存储在低性能存储介质中的位置ID。通过元数 据中第一个数据单元存储在高性能存储介质中的位置ID可以从高性能存储介质中获取到 该待存储文件的第一个数据单元,还可以通过元数据中后续数据单元存储在低性能存储介 质中的位置ID可以从低性能存储介质中获取到该待存储文件的后续数据单元,从而可以 获取到整个待存储文件。
步骤306、判断高性能存储介质的存储利用率是否大于第一存储利用率阈值,若 是,执行步骤307,否则执行步骤308。
在本实施例中,获取高性能存储介质的存储利用率并判断该存储利用率的大小, 以确定高性能存储介质的存储量是否将要处于饱和状态,可以设置与高性能存储介质存储 利用率对应的第一存储利用率阈值,判断高性能存储介质的存储利用率是否大于第一存储 利用率阈值,若判断出高性能存储介质的存储利用率大于第一存储利用率阈值,则说明高 性能存储介质中空闲的存储空间不多,则执行步骤307 ;若判断出高性能存储介质的存储 利用率不大于第一存储利用率阈值,则说明高性能存储介质中所存储的数据单元未处于饱 和状态,则执行步骤308。需要说明的是,本领域普通技术人员可以理解,该第一存储利用率 阈值由实际应用的文件系统所决定,本发明在此不做限制。
步骤307、若第一个数据单元的访问次数小于第一访问次数阈值或待存储文件的 元数据的访问次数小于第二访问次数阈值,则将存储在高性能存储介质中的第一个数据单 元转移存储至低性能存储介质中,并更新待存储文件的元数据。
在本实施例中,步骤307的具体实现过程与本发明数据处理方法实施例二中步骤 204和步骤205的具体实现过程一致,详细可以参见上述实施例中的记载,此处不再赘述。
步骤308、判断高性能存储介质的存储利用率是否小于第二存储利用率阈值,若 是,执行步骤309,否则结束。
在本实施例中,在判断出高性能存储介质的存储利用率不大于第一存储利用率阈 值后,则说明高性能存储介质的存储空间未处于饱和状态,还可以设置与高性能存储介质 存储利用率对应的第二存储利用率阈值,判断高性能存储介质的存储利用率是否小于第二存储利用率阈值,以确定高性能存储介质中是否具有足够多的空闲的存储空间,如果判断 出高性能存储介质的存储利用率小于第二存储利用率阈值,则说明高性能存储介质中具有 大量空闲的存储空间,执行步骤309 ;否则不执行任何操作,即结束。本领域普通技术人员 可以理解,该第二存储利用率阈值由实际应用的文件系统所决定,本发明在此不做限制,其 中,该第二存储利用率阈值小于第一存储利用率阈值。
步骤309、若待存储文件的后续数据单元的访问次数大于第三访问次数阈值或待 存储文件的元数据的访问次数大于第四访问次数阈值,则将存储在低性能存储介质中的后 续数据单元转移存储至高性能存储介质中,并更新待存储文件的元数据。
在本实施例中,如果高性能存储介质的存储利用率小于第二存储利用率阈值,则 说明高性能存储介质中具有大量空闲的存储空间,可以将低性能存储介质中经常访问的数 据单元转移存储至高性能存储介质中,以提高经常访问的数据单元的访问速度。
在高性能存储介质的存储利用率小于第二存储利用率阈值的场景下,第一种可行 的实现方式中,可以在一定时间内统计存储在低性能存储介质中的后续数据单元的访问次 数,并判断后续数据单元中每一个数据单元的访问次数是否小于第三访问次数阈值,若判 断一个后续数据单元的访问次数不大于第三访问次数阈值,则说明该后续数据单元为不经 常访问的数据单元,不执行任何操作,结束。若判断出该后续数据单元的访问次数大于第 三访问次数阈值,则说明该后续数据单元为经常访问的数据单元,然后将存储在低性能存 储介质中的该后续数据单元转移存储至高性能存储介质中,以提高后续数据单元的访问速 度;需要说明的是,上述的一定时间的长短根据实际应用的文件系统而定,本发明在此不做 限制,本领域普通技术人员可以理解,上述的第三访问次数阈值由实际应用的文件系统和 一定时间的长短来决定,本发明在此不做限制。由于该后续数据单元的存储位置由低性能 存储介质转移至高性能存储介质中,所以该后续数据单元的存储位置ID发生了变更,还需 要更新待存储文件的元数据,即将元数据中的该后续数据单元存储在低性能存储介质中的 位置ID更新为该后续数据单元存储在高性能存储介质中的位置ID,以通过更新后的元数 据中的该后续数据单元存储在高性能存储介质中的位置ID获取到该后续数据单元。
在高性能存储介质的存储利用率小于第二存储利用率阈值的场景下,第二种可行 的实现方式中,由于获取待存储文件之前需要获取该待存储文件的元数据,因此,可以在一 定时间内统计后续数据单元存储在低性能存储介质中的待存储文件的元数据的访问次数, 并判断该元数据的访问次数是否小于第四访问次数阈值,若判断出该元数据的访问次数 不大于第四访问次数阈值,则说明该待存储文件为不经常访问的文件,不执行任何操作,结 束。若判断出该元数据的访问次数大于第四访问次数阈值,则说明该待存储文件为经常访 问的文件,然后将存储在低性能存储介质中的该待存储文件的所有后续数据单元转移存储 至高性能存储介质中,以提高后续数据单元的访问速度,提高该待存储文件的访问速度。需 要说明的是,上述的一定时间的长短根据实际应用的文件系统而定,本发明在此不做限制, 本领域普通技术人员可以理解,上述的第四访问次数阈值由实际应用的文件系统和一定时 间的长短来决定,本发明在此不做限制。由于所有后续数据单元的存储位置由低性能存储 介质转移至高性能存储介质中,所以所有后续数据单元的存储位置ID发生了变更,还需要 更新待存储文件的元数据,即将元数据中的各后续数据单元存储在高性能存储介质中的位 置ID对应地更新为各后续数据单元存储在低性能存储介质中的位置ID,以通过更新后的元数据中的各后续数据单元存储在低性能存储介质中的位置ID获取到各后续数据单元。
需要说明的是,若待存储文件的后续数据单元已经存储在高性能存储介质中,则无需执行步骤309。
本发明实施例三提供的数据处理方法,通过将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;将待存储文件的第一个数据单元存储在高性能存储介质中;将待存储文件的后续数据单元存储在低性能存储介质中;生成待存储文件的元数据,将待存储文件的元数据存储在高性能存储介质或低性能存储介质中,并更新待存储文件的元数据;若高性能存储介质的存储利用率大于第一存储利用率阈值,且第一个数据单元的访问次数小于第一访问次数阈值或待存储文件的元数据的访问次数小于第二访问次数阈值,则将存储在高性能存储介质中的第一个数据单元转移存储至低性能存储介质中,并更新待存储文件的元数据;若高性能存储介质的存储利用率小于第二存储利用率阈值,且待存储文件的后续数据单元的访问次数大于第三访问次数阈值或待存储文件的元数据的访问次数大于第四访问次数阈值,则将存储在低性能存储介质中的后续数据单元转移存储至高性能存储介质中,并更新待存储文件的元数据。对于文件大小不超过数据单元阈值的小文件,则可以将第一个数据单元存储在高性能存储介质中,实现了大文件和小文件的分级存储,可以加速对小文件的访问速度和大文件的初始访问速度。进一步,还可以将不经常访问的待存储文件的第一个数据单元转移存储至低性能存储介质中,以使高性能存储介质获得更多空闲的存储空间,从而可以使闻性能存储介质有足够的存储空间存储其它待存储文件的第一个数据单元;还可以将经常访问的待存储文件的后续数据单元转移存储至高性能存储介质中,以提高文件的访问效率。
需要说明的是,上述本发明各实施例可以应用于单一文件系统中也可以应用于分布式文件系统中。
下面特举例对本发明上述实施例的可行性进行详细说明
根据实际应用的文件系统的统计信息分析可以获知,在网络硬盘应用中,文件大小为不大于128千字节(Kilobyte,简称为KB)的文件可以称为小文件,因此,数据单元阈值可以设为128KB,而且所有文件的平均大小约为5兆字节(Megabyte,简称为MB),其中,不大于128KB的小文件的大小之和占总文件大小的44%,而大于128KB的大文件的大小之和占总文件大小的56%,具体分布情况可以为128KB 256KB的大文件的大小之和占总文件的大小之和的7%、256KB IMB的大文件的大小之和占总文件的大小之和的16%、1MB 2MB的大文件的大小之和占总文件的大小之和的11%、2MB 4MB的大文件的大小之和占总文件的大小之和的11%和大于4MB的大文件的大小之和占总文件的大小之和的11%。举例来说,若存储设备中同时包括SSD和SATA硬盘,由于SSD的性能高于SATA硬盘,因此,在该存储设备中, SSD为高性能存储介质,而SATA硬盘为低性能存储介质。
以大小为128KB 256KB的大文件为例大小为128KB的第一个数据单元存储在 SSD中,而大小为(Γ128ΚΒ的第二个数据单元存储在SATA硬盘中,因此,存储在SSD中数据大小与存储在SATA硬盘中的数据大小为(1/2 X 7%) : (1/2 X 7%)。
以大小为256KB IMB的大文件为例大小为128KB的第一个数据单元存储在SSD 中,总大小为128KB 896KB的至少一个后续数据单元存储在SATA硬盘中 ,即将f 7个后续数据单元存储在SATA硬盘中。平均而言,以大小为512 640KB的大文件为例,可以将4个后续数据单元存储在SATA硬盘中,因此,存储在SSD中数据大小与存储在SATA硬盘中的数 据大小的比例为(1/5 X 16%) (4/5 X 16%)。
以大小为IMB 2MB的大文件为例大小为128KB的第一个数据单元存储在SSD中, 总大小为896KB 1920KB的多个后续数据单元存储在SATA硬盘中,即将7 15个后续数据单 元存储在SATA硬盘中。平均而言,以大小为1408 1536KB的大文件为例,可以将11个后续 数据单元存储在SATA硬盘中,因此,存储在SSD中数据大小与存储在SATA硬盘中的数据大 小的比例为(1/12 X 11%) :(11/12 X 11%)。
以大小为2MB 4MB的大文件为例大小为128KB的第一个数据单元存储在SSD中, 总大小为1920KB 3968KB的多个后续数据单元存储在SATA硬盘中,即将15 31个后续数据 单元存储在SATA硬盘中。平均而言,以大小为2944KB 3072KB的大文件为例,可以将23个 后续数据单元存储在SATA硬盘中,因此,存储在SSD中数据大小与存储在SATA硬盘中的数 据大小的比例为(1/24X11%) :(23/24 X 11%)ο
以大小为大于4MB的大文件为例128KB的第一个数据单元存储在SSD中,总大小 大于3968KB的多个后续数据单元存储在SATA硬盘中,即将大于31个后续数据单元存储在 SATA硬盘中。平均而言,以大小为3968KB 4096KB的大文件为例,可以将31个后续数据单 元存储在SATA硬盘中,因此,存储在SSD中数据大小与存储在SATA硬盘中的数据大小的比 例为(1/32 X 11%) : (31/32X11%)。
因此,平均而言,所有文件中存储在SSD中的数据大小与存储在SATA硬盘中的数 据大小的比例为[44%+( 1/2X7%)+( 1/5X 16%)+( 1/12X11%)+( 1/24X 11%)+( 1/32X 11%)] [(1/2X7%) + (4/5X16%) + (11/12X11%) + (23/24X11%)+ (31/32X11%) ]=1 :440。
如果将所有文件的元数据也存储在SSD中,而且元数据的大小与所有文件的数据 的大小的比例可以约为1:200。则此时,SSD中所存储的所有数据大小与SATA硬盘中所存 储的所有数据大小的比例为(1/200+1/440) :(1-1/440)=1 :137。其中,SSD的存储空间容 量可以为400吉字节(Gigabyte,简称为GB),SATA硬盘的存储空间容量可以为4万亿字节 (Trillionbyte,简称为TB),假设使用的是4U36盘位的存储设备(即可以设置36个硬盘), 则在该存储设备在配置3个SSD和33个SATA硬盘即可,这种配置方式使得SSD的存储空 间容量与SATA硬盘的存储空间容量的比例为1:110,可以满足将所有文件的第一个数据单 元存储在SSD中时,SSD仍然还具有空闲的存储空间,因此,将所有文件的第一个数据单元 存储在SSD (即高性能存储介质)中是可以实现的。进一步地,如果在实际应用中存在SATA 硬盘仍有足够空闲的存储空间而SSD中空闲的存储空间已不多的情况下了,还可以将SSD 中不经常访问的数据转移存储至SATA硬盘中。
需要说明的是,采用本发明上述各实施例的技术方案,可以不需要设置一些临时 缓存来存储待存储文件的数据,因此实现过程简单,这是因为这些临时缓存不仅增加了系 统的复杂性,而且临时缓存自身的可靠性不高,若发生断电的情况,则临时缓存中的数据会 全部丢失。
图4为本发明数据处理装置实施例一的结构示意图,如图4所示,本实施例的装置 可以包括数据分成单元11和数据分配单元12,其中,数据分成单元11用于将待存储文件 分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;数据分配单元12用于 将待存储文件的第一个数据单元存储在高性能存储介质中。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类 似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例一提供的数据处理装置,通过数据分成单元将待存储文件分成至少 一个数据单元,每个数据单元的大小不超过数据单元阈值;数据分配单元将待存储文件的 第一个数据单元存储在高性能存储介质中。对于文件大小不超过数据单元阈值的小文件, 则可以整个存储在高性能存储介质中,从而可以加速对小文件的访问速度,提高文件的访 问效率。
图5为本发明数据处理装置实施例二的结构示意图,如图5所示,本实施例的装置 在图4所示装置结构的基础上,进一步地,还可以包括元数据生成单元13,该元数据生成 单元13用于在数据分配单元12将待存储文件的第一个数据单元存储在高性能存储介质中 之后,生成待存储文件的元数据。上述的数据分配单元12还用于待存储文件的元数据存储 在高性能存储介质或低性能存储介质中。
更进一步地,上述的数据分配单元12还用于若高性能存储介质的存储利用率大 于第一存储利用率阈值,且第一个数据单元的访问次数小于第一访问次数阈值或待存储文 件的元数据的访问次数小于第二访问次数阈值,则将存储在高性能存储介质中的第一个数 据单元转移存储至低性能存储介质中。元数据生成单元13还用于在数据分配单元12将存 储在所述高性能存储介质中的第一个数据单元转移存储至低性能存储介质中之后,更新待 存储文件的元数据。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理类 似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例二提供的数据处理装置,通过数据分成单元将待存储文件分成至少 一个数据单元,每个数据单元的大小不超过数据单元阈值;数据分配单元将待存储文件的 第一个数据单元存储在高性能存储介质中;元数据生成单元生成待存储文件的元数据,将 待存储文件的元数据存储在高性能存储介质或低性能存储介质中;进一步地,若高性能存 储介质的存储利用率大于第一存储利用率阈值,且第一个数据单元的访问次数小于第一访 问次数阈值或者待存储文件的元数据的访问次数小于第二访问次数阈值,则数据分配单元 将存储在高性能存储介质中的第一个数据单元转移存储至低性能存储介质中,元数据生成 单元更新待存储文件的元数据。对于文件大小不超过数据单元阈值的小文件,则可以整个 存储在高性能存储介质中,从而可以加速对小文件的访问速度。进一步,还可以将不经常访 问的待存储文件的第一个数据单元转移存储至低性能存储介质中,以使高性能存储介质获 得更多空闲的存储空间,从而可以使高性能存储介质有足够的存储空间存储其它待存储文 件的第一个数据单元,提高文件的访问效率。
在本发明数据处理装置实施例三中,本实施例的装置在图5所示装置结构的基础 上,进一步地,上述的数据分配单元12还用于将待存储文件的第一个数据单元存储在高性 能存储介质中之后,将待存储文件的后续数据单元存储在低性能存储介质中。上述的元数 据生成单元13,还用于在数据分配单元12将待存储文件的后续数据单元存储在低性能存 储介质中之后,更新待存储文件的元数据。
更进一步地,上述的数据分配单元12还用于若高性能存储介质的存储利用率小 于第二存储利用率阈值,且待存储文件的后续数据单元的访问次数大于第三访问次数阈值或待存储文件的元数据的访问次数大于第四访问次数阈值,则将存储在低性能存储介质中 的后续数据单元转移存储至高性能存储介质中。上述的元数据生成单元13还用于在数据 分配单元12将将存储在所述低性能存储介质中的所述后续数据单元转移存储至所述高性 能存储介质中之后,更新待存储文件的元数据。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理类 似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例三提供的数据处理装置,对于文件大小不超过数据单元阈值的小文 件,则可以将第一个数据单元存储在高性能存储介质中,实现了大文件和小文件的分级存 储,可以加速对小文件的访问速度和大文件的初始访问速度。进一步,还可以将不经常访问 的待存储文件的第一个数据单元转移存储至低性能存储介质中,以使高性能存储介质获得 更多空闲的存储空间,从而可以使高性能存储介质有足够的存储空间存储其它待存储文件 的第一个数据单元;还可以将经常访问的待存储文件的后续数据单元转移存储至高性能存 储介质中,以提高文件的访问效率。
图6为本发明数据处理系统实施例一的结构示意图,如图6所示,本实施例的系统 可以包括虚拟文件系统10、客户端20、元数据服务30、数据服务40和存储设备50,文件 系统可以包括客户端20、元数据服务30和数据服务40,其中,虚拟文件系统10为一种用于 网络环境的分布式文件系统,是允许操作系统使用不同的文件系统的接口,是物理文件系 统与服务之间的一个接口层,虚拟文件系统10对Linux的每个文件系统的所有细节进行抽 象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。客户 端20可以采用本发明数据处理装置实施一至实施例三任一装置实施例的结构,其对应地, 可以执行图广图3中任一方法实施例的技术方案,其实现原理和技术效果类似,详细可以 参见上述实施例中的记载,此处不再赘述。元数据服务30用于提供元数据查询和访问,数 据服务40用于提供数据查询和访问,存储设备50可以包括高性能存储介质和低性能存储 介质。
图7为本发明提供的计算节点实施例一的结构示意图,如图7所示,本实施例 提供的计算节点700可以是包含计算能力的主机服务器,或者是个人计算机(Personal Computer ;以下简称PC),或者是可携带的便携式计算机或终端等,本发明在此不做限制, 本发明具体实施例并不对计算节点700的具体实现做限定。计算节点700可以包括处理 器(Processor) 710、通信接口(Communications Interface) 720、存储器(memory) 730、通 信总线740,其中,处理器710、通信接口 720和存储器730通过通信总线740完成各设备之 间的通信,处理器710用于与网元750通信,网元750可以为虚拟机管理中心或者共享存储坐 寸ο
存储器730用于存储执行本发明方案的程序代码。存储器730可以包含高 速随机存储器(Random Access Memory,简称为RAM),也可以还包括非易失性存储器 (Non-volatile Memory),例如为至少一个磁盘存储器。
处理器710用于执行存储在存储器730中的程序代码,具体地,程序代码包括计 算机操作指令。其中,处理器710可以是一个中央处理器(CentralProcessing Unit,简称 为 CPU),或者是特定集成电路 ASIC (Application SpecificIntegrated Circuit ;简称为 ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
在一些实施方式中,存储器730存储了如下的元素,可执行模块或者数据结构,或 者他们的子集,或者他们的扩展集
操作系统731,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任 务;
应用模块732,包含各种应用程序,用于实现各种应用业务。
应用模块732中包括但不限于数据分成单元733和数据分配单元734。进一步 地,应用模块732还可以包括元数据生成单元735。应用模块732中各单元的具体实现参见 本发明数据处理装置实施例一、二或三中的相应单元,在此不赘述。
通过本实施例提供的计算节点,可以提高文件的访问效率。
本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟 或者光盘等各种可以存储程序代码的介质。
最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征 进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。
权利要求
1.一种数据处理方法,其特征在于,包括将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;将所述待存储文件的第一个数据单元存储在高性能存储介质中。
2.根据权利要求1所述的方法,其特征在于,所述将所述待存储文件的第一个数据单兀存储在闻性能存储介质中之后,还包括生成所述待存储文件的元数据,将所述待存储文件的元数据存储在高性能存储介质或低性能存储介质中。
3.根据权利要求2所述的方法,其特征在于,还包括若所述高性能存储介质的存储利用率大于第一存储利用率阈值,且所述第一个数据单元的访问次数小于第一访问次数阈值或所述待存储文件的元数据的访问次数小于第二访问次数阈值,则将存储在所述高性能存储介质中的第一个数据单元转移存储至低性能存储介质中,并更新所述待存储文件的元数据。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述待存储文件的第一个数据单兀存储在闻性能存储介质中之后,还包括将所述待存储文件的后续数据单元存储在低性能存储介质中。
5.根据权利要求4所述的方法,其特征在于,所述将所述待存储文件的后续数据单元存储在低性能存储介质中之后,还包括更新所述待存储文件的元数据。
6.根据权利要求5所述的方法,其特征在于,还包括若所述高性能存储介质的存储利用率小于第二存储利用率阈值,且所述待存储文件的后续数据单元的访问次数大于第三访问次数阈值或所述待存储文件的元数据的访问次数大于第四访问次数阈值,则将存储在所述低性能存储介质中的所述后续数据单元转移存储至所述高性能存储介质中,并更新所述待存储文件的元数据。
7.一种数据处理装置,其特征在于,包括数据分成单元,用于将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;数据分配单元,用于将所述待存储文件的第一个数据单元存储在高性能存储介质中。
8.根据权利要求7所述的装置,其特征在于,还包括元数据生成单元,用于在所述数据分配单元将所述待存储文件的第一个数据单元存储在闻性能存储介质中之后,生成所述待存储文件的兀数据;所述数据分配单元还用于将所述待存储文件的元数据存储在高性能存储介质或低性能存储介质中。
9.根据权利要求8所述的装置,其特征在于,所述数据分配单元还用于若所述高性能存储介质的存储利用率大于第一存储利用率阈值,且所述第一个数据单元的访问次数小于第一访问次数阈值或所述待存储文件的元数据的访问次数小于第二访问次数阈值,则将存储在所述高性能存储介质中的第一个数据单元转移存储至低性能存储介质中;所述元数据生成单元还用于在所述数据分配单元将存储在所述高性能存储介质中的第一个数据单元转移存储至低性能存储介质中之后,更新所述待存储文件的元数据。
10.根据权利要求8或9所述的装置,其特征在于,所述数据分配单元还用于将所述待存储文件的第一个数据单元存储在高性能存储介质中之后,将所述待存储文件的后续数据单兀存储在低性能存储介质中。
11.根据权利要求10所述的装置,其特征在于,所述元数据生成单元,还用于在所述数据分配单元将所述待存储文件的后续数据单元存储在低性能存储介质中之后,更新所述待存储文件的元数据。
12.根据权利要求11所述的装置,其特征在于,所述数据分配单元还用于若所述高性能存储介质的存储利用率小于第二存储利用率阈值,且所述待存储文件的后续数据单元的访问次数大于第三访问次数阈值或所述待存储文件的元数据的访问次数大于第四访问次数阈值,则将存储在所述低性能存储介质中的所述后续数据单元转移存储至所述高性能存储介质中;所述元数据生成单元还用于在所述数据分配单元将存储在所述低性能存储介质中的所述后续数据单元转移存储至所述高性能存储介质中之后,更新所述待存储文件的元数据。
全文摘要
本发明实施例提供一种数据处理方法和装置,通过将待存储文件分成至少一个数据单元,每个数据单元的大小不超过数据单元阈值;将待存储文件的第一个数据单元存储在高性能存储介质中。对于文件大小不超过数据单元阈值的小文件,则可以整个存储在高性能存储介质中,从而可以加速对小文件的访问速度,提高文件的访问效率。
文档编号G06F17/30GK103064926SQ20121056265
公开日2013年4月24日 申请日期2012年12月21日 优先权日2012年12月21日
发明者曹宇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1