存储方法和分布式存储系统技术方案

技术编号:15638711 阅读:261 留言:0更新日期:2017-06-15 18:58
本发明专利技术实施例提供了一种存储方法和分布式存储系统,解决了现有存储方式导致的读操作和写操作之间冲突,以及写操作和写操作之间冲突的问题。其中的存储方法包括:应用于一种分布式存储系统,所述分布式存储系统包括:至少两个存储控制节点和一个由所述至少两个存储控制节点共享的存储池,存储池包括至少两个存储单元,当任一所述存储控制节点要对所述存储池写入数据时,所述方法包括:判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元;以及若判断结果为否,从所述存储池中分配一个空闲存储单元,将当前写入数据写入所述空闲存储单元。

【技术实现步骤摘要】
存储方法和分布式存储系统
本专利技术涉及数据存储
,具体涉及一种存储方法和分布式存储系统。
技术介绍
随着计算机应用规模越来越大,对存储空间的需求也与日俱增。对应的,将复数设备的存储资源(比如,诸如磁盘组的存储介质)统合为一体作为一个存储池来提供存储服务成为了现在的主流。然而,在一个包含多个存储控制节点的分布式存储系统中,虽然多个存储控制节点同时对存储池中的同一个存储单元执行读取操作不会互相冲突,但当多个存储控制节点同时对同一个存储单元执行写入操作时会产生冲突,或当两个存储控制节点同时对存储池中的同一个存储单元分别执行读取操作和写入操作时也会产生冲突。由此可见,急需一种可避免上述提到的冲突的存储方式,以保证存储过程的效率和质量。
技术实现思路
有鉴于此,本专利技术实施例提供了一种存储方法、存储装置和分布式存储系统,解决了现有存储方式导致的读操作和写操作之间冲突,以及写操作和写操作之间冲突的问题。本专利技术一实施例提供的一种存储方法应用于一种分布式存储系统,所述分布式存储系统包括:至少两个存储控制节点和一个由所述至少两个存储控制节点共享的存储池,存储池包括至少两个存储单元,当任一所述存储控制节点要对所述存储池写入数据时,所述方法包括:判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元;以及若判断结果为否,从所述存储池中分配一个空闲存储单元,将当前写入数据写入所述空闲存储单元。本专利技术一实施例提供的一种分布式存储系统包括:至少两个存储控制节点和一个由所述至少两个存储控制节点共享的存储池,所述存储控制节点包括:去重判断模块,配置为判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元;空闲单元管理模块,配置为从所述存储池中分配一个空闲存储单元;以及写入模块,配置为若所述去重判断模块返回的判断结果为是,返回所述重复存储单元的存储地址;否则,将当前写入数据写入所述空闲单元管理模块所分配的空闲存储单元,返回已写入所述当前写入数据的所述空闲存储单元的存储地址。本专利技术实施例提供的一种存储方法和分布式存储系统,每当存储控制节点要向存储池中写入数据时,首先判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元。当不存在重复存储单元时,说明当前写入数据为存储池中所没有的新的数据内容,此时在一个空闲存储单元中写入当前写入数据。这样其他存储控制节点同时进行的读取操作仍可从当前存储单元中读取原有数据内容,其他存储控制节点同时进行的另一个写入操作则可在另一个空闲存储单元中写入另一个写入数据。由此可见,通过本专利技术实施例所提供的存储方式,读操作和写操作、以及写操作和写操作之间都不会产生冲突,从而有效保证了数据内容存储的效率和质量。同时,通过重复存储单元的判断过程避免了数据内容的重复存储,节约了存储空间,提高了存储资源的利用效率。附图说明图1所示为本专利技术一实施例提供的一种存储方法的流程示意图。图2a所示为本专利技术一实施例提供的一种存储方法的原理示意图。图2b所示为本专利技术一实施例提供的存储对象结构示意图。图3所示为本专利技术一实施例提供的一种存储方法的流程示意图。图4所示为本专利技术一实施例提供的一种存储方法中判断是否存在重复存储单元的流程示意图。图5所示为本专利技术一实施例提供的存储控制节点的结构示意图。图6所示为本专利技术另一实施例提供的存储控制节点的的结构示意图。图7所示为本专利技术另一实施例提供的存储控制节点的的结构示意图。图8所示为本专利技术一实施例提供的一种分布式存储系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1所示为本专利技术一实施例提供的一种存储方法的流程示意图。该存储方法应用于一种分布式存储系统,该分布式存储系统包括:至少两个存储控制节点和一个由该至少两个存储控制节点共享的存储池,存储池包括至少两个存储单元,当任一存储控制节点要对存储池写入数据时,该方法包括:步骤101:判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元。若存储池中存在重复存储单元,则说明当前写入数据已经存储在了存储池中,此时就没有必要重复写入该当前写入数据了。步骤102:如图2a所示,若判断结果为否,从存储池中分配一个空闲存储单元,将当前写入数据写入该空闲存储单元。若存储池中并不存在重复存储单元,则说明当前写入数据为并未存储在存储池中的新的数据内容。通过先分配一个空闲存储单元,将其锁定后再写入新数据,可以保证不会有其它存储控制节点写入同一存储单元。由此可见,通过本专利技术实施例所提供的存储方式,读操作和写操作、以及写操作和写操作之间都不会产生冲突,从而有效保证了数据内容存储的效率和质量。同时,通过重复存储单元的判断过程避免了数据内容的重复存储,节约了存储空间,提高了存储资源的利用效率。虽然图2a所示的仅为针对一个存储单元执行写入操作的过程,然而在本专利技术一实施例中,一个或多个存储单元可构成一个存储对象。这样当一个存储控制节点要对存储池中的一个存储对象执行写入操作时,需要针对存储对象所包括的多个存储单元逐一判断是否存在重复存储单元,并将存储对象中不存在重复存储单元的存储单元的数据写入存储池中的空闲存储单元中。在本专利技术一实施例中,存储池可被预先划分为多个存储单元,其中每个存储单元所占据的存储空间相同。在一进一步实施例中,存储单元可以是一个逻辑层面上的存储概念。如图2b所示,一个存储单元可以是一个逻辑page,而一个逻辑page可包括至少一个物理page,该至少一个物理page可分布在至少一个存储介质中。这样当一个或多个存储单元构成一个存储对象时,从逻辑的层面上看一个存储对象中的不同存储单元是连续的,但在物理的层面上看该存储对象所对应的物理page可能是分布在存储池的多个存储介质中的。在一进一步实施例中,为了提高对于存储单元的读写效率,一个逻辑page所对应的至少一个物理page可分布在不同的存储介质中;为了实现物理层面上的容灾机制以保证数据存储安全,一个逻辑page所对应的至少一个物理page之间还可以冗余存储(例如RAID或ErasureCode)方式保存数据内容。同时应当理解,与存储单元对应的存储地址也可以是一个逻辑层面上的概念,对应一个逻辑page;一个存储地址还可能包括至少一个实际的物理地址,该至少一个物理地址可以是不连续的,分别对应不同的物理page。由此可见,当对存储池中的一个存储单元执行写入操作时,实际上可能是对分布在存储池的不同存储介质中的多个物理page执行了写入操作,这样在后续的读取操作或写入操作时可同时享用不同存储介质的硬件资源以提高读写效率,并可以用冗余存储的方式提高数据可靠性和可用度,在部分存储介质出现故障时依然能正常读写数据。还应当理解,当本专利技术实施例所提供的存储方法应用到不同的分布式存储系统结构中时,存储对象可能对应不同的具体形式。例如该存储对象可以是一个块设备、一个文件系统中的文件,或一个对象分布式存储系统中的对象等。本专利技术对存储对象的具体形式不做限定。在本专利技术一实施例中,每个存储控制本文档来自技高网...
存储方法和分布式存储系统

