一种基于文件局部修改的文件快照还原方法
【专利摘要】本发明公开了一种基于文件局部修改的快照还原方法,涉及磁盘还原【技术领域】,该快照还原方法包括以下步骤:对待做快照的原始文件进行分页,分成多个大小一致的页面;对临时变动文件进行分页,分页的大小与原始文件的页面大小一致;对原始文件的页面进行写入操作时,在临时变动文件中创建一个新页面,对原始文件的写入操作转向到临时变动文件的新页面中的对应页内偏移位置;创建内存链表结构,将所述临时变动文件中变动页内偏移串联起来,与原始文件对应页面合并成为虚拟快照文件。本发明的有益效果:采用分页方式进行快照提高寻址速度、建立索引关系减少内存消耗。减少了快照文件的复制,降低数据冗余,提高了文件局部修改快照的处理速度。
【专利说明】一种基于文件局部修改的文件快照还原方法
【技术领域】
[0001]本发明涉及一种计算机文件存储备份技术,特别涉及一种基于文件局部修改的文件快照还原方法。
【背景技术】
[0002]随着云计算,特别是云计算涉及的云存储技术在全球范围的普及,人们的日常生活工作很多方面都涉及到云存储技术。因此对云存储技术涉及的SAN存储区域网络技术的要求也越来越高,SAN存储区域网络作为基础架构在云存储中起重要作用,存储区域网络经常需要做快照将虚拟磁盘在任意的时间点,虚拟磁盘卷进行快速的磁盘备份还原操作。
[0003]当磁盘进行快照的时候,传统做法是写时复制方式(Copy-On-Write),这种写时复制方式需要按原始页面将数据完整拷贝到临时需要在内存中完整建立。一旦快照庞大改动时,会对系统内存造成比较大的资源消耗,最终影响系统响应速度。更严重的会造成系统的负载过高而产生异常崩溃。
[0004]如图1所示,传统的磁盘快照的基本原理是当原始文件开始发生修改的时候,将原始文件原样复制一份,作为快照文件的基础,然后将文件所有新的改动都产生在快照文件上,比如内容修改、文件内容增长、文件内容缩减等都完全在快照文件上操作。当对快照文件的所有操作完成后,针对快照文件可以有两种操作方式:“合并”操作,则将快照文件替换原始文件,这样数据就完全更新;“抛弃”操作,则将快照文件删除,对原始文件所有的文件变动都像不曾发生一样,原始文件内容得以恢复保留。传统的文件快照需要先将原始文件复制,然后在复制的文件上进行修改操作,再将修改操作的快照文件替换原始文件或删除快照文件来保留原始文件,这样造成数据冗余,占用存储空间大。
[0005]综上所述,有必要提供一种用磁盘空间的消耗来缓解内存空间消耗,基于文件局部修改的快照还原方法可以减少数据冗余,提高文件局部修改快照的处理速度。
【发明内容】
[0006]有鉴于此,本发明的目的在于提供一种基于文件局部修改的快照还原方法,减少原始文件的复制,降低数据冗余,提高文件局部修改快照的处理速度。
[0007]本发明通过以下技术手段解决上述技术问题:
[0008]本发明包括一种基于文件局部修改的快照还原方法,具体包括以下步骤:
[0009]对待做快照的原始文件进行分页,分成多个大小一致的页面;
[0010]对临时变动文件进行分页,分页的大小与所述原始文件的页面大小一致;
[0011]对所述原始文件的页面进行写入操作时,在所述临时变动文件中创建一个新页面,对所述原始文件的写入操作转向到所述临时变动文件的新页面中的对应页内偏移位置;
[0012]创建内存链表结构,将所述临时变动文件中变动页内偏移串联起来,与原始文件对应页面合并成为虚拟快照文件;[0013]当需要对所述原始文件数据进行修改时,对所述虚拟快照文件进行合并操作;
[0014]或当需要恢复到所述原始文件内容时,对所述虚拟快照文件进行抛弃操作。
[0015]进一步,所述对待做快照的原始文件进行分页,分成每个页面为1024字节的数据块;
[0016]进一步,所述对待做快照的原始文件进行分页,分成每个页面为2048字节的数据块;
[0017]进一步,所述对虚拟快照文件进行合并的步骤为:
[0018]寻找与所述原始文件分页对应的临时变动文件分页;
[0019]找到与所述原始文件分页对应的临时变动文件分页后,用所述临时变动文件覆盖所述原始文件;
[0020]所述临时变动文件覆盖所述原始文件后,清空所述临时变动文件,所述原始文件的局部修改代替所述原始文件;
[0021]进一步,所述对虚拟快照文件进行抛弃的步骤为:
[0022]寻找与所述原始文件分页对应的临时变动文件分页;
[0023]找到与所述原始文件分页对应的临时变动文件分页后,将所述临时变动文件的页内偏移内存结构逐一删除;
[0024]删除所述临时变动文件,虚拟快照文件解构,所述原始文件局部修改丢失,所述原始文件还原到原始内容。
[0025]本发明的有益效果:本发明采用磁盘空间的消耗来缓解内存空间消耗,采用分页方式进行快照可以提高寻址速度、建立索引关系减少内存消耗。本发明减少了快照文件的读取和复制,降低数据冗余,内存操作代替磁盘操作,提高了文件局部修改快照的处理速度。
【专利附图】
【附图说明】
[0026]下面结合附图和实施例对本发明作进一步描述。
[0027]图1为传统磁盘快照原理示意图;
[0028]图2为本发明快照还原的原理示意图;
[0029]图3为本发明的工作流程图。
【具体实施方式】
[0030]以下将结合附图对本发明进行详细说明,如图2所示:
[0031]本发明的一种基于文件局部修改的快照还原方法,其基本原理是当原始文件要发生修改的时候,将所有的改动写入一个临时变动文件中,利用内存数据结构将临时变动文件与原始文件“虚拟”的相加建立快照,给系统形成一个虚拟快照文件的抽象文件。比如内容修改、文件内容增长、文件内容缩减等都完全在临时变动文件和内存数据结构上操作,不会对原始文件有任何实际的改动操作。当对快照文件所有操作完成后,针对快照文件有两种操作方式:当需要对原始文件的数据进行修改时,进行“合并”操作,则将原始文件与临时变动文件在内存数据结构的辅助下的虚拟快照文件写实为实际文件,数据就完全更新;当需要恢复到原始文件内容时,进行“抛弃”操作,只需要将临时变动文件和内存数据结构删除,原始文件所有的文件变动都像不曾发生一样,原始文件内容得以恢复保留。
[0032]如图3所示,基于文件局部修改的快照还原方法,具体包括以下步骤:
[0033]将要做快照的原始文件以某一固定大小分页,每个页面为1024字节或者2048字节大小的数据块,临时变动文件也采用与原始文件一致的分页。临时变动文件分页方式分配空间,在临时变动文件任一具体分页内,对原始文件的页面内改动按页内偏移方式写入变动数据。内存数据结构将临时变动文件分页变动数据与对应原始文件页面改动偏移相合并,提供给上层快照读写程序一个完整的虚拟快照文件的视界。分页的作用是便于建立原始文件写入位置的页号与临时变动文件的页号之间的索引对应关系。
[0034]当原始文件某个页面产生写入操作的时候,就在临时变动文件创建一个新页面,将对原始文件的写入操作转向到临时变动文件新页面中的对应页内偏移位置。
[0035]以临时变动区间为单位,为变动页面创建内存链表结构,将临时变动文件分页变动数据与对应原始文件页面改动偏移相合并,与原始文件对应页面合并成虚拟快照文件。
[0036]当需要对原始文件的数据进行修改时,“合并”操作发生,以原始文件分页与对应临时变动文件分页虚拟快照文件为依据,虚拟快照文件覆盖原始文件,并清空临时变动文件,则虚拟快照文件合并操作完毕。
[0037]当需要恢复到原始文件内容时,“抛弃”操作发生,按原始文件分页与对应临时变动文件分页内存索引对应关系为线索,将临时变动文件的页内偏移内存结构逐一删除,最后删除临时变动文件,则虚拟快照文件解构,原始文件局部修改丢失,还原原始内容。
[0038]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种基于文件局部修改的快照还原方法,其特征在于:包括以下步骤: 对待做快照的原始文件进行分页,分成多个大小一致的页面; 对临时变动文件进行分页,分页的大小与所述原始文件的页面大小一致; 对所述原始文件的页面进行写入操作时,在所述临时变动文件中创建一个新页面,对所述原始文件的写入操作转向到所述临时变动文件的新页面中的对应页内偏移位置; 创建内存链表结构,将所述临时变动文件中变动页内偏移串联起来,与原始文件对应页面合并成为虚拟快照文件; 当需要对所述原始文件数据进行修改时,对所述虚拟快照文件进行合并操作; 或当需要恢复到所述原始文件内容时,对所述虚拟快照文件进行抛弃操作。
2.如权利要求1所述的基于文件局部修改的快照还原方法,其特征在于:所述对待做快照的原始文件进行分页,分成每个页面为1024字节的数据块。
3.如权利要求1所述的基于文件局部修改的快照还原方法,其特征在于:所述对待做快照的原始文件进行分页,分成每个页面为2048字节的数据块。
4.如权利要求1所述的基于文件局部修改的快照还原方法,其特征在于:所述对虚拟快照文件进行合并的步骤为: 寻找与所述原始文件分页对应的临时变动文件分页; 找到与所述原始文件分页对应的临时变动文件分页后,用所述临时变动文件覆盖所述原始文件; 所述临时变动文件覆盖所述原始文件后,清空所述临时变动文件,所述原始文件的局部修改代替所述原始文件。
5.如权利要求1所述的基于文件局部修改的快照还原方法,其特征在于:所述对虚拟快照文件进行抛弃的步骤为: 寻找与所述原始文件分页对应的临时变动文件分页; 找到与所述原始文件分页对应的临时变动文件分页后,将所述临时变动文件的页内偏移内存结构逐一删除; 删除所述临时变动文件,虚拟快照文件解构,所述原始文件局部修改丢失,所述原始文件还原到原始内容。
【文档编号】G06F11/14GK103955413SQ201410150960
【公开日】2014年7月30日 申请日期:2014年4月11日 优先权日:2014年4月11日
【发明者】万春, 姚重屹, 钟璞星, 万鹏 申请人:重庆纳跃信息科技有限公司