CN115129253A - 一种快照处理方法、装置、设备及介质 - Google Patents
一种快照处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115129253A CN115129253A CN202210764554.3A CN202210764554A CN115129253A CN 115129253 A CN115129253 A CN 115129253A CN 202210764554 A CN202210764554 A CN 202210764554A CN 115129253 A CN115129253 A CN 115129253A
- Authority
- CN
- China
- Prior art keywords
- data block
- target
- bits
- size
- input
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 235000019580 granularity Nutrition 0.000 abstract description 68
- 238000000034 method Methods 0.000 abstract description 29
- 235000013339 cereals Nutrition 0.000 description 20
- 238000004891 communication Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000020985 whole grains Nutrition 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Abstract
本申请公开了一种快照处理方法、装置、设备及介质,涉及计算机技术领域,该方法包括:设置第一数据块大小,基于第一数据块大小和源卷的大小确定源卷对应的比特的第一数量以创建目标位图;基于主机的输入输出模型对应的原始输入输出粒度与第一数据块大小的大小关系确定第二数据块大小,确定第二数据块大小的目标数据块对应的比特的第二数量;根据目标位图中目标数据块对应的第二数量个比特的目标数值,触发将目标数据块对应的源卷中的数据拷贝至目标卷中的操作和/或向源卷下发所述输入输出模型的操作。本申请利用原始输入输出粒度来灵活调整第二数据块大小,能够适应各种原始输入输出粒度的输入输出模型,提高主机输入输出的性能。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种快照处理方法、装置、设备及介质。
背景技术
当前,快照技术是指某个卷在某个时刻的拷贝,在灾备领域被广泛使用。快照技术将卷分割成一样尺寸的数据块(grain),对源卷打快照后,在对源卷某个grain首次写数据时,需要进行写时拷贝(COW,Copy On Write)操作,即源卷某个grain的数据第一次被修改的时候,将源卷这个grain的数据拷贝到目标卷之后,再进行源卷grain的修改。
快照技术会设置位图,一个grain对应位图中的一位,如果该位(bit)为1则表示grain已经完成拷贝(已经进行了COW操作),否则表示未完成,从而避免同一grain的拷贝操作。如果grain的大小(grainsize)大于主机IO(Input/Output,输入输出)的粒度,需要将整个grain进行COW,越大的grainsize意味着更大的写放大。假设grainsize是256KB,主机下发的IO是4KB,在做COW时需要将256KB的数据从源卷拷贝到目标卷;如果grainsize小于主机IO的粒度,则需要将IO拆分成若干个grainsize的小块,进行多次COW;这都会影响主机IO的性能。
综上所述,如何实现根据主机输入输出粒度调整快照的数据块大小,以提高主机输入输出性能是当前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种快照处理方法、装置、设备及介质,能够实现根据主机输入输出粒度调整快照的数据块大小,以提高主机输入输出性能。其具体方案如下:
第一方面,本申请公开了一种快照处理方法,包括:
设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;
基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;
根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
可选的,所述基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,包括:
若主机的输入输出模型对应的原始输入输出粒度大于所述第一数据块大小,则计算所述原始输入输出粒度除以所述第一数据块大小得到原始数值,并对所述原始数值进行向上取整得到取整数值,然后基于所述取整数值和所述第一数据块大小确定源卷对应的第二数据块大小;
若主机的输入输出模型对应的原始输入输出粒度不大于所述第一数据块大小,则将所述第一数据块大小确定为所述源卷对应的所述第二数据块大小。
可选的,所述根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作,包括:
检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1,则触发向所述源卷下发所述输入输出模型的操作;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0,则触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和向所述源卷下发所述输入输出模型的操作;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1,则将连续且目标数值相同的所述比特作为一组,并确定该组所述比特对应的所述基础数据块,然后基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,遍历所述第二数量个所述比特后向所述源卷下发所述输入输出模型。
可选的,所述基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,包括:
若该组所述比特的目标数值全部为0,则将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中;
若该组所述比特的目标数值全部为1,则不必将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中。
可选的,所述检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,包括:
根据所述第二数量将所述比特分为若干组,并计算每组所述比特对应的整型数值;
若所述整型数值为第一数值,则将所述整型数值对应的该组所述比特的当前数值设为0,若所述整型数值为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为1,若所述整型数值为不为第二数值且不为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为第三数值;
根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值。
可选的,所述根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,包括:
若每组所述比特的当前数值全部为0,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0;
若每组所述比特的当前数值全部为1,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1;
若每组所述比特的当前数值中存在所述第三数值,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1。
可选的,所述设置第一数据块大小,包括:
基于所述主机的所述输入输出模型对应的最小输入输出粒度设置第一数据块大小。
第二方面,本申请公开了一种快照处理装置,包括:
目标位图创建模块,用于设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;
第二数据块大小确定模块,用于基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小;
第二数量确定模块,用于确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;
操作触发模块,用于根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述公开的快照处理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的快照处理方法。
可见,本申请设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。本申请利用第一数据块大小和原始输入输出粒度来灵活调整第二数据块大小,能够适应各种原始输入输出粒度的输入输出模型,提高主机输入输出的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种快照处理方法流程图;
图2为本申请提供的一种具体的快照处理方法流程图;
图3为本申请提供的一种快照处理装置结构示意图;
图4为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前快照技术会设置位图,一个grain对应位图中的一位,如果该位(bit)为1则表示grain已经完成拷贝(已经进行了COW操作),否则表示未完成,从而避免同一grain的拷贝操作。如果grain的大小(grainsize)大于主机IO(Input/Output,输入输出)的粒度,需要将整个grain进行COW,越大的grainsize意味着更大的写放大。假设grainsize是256KB,主机下发的IO是4KB,在做COW时需要将256KB的数据从源卷拷贝到目标卷;如果grainsize小于主机IO的粒度,则需要将IO拆分成若干个grainsize的小块,进行多次COW;这都会影响主机IO的性能。
为了克服上述问题,本申请提供了一种快照处理方案,能够根据主机输入输出粒度调整快照的数据块大小,以提高主机输入输出性能。
参见图1所示,本申请实施例公开了一种快照处理方法,该方法包括:
步骤S11:设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特。
本申请实施例中,进行快照处理的前提是创建好快照,包括建立快照映射关系和创建目标位图。具体在设置第一数据块大小之前建立好源卷与目标卷之间的快照映射关系,建立好映射关系之后,设置第一数据块大小(baseGrainsize),并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特(bit)的第一数量以创建目标位图。需要指出的是,所述目标位图的大小由所述比特的个数表示,目标位图的比特个数与所述第一数据块大小的基础数据块(baseGrain)的个数一致;所述基础数据块为拷贝(COW)的最小单元。
需要指出的是,创建后目标位图之后还需要将所述目标位图对应的所有比特的目标数值全部初始化为0。
需要指出的是,基于所述主机的所述输入输出模型对应的最小输入输出粒度设置第一数据块大小。
步骤S12:基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量。
本申请实施例中,所述基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小(grainsize)的步骤存在两种情况。
在一种具体实施例中,若主机的输入输出模型对应的原始输入输出粒度(ioSize)大于所述第一数据块大小,则计算所述原始输入输出粒度除以所述第一数据块大小得到原始数值,并对所述原始数值进行向上取整得到取整数值,然后基于所述取整数值和所述第一数据块大小确定源卷对应的第二数据块大小。
需要指出的是,如果ioSize(原始输入输出粒度)大于baseGrainsize(第一数据块大小),则令n=(ioSize-1)/baseGrainsize+1,grainsize=n*baseGrainsize,这样grainsize就是baseGrainsize的整数倍;其中,式中/表示整除;n是baseGrain的个数;Grainsize是快照处理数据的粒度。
在另一种具体实施例中,若主机的输入输出模型对应的原始输入输出粒度不大于所述第一数据块大小,则将所述第一数据块大小确定为所述源卷对应的所述第二数据块大小。
需要指出的是,如果ioSize(原始输入输出粒度)小于或等于baseGrainsize(第一数据块大小),则令n=1,grainsize=baseGrainsize。Grainsize是快照处理数据的粒度,n是baseGrain的个数。
步骤S13:根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
本申请实施例中,每次需要进行COW处理时,会先判断主机IO的粒度大小,根据主机IO粒度计算grainsize,然后将源卷对应grainsize的数据拷贝到目标卷上,具体的,根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
可见,本申请设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。由此可见,本申请利用第一数据块大小和原始输入输出粒度来灵活调整第二数据块大小,能够适应各种原始输入输出粒度的输入输出模型,提高主机输入输出的性能;本申请利用最小输入输出粒度确定第一数据块大小,有利于减小原始输入输出粒度和第二数据块大小的差异,提高一致性,进一步提高主机输入输出的性能。
参见图2所示,本申请实施例公开了一种具体的快照处理方法,该方法包括:
步骤S21:设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特。
本申请实施例中,进行快照处理的前提是创建好快照,包括建立快照映射关系和创建目标位图。具体在设置第一数据块大小之前建立好源卷与目标卷之间的快照映射关系,建立好映射关系之后,设置第一数据块大小(baseGrainsize),并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特(bit)的第一数量以创建目标位图。
步骤S22:基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量。
本申请实施例中,所述基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小(grainsize)的步骤存在两种情况。
在一种具体实施例中,若主机的输入输出模型对应的原始输入输出粒度(ioSize)大于所述第一数据块大小,则计算所述原始输入输出粒度除以所述第一数据块大小得到原始数值,并对所述原始数值进行向上取整得到取整数值,然后基于所述取整数值和所述第一数据块大小确定源卷对应的第二数据块大小。
在另一种具体实施例中,若主机的输入输出模型对应的原始输入输出粒度不大于所述第一数据块大小,则将所述第一数据块大小确定为所述源卷对应的所述第二数据块大小。
步骤S23:检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值。
本申请实施例中,所述检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值的具体过程为:根据所述第二数量将所述比特分为若干组,并计算每组所述比特对应的整型数值;若所述整型数值为第一数值,则将所述整型数值对应的该组所述比特的当前数值设为0,若所述整型数值为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为1,若所述整型数值为不为第二数值且不为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为第三数值;根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值。需要指出的是,进行分组判断,与对每个比特进行判断相比,提高了判断速度。需要指出的是,所述第三数值为0和1之外的任意数值;所述第一数值为0;需要指出的是,若每组的比特个数未3,所述第二数值为二进制111对应的整型数值。
在一种具体实施例中,由于long类型64位是目前CPU可以处理的最大整形长度,因此以64为基数来处理,每64个比特为一组,那么n个bit将需要循环(n-1)/64+1次,记为num。若bit个数n=288,bit的标号为0~287,则num为5。另索引index=0,index<num-1时,读取标号为index*64~(index+1)*64-1对应bit的整数值(64bit的整型数值),如果整数值为0,则记录第index个64bit的value为0;如果整数值为0xFFFFFFFFFFFFFFFF,则记录value为1;否则,记录value为2。将index++,跳转至index<num-1时的步骤直至index==num-1。当index==num-1时,如果最后一组比特不足64个,则在最后补上64-n%64个bit,凑够64的整数,并将补上的bit全都置为0,读取最后一个64bit的整数值,如果整数值为0,则记录第index个64bit的value为0;如果整数值不为0,则将补上的bit全都置为1,读取最后一个64bit的整数值,如果整数值为0xFFFFFFFFFFFFFFFF,则记录第index个64bit的value为1;如果整数值不为0xFFFFFFFFFFFFFFFF,则记录value为2。需要指出的是,此具体实施例中所述第三数值为2。
需要指出的是,比特的第二数量为288,且每组比特个数为64时,第一组比特为标号0至63的比特,第二组比特为标号为64至127的比特,第三组比特为标号为128至191的比特,第四组为192至255的比特,第三组为256至287的比特与另外添加的32个比特。
本申请实施例中,所述根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值的具体过程为:若每组所述比特的当前数值全部为0,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0;若每组所述比特的当前数值全部为1,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1;若每组所述比特的当前数值中存在所述第三数值,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1。
步骤S24:若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1,则触发向所述源卷下发所述输入输出模型的操作。
在一种具体实施例中,如果读取到的num个64bit的value值均为1,则直接下发主机IO。
步骤S25:若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0,则触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和向所述源卷下发所述输入输出模型的操作。
在一种具体实施例中,如果读取到的num个64bit的value值均为0,则从源卷读取grainsize个bit对应的数据,拷贝到目标卷上,然后再下发主机IO。
步骤S26:若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1,则将连续且目标数值相同的所述比特作为一组,并确定该组所述比特对应的所述基础数据块,然后基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,遍历所述第二数量个所述比特后向所述源卷下发所述输入输出模型。
本申请实施例中,将连续且目标数值相同的所述比特作为一组的过程可以通过依照先后顺序遍历第二数量个比特,每当遍历到当前比特的目标数值与前一个比特的目标数值不同时,将前边与所述前一个比特具有相同目标数值且连续的所有比特作为一组,并确定该组所述比特对应的所述基础数据块,然后基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,当遍历所述第二数量个所述比特后向所述源卷下发所述输入输出模型。需要指出的是,所述基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中的步骤,具体为:若该组所述比特的目标数值全部为0,则将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中;若该组所述比特的目标数值全部为1,则不必将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中。
在一种具体实施例中,遍历n个bit,令start=0、end=0、oldValue=-1,遍历i的取值范围为0~n-1:读取标号为i个bit的值为value,如果oldValue不为-1,则和oldValue比较,如果相等则令end=i、oldValue=value;如果不相等则进行start~end个bit的COW,然后令start=i、end=i。将i=i+1,继续进行下一个bit的比较。如果oldValue等于-1,则直接将i=i+1,继续进行下一个bit的比较直至遍历完n各bit。
可见,本申请设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值;若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1,则触发向所述源卷下发所述输入输出模型的操作;若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0,则触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和向所述源卷下发所述输入输出模型的操作;若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1,则将连续且目标数值相同的所述比特作为一组,并确定该组所述比特对应的所述基础数据块,然后基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,遍历所述第二数量个所述比特后向所述源卷下发所述输入输出模型。由此可见,本申请利用第一数据块大小和原始输入输出粒度来灵活调整第二数据块大小,能够适应各种原始输入输出粒度的输入输出模型,提高主机输入输出的性能;本申请会有一个全0或全1的检查,一次性进行整个主机输入输出粒度的拷贝,可以避免快照进行多次拷贝才能开始主机输入输出;另外,对于非全0且非全1的场景,也会拼凑连续等值的相邻比特,在一次拷贝中尽可能覆盖更多的数据。这种处理方法可以大大减小拷贝的次数,从而提高的主机输入输出的性能。
本申请的主要流程为,第一创建快照,也即设置一个baseGrainsize(参考主机IO模型中最小的IO粒度),根据卷的大小和baseGrainsize计算位图的大小,即位图的bit个数,将快照的位图中所有bit全部初始化为0;第二主机IO触发的写时拷贝处理,也即(1)主机下发IO之后,首先计算grainsize的大小。假设IO的粒度为ioSize,如果ioSize大于baseGrainsize,则令grainsize=(ioSize/baseGrainsize+1)*baseGrainsize;如果ioSize小于或等于baseGrainsize,则令grainsize=ioSize;(2)判断grainsize对应所有位图的bit是否为0,如果为0,则进行COW,将源卷对应数据拷贝到目标卷,否则跳过COW;(3)将grainsize对应的所有位图中为0的bit置为1;(4)对源卷下发主机IO。
本申请通过提出一种变长grainsize的快照处理方法,可以支持快照进行COW操作的grainsize根据主机IO的粒度进行调整。和传统只能有一种grainsize的快照相比,可以在同一个快照中根据IO粒度来灵活调整COW的粒度,优势在于:
(1)对较小粒度的主机IO影响更小。对于粒度比较小的主机IO,快照的baseGrainsize以主机IO模型的最小粒度为基准,可以避免一次性进行太大grain的COW,从而造成不必要的写放大。
(2)对较大粒度的主机IO影响更小。对于粒度较大的主机IO,会首先读取对应baseGrain的所有位图bit,首先会有一个全0或全1的检查,更加快速的判断,一次性进行整个主机IO粒度的COW,可以避免快照进行多次COW才能开始主机IO;对于非全0且非全1的场景,也会拼凑连续等值的相邻bit,在一次COW中尽可能覆盖更多的数据。这种处理方法可以大大减小COW的次数,从而提高较大粒度的主机IO性能。
(3)总的来说,在同一个快照中根据IO粒度来灵活调整COW的粒度,可以适应各种粒度的主机IO,提高主机IO性能,减小快照造成的性能衰减。
参见图3所示,本申请实施例公开了一种快照处理装置,包括:
目标位图创建模块11,用于设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;
第二数据块大小确定模块12,用于基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小;
第二数量确定模块13,用于确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;
操作触发模块14,用于根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
可见,本申请设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。本申请利用第一数据块大小和原始输入输出粒度来灵活调整第二数据块大小,能够适应各种原始输入输出粒度的输入输出模型,提高主机输入输出的性能。
进一步的,本申请实施例还提供了一种电子设备,图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、输入输出接口24、通信接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任意实施例公开的快照处理方法的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储器22作为可以包括作为运行内存的随机存取存储器和用于外部内存的存储用途的非易失性存储器,其上的存储资源包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制源主机上电子设备20上的各硬件设备以及计算机程序222,操作系统221可以是Windows、Unix、Linux等。计算机程222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的快照处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
本实施例中,所述输入输出接口24具体可以包括但不限于USB接口、硬盘读取接口、串行接口、语音输入接口、指纹输入接口等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的快照处理方法。
关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述快照处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的快照处理方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种快照处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种快照处理方法,其特征在于,包括:
设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;
基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,并确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;
根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
2.根据权利要求1所述的快照处理方法,其特征在于,所述基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小,包括:
若主机的输入输出模型对应的原始输入输出粒度大于所述第一数据块大小,则计算所述原始输入输出粒度除以所述第一数据块大小得到原始数值,并对所述原始数值进行向上取整得到取整数值,然后基于所述取整数值和所述第一数据块大小确定源卷对应的第二数据块大小;
若主机的输入输出模型对应的原始输入输出粒度不大于所述第一数据块大小,则将所述第一数据块大小确定为所述源卷对应的所述第二数据块大小。
3.根据权利要求1所述的快照处理方法,其特征在于,所述根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作,包括:
检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1,则触发向所述源卷下发所述输入输出模型的操作;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0,则触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和向所述源卷下发所述输入输出模型的操作;
若所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1,则将连续且目标数值相同的所述比特作为一组,并确定该组所述比特对应的所述基础数据块,然后基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,遍历所述第二数量个所述比特后向所述源卷下发所述输入输出模型。
4.根据权利要求3所述的快照处理方法,其特征在于,所述基于该组所述比特的目标数值,判断是否将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中,包括:
若该组所述比特的目标数值全部为0,则将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中;
若该组所述比特的目标数值全部为1,则不必将所述基础数据块对应的所述源卷中的数据拷贝至目标卷中。
5.根据权利要求3所述的快照处理方法,其特征在于,所述检测所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,包括:
根据所述第二数量将所述比特分为若干组,并计算每组所述比特对应的整型数值;
若所述整型数值为第一数值,则将所述整型数值对应的该组所述比特的当前数值设为0,若所述整型数值为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为1,若所述整型数值为不为第二数值且不为第二数值,则将所述整型数值对应的该组所述比特的所述当前数值设为第三数值;
根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值。
6.根据权利要求5所述的快照处理方法,其特征在于,所述根据每组所述比特的所述当前数值,确定所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,包括:
若每组所述比特的当前数值全部为0,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为0;
若每组所述比特的当前数值全部为1,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值全部为1;
若每组所述比特的当前数值中存在所述第三数值,则所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值不全部为0且不全部为1。
7.根据权利要求1至6任一项所述的快照处理方法,其特征在于,所述设置第一数据块大小,包括:
基于所述主机的所述输入输出模型对应的最小输入输出粒度设置第一数据块大小。
8.一种快照处理装置,其特征在于,包括:
目标位图创建模块,用于设置第一数据块大小,并基于所述第一数据块大小和源卷的大小确定所述源卷对应的比特的第一数量以创建目标位图;一个所述第一数据块大小的基础数据块对应一所述比特;
第二数据块大小确定模块,用于基于主机的输入输出模型对应的原始输入输出粒度与所述第一数据块大小的大小关系确定第二数据块大小;
第二数量确定模块,用于确定所述第二数据块大小的目标数据块对应的所述比特的第二数量;
操作触发模块,用于根据所述目标位图中所述目标数据块对应的所述第二数量个所述比特的目标数值,触发将所述目标数据块对应的所述源卷中的数据拷贝至目标卷中的操作和/或向所述源卷下发所述输入输出模型的操作。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的快照处理方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的快照处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764554.3A CN115129253A (zh) | 2022-06-30 | 2022-06-30 | 一种快照处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764554.3A CN115129253A (zh) | 2022-06-30 | 2022-06-30 | 一种快照处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129253A true CN115129253A (zh) | 2022-09-30 |
Family
ID=83381853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210764554.3A Pending CN115129253A (zh) | 2022-06-30 | 2022-06-30 | 一种快照处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129253A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115826878A (zh) * | 2023-02-14 | 2023-03-21 | 浪潮电子信息产业股份有限公司 | 一种写时拷贝方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-06-30 CN CN202210764554.3A patent/CN115129253A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115826878A (zh) * | 2023-02-14 | 2023-03-21 | 浪潮电子信息产业股份有限公司 | 一种写时拷贝方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8001273B2 (en) | Parallel processing of input data to locate landmarks for chunks | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
US9965196B2 (en) | Resource reservation for storage system metadata updates | |
US9665485B2 (en) | Logical and physical block addressing for efficiently storing data to improve access speed in a data deduplication system | |
JP5547727B2 (ja) | ボリュームへの変更を追跡するシステムおよび方法 | |
US10628200B2 (en) | Base state for thin-provisioned volumes | |
US11042453B2 (en) | Database journaling method and apparatus | |
CN111124254B (zh) | 调度存储空间回收请求的方法、电子设备和程序产品 | |
CN112445729B (zh) | 操作地址确定方法、PCIe系统、电子设备及存储介质 | |
CN107135662B (zh) | 一种差异数据备份方法、存储系统和差异数据备份装置 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
WO2021104383A1 (zh) | 数据备份的方法和装置、设备和存储介质 | |
CN115237599B (zh) | 一种渲染任务处理方法和装置 | |
CN115129253A (zh) | 一种快照处理方法、装置、设备及介质 | |
US9575680B1 (en) | Deduplication rehydration | |
US10963182B2 (en) | System and method for on-demand recovery points | |
US10795821B2 (en) | Memory efficient key-value store | |
US9471246B2 (en) | Data sharing using difference-on-write | |
CN110955388A (zh) | 一种存储服务器及其数据存储方法、装置和存储介质 | |
CN111722800A (zh) | 一种分布式存储系统row快照实现方法及相关组件 | |
CN115951845A (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
CN107018163B (zh) | 一种资源配置方法和装置 | |
CN106202262B (zh) | 一种信息处理方法及电子设备 | |
US10423494B2 (en) | Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage | |
CN115033337A (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 |