CN117909287A - 快照方法、电子设备、计算机程序产品及可读存储介质 - Google Patents
快照方法、电子设备、计算机程序产品及可读存储介质 Download PDFInfo
- Publication number
- CN117909287A CN117909287A CN202211236869.7A CN202211236869A CN117909287A CN 117909287 A CN117909287 A CN 117909287A CN 202211236869 A CN202211236869 A CN 202211236869A CN 117909287 A CN117909287 A CN 117909287A
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- data
- image
- writing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004590 computer program Methods 0.000 title claims abstract description 12
- 238000004806 packaging method and process Methods 0.000 claims abstract description 38
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000012856 packing Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 22
- 239000010410 layer Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000008014 freezing Effects 0.000 description 6
- 238000007710 freezing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种快照方法、电子设备、计算机程序产品及计算机可读存储介质,涉及终端领域。快照方法包括:响应于针对第一文件的快照请求,生成与第一文件对应的镜像文件;将镜像文件元数据写入至第一预设存储区;将第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至打包文件,镜像文件元数据与打包文件元数据指向不同的物理页,镜像文件数据与打包文件数据指向相同的物理页。本申请将体积较小的文件元数据写入至打包文件,对于体积较大的文件数据则采用写时复制方式将文件数据保存至打包文件,不涉及从存储器件读取文件数据或者将文件数据写入至存储器件,缩短文件快照形成时间,对系统性能影响小。
Description
技术领域
本申请涉及终端领域,尤其涉及一种快照方法、电子设备、计算机程序产品及计算机可读存储介质。
背景技术
现有的操作系统一般都支持通过备份系统来实现备份用户数据,在数据备份过程中,较耗时的流程是产生应用快照,应用快照可以是指保存应用数据在某一瞬间的状态的快照文件。为了确保快照文件状态的一致性,在产生应用快照期间,通常会不建议用户使用应用,或者禁止用户使用应用,避免应用的快照文件中同时包含新、旧状态的文件数据。为了提高用户的使用体验,有必要尽可能地将应用快照时间缩短。
现有的一种应用快照方式如图1所示,通过遍历应用的原始应用文件,读取各个原始应用文件的元数据和数据,从内核空间写入至位于用户空间的暂存区,再将暂存区保存的元数据和数据写入至打包文件。即对原始应用文件的元数据/数据进行的快照涉及两次内核空间和用户空间之间的数据拷贝,使得应用快照的时间过长,且数据拷贝占用的系统资源较大,对系统性能影响大,影响用户的使用体验。
发明内容
有鉴于此,有必要提供一种快照方法,解决现有技术中应用快照形成时间过长,对系统性能影响大的问题。
本申请实施例第一方面公开了一种快照方法,包括:响应于针对第一文件的快照请求,生成与第一文件对应的镜像文件;将镜像文件元数据写入至第一预设存储区;将第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至打包文件,镜像文件元数据与打包文件元数据指向不同的物理页,镜像文件数据与打包文件数据指向相同的物理页。
采用上述技术方案,对文件进行快照时,通过生成与文件对应的镜像文件,实现快速对文件状态进行冻结,后续再基于镜像文件生成打包文件,使得用户在镜像文件生成之后可以正常对文件进行操作,不像现有打包文件生成方案需在生成打包文件之前一直禁止用户操作文件,可以提升用户使用体验,对于体积较小的文件元数据写入打包文件的方式可以为从内核空间读取镜像文件元数据保存至用户空间的第一预设存储区,例如第一预设存储区为用户空间的元数据暂存区,再将第一预设存储区保存的镜像文件元数据写入至打包文件,此种文件元数据写入方式,镜像文件元数据与打包文件元数据指向不同的物理页,对于体积较大的文件数据写入打包文件的方式可以为在内核空间通过对镜像文件数据进行写时复制,将镜像文件数据保存至打包文件,此种文件数据写入方式,镜像文件数据与打包文件数据指向相同的物理页,由于对镜像文件数据采用写时复制方式保存至打包文件,不涉及对镜像文件数据的拷贝、写入操作,此过程无需从存储器件读取镜像文件数据或者将镜像文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
在一些实施例中,镜像文件元数据与第一文件元数据指向不同的物理页,镜像文件数据与第一文件数据指向相同的物理页。
采用上述技术方案,镜像文件元数据与第一文件元数据亦指向不同的物理页,镜像文件数据、第一文件数据及答辩文件数据均指向相同的物理页。对第一文件数据采用写时复制方式保存至镜像文件,对镜像文件数据采用写时复制方式保存至打包文件,均不涉及对文件数据的拷贝、写入操作,此过程无需从存储器件读取文件数据或者将文件数据写入至存储器件,缩短文件快照形成时间,对系统性能影响小。
在一些实施例中,生成与第一文件对应的镜像文件,包括:将第一文件元数据写入至镜像文件,及基于写时复制机制将第一文件数据保存至镜像文件。
采用上述技术方案,通过将体积较小的第一文件元数据写入至镜像文件,对于体积较大的第一文件数据,利用写时复制机制将第一文件数据保存至镜像文件,由于对第一文件数据采用写时复制方式保存至镜像文件,不涉及对第一文件数据的拷贝、写入操作,此过程无需从存储器件读取第一文件数据或者将第一文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
在一些实施例中,将第一文件元数据写入至镜像文件,及基于写时复制机制将第一文件数据保存至镜像文件,包括:新建第一空白文件,将第一文件元数据写入至第一空白文件;对第一文件数据进行写时复制,将第一文件数据保存至写入有第一文件元数据的第一空白文件,得到与第一文件对应的镜像文件。
采用上述技术方案,通过构建空白文件,将第一文件元数据写入至空白文件,对第一文件数据进行写时复制,以将第一文件数据保存至写入有第一文件元数据的空白文件,保存有第一文件元数据与第一文件元数据的空白文件作为与第一文件对应的镜像文件,镜像文件与第一文件具有相同的元数据与数据,镜像文件的索引结构与第一文件的索引结构指向相同的物理块,共享物理块中存储的数据。
在一些实施例中,将第一文件元数据写入至镜像文件,包括:将第一文件元数据写入至第二预设存储区;将第二预设存储区保存的第一文件元数据写入至镜像文件。
采用上述技术方案,对于体积较小的第一文件元数据写入镜像文件的方式可以为从内核空间读取第一文件元数据保存至用户空间的第二预设存储区,例如第二预设存储区为用户空间的元数据暂存区,再将第二预设存储区保存的第一文件元数据写入至镜像文件,第一文件元数据与镜像文件元数据指向不同的物理页。
在一些实施例中,第二预设存储区位于用户空间,基于写时复制机制将第一文件数据保存至镜像文件,包括:在内核空间对第一文件数据进行写时复制,将第一文件数据保存至镜像文件。
采用上述技术方案,对于体积较小的第一文件元数据写入镜像文件的方式可以为从内核空间读取第一文件元数据保存至用户空间的第二预设存储区,再将第二预设存储区保存的第一文件元数据写入至镜像文件,对于体积较大的第一文件数据写入镜像文件的方式可以为在内核空间通过对第一文件数据进行写时复制,将第一文件数据保存至镜像文件,由于对第一文件数据采用写时复制方式保存至镜像文件,不涉及对第一文件数据的拷贝、写入操作,此过程无需从存储器件读取第一文件数据或者将第一文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
在一些实施例中,第一文件包括多个子文件,与第一文件对应的镜像文件包括多个镜像子文件,将镜像文件元数据写入至第一预设存储区,包括:基于预设打包标准格式重新组织多个镜像子文件元数据的物理结构;将重新组织后的多个镜像子文件元数据写入至第一预设存储区。
采用上述技术方案,多个镜像子文件的元数据与数据的物理结构可以由文件系统进行设定,一般不会依照元数据与数据的关联关系进行排序,通过对多个镜像子文件的元数据按照预设打包标准格式重新组织各个镜像子文件的元数据的物理结构,例如预设打包标准格式为POSIX格式,并将重新组织后的元数据从内核空间写入到位于用户空间的第一预设存储区,使得后续打包文件中的元数据与数据可以依照元数据与数据的关联关系进行排序,例如使得打包文件具有如下的物理结构:[文件1元数据][文件1数据][文件2元数据][文件2数据]…[文件N元数据][文件N数据]。
在一些实施例中,生成与第一文件对应的镜像文件,包括:调用预设内核接口对第一文件元数据进行拷贝及对第一文件数据进行写时复制,得到与第一文件对应的镜像文件。
采用上述技术方案,可以定制化一个内核接口,用于实现拷贝第一文件元数据以及对第一文件数据进行写时复制的功能,得到与第一文件对应的镜像文件。
在一些实施例中,调用预设内核接口对第一文件元数据进行拷贝及对第一文件数据进行写时复制,包括:调用预设内核接口在内核空间对第一文件元数据进行拷贝及对第一文件数据进行写时复制。
采用上述技术方案,可以定制化一个内核接口,用于实现在内核空间完成拷贝第一文件元数据以及对第一文件数据进行写时复制的功能,调用内核接口可以实现在内核空间一次性完成对第一文件元数据进行拷贝及对第一文件数据进行写时复制,相比在用户空间设置元数据暂存区暂存文件元数据会涉及两次内核空间和用户空间之间的元数据拷贝,通过调用内核接口在内核空间拷贝文件的元数据花费时间更短。
在一些实施例中,第一文件包括多个子文件,调用预设内核接口对第一文件元数据进行拷贝及对第一文件数据进行写时复制,包括:在用户空间搜索待镜像的子文件;调用预设内核接口在内核空间对待镜像的子文件元数据进行拷贝及对待镜像的子文件数据进行写时复制。
采用上述技术方案,可以在用户空间实现搜索待镜像的子文件,在内核空间调用内核接口对待镜像的子文件元数据进行拷贝及对待镜像的子文件数据进行写时复制,得到第一文件对应的镜像文件,相比在内核空间实现待镜像的子文件的搜索与生成各个子文件的镜像文件的功能,降低开发难度与维护成本。
在一些实施例中,第一预设存储区位于用户空间,基于写时复制机制将镜像文件数据保存至打包文件,包括:在内核空间对镜像文件数据进行写时复制,将镜像文件数据保存至打包文件。
采用上述技术方案,通过将体积较小的镜像文件元数据写入至打包文件,对于体积较大的镜像文件数据,利用写时复制机制将镜像文件数据保存至打包文件,由于对镜像文件数据采用写时复制方式保存至打包文件,不涉及对镜像文件数据的拷贝、写入操作,此过程无需从存储器件读取镜像文件数据或者将镜像文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
在一些实施例中,将第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至打包文件,包括:新建第二空白文件,将第一预设存储区保存的镜像文件元数据写入至第二空白文件;对所述镜像文件数据进行写时复制,将镜像文件数据保存至写入有镜像文件元数据的第二空白文件,得到打包文件。
采用上述技术方案,通过构建空白文件,将镜像文件元数据写入至空白文件,对镜像文件数据进行写时复制,以将镜像文件数据保存至写入有镜像文件元数据的空白文件,保存有镜像文件元数据与镜像文件元数据的空白文件作为与第一文件对应的打包文件,镜像文件与打包文件具有相同的元数据与数据,镜像文件的索引结构与打包文件的索引结构指向相同的物理块,共享物理块中存储的数据。
在一些实施例中,第一文件为第一应用的所有文件,生成与第一文件对应的镜像文件之后,还包括:输出与第一应用关联的提示信息,提示信息用于提示可对第一应用进行操作。
采用上述技术方案,当得到第一应用对应的镜像文件之后,基于第一应用的镜像文件来生成与第一应用对应的打包文件,可以使得用户在第一文件对应的镜像文件生成之后可以正常使用第一应用,例如可以输出提示信息,以提醒用户可以正常使用第一应用,不会导致现有打包文件生成方案存在的问题:在打包文件生成之前,若用户使用第一应用将导致打包文件同时包含新、旧状态的文件,即不像现有打包文件生成方案需在生成打包文件之前一直禁止用户使用第一应用,可以提升用户使用体验。
在一些实施例中,第一文件为第一应用的所有文件,生成与第一文件对应的镜像文件之前,还包括:创建与第一应用的根目录对应的镜像根目录,镜像根目录用于保存镜像文件。
采用上述技术方案,对第一应用进行快照过程中,可以获取第一应用的根目录的信息,创建与第一应用的根目录对应的镜像根目录,镜像根目录可用于保存第一应用的镜像文件,便于后续可以基于镜像根目录下的目录与文件生成打包文件。
在一些实施例中,镜像根目录与第一应用的根目录相同,或者镜像根目录为第一应用的根目录的子集。
采用上述技术方案,第一应用的根目录与第一应用的镜像根目录可以是相同的,即第一应用的根目录与第一应用的镜像根目录下的目录与文件均相同,第一应用的镜像根目录也可以是第一应用的根目录的子集,即第一应用的镜像根目录具有第一应用的根目录的部分目录与文件。
第二方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面所述的快照方法。
第三方面,本申请实施例提供一种电子设备,电子设备包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中的指令,使得电子设备执行如第一方面所述的快照方法。
第四方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备(如计算机)上运行时,使得电子设备执行如第一方面所述的快照方法。
第五方面,提供一种装置,所述装置具有实现上述第一方面所提供的方法中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的电子设备,第四方面所述的计算机程序产品,第五方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为现有的电子设备实现应用快照的架构示意图;
图2为本申请一实施例提供的一种电子设备的结构示意图;
图3为本申请一实施例提供的一种电子设备的软件结构示意图;
图4为本申请一实施例提供的快照方法的应用场景示意图;
图5为本申请一实施例提供的电子设备实现应用快照的架构示意图;
图6a为本申请一实施例提供的第一APP的根目录结构示意图;
图6b为本申请一实施例提供的第一APP的镜像根目录结构示意图;
图7为本申请另一实施例提供的电子设备实现应用快照的架构示意图;
图8为本申请一实施例提供的第一APP的原始文件、镜像文件及打包文件共享物理块存储的文件数据的示意图;
图9为本申请一实施例提供的快照方法的流程示意图;
图10为本申请一实施例提供的快照装置的功能模块示意图。
具体实施方式
需要说明的是,本申请中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
操作系统(Operation System,OS):管理计算机硬件与软件资源的计算机程序。
内核:建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备输入/输出(Input/Output,I/O)等。
用户空间:也称用户态,上层应用程序的活动空间,应用程序的执行需依托于内核提供的资源,例如CPU资源、存储资源、I/O资源等。
内核空间:也称内核态,用于控制计算机的硬件资源,并提供上层应用程序运行的环境。
快照:是某个数据集在某一特定时刻的镜像,也称为即时拷贝,它是这个数据集的一个完整可用的副本。
写时复制(copy on write,COW):也可称写时拷贝,是计算机程序设计领域中的一种优化策略,其核心思想是:如果有多个调用者同时要求相同的资源,它们会共同获取相同的指针指向相同的资源,直到某个调用者视图修改资源内容时,系统才会真正复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的。此做法主要的优点是如果调用者没有修改资源,就不会有副本被创建,因此多个调用者只是读取操作时可以共享同一份资源。
文件系统:是一种存储和组织计算机数据的方法,它使得对计算机数据的访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据,不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放等)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。
现有技术中,对文件进行快照包括文件的元数据进行快照及对文件的数据进行快照。文件的元数据为用于描述文件的数据,文件的元数据可以包括文件名、文件最近修改时间等信息。对文件的元数据进行快照时,可以遵循预设打包标准格式(例如可移植操作系统接口(portable operating system interface of unix,POSIX)格式)重新组织元数据的物理结构,并将标准化后的元数据写入到打包文件。对文件的数据进行快照时,将文件的数据写入打包文件。打包文件可以是指将多个文件或目录保存在一个总的文件,该总的文件称为打包文件。当对文件的元数据或者数据进行快照时,从内核空间读取文件的元数据或者数据会涉及一次从内核空间到用户空间的拷贝,而从用户空间将文件的元数据或者数据写入打包文件又会涉及一次用户空间到内核空间的拷贝,即对文件的元数据或者数据进行快照均涉及两次内核空间和用户空间之间的数据拷贝,内核空间和用户空间之间的数据拷贝需要将磁盘上文件先拷贝到页缓存(page cache),再将页缓存中的文件拷贝到用户的缓存(buffer),用户空间和内核空间之间的数据拷贝则相反,两次内核空间和用户空间之间的数据拷贝花费较长时间,导致文件的快照形成时间过长,且数据拷贝占用的系统资源较大,对系统性能影响大,影响用户的使用体验。若开发一种仅在内核空间实现对文件进行快照的方案,例如通过将原始文件页缓存中的数据拷贝到新文件的页缓存中,或者先将原始文件页缓存中的数据拷贝到临时开辟的缓存,再保存到新文件的页缓存中,上述方案虽然可以避免在对文件的元数据或者数据进行快照涉及内核空间和用户空间之间的数据拷贝的问题,但在纯内核空间实现的文件快照方案,内核开发需要较高的技术积累,开发难度大、调试困难,且内核开发无法使用较高级的编程语言,使用C语言或者汇编语言进行内核开发,开发维护成本又过高。
考虑到文件的元数据的体积在大多数情况下远远小于文件的数据的体积。例如,文件的元数据的体积可能为几K至十几K字节,文件的数据的体积可能为上百M至几个G字节。因此,文件的数据和元数据在内核空间和用户空间之间拷贝所产生的性能开销,主要是由文件的数据在内核空间和用户空间之间拷贝产生的。文件的元数据在内核空间和用户空间之间拷贝产生的性能开销通常很小。
基于此,本申请实施例提供一种快照方法,对于体积较小的文件元数据写入打包文件的方式为从内核空间读取文件的元数据保存至用户空间的元数据暂存区,再将元数据暂存区保存的文件的元数据写入至打包文件,对于体积较大的文件数据写入打包文件的方式为在内核空间通过对文件的数据进行写时复制,将写时复制副本保存至打包文件。由于对文件的数据采用写时复制方式保存至打包文件,不涉及对文件的数据的拷贝、写入操作,此过程无需从存储器件读取文件的数据或者将文件的数据写入至存储器件,文件快照形成时间短,对系统性能影响小,且开发维护成本低。
本申请实施例提供的快照方法,可应用于电子设备中。本申请的电子设备可以包括但不限于手机、可折叠电子设备、平板电脑、个人电脑(personal computer,PC)、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、智能家居设备、车机设备、及智慧城市设备中的至少一种,本申请实施例对电子设备的具体类型不作特殊限制。
在一些实施例中,电子设备还可以通过通信网络与其他电子设备或服务器进行通信。通信网络可以是有线网络,也可以是无线网络。例如,通信网络可以是局域网(localarea networks,LAN),也可以是广域网(wide area networks,WAN),例如互联网。当该通信网络为局域网时,示例性的,该通信网络可以是无线保真(wireless fidelity,Wi-Fi)热点网络、Wi-Fi P2P网络、蓝牙网络、zigbee网络或近场通信(near field communication,NFC)网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(3rd-generation wireless telephone technology,3G)网络、第四代移动通信技术(the4th generation mobile communication technology,4G)网络、第五代移动通信技术(5th-generation mobile communication technology,5G)网络、未来演进的公共陆地移动网络(public land mobile network,PLMN)或因特网等。
在一些实施例中,电子设备可以安装一个或多个APP(Application)。APP可以简称应用,为能够实现某项或多项特定功能的软件程序。例如,即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用、云桌面类应用等等。其中,即时通信类应用,例如可以包括图像拍摄类应用,例如可以包括相机应用(系统相机或第三方相机应用)。视频类应用,例如可以包括华为视频、/>音频类应用,例如可以包括华为音乐、以下实施例中提到的应用,可以是电子设备出厂时已安装的系统应用,也可以是用户在使用电子设备的过程中从网络下载或从其他电子设备获取的第三方应用。
电子设备包括但不限于搭载Windows/> 或其他操作系统。
图2示意了一种电子设备10的结构示意图。
电子设备10可以包括处理器110,外部存储器接口120,内部存储器121,天线1,天线2,移动通信模块130,无线通信模块140,音频模块150,传感器模块160,摄像模块170,显示屏180等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备10的具体限定。在本申请另一些实施例中,电子设备10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器可以为高速缓冲存储器。所述存储器可以保存处理器110用过或使用频率较高的指令或数据。如果处理器110需要使用所述指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。处理器110可以通过以上至少一种接口连接音频模块、无线通信模块、显示器、摄像头等模块。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备10的结构限定。在本申请另一些实施例中,电子设备10也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备10的无线通信功能可以通过天线1,天线2,移动通信模块130,无线通信模块140,调制解调处理器以及基带处理器等实现。
移动通信模块130可以提供应用在电子设备10上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块130可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。在一些实施例中,移动通信模块130的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块130的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块140可以提供应用在电子设备10上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),蓝牙低功耗(bluetooth low energy,BLE),超宽带(ultra wide band,UWB),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块140可以是集成至少一个通信处理模块的一个或多个器件。
在一些实施例中,电子设备10可以通过无线通信技术与网络和其他电子设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobilecommunications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband codedivision multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenithsatellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备10可以通过GPU,显示屏180,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏180和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
摄像模块170包括摄像头。显示屏180用于显示图像,视频等。显示屏180包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备10可以包括1个或多个显示屏180。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备10的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备10使用过程中所创建的数据等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备10的各种功能方法或数据处理。
音频模块150用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块150还可以用于对音频信号编码和解码。在一些实施例中,音频模块150可以设置于处理器110中,或将音频模块150的部分功能模块设置于处理器110中。
电子设备10的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备10的软件结构。
图3是本申请一实施例的电子设备10的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime,ART)和原生C/C++库,硬件抽象层(HardwareAbstract Layer,HAL)以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,活动管理器,输入管理器等。
窗口管理器提供窗口管理服务(Window Manager Service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入系统的中转站。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
活动管理器可以提供活动管理服务(Activity Manager Service,AMS),AMS可以用于系统组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
输入管理器可以提供输入管理服务(Input Manager Service,IMS),IMS可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
安卓运行时包括核心库和安卓运行时。安卓运行时负责将源代码转换为机器码。安卓运行时主要包括采用提前(ahead or time,AOT)编译技术和及时(just in time,JIT)编译技术。
核心库主要用于提供基本的Java类库的功能,例如基础数据结构、数学、IO、工具、数据库、网络等库。核心库为用户进行安卓应用开发提供了API。
原生C/C++库可以包括多个功能模块。例如:表面管理器(surface manager),媒体框架(Media Framework),libc,OpenGL ES、SQLite、Webkit等。
其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES提供应用程序中2D图形和3D图形的绘制和操作。SQLite为电子设备10的应用程序提供轻量级关系型数据库。
硬件抽象层运行于用户空间(user space),对内核层驱动进行封装,向上层提供调用接口。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合图4,示例性的介绍本申请实施例提供的快照方法的应用场景图。
为便于描述,如图4所示,电子设备10以手机为例进行说明。在该实施例中,电子设备10可以安装有一个或多个APP,用户点击某个APP后,电子设备10可以创建相应的应用进程,应用进程可以实现对应APP的各项功能。
对于电子设备10安装的APP而言,电子设备10建立有用于保存APP文件的根目录。例如,电子设备10安装有华为视频APP,电子设备10建立有用于保存华为视频APP文件的根目录RT1。对华为视频APP文件进行快照可以是指对根目录RT1下的文件数据与文件元数据进行快照。通过对华为视频APP文件进行快照,可以便于后续对华为视频APP文件进行快速的数据恢复,或者将华为视频APP文件迁移到另一个电子设备上(如用户购买的新手机上)。例如,当电子设备10发生华为视频APP运行故障,或者发生华为视频APP文件损坏时,可以基于先前建立的快照快速进行APP文件恢复,实现将华为视频APP恢复到先前进行快照的时间点的状态。又例如,用户具有两个电子设备10(为了便于区分,以下称为第一电子设备与第二电子设备),第一电子设备安装有华为视频APP,第二电子设备未安装有华为视频APP,第一电子设备与第二电子设备建立通信连接,例如第一电子设备与第二电子设备可以通过蓝牙或者无线局域网建立通信连接,通信连接成功之后,可以在第一电子设备上选择需要迁移的数据,例如选中“华为视频APP”,再点击“开始迁移”图标,进而可以实现将华为视频APP文件迁移到第二电子设备上。
如图5所示,为本申请的电子设备实现数据快照的架构示意图。
该实施例中以电子设备10安装的操作系统为基于Linux内核开发的系统为例进行说明。电子设备10可以安装有多个APP,电子设备10安装的APP可以是指电子设备10出厂时已安装的APP,也可以是用户在使用电子设备10的过程中从网络下载或其他电子设备获取的第三方APP。以下以电子设备10安装有第一APP A1,并对第一APP A1的文件进行快照为例进行说明,对第一APP A1的文件进行快照包括对第一APP A1的文件元数据进行快照及对第一APP A1的文件数据进行快照。第一APP A1可以是即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用、云桌面类应用等,本申请对第一APP A1的类型不作限定。
电子设备10建立有用于保存第一APP A1的文件的根目录d_0,电子设备10对第一APP A1的文件进行快照可以是指对根目录d_0下的每个文件进行快照。电子设备10在接收到针对第一APP A1的快照请求时,可以创建根目录d_0的镜像根目录,以下将根目录d_0的镜像根目录称为根目录d_0’,根目录d_0’用于保存第一APP A1的镜像文件。假设根目录d_0的目录结构如图6a所示,创建的根目录d_0’如图6b所示。对于根目录d_0与根目录d_0’而言,若根目录d_0中存在文件f11,文件f11的保存路径为“d_0/d1/d11/f11”,则根目录d_0’亦存在文件f11,根目录d_0’中的文件f11为根目录d_0中的文件f11的镜像文件,根目录d_0’中的文件f11的保存路径为“d_0’/d1/d11/f11”,根目录d_0’中的子目录d1为根目录d_0中的子目录d1的镜像目录,根目录d_0’中的子目录d11为根目录d_0中的子目录d11的镜像目录。
在一些实施例中,对某个根目录创建镜像根目录,镜像根目录用于保存镜像文件,根目录及其镜像根目录可以是相同的(即根目录及其镜像根目录下的目录与文件均相同),或者是镜像根目录是根目录的子集(即镜像根目录具有其根目录的部分目录与文件)。对某个文件创建镜像文件可以是指:新建一个空白文件,将文件的元数据保存至空白文件,文件的元数据可以包括文件名、文件修改时间等,再调用预设克隆接口将文件的数据写时复制至上述保存有文件的元数据的空白文件,从而形成镜像文件,本申请的镜像文件也可以称为克隆文件。
在一些实施例中,电子设备10可以运行有快照程序,快照程序可以响应针对第一APP A1的快照请求,对根目录d_0下的每个文件的数据与元数据进行快照,以将根目录d_0下的每个文件的数据与元数据写入至打包文件PF。例如,第一APP A1包括n个文件f11、f12、…、f1n(n为大于1的正整数),快照程序将第一APP A1的文件f11~f1n的数据与元数据添加至打包文件PF,可以包括如下实现过程。
51、快照程序从文件系统中读取文件f11~f1n的元数据,及将文件f11~f1n的元数据从内核空间保存到用户空间的第一元数据暂存区AR1。
在一些实施例中,文件f11的元数据可以是指用于描述文件f11的数据,文件f1n的元数据可以是指用于描述文件f1n的数据。例如,文件f11的元数据可以包括文件f11的文件名、文件最近修改时间、文件扩展属性等。用户空间的第一元数据暂存区AR1可以是指用户空间中被用作缓冲区(Buffer)的内存物理页。快照程序实现将文件f11~f1n的元数据从内核空间保存到用户空间的第一元数据暂存区AR1具体可以包括:a1、快照程序从磁盘上拷贝文件f11~f1n的元数据到内核空间的页缓存(Page Cache),例如快照程序依次从磁盘上拷贝文件f11~f1n的元数据到内核空间的页缓存,页缓存为内存物理页,或者快照程序通过并行方式从磁盘上拷贝文件f11~f1n的元数据到内核空间的页缓存;a2、快照程序将文件f11~f1n的元数据从页缓存拷贝到用户空间的第一元数据暂存区AR1,例如快照程序依次将文件f11~f1n的元数据从页缓存拷贝到用户空间的第一元数据暂存区AR1,或者快照程序通过并行方式将文件f11~f1n的元数据从页缓存拷贝到用户空间的第一元数据暂存区AR1。
52、快照程序在内核空间对文件f11~f1n的数据进行写时复制,以将文件f11~f1n的数据保存至克隆文件集CF。
在一些实施例中,通过在内核空间对文件f11~f1n的数据进行写时复制,可以实现将文件f11~f1n的数据保存至克隆文件集CF。当第一元数据暂存区AR1保存的文件f11~f1n的元数据被写入至克隆文件集CF之后,即克隆文件集CF具有文件f11~f1n相同的数据与元数据,克隆文件集CF包括与文件f11~f1n对应的镜像文件f11’~f1n’,镜像文件f11’具有与文件f11相同的数据与元数据,镜像文件f1n’具有与文件f1n相同的数据与元数据。镜像文件f11’共享文件f11的数据,镜像文件f1n’共享文件f1n的数据。镜像文件f11’共享文件f11的数据可以是指镜像文件f11’的索引结构与文件f11的索引结构指向相同的物理块,共享物理块中存储的数据。
在一些实施例中,快照程序每次可以对一个文件进行写时复制,实现将该文件的数据保存至克隆文件集CF,直至将所有文件f11~f1n的数据保存至克隆文件集CF。在本申请的实施例中,通过写时复制的方式将文件f11~f1n的数据保存至克隆文件集CF并不涉及在磁盘上对文件f11~f1n的数据进行读/写操作,系统开销小,即此过程无需从存储器件读取文件的数据或者写入文件的数据至存储器件,CPU亦无需执行文件的数据的拷贝操作,对系统性能影响小,耗时短,CPU与存储器件在写时复制时的功耗较低。
53、快照程序将第一元数据暂存区AR1保存的文件f11~f1n的元数据写入至克隆文件集CF。
在一些实施例中,通过将第一元数据暂存区AR1保存的文件f11~f1n的元数据写入至克隆文件集CF,使得克隆文件集CF既与文件f11~f1n具有相同的数据,又与文件f11~f1n具有相同的元数据,进而克隆文件集CF可以用作第一APP A1的文件副本。
在一些实施例中,当得到克隆文件集CF之后,基于克隆文件集CF来生成与第一APPA1对应的打包文件PF,可以使得用户在克隆文件集CF生成之后可以正常使用第一APP A1,不会导致现有打包文件生成方案存在的问题:在打包文件生成之前,若用户使用第一APPA1将导致打包文件同时包含新、旧状态的文件,即不像现有打包文件生成方案需在生成打包文件PF之前一直禁止用户使用第一APP A1,可以提升用户使用体验。
在一些实施例中,电子设备10可以在生成克隆文件集CF之后,输出一提示信息,以提醒用户可以正常使用第一APP A1。
在一些实施例中,快照程序可以通过将文件f11~f1n的元数据从用户空间的第一元数据暂存区AR1拷贝到内核空间的页缓存,来实现将第一元数据暂存区AR1保存的文件f11~f1n的元数据写入至克隆文件集CF。
54、快照程序从克隆文件集CF中读取镜像文件f11’~f1n’的元数据,及对镜像文件f11’~f1n’的元数据进行预处理并保存到用户空间的第二元数据暂存区AR2。
在一些实施例中,文件f11~f1n的元数据与数据的物理结构,或者镜像文件f11’~f1n’的元数据与数据的物理结构由文件系统进行设定,一般不会依照元数据与数据的关联关系进行排序。对镜像文件f11’~f1n’的元数据进行预处理可以是指遵循预设打包标准格式重新组织镜像文件f11’~f1n’的元数据的物理结构,并将处理后的元数据从内核空间写入到位于用户空间的第二元数据暂存区AR2,使得后续打包文件PF中的元数据与数据可以具有如下的物理结构:[文件1元数据][文件1数据][文件2元数据][文件2数据]…[文件N元数据][文件N数据],即依照元数据与数据的关联关系进行排序。例如,可以基于POSIX格式对镜像文件f11’~f1n’的元数据进行处理,处理后的元数据写入到第二元数据暂存区AR2。
在一些实施例中,第一元数据暂存区AR1与第二元数据暂存区AR2也可以是指同一个元数据暂存区,也可以是不同的元数据暂存区,本申请对此不作限定。
55、快照程序将第二元数据暂存区AR2保存的镜像文件f11’~f1n’的元数据写入至打包文件PF。
在一些实施例中,打包文件PF的读写代码逻辑运行在内核空间,快照程序可以通过将镜像文件f11’~f1n’的元数据从用户空间的第二元数据暂存区AR2拷贝到内核空间的页缓存,来实现将第二元数据暂存区AR2保存的镜像文件f11’~f1n’的元数据写入至打包文件PF。
56、快照程序对克隆文件集CF中的镜像文件f11’~f1n’的数据进行写时复制,以将镜像文件f11’~f1n’的数据保存至打包文件PF。
在一些实施例中,通过在内核空间对克隆文件集CF中的镜像文件f11’~f1n’的数据进行写时复制,实现将镜像文件f11’~f1n’的数据保存至打包文件PF,即打包文件PF与克隆文件集CF均共享文件f11~f1n的数据,对镜像文件f11’~f1n’的数据进行写时复制保存至打包文件PF,并不涉及在磁盘上对文件数据进行读/写操作,系统开销小,速度快。例如,快照程序每次可以对一个镜像文件的数据进行写时复制,生成每个镜像文件的数据对应的COW副本,直至将所有镜像文件f11’~f1n’的数据的COW副本保存至打包文件PF。
通过将镜像文件f11’~f1n’的元数据写入至打包文件PF及将镜像文件f11’~f1n’的数据保存至打包文件PF,即可实现将根目录d_0’下的文件的元数据与数据写入至打包文件PF,使得打包文件PF具有与根目录d_0相同的文件元数据与文件数据,使得打包文件PF可以用作第一APP A1的快照文件。
在一些实施例中,生成打包文件PF之后,还可以对打包文件PF进行压缩,以节省打包文件PF所占用的存储空间,且可提升打包文件PF的迁移效率。
在一些实施例中,快照程序也可以在内核空间完成将文件f11~f1n的元数据写入至打包文件PF,例如通过在内核空间设置元数据暂存区,使得快照程序可以从文件系统中读取文件f11~f1n的元数据暂存至内核空间的元数据暂存区,及将内核空间的元数据暂存区保存的文件f11~f1n的元数据写入至克隆文件集CF,快照程序还可以从克隆文件集CF中读取镜像文件f11’~f1n’的元数据暂存至内核空间的元数据暂存区,及将内核空间的元数据暂存区保存的镜像文件f11’~f1n’的元数据写入至打包文件PF。
图7为本申请的电子设备实现数据快照的架构示意图。
该实施例中以电子设备10安装的操作系统为基于Linux内核开发的系统为例进行说明。电子设备10可以安装有多个APP,电子设备10安装的APP可以是指电子设备10出厂时已安装的APP,也可以是用户在使用电子设备10的过程中从网络下载或其他电子设备获取的第三方APP。以下以电子设备10安装有第一APP A1,并对第一APP A1的文件进行快照为例进行说明,对第一APP A1的文件进行快照包括对第一APP A1的文件元数据进行快照及对第一APP A1的文件数据进行快照。第一APP A1可以是即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用、云桌面类应用等,本申请对第一APP A1的类型不作限定。
在一些实施例中,电子设备10可以运行有快照程序,快照程序可以响应针对第一APP A1的快照请求,对第一APP A1的每个文件的数据与元数据进行快照,以将第一APP A1的每个文件的数据与元数据写入至打包文件PF。例如,第一APP A1包括n个文件f11、f12、…、f1n(n为大于1的正整数),快照程序将第一APP A1的文件f11~f1n的数据与元数据添加至打包文件PF,可以包括如下实现过程。
71、快照程序创建第一APP A1的镜像根目录,在用户空间搜索待镜像的文件。
假设电子设备10建立有用于保存文件f11~f1n的根目录d_1,电子设备10对第一APP A1的文件进行快照可以是指对根目录d_1下的每个文件进行快照。电子设备10在接收到针对第一APP A1的快照请求时,可以创建根目录d_1的镜像根目录,以下将根目录d_1的镜像根目录称为根目录d_1’,根目录d_1’用于保存第一APP A1的镜像文件。快照程序可以响应针对第一APP A1的快照请求,对第一APP A1的每个文件的数据与元数据进行快照,例如在用户空间搜索第一APP A1的文件,以实现对第一APP A1的每个文件进行快照,待镜像的文件可以是指第一APP A1中还未建立镜像文件的文件。
72、快照程序调用内核定制化接口对搜索到的文件的元数据进行拷贝及对文件的数据进行写时复制,以在镜像根目录下生成或更新镜像文件,得到克隆文件集CF。
可以在用户空间控制镜像根目录及镜像根目录下的镜像文件的生成,镜像根目录下的镜像文件或目录可以在内核空间生成,通过搜索待镜像的文件或者目录,及调用内核定制化接口拷贝文件的元数据及写时复制文件的数据,实现在镜像根目录生成或更新镜像文件和目录。内核定制化接口可以是指为了实现在内核空间拷贝文件的元数据与对文件的数据进行写时复制而设计的接口。相比图5设置第一元数据暂存区AR1暂存文件f11~f1n的元数据,会涉及两次内核空间和用户空间之间的元数据拷贝,在内核空间拷贝文件的元数据花费时间更短。
通过在用户空间搜索第一APP A1的文件,调用内核定制化接口对搜索到的每个文件的元数据进行拷贝及对文件的数据进行写时复制,得到克隆文件集CF,速度快,系统资源开销小,克隆文件集CF包括与文件f11~f1n对应的镜像文件f11’~f1n’,镜像文件f11’具有与文件f11相同的数据与元数据,镜像文件f1n’具有与文件f1n相同的数据与元数据。镜像文件f11’共享文件f11的数据,镜像文件f1n’共享文件f1n的数据。镜像文件f11’共享文件f11的数据可以是指镜像文件f11’的索引结构与文件f11的索引结构指向相同的物理块,共享物理块中存储的数据。
73、快照程序从克隆文件集CF中读取镜像文件f11’~f1n’的元数据,及对镜像文件f11’~f1n’的元数据进行预处理并保存到用户空间的第一元数据暂存区AR1。
74、快照程序将第一元数据暂存区AR1保存的镜像文件f11’~f1n’的元数据写入至打包文件PF。
75、快照程序对克隆文件集CF中的镜像文件f11’~f1n’的数据进行写时复制,以将镜像文件f11’~f1n’的数据保存至打包文件PF。
如图8所示,假设第一APP A1包括文件f11与文件f12,克隆文件集CF包括与文件f11对应的镜像文件f11’以及与文件f12对应的镜像文件f12’,打包文件PF包括与镜像文件f11’对应的镜像文件f11”以及与镜像文件f12’对应的镜像文件f12”。
文件f11的数据索引结构I11、镜像文件f11’的数据索引结构I12以及镜像文件f11”的数据索引结构I13指向相同的物理块P1、P2,共享物理块P1、P2中存储的文件数据。文件f12的数据索引结构I21、镜像文件f12’的数据索引结构I22以及镜像文件f12”的数据索引结构I23指向相同的物理块P3、P4,共享物理块P3、P4中存储的文件数据。
由文件f11得到镜像文件f11’的过程可以包括:新建第一空白文件,将文件f11的元数据保存至第一空白文件,对文件f11的数据进行写时复制,将文件f11的数据保存至上述保存有文件f11的元数据的第一空白文件,从而形成镜像文件f11’。将文件f11的元数据保存至第一空白文件涉及的操作可以包括从内核空间读取文件f11的元数据并保存至用户空间的元数据暂存区,再将元数据暂存区保存的文件f11的元数据拷贝到内核空间的页缓存,实现将文件f11的元数据保存至第一空白文件,文件f11元数据与镜像文件f11’元数据指向不同的物理页。对文件f11的数据进行写时复制,将文件f11的数据保存至上述保存有文件f11的元数据的第一空白文件涉及的操作可以包括对文件f11的数据进行写时复制生成,将文件f11的数据保存至上述保存有文件f11的元数据的第一空白文件,从而形成镜像文件f11’,文件f11数据与镜像文件f11’数据指向相同的物理页。基于写时复制机制将文件f11的数据保存至上述保存有文件f11的元数据的第一空白文件,并不涉及在磁盘上对文件f11的数据进行读/写操作,系统开销小,即此过程无需从存储器件读取文件f11的数据或者写入文件f11的数据至存储器件,对系统性能影响小,耗时短。
由镜像文件f11’得到镜像文件f11”的过程同样可以包括:新建第二空白文件,将镜像文件f11’的元数据保存至第二空白文件,镜像文件f11’元数据与镜像文件f11”元数据指向不同的物理页,对镜像文件f11’的数据进行写时复制,将镜像文件f11’的数据保存至上述保存有镜像文件f11’的元数据的第二空白文件,从而形成镜像文件f11”。镜像文件f11’数据与镜像文件f11”数据指向相同的物理页。由文件f12得到镜像文件f12’的过程可以包括:新建第三空白文件,将文件f12的元数据保存至第三空白文件,文件f12元数据与镜像文件f12’元数据指向不同的物理页,对文件f12的数据进行写时复制,将文件f12的数据保存至上述保存有文件f12的元数据的第三空白文件,从而形成镜像文件f12’。文件f12数据与镜像文件f12’数据指向相同的物理页。由镜像文件f12’得到镜像文件f12”的过程同样可以包括:新建第四空白文件,将镜像文件f12’的元数据保存至第四空白文件,镜像文件f12’元数据与镜像文件f12”元数据指向不同的物理页,对镜像文件f12’的数据进行写时复制,将镜像文件f12’的数据保存至上述保存有镜像文件f12’的元数据的第四空白文件,从而形成镜像文件f12”。镜像文件f12’数据与镜像文件f12”数据指向相同的物理页。
参照图9所示,本申请一实施例提供一种快照方法,应用于电子设备10。快照方法可以包括:
S91,响应于针对第一文件的快照请求,生成与第一文件对应的镜像文件。
第一文件可以包括第一文件数据(第一文件的数据)与第一文件元数据(第一文件的元数据),镜像文件可以包括镜像文件数据(镜像文件的数据)与镜像文件元数据(镜像文件的元数据)。
在一些实施例中,可以在用户空间设置第二预设存储区,对于体积较小的第一文件元数据写入镜像文件的方式可以为从内核空间读取第一文件元数据保存至用户空间的第二预设存储区,再将第二预设存储区保存的第一文件元数据写入至镜像文件,对于体积较大的第一文件数据写入镜像文件的方式可以为在内核空间通过对第一文件数据进行写时复制,将第一文件数据保存至镜像文件。对于体积较小的第一文件元数据通过写入方式保存至镜像文件,镜像文件元数据与第一文件元数据可以指向不同的物理页,对于体积较大的第一文件数据,利用写时复制机制将第一文件数据保存至镜像文件,镜像文件数据与第一文件数据可以指向相同的物理页。由于对第一文件数据采用写时复制方式保存至镜像文件,不涉及对第一文件数据的拷贝、写入操作,此过程无需从存储器件读取第一文件数据或者将第一文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小。
对于第一文件与于第一文件的镜像文件而言,两个文件共享写时复制的页之后,两个文件共享相同的文件数据,此时对两个文件中的任意一文件的写时复制页进行写操作时,数据将会拷贝到新页,并替换原本写时复制的页。
在一些实施例中,可以通过新建第一空白文件,将第一文件元数据写入至第一空白文件,通过对第一文件数据进行写时复制,以实现将第一文件数据保存至写入有第一文件元数据的第一空白文件,保存有第一文件元数据与第一文件元数据的空白文件可以作为与第一文件对应的镜像文件,镜像文件与第一文件具有相同的元数据与数据,镜像文件的索引结构与第一文件的索引结构指向相同的物理块,共享物理块中存储的数据。
在一些实施例中,还可以通过定制化一个内核接口,内核接口用于实现在内核空间完成拷贝第一文件元数据以及对第一文件数据进行写时复制的功能,进而可以通过调用内核接口实现响应于针对第一文件的快照请求,生成与第一文件对应的镜像文件。通过调用内核接口可以实现在内核空间一次性完成对第一文件元数据进行拷贝及对第一文件数据进行写时复制,相比在用户空间设置元数据暂存区(第二预设存储区)暂存文件元数据会涉及两次内核空间和用户空间之间的元数据拷贝,通过调用内核接口在内核空间拷贝文件的元数据花费时间更短。
若第一文件包括多个子文件,可以在用户空间实现搜索待镜像的子文件,在内核空间调用内核接口对待镜像的子文件元数据进行拷贝及对待镜像的子文件数据进行写时复制,得到第一文件对应的镜像文件,相比在内核空间实现待镜像的子文件的搜索与生成各个子文件的镜像文件的功能,降低开发难度与维护成本。
S92,将镜像文件元数据写入至第一预设存储区。
在一些实施例中,第一预设存储区可以位于用户空间,可以从内核空间读取镜像文件元数据写入至位于用户空间的第一预设存储区。若第一文件包括多个子文件,与第一文件对应的镜像文件包括多个镜像子文件,可以基于预设打包标准格式重新组织多个镜像子文件元数据的物理结构,将重新组织后的多个镜像子文件元数据写入至第一预设存储区。多个镜像子文件的元数据与数据的物理结构一般由文件系统进行设定,一般不会依照元数据与数据的关联关系进行排序,通过对多个镜像子文件的元数据按照预设打包标准格式重新组织各个镜像子文件的元数据的物理结构,例如预设打包标准格式为POSIX格式,并将重新组织后的元数据从内核空间写入到位于用户空间的第一预设存储区,使得后续打包文件中的元数据与数据可以依照元数据与数据的关联关系进行排序,例如使得打包文件具有如下的物理结构:[文件1元数据][文件1数据][文件2元数据][文件2数据]…[文件N元数据][文件N数据]。
S93,将第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至打包文件,镜像文件元数据与打包文件元数据指向不同的物理页,镜像文件数据与打包文件数据指向相同的物理页。
对于体积较小的镜像文件元数据写入打包文件的方式可以为从第一预设存储区读取镜像文件元数据写入至打包文件,对于体积较大的镜像文件数据写入打包文件的方式可以为在内核空间通过对镜像文件数据进行写时复制,将镜像文件数据保存至打包文件。通过将体积较小的镜像文件元数据以写入方式保存至打包文件,对于体积较大的镜像文件数据,基于写时复制机制将镜像文件数据保存至打包文件,由于对镜像文件数据采用写时复制方式保存至打包文件,不涉及对镜像文件数据的拷贝、写入操作,此过程无需从存储器件读取镜像文件数据或者将镜像文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
在一些实施例中,可以通过新建第二空白文件,将第一预设存储区保存的镜像文件元数据写入至第二空白文件,对所述镜像文件数据进行写时复制,将镜像文件数据保存至写入有镜像文件元数据的第二空白文件,保存有镜像文件元数据与镜像文件元数据的空白文件作为与第一文件对应的打包文件,镜像文件与打包文件具有相同的元数据与数据,镜像文件的索引结构与打包文件的索引结构指向相同的物理块,共享物理块中存储的数据。
在一些实施例中,以第一文件为第一应用的所有文件为例,对第一应用进行快照得到第一应用对应的镜像文件之后,基于第一应用的镜像文件来生成与第一应用对应的打包文件,可以使得用户在第一应用对应的镜像文件生成之后可以正常使用第一应用,例如可以输出提示信息,以提醒用户可以正常使用第一应用,不会导致现有打包文件生成方案存在的问题:在打包文件生成之前,若用户使用第一应用将导致打包文件同时包含新、旧状态的文件,即不像现有打包文件生成方案需在生成打包文件之前一直禁止用户使用第一应用,可以提升用户使用体验。
在一些实施例中,步骤S91得到的镜像文件可以保存在镜像根目录中,以第一文件为第一应用的所有文件为例,对第一应用进行快照过程中,可以获取第一应用的根目录的信息,创建与第一应用的根目录对应的镜像根目录,镜像根目录用于保存第一应用的镜像文件,便于后续可以基于镜像根目录下的目录与文件生成打包文件。镜像根目录可以与第一应用的根目录相同,即第一应用的根目录与第一应用的镜像根目录下的目录与文件均相同,或者镜像根目录可以为第一应用的根目录的子集,即第一应用的镜像根目录具有第一应用的根目录的部分目录与文件。
参照图10所示,本申请一实施例提供一种快照装置100,包括状态冻结模块101、第一写入模块102及第二写入模块103。本申请实施例所称的模块可以是指能够完成特定功能的一系列计算机程序指令段,也可以是计算机程序指令段与硬件配合形成的功能模块,模块的划分为一种逻辑功能划分,实际实现时可以有另外的划分方式,本申请对此不作限定。
状态冻结模块101,用于响应于针对第一文件的快照请求,生成与第一文件对应的镜像文件。
通过状态冻结模块101实现对第一文件的状态进行冻结,便于后续基于第一文件的镜像文件生成对应的打包文件,无需在生成打包文件之前一直禁止对第一文件进行读写。例如,第一文件为第一应用的所有文件,当得到第一应用对应的镜像文件之后,基于第一应用的镜像文件来生成与第一应用对应的打包文件,可以使得用户在第一文件对应的镜像文件生成之后可以正常使用第一应用,不会导致现有打包文件生成方案存在的问题:在打包文件生成之前,若用户使用第一应用将导致打包文件同时包含新、旧状态的文件,即不像现有打包文件生成方案需在生成打包文件之前一直禁止用户使用第一应用,可以提升用户使用体验。
第一写入模块102,用于将镜像文件元数据写入至第一预设存储区。
第二写入模块103,用于将所述第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至打包文件。
在一些实施例中,对于体积较小的文件元数据写入打包文件的方式可以为从内核空间读取镜像文件元数据保存至用户空间的第一预设存储区,例如第一预设存储区为用户空间的元数据暂存区,再将第一预设存储区保存的镜像文件元数据写入至打包文件,此种文件元数据写入方式,镜像文件元数据与打包文件元数据指向不同的物理页,对于体积较大的文件数据写入打包文件的方式可以为在内核空间通过对镜像文件数据进行写时复制,将镜像文件数据保存至打包文件,此种文件数据写入方式,镜像文件数据与打包文件数据指向相同的物理页,由于对镜像文件数据采用写时复制方式保存至打包文件,不涉及对镜像文件数据的拷贝、写入操作,此过程无需从存储器件读取镜像文件数据或者将镜像文件数据写入至存储器件,文件快照形成时间短,对系统性能影响小,开发维护成本低。
本申请实施例提供的电子设备10,内部存储器121可用于存储指令,处理器110可用于调用内部存储器121中的指令,使得电子设备10执行上述相关方法步骤实现上述实施例中的快照方法。内部存储器121也可以存储有状态冻结模块101、元数据写入模块102及数据写入模块103,由处理器110执行,实现快照装置100的功能。
本申请实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机指令,当所述计算机指令在电子设备10上运行时,使得电子设备10执行上述相关方法步骤实现上述实施例中的快照方法。
本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述实施例中的快照方法。
另外,本申请实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,所述装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的快照方法。
其中,本申请实施例提供的计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应所述理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例是示意性的,例如,所述模块或单元的划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的全部或部分可以以软件产品的形式体现出来,所述软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。
Claims (18)
1.一种快照方法,其特征在于,包括:
响应于针对第一文件的快照请求,生成与所述第一文件对应的镜像文件;
将镜像文件元数据写入至第一预设存储区;
将所述第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至所述打包文件,所述镜像文件元数据与打包文件元数据指向不同的物理页,所述镜像文件数据与打包文件数据指向相同的物理页。
2.如权利要求1所述的快照方法,其特征在于,所述镜像文件元数据与第一文件元数据指向不同的物理页,所述镜像文件数据与第一文件数据指向相同的物理页。
3.如权利要求2所述的快照方法,其特征在于,所述生成与所述第一文件对应的镜像文件,包括:
将所述第一文件元数据写入至所述镜像文件,及基于所述写时复制机制将所述第一文件数据保存至所述镜像文件。
4.如权利要求3所述的快照方法,其特征在于,所述将所述第一文件元数据写入至所述镜像文件,及基于所述写时复制机制将所述第一文件数据保存至所述镜像文件,包括:
新建第一空白文件,将所述第一文件元数据写入至所述第一空白文件;
对所述第一文件数据进行写时复制,将所述第一文件数据保存至写入有所述第一文件元数据的第一空白文件,得到与所述第一文件对应的镜像文件。
5.如权利要求3所述的快照方法,其特征在于,所述将所述第一文件元数据写入至所述镜像文件,包括:
将所述第一文件元数据写入至第二预设存储区;
将所述第二预设存储区保存的所述第一文件元数据写入至所述镜像文件。
6.如权利要求5所述的快照方法,其特征在于,所述第二预设存储区位于用户空间,所述基于所述写时复制机制将所述第一文件数据保存至所述镜像文件,包括:
在内核空间对所述第一文件数据进行写时复制,将所述第一文件数据保存至所述镜像文件。
7.如权利要求1至6中任意一项所述的快照方法,其特征在于,所述第一文件包括多个子文件,与所述第一文件对应的镜像文件包括多个镜像子文件,所述将镜像文件元数据写入至第一预设存储区,包括:
基于预设打包标准格式重新组织多个镜像子文件元数据的物理结构;
将重新组织后的多个镜像子文件元数据写入至所述第一预设存储区。
8.如权利要求2所述的快照方法,其特征在于,所述生成与所述第一文件对应的镜像文件,包括:
调用预设内核接口对所述第一文件元数据进行拷贝及对所述第一文件数据进行写时复制,得到与所述第一文件对应的镜像文件。
9.如权利要求8所述的快照方法,其特征在于,所述调用预设内核接口对所述第一文件元数据进行拷贝及对所述第一文件数据进行写时复制,包括:
调用预设内核接口在内核空间对所述第一文件元数据进行拷贝及对所述第一文件数据进行写时复制。
10.如权利要求8所述的快照方法,其特征在于,所述第一文件包括多个子文件,所述调用预设内核接口对所述第一文件元数据进行拷贝及对所述第一文件数据进行写时复制,包括:
在用户空间搜索待镜像的子文件;
调用预设内核接口在内核空间对待镜像的子文件元数据进行拷贝及对待镜像的子文件数据进行写时复制。
11.如权利要求1所述的快照方法,其特征在于,所述第一预设存储区位于用户空间,所述基于写时复制机制将镜像文件数据保存至所述打包文件,包括:
在内核空间对所述镜像文件数据进行写时复制,将所述镜像文件数据保存至所述打包文件。
12.如权利要求1所述的快照方法,其特征在于,所述将所述第一预设存储区保存的镜像文件元数据写入至打包文件,及基于写时复制机制将镜像文件数据保存至所述打包文件,包括:
新建第二空白文件,将第一预设存储区保存的镜像文件元数据写入至所述第二空白文件;
对所述镜像文件数据进行写时复制,将所述镜像文件数据保存至写入有所述镜像文件元数据的第二空白文件,得到所述打包文件。
13.如权利要求1至12中任意一项所述的快照方法,其特征在于,所述第一文件为第一应用的所有文件,所述生成与所述第一文件对应的镜像文件之后,还包括:
输出与所述第一应用关联的提示信息,所述提示信息用于提示可对所述第一应用进行操作。
14.如权利要求1至12中任意一项所述的快照方法,其特征在于,所述第一文件为第一应用的所有文件,所述生成与所述第一文件对应的镜像文件之前,还包括:
创建与所述第一应用的根目录对应的镜像根目录,所述镜像根目录用于保存所述镜像文件。
15.如权利要求14所述的快照方法,其特征在于,所述镜像根目录与所述第一应用的根目录相同,或者所述镜像根目录为所述第一应用的根目录的子集。
16.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在处理器上运行时,使得电子设备执行如权利要求1至权利要求15任一项所述的快照方法。
17.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行权利要求1至权利要求15中任一项所述的快照方法。
18.一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令在处理器上运行时,使得电子设备执行如权利要求1至权利要求15中任一项所述的快照方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236869.7A CN117909287A (zh) | 2022-10-10 | 2022-10-10 | 快照方法、电子设备、计算机程序产品及可读存储介质 |
PCT/CN2023/119212 WO2024078262A1 (zh) | 2022-10-10 | 2023-09-15 | 快照方法、电子设备、计算机程序产品及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236869.7A CN117909287A (zh) | 2022-10-10 | 2022-10-10 | 快照方法、电子设备、计算机程序产品及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117909287A true CN117909287A (zh) | 2024-04-19 |
Family
ID=90668758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211236869.7A Pending CN117909287A (zh) | 2022-10-10 | 2022-10-10 | 快照方法、电子设备、计算机程序产品及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117909287A (zh) |
WO (1) | WO2024078262A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4581518B2 (ja) * | 2003-12-19 | 2010-11-17 | 株式会社日立製作所 | スナップショット取得方法 |
CN104486392A (zh) * | 2014-12-05 | 2015-04-01 | 国云科技股份有限公司 | 一种低存储空间的虚拟机镜像打包方法 |
CN105511943B (zh) * | 2015-12-03 | 2019-04-12 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
CN107291883B (zh) * | 2017-06-20 | 2020-09-18 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统的快照方法及装置 |
CN110196755B (zh) * | 2019-05-07 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、服务器及存储介质 |
CN114003569A (zh) * | 2021-10-25 | 2022-02-01 | 武汉噢易云计算股份有限公司 | 一种qcow2镜像文件增量更新方法及装置 |
-
2022
- 2022-10-10 CN CN202211236869.7A patent/CN117909287A/zh active Pending
-
2023
- 2023-09-15 WO PCT/CN2023/119212 patent/WO2024078262A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024078262A1 (zh) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2786273B1 (en) | Synchronizing updates across cluster filesystems | |
CN110569130B (zh) | 一种跨进程通信方法、装置及设备 | |
US11836112B2 (en) | Path resolver for client access to distributed file systems | |
US20110246988A1 (en) | Hypervisor for starting a virtual machine | |
CN108572965A (zh) | 一种资源加载方法及装置 | |
CN114741213B (zh) | 通知处理方法、芯片、电子设备及计算机可读存储介质 | |
EP4095723B1 (en) | Permission reuse method, permission reuse-based resource access method, and related device | |
CN112199923A (zh) | 基于分布式系统的标识生成方法、系统、设备及介质 | |
CN117909287A (zh) | 快照方法、电子设备、计算机程序产品及可读存储介质 | |
US11809275B2 (en) | FaaS in-memory checkpoint restore | |
CN115437749A (zh) | 基于OpenStack集群的云主机救援方法、装置、设备及存储介质 | |
CN116136826A (zh) | 内存访问方法、芯片、电子设备及计算机可读存储介质 | |
CN115586872A (zh) | 一种容器镜像管理方法、装置、设备及存储介质 | |
US20230126234A1 (en) | Independent object data backup between clusters | |
US11500898B2 (en) | Intelligent master data replication | |
CN114860378A (zh) | 一种文件系统迁移方法、装置、系统及其介质 | |
CN110431527B (zh) | 跨存储提供方映射存储 | |
CN105183491A (zh) | 跨平台的桌面gis系统及其启动方法 | |
US10284648B2 (en) | Application multi-versioning in a traditional language environment | |
CN116700740B (zh) | 软件修复方法和相关装置 | |
CN115390912B (zh) | 资源发现方法、装置、计算机设备和存储介质 | |
CN118113289A (zh) | 代码编译方法、代码运行方法及相关设备 | |
EP4216052A1 (en) | Method for developing mvvm architecture-based application, and terminal | |
TWI592814B (zh) | 用於積體電路設計的檔案管理方法及其系統 | |
CN117708072A (zh) | 文件复制方法、终端设备及芯片系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |