CN114116312B - 基于分布式块存储的row快照设计方法及系统 - Google Patents

基于分布式块存储的row快照设计方法及系统 Download PDF

Info

Publication number
CN114116312B
CN114116312B CN202111411871.9A CN202111411871A CN114116312B CN 114116312 B CN114116312 B CN 114116312B CN 202111411871 A CN202111411871 A CN 202111411871A CN 114116312 B CN114116312 B CN 114116312B
Authority
CN
China
Prior art keywords
snapshot
volume
data
chunk
head
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
Application number
CN202111411871.9A
Other languages
English (en)
Other versions
CN114116312A (zh
Inventor
刘爱贵
介玄克
阮薛平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dadao Yunxing Technology Co ltd
Original Assignee
Beijing Dadao Yunxing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dadao Yunxing Technology Co ltd filed Critical Beijing Dadao Yunxing Technology Co ltd
Priority to CN202111411871.9A priority Critical patent/CN114116312B/zh
Publication of CN114116312A publication Critical patent/CN114116312A/zh
Application granted granted Critical
Publication of CN114116312B publication Critical patent/CN114116312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及存储快照技术领域,具体涉及一种基于分布式块存储的ROW快照设计方法及系统,本发明对Row卷的快照组织采用虚拟容器加快照树,在快照树设置中每个节点为一个快照,并对应唯一的快照id,用于Row卷创建或用户创建快照和访问快照时使用;所述方法同时对Row卷的数据采用两级bitmap索引进行管理,其中,所述方法进行Row卷的基本快照操作时包括创建快照、删除快照、回滚快照及克隆卷。本发明在线快照,打快照无须中断业务且打快照对读性能几乎无损,同时支持上万级别的快照个数,一个快照支持上万级别的克隆卷个数,支持级联快照,理论级联层级不受限制,快照操作性能及克隆卷的I/O性能均不受级联层级影响,且可以毫秒级删除快照。

Description

基于分布式块存储的ROW快照设计方法及系统
技术领域
本发明涉及存储快照技术领域,具体涉及一种基于分布式块存储的ROW快照设计方法及系统。
背景技术
随着互联网的发展,大数据时代的到来,人工智能、AIoT、云计算等技术的推动,全球数据量正在无限制的极速增长。2018年11月IDC白皮书《DataAge2025》指出,全球数据量总和将从2018年的33ZB增至2025年的175ZB,信息数据呈快速增长态势。在数据量如此庞大的需求下,数据安全性显得尤为重要。
数据备份,多副本机制,纠删码等技术都是为了保证数据的安全性。而这些方案在保证数据安全性的同时,都产生了冗余信息,极大的占用了存储空间,且对系统性能产生影响,或者非常耗时。
在过去的20多年中,虽然计算机技术取得了巨大的发展,但是数据备份技术却没有长足进步。数据备份操作代价和成本仍然比较高,并且消耗大量时间和系统资源,数据备份的恢复时间目标和恢复点目标比较长。传统地,人们一直采用数据复制、备份、恢复等技术来保护重要的数据信息,定期对数据进行备份或复制。由于数据备份过程会影响应用性能,并且非常耗时,因此数据备份通常被安排在系统负载较轻时进行(如夜间)。另外,为了节省存储空间,通常结合全量和增量备份技术。
显然,这种数据备份方式存在一个显著的不足,即备份窗口问题。在数据备份期间,企业业务需要暂时停止对外提供服务。随着企业数据量和数据增长速度的加快,这个窗口可能会要求越来越长,这对于关键性业务系统来说是无法接受的。诸如银行、电信等机构,信息系统要求24x7不间断运行,短时的停机或者少量数据的丢失都会导致巨大的损失。因此,就需要将数据备份窗口尽可能地缩小,甚至缩小为零,数据快照(Snapshot)就是为了满足这样的需求而出现的数据保护技术。
传统的快照实现方式有两种,关于这两种的详细介绍请参考:https://www.cnblogs.com/qcloud1001/p/9322321.html:一种是第一次写时复制(Copy On FirstWrite,COFW),又简称(Copy On Write,COW)。一种是写时重定向(Redirect On write,ROW)。
COW快照具有显著的缺点,就是当打完快照之后,每次写操作都会产生整个数据块的copy。这样严重降低了数据的I/O性能,甚至一度降为0,数据卷几乎不可用。
ROW快照则没有COW快照那样的缺点。业界每个厂商对ROW快照都有自己的实现方案。然而目前业界ROW快照都还存在着各种各样的缺陷,有的打快照之后读性能受到影响,有的快照个数严重受限,有的克隆层级严重受限,且快照个数和克隆层级都会严重影响数据卷的I/O性能。
发明内容
针对现有技术的不足,本发明公开了一种基于分布式块存储的ROW快照设计方法及系统,用于解决上述问题。
本发明通过以下技术方案予以实现:
第一方面,本发明提供了一种基于分布式块存储的ROW快照设计方法,所述方法对Row卷的快照组织采用虚拟容器加快照树,在快照树设置中每个节点为一个快照,并对应唯一的快照id,用于Row卷创建或用户创建快照和访问快照时使用;所述方法同时对Row卷的数据采用两级bitmap索引进行管理,其中,所述方法进行Row卷的基本快照操作时包括创建快照、删除快照、回滚快照及克隆卷。
更进一步的,所述方法中,当创建Row卷时,系统中会创建一个卷容器id,并生成快照树的头id,该容器id下会记录快照树所有节点的id;
当用户创建快照时,基于当前快照树的头id生产一个新的id作为新的头id,并把旧的头id变为快照id,当发生快照回滚操作时,基于回滚指定快照id生产新的头id,并丢掉旧的头id,以此构建整个快照树;
更进一步的,所述方法中,当用户访问该Row卷时,基于容器id进行访问,可通过容器id找到快照树的头id,用户所有的读写操作都是基于该头id进行。
更进一步的,所述方法中,
创建快照时,基于当前头id生成新的头id,拷贝当前头id的L1chunk到新的头id上面,旧的头id变成快照id;
删除快照时,在快照树中标记该快照为删除状态,并隐藏此快照。然后在后台任务中对比L2 bitmap并回收该快照的独有数据,移动孩子继承的数据到孩子快照上面,待数据全部移动完成,则真正从快照树中删除该快照节点信息;
回滚快照时,基于要回滚快照id,生成新的头id,拷贝快照id的L1 chunk信息到新的头id上面,并删除旧的头id,后台基于L2bitmap回收旧的头id的独有数据;
克隆卷时,拷贝快照id的L1 chunk到clone卷的头id上面。
更进一步的,所述方法中,采用chunk来表示一个数据块,且每个chunk都有自己的chunk_id,方法中每个数据均以chunk的方式来保存。
更进一步的,所述方法中,Row卷的数据采用两级bitmap索引的方法来管理,其中一级bitmap记录了二级bitmap的快照id信息,二级bitmap记录了实际数据位置的快照id的信息,其中一级bitmap为L1,二级bitmap为L2。
更进一步的,所述方法中,数据块的chunk_id由快照id及该chunk在卷内的偏移量来组成,设chunk在卷内偏移量为x的位置,则该chunk_id=raw-id-idx。
更进一步的,所述方法中,当该数据块由写操作发生时,同时更新L1,L2。
第二方面,本发明提供了一种基于分布式块存储的ROW快照设计系统,所述系统用于实现第一方面所述的基于分布式块存储的ROW快照设计方法,包括
Bactl,用于记录chunk到物理磁盘的映射关系;
Mdctl,用于记录容器卷的快照树信息及某一个chunk所在的bactl;
Frctl,用于记录缓存mdctl上面记录的容器卷的快照树信息及L1 chunk内容和L2chunk内容。
更进一步的,当客户端来一次I/O请求时,根据所述frctl缓存的快照树信息及L1,L2信息获得数据所在的chunk_id:raw-x-y,然后向所述mdctl获得该raw-x-y对应的所述Bactl,然后将raw-x-y相应的I/0请求发送到对应的Bactl;
当发生一次打快照操作时,所述mdctl通知所述frctl,让其缓存的快照树信息失效,此时所述frctl上面暂停I/O,并尝试向所述mdctl加载新的快照树信息;
所述mdctl生成新的头id,并将旧的头id的L1 chunk内容拷贝到新头id的chunk上面;
更新所述mdctl对应数据库及内存中的快照树信息,此时回应所述frctl发来的加载新的快照树请求,待所述frctl加载完成新的快照树信息,I/O恢复。
本发明的有益效果为:
本发明在线快照,打快照无须中断业务;快照操作是毫秒级快照;且打快照对读性能几乎无损,同时支持上万级别的快照个数,一个快照支持上万级别的克隆卷个数,支持级联快照,理论级联层级不受限制,快照操作性能及克隆卷的I/O性能均不受级联层级影响,且可以毫秒级删除快照。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例Row容器卷快照树组织结构图;
图2是本发明实施例创建快照操作图;
图3是本发明实施例删除快照操作图;
图4是本发明实施例回滚快照图;
图5是本发明实施例克隆卷操作图;
图6是本发明实施例Row卷数据组织结构及映射关系图;
图7是本发明实施例Row卷映射关系更新图;
图8是本发明实施例系统组成及相互关系图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种基于分布式块存储的ROW快照设计方法,本实施例采用虚拟容器卷的方式,在该虚拟容器卷下记录了快照树信息。这样满足对外部只需要提供不变的虚拟容器卷,快照操作及快照树的更新都不会对外部应用体现出来,从而满足在线快照的功能。
本实施例采用二级bitmap的方式索引数据,快照操作只需要copy一级bitmap。大大减轻了快照操作的负担,实现了毫秒级快照。
本实施例克隆操作只需copy一级bitmap,在减轻克隆操作负担的同时,克隆卷与源卷之间的数据同样通过L1,L2 bitmap索引定位,减轻了快照之间,克隆卷与源卷之间的关系。实现I/0性能不受快照个数及克隆层级的影响。
本实施例数据读写方面,采用二级bitmap直接定位数据所在位置,避免了COW快照卷打快照之后的数据拷贝现象。新的写入只需要写入新的位置,同时更新L1,L2索引信息即可,无需对原有数据进行修改。且打快照后的读操作不涉及L2及数据的修改和更新。可采用相同的映射方式映射到数据位置,所以读性能几乎不受影响。
本实施例基于快照树的设计模式,能够实现毫秒级删除快照操作,且数据回收在后台异步任务中完成,搭配QoS控制,能够有效降低删除快照操作对I/O性能的影响。
本实施例在I/O模型方面,采用了mdctl主动通知缓存失效,及frctl主动拉取快照树信息的方案,能够有效保证快照操作时数据的一致性问题,同时,对I/O几乎无影响,实现毫秒级快照。
实施例2
在具体实施层面,本实施例提供了一种Row卷的快照组织方式,参照图1所示,本实施例Row卷的设计采用虚拟容器加快照树的方法,如图Row容器卷快照树组织结构所示(快照树中每个节点为一个快照,对应唯一的快照id)。
本实施例当创建一个Row卷时,系统中会创建一个卷容器id(vol-1),并生成快照树的头id。该容器id下会记录快照树所有节点的id。
本实施例当用户创建快照时,基于当前快照树的头id生产一个新的id作为新的头id。并把旧的头id变为快照id。当发生快照回滚操作时,基于回滚指定快照id生产新的头id,并丢掉旧的头id。基于这种方式,构建整个快照树。
本实施例当用户访问该Row卷时,基于容器id进行访问,可通过容器id找到快照树的头id。用户所有的读写操作都是基于该头id进行。
实施例3
在具体实施层面,本实施例提供了一种Row卷的基本快照操作,本实施例创建快照,基于当前头id生成新的头id,拷贝当前头id的L1 chunk到新的头id上面。旧的头id变成快照id。创建快照操作如图2所示。
参照图3所示,删除快照,在快照树中标记该快照为删除状态,并隐藏此快照。然后在后台任务中基于L2 bitmap对比L2 bitmap并回收该快照的独有数据,移动孩子继承的数据到孩子快照上面。待数据全部移动完成,则真正从快照树中删除该快照节点信息。
参照图4所示,回滚快照,基于要回滚快照id,生成新的头id,拷贝快照id的L1chunk信息到新的头id上面,并删除旧的头id。后台基于L2 bitmap回收旧的头id的独有数据。
参照图5所示,克隆卷:拷贝快照id的L1 chunk到clone卷的头id上面。
实施例4
在具体实施层面,本实施例提供了一种Row卷的数据管理方法,本实施例Row卷的数据采用两级bitmap索引的方法来管理,其中一级bitmap(以下简称L1)记录了二级bitmap(以下简称L2)的快照id信息。二级bitmap记录了实际数据位置的快照id的信息。
本实施例在该分布式块存储系统中采用了chunk来表示一个数据块(以下以每个数据块的大小为4M来进行说明),每个chunk都有自己的chunk_id。该系统中无论L1,L2还是实际数据,都是以chunk的方式来保存的。
本实施例以每个Row卷只有一个L1的chunk为例说明。
在L1中每8个字节(uint64)为一个单位,记录了对应L2的快照id。这样计算一个L1可管理4M/8=512K的L2 chunk
L2中同样以8个字节(uint64)为一个单位,该8字节记录了4K数据对应的快照id。所以一个L2 chunk可管理(4M/8)*4K=2G的数据
故:一个L1 chunk可管理512K*2G=1P的数据空间(增加L1的个数或者增加一个chunk对应的数据块大小,均可以增加卷容量的上限)。
本实施例以下说明L1,L2的使用方法及与实际数据的映射关系,当快照id为1时。
L1 chunk对应的chunk_id为(L1-id-idx):L1-1-0
L2 chunk对应的chunk_id为(L2-id-idx):L2-1-0L2-1-1...L2-1-524287
数据块的chunk_id由快照id及该chunk在卷内的偏移量来组成。例如:某chunk在卷内偏移量为256M的位置。则该chunk_id(raw-id-idx)=raw-1-64。
假设当前头id为32。那么要读取偏移量为2G+256M,长度为4K的数据时,根据上述对应关系,可做如下计算:
数据块对应的idx为:(2G+256M)/4M=576,所以该数据块chunk_id为raw-x-575,x为写该chunk时的快照id。需要通过L2去获取。
L2 chunk的idx为:(2G+256M)/2G=1。该L2chunk_id为L2-y-1,y为更新该L2时的快照id,需要通过L1去获取.
L2内对应的8字节单元为:(2G+256M)%2G/4K=65536
L1内对应的8字节单元为:L2的idx。
如图6所示,根据L1内的记录idx为1的L2的快照id为30。所以y=30,对应L2的chunk_id=L2-30-1。
此时需要去L2-30-1上面去读取L2信息,根据L2内对应8字节单元65536保存的信息为24。所以x=24,数据的真实位置为raw-24-576上面的第一个4k。
即,由上面计算方法及L1,L2信息可获得数据所在位置。
本实施例中,当该数据块由写操作发生时,写操作将发生在当前头id对用的数据块位置raw-32-576上面,而不修改raw-24-576的内容。此时则需要将L2中对应的8字节信息更新,24->32。若不修改,读取操作方法依然会定位到raw-24-576的数据。同时因修改会影响到原有快照数据的定位。因L2中对应信息已经修改为32,所以根据L1,L2访问不到raw-24-576的数据,而访问到了raw-32-576的数据。
本实施例为了解决这种写操作导致bitmap信息的变更,所以当由写操作时,需要同时更新L1,L2。如图7所示,如发现bitmap需要由24->32时,需要对L2进行copy,即copy原来L2到当前头id的L2。由L2-30-1copy到L2-32-1,然后再更新65536的位置24到32。同时更新L1中idx为1记录的30变为32。
这样,当再次对卷读操作时,由L1 idx为32定位到L2-32-1。然后由L2-32-1中65536的记录32访问到raw-32-576。
此时通过快照因上一个快照的L1信息并没有修改,所以通过上一个快照的L1依然可以访问到L2-30-1,从而访问到raw-24-576。以这样的方式,每次写操作不修改原有数据,而仅仅更新bitmap的方式,就可以完成读写新的数据,而不对快照数据造成影响。
同样,在上述示例中,L2-32-1中再次有索引信息变更,则不需要再更新L1,因为L1中idx为1的位置已经更新为32。所以,打快照之后,索引信息的更新并不是很频繁。只有当每个索引第一次变更时,才更新。所以,对性能影响很小。
实施例5
参照图8所示,本实施例提供一种基于分布式块存储的ROW快照设计系统,包括
Bactl记录了chunk到物理磁盘的映射关系。如raw-24-64对应的数据在磁盘的哪个位置。
Mdctl记录了容器卷的快照树信息,及某一个chunk所在的bactl。
Frctl记录缓存了mdctl上面记录的容器卷的快照树信息,及L1chunk内容和L2chunk内容。
本实施例中,当客户端来一次I/O请求时,根据frctl缓存的快照树信息及L1,L2信息获得数据所在的chunk_id:raw-x-y,然后向mdctl获得该raw-x-y对应的bactl,然后将raw-x-y相应的I/0请求发送到对应的bactl。
本实施例中,当发生一次打快照操作时,mdctl会通知frctl,让其缓存的快照树信息失效,此时frctl上面暂停I/O,并尝试向mdctl加载新的快照树信息。
然后mdctl生成新的头id。并将旧的头id的L1 chunk内容拷贝到新头id的chunk上面。然后更新mdctl对应数据库及内存中的快照树信息。此时可回应frctl发来的加载新的快照树请求。待frctl加载完成新的快照树信息,I/O恢复。
综上,本发明在线快照,打快照无须中断业务,由Row在线快照一致性解决方案及容器卷设计模式描述可知,打快照只需要暂停frctl上面的I/O操作,等待mdctl上面的快照树操作更新完成及一个L1 chunk的内容拷贝完成即可。而快照树的更新及4M数据的copy都是毫秒级任务。所以,对于frctl来说秒级暂停对I/O是无感知的,且外部访问的虚拟容器id不变。所以可以实现对业务无中断的在线快照。且能够保证数据一致性问题。
本发明毫秒级快照。由上所述,每次快照操作只有快照树信息的更新及L1 chunk的copy.均为毫秒级任务。所以可以实现毫秒级快照。
本发明打快照对读性能几乎无损,由上述数据管理方法及打快照操作可知,打快照只是copy了L1 bitmap,L2及数据都未进行移动和修改,所以读时,可以通过相同的映射方法映射到数据位置,所以读性能几乎不受影响。
本发明支持上万级别的快照个数。由上述数据管理方法中所述,数据的管理是采用二级bitmap的方法进行索引定位的。所以快照的个数,不会对索引的复杂度带来任何负担。所以快照个数不会对卷性能造成任何影响。
本发明一个快照支持上万级别的克隆卷个数。由上述数据管理方法及快照操作部分描述可知,发生克隆时,同样是copy一个L1 chunk到一个新的克隆卷的头id上面。所造成的影响和创建快照类似,都不会对卷性能带来任何影响。
本发明支持级联快照,理论级联层级不受限制。由上述数据管理方法及克隆卷操作可知,级联快照,只涉及到L1 chunk的拷贝,而没有其他额外操作。所以理论上与创建快照相同,所以理论上级联层级是不受限制的。
本发明快照操作性能及克隆卷的I/O性能均不受级联层级影响。由上述数据管理方法及快照操作可知,级联快照,只涉及到L1 chunk的拷贝,而数据定位时通过bitmap直接进行索引定位的,绕过了繁杂的级联关系,所以级联快照对卷的性能不会造成任何影响。
本发明毫秒级删除快照。由快照操作描述可知,删快照操作只需要隐藏快照树中的快照节点,即可完成快照删除操作,而数据回收是通过后台任务异步完成,且搭配QoS的控制,能耐有效降低删快照操作对数据卷I/O性能的影响。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种基于分布式块存储的ROW快照设计方法,其特征在于,所述方法对Row卷的快照组织采用虚拟容器加快照树,在快照树设置中每个节点为一个快照,并对应唯一的快照id,用于Row卷创建或用户创建快照和访问快照时使用;所述方法同时对Row卷的数据采用两级bitmap索引进行管理,其中,所述方法进行Row卷的基本快照操作时包括创建快照、删除快照、回滚快照及克隆卷;
当创建Row卷时,系统中会创建一个卷容器id,并生成快照树的头id,该容器id下会记录快照树所有节点的id;
当用户创建快照时,基于当前快照树的头id生产一个新的id作为新的头id,并把旧的头id变为快照id,当发生快照回滚操作时,基于回滚指定快照id生产新的头id,并丢掉旧的头id,以此构建整个快照树;
当用户访问该Row卷时,基于容器id进行访问,可通过容器id找到快照树的头id,用户所有的读写操作都是基于该头id进行;
创建快照时,基于当前头id生成新的头id,拷贝当前头id的L1 chunk到新的头id上面,旧的头id变成快照id;
删除快照时,在快照树中标记该快照为删除状态,并隐藏此快照, 然后在后台任务中对比L2 bitmap并回收该快照的独有数据,移动孩子继承的数据到孩子快照上面,待数据全部移动完成,则真正从快照树中删除该快照节点信息;
回滚快照时,基于要回滚快照id,生成新的头id,拷贝快照id的L1 chunk信息到新的头id上面,并删除旧的头id,后台基于L2 bitmap回收旧的头id的独有数据;
克隆卷时,拷贝快照id的L1 chunk到clone卷的头id上面。
2.根据权利要求1所述的基于分布式块存储的ROW快照设计方法,其特征在于,所述方法中,采用chunk来表示一个数据块,且每个chunk都有自己的chunk_id,方法中每个数据均以chunk的方式来保存。
3.根据权利要求1所述的基于分布式块存储的ROW快照设计方法,其特征在于,所述方法中,Row卷的数据采用两级bitmap索引的方法来管理,其中一级bitmap记录了二级bitmap的快照id信息,二级bitmap记录了实际数据位置的快照id的信息,其中一级bitmap为L1,二级bitmap为L2。
4.根据权利要求3所述的基于分布式块存储的ROW快照设计方法,其特征在于,所述方法中,数据块的chunk_id由快照id及该chunk在卷内的偏移量来组成,设chunk在卷内偏移量为x的位置,则该chunk_id=raw id idx。
5.根据权利要求3所述的基于分布式块存储的ROW快照设计方法,其特征在于,所述方法中,当该数据块由写操作发生时,同时更新L1,L2。
6.一种基于分布式块存储的ROW快照设计系统,所述系统用于实现如权利要求1- 5任一项所述的基于分布式块存储的ROW快照设计方法,其特征在于,包括
Bactl,用于记录chunk到物理磁盘的映射关系;
2Mdctl,用于记录容器卷的快照树信息及某一个chunk所在的bactl;Frctl,用于记录缓存mdctl上面记录的容器卷的快照树信息及L1 chunk内容和L2chunk内容。
7.根据权利要求6所述的基于分布式块存储的ROW快照设计系统,其特征在于,当客户端来一次I/O请求时,根据所述frctl缓存的快照树信息及L1,L2信息获得数据所在的chunk_id:raw x y,然后向所述mdctl获得该raw x y对应的所述Bactl,然后将raw x y相应的I/0请求发送到对应的Bactl;
当发生一次打快照操作时,所述mdctl通知所述frctl,让其缓存的快照树信息失效,此时所述frctl上面暂停I/O,并尝试向所述mdctl加载新的快照树信息;
所述mdctl生成新的头id,并将旧的头id的L1 chunk内容拷贝到新头id的chunk上面;
更新所述mdctl对应数据库及内存中的快照树信息,此时回应所述frctl发来的加载新的快照树请求,待所述frctl加载完成新的快照树信息,I/O恢复。
CN202111411871.9A 2021-11-25 2021-11-25 基于分布式块存储的row快照设计方法及系统 Active CN114116312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111411871.9A CN114116312B (zh) 2021-11-25 2021-11-25 基于分布式块存储的row快照设计方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111411871.9A CN114116312B (zh) 2021-11-25 2021-11-25 基于分布式块存储的row快照设计方法及系统

Publications (2)

Publication Number Publication Date
CN114116312A CN114116312A (zh) 2022-03-01
CN114116312B true CN114116312B (zh) 2022-08-09

Family

ID=80372869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111411871.9A Active CN114116312B (zh) 2021-11-25 2021-11-25 基于分布式块存储的row快照设计方法及系统

Country Status (1)

Country Link
CN (1) CN114116312B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617802A (zh) * 2022-10-26 2023-01-17 上海爱数信息技术股份有限公司 一种全量快照快速生成方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2821925B1 (en) * 2012-08-09 2017-05-10 Huawei Technologies Co., Ltd. Distributed data processing method and apparatus
CN105808449B (zh) * 2014-12-31 2018-11-27 中国电信股份有限公司 一种用于虚拟机的虚拟存储映像版本管理方法和系统
CN105988723A (zh) * 2015-02-12 2016-10-05 中兴通讯股份有限公司 一种快照处理方法及装置
CN107291391B (zh) * 2017-06-21 2021-03-09 郑州云海信息技术有限公司 一种用于分布式存储系统的数据处理方法和系统
CN107798130B (zh) * 2017-11-17 2020-08-07 广西广播电视信息网络股份有限公司 一种分布式存储快照的方法
CN110515543B (zh) * 2019-08-02 2021-02-19 星辰天合(北京)数据科技有限公司 基于对象存储桶的快照方法、装置和系统
CN111552437B (zh) * 2020-04-22 2024-03-15 上海天玑科技股份有限公司 一种应用于分布式存储系统的快照方法及快照装置
CN111722800A (zh) * 2020-05-29 2020-09-29 浪潮电子信息产业股份有限公司 一种分布式存储系统row快照实现方法及相关组件

Also Published As

Publication number Publication date
CN114116312A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
CN100583096C (zh) 管理数据删除的方法
US8055864B2 (en) Efficient hierarchical storage management of a file system with snapshots
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US6959310B2 (en) Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
US7502801B2 (en) Providing a snapshot of a subset of a file system
US7216135B2 (en) File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US6748504B2 (en) Deferred copy-on-write of a snapshot
US7085785B2 (en) Writable file system snapshot with ditto address feature
US7043503B2 (en) Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
EP1918836B1 (en) Apparatus and method for a hardware-based file system
US6421767B1 (en) Method and apparatus for managing a storage system using snapshot copy operations with snap groups
US9183129B2 (en) Method and system for managing large write-once tables in shadow page databases
US8214377B2 (en) Method, system, and program for managing groups of objects when there are different group types
US20050010592A1 (en) Method and system for taking a data snapshot
US20040030951A1 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US20040030846A1 (en) Data storage system having meta bit maps for indicating whether data blocks are invalid in snapshot copies
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
US7549029B2 (en) Methods for creating hierarchical copies
CN114116312B (zh) 基于分布式块存储的row快照设计方法及系统
CN100403269C (zh) 用于管理关于目标卷与源卷之间关系的信息的方法和系统
CN116490847A (zh) 支持分布式文件系统中的垃圾收集的虚拟数据复制
CN116483284A (zh) 一种读写虚拟硬盘的方法、装置、介质及电子设备
KR20180054422A (ko) 파일 기반 데이터베이스의 저널링 방법 및 장치
Chong et al. Rapid Recovery of Very Large Memory Resident Data Objects

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Design Method and System for ROW Snapshots Based on Distributed Block Storage

Effective date of registration: 20230906

Granted publication date: 20220809

Pledgee: Zhongguancun Branch of Bank of Beijing Co.,Ltd.

Pledgor: BEIJING DADAO YUNXING TECHNOLOGY Co.,Ltd.

Registration number: Y2023980055521

PE01 Entry into force of the registration of the contract for pledge of patent right