用于数据访问的方法和设备的制造方法

文档序号:8319098阅读:248来源:国知局
用于数据访问的方法和设备的制造方法
【技术领域】
[0001]本发明涉及通信领域,特别涉及一种用于数据访问的方法和设备。
【背景技术】
[0002]目前存储领域正在从中心式网络存储设备(Storage Area Network, SAN)存储向分布式存储系统发展。分布式存储是指将分散的存储资源构成一个整体的存储集群,用户数据分散的存储于这个集群中的不同节点上。分布式存储能带来数据可靠性、性能提升等好处。目前存在的分布式存储系统一般以一致性哈希算法来维护逻辑地址到存储物理区域之间的关系。
[0003]分布式存储系统,一般至少有2个以上的节点构成,这里的节点可以理解为是一个物理主机。存储于分布式存储系统上的数据,会被分块存放在分布式存储系统上的不同节点中。
[0004]例如,以虚拟化场景为例,分布式存储系统由5个物理节点构成。虚拟机的一个虚拟磁盘对应于分布式存储系统上的一个镜像。假设虚拟磁盘为10G,以4M为力度对虚拟磁盘进行分块,则可以分为10G/4M = 2560个块,这些块被均衡的存储于分布式存储系统的节点上。当用户访问某个特定数据块时,分布式存储系统必须知道这个块存储在哪个节点上,并正确的访问对应的数据。一致性哈希算法,就维护了数据块到存储节点的映射关系。
[0005]具体地,一致性哈希算法根据以下过程维护数据块和物理节点的对应关系的。一致性哈希算法是将一个输入值经过计算得到一个固定长度的二进制值的计算方法,分布式存储系统中的一致性哈希算法通常输出为0-232范围的散列值,这些值是均衡分布在0-2 32范围中的。通过查找一致性哈希信息,查找到对应的物理节点。一致性哈希信息包括希值取值区间与节点的对应关系,例如,指分布式存储系统中对物理节点进行哈希计算,获得物理节点唯一的哈希值,不同的哈希值的取值区间对应不同的节点。对数据块的编号进行哈希计算得到的哈希值所处的区间,对应的节点即为该数据块所存储的节点。
[0006]例如,有多个节点,分别为节点A、节点B、节点C、节点D、节点E…等,其中节点E对应的哈希值取值区间为[200,600]下面,以用户访问第58号数据块为例进行说明,向哈希算法输入58,获得这个数据块对应的哈希值,假设这里计算得到的哈希值为283,由于283在区间[200,600]中,因此,第58号数据块存放于物理节点E上。
[0007]目前的分布式存储系统在上述寻址方案下,当节点加入或退出时,由于需要维持数据的均衡分布和一致性哈希算法的准确性,需要对一致性哈希信息进行改动(更新),将更新后得到的哈希信息替换原来的哈希信息,不可避免的带来数据迀移。当数据迀移发生时,将会导致整个存储系统的性能下降,降低用户体验。

【发明内容】

