分布式存储系统的数据重建方法、装置、设备及存储介质与流程

文档序号:18409124发布日期:2019-08-10 00:46阅读:212来源:国知局
分布式存储系统的数据重建方法、装置、设备及存储介质与流程

本发明涉及数据重建技术领域,尤其涉及一种分布式存储系统的数据重建方法、装置、设备及存储介质。



背景技术:

在分布式存储系统中,当主机、主机的hdd(harddiskdrive,硬盘驱动器)或主机的ssd(solidstatedrives,固态硬盘)发生故障后,存储数据会长时间处于单副本状态,存在数据丢失风险。为保证可靠性,需要根据其它数据副本将数据快速恢复到新的主机、hdd或ssd上,即进行数据重建。

当前分布式存储系统中,重建任务发起后,重建以固定深度读写重建源磁盘与目的磁盘,在目的磁盘业务负载较大时,数据重建会抢占部分业务性能,导致目的磁盘的业务性能下降;在目的磁盘的业务负载较小时,重建无法最大限度利用资源,导致数据重建的效率低。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种分布式存储系统的数据重建方法、装置、设备及存储介质,旨在解决分布式存储系统进行数据重建时无法兼顾目的磁盘的业务性能以及重建效率的技术问题。

为实现上述目的,本发明提供一种分布式存储系统的数据重建方法,所述分布式存储系统的数据重建方法包括以下步骤:

在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

获取所述重建目的磁盘的第二状态信息;

基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作。

进一步地,所述基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件的步骤包括:

基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降;

在所述业务性能下降时,基于第一批重建文件的第一重建深度,确定第二重建深度,其中,所述第二重建深度小于所述第一重建深度;

基于所述第二重建深度确定第二批重建文件。

进一步地,所述基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降的步骤之后,还包括:

在所述业务性能提升时,基于第一批重建文件的第一重建深度,确定第三重建深度,其中,所述第三重建深度大于所述第一重建深度;

基于所述第三重建深度确定第二批重建文件。

进一步地,所述第一状态信息的包括第一业务读写时延,所述第二状态信息的包括第二业务读写时延,所述基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降的步骤包括:

确定所述第一业务读写时延是否大于所述第二业务读写时延;

其中,在所述第一业务读写时延大于所述第二业务读写时延时,确定所述业务性能下降,在所述第一业务读写时延小于所述第二业务读写时延时,确定所述业务性能提升。

进一步地,所述基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作的步骤之前,所述分布式存储系统的数据重建方法还包括:

在第一批重建文件的第一重建深度大于第一预设重建深度时,控制所述重建目的磁盘增加并行重建的重建文件个数;或者,

在所述第一重建深度小于第二预设重建深度时,控制所述重建目的磁盘减少并行重建的重建文件个数,其中,所述第二预设重建深度小于所述第一预设重建深度。

进一步地,所述基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作的步骤包括:

确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数;

在第二批重建文件中未重建的文件个数大于重建文件个数时,基于所述重建文件个数获取第二批重建文件中,第一待重建文件的第一文件偏移以及第一长度信息;

基于所述第一文件偏移以及第一长度信息在重建源磁盘读取待重建文件,并将读取的所述第一待重建文件写入重建目的磁盘;

继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤。

进一步地,所述确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤之后,还包括:

在第二批重建文件中未重建的文件个数小于或等于重建文件个数时,获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息;

基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取的所述第二待重建文件写入重建目的磁盘。

进一步地,所述在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息的步骤包括:

在第一批重建文件重建完成后,确定当前是否存在未重建的待重建文件;

若存在,则确定当前未重建的待重建文件的个数是否大于或等于第一批重建文件的个数;

在当前未重建的待重建文件的个数大于或等于第一批重建文件的个数时,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

在当前未重建的待重建文件的个数小于第一批重建文件的个数时,基于当前未重建的待重建文件对应的重建源磁盘以及重建目的磁盘,执行当前未重建的待重建文件的重建操作。

进一步地,所述基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作的步骤之后,所述分布式存储系统的数据重建方法还包括:

在所述第二批重建文件的重建操作执行完成时,将所述第二批重建文件作为所述第一批重建文件,并继续执行获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息的步骤。

此外,为实现上述目的,本发明还提供一种分布式存储系统的数据重建装置,所述分布式存储系统的数据重建装置包括:

第一获取模块,用于在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

第二获取模块,用于获取所述重建目的磁盘的第二状态信息;

