CN111078127B - 数据迁移方法、系统及装置 - Google Patents
数据迁移方法、系统及装置 Download PDFInfo
- Publication number
- CN111078127B CN111078127B CN201811226710.0A CN201811226710A CN111078127B CN 111078127 B CN111078127 B CN 111078127B CN 201811226710 A CN201811226710 A CN 201811226710A CN 111078127 B CN111078127 B CN 111078127B
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- read
- migration
- data cluster
- 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
- 230000005012 migration Effects 0.000 title claims abstract description 418
- 238000013508 migration Methods 0.000 title claims abstract description 418
- 238000000034 method Methods 0.000 title claims abstract description 174
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000011084 recovery Methods 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 28
- 238000007726 management method Methods 0.000 description 124
- 238000010586 diagram Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
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/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/0647—Migration 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种数据迁移方法,包括:基于第一数据集群的第一元数据信息,数据迁移管控装置在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;数据迁移管控装置控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;数据迁移管控装置控制第二数据集群从第一数据集群中获取待迁移数据,以使第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。因此,本申请能够实现数据的热迁移,数据集群能够在数据迁移的过程中,持续为用户提供数据服务,使用户对数据迁移过程无感知,提升了用户体验。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据迁移方法、系统及装置。
背景技术
随着云计算技术的发展,云盘也随之应运而生。云盘是一种专业的互联网存储工具,它通过互联网为企业和个人提供信息的存储、读取、下载等服务,具有安全稳定、海量存储的特点。
对于IaaS(Infrastructure-as-a-Service,意为基础设施即服务)云计算平台而言,云盘发挥着至关重要的作用。例如,云盘可以为云计算平台带来更高的数据可靠性和可用性,灵活的数据快照功能,更好的虚拟机动态迁移支持,更短的主机故障恢复时间等等优良性能。
在云计算平台的运维过程中,可能需要对存储在云盘上的大量数据进行迁移。这一数据迁移过程中,如果停止为用户提供的数据服务,将严重影响用户体验。因此,亟需一种用户无感知的数据迁移方法,以便可以在数据迁移的过程中持续为用户提供数据读写服务,提升用户体验。
发明内容
本申请实施例提供了数据迁移方法、系统和装置,旨在实现用户无感知的数据迁移,以便可以在数据迁移的过程中持续为用户提供数据读写服务,提升用户体验。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据迁移方法,所述方法包括:
基于第一数据集群的第一元数据信息,数据迁移管控装置在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息;
所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
所述数据迁移管控装置控制所述第二数据集群从所述第一数据集群中获取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
优选的,本申请实施例第一方面提供的方法中,所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态,包括:
所述数据迁移管控装置确定读写状态信息,所述读写状态信息中包括所述第一读写状态和所述第二读写状态,所述第一读写状态为只读状态,所述第二读写状态为可读写状态;
所述数据迁移管控装置向所述第一数据集群发送所述读写状态信息,以控制所述第一数据集群处于所述只读状态;
所述数据迁移管控装置向所述第二数据集群发送所述读写状态信息,以控制所述第二数据集群处于所述可读写状态。
优选的,本申请实施例第一方面提供的方法中,在所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态之后,所述方法还包括:
所述数据迁移管控装置向所述第一数据集群发送关闭通知;
所述数据迁移管控装置向所述第二数据集群发送开启通知;
所述数据迁移管控装置向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
优选的,本申请实施例第一方面提供的方法中,基于第一数据集群的第一元数据信息,数据迁移管控装置在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息,包括:
所述数据迁移管控装置从所述第一数据集群获取所述第一元数据信息;
所述数据迁移管控装置将所述第一元数据信息发送至所述第二数据集群,以在所述第二数据集群上创建与所述第一元数据信息相对应的所述第二元数据信息。
优选的,本申请实施例第一方面提供的方法中,所述数据迁移管控装置控制所述第二数据集群从所述第一数据集群中获取待迁移数据,包括:
所述数据迁移管控装置触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据。
优选的,本申请实施例第一方面提供的方法中,所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据,包括:
所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群。
优选的,本申请实施例第一方面提供的方法中,在所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态之后,所述方法还包括:
所述第二数据集群接收来自客户端的第一读数据请求,所述第一读数据请求中包括请求读取的数据的逻辑地址信息;
在所述请求读取的数据未存储在所述第二数据集群上的情况下,所述第二数据集群向所述第一数据集群发送第二读数据请求,所述第二读数据请求中包括所述请求读取的数据的逻辑地址信息;
所述第一数据集群接收到所述第二读数据请求后,在所述第一数据集群上读取所述请求读取的数据,并向所述第二数据集群返回所述请求读取的数据;
所述第二数据集群接收到所述第一数据集群返回的所述请求读取的数据后,向所述客户端返回所述请求读取的数据。
优选的,本申请实施例第一方面提供的方法中,所述方法还包括:
在所述请求读取的数据存储在所述第二数据集群上的情况下,所述第二数据集群在所述第二数据集群上读取所述请求读取的数据,并向所述客户端返回所述请求读取的数据。
第二方面,本申请实施例提供一种数据迁移方法,应用于第二数据集群,所述方法包括:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据;
基于所述待迁移数据,保存所述待迁移数据中的有效数据。
优选的,本申请实施例第二方面提供的方法中,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据,包括:
所述第二数据集群中的无效数据回收装置,在所述数据迁移管控装置的触发下,从所述第一数据集群中获取待迁移数据。
优选的,本申请实施例第二方面提供的方法中,所述第二数据集群中的无效数据回收装置,在所述数据迁移管控装置的触发下,从所述第一数据集群中获取待迁移数据,包括:
所述无效数据回收装置,在所述数据迁移管控装置的触发下,从所述第一数据集群中拉取所述待迁移数据。
优选的,本申请实施例第二方面提供的方法中,基于所述待迁移数据,保存所述待迁移数据中的有效数据,包括:
所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群。
优选的,本申请实施例第二方面提供的方法中,所述方法还包括:
接收所述数据迁移管控装置下发的开启通知。
优选的,本申请实施例第二方面提供的方法中,在接收所述数据迁移管控装置下发的开启通知之前,所述方法还包括:
接收所述数据迁移管控装置发送的、所述第一数据集群的第一元数据信息;
根据所述第一元数据信息,创建与所述第一元数据信息相对应的第二元数据信息。
优选的,本申请实施例第二方面提供的方法中,在接收所述数据迁移管控装置下发的开启通知之后,所述方法还包括:
接收来自客户端的第一读数据请求,所述第一读数据请求中包括请求读取的数据的逻辑地址信息;
在所述请求读取的数据未存储在所述第二数据集群上的情况下,向所述第一数据集群发送第二读数据请求,所述第二读数据请求中包括所述请求读取的数据的逻辑地址信息;
接收所述第一数据集群返回的所述请求读取的数据,并向所述客户端返回所述请求读取的数据。
优选的,本申请实施例第二方面提供的方法中,所述方法还包括:
在所述请求读取的数据存储在所述第二数据集群上的情况下,在所述第二数据集群上读取所述请求读取的数据;
向所述客户端返回所述请求读取的数据。
优选的,本申请实施例第二方面提供的方法中,在接收所述数据迁移管控装置下发的开启通知之后,所述方法还包括:
接收来自客户端的写数据请求,所述写数据请求中包括请求写入的数据;
基于所述读写状态信息,在所述第二数据集群中写入所述请求写入的数据。
第三方面,本申请实施例提供一种数据迁移方法,应用于第一数据集群,所述方法包括:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
优选的,本申请实施例第三方面提供的方法中,所述方法还包括:
接收所述数据迁移管控装置下发的关闭通知。
优选的,本申请实施例第三方面提供的方法中,所述方法还包括:
向所述数据迁移管控装置提供第一元数据信息,供所述数据迁移管控装置在所述第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息。
优选的,本申请实施例第三方面提供的方法中,所述方法还包括:
接收所述第二数据集群发送的第二读数据请求,所述第二读数据请求中包括请求读取的数据的逻辑地址信息;
在所述第一数据集群上读取所述请求读取的数据;
向所述第二数据集群返回所述请求读取的数据。
第四方面,本申请实施例提供一种数据迁移系统,所述数据迁移系统包括:
数据迁移管控装置,用于基于第一数据集群的第一元数据信息,在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息;还用于控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;还用于控制所述第二数据集群从所述第一数据集群中获取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据;
第二数据集群,用于接收所述数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;还用于在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据;还用于基于所述待迁移数据,保存所述待迁移数据中的有效数据;
第一数据集群,用于接收所述数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;还用于在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第五方面,本申请实施例提供一种数据迁移装置,所述装置包括:
元数据信息创建模块,用于基于第一数据集群的第一元数据信息,在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息;
读写状态控制模块,用于控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
迁移控制模块,用于控制所述第二数据集群从所述第一数据集群中获取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第六方面,本申请实施例提供一种数据迁移装置,应用于第二数据集群,所述装置包括:
读写状态信息接收模块,用于接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
待迁移数据获取模块,用于在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据;
有效数据存储模块,用于基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第七方面,本申请实施例提供一种数据迁移装置,应用于第一数据集群,所述装置包括:
读写状态信息接收模块,用于接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
待迁移数据提供模块,用于在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第八方面,本申请实施例提供一种数据迁移装置,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
基于第一数据集群的第一元数据信息,在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息;
控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
控制所述第二数据集群从所述第一数据集群中获取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
优选的,本申请实施例第八方面提供的数据迁移装置中,所述可执行指令在被执行时还使所述处理器执行以下操作:
触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据。
优选的,本申请实施例第八方面提供的数据迁移装置中,所述可执行指令在被执行时还使所述处理器执行以下操作:
向所述第一数据集群发送关闭通知;
向所述第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
优选的,本申请实施例第八方面提供的数据迁移装置中,所述可执行指令在被执行时还使所述处理器执行以下操作:
根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
将整理得到的有效数据保存入所述第二数据集群。
第九方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,使得所述处理器执行以下操作:
基于第一数据集群的第一元数据信息,在第二数据集群上创建与所述第一元数据信息相对应的第二元数据信息;
控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
控制所述第二数据集群从所述第一数据集群中获取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
优选的,本申请实施例第九方面提供的数据迁移装置中,所述一个或多个程序当被处理器执行时,还使得所述处理器执行以下操作:
触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据。
优选的,本申请实施例第九方面提供的数据迁移装置中,所述一个或多个程序当被处理器执行时,还使得所述处理器执行以下操作:
向所述第一数据集群发送关闭通知;
向所述第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
优选的,本申请实施例第九方面提供的数据迁移装置中,所述一个或多个程序当被处理器执行时,还使得所述处理器执行以下操作:
根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
将整理得到的有效数据保存入所述第二数据集群。
第十方面,本申请实施例提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据;
基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第十一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,在所述数据迁移管控装置的控制下,从所述第一数据集群中获取待迁移数据;
基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第十二方面,本申请实施例提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
第十三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例中,数据迁移管控装置能够根据数据迁移的方向确定数据集群的读写状态信息,还能够基于迁出集群(记为第一数据集群)的元数据信息,在迁入集群(记为第二数据集群)上创建相对应的元数据信息。在此基础上,数据迁移管控装置还能够控制迁入集群从迁出集群中获取待迁移数据,从而完成数据迁移。采用本申请实施例提供的方案,由于迁入集群和迁出集群的读写状态不同,因此,在迁出集群向迁入集群迁移数据的过程中,能够持续的为用户提供数据的读取和写入等数据服务,使得用户对数据迁移过程无感知,提升了用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为数据冷迁移过程的架构示意图;
图2为本申请实施例提供的数据迁移方法的流程示意图;
图3为本申请实施例提供的数据热迁移过程的架构示意图;
图4为本申请实施例提供的由第二数据集群执行的数据迁移方法的流程示意图;
图5为本申请实施例提供的由第一数据集群执行的数据迁移方法的流程示意图;
图6为本申请实施例提供的数据迁移过程的交互流程示意图;
图7为本申请实施例提供的数据读取过程的交互流程示意图;
图8为本申请实施例提供的数据写入过程的交互流程示意图;
图9为本申请实施例中一种数据迁移装置的结构示意图;
图10为本申请实施例中应用于第二数据集群的又一种数据迁移装置的结构示意图;
图11为本申请实施例中应用于第一数据集群的又一种数据迁移装置的结构示意图;
图12为本申请实施例中再一种数据迁移装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着云计算平台的发展,云服务商可能会选择不同的城市建立数据中心,将云盘迁移至距离用户地理位置更近、更经济、带宽更大的数据中心,以便更好的为用户提供数据服务。这就需要对存储在云盘上的大量数据进行迁移。
在有些情况下,可以采用图1所示例的冷迁移方式进行数据的迁移。所谓“冷迁移”,指的是在数据迁移的过程中,需要让用户(可以理解为云盘的客户端)暂停使用云盘或者虚拟机停机。在切断用户与第一数据服务端之间的读写服务的情况下,将数据从第一数据集群(即图1中的Cluster#1)拷贝到第二数据集群(即图1中的Cluster#2);在完成数据迁移后,再通知用户继续使用第二数据服务端。
图1所示例的冷迁移过程的具体步骤包括:
第11步,数据迁移管控装置(也可称为数据迁移管控系统,Cloud MigrationSystem)通知第一数据集群Cluster#1中的第一数据服务端DiskServer1:迁出云盘。则第一数据服务端将关闭云盘1,并停止对客户端(即用户)提供的所有服务(例如,IO服务)。此时,客户端Client将无法访问该云盘1。
第12步,第一数据集群的云盘1关闭后,用户到第一数据服务端的读写服务也相应被停止,用户无法继续发送读写请求(IO请求)。
第13步,数据迁移管控装置通知第二数据集群Cluster#2中的第二数据服务端DiskServer2:迁入云盘。此时,第二数据服务端DiskServer2将在第二数据集群Cluster#2中创建云盘2。但此时,第二数据服务端仅仅创建出云盘2的元数据,云盘2上并没有任何数据,只是一个空壳,无法向用户提供数据服务。
第14步,第二数据集群Cluster#2中的第二数据服务端DiskServer2将云盘1中的数据拷贝到云盘2中。这一过程会将云盘1(作为数据迁移过程中的源云盘)的后端数据导入到云盘2(作为数据迁移过程中的目标云盘)中,并且按照在云盘2中创建的元数据进行存储。
第15步,数据迁移管控装置通知客户端Client新的云盘已经迁移完毕,可以开始向第二数据集群中的云盘2发起读写请求,也就是,可以向云盘2中写入数据,也可以从云盘2中读取数据。
第16步,客户端Client向第二数据集群中的云盘2发起读写请求,进行数据读写。
由此可见,如果采用图1所示例的数据冷迁移方法进行云盘数据的迁移(从云盘1迁移至云盘2),那么,在整个云盘的跨集群数据拷贝过程中,数据服务端都需要保持停止IO服务的状态,只有在所有云盘数据都拷贝完成后,数据服务端才能恢复对用户的数据服务。可以想象,整个过程的耗时与云盘的大小有关,这一过程往往非常缓慢。因此,这将给用户带来不便,影响用户体验。
本申请实施例中给出了一种数据迁移方法,可以实现云盘数据的热迁移,也就是说,云盘数据的迁移过程中,用户无感知,数据服务端仍然可以为用户提供持续的数据服务,以提升用户体验。
以下结合附图,详细说明本申请各实施例提供的技术方案。
参见图2所示,本申请实施例提供了一种数据迁移方法,主要包括以下步骤:
S101:基于第一数据集群的第一元数据信息,数据迁移管控装置在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;
S103:数据迁移管控装置控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;
S105:数据迁移管控装置控制第二数据集群从第一数据集群中获取待迁移数据,以使第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
可以理解到,在确定需要对云盘数据进行迁移时,首先需要确定数据的迁移方向,即需要迁出数据的数据集群和需要迁入数据的数据集群。
参见图3所示,需要迁出数据的数据集群,作为数据迁出方参与数据的迁移,因此,又可称为源数据集群或迁出集群(例如,图3中的第一数据集群Cluster#1)。该集群中的数据服务端可以称为源数据服务端或迁出数据服务端(例如,图3中的第一数据服务端DiskServer1),该集群中的云盘可以称为源云盘或迁出云盘(例如,图3中的云盘1)。
参见图3所示,需要迁入数据的数据集群,作为数据迁入方参与数据的迁移,因此,又可称为目标数据集群或迁入集群(例如,图3中的第二数据集群Cluster#2)。该集群中的数据服务端可以称为目标数据服务端或迁入数据服务端(例如,图3中的第二数据服务端DiskServer2),该集群中的云盘可以称为目标云盘或迁入云盘(例如,图3中的云盘2)。
能够理解,对于参与数据迁移的一对集群而言,其中一个数据集群将作为数据迁出方,而对侧的另一个数据集群将作为数据迁入方。数据迁出方的数据集群将向数据迁入方的数据集群输出数据,因此,数据迁出方中的数据服务端需要具备数据读取功能,数据迁入方中的数据服务端需要具备数据写入功能。
因此,数据迁移管控装置在确定数据迁移的方向后,可以进一步执行步骤S103,控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态。
具体的,数据迁移管控装置可以先确定包括第一读写状态和第二读写状态的读写状态信息。确定参与数据迁移的一对集群(第一数据集群和第二数据集群)的读写状态时,可以将作为数据迁出方的第一数据集群(即源数据集群)确定为只读状态,以便确保数据迁出方能够正常的输出数据,并且不再接受向数据迁出方中写入新的数据。同时,可以将作为数据迁入方的第二数据集群(即目标数据集群)确定为可读写状态,以便确保数据迁入方能够正常的写入来自源数据集群的源数据,并且,同时向客户端(即用户)提供数据的读取和写入服务。因此,第一数据集群的第一读写状态可具体为只读状态,第二数据集群的第二读写状态可具体为可读写状态。
在一种应用场景中,数据迁移的过程为,将一个源数据集群中的数据迁移至一个目标数据集群。在这种一对一的数据迁移中,按照数据的迁移方向确定数据迁出方和数据迁入方即可。以图3所示为例,以第一数据集群作为数据迁出方,以第二数据集群作为数据迁入方,则读写状态信息中,第一数据集群的第一读写状态为只读状态,第二数据集群的第二读写状态为可读写状态。
在又一种应用场景中,数据迁移的过程为,将一个源数据集群中的数据迁移至多个目标数据集群。例如,可能是将源数据集群中的所有数据迁移至多个目标数据集群中进行备份,或者可能是将一个源数据集群中的数据划分为多个部分,不同部分分别迁移到不同的目标数据集群,以分别进行数据管理,分别提供数据服务。在这种一对多的数据迁移中,按照每一部分数据的迁移方向确定数据迁出方和对侧的数据迁入方即可,能够理解,这种情况下将确定出多对进行数据迁移的集群对。
同样道理,在将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移中,按照每一部分数据的迁移方向确定数据迁出方和对侧的数据迁入方即可,能够理解,这种情况下同样将确定出多对进行数据迁移的集群对。
还需要说明的是,在存在多次不同方向的数据迁移时,多次按照本申请实施例提供的数据迁移方法实施即可。
在确定读写状态信息的基础上,数据迁移管控装置可以进一步向第一数据集群发送读写状态信息,以控制第一数据集群处于只读状态;数据迁移管控装置还可以向第二数据集群发送读写状态信息,以控制第二数据集群处于可读写状态。
能够理解到,由于读写状态信息能够反映数据的迁移方向,以及数据集群在数据迁移的过程中所扮演的角色(具体的,数据迁出方还是数据迁入方),因此,将读写状态信息发送至第一数据集群和第二数据集群,就可以指示第一数据集群和第二数据集群根据读写状态信息提供数据服务。
可以理解到,读写状态信息中第一数据集群的第一读写状态为只读状态。这就表示第一数据集群将只能提供数据读取服务,而不再允许向云盘1中写入新的数据。因此,第一数据集群根据读写状态信息提供数据服务时,也将不接收数据写入请求,或者不响应数据写入请求。
可以理解到,读写状态信息中第二数据集群的第二读写状态为可读写状态。这就表示第二数据集群可以提供数据读取服务和数据写入服务。因此,第二数据集群根据读写状态信息提供数据服务时,既可以接收并响应数据写入请求,也可以接收并响应数据读取请求。
可选的,在第一数据集群处于只读态、第二数据集群处于可读写状态的情况下,数据迁移管控装置还向作为数据迁出方的第一数据集群发送关闭通知(参见图3中步骤21),以便断开第一数据集群中第一数据服务端与客户端之间的IO连接(参见图3中步骤22),使得第一数据集群(具体包括第一数据服务端和云盘1)停止向客户端提供数据服务,无论是数据读取服务还是数据写入服务。
可以理解到,在第一数据集群接收到数据迁移管控装置发送的关闭通知后,客户端将无法访问第一数据服务端,第一数据集群也将停止向客户端提供的数据服务。
可选的,在第一数据集群处于只读态、第二数据集群处于可读写状态的情况下,数据迁移管控装置还向作为数据迁入方的第二数据集群发送开启通知(参见图3中步骤23),以便启动第二数据集群中第二数据服务端与客户端之间的IO连接,使得第二数据集群(具体包括第二数据服务端和云盘2)开始向客户端提供数据服务,包括数据读取服务和数据写入服务。
需要说明的是,在启用第二数据集群之前,数据迁移管控装置还需执行步骤S101,基于第一数据集群的第一元数据信息,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息。具体的,数据迁移管控装置可以先从第一数据集群获取第一元数据信息,然后将第一元数据信息发送至第二数据集群,以在第二数据集群上创建与第一元数据信息相对应的第二元数据信息。
可选的,数据迁移管控装置可以将第一数据集群中云盘1的第一元数据信息,携带在开启通知中发送到第二数据集群。第二数据集群在接收到开启通知后,可以根据通知中携带的第一元数据信息,在云盘2中进行第二元数据的创建,创建完毕后建立与客户端的IO连接。
具体的,参见图3所示,数据迁移管控装置从第一数据集群(此处具体为Cluster#1)的云盘1中获取云盘1的元数据(即第一元数据)。进一步的,数据迁移管控装置将云盘1的元数据发送至第二数据集群(此处具体为Cluster#2)中的第二数据服务端(此处具体为DiskServer2),由第二数据服务端在第二数据集群上的云盘2上创建云盘2上的元数据(即第二元数据)。
可以理解到,第二数据集群在云盘上建立了元数据,并且接收到数据迁移管控装置发送的开启通知后,就可以向客户端提供数据服务了。只是,在当前阶段,云盘上并未写入用户的数据,只是一个创建了元数据的空壳。
可选的,在第一数据集群的第一读写状态为只读状态、第二数据集群的第二读写状态为可读写状态的情况下,数据迁移管控装置还可以向客户端发送启用第二数据集群的通知(参见图3中步骤25),启用第二数据集群的通知中包括第二数据集群的标识信息,以便引导用户访问第二数据集群,利用第二数据集群为用户提供数服务。可以理解到,在通知用户启动第二数据集群之前,数据迁移管控装置可以先指示第二数据集群在其云盘2中创建元数据,并向第二数据集群发送开启通知,启动第二数据集群中第二数据服务端与客户端之间的IO连接。
可选的,数据迁移管控装置在执行步骤S105,控制第二数据集群从第一数据集群中获取待迁移数据时,可以触发第二数据集群中的无效数据回收装置从第一数据集群中拉取待迁移数据(参见图3中步骤24)。相对应的,第二数据集群可以基于待迁移数据,保存待迁移数据中的有效数据,从而完成了数据从第一数据集群向第二数据集群的迁移。
以上主要介绍了数据迁移管控装置对第一数据集群和第二数据集群的控制过程,使得第一数据集群处于只读状态(记为第一读写状态)、第二数据集群处于可读写状态(记为第二读写状态),并在第二数据集群上创建与第一元数据信息相对应的第二元数据信息,在此基础上,数据迁移管控装置还控制第二数据集群从第一数据集群中获取待迁移数据,从而使得第二数据集群能够基于待迁移数据,保存待迁移数据中的有效数据,完成数据从第一数据集群向第二数据集群的迁移。
本申请实施例中,数据迁移管控装置能够根据数据迁移的方向确定数据集群的读写状态信息,还能够基于迁出集群(记为第一数据集群)的元数据信息,在迁入集群(记为第二数据集群)上创建相对应的元数据信息。在此基础上,数据迁移管控装置还能够控制迁入集群从迁出集群中获取待迁移数据,从而完成数据迁移。采用本申请实施例提供的方案,由于迁入集群和迁出集群的读写状态不同,因此,在迁出集群向迁入集群迁移数据的过程中,能够持续的为用户提供数据的读取和写入等数据服务,使得用户对数据迁移过程无感知,提升了用户体验。
与以上实施例提供的主要由数据迁移管控装置执行的数据迁移方法相对应的,本申请实施例还提供了分别由第一数据集群和第二数据集群执行的数据迁移方法。
参见图4所示,本申请实施例提供了由第二数据集群(即目标集群)执行的数据迁移方法,可包括:
S201:接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态。
可以理解到,第二数据集群执行步骤S201的过程,与数据迁移管控装置执行步骤S103,控制第二数据集群处于第二读写状态的过程相对应,此处不再赘述。
S203:在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,在数据迁移管控装置的控制下,从第一数据集群中获取待迁移数据。
可以理解到,第二数据集群中包含无效数据回收装置,这一装置本质上可以是在第二数据集群中的计算机上运行的无效数据回收进程。在执行步骤S203时,无效数据回收装置可以在数据迁移管控装置的触发下,从第一数据集群中获取待迁移数据,具体的,可以是从第一数据集群中拉取待迁移数据。
S205:基于待迁移数据,保存待迁移数据中的有效数据。
在执行步骤S205时,无效数据回收装置可以根据待迁移数据的数据索引,对待迁移数据进行整理,进而将整理得到的有效数据保存入第二数据集群。采用这种方式,可以在整理无效数据的同时完成数据的迁移,实现数据从第一数据集群到第二数据集群的迁移。
具体的,第二数据集群中的无效数据回收装置,可以从第一数据集群中拉取待迁移数据以及数据索引(参见图3中步骤28),进而基于待迁移数据以及数据索引对待迁移数据进行整理,在第二数据集群中保存有效数据(参见图3中步骤29),实现对待迁移数据的迁移。
本申请实施例中,无效数据回收装置可以具体采用垃圾回收器(Garbage-Collection Worker)的原理,根据从第一数据集群中的云盘1拉取到的数据索引,对待迁移数据进行整理。具体的,无效数据回收装置将确定来自云盘1的待迁移数据中哪些是无效数据,哪些是有效数据,并确定这些有效数据对应的元数据信息(此时,这些元数据信息是与云盘1中的第一元数据相关联的)。
在此基础上,第二数据集群可以根据这些有效数据对应的元数据信息进行保存。具体的,由第二数据集群中的第二数据服务端,根据有效数据对应的元数据信息、以及云盘2中创建有的第二元数据,将有效数据写入云盘2中对应位置。
可以理解到,利用垃圾回收器的重写入(Rewrite)原理,第二数据集群中的无效数据回收装置将带有无效数据的数据文件重写成一个不含垃圾的数据文件,从而能够在回收无效数据的同时,将有效数据从一个集群(源数据集群)迁移到了另一个集群(目标数据集群)。
可选的,在完成数据的迁移后,可以进一步删除存储在源数据集群的源云盘上的数据,以回收数据在源云盘上所占用的存储空间。可以理解到,本申请实施例所实现的数据迁移,其实质是利用无效数据回收装置(可以具体为垃圾回收器进程)通过一次或多次数据搬迁完成的。理论上,可以搬迁一部分数据,就在源云盘上删除一部分数据。更优选的方式,在将源云盘上的所有数据都迁移到目标云盘后,再一次性删除源云盘上的数据,释放存储空间。
可选的,数据迁移管控装置向第二数据集群发送开启通知,相对应的,第二数据集群也会接收数据迁移管控装置下发的开启通知,以便为客户端提供数据服务。
可选的,第二数据集群在接收数据迁移管控装置下发的开启通知之前,与数据迁移管控装置执行步骤S101基于第一数据集群的第一元数据信息,第二数据集群上创建与第一元数据信息相对应的第二元数据信息的步骤相对应的,第二数据集群会接收数据迁移管控装置发送的、第一数据集群的第一元数据信息;并进而根据第一元数据信息,创建与第一元数据信息相对应的第二元数据信息,以便为客户端提供数据服务。
第二数据集群在接收到数据迁移管控装置下发的开启通知之后,即可为客户端提供数据服务,具体的,可以接收并响应客户端的读数据请求和写数据请求。
可选的,第二数据集群可以接收来自客户端的第一读数据请求,其中,第一读数据请求中包括请求读取的数据的逻辑地址信息。第二数据集群可进一步判断请求读取的数据是否存储在第二数据集群上。如果请求读取的数据存储在第二数据集群上,则可直接在第二数据集群上读取请求读取的数据,并向客户端返回请求读取的数据。
如果请求读取的数据未存储在第二数据集群上,则第二数据集群可以向第一数据集群发送第二读数据请求,其中,第二读数据请求中包括请求读取的数据的逻辑地址信息。相对应的,第一数据集群接收到第二数据集群发送的第二读数据请求后,可在第一数据集群上读取请求读取的数据,并向第二数据集群返回请求读取的数据。继而,第二数据集群将接收到第一数据集群返回的请求读取的数据,并向客户端返回请求读取的数据。
可选的,第二数据集群也可以接收来自客户端的写数据请求,其中,写数据请求中包括请求写入的数据。进而,第二数据集群可以基于读写状态信息(具体为,第二数据集群的第二读写状态为可读写状态),在第二数据集群中写入请求写入的数据。
以上阐述了第二数据集群执行数据迁移方法进行数据迁移的主要过程,还阐述了在数据迁移的过程中提供读数据服务和写数据服务的过程。
在本申请实施例中,第二数据集群在数据迁移管控装置的控制下,可以从第一数据集群中获取待迁移数据,并保存待迁移数据中的有效数据,实现了数据从第一数据集群向第二数据集群的迁移。与此同时,第二数据集群还基于数据迁移管控装置下发的读写状态信息,在数据迁移的过程中,能够以可读写状态向客户端持续的提供数据的读取和写入等数据服务,使得用户对数据迁移过程无感知,提升了用户体验。
参见图5所示,本申请实施例提供了由第一数据集群(即源集群)执行的数据迁移方法,可包括:
S301:接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态。
可以理解到,第一数据集群执行步骤S301的过程,与数据迁移管控装置执行步骤S103,控制第一数据集群处于第一读写状态的过程相对应,此处不再赘述。
S303:在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,向第二数据集群提供待迁移数据,供第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
可选的,数据迁移管控装置向第一数据集群发送关闭通知,相对应的,第一数据集群也会接收数据迁移管控装置下发的关闭通知,以便停止向客户端提供数据服务。
可选的,第一数据集群还向数据迁移管控装置提供第一元数据信息,供数据迁移管控装置执行步骤S101,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息。
可选的,第一数据集群还可以接收第二数据集群发送的第二读数据请求,第二读数据请求中包括请求读取的数据的逻辑地址信息。可以理解到,第一数据集群接收到的第二读数据请求,是由第二数据集群在确定用户请求读取的数据未存储在第二数据集群上时发送的。第一数据集群在接收到第二读数据请求后,可以进一步在第一数据集群上读取请求读取的数据,并向第二数据集群返回请求读取的数据,以便第二数据集群进一步向客户端返回。
在本申请实施例中,第一数据集群在数据迁移管控装置的控制下,可以向第二数据集群提供待迁移数据,以使第二数据集群保存待迁移数据中的有效数据,实现了数据从第一数据集群向第二数据集群的迁移。与此同时,第一数据集群还基于数据迁移管控装置下发的读写状态信息,在数据迁移的过程中,能够以只读状态,停止向客户端直接提供数据服务,而可向第二数据集群提供尚未存储在第二数据集群上的数据,以满足用户读取数据的需求,使得用户对数据迁移过程无感知,提升了用户体验。
本申请实施例还提供了一种数据迁移系统,该数据迁移系统可具体包括:
数据迁移管控装置,用于基于第一数据集群的第一元数据信息,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;还用于控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;还用于控制第二数据集群从第一数据集群中获取待迁移数据,以使第二数据集群基于待迁移数据,保存待迁移数据中的有效数据;
第二数据集群,用于接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;还用于在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,在数据迁移管控装置的控制下,从第一数据集群中获取待迁移数据;还用于基于待迁移数据,保存待迁移数据中的有效数据;
第一数据集群,用于接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;还用于在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,向第二数据集群提供待迁移数据,供第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
能够理解,数据迁移系统中的数据迁移管控装置能够实现前述实施例中由数据迁移管控装置执行的数据迁移方法的各个步骤,第二数据集群能够实现前述实施例中由第二数据集群执行的数据迁移方法的各个步骤,第一数据集群能够实现前述实施例中由第一数据集群执行的数据迁移方法的各个步骤。因此,前述实施例中的相关描述均适用于数据迁移系统,此处不再赘述。
图6给出了本申请实施例中数据迁移管控装置、第一数据集群和第二数据集群之间的交互流程示意图。下面以图6为例,进一步介绍本申请实施例所提供的数据迁移方法。
数据迁移管控装置,根据数据迁移的方向——从第一数据集群迁移至第二数据集群,确定源集群(即第一数据集群)和目标集群(即第二数据集群)的读写状态信息。在此基础上,数据迁移管控装置向第一数据集群和第二数据集群分别发送读写状态信息,以控制第一数据集群处于第一读写状态,即只读状态,并控制第二数据集群处于第二读写状态,即可读写状态。可以理解到,第一数据集群和第二数据集群在接收到读写状态信息的基础上,可以基于读写状态信息进行数据的迁移,并确定如何提供数据服务。
数据迁移管控装置,还从第一数据集群获取第一元数据信息,并进而将第一元数据信息发送至第二数据集群。第二数据集群接收到第一元数据信息后,根据第一元数据信息,创建与第一元数据信息相对应的第二元数据信息,以便向客户端提供数据读写服务。
除此之外,数据迁移管控装置还可以向第一数据集群发送关闭通知,使得第一数据集群停止向客户端提供数据服务;向第二数据集群发送开启通知,使得第二数据集群开始向客户端提供数据服务;还向客户端发送启用第二数据集群的通知,使得客户端可以向第二数据集群请求数据读写服务。
为控制数据迁移,数据迁移管控装置还触发第二数据集群进行数据的迁移,具体的,触发第二数据集群中的无效数据回收装置从第一数据集群拉取数据。相对应的,第二数据集群中的无效数据回收装置,可以在数据迁移管控装置的触发下,从第一数据集群中拉取待迁移数据,进而根据待迁移数据的数据索引,对待迁移数据进行整理,并将整理得到的有效数据保存入第二数据集群,从而完成数据从第一数据集群向第二数据的迁移。
由于数据迁移管控装置将根据数据迁移方向确定出的读写状态信息同步到第一数据集群和第二数据集群,因此,第一数据集群和第二数据集群均可以在数据迁移的过程中,基于读写状态信息提供数据服务。
参见图7所示,客户端在接收到启用第二数据集群的通知后,可以向第二数据集群发送第一读数据请求(参见图3中步骤26)。第二数据集群接收到读数据请求后,确定本集群的读写状态为可读写,则进一步判断第一读数据请求所请求读取的数据是否存储在本集群(即第二数据集群)中:
如果请求读取的数据存储在第二数据集群上,则第二数据集群可以直接在第二数据集群上读取请求读取的数据,并向客户端返回请求读取的数据。
如果请求读取的数据未存储在第二数据集群上,则第二数据集群可以向第一数据集群发送第二读数据请求,第二读数据请求中包括请求读取的数据的逻辑地址信息。相对应的,第一数据集群接收到第二读数据请求后,在确定本集群的读写状态为只读状态的基础上,可以在第一数据集群上读取请求读取的数据,并向第二数据集群返回请求读取的数据。第二数据集群接收到第一数据集群返回的请求读取的数据后,即可向客户端返回请求读取的数据。
以上描述了在从第一数据集群向第二数据集群进行数据迁移的过程中,数据集群向用户提供读数据服务的过程。可以看出,这一读数据过程能够满足用户读取数据的需求,使得用户对数据迁移过程无感知,提升了用户体验。
参见图8所示,客户端在接收到启用第二数据集群的通知后,可以向第二数据集群发送写数据请求(参见图3中步骤26)。第二数据集群接收到写数据请求后,确定本集群的读写状态为可读写状态,则直接在第二数据集群中写入请求写入的数据即可。因此,这一写数据过程也能够满足用户写入数据的需求,使得用户对数据迁移过程无感知,提升了用户体验。
结合图3所示例的交互图,可以理解到,在数据迁移管控装置将读写状态列表发送到第一数据集群和第二数据集群中后,第一数据集群中的第一数据服务端以及第二数据集群中的第二数据服务端将均根据读写状态信息提供数据服务。
当读写状态信息中,第一数据集群Cluster#1为只读集群,第二数据集群Cluster#2为可读写集群时,第二数据服务端将接收客户端发出的IO请求,参见图3中步骤26。
当第二数据服务端接收到的IO请求为写数据请求时,第二数据服务端直接将请求写入的数据写入云盘2即可。可以理解到,写数据请求中可携带有请求写入的数据,还可包含云盘的标识信息(如云盘ID)、写入数据的偏移、写入数据的大小等,还可以包含写数据请求的校验信息。第二数据服务端根据写数据请求中携带的信息完成数据的写入。
当第二数据服务端接收到的IO请求为读数据请求时,第二数据服务端查询请求读取的数据是否存储在Cluster#2的云盘2中。若数据在Cluster#2的云盘2中,则第二数据服务端直接根据读数据请求中的逻辑地址信息读取数据,并返回给客户端。而若数据未存储在Cluster#2的云盘2中,则第二数据服务端向第一数据服务端请求数据,跨集群从第一数据集群Cluster#1中读取数据,并返回给客户端。相对应的,第一数据服务端也根据逻辑地址信息从云盘1中读取数据,返回至第二数据服务端(参见图3中步骤27),供第二数据服务端返回至客户端。
可以理解到,读数据请求中可携带有云盘的标识信息(例如,云盘ID)、请求读取的数据的偏移,请求读取的数据的大小等,还可以包含读数据请求的校验信息等。云盘的标识信息和请求读取的数据的偏移,即可构成请求读取的数据所对应的逻辑地址信息。第一数据服务端或者第二数据服务端即可根据上述逻辑地址信息,从对应的云盘中读取数据,返回给用户。
可以理解到,参见图3所示,在第二数据集群中创建好云盘2的元数据后,数据迁移管控装置可以立即执行步骤21,通知第一数据集群关闭,从而切断第一数据服务端与客户端之间的连接(如步骤22)。数据迁移管控装置在执行步骤21后还立即执行步骤23,通知第二数据集群开启,并执行步骤25,通知启用第二数据集群,从而建立第二数据服务端与客户端之间的连接(如步骤26)。可以理解到,在步骤22和步骤26之间,会有短暂的时间差,在这个时间差上,客户端既无法访问第一数据服务端,也无法访问第二数据服务端。但由于这个时间差很短,第二数据服务端可以在第一数据集群关闭后很快启用,因此,用户几乎感知不到数据的迁移过程。另外,在数据的迁移过程中,第二数据服务端会判断客户端请求读取的数据是否已存在于云盘2中,根据判断结果决定从云盘2中直接读取,还是从云盘1中拉取(参见图3中步骤27),直至数据迁移服务端通过垃圾回收任务,将云盘1中的数据均导入到云盘2中。由此可见,整个数据迁移的过程中,数据集群与客户端的IO连接,除了短暂的中止外,几乎一直持续,因此,本申请实施例提供的方案能够实现用户无感知的热迁移,能够在数据集群之间进行数据迁移的过程中,持续的为用户提供数据的读取和写入等数据服务,使得用户对数据迁移过程无感知,提升了用户体验。
参见图9所示,本申请实施例还提供了一种数据迁移装置,该装置能够实现前述实施例中提供的由数据迁移管控装置执行的数据迁移方法。该装置可具体包括:
元数据信息创建模块101,用于基于第一数据集群的第一元数据信息,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;
读写状态控制模块103,用于控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;
迁移控制模块105,用于控制第二数据集群从第一数据集群中获取待迁移数据,以使第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
能够理解,上述数据迁移装置,能够实现前述实施例中提供的由数据迁移管控装置执行的数据迁移方法的各个步骤,关于数据迁移方法的相关阐释均适用于数据迁移装置,此处不再赘述。
参见图10所示,本申请实施例还提供了一种数据迁移装置,应用于第二数据集群,该装置能够实现前述实施例中提供的由第二数据集群执行的数据迁移方法。该装置可具体包括:
读写状态信息接收模块201,用于接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
待迁移数据获取模块203,用于在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,在数据迁移管控装置的控制下,从第一数据集群中获取待迁移数据;
有效数据存储模块205,用于基于待迁移数据,保存待迁移数据中的有效数据。
能够理解,上述数据迁移装置,能够实现前述实施例中提供的由第二数据集群执行的数据迁移方法的各个步骤,关于数据迁移方法的相关阐释均适用于数据迁移装置,此处不再赘述。
参见图11所示,本申请实施例还提供了一种数据迁移装置,应用于第一数据集群,该装置能够实现前述实施例中提供的由第一数据集群执行的数据迁移方法。该装置可具体包括:
读写状态信息接收模块301,用于接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
待迁移数据提供模块303,用于在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,向第二数据集群提供待迁移数据,供第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
能够理解,上述数据迁移装置,能够实现前述实施例中提供的由第一数据集群执行的数据迁移方法的各个步骤,关于数据迁移方法的相关阐释均适用于数据迁移装置,此处不再赘述。
图12是本申请实施例的数据迁移装置(可以具体是一种电子设备)的结构示意图。请参考图12,在硬件层面,该数据迁移装置包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该数据迁移装置还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据迁移装置。
该数据迁移装置实现数据迁移方法时,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于第一数据集群的第一元数据信息,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;
控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;
控制第二数据集群从第一数据集群中获取待迁移数据,以便第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
可选的,可执行指令在被执行时还使处理器执行以下操作:
触发第二数据集群中的无效数据回收装置从第一数据集群中拉取待迁移数据。
可选的,可执行指令在被执行时还使处理器执行以下操作:
向第一数据集群发送关闭通知;
向第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,启用第二数据集群的通知中包括第二数据集群的标识信息。
可选的,可执行指令在被执行时还使处理器执行以下操作:
根据待迁移数据的数据索引,对待迁移数据进行整理;
将整理得到的有效数据保存入第二数据集群。
当该数据迁移装置应用于第二数据服务集群中时,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,在数据迁移管控装置的控制下,从第一数据集群中获取待迁移数据;
基于待迁移数据,保存待迁移数据中的有效数据。
当该数据迁移装置应用于第一数据服务集群中时,处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,向第二数据集群提供待迁移数据,供第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
上述如本申请前述实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该数据迁移装置还可执行前述数据迁移装置执行的方法,并实现数据迁移装置在前述实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种应用于数据迁移装置的计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的数据迁移装置中的处理器执行时,能够使处理器执行前述实施例中数据迁移装置执行的方法,并具体用于执行:
基于第一数据集群的第一元数据信息,在第二数据集群上创建与第一元数据信息相对应的第二元数据信息;
控制第一数据集群处于第一读写状态,控制第二数据集群处于第二读写状态;
控制第二数据集群从第一数据集群中获取待迁移数据,以便第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
可选的,一个或多个程序当被处理器执行时,使得处理器执行以下操作:
触发第二数据集群中的无效数据回收装置从第一数据集群中拉取待迁移数据。
可选的,一个或多个程序当被处理器执行时,使得处理器执行以下操作:
向第一数据集群发送关闭通知;
向第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,启用第二数据集群的通知中包括第二数据集群的标识信息。
可选的,一个或多个程序当被处理器执行时,使得处理器执行以下操作:
根据待迁移数据的数据索引,对待迁移数据进行整理;
将整理得到的有效数据保存入第二数据集群。
本申请实施例还提出了一种应用于第二数据集群的计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的数据迁移装置执行时,能够使该数据迁移装置执行前述实施例中数据迁移装置执行的方法,并具体用于执行:
接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,在数据迁移管控装置的控制下,从第一数据集群中获取待迁移数据;
基于待迁移数据,保存待迁移数据中的有效数据。
本申请实施例还提出了一种应用于第一数据集群的计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的数据迁移装置执行时,能够使该数据迁移装置执行前述实施例中数据迁移装置执行的方法,并具体用于执行:
接收数据迁移管控装置下发的读写状态信息,读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
在第一读写状态为只读状态、第二读写状态为可读写状态的情况下,向第二数据集群提供待迁移数据,供第二数据集群基于待迁移数据,保存待迁移数据中的有效数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (17)
1.一种数据迁移方法,其特征在于,所述方法包括:
基于第一数据集群的云盘的第一元数据信息,数据迁移管控装置在第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方;
所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
所述数据迁移管控装置向所述第一数据集群发送关闭通知;
所述数据迁移管控装置触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据;所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群。
2.根据权利要求1所述方法,其特征在于,所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态,包括:
所述数据迁移管控装置确定读写状态信息,所述读写状态信息中包括所述第一读写状态和所述第二读写状态,所述第一读写状态为只读状态,所述第二读写状态为可读写状态;
所述数据迁移管控装置向所述第一数据集群发送所述读写状态信息,以控制所述第一数据集群处于所述只读状态;
所述数据迁移管控装置向所述第二数据集群发送所述读写状态信息,以控制所述第二数据集群处于所述可读写状态。
3.根据权利要求2所述方法,其特征在于,在所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态之后,所述方法还包括:
所述数据迁移管控装置向所述第一数据集群发送关闭通知;
所述数据迁移管控装置向所述第二数据集群发送开启通知;
所述数据迁移管控装置向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
4.根据权利要求1所述方法,其特征在于,基于第一数据集群的云盘的第一元数据信息,数据迁移管控装置在第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,包括:
所述数据迁移管控装置从所述第一数据集群获取所述第一元数据信息;
所述数据迁移管控装置将所述第一元数据信息发送至所述第二数据集群,以在所述第二数据集群上创建与所述第一元数据信息相对应的所述第二元数据信息。
5.根据权利要求1~4之任一所述方法,其特征在于,在所述数据迁移管控装置控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态之后,所述方法还包括:
所述第二数据集群接收来自客户端的第一读数据请求,所述第一读数据请求中包括请求读取的数据的逻辑地址信息;
在所述请求读取的数据未存储在所述第二数据集群上的情况下,所述第二数据集群向所述第一数据集群发送第二读数据请求,所述第二读数据请求中包括所述请求读取的数据的逻辑地址信息;
所述第一数据集群接收到所述第二读数据请求后,在所述第一数据集群上读取所述请求读取的数据,并向所述第二数据集群返回所述请求读取的数据;
所述第二数据集群接收到所述第一数据集群返回的所述请求读取的数据后,向所述客户端返回所述请求读取的数据。
6.根据权利要求5所述方法,其特征在于,所述方法还包括:
在所述请求读取的数据存储在所述第二数据集群上的情况下,所述第二数据集群在所述第二数据集群上读取所述请求读取的数据,并向所述客户端返回所述请求读取的数据。
7.一种数据迁移方法,其特征在于,应用于第二数据集群,所述方法包括:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;所述数据迁移管控装置还向所述第一数据集群发送关闭通知;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,所述第二数据集群中的无效数据回收装置,在所述数据迁移管控装置的触发下,从所述第一数据集群中拉取待迁移数据;
基于所述待迁移数据,保存所述待迁移数据中的有效数据;
接收所述数据迁移管控装置发送的、所述第一数据集群的云盘的第一元数据信息;根据所述第一元数据信息,创建与所述第一元数据信息相对应的第二元数据信息;
接收所述数据迁移管控装置下发的开启通知;
所述基于所述待迁移数据,保存所述待迁移数据中的有效数据,包括:
所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群;
其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方。
8.根据权利要求7所述方法,其特征在于,在接收所述数据迁移管控装置下发的开启通知之后,所述方法还包括:
接收来自客户端的第一读数据请求,所述第一读数据请求中包括请求读取的数据的逻辑地址信息;
在所述请求读取的数据未存储在所述第二数据集群上的情况下,向所述第一数据集群发送第二读数据请求,所述第二读数据请求中包括所述请求读取的数据的逻辑地址信息;
接收所述第一数据集群返回的所述请求读取的数据,并向所述客户端返回所述请求读取的数据。
9.根据权利要求8所述方法,其特征在于,所述方法还包括:
在所述请求读取的数据存储在所述第二数据集群上的情况下,在所述第二数据集群上读取所述请求读取的数据;
向所述客户端返回所述请求读取的数据。
10.根据权利要求7所述方法,其特征在于,在接收所述数据迁移管控装置下发的开启通知之后,所述方法还包括:
接收来自客户端的写数据请求,所述写数据请求中包括请求写入的数据;
基于所述读写状态信息,在所述第二数据集群中写入所述请求写入的数据。
11.一种数据迁移方法,其特征在于,应用于第一数据集群,所述方法包括:
接收数据迁移管控装置下发的读写状态信息,所述读写状态信息中包括第一数据集群所对应的第一读写状态和第二数据集群所对应的第二读写状态;
接收所述数据迁移管控装置下发的关闭通知;
在所述第一读写状态为只读状态、所述第二读写状态为可读写状态的情况下,向所述第二数据集群中的无效数据回收装置提供待迁移数据,供所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据,所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群;
向所述数据迁移管控装置提供第一元数据信息,供所述数据迁移管控装置在所述第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方。
12.根据权利要求11所述方法,其特征在于,所述方法还包括:
接收所述第二数据集群发送的第二读数据请求,所述第二读数据请求中包括请求读取的数据的逻辑地址信息;
在所述第一数据集群上读取所述请求读取的数据;
向所述第二数据集群返回所述请求读取的数据。
13.一种数据迁移装置,其特征在于,所述装置包括:
元数据信息创建模块,用于基于第一数据集群的云盘的第一元数据信息,在第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方;
读写状态控制模块,用于控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;向所述第一数据集群发送关闭通知;
迁移控制模块,用于触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据;所述无效数据回收装置根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;所述无效数据回收装置将整理得到的有效数据保存入所述第二数据集群。
14.一种数据迁移装置,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
基于第一数据集群的云盘的第一元数据信息,在第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方;
控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
向所述第一数据集群发送关闭通知;
触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据;
所述可执行指令在被执行时还使所述处理器执行以下操作:
根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
将整理得到的有效数据保存入所述第二数据集群。
15.根据权利要求14所述装置,其特征在于,所述可执行指令在被执行时还使所述处理器执行以下操作:
向所述第一数据集群发送关闭通知;
向所述第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,使得所述处理器执行以下操作:
基于第一数据集群的云盘的第一元数据信息,在第二数据集群的云盘上创建与所述第一元数据信息相对应的第二元数据信息,其中,所述第一数据集群为数据迁出方,所述第二数据集群为数据迁入方,所述第一数据集群和所述第二数据集群为多对进行数据迁移的集群对中的一对,所述多对进行数据迁移的集群对指的是在将一个源数据集群中的数据迁移至多个目标数据集群的一对多的数据迁移过程,或者将多个源数据集群中的数据迁移至一个目标数据集群的多对一的数据迁移过程中按照每一部分数据的迁移方向所确定出的多对数据迁出方和对侧的数据迁入方;
控制所述第一数据集群处于第一读写状态,控制所述第二数据集群处于第二读写状态;
向所述第一数据集群发送关闭通知;
触发所述第二数据集群中的无效数据回收装置从所述第一数据集群中拉取待迁移数据,以使所述第二数据集群基于所述待迁移数据,保存所述待迁移数据中的有效数据;
所述一个或多个程序当被处理器执行时,还使得所述处理器执行以下操作:
根据所述待迁移数据的数据索引,对所述待迁移数据进行整理;
将整理得到的有效数据保存入所述第二数据集群。
17.根据权利要求16所述计算机可读存储介质,其特征在于,所述一个或多个程序当被处理器执行时,还使得所述处理器执行以下操作:
向所述第一数据集群发送关闭通知;
向所述第二数据集群发送开启通知;
向客户端发送启用第二数据集群的通知,所述启用第二数据集群的通知中包括所述第二数据集群的标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811226710.0A CN111078127B (zh) | 2018-10-22 | 2018-10-22 | 数据迁移方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811226710.0A CN111078127B (zh) | 2018-10-22 | 2018-10-22 | 数据迁移方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078127A CN111078127A (zh) | 2020-04-28 |
CN111078127B true CN111078127B (zh) | 2024-03-12 |
Family
ID=70309554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811226710.0A Active CN111078127B (zh) | 2018-10-22 | 2018-10-22 | 数据迁移方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078127B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723044A (zh) * | 2020-06-18 | 2020-09-29 | 北京字节跳动网络技术有限公司 | 数据处理系统、状态转移方法、数据求交方法、装置 |
CN112286904A (zh) * | 2020-09-30 | 2021-01-29 | 北京大米科技有限公司 | 集群迁移方法、装置及存储介质 |
CN113347263B (zh) * | 2021-06-11 | 2022-10-11 | 上海中通吉网络技术有限公司 | 消息集群管理方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014063073A1 (en) * | 2012-10-18 | 2014-04-24 | Netapp, Inc. | Migrating deduplicated data |
US8914540B1 (en) * | 2008-07-01 | 2014-12-16 | Cisco Technology, Inc. | Multi-fabric SAN based data migration |
CN107870802A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 一种虚拟机迁移方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110184996A1 (en) * | 2010-01-27 | 2011-07-28 | Sun Microsystems, Inc. | Method and system for shadow migration |
-
2018
- 2018-10-22 CN CN201811226710.0A patent/CN111078127B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914540B1 (en) * | 2008-07-01 | 2014-12-16 | Cisco Technology, Inc. | Multi-fabric SAN based data migration |
WO2014063073A1 (en) * | 2012-10-18 | 2014-04-24 | Netapp, Inc. | Migrating deduplicated data |
CN107870802A (zh) * | 2016-09-27 | 2018-04-03 | 阿里巴巴集团控股有限公司 | 一种虚拟机迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111078127A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230333942A1 (en) | Tiered cloud storage for different availability and performance requirements | |
US9983825B2 (en) | Efficient data volume replication for block-based storage | |
US10489422B2 (en) | Reducing data volume durability state for block-based storage | |
US11609884B2 (en) | Intelligent file system with transparent storage tiering | |
US11520919B2 (en) | Sharing of data among containers running on virtualized operating systems | |
EP3502877B1 (en) | Data loading method and apparatus for virtual machines | |
CN111078127B (zh) | 数据迁移方法、系统及装置 | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
US20200311033A1 (en) | Distributed system control for on-demand data access in complex, heterogenous data storage | |
US20230376357A1 (en) | Scaling virtualization resource units of applications | |
US11327889B2 (en) | Multi-access to a data file stored in a data-storage system related to a buffer memory | |
WO2016046951A1 (ja) | 計算機システム及びそのファイル管理方法 | |
CN111435302A (zh) | 一种应用程序的处理方法及装置 | |
CN110933120A (zh) | 一种基于混合云的计算方法、装置以及系统 | |
KR101432745B1 (ko) | 가상 클라우드 환경에서 클러스터의 분산 파일 시스템 및 데이터 복제 방법 | |
US20230015941A1 (en) | Data migration method and apparatus for database | |
US20230359383A1 (en) | Fault tolerant reservation state distribution for multi-partition logical volumes | |
CN115118711A (zh) | 一种文件传输的方法及装置 | |
JP2023537206A (ja) | メタデータベースのデータレプリケーション |
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 |