CN102012853B - 一种零拷贝快照方法 - Google Patents
一种零拷贝快照方法 Download PDFInfo
- Publication number
- CN102012853B CN102012853B CN2011100078869A CN201110007886A CN102012853B CN 102012853 B CN102012853 B CN 102012853B CN 2011100078869 A CN2011100078869 A CN 2011100078869A CN 201110007886 A CN201110007886 A CN 201110007886A CN 102012853 B CN102012853 B CN 102012853B
- Authority
- CN
- China
- Prior art keywords
- data
- snapshot
- chunkmap
- version
- copy
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于网络存储技术领域,公开了一种零拷贝快照方法,完全消除了源卷写操作时数据的写前拷贝,用初始化位图的方法避免了快照元数据的拷贝。该方法没有源数据卷和快照卷之分,采用追加写的方式处理写请求,创建快照时当前的业务不必暂停,创建快照速度快,方法简单,系统开销小。
Description
技术领域
本发明属于网络存储技术领域。
背景技术
随着信息技术的发展,存储备份容灾技术已成为当前存储领域研究的热点。由于黑客、病毒、硬件设备的失效以及火灾、地震等自然灾害的原因,使系统和数据信息遭到破坏甚至毁灭,如果不及时地进行恢复,将对企业造成巨大的损失,所以备份容灾技术显得尤为重要。
根据备份数据对现有应用产生的影响程度,可分为离线备份和在线备份。离线备份(Off- line Backup)在进行备份操作时,服务器不再接受来自用户或应用对数据的更新。离线备份可以很好地解决在备份过程中数据的完整性问题,是防止破坏、敌意的病毒袭击、应用失误等的有效方式,但是存在一个备份窗口的问题。在备份过程中,服务器不再接受任何更新操作,对于那些需要提供24×7的服务系统来说,这就成为一个瓶颈。在线备份(On-line Back-up),就是用户和应用正在更新数据的同时,系统能够进行备份。在线备份可以提供24×7的持续服务,但最大的难点是如何保持数据的完整性。为了保持数据的完整性,在线备份大多采用快照(Snapshot)技术。快照技术可以最大限度地减小复制操作对上层应用的影响,同时保证了复制的完整性。
在LVM2(Logical Volume Manager逻辑卷管理器)中,快照采用虚拟视图技术,在建立快照卷时,源卷与快照卷共享同一份物理数据。当源卷的数据产生变化时,快照只拷贝那些变化了的数据,这个拷贝过程是通过一个kcopyd的后台内核线程来完成的。
为了实现快照过程,LVM2为每个源卷创建一个COW区域(Copy-On-Write写前拷贝),用于存放源LV自创建快照卷以来被修改的块在修改前的数据。用户为一个普通逻辑创建快照卷后,该逻辑卷就变成一个源卷,LVM2会在创建快照卷的同时创建COW区域。在快照卷创建后,用户可以对快照卷进行备份,产生的备份为源卷在创建快照卷时的数据映像。LVM2对源卷上的读写请求和快照卷上的读写请求的处理方式不同,其核心思想如下:
(1)对于源卷上的读请求处理保持不变。由于对于源卷的更新已经反映到其对应的物理设备上,因此读请求返回的是最新的数据。
(2)对于源卷的写请求处理,首先遍历该源卷的所有快照卷,如果请求的chunk数据没有拷贝到快照卷的COW区域中,则把该chunk的数据拷贝到COW区域中并记录拷贝前后的映射关系。上述拷贝过程称之为写前拷贝(COW)操作。然后再更新该chunk上的数据。上述处理保证快照LV被创建后源LV上所有数据在第一次被修改前被复制到COW区域。为了减少Copy-On-Write的次数,LVM把每个PE划分成多个chunk,每次COW操作的单位是一个chunk,而不是一个扇区,chunk的大小是扇区大小的整数倍。
(3)对于快照卷上的读请求,首先检查该请求所在的chunk有没有拷贝到COW区域,如果该chunk已经拷贝到COW区域,则直接读取COW区域中的数据,否则需要映射到源卷,从源卷上读取该chunk的数据。
(4)对于快照卷上的写请求,首先检查该请求所在的chunk有没有拷贝到COW区域中,如果该chunk已经拷贝到COW区域中,则直接更新该COW区域中数据。否则需要记录该chunk和COW区域的拷贝映射关系,再更新该COW区域中的数据。
对于源卷的写请求,写前拷贝的处理过程大量的时间消耗在遍历快照卷上和拷贝数据上。如果能够减少这两个主要的时间消耗点所耗费的时间,则新的快照方法的速度能够得到进一步的提升。
对于快照卷上的读请求,从时间消耗的角度来看,写前拷贝的方法对于检查chunk的时间损耗是可以避免的,所以在新的快照方法中,可以通过除去这一步以提升快照技术的性能。
发明内容
本发明的目的是创建一种新的快照方法,避免现有快照方法(如写前拷贝)多次的IO操作,提高快照的性能。
本发明提出了一种零拷贝快照方法,完全消除了源卷写操作时数据的写前拷贝,用初始化位图的方法避免了快照元数据的拷贝。该方法采用追加写的方式处理写请求,创建快照的方法简单,系统开销小,提高了系统整体性能。
本发明提供的零拷贝快照方法,包括:
第1、与现有的快照方法相比,不再有源数据卷和快照卷之分;磁盘布局分为元数据区和数据区,元数据区是一组chunkmap,每个chunkmap对应一个版本的元数据,chunkmap的数量与欲进行快照的版本数相一致,数据区用于保存用户的数据;
第2、数据区处理写请求方式:采用追加写的方式处理写请求;
第3、创建快照的过程:在初始状态时,当前版本指针指向首个chunkmap;当有创建快照的请求到达时,当前版本指针指向下一个chunkmap,前一个chunkmap置为只读,前一个chunkmap里保存的元数据及对应的数据即为最新快照版本;新的元数据保存在当前版本指针所对应的chunkmap中;
第4、创建快照的用户态接口:在Device Mapper用户态的命令dmsetup里增加了新的参数snap,用于表示采用零拷贝快照技术创建快照;
第5、快照版本切换:改变当前版本指针位置,指向对应的chunkmap;
第6、快照版本切换用户态接口:在Device Mapper用户态的命令dmsetup里增加了新的参数rollbk,用于表示进行快照版本切换;
第7、元数据访问:当前指针所指的chunkmap中的某一个块如果没被访问过,表示当前状态下,未对该块数据进行过更新,那么需要在历史版本中找到对应的最新数据。
第2步所述的采用追加写的方式处理数据区的写请求具体为:
实时记录当前未被使用的扇区号,每次进行写操作时,基地址加上记录的扇区号,就是真正的偏移量,由此实现追加写。
第7步所述的元数据访问具体为:
在内存中维护一个位向量,该向量中的每一位对应Chunkmap中一片连续区域,每N位对应同一位置数据的N个版本,N为Chunkmap数;如果某一位为1,表示对应版本的Chunkmap中的数据被访问过;为0,表示未访问过;通过该位向量就可以确定chunkmap中的某一块是否有过数据更新;如果没有过更新,则查找位向量,直到找到对应位置为1的位为止,那么相应的数据就是最新版本的数据。
本发明的优点和有益效果:
本发明实现了一种零拷贝快照方法,实现了创建快照时数据的零拷贝。创建快照时当前的写操作不必暂停,创建快照速度快,提高了系统性能。
本发明与现有快照技术相比,没有了源数据卷和快照卷之分。底层的数据卷由元数据区和数据区组成,元数据区是由多个Chunkmap组成的Chunkmap组,每个Chunkmap对应一个版本快照的元数据,Chunkmap的个数与快照版本的个数相一致。
本发明采用追加写的方式处理写请求,在创建快照的过程中,对数据的写请求没有影响,继续追加即可。
本发明利用了当前版本指针、位向量等辅助性的变量来完成创建快照、访问元数据等操作,这些变量都保存在内存中,不需要外存空间,且没有真正的磁盘上的操作,在内存中即可完成,系统开销很小。
本发明中创建快照及快照版本切换的用户态接口利用DeviceMapper用户态已有的命令,不改变现有命令逻辑,添加新的参数来表示采用本发明所述的方法进行操作,遵守用户使用习惯,操作简单易行。
附图说明
图1是磁盘布局示意图;
图2是创建快照过程示意图;
图3是追加写方式处理写请求示意图;
图4是版本切换示意图。
具体实施方式
为便于理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明作进一步的详细说明。
参阅图1,磁盘布局示意图。具体如下:
该发明所用的数据卷包括元数据区和数据区,元数据区由多个Chunkmap组成,每个Chunkmap负责保存对应一个版本快照的元数据,Chunkmap的个数与快照版本的个数相一致。Chunkmap中的元数据与数据区的数据相对应,通过元数据就可以确定数据区的数据。数据区由多个数据块组成,负责保存用户的真正的数据。
参阅图2,是创建快照过程示意图。具体如下:
在卷的初始状态,当前版本指针指向0号chunkmap,随着用户的使用,元数据保存在0号chunkmap中。当上层下发创建快照的命令时,当前版本指针移动,指向1号chunkmap,而0号chunkmap的数据置为只读。数据的写请求不必暂停,继续追加在数据区,快照命令下发后产生的元数据保存在1号chunkmap中。此时,0号chunkmap中的数据就是0号版本。同理,当再有快照命令下发时,操作类似。
参阅图3,是追加写方式处理写请求示意图。具体如下:
为保证数据不会丢失且减少了寻道时间,零拷贝快照技术要求底层卷采用追加写技术代替了传统覆盖写。具体算法是实时记录当前没被使用的扇区号,每次进行写操作时,基地址加上记录的扇区号,就是真正的偏移量。由此可以实现追加写。
参阅图4,是版本切换示意图。具体如下:
当前版本指针最初指向0号chunkmap,即对应版本0的元数据。当用户要求进行版本切换时,只需将对应版本的chunkmap地址赋值给当前版本指针,此时当前版本指针的位置即是目标版本。该方法简单易行,系统开销极小。
Claims (1)
1.一种零拷贝快照方法,其特征在于:
第1、与现有的快照方法相比,不再有源数据卷和快照卷之分;磁盘布局分为元数据区和数据区,元数据区是一组Chunkmap,每个Chunkmap对应一个版本的元数据,Chunkmap的数量与欲进行快照的版本数相一致,数据区用于保存用户的数据;
第2、数据区处理写请求方式:采用追加写的方式处理写请求,即实时记录当前未被使用的扇区号,每次进行写操作时,基地址加上记录的扇区号,就是真正的偏移量,由此实现追加写;
第3、创建快照的过程:在初始状态时,当前版本指针指向首个Chunkmap;当有创建快照的请求到达时,当前版本指针指向下一个Chunkmap,前一个Chunkmap置为只读,前一个Chunkmap里保存的元数据及对应的数据即为最新快照版本;新的元数据保存在当前版本指针所对应的Chunkmap中;
第4、创建快照的用户态接口:在Device Mapper用户态的命令dmsetup里增加了新的参数snap,用于表示采用零拷贝快照技术创建快照;
第5、快照版本切换:改变当前版本指针位置,指向对应的Chunkmap;
第6、快照版本切换用户态接口:在Device Mapper用户态的命令dmsetup里增加了新的参数rollbk,用于表示进行快照版本切换;
第7、元数据访问:当前指针所指的Chunkmap中的某一个块如果没被访问过,表示当前状态下,未对该块数据进行过更新,那么需要在历史版本中找到对应的最新数据,具体为:
在内存中维护一个位向量,该向量中的每一位对应Chunkmap中一片连续区域,每N位对应同一位置数据的N个版本,N为Chunkmap数;如果某一位为1,表示对应版本的Chunkmap中的数据被访问过;为0,表示未访问过;通过该位向量就可以确定chunkmap中的某一块是否有过数据更新;如果没有过更新,则查找位向量,直到找到对应位置为1的位为止,那么相应的数据就是最新版本的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100078869A CN102012853B (zh) | 2011-01-14 | 2011-01-14 | 一种零拷贝快照方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100078869A CN102012853B (zh) | 2011-01-14 | 2011-01-14 | 一种零拷贝快照方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102012853A CN102012853A (zh) | 2011-04-13 |
CN102012853B true CN102012853B (zh) | 2012-05-23 |
Family
ID=43843029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100078869A Active CN102012853B (zh) | 2011-01-14 | 2011-01-14 | 一种零拷贝快照方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102012853B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194010B (zh) * | 2011-06-16 | 2013-01-02 | 华中科技大学 | 虚拟文件系统碎片的零拷贝整理方法 |
CN103593259B (zh) * | 2013-10-16 | 2016-05-18 | 北京航空航天大学 | 虚拟集群内存快照方法和装置 |
CN105469001B (zh) * | 2014-08-15 | 2020-02-11 | 中兴通讯股份有限公司 | 磁盘数据保护方法及装置 |
CN104182184B (zh) * | 2014-08-27 | 2017-08-25 | 浪潮电子信息产业股份有限公司 | 一种分布式块存储克隆方法 |
CN104268097B (zh) * | 2014-10-13 | 2018-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种元数据处理方法及系统 |
CN105808449B (zh) * | 2014-12-31 | 2018-11-27 | 中国电信股份有限公司 | 一种用于虚拟机的虚拟存储映像版本管理方法和系统 |
CN105988723A (zh) * | 2015-02-12 | 2016-10-05 | 中兴通讯股份有限公司 | 一种快照处理方法及装置 |
CN108228647B (zh) * | 2016-12-21 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于数据拷贝的方法和设备 |
WO2018119998A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种快照回滚方法、装置、存储控制器和系统 |
CN106844644B (zh) * | 2017-01-19 | 2020-03-31 | 郑州云海信息技术有限公司 | 一种快照数据存储管理方法及装置 |
CN111324295B (zh) * | 2018-12-17 | 2023-09-19 | 中国移动通信集团四川有限公司 | 数据迁移的方法、装置、设备及介质 |
CN111813742B (zh) * | 2020-06-29 | 2023-08-04 | 北京百度网讯科技有限公司 | 文件管理方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140542A (zh) * | 2007-10-19 | 2008-03-12 | 华中科技大学 | 一种缩短写时拷贝快照写响应时间的方法 |
CN101477447A (zh) * | 2009-01-21 | 2009-07-08 | 杭州华三通信技术有限公司 | 磁盘快照方法与装置 |
-
2011
- 2011-01-14 CN CN2011100078869A patent/CN102012853B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140542A (zh) * | 2007-10-19 | 2008-03-12 | 华中科技大学 | 一种缩短写时拷贝快照写响应时间的方法 |
CN101477447A (zh) * | 2009-01-21 | 2009-07-08 | 杭州华三通信技术有限公司 | 磁盘快照方法与装置 |
Non-Patent Citations (2)
Title |
---|
Guangjun Xie etc..ESnap - A Cached Dependent Snapshot System.《Proceedings of the 2007 IEEE International Conference on Integration Technology》.2007,第783-788页. |
Guangjun Xie etc..ESnap- A Cached Dependent Snapshot System.《Proceedings of the 2007 IEEE International Conference on Integration Technology》.2007,第783-788页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102012853A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012853B (zh) | 一种零拷贝快照方法 | |
US11307935B2 (en) | Management of volume snapshots in a data storage system | |
US10235066B1 (en) | Journal destage relay for online system checkpoint creation | |
US10140039B1 (en) | I/O alignment for continuous replication in a storage system | |
US9400611B1 (en) | Data migration in cluster environment using host copy and changed block tracking | |
US8495293B2 (en) | Storage system comprising function for changing data storage mode using logical volume pair | |
US7386695B2 (en) | Storage system with multiple copy targeting | |
CN106687911B (zh) | 不损害数据完整性的在线数据移动 | |
US7836266B2 (en) | Managing snapshot history in a data storage system | |
JP6629407B2 (ja) | 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品 | |
US8433870B2 (en) | Multiple incremental virtual copies | |
JP6600698B2 (ja) | 計算機システム | |
US7490213B2 (en) | Dynamic allocation of storage for hierarchical copies | |
CN103970585A (zh) | 创建虚拟机的方法及装置 | |
US10089320B2 (en) | Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication | |
US9836223B2 (en) | Changing storage volume ownership using cache memory | |
CN109313538A (zh) | 内联去重 | |
US11003554B2 (en) | RAID schema for providing metadata protection in a data storage system | |
US20180267713A1 (en) | Method and apparatus for defining storage infrastructure | |
US7549029B2 (en) | Methods for creating hierarchical copies | |
US9251020B1 (en) | Systems and methods for file-level replication | |
US10936243B2 (en) | Storage system and data transfer control method | |
US7552309B2 (en) | Data storage methods for hierarchical copies | |
US11175999B2 (en) | Management of backup volume extents via a tiered storage mechanism | |
US20180188967A1 (en) | Snapshot storage management |
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 |