确定模块,用于基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

重建模块,用于基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作。

此外,为实现上述目的,本发明还提供一种分布式存储系统的数据重建设备,所述分布式存储系统的数据重建设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式存储系统的数据重建程序,所述分布式存储系统的数据重建程序被所述处理器执行时实现前述的分布式存储系统的数据重建方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有分布式存储系统的数据重建程序,所述分布式存储系统的数据重建程序被处理器执行时实现前述的分布式存储系统的数据重建方法的步骤。

本发明通过在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息,接着获取所述重建目的磁盘的第二状态信息,而后基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件,然后基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作,实现了根据重建目的磁盘的状态信息即业务性能确定第二批重建文件,进而在兼顾重建目的磁盘的业务性能的同时提升重建效率,在重建目的磁盘有业务时,尽最大限度保证业务性能,在重建目的磁盘的业务性能变化时,也可以保证业务性能的稳定性;如果重建目的磁盘的业务压力提高时,主动降低数据重建的读写深度,减少重建文件数,如果业务压力下降时,逐渐加大重建的读写深度,增加重建文件数。

附图说明

图1是本发明实施例方案涉及的硬件运行环境中分布式存储系统的数据重建设备的结构示意图;

图2为本发明分布式存储系统的数据重建方法第一实施例的流程示意图;

图3为本发明分布式存储系统的数据重建装置一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境中分布式存储系统的数据重建设备的结构示意图。

本发明实施例分布式存储系统的数据重建设备可以是pc。如图1所示,该分布式存储系统的数据重建设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,分布式存储系统的数据重建设备还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。

本领域技术人员可以理解,图1中示出的分布式存储系统的数据重建设备结构并不构成对分布式存储系统的数据重建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分布式存储系统的数据重建程序。

在图1所示的分布式存储系统的数据重建设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的分布式存储系统的数据重建程序。

在本实施例中,分布式存储系统的数据重建设备包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的分布式存储系统的数据重建程序,其中,处理器1001调用存储器1005中存储的分布式存储系统的数据重建程序时,并执行以下操作:

在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

获取所述重建目的磁盘的第二状态信息;

基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降;

在所述业务性能下降时,基于第一批重建文件的第一重建深度,确定第二重建深度,其中,所述第二重建深度小于所述第一重建深度;

基于所述第二重建深度确定第二批重建文件。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

在所述业务性能提升时,基于第一批重建文件的第一重建深度,确定第三重建深度,其中,所述第三重建深度大于所述第一重建深度;

基于所述第三重建深度确定第二批重建文件。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

确定所述第一业务读写时延是否大于所述第二业务读写时延;

其中,在所述第一业务读写时延大于所述第二业务读写时延时,确定所述业务性能下降,在所述第一业务读写时延小于所述第二业务读写时延时,确定所述业务性能提升。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

在第一批重建文件的第一重建深度大于第一预设重建深度时,控制所述重建目的磁盘增加并行重建的重建文件个数;或者,

在所述第一重建深度小于第二预设重建深度时,控制所述重建目的磁盘减少并行重建的重建文件个数,其中,所述第二预设重建深度小于所述第一预设重建深度。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数;

在第二批重建文件中未重建的文件个数大于重建文件个数时,基于所述重建文件个数获取第二批重建文件中,第一待重建文件的第一文件偏移以及第一长度信息;

基于所述第一文件偏移以及第一长度信息在重建源磁盘读取待重建文件,并将读取的所述第一待重建文件写入重建目的磁盘;

继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

在第二批重建文件中未重建的文件个数小于或等于重建文件个数时,获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息;

基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取的所述第二待重建文件写入重建目的磁盘。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

在第一批重建文件重建完成后,确定当前是否存在未重建的待重建文件;

若存在,则确定当前未重建的待重建文件的个数是否大于或等于第一批重建文件的个数;

在当前未重建的待重建文件的个数大于或等于第一批重建文件的个数时,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

在当前未重建的待重建文件的个数小于第一批重建文件的个数时,基于当前未重建的待重建文件对应的重建源磁盘以及重建目的磁盘,执行当前未重建的待重建文件的重建操作。

进一步地,处理器1001可以调用存储器1005中存储的分布式存储系统的数据重建程序,还执行以下操作:

在所述第二批重建文件的重建操作执行完成时,将所述第二批重建文件作为所述第一批重建文件,并继续执行获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息的步骤。

