一种基于弹性块存储的数据写、读方法及装置的制造方法_4

文档序号:9432224阅读:来源:国知局
br>[0128]获得模块301,用于从所述至少一个虚拟块设备中,获得待处理数据。
[0129]分段模块302,用于将获得模块301获得的待处理数据以第一预设值进行分段,并分别计算每段数据的哈希值。
[0130]第一去重模块303,用于对分段模块302计算得到的哈希值对应的段数据去重,以使计算得到的每个哈希值对应的段数据唯一存在。
[0131]第一存储模块304,用于将去重后的剩余的每个哈希值对应的第一数据写入到预先设置的存储介质中,所述第一数据包括:元数据和段数据,其中,所述元数据包括:哈希值、该哈希值对应的数据段的逻辑地址和物理地址及其对应关系;并将去重后的剩余的每个哈希值,确定为该哈希值对应的数据段的索引。
[0132]第二存储模块305,用于当写入所述存储介质中的所述第一数据的数据量每达到第二预设值时,通知服务进程,以使所述服务进程将每达到所述第二预设值的数据量对应的所述存储介质中的所述第一数据写入到存储服务器中。
[0133]其中,所述存储介质可以为固态硬盘。
[0134]其中,第二存储模块305可以包括:写入子模块和唤醒子模块(图中未示出),其中,
[0135]写入子模块,用于将所述存储介质中存储的、每达到所述第二预设值的数据量对应的所述第一数据对应的列表数据写入预设文件。
[0136]唤醒子模块,用于当预设文件中存在列表数据时,唤醒服务进程,以使服务进程将所述列表数据对应的数据写入到存储服务器,其中,所述预设文件中没有列表数据时,所述服务进程处于休眠状态。
[0137]在实际应用中,将去重后的剩余的每个哈希值对应的第一数据写入到预先设置的存储介质中,和/或,所述服务进程将每达到所述第二预设值的数据量对应的所述存储介质中的所述第一数据写入到存储服务器中的写入方式,可以采用基于内容存储的写入方式。
[0138]本实施例中,通过将虚拟块设备中的数据分段,计算各数据段的哈希值,根据哈希值将数据进行去重,然后把去重后的数据及数据对应的哈希值、逻辑地址和物理地址进行存储,通过哈希值访问数据,实现了去除冗余数据,节省了存储空间的占用,同时也提高了数据的查找效率。
[0139]图6为本发明实施例提供的基于弹性块存储的数据写装置的第二种结构示意图。本发明图7所示实施例在图6所示实施例的基础上,增加创建队列模块306,用于创建具有不同优先级的队列,其中,每个虚拟块设备对应一个队列。
[0140]第一存储模块304可以包括:第一存储子模块和第二存储子模块(图中未示出),其中,
[0141]第一存储子模块,用于将每个所述第一数据写入到所述预先设置的存储介质中对应的写请求,存储到获得相应的待处理数据对应的虚拟块设备对应的创建队列模块306创建的队列中。
[0142]第二存储子模块,用于根据队列优先级由高至低的顺序,依次将创建队列模块305创建的队列中存储的写请求对应的所述第一数据写入到预先设置的存储介质中。
[0143]本实施例中,通过创建具有不同优先级的队列,把针对不同虚拟块设备的写请求存储在不同优先级的队列下,实现了灵活配置针对不同虚拟块设备的写请求的优先级别。
[0144]图7为本发明实施例提供的基于弹性块存储的数据写装置的第三种结构示意图。本发明图7所示实施例在图5所示实施例的基础上,增加分组模块307和第二去重模块308,其中,
[0145]分组模块307,用于将预先创建的至少一个虚拟块设备,划分为M个虚拟块设备组,每个虚拟块设备组中包含不同的虚拟块设备。
[0146]第二去重模块308,用于针对每个虚拟块设备组,对该虚拟块设备组中的去重后的剩余的哈希值对应的段数据再次进行去重,以使每个虚拟块设备组中的每个哈希值对应的段数据唯一存在。
[0147]本实施例中,通过将多个虚拟块设备划分为M个虚拟块设备组,在把从虚拟块设备中获得的待处理数据的哈希值对应的段数据去重的基础上,在虚拟块设备组中将剩余的哈希值对应的段数据再次进行去重,从而进一步节省存储空间的占用。
[0148]图8为本发明实施例提供的一种基于弹性块存储的数据读装置的结构示意图,可以包括:接收模块401、第一查找模块402、第一反馈模块403、第二查找模块404和第二反馈模块405,其中,
[0149]接收模块401,用于接收用户针对不同虚拟块设备的数据读请求。
[0150]第一查找模块402,用于针对接收模块401接收到的每个数据读请求,以数据段的哈希值为索引,在存储介质中查找与该数据读请求对应的物理地址。
[0151]第一反馈模块403,用于在第一查找模块402在存储介质中查找到与该数据读请求对应的物理地址的情况下,将查找到的物理地址对应的段数据,反馈给用户。
[0152]第二查找模块404,用于在第一查找模块402在存储介质中没有查找到与该数据读请求对应的物理地址的情况下,以数据段的哈希值为索引,在存储服务器中查找与该数据读请求对应的物理地址。
[0153]第二反馈模块405,用于在第二查找模块404在存储服务器中查找到与该数据读请求对应的物理地址的情况下,将查找到的物理地址对应的段数据,反馈给用户。
[0154]具体地,所述数据读请求中可以包括待读取数据的逻辑地址;
[0155]第一查找模块402,具体可以用于:
[0156]针对接收模块401接收到的每个数据读请求,根据所述数据读请求中包括的待读取数据的逻辑地址,确定所述数据读请求对应的哈希值;以所确定的哈希值为索引在存储介质中查找与该数据读请求对应的物理地址。
[0157]本实施例中,通过将虚拟块设备中的数据分段,计算各数据段的哈希值,根据哈希值将数据进行去重,然后把去重后的数据及数据对应的哈希值、逻辑地址和物理地址进行存储,通过哈希值访问数据,实现了去除冗余数据,节省了存储空间的占用,同时也提高了数据的查找效率。
[0158]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0159]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0160]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
[0161]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种基于弹性块存储的数据写方法,其特征在于,预先创建至少一个虚拟块设备,所述虚拟块设备为弹性块存储,所述虚拟块设备中存储有待处理数据;所述方法包括: 从所述至少一个虚拟块设备中,获得待处理数据; 将所述待处理数据以第一预设值进行分段,并分别计算每段数据的哈希值; 对计算得到的哈希值对应的段数据去重,以使计算得到的每个哈希值对应的段数据唯一存在; 将去重后的剩余的每个哈希值对应的第一数据写入到预先设置的存储介质中,所述第一数据包括:元数据和段数据,其中,所述元数据包括:哈希值、该哈希值对应的数据段的逻辑地址和物理地址及其对应关系;并将去重后的剩余的每个哈希值,确定为该哈希值对应的数据段的索引; 当写入所述存储介质中的所述第一数据的数据量每达到第二预设值时,通知服务进程,以使所述服务进程将每达到所述第二预设值的数据量对应的所述存储介质中的所述第一数据写入到存储服务器中。2.根据权利要求1所述的
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1