一种数据存储方法、装置及分布式存储系统制造方法及图纸

技术编号:14678553 阅读:153 留言:0更新日期:2017-02-22 11:25
本发明专利技术实施例提供了一种数据存储方法、装置及分布式存储系统,包括:进行数据写入操作;获取预存的数据版本号,并更新所述数据版本号;检查所述数据的各个副本的数据版本号是否一致;若不一致,选择数据最完整的副本替换其他副本。本发明专利技术实施例提供的数据存储方法、装置及分布式存储系统,通过在数据进行写入时,记录数据的版本号,并通过检查版本号可以发现写入失败的副本,进而可以将数据最全的副本拷贝到其他副本上,使各个副本的数据保持一致,从而可以实现数据的冗余,即使在进行写入操作时为了降低时延减少了副本的响应,也可以保证数据的完整性,通过该种方式进行数据写入,将降低数据写入的延时,提高块存储的性能。

【技术实现步骤摘要】

本专利技术实施例涉及数据存储
,尤其涉及一种数据存储方法、装置及分布式存储系统
技术介绍
弹性块存储服务是指以块设备方式提供给用户使用的存储服务,类似于用户使用的普通的磁盘。用户可以对一块块存储设备进行分区、创建删除文件系统等操作,另外当块设备需要扩大/缩小时,也可以扩大/缩小该设备的容量,实现弹性的扩容和缩容。弹性块存储一般都是基于分布式存储系统构建的,分布式存储系统是将数据按照一定规则切分并打散存储在多台独立通用存储服务器上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要,而分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。存储集群的成千上万台服务器可以将数据充分冗余,从而可以显著提高数据的安全性。在实现本专利技术实施例的过程中,专利技术人发现块存储的最大特点是对延迟非常敏感,用户的读写请求都需要在最快的时间内返回,否则虚拟磁盘的性能将严重影响运行于虚拟机上的各项业务。现有技术中,低延时目标主要是通过减少副本响应的方式提供的,在三副本的情况下,要求数据复制一个主副本和两个从副本,但是不要求收到所有的副本都写入成功回应之后才给用户返回成功,而是只要求收到主副本和其中任意一个从副本的写入成功回应之后即给用户返回成功。这样的好处是,仅需要写入两个副本即认为成功,可以避免最慢的一个副本成为性能的瓶颈。但引起的问题也是非常明显的,即可能存在最慢的一个从副本写入失败的情况,如果主副本和较快的从副本都丢失了,那么这份数据将完全丢失,即这种方案没有达到三副本的冗余程度,因为丢失两个副本即造成了数据的永久不可逆丢失。因此,在降低数据写入延时的情况下,如何保证数据的完整性是目前亟待解决的问题。
技术实现思路
本专利技术实施例提供的数据存储方法,在降低数据写入延时的情况下,也可以保证数据的完整性,进而可以大大提高块存储的数据存储效率。为此目的,本专利技术提供的数据存储方法,所述数据包括多个副本,所述方法包括:进行数据写入操作;获取预存的数据版本号,并更新所述数据版本号;检查所述数据的各个副本的数据版本号是否一致;若不一致,选择数据最完整的副本替换其他副本。可选的,所述方法还包括:在首次进行数据写入操作时,初始化数据版本号。可选的,所述初始化数据版本号为0。可选的,所述获取预存的数据版本号,并更新所述数据版本号,具有包括:读取预存的数据版本号,将所述数据版本号进行加1操作。可选的,所述多个副本包括一个主副本和多个从副本,所述进行数据写入操作,包括:将多个副本同时进行写入操作;在主副本和至少一个从副本写入成功时,展示写入成功信息。另一方面,本专利技术还提供了一种数据存储装置,所述数据包括多个副本,所述装置包括:数据写入单元,用于进行数据写入操作;版本号更新单元,用于获取预存的数据版本号,并更新所述数据版本号;版本号匹配单元,用于检查所述数据的各个副本的数据版本号是否一致;副本拷贝单元,用于在所述各个副本的数据版本号不一致时,选择数据最完整的副本替换其他副本。可选的,该装置还包括:初始化单元,用于在首次进行数据写入操作时,初始化数据版本号。可选的,所述初始化数据版本号为0。可选的,所述版本号更新单元具有用于:读取预存的数据版本号,将所述数据版本号进行加1操作。可选的,所述多个副本包括一个主副本和多个从副本,所述数据写入单元具体包括:副本写入子单元,用于将多个副本同时进行写入操作;返回成功子单元,用于在主副本和至少一个从副本写入成功时,展示写入成功信息。另一方面,本专利技术实施例还提供了一种分布式存储系统,包括上述任意一种数据存储装置。本专利技术实施例提供的数据存储方法、装置及分布式存储系统,通过在数据进行写入时,记录数据的版本号,并通过检查版本号可以发现写入失败的副本,进而可以将数据最全的副本拷贝到其他副本上,使各个副本的数据保持一致,从而可以实现数据的冗余,即使在进行写入操作时为了降低时延减少了副本的响应,也可以保证数据的完整性,通过该种方式进行数据写入,将降低数据写入的延时,提高块存储的性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的数据存储方法的流程示意图;图2为本专利技术另一实施例提供的数据存储方法的流程示意图;图3为本专利技术实施例提供的数据存储装置的框架示意图;图4为本专利技术另一实施例提供的数据存储装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,本专利技术实施例为了降低数据写入的延时,也是通过减少副本响应的方式,在三副本的情况下,要求复制一个主副本和两个从副本,但是不要求收到所有副本写入成功回应之后才给用户返回成功,而是只要求收到主副本和其中任意一个从副本的写入成功回应之后即给用户返回成功。从而仅需要写入两个副本即认为成功,可以避免最慢的一个副本成为性能的瓶颈。但是可能存在最慢的一个从副本写入失败的情况,如果主副本和较快的从副本都丢失了,那么这份数据将完全丢失,即这种方案没有达到三副本的冗余程度,因为丢失两个副本即造成了数据的永久不可逆丢失。为了解决这一问题,本专利技术实施例要求所有数据进行写入时,都必须记录数据的版本号。下面对本专利技术实施例提供的技术方案展开详细描述。实施例1如图1所示,本专利技术实施例提供了一种数据存储方法,所述数据包括多个副本,所述方法包括:S1:进行数据写入操作;具体的,本专利技术实施例可以以数据存储装置为执行主体,并且可以将数据的多个副本写入基于分布式存储系统构建的弹性块存储设备。其中,多个副本包括一个主副本和多个从副本,多个副本同时进行写入操作,在收到主副本和至少一个从副本写入成功回应后,就向用户返回写入成功信息,从而可以提高数据写入效率,避免写入最慢的副本成为提高数据写入效率的瓶颈。S2:获取预存的数据版本号,并更新所述数据版本号;具体的,在进行数据写入操作后,读取前一次数据写入时记录的数据版本号,并更新数据版本号。其中,版本号可以通过记录在各个副本的文件系统扩展属性(filesystemattribute)中,每次写入完成之后,读取此版本号,并进行更新,举例来说,每次更新都可以是将读取的版本号加上预设值。S3:检查所述数据的各个副本的数据版本号是否一致;需要说明的是,每次进行数据写入操作后,各个副本的数据版本号应该是一致的,如果有一个副本的数据版本号与其它副本的数据版本号不一致,则代表该副本中间有一次数据写入失败。具体的,在更新数据版本号之后,后台会启动一个版本检测线程,并按照预设的时间间隔,从本文档来自技高网
...
一种数据存储方法、装置及分布式存储系统

