存储介质读写错误的检测方法技术

技术编号:5441679 阅读:433 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种存储介质读写错误的检测方法,主机端在写命令中添加LBA和测试用例ID,然后将写命令发送至存储端,存储端将写命令中的LBA和测试用例ID保存至测试扇区上,存储端在确定的测试扇区地址上读回数据,并向主机端返回读回数据,从而存储端和主机端通过比对读回数据和写入的数据,以此来判断错误类型。采用本发明专利技术公开的方法能够快速地检测存储介质的读写错误。

【技术实现步骤摘要】

本专利技术涉及存储技术,特别涉及一种。技术背景图1为现有技术中存储介质读写过程的原理示意图,如图1所示,当对存储介质 103进行写操作时,主机端101向存储端102下发写命令,存储端102内部的各个处理模块 (图未示出)对写命令所包括的地址和数据进行一系列的处理后,向存储介质103相应的地 址写入所要求的数据。所述各个处理模块进行的处理是复杂多样的,例如,有的处理模块负 责地址转换。类似地,当对存储介质103进行读操作时,主机端101向存储端102下发读命令, 存储端102内部的各个处理模块(图未示出)对读命令所包括的地址进行一系列的处理 后,从存储介质103相应的地址取出数据,然后存储端102内部的各个处理模块(图未示 出)对数据进行一系列的处理后返回至主机端101。需要说明的是,上述存储介质103通常为磁盘或由若干磁盘构成的磁盘组。在实际应用中,当出现数据一致性问题时,即读取的数据与所要求的数据不一致 时,需要进行检测,以确定错误类型到底是读错误还是写错误,甚至更进一步确定具体哪个 环节出现了问题才导致出现读错误或者写错误。在现有技术中,通常采用以下方法对磁盘的读写错误进行检测将磁盘的数据导 出,判断磁盘上的数据是否为所要求的数据,如果不是,则说明出现了写错误,如果磁盘上 的数据确实为所要求的数据,则判断出现了读错误。进一步地,如果错误类型为写错误,则 依次通过人工方式在存储端102中负责写操作的各个处理模块上增加关键点,并检测关键 点的输出信息,以检查具体在哪个处理模块上出现了问题。类似地,如果错误类型为读错 误,则依次通过人工方式在存储端102中负责读操作的各个处理模块上增加关键点,并检 测关键点的输出信息,以检查具体在哪个处理模块上出现了错误。可见,现有技术中主要是通过人工方式来进行存储介质读写错误的检测,整个检 测过程必须依靠人工方式一步一步地执行,检测效率比较低。
技术实现思路
有鉴于此,本专利技术提供一种,能够快速地检测存储 介质的读写错误。为解决上述技术问题,本专利技术的技术方案是这样实现的一种,该方法包括A、主机端构造写命令,所述写命令用于确定存储介质中测试扇区的地址;B、主机端在所述写命令中添加逻辑块地址LBA和测试用例编号ID,然后将所述写 命令发送至存储端,其中,不同写命令中添加的测试用例ID相同,LBA各不相同;C、主机端判断是否收到存储端返回的写命令完成响应,如果是,则执行步骤D ;否则,返回执行步骤A ;D、主机端构造读命令,然后将所述读命令发送至存储端,所述读命令用于在所述 确定的测试扇区的地址上读回数据;E、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加 的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID 相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID相同,则返回执行步骤A ;否则,执行步骤F ;F、主机端重新将步骤D中所述读命令发送至存储端;G、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加 的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID 相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID相同,则确定错误类型为读错误;否则,确定错误类型 为写错误;H、主机端记录步骤G中所述确定的错误类型。步骤H进一步包括主机端记录错误类型对应的写命令中的测试扇区的地址、LBA 和测试用例ID。所述记录的内容以错误日志的形式保存在主机端中。所述存储介质为磁盘。一种,该方法包括A、存储端接收来自主机端的写命令,并判断所述写命令是否为接收到的第一个写 命令,如果是,则保存所述写命令中的测试用例编号ID,然后执行步骤B ;否则,直接执行步 骤B;B、存储端按照所述写命令确定的存储介质中测试扇区的地址,将所述写命令中的 逻辑块地址LBA和测试用例ID保存至所述测试扇区上,并在保存完毕后向主机端返回写命 令完成响应;C、存储端接收来自主机端的读命令,在所述确定的测试扇区地址上读回数据,并 向主机端返回读回数据;D、存储端判断读回数据中的LBA是否和步骤A中所述接收的写命令中的LBA相 同,读回数据中的测试用例ID是否和步骤A中所述保存的测试用例ID相同,如果读回数据 中的LBA和步骤A中所述接收的写命令中的LBA不相同,或读回数据中的测试用例ID和步 骤A中所述保存的测试用例ID不相同,则确定错误类型为写错误,然后执行步骤E ;否则, 返回执行步骤A ;E、存储端打印所述确定的错误类型。步骤E进一步包括存储端打印错误类型对应的写命令中的测试扇区的地址、LBA 和测试用例ID。所述存储介质为磁盘。一种,该方法包括A、主机端构造写命令,所述写命令用于确定存储介质中测试扇区的地址;B、主机端在所述写命令中添加逻辑块地址LBA和测试用例编号ID,然后将所述写命令发送至存储端,其中,不同写命令中添加的测试用例ID相同,LBA各不相同;C、存储端接收所述写命令,并判断所述写命令是否为接收到的第一个写命令,如 果是,则保存所述写命令中的测试用例ID,然后执行步骤D ;否则,直接执行步骤D ;D、存储端按照所述写命令确定的测试扇区的地址,将所述写命令中的LBA和测试 用例ID保存至所述测试扇区上,并在保存完毕后向主机端返回写命令完成响应;E、主机端判断是否收到存储端返回的写命令完成响应,如果是,则执行步骤F ;否 则,返回执行步骤A ;F、主机端构造读命令,然后将所述读命令发送至存储端,所述读命令用于在所述 确定的测试扇区的地址上读回数据;G、存储端接收来自主机端的读命令,在所述确定的测试扇区地址上读回数据,并 向主机端返回读回数据;H、存储端判断读回数据中的LBA是否和步骤C中所述接收的写命令中的LBA相 同,读回数据中的测试用例ID是否和步骤C中所述保存的测试用例ID相同,如果读回数据 中的LBA和步骤C中所述接收的写命令中的LBA不相同,或读回数据中的测试用例ID和步 骤C中所述保存的测试用例ID不相同,则确定错误类型为写错误,然后执行步骤I ;否则, 返回执行步骤C;I、存储端打印步骤H中所述确定的错误类型;J、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加 的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID 相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID相同,则返回执行步骤A ;否则,执行步骤K ;K、主机端重新将步骤F中所述读命令发送至存储端,存储端接收来自主机端的读 命令,在所述确定的测试扇区地址上读回数据,并向主机端返回读回数据;L、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加 的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID 相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID本文档来自技高网
...

【技术保护点】
一种存储介质读写错误的检测方法,其特征在于,该方法包括:A、主机端构造写命令,所述写命令用于确定存储介质中测试扇区的地址;B、主机端在所述写命令中添加逻辑块地址LBA和测试用例编号ID,然后将所述写命令发送至存储端,其中,不同写命令中添加的测试用例ID相同,LBA各不相同;C、主机端判断是否收到存储端返回的写命令完成响应,如果是,则执行步骤D;否则,返回执行步骤A;D、主机端构造读命令,然后将所述读命令发送至存储端,所述读命令用于在所述确定的测试扇区的地址上读回数据;E、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID和所述写命令中添加的测试用例ID相同,则返回执行步骤A;否则,执行步骤F;F、主机端重新将步骤D中所述读命令发送至存储端;G、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加的LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID相同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID和所述写命令中添加的测试用例ID相同,则确定错误类型为读错误;否则,确定错误类型为写错误;H、主机端记录步骤G中所述确定的错误类型。...

【技术特征摘要】
1.一种存储介质读写错误的检测方法,其特征在于,该方法包括A、主机端构造写命令,所述写命令用于确定存储介质中测试扇区的地址;B、主机端在所述写命令中添加逻辑块地址LBA和测试用例编号ID,然后将所述写命令 发送至存储端,其中,不同写命令中添加的测试用例ID相同,LBA各不相同;C、主机端判断是否收到存储端返回的写命令完成响应,如果是,则执行步骤D;否则, 返回执行步骤A ;D、主机端构造读命令,然后将所述读命令发送至存储端,所述读命令用于在所述确定 的测试扇区的地址上读回数据;E、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加的 LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID相 同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID相同,则返回执行步骤A ;否则,执行步骤F ;F、主机端重新将步骤D中所述读命令发送至存储端;G、主机端判断存储端返回的读回数据中的LBA是否和步骤B中所述写命令中添加的 LBA相同,读回数据中的测试用例ID是否和步骤B中所述写命令中添加的测试用例ID相 同,如果读回数据中的LBA和所述写命令中添加的LBA相同,且读回数据中的测试用例ID 和所述写命令中添加的测试用例ID相同,则确定错误类型为读错误;否则,确定错误类型 为写错误;H、主机端记录步骤G中所述确定的错误类型。2.根据权利要求1所述的方法,其特征在于,步骤H进一步包括主机端记录错误类型 对应的写命令中的测试扇区的地址、LBA和测试用例ID。3.根据权利要求2所述的方法,其特征在于,所述记录的内容以错误日志的形式保存 在主机端中。4.根据权利要求3所述的方法,其特征在于,所述存储介质为磁盘。5.一种存储介质读写错误的检测方法,其特征在于,该方法包括A、存储端接收来自主机端的写命令,并判断所述写命令是否为接收到的第一个写命 令,如果是,则保存所述写命令中的测试用例编号ID,然后执行步骤B ;否则,直接执行步骤 B ;B、存储端按照所述写命令确定的存储介质中测试扇区的地址,将所述写命令中的逻辑 块地址LBA和测试用例ID保存至所述测试扇区上,并在保存完毕后向主机端返回写命令完 成响应;C、存储端接收来自主机端的读命令,在所述确定的测试扇区地址上读回数据,并向主 机端返回读回数据;D、存储端判断读回数据中的LBA是否和步骤A中所述接收的写命令中的LBA相同,读 回数据中的测试用例ID是否和步骤A中所述保存的测试用例ID相同,如果读回数据中的 LBA和步骤A中所述接收的写命令中的LBA不相同,或读回数据中的测试用例ID和步骤A 中所述保存的测试用例ID不相同,则确定错误类型为写错误,然后执行步骤E ;否则,返回 执行步骤A ;E、存储端打印所述确定的错误类型。6.根据权利要求5所述的方法,其特征在于,步骤E进一步包括存储端打印错误类型 对应的写命令中的测试扇区的地址、LBA和测试用例I...

【专利技术属性】
技术研发人员:王志波
申请(专利权)人:创新科存储技术有限公司创新科软件技术深圳有限公司
类型:发明
国别省市:11[中国|北京]

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

1