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

文档序号:9814335阅读:来源:国知局
器端向客户端发送确认信息,确认数据对象写入操作完成。在发生某一数据副本存储模块出现掉线等异常情况时,未出现异常的数据副本存储模块继续写入对象数据信息,在出现故障的数据副本存储模块恢复正常工作状态后这样的实现保证数据对象写入操作过程中的可靠性,尽可能避免造成分布式存储系统遇到异常时可能产生的数据丢失问题,简化了系统实现的机构复杂度和实现难度,提高了数据的读取性能,解决了现有技术三副本策略中存在的确认机制冗杂,数据对象写入操作延时较大,系统整体每秒平均输入输出10PS(Input/Output Per Secend)不高的问题。
【附图说明】
[0019]图1显示为本发明的基于数据仲裁者副本的分布式存储方法数据写入示意图。
[0020]图2显示为本发明的基于数据仲裁者副本的分布式存储方法的数据写入流程图。
[0021]图3显示为本发明的数据副本存储信息示意图。
[0022]图4显示为本发明的数据迀移与修复基本步骤流程图。
[0023]图5显示为本发明的下线副本修复数据详细步骤示意图。
[0024]图6显示为本发明的下线副本修复数据时序图。
[0025]图7显示为为本发明的模块示意图。
[0026]图8显示为本发明数据中心扩展实施例通信示意图。
[0027]元件标号说明
[0028]I 分布式存储系统
[0029]11 第一数据副本存储模块
[0030]22 第二数据副本存储模块
[0031]111数据仲裁者副本模块
[0032]112操作元数据存储模块
[0033]113历史记录信息模块
[0034]121操作元数据备份模块
[0035]122历史记录信息备份模块
[0036]131元数据备份模块
[0037]132历史记录信息备份模块
[0038]101数据中心模块
[0039]102数据中心模块
[0040]103数据仲裁者中心模块
【具体实施方式】
[0041]以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
[0042]请参阅图1至图8。须知,本说明书所附图式所绘示的结构,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0043]为实现上述目的及其他相关目的,本发明提供一种基于数据仲裁者副本分布式存储系统及方法,用于在线分布式存储数据。
[0044]请参阅图2,显示为基于数据仲裁者副本的分布式存储方法的数据写入流程图,如图2所示,基于数据仲裁者副本的分布式存储方法基本步骤示意图包括以下步骤:S1、分布式存储系统接收数据写入操作请求;S2、分布式存储系统收到写入操作请求后,开始数据写入操作,并将写入的数据同步地写入数据副本存储模块中;S3、数据副本存储模块的数据写入操作完成,数据副本存储模块直接回发写操作确认信息;S4、数据仲裁者副本模块从数据副本存储模块上异步地写入数据,进行完整的数据仲裁信息备份;用于支持数据迀移与修复;S5、数据仲裁者副本模块写入操作完成,回发异步写操作确认信息。数据仲裁者:在分布式系统中一种替换数据副本的数据存储对象,数据仲裁者中只存储数据的元数据信息和数据的增量操作日志。主要在数据系统出现异常数据修复时,作为数据修复的参与者判定数据更新的正确性。数据仲裁者模块用于存储上述数据仲裁者,支持数据迀移和修复。
[0045]请参阅图1,显示为基于数据仲裁者副本的分布式存储方法数据写入示意图,如图1所示,数据写入操作流程采用ffrite-Quorum数据写入流程,如数据副本存储模块总数为3,则完成数据写入操作的数据副本存储模块数大于2后,直接返回写入操作确认信息,剩余副本模块上的数据信息从数据副本存储模块上异步地写入。Client将直接和数据副本存储模块11通信,发起写入操作(ffritel)。数据副本存储模块11收到请求后,分别向数据副本存储模块12和数据仲裁者副本模块13发起写入操作(Write2、ASynCWrite3)其中Writel2为同步写操作。Asyncffritd为异步写入。当数据副本存储模块12完成写入操作后,将向数据仲裁者副本模块11发回确认消息(Ack4)。当数据副本存储模块11收到数据副本存储模块12的确认信息后,完成自己的数据写入,并向client确认数据对象object写入操作完成(Ack6)。当数据仲裁者副本模块13完成写入操作后,将向数据副本存储模块11发回异步的确认信息(ASynCACk5),数据副本存储模块11无需等待数据仲裁者副本模块13的完成可直接返回。在上述的流程中正常情况下数据副本存储模块11和数据副本存储模块12上为完整的数据副本,数据仲裁者副本模块13上的数据为数据仲裁者。当数据读取时,会优先从数据副本存储模块11上读取数据。如图1所示,图中050(013」6(31:4386(1 Storage Drives)I与数据副本存储模块lUiS;0SD(0bject-based Storage Drives)2与数据副本存储模块12对应;OSD(Object-based Storage Drives)3与数据副本存储模块13对应,以上为本发明改进后的ROWQ(Read-One-Write-Quorum)的数据读写流程。
[0046]请参阅图3,显示为数据副本存储信息示意图,如图3所示,数据仲裁信息为操作历史记录信息,用于修复数据副本存储模块因异常未写入的数据;所有数据副本存储模块中全部写入数据对象的元数据、数据体和操作历史记录信息;数据仲裁者副本模块中不对数据体进行写操作。
[0047]请参阅图4,显示为数据迀移与修复基本步骤流程图,如图4所示,修复上述提到数据在正常的情况下,即没有OSD离线,也没有正在进行数据迀移与修复,而在实际中,OSD的离线和数据的迀移修复是分布式系统不可或缺的一部分。下面将分析在节点异常数据迀移修复时的处理,重点描述数据仲裁者副本模块13在其中的作用。基于数据仲裁者副本模块13的分布式存储方法还包括以下修复异常的步骤:SI,、判断是否存在数据副本存储模块下线;S2’、若下线,则分布式存储体统排除下线的数据副本存储模块,调整写入操作针对的数据副本存储模块数;S3’、判断已下线的数据副本存储模块是否重新上线;S4’、若是,则数据副本存储模块从其他数据副本存储模块或数据仲裁者副本模块获取完整的操作历史记录信息,进行数据修复;S5’、若否,则未下线的数据副本存储模块继续在简化工作模块式下进行数据写入操作。本发明提供的基于数据仲裁者副本的分布式存储方法在当前的Ceph引入TPGLog的概念,PGLog由PG维护并且记录了该PG所有的操作,一般的PGLog的记录为(seqno,object_id)。在数据仲裁者副本模块13中除了包含对象的元数据信息,同时也保留这一份PGLog。当一个OSD下线时,相关的PG会处于Degraded,这时PG将减小自己的副本数目,这样就能够保证外部数据继续写入。当下线节点重新上线时,新上线的节点会从其他节点获取PGLog,根据自身的PGLog与获取的PGLog合并获取一份完整的历史PGLog,再根据PGLog的相关信息修复对应的数据。
[0048]请参阅图5和图6,显示为下线副本修复数据详细步骤示意图和下线副本修复数据时序图,如图5和图6所示,OSD A、B、C上分别获取效果的PGLogJgSOSD C为数据仲裁者,所以它不能成为主0SD。在一般情况下系统会选择PGLog完整的OSD作为主0SD,开始时OSD A作为主OSD,步骤S4,还包括:S41’、在时刻I OSD B下线,下线的数据副本存储模块遍历自身的操作历史记录信息PGLog;S42’、该数据副本存储模块的操作历史信息PGLog与数据仲裁者副本模块中的操作历史记录信息PGLog合并,获得完整的操作历史记录信息PGLog,由于系统剩余两个OSD,可以继续工作OSD A和C继续工作获得了PGLog记录I和2。时刻2时OSD B重新上线,准备进行数据修,尝试从主0SD(0SD A)上获取当前的最新PGLog序列号。同时在时亥|J2,0SD A离线(注意:这个并不一定要同一时刻发生,只要在OSD B从OSD A获取最新的序列号前)。这时OSD B将不能从OSD A获得最新的PGLog序列号,所以OSD B尝试从数据总裁者上(OSD C)获取PGLog,获得最新的序列号3ASD B成为主OSD13OSD B正常工作后会根据其PGLog的空缺(丢失操作2,3)将PG设置为Incomplete状态。时刻3时OSD A重新上线
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1