一种数据恢复方法及系统技术方案

技术编号:16873614 阅读:38 留言:0更新日期:2017-12-23 11:36
本申请提供了一种数据恢复方法及系统,当内核层多盘文件系统中的数据磁盘异常时,可基于元数据磁盘中存储的数据磁盘、文件以及数据块的关联关系确定异常数据磁盘中存储的数据块即待恢复数据块,以及该数据块所属的文件即待恢复文件,然后基于待恢复文件的标识确定待恢复文件的存储位置,进而基于该存储位置从应用层分布式存储系统中获取待恢复文件的待恢复数据块,将获取的数据块写入正常的数据磁盘。本申请利用待恢复文件的位置信息和相关数据块的信息可以做到数据块级别的数据恢复,这样可大大减少数据的恢复量,而且数据恢复在文件系统层面处理,可以减轻应用层分布式存储系统的负担,减少对前端业务的影响,提高恢复性能,缩短恢复时间。

A method and system for data recovery

The invention provides a data recovery method and system, when the kernel layer multi disk file system data disk is abnormal, the abnormal data can determine the stored data in the disk block to restore the data block for storing metadata data in the disk disk, file and data block relationship based on the file and data block is that to restore files, then identify the recovery file storage location to be restored based on the file, and then based on this storage location obtained from the application layer in the distributed storage system to restore files to restore data block, the data block is written into the normal data disk. This application uses information of location information and associated data blocks to restore files can achieve data block level data recovery, which can greatly reduce the amount of data recovery, data recovery and file system level processing, can reduce the application layer distributed storage system burden, reduce the impact on the business front, improve recovery performance shorten the recovery time.

【技术实现步骤摘要】
一种数据恢复方法及系统
本专利技术涉及数据存储
,尤其涉及一种数据恢复方法及系统。
技术介绍
目前,应用层分布式存储系统应用广泛,应用层分布式存储系统实现在应用层,将数据以固定大小的文件存储在底层文件系统中,采用多节点副本和故障自动恢复的方式保证数据的安全性。通常情况下,应用层分布式存储系统中,数据均匀分布在各个存储服务器的文件系统中,例如,在一个分布式文件系统中,有4个文件,每个文件3个副本,分布情况如图1所示,在图1示出的这种情况下,如果存储服务器1中磁盘损坏,文件系统会被标识为不可访问,此时,对于应用层分布式存储系统而言,部分数据处于副本缺失的状态,为了确保数据的安全性,应用层分布式存储系统会触发数据恢复功能,故障恢复结束后,文件分布如图2所示。目前,在应用层的应用层分布式存储系统中,数据恢复都以文件为粒度,由应用层分布式存储系统执行,从应用层分布式存储系统的其它节点读取副本恢复丢失的文件,因为恢复过程需要大量的计算,并且与业务争抢系统资源,包括网络、CPU、磁盘等,因此,对前端业务影响较大。
技术实现思路
有鉴于此,本专利技术提供了一种数据恢复方法及系统,用以解决现有技术中的文件恢复过程需要大量的计算,并且与业务争抢系统资源,对前端业务影响较大的问题,其技术方案如下:一种数据恢复方法,应用于内核层多盘文件系统,所述内核层多盘文件系统可与应用层分布式存储系统进行数据交互,所述内核层多盘文件系统包括元数据磁盘和数据磁盘,所述元数据磁盘中存储有数据磁盘、文件以及数据块的关联关系;所述数据恢复方法包括:检测所述内核层多盘文件系统中磁盘的状态信息;当所述状态信息指示所述内核层多盘文件系统中存在异常磁盘,且所述异常磁盘为数据磁盘时,如果所述内核层多盘文件系统中还存在正常的数据磁盘,且满足数据恢复条件,则通过所述关联关系确定所述异常磁盘中存储的数据块作为待恢复数据块,并通过所述关联关系确定所述待恢复数据块所属的文件作为待恢复文件;将所述待恢复文件的标识信息发送至所述应用层分布式存储系统,以使所述应用层分布式存储系统基于所述标识信息确定所述待恢复文件的存储位置信息;接收所述应用层分布式存储系统发送的所述存储位置信息,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,并将获取的数据块写入所述正常的数据磁盘。所述的数据恢复方法还包括:将所述元数据磁盘存储的关联关系中,与所述待恢复数据块关联的数据磁盘修改为写入所述待恢复数据块的正常的数据磁盘。其中,当所述待恢复文件的存储位置信息指示有多个存储服务器存储有所述待恢复文件时,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,包括:向所述存储位置信息指示的多个存储服务器中的一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块;当所述待恢复文件中的待恢复数据块读取失败时,向所述存储位置信息指示的多个存储服务器中的另一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块。所述的数据恢复方法还包括:当所述异常磁盘为所述元数据磁盘时,或者,所述异常磁盘为所述数据磁盘且所述内核层多盘文件系统中不存在其它正常的数据磁盘时,将所述内核层多盘文件系统的状态设置为不可访问状态。所述的数据恢复方法还包括:当接收到所述应用层分布式存储系统发送的数据写请求时,判断所述数据写请求对应的数据磁盘是否正常;当所述数据写请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数据恢复状态;当所述内核层多盘文件系统当前的状态为数据恢复状态时,判断所述数据写请求对应的数据块是否为所述待恢复数据块;当所述数据写请求对应的数据块为所述待恢复数据块时,将所述数据写请求挂起;当所述待恢复的数据块恢复完成时,唤醒所述数据写请求以进行数据写操作。所述的数据恢复方法还包括:当接收到所述应用层分布式存储系统发送的数据读请求时,判断所述数据读请求对应的数据磁盘是否正常;当所述数据读请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数据恢复状态;当所述内核层多盘文件系统当前的状态为数据恢复状态时,判断所述数据读请求对应的数据块是否为待恢复数据块;当所述数据读请求对应的数据块为所述待恢复数据块时,结束所述数据读请求,并向所述应用层分布式存储系统返回数据读取失败的指示信息。一种数据恢复系统,包括:内核层多盘文件系统和应用层分布式存储系统;所述内核层多盘文件系统包括元数据磁盘和数据磁盘,所述元数据磁盘中存储有数据磁盘、文件以及数据块的关联关系;所述内核层多盘文件系统,用于检测所述内核层多盘文件系统中磁盘的状态信息;当所述状态信息指示所述内核层多盘文件系统中存在异常磁盘,且所述异常磁盘为数据磁盘时,如果所述内核层多盘文件系统中还存在正常的数据磁盘,且满足数据恢复条件,则通过所述关联关系确定所述异常磁盘中存储的数据块作为待恢复数据块,并通过所述关联关系确定所述待恢复数据块所属的文件作为待恢复文件;将所述待恢复文件的标识信息发送至所述应用层分布式存储系统;所述应用层分布式存储系统,用于基于所述标识信息确定所述待恢复文件的存储位置信息,并将所述存储位置信息发送至所述内核层多盘文件系统;所述内核层多盘文件系统,还用于接收所述应用层分布式存储系统发送的所述存储位置信息,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,并将获取的数据块写入所述正常的数据磁盘。其中,所述内核层多盘文件系统,具体用于向所述存储位置信息指示的多个存储服务器中的一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块,当所述待恢复文件中的待恢复数据块读取失败时,向所述存储位置信息指示的多个存储服务器中的另一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块。所述内核层多盘文件系统,还用于当接收到所述应用层分布式存储系统发送的数据写请求时,判断所述数据写请求对应的数据磁盘是否正常,当所述数据写请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数据恢复状态,当所述内核层多盘文件系统当前的状态为数据恢复状态时,判断所述数据写请求对应的数据块是否为所述待恢复数据块,当所述数据写请求对应的数据块为所述待恢复数据块时,将所述数据写请求挂起,当所述待恢复的数据块恢复完成时,唤醒所述数据写请求以进行数据写操作。所述内核层多盘文件系统,还用于当接收到所述应用层分布式存储系统发送的数据读请求时,判断所述数据读请求对应的数据磁盘是否正常;当所述数据读请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数据恢复状态;当所述内核层多盘文件系统当前的状态为数据恢复状态时,判断所述数据读请求对应的数据块是否为待恢复数据块;当所述数据读请求对应的数据块为所述待恢复数据块时,结束所述数据读请求,并向所述应用层分布式存储系统返回数据读取失败的指示信息。上述技术方案具有如下有益效果:本专利技术提供的数据恢复方法及系统中,将内核层多盘文件系统作为应用层分布式存储系统的后端存储,当内核层多盘文件系统中的数据磁盘异常导致分布在该数据磁盘上的数据块丢失时,可基于元数据磁盘中存储的数据磁盘、文件以及数据块的关联关系确定异常的数据磁盘中存储的数据块即待恢复的本文档来自技高网...
一种数据恢复方法及系统

【技术保护点】
一种数据恢复方法,其特征在于,应用于内核层多盘文件系统,所述内核层多盘文件系统可与应用层分布式存储系统进行数据交互,所述内核层多盘文件系统包括元数据磁盘和数据磁盘,所述元数据磁盘中存储有数据磁盘、文件以及数据块的关联关系;所述数据恢复方法包括:检测所述内核层多盘文件系统中磁盘的状态信息;当所述状态信息指示所述内核层多盘文件系统中存在异常磁盘,且所述异常磁盘为数据磁盘时,如果所述内核层多盘文件系统中还存在正常的数据磁盘,且满足数据恢复条件,则通过所述关联关系确定所述异常磁盘中存储的数据块作为待恢复数据块,并通过所述关联关系确定所述待恢复数据块所属的文件作为待恢复文件;将所述待恢复文件的标识信息发送至所述应用层分布式存储系统,以使所述应用层分布式存储系统基于所述标识信息确定所述待恢复文件的存储位置信息;接收所述应用层分布式存储系统发送的所述存储位置信息,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,并将获取的数据块写入所述正常的数据磁盘。

【技术特征摘要】
1.一种数据恢复方法,其特征在于,应用于内核层多盘文件系统,所述内核层多盘文件系统可与应用层分布式存储系统进行数据交互,所述内核层多盘文件系统包括元数据磁盘和数据磁盘,所述元数据磁盘中存储有数据磁盘、文件以及数据块的关联关系;所述数据恢复方法包括:检测所述内核层多盘文件系统中磁盘的状态信息;当所述状态信息指示所述内核层多盘文件系统中存在异常磁盘,且所述异常磁盘为数据磁盘时,如果所述内核层多盘文件系统中还存在正常的数据磁盘,且满足数据恢复条件,则通过所述关联关系确定所述异常磁盘中存储的数据块作为待恢复数据块,并通过所述关联关系确定所述待恢复数据块所属的文件作为待恢复文件;将所述待恢复文件的标识信息发送至所述应用层分布式存储系统,以使所述应用层分布式存储系统基于所述标识信息确定所述待恢复文件的存储位置信息;接收所述应用层分布式存储系统发送的所述存储位置信息,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,并将获取的数据块写入所述正常的数据磁盘。2.根据权利要求1所述的数据恢复方法,其特征在于,所述数据恢复方法还包括:将所述元数据磁盘存储的关联关系中,与所述待恢复数据块关联的数据磁盘修改为写入所述待恢复数据块的正常的数据磁盘。3.根据权利要求1所述的数据恢复方法,其特征在于,当所述待恢复文件的存储位置信息指示有多个存储服务器存储有所述待恢复文件时,从所述存储位置信息指示的存储服务器获取所述待恢复文件中的待恢复数据块,包括:向所述存储位置信息指示的多个存储服务器中的一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块;当所述待恢复文件中的待恢复数据块读取失败时,向所述存储位置信息指示的多个存储服务器中的另一存储服务器发送数据读请求,读取所述待恢复文件中的待恢复数据块。4.根据权利要求1所述的数据恢复方法,其特征在于,所述数据恢复方法还包括:当所述异常磁盘为所述元数据磁盘时,或者,所述异常磁盘为所述数据磁盘且所述内核层多盘文件系统中不存在其它正常的数据磁盘时,将所述内核层多盘文件系统的状态设置为不可访问状态。5.根据权利要求1~4中任意一项所述的数据恢复方法,其特征在于,所述方法还包括:当接收到所述应用层分布式存储系统发送的数据写请求时,判断所述数据写请求对应的数据磁盘是否正常;当所述数据写请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数据恢复状态;当所述内核层多盘文件系统当前的状态为数据恢复状态时,判断所述数据写请求对应的数据块是否为所述待恢复数据块;当所述数据写请求对应的数据块为所述待恢复数据块时,将所述数据写请求挂起;当所述待恢复的数据块恢复完成时,唤醒所述数据写请求以进行数据写操作。6.根据权利要求1~4中任意一项所述的数据恢复方法,其特征在于,所述方法还包括:当接收到所述应用层分布式存储系统发送的数据读请求时,判断所述数据读请求对应的数据磁盘是否正常;当所述数据读请求对应的数据磁盘异常时,判断所述内核层多盘文件系统当前的状态是否为数...

【专利技术属性】
技术研发人员:汪权
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京,11

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

1