【技术保护点】
一种数据存储方法,其特征在于,所述数据包括多个副本,所述方法包括:进行数据写入操作;获取预存的数据版本号,并更新所述数据版本号;检查所述数据的各个副本的数据版本号是否一致;若不一致,选择数据最完整的副本替换其他副本。

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述数据包括多个副本,所述方法包括:进行数据写入操作;获取预存的数据版本号,并更新所述数据版本号;检查所述数据的各个副本的数据版本号是否一致;若不一致,选择数据最完整的副本替换其他副本。2.根据权利要求1所述的方法,其特征在于,还包括:在首次进行数据写入操作时,初始化数据版本号。3.根据权利要求2所述的方法,其特征在于,所述初始化数据版本号为0。4.根据权利要求1所述的方法,其特征在于,所述获取预存的数据版本号,并更新所述数据版本号,具有包括:读取预存的数据版本号,将所述数据版本号进行加1操作。5.根据权利要求1所述的方法,其特征在于,所述多个副本包括一个主副本和多个从副本,所述进行数据写入操作,包括:将多个副本同时进行写入操作;在主副本和至少一个从副本写入成功时,展示写入成功信息。6.一种数据存储装置,其特征在于,所述数据包括多个副本,所述装置包括:数据写入单元,用于进行数据写入操...

【专利技术属性】
技术研发人员:吴兴义
申请(专利权)人:乐视控股北京有限公司乐视云计算有限公司
类型:发明
国别省市:北京;11

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

1