一种针对文件系统的在线修复方法技术方案

技术编号:9990921 阅读:176 留言:0更新日期:2014-05-02 04:10
本发明专利技术涉及针对文件系统的在线修复方法,属于计算机存储技术领域。对文件系统所关联的存储卷进行损坏扫描,进行实时错误修正,同时保持存储卷在线,保持文件系统仍能响应IO请求。扫描过程中,对遇到的错误分类,并采用相应的修复方案。在修复过程中,对具体错误估算修复时间,给出修复进度。若修复失败,则清除这部分数据。在存储卷上方建manager装置,将存储卷的最后一部分存储空间作为logger装置,并由manager装置负责管理和维护。在修正错误期间manager装置会对文件系统下发的IO请求进行拦截和处理。针对存储卷损坏处的读写请求进行处理。本发明专利技术使得在修复存储卷错误期间,文件系统仍能正常响应IO请求。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及针对文件系统的在线修复方法,属于计算机存储
。对文件系统所关联的存储卷进行损坏扫描,进行实时错误修正,同时保持存储卷在线,保持文件系统仍能响应IO请求。扫描过程中,对遇到的错误分类,并采用相应的修复方案。在修复过程中,对具体错误估算修复时间,给出修复进度。若修复失败,则清除这部分数据。在存储卷上方建manager装置,将存储卷的最后一部分存储空间作为logger装置,并由manager装置负责管理和维护。在修正错误期间manager装置会对文件系统下发的IO请求进行拦截和处理。针对存储卷损坏处的读写请求进行处理。本专利技术使得在修复存储卷错误期间,文件系统仍能正常响应IO请求。【专利说明】
本专利技术涉及,属于计算机存储

技术介绍
文件系统是一种对存储设备上的数据和元数据进行组织和管理的机制,会响应不同应用程序的IO请求。管理文件系统很重要的一方面是要维护文件系统的一致性。但是,当出现意外情况时,比如意想不到的电源故障或者某次IO的失败,可能会导致元数据和数据的损坏,即文件系统处于不一致的状态。此时若不及时修复则会导致后续的IO请求不能得到有效的响应。针对这种文件系统损坏的情况,现在的一种做法时在重新开机时对文件系统做一致性检查,或者根据日志记录元数据或者数据的变动情况,修复损坏的文件系统。但这种做法会延长开机启动时间,在修复期间用户一直处于等待状态,从而增加由于业务中断造成的损失。另一种改进做法是针对存储卷上出现的错误进行实时修复,但在修复过程中仍然会将文件系统挂起,不能响应IO请求。【专利技术内容】本专利技术提供一种文件系统的在线修复方法,保证在对存储卷实时修复的过程中文件系统仍能正常响应IO请求,解决现有技术在修复期间会停止访问存储卷或挂起文件系统的问题,具体技术方案为:步骤一、在后台对文件系统所关联的存储卷进行扫描,当发现错误时,根据该错误的类型选择相应的方案进行实时修复。根据以往修复该类型错误的经验估算修复时间,实时显示修复的进度。若修复失败,则清除该区域的数据,后续针对该区域数据的访问将会出现错误提示。步骤二、在每个存储卷的上方构建一个manager装置。manager装置对其关联的存储卷负责,会对正在修复区域的位置信息进行记录和维护;在对存储卷上的错误进行实时修复时,manager装置会对文件系统下发的IO请求进行拦截;步骤三、处理仍处于实时修复状态的存储区域的读请求或写请求;若为读请求,则执行步骤四,若为写请求,执行步骤五;步骤四、manager装置给予延缓,同时,manager装置会设定一时间,若修复时间超过该设定时间,则返回读错误。步骤五、重导向到logger装置。logger装置是存储卷的最后一部分连续存储区域,并由manager负责管理,其大小也由manager设定。logger装置用来临时存储manager重导向过来的数据,并记录元数据将要做的改变。步骤六、当错误修复完成后,若修复成功,manager装置会根据自己维护的位置信息,负责将logger内的数据导回到已完成修复的存储区域,并根据记录更新元数据,若修复失败,则直接删除logger内的数据,同时返回写错误。若在修复过程中logger已被重导向的数据写满,则会返回写错误,但在修复完成后,manager仍会负责将logger内的数据导回。已修复完成的存储区域重新处于正常使用状态,logger装置将准备接受新的重导向数据。有益效果本专利技术实现了一种在修复存储卷错误期间,文件系统仍能正常响应IO请求的方法。由于manager装置的重定向操作,文件系统看到的仍是一个正常可用的存储卷,从而保证了业务的连续性。保证在错误修复完成后,修复期间写入的数据能够重新导回,因而不会造成数据的丢失。另外,本专利技术保证了修复是在线进行,区别于目前的只在系统启动时修复,可以有效减少开机启动时间。【专利附图】【附图说明】图1为本专利技术的设计原理图【具体实施方式】技术方案设计原理如图1所示,以一次在修复文件filel期间应用程序对filel的IO请求为例。根据步骤一,在后台对存储卷上扫描到的文件filel的inode错误进行实时修复。关联该文件的inode记录的存储实际数据的区块的数目是错误的,后台进程会对错误的区块数进行修正,同时会根据以往修复该类型错误的经验估算修复时间并显示修复进度。根据步骤二,在修复期间manager装置会拦截文件系统下发的针对文件filel的读请求和写请求。根据步骤三,处理对处于实时修复状态的文件filel的读请求或写请求:若为读请求,则执行步骤四,若为写请求,执行步骤五;根据步骤四,若为读请求,manager会设定一个5秒的时间大小,若在该时间内修复仍未完成,则返回读错误;若在该时间完成,则读文件;根据步骤五,若是写请求,除了写入新数据,元数据信息也会做相应改变,即修改文件filel的inode信息,记录文件大小会扩大;调整空闲空间映射,为新数据分配空间。manager会将这些元数据将要做的改变信息和实际数据重导向到logger装置内。根据步骤六,待修复结束后,若修复成功,manager装置会根据logger中的记录更新与文件filel相关的元数据并将数据导回,若修复失败,则直接删除logger中的数据,同时向应用程序返回写错误。若在修复期间logger装置被写满,则返回写错误,但在修复成功完成后manager装置仍会负责更新相应元数据并将数据导回到文件filel。【权利要求】1.,其特征在于: 步骤一、在后台对文件系统所关联的存储卷进行扫描,当发现错误时,根据该错误的类型选择相应的方案进行实时修复;根据以往修复该类型错误的经验估算修复时间,实时显示修复的进度;若修复失败,则清除该区域的数据,后续针对该区域数据的访问将会出现错误提示; 步骤二、在每个存储卷的上方构建一个manager装置,manager装置对其关联的存储卷负责,会对正在修复区域的位置信息进行记录和维护;在对存储卷上的错误进行实时修复时,manager装置会对文件系统下发的IO请求进行拦截; 步骤三、处理仍处于实时修复状态的存储区域的读请求或写请求;若为读请求,则执行步骤四,若为写请求,执行步骤五; 步骤四、manager装置给予延缓,同时,manager装置会设定一个时间,若修复时间超过该设定时间,则返回读错误; 步骤五、重导向到logger装置,logger装置是存储卷的最后一部分连续存储区域,并由manager负责管理,其大小也由manager设定,logger装置用来临时存储manager重导向过来的数据,并记录元数据将要做的改变; 步骤六、当错误修复完成后,若修复成功,manager装置会根据自己维护的位置信息,负责将logger内的数据导回到已完成修复的存储区域,并根据记录更新元数据,若修复失败,则直接删除logger内的数据,同时返回写错误;若在修复过程中logger已被重导向的数据写满,则会返回写错误,但在修复完成后,manager仍会负责将logger内的数据导回;已修复完成的存储区域重新处于正常使用状态,logger装置将准备接受新的重导向数据。【文档编号】G06F11/07GK本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:霍米会孙斌杨峰李辉周泽湘谢红军王成武罗华
申请(专利权)人:北京同有飞骥科技股份有限公司
类型:发明
国别省市:

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

1