CN117596289A - 一种跨集群迁移批量云主机的方法、装置、设备及介质 - Google Patents
一种跨集群迁移批量云主机的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117596289A CN117596289A CN202311360487.XA CN202311360487A CN117596289A CN 117596289 A CN117596289 A CN 117596289A CN 202311360487 A CN202311360487 A CN 202311360487A CN 117596289 A CN117596289 A CN 117596289A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- data block
- cloud hard
- disk data
- target cloud
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000005540 biological transmission Effects 0.000 claims abstract description 114
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 abstract description 2
- 230000005012 migration Effects 0.000 description 13
- 238000013508 migration Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000000903 blocking effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种跨集群迁移批量云主机的方法、装置、设备及介质,涉及云计算技术领域。所述方法适用于第一集群服务器,包括:将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;当目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块;当目标云硬盘数据块不为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块,使第二集群服务器存储目标云硬盘数据块,并将目标云硬盘数据块作为历史发送数据块存储。本发明实施例能够实现提高跨集群迁移批量云主机的效率的的技术效果。
Description
技术领域
本发明涉及云计算技术领域,具体而言,涉及一种跨集群迁移批量云主机的方法、装置、设备及介质。
背景技术
超融合集群作为一种集计算、存储和网络功能于一体的综合解决方案,得到了企业在数据中心部署和管理的广泛应用。随着企业业务的不断扩展,当企业需要进行数据中心整合、跨数据中心迁移、资源优化或者跨云厂商迁移时,主要是由用户手动将集群内单个云主机的数据迁移到另一集群。
但通常集群中包含大量云主机,各个云主机又包含大量数据,且集群间的专线带宽一般较低,容易在跨集群迁移批量云主机的过程中占用大量网络带宽,导致网络拥堵,迁移速度缓慢,难以提高跨集群迁移批量云主机的整体效率。
发明内容
本发明实施例的目的在于提供一种跨集群迁移批量云主机的方法、装置、设备及介质,用以实现提高跨集群迁移批量云主机的效率的技术效果。
第一方面,本发明实施例提供一种跨集群迁移批量云主机的方法,适用于第一集群服务器,所述跨集群迁移批量云主机的方法,包括:
将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;
当所述目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送所述目标云硬盘数据块的位置信息,使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块;
当所述目标云硬盘数据块不为历史发送数据块时,向所述第二集群服务器发送所述目标云硬盘数据块,使所述第二集群服务器存储所述目标云硬盘数据块,并将所述目标云硬盘数据块作为历史发送数据块存储。
在上述实现过程中,通过由第一集群服务器对第一集群中云主机的云硬盘数据进行分块去重发送,能够有效降低网络传输的数据量,避免因占用集群间大量的网络带宽而导致网络拥堵,加快跨集群迁移批量云主机的速度,从而提高跨集群迁移批量云主机的效率。
进一步地,在所述将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块之前,还包括:
向所述第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使所述第二集群服务器根据所述源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机。
在上述实现过程中,通过由第一集群服务器向第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使第二集群服务器根据源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机,能够保证在第二集群中创建的目的虚拟机与第一集群中的源虚拟机的硬件结构保持一致,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述将云硬盘数据划分为多个云硬盘数据块,具体包括:
将所述云硬盘数据划分为多个云硬盘数据块,使各个所述云硬盘数据块的数据长度均等于预设数据长度。
在上述实现过程中,通过由第一集群服务器将云硬盘数据划分为多个数据长度均等于预设数据长度的云硬盘数据块,能够保证后续快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:
对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值;
查询所述第一集群服务器的内存数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的内存数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的内存数据库中没有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块不为历史发送数据块。
在上述实现过程中,通过在第一集群服务器的内存数据库足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,由第一集群服务器仅从第一集群服务器的内存数据库中查询有无目标云硬盘数据块的哈希值来判断目标云硬盘数据块是否为历史发送数据块,能够保证快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:
对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值;
查询所述第一集群服务器的内存数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的内存数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的内存数据库中没有所述目标云硬盘数据块的哈希值时,继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的外部数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的外部数据库中没有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块不为历史发送数据块。
在上述实现过程中,通过在第一集群服务器的内存数据库不足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,由第一集群服务器依次从第一集群服务器的内存数据库、外部数据库中查询有无目标云硬盘数据块的哈希值来判断目标云硬盘数据块是否为历史发送数据块,能够保证快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值,具体包括:
采用MD5算法,对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值。
在上述实现过程中,通过由第一集群服务器采用MD5算法计算目标云硬盘数据块的哈希值,能够保证准确判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值,具体包括:
采用布隆过滤器预测所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值;
当预测到所述第一集群服务器的外部数据库中有所述目标云硬盘数据块的哈希值时,继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值。
在上述实现过程中,通过由第一集群服务器仅在布隆过滤器预测到第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,才继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值,能够在判断目标云硬盘数据块是否为历史发送数据块的过程中有效减少数据库的查询次数,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述跨集群迁移批量云主机的方法,还包括:
统计所述第一集群服务器的内存数据库中的各个历史发送数据块的查询次数,以及统计所述第一集群服务器的外部数据库中的各个历史发送数据块的查询次数;
将查询次数最多的预设数量的历史发送数据块存储在所述第一集群服务器的内存数据库,将其余历史发送数据块存储在所述第一集群服务器的外部数据库。
在上述实现过程中,通过由第一集群服务器将查询次数最多的预设数量的历史发送数据块存储在第一集群服务器的内存数据库,将其余历史发送数据块存储在第一集群服务器的外部数据块,能够使后续更加快速地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块,具体包括:
使所述第二集群服务器根据所述目标云硬盘数据块的位置信息,从目标云硬盘中读取所述目标云硬盘数据块,将所述目标云硬盘数据块存储在第二集群中的目的虚拟机上;其中,所述目标云硬盘数据块的位置信息包括所述目标云硬盘的编号和所述目标云硬盘数据块在所述目标云硬盘中的偏移位置。
在上述实现过程中,通过由第二集群服务器在接收到第一集群服务器发送的目标云硬盘数据块的位置信息时,根据目标云硬盘数据块的位置信息自行读取目标云硬盘数据块,能够保证第二集群服务器准确读取目标云硬盘数据块,从而进一步提高跨集群迁移批量云主机的效率。
进一步地,所述将所述目标云硬盘数据块作为历史发送数据块存储,具体包括:
以所述目标云硬盘数据块的哈希值为键、以所述目标云硬盘数据块的位置信息为值,生成所述目标云硬盘数据块的键值信息;
将所述目标云硬盘数据块的键值信息存储在所述第一集群服务器的数据库。
在上述实现过程中,通过由第一集群服务器以目标云硬盘数据块的哈希值为键、以目标云硬盘数据块的位置信息为值,生成目标云硬盘数据块的键值信息,将目标云硬盘数据块的键值信息存储在第一集群服务器的数据库,能够进一步提高跨集群迁移批量云主机的效率。
第二方面,本发明实施例提供一种跨集群迁移批量云主机的装置,适用于第一集群服务器,所述跨集群迁移批量云主机的装置,包括:
数据处理模块,用于将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;
数据发送模块,用于当所述目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送所述目标云硬盘数据块的位置信息,使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块;
所述数据发送模块,还用于当所述目标云硬盘数据块不为历史发送数据块时,向所述第二集群服务器发送所述目标云硬盘数据块,使所述第二集群服务器存储所述目标云硬盘数据块,并将所述目标云硬盘数据块作为历史发送数据块存储。
第三方面,本发明实施例提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序;所述存储器与所述处理器耦接,且所述处理器执行所述计算机程序时实现如上所述的跨集群迁移批量云主机的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的跨集群迁移批量云主机的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明第一实施例提供的一种跨集群迁移批量云主机的方法的流程示意图;
图2为本发明第一实施例中一可选实施例示例的跨集群迁移批量云主机的架构图;
图3为本发明第一实施例中一可选实施例示例的目标云硬盘数据块的位置信息的数据格式的示意图;
图4为本发明第二实施例提供的一种跨集群迁移批量云主机的装置的结构示意图;
图5为本发明第三实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
应注意到:在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。同时,文中的步骤编号,仅为了方便本发明实施例的解释,不作为限定步骤执行先后顺序的作用。本发明实施例提供的方法可以由相关的终端设备执行,且下文均以集群服务器作为执行主体为例进行说明。
请参看图1,图1为本发明第一实施例提供的一种跨集群迁移批量云主机的方法的流程示意图。本发明第一实施例提供一种跨集群迁移批量云主机的方法,适用于第一集群服务器,所述跨集群迁移批量云主机的方法,包括步骤S101~S103:
S101、将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;
S102、当目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块;
S103、当目标云硬盘数据块不为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块,使第二集群服务器存储目标云硬盘数据块,并将目标云硬盘数据块作为历史发送数据块存储。
作为示例性地,跨集群迁移云主机,实质上是将一集群中的某一云主机作为源虚拟机迁移到另一集群中得到目的虚拟机。云主机又称云服务器,是在集群中的一组物理服务器上划分出来的虚拟服务器。
第一集群和第二集群为不同的两个集群。第一集群服务器是第一集群中指定用于发送源虚拟机的云硬盘数据的一台物理服务器,第二集群服务器是第二集群中指定用于接收源虚拟机的云硬盘数据的一台物理服务器。
在将第一集群中的批量云主机迁移到第二集群的场景下,虽然第一集群中待迁移的各个云主机各不相同,但是因为有些云主机上部署的操作系统相同,有些云主机上安装的应用程序相同,所以第一集群中不同云主机的云硬盘数据会出现数据内容重复的情况。
如果在跨集群迁移批量云主机的过程中,对第一集群中待迁移的所有云主机的云硬盘数据中重复的数据内容仅发送一次,那么就能减少网络传输的数据量,避免因占用集群间大量的网络带宽而导致网络拥堵,加快跨集群迁移批量云主机的速度,从而提高跨集群迁移批量云主机的效率。
第一集群服务器与第二集群服务器建立网络连接,当成功与第二集群服务器建立网络连接时,根据实际的应用需求,对于第一集群中待迁移的每一云主机,将该云主机作为源虚拟机,获取该源虚拟机的云硬盘数据,将该源虚拟机的云硬盘数据划分为多个云硬盘数据块进行发送。例如,基于预先定义的数据块发送策略发送所有云硬盘数据块,比如按照各个云硬盘数据块的排列顺序,逐一发送所有云硬盘数据块。
对于当前待发送的云硬盘数据块,将当前待发送的云硬盘数据块作为目标云硬盘数据块,判断目标云硬盘数据块是否为历史发送数据块。
当判定目标云硬盘数据块为历史发送数据块时,认为目标云硬盘数据块与先前发送的某一云硬盘数据块重复,此时不再向第二集群服务器发送目标云硬盘数据块,仅生成目标云硬盘数据块的位置信息,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取目标云硬盘数据块,并将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机。
当判定目标云硬盘数据块不为历史发送数据块时,认为目标云硬盘数据块与先前发送的所有云硬盘数据块均不重复,此时直接向第二集群服务器发送目标云硬盘数据块,使第二集群服务器将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机,同时,将目标云硬盘数据块作为历史发送数据块进行存储,以便后续可增加考虑这一目标云硬盘数据块判断下一待发送的云硬盘数据块是否为历史发送数据块。
本发明实施例通过由第一集群服务器对第一集群中云主机的云硬盘数据进行分块去重发送,能够有效降低网络传输的数据量,避免因占用集群间大量的网络带宽而导致网络拥堵,加快跨集群迁移批量云主机的速度,从而提高跨集群迁移批量云主机的效率。
在可选的实施例当中,在所述将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块之前,还包括:向第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使第二集群服务器根据源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机。
作为示例性地,第一集群服务器与第二集群服务器建立网络连接,当成功与第二集群服务器建立网络连接时,根据实际的应用需求,对于第一集群中待迁移的每一云主机,将该云主机作为源虚拟机,向第二集群服务器发送该源虚拟机的基础配置信息和云硬盘信息,使第二集群服务器根据该源虚拟机的基础配置信息和云硬盘信息,在第二集群中创建与该源虚拟机的硬件结构一致的目的虚拟机。其中,源虚拟机的基础配置信息包括源虚拟机的CPU(Central Processing Unit/Processor,中央处理器)个数、内存大小等等,源虚拟机的云硬盘信息包括源虚拟机的各个云硬盘编号、各个云硬盘大小等等。
本发明实施例通过由第一集群服务器向第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使第二集群服务器根据源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机,能够保证在第二集群中创建的目的虚拟机与第一集群中的源虚拟机的硬件结构保持一致,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述将云硬盘数据划分为多个云硬盘数据块,具体包括:将云硬盘数据划分为多个云硬盘数据块,使各个云硬盘数据块的数据长度均等于预设数据长度。
作为示例性地,根据实际的应用需求,预先设置一个预设数据长度,比如16KB。第一集群服务器获取该源虚拟机的云硬盘数据,将云硬盘数据划分为多个云硬盘数据块,使各个云硬盘数据块的数据长度均等于预设数据长度。
考虑到在对云硬盘数据进行分块的过程中,若云硬盘数据的数据长度不等于预设数据长度的整数倍,则划分出的所有云硬盘数据块中有一个云硬盘数据块的数据长度小于预设数据长度,在此情况下,可以对该云硬盘数据块进行填充处理,使该云硬盘数据块的数据长度也等于预设数据长度。
可以理解的是,第一集群服务器将云硬盘数据划分为多个数据长度均等于预设数据长度的云硬盘数据块,后续可以按照统一的数据块形式,判断目标云硬盘数据块是否为历史发送数据块。
本发明实施例通过由第一集群服务器将云硬盘数据划分为多个数据长度均等于预设数据长度的云硬盘数据块,能够保证后续快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值;查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块不为历史发送数据块。
作为示例性地,第一集群服务器与第二集群服务器建立网络连接,当成功与第二集群服务器建立网络连接时,根据实际的应用需求,对于第一集群中待迁移的每一云主机,将该云主机作为源虚拟机,获取该源虚拟机的云硬盘数据,将该源虚拟机的云硬盘数据划分为多个云硬盘数据块进行发送。
对于当前待发送的云硬盘数据块,将当前待发送的云硬盘数据块作为目标云硬盘数据块,采用比较目标云硬盘数据块的哈希值和先前发送的所有云硬盘数据块的哈希值的方式,来判断目标云硬盘数据块是否为历史发送数据块。
为了快速获取先前发送的所有云硬盘数据块的哈希值,可以在第一集群服务器的内存数据库足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,将先前发送的所有云硬盘数据块的哈希值均存储在第一集群服务器的内存数据库中的哈希表。
第一集群服务器对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值,查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值。
当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,可以确定出第一集群服务器的内存数据库中哈希值与目标云硬盘数据块的哈希值相同的云硬盘数据块,认为目标云硬盘数据块与该云硬盘数据块重复,判定目标云硬盘数据块为历史发送数据块,此时不再向第二集群服务器发送目标云硬盘数据块,仅生成目标云硬盘数据块的位置信息,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取目标云硬盘数据块,并将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机。
当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,认为目标云硬盘数据块与先前发送的所有云硬盘数据块均不重复,判定目标云硬盘数据块不为历史发送数据块,此时直接向第二集群服务器发送目标云硬盘数据块,使第二集群服务器将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机,同时,将目标云硬盘数据块作为历史发送数据块进行存储,以便后续可增加考虑这一目标云硬盘数据块判断下一待发送的云硬盘数据块是否为历史发送数据块。
本发明实施例通过在第一集群服务器的内存数据库足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,由第一集群服务器仅从第一集群服务器的内存数据库中查询有无目标云硬盘数据块的哈希值来判断目标云硬盘数据块是否为历史发送数据块,能够保证快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值;查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的外部数据库中没有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块不为历史发送数据块。
作为示例性地,第一集群服务器与第二集群服务器建立网络连接,当成功与第二集群服务器建立网络连接时,根据实际的应用需求,对于第一集群中待迁移的每一云主机,将该云主机作为源虚拟机,获取该源虚拟机的云硬盘数据,将该源虚拟机的云硬盘数据划分为多个云硬盘数据块进行发送。
对于当前待发送的云硬盘数据块,将当前待发送的云硬盘数据块作为目标云硬盘数据块,采用比较目标云硬盘数据块的哈希值和先前发送的所有云硬盘数据块的哈希值的方式,来判断目标云硬盘数据块是否为历史发送数据块。
在实际应用中,跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块可能较多,第一集群服务器的内存数据库的可存储数据量有限,不足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块。
为了快速获取先前发送的所有云硬盘数据块的哈希值,可以在第一集群服务器的内存数据库不足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,采用分层存储的方式,将先前发送的部分云硬盘数据块的哈希值均存储在第一集群服务器的内存数据库中的哈希表,将先前发送的其余云硬盘数据块的哈希值均存储在第一集群服务器的外部数据库,比如键值数据库。
第一集群服务器对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值,先查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值。
当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,可以确定出第一集群服务器的内存数据库中哈希值与目标云硬盘数据块的哈希值相同的云硬盘数据块,认为目标云硬盘数据块与该云硬盘数据块重复,判定目标云硬盘数据块为历史发送数据块,此时不再向第二集群服务器发送目标云硬盘数据块,仅生成目标云硬盘数据块的位置信息,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取目标云硬盘数据块,并将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机。
当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,认为目标云硬盘数据块可能与先前发送的其余任一云硬盘数据块重复,此时再查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
当第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,可以确定出第一集群服务器的外部数据库中哈希值与目标云硬盘数据块的哈希值相同的云硬盘数据块,认为目标云硬盘数据块与该云硬盘数据块重复,判定目标云硬盘数据块为历史发送数据块,此时不再向第二集群服务器发送目标云硬盘数据块,仅生成目标云硬盘数据块的位置信息,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取目标云硬盘数据块,并将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机。
当第一集群服务器的外部数据库中没有目标云硬盘数据块的哈希值时,认为目标云硬盘数据块与先前发送的所有云硬盘数据块均不重复,判定目标云硬盘数据块不为历史发送数据块,此时直接向第二集群服务器发送目标云硬盘数据块,使第二集群服务器将目标云硬盘数据块存储在第二集群以得到与该源虚拟机对应的目的虚拟机,同时,将目标云硬盘数据块作为历史发送数据块进行存储,以便后续可增加考虑这一目标云硬盘数据块判断下一待发送的云硬盘数据块是否为历史发送数据块。
本发明实施例通过在第一集群服务器的内存数据库不足以存储跨集群迁移批量云主机过程中向第二集群服务器发送的所有云硬盘数据块的情况下,由第一集群服务器依次从第一集群服务器的内存数据库、外部数据库中查询有无目标云硬盘数据块的哈希值来判断目标云硬盘数据块是否为历史发送数据块,能够保证快速准确地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值,具体包括:采用MD5算法,对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值。
作为示例性地,MD5(Message Digest Algorithm MD5)算法是一种信息摘要算法,MD5算法的原理可简要描述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后生成一个128位散列值,即信息的哈希值,用于确保信息传输完整一致。
采用MD5算法,对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值。
本发明实施例通过由第一集群服务器采用MD5算法计算目标云硬盘数据块的哈希值,能够保证准确判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值,具体包括:采用布隆过滤器预测第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值;当预测到第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
作为示例性地,跨集群迁移批量云主机的架构图如图2所示,第一集群服务器在继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值的过程中,先采用布隆过滤器预测第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
当布隆过滤器预测到第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
当布隆过滤器预测到第一集群服务器的外部数据库中没有目标云硬盘数据块的哈希值时,不再查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于检索一个元素是否在集合中,可以解决大规模数据集合的成员查询问题。布隆过滤器的核心是一个位数组(Bit Array)和多个哈希函数。假设位数组的长度为m,并且初始化为全0。对于一个要插入的元素x,通过多个哈希函数对元素x进行哈希运算得到在位数组中的多个位置,然后将这些位置的值设置为1。判断一个元素y是否存在时,同样通过多个哈希函数对元素y进行哈希运算得到在位数组中的多个位置,如果这些位置的值有一个为0,则说明元素y肯定不在集合中;如果所有位置的值都为1,则说明元素y有可能在集合中。布隆过滤器的查询时间复杂度是常数级别的,与集合的大小无关,查询效率非常高。
可以理解的是,通过在继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值的过程中,先采用布隆过滤器预测第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值,如果布隆过滤器返回目标云硬盘数据块的哈希值不在第一集群服务器的外部数据库中,那么说明目标云硬盘数据块的哈希值肯定不在第一集群服务器的外部数据库中,不必继续向第一集群服务器的外部数据库查询;如果布隆过滤器返回目标云硬盘数据块的哈希值在第一集群服务器的外部数据库中,那么说明目标云硬盘数据块的哈希值有可能在第一集群服务器的外部数据库中,此时再向第一集群服务器的外部数据库查询。
本发明实施例通过由第一集群服务器仅在布隆过滤器预测到第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,才继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值,能够在判断目标云硬盘数据块是否为历史发送数据块的过程中有效减少数据库的查询次数,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述跨集群迁移批量云主机的方法,还包括:统计第一集群服务器的内存数据库中的各个历史发送数据块的查询次数,以及统计第一集群服务器的外部数据库中的各个历史发送数据块的查询次数;将查询次数最多的预设数量的历史发送数据块存储在第一集群服务器的内存数据库,将其余历史发送数据块存储在第一集群服务器的外部数据库。
作为示例性地,第一集群服务器实时或定时,比如在每次判断目标云硬盘数据块是否为历史发送数据块后,统计第一集群服务器的内存数据库中先前发送的各个云硬盘数据块,即各个历史发送数据块的查询次数,以及统计第一集群服务器的外部数据库中先前发送的各个云硬盘数据块,即各个历史发送数据块的查询次数,根据第一集群服务器的内存数据库的可存储数据量,预先设置预设数量,将查询次数最多的预设数量的历史发送数据块存储在第一集群服务器的内存数据库,将其余历史发送数据块存储在第一集群服务器的外部数据库。
可以理解的是,将查询次数最多的预设数量的历史发送数据块优先存储在第一集群服务器的内存数据库,可以在后续判断下一待发送的云硬盘数据块是否为历史发送数据块的过程中,提高下一待发送的云硬盘数据块在第一集群服务器的内存数据库中的命中概率,使得在先向第一集群服务器的内存数据库查询的阶段,大概率能查询到下一待发送的云硬盘数据块的哈希值,若不能查询到下一待发送的云硬盘数据块的哈希值,则因为第一集群服务器的外部数据库存储的历史发送数据块的哈希值都是基本没被查询过的,所以下一待发送的云硬盘数据块在第一集群服务器的外部数据库中的命中概率很低,一般采用布隆过滤器就能直接判断出来,有效减少了数据库的查询次数,提高了整体的查询速度。
本发明实施例通过由第一集群服务器将查询次数最多的预设数量的历史发送数据块存储在第一集群服务器的内存数据库,将其余历史发送数据块存储在第一集群服务器的外部数据块,能够使后续更加快速地判断目标云硬盘数据块是否为历史发送数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块,具体包括:使第二集群服务器根据目标云硬盘数据块的位置信息,从目标云硬盘中读取目标云硬盘数据块,将目标云硬盘数据块存储在第二集群中的目的虚拟机上;其中,目标云硬盘数据块的位置信息包括目标云硬盘的编号和目标云硬盘数据块在目标云硬盘中的偏移位置。
作为示例性地,第二集群服务器在接收到第一集群服务器发送的目标云硬盘数据块的位置信息时,从目标云硬盘数据块的位置信息中提取目标云硬盘的编号和目标云硬盘数据块在目标云硬盘中的偏移位置,根据目标云硬盘的编号,确定源虚拟机的目标云硬盘,因为目标云硬盘数据块的数据长度为已知的预设数据长度,所以结合目标云硬盘数据块在目标云硬盘中的偏移位置,可以直接从目标云硬盘中读取目标云硬盘数据块,将目标云硬盘数据块存储在第二集群中与该源虚拟机对应的目的虚拟机上。
本发明实施例通过由第二集群服务器在接收到第一集群服务器发送的目标云硬盘数据块的位置信息时,根据目标云硬盘数据块的位置信息自行读取目标云硬盘数据块,能够保证第二集群服务器准确读取目标云硬盘数据块,从而进一步提高跨集群迁移批量云主机的效率。
在可选的实施例当中,所述将目标云硬盘数据块作为历史发送数据块存储,具体包括:以目标云硬盘数据块的哈希值为键、以目标云硬盘数据块的位置信息为值,生成目标云硬盘数据块的键值信息;将目标云硬盘数据块的键值信息存储在第一集群服务器的数据库。
作为示例性地,第一集群服务器在将目标云硬盘数据块作为历史发送数据块进行存储的过程中,获取先前计算的目标云硬盘数据块的哈希值,以及根据目标云硬盘数据块所在的目标云硬盘的编号和目标云硬盘数据块在目标云硬盘中的偏移位置,生成目标云硬盘数据的位置信息。
以目标云硬盘数据块的哈希值为键、以目标云硬盘数据块的位置信息为值,生成目标云硬盘数据块的键值信息,将目标云硬盘数据块的键值信息存储在第一集群服务器的内存数据库或外部数据库。
为了更好地减少网络传输的数据量,可以使目标云硬盘数据块的键值信息中的值尽可能地小。基于预设数据结构,根据目标云硬盘数据块所在的目标云硬盘的编号和目标云硬盘数据块在目标云硬盘中的偏移位置,生成目标云硬盘数据块的位置信息。
例如,目标云硬盘数据块的位置信息的数据结构如图3所示,在图3中,“len”字段表示目标云硬盘数据块的位置信息的数据长度,“len”字段占用一个字节,“len”字段中的前4个比特位代表“DiskID”字段的数据长度,后4个比特位代表“Offset”字段的数据长度;“DiskID”字段表示目标云硬盘的编号,“DiskID”字段占用1~4个字节,云硬盘的编号从0开始递增;“Offset”字段表示目标云硬盘数据块在目标云硬盘中的偏移位置,“Offset”字段占用1~8个字节,偏移位置从0开始递增。基于这一预设数据结构,目标云硬盘数据块的键值信息中的值的最小数据长度为3个字节,最大数据长度为13个字节,且由于“DiskID”字段和“Offset”字段都是从0开始递增,所以取值都比较小,平均数据长度为5个字节。
可以理解的是,应用该跨集群迁移批量云主机的方法,通过比较两个云硬盘数据块的哈希值来识别出重复的云硬盘数据块,对于重复的云硬盘数据块会在其第一次出现时传输数据内容,后续再次出现时仅传输其位置信息,使接收端根据其位置信息读取到数据内容,避免了重复发送相同数据,数据量从16KB下降到了平均5B,有效减少了网络传输的数据量,从而提高了跨集群迁移批量云主机的效率。
本发明实施例通过由第一集群服务器以目标云硬盘数据块的哈希值为键、以目标云硬盘数据块的位置信息为值,生成目标云硬盘数据块的键值信息,将目标云硬盘数据块的键值信息存储在第一集群服务器的数据库,能够进一步提高跨集群迁移批量云主机的效率。
请参看图4,图4为本发明第二实施例提供的一种跨集群迁移批量云主机的装置的结构示意图。本发明第二实施例提供一种跨集群迁移批量云主机的装置,适用于第一集群服务器,所述跨集群迁移批量云主机的装置,包括:数据处理模块201,用于将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;数据发送模块202,用于当目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块;数据发送模块202,还用于当目标云硬盘数据块不为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块,使第二集群服务器存储目标云硬盘数据块,并将目标云硬盘数据块作为历史发送数据块存储。
在可选的实施例当中,数据发送模块202,还用于在所述将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块之前,向第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使第二集群服务器根据源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机。
在可选的实施例当中,所述将云硬盘数据划分为多个云硬盘数据块,具体包括:将云硬盘数据划分为多个云硬盘数据块,使各个云硬盘数据块的数据长度均等于预设数据长度。
在可选的实施例当中,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值;查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块不为历史发送数据块。
在可选的实施例当中,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值;查询第一集群服务器的内存数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的内存数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的内存数据库中没有目标云硬盘数据块的哈希值时,继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值;当第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块为历史发送数据块;当第一集群服务器的外部数据库中没有目标云硬盘数据块的哈希值时,判定目标云硬盘数据块不为历史发送数据块。
在可选的实施例当中,所述对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值,具体包括:采用MD5算法,对目标云硬盘数据块进行哈希计算,得到目标云硬盘数据块的哈希值。
在可选的实施例当中,所述继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值,具体包括:采用布隆过滤器预测第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值;当预测到第一集群服务器的外部数据库中有目标云硬盘数据块的哈希值时,继续查询第一集群服务器的外部数据库中是否有目标云硬盘数据块的哈希值。
在可选的实施例当中,所述跨集群迁移批量云主机的装置,还包括:数据存储模块,用于统计第一集群服务器的内存数据库中的各个历史发送数据块的查询次数,以及统计第一集群服务器的外部数据库中的各个历史发送数据块的查询次数;将查询次数最多的预设数量的历史发送数据块存储在第一集群服务器的内存数据库,将其余历史发送数据块存储在第一集群服务器的外部数据库.
在可选的实施例当中,所述使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块,具体包括:使第二集群服务器根据目标云硬盘数据块的位置信息,从目标云硬盘中读取目标云硬盘数据块,将目标云硬盘数据块存储在第二集群中的目的虚拟机上;其中,目标云硬盘数据块的位置信息包括目标云硬盘的编号和目标云硬盘数据块在目标云硬盘中的偏移位置。
在可选的实施例当中,所述将目标云硬盘数据块作为历史发送数据块存储,具体包括:以目标云硬盘数据块的哈希值为键、以目标云硬盘数据块的位置信息为值,生成目标云硬盘数据块的键值信息;将目标云硬盘数据块的键值信息存储在第一集群服务器的数据库。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
请参看图,图为本发明第三实施例提供的一种电子设备的结构示意图。本发明第三实施例提供一种电子设备30,包括处理器301、存储器302以及存储在存储器302中且被配置为由处理器301执行的计算机程序;存储器302与处理器301耦接,且处理器301执行计算机程序时实现如本发明第一实施例所述的跨集群迁移批量云主机的方法,且能达到与之相同的有益效果。
其中,处理器301通过总线303从存储器302读取计算机程序并执行所述计算机程序时可实现如本发明第一实施例所述的跨集群迁移批量云主机的方法包括的任意实施例的方法。
处理器301可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器301可以是微处理器。
存储器302可以用于存储由处理器301执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本发明实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器301可以用于执行存储器302中的指令以实现如本发明第一实施例所述的跨集群迁移批量云主机的方法。存储器302包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
本发明第四实施例提供一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序;其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如本发明第一实施例所述的跨集群迁移批量云主机的方法,且能达到与之相同的有益效果。
综上所述,本发明实施例提供一种跨集群迁移批量云主机的方法、装置、设备及介质,所述跨集群迁移批量云主机的方法,适用于第一集群服务器,所述跨集群迁移批量云主机的方法,包括:将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;当目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块的位置信息,使第二集群服务器根据目标云硬盘数据块的位置信息获取并存储目标云硬盘数据块;当目标云硬盘数据块不为历史发送数据块时,向第二集群服务器发送目标云硬盘数据块,使第二集群服务器存储目标云硬盘数据块,并将目标云硬盘数据块作为历史发送数据块存储。本发明实施例通过由第一集群服务器对第一集群中云主机的云硬盘数据进行分块去重发送,能够有效降低网络传输的数据量,避免因占用集群间大量的网络带宽而导致网络拥堵,加快跨集群迁移批量云主机的速度,从而提高跨集群迁移批量云主机的效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种跨集群迁移批量云主机的方法,其特征在于,适用于第一集群服务器,所述跨集群迁移批量云主机的方法,包括:
将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;
当所述目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送所述目标云硬盘数据块的位置信息,使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块;
当所述目标云硬盘数据块不为历史发送数据块时,向所述第二集群服务器发送所述目标云硬盘数据块,使所述第二集群服务器存储所述目标云硬盘数据块,并将所述目标云硬盘数据块作为历史发送数据块存储。
2.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,在所述将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块之前,还包括:
向所述第二集群服务器发送源虚拟机的基础配置信息和云硬盘信息,使所述第二集群服务器根据所述源虚拟机的基础配置信息和云硬盘信息在第二集群中创建目的虚拟机。
3.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,所述将云硬盘数据划分为多个云硬盘数据块,具体包括:
将所述云硬盘数据划分为多个云硬盘数据块,使各个所述云硬盘数据块的数据长度均等于预设数据长度。
4.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:
对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值;
查询所述第一集群服务器的内存数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的内存数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的内存数据库中没有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块不为历史发送数据块。
5.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,所述判断当前待发送的目标云硬盘数据块是否为历史发送数据块,具体包括:
对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值;
查询所述第一集群服务器的内存数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的内存数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的内存数据库中没有所述目标云硬盘数据块的哈希值时,继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值;
当所述第一集群服务器的外部数据库中有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块为历史发送数据块;
当所述第一集群服务器的外部数据库中没有所述目标云硬盘数据块的哈希值时,判定所述目标云硬盘数据块不为历史发送数据块。
6.根据权利要求4或5所述的跨集群迁移批量云主机的方法,其特征在于,所述对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值,具体包括:
采用MD5算法,对所述目标云硬盘数据块进行哈希计算,得到所述目标云硬盘数据块的哈希值。
7.根据权利要求5所述的跨集群迁移批量云主机的方法,其特征在于,所述继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值,具体包括:
采用布隆过滤器预测所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值;
当预测到所述第一集群服务器的外部数据库中有所述目标云硬盘数据块的哈希值时,继续查询所述第一集群服务器的外部数据库中是否有所述目标云硬盘数据块的哈希值。
8.根据权利要求5所述的跨集群迁移批量云主机的方法,其特征在于,还包括:
统计所述第一集群服务器的内存数据库中的各个历史发送数据块的查询次数,以及统计所述第一集群服务器的外部数据库中的各个历史发送数据块的查询次数;
将查询次数最多的预设数量的历史发送数据块存储在所述第一集群服务器的内存数据库,将其余历史发送数据块存储在所述第一集群服务器的外部数据库。
9.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,所述使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块,具体包括:
使所述第二集群服务器根据所述目标云硬盘数据块的位置信息,从目标云硬盘中读取所述目标云硬盘数据块,将所述目标云硬盘数据块存储在第二集群中的目的虚拟机上;其中,所述目标云硬盘数据块的位置信息包括所述目标云硬盘的编号和所述目标云硬盘数据块在所述目标云硬盘中的偏移位置。
10.根据权利要求1所述的跨集群迁移批量云主机的方法,其特征在于,所述将所述目标云硬盘数据块作为历史发送数据块存储,具体包括:
以所述目标云硬盘数据块的哈希值为键、以所述目标云硬盘数据块的位置信息为值,生成所述目标云硬盘数据块的键值信息;
将所述目标云硬盘数据块的键值信息存储在所述第一集群服务器的数据库。
11.一种跨集群迁移批量云主机的装置,其特征在于,适用于第一集群服务器,所述跨集群迁移批量云主机的装置,包括:
数据处理模块,用于将云硬盘数据划分为多个云硬盘数据块,判断当前待发送的目标云硬盘数据块是否为历史发送数据块;
数据发送模块,用于当所述目标云硬盘数据块为历史发送数据块时,向第二集群服务器发送所述目标云硬盘数据块的位置信息,使所述第二集群服务器根据所述目标云硬盘数据块的位置信息获取并存储所述目标云硬盘数据块;
所述数据发送模块,还用于当所述目标云硬盘数据块不为历史发送数据块时,向所述第二集群服务器发送所述目标云硬盘数据块,使所述第二集群服务器存储所述目标云硬盘数据块,并将所述目标云硬盘数据块作为历史发送数据块存储。
12.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序;所述存储器与所述处理器耦接,且所述处理器执行所述计算机程序时实现根据权利要求1至10任一项所述的跨集群迁移批量云主机的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行根据权利要求1至10任一项所述的跨集群迁移批量云主机的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311360487.XA CN117596289A (zh) | 2023-10-19 | 2023-10-19 | 一种跨集群迁移批量云主机的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311360487.XA CN117596289A (zh) | 2023-10-19 | 2023-10-19 | 一种跨集群迁移批量云主机的方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117596289A true CN117596289A (zh) | 2024-02-23 |
Family
ID=89919030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311360487.XA Pending CN117596289A (zh) | 2023-10-19 | 2023-10-19 | 一种跨集群迁移批量云主机的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117596289A (zh) |
-
2023
- 2023-10-19 CN CN202311360487.XA patent/CN117596289A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761933B2 (en) | Prefill of raid stripes in a storage system by reading of existing data | |
US10705965B2 (en) | Metadata loading in storage systems | |
CN104090806B (zh) | 升级包、升级请求的处理方法及装置 | |
JP4263477B2 (ja) | 共通デジタルシーケンスを識別するシステム | |
CN106161633B (zh) | 一种基于云计算环境下打包文件的传输方法及系统 | |
US10908834B2 (en) | Load balancing for scalable storage system | |
EP3163446B1 (en) | Data storage method and data storage management server | |
EP3376393A1 (en) | Data storage method and apparatus | |
WO2017020576A1 (zh) | 一种键值存储系统中文件压实的方法和装置 | |
US11099767B2 (en) | Storage system with throughput-based timing of synchronous replication recovery | |
CN107153512B (zh) | 一种数据迁移方法和装置 | |
CN111881476B (zh) | 对象存储控制方法、装置、计算机设备及存储介质 | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
WO2019242359A1 (zh) | 文件处理的方法及装置 | |
WO2021216883A1 (en) | Adjustment of garbage collection parameters in a storage system | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
CN113268540B (zh) | 一种数据同步的方法及装置 | |
US11494257B2 (en) | Efficient networking for a distributed storage system | |
US10061725B2 (en) | Scanning memory for de-duplication using RDMA | |
CN111708763A (zh) | 分片集群的数据迁移方法、装置和分片集群系统 | |
WO2017177400A1 (zh) | 一种数据处理方法及系统 | |
CN116302307A (zh) | 一种多虚拟机迁移方法、装置、设备及介质 | |
CN117596289A (zh) | 一种跨集群迁移批量云主机的方法、装置、设备及介质 | |
CN115951845A (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
US11061835B1 (en) | Sensitivity matrix for system load indication and overload prevention |
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 |