CN102929806B - 适用于存储装置的编码操作的进度记录方法和恢复方法 - Google Patents
适用于存储装置的编码操作的进度记录方法和恢复方法 Download PDFInfo
- Publication number
- CN102929806B CN102929806B CN201210408643.0A CN201210408643A CN102929806B CN 102929806 B CN102929806 B CN 102929806B CN 201210408643 A CN201210408643 A CN 201210408643A CN 102929806 B CN102929806 B CN 102929806B
- Authority
- CN
- China
- Prior art keywords
- child
- mentioned
- token variable
- memory block
- variable
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000005055 memory storage Effects 0.000 title claims abstract description 27
- 238000010586 diagram Methods 0.000 description 22
- 238000011084 recovery Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Abstract
一种适用于存储装置的编码操作的进度记录方法和恢复方法。上述进度记录方法包括下列步骤:初始化并存储一变量集合,其中上述编码操作包括多个子操作,每一上述子操作对应变量集合其中至少一标记变量,上述标记变量用以记录上述子操作的执行进度;以及在执行每一上述子操作时,根据子操作的执行进度更新已存储的变量集合中对应的标记变量。
Description
技术领域
本发明涉及一种进度记录方法和恢复方法,且特别涉及一种适用于存储装置的编码操作的进度记录方法和恢复方法。
背景技术
硬盘可说是计算机必备的存储装置,从笔记型计算机、桌上型计算机到专业级的服务器,都需要硬盘来存储大量数据。一般的硬盘会划分为一或多个存储区(partition或volume),每一个存储区可用来安装操作系统(operatingsystem),也可以用来存储数据。
对于硬盘的存储区,除了一般的读取数据和写入数据的操作以外,也可进行加密(encryption)、解密(decryption)、重加密和反向重加密等编码操作。上述的加密操作必须设定相对应的密码。加密操作可将存储区中的数据从明文转换为密文,以保护上述数据,而解密操作可将存储区中的数据从密文转回加密之前的明文。上述的重加密操作是在更换密码时,先将存储区中的密文数据用旧密码解密,然后用新密码加密。反向重加密操作则是在暂停重加密操作后,对重加密过的密文数据用新密码解密,然后用旧密码加密,使存储区中的密文数据恢复到重加密之前的状态。
大型服务器的硬盘通常存储大量数据,一次加密操作可能需要数天才能完成,导致断电等意外发生的机率大增。如果在加密操作中发生断电等意外,可能发生存储区中的数据损坏、丢失或导致整个存储区无法再存取等问题。
上述的传统编码操作会在存储区中设置一个标头(header),用来存储一个表示编码操作的进度的偏移量(offset)。上述偏移量是每次完成一定数量的数据编码时更新一次,例如每次完成32MB(megabytes)的数据编码时更新一次。但即使如此也不能有效避免断电所导致的数据损坏等问题。
例如图1所示,图1是一个硬盘存储区100的编码操作示意图。存储区100的标头120存储上述的偏移量,这个偏移量是每次完成b位元(bytes)的数据编码时更新一次。编码操作是以从偏移量S到偏移量0的方向进行,其中b和S都是预设常数。当编码操作进行到偏移量为S-b的位置时,会更新标头120存储的偏移量。如果不发生意外,当编码操作进行到偏移量为S-2b的位置时,会再次更新标头120存储的偏移量。但如果在编码操作进行到偏移量为p的位置时发生断电,而且在复电后根据标头120的记录,从偏移量为S-b的位置继续编码操作,则偏移量从S-b到p的数据会被编码两次,造成数据损坏。
发明内容
本发明提供一种适用于存储装置的存储区的编码操作的进度记录方法和恢复方法。可在断电等意外之后正确恢复存储区的数据与先前的编码操作,避免数据损坏、丢失以及存储区无法再存取等问题。
本发明提出一种进度记录方法,适用于一存储装置的一存储区的一编码操作,此进度记录方法包括下列步骤:初始化并存储一变量集合,其中上述编码操作包括多个子操作,每一上述子操作对应变量集合其中至少一标记变量,上述标记变量用以记录上述子操作的执行进度;以及在执行每一上述子操作时,根据子操作的执行进度更新已存储的变量集合中对应的标记变量。
在本发明的一实施例中,上述子操作其中之一对应上述标记变量其中的一第一标记变量和一第二标记变量,而且根据子操作的执行进度更新已存储的标记变量的步骤包括:根据该子操作的下一次执行之后的进度更新第一标记变量,此时第一标记变量不等于第二标记变量;执行该子操作;以及根据该子操作的上述执行之后的进度更新第二标记变量,此时第一标记变量等于第二标记变量。
在本发明的一实施例中,上述的编码操作包括一备份子操作,而且备份子操作在对应第一标记变量和第二标记变量的上述子操作执行之前,在不同于上述存储区的另一存储区备份上述存储区的数据。
本发明另提出一种恢复方法,适用于上述编码操作,包括下列步骤:读取上述的变量集合;根据变量集合判断上述编码操作的子操作之中是否有中断;如果上述子操作之中有中断,则根据中断的子操作所对应的标记变量恢复中断的子操作;以及根据上述变量集合的上述标记变量所记录的进度继续执行上述编码操作。
在本发明的一实施例中,上述子操作其中之一对应上述标记变量其中的一第一标记变量和一第二标记变量,而且恢复上述编码操作的步骤包括:若第一标记变量不等于第二标记变量,则将第一标记变量设定为等于第二标记变量。
在本发明的一实施例中,上述编码操作包括一备份子操作,此备份子操作在对应第一标记变量和第二标记变量的上述子操作执行之前,在不同于上述存储区的另一存储区备份上述存储区的数据,而且恢复上述编码操作的步骤还包括:使用上述存储区的上述备份数据,恢复存储区中位于第一标记变量和第二标记变量所定义的区段的数据。
基于上述,本发明使用编码操作的子操作所对应的标记变量记录子操作的执行进度,并且在必要时备份存储区中的数据,所以能在发生断电等意外事件后恢复并继续执行原先的编码操作。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是已知的一种存储装置其中的一个存储区的一种加密操作的示意图。
图2是依照本发明一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。
图3是依照本发明一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。
图4是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。
图5是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。
图6是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。
图7是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。
【主要元件符号说明】
100:存储装置的存储区
120:标头
220~240、320~380、410~490、510~570、605~655、705~760:流程步骤
0、S-2b、p、S-b、S:偏移量
具体实施方式
图2是依照本发明一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。上述存储装置可以是任何非易失性(nonvolatile)存储装置,例如快闪存储器(flash memory)、存储卡或硬盘。上述编码操作可以是前述的加密、解密、重加密或反向重加密。
上述编码操作可包括多个子操作。为了在发生断电、系统故障或人为错误操作等意外事件后恢复并继续执行编码操作,可将每个子操作对应到一个或多个标记变量,用来记录对应的子操作的执行进度,这些标记变量可构成一个变量集合。此变量集合可存储在进行上述编码操作的存储区,或存储在不同于上述存储区的另一个存储区。变量集合可用文件形式存储在不同于上述存储区的另一个存储区,或独立于文件系统之外,直接存储在所属存储区或不同于所属存储区的另一个存储区的某一特定区域。
以下说明图2的进度记录方法的流程。在步骤220,初始化并存储上述的变量集合。在步骤240,在执行编码操作的每一个子操作时,根据该子操作的执行进度更新已存储的变量集合中该子操作所对应的标记变量。如此,上述的变量集合随时反映编码操作的执行进度,如果有意外发生而使编码操作中断,上述变量集合可作为恢复与继续执行编码操作的依据。
图3是依照本发明一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。图3的恢复方法对应图2的进度记录方法,可在断电等意外事件导致编码操作中断之后执行。在步骤320,读取上述的变量集合。在步骤340,根据变量集合判断编码操作的子操作之中是否有中断。如果有中断的子操作,则在步骤360根据中断的子操作所对应的标记变量恢复中断的上述子操作。上述的恢复中断的子操作是指将该子操作涉及的数据恢复到执行该子操作之前的状态,或将该子操作涉及的数据恢复成不受中断而正确执行该子操作之后的状态。然后,在步骤380根据上述变量集合的标记变量所记录的进度继续执行上述编码操作。反之,如果在步骤340判断出没有中断的子操作,表示编码操作是在两个子操作之间中断,所以流程可跳过步骤360,直接进入步骤380。
图4是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。本实施例的编码操作主要有两个子操作,分别是步骤430的数据备份和步骤470的写回编码后的数据。步骤430的数据备份对应一个标记变量BackupSuccess,步骤470的写回编码后的数据则对应两个标记变量Noffset和Eoffset。
编码操作的子操作中,有一种是可重复执行的,例如设定初始值,这种子操作不需要备份数据。有一种子操作不可重复执行,例如某些编码操作,重复执行两次的结果不同于仅执行一次的结果,这种子操作需要先备份数据以供意外发生后的恢复之用。步骤470的子操作就属于需要备份数据的那一种。
以下说明图4的进度记录方法的流程。在步骤410,初始化并存储一变量集合。此变量集合包括标记变量BackupSuccess、Noffset和Eoffset,用于记录编码操作的执行进度。在步骤420,将已存储的标记变量BackupSuccess的数值设为0。在步骤430,备份即将进行上述编码操作的存储区的数据。本实施例的备份数据存放在不同于进行上述编码操作的存储区的另一个存储区。备份数据可用文件形式存储在上述的另一个存储区,或独立于文件系统之外,直接存储在上述的另一个存储区的某一特定区域。然后在步骤440将已存储的标记变量BackupSuccess的数值设为1。对于标记变量BackupSuccess,数值0表示对应的子操作未完成,数值1则表示对应的子操作已完成。在其他实施例中,可以用任意两个不同数值取代上述的0与1。
在步骤450,读取一段数据并加以编码,上述编码可以是上述的加密、解密、重加密或反向重加密。步骤450的编码是以a为单位进行,a是预设参数,例如是2MB(megabyte)。步骤450的编码可以从偏移量最大或最小的位置开始,每次读取长度为a的一段数据并加以编码。
在步骤460,更新已存储的标记变量Noffset。如果步骤450的编码是从偏移量最大的位置开始,则上述更新是将Noffset减去a,以记录步骤470的下一次执行之后的进度。如果步骤450的编码是从偏移量最小的位置开始,则上述更新是将Noffset加上a,以记录步骤470的下一次执行之后的进度。此时标记变量Noffset不等于标记变量Eoffset。
在步骤470,将上述编码之后的数据写回存储区。在步骤480,更新已存储的标记变量Eoffset。如果步骤450的编码是从偏移量最大的位置开始,则上述更新是将Eoffset减去a,以记录步骤470的上述执行之后的进度。如果步骤450的编码是从偏移量最小的位置开始,则上述更新是将Eoffset加上a,以记录步骤470的上述执行之后的进度。此时标记变量Noffset等于标记变量Eoffset。
如果步骤450的编码是从偏移量最大的位置开始,则步骤450所读取的,就是偏移量从Noffset到Noffset-a的一段数据。如果步骤450的编码是从偏移量最小的位置开始,则步骤450所读取的,就是偏移量从Noffset到Noffset+a的一段数据。
然后在步骤490,检查存储区中是否还有应该编码却尚未编码的数据。如果是,流程返回步骤450。如果不是,流程至此结束。
图5是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。图5的恢复方法对应图4的进度记录方法,可在断电等意外事件导致编码操作中断之后执行。
以下说明图5的恢复方法的流程。在步骤510,自上述变量集合读取标记变量BackupSuccess。在步骤520,检查BackupSuccess的数值。如果BackupSuccess等于1,表示步骤430的子操作已经完成,流程进入步骤530。如果BackupSuccess等于0,表示步骤430的子操作尚未完成就中断,必须恢复步骤430的子操作,并继续执行上述的编码操作。在此情况下,流程进入步骤570,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤410,从头执行整个编码操作,其中包括重新执行步骤430,这样可以恢复步骤430的子操作。
在步骤530,自变量集合读取标记变量Noffset和Eoffset。在步骤540,检查Noffset和Eoffset是否相等。如果相等,表示上述编码操作并没有中断的子操作,所以流程进入步骤570,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤490。
反之,如果Noffset和Eoffset不相等,表示步骤470的子操作尚未完成就中断,必须恢复步骤470的子操作,并继续执行上述的编码操作。在此情况下,流程进入步骤550,使用步骤430的备份数据,恢复存储区中位于Noffset和Eoffset所定义的区段的数据,并且在步骤560修正Noffset,也就是将Noffset设定为等于Eoffset。如果步骤450的编码是从偏移量最大的位置开始,则Noffset和Eoffset所定义的区段就是偏移量从Noffset到Eoffset的数据。如果步骤450的编码是从偏移量最小的位置开始,则Noffset和Eoffset所定义的区段就是偏移量从Eoffset到Noffset的数据。步骤550和560是为了恢复步骤470的子操作。
然后,在步骤570,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤450。
图6是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的进度记录方法的流程图。本实施例的编码操作包括四个主要子操作,分别是步骤610的初始化变量集合、步骤615的数据备份、步骤630的写回编码后的数据、以及步骤645的更新存储区标头。步骤610的初始化变量集合对应一个标记变量InitFlag,步骤615的数据备份对应一个标记变量BackupSuccess,步骤630的写回编码后的数据对应两个标记变量Noffset和Eoffset,步骤645的更新存储区标头对应一个标记变量Uoffset。
本实施例的进度记录方法会在不同于即将进行编码操作的存储区的另一个存储区创建一个备份文件,然后将变量集合与备份数据存储在此备份文件。下列的表1说明此备份文件的格式。
表1,备份文件格式
表1当中的备份数据就是步骤615的备份数据,备份数据长度是每次执行步骤615所备份的数据长度,本实施例的备份数据长度是一个预设参数b,例如可以是32MB。表1的存储区路径是进行编码操作的存储区在文件系统中的路径。表1的编码操作种类是上述编码操作的种类,例如加密、解密、重加密或反向重加密。表1的编码操作方向是上述编码操作的方向,例如从偏移量最大的位置到偏移量最小的位置,或从偏移量最小的位置到偏移量最大的位置。因为本实施例的存储区路径、编码操作种类和编码操作方向都是可选择的而非预设的,所以需要存储在备份文件中。除了备份数据以外,表1其余的部分都属于上述的变量集合。
以下说明图6的进度记录方法的流程。在步骤605,在上述的另一个存储区创建如表1所示的备份文件。在步骤610,初始化上述变量集合,将变量集合存储在上述的备份文件。步骤610包括将变量集合中的标记变量InitFlag设为0,初始化其余的上述标记变量,存储变量集合之后,将已存储的标记变量InitFlag设为1。对于标记变量InitFlag,数值0表示尚未完成变量集合的初始化与存储,数值1则表示已完成变量集合的初始化与存储。在其他实施例中,可以用任意两个不同数值取代上述的0与1。
步骤615和图4的步骤420、430和440相似,不同之处在于图4的步骤420、430和440是一次备份全部数据,而步骤615是一次只备份长度等于上述的预设参数b的一段数据。接下来的步骤620至635和图4的步骤450至480相同,在此不需要重复说明。然后在步骤640检查步骤615已备份的区段中是否还有尚未编码的数据。如果是,流程返回步骤620。如果不是,流程进入步骤645。
接下来,在步骤645更新已存储在上述备份文件的标记变量Uoffset,然后更新正在进行上述编码操作的存储区的一个标头所存储的一个进度变量Toffset,使上述进度变量等于Uoffset。Uoffset是用来记录步骤615的数据备份进度。如果步骤615的数据备份是从偏移量最大的位置开始,步骤645的更新就是将Uoffset减去上述的预设参数b。如果步骤615的数据备份是从偏移量最小的位置开始,步骤645的更新就是将Uoffset加上预设参数b。上述标头所存储的进度变量Toffset可作为意外事件发生后的恢复参考。
接下来,在步骤650检查是否所有应编码的数据都已经完成编码。如果不是,流程返回步骤615。如果是,流程进入步骤655,删除上述的备份文件,也就是删除已存储的变量集合与所有备份数据。
图7是依照本发明另一实施例的一种适用于存储装置的存储区的编码操作的恢复方法的流程图。图7的恢复方法对应图6的进度记录方法。
由于图6流程最后会删除备份文件,所以在断电等意外事件发生后,而且包括上述存储装置的计算机系统重新启动之后,可根据备份文件是否存在,判断是否执行本实施例的恢复方法。如果备份文件存在,表示编码操作因为意外事件而中断,可执行本实施例的恢复方法。如果备份文件不存在,表示编码操作顺利完成,不必执行本实施例的恢复方法。
以下说明图7的恢复方法的流程。在步骤705,自备份文件中的变量集合读取存储区的路径,以及编码操作的种类与方向,作为后面的恢复方法的步骤和上述编码操作的继续执行的依据。在步骤710,自变量集合读取标记变量InitFlag和BackupSuccess。在步骤715,自上述的存储区标头读取进度变量Toffset。
在步骤720,检查InitFlag的数值。如果InitFlag等于1,表示步骤610的初始化子操作已经完成,流程进入步骤725。如果InitFlag等于0,表示步骤610的初始化子操作尚未完成就中断,必须恢复步骤610的子操作,并继续执行编码操作。在此情况下,流程进入步骤760,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤610,这样可以恢复步骤610的初始化子操作。
然后在步骤725检查BackupSuccess的数值。如果BackupSuccess等于1,表示步骤615的备份子操作已经完成,流程进入步骤730。如果BackupSuccess等于0,表示步骤615的子操作尚未完成就中断,必须恢复步骤615的子操作,并继续执行上述的编码操作。在此情况下,流程进入步骤760,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤615,这样可以恢复步骤615的备份子操作。
接下来,在步骤730自变量集合读取标记变量Noffset、Eoffset和Uoffset。在步骤735,检查Uoffset和Toffset是否相等。如果相等,流程进入步骤745。如果不相等,表示步骤645的子操作尚未完成就中断,必须恢复步骤645的子操作,并继续执行上述的编码操作。在此情况下,流程进入步骤740以修正Toffset,就是将已在步骤715读取的进度变量Toffset和上述标头所存储的进度变量Toffset全设定为等于标记变量Uoffset。步骤740是为了恢复步骤645的子操作。然后,在步骤760,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤650。
接下来,在步骤735检查Noffset和Eoffset是否相等。如果相等,表示上述编码操作并没有中断的子操作,所以流程进入步骤760,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤640。
反之,如果Noffset和Eoffset不相等,表示步骤630的子操作尚未完成就中断,必须恢复步骤630的子操作,并继续执行上述的编码操作。在此情况下,流程进入步骤750和755以恢复步骤630的子操作。步骤750和755和图5的步骤550和560相同,在此不重复说明。然后,在步骤760,根据上述变量集合中的标记变量所记录的执行进度,继续执行上述编码操作。这里的继续执行是回到步骤620。
综上所述,本发明使用编码操作的子操作所对应的标记变量记录子操作的执行进度,并且在必要时备份存储区中的数据,所以能在发生断电等意外事件后恢复并继续执行原先的编码操作。对于存储装置的数据,本发明可提供有效的保护方案。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书所界定范围为准。
Claims (14)
1.一种进度记录方法,适用于一存储装置的一存储区的一编码操作,包括:
初始化并存储一变量集合,其中该编码操作包括多个子操作,每一上述子操作对应该变量集合其中至少一标记变量,上述标记变量用以记录上述子操作的执行进度;以及
在执行每一上述子操作时,根据该子操作的执行进度更新已存储的该变量集合中该子操作所对应的上述标记变量,
其中上述子操作其中之一对应上述标记变量中的一第一标记变量和一第二标记变量,而且根据该子操作的执行进度更新已存储的上述标记变量的步骤包括:
根据该子操作的下一次执行之后的进度更新该第一标记变量,此时该第一标记变量不等于该第二标记变量;
执行该子操作;以及
根据该子操作的上述执行之后的进度更新该第二标记变量,此时该第一标记变量等于该第二标记变量。
2.如权利要求1所述的进度记录方法,其中该变量集合还包括该存储区的路径,以及该编码操作的种类与方向,该编码操作的种类为加密、解密、重加密或反向重加密。
3.如权利要求1所述的进度记录方法,其中该变量集合存储在该存储区或不同于该存储区的另一存储区。
4.如权利要求1所述的进度记录方法,其中上述子操作其中之一对应上述标记变量其中之一,而且根据该子操作的执行进度更新已存储的上述标记变量的步骤包括:
将该标记变量设定为一第一数值;
执行该子操作;以及
将该标记变量设定为一第二数值。
5.如权利要求1所述的进度记录方法,其中上述子操作其中之一对应上述标记变量其中之一,该子操作为更新存储于该存储区的一进度变量,而且根据该子操作的执行进度更新已存储的上述标记变量的步骤包括:
在更新该进度变量之前,将该标记变量设定为该子操作所欲更新的该进度变量的数值。
6.如权利要求1所述的进度记录方法,其中该编码操作包括一备份子操作,该备份子操作在对应该第一标记变量和该第二标记变量的该子操作执行之前,在不同于该存储区的另一存储区备份该存储区的数据。
7.如权利要求6所述的进度记录方法,还包括:
在完成该编码操作后,删除已存储的该变量集合以及该存储区的上述备份数据。
8.一种恢复方法,适用于一存储装置的一存储区的一编码操作,包括:
读取一变量集合,其中该编码操作包括多个子操作,每一上述子操作对应该变量集合其中至少一标记变量;
根据该变量集合判断上述子操作之中是否有中断;
如果上述子操作之中有中断,则根据中断的该子操作所对应的上述标记变量恢复该子操作;以及
根据该变量集合的上述标记变量所记录的进度继续执行该编码操作,
其中上述子操作其中之一对应上述标记变量中的一第一标记变量和一第二标记变量,而且恢复中断的该子操作的步骤包括:
如果该第一标记变量不等于该第二标记变量,则将该第一标记变量设定为等于该第二标记变量。
9.如权利要求8所述的恢复方法,其中该变量集合还包括该存储区的路径,以及该编码操作的种类与方向,该编码操作的种类为加密、解密、重加密或反向重加密,而且该恢复方法还包括:
根据该存储区的路径、该编码操作的种类与方向、以及该变量集合的上述标记变量所记录的进度继续执行该编码操作。
10.如权利要求8所述的恢复方法,其中该变量集合存储在该存储区或不同于该存储区的另一存储区。
11.如权利要求8所述的恢复方法,其中上述子操作其中之一对应上述标记变量其中之一,该标记变量等于一第一数值或一第二数值,而且该恢复方法还包括:
如果该标记变量等于该第一数值,则重新执行该子操作。
12.如权利要求8所述的恢复方法,其中上述子操作其中之一对应上述标记变量其中之一,该子操作为更新存储于该存储区的一进度变量,而且恢复中断的该子操作的步骤包括:
如果该标记变量不等于该进度变量,则将该进度变量设定为等于该标记变量。
13.如权利要求8所述的恢复方法,其中该编码操作包括一备份子操作,该备份子操作在对应该第一标记变量和该第二标记变量的该子操作执行之前,在不同于该存储区的另一存储区备份该存储区的数据,而且恢复中断的该子操作的步骤还包括:
使用该存储区的上述备份数据,恢复该存储区中位于该第一标记变量和该第二标记变量所定义的区段的数据。
14.如权利要求8所述的恢复方法,还包括:
根据是否存在已存储的该变量集合,判断是否执行该恢复方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210408643.0A CN102929806B (zh) | 2012-10-24 | 2012-10-24 | 适用于存储装置的编码操作的进度记录方法和恢复方法 |
TW101143501A TWI497345B (zh) | 2012-10-24 | 2012-11-21 | 適用於儲存裝置的編碼操作的進度記錄方法和恢復方法 |
US13/736,092 US9256554B2 (en) | 2012-10-24 | 2013-01-08 | Progress recording method and recovering method for encoding operation on storage device |
US14/931,852 US9323622B2 (en) | 2012-10-24 | 2015-11-04 | Progress recording method and recovering method for encoding operation on storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210408643.0A CN102929806B (zh) | 2012-10-24 | 2012-10-24 | 适用于存储装置的编码操作的进度记录方法和恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102929806A CN102929806A (zh) | 2013-02-13 |
CN102929806B true CN102929806B (zh) | 2015-09-09 |
Family
ID=47644608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210408643.0A Active CN102929806B (zh) | 2012-10-24 | 2012-10-24 | 适用于存储装置的编码操作的进度记录方法和恢复方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9256554B2 (zh) |
CN (1) | CN102929806B (zh) |
TW (1) | TWI497345B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9727266B2 (en) * | 2009-12-29 | 2017-08-08 | International Business Machines Corporation | Selecting storage units in a dispersed storage network |
CN105320614B (zh) * | 2014-07-28 | 2018-09-07 | 国家电网公司 | 一种保护用量数据的存储处理方法及装置 |
CN107800710A (zh) * | 2017-11-08 | 2018-03-13 | 绵阳美菱软件技术有限公司 | 一种智能家电与平台连接方法、系统以及物联网模块 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1927431A (zh) * | 2005-09-08 | 2007-03-14 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端游戏存储方法及采用该方法的移动通信终端 |
TW200825888A (en) * | 2006-12-06 | 2008-06-16 | Inventec Corp | System and method for handling disruption of rebuilt procedure of disk array device |
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
CN101876949A (zh) * | 2009-11-30 | 2010-11-03 | 威盛电子股份有限公司 | 数据储存系统与方法 |
WO2011021174A2 (en) * | 2009-08-21 | 2011-02-24 | Xdata Engineering Limited | Storage peripheral device emulation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652879A (en) * | 1993-05-12 | 1997-07-29 | Apple Computer, Inc. | Dynamic value mechanism for computer storage container manager enabling access of objects by multiple application programs |
WO2000026910A1 (fr) * | 1998-11-02 | 2000-05-11 | Matsushita Electric Industrial Co., Ltd. | Appareil d'enregistrement / reproduction, support de programme enregistre, support enregistre, antememoire et emetteur |
EP1069567A1 (en) * | 1999-02-08 | 2001-01-17 | Sony Corporation | Information recording/reproducing system |
WO2008149458A1 (ja) * | 2007-06-08 | 2008-12-11 | Fujitsu Limited | 暗号化装置、暗号化方法および暗号化プログラム |
TW201009581A (en) * | 2008-08-26 | 2010-03-01 | Asustek Comp Inc | Method and system for protecting data |
US8924739B2 (en) * | 2011-01-05 | 2014-12-30 | Apple Inc. | System and method for in-place encryption |
US10133662B2 (en) * | 2012-06-29 | 2018-11-20 | Sandisk Technologies Llc | Systems, methods, and interfaces for managing persistent data of atomic storage operations |
-
2012
- 2012-10-24 CN CN201210408643.0A patent/CN102929806B/zh active Active
- 2012-11-21 TW TW101143501A patent/TWI497345B/zh active
-
2013
- 2013-01-08 US US13/736,092 patent/US9256554B2/en active Active
-
2015
- 2015-11-04 US US14/931,852 patent/US9323622B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1927431A (zh) * | 2005-09-08 | 2007-03-14 | 乐金电子(中国)研究开发中心有限公司 | 移动通信终端游戏存储方法及采用该方法的移动通信终端 |
TW200825888A (en) * | 2006-12-06 | 2008-06-16 | Inventec Corp | System and method for handling disruption of rebuilt procedure of disk array device |
CN101840380A (zh) * | 2009-03-12 | 2010-09-22 | 马维尔国际贸易有限公司 | 保护元数据免受意外断电影响的装置和方法 |
WO2011021174A2 (en) * | 2009-08-21 | 2011-02-24 | Xdata Engineering Limited | Storage peripheral device emulation |
CN101876949A (zh) * | 2009-11-30 | 2010-11-03 | 威盛电子股份有限公司 | 数据储存系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI497345B (zh) | 2015-08-21 |
US20160055063A1 (en) | 2016-02-25 |
US9323622B2 (en) | 2016-04-26 |
US9256554B2 (en) | 2016-02-09 |
TW201416904A (zh) | 2014-05-01 |
US20140115284A1 (en) | 2014-04-24 |
CN102929806A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI475385B (zh) | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 | |
CN100370408C (zh) | 用于逻辑撕碎存储在worm介质上的数据的系统和方法 | |
CN104346103B (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN101484905A (zh) | 为存储装置提供安全实现的方法和系统 | |
CN101944386B (zh) | 识别闪速存储器中错误数据的控制电路及存储系统与方法 | |
US8983072B2 (en) | Portable data carrier featuring secure data processing | |
CN103257938B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN103049539A (zh) | 一种文件系统中文件数据的存储方法及其装置 | |
CN102929806B (zh) | 适用于存储装置的编码操作的进度记录方法和恢复方法 | |
CN105302665A (zh) | 一种改进的写时拷贝快照方法及系统 | |
US9535799B2 (en) | Apparatus, systems, and methods for data recovery | |
US9235532B2 (en) | Secure storage of full disk encryption keys | |
CN103218300B (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
EP2998903B1 (en) | System and method for robust full-drive encryption | |
CN105404468A (zh) | 绿能与非固态硬盘应用及其驱动器 | |
CN104573537A (zh) | 数据处理方法、存储器存储装置与存储器控制电路单元 | |
CN103324581B (zh) | 编程存储单元与数据读取方法、存储器控制器与储存装置 | |
CN103377132B (zh) | 管理存储器空间的方法、存储器控制器与存储器储存装置 | |
RU2580014C2 (ru) | Система и способ изменения маски зашифрованной области при возникновении сбоя в компьютерной системе | |
CN103034594A (zh) | 存储器储存装置及其存储器控制器与密码验证方法 | |
CN102375943B (zh) | 识别码产生方法与存储器管理方法、控制器及储存系统 | |
CN112463460B (zh) | 一种基于纠删码的小块数据恢复方法及系统 | |
US20230161740A1 (en) | A device, a method of performing a file transaction, and a method of performing an access operation | |
RU2580018C2 (ru) | Способ определения маски зашифрованной области диска | |
CN106155578A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |