【技术实现步骤摘要】
分布式存储的方法、装置和系统
本专利技术涉及数据存储领域,尤其是涉及一种分布式存储的方法、装置和系统。
技术介绍
在分布式存储系统中,为了实现可靠性,采用文件级别的多副本冗余技术,或者采用数据块级别的冗余编码技术,例如,纠删编码(Erasure Coding)技术。在多副本冗余技术中,可以通过为一份数据文件存储多份的相同的副本来降低数据丢失的概率,而在冗余编码技术中,可以通过为文件中的任何局部数据增加校验块来提高可靠性。通常,可以采用分布式哈希表(Distributed Hash Table,DHT)对数据块和校验块进行存储。然而,由于DHT的随机性,因此无法避免将同一数据切片的多个数据块部署在同一物理存储节点上,从而无法避免单一物理存储节点(例如,机架、服务器、或硬盘时)失效导致数据丢失的风险。例如,采用M+N的纠删编码技术,其中M为数据块个数,N为校验块个数,当有N+1个以上的数据块或校验块部署在同一个硬盘上时,该硬盘故障将导致上述M个数据块的丢失,从而可能导致整个文件不可用。以12+3的冗余存储机制为例,当4个以上的数据块丢失时,数据切片会丢失并且无法恢复。换句话说,在现有的分布式存储系统中,单点(例如,硬盘、服务器或机架)故障可能会导致数据丢失,尤其在分布式存储系统的规模较小时,故障的风险和概率特别大,从而降低了分布式存储系统的可靠性。
技术实现思路
本专利技术的实施例提供了一种分布式存储系统和分布式存储方法、装置和系统,能够提高分布式存储系统的可靠性。第一方面,提供了一种分布式存储方法,包括:对数据文件进行分割,生成K个数据切片,对K个数 ...
【技术保护点】
一种分布式存储方法,其特征在于,包括:对数据文件进行分割,生成K个数据切片,对所述K个数据切片中的每个数据切片进行分割,针对每个数据切片生成M个数据块,并且采用冗余算法对所述M个数据块进行校验编码,生成N个校验块;利用随机算法确定与所述M个数据块或N个校验块中的一个数据块或一个校验块对应的第一物理存储节点,并且基于所述第一物理存储节点按照符合预设规则的第一排序方式确定至少M+1个不同的物理存储节点;将所述M个数据块和所述N个校验块中的至少M+1个块分别存储在所述至少M+1不同的物理存储节点上,所述K、M和N为正整数。
【技术特征摘要】
1.一种分布式存储方法,其特征在于,包括: 对数据文件进行分割,生成K个数据切片,对所述K个数据切片中的每个数据切片进行分割,针对每个数据切片生成M个数据块,并且采用冗余算法对所述M个数据块进行校验编码,生成N个校验块; 利用随机算法确定与所述M个数据块或N个校验块中的一个数据块或一个校验块对应的第一物理存储节点,并且基于所述第一物理存储节点按照符合预设规则的第一排序方式确定至少M+1个不同的物理存储节点; 将所述M个数据块和所述N个校验块中的至少M+1个块分别存储在所述至少M+1不同的物理存储节点上,所述K、M和N为正整数。2.根据权利要 求1所述的分布式存储方法,其特征在于,所述利用随机算法确定与所述M个数据块或N个校验块中的一个数据块或校验块对应的第一物理存储节点,包括: 对所述M个数据块或N个校验块中的一个数据块或校验块的标识符进行哈希计算生成关键值; 根据所述关键值确定与所述M个数据块或N个校验块中的一个数据块或者校验块对应的物理存储节点,并将所述物理存储节点作为所述的第一物理存储节点。3.根据权利要求1所述的分布式存储方法,其特征在于,所述利用随机算法确定与所述M个数据块或N个校验块中的一个数据块或校验块对应的第一物理存储节点,包括: 对分割成所述M个数据块的所述数据切片的标识符进行哈希计算生成关键值; 根据所述关键值确定与所述M个数据块或N个校验块中的一个数据块或者校验快对应的物理存储节点,并将所述物理存储节点作为所述的第一物理存储节点。4.根据权利要求1至3中的任一项所述的分布式存储方法,其特征在于,所述基于所确定的第一物理存储节点按照所述第一排序方式确定至少M+1个不同的物理存储节点,包括: 基于所述第一物理存储节点按照所述第一排序方式确定M+N个不同的物理存储节点, 其中所述将所述M个数据块和所述N个校验块中的至少M+1个块分别存储在至少M+1个不同的物理存储节点上,包括: 将所述M个数据块和所述N个校验块分别存储在所述M+N个不同的物理存储节点上。5.根据权利要求1至4中的任一项所述的分布式存储方法,其特征在于,所述基于所述第一物理存储节点按照所述第一排序方式确定至少M+1个不同的物理存储节点,包括: 将所述第一物理存储节点与所述至少M+1个块中的I个块对应,并以所述第一物理存储节点的位置为基准,按照所述第一排序方式确定所述至少M+1个块中的其它至少M个块对应的物理存储节点,其中所述M+1个不同的物理存储节点包括所述第一物理存储节点; 或者, 以所述第一物理存储节点的位置为基准,按照所述第一排序方式确定所述至少M+1个块对应的物理存储节点,其中所述M+1个不同的物理存储节点不包括所述第一物理存储节点。6.根据权利要求1至5中的任一项所述的分布式存储方法,其特征在于,所述不同的物理存储节点为硬盘,所述硬盘的数目等于或者大于M+1 ; 或者,所述不同的物理存储节点为服务器,其中所述服务器的数目等于或者大于M+1 ; 或者, 所述不同的物理存储节点为机架,其中所述机架的数目等于或者大于M+1。7.根据权利要求1至6中的任一项所述的分布式存储方法,其特征在于,还包括: 在存储有所述M个数据块和所述N个校验块中的至少M+1个块的所述至少M+1个不同的物理存储节点之一发生故障的情况下,将所述至少M+1个不同的物理存储节点中发生故障的物理存储 节点上的数据恢复到所述物理存储节点所在的分布式存储系统中的热备用存储节点上。8.根据权利要求1至6中的任一项所述的分布式存储方法,其特征在于,还包括: 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块的物理存储节点发生故障的情况下,如果L不大于(M+N)/2,则将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块及第L个块之前的块依次向沿第一方向相邻的物理存储节点搬移,其中所述第一方向与所述第一排序方式的顺序方向相逆,如果L大于(M+N)/2,则将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块及第L个块之后的块依次向沿第二方向相邻的物理存储节点搬移,其中所述第二方向与所述第一排序方式的顺序方向相同;或者, 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块的物理存储节点发生故障的情况下,将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块及第L个块之前的块依次向沿所述第一方向相邻的物理存储节点搬移; 或者, 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块的物理存储节点发生故障的情况下,则将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第L个块及第L个块之后的块依次向沿所述第二方向相邻的物理存储节点搬移。9.根据权利要求1至8中的任一项所述的分布式存储方法,其特征在于,还包括: 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P个块的物理存储节点之后添加新的物理存储节点的情况下,如果P不大于(M+N)/2,则将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的所述第P个块向所述新的物理存储节点搬移,并且将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中第P个块之前的块依次向沿第一方向相邻的物理存储节点搬移,其中所述第一方向与所述第一排序方式的顺序方向相同,如果P大于(M+N)/2,则将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P+1个块向所述新的物理存储节点搬移,并将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中第P+1个块之后的块依次向沿第二方向相邻的物理存储节点搬移,其中所述第二方向与所述第一排序方式的顺序方向相逆,其中所述P为整数; 或者, 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P个块的物理存储节点之后添加新的物理存储节点的情况下,将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P个块向所述新的物理存储节点搬移,并且将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P个块之前的块依次向沿所述第一方向相邻的物理存储节点搬移; 或者, 在所述至少M+1个不同的物理存储节点中存储的、按照所述第一排序方式的所述M个数据块和所述N个校验块中第P个块所在的物理存储节点之后添加新的物理存储节点的情况下,将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P+1个块向所述新的物理存储节点搬移,并且将按照所述第一排序方式排序的所述M个数据块和所述N个校验块中的第P+1个块之后的块依次向沿所述第二方向相邻的物理存储节点搬移。10.根据权利要求1至9中的任一项所述的分布式存储方法,其特征在于,还包括: 在需要读取所述数据文件时,利用随机算法确定与所述M个数据块或N个校验块中的一个数据块或校验块对应的所述第一物理存储节点,基于所述所确定的所述第一物理存储节点按照所述第一排序方式确定至少M个不同的物理存储节点; 从所述至少M个不同的物理存储节点上读取至少M个块,所读取的M个块包括所述M个数据块,或包括所述M个数据块中的部分数据块和所述N个校验块中的部分校验块; 对所述至少M个块进行解码和去校验,生成解码的M个数据块,并且对所述解码的M个数据块进行合并,生成所述数据文件。11.根据权利要求1至10中的任一项所述的分布式存储方法,其特征在于,所述数据文件从所述分布式存储系统外部获取,或者所述数据文件从所述分布式存储系统的部分物理存储节点获取。12.根据权利要求1至11中的任一项所述的分布式存储方法,其特征在于,所述冗余算法为纠删编码算法,所述随机算法为分布式哈希表算法。13.根据权利要求1至12中的任一项所述的分布式存储方法,其特征在于,所述不同的物理存储节点为分布式存储系统上的不同的物理存储节点,所述不同的物理存储节点中的每个物理存储节点包括多个虚拟存储节点,编号连续的虚拟存储节点按照符合预设规则的第二排序方式部署在不同的物理存储节点上, 其中所述利用随机算法确定与所述M个数据块和N个校验块中的一个块对应的第一物理存储节点,并且基于所确定的第一物理存储节点按照所述第一排序方式确定至少M+1个不同的物理存储节点,包括: 利用随机算法确定与所述M个数据块和N个校验块中的一个块对应的所述第一虚拟存储节点的编号,并且基于所述第一虚拟存储节点的编号按照所述第一排序方式确定至少M+1个虚拟存储节点的编号, 其中将所述M个数据块和所述N个校验块中的至少M+1个块分别存储在所述至少M+1不同的物理存储节点上,包括: 将所述M个数据块 和所述N个校验块中的至少M+1个块分别存储在所述至少M+1个虚拟存储节点的编号对应的虚拟存储节点上。14.根据权利要求...
【专利技术属性】
技术研发人员:冯斌,黄澄,龚学文,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。