[发明专利]一种基于软RAID的磁盘坏块处理方法有效
申请号: | 201110326370.0 | 申请日: | 2011-10-25 |
公开(公告)号: | CN102508724A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 道邦;周泽湘;张伟涛;李艳国;武志民;章珉;潘兴旺;张恒 | 申请(专利权)人: | 北京同有飞骥科技股份有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于软RAID的磁盘坏块处理方法。本方法集成于磁盘阵列对应的存储操作系统中,在磁盘阵列的每个磁盘内预留了若干备用扇区以备本磁盘的坏块重映射使用,自定义了坏块重映射表用来保存本磁盘上的坏块重映射关系,然后主要修改存储操作系统的内核驱动,依据所用磁盘是否处于冗余状态,以及磁盘本身是否支持坏块重映射操作等具体特点,分情况对磁盘坏块进行处理。本发明可以提高软RAID环境下的数据可靠性,且处理方式比较灵活,处理效率较高。 | ||
搜索关键词: | 一种 基于 raid 磁盘 处理 方法 | ||
【主权项】:
一种基于软RAID的磁盘坏块处理方法,它应用于磁盘阵列对应的存储操作系统中,该存储操作系统要求包括以下技术特征:其中,操作系统为Linux操作系统,具备软RAID的创建、维护和删除功能;系统采用U盘作为存储介质,被制作成USB启动盘格式,制作好的U盘以配件形式安装在磁盘阵列的主板或控制器上;存储操作系统是一个层级结构,在物理硬件上依次构建了内核模式程序和用户模式程序,并应用逻辑卷管理机制对底层磁盘进行管理;本方法在内核模式下实现,是对Linux操作系统内核驱动的修改和扩展;该磁盘阵列,对盘阵内每个物理磁盘做了特殊处理,预留一部分磁盘空间作为备用扇区区域,并用磁盘空间最末端的一块区域存放DDF结构的RAID信息;备用扇区区域中预留了若干地址连续的扇区作为备用扇区,用来在本磁盘上产生坏块时进行重新映射,备用扇区按照LBA地址从小到大进行排序,被分配使用时按照排序结果依次进行,系统有一个备用扇区定期检查模块,用来定期检测备用扇区的可用情况,以便在备用扇区中出现坏块时,及时更新备用扇区相关信息;最末端以DDF结构描述的RAID信息区域存放着一个自定义的表结构,用来保存本磁盘上的重映射关系,供操作系统上层的数据读写使用,其称作“坏块重映射表”,该表由表头和数据部分组成,表头包含一个统计位和地址位,分别记录了本磁盘上备用扇区已使用的个数和当前首个可用的备用扇区LBA地址,当备用扇区全部用光时,该地址字段被设为无效数值;数据部分由若干条记录组成,初值为零条,随着备用扇区的使用而增加,最大记录数等于备用扇区个数,每个记录包含两个数据位,分别用来保存坏块的逻辑块地址和重新映射后备用扇区的LBA地址,其特征在于包括以下步骤:步骤一 在磁盘使用过程中产生的坏块被访问到时,检索坏块重映射表的数据部分,判断坏块的逻辑块地址是否已经在表中,依据检索结果处理如下:(1)如果坏块的逻辑块地址不在表中,则产生介质访问错误,并反馈给内核驱动;(2)如果坏块的逻辑块地址已经在表中,则依据该条记录访问坏块重新映射后对应的备用扇区LBA地址,倘若访问正常,则结束当前操作,倘若仍然不能访问,则产生介质访问错误,并反馈给内核驱动;步骤二 系统读取底层硬盘驱动器发来的错误信息,获得坏块的LBA地址,并判断是否读错误,如果是读错误,由步骤三继续处理,否则是写错误,转向 步骤六处理;步骤三 对于读错误,判断坏块所在驱动器是否处于冗余状态,如果是冗余状态,由步骤四继续处理,如果该驱动器没有采用RAID或者处于RAID0等非冗余状态,致使没有可用的参考点而无法进行数据重建,将该块标记为坏块,并将介质访问错误的信息返回给内核驱动后即可完成操作;步骤四 对于数据存在冗余,并且参考点状态正常的情况,则依据驱动器所处RAID级别调用对应接口进行数据重建操作,重建成功后,由步骤五继续处理,如果重建失败,将该块标记为坏块,并将介质访问错误的信息返回给内核驱动后即可完成操作;步骤五 将重建成功的数据写入到坏块对应的LBA地址,并刷新系统缓存,保证数据完全写入到对应物理扇区,然后检验写入的数据是否可读,如果可读,表明该扇区是可以修复的,并且已经被修复,结束当前操作即可,如果写入失败或者写入的数据无法读取,表明该坏块对应的扇区无法修复,由步骤六继续处理;步骤六 对于写错误,首先读取本驱动器上坏块重映射表的表头,判断是否还有剩余的备用扇区可用,如果没有剩余,表明该驱动器上的坏块无法重新映射,将该块标记为坏块,并将该驱动器标记为重映射失败状态,即结束当前操作,如果有剩余,由步骤七继续处理;步骤七 向磁盘发送重映射命令,判断所用磁盘本身是否支持重映射操作,如果不支持,转向步骤八进行处理,如果支持,分情况处理如下:(1)调用磁盘驱动对应接口进行坏块重映射和数据写入操作,如果操作成功,则表明坏块被磁盘自身的重映射机制修复,结束当前操作即可;(2)在调用磁盘驱动对应接口进行坏块重映射或者数据写入时,如果其中某个操作失败,则表明坏块无法被磁盘本身的重映射机制修复,交由步骤八进行后继处理;步骤八 检索坏块重映射表的表头,获取当前可用的备用扇区LBA地址,检索坏块重映射表的数据部分,判断坏块的逻辑块地址是否已经在表中,依据检索结果处理如下:(1)如果坏块的逻辑块地址不在表中,则直接在表中添加一条记录,记录坏块重新映射后对应备用扇区的LBA地址,然后更新表头的统计位和地址位, 之后执行步骤九;(2)如果坏块的逻辑块地址已经在表中,则更新该条记录,记录坏块重新映射后对应新备用扇区的LBA地址,然后更新表头的统计位和地址位,之后执行步骤九;步骤九 按照坏块重映射表,将欲写入的数据写入到备用扇区中,并检测写入操作是否成功,依据操作结果处理如下:(1)如果失败,表明备用扇区中存在坏块,调用系统的备用扇区定期检测模块对备用扇区当前情况进行更新,然后由步骤六进行处理;(2)如果成功,表明坏块重映射操作完成,结束当前操作即可,此后对坏块的访问由坏块重映射表处理,自动重定向为对备用扇区的访问。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京同有飞骥科技股份有限公司,未经北京同有飞骥科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110326370.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种电站锅炉运行性能分析系统的实现方法
- 下一篇:全自动反应仪