CN113126884B - 数据迁移方法、装置、电子设备及计算机存储介质 - Google Patents

数据迁移方法、装置、电子设备及计算机存储介质 Download PDF

Info

Publication number
CN113126884B
CN113126884B CN201911401690.0A CN201911401690A CN113126884B CN 113126884 B CN113126884 B CN 113126884B CN 201911401690 A CN201911401690 A CN 201911401690A CN 113126884 B CN113126884 B CN 113126884B
Authority
CN
China
Prior art keywords
cluster
node
information
migrated
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911401690.0A
Other languages
English (en)
Other versions
CN113126884A (zh
Inventor
程霖
鞠进涛
朱云锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911401690.0A priority Critical patent/CN113126884B/zh
Publication of CN113126884A publication Critical patent/CN113126884A/zh
Application granted granted Critical
Publication of CN113126884B publication Critical patent/CN113126884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种数据迁移方法、装置、电子设备及计算机存储介质。数据迁移方法包括:在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。通过本实施例提供的方案,可以使集群在迁移过程中向外提供一致***。

Description

数据迁移方法、装置、电子设备及计算机存储介质
技术领域
本申请实施例数据处理技术领域,尤其涉及一种数据迁移方法、装置、电子设备及计算机存储介质。
背景技术
集群一般会向外提供一致***,例如用于存储的分布式集群会保证存储的数据一致性、事务一致性等。
但是在集群的数据迁移过程中,会存在部分集群中的节点迁移完成,另一部分节点未迁移完成的状态,此时,未迁移的节点和已迁移的节点分别属于两个集群,而每个集群均会选举出一个管理节点,以对各自集群中的节点分别进行管理,由此导致出现“脑裂”的情况。此种情况下,使得集群在迁移过程中无法向外提供一致***。
因此,现有技术亟需解决的技术问题是,如何提供一种能够在集群迁移的过程中持续提供一致***的数据迁移方案。
发明内容
有鉴于此,本申请实施例所解决的技术问题之一在于提供一种数据迁移方法、装置、电子设备及计算机存储介质,用以克服现有技术中集群在迁移过程中无法向外提供一致***的缺陷。
本申请实施例提供了一种数据迁移方法,其包括:在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
本申请实施例提供了一种数据迁移装置,其包括:节点信息获取模块,用于在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;合并模块,用于对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的数据迁移方法对应的操作。
一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据迁移方法。
本实施例提供的方案,通过在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息,并对第一节点信息和第二节点信息进行合并,从而在通过合并后的节点信息对外提供一致***时,可以根据合并后的节点信息在已迁移节点和未迁移节点中选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1为本申请实施例一中数据迁移方法的示意图;
图2为本申请实施例二中数据迁移方法的示意图;
图3a为本申请实施例三中数据迁移方法的示意图;
图3b为本申请实施例三中从属集群向池化集群的数据迁移过程示意图;
图4a为本申请实施例四中数据迁移方法的示意图;
图4b为本申请实施例四中从属集群向池化集群的数据迁移过程示意图;
图4c为本申请实施例四中数据迁移过程的示意图;
图5为本申请实施例五中数据迁移装置的结构示意图;
图6为本申请执行数据迁移方法的一些电子设备的硬件结构示意图。
具体实施方式
实施本申请实施例的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
图1为本申请实施例一中数据迁移方法的示意图;如图1所示,其包括以下步骤:
S102、在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息。
集群中包括多台乃至成千上万台服务器,这些服务器被划分为多个机器组,每个机器组上运行相同业务,机器组中的多个服务器可以缓解机器组的并发访问压力,还可以避免机器组出现单点故障等问题。
第一集群和第二集群可以为分布式集群,也可以为其他类型的集群,第一集群和第二集群均至少包括一个节点。
当第一集群中仍存在部分未迁移节点,且第二集群中存在有部分已迁移节点时,可认为第一集群处于数据迁移状态;若第二集群中不存在已迁移节点,则数据迁移还未开始,若第一集群中不再包括未迁移节点,则数据迁移结束。将数据从第一集群向第二集群进行迁移时,可以依次迁移第一集群中节点的数据。
第一节点信息和第二节点信息均可以为任意适当的信息,可标识节点并对节点进行访问即可,包括但不限于IP地址信息、端口信息等。
例如,第一集群中迁移前有2n+1个节点,n为正整数,当数据从第一集群迁移至第二集群中时,通过第一节点信息,可以确定n个未迁移节点的信息,并可以根据第一节点信息读取未迁移节点中的数据;通过第二节点信息可以确定n+1个已迁移节点的信息,并可以根据第二节点信息读取已迁移节点中的数据。
此外,需要说明的是,本申请实施例中,若无特殊说明,“第一”、“第二”、“第三”等仅用于区分不同的对象,如不同的集群或不同的设定阈值,并不表示时序或顺序关系。
S104、对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
对第一节点信息和所述第二节点信息进行合并,即确定第一节点信息和第二节点信息的并集,从而可以确定所有未迁移节点和已迁移节点。
进行合并时,可以直接将第一节点信息和第二节点信息叠加得到合并后的节点信息,或者可以通过将第一节点信息和第二节点信息加入同一队列等方式得到合并后的节点信息,本实施例对此不进行限定。
对第一节点信息和第二节点信息进行合并后,可以使得任意的已迁移节点和未迁移节点,可以根据合并后的节点信息,读取到除了其本身之外的其他已迁移节点和未迁移节点。在通过合并后的节点信息对外提供一致***时,可以直接根据合并后的节点信息,在已迁移节点和未迁移节点选举出一个管理节点leader,从而避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”。
本实施例中,提供的一致***可以包括但不限于:高可靠的服务发现、分布式锁以及元数据读写等。
本实施例提供的方案,通过在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息,并对第一节点信息和第二节点信息进行合并,从而在通过合并后的节点信息对外提供一致***时,可以根据合并后的节点信息在已迁移节点和未迁移节点中选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
本实施例的数据迁移方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:集群中的节点。
图2为本申请实施例二中数据迁移方法的示意图;如图2所示,其包括以下步骤:
S202、根据所述第一集群的数据迁移状态参数,确定所述第一集群正处于向所述第二集群数据迁移的过程中。
数据迁移状态参数用来指示集群的数据迁移状态,如,是否处于数据迁移过程中等。
数据迁移状态参数可以设置在用于控制数据迁移过程的模块或装置中。例如,可以通过第二集群中的一个控制节点来控制数据迁移过程,则可以将数据迁移状态参数存储至控制节点中,并与第一集群关联;或者,第二集群中包括集群部署管理平台,用来管理第二集群以及用来控制数据迁移过程,则数据迁移状态参数可以存储在集群部署管理平台中,并与第一集群关联。
在实际使用时,可以在确定需要进行数据迁移时,增加第一集群对应的数据迁移状态参数;数据迁移完成后,可以删除第一集群对应的数据迁移状态参数,从而可以通过判断是否存在数据迁移状态参数,来确定所述第一集群正处于向所述第二集群数据迁移的过程中,更加简单方便。
当然,本领域的技术人员也可以通过其他适当方式,来确定所述第一集群正处于向所述第二集群数据迁移的过程中,本实施例对此不进行限定。
S204、在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息。
若迁移过程由第二集群的集群部署管理平台控制,则集群部署管理平台可以获得第一集群中节点对应的第一节点信息,以及获得第二集群中的节点对应的第二节点信息,并在数据迁移过程中更新第一节点信息和第二节点信息,使得第一节点信息和第二节点信息与数据迁移过程匹配。当然,迁移过程也可以通过其他节点或其他单元控制,也可以通过其他任意适当的方式获得第一节点信息和第二节点信息,本实施例对此不进行限定。
另外,本实施例中,需要进行集群间的数据迁移时,可以根据预先设置的全局映射表,将待迁移的数据从所述第一集群迁移至所述第二集群。
其中,所述全局映射表中存储有所述第一集群中的一致***单元和所述第二集群中的一致***单元的迁移映射关系。
一致***单元是一种基于一致性协议(如Paxos、Raft等)提供一致***的单元,每个一致***单元为一个较为独立的一致性***,一个或多个一致***单元可以设置在一个集群中。
在实际使用时,第一集群或者第二集群中可能部署有多个一致***单元,则根据全局映射表中存储的迁移映射关系,可以准确地确定并执行数据迁移过程,避免由于存在多个一致***单元导致的迁移错误。
全局映射表有很多的格式设计,例如json格式等。另外,全局映射表中的所述迁移映射关系中包括多个key-value格式的映射字段。与其他格式相比,key-value格式的映射字段更加简单明了,并可以方便地加入json字段中。当然,本领域的技术人员可以根据需求设置迁移映射关系中包括的映射字段的格式,本实施例对此不进行限定。
所述全局映射表中还可以存储有集群地域信息,其中,所述第一集群中的节点对应的集群地域信息与所述第二集群中的节点对应的集群地域信息相同。集群地域信息用来表征集群所在的地域。通过相同的集群地域信息,可以保证第一集群和第二集群网络可达,来保证了迁移过程的顺利执行。具体的集群地域信息的内容本领域的技术人员可以根据集群的设置方式确定,本实施例对此不进行限定。
S206、对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
本步骤的具体实现方式可参考上述步骤S104,本实施例不再赘述。
具体地,第一节点信息中可以包括未迁移节点的编号、节点的IP地址信息、第一集群的集群信息等,通过第一节点信息可以直接读取未迁移节点的数据,第二节点信息可以包括已迁移节点的编号、节点的IP地址信息、第二集群的集群信息等,通过第二节点信息可以直接读取已迁移节点的数据。
具体地,所述合并后的节点信息至少包括:所述未迁移节点的IP地址信息和端口信息、所述已迁移节点的IP地址信息和端口信息、所述未迁移节点和所述已迁移节点对应的所述第二集群中的目标一致***单元的信息。
根据IP地址信息和端口信息,可以向未迁移节点或者已迁移节点发送业务请求,或者读取未迁移节点或者已迁移节点中的数据,根据未迁移节点或者已迁移节点对应的所述第二集群中的目标一致***单元的信息,可以确定迁移后得到的目标一致性单元的信息,在迁移完成后,可以直接根据迁移后得到的目标一致性单元的信息对外提供一致***。
基于上述过程,有效保证了第一和第二集群数据迁移过程中也可以对外提供一致***。
进一步可选地,本实施例中,所述方法还可以包括:
S208、根据所述迁移过程的进度,更新所述第一节点信息和所述第二节点信息。
具体地,第一集群中的一个节点迁移至第二集群后,迁移进度会发生变化,则根据迁移进度更新第一节点信息和第二节点信息。
另外需要说明的是,在迁移过程中,一般不会加入新的节点,因此,第一节点信息和第二节点信息对应的节点总数一般保持不变;并且,本步骤S208仅与迁移进度有关,与上述步骤S202-S206之间并无确定的时序关系。
S210、向业务端发送更新后的所述第一节点信息和所述第二节点信息,以使所述业务端对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息。
其中,所述本地配置信息设置于业务端中,该本地配置信息用于根据所述合并后的节点信息,为所述业务端的业务请求分配所述未迁移节点或者所述已迁移节点。
具体地,业务端接收到第一节点信息和第二节点信息后,会将节点信息中的内容进行合并,对于业务端而言,不会区分已迁移节点和未迁移节点,直接根据合并后的节点信息更新本地配置信息,从而使得本地配置信息中的节点配置有效即可。
若仅根据第一节点信息或者第二节点信息更新本地配置信息,会导致根据本地配置信息能够分配的节点仅包括未迁移节点或者已迁移节点,进而导致出现为业务请求分配的节点出错的情况或者出现不能为业务请求分配节点的情况。
为了避免这种情况,本申请中根据合并后的节点信息更新本地配置信息,可以使得根据本地配置信息,可以为业务端的业务请求准确地分配已迁移节点或未迁移节点。
并且,上述步骤通过合并后的节点信息对外提供一致***,而通过根据合并后的信息更新业务端的本地配置文件,可以使得本地配置文件与用于提供一致***的节点信息相匹配,从而可以在迁移过程中基于一致***处理业务请求,使得业务端对迁移过程无感。
为业务端的业务请求分配节点后,业务端可以向分配的节点发送业务请求,以处理业务请求。
具体地,本地配置信息具体可以包括第二集群信息、所有已迁移节点和未迁移节点的编号、IP地址信息、端口信息等。
本实施例中,通过对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息,进而使得业务端的本地配置信息与合并后的节点信息匹配,即与用于提供一致***的节点信息匹配,从而可以在迁移过程中基于一致***处理业务请求,使得业务端对迁移过程无感。
本实施例的数据迁移方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:集群中的节点。
图3a为本申请实施例三中数据迁移方法的示意图,本实施例中,以所述第一集群为从属集群,所述第二集群为池化集群为例,对本申请实施例提供的数据迁移方法进行说明;如图3a所示,其包括以下步骤:
S302、在数据从从属集群迁移至池化集群的目标一致***单元实例组的迁移过程中,获取从属集群中未迁移节点的第一节点信息,和,已迁移至池化集群中的已迁移节点的第二节点信息。
从属集群可以为部署了一个一致***单元的存量集群或者新部署的集群,其为待迁移到池化集群中的目标一致***单元实例组的集群。从属集群具体可以包括多个节点,每个节点上部署了一个一致***单元的实例,即多个节点组合为一致***单元。
通常的集群中,默认一个节点会只会部署一个一致***单元实例(例如上述从属集群),但本实施例中,还提供了一种集群,即池化集群,与从属集群不同的是,池化集群中的一个节点可以部署多个一致***单元实例,且池化集群中可以混部有多个一致***单元实例组,从而可以最大化地利用节点的资源。
一种从属集群向池化集群的数据迁移过程可以如图3b所示,图3b中,左侧为从属集群,右侧为池化集群,池化集群一共包括三个示例性的节点,并示例性地混部有两个一致***单元实例组。进行迁移时,可以按照迁移1、迁移2、迁移3的顺序,将从属集群中的节点中的数据迁移至池化单元的目标一致***单元实例组paxos-group-1中。迁移完成后,目标一致***单元实例组paxos-group-1中包括三个迁移后的实例,三个实例组成了一个一致***单元。
若上述迁移过程的进度为:迁移1执行完成,迁移2、迁移3还未执行,则如图3b所示,第一节点信息中包括从属节点中的两个未迁移节点B、C的信息,第二节点信息中包括目标一致***单元实例组paxos-group-1中已经部署好的一个实例D的信息。
S304、对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
对第一节点信息和第二节点信息进行合并后,可以获得两个未迁移节点的信息和目标一致***单元实例组paxos-group-1中已经部署好的一个实例(已迁移节点)的信息,共三个节点的信息,从而可以根据三个节点的信息对外提供一致***。
现有技术中,通过从属集群部署一致***单元时,每为一个新的集群(例如存储集群)提供一致***,均需要搭建新的从属集群,导致服务提供方搭建的一致***单元对应的从属集群较多,需要采购大量的机器,增加了成本,每个从属集群均需要独立进行运维,从属集群的增加导致运维成本极高。
而本实施例提供的方案,将从属集群迁移至池化集群中,每个池化集群可以混部有多个一致***单元实例组,使得可以充分利用池化集群的性能;并且运维时仅需要运维一个池化集群即可,降低了运维成本;并且池化集群中,每个一致***单元实例组可以对应一个一致***单元,从而通过一致***单元实例组对一致***单元进行隔离,使得池化集群的稳定性较高,提供的一致***可靠性也较高;同时可以在迁移过程中,对第一节点信息和第二节点信息进行合并,从而在通过合并后的节点信息对外提供一致***时,可以根据合并后的节点信息在已迁移节点和未迁移节点中选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
本实施例的数据迁移方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:集群中的节点。
图4a为本申请实施例四中数据迁移方法的示意图,本实施例中,以所述第一集群为从属集群,所述第二集群为池化集群为例,对本申请实施例提供的数据迁移方法进行说明;如图4a所示,其包括以下步骤:
S402、从所述池化集群中确定数据迁移的目标一致***单元实例组。
具体地,图4b示出了另一种从属集群向池化集群的数据迁移过程示意图,如图4b所示,池化集群包括:集群部署管理平台、多个节点、部署在池化集群中的多个一致***单元实例组,每个一致***单元实例组中包括多个实例,多个实例构成了一个一致***单元,每个节点中可以部署多个实例,但一个节点中不能部署同一个一致***单元的两个或两个以上的实例。图4b中示例性地示出了三个节点。
集群部署管理平台用于部署并管理池化集群,集群部署管理平台中可以存储每个一致***单元的实例所在的节点的信息。
当确定需要进行数据迁移时,集群部署管理平台可以从所述池化集群中确定数据迁移的目标一致***单元实例组,例如,图4b中的paxos-group-1。
S404、将从属集群挂载至所述目标一致***单元实例组。
池化集群中用于挂载从属集群的一致***单元实例组对应的节点信息可以作为初始的第二节点信息;当挂载操作完成后,集群部署管理平台可以读取从属集群的节点信息作为初始的第一节点信息。确定初始信息后,可以根据数据迁移的过程,在初始信息的基础上更新第一节点信息和第二节点信息,使得第一节点信息和第二节点信息与数据迁移过程匹配。
本实施例中,将从属集群挂载至一致***单元实例组之后,即可建立两者的迁移映射关系,进而开始数据迁移过程。
另外,图4中的全局映射表可以存储在集群部署管理平台中,全局映射表中用于存储有从属集群中的一致***单元和池化集群中的一致***单元的迁移映射关系。挂载操作完成后,可以根据挂载操作修改全局映射表中存储的内容。
全局映射表中还可以存储有集群地域信息;全局映射表可以采用josn字段格式;全局映射表中包括多个key-value格式的映射字段。
全局映射表中还可以存储有从属集群对应的数据迁移状态参数,根据从属集群的数据迁移状态参数,可以确定从属集群正处于向池化集群进行数据迁移的过程中。
具体地,全局映射表中可以包括:池化集群的集群名称如“ChiHuaA”,池化集群的集群地域信息如“ppe”,池化集群中部署的三个一致***单元实例组如“paxos-group-1”、“paxos-group-2”、“paxos-group-3”;从属集群的集群名如B,从属集群B可以挂载至一致***单元实例组如paxos-group-1下,从属集群B的集群地域信息如“ppe”,从属集群B提供一致***的对象如“project”(即从属集群B用于向project提供一致***),等等的信息。
根据上述的全局映射表可知,从属集群B和池化集群ChiHuaA的集群地域信息均为“ppe”即两者的集群地域信息相同。
上述步骤S402-S404在进行数据迁移前执行。
S406、将数据从从属集群向池化集群的目标一致***单元实例组迁移。
可选地,本实施例中,如图4c所示,数据迁移过程包括步骤S4061-S4062,并可选地包括S4063。
S4061、确定所述池化集群的所述目标一致***单元实例组中,为所述从属集群分配的目标实例。
若池化集群中节点剩余的资源较多,且能够建立目标实例,则可以通过池化集群管理单元在已有的节点中为从属集群分配目标实例;或者,可以在池化集群中加入新的节点,并在新节点中为从属集群分配目标实例。
S4062、将所述数据从所述从属集群中的节点迁移至所述目标实例中。
可选地,本实施例中,所述方法还包括:
S4063、在确定所述数据成功迁移至所述目标实例中后,更新所述从属集群中未迁移节点的第一节点信息和已迁移至所述池化集群中的已迁移节点的第二节点信息。
具体地,每次执行S4061-S4062之后,均可执行步骤S4063;或者,多次执行S4061-S4062之后,再执行步骤S4063,步骤S4063可以在每次获取第一节点信息和第二节点信息前执行,以保证获取的第一节点信息、第二节点信息与数据迁移进度匹配。
步骤S4061-S4063可以多次重复执行,直至数据迁移完成。
S408、根据从属集群的数据迁移状态参数,确定从属集群正处于向池化集群进行数据迁移的过程中。
本实施例中,若在迁移前,在全局映射表中不存在数据迁移状态参数,则本步骤具体可以包括:判断全局映射表中是否存在数据迁移状态参数,若存在则确定处于数据迁移过程中,若不存在则确定未处于数据迁移过程中。数据迁移状态参数在完成数据迁移后可以将其删除。
S410、在数据从从属集群迁移至池化集群的迁移过程中,获取从属集群中未迁移节点的第一节点信息,和,已迁移至池化集群的目标一致***单元实例组中的已迁移节点的第二节点信息。
S412、对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
步骤S410、S412的具体实现可参考上述实施例三,本实施例不再赘述。
另外,根据上述步骤S404中关于全局映射表的内容可知,数据迁移状态参数可以存储在全局映射表中,而全局映射表存储于集群部署管理平台中。则步骤S408-S410可由集群部署管理平台执行,步骤S412中的对第一节点信息和第二节点信息进行合并也可以由集群部署管理平台执行,之后集群部署管理平台可以将合并后的节点信息发送至所有的未迁移节点和已迁移节点,进而通过合并后的节点信息对外提供一致***。
或者,可以由各个节点从集群部署管理平台中读取全局映射表,从而根据数据迁移状态参数确定从属集群处于向池化集群进行数据迁移的过程中,之后各个节点可以根据读取的全局映射表的内容,向集群部署管理平台请求第一节点信息和第二节点信息,并在接收到之后对两者进行合并,进而通过合并后的节点信息对外提供一致***。
通过上述步骤S408-S412,使得任意节点均可以读取到除了其本身之外的其他已迁移节点和未迁移节点,进而在在通过合并后的节点信息对外提供一致***时,可以仅在已迁移节点和未迁移节点的基础上选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
具体地,合并前后的能够读取到的节点可以如下述的表一所示:
表一
左侧一列的A、B、C是指从属集群在迁移前包括的节点为A、B、C三个,括号中的内容指示迁移前,能够被节点A、B、C读取到的节点,根据上述内容可知,A、B、C中任意一个节点均可以读取到A、B、C三个节点。
当将从属集群的节点A迁移至池化集群的一致***单元实例组中的实例D之后,若不将第一节点信息和第二节点信息进行合并,则如中间一列所示,池化集群中的实例D仅能够读取到迁移得到的实例D(已迁移节点),而不能读取到从属集群中的未迁移节点B、C,对应的,从属集群中的节点B或者C仅能够读取到未迁移节点B、C,而不能读取到池化集群中迁移得到的实例D。此时,D会被选举为管理节点leader,B、C中的一个会被选举为管理节点leader,导致出现“脑裂”;或者可能直接出现选举出错的情况。这些情况都会导致池化集群或者从属集群不能向外提供一致***。
当将从属集群的节点A迁移至池化集群的一致***单元实例组中的实例D之后,若将第一节点信息和第二节点信息进行合并,则如右侧一列所示,池化集群中迁移后的实例D和从属集群中未迁移节点B、C均可以被节点B或C或D读取,从而可以根据节点B、C、D对外提供一致***。提供的一致***可以例如:在节点B、C、D中选取一个管理节点leader,用于根据业务请求对存储器中的数据进行读写操作,通过其他的非管理节点follower根据业务请求对存储器中的数据进行读取操作。
上述步骤S408-S412在步骤S406执行的过程中执行。
可选地,本实施例中,在步骤S406执行的过程,所述方法还可以包括:
S414、向业务端发送更新后的所述第一节点信息和所述第二节点信息,以使所述业务端对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息。
业务端可以部署在用户使用的电子装置中,并可以与从属集群和池化集群通过网络连接,用户通过业务端根据用户的输入生成业务请求,并通过网络发送给从属集群或者池化集群,从属集群或者池化集群通过网络向业务端返回数据。
所述本地配置信息用于根据所述合并后的节点信息,为所述业务端的业务请求分配所述未迁移节点或者所述已迁移节点。
业务端本地可以配置有服务单元配置守护进程,用于向集群部署管理平台发送请求,以使集群部署管理平台向业务端发送用于更新业务端的本地配置信息的相关信息。在数据迁移过程中,向业务端发送的为第一节点信息和第二节点信息,以使业务端对第一节点信息和第二节点信息进行合并,并根据合并后的节点信息更新本地配置信息。
在实际使用时,业务端可以先读取全局映射表,从中确定数据迁移状态参数,以确定从属集群处于迁移状态;之后可以确定从属集群和池化集群的目标一致***单元实例组,并据此向集群部署管理平台发送请求;集群部署管理平台根据请求中的从属集群信息发送第一节点信息、根据目标一致***单元实例组信息发送第二节点信息。
业务端接收到之后,可以将第一节点信息和第二节点信息合并,根据合并后的节点信息更新本地配置信息。
合并后的节点信息至少可以包括:所述未迁移节点的IP地址信息和端口信息、所述已迁移节点的IP地址信息和端口信息、所述未迁移节点和所述已迁移节点对应的所述第二集群中的目标一致***单元的信息。
根据合并后的节点信息更新的本地配置信息可以包括:未迁移节点的编号、IP地址信息和端口信息,已迁移节点的编号、IP地址信息和端口信息。
若不进行合并,则会导致业务端的本地配置信息中仅包括未迁移节点的信息或者仅包括已迁移节点的信息,进而导致根据本地配置信息为业务端分配的节点错误或无法分配节点的情况。
例如,从属集群中包括A、B、C三个节点,将数据从属集群的节点A迁移至池化集群得到的一致***单元CLUSTER-A得到实例D之后,若不进行合并,则本地配置信息中可能仅包括已经迁移至一致***单元CLUSTER-A的实例D的IP地址信息ipAddrD和端口信息srPortD,而不包括还未迁移完成的B、C的信息;若进行合并,则本地配置信息中不仅包括实例D的IP地址信息ipAddrD和端口信息srPortD,还包括从属集群中的未迁移节点B的IP地址信息ipAddrB和端口信息srPorB,以及未迁移节点C的IP地址信息ipAddrC和端口信息srPortC。据此,可以在D、B、C中确定一个分配给业务端的已迁移节点或未迁移节点。
另外,在迁移过程中,通过本地配置信息可以为业务端的业务请求分配未迁移节点或者已迁移节点。例如,当业务请求为向存储器中写入数据时,可以根据配置信息为业务请求分配管理节点leader,以通过管理节点leader向存储器执行数据写入操作。
本实施例中,通过对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息,进而使得业务端的本地配置信息与合并后的节点信息匹配,即与用于提供一致***的节点信息匹配,从而可以在从属集群向池化集群迁移过程中基于一致***处理业务请求,使得业务端对迁移过程无感。
可选地,当所述池化集群设置有多个一致***单元实例组时,还可以对其进行部署调整。但需要说明的是,该部署调整可在非数据迁移时执行,或者,当前正参与数据迁移的一致***单元实例组不参与部署调整,待完成数据迁移后再确定是否也参与部署调整。
在一种可行方式中,所述部署调整包括:根据所述多个一致***单元实例组分别发送的单元负载信息,对所述池化集群中的一致***单元实例组进行部署调整。
具体地,每个一致***单元实例组中均对应有一个管理节点leader,管理节点leader可以按照预设协议,将一致***单元实例组的单元负载信息发送至集群部署管理平台,以使集群部署管理平台进行部署调整。
管理节点leader发送的单元负载信息的内容可以包括:心跳、掉线的peer列表、不能工作的非管理节点follower的数量、当前一个周期内的写入数据量、当前一个周期内的读取数据量、一个周期的时长等。
集群部署管理平台可以根据第一预设权重根据单元负载信息进行计算,确定一致***单元实例组的单元负载量化值,根据多个一致***单元实例组的单元负载量化值可以进行部署调整。第一预设权重包括每个单元负载信息对应的权重值,通过对权重值与对应的单元负载信息的乘积求和确定单元负载量化值,本领域的技术人员可根据需求设置每个单元负载信息对应的权重,本实施例对此不进行限定。
可选地,本实施例中,所述根据所述多个一致***单元实例组分别发送的单元负载信息,对所述池化集群中的一致***单元实例组进行部署调整,包括:
若所述单元负载信息指示所述池化集群的一致***负载小于第一设定阈值,则在所述池化集群中增加新的一致***单元实例组;或者,若所述单元负载信息指示所述池化集群的一致***负载等于或大于所述第二设定阈值,则在所述池化集群中增加新的节点,并在所述新的节点上部署新的一致***单元实例组。
通过上述部署调整方式,可以尽量提高池化集群的资源利用率。
在协调部署的过程中,需要保证池化单元的一个节点上不会承载同一个一致***单元实例组中两个或两个以上的实例。
可选地,本实施例中,所述方法还包括:
若所述单元负载信息指示所述多个一致***单元实例组中存在负载超过第三设定阈值的一致***单元实例组,则为所述一致***单元实例组选择新的管理节点leader2,其中,所述新的管理节点leader2与原管理节点leader1位于所述池化集群中的不同节点中。
一般而言,一致***单元实例组中的管理节点leader的导致的负载大于其他任一非管理节点follower导致的负载,因此,若确定多个一致***单元实例组中存在负载超过第二设定阈值的一致***单元实例组,则可以重新选取该一致***单元实例组的管理节点leader,使得管理节点leader所在的池化集群的节点的承载负荷的能力较高,从而可以缓解一致性单元实例组的负载压力。
另外,还可以根据所述节点分别发送的节点负载信息,对所述池化集群中多个节点上部署的一致***单元实例组进行部署调整。
多个节点可以按照预设协议,将节点负载信息发送至集群部署管理平台,以使集群部署管理平台进行部署调整。
节点发送的节点负载信息的内容可以包括:节点的磁盘总容量、节点的剩余可用容量、节点中承载的一致***单元实例组的数量、正在发送的快照snapshot的数量、正在接收的快照snapshot的数量、存储区域store是否忙碌等。
集群部署管理平台可以按照第二预设权重根据节点负载信息进行计算,确定池化集群的各个节点的节点负载量化值,以进行部署调整。第二预设权重包括每个节点负载信息对应的权重值,通过对权重值与对应的节点负载信息的乘积求和确定节点负载量化值,本领域的技术人员可根据需求设置每个节点负载信息对应的权重,本实施例对此不进行限定。
若所述节点负载信息指示所述池化集群的节点负荷大于第四设定阈值,则将所述节点中部署的实例迁移至其他节点中;或者,若所述节点负载信息指示所述池化集群的节点负荷小于第五设定阈值,则在节点中部署新的实例,或将其他节点的实例迁移至本节点中。通过上述调度策略,可以维持节点间的平衡,进而对外提供更好的一致***。
当然,针对池化集群的节点而言,若某个节点的压力大于第六设定阈值,则可以确定其对应的一致***单元实例组,并为所述一致***单元实例组选择新的管理节点leader2,其中,所述新的管理节点leader2与原管理节点leader1位于所述池化集群中的不同节点中,从而减少池化集群的该节点中承载的管理节点leader的数量,进而缓解节点的压力。
另外,当增加新的节点时,可以将已有节点上的实例迁移至新增的节点中;当删除已有节点时,可以先将已有节点上部署的实例迁移至其他节点中。
此外,需要说明的是,本申请实施例中,若无特殊说明,“第一阈值”、“第二阈值”、“第三阈值”、“第四阈值”、“第五阈值”、“第六阈值”等可由本领域的技术人员根据需求设置,“第一阈值”、“第二阈值”、“第三阈值”的值可以相同也可以不同,“第四阈值”、“第五阈值”、“第六阈值”的值可以相同也可以不同,本实施例不对此进行限定。
本实施例提供的方案,将从属集群迁移至池化集群中,每个池化集群可以混部有多个一致***单元实例组,使得可以充分利用池化集群的性能;并且运维时仅需要运维一个池化集群即可,降低了运维成本;并且池化集群中,每个一致***单元实例组可以对应一个一致***单元,从而通过一致***单元实例组对一致***单元进行隔离,使得池化集群的稳定性较高,提供的一致***可靠性也较高;同时可以在迁移过程中,对第一节点信息和第二节点信息进行合并,从而在通过合并后的节点信息对外提供一致***时,可以根据合并后的节点信息在已迁移节点和未迁移节点中选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
本实施例的数据迁移方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:集群中的节点。
图5为本申请实施例五中数据迁移装置的结构示意图;如图5所示,其包括:节点信息获取模块502、合并模块504。
节点信息获取模块502用于在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;
合并模块504用于对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***。
可选地,本申请任意实施例中,所述合并后的节点信息至少包括:所述未迁移节点的IP地址信息和端口信息、所述已迁移节点的IP地址信息和端口信息、所述未迁移节点和所述已迁移节点对应的所述第二集群中的目标一致***单元的信息。
可选地,本申请任意实施例中,所述装置还包括:
迁移模块,用于根据预先设置的全局映射表,将所述数据从所述第一集群迁移至所述第二集群;其中,所述全局映射表中存储有所述第一集群中的一致***单元和所述第二集群中的一致***单元的迁移映射关系。
可选地,本申请任意实施例中,所述迁移映射关系中包括多个key-value格式的映射字段。
可选地,本申请任意实施例中,所述全局映射表中还存储有集群地域信息,其中,所述第一集群中的节点对应的集群地域信息与所述第二集群中的节点对应的集群地域信息相同。
可选地,本申请任意实施例中,所述装置还包括:迁移过程确定模块,用于根据所述第一集群的数据迁移状态参数,确定所述第一集群正处于向所述第二集群数据迁移的过程中。
可选地,本申请任意实施例中,所述装置还包括:
更新模块,用于根据所述迁移过程的进度,更新所述第一节点信息和所述第二节点信息;
发送模块,用于向业务端发送更新后的所述第一节点信息和所述第二节点信息,以使所述业务端对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息;其中,所述本地配置信息用于根据所述合并后的节点信息,为所述业务端的业务请求分配所述未迁移节点或者所述已迁移节点。
可选地,本申请任意实施例中,所述第一集群为从属集群,所述第二集群为池化集群;
所述装置还包括:
实例组确定模块,用于从所述池化集群中确定数据迁移的目标一致***单元实例组;
挂载模块,用于将所述从属集群挂载至所述目标一致***单元实例组。
可选地,本申请任意实施例中,所述数据从所述第一集群迁移至所述第二集群的迁移过程通过下述模块实现:
实例确定模块,用于确定所述池化集群的所述目标一致***单元实例组中,为所述从属集群分配的目标实例;
实例迁移模块,用于将所述数据从所述从属集群中的节点迁移至所述目标实例中。
可选地,本申请任意实施例中,所述装置还包括:
更新模块,用于在确定所述数据成功迁移至所述目标实例中后,更新所述从属集群中未迁移节点的第一节点信息和已迁移至所述池化集群中的已迁移节点的第二节点信息。
可选地,本申请任意实施例中,所述池化集群设置有多个一致***单元实例组;
所述装置还包括:
部署调整模块,用于根据所述多个一致***单元实例组分别发送的单元负载信息,对所述池化集群中的一致***单元实例组进行部署调整。
可选地,本申请任意实施例中,所述部署调整模块包括:
实例增加模块,用于若所述单元负载信息指示所述池化集群的一致***负载小于第一设定阈值,则在所述池化集群中增加新的一致***单元实例组;
或者,节点增加模块,用于若所述单元负载信息指示所述池化集群的一致***负载等于或大于所述第二设定阈值,则在所述池化集群中增加新的节点,并在所述新的节点上部署新的一致***单元实例组。
可选地,本申请任意实施例中,所述装置还包括:
管理节点选择模块,用于若所述单元负载信息指示所述多个一致***单元实例组中存在负载超过第三设定阈值的一致***单元实例组,则为所述一致***单元实例组选择新的管理节点,其中,所述新的管理节点与原管理节点位于所述池化集群中的不同节点中。
本实施例提供的方案,通过在数据从第一集群迁移至第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息,并对第一节点信息和第二节点信息进行合并,从而在通过合并后的节点信息对外提供一致***时,可以根据合并后的节点信息在已迁移节点和未迁移节点中选举出一个管理节点leader,来避免现有技术的数据迁移过程中出现两个管理节点leader导致的“脑裂”,从而实现了可以在集群的迁移过程中向外提供一致***。
图6为本申请执行数据迁移方法的一些电子设备的硬件结构示意图。根据图6所示,该设备包括:
一个或多个处理器602以及存储器604,图6中以一个处理器602为例。
执行数据迁移方法的设备还可以包括:通信接口606以及通信总线608。
其中:
处理器602、通信接口606、以及存储器604通过通信总线608完成相互间的通信。
通信接口606,用于与其它电子设备或服务器进行通信。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路,还可能是图形处理器GPU等。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器604作为一种非易失性计算机可读存储介质,可用于存放程序610。处理器602通过运行存储在存储器604中的程序610,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中数据迁移方法。
存储器604可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据数据迁移装置的使用所创建的数据等。此外,存储器604可以包括高速随机存取存储器604,还可以包括非易失性存储器604,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器604可选包括相对于处理器602远程设置的存储器604,这些远程存储器604可以通过网络连接至数据迁移装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
当程序610被所述一个或者多个处理器602执行时,执行上述任意方法实施例中的数据迁移方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器602、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
至此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Comell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种数据迁移方法,包括:
根据预先设置的全局映射表,将数据从第一集群迁移至第二集群,所述全局映射表中存储有所述第一集群中的一致***单元、所述第二集群中的一致***单元的迁移映射关系和集群地域信息,其中,所述第一集群中的节点对应的集群地域信息与所述第二集群中的节点对应的集群地域信息相同;
在所述数据从所述第一集群迁移至所述第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;
对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***,其中,所述合并后的节点信息至少包括:所述未迁移节点的IP地址信息和端口信息、所述已迁移节点的IP地址信息和端口信息、所述未迁移节点和所述已迁移节点对应的所述第二集群中的目标一致***单元的信息。
2.根据权利要求1所述的方法,其中,所述迁移映射关系中包括多个key-value格式的映射字段。
3.根据权利要求1所述的方法,其中,所述方法还包括:
根据所述第一集群的数据迁移状态参数,确定所述第一集群正处于向所述第二集群数据迁移的过程中。
4.根据权利要求1所述的方法,其中,所述方法还包括:
根据所述迁移过程的进度,更新所述第一节点信息和所述第二节点信息;
向业务端发送更新后的所述第一节点信息和所述第二节点信息,以使所述业务端对更新后的所述第一节点信息和所述第二节点信息进行合并,并使用合并后的节点信息更新本地配置信息;
其中,所述本地配置信息用于根据所述合并后的节点信息,为所述业务端的业务请求分配所述未迁移节点或者所述已迁移节点。
5.根据权利要求1所述的方法,其中,所述第一集群为从属集群,所述第二集群为池化集群;
在数据从第一集群迁移至第二集群进行迁移之前,所述方法还包括:
从所述池化集群中确定数据迁移的目标一致***单元实例组;
将所述从属集群挂载至所述目标一致***单元实例组。
6.根据权利要求5所述的方法,其中,所述数据从所述第一集群迁移至所述第二集群的迁移过程包括:
确定所述池化集群的所述目标一致***单元实例组中,为所述从属集群分配的目标实例;
将所述数据从所述从属集群中的节点迁移至所述目标实例中。
7.根据权利要求6所述的方法,其中,所述方法还包括:
在确定所述数据成功迁移至所述目标实例中后,更新所述从属集群中未迁移节点的第一节点信息和已迁移至所述池化集群中的已迁移节点的第二节点信息。
8.根据权利要求5所述的方法,其中,所述池化集群设置有多个一致***单元实例组;
所述方法还包括:
根据所述多个一致***单元实例组分别发送的单元负载信息,对所述池化集群中的一致***单元实例组进行部署调整。
9.根据权利要求8所述的方法,其中,所述根据所述多个一致***单元实例组分别发送的单元负载信息,对所述池化集群中的一致***单元实例组进行部署调整,包括:
若所述单元负载信息指示所述池化集群的一致***负载小于第一设定阈值,则在所述池化集群中增加新的一致***单元实例组;
或者,若所述单元负载信息指示所述池化集群的一致***负载等于或大于所述第二设定阈值,则在所述池化集群中增加新的节点,并在所述新的节点上部署新的一致***单元实例组。
10.根据权利要求9所述的方法,其中,所述方法还包括:
若所述单元负载信息指示所述多个一致***单元实例组中存在负载超过第三设定阈值的一致***单元实例组,则为所述一致***单元实例组选择新的管理节点,其中,所述新的管理节点与原管理节点位于所述池化集群中的不同节点中。
11.一种数据迁移装置,包括:
迁移模块,用于根据预先设置的全局映射表,将数据从第一集群迁移至第二集群,所述全局映射表中存储有所述第一集群中的一致***单元、所述第二集群中的一致***单元的迁移映射关系和集群地域信息,其中,所述第一集群中的节点对应的集群地域信息与所述第二集群中的节点对应的集群地域信息相同;
节点信息获取模块,用于在所述数据从所述第一集群迁移至所述第二集群的迁移过程中,获取所述第一集群中未迁移节点的第一节点信息,和,已迁移至所述第二集群中的已迁移节点的第二节点信息;
合并模块,用于对所述第一节点信息和所述第二节点信息进行合并,以通过合并后的节点信息对外提供一致***,其中,所述合并后的节点信息至少包括:所述未迁移节点的IP地址信息和端口信息、所述已迁移节点的IP地址信息和端口信息、所述未迁移节点和所述已迁移节点对应的所述第二集群中的目标一致***单元的信息。
12.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-10任一项所述的数据迁移方法对应的操作。
13.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-10中任一项所述的数据迁移方法。
CN201911401690.0A 2019-12-30 2019-12-30 数据迁移方法、装置、电子设备及计算机存储介质 Active CN113126884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911401690.0A CN113126884B (zh) 2019-12-30 2019-12-30 数据迁移方法、装置、电子设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911401690.0A CN113126884B (zh) 2019-12-30 2019-12-30 数据迁移方法、装置、电子设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN113126884A CN113126884A (zh) 2021-07-16
CN113126884B true CN113126884B (zh) 2024-05-03

Family

ID=76769018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911401690.0A Active CN113126884B (zh) 2019-12-30 2019-12-30 数据迁移方法、装置、电子设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113126884B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114137942B (zh) * 2021-11-29 2023-11-10 北京天融信网络安全技术有限公司 一种分布式控制器集群的控制方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018099397A1 (zh) * 2016-12-01 2018-06-07 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法、装置及存储介质
CN109783472A (zh) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 表数据的迁移方法、装置、计算机设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018099397A1 (zh) * 2016-12-01 2018-06-07 腾讯科技(深圳)有限公司 数据库集群中数据迁移的方法、装置及存储介质
CN109783472A (zh) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 表数据的迁移方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Fast Service Migration Method Based on Virtual Machine Technology for MEC;Lu, W等;《IEEE INTERNET OF THINGS JOURNAL》;20190630;全文 *
基于路径与网络质量相结合的动态迁移算法;王子珍;李晋军;宋秋贵;陈兵;;中北大学学报(自然科学版);20170415(02);全文 *

Also Published As

Publication number Publication date
CN113126884A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
KR102376713B1 (ko) 복합 파티션 함수 제공 기법
TWI694700B (zh) 資料處理方法和裝置、用戶端
US9197546B2 (en) System and method for providing a messaging cluster with hybrid partitions
CN111767144B (zh) 交易数据的交易路由确定方法、装置、设备及***
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN112202829A (zh) 基于微服务的社交机器人调度***和调度方法
CN113852498B (zh) 一种部署、管理及调用组件的方法及装置
CN110955720A (zh) 一种数据加载方法、装置及***
CN110515728B (zh) 服务器调度方法、装置、电子设备及机器可读存储介质
CN112003922A (zh) 一种数据传输方法及装置
CN105991463B (zh) 实现流量控制的方法、消息主节点、令牌服务器及***
CN113126884B (zh) 数据迁移方法、装置、电子设备及计算机存储介质
CN110704182A (zh) 深度学习的资源调度方法、装置及终端设备
US11962476B1 (en) Systems and methods for disaggregated software defined networking control
CN116737345A (zh) 分布式任务处理***及方法、装置、存储介质以及设备
CN109587218B (zh) 一种集群选举的方法和装置
CN111400032A (zh) 一种资源分配的方法及装置
CN112181979B (zh) 一种数据更新方法、装置、存储介质及电子设备
CN110764690B (zh) 分布式存储***及其领导节点选举方法和装置
CN112689152B (zh) 调度方法、装置、电子设备及存储介质
CN114296869A (zh) 一种基于tcp长连接的服务器节点服役方法及装置
CN117081931B (zh) 一种异构分布式存储***在线扩容方法及装置
CN117041980B (zh) 一种网元管理方法、装置、存储介质及电子设备
CN110413935B (zh) 一种数据信息处理方法、装置及***
TW202008153A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40056161

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant