CN110286856B - 卷克隆方法、装置、电子设备及机器可读存储介质 - Google Patents

卷克隆方法、装置、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN110286856B
CN110286856B CN201910522075.9A CN201910522075A CN110286856B CN 110286856 B CN110286856 B CN 110286856B CN 201910522075 A CN201910522075 A CN 201910522075A CN 110286856 B CN110286856 B CN 110286856B
Authority
CN
China
Prior art keywords
volume
data
target
source
cloning
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
CN201910522075.9A
Other languages
English (en)
Other versions
CN110286856A (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN201910522075.9A priority Critical patent/CN110286856B/zh
Publication of CN110286856A publication Critical patent/CN110286856A/zh
Application granted granted Critical
Publication of CN110286856B publication Critical patent/CN110286856B/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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

本申请提供一种卷克隆方法、装置、电子设备及机器可读存储介质。在本申请中,响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷;仅基于一个共享缓冲区而不是多个共享缓冲区,将源卷的数据拷贝到若干目标卷,从而实现在卷克隆时,减少了对源卷的读IO,提高了卷克隆效率。

Description

卷克隆方法、装置、电子设备及机器可读存储介质
技术领域
本申请涉及存储技术领域,尤其涉及卷克隆方法、装置、电子设备及机器可读存储介质。
背景技术
LUN(Logical Unit Number,逻辑单元号),最初定义于SCSI(Small ComputerSystem Interface,小型计算机系统接口)协议中,用来是指示区别不同的SCSI设备。而在存储领域中,LUN通常被用于指代存储系统中的、与该LUN(逻辑单元号)唯一对应的一段逻辑连续的数据存储空间,即LUN通常被用于指代存储系统中的存储卷,由此,存储卷也被简称为卷或LUN。
LBA(Logical Block Address,逻辑地址,是指LUN提供的存储空间内部的逻辑位置,用于指定数据存取的位置。
LUN克隆,也即卷克隆,指将LUN上的数据完整的拷贝出来到另一个LUN上,形成容量和数据完全一致的一个副本。
发明内容
本申请提供一种卷克隆方法,所述方法应用于存储系统,所述存储系统包括源卷,所述方法包括:
响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
可选的,所述基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷,包括:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
可选的,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,还包括:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
可选的,还包括:
将所述源卷的数据拷贝至所述新增目标卷。
可选的,所述将所述源卷的数据拷贝至所述新增目标卷,包括:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
可选的,当所述若干目标卷完成卷克隆后,还包括:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
本申请还提供一种卷克隆装置,所述装置应用于存储系统,所述存储系统包括源卷,所述装置包括:
创建模块,响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
克隆模块,基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
可选的,所述克隆模块进一步:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
可选的,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,所述创建模块进一步:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
可选的,还包括:
所述克隆模块进一步,将所述源卷的数据拷贝至所述新增目标卷。
可选的,所述克隆模块进一步:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
可选的,当所述若干目标卷完成卷克隆后,所述克隆模块进一步:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,仅基于一个共享缓冲区而不是多个共享缓冲区,将源卷的数据拷贝到若干目标卷,从而实现在卷克隆时,减少了对源卷的读IO,提高了卷克隆效率。
附图说明
图1是一示例性实施例提供的一种卷克隆原理的示意图;
图2是一示例性实施例提供的一种卷克隆方法的流程图;
图3是一示例性实施例提供的另一种卷克隆原理的示意图;
图4是一示例性实施例提供的一种卷克隆过程数据拷贝的状态的示意图;
图5是一示例性实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;
图6是一示例性实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;
图7是一示例性实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;
图8是一示例性实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;
图9是一示例性实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;
图10是一示例性实施例提供的一种电子设备的硬件结构图;
图11是一示例性实施例提供的一种卷克隆装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的卷克隆的相关技术,进行简要说明。
为了方便理解,介绍下现有实现的卷克隆原理。请参见图1,图1是本申请一实施例提供的一种卷克隆原理的示意图。
如图1所示,存储系统包括源LUN(也即源卷)、若干目标卷(例如为图1中LUN1、LUN2、LUN3);
其中,若干目标卷用于作为源LUN的克隆卷,也即,若干目标卷的数据需要和源LUN保持一致。当存储系统执行针对源LUN的卷克隆时,需要将源LUN的数据分别拷贝至LUN1、LUN2、LUN3。
在实现时,存储系统需要启动3个克隆任务(如图1所示的Task1、Task2、Task3)以及对应缓冲区(如图1所示的与Task1对应的Buffer1、Buffer2、Buffer3),从源LUN中分别读取数据(如图1所示的“Read”箭头所指示过程)到3个克隆任务对应的缓冲区,并将各自缓冲区中已读数据分别写入(如图1所示的“Write”箭头所指示过程)到对应的目标卷,由此来完成针对源LUN到若干目标卷的卷克隆(例如图1所示,存储系统克隆出3个和源LUN容量和数据完全一致的3个副本LUN1、LUN2、LUN3)。
基于以上可见,卷克隆的现有实现存在如下两个缺点:缺点一、克隆任务及其对应缓冲区的数量;以及,源卷的数据读取总量,与源卷的克隆副本数目相关。例如,如图1所示源LUN要克隆3个副本,则需要3个克隆任务及对应3个缓冲区;其中,每个克隆任务都需要读取一遍源LUN的数据,针对源LUN的数据读取总量是:源LUN容量x 3。缺点二、多个克隆任务各自独立运行时的启动时间及数据读写速度不同,从而导致多个克隆任务在源卷上读取数据的位置也不同,进一步造成源卷上收到的读IO不是顺序读,而是随机读IO,故而导致源卷数据读取效率低下,卷克隆速度变慢。
由以上两个缺点进一步地可以发现,针对一个源卷同时进行卷克隆的副本越多,以上两个缺点导致对应恶劣后果越明显。
而本申请旨在提出一种,基于与若干目标卷对应的一个共享缓冲区,将源卷的数据拷贝至若干目标卷的卷克隆的技术方案。
在实现时,存储系统包括源卷,响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
在以上方案中,仅基于一个共享缓冲区而不是多个共享缓冲区,将源卷的数据拷贝到若干目标卷,从而实现在卷克隆时,减少了对源卷的读IO,提高了卷克隆效率。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种卷克隆方法的流程图,所述方法应用于存储系统,所述存储系统包括源卷,上述方法执行以下步骤:
步骤202、响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷。
步骤204、基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
在本说明书中,上述存储系统,包括任何存储介质构成的存储系统。例如,上述存储系统可以是基于机械硬盘存储介质构成的存储系统,也可以是基于固态硬盘存储介质构成的存储系统。
在本说明书中,上述源卷,是指上述存储系统需要执行卷克隆的存储卷。例如,上述源卷例如为图1所示的源LUN。
在本说明书中,上述目标卷,是指上述存储系统需要执行卷克隆的上述源卷对应的副本存储卷。例如,上述目标卷例如为图1所示的LUN1或LUN2或LUN3。
在本说明书中,上述若干目标卷,包括至少两个上述目标卷。例如,上述若干目标卷例如包括如图1所示的LUN1、LUN2、LUN3。
请参见图3,图3是本申请一实施例提供的另一种卷克隆原理的示意图。
图3与图1所示的上述存储系统中的上述源卷(源LUN)以及若干上述目标卷(LUN1、LUN2、LUN3)都相同;区别在于图3相比图1仅创建一个克隆任务(如图3所示的TaskS)及其对应一个缓冲区(如图3所示的ShareBuff)。当存储系统执行针对源LUN的卷克隆,需要将源LUN的数据分别拷贝至LUN1、LUN2、LUN3时,存储系统仅需启动1个克隆任务(如图3所示的TaskS)以及对应缓冲区(如图3所示的与TaskS对应的ShareBuff),从源LUN中分别读取数据(如图3所示的“Read”箭头所指示过程)到1个克隆任务对应的缓冲区,并将缓冲区ShareBuff中已读数据分别写入(如图3所示的“Write”箭头所指示过程)到对应的目标卷,由此来完成针对源LUN到若干目标卷的卷克隆(例如图3所示,存储系统克隆出3个和源LUN容量和数据完全一致的3个副本LUN1、LUN2、LUN3)。
基于如图3所示的卷克隆原理,以下通过具体的实施例,并结合“目标卷创建”、“卷克隆”、“卷克隆过程中新增卷克隆”,对本申请的涉及的技术方案进行详细描述:
1)目标卷创建
在本说明书中,上述卷克隆指令,包括由用户基于上述存储系统提供的人机交互界面触发的、针对上述源卷的卷克隆指令。
在实现时,上述卷克隆指令,至少包括上述源卷、克隆副本数目。
例如,上述卷克隆指令包括如图3所示的源LUN、克隆副本数目为3。
当然,上述卷克隆指令不仅可以是用户在上述存储系统提供的人机界面下发的,也可以是作用于上述存储系统的其它软件或者硬件触发的。
在本说明书中,在接收到针对上述源卷的卷克隆指令后,上述存储系统响应于针对上述源卷的上述卷克隆指令,创建与上述源卷对应的上述若干目标卷。
接着以上示例继续举例,在接收到针对如图3所示的源LUN(上述源卷)的卷克隆指令(对应克隆副本数目为3)后,上述存储系统响应于的上述卷克隆指令,创建与源LUN对应的上述若干目标卷(如图3所示的LUN1、LUN2、LUN3)。
2)卷克隆
在本说明书中,上述共享缓冲区,是指上述若干目标卷共用的、用于将上述源卷的数据拷贝至上述若干目标卷的缓冲区。
例如,在实现时,上述共享缓冲区可以是上述存储系统在内存中开辟的一段4MB(MByte,兆字节)容量大小的内存空间,也即上述共享缓冲区的缓冲区长度为4MB。
在本说明书中,在上述若干目标卷创建完成后,上述存储系统基于与上述若干目标卷对应的共享缓冲区,将上述源卷的数据拷贝至上述若干目标卷。
接着以上示例继续举例,如图3所示,上述存储系统基于LUN1、LUN2、LUN3对应的ShareBuff共享缓冲区,将源LUN的数据拷贝至LUN1、LUN2、LUN3。
在示出的一种实施方式,当需要将上述源卷的数据拷贝至上述若干目标卷时,上述存储系统创建与上述若干目标卷对应的共享缓冲区。
在实现时,上述存储系统先创建一个克隆任务,用于将上述源卷的数据拷贝至上述若干目标卷;在该克隆任务中创建一个共享缓冲区,用于数据拷贝。
接着以上示例继续举例,如图3所示,上述存储系统先创建克隆任务TaskS,用于将源LUN的数据拷贝至LUN1、LUN2、LUN3;在该克隆任务中创建一个共享缓冲区ShareBuff,用于数据拷贝。
请参见图4,图4是本申请一实施例提供的一种卷克隆过程数据拷贝的状态的示意图。
图4是基于图3基础之上变化得来,如图4所示,源LUN中的S0,代表源LUN对应在[LBA=0,LBA=A)空间的数据;LUN1、LUN2、LUN3中的3个S0,代表源LUN的S0数据已经被拷贝到LUN1、LUN2、LUN3对应空间位置;图4所示的源LUN、LUN1、LUN2、LUN3中的空白代表为对应数据未拷贝。图4所示的虚线框代表克隆任务TaskS。
在本说明书中,在完成创建上述共享缓冲区后,上述存储系统以上述共享缓冲区的缓冲区长度作为数据读取的步长,从上述源卷读取数据。
例如,如图4所示,ShareBuff(上述共享缓冲区)的缓冲区长度为4MB,上述存储系统以ShareBuff的缓冲区长度(4MB)作为数据读取的步长,从源LUN读取数据。
在本说明书中,上述游标,是指上述源卷的已读取数据对应的右侧LBA。
例如,如图4所示,在上述存储系统将源LUN中的数据S0拷贝到LUN1、LUN2、LUN3中的数据S0之前,源LUN(上述源卷)的已读取数据为0,上述游标为如图4所示虚线箭头对应的LBA=0;当源LUN(上述源卷)的已读取数据为S0时,上述游标为如图4所示实线箭头对应的LBA=A。
在本说明书中,在上述共享缓冲区的缓冲区长度作为数据读取的步长从上述源卷读取数据时,上述存储系统记录上述源卷的已读取数据对应游标。
接着以上示例继续举例,在从源LUN未读取数据时,上述存储系统记录上述游标为LBA=0;当从源LUN读取数据S0后,上述存储系统记录上述游标为LBA=A。
在本说明书中,进一步地,上述存储系统将上述共享缓冲区中数据分别拷贝至上述若干目标卷。
例如,以上述共享缓冲区的缓冲区长度作为数据读取的步长,当从源LUN读取数据S0时,上述存储系统将上述共享缓冲区中数据,分别拷贝至LUN1、LUN2、LUN3。
需要说明的是,由于上述共享缓冲区的缓冲区长度是有限的,所以,上述存储系统需要将上述共享缓冲区的数据及时写入到上述若干目标卷后,再从上述源卷再次读取数据到上述共享缓冲区;以上针对上述源卷的数据,基于上述共享缓冲区数据读取到都是循环执行的,直到上述源卷的数据被完成拷贝至所有上述目标卷。基于单克隆任务及其共享缓冲区,相比现有实现,大大减少了缓冲区数量,避免了多克隆任务并发数据读取的随机性。
3)卷克隆过程中新增卷克隆
在本说明书中,上述新增卷克隆指令,是指在以上“卷克隆”的过程中,用户基于上述存储系统提供的人机交互界面触发、针对上述源卷的又一次的卷克隆指令。
例如,用户已触发的卷克隆指令包括如图4所示的源LUN、克隆副本数目为3(也即上述若干目标卷包括LUN1、LUN2、LUN3)。在上卷克隆指令执行过程中,用户又触发了针对源LUN的克隆副本数目为1的新增卷克隆指令;则新增卷克隆指令包括如图4所示的源LUN、克隆副本数目为1。
请参见图5,图5是本申请一实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;其中,图5所示的状态是在图4基础上变化而来。
如图5所示,S0,代表源LUN中的对应已拷贝至LUN1、LUN2、LUN3数据;S1,代表源LUN中的对应待拷贝到LUN1、LUN2、LUN3数据。
在示出的一种实施方式中,若在上述卷克隆指令对应数据拷贝执行过程中,上述存储系统接收到针对上述源卷的新增卷克隆指令。
接着以上示例继续举例,如图5所示,若在上述卷克隆指令(源LUN拷贝数据到LUN1、LUN2、LUN3)对应数据拷贝执行过程中,上述存储系统接收到针对源LUN的新增卷克隆指令(源LUN、克隆副本数目为1)。
在本说明书中,上述新增目标卷,是指与上述新增卷克隆指令对应的用于克隆上述源卷的存储卷。
例如,如图5所示,上述新增目标卷为LUN4。
在本说明书中,在接收到上述新增卷克隆指令后,响应于上述新增卷克隆指令,上述存储系统创建与上述源卷对应的上述新增目标卷。
接着以上示例继续举例,在接收到针对如图5所示的源LUN(上述源卷)的新增卷克隆指令(对应克隆副本数目为1)后,上述存储系统响应于的该新增卷克隆指令,创建与源LUN对应的新增目标卷(如图5所示的LUN4)。
在示出的一种实施方式中,在上述新增目标卷创建完成后,在上述存储系统将在上述源卷的数据拷贝至在上述目标卷的数据拷贝过程中,上述存储系统将上述源卷的数据拷贝至上述新增目标卷。
接着以上示例继续举例,如图5所示,在源LUN对应的新增目标卷LUN4创建完成后,在上述存储系统将在源卷的数据拷贝至在上述目标卷的数据拷贝过程中,上述存储系统源LUN对应的数据拷贝至上述新增目标卷。
请参见图6,图6是本申请一实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;其中,图6所示的状态是在图5基础上变化而来。
如图6所示,S0,代表源LUN中的对应已拷贝至LUN1、LUN2、LUN3数据;S1,代表源LUN中的对应已拷贝到LUN1、LUN2、LUN3、LUN4数据;图6相比图5所示的虚线箭头对应除代表LBA=A外,还代表LBA=A对应时刻T。
如图6所示,在上述存储系统将源LUN中的数据S1拷贝到LUN1、LUN2、LUN3、LUN4中的数据S1之前,上述游标为如图6所示虚线箭头对应的LBA=A;当源LUN(上述源卷)的已读取数据为S1时,上述游标为如图6所示实线箭头对应的LBA=B。
在本说明书中,上述目标时刻,是指上述新增目标卷在加入到上述若干目标卷对应克隆任务的对应时刻。
例如,如图6所示,上述目标时刻为时刻为T时刻(如图6所示虚线箭头对应),与T时刻对应的上述游标为LBA=A。
在示出的一种实施方式中,进一步地,上述存储系统记录在上述目标时刻与上述新增目标卷对应的上述游标。
接着以上示例继续举例,如图6所示,与T时刻(上述目标时刻)对应的上述游标为LBA=A。
需要说明的是,通过记录上述新增目标卷在上述目标时刻对应的上述游标,上述存储系统可以获取上述新增目标卷中的还未从源卷中拷贝数据的容量,例如,该容量包括如图6所示的LUN4中的空白方格S0。
请参见图7,图7是本申请一实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;其中,图7所示的状态是在图6基础上变化而来。
如图7所示,S1、S2,代表源LUN中的对应已拷贝至LUN1、LUN2、LUN3、LUN4数据;LUN4中的空白方格S0,代表源LUN中的对应为未拷贝到LUN4的容量为S0数据;图7对应的当前时刻对应的上述游标为如图7所示实线箭头对应的LBA=C。
在本说明书中,在记录在上述目标时刻与上述新增目标卷对应的上述游标后,上述存储系统将上述新增目标卷增加到上述若干目标卷中,跟随上述若干目标卷同步执行对应剩余数据拷贝。
在实现时,上述存储系统将上述新增目标卷增加到上述若干目标卷对应的克隆任务中,以使在上述目标时刻之后,上述新增目标卷跟随上述若干目标卷对应的克隆任务同步执行对应剩余数据拷贝。
接着以上示例继续举例,上述存储系统将LUN4增加到上述若干目标卷对应的克隆任务TaskS(如图7所示的虚线框代表TaskS)中,在T时刻(上述目标时刻)之后,跟随LUN1、LUN2、LUN3对应的克隆任务TaskS同步执行对应剩余数据(包括如图7所示的S1以及S2)拷贝。
需要说明的是,在上述新增目标卷跟随上述若干目标卷同步执行对应剩余数据拷贝后,上述若干目标卷与上述源卷的数据已保持一致,如图7所示,LUN1、LUN2、LUN3中的S0、S1、S2与源LUN的S0、S1、S2容量及数据内容都一致。
请参见图8,图8是本申请一实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;其中,图8所示的状态是在图7基础上变化而来。
图8与图7的区别在于,图8对应的当前时刻对应的上述游标为如图8所示实线箭头对应的LBA=0,也即,在LUN4跟随LUN1、LUN2、LUN3同步执行对应剩余数据拷贝后,上述游标又回到了源LUN的初始LBA,初始LBA即为如图8所示的LBA=0。
在本说明书中,上述初始LBA,是指上述源卷的空间中的LBA=0的初始地址。比如,上述初始LBA为如图8所示实线箭头对应的LBA=0。
在本说明书中,在上述若干目标卷完成卷克隆后,上述存储系统从上述源卷的初始LBA至上述目标时刻对应的上述游标的对应空间中读取上述新增目标卷还未拷贝的数据。
接着以上示例继续举例,如图8所示,在上述若干目标卷(LUN1、LUN2、LUN3)完成卷克隆后,上述存储系统从源LUN的初始LBA(LBA=0)至T时刻对应的游标(LBA=A)的对应空间(源LUN中的S0)中读取上述新增目标卷还未拷贝的数据(如图8所示的LUN4还未拷贝的源LUN中的S0)。
请参见图9,图9是本申请一实施例提供的另一种卷克隆过程数据拷贝的状态的示意图;其中,图9所示的状态是在图8基础上变化而来。
图9与图8的主要区别在于,图9中的LUN4中的S0变为带斜线的方格,也即,源LUN中的S0对应数据已拷贝到LUN4中的S0。
在本说明书中,在完成读取上述新增目标卷还未拷贝的数据后,上述存储系统将该数据拷贝到上述新增目标卷对应空间,由此完成上述源卷到上述新增目标卷的卷克隆。
接着以上示例继续举例,如图9所示,在完成读取LUN4还未拷贝的数据(图9所示的源LUN中的S0)后,并将源LUN中的S0对应数据拷贝到LUN4中的S0,由此完成源LUN到LUN4的卷克隆。
需要说明的是,在以上卷克隆过程中,可能存在多次上述新增卷克隆指令,而上述多次上述新增卷克隆指令对应卷克隆过程,和以上卷克隆过程类似,具体不再赘述。
在以上技术方案中,仅基于一个共享缓冲区而不是多个共享缓冲区,将源卷的数据拷贝到若干目标卷,从而实现在卷克隆时,减少了对源卷的读IO,提高了卷克隆效率。
与上述方法实施例相对应,本申请还提供了卷克隆装置的实施例。
与上述方法实施例相对应,本说明书还提供了一种卷克隆装置的实施例。本说明书的卷克隆装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图10所示,为本说明书的卷克隆装置所在电子设备的一种硬件结构图,除了图10所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图11是本说明书一实施例示出的一种卷克隆装置的框图。
请参考图11,所述卷克隆装置110可以应用在前述图10所示的电子设备中,所述装置应用于存储系统,所述存储系统包括源卷,所述装置包括:
创建模块,响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
克隆模块,基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
在本实施例中,所述克隆模块进一步:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
在本实施例中,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,所述创建模块进一步:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
在本实施例中,还包括:
所述克隆模块进一步,将所述源卷的数据拷贝至所述新增目标卷。
在本实施例中,所述克隆模块进一步:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
在本实施例中,当所述若干目标卷完成卷克隆后,所述克隆模块进一步:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于存储系统,所述存储系统包括源卷;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
在本实施例中,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
在本实施例中,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
在本实施例中,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
将所述源卷的数据拷贝至所述新增目标卷。
在本实施例中,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
在本实施例中,当所述若干目标卷完成卷克隆后,通过读取并执行所述存储器存储的与卷克隆逻辑对应的机器可执行指令,所述处理器被促使:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (14)

1.一种卷克隆方法,其特征在于,所述方法应用于存储系统,所述存储系统包括源卷,所述方法包括:
响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
2.根据权利要求1所述的方法,其特征在于,所述基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷,包括:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
3.根据权利要求2所述的方法,其特征在于,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,还包括:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述源卷的数据拷贝至所述新增目标卷。
5.根据权利要求4所述的方法,其特征在于,所述将所述源卷的数据拷贝至所述新增目标卷,包括:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
6.根据权利要求5所述的方法,其特征在于,当所述若干目标卷完成卷克隆后,还包括:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
7.一种卷克隆装置,其特征在于,所述装置应用于存储系统,所述存储系统包括源卷,所述装置包括:
创建模块,响应于针对所述源卷的卷克隆指令,创建与所述源卷对应的若干目标卷;
克隆模块,基于与所述若干目标卷对应的共享缓冲区,将所述源卷的数据拷贝至所述若干目标卷。
8.根据权利要求7所述的装置,其特征在于,所述克隆模块进一步:
创建与所述若干目标卷对应的共享缓冲区;
以所述共享缓冲区的缓冲区长度作为数据读取的步长,从所述源卷读取数据并对应记录所述源卷的已读取数据对应游标;
将所述共享缓冲区中数据分别拷贝至所述若干目标卷。
9.根据权利要求8所述的装置,其特征在于,若在所述卷克隆指令对应数据拷贝执行过程中,接收到针对所述源卷的新增卷克隆指令,所述创建模块进一步:
响应于所述新增卷克隆指令,创建与所述源卷对应的新增目标卷。
10.根据权利要求9所述的装置,其特征在于,还包括:
所述克隆模块进一步,将所述源卷的数据拷贝至所述新增目标卷。
11.根据权利要求10所述的装置,其特征在于,所述克隆模块进一步:
记录在目标时刻与所述新增目标卷对应的所述游标;
将所述新增目标卷增加到所述若干目标卷中,跟随所述若干目标卷同步执行对应剩余数据拷贝。
12.根据权利要求11所述的装置,其特征在于,当所述若干目标卷完成卷克隆后,所述克隆模块进一步:
从所述源卷的初始LBA至所述目标时刻对应的所述游标的对应空间中读取所述新增目标卷还未拷贝的数据,并将该数据拷贝到所述新增目标卷对应空间。
13.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至6任一项所述的方法。
14.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至6任一项所述的方法。
CN201910522075.9A 2019-06-17 2019-06-17 卷克隆方法、装置、电子设备及机器可读存储介质 Active CN110286856B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910522075.9A CN110286856B (zh) 2019-06-17 2019-06-17 卷克隆方法、装置、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910522075.9A CN110286856B (zh) 2019-06-17 2019-06-17 卷克隆方法、装置、电子设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN110286856A CN110286856A (zh) 2019-09-27
CN110286856B true CN110286856B (zh) 2022-11-25

