CN114296649B - 云间业务迁移*** - Google Patents
云间业务迁移*** Download PDFInfo
- Publication number
- CN114296649B CN114296649B CN202111619245.9A CN202111619245A CN114296649B CN 114296649 B CN114296649 B CN 114296649B CN 202111619245 A CN202111619245 A CN 202111619245A CN 114296649 B CN114296649 B CN 114296649B
- Authority
- CN
- China
- Prior art keywords
- snapshot
- incremental
- data
- inter
- index
- 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
- 238000013508 migration Methods 0.000 title claims abstract description 76
- 230000005012 migration Effects 0.000 title claims abstract description 76
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 230000000903 blocking effect Effects 0.000 claims abstract description 7
- 239000000725 suspension Substances 0.000 claims abstract description 5
- 239000012634 fragment Substances 0.000 claims description 14
- 238000000034 method Methods 0.000 abstract description 26
- 230000008569 process Effects 0.000 abstract description 16
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种云间业务迁移***,涉及数据迁移技术领域。其中,云间业务迁移***包括:I/O阻塞模块;增量数据计算模块,用于响应磁盘I/O操作的挂起,基于磁盘粒度计算磁盘的增量数据,以基于增量数据配置每次云间业务的迁移时长;快照生成模块,用于基于业务场景配置对应的快照生成方式,以基于对应的快照生成方式在虚拟磁盘生成增量数据的增量快照,并生成增量快照的二级索引;I/O唤醒模块;增量快照传输模块,用于基于二级索引,对增量快照执行云间迁移操作,云间迁移操作执行迁移时长。通过本公开的技术方案,有利于规范不同的服务商生成快照的数据格式,进而能够降低异构环境云间业务迁移时的复杂度、提高迁移过程的平滑性。
Description
技术领域
本公开涉及数据迁移技术领域,尤其涉及一种云间业务迁移***。
背景技术
随着云计算技术的发展与普及,越来越多的企业将自建的数据中心迁入云端,以降低运维成本,为了保证数据的高可靠性和服务的高可用性,企业通常会选择将同一份数据或者业务以多个副本的方式部署于不同地域的数据中心来实现异地灾备,随之而来的就是海量数据的云间迁移。另外,为了保证业务的连续性,用户对业务迁移的SLA(ServiceLevel Agreement,服务等级协议)要求较为苛刻,这意味着企业必须在尽可能短的时间内完成云间业务迁移。
针对上述问题,相关技术中,通过采用全量快照生成镜像,在云间进行镜像拷贝,在应用中存在以下缺陷:由于需要在应用层进行数据冗余的相关操作,而镜像文件通常是以TB为单位的超大数据对象,导致异地备份极其耗时,迁移窗口过长,另外,由于企业通常会选择多家云服务商来承载其业务,然而不同的服务商基于各自的规范生成的快照的数据格式各不相同,导致在异构环境云间业务迁移时的复杂度过高、迁移过程缺乏平滑性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种云间业务迁移***,至少在一定程度上克服由于相关技术中迁移窗口过长、在异构环境云间业务迁移时的复杂度过高以及迁移过程缺乏平滑性的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的技术方案提供的云间业务迁移***,包括:I/O阻塞模块,用于挂起一致性组中的磁盘I/O操作,所述一致性组属于分布式存储***;增量数据计算模块,用于响应所述磁盘I/O操作的挂起,基于磁盘粒度计算所述磁盘的增量数据,以基于所述增量数据配置每次所述云间业务的迁移时长;快照生成模块,用于基于业务场景配置对应的快照生成方式,以基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,并生成所述增量快照的二级索引;I/O唤醒模块,用于生成所述增量快照时,恢复所述磁盘I/O操作;增量快照传输模块,用于恢复所述磁盘I/O操作后,基于所述二级索引,对所述增量快照执行云间迁移操作,所述云间迁移操作执行所述迁移时长。
在一个实施例中,所述二级索引包括第一级索引和多个第二级索引,所述第一级索引被配置为记录多个所述第二级索引的地址,所述第二级索引被配置为记录所述增量快照的地址,所述增量快照被配置为多个集群cluster,其中,基于访问所述二级索引,对对应的所述增量快照进行云间迁移操作。
在一个实施例中,所述增量快照配置有快照文件头,所述快照文件头中配置有base文件在所述增量快照中的位置信息、定位所述增量快照中的数据所需地址位数、所述虚拟磁盘的大小、所述第一级索引的入口数量、存放所述第一级索引的cluster位置信息、所述增量快照的数量、所述快照的集群位置信息中的至少一种,其中,所述快照文件头存储于所述虚拟磁盘的根目录,以基于所述快照文件头确定所述二级索引的访问入口。
在一个实施例中,所述快照生成模块具体用于:基于所述快照文件头记录的所述第一级索引执行拷贝操作,并将所述第一级索引覆盖的所有所述cluster的引用计数进行加1,以基于操作结果配置所述增量快照的快照表,其中,所述第一级索引包括活跃状态索引和等待状态索引,基于所述快照表配置所述等待状态索引。
在一个实施例中,所述快照生成模块具体用于:在写入所述增量快照的数据之前,检测初始第二级索引的引用计数;在所述引用计数为1时,在所述初始第二级索引对应的初始集群中写入所述增量快照;在所述引用计数大于1时,生成第二级拷贝索引,将对应的所述初始集群的偏移地址写入所述第二级拷贝索引中;以及基于所述第二级拷贝索引更新所述第一级索引。
在一个实施例中,所述快照生成模块在所述初始第二级索引对应的初始集群中写入所述增量快照,具体包括:检测所述初始集群的引用计数;在所述引用计数为1时,在所述初始集群写入所述增量快照;在所述引用计数大于1时,生成所述初始集群的拷贝集群,并在所述拷贝集群上写入所述增量快照的数据,以生成所述增量快照,并在所述第二级索引中添加所述增量快照的地址。
在一个实施例中,还包括:增量快照汇总模块,用于在检测到需要获取增量快照碎片时,基于所述快照表确定记录所述增量快照碎片的所述等待状态索引,以基于所述等待状态索引查找所述增量快照碎片,并由所述增量快照传输模块传输查找到的所述增量快照碎片。
在一个实施例中,所述快照生成模块基于业务场景配置对应的快照生成方式,具体包括:在所述业务场景为需要保留所述虚拟磁盘的原始数据时,采用读优先为对应的所述快照生成方式;在所述业务场景不需要保留所述原始数据时,采用写优先为对应的所述快照生成方式。
在一个实施例中,在所述读优先为对应的所述快照生成方式时,所述基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,具体包括:在首次在所述虚拟磁盘对所述增量数据执行写入操作时,将所述原始数据复制到预留快照空间,以继续基于写入操作生成所述增量快照。
在一个实施例中,在所述写优先为对应的所述快照生成方式时,所述基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,具体包括:在写入所述增量数据前,生成所述原始数据的快照,在将所述增量数据写入所述虚拟磁盘时,采用所述增量数据覆盖所述原始数据,并继续生成所述增量数据的增量快照。
本公开的实施例所提供的云间业务迁移***,通过基于磁盘粒度的计算方式计算磁盘的增量数据,并确定与增量数据对应的业务场景,以基于业务场景配置对应的快照生成方式,不需要在应用层进行数据冗余的相关操作,并且有利于缩短迁移窗口的长度,进一步地,基于对应的快照生成方式,生成包括二级索引的增量快照,以基于二级索引对通过为增量快照设置二级索引,以提升增量快照格式的通用性,有利于规范不同的服务商生成快照的数据格式,进而能够降低异构环境云间业务迁移时的复杂度、提高迁移过程的平滑性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种云间业务迁移***的示意图;
图2示出本公开实施例中增量数据计算模块的处理示意图;
图3示出本公开实施例中一种云间业务迁移方法的流程图;
图4示出本公开实施例中一种二级索引的结构图;
图5示出本公开实施例中一种增量快照生成模块的处理示意图;
图6示出本公开实施例中另一种增量快照生成模块的处理示意图;
图7示出本公开实施例中再一种增量快照生成模块的处理示意图;
图8示出本公开实施例中一种增量快照汇总模块的处理示意图;
图9示出本公开实施例中另一种云间业务迁移***的示意图;
图10示出本公开实施例中一种计算机设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本申请提供的方案,通过基于磁盘粒度的计算方式计算磁盘的增量数据,并确定与增量数据对应的业务场景,以基于业务场景配置对应的快照生成方式,不需要在应用层进行数据冗余的相关操作,并且有利于缩短迁移窗口的长度,进一步地,基于对应的快照生成方式,生成包括二级索引的增量快照,以基于二级索引对通过为增量快照设置二级索引,以提升增量快照格式的通用性,有利于规范不同的服务商生成快照的数据格式,进而能够降低异构环境云间业务迁移时的复杂度、提高迁移过程的平滑性。
为了便于理解,下面结合图1对本申请涉及到的名词(缩写词)进行解释。
快照(Snapshot):关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像,快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
文件头:存在于文件的起始部分用来描述入口地址,增量快照的尺寸等信息,用来方便操作操作***进行增量快照的调用。
元数据:代表增量快照的格式和校验等信息。
增量表,增量表是相对于全量表而言的,增量表是每次把新增的数据追加到原表中,增量表中每次新增的数据单独存储在一个分区中。
快照表,快照表就是截至过去某个时间点的所有数据,关注更多的是过去某个时间点的状态,即快照表主要存储的是历史状态的表。每次快照的数据单独储存在一个分区中。
引用计数,可以有效地管理对象的生命周期。当创建新对象的时候,引用计数为1,当有一个指针指向这个对象时,将其引用计数加1,当某个指针不再指向这个对象时,将其引用计数减1.当对象的引用计数变为0时,说明这个对象不再被任何指针指向了,这个时候就可以将对象销毁,回收内存。
下面,将结合附图及实施例对本示例实施方式中的云间业务迁移***的各个步骤进行更详细的说明。
如图1所示,根据本公开的一个实施例的云间业务迁移***,包括:I/O阻塞模块102、增量数据计算模块104、快照生成模块106、I/O唤醒模块108和增量快照传输模块110。
其中,I/O阻塞模块102用于挂起一致性组中的磁盘I/O操作,一致性组属于分布式存储***。
具体地,一致性组可用于数据保护(快照,备份)和远程复制(镜像),一致性组被配置为允许在同一时间点采集同一一致性组中的多个卷的快照,以确保数据一致性,I/O阻塞模块来负责暂时挂起一致性组中所有磁盘卷上的所有I/O活动,并等待完成所有暂时挂起的I/O活动。
增量数据计算模块104用于响应磁盘I/O操作的挂起,基于磁盘粒度计算磁盘的增量数据,以基于增量数据配置每次云间业务的迁移时长。
基于尽可能缩小业务迁移窗口来减少***的不可用时间的目的,在云间带宽能力有限的条件下,需要减少每一次暂时挂起的I/O活动时迁移的数据量,假设云间带宽为1000MB/s,基于全量快照生成镜像,然后进行镜像拷贝的方式耗时为t1,如式(1)所示:
如图2所示,假设第一次生成的增量快照1的大小为500G,在检测到与增量快照1相比,第二次的增量为3G时,对应生成增量快照2,在检测到与增量快照2相比,第三次的增量为50G时,对应生成增量快照3,此时,基础磁盘上具有500G+3G+50G的待迁移数据,在本公开的基于增量快照的磁盘粒度云间业务迁移方案中,基于增量数据计算模块104计算出的每一次传输的都是与上次相比发生变化的部分,而非原始数据,消耗时间为t2,如式(2)所示:
基于t1与t2的对比可知,基于磁盘粒度的增量快照的迁移***的不可用时间减少为原来的33.33%。
快照生成模块106用于基于业务场景配置对应的快照生成方式,以基于对应的快照生成方式在虚拟磁盘生成增量数据的增量快照,并生成增量快照的二级索引。
通过为增量快照配置二级索引的格式,实现了增量快照数据格式的统一限定,以使不同的服务商基于统一的规范生成的增量快照。
I/O唤醒模块108用于生成增量快照时,恢复磁盘I/O操作。
具体地,基于I/O唤醒模块108来恢复所有被暂时挂起的磁盘卷上的I/O活动,相对于手动过程而言,使用I/O唤醒模块108能够保证了整个存储***可以在同一时间点制作所有快照,从而可以确保以下方面保持一致:同一个一致性组内的快照在相同时间点同步创建,该时间点前完成的I/O都将记录在快照的映像中,以及该时间点后完成的I/O都不会记录在快照的映像中。
增量快照传输模块110用于恢复磁盘I/O操作后,基于二级索引,对增量快照执行云间迁移操作,云间迁移操作执行迁移时长。
其中,基于二级索引对增量快照执行云间迁移操作,能够自适应各种异构存储环境,有利于简化异构环境云间业务迁移时的复杂度。
如图3所示,基于上述的云间业务迁移***,根据本公开的一个实施例的云间业务迁移方法,具体包括:
步骤S302,挂起一致性组中的磁盘I/O操作,一致性组属于分布式存储***。
步骤S304,响应磁盘I/O操作的挂起,基于磁盘粒度计算磁盘的增量数据,以基于增量数据配置每次云间业务的迁移时长。
步骤S306,基于业务场景配置对应的快照生成方式,以基于对应的快照生成方式在虚拟磁盘生成增量数据的增量快照,并生成增量快照的二级索引。
步骤S308,在生成增量快照时,恢复磁盘I/O操作。
步骤S310,恢复磁盘I/O操作后,基于二级索引,对增量快照执行云间迁移操作,云间迁移操作执行迁移时长。
在该实施例中,通过基于磁盘粒度的计算方式计算磁盘的增量数据,并确定与增量数据对应的业务场景,以基于业务场景配置对应的快照生成方式,不需要在应用层进行数据冗余的相关操作,并且有利于缩短迁移窗口的长度,进一步地,基于对应的快照生成方式,生成包括二级索引的增量快照,以基于二级索引对通过为增量快照设置二级索引,以提升增量快照格式的通用性,有利于规范不同的服务商生成快照的数据格式,进而能够降低异构环境云间业务迁移时的复杂度、提高迁移过程的平滑性。
在一个实施例中,二级索引包括第一级索引和多个第二级索引,第一级索引被配置为记录多个第二级索引的地址,第二级索引被配置为记录增量快照的地址,增量快照被配置为多个集群cluster,其中,基于访问二级索引,对对应的增量快照进行云间迁移操作。
其中,将快照文件配置为以固定大小的单元组成,每个单元称作集群cluster,每个cluster在物理磁盘中都是连续分布的,便于数据的读取和写入,在虚拟磁盘中,cluster的大小即为虚拟机看到的虚拟磁盘基本单元大小,类似于机械磁盘的扇形sector大小,一个cluster可能对应一个或者连续多个sector,取决与cluster尺寸和sector尺寸之间的比例。
其中,cluster也是I/O传输操作的最小单位。
具体地,虚拟磁盘的数据被拆分为多个不同的cluster,然后构成一个二级索引表的数据结构,第一级索引称作L1 Table,第二级索引称作L2Table,如图4所示。
L1 Table的大小可变,可能占用一个cluster,也可能占用多个连续的cluster,L1Table的大小在虚拟磁盘创建时确定,并且虚拟磁盘的容量越大,cluster的容量也越大,每个L2 Table固定占用一个cluster,不同的L2Table不需要放在相邻的cluster上,L1 Table和L2 Table中每个入口地址entry的大小为64bit。
在该实施例中,通过设置二级索引,一方面,能够基于二级索引记录的信息寻找待迁移的增量快照,另一方面,还能够与二级索引对应建立二级的引用计数表,以通过对第二级索引记录增量快照的地址的引用次数进行记录,确定该增量快照是否建立、是否被迁移,以及在增量快照被删除时,确定哪些cluster可以释放继续使用,哪些cluster仍被使用,以提升增量迁移操作的可靠性。
在一个实施例中,增量快照配置有快照文件头,快照文件头中配置有base文件在增量快照中的位置信息、定位增量快照中的数据所需地址位数、虚拟磁盘的大小、第一级索引的入口数量、存放第一级索引的cluster位置信息、增量快照的数量、快照的集群位置信息中的至少一种,其中,快照文件头存储于虚拟磁盘的根目录,以基于快照文件头确定二级索引的访问入口。
具体地,如图5所示,增量快照文件头中的关键字段包括但不限于:
(1)backing_file_offset:base文件在在增量快照中的位置信息,如果该快照文件没有base文件,则该offset为0。
其中,base文件即基础文件,是执行基础操作的相关文件,包括创建、复制、链接、移动以及删除等。
(2)cluster_bits:定位增量快照中的数据所需地址位数,如cluster的大小为512B,则cluster_bits为9。
(3)size:表示虚拟磁盘的大小。
(4)L1_size:表示L1 table中entry的个数。
(5)L1_table_offset:表示存放L1 table的cluster的位置。
(6)Nb_snapshot:表示存在的增量快照文件的个数。
(7)Snapshot_offset:表示存放快照的cluster的位置。
在该实施例中,通过设置快照文件头,由于增量快照文件被切分为多块cluster进行管理,并且在cluster中分别存储有虚拟机的数据和快照文件管理的元数据,每个增量快照的cluster的地址由L2表里面的条目记录,L2表的地址由L1表记录,L1表地址由位于根目录的快照文件头记录,因此通过快照文件头确定增量快照的文件路径,即Header->L1table offset(L1表地址)->L2 table offset(L2表地址)->cluster,以可以找到虚拟磁盘存放的增量快照数据,并进行数据迁移。
在一个实施例中,快照生成模块具体用于:基于快照文件头记录的第一级索引执行拷贝操作,并将第一级索引覆盖的所有cluster的引用计数进行加1,以基于操作结果配置增量快照的快照表,其中,第一级索引包括活跃状态索引和等待状态索引,基于快照表配置等待状态索引。
在该实施例中,如图5所示,通过拷贝L1 table,并将L1 table覆盖的所有cluster的引用计数进行加1操作。通过绿色数据流,快照完成后就有两个L1 table,即Active L1table活跃状态索引和Inactive L1 table等待状态索引,两个索引能够记录同一个L2table的地址,其中一个是快照表中记录的L1 table,另一个是header中记录的L1 table。
在一个实施例中,快照生成模块具体用于:在写入增量快照的数据之前,检测初始第二级索引的引用计数;在引用计数为1时,在初始第二级索引对应的初始集群中写入增量快照;在引用计数大于1时,生成第二级拷贝索引,将对应的初始集群的偏移地址写入第二级拷贝索引中;以及基于第二级拷贝索引更新第一级索引。
在该实施例中,如图6所示,数据流2表示检查L2 Table的引用计数,更新L2Table,更新前检查L2 table的引用计数是否为1,如果为1表示没有快照引用这个L2table,可以直接写,反之同样拷贝一个新的L2 table,将新cluster偏移地址写到新的L2table中,旧的L2 table表不变,仍旧指向旧的cluster。
数据流3表示更新L1 Table,新的L2 table的地址变了,需要更新它在L1 table中记录的地址,旧的L2 table地址没有变,但它的地址不再被Active L1 table记录,只有快照时候拷贝的Inactive L1 table继续指向旧的L2 table。快照之后的写入会让之前指向同一个L2 table的两个L1 table分别指向不同的L2 table。
在一个实施例中,快照生成模块在初始第二级索引对应的初始集群中写入增量快照,具体包括:检测初始集群的引用计数;在引用计数为1时,在初始集群写入增量快照;在引用计数大于1时,生成初始集群的拷贝集群,并在拷贝集群上写入增量快照的数据,以生成增量快照,并在第二级索引中添加增量快照的地址。
在该实施例中,如图6所示,数据流1表示检查cluster的引用计数并更新cluster。我们在写cluster前会先检查引用计数,只有引用计数为1的才能直接写,反之需要拷贝一个cluster,并在新cluster上写数据。新的cluster地址变了,数据写完后需要将新的cluster地址更新到L2 table中。
如图7所示,在生成增量快照时,需要对增量快照的每个cluster的使用进行记录,即记录每个cluster被引用的次数,其中,recfound table为第一级表,refcount block为第二级表,第一级表的索引入口也保存在快照文件头中,第二级表具体记录每个cluster被引用的次数,第一级表具体记录每个第二级表refcount block的地址。
在一个实施例中,还包括:增量快照汇总模块,用于在检测到需要获取增量快照碎片时,基于快照表确定记录增量快照碎片的等待状态索引,以基于等待状态索引查找增量快照碎片,并由增量快照传输模块传输查找到的增量快照碎片。
在该实施例中,通过设置增量快照汇总模块和增量快照传输模块,***根据1个L1table中的元数据可以重建出快照文件在某个时刻的数据,Active L1 table是当前快照文件的元数据,而snapshot table中记录的每一个Inactive L1 table地址,是快照文件在某个时刻的元数据,快照文件使用Active L1 table就可以查找当前快照文件,使用InactiveL1 table可以查找某个增量快照文件,能够实现对增量快照碎片进行传输和汇总。
具体地,如图7所示,快照文件第一个cluster,即快照文件头中定义了L1_table_offset、L1_size、refcount_table_offset/clusters定义了L1 Table和refcount table的入口地址和大小,***可以通过该入口找到虚拟磁盘中的所有数据。另外,***可以通过头部中提供的nb_snapshot和snapshot_offset这两个区域来确定文件中存在的增量快照个数和存放增量快照所在的cluster位置。值得注意的是,当不同的L1 Table引用相同的L2Table时,它们将共用一份物理磁盘上的L2 Table,但是若通过L1Table对相应的L2 Table进行修改时,将会触发L2 Table进行拷贝和修改,使得不同的L1 Table使用不同的L2Table,所以不同的快照文件只需要维护不同的L1 Table即可,不需要单独对L2 Table进行维护。另外,一个快照文件中,所有的增量快照碎片将共同使用相同的refcount table和refcount block页表,其具体过程如图8所示。
在一个实施例中,快照生成模块基于业务场景配置对应的快照生成方式,具体包括:在业务场景为需要保留虚拟磁盘的原始数据时,采用读优先为对应的快照生成方式;在业务场景不需要保留原始数据时,采用写优先为对应的快照生成方式。
在一个实施例中,在读优先为对应的快照生成方式时,基于对应的快照生成方式在虚拟磁盘生成增量数据的增量快照,具体包括:在首次在虚拟磁盘对增量数据执行写入操作时,将原始数据复制到预留快照空间,以继续基于写入操作生成增量快照。
在一个实施例中,在写优先为对应的快照生成方式时,基于对应的快照生成方式在虚拟磁盘生成增量数据的增量快照,具体包括:在写入增量数据前,生成原始数据的快照,在将增量数据写入虚拟磁盘时,采用增量数据覆盖原始数据,并继续生成增量数据的增量快照。
具体地,针对不同的业务场景,设计了两种不同的快照生成方式,即读优先方式(Read-First)和写优先(Write-First)方式。在使用读优先方式生成快照时,数据第一次写到某个存储位置,***首先会将这个位置原有的数据复制一份到预留的快照空间,随后才会将数据写入该存储位置,下一次的写入则不会再执行写时复制动作,实现了保存原始数据的效果。与读优先方式不同,在使用写优先方式生成快照时,***会将同步写入的数据存放到新的存储空间内,当快照打完后再将这些数据写入存储位置,覆盖掉原始数据。这种方式生成的多个快照之间的关系必然是链式的,因为最新一次快照的原始数据很可能就存放在了上一次快照时创建的快照卷中。
如图9所示,根据本公开的另一个实施例的云间业务迁移***,具体包括:IO阻塞模块、增量数据计算模块、快照生成模块、IO唤醒模块、增量快照传输模块和增量快照汇总模块。
其中,快照生成模块基于业务场景的不同,具有读优先(Read First)和写优先(Write First)两种快照生成方式。
基于增量快照传输模块,可以发送生成的增量快照,比如向云服务提供商B基于磁盘粒度传输增量快照1(500G)、增量快照2(50G)和增量快照3(3G)。
基于增量快照传输模块,也可以接收增量快照,比如接收云服务提供商B基于磁盘粒度发送的增量快照1(500G)、增量快照2(50G)和增量快照3(3G)等。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
如图10所示,根据本公开的一个实施例的服务器,具体为电子设备,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同***组件(包括存储单元1020和处理单元1010)的总线1030。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图3中所示的步骤S302至步骤S310所描述的方案。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1060(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1040进行。并且,电子设备1000还可以通过网络适配器1050与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1050通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种云间业务迁移***,其特征在于,包括:
I/O阻塞模块,用于挂起一致性组中的磁盘I/O操作,所述一致性组属于分布式存储***;
增量数据计算模块,用于响应所述磁盘I/O操作的挂起,基于磁盘粒度计算所述磁盘的增量数据,以基于所述增量数据配置每次所述云间业务的迁移时长;
快照生成模块,用于基于业务场景配置对应的快照生成方式,以基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,并生成所述增量快照的二级索引,所述二级索引包括第一级索引和多个第二级索引,所述第一级索引被配置为记录多个所述第二级索引的地址,所述第二级索引被配置为记录所述增量快照的地址,所述增量快照被配置为多个集群cluster,所述增量快照配置有快照文件头,所述快照文件头中配置有所述第一级索引的入口数量和/或存放所述第一级索引的cluster位置信息,所述快照文件头存储于所述虚拟磁盘的根目录,以基于所述快照文件头确定所述二级索引的访问入口;
I/O唤醒模块,用于生成所述增量快照时,恢复所述磁盘I/O操作;
增量快照传输模块,用于恢复所述磁盘I/O操作后,基于所述二级索引,对所述增量快照执行云间迁移操作,所述云间迁移操作执行所述迁移时长。
2.根据权利要求1所述的云间业务迁移***,其特征在于,
基于访问所述二级索引,对对应的所述增量快照进行云间迁移操作。
3.根据权利要求2所述的云间业务迁移***,其特征在于,
所述快照文件头中还配置有base文件在所述增量快照中的位置信息、定位所述增量快照中的数据所需地址位数、所述虚拟磁盘的大小、所述增量快照的数量、所述快照的集群位置信息中的至少一种。
4.根据权利要求2所述的云间业务迁移***,其特征在于,所述快照生成模块具体用于:
基于所述快照文件头记录的所述第一级索引执行拷贝操作,并将所述第一级索引覆盖的所有所述cluster的引用计数进行加1,以基于操作结果配置所述增量快照的快照表,
其中,所述第一级索引包括活跃状态索引和等待状态索引,基于所述快照表配置所述等待状态索引。
5.根据权利要求2所述的云间业务迁移***,其特征在于,所述快照生成模块具体用于:
在写入所述增量快照的数据之前,检测初始第二级索引的引用计数;
在所述引用计数为1时,在所述初始第二级索引对应的初始集群中写入所述增量快照;
在所述引用计数大于1时,生成第二级拷贝索引,将对应的所述初始集群的偏移地址写入所述第二级拷贝索引中;以及
基于所述第二级拷贝索引更新所述第一级索引。
6.根据权利要求5所述的云间业务迁移***,其特征在于,所述快照生成模块在所述初始第二级索引对应的初始集群中写入所述增量快照,具体包括:
检测所述初始集群的引用计数;
在所述引用计数为1时,在所述初始集群写入所述增量快照;
在所述引用计数大于1时,生成所述初始集群的拷贝集群,并在所述拷贝集群上写入所述增量快照的数据,以生成所述增量快照,并在所述第二级索引中添加所述增量快照的地址。
7.根据权利要求4所述的云间业务迁移***,其特征在于,还包括:
增量快照汇总模块,用于在检测到需要获取增量快照碎片时,基于所述快照表确定记录所述增量快照碎片的所述等待状态索引,以基于所述等待状态索引查找所述增量快照碎片,并由所述增量快照传输模块传输查找到的所述增量快照碎片。
8.根据权利要求1至7中任一项所述的云间业务迁移***,其特征在于,所述快照生成模块基于业务场景配置对应的快照生成方式,具体包括:
在所述业务场景为需要保留所述虚拟磁盘的原始数据时,采用读优先为对应的所述快照生成方式;
在所述业务场景不需要保留所述原始数据时,采用写优先为对应的所述快照生成方式。
9.根据权利要求8所述的云间业务迁移***,其特征在于,在所述读优先为对应的所述快照生成方式时,所述基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,具体包括:
在首次在所述虚拟磁盘对所述增量数据执行写入操作时,将所述原始数据复制到预留快照空间,以继续基于写入操作生成所述增量快照。
10.根据权利要求8所述的云间业务迁移***,其特征在于,在所述写优先为对应的所述快照生成方式时,所述基于对应的所述快照生成方式在虚拟磁盘生成所述增量数据的增量快照,具体包括:
在写入所述增量数据前,生成所述原始数据的快照,在将所述增量数据写入所述虚拟磁盘时,采用所述增量数据覆盖所述原始数据,并继续生成所述增量数据的增量快照。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619245.9A CN114296649B (zh) | 2021-12-27 | 2021-12-27 | 云间业务迁移*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619245.9A CN114296649B (zh) | 2021-12-27 | 2021-12-27 | 云间业务迁移*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114296649A CN114296649A (zh) | 2022-04-08 |
CN114296649B true CN114296649B (zh) | 2024-01-02 |
Family
ID=80970543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111619245.9A Active CN114296649B (zh) | 2021-12-27 | 2021-12-27 | 云间业务迁移*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296649B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699459A (zh) * | 2013-12-31 | 2014-04-02 | 汉柏科技有限公司 | 基于qcow2快照的虚拟机数据增量备份方法及*** |
CN106919477A (zh) * | 2017-03-03 | 2017-07-04 | 上海爱数信息技术股份有限公司 | 一种虚拟磁盘的解析方法及*** |
CN109164988A (zh) * | 2018-08-30 | 2019-01-08 | 上海交通大学 | 基于处理器的虚拟机快照方法和*** |
CN110018983A (zh) * | 2017-09-27 | 2019-07-16 | 华为技术有限公司 | 一种元数据查询方法及装置 |
CN110196885A (zh) * | 2019-06-13 | 2019-09-03 | 东方电子股份有限公司 | 一种云化分布式实时数据库*** |
CN110737512A (zh) * | 2019-10-25 | 2020-01-31 | 北京浪潮数据技术有限公司 | 跨平台虚拟机在线迁移方法及相关组件 |
CN111625401A (zh) * | 2020-05-29 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 基于集群文件***的数据备份方法、装置及可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842026B2 (en) * | 2013-12-31 | 2017-12-12 | Netapp, Inc. | Snapshot-protected consistency checking file systems |
KR102378367B1 (ko) * | 2015-03-20 | 2022-03-24 | 한국전자통신연구원 | 분산 파일 시스템 |
US9954946B2 (en) * | 2015-11-24 | 2018-04-24 | Netapp, Inc. | Directory level incremental replication |
US10564996B2 (en) * | 2016-08-28 | 2020-02-18 | Vmware, Inc. | Parentless virtual machine forking |
US11016935B2 (en) * | 2017-11-28 | 2021-05-25 | Rubrik, Inc. | Centralized multi-cloud workload protection with platform agnostic centralized file browse and file retrieval time machine |
US20200167238A1 (en) * | 2018-11-23 | 2020-05-28 | Hewlett Packard Enterprise Development Lp | Snapshot format for object-based storage |
US11275734B2 (en) * | 2020-05-05 | 2022-03-15 | Microsoft Technology Licensing, Llc | Data lake workload optimization through index modeling and recommendation |
-
2021
- 2021-12-27 CN CN202111619245.9A patent/CN114296649B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699459A (zh) * | 2013-12-31 | 2014-04-02 | 汉柏科技有限公司 | 基于qcow2快照的虚拟机数据增量备份方法及*** |
CN106919477A (zh) * | 2017-03-03 | 2017-07-04 | 上海爱数信息技术股份有限公司 | 一种虚拟磁盘的解析方法及*** |
CN110018983A (zh) * | 2017-09-27 | 2019-07-16 | 华为技术有限公司 | 一种元数据查询方法及装置 |
CN109164988A (zh) * | 2018-08-30 | 2019-01-08 | 上海交通大学 | 基于处理器的虚拟机快照方法和*** |
CN110196885A (zh) * | 2019-06-13 | 2019-09-03 | 东方电子股份有限公司 | 一种云化分布式实时数据库*** |
CN110737512A (zh) * | 2019-10-25 | 2020-01-31 | 北京浪潮数据技术有限公司 | 跨平台虚拟机在线迁移方法及相关组件 |
CN111625401A (zh) * | 2020-05-29 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 基于集群文件***的数据备份方法、装置及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
面向OpenStack/Ceph的虚拟机备份***研究;杨皓森;胡晓勤;黄传波;;计算机***应用(11);98-104 * |
Also Published As
Publication number | Publication date |
---|---|
CN114296649A (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531940B (zh) | 视频文件处理方法及装置 | |
US8689047B2 (en) | Virtual disk replication using log files | |
US8326803B1 (en) | Change tracking of individual virtual disk files | |
US10162722B2 (en) | Virtual machine aware replication method and system | |
US9424137B1 (en) | Block-level backup of selected files | |
US8015157B2 (en) | File sharing system, file server, and method for managing files | |
EP2288975B1 (en) | Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps | |
US20180267856A1 (en) | Distributed storage system, data storage method, and software program | |
US7461201B2 (en) | Storage control method and system for performing backup and/or restoration | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
US7681001B2 (en) | Storage system | |
CN110058953B (zh) | 用于改变存储***的类型的方法、设备和存储介质 | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及*** | |
US10628298B1 (en) | Resumable garbage collection | |
CN109918352B (zh) | 存储器***和存储数据的方法 | |
US20200150866A1 (en) | Volume management apparatus, volume management method, and volume management program | |
US10346077B2 (en) | Region-integrated data deduplication | |
WO2022033269A1 (zh) | 数据处理的方法、设备及*** | |
US10324807B1 (en) | Fast native file system creation for backup files on deduplication systems | |
EP4170499A1 (en) | Data storage method, storage system, storage device, and storage medium | |
US12045173B2 (en) | Stale data recovery using virtual storage metadata | |
CN111684779B (zh) | 分层存储管理***中的数据迁移 | |
CN114296649B (zh) | 云间业务迁移*** | |
CN115981559A (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 |