[发明专利]一种坏道修复方法及装置有效
申请号: | 201310378406.9 | 申请日: | 2013-08-27 |
公开(公告)号: | CN103544995A | 公开(公告)日: | 2014-01-29 |
发明(设计)人: | 周猛;黎燕;周建华 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G11C29/44 | 分类号: | G11C29/44 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 修复 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种坏道修复方法及装置。
背景技术
硬盘是计算机的主要存储媒介,其中固态硬盘(Solid State Disk,SSD)是硬盘中比较常用的一种,SSD是一种利用固态电子存储芯片阵列制成的硬盘,其主要利用Flash芯片作为存储介质来存储数据,目前比较常见的Flash芯片为Nand Flash。在目前常见的Nand Flash中,其每个片选信号(Chip Enable,CE)对应8192个块(Block),每个Block包含128个页(Page),其中Page是Nand Flash进行数据读写操作的最小单元,每个Page大小一般为4K字节(Byte),而主机对硬盘进行数据读写操作的最小单元为1个扇区(Sector),每个Sector的大小一般情况下为512B,综上所述可以得到的是,主机进行读写操作的最小单元与Nand Flash进行数据读写操作的最小单元不一致,在主机进行写操作时,若主机写入Nand Flash的数据的小于一个Page时,通过采用预填充的方案才可以将数据成功写入Nand Flash中。
众所周知,硬盘是很容易发生故障的,其中无法纠正的ECC编码错误(Uncorrectable Error Correcting Code error,UNC)是最常见的故障之一。目前常采用独立磁盘冗余阵列(redundant array of independent disks,RAID)机制来解决UNC问题,当硬盘中的某个盘发生UNC时,可以通过读取其他盘的信息对发生UNC的位置进行重新写入以实现修复的目的。但是在采用Nand Flash为存储介质的硬盘中,由于主机进行数据读写操作的最小单元为1个Sector(如,1个Sector为512B),而Nand Flash的最小写入单元为1个Page(如,1个Page为4KB),所以需采用预填充的方案才可以成功的将数据重新写入发生UNC的位置进行修复。在整个Page发生UNC的情况下,当主机以Sector为单位进行修复时,硬盘接收主机针对某个Sector的写入指令时,需要将该Sector所在的Page读取到随机存取存储器(Random Access Memory,RAM)中,但是由于整个Page发生了UNC,读取会发生失败,这样硬盘会放弃本次写入操作,并向主机回复写入成功,此时主机会再次针对该Sector的进行读取操作,以确认主机对该Sector的修复操作是否成功。由于硬盘实际上并没有成功将数据写入该Sector,那么主机读取发生失败,会判断该Sector所在盘故障(实际该盘仍然可用),最终将该盘踢除,导致RAID降级,影响了系统的可靠性。
发明内容
本发明的实施例提供一种坏道修复的方法及装置,解决了整个Page发生了UNC时,以Sector为单位进行修复时修复不成功的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的第一方面,提供一种坏道修复方法,包括:
固态硬盘(Solid State Disk,SSD)接收主机发送的第一写操作指令,其中,所述第一写操作指令包含有第一扇区的逻辑扇区地址(Logical Block Addressing,LBA)以及需要写入所述第一扇区的数据;
根据所述第一扇区的LBA读取所述第一扇区所在的物理页的数据;
当读取所述物理页的数据失败时,在缓存中分配与所述物理页大小相同的存储空间,并将所述存储空间的数据设置为预设数据;
根据所述第一扇区的LBA,将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所述需要写入所述第一扇区的数据;
根据所述物理页的地址,将所述存储空间中的数据写入所述SSD的闪存中,以完成对所述第一扇区的修复。
结合第一方面,在一种可能的实现方式中,所述存储空间包含至少两个存储区间,其中每个存储区间对应所述物理页中的一个扇区;
所述方法还包括:
当读取所述物理页的数据失败时,设置所述存储空间中的每个存储区间的标识为第一标识,其中,所述第一标识用于表示存储区间中的数据为失效数据;
在所述根据所述第一扇区的LBA,将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所述需要写入所述第一扇区的数据之后,还包括:
将所述与所述第一扇区对应存储区间的标识设置为第二标识;其中,所述第二标识用于表示所述存储区间中的数据为有效数据;
将所述存储空间中的每个存储区间的标识写入所述SSD的冗余空间中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310378406.9/2.html,转载请声明来源钻瓜专利网。