数据写入和数据恢复方法、装置、电子设备及存储介质制造方法及图纸

技术编号:19023010 阅读:29 留言:0更新日期:2018-09-26 18:58
本发明专利技术实施例提供了一种数据写入和数据恢复方法、装置、电子设备及存储介质,方法包括:接收客户端发送的针对目标数据的写入请求;将写入请求发送给目标数据的所有数据副本对应的存储服务器;若存在无法被写入成功的所述目标数据的离线数据副本,确定除所述离线数据副本对应的第一存储服务器之外的用于存储所述目标数据的其他数据副本的其他存储服务器;在接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回所述目标数据写入成功的消息。应用本发明专利技术实施例提供的方案,减少了用户的等待时间,提高了用户体验。

【技术实现步骤摘要】
数据写入和数据恢复方法、装置、电子设备及存储介质
本专利技术涉及分布式存储
,特别是涉及一种数据写入和数据恢复方法、装置、电子设备及存储介质。
技术介绍
随着网络技术的发展,为了方便使用,用户选择将数据集中存储到存储系统中。但是,随着网络上的数据量越来越大,用于集中存储数据的存储服务器的性能无法满足需求,而且一旦该服务器出现故障,用户则无法对该服务器上存储的目标数据进行写入操作,一般情况下,写入操作为创建或者修改操作。为了解决集中存储大规模数据对服务器性能要求过高的问题,以及数据存储的可靠性问题,存储系统通常采用分布式存储系统。分布式存储系统是将目标数据切分成多个子目标数据,并将多个子目标数据分别存储在不同的存储服务器上,当用户需要对目标数据进行写入操作时,原来由一台服务器提供的服务现在由多台服务器提供,实现了服务负荷的分担,降低了目标数据存储对存储服务器性能的要求;另外,当多台存储服务器中的一台服务器发生故障,会导致故障存储服务器上存储的子目标数据不能被执行写入操作,而不会导致所有子目标数据不能被写入。虽然分布式存储技术解决了集中存储大规模的目标数据的对服务器性能要求过高的问题,并且提高了目标数据存储的可靠性问题,但是被存储的子目标数据只有一份。当其中一台存储服务器发生故障导致该存储服务器上的子目标数据发生了损坏时,由于数据只有一份,会导致该存储服务器存储的子目标数据无法恢复,因此分布式存储技术仍然存在数据存储可靠性的技术问题。鉴于此,目前采用强一致性数据冗余技术用于进一步提高分布式数据存储的可靠性。强一致性数据冗余技术是指将同样的目标数据在不同的存储服务器上分别存储多份,常见的是存储三份,这三份数据完全一样,因此,这三份数据均被称为目标数据的数据副本。当用户需要对存储的目标数据进行写入操作时,只有在所有的数据副本都写入成功的情况下,存储系统才会认定该写入操作执行成功。一般来说,所有数据副本中越多的数据副本被写入成功,目标数据的存储可靠性越高。但是现有技术采用的是强一致性写入逻辑:需要在目标数据的所有的数据副本都被写入成功的情况下,存储系统才会认定该写入操作执行成功。如果有一个数据副本的存储服务器发生了故障导致该数据副本离线,也就是不能被写入时,该写入操作就会被挂起,直到该数据副本被恢复后,并被写入成功后,才会向用户返回写入成功的消息。通常情况下,用户等待的时间通常达到数十秒甚至分钟级别,这将导致用户体验较差。
技术实现思路
本专利技术实施例的目的在于提供一种数据写入和数据恢复方法、装置、电子设备及存储介质,以实现提高用户体验的目的。具体技术方案如下:第一方面,为达到上述目的,本专利技术实施例提供了一种数据写入方法,应用于分布式存储系统中的网关设备,方法包括:接收客户端发送的针对目标数据的写入请求;将写入请求发送给目标数据的所有数据副本对应的存储服务器;若存在无法被写入成功的目标数据的离线数据副本,确定除离线数据副本对应的第一存储服务器之外的用于存储目标数据的其他数据副本的其他存储服务器,其中,第一存储服务器为存储离线数据副本的存储服务器;在接收到所有其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息的情况后,向客户端返回目标数据写入成功的消息。可选的,在本专利技术实施例的一种具体实施方式中,在确定除离线数据副本对应的第一存储服务器之外的用于存储目标数据的其他数据副本的其他存储服务器之前,方法还包括:获取用于存储被恢复的离线数据副本的第二存储服务器的标识信息;根据标识信息,将离线数据副本的写入请求发送给第二存储服务器;接收第二存储服务器发送的,目标数据的存储可靠性降低的消息;在接收到所有其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向客户端返回目标数据写入成功的消息,包括:在接收到目标数据的存储可靠性降低的消息,且接收到所有其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向客户端返回写入成功的消息。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:接收被恢复的目标数据的离线数据副本被写入成功后,对应的响应消息,其中,响应消息是由存储目标数据的被恢复的离线数据副本的存储服务器发送的。可选的,在本专利技术实施例的一种具体实施方式中,若不存在无法被写入成功的目标数据的离线数据副本,方法还包括:接收所有数据副本对应的存储服务器发送的,数据副本被写入成功的响应消息;根据响应消息,向客户端返回写入成功的消息。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:读取响应消息对应的存储服务器中存储的数据副本,并将数据副本发送给第二存储服务器,以使第二存储服务器根据数据副本进行数据恢复。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:接收被恢复的离线数据副本被写入成功后,对应的响应消息,其中,响应消息是由第二存储服务器发送的。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:接收所有数据副本对应的存储服务器发送的,数据副本被写入成功的响应消息;根据响应消息,向客户端返回写入成功的消息。可选的,在本专利技术实施例的一种具体实施方式中,在接收客户端发送的针对目标数据的写入请求之前,方法还包括:在用户登录客户端时,针对客户端对应的每一目标数据,判断目标数据的所有数据副本是否一致;若不是所有数据副本一致,修复目标数据的数据副本。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:根据预设周期,针对客户端对应的每一目标数据,判断目标数据的所有数据副本是否一致;若不是所有数据副本一致,修复目标数据的数据副本。第二方面,为达到上述目的,本专利技术实施例还提供了一种数据写入方法,应用于分布式存储系统中的存储服务器,方法包括:接收恢复离线数据副本的指令;根据指令恢复离线数据副本;接收网关设备发送的写入请求;在离线数据副本未被恢复完成的情况下,向网关设备发送目标数据的存储可靠性降低的消息,并挂起写入请求。可选的,在本专利技术实施例的一种具体实施方式中,方法还包括:在离线数据副本被恢复完成的情况下,根据写入请求对被恢复的离线数据副本进行写入;在写入完成后,向网关设备发送数据副本被写入成功的响应消息。第三方面,本专利技术实施例还提供了一种数据恢复方法,应用于分布式存储系统中的存储服务器,方法包括:接收恢复离线数据副本的指令;根据指令,接收网关设备发送的与离线数据副本对应的数据;根据与离线数据副本对应的数据,恢复离线数据副本。第四方面,为达到上述目的,本专利技术实施例还提供了一种数据写入装置,应用于分布式存储系统中的网关设备,装置包括:第一接收模块、第一发送模块、确定模块和返回模块,其中,第一接收模块,用于接收客户端发送的针对目标数据的写入请求;第一发送模块,用于将写入请求发送给目标数据的所有数据副本对应的存储服务器;确定模块,用于若存在无法被写入成功的目标数据的离线数据副本,确定除离线数据副本对应的第一存储服务器之外的用于存储目标数据的其他数据副本的其他存储服务器;返回模块,用于在接收到所有其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向客户端返回目标数据写入成功的消息。可选的,在本专利技术实本文档来自技高网
...

【技术保护点】
1.一种数据写入方法,其特征在于,应用于分布式存储系统中的网关设备,所述方法包括:接收客户端发送的针对目标数据的写入请求;将所述写入请求发送给所述目标数据的所有数据副本对应的存储服务器;若存在无法被写入成功的所述目标数据的离线数据副本,确定除所述离线数据副本对应的第一存储服务器之外的用于存储所述目标数据的其他数据副本的其他存储服务器;在接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回所述目标数据写入成功的消息。

【技术特征摘要】
1.一种数据写入方法,其特征在于,应用于分布式存储系统中的网关设备,所述方法包括:接收客户端发送的针对目标数据的写入请求;将所述写入请求发送给所述目标数据的所有数据副本对应的存储服务器;若存在无法被写入成功的所述目标数据的离线数据副本,确定除所述离线数据副本对应的第一存储服务器之外的用于存储所述目标数据的其他数据副本的其他存储服务器;在接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回所述目标数据写入成功的消息。2.根据权利要求1所述的方法,其特征在于,在确定除所述离线数据副本对应的第一存储服务器之外的用于存储所述目标数据的其他数据副本的其他存储服务器之前,所述方法还包括:获取用于存储被恢复的离线数据副本的第二存储服务器的标识信息;根据所述标识信息,将所述离线数据副本的写入请求发送给所述第二存储服务器;接收所述第二存储服务器发送的,所述目标数据的存储可靠性降低的消息;所述在接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回所述目标数据写入成功的消息,包括:在接收到所述目标数据的存储可靠性降低的消息,且接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回写入成功的消息。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:接收被恢复的所述目标数据的离线数据副本被写入成功后,对应的响应消息,其中,所述响应消息是由存储所述目标数据的被恢复的离线数据副本的存储服务器发送的。4.根据权利要求1所述的方法,其特征在于,若不存在无法被写入成功的所述目标数据的离线数据副本,所述方法还包括:接收所述所有数据副本对应的存储服务器发送的,数据副本被写入成功的响应消息;根据所述响应消息,向所述客户端返回写入成功的消息。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:读取所述响应消息对应的存储服务器中存储的数据副本,并将所述数据副本发送给所述第二存储服务器,以使所述第二存储服务器根据所述数据副本进行数据恢复。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收被恢复的所述离线数据副本被写入成功后,对应的响应消息,其中,所述响应消息是由所述第二存储服务器发送的。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收所述所有数据副本对应的存储服务器发送的,数据副本被写入成功的响应消息;根据所述响应消息,向所述客户端返回写入成功的消息。8.据权利要求5所述的方法,其特征在于,在接收客户端发送的针对目标数据的写入请求之前,所述方法还包括:在用户登录客户端时,针对所述客户端对应的每一目标数据,判断所述目标数据的所有数据副本是否一致;若不是所述所有数据副本一致,修复所述目标数据的数据副本。9.根据权利要求5所述的方法,其特征在于,所述方法还包括:根据预设周期,针对所述客户端对应的每一目标数据,判断所述目标数据的所有数据副本是否一致;若不是所述所有数据副本一致,修复所述目标数据的数据副本。10.一种数据写入方法,其特征在于,应用于分布式存储系统中的存储服务器,所述方法包括:接收恢复离线数据副本的指令;根据所述指令恢复所述离线数据副本;接收网关设备发送的写入请求;在所述离线数据副本未被恢复完成的情况下,向所述网关设备发送所述目标数据的存储可靠性降低的消息,并挂起所述写入请求。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:在所述离线数据副本被恢复完成的情况下,根据所述写入请求对被恢复的所述离线数据副本进行写入;在写入完成后,向所述网关设备发送所述数据副本被写入成功的响应消息。12.一种数据恢复方法,其特征在于,应用于分布式存储系统中的存储服务器,所述方法包括:接收恢复离线数据副本的指令;根据所述指令,接收网关设备发送的与所述离线数据副本对应的数据;根据所述与所述离线数据副本对应的数据,恢复所述离线数据副本。13.一种数据写入装置,其特征在于,应用于分布式存储系统中的网关设备,所述装置包括:第一接收模块、第一发送模块、确定模块和返回模块,其中,所述第一接收模块,用于接收客户端发送的针对目标数据的写入请求;所述第一发送模块,用于将所述写入请求发送给所述目标数据的所有数据副本对应的存储服务器;所述确定模块,用于若存在无法被写入成功的所述目标数据的离线数据副本,确定除所述离线数据副本对应的第一存储服务器之外的用于存储所述目标数据的其他数据副本的其他存储服务器;所述返回模块,用于在接收到所有所述其他存储服务器中的两个或两个以上的存储服务器反馈的对应的数据副本写入成功的响应消息后,向所述客户端返回所述目标数据写入成功的消息。14.根据权利要求13所述的装置,其特征在于,所述装置还包括:获取模块、第二接收模块,其中,所述获取模块,用于获取用于存储被恢复的离线数据副本的第二存...

【专利技术属性】
技术研发人员:袁冬
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京,11

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

1