CN115470178A - 一种基于域对象的域快照回滚方法 - Google Patents
一种基于域对象的域快照回滚方法 Download PDFInfo
- Publication number
- CN115470178A CN115470178A CN202211239258.8A CN202211239258A CN115470178A CN 115470178 A CN115470178 A CN 115470178A CN 202211239258 A CN202211239258 A CN 202211239258A CN 115470178 A CN115470178 A CN 115470178A
- Authority
- CN
- China
- Prior art keywords
- domain
- data
- snapshot
- version number
- rollback
- 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
Images
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
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明涉及数据存储冗备和故障快速恢复技术领域,提供一种基于域对象的域快照回滚方法,本发明的方法,包括:将数据以多版本的方式写入存储,生成域快照版本号;根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号。通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据。根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据。根据本发明示例性实施例的基于域对象的域快照回滚方法,通过对不同对象设置域属性,实现更小粒度的快照回滚;通过数据多版本的写入,使快照生成和回滚时不生成新的元数据,不产生新的读写,完成秒级回滚;通过聚合任务,实现多版本数据和快照回滚后的数据回收。
Description
技术领域
本发明涉及数据存储冗备和故障快速恢复技术领域,尤其涉及一种基于域对象的域快照回滚方法。
背景技术
目前,快照主要通过写时拷贝COW(Copy On Write)与写重定向ROW(Redirect OnWrite)两种方式实现。
写时拷贝COW(Copy-On-Write),也称为写前拷贝,其技术原理为:在创建快照后,当源卷的数据发生变化,快照系统会首先将原始数据拷贝至快照卷上对应的数据块中,然后再对源卷进行改写。其优点在于,快照对源卷的数据具有很好的保护措施,快照可以单独作为一份可以读取的副本,但并没有像简单的镜像那样,一开始就占用了和源卷一样的空间,而是根据创建快照后上层业务产生的数据来实时占用必需的存储空间。
当对写时拷贝的快照进行回滚时,首先需要锁定源卷,停止IO写入,接着查询映射表中的逻辑地址,将地址对应的数据从快照中写回到源卷,写入完后,源卷解锁,恢复可用状态。在实际应用中,写时拷贝快照回滚存在以下不足:1.快照回滚需要长时间停止IO的写入;2.回滚数据时需要进行一次数据的读和写,产生大量的数据读写,消耗服务器资源,影响整个集群性能;3.回滚时间过长,业务恢复时间过长;4.无法针对某个重要的数据进行单独回滚。
写时重定向ROW的技术原理为:在快照创建以后,若上层业务对源卷写数据X,X在缓存中排队,快照系统判断X即将写入源卷的逻辑地址,然后将数据X写入快照卷中预留的对应逻辑地址中,同时,将源卷和快照卷的逻辑地址写入映射表,即写重定向。上层针对源卷写入一个数据块X,存储上只发生一次写操作,只是写之前进行了重定向。若快照创建以后,上层业务对源卷进行读,则有两种情况:1.若读取的数据在创建快照前产生,数据是保存在源卷上的,上层从源卷进行读取;2.若需要读取的数据是创建快照以后才产生的,上层查询映射表,从快照卷进行读取,即读重定向。若快照创建以后,上层业务对快照卷进行读,同样也有两种情况:1.若读取的数据在创建快照前产生,数据是保存在源卷上的,上层查询映射表,从源卷进行读取;2.若需要读取的数据是创建快照以后才产生的,上层直接从快照卷进行读取。ROW快照也是根据创建快照后上层业务产生的数据来实时占用必需的存储空间。
当对写时重定向的快照进行回滚时,由于其源卷始终保存着快照创建前的完整数据,快照创建后,上层业务产生的数据都写入了快照中,因此,快照的回滚只是取消了对源卷的读重定向操作。也就是源卷上没有进行任何数据操作,上层业务对源卷的读,仅限于读源卷,即不会去读取快照卷的数据。在实际应用中,写时重定向快照回滚存在以下不足:1.因为读取数据时需要额外查询映射表,会影响读性能,导致轻微时延;2.删除快照时需要回拷数据,耗时较长;3.无法针对某个重要的数据进行单独回滚。
因此,提供一种回滚力度更小、回滚速度快,回滚过程对性能影响小的快照回滚方法,成为亟待解决的技术问题。
发明内容
有鉴于此,本发明主要解决的是如何降低回滚粒度、减少快照回滚时间、降低快照回滚对读性能的影响。
本发明提供一种基于域对象的域快照回滚方法,包括:
将数据以多版本的方式写入存储,生成域快照版本号;
根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号。
进一步地,本发明基于域对象的域快照回滚方法中,将数据以多版本的方式写入存储,生成域快照版本号,包括:
将卷拆分为不同大小的对象,为每个对象设置域属性;
采用多版本的方式进行数据写入,将每次数据写入与写入时间关联;
根据指定的对象的域属性信息,下发域快照,将下发域快照时的时间作为域快照版本号;
根据域快照版本号对写入的多个数据版本进行聚合。
进一步地,本发明基于域对象的域快照回滚方法中,将卷拆分为不同大小的对象,为每个对象设置域属性,包括:所述域代表一个逻辑存储空间。
进一步地,本发明基于域对象的域快照回滚方法中,采用多版本的方式进行数据写入,将每次数据写入与写入时间关联,包括:当对卷上同一个逻辑存储空间进行修改时,在首次数据写入时,申请物理存储空间,完成数据写入,将数据写入时的时间作为数据对应的数据版本号;当再次修改同一块逻辑空间时,再次申请物理存储空间,完成新版本数据的写入。
进一步地,本发明基于域对象的域快照回滚方法中,根据域快照版本号对写入的多个数据版本进行聚合,包括:当无业务时或者存储空间不足时,触发多个版本数据的聚合,聚合时比较同一份数据的多个数据版本号,并查询数据所属的对象、域以及域相关的域快照版本号,比较同一个对象在相同域下多份数据的数据版本号和域快照版本号的大小,保留数据版本号小于域快照版本号的数据中数据版本号最大的数据,删除其余数据。
进一步地,本发明基于域对象的域快照回滚方法中,根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号,包括:指定需要回滚的域和回滚的域快照版本号,下发域快照回滚指令;根据域快照回滚指令,生成并记录回滚版本号。
进一步地,本发明基于域对象的域快照回滚方法,包括:通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据。
进一步地,本发明基于域对象的域快照回滚方法中,通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据,包括:
在域快照回滚后,当读取已经发生新数据写入的数据时,获取新写入的数据;
在域快照回滚后,当读取未发生新数据写入的数据时,比较读取版本号(服务端比较客户端发起读的时间)和域快照回滚版本号大小,当数据读取版本号大于域快照回滚版本号时,采用回滚域快照版本号替代读取版本号,再次发起读取,获取域快照对应的数据;当数据读取版本号小于域快照回滚版本号时,终止读取。
进一步地,本发明基于域对象的域快照回滚方法,还包括:根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据。
进一步地,本发明基于域对象的域快照回滚方法中,根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据,包括:域快照回滚后,生成域快照回滚聚合任务,域快照回滚聚合任务根据数据的数据版本号识别域快照到回滚域快照两个时间点之间的数据为垃圾,对识别的垃圾数据进行聚合和回收。
本发明基于域对象的域快照回滚方法,具有以下有益效果:
1.通过对不同对象设置域属性,实现更小粒度的快照回滚。
2.通过数据多版本的写入,使快照生成和回滚时不生成新的元数据,不产生新的读写,实现秒级回滚。
3.通过聚合任务,实现多版本数据和快照回滚后的数据回收。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的示意图卷的数据拆分示意图。
图2为本发明示例性第一实施例一种基于域对象的域快照回滚方法的流程图。
图3为本发明示例性第二实施例一种基于域对象的域快照回滚方法的流程图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
本发明的技术原理如下:
将卷拆分成任意不同大小的对象,针对每个对象设置不同的域属性,快照回滚时针对每个域内的对象数据进行单独回滚;通过多版本数据的写入,保证快照回滚时秒级完成,并无损。通过多版本数据的写入和时间(epoch)关联,快照取执行快照的时间(epoch),保证多半数据的回收和保留,因此当快照回滚时只需要取消相关快照,让数据回收并可以在后台完成数据回收。
如图1所示,可以将卷拆分成不同粒度大小的对象(obj),存储系统针对每个对象(obj)设置域属性,域代表逻辑的一个区域,比如一个卷内一个4M数据可以属于一个域dom_1,另一个4M数据属于域dom_2,在快照生成的时候,可以指定针对某个域进行快照,达到针对于卷更小粒度的快照。快照回滚时便可以针对卷内某个域数据进行回滚,实现不同粒度的快照回滚。
为了实现快照回滚秒级完成和无损,采用多版本的数据写入,每次写入数据都关联一个时间戳(epoch),老数据的回收,交给后台的数据聚合流程。打快照时,只需要指定域信息,便可以生成域快照,同时通知聚合流程,聚合流程保证保留快照最新的一个版本数据,其它版本数据在后台删除。
后台聚合任务对数据进行聚合时,获取域快照信息,以obj粒度进行数据聚合,聚合时查询obj的域信息,然后获取域的快照信息,决定哪些版本数据可以删除,那些数据是快照数据需要保留。客户端发起快照回滚时,首先获取回滚快照,生成发起快照回滚的epoch_roll号,传送给后端集群服务,后端集群收到回滚请求后,生成内部快照epoch_roll,对客户端返回快照回滚完成,整个回滚过程在秒级内完成。
图2为根据本发明示例性第一实施例的一种基于域对象的域快照回滚方法的流程图,如图2所示,本实施例的方法,包括:
步骤S1:将数据以多版本的方式写入存储,生成域快照版本号;
步骤S2:根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号。
图3为根据本发明示例性第二实施例的一种基于域对象的域快照回滚方法的流程图,本实施例是图2所示方法的优选实施例,如图3所示,本实施例方法中,将数据以多版本的方式写入存储,生成域快照版本号,包括:
步骤S11:将卷拆分为不同大小的对象,为每个对象设置域属性;
步骤S12:采用多版本的方式进行数据写入,将每次数据写入与写入时间关联;
步骤S13:根据指定的对象的域属性信息,下发域快照,将下发域快照时的时间作为域快照版本号;
步骤S14:根据域快照版本号对写入的多个数据版本进行聚合。
在实际应用中,本实施例方法中的域代表一个逻辑存储空间。
本实施例方法的步骤S12,包括:当对卷上同一个逻辑存储空间进行修改时,在首次数据写入时,申请物理存储空间,完成数据写入,将数据写入时的时间作为数据对应的数据版本号;当再次修改同一块逻辑空间时,再次申请物理存储空间,完成新版本数据的写入。
本实施例方法的步骤S14,包括:当无业务时或者存储空间不足时,触发多个版本数据的聚合,聚合时比较同一份数据的多个数据版本号,并查询数据所属的对象、域以及域相关的域快照版本号,比较同一个对象在相同域下多份数据的数据版本号和域快照版本号的大小,保留数据版本号小于域快照版本号的数据中数据版本号最大的数据,删除其余数据。
本发明示例性第三实施例提供一种基于域对象的域快照回滚方法,本实施例是图2所示方法的优选实施例,本实施例方法中,根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号,包括:指定需要回滚的域和回滚的域快照版本号,下发域快照回滚指令;根据域快照回滚指令,生成并记录回滚版本号。
本发明示例性第四实施例提供一种基于域对象的域快照回滚方法,本实施例方法,包括:通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据。
在实际应用中,本实施例方法中,通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据,包括:
在域快照回滚后,当读取已经发生新数据写入的数据时,获取新写入的数据;
在域快照回滚后,当读取未发生新数据写入的数据时,比较读取版本号和域快照回滚版本号大小,当数据读取版本号大于域快照回滚版本号时,采用回滚域快照版本号替代读取版本号,再次发起读取,获取域快照对应的数据;当数据读取版本号小于域快照回滚版本号时,终止读取。其中,读取版本号为客户端发起读取的时间。
当客户端发起写入时,由于是新数据的写入,会产生数据新的版本,因此直接写入即可。
本发明示例性第五实施例提供一种基于域对象的域快照回滚方法,本实施例的方法,包括:根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据。
在实际应用中,本实施例方法中,根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据,包括:域快照回滚后,生成域快照回滚聚合任务,域快照回滚聚合任务根据数据的数据版本号识别域快照到回滚域快照两个时间点之间的数据为垃圾,对识别的垃圾数据进行聚合和回收。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于域对象的域快照回滚方法,其特征在于,所述方法,包括:
将数据以多版本的方式写入存储,生成域快照版本号;
根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号。
2.根据权利要求1所述的基于域对象的域快照回滚方法,其特征在于,将数据以多版本的方式写入存储,生成域快照版本号,包括:
将卷拆分为不同大小的对象,为每个对象设置域属性;
采用多版本的方式进行数据写入,将每次数据写入与写入时间关联;
根据指定的对象的域属性信息,下发域快照,将下发域快照时的时间作为域快照版本号;根据域快照版本号对写入的多个数据版本进行聚合。
3.根据权利要求2所述的基于域对象的域快照回滚方法,其特征在于,将卷拆分为不同大小的对象,为每个对象设置域属性,包括:所述域代表一个逻辑存储空间。
4.根据权利要求2所述的基于域对象的域快照回滚方法,其特征在于,采用多版本的方式进行数据写入,将每次数据写入与写入时间关联,包括:当对卷上同一个逻辑存储空间进行修改时,在首次数据写入时,申请物理存储空间,完成数据写入,将数据写入时的时间作为数据对应的数据版本号;当再次修改同一块逻辑空间时,再次申请物理存储空间,完成新版本数据的写入。
5.根据权利要求2所述的基于域对象的域快照回滚方法,其特征在于,根据域快照版本号对写入的多个数据版本进行聚合,包括:当无业务时或者存储空间不足时,触发多个版本数据的聚合,聚合时比较同一份数据的多个数据版本号,并查询数据所属的对象、域以及域相关的域快照版本号,比较同一个对象在相同域下多份数据的数据版本号和域快照版本号的大小,保留数据版本号小于域快照版本号的数据中数据版本号最大的数据,删除其余数据。
6.根据权利要求1所述的基于域对象的域快照回滚方法,其特征在于,根据需要回滚的域快照版本号执行域快照回滚,生成回滚版本号,包括:指定需要回滚的域和回滚的域快照版本号,下发域快照回滚指令;根据域快照回滚指令,生成并记录回滚版本号。
7.根据权利要求1所述的基于域对象的域快照回滚方法,其特征在于,所述方法,包括:通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据。
8.根据权利要求7所述的基于域对象的域快照回滚方法,其特征在于,通过比较读取版本号与回滚版本号的大小关系,读取域快照回滚后的数据,包括:
在域快照回滚后,当读取已经发生新数据写入的数据时,获取新写入的数据;
在域快照回滚后,当读取未发生新数据写入的数据时,比较读取版本号和域快照回滚版本号大小,当数据读取版本号大于域快照回滚版本号时,采用回滚域快照版本号替代读取版本号,再次发起读取,获取域快照对应的数据;当数据读取版本号小于域快照回滚版本号时,终止读取。
9.根据权利要求1所述的基于域对象的域快照回滚方法,其特征在于,所述方法,还包括:根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据。
10.根据权利要求9所述的基于域对象的域快照回滚方法,其特征在于,根据域快照版本号和回滚版本号,通过数据聚合,回收无效数据,包括:域快照回滚后,生成域快照回滚聚合任务,域快照回滚聚合任务根据数据的数据版本号识别域快照到回滚域快照两个时间点之间的数据为垃圾,对识别的垃圾数据进行聚合和回收。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211239258.8A CN115470178A (zh) | 2022-10-11 | 2022-10-11 | 一种基于域对象的域快照回滚方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211239258.8A CN115470178A (zh) | 2022-10-11 | 2022-10-11 | 一种基于域对象的域快照回滚方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470178A true CN115470178A (zh) | 2022-12-13 |
Family
ID=84336732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211239258.8A Pending CN115470178A (zh) | 2022-10-11 | 2022-10-11 | 一种基于域对象的域快照回滚方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470178A (zh) |
-
2022
- 2022-10-11 CN CN202211239258.8A patent/CN115470178A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7266669B2 (en) | File system with file management function and file management method | |
US7640276B2 (en) | Backup system, program and backup method | |
JP4199993B2 (ja) | スナップショット取得方法 | |
CN1205550C (zh) | 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统 | |
US7035881B2 (en) | Organization of read-write snapshot copies in a data storage system | |
JP4419884B2 (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US20030065901A1 (en) | System for conserving metadata about data snapshots | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
JP4916892B2 (ja) | トランザクション処理のためのログ情報管理システムおよび方法 | |
US20060167895A1 (en) | Database system and method for adapting a main database components in a main memory thereof | |
US8019953B2 (en) | Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log | |
JP3246146B2 (ja) | 外部記憶装置のデータ移行方法 | |
CN110597663A (zh) | 一种事务处理方法及装置 | |
CN110837441A (zh) | 基于脏数据位图和网络块设备的kvm虚拟机备份方法 | |
CN110134551B (zh) | 一种持续数据保护方法及装置 | |
CN115048046B (zh) | 日志文件系统以及数据管理方法 | |
CN116226232A (zh) | 面向分布式数据库的持久内存数据存储方法及系统 | |
CN115470178A (zh) | 一种基于域对象的域快照回滚方法 | |
US9235349B2 (en) | Data duplication system, data duplication method, and program thereof | |
JP2005316708A (ja) | 階層記憶装置、その復旧方法、及び復旧プログラム | |
US11593352B2 (en) | Cloud-native object storage for page-based relational database | |
CN112214171B (zh) | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 | |
CN110837442B (zh) | 基于脏数据位图和网络块设备的kvm虚拟机备份系统 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
JPS62245348A (ja) | データベース更新方法 |
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 |