CN103645967B - 一种只读快照回滚方法及装置 - Google Patents
一种只读快照回滚方法及装置 Download PDFInfo
- Publication number
- CN103645967B CN103645967B CN201310611326.3A CN201310611326A CN103645967B CN 103645967 B CN103645967 B CN 103645967B CN 201310611326 A CN201310611326 A CN 201310611326A CN 103645967 B CN103645967 B CN 103645967B
- Authority
- CN
- China
- Prior art keywords
- read
- materialized view
- file system
- moment
- materialized
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种只读快照回滚方法及装置,用于解决在只读快照回滚过程中,只读快照回滚之后无法获取部分只读快照数据的问题。方法为,当接收到只读快照回滚指示后,即基于该只读快照回滚指示获取目标只读快照的根,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至文件***,并且保留目标只读快照对应的创建时刻之后的所有创建时刻的只读快照。采用本发明技术方案,根据用户指示实现目标只读快照回滚至文件***之后,保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,有效防止用户的误操作所导致的数据无法恢复,且在只读快照回滚之后,用户可以迅速获取所需要的只读快照,从而有效提高了***的可操作性。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种只读快照回滚方法及装置。
背景技术
目前,在NAS(NetworkAttachedStorage;网络连接存储)应用中,FS(FileSystem;文件***)为用于存储以及管理文件的***,其包含大量被管理文件以及表示该大量文件层级关系的文件目录,文件***能够为用户提供读写文件、删除文件以及新建文件等功能。在文件***中,出于文件数据保护的需要,在不同的时刻会对FS创建ROW(Redirect-on-write;写时重定向)只读快照,其中,只读快照为某个时刻文件***的映像。当FS出现故障或者基于业务本身需要,需要将某个时刻的只读快照恢复至文件***时,往往需要对ROW只读快照进行回滚操作。其中,上述恢复至文件***的某个时刻的只读快照即为目标只读快照;只读快照的回滚即为将目标只读快照恢复至文件***。在回滚完成后,上述FS可读写的数据即为上述目标只读快照中的数据。
参阅图1所示,文件***FS1在三个不同时刻(2:00,4:00和6:00)分别创建了只读快照(即只读快照一Snap1,只读快照二Snap2和只读快照三Snap3),其中,每一个只读快照和文件***均有其自身的根(SnapRoot)。如只读快照一的根为Snap1Root,该Snap1Root为指向只读快照一所有文件的根,FS1的根为FS1Root,该FS1Root为指向所有文件的根。并且,每一个只读快照均包含元数据,且任意一个只读快照的元数据中记录该任意一个只读快照的上一个时刻只读快照的独占数据信息,如只读快照二的元数据记录只读快照一的独占数据信息,而文件***中最后一个创建时刻的只读快照的独占数据信息被记录在文件***的元数据中。
参阅图2所示,若目标只读快照为只读快照二,通常将FS1的根替换为只读快照二的根,由于只读快照二恢复至FS1后,FS1与只读快照二共享同一个根,为了避免后续对FS1进行各项操作时造成的文件***数据混乱问题,还需要删除只读快照三。
由此可见,采用上述技术方案,虽然能够方便快捷地实现文件***恢复至任意一个时刻的只读快照,但是由于在只读快照回滚完成后,将删除目标只读快照对应的创建时刻后所有创建时刻的只读快照,因此,当上述只读快照回滚操作为误操作时,或者根据业务需求需要使用上述已删除只读快照时,将无法恢复上述已删除只读快照,从而造成***可操作性差的问题。
综上所述,在只读快照回滚过程中,存在只读快照回滚之后无法获取部分只读快照数据,影响***可操作性的问题。
发明内容
本发明实施例提供一种只读快照回滚方法及装置,用以解决目前在只读快照回滚过程中,存在只读快照回滚之后无法获取部分只读快照数据,影响***可操作性的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种只读快照回滚方法,包括:
接收只读快照回滚指示;
获取所述只读快照回滚指示中携带的目标只读快照的标识,根据所述目标只读快照的标识读取所述目标只读快照的根以及所述目标只读快照对应的创建时刻,将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***;并
保留所述目标只读快照对应的创建时刻之后所有创建时刻的只读快照;以及
获取所述目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据,在所述元数据中获取所述目标只读快照的独占数据信息后,删除所述元数据中所述目标只读快照的独占数据信息;其中,所述只读快照为某个时刻文件***的映像,所述独占数据信息为所述目标只读快照创建时刻的数据信息。
结合第一方面,在第一种可能的实现方式中,读取文件***的元数据,以及所述文件***中最后一次被创建的只读快照对应的创建时刻;根据所述文件***的元数据,若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***存在更新数据时,基于所述更新数据创建预设只读快照;若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***不存在更新数据时,将所述最后一次被创建的只读快照作为预设只读快照。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,将文件***的根替换为所述目标只读快照的根;并将所述目标只读快照的数据信息存储至所述文件***的元数据中,令所述目标只读快照回滚至所述文件***。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,令所述目标只读快照回滚至所述文件***之后,当接收到删除只读快照指示时,根据所述删除只读快照指示,获取待删除只读快照的标识;并根据所述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若是,则遍历所述待删除只读快照,并删除所述待删除只读快照的独占数据;否则,根据所述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取所述待删除只读快照的独占数据,并删除所述待删除只读快照的独占数据,以及删除所述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中所述待删除只读快照的独占数据信息。
结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第四种可能的实现方式中,将所述目标只读快照回滚至所述文件***之后,当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后存在新建只读快照时,根据更新数据,获取所述新建只读快照的独占数据;根据所述新建只读快照的独占数据,在所述文件***的元数据中更新所述新建只读快照的数据信息。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,若在所述新建只读快照之后,再次创建新的只读快照时,则清空所述文件***的元数据中的快照对象域。
结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第六种可能的实现方式中,将所述目标只读快照回滚至所述文件***之后,当接收到更新所述文件***中的数据的指示时,当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后不存在新建只读快照时,根据所述更新数据,确定所述目标只读快照的独占数据;根据所述目标只读快照的独占数据,在所述目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新所述目标只读快照的数据信息。
第二方面,提供一种只读快照回滚装置,包括:
接收单元,用于接收只读快照回滚指示,并将所述只读快照回滚指示发送至获取单元;
获取单元,用于接收所述接收单元发送的只读快照回滚指示,并获取所述只读快照回滚指示中携带的目标只读快照的标识,根据所述目标只读快照的标识读取所述目标只读快照的根以及所述目标只读快照对应的创建时刻;其中,所述只读快照为某个时刻文件***的映像,所述独占数据信息为所述目标只读快照创建时刻的数据信息;并将所述目标只读快照的根以及所述目标只读快照对应的创建时刻发送至控制单元,以及将所述目标只读快照对应的创建时刻发送至第一删除单元;
控制单元,用于接收所述获取单元发送的所述目标只读快照的根以及所述目标只读快照对应的创建时刻,并将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***;以及保留所述目标只读快照对应的创建时刻之后所有创建时刻的只读快照;
第一删除单元,用于接收所述获取单元发送的所述只读快照对应的创建时刻,并获取所述目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据;获取所述元数据中所述目标只读快照的独占数据信息;删除所述元数据中所述目标只读快照的独占数据信息。
结合第二方面,在第一种可能的实现方式中,还包括预设只读快照创建单元,用于:读取文件***的元数据,以及所述文件***中最后一次被创建的只读快照对应的创建时刻;根据所述文件***的元数据,若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***存在更新数据时,基于所述更新数据创建预设只读快照;若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***不存在更新数据时,将所述最后一次被创建的只读快照作为预设只读快照。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制单元,具体用于:将文件***的根替换为所述目标只读快照的根;并将所述目标只读快照的数据信息存储至所述文件***的元数据中,令所述目标只读快照回滚至所述文件***。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,还包括第二删除单元,用于:当接收到删除只读快照指示时,根据所述删除只读快照指示,获取待删除只读快照的标识;并根据所述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若是,则遍历所述待删除只读快照,并删除所述待删除只读快照的独占数据;否则,根据所述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取所述待删除只读快照的独占数据,并删除所述待删除只读快照的独占数据,以及删除所述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中所述待删除只读快照的独占数据信息。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第四种可能的实现方式中,还包括第一更新单元,用于:当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后存在新建只读快照时,根据更新数据,获取所述新建只读快照的独占数据;根据所述新建只读快照的独占数据,在所述文件***的元数据中更新所述新建只读快照的数据信息。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括清空单元,用于:若在所述新建只读快照之后,再次创建新的只读快照时,则清空所述文件***的元数据中的快照对象域。
结合第二方面的第一种可能的实现方式或第二种可能的实现方式,在第六种可能的实现方式中,还包括第二更新单元,用于:将所述目标只读快照回滚至所述文件***之后,当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后不存在新建只读快照时,根据所述更新数据,确定所述目标只读快照的独占数据;根据所述目标只读快照的独占数据,在所述目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新所述目标只读快照的数据信息。
本发明实施例中,当接收到只读快照回滚指示后,即基于该只读快照回滚指示携带的目标只读快照的标识获取目标只读快照的根,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至文件***,并且保留目标只读快照对应的创建时刻之后的所有创建时刻的只读快照,以及删除目标只读快照之后的下一个创建时刻只读快照的元数据中目标只读快照的独占数据信息。采用本发明技术方案,根据用户指示实现目标只读快照回滚至文件***之后,保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,有效防止用户的误操作所导致的数据无法恢复,且在只读快照回滚之后,用户可以迅速获取所需要的只读快照,从而有效提高了***的可操作性。
附图说明
图1为现有技术中文件***中只读快照示意图;
图2为现有技术中只读快照回滚示意图;
图3为本发明实施例中***架构示意图;
图4为本发明实施例中只读快照回滚流程图;
图5为本发明实施例中文件***架构示意图一;
图6为本发明实施例中文件***架构示意图二;
图7为本发明实施例中文件***架构示意图三;
图8为本发明实施例中文件***架构示意图四;
图9为本发明实施例中文件***架构示意图五;
图10为本发明实施例中只读快照回滚示意图一;
图11为本发明实施例中只读快照回滚示意图二;
图12为本发明实施例中只读快照回滚示意图三;
图13为本发明实施例中具体应用场景下只读快照回滚流程图;
图14为本发明实施例中具体应用场景下只读快照回滚过程中信息交互示意图;
图15为本发明实施例中具体应用场景下只读快照删除流程图;
图16为本发明实施例中具体应用场景下只读快照删除过程中信息交互示意图;
图17为本发明实施例中具体应用场景下文件***数据更新流程图;
图18为本发明实施例中具体应用场景下文件***数据更新过程中信息交互示意图;
图19为本发明实施例中只读快照回滚装置结构示意图;
图20为本发明实施例中只读快照回滚设备结构示意图。
具体实施方式
为了解决目前在只读快照回滚过程中,存在***可操作性差的问题。本发明实施例中,当接收到只读快照回滚指示后,即基于该只读快照回滚指示携带的目标只读快照的标识获取目标只读快照的根,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至文件***,并且保留目标只读快照对应的创建时刻之后的所有创建时刻的只读快照,以及删除目标只读快照之后的下一个创建时刻只读快照的元数据中目标只读快照的独占数据信息。采用本发明技术方案,根据用户指示实现目标只读快照回滚至文件***之后,保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,有效防止用户的误操作所导致的数据无法恢复,且在只读快照回滚之后,用户可以迅速获取所需要的只读快照,从而有效提高了***的可操作性。
参阅图3所示为本发明实施例中文件***架构示意图,该文件***应用于NAS应用中,其包括客户端,ISM(IntegratedSoftwareManagement;集成软件管理器),以及存储服务器,其中,客户端通过TCP/IP网络向存储服务器发送指示,进行针对只读快照的I/O操作(包括读取文件操作),存储服务器根据上述客户端发送的指示,执行相应的操作;ISM通过TCP/IP网络向存储服务器发送指示,进行针对只读快照的配置操作(包括只读快照的创建、删除、回滚等操作),存储服务器根据上述ISM发送的指示,执行相应的操作。
基于上述文件***架构,参阅图4所示,本发明实施例中,只读快照回滚的详细流程为:
步骤400:接收只读快照回滚指示。
本发明实施例中,任意一个时刻的只读快照中包含该任意一个时刻的文件***中所有文件的数据以及元数据,其中,该元数据中包含上述任意一个时刻之前的上一个时刻只读快照的独占数据信息。例如,参阅图1所示,只读快照二的元数据中包含只读快照一的独占数据信息,只读快照三的元数据中包含只读快照二的独占数据信息。此外,在文件***中,所有数据以数据块的形式存在,每一个数据块均对应各自的逻辑时间,上述只读快照的独占数据信息中即记录该只读快照中每一个独占数据块对应的逻辑时间以及其他相关信息。
步骤410:获取只读快照回滚指示中携带的目标只读快照的标识,根据该目标只读快照的标识读取目标只读快照的根以及目标只读快照对应的创建时刻,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至文件***,并保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,以及获取目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据,在上述元数据中获取目标只读快照的独占数据信息后,删除上述元数据中目标只读快照的独占数据信息。
本发明实施例中,当存储服务器接收到ISM发送的只读快照回滚指示后,即获取目标只读快照的标识,以及根据目标只读快照的标识获取目标只读快照的根,并将文件***的根替换为目标只读快照的根;以及将目标只读快照的数据信息存储至文件***的元数据中,从而令目标只读快照回滚至文件***,以及保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照。
在上述过程中,文件***的根即为一个磁盘地址,通过该磁盘地址,可以访问到文件***的所有目录以及文件数据;该文件***的目录、文件都被抽象为一个个的Objects(对象),所有Object组成文件***的对象集。通常情况下,上述对象集以树的形式组织,该树存在一个ObjsetRoot(树根)地址,通过该ObjsetRoot可以访问到文件***的所有对象,因此,文件***的根又叫ObjsetRoot。由于只读快照为某个时刻文件***的映像,因此,只读快照的根同样为一个磁盘地址,通过该磁盘地址,可以访问到只读快照的所有目录以及文件数据;该只读快照的目录、文件都被抽象为一个个的Objects(对象),所有Object组成只读快照的对象集。通常情况下,上述对象集以树的形式组织,该树存在一个ObjsetRoot(树根)地址,通过该ObjsetRoot可以访问到只读快照的所有对象,因此,只读快照的根又叫ObjsetRoot。例如,参阅图5所示的文件***架构示意图,BP(BlockPointer;块指针)即为文件***的根(FSRoot),该BP指向根数据块的地址。当由上述文件***中的根数据块向下解析时,即可索引至该文件***的所有目录以及文件。相应的,参阅图6所示的文件***架构示意图中,A、B、C和D均表示文件***的文件数据块,文件***中所有文件数据块可以由根数据块向下解析得到。参阅图7所示,当对文件***创建只读快照之后,只读快照的根指向文件***的根数据块,即只读快照与文件***共享根。
参阅图8所示,当文件***中修改了数据块A后,文件***的根指向新产生的根数据块,从而出现了根分离,而文件***与只读快照仍共享未修改的部分数据块。在文件***中实现只读快照回滚时,参阅图9所示,通常将文件***的根指向目标只读快照的根,而目标只读快照恢复至文件***后,即删除目标只读快照后所有创建时刻只读快照。
进一步的,当目标只读快照回滚至文件***之后,由于目标只读快照中的数据为与文件***的共享数据,因此,在目标只读快照回滚至文件***之后,目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据中记录的目标只读快照的独占数据信息对应的数据将不再是目标只读快照的独占数据。此时,目标只读快照中数据的状态改变将导致删除该目标只读快照时,不能按照目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据删除目标只读快照。
基于该技术问题,本发明实施例中,在目标只读快照回滚至文件***之后,需要删除目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据中的目标只读快照的独占数据信息,具体为:目标只读快照回滚至文件***之后,获取目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据;获取上述元数据中目标只读快照的数据信息,并从目标只读快照的数据信息中确定目标只读快照的独占数据信息;删除上述元数据中目标只读快照的独占数据信息。例如,参阅图10所示,若目标只读快照为只读快照二,当只读快照二回滚至文件***时,只读快照二中的数据即为文件***的共享数据,此时,需要获取只读快照二对应的时刻的下一个创建时刻只读快照(即只读快照三)的元数据,并删除只读快照三的元数据中只读快照二的独占数据信息。采用上述技术方案,保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照之后,删除目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据中目标只读快照的独占数据,从而避免了文件***与只读快照数据信息不一致的问题,保证了后续对文件***进行相关操作时文件***的稳定性。
此外,在文件***中,当对文件***创建只读快照之后进行数据更新时,需要根据更新数据更新文件***中相应的数据,而该更新数据对应的旧数据即为只读快照保护的独占数据,该独占数据对应的独占数据信息即被存储至文件***的元数据中,并且,该文件***的元数据会在创建新的只读快照时被快照至该新的只读快照中;其中,上述更新数据即为接收到更新文件***中的数据的指示时,该指示中携带的更新后的数据,且该更新数据是相对于目标只读快照创建时刻的数据进行的数据更新。由此可见,采用上述技术方案,若在文件***中最后一个创建时刻的只读快照之后该文件***还存在数据更新,则在只读快照回滚操作执行完毕之后,上述更新数据将被删除,当根据业务需求需要使用上述更新数据时,将无法获取。例如,参阅图11所示,只读快照三为文件***中最后一个创建时刻的只读快照,在创建只读快照三之后,若文件***存在更新数据时,该更新数据将在只读快照二回滚至文件***之后被删除。
基于上述技术问题,本发明实施例中,当存储服务器接收到ISM发送的只读快照回滚指示后,即读取文件***的元数据,以及最后一次创建的只读快照对应的创建时刻;由于更新数据会被记录在文件***的元数据中,因此,根据该文件***的元数据,即可检测上述最后一次创建的只读快照对应的创建时刻之后文件***是否存在更新数据,当检测到上述最后一次创建的只读快照对应的创建时刻之后文件***存在更新数据时,基于该更新数据创建预设只读快照。此外,若上述最后一次创建的只读快照对应的创建时刻之后文件***不存在更新数据时,将上述最后一次创建的只读快照作为预设只读快照。
可选的,上述预设只读快照为用户可见状态。例如,参阅图12所示,当检测到在文件***中最后一次创建的只读快照(即只读快照三)之后存在更新数据时,在文件***中基于更新数据创建预设只读快照(即只读快照四),该预设只读快照通过预设只读快照中包含的特殊标记与其他普通只读快照进行区分,如在只读快照四的标识中包含标识符isSpecialSnap=TRUE,而其他普通只读快照的标识中包含标识符isSpecialSnap为空或者为FAULT等非TRUE的其他值。
采用上述技术方案,在进行只读快照回滚之前,若在文件***中最后一次创建的只读快照之后存在更新数据时,即根据更新数据创建预设只读快照,当目标只读快照回滚至文件***之后,用户仍可以通过访问预设只读快照获取更新数据,从而有效保护了文件***中的只读快照数据。
由于将文件***的根替换为目标只读快照的根,目标只读快照对应的创建时刻之后最后一个创建时刻的只读快照中的数据由只读快照回滚之前与文件***的共享数据改变为该最后一个创建时刻的只读快照的独占数据,且该独占数据的数据信息并未记录在文件***中。例如,参阅图12所示,若只读快照四为最后一个创建时刻的只读快照,在只读快照回滚之前,只读快照四中的数据由文件***的共享数据改变为只读快照四的独占数据,并且,只读快照四的独占数据的数据信息并未记录在文件***的元数据中,因此,当接收到用户指示删除只读快照四时,若按照传统方式删除只读快照四时,只读快照的信息状态变化将导致该删除操作出现错误。
基于上述技术问题,目标只读快照回滚至文件***之后,当存储服务器接收到删除只读快照指示时,根据该删除只读快照指示,获取待删除只读快照的标识;并根据该待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若该只读快照为预设只读快照,则遍历该预设只读快照,并删除预设只读快照中记录的独占数据,其中,删除只读快照即为删除该只读快照的独占数据。采用上述技术方案,通过遍历预设只读快照的方式删除预设只读快照,避免了由于预设只读快照的元数据不完整所造成的删除预设只读快照出现错误的问题。
可选的,根据该待删除只读快照的标识,检测待删除只读快照是否为预设只读快照的过程为:检测待删除只读快照的标识,若待删除只读快照的标识包含特殊标记时,则该待删除只读快照为预设只读快照;否则,该待删除只读快照为普通只读快照。例如,参阅图12所示,若待删除只读快照为只读快照四时,存储服务器检测只读快照四的标识,由于只读快照四的标识包含标识符isSpecialSnap=TRUE,因此,判定只读快照四为预设只读快照,应按照上述遍历预设只读快照的方式删除只读快照四。
进一步的,当待删除只读快照不是预设只读快照时,根据待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取待删除只读快照的独占数据,删除该待删除只读快照的独占数据,并且删除该待删除只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据中待删除只读快照的独占数据信息,从而达到删除待删除只读快照的目的。
此外,当目标只读快照回滚至文件***时,在文件***的元数据中创建快照对象域,该快照对象域中记录目标只读快照的标识。例如,参阅图12所示,目标只读快照为只读快照二,在文件***的元数据中创建快照对象域,在该快照对象域中记录rollSnap=Snap2,记录目标只读快照的标识。在文件***初始状态,该快照对象域被初始化为空。可选的,在文件***新建只读快照之后再次新建只读快照时,将上述快照对象域清空,直至下一次只读快照回滚操作。例如,参阅图12所示,由于目标只读快照为只读快照二,因此,上述快照对象域中记录rollSnap=Snap2,当文件***的新建只读快照为只读快照五,若在只读快照五之后创建只读快照六时,清空上述文件***中元数据的快照对象域。
上述过程为存储服务器删除只读快照的操作过程,在目标只读快照回滚至文件***之后,当接收到用户指示更新文件***中的数据时,根据在目标只读快照回滚至文件***之后是否存在新建只读快照,将存储服务器更新文件***的过程分为两种情况:
第一种情况,在目标只读快照回滚至文件***之后,根据上述文件***的元数据中快照对象域记录的目标只读快照的标识,当检测在目标只读快照回滚至文件***之后存在新建只读快照时,根据更新数据,将新建只读快照的独占数据信息存储至文件***的元数据中。可选的,将新建只读快照的独占数据信息存储至文件***的元数据中的过程为:获取该新建只读快照的独占数据,并根据该新建只读快照的独占数据,在文件***的元数据中更新上述新建只读快照的数据信息。
在上述过程中,由于新建只读快照的存在,此时,对文件***进行的数据更新即为相对于该新建只读快照的数据进行的数据更新,即数据块A被更新为数据块B,此时,若数据块A的逻辑时间早于或者等于新建只读快照的逻辑时间,则该数据块A即为被新建只读快照保护的独占数据,该数据块A属于上述新建只读快照,因此,上述数据块A的独占数据信息将被存储至当前时刻文件***的元数据中。
例如,参阅图12所示,在只读快照二回滚至文件***之后,在对文件***新建只读快照(如新建只读快照五)之后,若接收到用户指示更新文件***对应的数据时,在对文件***进行数据更新过程中产生的只读快照五的独占数据将作为后续再次创建新的只读快照(如只读快照六)的参考,因此,只读快照五的独占数据信息将被存储至文件***的元数据中。
采用上述技术方案,在目标只读快照回滚至文件***之后,当文件***存在新建只读快照时,直接通过修改文件***的元数据来记录新建只读快照的更新,避免了由于未删除目标只读快照对应的创建时刻之后所有创建时刻只读快照而造成的对文件***进行相关操作时导致的文件***数据混乱问题,提高了***的稳定性。
第二种情况:目标只读快照回滚至文件***之后,当接收到用户指示更新文件***中的数据时,根据文件***的元数据中创建的快照对象域记录的目标只读快照标识,当检测在目标只读快照回滚至文件***之后不存在新建只读快照时,根据更新数据,确定目标只读快照的独占数据,并根据目标只读快照的独占数据,在目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新目标只读快照的数据信息,即将数据更新后,目标只读快照的独占数据信息存储至该目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中。
在上述过程中,对文件***进行的数据更新,是相对于目标只读快照创建时刻的数据进行的数据更新,即数据块A被更新为数据块B,则该数据块A即为被目标只读快照保护的独占数据,该数据块A仅属于目标只读快照,而不属于文件***当前时刻最新时间点的只读快照;因此,上述数据块A的独占数据信息将被存储至目标只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中,而不存储至当前时刻文件***的元数据中。
例如,参阅图12所示,在只读快照二回滚至文件***之后,在对文件***新建只读快照之前,若接收到用户指示更新文件***对应的数据时,在对文件***进行数据更新过程中产生的只读快照二的独占数据信息将作为后续删除目标只读快照二的参考,该只读快照二的独占数据信息将存储至只读快照三的元数据中。
采用上述技术方案,在目标只读快照回滚至文件***之后,当文件***不存在新建只读快照时,仅通过修改目标只读快照对应的创建时刻之后下一个创建时刻目标只读快照的元数据来记录目标只读快照的更新,避免了由于未删除目标只读快照对应的创建时刻之后所有创建时刻只读快照而造成的对文件***进行相关操作时导致的文件***数据混乱问题,提高了***的稳定性。
基于上述技术方案,下面结合不同的应用场景消息介绍只读快照回滚过程。
应用场景一
参阅图13所示,存储服务器实现只读快照回滚的流程为:
步骤1300:当存储服务器接收到只读快照回滚指示时,根据该只读快照回滚指示获取目标只读快照的根以及目标只读快照对应的创建时刻。
本发明实施例中,接收只读快照回滚指示可以由存储服务器中的控制器实现。
步骤1310:存储服务器检测文件***中最后一个创建时刻的只读快照之后是否存在数据更新,若是,执行步骤1320;否则,执行步骤1330。
本发明实施例中,上述检测过程可以通过存储服务器中的快照模块实现。
步骤1320:在上述最后一个创建时刻的只读快照之后,基于更新数据创建预设只读快照。
本发明实施例中,上述创建预设只读快照过程可以通过存储服务器中的快照模块实现。
步骤1330:将文件***的根替换为目标只读快照的根,删除目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据中的目标只读快照独占数据信息,以及保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照。
本发明实施例中,将文件***的根替换为目标只读快照的根之后,将目标只读快照的数据信息存储值文件***的元数据中。本发明实施例中,上述删除过程可以通过存储服务器中的快照模块实现。
参阅图14所示为本发明实施例中,只读快照回滚过程中信息交互示意图,其中,ISM向存储服务器发送只读快照回滚指示,存储服务器执行只读快照回滚操作,当目标只读快照回滚至文件***之后,返回回滚成功信息至ISM。
应用场景二
参阅图15所示,存储服务器执行只读快照删除指示的流程为:
步骤1500:当存储服务器接收到只读快照删除指示时,获取该只读快照删除指示中携带的待删除只读快照的标识。
本发明实施例中,上述接收只读快照删除滚指示可以由存储服务器中的控制器实现。
步骤1510:存储服务器根据待删除只读快照的标识,判定上述待删除只读快照是否为预设只读快照,若是,执行步骤1520;否则,执行步骤1530。
本发明实施例中,上述判定过程可以由存储服务器中的快照模块实现。
步骤1520:遍历该预设只读快照,并删除预设只读快照中记录的独占数据。
本发明实施例中,上述删除过程可以由存储服务器中的快照模块实现。
步骤1530:根据待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取待删除只读快照的独占数据,删除该待删除只读快照的独占数据。
本发明实施例中,上述删除过程可以由存储服务器中的快照模块实现。
参阅图16所示为本发明实施例中,只读快照删除过程中信息交互示意图,其中,ISM向存储服务器发送只读快照回滚删除指示,存储服务器执行只读快照删除操作,当目标只读快照回滚至文件***之后,返回删除成功信息至ISM。
应用场景三
参阅图17所示,在只读快照回滚之后,存储服务器执行文件***数据更新的流程为:
步骤1700:当用户指示更新文件***中的数据时,获取该只读快照删除指示中携带的待删除只读快照的标识。
本发明实施例中,上述接收更新文件***中的数据指示可以由存储服务器中的协议适配层以及虚拟文件***实现。
步骤1710:存储服务器根据待删除只读快照的标识,根据上述文件***的元数据中快照对象域记录的目标只读快照的标识检测目标只读快照回滚至文件***之后是否存在新建只读快照,若是,执行步骤1720;否则,执行步骤1730。
本发明实施例中,上述检测过程可以由存储服务器中的快照模块实现。
步骤1720:根据更新数据,获取该新建只读快照的独占数据,并根据该新建只读快照的独占数据,在文件***的元数据中更新上述新建只读快照的数据信息。
本发明实施例中,上述更新过程可以由存储服务器中的快照模块实现。
其中,更新文件***的元数据中的新建只读快照的数据信息,即为将新建只读快照的独占数据信息存储至文件***的元数据中。
步骤1730:根据更新数据,确定目标只读快照的独占数据,并根据目标只读快照的独占数据,在目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新目标只读快照的数据信息。
本发明实施例中,上述更新过程可以由存储服务器中的快照模块实现。
参阅图18所示为本发明实施例中,文件***进行数据更新过程中信息交互示意图,其中,客户端向存储服务器发送更新数据,存储服务器执行文件***的数据更新操作后,返回数据更新成功信息至客户端。
基于上述技术方案,参阅图19所示,本发明还提供一种只读快照回滚装置,包括接收单元190,获取单元191,控制单元192,其中:
接收单元190,用于接收只读快照回滚指示,并将上述只读快照回滚指示发送至获取单元191;
获取单元191,用于接收上述接收单元190发送的只读快照回滚指示,并根据上述只读快照回滚指示,获取目标只读快照的根以及目标只读快照对应的创建时刻;并将目标只读快照的根以及目标只读快照对应的创建时刻发送至控制单元192,以及将目标只读快照对应的创建时刻发送至第一删除单元193;
控制单元192,用于接收上述获取单元191发送的目标只读快照的根以及目标只读快照对应的创建时刻,根据目标只读快照的标识读取目标只读快照的根以及目标只读快照对应的创建时刻,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至上述文件***;并保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照;
第一删除单元193,用于接收获取单元191发送的目标只读快照对应的创建时刻,并获取目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据,在上述元数据中获取目标只读快照的独占数据信息后,删除上述元数据中目标只读快照的独占数据信息;其中,上述只读快照为某个时刻文件***的映像,所述独占数据信息为所述目标只读快照创建时刻的数据信息。
其中,上述装置还包括预设只读快照创建单元194,用于:读取文件***的元数据,以及上述文件***中最后一次被创建的只读快照对应的创建时刻;根据上述文件***的元数据,若检测上述最后一次被创建的只读快照对应的创建时刻之后上述文件***存在更新数据时,基于上述更新数据创建预设只读快照;若检测上述最后一次被创建的只读快照对应的创建时刻之后上述文件***不存在更新数据时,将上述最后一次被创建的只读快照作为预设只读快照。
进一步的,上述装置还包括第二删除单元195,用于:当接收到删除只读快照指示时,根据上述删除只读快照指示,获取待删除只读快照的标识;并根据上述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若是,则遍历上述待删除只读快照,并删除上述待删除只读快照的独占数据;否则,根据上述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取上述待删除只读快照的独占数据,并删除上述待删除只读快照的独占数据,以及删除上述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中上述待删除只读快照的独占数据信息。
进一步的,上述装置还包括第一更新单元196,用于:当接收到更新上述文件***中的数据的指示时,根据在上述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将目标只读快照回滚至上述文件***之后存在新建只读快照时,根据更新数据,获取上述新建只读快照的独占数据;根据上述新建只读快照的独占数据,在上述文件***的元数据中更新上述新建只读快照的数据信息。
进一步的,上述装置还包括清空单元197,用于:若在上述新建只读快照之后,再次创建新的只读快照时,则清空上述文件***的元数据中的快照对象域。
进一步的,上述装置还包括第二更新单元198,用于:将目标只读快照回滚至上述文件***之后,当接收到更新上述文件***中的数据的指示时,根据在上述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将目标只读快照回滚至上述文件***之后不存在新建只读快照时,根据上述更新数据,确定目标只读快照的独占数据;根据目标只读快照的独占数据,在目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新目标只读快照的数据信息。
基于上述技术方案,参阅图20所示,本发明提供一种只读快照回滚设备,包括收发器200,处理器201,其中:
收发器200,用于接收只读快照回滚指示,只读快照更新指示,并将该只读快照回滚指示发送至处理器201;
处理器201,用于:接收收发器200发送的只读快照回滚指示,并获取所述只读快照回滚指示中携带的目标只读快照的标识,根据所述目标只读快照的标识读取所述目标只读快照的根以及所述目标只读快照对应的创建时刻;其中,所述只读快照为某个时刻文件***的映像;将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***;以及保留所述目标只读快照对应的创建时刻之后所有创建时刻的只读快照;获取所述目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据;获取所述元数据中所述目标只读快照的独占数据信息;删除所述元数据中所述目标只读快照的独占数据信息。
进一步的,处理器201,还用于:读取文件***的元数据,以及所述文件***中最后一次被创建的只读快照对应的创建时刻;根据所述文件***的元数据,若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***存在更新数据时,基于所述更新数据创建预设只读快照;若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***不存在更新数据时,将所述最后一次被创建的只读快照作为预设只读快照。
可选的,处理器201,具体用于:将文件***的根替换为所述目标只读快照的根;并将所述目标只读快照的数据信息存储至所述文件***的元数据中,令所述目标只读快照回滚至所述文件***。
进一步的,收发器200,还用于:接收只读快照删除指示,并将该只读快照删除指示发送至处理器201;
进一步的,处理器201,还用于:接收收发器200发送的只读快照删除指示,根据所述删除只读快照指示,获取待删除只读快照的标识;并根据所述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若是,则遍历所述待删除只读快照,并删除所述待删除只读快照的独占数据;否则,根据所述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取所述待删除只读快照的独占数据,并删除所述待删除只读快照的独占数据,以及删除所述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中所述待删除只读快照的独占数据信息。
进一步的,收发器200,还用于:接收更新所述文件***中的数据的指示,并将更新所述文件***中的数据的指示发送至处理器201;
进一步的,处理器201,还用于:接收收发器200发送的更新所述文件***中的数据的指示,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后存在新建只读快照时,根据更新数据,获取所述新建只读快照的独占数据;根据所述新建只读快照的独占数据,在所述文件***的元数据中更新所述新建只读快照的数据信息。
进一步的,处理器201,还用于:若在所述新建只读快照之后,再次创建新的只读快照时,则清空所述文件***的元数据中的快照对象域。
进一步的,处理器201,还用于:将所述目标只读快照回滚至所述文件***之后,当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后不存在新建只读快照时,根据所述更新数据,确定所述目标只读快照的独占数据;根据所述目标只读快照的独占数据,在所述目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新所述目标只读快照的数据信息。
综上所述,本发明实施例中,当接收到只读快照回滚指示后,获取只读快照回滚指示中携带的目标只读快照的标识,根据该目标只读快照的标识读取目标只读快照的根以及目标只读快照对应的创建时刻,将文件***的根替换为目标只读快照的根,令目标只读快照回滚至文件***,并保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,以及获取目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据,在上述元数据中获取目标只读快照的独占数据信息后,删除上述元数据中目标只读快照的独占数据信息。采用本发明技术方案,根据用户指示实现目标只读快照回滚至文件***之后,保留目标只读快照对应的创建时刻之后所有创建时刻的只读快照,有效防止用户的误操作所导致的数据无法恢复,且在只读快照回滚之后,用户可以迅速获取所需要的只读快照,从而有效提高了***的可操作性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种只读快照回滚方法,其特征在于,包括:
接收只读快照回滚指示;
获取所述只读快照回滚指示中携带的目标只读快照的标识,根据所述目标只读快照的标识,读取所述目标只读快照的根以及所述目标只读快照对应的创建时刻,将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***;并
保留所述目标只读快照对应的创建时刻之后所有创建时刻的只读快照;以及
获取所述目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据,在所述元数据中获取所述目标只读快照的独占数据信息后,删除所述元数据中所述目标只读快照的独占数据信息;其中,所述只读快照为某个时刻文件***的映像,所述独占数据信息为所述目标只读快照创建时刻的数据信息。
2.如权利要求1所述的方法,其特征在于,将文件***的根替换为所述目标只读快照的根之前,进一步包括:
读取文件***的元数据,以及所述文件***中最后一次被创建的只读快照对应的创建时刻;
根据所述文件***的元数据,若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***存在更新数据时,基于所述更新数据创建预设只读快照;若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***不存在更新数据时,将所述最后一次被创建的只读快照作为预设只读快照。
3.如权利要求2所述的方法,其特征在于,将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***,具体包括:
将文件***的根替换为所述目标只读快照的根;并
将所述目标只读快照的数据信息存储至所述文件***的元数据中,令所述目标只读快照回滚至所述文件***。
4.如权利要求2或3所述的方法,其特征在于,将所述目标只读快照回滚至所述文件***之后,进一步包括:
当接收到删除只读快照指示时,根据所述删除只读快照指示,获取待删除只读快照的标识;并
根据所述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;
若是,则遍历所述待删除只读快照,并删除所述待删除只读快照的独占数据;
否则,根据所述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取所述待删除只读快照的独占数据,并
删除所述待删除只读快照的独占数据,以及删除所述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中所述待删除只读快照的独占数据信息。
5.如权利要求2或3所述的方法,其特征在于,将所述目标只读快照回滚至所述文件***之后,进一步包括:
当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后存在新建只读快照时,根据更新数据,获取所述新建只读快照的独占数据;
根据所述新建只读快照的独占数据,在所述文件***的元数据中更新所述新建只读快照的数据信息。
6.如权利要求5所述的方法,其特征在于,进一步包括:
若在所述新建只读快照之后,再次创建新的只读快照时,则清空所述文件***的元数据中的快照对象域。
7.如权利要求2或3所述的方法,其特征在于,将所述目标只读快照回滚至所述文件***之后,进一步包括:
当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后不存在新建只读快照时,根据所述更新数据,确定所述目标只读快照的独占数据;
根据所述目标只读快照的独占数据,在所述目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新所述目标只读快照的数据信息。
8.一种只读快照回滚装置,其特征在于,包括:
接收单元,用于接收只读快照回滚指示,并将所述只读快照回滚指示发送至获取单元;
获取单元,用于接收所述接收单元发送的只读快照回滚指示,并获取所述只读快照回滚指示中携带的目标只读快照的标识,根据所述目标只读快照的标识,读取所述目标只读快照的根以及所述目标只读快照对应的创建时刻;其中,所述只读快照为某个时刻文件***的映像,所述独占数据信息为所述目标只读快照创建时刻的数据信息;并将所述目标只读快照的根以及所述目标只读快照对应的创建时刻发送至控制单元,以及将所述目标只读快照对应的创建时刻发送至第一删除单元;
控制单元,用于接收所述获取单元发送的所述目标只读快照的根以及所述目标只读快照对应的创建时刻,并将文件***的根替换为所述目标只读快照的根,令所述目标只读快照回滚至所述文件***;以及保留所述目标只读快照对应的创建时刻之后所有创建时刻的只读快照;
第一删除单元,用于接收所述获取单元发送的所述只读快照对应的创建时刻,并获取所述目标只读快照对应的创建时刻之后的下一个创建时刻只读快照的元数据;获取所述元数据中所述目标只读快照的独占数据信息;删除所述元数据中所述目标只读快照的独占数据信息。
9.如权利要求8所述的装置,其特征在于,还包括预设只读快照创建单元,用于:
读取文件***的元数据,以及所述文件***中最后一次被创建的只读快照对应的创建时刻;根据所述文件***的元数据,若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***存在更新数据时,基于所述更新数据创建预设只读快照;若检测所述最后一次被创建的只读快照对应的创建时刻之后所述文件***不存在更新数据时,将所述最后一次被创建的只读快照作为预设只读快照。
10.如权利要求9所述的装置,其特征在于,所述控制单元,具体用于:
将文件***的根替换为所述目标只读快照的根;并将所述目标只读快照的数据信息存储至所述文件***的元数据中,令所述目标只读快照回滚至所述文件***。
11.如权利要求9或10所述的装置,其特征在于,还包括第二删除单元,用于:
当接收到删除只读快照指示时,根据所述删除只读快照指示,获取待删除只读快照的标识;并根据所述待删除只读快照的标识,检测待删除只读快照是否为预设只读快照;若是,则遍历所述待删除只读快照,并删除所述待删除只读快照的独占数据;否则,根据所述待删除只读快照对应的创建时刻的下一个创建时刻只读快照的元数据,获取所述待删除只读快照的独占数据,并删除所述待删除只读快照的独占数据,以及删除所述待删除只读快照对应的创建时刻之后下一个创建时刻只读快照的元数据中所述待删除只读快照的独占数据信息。
12.如权利要求9或10所述的装置,其特征在于,还包括第一更新单元,用于:
当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后存在新建只读快照时,根据更新数据,获取所述新建只读快照的独占数据;根据所述新建只读快照的独占数据,在所述文件***的元数据中更新所述新建只读快照的数据信息。
13.如权利要求12所述的装置,其特征在于,还包括清空单元,用于:
若在所述新建只读快照之后,再次创建新的只读快照时,则清空所述文件***的元数据中的快照对象域。
14.如权利要求9或10所述的装置,其特征在于,还包括第二更新单元,用于:
将所述目标只读快照回滚至所述文件***之后,当接收到更新所述文件***中的数据的指示时,根据在所述文件***的元数据中创建的快照对象域记录的目标只读快照的标识,当检测在将所述目标只读快照回滚至所述文件***之后不存在新建只读快照时,根据所述更新数据,确定所述目标只读快照的独占数据;根据所述目标只读快照的独占数据,在所述目标只读快照对应的创建时刻的下一个创建时刻只读快照的元数据中更新所述目标只读快照的数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310611326.3A CN103645967B (zh) | 2013-11-26 | 2013-11-26 | 一种只读快照回滚方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310611326.3A CN103645967B (zh) | 2013-11-26 | 2013-11-26 | 一种只读快照回滚方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645967A CN103645967A (zh) | 2014-03-19 |
CN103645967B true CN103645967B (zh) | 2016-06-22 |
Family
ID=50251188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310611326.3A Active CN103645967B (zh) | 2013-11-26 | 2013-11-26 | 一种只读快照回滚方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645967B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815091B (zh) * | 2015-11-27 | 2020-02-14 | 成都华为技术有限公司 | 同步续传方法、从端设备及*** |
CN108572986B (zh) * | 2017-03-13 | 2022-05-17 | 华为技术有限公司 | 一种数据更新的方法及节点设备 |
CN108255638B (zh) * | 2017-06-29 | 2021-05-28 | 新华三技术有限公司 | 一种快照回滚方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419564A (zh) * | 2008-12-11 | 2009-04-29 | 杭州华三通信技术有限公司 | 一种采用快照恢复数据的方法和装置 |
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
CN102594849A (zh) * | 2011-01-06 | 2012-07-18 | 阿里巴巴集团控股有限公司 | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 |
-
2013
- 2013-11-26 CN CN201310611326.3A patent/CN103645967B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831565B2 (en) * | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
CN101419564A (zh) * | 2008-12-11 | 2009-04-29 | 杭州华三通信技术有限公司 | 一种采用快照恢复数据的方法和装置 |
CN102594849A (zh) * | 2011-01-06 | 2012-07-18 | 阿里巴巴集团控股有限公司 | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 |
Non-Patent Citations (1)
Title |
---|
ZFS文件***Snapshot技术的分析;倪琴琴 等;《计算机教育》;20090731(第14期);141-143 * |
Also Published As
Publication number | Publication date |
---|---|
CN103645967A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230117542A1 (en) | Remote Data Replication Method and System | |
US20180004764A1 (en) | Efficient data synchronization for storage containers | |
CN107045422B (zh) | 分布式存储方法和设备 | |
US7934064B1 (en) | System and method for consolidation of backups | |
CN103473277B (zh) | 文件***的快照方法和装置 | |
US9830327B2 (en) | Method, device, node and system for managing file in distributed data warehouse | |
KR101137299B1 (ko) | 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리 | |
US8725695B2 (en) | Storage system and object management method | |
US20150066857A1 (en) | Replication of snapshots and clones | |
US11221921B2 (en) | Method, electronic device and computer readable storage medium for data backup and recovery | |
CN105027070A (zh) | 卷操作的安全性 | |
CN110659254B (zh) | 一种已删除文件恢复方法、装置、设备及可读存储介质 | |
US10970172B2 (en) | Method to recover metadata in a content aware storage system | |
CN106528071A (zh) | 目标代码的选取方法及装置 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN103645967B (zh) | 一种只读快照回滚方法及装置 | |
CN115098447A (zh) | 文件恢复方法、装置、电子设备及可读存储介质 | |
US20080320062A1 (en) | Method of transferring file system, file system transference program, and file system transference device | |
CN105867962A (zh) | ***升级的方法和装置 | |
CN114281779A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN113419897A (zh) | 一种文件处理方法、装置、电子设备及其存储介质 | |
CN115905114B (zh) | 元数据的批量更新方法、***、电子设备及可读存储介质 | |
JP3896077B2 (ja) | 計算機システムおよびファイル管理方法 | |
CN108170372B (zh) | 基于云硬盘的数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |