基于数据仲裁者副本的分布式存储系统及方法

文档序号:9814335阅读:930来源:国知局
基于数据仲裁者副本的分布式存储系统及方法
【技术领域】
[0001]本发明涉及分布式存储系统,特别是涉及基于数据仲裁者副本的分布式存储系统及方法。
【背景技术】
[0002]随着信息技术的发展,全球数据呈爆炸式增长。集中式存储服务器过度依靠传统磁性存储设备,操作不便,性能难以得到扩展,而近期出现的在线集中式存储服务器,技术亟需完善,无法满足系统高可靠,可扩展性等要求,而且会是性能热点,异常出错的情况时有发生。在线的分布式存储很好的解决了这些问题。
[0003]ceph是一套开源统一分布式存储系统,具有优异的数据存取性能,系统可靠性有明显提升,同时具有存储性能的可扩展性,在电子商务,在线企业数据管理和大规模数据存储和分析等领域都有广泛的使用,并获得了大量的开源组织的支持,加速了新型分布式存储系统的普及。ceph虽然作为一个成功的开源项目,得到各个领域工作人员的广泛应用,但ceph也存在一些问题,有待改进。ceph中使用单个数据存储对象数据的多个副本备份的存储策略,以此保证数据的高可靠,在出现掉线等异常的情况下,不易丢失存储信息。在实际生产环境中为避免两套副本的解决方法引起的分布式存储“脑裂”问题,一般使用三副本的方法来保证了数据存储的较高可靠性,但三副本策略在高性能的分布式块存储设备的条件下,其有效的数据存储容量被过分压缩,硬件成本过高的劣势也很明显,不利于在实际生产过程中的推广实施并投入使用。且三副本的存储方法导致存储操作对象、操作历史信息以及读写数据信息需要被放大写三倍,才能保证三副本方法的实施,在写入效率也不高的问题。
[0004]在数据的读写流程方面ceph采用的是ROWA(Read-One-Write-All)的基本策略,Write操作必须将存储数据对象所包含的信息写入所有副本进行备份,所有的Read操作都从主副本读取存储数据对象及列表信息。存储操作发生的客户端将直接和数据备份模块显示平台0SD(on-screem display)I通信,客户端向分布式存储服务器发送写入操作请求,发起数据对象写入操作(Writel)。数据副本存储模块显示0SD(0b ject-based StorageDevice,基于对象的存储设备)1收到写入操作请求后,分别向数据副本存储模块OSD(Object-based Storage Devi ce,基于对象的存储设备)2和数据副本存储模块OSD(Object-based Storage Device,基于对象的存储设备)3发起数据对象写入操作(>rite2、Write3)。当数据副本存储模块0SD(0bject_based Storage Device,基于对象的存储设备)2和数据副本存储模块显示平台0SD(0bject-based Storage Device,基于对象的存储设备)3各自完成数据对象写入操作后,将分别向数据副本存储模块显示平台0SD(0bject-based Storage Device,基于对象的存储设备)I发送完成写入的相应确认信息(Ack4,Ack5)。当数据副本存储模块显示平台0SD(on_screem display)I确信其他两个数据副本存储模块显示平台0SD(0bject-based Storage Device,基于对象的存储设备)的数据对象写入操作完成后,则数据副本存储模块0SD(0bject-based Storage Device,基于对象的存储设备)1也完成数据写入,并向客户端确认数据对象写入操作完成(Ack6)。这样的实现保证数据对象写入操作过程中的可靠性,尽可能避免造成分布式存储系统遇到异常时可能产生的数据丢失问题,简化了系统实现的机构复杂度和实现难度,在有限程度上提高了数据的读取性能,但由于需要所有副本全部写入,势必造成数据写入确认机制冗杂,数据对象写入操作延时较大,系统整体每秒平均输入输出1PS( Input/Output Per Secend)不高的问题。
[0005]综上,现有技术中是ceph分布式存储系统对数据存储和输入输出以及写入和读出操作的控制方法中,为防止双副本产生的脑裂问题而采用三副本的存储策略,从而产生了写入效率不高和存储设备实际使用率低的问题,提高了系统的冗余容量成本,写入性能相对低下。使用三副本写入方法还会产生的写入延时和每秒输入输出慢的问题。

【发明内容】

[0006]鉴于以上现有技术的缺点,本发明的目的在于提供基于数据仲裁者副本分布式存储系统及方法,用于解决有效存储空间相对较小以及现有技术中双副本存储方法存在的脑裂等问题。
[0007]为实现上述目的及其他相关目的,本发明提供一种基于数据仲裁者副本分布式存储系统及方法,用于在线分布式存储数据,基于数据仲裁者副本的分布式存储方法包括以下步骤:S1、分布式存储系统接收数据写入操作请求;S2、分布式存储系统收到写入操作请求后,开始数据写入操作,并将写入的数据同步地写入数据副本存储模块中;S3、数据副本存储模块的数据写入操作完成,数据副本存储模块直接回发写操作确认信息;S4、数据仲裁者副本模块继续从数据副本存储模块上异步地写入数据,进行完整的数据仲裁信息备份;用于支持数据迀移与修复;S5、数据仲裁者副本模块写入操作完成,回发异步写操作确认信息。
[0008]于本发明的一实施方式中,数据写入操作流程采用ffrite-Quorum数据写入流程,若数据副本存储模块总数为n,则完成数据写入操作的数据副本存储模块数大于η/2后,直接返回写入操作确认信息,剩余副本模块上的数据信息从数据副本存储模块上异步地写入。
[0009]于本发明的一实施方式中,数据仲裁信息为操作历史记录信息,用于修复数据副本存储模块因异常未写入的数据;数据副本存储模块中全部写入数据对象的元数据、数据体和操作历史记录信息;数据仲裁者副本模块中不对数据体进行写操作。
[0010]于本发明的一实施方式中,基于数据仲裁者副本的分布式存储方法还包括以下步骤:SI’、判断是否存在数据副本存储模块下线;S2’、若是,则分布式存储体统排除下线的数据副本存储模块,调整写入操作针对的数据副本存储模块数;S3’、判断已下线的数据副本存储模块是否重新上线;S4 ’、若是,则该数据副本存储模块从其他数据副本存储模块或数据仲裁者副本模块获取完整的操作历史记录信息和数据体,进行数据修复;S5’、若否,则未下线的数据副本存储模块继续进行数据写入操作。
[0011]于本发明的一实施方式中,步骤S4’还包括:S41’、下线的数据副本存储模块遍历自身的操作历史记录信息;S42’、下线的数据副本存储模块中的操作历史记录信息与数据仲裁者副本模块中的操作历史记录信息合并,获得完整的操作历史记录信息;S43’、重新上线的数据副本存储模块按照合并的历史操作记录信息从其他未掉线的数据副本存储模块补充写入丢失的元数据和数据体。
[0012]于本发明的一实施方式中,基于数据仲裁者副本的分布式存储系统,用于在线分布式存储数据,基于数据仲裁者副本的分布式存储系统安装于服务器平台中,包括:第一数据副本存储模块、第二数据副本存储模块和数据仲裁者副本模块;第一数据副本存储模块用于存储待读取元数据、数据体和操作历史记录信息,第二数据副本存储模块的规格与第一数据副本存储模块相同,用于备份元数据、数据体和操作历史记录信息;数据仲裁者副本模块用于备份元数据、和完整的操作历史记录信息。
[0013]于本发明的一实施方式中,第一副本模块包括:操作元数据存储模块、历史记录信息模块和数据体存储模块;第二副本模块包括:操作元数据备份模块、历史记录信息备份模块和数据体备份模块。
[0014]于本发明的一实施方式中,数据仲裁者副本模块包括:元数据备份模块和历史记录信息备份模块。
[0015]于本发明的一实施方式中,基于数据仲裁者副本的分布式存储系统可以扩展为分布式存储多活数据中心。
[0016]于本发明的一实施方式中,分布式存储多活数据中心包括数据中心模块和数据仲裁者中心模块。
[0017]如上,本发明提供的基于数据仲裁者副本分布式存储系统及方法,具有以下有益效果:
[0018]在数据的读写流程方面本发明提供的基于数据仲裁者副本的ceph分布式存储系统及方法将存储数据对象所包含的信息采用异步的方式,先将数据存储对象包含的信息同步写入第一数据副本存储模块和第二数据副本存储模块,再异步地将完整的操作历史信息写入数据仲裁者副本模块中备份存储,所有的对对象数据信息的读操作都有线从第一副本模块中读取存储数据对象信息及列表信息。存储操作发生的客户端首先直接和第一数据副本存储模块通信,客户端向分布式存储系统的服务器端发送写入操作请求,发起数据对象写入操作。第一数据副本存储模块收到写入操作请求后,先向第二数据副本存储模块同步发出与备份数据对应的写入操作请求,再异步地向数据仲裁者副本模块发起数据对象写入操作。当第一数据副本存储模块、第二数据副本存储模块和数据仲裁者副本模块各自完成数据对象写入操作后,第二数据副本存储模块向第一数据副本存储模块发送完成写入的相应确认信息。第一数据副本存储模块和第二数据副本存储模块的操作历史信息完整,所有数据对象信息写入操作完成后,服务
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1