Family

ID=68005012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910522075.9A Active CN110286856B (zh) 2019-06-17 2019-06-17 卷克隆方法、装置、电子设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN110286856B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750221B (zh) * 2019-10-30 2023-05-16 杭州宏杉科技股份有限公司 卷克隆方法、装置、电子设备及机器可读存储介质
CN111104404B (zh) * 2019-12-04 2021-10-01 星辰天合(北京)数据科技有限公司 基于分布式对象的数据存储方法及装置
CN112015343B (zh) * 2020-08-27 2022-07-22 杭州宏杉科技股份有限公司 存储卷的缓存空间管理方法、装置及电子设备
CN113986128B (zh) * 2021-10-26 2024-05-28 杭州宏杉科技股份有限公司 Lun数据复制方法及装置
CN114138408B (zh) * 2021-11-12 2024-05-03 苏州浪潮智能科技有限公司 克隆卷创建的方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868503B1 (en) * 2011-04-29 2014-10-21 Netapp, Inc. Method and system for managing clones of replicated storage
CN109460331A (zh) * 2018-10-24 2019-03-12 郑州云海信息技术有限公司 一种克隆特性测试方法、装置、设备及存储介质
CN109766220A (zh) * 2019-01-04 2019-05-17 平安科技(深圳)有限公司 应用系统的备份恢复方法、装置及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868503B1 (en) * 2011-04-29 2014-10-21 Netapp, Inc. Method and system for managing clones of replicated storage
CN109460331A (zh) * 2018-10-24 2019-03-12 郑州云海信息技术有限公司 一种克隆特性测试方法、装置、设备及存储介质
CN109766220A (zh) * 2019-01-04 2019-05-17 平安科技(深圳)有限公司 应用系统的备份恢复方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN110286856A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110286856B (zh) 卷克隆方法、装置、电子设备及机器可读存储介质
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
CN109902034B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
US6665747B1 (en) Method and apparatus for interfacing with a secondary storage system
CN112000426B (zh) 一种数据处理方法及装置
CN114265670B (zh) 一种内存块整理方法、介质及计算设备
CN109614055A (zh) 快照创建方法、装置、电子设备及机器可读存储介质
US9703593B2 (en) Apparatus and method for memory overlay
CN104461730A (zh) 一种虚拟资源分配方法及装置
CN114691391A (zh) 增强型包过滤器的内核态程序的超级调用方法及装置
CN110531925B (zh) 数据读取方法、装置、电子设备及机器可读存储介质
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
WO2005041050A1 (ja) 記録媒体、データ処理装置及びデータ処理方法
CN115454570A (zh) 灾备方法、灾备恢复方法、虚拟机系统、设备及存储介质
CN115712394A (zh) 数据读写方法、装置、计算机设备及可读存储介质
CN109542872A (zh) 数据读取方法、装置、计算机设备和存储介质
CN111045961B (zh) 数据处理方法及使用所述方法的存储控制器
CN109213692B (zh) 存储装置管理系统以及存储装置管理方法
WO2019183849A1 (zh) 数据处理方法和设备
CN111158858B (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
CN112286448A (zh) 对象访问方法、装置、电子设备及机器可读存储介质
CN111399774A (zh) 分布式存储系统下基于快照的数据处理方法和装置
CN109960611A (zh) 数据恢复的方法、装置、电子设备及机器可读存储介质
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN112181295B (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
GR01 Patent grant
GR01 Patent grant