分层数据存储处理方法、装置以及存储设备的制作方法

文档序号:6354289阅读:229来源:国知局
专利名称:分层数据存储处理方法、装置以及存储设备的制作方法
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种分层数据存储处理方法、装置以 及存储设备。
背景技术
存储设备中使用的磁盘类型有多种,例如小型计算机系统接口(SmalIComputer System hterface ;以下简称SCSI)类型硬盘,串行高级技术附加(serial Advanced Technology Attachment,以下简称SATA)类型硬盘、固态硬盘(solid state disk,以下简 称SSD),不同类型磁盘的访问速度不同。现有的存储设备可以采用磁盘分层的方式来组织,在不同层使用不同类型的磁 盘,并可以将经常访问的数据存储到访问速度快的磁盘所在的层中,以提高存储设备整体 的访问速度,例如SSD是一种访问速度快的磁盘,其读写响应的时间很短,尤其是读响应的 时间短,可以使用SSD作为存储设备的较高级层的存储介质,优先将热点数据存储到SSD 中。另外,在存储设备中还会维护一张存储映射表,该存储映射表存储各数据块的标识、以 及其逻辑地址和存储物理地址的对应关系,标识数据块在磁盘中的存放位置,以保证数据 读写的准确性。在存储设备的使用过程中,可能会存在存储数据在不同层间迁移的情况,例如将 数据从访问速度较慢的磁盘中迁移到SSD中。在上述的迁移过程中,由于数据的物理存储 地址发生变化,需要对映射表进行更新。现有技术中如果在数据迁移的过程中发生异常掉 电的情况,已发生的数据块迁移可能未及时写入到磁盘中的存储映射表中,这将导致出现 存储映射表中的信息与实际的数据存储情况不一致的问题,从而使存储设备中存储的数据 不可用。一种现有解决方案是通过在存储设备中设置不间断电源(Uninterruptible Power Supply,以下简称UPQ的方式来避免出现上述问题,但其成本也会很高。

发明内容
本发明实施例提供一种分层数据存储处理方法、装置以及存储设备,用以解决存 储设备异常掉电后存储映射表中的信息与实际的数据存储情况不一致的问题。本发明提供了一种分层数据存储处理方法,包括在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,更新缓存中的映射 列表,获取处于迁移状态的数据块数量;在处于迁移状态的数据块数量未达到预设的阈值时,保留源层级磁盘中处于迁移 状态的数据块;在处于迁移状态的数据块数量达到预设的阈值时,根据缓存中的映射列表更新磁 盘中的存储映射表,并释放源层级磁盘中的处于迁移状态的数据块占用的存储空间。本发明还提供了一种分层数据存储处理装置,包括统计模块,用于在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,更新缓存中的映射列表,获取处于迁移状态的数据块的数量,并且在处于迁移状态的数据块 数量未达到预设的阈值时,保留源层级磁盘中处于迁移状态的数据块;第一更新模块,用于在统计模块获取的处于迁移状态的数据块数量达到预设的阈 值时,根据缓存中的映射列表更新磁盘中的存储映射表;数据块释放模块,用于在第一更新模块更新磁盘中的存储映射表后,释放源层级 磁盘中的所述处于迁移状态的数据块占用的存储空间。本发明还提供了一种存储设备,包括分层设置的两个以上的层级磁盘,以上述分 层数据存储处理装置。本发明实施例中,在发生数据块迁移时,实时更新缓存中的映射列表,并统计处于 迁移状态的数据块数量,在未达到预设的阈值的,保留源层级磁盘中处于迁移状态的数据 块,其中处于迁移状态的数据块是指数据块已经从源层级磁盘中读出,并写入到目的层级 磁盘中,但还未更新磁盘中的存储映射表,本实施例中更新缓存中的映射列表时,保持其在 源层级磁盘中的存储状态,而不是将该数据块释放。通过设置一定的阈值,只有当在处于迁 移状态的数据块数量达到预设的阈值时更新磁盘中的存储映射表,此时再释放源层级磁盘 中的处于迁移状态的数据块,使其成为空闲块。通过上述实施方式,使得磁盘中的存储映射 表未更新时,在源层级磁盘中仍然存储相应的数据块,在更新存储映射表的同时删除源层 级磁盘中完成迁移的数据,从而能够保证即使发生异常掉电,磁盘中的存储映射表的信息 也能够与实际的存储状态对应。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为本发明分层数据存储处理方法实施例的流程示意图;图2为本发明实施例中数据块迁移状态示意图一;图3为本发明实施例中数据块迁移状态示意图二 ;图4为本发明实施例中写操作的流程示意图;图5为本发明分层数据存储处理装置实施例的结构示意图一;图6为本发明分层数据存储处理装置实施例的结构示意图二 ;图7为本发明分层数据存储处理装置实施例的结构示意图三。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。针对现有技术中在分层的存储设备中,当数据块迁移时容易发生存储映射表和实 际的存储情况不一致的情况,本发明实施例提供了一种分层数据存储处理方法,图1为本
5发明分层数据存储处理方法实施例的流程示意图,如图1所示,该方法包括如下步骤步骤101、在将数据块由源层级磁盘迁移到目的层级磁盘的空闲存储空间中时,更 新缓存中的映射列表,获取处于迁移状态的数据块的数量,并在处于迁移状态的数据块数 量未达到预设的阈值时执行下述的步骤102,在处于迁移状态的数据块数量达到预设的阈 值时执行下述的步骤103 ;本步骤是在发生数据块迁移时,更新缓存中的映射列表,并统计处于迁移状态的 数据块数量,对于迁移状态的数据块数量的统计可以通过多种方式,例如计数器等,也建立 迁移数据块列表,统计处于迁移状态的数据块数量,具体在下述实施例中详细描述;步骤102、在处于迁移状态的数据块数量未达到预设的阈值时,保留源层级磁盘中 的处于迁移状态的数据块;步骤103、在处于迁移状态的数据块数量达到预设的阈值时,根据缓存中的映射列 表更新磁盘中的存储映射表;步骤104、释放源层级磁盘中的处于迁移状态的数据块占用的存储空间。本发明上述实施例中,在目的层级磁盘中预留空闲存储空间,以提供给数据块迁 移操作,另外,上述实施例只是给出了一个数据块由源层级磁盘向目的层级磁盘迁移的实 施例,在不同的迁移过程中,源层级磁盘和目的层级磁盘的角色可能会互换,所以应在各层 级磁盘中预留空闲存储空间。本发明实施例中,在发生数据块迁移时,实时更新缓存中的映射列表,并统计处于 迁移状态的数据块数量,在未达到预设的阈值的,保留源层级磁盘中处于迁移状态的数据 块,其中处于迁移状态的数据块是指数据块已经从源层级磁盘中读出,并写入到目的层级 磁盘中,但还未更新磁盘存储映射表,本实施例中更新缓存中的映射列表时,保持其在源层 级磁盘中的存储状态,而不是将该数据块释放。通过设置一定的阈值,只有当在处于迁移状 态的数据块数量达到预设的阈值时更新磁盘中的存储映射表,此时再释放源层级磁盘中的 处于迁移状态的数据块,使其成为空闲块。通过上述实施方式,使得磁盘中的存储映射表未 更新时,在源层级磁盘中仍然存储相应的数据块,在更新存储映射表的同时删除源层级磁 盘中完成迁移的数据,从而能够保证即使发生异常掉电,磁盘中的存储映射表的信息也能 够与实际的存储状态对应。本发明上述实施例中,对于根据缓存中的映射列表更新磁盘中的存储映射表的方 式可以有多种,一种是根据缓存中的映射列表生成更新后的存储映射表并存储到磁盘中, 即生成新的完整的各层级磁盘的存储映射表并更新;二是只针对迁移数据块相关的存储映 射信息进行更新,即根据缓存中的映射列表和磁盘中的存储映射表生成增量存储映射表, 并将生成的增量映射表存储到磁盘中。这种仅生成增量存储映射表的形式,其更新的数据 量小,能够大大提高更新处理速度,针对这种实施方式,在发生异常掉电时,根据增量存储 映射表以及前一次保存的存储映射表即可生成与当前源层级磁盘和目的层级磁盘状态匹 配的存储映射表。另外还可以进一步的设置数据块迁移列表,上述步骤101中获取处于迁移状态的 数据块的数量,即是从数据块迁移列表中获取处于迁移状态的数据块的数量。上述的数据 块迁移列表用于存储迁移数据信息,迁移数据信息包括处于迁移状态的数据块标识,以及 处于迁移状态的数据块迁移前在源层级磁盘中的物理存储地址;当然,迁移数据信息还可以包含其他信息,例如处于迁移状态的数据块迁移后在目的层级磁盘中的物理存储地址。另外上述的数据块迁移列表可以在将数据块由源层级磁盘迁移到目的层级磁盘 的空闲块中时被实时更新。并且在更新磁盘中的存储映射表后还可以包括删除数据块迁移 列表中的迁移数据信息的步骤。本发明上述实施例中对迁移数据块的数量设置一定的阈值,在达到上述阈值后再 进行存储映射表的更新,具体的可参照图2和图3所示,如图2所示,从层级磁盘1和层级 磁盘2中分别的迁移两个数据块到层级磁盘0中,但旧存储磁盘中的数据块并不释放,若此 时已经达到了预设的阈值,则可以更新磁盘中的存储映射表,删除数据块迁移列表中的迁 移数据信息,并释放源层级磁盘中存储的完成数据迁移的数据块所占用的存储空间,使其 成为空闲存储空间,具体的可如图3所示。在完成上述操作的基础上,进一步的可以再进行 新一轮的数据块迁移。另外在接收到针对处于迁移状态的数据块的写操作时(即发生数据更新),可以 根据缓存中的映射关系列表更新目的层级磁盘中的数据块,以及根据数据块迁移列表更新 源层级磁盘中的数据块。具体的写操作可以如图4所示,包括如下的步骤步骤201、接收写操作,该写操作包括逻辑块地址信息(Logical BlockAddress,以 下简称LBA);步骤202、根据所述写操作中携带的LBA,以及缓存中的映射列表获取其对应在目 的层级磁盘中的物理存储地址;步骤203、根据获取的物理存储地址执行写操作的步骤;上述步骤中根据缓存中的存储映射表执行写操作,使得磁盘中数据的实际存储信 息与缓存中的映射列表相同,若是此时被执行写操作的数据块处于迁移状态,并且只根据 缓存中的映射列表修改了目的层级磁盘中的数据,而不修改源层级磁盘的内容,那么在异 常断电时,缓存中的映射列表丢失,从而无法再修改磁盘中的存储映射表,这会导致磁盘中 的存储映射表与实际数据存储信息不一致的问题,因此本实施例中在执行步骤203的同时 执行如下的步骤204。步骤204、判断写操作对应的数据块是否处于迁移状态,具体可以是根据数据块迁 移表进行判断,如果是处于迁移状态,则执行步骤205,否则结束该流程;步骤205、根据数据块迁移状态列表获取数据块迁移前在源层级磁盘中的物理地 址;步骤206,根据上述获取的数据块在源层级磁盘中的物理地址,将数据写入到源层 级磁盘中的对应位置。通过上述步骤在被执行写操作的逻辑块处于迁移状态时,通过步骤202 步骤 203将写入的数据保存到目的层级磁盘、以及步骤204 步骤206将写入的数据保存到源层 级磁盘,从而同步将写入的数据保存到源层级磁盘和目的层级磁盘,即使异常断电未更新 磁盘中的存储映射表,也能够保持数据一致。本发明上述实施例中,在各个层级磁盘中预留空闲存储空间,以提供数据块迁移 操作,同时实时更新缓存中的映射列表,并保持处于迁移状态的数据块在源层级磁盘中的 存储状态。本实施例中更新缓存中的映射列表时,保持其在源层级磁盘中的存储状态,而不 是将该数据块释放,并通过设置一定的阈值,只有当在处于迁移状态的数据块数量达到预设的阈值时更新存储映射表,此时再释放源层级磁盘中的处于迁移状态的数据块。通过上 述实施方式,使得磁盘中的存储映射表未更新时,在源层级磁盘中仍然存储相应的数据块, 在更新存储映射表的同时删除源层级磁盘中完成迁移的数据,从而能够保证即使发生异常 掉电,磁盘中的存储映射表的信息也能够与实际的存储状态对应。本发明实施例还提供了与上述方法实施例对应的装置,图5为本发明分层数据存 储处理装置实施例的结构示意图一,如图5所示,该装置包括统计模块11、第一更新模块12 和数据块释放模块13,其中统计模块11用于在将数据块由源层级磁盘迁移到目的层级磁 盘的空闲块中时,更新缓存中的映射列表,获取处于迁移状态的数据块的数量,并在处于迁 移状态的数据块数量未达到预设的阈值时,保留源层级磁盘中处于迁移状态的数据块;第 一更新模块12用于在处统计模块获取的于迁移状态的数据块数量达到预设的阈值时,根 据缓存中的映射列表更新磁盘中的存储映射表;数据块释放模块,用于在第一更新模块12 更新磁盘中的存储映射表更新后,释放源层级磁盘中的所述处于迁移状态的数据块占用的 存储空间。本发明上述实施例中,其中的第一更新模块12具体的可以包括第一更新单元 121,该第一更新单元121用于根据所述缓存中的映射列表生成更新后的存储映射表并存 储到磁盘中。另外如图6所示,第一更新模块12具体的可以包括第二更新单元122,用于根据 所述缓存中的映射列表生成增量存储映射表并存储到磁盘中。并且具体的在第一更新模块 12包括第二更新单元122的情况下,上述的分层数据存储处理装置还可以进一步包括映射 表生成模块14,该映射表生成模块14用于在发生异常掉电时,根据第二更新单元122生成 的增量存储映射表以及前一次保存的存储映射表生成与当前源层级磁盘和目的层级磁盘 状态匹配的存储映射表。如图7所示,本发明上述实施例提供的分层数据存储处理装置,其还可以进一步 的包括数据块迁移列表15,第二更新模块16和数据删除模块17,其中数据块迁移列表16 用于存储迁移数据信息,所述迁移数据信息包括处于迁移状态的数据块标识,以及所述处 于迁移状态的数据块迁移前在源层级磁盘中的物理存储地址;上述统计模块11具体用于 从数据块迁移列表中获取处于迁移状态的数据块的数量;第二更新模块16用于在数据块 由源层级磁盘迁移到目的层级磁盘的空闲块中时,实时更新数据块迁移列表;数据删除模 块17与第一更新模块12连接,用于在所述第一更新模块12更新存储映射表后,删除数据 块迁移列表中的迁移数据信息。并进一步的,上述装置还可以进一步包括写处理模块18,该写处理模块18用于在 接收到针对处于迁移状态的数据块的写操作时,根据缓存中的映射列表更新目的层级磁盘 中的数据块,并根据数据块迁移列表15更新源层级磁盘中的数据块。本发明实施例还提供了一种存储设备,该存储设备包括分层设置的两个以上的层 级磁盘,还包括上述实施例提供的分层数据存储处理装置。本发明上述各个实施例提供的分层数据存储处理方法、装置以及存储设备,其通 过在各个层级磁盘中预留空闲存储空间,以提供数据块迁移操作,上述的数据块迁移列表 用于存储迁移数据信息,迁移数据信息包括处于迁移状态的数据块标识,及其对应的处于 迁移状态的数据块迁移前的在源层级磁盘中的物理存储地址;另外上述的数据块迁移列表可以在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时被实时更新。本实施例中 对于处于迁移状态的数据块,同时保持其在源层级磁盘中的存储状态,而不是将该数据块 释放。另外设置一定的阈值,只有当在处于迁移状态的数据块数量达到预设的阈值时,更新 存储映射表,并删除数据块迁移列表中的迁移数据信息,以及删除源层级磁盘中的所述处 于迁移状态的数据块。通过上述实施方式,使得存储映射表未更新时,在源层级磁盘中仍然 存储相应的数据块,存储映射表更新的同时删除源层级磁盘中完成迁移的数据,从而能够 保证即使发生异常掉电,存储映射表的信息也能够与实际的存储状态对应。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种分层数据存储处理方法,其特征在于,包括在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,更新缓存中的映射列 表,获取处于迁移状态的数据块数量;在处于迁移状态的数据块数量未达到预设的阈值时,保留源层级磁盘中处于迁移状态 的数据块;在处于迁移状态的数据块数量达到预设的阈值时,根据缓存中的映射列表更新磁盘中 的存储映射表,并释放源层级磁盘中的处于迁移状态的数据块占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述根据缓存中的映射列表更新磁盘中 的存储映射表包括根据所述缓存中的映射列表生成更新后的存储映射表并存储到磁盘中;或根据所述缓存中的映射列表和磁盘中的存储映射表,生成增量存储映射表并存储到磁 盘中。
3.根据权利要求2所述的方法,其特征在于,在所述磁盘中存储有增量存储映射表时, 所述方法还包括在发生异常掉电时,根据所述增量存储映射表以及前一次保存的存储映射表生成与当 前源层级磁盘和目的层级磁盘状态匹配的存储映射表。
4.根据权利要求1所述的方法,其特征在于,所述获取处于迁移状态的数据块的数量, 具体包括从数据块迁移列表中获取处于迁移状态的数据块的数量,所述数据块迁移列表用于存 储迁移数据信息,所述迁移数据信息包括处于迁移状态的数据块标识,以及所述处于迁移 状态的数据块迁移前在源层级磁盘中的物理存储地址。
5.根据权利要求4所述的方法,其特征在于,所述数据块迁移列表中的迁移数据信息 在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时被实时更新;在更新磁盘中的 存储映射表后被删除。
6.根据权利要求4所述的方法,其特征在于,在接收到针对处于迁移状态的数据块的 写操作时,所述方法还包括根据缓存中的映射列表更新目的层级磁盘中的数据块,并根据数据块迁移列表更新源 层级磁盘中的数据块。
7.—种分层数据存储处理装置,其特征在于,包括统计模块,用于在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,更新缓 存中的映射列表,获取处于迁移状态的数据块的数量,并且在处于迁移状态的数据块数量 未达到预设的阈值时,保留源层级磁盘中处于迁移状态的数据块;第一更新模块,用于在统计模块获取的处于迁移状态的数据块数量达到预设的阈值 时,根据缓存中的映射列表更新磁盘中的存储映射表;数据块释放模块,用于在第一更新模块更新磁盘中的存储映射表后,释放源层级磁盘 中的所述处于迁移状态的数据块占用的存储空间。
8.根据权利要求7所述的分层数据存储处理装置,其特征在于,所述第一更新模块包括第一更新单元,用于根据所述缓存中的映射列表生成更新后的存储映射表并存储到磁盘中;或第二更新单元,用于根据所述缓存中的映射列表生成增量存储映射表并存储到磁盘中。
9.根据权利要求8所述的分层数据存储处理装置,其特征在于,在所述第一更新模块 包括第二更新单元时,所述分层数据存储处理装置还包括映射表生成模块,用于在发生异常掉电时,根据第二更新单元生成的所述增量存储映 射表以及前一次保存的存储映射表生成与当前源层级磁盘和目的层级磁盘状态匹配的存 储映射表。
10.根据权利要求7所述的分层数据存储处理装置,其特征在于,所述装置还包括数据块迁移列表,用于存储迁移数据信息,所述迁移数据信息包括处于迁移状态的数 据块标识,以及所述处于迁移状态的数据块迁移前在源层级磁盘中的物理存储地址; 所述统计模块具体用于从数据块迁移列表中获取处于迁移状态的数据块的数量; 第二更新模块,用于在数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,实时 更新所述数据块迁移列表;数据删除模块,用于在所述第一更新模块更新存储映射表后,删除所述数据块迁移列 表中的迁移数据信息。
11.根据权利要求10所述的分层数据存储处理装置,其特征在于,所述装置还包括 写处理模块,用于在接收到针对处于迁移状态的数据块的写操作时,根据缓存中的映射列表更新目的层级磁盘中的数据块,并根据所述数据块迁移列表更新源层级磁盘中的数 据块。
12.—种存储设备,包括分层设置的两个以上的层级磁盘,其特征在于,还包括权利要 求7-11中任一所述的分层数据存储处理装置。
全文摘要
本发明提供一种分层数据存储处理方法、装置以及存储设备,其中分层数据存储处理方法包括在将数据块由源层级磁盘迁移到目的层级磁盘的空闲块中时,更新缓存中的映射列表,获取处于迁移状态的数据块数量;在处于迁移状态的数据块数量未达到预设的阈值时,保留源层级磁盘中处于迁移状态的数据块;在处于迁移状态的数据块数量达到预设的阈值时,根据缓存中的映射列表更新磁盘中的存储映射表,并释放源层级磁盘中的处于迁移状态的数据块占用的存储空间。本发明实施例还提供了相应的装置,以及包括上述装置的存储设备。本发明实施例提供的上述技术方案能够保证即使发生异常掉电,磁盘中的存储映射表的信息也能够与实际的存储状态对应。
文档编号G06F3/06GK102096561SQ20111003500
公开日2011年6月15日 申请日期2011年2月9日 优先权日2011年2月9日
发明者张宗全 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1