【技术保护点】
一种存储方法,其特征在于,应用于一种分布式存储系统,所述分布式存储系统包括:至少两个存储控制节点和一个由所述至少两个存储控制节点共享的存储池,存储池包括至少两个存储单元,当任一所述存储控制节点要对所述存储池写入数据时,所述方法包括:判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元;以及若判断结果为否,从所述存储池中分配一个空闲存储单元,将当前写入数据写入所述空闲存储单元。

【技术特征摘要】
1.一种存储方法,其特征在于,应用于一种分布式存储系统,所述分布式存储系统包括:至少两个存储控制节点和一个由所述至少两个存储控制节点共享的存储池,存储池包括至少两个存储单元,当任一所述存储控制节点要对所述存储池写入数据时,所述方法包括:判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元;以及若判断结果为否,从所述存储池中分配一个空闲存储单元,将当前写入数据写入所述空闲存储单元。2.根据权利要求1所述的方法,其特征在于,当所述存储控制节点的写入数据操作被调用时,进一步包括:若判断结果为否,返回已写入所述当前写入数据的所述空闲存储单元的存储地址;以及若判断结果为是,返回所述重复存储单元的存储地址。3.根据权利要求1所述的方法,其特征在于,所述判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元包括:计算所述当前写入数据的数字摘要;判断所述存储池中是否存在数字摘要与所述当前写入数据的数字摘要相同的存储单元;以及将所述存储池中数字摘要与所述当前写入数据的数字摘要不相同的存储单元确定为不重复存储单元。4.根据权利要求1所述的方法,其特征在于,所述存储池中建立有文件系统,每个所述存储单元为所述文件系统中的一个文件,所述文件的文件名为所述存储单元的数字摘要;则,所述判断存储池中是否存在数据内容与当前写入数据相同的重复存储单元包括:判断所述文件系统中是否存在文件名与所述当前写入数据的数字摘要相同的文件。5.根据权利要求3或4所述的方法,其特征在于,所述数字摘要为字符串形式,所述数字摘要获取方法包括:选取一个N个字符构成的字符集;计算出二进制形式的数字摘要;将所述二进制形式的数字摘要转换成N进制;以及将所述N进制形式的数字摘要转换为字符串,转换方法为将N进制形式的数字摘要的每一位转换成所述字符集中对应的一个字符。6.根据权利要求1所述的方法,其特征在于,进一步包括:记录所述存储池中每个存储单元的引用计数;其中每当所述判断结果为是时,增加所述重复存储单元的引用计数;每当一个存储单元被释放时,减少该存储单元的引用计数。7.根据权利要求6所述的方法,其特征在于,进一步包括:当一个存储单元的引用计数减为零时,将该存储单元记录为空闲存储单元。8.根据权利要求1所述的方法,其特征在于,所述存储池包括至少两个预留空闲存储空间,其中每个所述预留空闲存储空间对应一个所述存储控制节点;其中所述从所述存储池中分配一个空闲存储单元,包括:从所述存储控制节点所对应的预留空闲存储空间中分配一个空闲存储单元。9.根据权利要求8所述的方法,其特征在于,进一步包括:当一个存储控制节点所对应的预留空闲存储空间的大小低于第一阈值时,从所述存储池未分配的空闲存储空间中分配一部分给所述一个存储控制节点所对应的预留空闲存储空间。10.根据权利要求1所述的方法,其特征在于,所述存储池预先划分为多个存储单元,其中每个存储单元所占据的存储空间相同。11.根据权利要求1所述的方法,其特征在于,一个或多个所述存储单元构成一个存储对象,所述存储对象包括以下几项中的一项:块设备,...

【专利技术属性】
技术研发人员:王东临齐宇
申请(专利权)人:天津书生云科技有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1