分布式存储IO路径数据写入、读取方法、装置和设备与流程

文档序号:33340159发布日期:2023-03-04 02:14阅读:45来源:国知局
分布式存储IO路径数据写入、读取方法、装置和设备与流程
分布式存储io路径数据写入、读取方法、装置和设备
技术领域
1.本发明涉及存储领域,尤其涉及一种分布式存储io路径数据写入方法、分布式存储io路径数据读取方法、分布式存储io路径数据写入装置、分布式存储io路径数据读取装置、计算机设备及存储介质。


背景技术:

2.数据一致性是存储系统最基本的要求。在存储系统中,任何一个存储服务或者介质的异常,极易引起数据的不一致。在as13000分布式存储系统中,从接收到客户端的数据请求到真正的读取/写入到磁盘介质,中间需要经过多个数据处理服务,每个服务的异常处理(例如内存被越界访问)都有可能引起数据错误,系统版本测试一旦出现数据不一致问题,只能依靠不断的复现和增加调试日志才能定位解决;而在现场环境中一旦出现数据不一致,则直接影响用户业务。


技术实现要素:

3.有鉴于此,有必要针对以上技术问题,提供一种分布式存储io路径数据写入方法、分布式存储io路径数据读取方法、分布式存储io路径数据写入装置、分布式存储io路径数据读取装置、计算机设备及存储介质。
4.根据本发明的第一方面,提供了一种分布式存储io路径数据写入方法,所述分布式存储io路径数据写入方法包括:由客户端发送待写入数据,并由接入网关为接收到的所述待写入数据生成原始校验值;获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质。
5.在一些实施例中,所述校验模式为调试模式。
6.在一些实施例中,所述根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中、所述存储服务中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的待写入数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
7.在一些实施例中,所述根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质,包括:响应于接入网关中校验的执行结果为通过,则由接入网关将所述待写入数据和所述原始校验值发送给存储服务;
响应于存储服务中校验的执行结果为通过,则由存储服务将所述待写入数据和所述原始校验值发送给存储引擎;响应于存储引擎中校验的执行结果为通过,则允许存储引擎将所述待写入数据和所述原始校验值发送给存储介质以完成数据落盘;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将待写入数据和所述原始校验值写入存储介质,并确认数据写入失败。
8.在一些实施例中,所述校验模式为精简模式。
9.在一些实施例中,所述根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的待写入数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
10.在一些实施例中,所述根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质,包括:响应于接入网关中校验的执行结果为通过,则由接入网关将所述待写入数据和所述原始校验值发送给存储服务;则由存储服务将所述待写入数据和所述原始校验值直接发送给存储引擎;响应于存储引擎中校验的执行结果为通过,则允许存储引擎将所述待写入数据和所述原始校验值发送给存储介质以完成数据落盘;响应于接入网关中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将待写入数据和所述原始校验值写入存储介质,并确认数据写入失败。
11.在一些实施例中,所述存储服务包括主存储服务和从存储服务,所述分布式存储io路径数据写入还包括:当存储引擎中校验的执行结果为未通过时,则向主存储服务返回校验错误码,从存储服务继续处理;响应于主存储服务收到校验错误码,则终止主存储服务,并触发集群异常以产生新的主存储服务;响应于接入网关中osdc客户端检测到集群异常,则基于接收的待写入数据和所述原始校验值进行再次校验,若再次校验成功则将所述待写入数据和所述原始校验值发送给新的主存储服务。
12.在一些实施例中,原始校验值和新校验值均遵循以下原则:当数据部分是按照4k对齐写时,以每4k上数据为单位计算一个crc校验值;当数据部分不是按照4k对齐写时,则基于偏移和数据长度先按照4k进行对齐,然后以每4k上数据为单位计算一个crc校验值。
13.根据本发明的第二方面,还提供了一种分布式存储io路径数据读取方法,所述分布式存储io路径数据读取方法包括:由存储引擎根据客户端发送的数据读取请求从存储介质中读取数据以及与读取
数据对应的原始校验值;获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据。
14.在一些实施例中,所述校验模式为调试模式。
15.在一些实施例中,所述根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中、所述存储服务中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的读取数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
16.在一些实施例中,所述根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据,包括:响应于存储引擎中校验的执行结果为通过,则由存储引擎将所述读取数据和所述原始校验值发送给存储服务;响应于存储服务中校验的执行结果为通过,则由存储服务将所述读取数据和所述原始校验值发送给接入网关;响应于接入网关中校验的执行结果为通过,则允许接入网关将所述读取数据发送给客户端以完成数据读取;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将读取数据发送给客户端,并确认客户端数据读取失败。
17.在一些实施例中,所述校验模式为精简模式。
18.在一些实施例中,所述根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的读取数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
19.在一些实施例中,所述根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据,包括:存储引擎中校验的执行结果为通过,则由存储引擎将所述读取数据和所述原始校验值发送给存储服务;则由存储服务将所述读取数据和所述原始校验值直接发送给接入网关;响应于接入网关中校验的执行结果为通过,则允许接入网关将所述读取数据发送给客户端以完成数据读取;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将读取数据发送给客户端,
并确认客户端数据读取失败。
20.在一些实施例中,所述存储服务包括主存储服务和从存储服务,所述分布式存储io路径数据读取方法还包括:当接入网关中校验的执行结果为未通过时,则向主存储服务返回校验错误码,从存储服务继续处理;响应于主存储服务收到校验错误码,则终止主存储服务,并触发集群异常以产生新的主存储服务;响应于存储引擎检测到集群异常,则基于接收的读取数据和所述原始校验值进行再次校验,若再次校验成功则将所述读取数据和所述原始校验值发送给新的主存储服务。
21.在一些实施例中,原始校验值和新校验值均遵循以下原则:当数据部分是按照4k对齐写时,以每4k上数据为单位计算一个crc校验值;当数据部分不是按照4k对齐写时,则基于偏移和数据长度先按照4k进行对齐,然后以每4k上数据为单位计算一个crc校验值。
22.根据本发明的第三方面,还提供了一种分布式存储io路径数据写入装置,所述分布式存储io路径数据写入装置包括:生成模块,用于由客户端发送待写入数据,并由接入网关为接收到的所述待写入数据生成原始校验值;第一增加模块,用于获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;第一确认模块,用于根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质。
23.根据本发明的第四方面,还提供了一种分布式存储io路径数据读取装置,所述分布式存储io路径数据读取装置包括:读取模块,用于由存储引擎根据客户端发送的数据读取请求从存储介质中读取数据以及与读取数据对应的原始校验值;第二增加模块,用于获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;第二确认模块,用于根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据。
24.根据本发明的第五方面,还提供了一种计算机设备,该计算机设备包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的分布式存储io路径数据写入方法或分布式存储io路径数据读取方法。
25.根据本发明的第六方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的分布式存储io路径数据写入方法或分布式存储io路径数据读取方法。
26.上述一种分布式存储io路径数据写入方法、读取方法,通过在数据进入存储服务后增加数据校验,并将校验值与数据一同下发至下一服务,从而保证数据的强一致性,使得分布式存储集群数据读写过程中能够在io路径上及时发现数据的不一致问题,避免受污染的数据落入集群,保障分布式存储集群的数据的数据一致性,显著提升分布式存储的稳定
性。
27.此外,本发明还提供了一种分布式存储io路径数据写入装置、一种分布式存储io路径数据读取装置,一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
29.图1为本发明一个实施例提供的一种分布式存储io路径数据写入方法的流程示意图;图2为本发明一个实施例提供的一种分布式存储io路径数据读取方法的流程示意图;图3为本发明另一个实施例提供的写入数据在各服务之间传递的示意图;图4为本发明一个实施例提供的校验对齐处理示意图;图5为本发明一个实施例提供的多个存储服务执行正常数据写入流程;图6为本发明一个实施例提供的精简模式下校验异常流程;图7为本发明一个实施例提供的一种分布式存储io路径数据写入装置的结构示意图;图8为本发明一个实施例提供的一种分布式存储io路径数据读取装置的结构示意图;图9为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
30.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
31.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
32.在一个实施例中,请参照图1所示,本发明提供了一种分布式存储io路径数据写入方法100,具体来说所述分布式存储io路径数据写入方法包括:步骤101,由客户端发送待写入数据,并由接入网关为接收到的所述待写入数据生成原始校验值;步骤102,获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;步骤103,根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质。
33.上述一种分布式存储io路径数据写入方法、通过在数据进入存储服务后增加数据
校验,并将校验值与数据一同下发至下一服务,从而保证数据的强一致性,使得分布式存储集群数据写入过程中能够在io路径上及时发现数据的不一致问题,避免受污染的数据落入集群,保障分布式存储集群的数据的数据一致性,显著提升分布式存储的稳定性。
34.在一些实施例中,所述校验模式为调试模式。
35.在一些实施例中,前述步骤102中的根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中、所述存储服务中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的待写入数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
36.在一些实施例中,前述步骤103,根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质,包括:响应于接入网关中校验的执行结果为通过,则由接入网关将所述待写入数据和所述原始校验值发送给存储服务;响应于存储服务中校验的执行结果为通过,则由存储服务将所述待写入数据和所述原始校验值发送给存储引擎;响应于存储引擎中校验的执行结果为通过,则允许存储引擎将所述待写入数据和所述原始校验值发送给存储介质以完成数据落盘;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将待写入数据和所述原始校验值写入存储介质,并确认数据写入失败。
37.在一些实施例中,所述校验模式为精简模式。
38.在一些实施例中,前述步骤102中的根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的待写入数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
39.在一些实施例中,前述步骤103,根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质,包括:响应于接入网关中校验的执行结果为通过,则由接入网关将所述待写入数据和所述原始校验值发送给存储服务;则由存储服务将所述待写入数据和所述原始校验值直接发送给存储引擎;响应于存储引擎中校验的执行结果为通过,则允许存储引擎将所述待写入数据和所述原始校验值发送给存储介质以完成数据落盘;响应于接入网关中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将待写入数据和所述原始校验值写入存储介质,并确认数据写入失败。
40.在一些实施例中,所述存储服务包括主存储服务和从存储服务,所述分布式存储io路径数据写入还包括:当存储引擎中校验的执行结果为未通过时,则向主存储服务返回校验错误码,从存储服务继续处理;响应于主存储服务收到校验错误码,则终止主存储服务,并触发集群异常以产生新的主存储服务;响应于接入网关中osdc客户端检测到集群异常,则基于接收的待写入数据和所述原始校验值进行再次校验,若再次校验成功则将所述待写入数据和所述原始校验值发送给新的主存储服务。
41.在一些实施例中,原始校验值和新校验值均遵循以下原则:当数据部分是按照4k对齐写时,以每4k上数据为单位计算一个crc校验值;当数据部分不是按照4k对齐写时,则基于偏移和数据长度先按照4k进行对齐,然后以每4k上数据为单位计算一个crc校验值。
42.在另一个实施例中,请结合图2所示,本实施例提供了一种分布式存储io路径数据读取方法200,所述分布式存储io路径数据读取方法包括:步骤201,由存储引擎根据客户端发送的数据读取请求从存储介质中读取数据以及与读取数据对应的原始校验值;步骤202,获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;步骤203,根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据。
43.上述一种分布式存储io路径数据读取方法,通过在数据进入存储服务后增加数据校验,并将校验值与数据一同下发至下一服务,从而保证数据的强一致性,使得分布式存储集群数据读取过程中能够在io路径上及时发现数据的不一致问题,避免受污染的数据落入集群,保障分布式存储集群的数据的数据一致性,显著提升分布式存储的稳定性。
44.在一些实施例中,所述校验模式为调试模式。
45.在一些实施例中,前述步骤202中的根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中、所述存储服务中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的读取数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
46.在一些实施例中,前述步骤203,根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据,包括:响应于存储引擎中校验的执行结果为通过,则由存储引擎将所述读取数据和所述原始校验值发送给存储服务;响应于存储服务中校验的执行结果为通过,则由存储服务将所述读取数据和所述原始校验值发送给接入网关;响应于接入网关中校验的执行结果为通过,则允许接入网关将所述读取数据发送
给客户端以完成数据读取;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将读取数据发送给客户端,并确认客户端数据读取失败。
47.在一些实施例中,所述校验模式为精简模式。
48.在一些实施例中,前述步骤202中的根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作,包括:在所述接入网关中和所述存储引擎中各添加一次校验;其中,每次校验均用于为接收的读取数据生成新校验值,并将新校验值与原始校验值进行比较,若新校验值与原始校验值相同则执行结果为通过,若新校验值与原始校验值不相同则校验结果为未通过。
49.在一些实施例中,前述步骤203,根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据,包括:存储引擎中校验的执行结果为通过,则由存储引擎将所述读取数据和所述原始校验值发送给存储服务;则由存储服务将所述读取数据和所述原始校验值直接发送给接入网关;响应于接入网关中校验的执行结果为通过,则允许接入网关将所述读取数据发送给客户端以完成数据读取;响应于接入网关中校验的执行结果为未通过,和/或存储服务中校验的执行结果为未通过,和/或存储引擎中校验的执行结果为未通过,则拒绝将读取数据发送给客户端,并确认客户端数据读取失败。
50.在一些实施例中,所述存储服务包括主存储服务和从存储服务,所述分布式存储io路径数据读取方法还包括:当接入网关中校验的执行结果为未通过时,则向主存储服务返回校验错误码,从存储服务继续处理;响应于主存储服务收到校验错误码,则终止主存储服务,并触发集群异常以产生新的主存储服务;响应于存储引擎检测到集群异常,则基于接收的读取数据和所述原始校验值进行再次校验,若再次校验成功则将所述读取数据和所述原始校验值发送给新的主存储服务。
51.在一些实施例中,原始校验值和新校验值均遵循以下原则:当数据部分是按照4k对齐写时,以每4k上数据为单位计算一个crc校验值;当数据部分不是按照4k对齐写时,则基于偏移和数据长度先按照4k进行对齐,然后以每4k上数据为单位计算一个crc校验值。
52.在又一个实施例中,为了便于理解本发明的方案,本实施例提供了上述一种分布式存储io路径数据写入和读取的方法,其原理为在分布式存储系统的io路径的各个服务中增加数据校验功能,当数据进入存储系统后对数据进行校验,该校验值随数据一起流经io路径的各个服务,并在各个服务中处理前后进行校验,最终落盘在存储系统中,具体包括以下四部分:第一部分,当写数据时,存储系统网关接收到数据后,对数据计算校验值并传递到
下一个模块,直到osd模块对数据和校验值进行校验,并落盘。
53.第二部分,当读数据时,osd从存储介质上读取数据后,通过校验值对数据进行校验,校验成功后,校验值与数据一起返回给上层服务,到达存储网关时,再一次进行校验,保证数据出存储网关时的数据一致性。
54.第三部分,在进行数据校验时,每4kb数据为单元进行校验并产生校验值序列,便于在io流中crc校验值序列与数据一起进行处理(拆分、合并)。
55.第四部分,为适用于不同的业务场景,数据校验装置提供三种控制模式,包含关闭模式、精简模式和调试模式。
56.需要说明的是数据写入过程和数据读取过程是相反的过程,请结合图3所示,下面将以数据写入流程为例进行详细说明:(1)网关协议服务接收到客户端发过来的数据后,对数据按照4kb为单位进行数据校验并产生校验值序列,然后将数据和校验值序列通过接口调用的形式发送给接口层。
57.(2)接口层对数据进行校验,校验成功则通过osdc以消息的形式发送到存储服务;(3)存储服务收到数据后对数据重新生成校验值,并与收到的校验值进行对比,校验成功后继续进行处理,失败则返回错误码;(4)步骤(3)通过后,存储服务将数据和校验值分别存储到不同的介质中。
58.请参照图4所示,在数据校验粒度上以4k为校验粒度进行校验,非对齐部分按照4k对齐进行crc校验,具体实现方式如下:(1)当数据部分是按照4kb对齐操作(读/写)时,直接进行crc校验;(2)当数据部分不是按照4kb对齐操作时,则按照offset和length先按照4k进行对齐,然后再计算校验值;数据校验属于比较消耗系统资源(cpu)的操作,为适应不同的应用场景,存储端io路径数据校验装置提供了三种不同的校验策略:关闭模式、精简模式和调试模式。关闭模式下,前端网关、osdc、存储服务、存储引擎等模块均不参与校验,以期达到最佳性能。该模式适用于对数据一致性要求不高,追求性能的场景。例如音/视频存储场景等。精简模式即对数据在存储网关处和存储介质处进行校验,兼容数据校验与性能两方面考虑。调试模式则在存储系统的每一层io处理处均进行数据校验,完全保证数据的一致性。该模式适用于对数据一致性要求高的业务场景。例如金融场景。在三种校验模式的基础之上,存储系统在数据io路径的各个服务中增加单独开关,使每个服务可以独立进行数据校验,方便io路径上单个服务的数据校验。
59.此外在分布式存储中,需要多个存储服务单元配合实现数据的不同冗余策略(纠删或副本),正常数据写入流程如图5所示。精简模式的crc校验发生在数据落盘前进行校验。在上述数据流中,当校验模式为精简模式场景下,若数据校验错误发生在主osd接收数据请求后,冗余算法处理之前,当主osd及各个从osd在数据落盘进行校验时均会发生crc校验错误,若此时因crc校验错误而终止存储服务,必然会波及多个osd。为避免这个问题,请参照图6所示精简模式下的crc异常流程如下实现:(1)当存储引擎校验失败时,返回主存储服务错误码,从存储服务继续处理其他业务。
60.(2)主存储服务收到crc校验错误的错误码,终止服务,触发集群异常。
61.(3)osdc客户端检测到存储服务异常,对数据进行crc校验(此处校验是为了保证osdc发送给存储服务的数据是正确的),校验成功后重新发送给新的主存储服务。
62.本实施例的一种分布式存储io路径数据写入方法、读取方法,至少具备以下有益效果:首先,在分布式系统软件研发阶段发生数据不一致时,通过调试模式能够快速定位到产生数据不一致的模块,提升研发效率以及问题定位效率,节约人力成本;其次,在客户现场开启校验的模式下,能够为生产环境上数据一致性增加一次保险,避免因为软件调试以及io处理过程引起的数据不一致,进而提升分布式存储集群的稳定性与健康指数,进一步提升分布式存储的竞争力。
63.在一些实施例中,请参照图7所示,本发明还提供了一种分布式存储io路径数据写入装置300,所述分布式存储io路径数据写入装置包括:生成模块301,用于由客户端发送待写入数据,并由接入网关为接收到的所述待写入数据生成原始校验值;第一增加模块302,用于获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;第一确认模块303,用于根据所增加校验操作的执行结果传递所述待写入数据和所述原始校验值,以及确定是否将所述待写入数据和所述原始校验值写入存储介质。
64.需要说明的是,关于一种分布式存储io路径数据写入装置的具体限定可以参见上文中对一种分布式存储io路径数据写入方法的限定,在此不再赘述。上述一种分布式存储io路径数据写入装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
65.在一些实施例中,请参照图8所示,本发明还提供了一种分布式存储io路径数据读取装置400,所述分布式存储io路径数据读取装置包括:读取模块401,用于由存储引擎根据客户端发送的数据读取请求从存储介质中读取数据以及与读取数据对应的原始校验值;第二增加模块402,用于获取校验模式,并根据所述校验模式在接入网关、存储服务、存储引擎中的至少一处增加校验操作;第二确认模块403,用于根据所增加校验操作的执行结果传递所述读取数据和所述原始校验值,以及确定客户端能否从存储介质中正确读取数据。
66.需要说明的是,关于分布式存储io路径数据读取装置的具体限定可以参见上文中对分布式存储io路径数据读取方法的限定,在此不再赘述。上述分布式存储io路径数据读取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
67.根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。
该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的分布式存储io路径数据写入方法或所述的分布式存储io路径数据读取方法。
68.根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的分布式存储io路径数据写入方法或所述的分布式存储io路径数据读取方法。
69.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
70.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
71.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1