CN112578997B - 一种数据迁移方法、系统及相关设备 - Google Patents
一种数据迁移方法、系统及相关设备 Download PDFInfo
- Publication number
- CN112578997B CN112578997B CN201910945817.9A CN201910945817A CN112578997B CN 112578997 B CN112578997 B CN 112578997B CN 201910945817 A CN201910945817 A CN 201910945817A CN 112578997 B CN112578997 B CN 112578997B
- Authority
- CN
- China
- Prior art keywords
- data
- migrated
- server
- read
- target server
- 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
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据迁移方法、系统及相关设备。
背景技术
在分布式存储系统中,不同的数据库服务器管理着不同的数据条目,在一些业务场景中,客户端的读写请求可能集中访问某一个数据库服务器管理的数据,该数据库服务器会成为热点服务器,分布式存储系统的管理服务器在检测到热点服务器上的处理数据读写请求的压力高于其他数据库服务器时,管理服务器会将该热点服务器中部分数据的读写请求迁移到读写压力相对较低的目标服务器上,以达到均衡负载、充分发挥分布式存储系统中多个数据库服务器对外提供服务的能力。但是,在将对热点服务器上的部分数据的读写请求迁移到目标服务器上后,目标服务器中并没有上述部分数据对应的缓存数据,在客户端需要对上述部分数据中的目标数据家进行读写时,目标服务器需要从存储服务器中去获取该目标数据,这样会导致服务器处理读写请求的时延增长,影响目标服务器的业务性能,因此,如何降低数据迁移后被迁移数据的读写时延成为亟待解决的技术问题。
发明内容
本申请实施例公开了一种数据迁移方法、系统及相关设备。使待迁移数据由源服务器负责读写转换到由目标服务器负责读写之后,在目标服务器接收到对待迁移数据的读写请求时,可以直接从已经构建的缓存中读取数据,不用到存储服务器中读盘,减少数据迁移之后,目标服务器对上述待迁移数据的读写请求的时延。
第一方面,本申请实施例提供一种迁移方法,应用于包括管理服务器、源服务器以及目标服务器的分布式存储系统中,上述源服务器与目标服务器均用于读写存储设备中存储的文件,其中,应用于源服务器的方法包括:源服务器接收管理服务器发送的迁移指令,所述迁移指令中携带待迁移数据的标识;根据所述待迁移数据的标识,锁定所述源服务器的缓存中缓存的归属于所述待迁移数据的数据;获取所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址;将所获取的所述逻辑地址发送至目标服务器,指示所述目标服务器根据所述逻辑地址将所述逻辑地址对应的数据从所述存储设备缓存至所述目标服务器的缓存。
本申请实施例中,上述待迁移数据迁移时,待迁移数据在存储设备中存储的位置不变,只是将原本由源服务器对上述待迁移数据进行读写,转变为由目标服务器对上述待迁移数据进行读写,即分布式存储系统接收到对上述待迁移数据的读写请求时,原本是由源服务器对该读写请求进行处理,在待迁移数据迁移成功之后,对上述待迁移数据的读写请求转换为由目标服务器进行处理。
通过执行上述数据迁移的方法,由源服务器管理的数据在迁移到由目标服务器管理之前,源服务器会将待迁移数据的标识以及逻辑地址发送给目标服务器,以使目标服务器可以在待迁移数据迁移到目标服务器之前,构建待迁移数据的缓存,避免在待迁移分区从源服务器迁移到目标服务器时,将源服务器中上述待迁移数据的缓存发送给目标服务器造成的占用网络带宽,传输时间长的问题。并且在待迁移数据从源服务器迁移到目标服务器之前构建待迁移数据的缓存,从而在待迁移数据迁移完成,实现负载均衡之后,目标服务器在接收到对待迁移数据的读写请求之后,可以直接从已经构建的缓存中读取数据,不用到存储服务器中读盘,减少数据迁移之后,对上述待迁移数据的读写请求的时延。
在一种可能的实施方式中,所述锁定所述源服务器的缓存中缓存的属于所述待迁移数据的数据之后,还包括:在接收到客户端对属于所述待迁移数据的写请求时,返回写失败的消息。本申请实施例中,上述源服务器在锁定所述源服务器的缓存中缓存的归属于所述待迁移数据的数据后,可以关闭与待迁移数相关的数据服务,避免其他线程对待迁移数进行操作,保持数据在迁移前后的一致性。
在一种可能的实施方式中,所述将所获取的所述逻辑地址发送至目标服务器之后,还包括:接收所述目标服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址指示的数据从所述存储设备缓存至所述目标服务器的缓存;释放锁定的所述源服务器的缓存中缓存的属于所述待迁移数据的数据。
在一种可能的实施方式中,所述源服务器的缓存中缓存的归属于所述待迁移数据的部分数据为热点数据,所述热点数据为所述待迁移数据中在预设周期内被读写的次数大于第一阈值的数据,或者,所述热点数据为待迁移数据中在所述预设周期内被读写的次数预设百分比的数据。将预设周期内待迁移数据中被读写的次数大于预设阈值的数据确定为热点数据,也可以将待迁移数据内的数据按照被读写的次数由多到少进行排序,将被读写的次数在预设百分比之前的数据作为热点数据,源服务器只将热点数据的逻辑地址发送给目标服务器,可以减少目标服务器需要从存储服务器中读取的用作缓存的数据的数量,降低迁移时间。
在一种可能的实施方式中,在所述接收管理服务器发送的迁移指令之前,还包括:向所述管理服务器发送所述源服务器的负载信息,所述负载信息包括所述待迁移数据在预设周期内的被读写的次数,所述负载信息指示所述管理服务器确定所述待迁移数据。
第二方面,本申请实施例提供一种数据迁移方法,所述方法应用于管理服务器,所述方法包括:管理服务器向源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识,所述迁移指令指示所述源服务器将所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址发送给目标服务器;管理服务器接收所述源服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;管理服务器接收客户端发送的对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器。
在一种可能的实施方式中,所述接收所述源服务器发送的确认消息之后,所述方法还包括:将所述待迁移数据与所述源服务器之间的映射关系更新为所述待迁移数据与所述目标服务器的映射关系,所述映射关系指示负责对所述待迁移数据进行读写的服务器。
在一种可能的实施方式中,所述接收客户端发送的对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器,包括:接收所述客户端发送的对所述待迁移数据的读写请求;根据所述待迁移数据与所述目标服务器的映射关系,确定所述读写请求请求读写的数据由所述目标服务器负责读写;将所述读写请求发送给所述目标服务器。
第三方面,本申请实施例一种数据迁移方法,应用于包括管理服务器、源服务器以及目标服务器的分布式索引系统中,上述源服务器与目标服务器均用于读写存储设备中存储的数据,其中,应用于目标服务器的方法包括:接收源服务器发送的迁移数据的逻辑地址;根据所述迁移数据的逻辑地址,将所述迁移数据从所述存储设备缓存至所述目标服务器的缓存,实现迁移数据由所述源服务器负责读写转换为所述目标服务器负责读写;接收管理服务器发送的对所述迁移数据中的目标数据进行读写的读写请求,其中,所述读写请求是客户端发送的并由所述管理服务器路由到所述目标服务器的请求;从所述目标服务器的缓存中获取所述目标数据并发送给所述客户端。
通过执行上述数据迁移的方法,源服务器中的数据在迁移到目标服务器之前,源服务器会将待迁移分区中待迁移数据的逻辑地址发送给目标服务器,以使目标服务器可以在待迁移分区迁移到目标服务器之前,构建待迁移数据的缓存,在待迁移数据从源服务器迁移到目标服务器之前构建待迁移数据的缓存,从而在待迁移数据迁移完成之后,目标服务器在接收到对待迁移分区中的数据的读写请求之后,可以直接从已经构建的缓存中读取数据,不用到存储服务器中读盘,减少分区迁移之后,对待迁移数据进行读写请求时的时延。
在将对上述待迁移数据的读写请求迁移到由目标服务器处理之后,目标服务器可以接收对上述待迁移数据的读写请求,管理服务器中存储有分布式存储系统中的数据与数据库服务器之间的映射关系,该映射关系指示每个数据库服务器负责读写的数据,客户端发送对上述待迁移数据的读写请求之后,管理服务器会根据上述映射关系,将该读写请求路由到目标服务器中,由目标服务器完成对待迁移数据的读写请求。
在一种可能的实施方式中,所述目标数据为所述源服务器中迁移数据中的部分或者全部数据。
第四方面,本申请实施例提供一种数据迁移系统,包括管理服务器、源服务器和目标服务器,所述源服务器与所述目标服务器用于读写存储设备中存储的数据,其中,
所述管理服务器,用于向所述源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识;
所述源服务器,用于根据所述迁移指令,获取所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址,并将所述逻辑地址发送给所述目标服务器;
所述目标服务器,用于根据所述逻辑地址将所述逻辑地址对应的数据从所述存储设备缓存至所述目标服务器的缓存;
所述管理服务器,还用于接收对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器。
在一种可能的实施方式中,所述源服务器,还用于向所述管理服务器发送确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
所述管理服务器,还用于在接收到所述确认信息之后,将所述待迁移数据与所述源服务器之间的映射关系更新为所述待迁移数据与所述目标服务器的映射关系,所述映射关系指示负责对所述待迁移数据进行读写的服务器。
在一种可能的实施方式中,所述管理服务器具体用于:
接收客户端发送的对所述待迁移数据的读写请求;
根据所述待迁移数据与所述目标服务器的映射关系,确定所述读写请求请求读写的数据由所述目标服务器负责读写;
将所述读写请求发送给所述目标服务器。
在一种可能的实施方式中,所述源服务器还用于:根据所述迁移指令中携带的待迁移数据的标识,锁定所述源服务器的缓存中缓存的归属于所述待迁移数据的数据。
在一种可能的实施方式中,所述源服务器的缓存中缓存的归属于所述待迁移数据的部分数据为热点数据,所述热点数据为所述待迁移数据中在预设周期内被读写的次数大于第一阈值的数据,或者,所述热点数据为待迁移数据中在所述预设周期内被读写的次数预设百分比的数据。
第五方面,本申请实施例提供一种数据迁移装置,所述装置包括:
接收单元:用于接收管理服务器发送的迁移指令,所述迁移指令中携带待迁移数据的标识;
处理单元,用于根据所述待迁移数据的标识,锁定所述数据迁移装置的缓存中缓存的归属于所述待迁移数据的数据;
获取单元,用于获取所述数据迁移装置的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址;
发送单元,用于将所获取的所述逻辑地址发送至目标服务器,指示所述目标服务器根据所述逻辑地址将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存。
在一种可能的实施方式中,所述发送单元还用于:在所述接收单元接收到客户端对属于所述待迁移数据的写请求时,向所述客户端返回写失败的消息。
在一种可能的实施方式中,所述接收单元还用于:接收所述目标服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址指示的数据从所述存储设备缓存至所述目标服务器的缓存;所述处理单元还用于:释放锁定的所述数据迁移装置的缓存中缓存的属于所述待迁移数据的数据。
在一种可能的实施方式中,所述缓存中缓存的归属于所述待迁移数据的部分数据为热点数据,所述热点数据为所述待迁移数据中在预设周期内被读写的次数大于第一阈值的数据,或者,所述热点数据为待迁移数据中在所述预设周期内被读写的次数预设百分比的数据。
第六方面,本申请实施例提供另一种数据迁移装置,所述装置包括:
发送单元,用于向源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识,所述迁移指令指示所述源服务器将所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址发送给目标服务器;
接收单元,用于接收所述源服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
处理单元,用于接收客户端发送的对所述待迁移数据的读写请求,确定所述读写请求请求读写的数据由所述目标服务器负责读写;
所述发送单元,还用于将所述读写请求发送给所述目标服务器。
在一种可能的实施方式中,所述处理单元还用于:将所述待迁移数据与所述源服务器之间的映射关系更新为所述待迁移数据与所述目标服务器的映射关系,所述映射关系指示负责对所述待迁移数据进行读写的服务器。
在一种可能的实施方式中,所述处理单元具体用于:根据所述待迁移数据与所述目标服务器的映射关系,确定所述读写请求请求读写的数据由所述目标服务器负责读写。
第七方面,本申请实施例提供一种数据迁移装置,所述装置包括:
接收单元,用于接收源服务器发送的迁移数据的逻辑地址;
获取单元,用于根据所述迁移数据的逻辑地址,将所述迁移数据从所述存储设备缓存至所述数据迁移装置,实现所述迁移文件由所述源服务器负责读写转换为所述数据迁移装置负责读写。
所述接收单元还用于:接收管理服务器发送的对所述迁移数据中的目标数据进行读写的读写请求,其中,所述读写请求是客户端发送的并有所述管理服务器路由到所述目标服务器的请求;
所述获取单元还用于:从所述目标服务器的缓存中获取所述目标数据并发送给所述客户端。
在一种可能的实施方式中,所述迁移数据为所述源服务器中待迁移数据中的部分或者全部数据。
第八方面,本申请实施例提供一种计算设备,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如上述第一方面或者第一方面的任意可能实施方式中所描述方法。
第九方面,本申请实施例提供另一种计算设备,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如上述第二方面或者第二方面的任意可能实施方式中所描述方法。
第十方面,本申请实施例提供另一种计算设备,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如上述第三方面或者第三方面的任意可能实施方式中所描述方法。
第十一方面,本申请实施例提供一种非瞬态的计算机存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面或者第一方面的任意可能实施方式中所描述方法。
第十二方面,本申请实施例提供一种非瞬态的计算机存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第二方面或者第二方面的任意可能实施方式中所描述方法。
第十三方面,本申请实施例提供一种非瞬态的计算机存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第三方面或者第三方面的任意可能实施方式中所描述方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种分布式索引系统的示意图。
图2是本申请实施例提供的一种迁移系统的交互示意图。
图3是本申请实施例提供的一种分区迁移的示意图。
图4是本申请实施例提供的一种数据迁移装置的结构示意图。
图5是本申请实施例提供的另一种数据迁移装置的结构示意图。
图6是本申请实施例提供的一种源服务器的结构示意图。
图7是本申请实施例提供的一种管理服务器的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。为了帮助本领域技术人员更好地理解本申请的技术方案,首先对本申请实施例中所涉及到的一些概念进行介绍。
分布式存储系统是将数据分散存储在多个存储节点中,为大规模存储提供高性能、高效率以及扩展性好的存储服务。
数据分区是根据用户数据的元数据,按照一定的规则将用户数据分布到不同的存储服务器中的技术。即数据分区是分布式存储系统中,用于确定数据在多个存储服务器中分布的技术。例如,一般是根据用户数据对应的key或者key的哈希值确定用户数据应该存储在多个存储节点中的哪个存储节点。其中,待存储的用户数据通常包括多个字段。例如,用户数据包括用户标识、姓名、住址、年龄、性别以及电话等。key可以由用户数据中的一个或者多个字段组成,比如,key可以由用户数据中的标识字段与姓名字段组合而成。
下面结合附图对本申请实施例进行详细的阐述,本申请实施例提供的数据迁移方法应用于包括管理设备、多个数据库实例以及多个存储实例的系统中,其中,上述实例可以是虚拟机、容器或者服务器,本申请实施例中以服务器为例进行说明。如图1所示,图1是一种分布式存储系统的示意图。该分布式存储系统包括管理设备100数据库服务器集群200以及存储服务器集群300,其中,数据库服务器集群200中包括数据库服务器1至数据库服务器m,存储服务器集群300中包括存储服务器1至存储服务器器n,m和n均为大于或者等于2的正整数。该分布式存储系统包括使用分区技术对用户数据进行分布式存储的系统,管理服务器100与数据库服务器集群200通信连接,数据库服务器集群200与存储服务器集群300通信连接。上述数据库服务器中的每个数据库服务器可以读写上述存储服务器集群中每个存储服务器中的用户数据。每个存储服务器中存储一个或者多个分区,管理服务器100用于管理分区与数据库服务器之间的映射关系。
在分布式存储系统中,用户数据被分成多个分区,多个分区被分散存储在多个存储服务器中,每个存储服务器中存储一个或者多个分区。在分布式存储系统中,由多个数据库服务器为用户提供用户数据的读写服务,每个数据库服务器管理一个或者多个分区,数据库服务器在接收到客户端的读写请求后,根据读请求从数据库服务器中读取数据或者将写请求中的数据写入数据库服务器,从而为用户提供用户数据的读写服务。
由于用户数据比较庞大,所以将其分成多个分区存储在多个存储服务器中,另外,为了提升用户数据的处理效率,多个分区由多个数据库服务器并行处理,其中,每个分区由一个数据库服务器提供服务,每个数据库服务器可以为一个或者多个分区提供服务。如图1所示,分区1至分区3的业务均由数据库服务器1提供数据服务,分区4和分区5的业务均由数据库服务器2提供数据服务。分区和数据库服务器之间的归属关系由分布式存储系统的管理服务器100动态指定,通过对数据进行分区管理,可以减少数据库服务器查询数据时的读写总量以减少响应时间,提高数据检索的效率。例如将具有一万行数据的表的分成10个分区,每个分区包含一千行数据,那么在查询目标数据时,数据库服务器可以只扫描目标数据所在的分区的一千行数据,而不用扫描全部一万行数据。
分区迁移是指将一个数据库服务器管理的分区,重新分配给另外一个数据库服务器进行管理,分区中的数据在存储服务器中的存储位置并不发生迁移。例如,上述分区2是由数据库服务器1提供数据服务,对分区2中的数据的读写请求会被路由到数据库服务器1进行处理。当对分区2进行分区迁移后,例如将分区2迁移到数据库服务器3中,分区2中的数据并不发生迁移,即分区2中的数据的在存储服务器中的存储区域并不发生变化,当客户端需要对分区2中的数据进行读写的时候,对分区2的读写请求会被路由到数据库服务器3中进行处理,由数据库服务器3去分区2的数据所在的存储服务器中读取数据。
在一些业务场景中,客户端的读写请求可能集中在同一个数据库服务器或者同一个分区中,则该数据库服务器为热点数据库服务器,热点数据库服务器由于处理读写请求的量比较大,可能导致数据库服务器处理读写请求的时延增加。因此管理服务器100在检测到热点数据库服务器上的读写请求量高于其他数据库服务器时,管理服务器100会将该热点数据库服务器上的读写请求迁移读写请求较少的数据库服务器上,以发挥多个数据库服务器对外提供服务的能力。
举例来讲,上述图1所示的分布式架构系统。在客户端访问的数据集中在分区4上时,管理服务器100在检测到上述数据库服务器2的访问量大于其他数据库服务器,或者数据库服务器2在预设周期内的访问次数大于预设阈值时,管理服务器100确定数据库服务器2为热点数据库服务器。管理服务器100向数据库服务器2发送分区迁移消息,该分区迁移消息用于指示数据库服务器2进行分区迁移。数据库服务器2接收到上述分区迁移消息之后,对分区4加分区写锁,并执行关闭数据库(close database,close DB)操作,关闭与分区4相关的数据服务,避免其他线程对该分区进行操作。数据库服务器2执行完上述操作之后,向管理服务器100发送成功关闭分区4的反馈信息,管理服务器100在接收到数据库服务器2发送的反馈信息之后,向目标服务器发送加载分区信息,该加载分区信息中携带有上述分区4的分区标识,目标服务器在接收到上述加载分区信息之后,根据分区标识获取分区写锁,并根据分区标识执行打开DB(open DB)操作,打开该分区标识对应的DB,然后目标服务器释放分区写锁,并向管理服务器100返回加载分区成功的反馈消息。在分区4迁移到目标服务器之后,对分区4的读写请求会被管理服务器100路由到目标服务器,目标服务器根据接收到的读请求,从存储分区4的存储服务器中读取数据返回给用户终端。
上述实现热点数据库服务器中分区迁移的方法,在分区迁移成功后,目标服务器中并没有上述分区4中的数据对应的缓存数据,当目标服务器接收到访问分区4中的目标数据的业务请求之后,目标服务器需要从存储分区4的存储服务器中获取该目标数据,然后将该数据发送给客户端,这种方式使得客户端在请求访问分区4的数据时时延增加,影响业务性能。
为了解决上述问题,可以在分区迁移时,将被迁移的分区中的数据的相关缓存从源服务器复制到目标服务器,目标服务器在接收到读写被迁移分区中的数据时,可以直接从缓存中获取数据,从而确保分区迁移后读写被迁移分区中的数据时,不会因为需要从存储服务器中获取数据而导致时延增长。但是该方法在将缓存从源服务器迁移到目标服务器中时会占用网络带宽,影响网络性能,并且源服务器中被迁移分区的缓存中有无效的缓存数据,迁移到目标服务器中之后,会占用目标服务器的内存。
针对上述问题,本申请实施例提供一种数据迁移方法,应用于如图1所示的分布式存储系统中,其中,源服务器和目标服务器均为上述图1中的数据库服务器,如图2所示,图2是本申请实施例提供的一种数据迁移方法的交互示意图,该方法包括:
S301、管理服务器接收源服务器发送的负载信息,确定待迁移分区,并向源服务器发送迁移指令。
其中,每个数据库服务器的负载信息包括该数据库服务器中每个分区中的数据在预设周期内的被读写的次数。
上述源服务器是上述数据库服务器集群200中的热点数据库服务器。本申请实施例中,每个数据库服务器在为客户端提供数据服务的同时,数据库服务器会以预设周期统计每个分区中的数据在预设周期内被读写的次数,然后将统计得到的上述负载信息发送给管理服务器100。
在一种可能的实施例中,管理服务器100在接收每个数据库服务器发送的负载信息之后,根据每个分区中数据的被读写次数确定待迁移分区,即热点分区,将管理待迁移分区的数据库服务器作为热点数据库服务器。
示例性的,管理服务器100可以通过设置阈值的方式确定待迁移分区,如图1中所示,数据库服务器集群200中包括数据库服务器1与数据库服务器2,数据库服务器1管理分区1至分区3,数据库服务器2管理分区4和分区5。数据库服务器1中的分区1至分区3在预设周期内被读写的次数分别为65、55、80,数据库服务器2中的分区4和分区5在预设周期内被读写的次数分别为45和55。管理服务器100将一个周期内分区中的数据的被读写次的数超过第一阈值的分区作为待迁移分区。若上述第一阈值为75,因为数据库服务器1中分区3的数据在预设周期内被读写的次数大于75,因此分区3为待迁移分区,数据库服务器1为热点数据库服务器。
管理服务器100在确定待迁移分区之后,若将该待迁移分区整体迁移到目标服务器,该待迁移分区在目标服务器上同样会被再次确认为待迁移分区。因此管理服务器100需要将上述待迁移分区进行拆分,将待迁移分区拆分为两个子分区,每个子分区中包括原分区中的部分数据,例如每个子分区中包括原分区中的一半数据。然后将其中一个子分区作为待迁移分区,分配给目标服务器,这样在上述待迁移分区拆分之前,源服务器每次只能处理一个对该待迁移分区的读写请求,在待迁移分区拆分后,源服务器与目标服务器可以并行处理对原待迁移分区的读写请求,从而降低数据库服务器集群200对原待迁移分区的读写请求的处理时延。如图3所示,上述数据库服务器1中的分区3为待迁移分区,则将分区3拆分为两个子分区:分区3-1和分区3-2,将分区3-2中的数据迁移到目标服务器中,例如图3中的数据库服务器2。
可选地,管理服务器100还可以根据每个分区的数据在预设周期内的被读写次数,将每个分区按照被读写次数进行排序,将被读写次数最多的一个或者多个分区作为待迁移分区,将管理待迁移分区的数据库服务器作为热点数据库服务器。
在另一种可能的实施例中,在一个预设周期内,数据库服务器中每个分区的数据被读写次数可能均小于上述第一阈值,但该数据库服务器接收到的读写请求数量可能大于根据上述第一阈值确定的存在待迁移分区的数据库服务器。例如,上述数据库服务器1中的分区1至分区3在预设周期内的被读写次数分别为65、55和80,则数据库服务器1在预设周期内接收到的读写请求数量为200;数据库服务器3中的分区6至分区8在预设周期内的被读写次数分别为68、72和74,则数据库服务器3在预设周期内接收到的读写请求数量为214。若上述数据库服务器1和数据库服务器3的硬件配置相同,则数据库服务器3的负载大于数据库服务器1,而根据上述每个分区的数据的被读写次数确定待迁移分区进而确定热点数据库服务器的方法,不能将上述数据库服务器3确定为热点数据库服务器。因此管理服务器100还可以根据每个数据库服务器在预设周期内接收到的读写请求数量,确定热点数据库服务器,然后根据热点数据库服务器中每个分区的数据的被读写次数确定待迁移分区。
示例性的,管理服务器100可以通过设置阈值的方式确定热点数据库服务器,将一个预设周期内接收到的读写请求数量超过第二阈值的数据库服务器作为热点数据库服务器。例如,继续以上述数据库服务器1、数据库服务器2和数据库服务器3为例,上述第二阈值为210,则数据库服务器3在预设周期内接收到的读写请求的数量大于第一阈值,数据库服务器3为热点数据库服务器。
管理服务器100在根据每个数据库服务器接收到的读写请求的数量确定热点数据库服务器之后,根据该热点数据库服务器内每个分区的数据被读写的次数确定热点数据库服务器中的待迁移分区。其中,目标服务器可以是上述数据库服务器集群200中接收数据访问请求数量最少的数据库服务器。例如,上述数据库服务器3在预设周期内接收到的读写请求数量为214,数据库服务器2在预设周期内的读写请求数量为100,管理服务器100可以将数据库服务器3内的分区1或者分区2确定为需要迁移的待迁移分区。比如将分区1迁移到数据库服务器2中,则数据库服务器2和数据库服务器3的接收到的数据读写请求将分别为168和146,使两个数据库服务器在一个周期内接收到的读写请求数量均在第二阈值之内,因此可以将分区1确定为待迁移分区。
可选地,管理服务器100还可以根据每个数据库服务器发送的负载信息,将每个数据库服务器接收到的读写请求的数量进行排序,将接收到读写请求的数量最多的一个或者多个数据库服务器作为热点数据库服务器。
管理服务器100在通过上述任意一种方式确定待迁移分区之后,管理服务器100向源服务器发送迁移指令,该迁移指令中包括待迁移分区的标识以及目标服务器的标识,该迁移指令指示源服务器将源服务器负责读写的待迁移分区迁移至目标服务器。
S302、源服务器接收迁移指令,锁定源服务器中的缓存中缓存的属于待迁移分区的数据。
源服务器在接收到上述管理服务器100发送的迁移指令之后,根据迁移指令中待迁移分区的标识确定源服务器内多个分区中的待迁移分区,然后获取分区写锁,对待迁移分区加分区写锁,并对待迁移分区执行close DB操作,关闭与待迁移分区有关的线程,停止对待迁移分区的读写操作。例如,上述数据库服务器1中的分区3为待迁移分区,则数据库服务器1在接收到上述迁移指令之后,对分区3加分区写锁,并执行close DB操作,关闭与分区3相关的写请求等数据服务,以使分区3中的数据保持不变。如果数据库服务器1在执行close DB操作之后,接收到对分区3的写操作等请求,数据库服务器1返回请求失败的信息。
S303、源服务器获取归属于待迁移分区的数据的逻辑地址,并将逻辑地址发送至目标服务器。
本申请实施例中,源服务器在执行上述分区加锁并close DB之后,源服务器根据上述待迁移分区的标识,获取归属于上述待迁移分区的数据的逻辑地址,然后将获取到的逻辑地址发送给目标服务器,以使目标服务器根据接收到的逻辑地址,将逻辑地址对应的数据从存储服务器300中缓存值目标服务器的缓存中。
在一种可能的实施方式中,源服务器统计每个预设周期内每个分区中的数据被读写的次数,从而获得每个分区的数据信息表。在源服务器执行分区加锁并close DB之后,源服务器获取上述待迁移分区的标识对应的分区的数据信息表,该数据信息表包括待迁移分区中每个数据在预设周期内被读写的次数。然后源服务器根据数据信息表确定热点数据,获取待迁移分区中热点数据的逻辑地址,该热点数据的逻辑地址包括上述待迁移分区中每个热点数据的逻辑地址,然后将热点数据的逻辑地址发送给目标服务器。
其中,源服务器在根据数据信息表确定热点数据时,可以将预设周期内待迁移分区中被读写的次数大于第三阈值的数据确定为热点数据,也可以将待迁移分区内的数据按照被读写的次数由多到少进行排序,将被读写的次数在预设百分比之的数据作为热点数据。源服务器只将热点数据的逻辑地址发送给目标服务器,可以减少目标服务器需要从存储服务器中读取的用作缓存的数据的数量,降低迁移时间。
S304、目标服务器接收源服务器发送的逻辑地址,根据逻辑地址将该逻辑地址对应的数据从存储服务器缓存至目标服务器的缓存。
上述源服务器在将归属于待迁移分区的数据的逻辑地址发送给目标服务器之后,目标服务器根据接收到的逻辑地址从存储服务器中读取该逻辑地址对应的数据到目标服务器的缓存中,从而将上述待迁移分区从源服务器迁移到目标服务器,实现待迁移分区负责读写的数据转换为由目标服务器负责读写。本申请实施例中,源服务器在发送上述逻辑地址时,还需要将上述待迁移分区的标识发送给上述目标服务器,以使所述目标服务器确定上述逻辑地址对应的数据在分布式存储系统中所属的分区。
S305、目标服务器向源服务器发送确认信息。
上述确认信息指示源服务器上述目标服务器根据上述逻辑地址,已经构建完成上述逻辑地址对应的数据的缓存。源服务器在接收到上述确认信息之后,释放所述待迁移分区的写锁。
S306、源服务器向管理服务器发送迁移成功的信息。
源服务器在接收到上述确认信息之后,向管理服务器100发送迁移成功的信息,该迁移成功的信息用于向管理服务器100表明上述待迁移分区已经完成从源服务器向目标服务器的迁移。
S307、管理服务器接收上述迁移成功的信息,更新管理服务器中存储的分区与数据库之间的映射关系。
本申请实施例中,上述管理服务器100中存储有上述数据库服务器集群200中多个数据库服务器与存储服务器集群300中存储的多个分区之间的映射关系信息,例如,数据库服务器1管理分区1至分区3,数据库服务器2管理分区4和分区5。在管理服务器100接收到上述源服务器发送的迁移成功的信息之后,更新其存储的上述映射关系信息,例如,上述待迁移分区为分区3,将待迁移分区由数据库服务器1迁移到数据库服务器2,则管理服务器100将映射关系更新为数据库服务器1管理分区1和分区2,数据库服务器2管理分区3至分区5。以使在管理服务器100接收到客户端发起的对上述待迁移分区中的数据的读写请求之后,管理服务器100将该读写请求路由到目标服务器。
S308、目标服务器接收管理服务器发送的加载分区指令,执行打开数据库的操作。
管理服务器100在接收到上述源服务器发送的迁移成功的信息之后,确定上述待迁移分区已成功迁移至目标服务器。管理服务器100向目标服务器发送加载分区指令,上述加载分区指令携带有待迁移分区的标识。目标服务器根据待迁移分区标识对上述待迁移分区标识对应的分区执行open DB的操作,在成功执行上述open DB操作之后,目标服务器向管理服务器100发送加载成功的信息,该信息指示目标服务器已经完成加载上述待迁移分区的操作,可以开始处理对上述待迁移分区中数据的读写请求。
S309、管理服务器接收对待迁移分区中的目标数据的读写请求,将该读写请求发送给目标服务器。
在管理服务器100接收到客户端发起的对上述待迁移分区中的目标数据的读写请求之后,管理服务器100根据上述更新后的分区与数据库之间的映射关系,确定该目标数据由上述目标服务器负责读写,则管理服务器将该读写请求路由到目标服务器。
S310、目标服务器接收对待迁移分区的读写请求,从目标服务器的缓存中获取所述读写请求对应的目标数据。
通过执行上述数据迁移的方法,源服务器中的数据在迁移到目标服务器之前,源服务器会将待迁移分区中待迁移数据的逻辑地址发送给目标服务器,以使目标服务器可以在待迁移分区迁移到目标服务器之前,构建待迁移数据的缓存,避免在待迁移分区从源服务器迁移到目标服务器时,将源服务器中待迁移分区中的数据的缓存发送给目标服务器造成的占用网络带宽,传输时间长的问题。并且在待迁移分区从源服务器迁移到目标服务器之前构建待迁移分区的缓存,从而在待迁移分区迁移完成,实现负载均衡之后,目标服务器在接收到对待迁移分区中的数据的读写请求之后,可以直接从已经构建的缓存中读取数据,不用到存储服务器中读盘,减少分区迁移之后,对待迁移分区的读写请求的时延。
在一种可能的实现方式中,上述S304中,目标服务器根据接收到的逻辑地址,将上述逻辑地址对应的目标数据从存储服务器中读到目标服务器的缓存中时,可以只读取上述目标数据中的部分数据到目标服务器的缓存中。示例性的,目标服务器可以只读取预设百分比的目标数据到目标服务器的缓存中。一般20%的数据能够覆盖80%的数据读写业务,目标服务器可以将目标数据中,预设周期内被读写的次数在前20%的数据作为热点目标数据,从存储服务器中读取热点目标数据到目标服务器的缓存中。目标服务器还可以根据数据的重要性策略,从存储服务器中读取部分目标数据到缓存中,例如可以设置存储时间越短的数据越重要,将上述目标数据中,当前时间之前预设时间段内的数据作为热点目标数据,从存储服务器中读取热点目标数据到目标服务器的缓存中。通过上述方法,可以减少目标服务器需要从存储服务器中读取的用于作为缓存的数据的数量,降低迁移时间。
上文中结合图1至图3详细描述了根据本申请实施例所提供的迁移方法,下面将结合图4和图7,描述本申请实施例所提供的数据迁移方法对应的相关装置与设备。请参见图4,图4是本申请实施例提供的一种数据迁移装置的结构示意图,该装置应用于上述图2所示的系统中的源服务器中,该数据迁移装置400包括:接收单元410、处理单元420、获取单元430以及发送单元440,其中,
接收单元410,用于接收管理服务器100发送的迁移指令,所述迁移指令中携带待迁移数据的标识;
处理单元420,用于根据所述待迁移数据的标识,锁定上述数据迁移装置400的缓存中缓存的归属于所述待迁移数据的数据;
获取单元430用于获取上述数据迁移装置400的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址;
发送单元440,用于将所获取的上述逻辑地址发送至目标服务器,指示目标服务器根据上述逻辑地址将上述逻辑地址对应的数据从存储设备缓存至目标服务器的缓存。
可选地,上述发送单元440还用于:在接收单元410接收到客户端对属于所述待迁移数据的写请求时,向客户端返回写失败的消息。
可选地,上述接收单元410还用于:接收目标服务器发送的确认信息,该确认信息指示目标服务器已完成将上述逻辑地址指示的数据从存储服务器缓存至目标服务器的缓存;
处理单元420还用于:释放锁定的所述数据迁移装置400的缓存中缓存的属于所述待迁移数据的数据。
具体的,上述接收单元410用于实现上述S302中描述的接收管理服务器发送的迁移指令、S305中描述的接收目标服务器发送的确认信息等功能。上述处理单元420用于实现上述S302中描述的锁定待迁移分区的数据的功能。上述获取单元430用于实现上述S303中获取待迁移分区的数据的逻辑地址等功能。上述发送单元440用于实现上述S303中向目标服务器发送逻辑地址等功能,具体的,上述各个单元所执行的操作的具体实现过程可以参照上述方法实施例中的源服务器执行的相关操作的具体描述,在此不再赘述。
应理解,上述数据迁移装置400的结构仅仅作为一种示例,不应构成具体限定,数据迁移装置400的结构可以根据需要对模块或单元进行增加、减少或合并。上述数据迁移装置400所执行的操作可参照上述方法实施例中源服务器所执行的相关操作,在此不再具体描述。
请参见图5,图5是本申请实施例提供的另一种数据迁移装置的结构示意图,该数据迁移装置用于上述图2所示的目标服务器中,该数据迁移装置500包括:发送单元510、接收单元520和处理单元530,其中,
发送单元510,用于向源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识,所述迁移指令指示所述源服务器将所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址发送给目标服务器;
接收单元520,用于接收所述源服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
处理单元530,用于获取客户端发送的对所述待迁移数据的读写请求,确定所述读写请求请求读写的数据由所述目标服务器负责读写;
所述发送单元510,还用于将所述读写请求发送给所述目标服务器。
具体的,上述发送单元510用于实现上述S301中发送迁移指令给源服务器、S308中向目标服务器发送的加载分区指令以及S309向目标服务器发送读写请求等功能。接收单元520用于实现上述S301中接收源服务器发送的负载信息以及S309中接收读写请求等功能。处理单元530用于实现上述S301中根据源服务器的负载信息确定待迁移分区、S307中更新管理服务器中存储的分区与数据库之间的映射关系以及S309中确定将对上述待迁移分区的读写请求发送给目标服务器等功能。具体的,上述各功能单元所执行的操作的具体实现过程可以参照上述方法实施例中的管理服务器执行的相关操作的具体描述,在此不再赘述。
应理解,上述数据迁移装置500的结构仅仅作为一种示例,不应构成具体限定,数据迁移装置500的结构可以根据需要对模块或单元进行增加、减少或合并。上述数据迁移装置500所执行的操作可参照上述方法实施例中管理服务器所执行的相关操作,在此不再具体描述。
图6为本申请实施例提供的一种源服务器的结构示意图,该源服务器600至少包括:处理器610、通信接口620以及存储器630,所述处理器610、通信接口620以及存储器630通过总线640相互连接,其中,
所述处理器610执行各种操作的具体实现可参照上述方法实施例中源服务器的具体操作,例如上述图2中S302、S304中描述的相关操作。处理器610可以有多种具体实现形式,例如处理器610可以为中央处理器(central processing unit,CPU)或图像处理器(graphics processing unit,GPU),处理器610还可以是单核处理器或多核处理器。处理器610可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logicdevice,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器611也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。
通信接口620可以为有线接口或无线接口,用于与其他单元或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN),无线接口可以是蜂窝网络接口或使用无线局域网接口等。例如,本申请实施例中通信接口620具体可用于S301中接收管理服务器发送的待迁移分区的标识、S303中向目标服务器发送待迁移分区的标识、S304中向目标服务器发送热点数据信息表以及热点数据的逻辑地址等。
总线640可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器630,一般也称为外部存储器,存储器630的存储介质可以是易失性存储器和非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datadate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器630用于存储程序代码和数据,以便于处理器610调用存储器630中存储的程序代码实现上述源服务器的相关功能。此外,设备600可能包含相比于图6展示的更多或者更少的组件,或者有不同的组件配置方式。
可选地,该迁移设备600还可以包括输入/输出接口650,输入/输出接口650连接有输入/输出设备,用于接收输入的信息,输出操作结果。
图7为本申请实施例提供的一种目标服务器的结构示意图,该目标服务器700至少包括:处理器710、通信接口720以及存储器730,所述处理器710、通信接口720以及存储器730通过总线740相互连接,其中,
所述处理器710执行各种操作的具体实现可参照上述方法实施例中目标服务器的具体操作,例如上述图2中S301、S307以及S309中的描述的相关操作,在此不再赘述。处理器710可以有多种具体实现形式,例如处理器710可以为中央处理器(central processingunit,CPU)或图像处理器(graphics processing unit,GPU),处理器710还可以是单核处理器或多核处理器。处理器710可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器711也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。
通信接口720可以为有线接口或无线接口,用于与其他单元或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN),无线接口可以是蜂窝网络接口或使用无线局域网接口等。例如,本申请实施例中通信接口720具体可用于S301中接收源服务器发送的负载信息、S306中接收迁移成功的信息等。
总线740可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器730,一般也称为外部存储器,存储器730的存储介质可以是易失性存储器和非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datadate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器730用于存储程序代码和数据,以便于处理器710调用存储器730中存储的程序代码实现上述管理服务器的相关功能。此外,设备700可能包含相比于图7展示的更多或者更少的组件,或者有不同的组件配置方式。
可选地,该迁移设备700还可以包括输入/输出接口750,输入/输出接口750连接有输入/输出设备,用于接收输入的信息,输出操作结果。
本申请实施例还提供一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,可以实现上述方法实施例中记载的源服务器实现的部分或全部步骤,所述计算机非瞬态存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例的具体操作,在此不再赘述。
本申请实施例还提供还一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,可以实现上述方法实施例中记载的目标服务器实现的部分或全部步骤,所述计算机非瞬态存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例的具体操作,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如SSD)等。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例装置中的单元可以根据实际需要进行划分、合并或删减。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种数据迁移的方法,其特征在于,所述方法应用于源服务器,所述源服务器用于读写存储设备中存储的数据,所述方法包括:
接收管理服务器发送的迁移指令,所述迁移指令中携带待迁移数据的标识;
根据所述待迁移数据的标识,锁定所述源服务器的缓存中缓存的归属于所述待迁移数据的数据;
获取所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址;
将所获取的所述逻辑地址发送至目标服务器,指示所述目标服务器根据所述逻辑地址将所述逻辑地址对应的数据从所述存储设备缓存至所述目标服务器的缓存。
2.根据权利要求1所述的方法,其特征在于,所述锁定所述源服务器的缓存中缓存的属于所述待迁移数据的数据之后,还包括:
在接收到客户端对属于所述待迁移数据的写请求时,返回写失败的消息。
3.根据权利要求1所述的方法,其特征在于,所述将所获取的所述逻辑地址发送至目标服务器之后,还包括:
接收所述目标服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从所述存储设备缓存至所述目标服务器的缓存;
释放锁定的所述源服务器的缓存中缓存的属于所述待迁移数据的数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述源服务器的缓存中缓存的归属于所述待迁移数据的部分数据为热点数据,所述热点数据为所述待迁移数据中在预设周期内被读写的次数大于第一阈值的数据,或者,所述热点数据为待迁移数据中在所述预设周期内被读写的次数预设百分比的数据。
5.一种数据迁移方法,其特征在于,所述方法应用于管理服务器,所述方法包括:
向源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识,所述迁移指令指示所述源服务器将所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址发送给目标服务器;
接收所述源服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
接收客户端发送的对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器。
6.根据权利要求5所述的方法,其特征在于,所述接收所述源服务器发送的确认信息之后,所述方法还包括:
将所述待迁移数据与所述源服务器之间的映射关系更新为所述待迁移数据与所述目标服务器的映射关系,所述映射关系指示负责对所述待迁移数据进行读写的服务器。
7.根据权利要求6所述的方法,其特征在于,所述接收客户端发送的对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器,包括:
接收所述客户端发送的对所述待迁移数据的读写请求;
根据所述待迁移数据与所述目标服务器的映射关系,确定所述读写请求请求读写的数据由所述目标服务器负责读写;
将所述读写请求发送给所述目标服务器。
8.一种数据迁移系统,其特征在于,包括管理服务器、源服务器和目标服务器,其中,
所述管理服务器,用于向所述源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识;
所述源服务器,用于根据所述迁移指令,获取所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址,并将所述逻辑地址发送给所述目标服务器;
所述目标服务器,用于根据所述逻辑地址将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
所述管理服务器,还用于接收对所述待迁移数据的读写请求,将所述读写请求发送给所述目标服务器。
9.一种数据迁移装置,其特征在于,所述装置包括:
接收单元:用于接收管理服务器发送的迁移指令,所述迁移指令中携带待迁移数据的标识;
处理单元,用于根据所述待迁移数据的标识,锁定所述数据迁移装置的缓存中缓存的归属于所述待迁移数据的数据;
获取单元,用于获取所述数据迁移装置的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址;
发送单元,用于将所获取的所述逻辑地址发送至目标服务器,指示所述目标服务器根据所述逻辑地址将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存。
10.根据权利要求9所述的装置,其特征在于,所述发送单元还用于:
在所述接收单元接收到客户端对属于所述待迁移数据的写请求时,向所述客户端返回写失败的消息。
11.根据权利要求9或10所述的装置,其特征在于,
所述接收单元还用于:接收所述目标服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址指示的数据从所述存储设备缓存至所述目标服务器的缓存;
所述处理单元还用于:释放锁定的所述数据迁移装置的缓存中缓存的属于所述待迁移数据的数据。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述缓存中缓存的归属于所述待迁移数据的部分数据为热点数据,所述热点数据为所述待迁移数据中在预设周期内被读写的次数大于第一阈值的数据,或者,所述热点数据为待迁移数据中在所述预设周期内被读写的次数预设百分比的数据。
13.一种数据迁移装置,其特征在于,所述装置包括:
发送单元,用于向源服务器发送迁移指令,所述迁移指令中携带待迁移数据的标识,所述迁移指令指示所述源服务器将所述源服务器的缓存中缓存的归属于所述待迁移数据的部分或者全部数据的逻辑地址发送给目标服务器;
接收单元,用于接收所述源服务器发送的确认信息,所述确认信息指示所述目标服务器已完成将所述逻辑地址对应的数据从存储设备缓存至所述目标服务器的缓存;
处理单元,用于获取客户端发送的对所述待迁移数据的读写请求,确定所述读写请求请求读写的数据由所述目标服务器负责读写;
所述发送单元,还用于将所述读写请求发送给所述目标服务器。
14.根据权利要求13所述的装置,其特征在于,所述处理单元还用于:
将所述待迁移数据与所述源服务器之间的映射关系更新为所述待迁移数据与所述目标服务器的映射关系,所述映射关系指示负责对所述待迁移数据进行读写的服务器。
15.根据权利要求14所述的装置,其特征在于,所述处理单元具体用于:
根据所述待迁移数据与所述目标服务器的映射关系,确定所述读写请求请求读写的数据由所述目标服务器负责读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945817.9A CN112578997B (zh) | 2019-09-30 | 2019-09-30 | 一种数据迁移方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945817.9A CN112578997B (zh) | 2019-09-30 | 2019-09-30 | 一种数据迁移方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112578997A CN112578997A (zh) | 2021-03-30 |
CN112578997B true CN112578997B (zh) | 2022-07-22 |
Family
ID=75116892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910945817.9A Active CN112578997B (zh) | 2019-09-30 | 2019-09-30 | 一种数据迁移方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112578997B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515502B (zh) * | 2021-07-14 | 2023-11-21 | 重庆度小满优扬科技有限公司 | 数据迁移方法、装置、设备以及存储介质 |
CN113467722B (zh) * | 2021-07-26 | 2024-04-30 | 浙江大华技术股份有限公司 | 一种分布式存储系统的数据迁移方法及装置 |
CN113515364B (zh) * | 2021-09-14 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 一种数据迁移的方法及装置、计算机设备和存储介质 |
CN114785796A (zh) * | 2022-04-22 | 2022-07-22 | 中国农业银行股份有限公司 | 一种数据均衡方法和装置 |
CN115048463B (zh) * | 2022-06-30 | 2023-06-06 | 北京瑞莱智慧科技有限公司 | 数据迁移方法、系统及存储介质 |
CN115729463A (zh) * | 2022-10-20 | 2023-03-03 | 超聚变数字技术有限公司 | 数据迁移的方法、系统及相关装置 |
CN116028234B (zh) * | 2023-03-31 | 2023-07-21 | 山东浪潮科学研究院有限公司 | 一种分布式数据库负载均衡方法、装置、设备及存储介质 |
CN116880779B (zh) * | 2023-09-07 | 2023-12-05 | 北京志凌海纳科技有限公司 | 一种磁盘卸载迁移方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402722A (zh) * | 2017-07-04 | 2017-11-28 | 杭州宏杉科技股份有限公司 | 一种数据迁移方法及存储设备 |
CN109791522A (zh) * | 2017-09-05 | 2019-05-21 | 华为技术有限公司 | 数据迁移的方法、系统及智能网卡 |
CN109995813A (zh) * | 2017-12-29 | 2019-07-09 | 杭州华为数字技术有限公司 | 一种分区扩展方法、数据存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10979503B2 (en) * | 2014-07-30 | 2021-04-13 | Excelero Storage Ltd. | System and method for improved storage access in multi core system |
-
2019
- 2019-09-30 CN CN201910945817.9A patent/CN112578997B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107402722A (zh) * | 2017-07-04 | 2017-11-28 | 杭州宏杉科技股份有限公司 | 一种数据迁移方法及存储设备 |
CN109791522A (zh) * | 2017-09-05 | 2019-05-21 | 华为技术有限公司 | 数据迁移的方法、系统及智能网卡 |
CN109995813A (zh) * | 2017-12-29 | 2019-07-09 | 杭州华为数字技术有限公司 | 一种分区扩展方法、数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112578997A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112578997B (zh) | 一种数据迁移方法、系统及相关设备 | |
CN108833503B (zh) | 一种基于ZooKeeper的Redis集群方法 | |
US10831612B2 (en) | Primary node-standby node data transmission method, control node, and database system | |
US11451629B2 (en) | Distributed metadata management method for distributed file system | |
US11245774B2 (en) | Cache storage for streaming data | |
CN105426321B (zh) | 采用远程位置信息的rdma友好缓存方法 | |
CN110727738B (zh) | 基于数据分片的全局路由系统、电子设备及存储介质 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
EP3739440A1 (en) | Distributed storage system, data processing method and storage node | |
US20200349081A1 (en) | Method, apparatus and computer program product for managing metadata | |
CN105760391B (zh) | 数据动态重分布的方法、数据节点、名字节点及系统 | |
US20220107752A1 (en) | Data access method and apparatus | |
US11231964B2 (en) | Computing device shared resource lock allocation | |
WO2023142605A1 (zh) | 一种基于区块链的数据处理方法和相关装置 | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
US10712959B2 (en) | Method, device and computer program product for storing data | |
CN115729693A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
WO2024113090A1 (zh) | 访存方法、装置及系统 | |
EP4383076A1 (en) | Data processing method and apparatus, computer device, and computer-readable storage medium | |
CN117453380B (zh) | 集群的容器组调度方法、系统以及计算机设备 | |
CN117075823B (zh) | 对象查找方法、系统、电子设备及存储介质 | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
WO2024066676A1 (zh) | 一种神经网络模型的推理方法、装置及相关设备 | |
WO2021063242A1 (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220211 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |