发明内容
本发明实施例提供一种数据块处理方法、数据块存储设备及系统,用以解决现有技术中在各级存储磁盘之间进行数据迁移的时候,迁移粒度较大的缺陷。
本发明实施例提供一种数据块处理方法,包括:
获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率;
将符合预设条件的数据块迁移至第一数据块存储设备中,其中,所述预设条件为访问频率低于第一预设阈值、所述第一数据块存储设备为所述当前数据块存储设备的下一级数据块存储设备,和/或,所述预设条件为访问频率高于第二预设阈值、所述第一数据块存储设备为所述当前数据块存储设备的上一级数据块存储设备;
建立映射关系表以用于实现被迁移的数据块的访问,所述映射关系表中包括:被迁移的数据块在所述当前数据块存储设备中的逻辑单元地址与在被迁移到的第一数据块存储设备中的逻辑单元地址之间的映射关系;
其中,在所述建立映射关系表以用于实现被迁移的数据块的访问之后,还包括:
接收主机的第一访问请求,所述第一访问请求中携带有要访问的数据块在当前数据块存储设备中的第一逻辑单元地址;
判断所述要访问的数据块是否发生了迁移,若发生了迁移,则将所述第一访问请求转换为第二访问请求,所述第二访问请求中携带有所述要访问的数据块在被迁移到的第一数据块存储设备中的第二逻辑单元地址;
将所述第二访问请求发送给所述要访问的数据块被迁移到的第一数据块存储设备,以供所述要访问的数据块被迁移到的第一数据块存储设备根据所述第二访问请求中的所述第二逻辑单元地址对所述要访问的数据块进行相应处理。
本发明实施例提供一种数据块存储设备,包括:
获取模块,用于获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率;
迁移模块,用于将符合预设条件的数据块迁移至第一数据块存储设备中,其中,所述预设条件为访问频率低于第一预设阈值、所述第一数据块存储设备为所述当前数据块存储设备的下一级数据块存储设备,和/或,所述预设条件为访问频率高于第二预设阈值、所述第一数据块存储设备为所述当前数据块存储设备的上一级数据块存储设备;
建立模块,建立映射关系表以用于实现被迁移的数据块的访问,所述映射关系表中包括:被迁移的数据块在所述当前数据块存储设备中的逻辑单元 地址与在被迁移到的第一数据块存储设备中的逻辑单元地址之间的映射关系;
其中,还包括:
接收模块,用于接收主机的第一访问请求,所述第一访问请求中携带有要访问的数据块在当前数据块存储设备中的第一逻辑单元地址;
处理模块,用于判断所述要访问的数据块是否发生了迁移,若发生了迁移,则将所述第一访问请求转换为第二访问请求,所述第二访问请求中携带有所述要访问的数据块在被迁移到的第一数据块存储设备中的第二逻辑单元地址;
发送模块,用于将所述第二访问请求发送给所述要访问的数据块被迁移到的第一数据块存储设备,以供所述要访问的数据块被迁移到的第一数据块存储设备根据所述第二访问请求中的所述第二逻辑单元地址对所述要访问的数据块进行相应处理。
本发明实施例还提供一种数据块存储系统,包括至少两级如上的数据块存储设备。
本发明实施例的数据块处理方法、数据块存储设备及系统,通过获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率;并将访问频率低于第一预设阈值的数据块迁移至下一级数据块存储设备中,和/或将访问频率高于第二预设阈值的数据块迁移至上一级数据块存储设备中,从而,能够按照数据块的访问频率以数据块为粒度进行数据迁移,与现有技术中以文件为粒度相比,能够有效地细化数据迁移的粒度,提高数据迁移效率。另外,在数据迁移之后,还建立映射关系表用于记录被迁移的数据块在迁移前后的数据块存储设备中的逻辑单元地址之间的映射关系,从而也确保了被迁移的数据块的后续的正常访问。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的数据块处理方法的流程图。如图1所示,本实施例的数据块处理方法的执行主体为分级数据块存储系统中的一个数据块存储设备。本实施例的数据块处理方法,具体可以包括如下步骤:
步骤100、获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率;
步骤101、将符合预设条件的数据块迁移至第一数据块存储设备中;
其中,预设条件为访问频率低于第一预设阈值、第一数据块存储设备为当前数据块存储设备的下一级数据块存储设备,和/或,预设条件为访问频率高于第二预设阈值、第一数据块存储设备为当前数据块存储设备的上一级数据块存储设备。
步骤102、建立映射关系表以用于实现被迁移的数据块的访问。
该映射关系表中包括:被迁移的数据块在当前数据块存储设备中的逻辑单元地址(Logical Block Address;以下简称LBA)与在被迁移到的第一数据块存储设备中的LBA之间的映射关系。
本实施例的应用场景为在分级的数据存储系统中。该分级的数据存储系统包括至少两级数据块存储设备,每级包括至少一个数据块存储设备。各级数据块存储设备之间按照性能逐渐降低、成本依次降低等排列。第一级数据块存储设备可以用于存放访问热点即访问频率最高的数据块。其后的各级数据块存储设备存储的数据块的访问频率依次降低。
本实施例中,当前数据块存储设备可以获取其中存储的各个数据块在预定时间间隔内被访问的访问频率(单位时间内的访问次数)。然后当前数据 块存储设备根据预定时间间隔内各个数据块被访问的频率,将访问频率低于第一预设阈值的数据块迁移至下一级数据块存储设备中,由于低于第一预设阈值的数据块被访问的频率较低,这样可以将其迁移至性能较低的数据块存储设备。而将访问频率高于第二预设阈值的数据块迁移至上一级数据块存储设备中,由于高于第二预设阈值的数据块被访问的频率较高,这样可以将其迁移至性能较高的数据块存储设备,以更容易被访问到。最后在完成此次迁移之后,可以建立一映射关系表,在该映射关系表中记录被迁移的数据块在当前数据块存储设备中的LBA与在被迁移到的第一数据块存储设备中的LBA之间的映射关系(即,被迁移的数据块在迁移前、后的数据块存储设备中的LBA之间的映射关系)。这样,当该数据块被访问时,可以根据该映射关系表找到该数据块在被迁移到的数据块存储设备中的LBA,以实现对该数据块的访问。本实施例中进行数据迁移的时候,以数据块为单位进行迁移,数据块的大小具体可以是从当前数据块存储设备中的LBA开始的1M大小的数据块。
本发明实施例的数据块处理方法,通过获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率;并将访问频率低于第一预设阈值的数据块迁移至下一级数据块存储设备中,和/或将访问频率高于第二预设阈值的数据块迁移至上一级数据块存储设备中,从而,能够按照数据块的访问频率以数据块为粒度进行数据迁移,与现有技术中以文件为粒度相比,能够有效地细化数据迁移的粒度,提高数据迁移效率。另外,在数据迁移之后,还建立映射关系表用于记录被迁移的数据块在迁移前后的数据块存储设备中的LBA之间的映射关系,从而也确保了被迁移的数据块的后续的正常访问。而且采用本实施例的技术方案,能够在非虚拟设备上实现按照数据块对数据进行迁移。
需要说明的是,上述实施例中,获取当前数据块存储设备中的各个数据块在预定时间间隔内的访问频率,具体包括:从用于统计各个数据块被访问 的次数的热点统计表中获取各个数据块被访问的次数,然后分别计算各个数据块被访问的次数与预定时间间隔的比值,得到各个数据块在预定时间间隔内的访问频率。
需要说明的是,上述实施例中,在步骤101将符合预设条件的数据块迁移至第一数据块存储设备中之后,还包括:将热点统计表中的各个数据块被访问的次数清零。因为本次数据迁移已经完成,这样,热点统计表清零后,可以进行下一个预定时间间隔内的数据块被访问次数的记录工作。
在实际应用中,可以周期性地执行上述方法中的步骤100-102,不过,在后续执行步骤102时,仅仅更新首次建立的映射关系表即可。其中,执行周期即为上述预定时间间隔,预定时间间隔的具体取值可以根据实际需要设定,本发明实施例对此不做限定。
在实施例一中,执行步骤100-102的执行主体可以是当前数据块存储设备。
图2为本发明实施例二提供的数据块处理方法的流程图。如图2所示,本实施例的数据块处理方法在上述实施例一所述技术方案的基础上,具体可以包括如下步骤:
步骤200、接收主机的第一访问请求;执行步骤201;
其中该第一访问请求中携带有要访问的数据块在当前数据块存储设备中的第一LBA;
步骤201、判断要访问的数据块是否发生了迁移,若发生了迁移,则执行步骤202;否则,执行步骤203;
步骤202、将第一访问请求转换为第二访问请求;执行步骤204;
其中该第二访问请求中携带有要访问的数据块在被迁移到的上一级数据块存储设备(或者下一级数据块存储设备)中的第二LBA。
步骤203、不改变第一访问请求,根据第一访问请求对位于第一LBA的要访问的数据块进行相应处理;结束。
步骤204、将第二访问请求发送给要访问的数据块被迁移到的上一级数据块存储设备(或者下一级数据块存储设备),以供要访问的数据块被迁移到的上一级数据块存储设备(或者下一级数据块存储设备)根据第二访问请求中的第二LBA对要访问的数据块进行相应处理。
其中步骤201判断要访问的数据块是否发生了迁移,具体包括:判断映射关系表中是否存在所述第一LBA对应的映射关系,若存在,则确定要访问的数据块发生了迁移;此时步骤202将所述第一访问请求转换为第二访问请求,以对所述要访问的数据块进行处理,具体包括:从映射关系表中获取第一LBA对应的第二LBA;并生成携带有第二LBA的第二访问请求。
需要说明的是,在上述实施例的步骤202或者203之后,完成了一次对数据块的访问,此时可以更新热点统计表中所述要访问的数据块的访问次数,具体可以为每访问一次,将记录的所述要访问的数据块的访问次数加1。
需要说明的是,本实施例中所述的第一访问请求和第二访问请求分别可以为读请求或者写请求。
本实施例的数据块的处理方法,能够有效地保证在数据块迁移后,对被迁移的数据块正常访问。
上述实施例都是以一个包括至少两级数据块存储设备的数据块存储系统中的任意一个数据块存储设备为例来描述本发明的技术方案,需要说明的是,为了提高数据块被访问的效率,其中各级数据块存储设备对应的映射关系表可以存储在内存或者cache(缓存)中。或者可以将第一级数据块存储设备对应的映射关系表存储在内存或者cache中,其他各级数据块存储设备对应的映射关系表存储在其对应的内存或者cache中。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介 质。
图3为本发明实施例三提供的数据块存储设备的结构示意图。如图3所示,本实施例的数据块存储设备,具体可以包括:获取模块10、迁移模块11和建立模块12。
其中获取模块10用于获取当前数据块存储设备中存储的各个数据块在预定时间间隔内的访问频率。迁移模块11与获取模块10连接,迁移模块11用于根据获取模块10获取的各个数据块在预定时间间隔内的访问频率,将符合预设条件的数据块迁移至第一数据块存储设备中,其中,预设条件为访问频率低于第一预设阈值、第一数据块存储设备为当前数据块存储设备的下一级数据块存储设备,和/或,预设条件为访问频率高于第二预设阈值、第一数据块存储设备为当前数据块存储设备的上一级数据块存储设备。建立模块12与迁移模块11连接,建立模块12用于根据迁移模块11的迁移结果,建立映射关系表以用于实现被迁移的数据块的访问,该映射关系表中包括:被迁移的数据块在当前数据块存储设备中的逻辑单元地址与在被迁移到的第一数据块存储设备中的逻辑单元地址之间的映射关系。
本实施例的数据块存储设备,通过采用上述模块实现数据块处理方法与上述相关方法实施例的实现机制相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本实施例的数据块存储设备,通过采用上述模块能够按照数据块的访问频率实现以数据块为粒度进行数据迁移,与现有技术中以文件为粒度相比,能够有效地细化数据迁移的粒度,提高数据迁移效率。而且采用本实施例的技术方案,能够在非虚拟设备上实现按照数据块对数据进行迁移。
图4为本发明实施例四提供的数据块存储设备的结构示意图。如图4所示,本实施例的数据块存储设备在上述图3所示实施例的基础上,其获取模块10具体包括获取单元101和第一处理单元102。获取单元101用于从热点统计表中获取各个数据块被访问的次数,其中,热点统计表中记录有各个数 据块被访问的次数。第一处理单元102与获取单元101连接,第一处理单元102用于分别计算获取单元101获取的各个数据块被访问的次数与预定时间间隔的比值,得到各个数据块在预定时间间隔内的访问频率。此时迁移模块11与第一处理单元102连接,迁移模块11用于根据第一处理单元102计算得到的各个数据块在预定时间间隔内的访问频率,将访问频率低于第一预设阈值的数据块迁移至下一级数据块存储设备中,和/或将访问频率高于第二预设阈值的数据块迁移至上一级数据块存储设备中。
需要说明的是,上述实施例的数据块存储设备中还可以包括清零模块。该清零模块用于在迁移模块11将访问频率低于第一预设阈值的数据块迁移至下一级数据块存储设备中,和/或将访问频率高于第二预设阈值的数据块迁移至上一级数据块存储设备中之后,将热点统计表中的各个数据块被访问的次数清零。
本实施例的数据块存储设备,具体还可以包括:接收模块13、处理模块14和发送模块15。
其中接收模块13用于接收主机的第一访问请求,该第一访问请求中携带有要访问的数据块在当前数据块存储设备中的第一LBA。处理模块14与接收模块13连接,处理模块14用于根据接收模块13接收的第一访问请求,判断要访问的数据块是否发生了迁移,若已经发生了迁移,则将第一访问请求转换为第二访问请求,该第二访问请求中携带有要访问的数据块在被迁移到的第一数据块存储设备(为上一级或者下一级数据块存储设备)中的第二LBA。发送模块15与处理模块14连接,发送模块15用于将处理模块14转换得到的第二访问请求发送给要访问的数据块被迁移到的第一数据块存储设备,以供要访问的数据块被迁移到的第一数据块存储设备根据所述第二访问请求中的第二LBA对所述要访问的数据块进行相应处理。
其中处理模块14具体可以包括:确定单元141、第二处理单元142和生成单元143。确定单元141与接收模块13连接,确定单元141用于判断映射 关系表中是否存在接收模块13接收的第一访问请求中的第一LBA对应的映射关系,若存在,则确定所述要访问的数据块已经发生了迁移。第二处理单元142与确定单元141连接,第二处理单元142用于在确定单元141确定所述要要访问的数据块已经发生了迁移之后,从映射关系表中获取第一LBA对应的第二LBA。生成单元143与第二处理单元142连接,生成单元143用于生成携带有第二处理单元142获取到的第二LBA的第二访问请求。此时生成单元143还与发送模块15连接,发送模块15用于将生成单元143生成的第二访问请求发送给要访问的数据块被迁移到的第一数据块存储设备,以供要访问的数据块被迁移到的第一数据块存储设备根据所述第二访问请求中的第二LBA对要访问的数据块进行相应处理。
本实施例的数据块存储设备,通过采用上述模块实现数据块处理方法与上述相关方法实施例的实现机制相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本实施例的数据块存储设备,通过采用上述模块实现能够有效地保证在数据块迁移后,被迁移的数据块的正常访问。
需要说明的是,上述实施例的数据块存储设备中还可以包括更新模块,该更新模块用于在接收模块13接收到第一访问请求,该第一访问请求中携带有要访问的数据块在当前数据块存储设备中的第一LBA之后,更新热点统计表中所述要访问的数据块的访问次数。
图5为本发明实施例五提供数据块存储系统的结构示意图。如图5所示,本实施例的数据块存储系统,包括至少两级数据块存储设备20。每一级的数据块存储设备20可以采用上述实施例的三或者四所述的数据块存储设备。详细可以参考上述相关实施例的记载,在此不再赘述。
本发明实施例的数据块存储系统,具体实现数据块处理方法的实现机制与上述相关方法实施例的实现机制相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本发明实施例的数据块存储系统,能够按照数据块的访问频率以数据块为粒度进行数据迁移,与现有技术中以文件为粒度相比,能够有效地细化数据迁移的粒度,提高数据迁移效率。而且采用本实施例的技术方案,能够在非虚拟设备上实现按照数据块对数据进行迁移的技术效果。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。