本发明还提供一种分布式存储系统的数据重建方法,参照图2,图2为本发明分布式存储系统的数据重建方法第一实施例的流程示意图。

在本实施例中,该分布式存储系统的数据重建方法包括:

步骤s110,在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

其中,重建深度是指重建过程中每个批量读写块(文件)的个数,如果一个批量只读写一个块,表示深度为1。

在本实施例中,在需要进行数据重建时,先进行第一批重建文件的重建操作。在第一批重建文件重建完成后,反馈重建目的磁盘的第一状态信息,即获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息。第一状态信息可包括该重建目的磁盘的业务读写请求数、重建目的磁盘的业务读写时延,第一批重建文件对应的重建读写请求数以及重建读写时延。

具体地,在第一批重建文件重建完成后,确定当前是否存在未重建的待重建文件,若存在,则获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息。进一步地,若当前存在未重建的待重建文件,则确定当前未重建的待重建文件的个数是否大于或等于第一批重建文件的个数,在当前未重建的待重建文件的个数大于或等于第一批重建文件的个数时,则获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息,在当前未重建的待重建文件的个数小于第一批重建文件的个数时,基于当前未重建的待重建文件对应的重建源磁盘以及重建目的磁盘,执行对当前未重建的待重建文件的重建操作。

在当前未重建的待重建文件的个数大于或等于第一批重建文件的个数时,当前需要进行重建的文件的数量较多,需要根据重建目的磁盘的业务能力确定第二批重建文件的个数,以尽最大限度保证重建目的磁盘的业务性能,确保在不影响重建目的磁盘的业务性能的前提下进行文件重建。在当前未重建的待重建文件的个数小于第一批重建文件的个数时,在不影响业务能力的前提下,重建目的磁盘当前已完成第一批重建文件的重建操作,并且,一般情况下,重建目的磁盘的重建深度为逐个调节的,因此,无论当前未重建的待重建文件的个数是多少,均可直接执行对当前未重建的待重建文件的重建操作,以减少通过第一状态信息以及第二状态信息调节第二批重建文件的个数的步骤,提高文件重建的效率。

步骤s120,获取所述重建目的磁盘的第二状态信息;

在获取到第一状态信息时,获取该重建目的磁盘的第二状态信息,该第二状态信息可以为第一批重建文件进行重建之前重建目的磁盘的状态信息,在第一批重建文件进行重建时,预先存储该重建目的磁盘的第二状态信息,该第二状态信息包括:第一批重建文件进行重建之前,重建目的磁盘的业务读写请求数以及业务读写时延,或者,该第二状态信息还可以为第一批重建文件进行重建之前的时刻与当前时刻之间的任一时刻,该重建目的磁盘的状态信息。

步骤s130,基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

在本实施例中,在获取到第一状态信息以及第二状态信息时,基于该第一状态信息以及所述第二状态信息确定第二批重建文件,该第二批重建文件包括一个或多个文件,若该第二批重建文件包括多个文件,且当前存在多个重建源磁盘,且第二批重建文件的文件个数大于或等于重建源磁盘的数量,则该第二批重建文件分别对应多个重建源磁盘,即第二批重建文件为分别存在各个重建源磁盘中的待重建文件;若第二批重建文件的文件个数小于重建源磁盘的数量,则随机选择与文件个数相同数量的重建源磁盘,第二批重建文件为分别存在各个选择的重建源磁盘中的待重建文件。

具体地,在获取到第一状态信息以及第二状态信息时,确定重建目的磁盘的业务性能是否下降或者提升,若提升,则第二批重建文件的文件个数大于第一批重建文件的个数,若下降,则第二批重建文件的文件个数小于第一批重建文件的个数,若基本不变,则第二批重建文件的文件个数等于第一批重建文件的个数。

步骤s140,基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作。

在本实施例中,在确定第二批重建文件时,根据第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作,能够根据重建目的磁盘的业务性能执行文件的重建,在兼顾目的磁盘的业务性能的同时提升重建效率。其中,重建源磁盘为第二批重建文件中各个文件所在的磁盘,重建目的磁盘为第二批重建文件中各个文件需要写入的磁盘。

需要说明的是,在本实施例中,可按照固定深度读写重建源磁盘与重建目的磁盘,执行第一批重建文件的重建操作,或者,获取分布式存储系统中重建目的磁盘当前的业务负载程度(业务读写时延),基于该业务负载程度确定数据重建的重建深度(重建文件数量),进而基于重建文件数量对应的第一批重建文件,并执行第一批重建文件的重建操作。

其中,在需要进行数据重建时,首先确定重建目的磁盘,具体地,确定分布式存储系统中各个磁盘当前的业务负载程度(业务读写时延),将业务读写时延最小的磁盘作为重建目的磁盘,或者,将业务读写时延最小的预设数量的磁盘作为重建目的磁盘,以实现将重建任务自动分布在空闲的磁盘上运行。

进一步地,在一实施例中,在步骤s140之前,该分布式存储系统的数据重建方法还包括:

在第一批重建文件的第一重建深度大于第一预设重建深度时,控制所述重建目的磁盘增加并行重建的重建文件个数;或者,

在所述第一重建深度小于第二预设重建深度时,控制所述重建目的磁盘减少并行重建的重建文件个数,其中,所述第二预设重建深度小于所述第一预设重建深度。

在本实施例中,若第一批重建文件的第一重建深度大于第一预设重建深度,则控制重建目的磁盘增加并行重建的重建文件个数,例如,重建目的磁盘默认配制允许2个文件同时进行重建,则调整后该重建目的磁盘允许3个文件同时进行重建。若第一重建深度小于第二预设重建深度,则控制重建目的磁盘减少并行重建的重建文件个数,例如,重建目的磁盘默认配制允许2个文件同时进行重建,则调整后该重建目的磁盘允许1个文件同时进行重建。

通过根据第一重建深度调整重建目的磁盘中并行重建的重建文件个数,即根据第一重建深度即第一批重建文件的文件个数调整并行重建的重建文件个数,以使得并行重建的重建文件个数与第二批重建文件的文件个数更加契合,进一步提高文件重建的效率。

进一步地,又一实施例中,在步骤s140之后,该分布式存储系统的数据重建方法还包括:

在所述第二批重建文件的重建操作执行完成时,将所述第二批重建文件作为所述第一批重建文件,并继续执行获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息的步骤。

在本实施例中,通过设置第二批重建文件为第一批重建文件,以继续执行步骤s110,进而使得后续的数据重建继续执行本实施例的各个步骤。

本实施例提出的分布式存储系统的数据重建方法,通过在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息,接着获取所述重建目的磁盘的第二状态信息,而后基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件,然后基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作,实现了根据重建目的磁盘的状态信息即业务性能确定第二批重建文件,进而在兼顾重建目的磁盘的业务性能的同时提升重建效率,在重建目的磁盘有业务时,尽最大限度保证业务性能,在重建目的磁盘的业务性能变化时,也可以保证业务性能的稳定性;如果重建目的磁盘的业务压力提高时,主动降低数据重建的读写深度,减少重建文件数,如果业务压力下降时,逐渐加大重建的读写深度,增加重建文件数。

基于第一实施例,提出本发明分布式存储系统的数据重建方法的第二实施例,在本实施例中,步骤s130包括:

步骤s131,基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降;

步骤s132,在所述业务性能下降时,基于第一批重建文件的第一重建深度,确定第二重建深度,其中,所述第二重建深度小于所述第一重建深度;

步骤s133,基于所述第二重建深度确定第二批重建文件。

在本实施例中,在获取到第一状态信息以及第二状态信息时,确定重建目的磁盘的业务性能是否下降,若下降,基于第一批重建文件的第一重建深度,确定第二重建深度,并基于所述第二重建深度确定第二批重建文件,以使第二批重建文件的文件个数小于第一批重建文件的个数。

具体地,若第一重建深度为4,则在重建目的磁盘的业务性能下降时,第二重建深度为3,即第二批重建文件包括三个文件,其中,该第二重建深度大于或等于1。

进一步地,在一实施例中,第一状态信息的包括第一业务读写时延,第二状态信息的包括第二业务读写时延,

步骤s131包括:确定所述第一业务读写时延是否大于所述第二业务读写时延;

其中,在所述第一业务读写时延大于所述第二业务读写时延时,确定所述业务性能下降,在所述第一业务读写时延小于所述第二业务读写时延时,确定所述业务性能提升。

本实施例提出的分布式存储系统的数据重建方法,通过基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降,接着在所述业务性能下降时,基于第一批重建文件的第一重建深度,确定第二重建深度,而后基于所述第二重建深度确定第二批重建文件,进而在重建目的磁盘的业务压力提高、业务性能下降时,主动降低数据重建的读写深度(第二重建深度),减少重建文件数,尽最大限度保证业务性能,实现了根据重建目的磁盘业务性能确定第二批重建文件,进一步在兼顾重建目的磁盘的业务性能的同时提升重建效率。

基于第二实施例,提出本发明分布式存储系统的数据重建方法的第三实施例,在本实施例中,在步骤s131之后,还包括:

步骤s134,在所述业务性能提升时,基于第一批重建文件的第一重建深度,确定第三重建深度,其中,所述第三重建深度大于所述第一重建深度;

步骤s135,基于所述第三重建深度确定第二批重建文件。

在本实施例中,在重建目的磁盘的业务性能提升时,即第一业务读写时延小于第二业务读写时延时,基于第一批重建文件的第一重建深度,确定第三重建深度,其中,所述第三重建深度大于所述第一重建深度,并基于第三重建深度确定第二批重建文件,以使第二批重建文件的文件个数大于第一批重建文件的个数。

具体地,若第一重建深度为4,则在重建目的磁盘的业务性能提升时,第三重建深度为5,即第二批重建文件包括5个文件,其中,该第三重建深度小于或等于最大重建深度,该最大重建深度可设置为默认值8。

本实施例提出的分布式存储系统的数据重建方法,通过在所述业务性能提升时,基于第一批重建文件的第一重建深度,确定第三重建深度,接着基于所述第三重建深度确定第二批重建文件,进而在重建目的磁盘的业务压力降低、业务性能提升时,主动提高数据重建的读写深度(第三重建深度),增加重建文件数,以在确保重建目的磁盘的业务性能的前提下提升重建效率,进一步在兼顾重建目的磁盘的业务性能的同时提升重建效率。

基于第一实施例,提出本发明分布式存储系统的数据重建方法的第四实施例,在本实施例中,步骤s140包括:

步骤s141,确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数;

步骤s142,在第二批重建文件中未重建的文件个数大于重建文件个数时,基于所述重建文件个数获取第二批重建文件中,未重建的待重建文件的第一文件偏移以及第一长度信息;

步骤s143,基于所述第一文件偏移以及第一长度信息在重建源磁盘读取待重建文件,并将读取的所述第一待重建文件写入重建目的磁盘;

步骤s144,在所述第一待重建文件重建完成时,继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤。

在本实施例中,在对第二批重建文件进行重建操作时,确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数,若首次对第二批重建文件进行重建,则该未重建的文件个数为第二批重建文件的文件总数,若第二批重建文件中未重建的文件个数大于重建文件个数,则基于重建文件个数获取第二批重建文件中,第一待重建文件的第一文件偏移以及第一长度信息,基于所述第一文件偏移以及第一长度信息在重建源磁盘读取第一待重建文件,并将读取到的第一待重建文件写入重建目的磁盘,进而实现第一待重建文件的重建,并继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤,以确保第二批重建文件中的所有文件完成重建。

本实施例提出的分布式存储系统的数据重建方法,通过确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数,接着在第二批重建文件中未重建的文件个数大于重建文件个数时,基于所述重建文件个数获取第二批重建文件中,第一待重建文件的第一文件偏移以及第一长度信息,而后基于所述第一文件偏移以及第一长度信息在重建源磁盘读取第一待重建文件,并将读取的所述第一待重建文件写入重建目的磁盘,然后继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤,能够根据重建目的磁盘并行重建的重建文件个数,确定并行重建的文件进行重建,以确保第二批重建文件的重建操作顺利完成。

基于第四实施例,提出本发明分布式存储系统的数据重建方法的第五实施例,在本实施例中,步骤s141之后,还包括:

步骤s145,在第二批重建文件中未重建的文件个数小于或等于重建文件个数时,获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息;

步骤s146,基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取的所述第二待重建文件写入重建目的磁盘。

在本实施例中,若第二批重建文件中未重建的文件个数小于或等于重建文件个数,则获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息,该第二待重建文件为第二批重建文件中所有未重建的文件,基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取到的第二待重建文件写入重建目的磁盘,进而实现第二待重建文件的重建,在该第二待重建文件重建完成时,该第二批重建文件的重建操作执行完成。

本实施例提出的分布式存储系统的数据重建方法,通过在第二批重建文件中未重建的文件个数小于或等于重建文件个数时,获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息,接着基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取的所述第二待重建文件写入重建目的磁盘,能够根据重建目的磁盘并行重建的重建文件个数,确定并行重建的文件进行重建,以确保第二批重建文件的重建操作顺利完成。

此外,本发明实施例还提出一种分布式存储系统的数据重建装置,参照图3,图3为本发明分布式存储系统的数据重建装置一实施例的功能模块示意图。

本实施例中,分布式存储系统的数据重建装置包括:

第一获取模块10,用于在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

第二获取模块20,用于获取所述重建目的磁盘的第二状态信息;

确定模块30,用于基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

重建模块40,用于基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作。

需要说明的是,分布式存储系统的数据重建装置的各个实施例与上述分布式存储系统的数据重建方法的各实施例基本相同,在此不再详细赘述。

本实施例提出的分布式存储系统的数据重建装置,通过在第一批重建文件重建完成后,第一获取模块10获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息,接着第二获取模块20获取所述重建目的磁盘的第二状态信息,而后确定模块30基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件,然后重建模块40基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行对所述第二批重建文件的重建操作,实现了根据重建目的磁盘的状态信息即业务性能确定第二批重建文件,进而在兼顾重建目的磁盘的业务性能的同时提升重建效率,在重建目的磁盘有业务时,尽最大限度保证业务性能,在重建目的磁盘的业务性能变化时,也可以保证业务性能的稳定性;如果重建目的磁盘的业务压力提高时,主动降低数据重建的读写深度,减少重建文件数,如果业务压力下降时,逐渐加大重建的读写深度,增加重建文件数。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有分布式存储系统的数据重建程序,所述分布式存储系统的数据重建程序被处理器执行时实现如下操作:

在第一批重建文件重建完成后,获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

获取所述重建目的磁盘的第二状态信息;

基于所述第一状态信息以及所述第二状态信息,确定第二批重建文件;

基于所述第二批重建文件对应的重建源磁盘以及所述重建目的磁盘,执行所述第二批重建文件的重建操作。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

基于所述第一状态信息以及所述第二状态信息,确定所述重建目的磁盘的业务性能是否下降;

在所述业务性能下降时,基于第一批重建文件的第一重建深度,确定第二重建深度,其中,所述第二重建深度小于所述第一重建深度;

基于所述第二重建深度确定第二批重建文件。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

在所述业务性能提升时,基于第一批重建文件的第一重建深度,确定第三重建深度,其中,所述第三重建深度大于所述第一重建深度;

基于所述第三重建深度确定第二批重建文件。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

确定所述第一业务读写时延是否大于所述第二业务读写时延;

其中,在所述第一业务读写时延大于所述第二业务读写时延时,确定所述业务性能下降,在所述第一业务读写时延小于所述第二业务读写时延时,确定所述业务性能提升。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

在第一批重建文件的第一重建深度大于第一预设重建深度时,控制所述重建目的磁盘增加并行重建的重建文件个数;或者,

在所述第一重建深度小于第二预设重建深度时,控制所述重建目的磁盘减少并行重建的重建文件个数,其中,所述第二预设重建深度小于所述第一预设重建深度。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数;

在第二批重建文件中未重建的文件个数大于重建文件个数时,基于所述重建文件个数获取第二批重建文件中,第一待重建文件的第一文件偏移以及第一长度信息;

基于所述第一文件偏移以及第一长度信息在重建源磁盘读取待重建文件,并将读取的所述第一待重建文件写入重建目的磁盘;

继续执行确定第二批重建文件中未重建的文件个数,是否大于重建目的磁盘并行重建的重建文件个数的步骤。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

在第二批重建文件中未重建的文件个数小于或等于重建文件个数时,获取第二批重建文件中,第二待重建文件的第二文件偏移以及第二长度信息;

基于所述第二文件偏移以及第二长度信息在重建源磁盘读取第二待重建文件,并将读取的所述第二待重建文件写入重建目的磁盘。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

在第一批重建文件重建完成后,确定当前是否存在未重建的待重建文件;

若存在,则确定当前未重建的待重建文件的个数是否大于或等于第一批重建文件的个数;

若是,则获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息;

否则,基于当前未重建的待重建文件对应的重建源磁盘以及重建目的磁盘,执行当前未重建的待重建文件的重建操作。

进一步地,所述分布式存储系统的数据重建程序被处理器执行时还实现如下操作:

在所述第二批重建文件的重建操作执行完成时,将所述第二批重建文件作为所述第一批重建文件,并继续执行获取分布式存储系统中所述第一批重建文件对应的重建目的磁盘的第一状态信息的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1