[0008]本发明实施例提供了一种用于数据访问的方法和设备,该方法能够避免数据迀移,提升用户体验。
[0009]第一方面,提供了一种用于数据访问的方法,应用于分布式存储系统中,该方法包括:在该分布式存储系统增加或减少节点后,根据当前分布式存储系统中节点的剩余存储空间生成第一哈希信息和第一哈希信息的标识,其中,该第一哈希信息包括哈希值取值区间与第一节点的对应关系,该第一节点为当前分布式存储系统中具有剩余存储空间的节点;存储该第一哈希信息和该第一哈希信息的标识,该第一哈希信息和该第一哈希信息的标识用于数据访问。
[0010]结合第一方面,在第一种可能的实现方式中,还包括:根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的访问,该已存储的哈希信息包括该第一哈希信息以及生成该第一哈希信息之前生成的其它哈希信息。
[0011]结合第一种可能的实现方式,在第二种可能的实现方式中,该根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的访问,包括根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的读访问。
[0012]结合第二种可能的实现方式,在第三种可能的实现方式中,该数据块对应第一标识,该第一标识为该已存储的哈希信息的标识中的标识,该根据已存储的哈希信息和该已存储的哈希信息的标识,进行该数据块的读访问,包括:根据该数据块对应的该第一标识,确定与该第一标识对应的哈希信息;根据与该第一标识对应的哈希信息确定与该数据块对应的节点;根据该数据块对应的节点读取与该数据块对应的数据。
[0013]结合第一种可能的实现方式,在第四种可能的实现方式中,该根据已存储的哈希信息和该已存储的哈希信息的标识,进行该数据块的访问,包括:根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的写访问。
[0014]结合第四种可能的实现方式,在第五种可能的实现方式中,该根据已存储的哈希信息和该已存储的哈希信息的标识,进行该数据块的写访问,包括:确定该数据块的分配结果,其中,该数据块的分配结果包括该数据块已分配对应的实体存储空间或者该数据块未分配对应的实体存储空间;根据该分配结果,进行该数据块的写访问。
[0015]结合第五种可能的实现方式,在第六种可能的实现方式中,该分配结果包括该数据块已分配对应的实体存储空间,该数据块对应第一标识,该第一标识为该已存储的哈希信息的标识中的标识,该根据该分配结果,进行该数据块的写访问,包括:根据该数据块对应的该第一标识,确定与该第一标识对应的哈希信息;确定与该第一标识对应的哈希信息是否为该第一哈希信息,根据确定结果,进行该数据块的写访问。
[0016]结合第六种可能的实现方式,在第七种可能的实现方式中,该根据确定结果,进行该数据块的写访问,包括:在与该第一标识对应的哈希信息为该第一哈希信息时,根据第一哈希信息确定与该数据块对应的节点;向该数据块对应的节点写入数据。
[0017]结合第六种可能的实现方式,在第八种可能的实现方式中,该根据确定结果,进行该数据块的写访问,包括:在与该第一标识对应的哈希信息不是该第一哈希信息时,根据第一哈希信息,确定该数据块对应的节点,向该数据块对应的节点写入数据,并删除根据与该第一标识对应的哈希信息确定的对应该数据块的节点中的该实体存储空间中的数据,更新该数据块对应的该第一标识为该第一哈希信息的标识。
[0018]结合第五种可能的实现方式,在第九种可能的实现方式中,该分配结果包括该数据块未分配对应的实体存储空间,该根据该分配结果,进行该数据块的写访问,包括:根据第一哈希信息,确定与该数据块对应的节点,向与该数据块对应的节点写入数据,确定该第一哈希信息的标识为该数据块对应的第一标识。
[0019]结合第一至第九种可能的实现方式中的任一种可能的实现方式,在第十种可能的实现方式中,该方法还包括:在第二哈希信息对应的节点中的数据量小于预设数据量阈值或第二哈希信息对应的节点中的数据未被访问时长大于预设时间阈值时,将该第二哈希信息对应的节点中的数据移动到该第一节点的存储空间中,该第二哈希信息为该已存储的哈希信息中的哈希信息;删除该第二哈希信息和对应该第二哈希信息的标识,获得释放存储空间,以便于当分布式存储系统再次增加或减少节点后,根据该释放存储空间再次生成哈希信息。
[0020]第二方面,提供了一种用于数据访问的设备,包括:生成单元,用于在该分布式存储系统增加或减少节点后,根据当前分布式存储系统中节点的剩余存储空间生成第一哈希信息和第一哈希信息的标识,其中,该第一哈希信息包括哈希值取值区间与第一节点的对应关系,该第一节点为当前分布式存储系统中具有剩余存储空间的节点;存储单元,用于存储该第一哈希信息和该第一哈希信息的标识,该第一哈希信息和该第一哈希信息的标识用于数据访问。
[0021]结合第二方面,在第一种可能的实现方式中,还包括:访问单元,用于根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的访问,该已存储的哈希信息包括该第一哈希信息以及生成该第一哈希信息之前生成的其它哈希信息。
[0022]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该访问单元根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的读访问。
[0023]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,该数据块对应第一标识,该第一标识为该已存储的哈希信息的标识中的标识,该访问单元根据该数据块对应的该第一标识,确定与该第一标识对应的哈希信息;根据与该第一标识对应的哈希信息确定与该数据块对应的节点;根据该数据块对应的节点读取与该数据块对应的数据。
[0024]结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,该访问单元根据已存储的哈希信息和该已存储的哈希信息的标识,进行数据块的写访问。
[0025]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,该访问单元确定该数据块的分配结果,其中,该数据块的分配结果包括该数据块已分配对应的实体存储空间或者该数据块未分配对应的实体存储空间;根据该分配结果,进行该数据块的写访问。
[0026]结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,该分配结果包括该数据块已分配对应的实体存储空间,该数据块对应第一标识,该第一标识为该已存储的哈希信息的标识中的标识,该访问单元根据该数据块对应的该第一标识,确定与该第一标识对应的哈希信息;确定与该第一标识对应的哈希信息是否为该第一哈希信息,根据确定结果,进行该数据块的写访问。
[0027]结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,该访问单元在与该第一标识对应的哈希信息为该第一哈希信息时,根据第一哈希信息确定与该数据块对应的节点;向该数据块对应的节点写入数据。
[0028]结合第二方面的第六种可能的实现方式,在第八种可能的实现方式中,该访问单元在与该第一标识对应的哈希信息不是该第一哈希信息时,根据第一哈希信息,确定该数据块对应的节点,向该数据块对应的节点写入数据,并删除根据与该第一标识对应的哈希信息确定的对应该数据块的节点中的该实体存储空间中的数据,更新该数据块对应的该第一标识为该第一哈希信息的标识。
[0029]结合第二方面的第五种可能的实现方式,在第九种可能的实现方式中,该分配结果包括该数据块未分配对应的实体存储空间,该访问单元根据第一哈希信息,确定与该数据块对应的节点,向与该数据块对应的节点写入数据,确定该第一哈希信息的标识为该数据块对应的第一标识。
[0030]结合第二方面的第一至第九种可
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1