CN109981412A - 集群中数据迁移方法、装置、计算机设备及存储介质 - Google Patents
集群中数据迁移方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109981412A CN109981412A CN201910252182.4A CN201910252182A CN109981412A CN 109981412 A CN109981412 A CN 109981412A CN 201910252182 A CN201910252182 A CN 201910252182A CN 109981412 A CN109981412 A CN 109981412A
- Authority
- CN
- China
- Prior art keywords
- detection
- cluster
- node
- subdomain
- corosync
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种集群中数据迁移方法、装置、计算机设备及存储介质,该方法应用于集群的OpenStack控制器上,该集群中数据迁移方法包括获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域;确定每个检测子域内的主节点,并将Corosync软件配置在主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器;根据检测结果对集群中的数据进行迁移。通过本发明能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种集群中数据迁移方法、装置、计算机设备及存储介质。
背景技术
集群是指一组协同工作的服务器(称之为节点),它们作为整体对外提供资源或者服务。集群内各节点通过内部局域网相互通讯,当一个节点发生故障时,该节点上所运行的任务将被迁移至另一个节点上,以防止单点失效,该属性可以被称为HA(HighAvailability,高可用性)。OpenStack是一个开源的云计算管理平台项目,提供了基础设施即服务(Infrastructure AS A Service,IAAS)的解决方案,其中,计算节点集群负责提供计算虚拟化功能,即租户的虚拟机。
相关技术中,每个计算节点上运行的Heartbeat Agent,例如开源软件corosync,负责节点间的心跳检测,其中,主节点连接OpenStack控制器。若某一节点发生故障,主节点可以通过心跳检测软件感知存在宕机的节点,而后可以将存在宕机的节点的信息发送给OpenStack控制器。OpenStack控制器在接收到该信息后,根据调度算法将该宕机节点上的任务迁移到其它节点,从而保证集群中所有租户的虚拟机不受节点故障的影响。
这种方式下,由于需要通过网络交互报文进行节点间的心跳检测及选举主节点,随着集群规模的扩大,心跳检测的交互延时增长,网络带宽资源占用过大,且,corosync的节点规格限制在128台,实测甚至更小。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种集群中数据迁移方法,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
本发明的另一个目的在于提出一种集群中数据迁移装置。
本发明的另一个目的在于提出一种非临时性计算机可读存储介质。
本发明的另一个目的在于提出一种计算机程序产品。
本发明的另一个目的在于提出一种计算机设备。
为达到上述目的,本发明第一方面实施例提出的集群中数据迁移方法,所述方法应用于集群的OpenStack控制器上,包括:获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;根据所述检测结果对所述集群中的数据进行迁移。
本发明第一方面实施例提出的集群中数据迁移方法,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为达到上述目的,本发明第二方面实施例提出的集群中数据迁移装置,所述装置应用于集群的OpenStack控制器上,包括:获取模块,用于获取集群中的检测域;分区处理模块,用于对所述检测域进行分区处理,得到多个检测子域;第一确定模块,用于确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;检测模块,用于基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;迁移模块,用于根据所述检测结果对所述集群中的数据进行迁移。
本发明第二方面实施例提出的集群中数据迁移装置,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为达到上述目的,本发明第三方面实施例提出的集群中数据迁移装置,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;根据所述检测结果对所述集群中的数据进行迁移。
本发明第三方面实施例提出的集群中数据迁移装置,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为达到上述目的,本发明第四方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器被执行时,使得移动终端能够执行一种集群中数据迁移方法,所述方法应用于集群的OpenStack控制器上,所述方法包括:获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;根据所述检测结果对所述集群中的数据进行迁移。
本发明第四方面实施例提出的非临时性计算机可读存储介质,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为达到上述目的,本发明第五方面实施例提出的计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行一种集群中数据迁移方法,所述方法应用于集群的OpenStack控制器上,所述方法包括:获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;根据所述检测结果对所述集群中的数据进行迁移。
本发明第五方面实施例提出的计算机程序产品,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为达到上述目的,本发明第六方面还提出一种计算机设备,该计算机设备包括壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述计算机设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;根据所述检测结果对所述集群中的数据进行迁移。
本发明第六方面实施例提出的计算机设备,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的集群中数据迁移方法的流程示意图;
图2(a)为本发明实施例中一集群中数据迁移方法的场景示意图;
图2(b)为本发明实施例中另一集群中数据迁移方法的场景示意图;
图3是本发明另一实施例提出的集群中数据迁移方法的流程示意图;
图4是本发明另一实施例提出的集群中数据迁移方法的流程示意图;
图5是本发明另一实施例提出的集群中数据迁移方法的流程示意图;
图6是本发明一实施例提出的集群中数据迁移装置的结构示意图;
图7是本发明另一实施例提出的集群中数据迁移装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的集群中数据迁移方法的流程示意图。
本实施例以该集群中数据迁移方法被配置为集群中数据迁移装置中来举例说明。
该集群中数据迁移方法应用于集群的OpenStack控制器上。
参见图1,该集群中数据迁移方法包括:
S11:获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域。
本实施例的执行主体为OpenStack控制器。
在本发明的实施例中,检测域可以例如为,OpenStack控制器中负责集群中数据迁移的虚拟逻辑空间。参见图2,图2(a)为本发明实施例中一集群中数据迁移方法的场景示意图,图2(b)为本发明实施例中另一集群中数据迁移方法的场景示意图。图2(a)中,OpenStack控制器中负责集群中数据迁移的虚拟逻辑空间被划分为两个检测子域,即图2(a)中的检测子域1和检测子域2,每个检测子域中包含有多个节点(节点服务器),可以从每个检测子域内选举出主节点,并在主节点上配置Corosync软件。相关技术中,Corosync软件在全部的节点服务器之间进行心跳检测,而本发明实施例中,Corosync软件仅仅基于检测子域内的节点服务器进行心跳检测,参见图2(b),其中,Corosync软件基于检测子域1中对各节点的心跳检测数据帧进行监听,在检测出节点21的心跳检测数据帧传输中断,确定节点21宕机,则Corosync软件将该节点21的标识发送至OpenStack控制器,由OpenStack控制器将节点21中的数据进行迁移,由于基于检测子域对心跳检测数据帧进行监听,因而,有效避免集群中心跳检测受限于集群中节点的规模。
本发明实施例在不对心跳检测协议做改进优化的基础上,对OpenStack控制器中负责节点间的心跳检测的虚拟逻辑空间进行分区处理,得到多个检测子域,后续可以基于每个检测子域中的节点进行心跳检测,由于检测子域中的节点数量较小,并且,在多个检测子域之间,心跳检测的过程相互隔离配置,而在每个检测子域内,节点规模受控,降低心跳检测时延及其所占网络带宽。
进一步地,在本发明的实施例中,可以在每个检测子域中的主节点上配置用于心跳检测的Corosync软件,能够兼容使用目前较为通用的Corosync软件,既保证了网络运行的效率,又兼顾满足用户业务的实现。
S12:确定每个检测子域内的主节点,并将Corosync软件配置在主节点中。
可以理解的是,根据Corosync软件的工作原理,是将其部署在集群中的一个用于计算的节点上,进而检测每个节点之间的心跳检测数据帧来实现集群中节点的心跳检测。
在本发明的实施例中,在对检测域进行分区处理,得到多个检测子域之后,可以在每个检测子域内配置心跳检测类应用,例如,可以确定每个检测子域内的用于计算的节点,该节点可以被称为主节点,在主节点上配置Corosync软件,进而,将该Corosync软件与OpenStack控制器相连,通过OpenStack控制器对每个检测子域内的Corosync软件进行控制,实现基于每个检测子域内的集群节点进行心跳检测。
一些实施例中,参见图3,步骤S11具体包括:
S31:获取集群中的检测域,并根据集群性能确定预设个数。
其中,集群性能可以例如为,网络宽带性能、GPU性能等。
可选地,随着集群节点规模不断扩大,集群中心跳检测的效率将会指数级地下降,因此,可以根据集群性能确定预设个数,其中,预设个数可以由集群管理人员配置,或者,也可以由集群中节点服务器的出厂程序预先设定,对此不作限制。
S32:基于预设个数对检测域进行分区处理,得到预设个数的检测子域。
可选地,通过根据集群性能确定预设个数,并基于预设个数对检测域进行分区处理,得到预设个数的检测子域,由于基于集群性能对检测域进行分区,其中,集群性能为网络宽带性能、GPU性能等,因此,能够有效保障对检测域进行分区处理的合理性,降低心跳检测时延及其所消耗的集群资源。
一些实施例中,参见图4,在步骤S12之后,该集群中数据迁移方法还包括:
S41:采用Corosync软件判断主节点是否处于宕机状态。
在本发明的实施例中,可以采用Corosync软件检测是否接收到节点之间的心跳检测数据帧,进而判断主节点是否处于宕机状态,并将判断结果发送至OpenStack控制器,由OpenStack控制器根据判断结果触发后续步骤。
S42:在主节点处于宕机状态时,重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点。
S43:将Corosync软件配置在重新确定的主节点中。
在本发明的实施例中,OpenStack控制器在接收到主节点处于宕机状态的判断结果之后,可以重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点,并在重新确定的主节点上配置心跳检测类应用,保障了心跳检测过程的高可用性。
本实施例中,通过OpenStack控制器对每个检测子域内主节点上的Corosync软件进行控制,实现基于每个检测子域内的集群节点进行心跳检测,通过在判断主节点处于宕机状态时,可以重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点,并在重新确定的主节点上配置心跳检测类应用,保障了心跳检测过程的高可用性。
S13:基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器。
在本发明的实施例中,可以通过每个检测子域内的主节点中的Corosync软件,采集检测子域内多个节点之间的心跳检测数据帧,以根据心跳检测数据帧进行心跳检测。
例如,主节点中的Corosync软件可以周期性地,或者持续地,采集检测子域内多个节点中的每个节点,与主节点之间的心跳检测数据帧,而后,在某一次正常采集过程中,若未采集到某个节点与主节点之间的心跳检测数据帧,则可以判断该节点处于宕机状态,进而,将检测结果发送至OpenStack控制器。
通过Corosync软件根据心跳检测数据帧进行心跳检测,实现简便。
S14:根据检测结果对集群中的数据进行迁移。
例如,Corosync软件在判定某个节点为宕机状态时,可以实时地获取该节点的标识信息,并将该标识信息发送至OpenStack控制器,由OpenStack控制器调用预设调度算法对该节点中的数据进行迁移,由于是基于检测子域内对宕机节点上的数据进行调度,且检测子域内节点规模可控,因而,能够有效提升集群中资源调度效率。
本实施例中,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
图5为本发明另一实施例提出的集群中数据迁移方法的流程示意图。
本实施例以该集群中数据迁移方法被配置为集群中数据迁移装置中来举例说明。
S501:获取集群中的检测域,并根据集群性能确定预设个数。
其中,集群性能可以例如为,网络宽带性能、集群中节点服务器的GPU性能等。
例如,若集群中存在有320台节点服务器,若不对OpenStack控制器中负责集群中数据迁移的虚拟逻辑空间进行分区,则OpenStack控制器需要基于该320台节点服务器进行数据迁移中,易造成网络拥塞,而此时,可以预先确定初始的预设个数为10个,进而将该虚拟逻辑空间划分为10个检测子域,并检测每个检测子域中是否会存在网络拥塞现象,若不存在网络拥塞现象,则可以依据该预设个数10,触发S502。
S502:基于预设个数对检测域进行分区处理,得到预设个数的检测子域。
S503:确定每个检测子域内的主节点,并将Corosync软件配置在主节点中。
S504;采用Corosync软件判断主节点是否处于宕机状态,若是执行S505,否则,执行S506。
S505:重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点,将Corosync软件配置在重新确定的主节点中。
S506:基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器。
可选地,可以通过每个检测子域内的主节点中的Corosync软件,采集检测子域内多个节点之间的心跳检测数据帧,以根据心跳检测数据帧进行心跳检测。
S507:根据检测结果判断检测子域内是否存在处于宕机状态的节点,若是,执行S508,否则,执行S510。
S502~S507的执行过程可以参见上述实施例,在此不作赘述。
S508:调用预设调度算法。
在本发明的实施例中,预设调度算法为预先设置的,该预设调度算法可以用于将宕机节点中的数据迁移至检测子域内除处于宕机状态的节点之外的集群节点上,预设算法可以由OpenStack控制器调用。
S509:根据预设调度算法将节点中的数据迁移至检测子域内除处于宕机状态的节点之外的集群节点上。
可选地,通过直接调用预设调度算法将节点中的数据迁移至检测子域内除处于宕机状态的节点之外的集群节点上,能够实现资源调度的即时性。
S510:不作任何处理。
本实施例中,通过在不对心跳检测协议做改进优化的基础上,对OpenStack控制器中负责节点间的心跳检测的虚拟逻辑空间进行分区处理,得到多个检测子域,后续可以基于每个检测子域中的节点进行心跳检测,由于检测子域中的节点数量较小,并且,在多个检测子域之间,心跳检测的过程相互隔离配置,而在每个检测子域内,节点规模受控,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽。可以在每个检测子域中的主节点上配置用于心跳检测的Corosync软件,能够兼容使用目前较为通用的Corosync软件,既保证了网络运行的效率,又兼顾满足用户业务的实现。通过根据集群性能确定预设个数,并基于预设个数对检测域进行分区处理,得到预设个数的检测子域,由于基于集群性能对检测域进行分区,其中,集群性能为网络宽带性能、GPU性能等,因此,能够有效保障对检测域进行分区处理的合理性,降低心跳检测时延及其所消耗的集群资源。通过OpenStack控制器对每个检测子域内主节点上的Corosync软件进行控制,实现基于每个检测子域内的集群节点进行心跳检测,通过在判断主节点处于宕机状态时,可以重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点,并在重新确定的主节点上配置心跳检测类应用,保障了心跳检测过程的高可用性。通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
图6为本发明一实施例提出的集群中数据迁移装置的结构示意图。
该集群中数据迁移装置600可以通过软件、硬件或者两者的结合实现。
参见图6,该集群中数据迁移装置600包括:获取模块601、分区处理模块602、第一确定模块603、检测模块604,以及迁移模块605,其中,
获取模块601,用于获取集群中的检测域。
分区处理模块602,用于对检测域进行分区处理,得到多个检测子域。
可选地,一些实施例中,分区处理模块602具体包括:
确定子模块6021,用于根据集群性能确定预设个数。
处理子模块6022,用于基于预设个数对检测域进行分区处理,得到预设个数的检测子域。
第一确定模块603,用于确定每个检测子域内的主节点,并将Corosync软件配置在主节点中。
检测模块604,用于基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器。
可选地,一些实施例中,检测模块604具体用于:
通过每个检测子域内的主节点中的Corosync软件,采集检测子域内多个节点之间的心跳检测数据帧,以根据心跳检测数据帧进行心跳检测。
迁移模块605,用于根据检测结果对集群中的数据进行迁移。
可选地,一些实施例中,参见图7,迁移模块605具体包括:
判断子模块6051,用于根据检测结果判断检测子域内是否存在处于宕机状态的节点。
调用子模块6052,用于在存在处于宕机状态的节点时,调用预设调度算法。
迁移子模块6053,用于根据预设调度算法将节点中的数据迁移至检测子域内除处于宕机状态的节点之外的集群节点上。
可选地,一些实施例中,参见图7,该集群中数据迁移装置600包括:
判断模块606,用于采用Corosync软件判断主节点是否处于宕机状态。
第二确定模块607,用于在主节点处于宕机状态时,重新从检测子域内除处于宕机状态的主节点之外的节点中确定出主节点。
配置模块608,用于将Corosync软件配置在重新确定的主节点中。
需要说明的是,前述图1-图5实施例中对集群中数据迁移方法实施例的解释说明也适用于该实施例的集群中数据迁移装置600,其实现原理类似,此处不再赘述。
本实施例中,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种集群中数据迁移方法,方法应用于集群的OpenStack控制器上,方法包括:
获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域;
确定每个检测子域内的主节点,并将Corosync软件配置在主节点中;
基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器;
根据检测结果对集群中的数据进行迁移。
本实施例中的非临时性计算机可读存储介质,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
为了实现上述实施例,本发明还提出一种计算机程序产品,当计算机程序产品中的指令被处理器执行时,执行一种集群中数据迁移方法,方法应用于集群的OpenStack控制器上,方法包括:
获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域;
确定每个检测子域内的主节点,并将Corosync软件配置在主节点中;
基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将检测结果发送至OpenStack控制器;
根据检测结果对集群中的数据进行迁移。
本实施例中的计算机程序产品,通过获取集群中的检测域,并对检测域进行分区处理,得到多个检测子域,由于是基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,并由OpenStack控制器根据检测结果对集群中的数据进行迁移,能够有效避免集群中心跳检测受限于集群中节点的规模,降低心跳检测时延及其所占网络带宽,有效提升集群中资源调度效率。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种集群中数据迁移方法,其特征在于,所述方法应用于集群的OpenStack控制器上,包括以下步骤:
获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;
确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;
基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;
根据所述检测结果对所述集群中的数据进行迁移。
2.如权利要求1所述的集群中数据迁移方法,其特征在于,所述基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,包括:
通过所述每个检测子域内的主节点中的Corosync软件,采集所述检测子域内多个节点之间的心跳检测数据帧,以根据所述心跳检测数据帧进行心跳检测。
3.如权利要求1所述的集群中数据迁移方法,其特征在于,所述根据所述检测结果对所述集群中的数据进行迁移,包括:
根据所述检测结果判断所述检测子域内是否存在处于宕机状态的节点;
在存在处于所述宕机状态的节点时,调用预设调度算法;
根据所述预设调度算法将所述节点中的数据迁移至所述检测子域内除所述处于宕机状态的节点之外的集群节点上。
4.如权利要求1所述的集群中数据迁移方法,其特征在于,所述确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中之后,还包括:
采用所述Corosync软件判断所述主节点是否处于宕机状态;
在所述主节点处于所述宕机状态时,重新从所述检测子域内除处于宕机状态的主节点之外的节点中确定出主节点;
将所述Corosync软件配置在重新确定的主节点中。
5.如权利要求1所述的集群中数据迁移方法,其特征在于,所述对所述检测域进行分区处理,得到多个检测子域,包括:
根据集群性能确定预设个数;
基于所述预设个数对所述检测域进行分区处理,得到预设个数的检测子域。
6.一种集群中数据迁移装置,其特征在于,所述装置应用于集群的OpenStack控制器上,包括:
获取模块,用于获取集群中的检测域;
分区处理模块,用于对所述检测域进行分区处理,得到多个检测子域;
第一确定模块,用于确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;
检测模块,用于基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;
迁移模块,用于根据所述检测结果对所述集群中的数据进行迁移。
7.如权利要求6所述的集群中数据迁移装置,其特征在于,所述检测模块具体用于:
通过所述每个检测子域内的主节点中的Corosync软件,采集所述检测子域内多个节点之间的心跳检测数据帧,以根据所述心跳检测数据帧进行心跳检测。
8.如权利要求6所述的集群中数据迁移装置,其特征在于,所述迁移模块具体包括:
判断子模块,用于根据所述检测结果判断所述检测子域内是否存在处于宕机状态的节点;
调用子模块,用于在存在处于所述宕机状态的节点时,调用预设调度算法;
迁移子模块,用于根据所述预设调度算法将所述节点中的数据迁移至所述检测子域内除所述处于宕机状态的节点之外的集群节点上。
9.如权利要求6所述的集群中数据迁移装置,其特征在于,还包括:
判断模块,用于采用所述Corosync软件判断所述主节点是否处于宕机状态;
第二确定模块,用于在所述主节点处于所述宕机状态时,重新从所述检测子域内除处于宕机状态的主节点之外的节点中确定出主节点;
配置模块,用于将所述Corosync软件配置在重新确定的主节点中。
10.如权利要求6所述的集群中数据迁移装置,其特征在于,所述分区处理模块具体包括:
确定子模块,用于根据集群性能确定预设个数;
处理子模块,用于基于所述预设个数对所述检测域进行分区处理,得到预设个数的检测子域。
11.一种计算机设备,包括壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述计算机设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
获取集群中的检测域,并对所述检测域进行分区处理,得到多个检测子域;
确定所述每个检测子域内的主节点,并将所述Corosync软件配置在所述主节点中;
基于每个检测子域内的集群节点,采用Corosync软件进行心跳检测,得到检测结果,并将所述检测结果发送至所述OpenStack控制器;
根据所述检测结果对所述集群中的数据进行迁移。
12.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的集群中数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910252182.4A CN109981412B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法、装置及存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210145.8A CN107018041B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法和装置 |
CN201910252182.4A CN109981412B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法、装置及存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710210145.8A Division CN107018041B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981412A true CN109981412A (zh) | 2019-07-05 |
CN109981412B CN109981412B (zh) | 2020-11-17 |
Family
ID=59446531
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910252182.4A Active CN109981412B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法、装置及存储介质 |
CN201710210145.8A Active CN107018041B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710210145.8A Active CN107018041B (zh) | 2017-03-31 | 2017-03-31 | 集群中数据迁移方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109981412B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612787B (zh) * | 2017-11-06 | 2021-01-12 | 南京易捷思达软件科技有限公司 | 一种基于Openstack开源云平台的云主机故障检测方法 |
CN108092857A (zh) * | 2018-01-15 | 2018-05-29 | 郑州云海信息技术有限公司 | 一种分布式***心跳检测方法及相关装置 |
CN108924244B (zh) * | 2018-07-24 | 2022-02-25 | 阿里巴巴(中国)有限公司 | 分布式***以及用于该***的流量分配方法和装置 |
CN110460489A (zh) * | 2019-07-02 | 2019-11-15 | 北京云迹科技有限公司 | 工控机心跳监控方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925923B1 (en) * | 2008-01-31 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Migrating a virtual machine in response to failure of an instruction to execute |
US20110246669A1 (en) * | 2010-03-30 | 2011-10-06 | Hitachi, Ltd. | Method and system of virtual machine migration |
CN102355369A (zh) * | 2011-09-27 | 2012-02-15 | 华为技术有限公司 | 虚拟化集群***及其处理方法和设备 |
CN102629906A (zh) * | 2012-03-30 | 2012-08-08 | 浪潮电子信息产业股份有限公司 | 一种将集群管理节点做双机实现提高集群业务可用性的设计办法 |
CN105897507A (zh) * | 2016-03-31 | 2016-08-24 | 杭州数梦工场科技有限公司 | 节点设备的状态检测方法和装置 |
CN106161090A (zh) * | 2016-07-12 | 2016-11-23 | 许继集团有限公司 | 一种分区集群***的监测方法及装置 |
CN106445641A (zh) * | 2016-11-02 | 2017-02-22 | 深圳前海生生科技有限公司 | 一种离散计算节点上安全虚拟平台间的数据迁移方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942128A (zh) * | 2014-04-29 | 2014-07-23 | 浪潮电子信息产业股份有限公司 | 一种高性能作业调度管理节点双机加固方法 |
CN104935672B (zh) * | 2015-06-29 | 2018-05-11 | 新华三技术有限公司 | 负载均衡服务高可用实现方法和设备 |
-
2017
- 2017-03-31 CN CN201910252182.4A patent/CN109981412B/zh active Active
- 2017-03-31 CN CN201710210145.8A patent/CN107018041B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925923B1 (en) * | 2008-01-31 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Migrating a virtual machine in response to failure of an instruction to execute |
US20110246669A1 (en) * | 2010-03-30 | 2011-10-06 | Hitachi, Ltd. | Method and system of virtual machine migration |
CN102355369A (zh) * | 2011-09-27 | 2012-02-15 | 华为技术有限公司 | 虚拟化集群***及其处理方法和设备 |
CN102629906A (zh) * | 2012-03-30 | 2012-08-08 | 浪潮电子信息产业股份有限公司 | 一种将集群管理节点做双机实现提高集群业务可用性的设计办法 |
CN105897507A (zh) * | 2016-03-31 | 2016-08-24 | 杭州数梦工场科技有限公司 | 节点设备的状态检测方法和装置 |
CN106161090A (zh) * | 2016-07-12 | 2016-11-23 | 许继集团有限公司 | 一种分区集群***的监测方法及装置 |
CN106445641A (zh) * | 2016-11-02 | 2017-02-22 | 深圳前海生生科技有限公司 | 一种离散计算节点上安全虚拟平台间的数据迁移方法 |
Non-Patent Citations (1)
Title |
---|
张龙兴等: "一种基于云计算的高可用性集群设计与实现", 《西安文理学院学报:自然科学版》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107018041B (zh) | 2019-05-17 |
CN109981412B (zh) | 2020-11-17 |
CN107018041A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107018041B (zh) | 集群中数据迁移方法和装置 | |
EP3799653B1 (en) | Multi-phase cloud service node error prediction | |
EP2614436B1 (en) | Controlled automatic healing of data-center services | |
US11748185B2 (en) | Multi-factor cloud service storage device error prediction | |
CN105933137B (zh) | 一种资源管理方法、装置及*** | |
US20160283261A1 (en) | Information processing system, managing device, and computer readable medium | |
CN110865867A (zh) | 应用拓扑关系发现的方法、装置和*** | |
US8990411B2 (en) | Dynamic connection management on mobile peer devices | |
US10103956B2 (en) | Virtual machine processor and memory resource coordinator | |
WO2023024410A1 (zh) | 任务调度方法、装置、设备、存储介质及计算机程序产品、计算机程序 | |
GB2586111A (en) | Internet of things resource optimization | |
CN107451147A (zh) | 一种kafka集群动态切换的方法和装置 | |
CN111694789A (zh) | 嵌入式可重构异构测定方法、***、存储介质、处理器 | |
CN104270322A (zh) | 面向物联网设备接入处理平台的自适应负载均衡调度机制 | |
WO2017075989A1 (zh) | 虚拟机迁移方法、装置及*** | |
US20150127816A1 (en) | Datacenter health analysis using dns switching | |
CN103827831A (zh) | 活动模块诊断测试 | |
US20230094964A1 (en) | Dynamic management of locations of modules of a platform hosted by a distributed system | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN109446455A (zh) | 页面处理方法与装置 | |
CN107562519A (zh) | 虚拟机的迁移方法、***及服务器 | |
CN105635285B (zh) | 一种基于状态感知的vm迁移调度方法 | |
CN104025628A (zh) | 网络***、节点装置组、传感器装置组及传感器数据收发方法 | |
US9678823B2 (en) | Information processing apparatus, information processing method, and information processing system | |
CN103442033A (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 |