CN104169864A - 重定向写入方法及装置 - Google Patents

重定向写入方法及装置 Download PDF

Info

Publication number
CN104169864A
CN104169864A CN201480000321.XA CN201480000321A CN104169864A CN 104169864 A CN104169864 A CN 104169864A CN 201480000321 A CN201480000321 A CN 201480000321A CN 104169864 A CN104169864 A CN 104169864A
Authority
CN
China
Prior art keywords
data
itemize
size
read
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480000321.XA
Other languages
English (en)
Other versions
CN104169864B (zh
Inventor
曹长斌
李大权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104169864A publication Critical patent/CN104169864A/zh
Application granted granted Critical
Publication of CN104169864B publication Critical patent/CN104169864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供一种重定向写入方法及装置。本发明重定向写入方法,包括:接收写入指令,所述写入指令中包含待写入数据和分条地址;比较所述待写入数据的大小与所述分条地址对应的分条的大小;若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。本发明实施例解决了在待写入数据小于分条大小,对应分条中最近一次保存的数据读取失败的情况下,导致的数据写入失败的问题。

Description

重定向写入方法及装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种重定向写入方法及装置。
背景技术
重定向写(Redirect On Write,简称ROW)与写前拷贝(Copy On Write,简称COW)是硬盘写入的两种方法。
现有的ROW写入方法中,数据写入分条时,如待写入数据的大小小于分条大小,则会先读取分条中最近一次保存的数据,然后将读取到的数据与待写入数据合并,产生一个与分条大小相同的数据,最后将合并得到的数据写入新的分条中。
上述现有的ROW写入方法中,在待写入数据小于分条大小的情况下,若对应分条中最近一次保存的数据读取失败,则待写入数据将无法写入对应分条中,导致数据写入失败。
发明内容
本发明实施例提供一种重定向写入方法及装置,以解决现有技术中在待写入数据小于分条大小的情况下,若对应分条中最近一次保存的数据读取失败,待写入数据无法写入对应分条中,数据写入失败的问题。
本发明的第一方面提供了一种重定向写入方法,包括:
接收写入指令,所述写入指令中包含待写入数据和分条地址;
比较所述待写入数据的大小与所述分条地址对应的分条的大小;
若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
在第一方面的第一种可能的实现方式中,所述确定所述分条最近一次保存的第一数据是否能够成功读取,包括:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
在第一方面的第二种可能的实现方式中,所述确定所述分条最近一次保存的第一数据是否能够成功读取,包括:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,若无法读取,则所述确定所述分条最近一次保存的第一数据不能够成功读取之前,还包括:
对所述第一数据进行冗余恢复;
所述确定所述分条最近一次保存的第一数据不能够成功读取,包括:
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
结合第一方面、第一方面的第一至第三种任意一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第二数据为具有预设格式的数据。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第二数据为全为0的数据或全为1的数据。
本发明第二方面提供了一种重定向写入装置,包括:
接收模块,用于接收写入指令,所述写入指令中包含待写入数据和分条地址;
比较模块,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;
读取模块,用于若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
写入模块,用于若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
在第二方面的第一种可能的实现方式中,所述读取模块,具体用于:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
在第二方面的第二种可能的实现方式中,所述读取模块,具体用于:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述读取模块具体用于:
若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
结合第二方面、第二方面的第一至第三种任意一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二数据为具有预设格式的数据。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第二数据为全为0的数据或全为1的数据。
本发明第三方面提供了一种重定向写入装置,包括:
接收器,用于接收写入指令,所述写入指令中包含待写入数据和分条地址;
处理器,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;
若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
在第三方面的第一种可能的实现方式中,所述处理器,具体用于:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
在第三方面的第二种可能的实现方式中,所述处理器,具体用于:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器,具体用于:
若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
结合第三方面、第三方面的第一至第三种任意一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述第二数据为具有预设格式的数据。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述第二数据为全为0的数据或全为1的数据。
本发明实施例重定向写入方法及装置,在待写入数据小于分条大小,且对应分条中最近一次保存的数据读取失败的情况下,通过用具有预设格式的第二数据代替无法读取的最近一次保存的第一数据与待写入数据合并后写入对应分条,解决了在上述情况下待写入数据写入失败的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的重定向写入方法流程图;
图2为本发明实施例二提供的重定向写入方法流程图;
图3为本发明实施例三提供的重定向写入方法流程图;
图4为本发明实施例四提供的重定向写入方法流程图;
图5为本发明实施例五提供的重定向写入方法写入过程示意图;
图6为本发明实施例六提供的重定向写入装置结构示意图;
图7为本发明实施例七提供的重定向写入装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明下述实施例是基于重定向写入ROW技术,本发明下述待写入数据可以是一个完整数据被拆分后的数据,也可以是一个完整的数据,本发明不对此做限制。
实施例一
图1为本发明实施例一提供的重定向写入方法流程图,如图1所示,具体包括如下步骤:
步骤101、接收写入指令,所述写入指令中包含待写入数据和分条地址;
步骤102、比较所述待写入数据的大小与所述分条地址对应的分条的大小;
步骤103、若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
步骤104、若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
重定向写(ROW),是在保存数据到存储区域时,每次保存的数据都重新分一块新的存储空间来保存,而是不对已被占用的存储空间进行覆盖写入。ROW写入方法中,每次保存数据的存储区域可以称为一个分条,且各分条的大小是相等的,每次写入分条的数据的大小应当与该分条的大小相同。如待写入数据的大小小于分条大小,则需要先读取分条中最近一次保存的数据,然后将读取到的数据与待写入数据合并,以产生一个与分条大小相同的数据,将新产生的与分条大小相同的数据写入新的分条中,即完成了一次数据的ROW写入过程。
具体来说,当有数据需要写入分条中时,存储控制器接收写入指令,该写入指令包含待写入数据以及待写入数据要存入的分条的地址。举例来说,存储区域可以划分为多个分条,每个分条的大小相同。
由于待写入数据的大小并不一定等于分条的大小,而只有与分条大小相同的数据才能被写入分条,因此,存储控制器需要比较待写入数据与对应分条的大小,若待写入数据小于对应分条的大小,则因不满足分条大小无法写入分条,因此需要先读取分条中最近一次保存的数据,即第一数据,然后将第一数据与待写入数据合并后写入分条,若第一数据不能成功读取,则可以进一步采用与分条大小相同的第二数据来代替第一数据与待写入数据合并,然后即可将合并后的数据写入分条中。
在具体实现时,该合并操作可以是对两个数据按位处理,从而使得待写入数据被处理成与分条大小相同的数据。另外,该第二数据可以存储在一预先分配的区域中,一旦存储控制器无法成功读取第一数据,则即可到该预先分配的区域中读取第二数据来代替该第一数据;或者,存储控制器也可以不存储该第二数据,而是在第一数据读取失败时,动态生成一与分条大小相同的第二数据来代替第一数据。
本实施例中,针对待写入数据小于分条大小的情况,在第一数据读取失败时,可以采用与分条大小相同的第二数据代替读取失败的第一数据,并采用该第二数据与待写入数据合并后写入分条,从而可以解决上述情况下待写入数据无法写入分条中的问题。
进一步地,确定所述分条最近一次保存的第一数据是否能够成功读取,包括:读取坏块标记;根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;若是,则确定所述第一数据不能够成功读取。
可选地,所述确定所述分条最近一次保存的第一数据是否能够成功读取,包括:尝试从所述分条中读取所述第一数据;若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
进一步可选地,若无法读取,则所述确定所述分条最近一次保存的第一数据不能够成功读取之前,还可以包括:对所述第一数据进行冗余恢复;相应的,所述确定所述分条最近一次保存的第一数据不能够成功读取,包括:若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
具体来说,步骤103中确定所述分条最近一次保存的第一数据是否能够成功读取,可以通过以下两种方式实现。
方式一:先读取坏块标记,确定最近一次保存的第一数据所在的块是否为坏块,若第一数据所在块为坏块,则该块会对应的被标记为坏块,则可根据读取的坏块标记进行判断。若读取到该块被标记为坏块,则可确定该第一数据不能够成功读取。
方式二:若方式一中第一数据所在块未被标记为坏块,则尝试从第一数据对应分条中读取第一数据,若第一数据无法读取,则可确定该第一数据不能被成功读取。此时可执行步骤104,也可先采用冗余恢复对第一数据进行恢复,若不能成功恢复,再执行步骤104,本发明不对此做限制。
更进一步地,所述第二数据为具有预设格式的数据。所述第二数据可以为为全为0的数据或全为1的数据。
实施例二
本实施例为在实施例一步骤103确定所述分条最近一次保存的第一数据是否能够成功读取的具体实施步骤,图2为本发明实施例二提供的重定向写入方法流程图,如图2所示,具体包括如下步骤:
步骤201、读取坏块标记;
步骤202、确定第一数据所在的块是否被标记为坏块;
步骤203、若否,则确定第一数据是否能够读取;
步骤204、若无法读取,则确定第一数据是否能够冗余恢复;
步骤205、若否,则可以确定第一数据不能成功读取;
步骤206、若步骤203中第一数据可以读取,或步骤204中第一数据可以冗余恢复,则可以确定第一数据能成功读取。
具体来说,有执行上述步骤,可以得出第一数据是否可以成功读取的结论,若得出结论为第一数据可以成功读取则将读取到的第一数据与待写入数据合并后写入对应分条,若得出的结论为第一数据不能成功读取,则执行实施例一中的步骤104用第二数据代替第一数据与待写入数据合并后写入对应分条。
通过上述步骤确定第一数据能否成功读取,若不能成功读取,用与分条大小相同的第二数据代替读取失败的第一数据与待写入数据合并后写入分条,解决了第一数据不能成功读取的情况下,待写入数据无法写入分条中的问题。
实施例三
实施例三为在实施例一的基础上,待写入数据为完整数据,完整数据小于分条大小的情况下的具体举例。图3为本发明实施例三提供的重定向写入方法流程图,如图3所示,具体包括如下步骤:
步骤301、接收完整数据写入指令;
步骤302、确定该完整数据是否小于分条大小;
步骤303、若步骤302确定结果为,完整数据小于分条大小,则确定完整数据对应的分条中最近一次写入的第一数据能否成功读取;
步骤304、若步骤303可以成功读取,将完整数据与第一数据合并;
步骤305、若步骤303不能成功读取,则用第二数据代替第一数据与完整数据合并;
步骤306、将步骤304或步骤305中合并后的数据写入对应分条;
步骤307、若步骤302中确定结果为完整数据大于或等于分条大小,则将完整数据拆分为一个或多个数据块。即若步骤303中确定结果为完整数据等于分条大小,则不进行拆分,完整数据即为数据块;若确定结果为完整数据大于分条大小,则将完整数据拆分为一个以上的大于或等于分条大小的数据块,拆分后的步骤在本发明实施例四中详细描述。
通过在完整数据小于分条大小,对应第一数据不能成功读取的情况下,用与分条大小相同的第二数据代替读取失败的第一数据与完整数据合并后写入分条,解决了上述情况下,待写入数据无法写入分条中的问题。
实施例四
实施例四为在实施例三完整数据大于分条大小的情况下,待写入数据为完整数据拆分后的数据块的具体举例。图4为本发明实施例四提供的重定向写入方法流程图,如图4所示,在图3所示实施例步骤306之后还可以包括如下步骤:
步骤401、接收写入指令,该写入指令中包含拆分后的数据块和对应的分条地址;
步骤402、确定数据块是否小于分条大小;
步骤403、若步骤401中确定结果为数据块小于分条大小,则确定数据块对应的分条中最近一次写入的第一数据能否成功读取;
步骤404、若步骤403不能成功读取,用第二数据代替第一数据与数据块合并;
步骤405、若步骤403能成功读取,将数据块与第一数据合并;
步骤406、利用步骤404和步骤405中合并后的数据和拆分后的其它数据块共同产生校验数据;
步骤407、将合并后的数据、拆分后的其它数据块以及校验数据一同写入对应分条。
通过在完整数据大于分条大小,拆分后的小于分条大小的数据块对应分条的第一数据不能成功读取的情况下,用与分条大小相同的第二数据代替读取失败的第一数据与数据块合并后写入分条,解决了上述情况下,待写入数据无法写入分条中的问题。
实施例五
实施例五为在上述实施例的基础上的具体举例。图5为本发明实施例五提供的重定向写入方法写入过程示意图,如图5所示,用于存储数据的块为:D1、D1’、D2、D2’、D3、D3’,其中D1,D2,D3,P1为一个分条组当中的4个存储数据的块,P1与P1’为用来存储校验数据的块,上述存储块数量与划分,以及校验数据块的数量与划分为具体举例,本发明不限于此。
当有数据需要写入硬盘中,存储控制器首先将完整数据拆分为数个待写入数据,本发明具体举例为该完整数据大于分条大小,故存储控制器先将完整数据拆分为3个数据块,分别对应写入D1’、D2’和D3’所在分条组中,存储控制器接收包含待写入数据与对应分条地址的写入指令,比较待写入数据与对应分条地址对应的分条大小,具体举例为:数据1写入D1’,数据2写入D2’,数据3写入D3’,且数据1~3均小于对应分条大小。存储控制器确定数据数据1~3对应分条最近一次保存的第一数据是否能够成功读取,即D1、D2和D3中存储的数据是否能够成功读取,确定方式可应用实施例一中的方式一与方式二,确定结果具体举例为如图5所示,D1和D2中的数据不能成功读取,D3中的数据可以成功读取。在图5所述情况下,用第二数据代替D1和D2中不能被读取的数据,该第二数据可以是全为0的数,也可以是全为1的数,还可以是具有一定预设格式的数,本发明不对此做限制,同时本发明中不同的分条可以用不同的第二数据代替,也可用相同的第二数据代替,本发明亦不对此做限制。将第二数据与待写入D1’和D2’的数据合并,产生两个与分条大小相同的数据,待写入D3’的数据与读取到的D3中的数据合并产生写入D3’的与D3’所在分条大小相同的数据。合并后的待写入D1’~D3’的数据生成校验数据,该检验数据大小与对应分条大小相同,将合并后的待写入数据与检验数据一同写入对应分条中,即合并后的待写入D1’~D3’的数据写入D1’~D3’,校验数据写入P1’。
数据写入后,如图5所示,当D3’的数据不能读取,变成坏块后,D3’内的数据可通过D1’、D2’和P1’内的数据进行冗余恢复进行恢复,这样就阻止了坏块由D1’和D2’所在的分条扩散到D3’所在的分条,本发明不对坏块产生的方式做限定。
实施例六
图6为本发明实施例六提供的重定向写入装置结构示意图,如图6所示,本实施例的重定向写入装置包括:接收模块61、比较模块62和读取模块63、写入模块64,其中接收模块61用于接收写入指令,所述写入指令中包含待写入数据和分条地址;比较模块62,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;读取模块63,用于若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;写入模块64,用于若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
进一步地,本实施例所述的读取模块63,具体用于:读取坏块标记;根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;若是,则确定所述第一数据不能够成功读取。
更近一步地,本实施例所述读取模块63,具体用于:尝试从所述分条中读取所述第一数据;若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
可选地,所述读取模块63具体用于:若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
进一步可选地,所述第二数据为具有预设格式的数据。所述第二数据为全为0的数据或全为1的数据。
本实施例的重定向写入装置可以用于执行实施例一至实施例五所述的方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的相关记载,此处不再赘述。
实施例七
图7为本发明实施例七提供的重定向写入装置结构示意图,如图7所示,本实施例重定向写入装置包括:接收器71,用于接收写入指令,所述写入指令中包含待写入数据和分条地址;处理器72,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
进一步地,所述处理器72,具体用于:读取坏块标记;根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;若是,则确定所述第一数据不能够成功读取。
更近一步地,所述处理器72,具体用于:尝试从所述分条中读取所述第一数据;若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
可选地,所述处理器72具体用于:若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
进一步可选地,所述第二数据为具有预设格式的数据。所述第二数据为全为0的数据或全为1的数据。
本实施例的重定向写入装置可以用于执行实施例一至实施例五所述的方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的相关记载,此处不再赘述。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (18)

1.一种重定向写入方法,其特征在于,包括:
接收写入指令,所述写入指令中包含待写入数据和分条地址;
比较所述待写入数据的大小与所述分条地址对应的分条的大小;
若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
2.根据权利要求1所述的方法,其特征在于,所述确定所述分条最近一次保存的第一数据是否能够成功读取,包括:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
3.根据权利要求1所述的方法,其特征在于,所述确定所述分条最近一次保存的第一数据是否能够成功读取,包括:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
4.根据权利要求3所述的方法,其特征在于,若无法读取,则所述确定所述分条最近一次保存的第一数据不能够成功读取之前,还包括:
对所述第一数据进行冗余恢复;
所述确定所述分条最近一次保存的第一数据不能够成功读取,包括:
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述第二数据为具有预设格式的数据。
6.根据权利要求5所述的方法,其特征在于,所述第二数据为全为0的数据或全为1的数据。
7.一种重定向写入装置,其特征在于,包括:
接收模块,用于接收写入指令,所述写入指令中包含待写入数据和分条地址;
比较模块,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;
读取模块,用于若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;
写入模块,用于若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
8.根据权利要求7所述的装置,其特征在于,所述读取模块,具体用于:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
9.根据权利要求7所述的装置,其特征在于,所述读取模块,具体用于:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
10.根据权利要求9所述的装置,其特征在于,所述读取模块具体用于:
若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
11.根据权利要求7~10任一项所述的装置,其特征在于,所述第二数据为具有预设格式的数据。
12.根据权利要求11所述的装置,其特征在于,所述第二数据为全为0的数据或全为1的数据。
13.一种重定向写入装置,其特征在于,包括:
接收器,用于接收写入指令,所述写入指令中包含待写入数据和分条地址;
处理器,用于比较所述待写入数据的大小与所述分条地址对应的分条的大小;若所述待写入数据的大小小于所述分条的大小,确定所述分条最近一次保存的第一数据是否能够成功读取;若不能成功读取,将所述待写入数据与第二数据进行合并,以得到与所述分条的大小相同的待写入数据并写入所述分条,其中,所述第二数据用于代替所述第一数据并且所述第二数据的大小等于所述分条的大小。
14.根据权利要求13所述的装置,其特征在于,所述处理器,具体用于:
读取坏块标记;
根据读取的坏块标记,确定所述第一数据所在的块是否被标记为坏块;
若是,则确定所述第一数据不能够成功读取。
15.根据权利要求13所述的装置,其特征在于,所述处理器,具体用于:
尝试从所述分条中读取所述第一数据;
若无法读取,则确定所述分条最近一次保存的第一数据不能够成功读取。
16.根据权利要求15所述的装置,其特征在于,所述处理器具体用于:
若无法读取,确定所述分条最近一次保存的第一数据不能够成功读取之前,对所述第一数据进行冗余恢复;
若所述第一数据不能恢复,则确定所述第一数据不能够成功读取。
17.根据权利要求13~16任一项所述的装置,其特征在于,所述第二数据为具有预设格式的数据。
18.根据权利要求17所述的装置,其特征在于,所述第二数据为全为0的数据或全为1的数据。
CN201480000321.XA 2014-03-13 2014-03-13 重定向写入方法及装置 Active CN104169864B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2014073354 2014-03-13

Publications (2)

Publication Number Publication Date
CN104169864A true CN104169864A (zh) 2014-11-26
CN104169864B CN104169864B (zh) 2017-03-29

Family

ID=51912345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480000321.XA Active CN104169864B (zh) 2014-03-13 2014-03-13 重定向写入方法及装置

Country Status (1)

Country Link
CN (1) CN104169864B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781133A (zh) * 2019-10-25 2020-02-11 深信服科技股份有限公司 一种row快照方法、系统、设备及计算机可读存储介质
CN112491986A (zh) * 2016-02-29 2021-03-12 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266671B1 (en) * 1997-10-02 2001-07-24 Oki Electric Industry Co., Ltd. Data storage apparatus, method, and medium with variable data storage structure
CN1704910A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN101183383A (zh) * 2007-12-17 2008-05-21 中国科学院计算技术研究所 一种快照系统及其使用方法
CN102023810A (zh) * 2009-09-10 2011-04-20 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266671B1 (en) * 1997-10-02 2001-07-24 Oki Electric Industry Co., Ltd. Data storage apparatus, method, and medium with variable data storage structure
CN1704910A (zh) * 2004-06-03 2005-12-07 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN101183383A (zh) * 2007-12-17 2008-05-21 中国科学院计算技术研究所 一种快照系统及其使用方法
CN102023810A (zh) * 2009-09-10 2011-04-20 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112491986A (zh) * 2016-02-29 2021-03-12 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
CN112491986B (zh) * 2016-02-29 2022-07-29 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
CN110781133A (zh) * 2019-10-25 2020-02-11 深信服科技股份有限公司 一种row快照方法、系统、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN104169864B (zh) 2017-03-29

Similar Documents

Publication Publication Date Title
US10725692B2 (en) Data storage method and apparatus
CN103955431A (zh) 一种闪存存储设备中数据管理的方法及装置
CN102857554A (zh) 基于分布式存储系统进行数据冗余处理方法
CN101980137A (zh) 廉价磁盘冗余阵列重构方法、装置及系统
CN104166606A (zh) 文件备份方法和主存储设备
CN104111870B (zh) 一种中断处理装置及中断处理方法
CN105700901A (zh) 一种启动方法、装置和计算机系统
CN105808371A (zh) 数据备份与恢复方法、控制芯片及存储装置
CN101482838A (zh) 基于写时拷贝的数据写入方法及设备
CN108037894B (zh) 一种磁盘空间管理方法及装置
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
CN103370113A (zh) 数据存储方法及系统
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
CN103440204A (zh) 一种更新文件系统的方法和存储设备
JP2013125513A (ja) 不揮発性半導体記憶装置及びその管理方法
CN105760109B (zh) 数据迁移方法和存储阵列
CN103150273A (zh) 位级内存控制器及控制方法
CN104169864A (zh) 重定向写入方法及装置
CN108664362B (zh) 内存镜像的处理方法、内存控制器及用户设备
CN113342577A (zh) 存储设备及其数据恢复方法
CN104021806A (zh) 一种数据处理的方法和设备
CN103377686A (zh) Nand Flash 存储器及实现 Nand Flash 存储器连续读操作的方法
CN102629223A (zh) 一种数据修复方法及装置
CN104407806A (zh) 独立磁盘冗余阵列组硬盘信息的修改方法和装置
CN103902232A (zh) 一种写入的数据的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant