CN107832169B - 内存数据迁移方法、装置、终端设备和存储介质 - Google Patents
内存数据迁移方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN107832169B CN107832169B CN201710677093.5A CN201710677093A CN107832169B CN 107832169 B CN107832169 B CN 107832169B CN 201710677093 A CN201710677093 A CN 201710677093A CN 107832169 B CN107832169 B CN 107832169B
- Authority
- CN
- China
- Prior art keywords
- data
- memory data
- storage
- memory
- host 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开一种内存数据迁移方法、装置、终端设备和存储介质。该内存数据迁移方法,包括主机服务器执行的如下步骤:生成原始内存数据,将所述原始内存数据存储在存储块中,所述存储块与存储时间标识相关联;获取备机服务器发送的数据备份指令,所述数据备份指令与一同步时间标识相关联;基于所述数据备份指令,获取待迁移内存数据,所述待迁移内存数据包括至少一个所述存储块中的原始内存数据,所述存储块的存储时间标识在所述同步时间标识以后;将所述待迁移内存数据发送给所述备机服务器。该内存数据迁移方法进行内存数据迁移时可有效节省数据传输的时间,提高内存数据迁移的效率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种内存数据迁移方法、装置、终端设备和存储介质。
背景技术
内存数据迁移是指将一主机中缓存的内存数据迁移到另一主机的存储器中,以实现内存数据的备份存储。当前内存数据迁移过程主要有以下两种:其一是,在一主机上生成快照(Snapshot)数据文件并将该快照数据文件发送给另一主机的迁移方式;其二是,将一主机上的内存数据以单位数据为大小实时发送给另一主机的迁移方式。上述两种方式均存在迁移效率较低的问题,以下以Redis系统为例进行说明。
Redis系统包括主机服务器和备机服务器,在将主机服务器的内存数据迁移到备机服务器的过程主要有如下两种迁移方式:其一是,在主机服务器中生成快照(Snapshot)数据文件,并将该快照数据文件发送给备机服务器;备机服务器读取快照数据文件对应的内存数据,并将读取到的内存数据存储在备机服务器的内存中,以实现内存数据迁移。这种内存数据迁移方式中每一内存数据的迁移均需经过快照数据文件的生成、传输和读取等操作,使得其迁移效率较低。其二是,将主机服务器中的内存数据以Key/Value为单位传输给备机服务器。这种内存数据迁移方式中,每次传输只传输Key/Value这一单位数据大小的内存数据,使得其迁移过程需花费更多时间,且需保证主机服务器和备机服务器长时间处于通信状态,使得其数据迁移过程效率较低。
发明内容
本发明实施例提供一种内存数据迁移方法、装置、终端设备和存储介质,以解决当前内存数据迁移效率较低的问题。
第一方面,本发明实施例提供一种内存数据迁移方法,包括主机服务器执行的如下步骤:
生成原始内存数据,将所述原始内存数据存储在存储块中,所述存储块与存储时间标识相关联;
获取备机服务器发送的数据备份指令,所述数据备份指令与一同步时间标识相关联;
基于所述数据备份指令,获取待迁移内存数据,所述待迁移内存数据包括至少一个所述存储块中的原始内存数据,所述存储块的存储时间标识在所述同步时间标识以后;
将所述待迁移内存数据发送给所述备机服务器。
第二方面,本发明实施例提供一种内存数据迁移方法,包括备机服务器执行的如下步骤:
生成数据备份指令,所述数据备份指令与一同步时间标识相关联;
将所述数据备份指令发送给主机服务器;
接收所述主机服务器发送的待迁移内存数据,所述待迁移内存数据包括至少一个所述存储块中的原始内存数据,所述存储块的存储时间标识在所述同步时间标识以后。
第三方面,本发明实施例提供一种内存数据迁移装置,包括:
原始数据存储模块,用于生成原始内存数据,将所述原始内存数据存储在存储块中,所述存储块与存储时间标识相关联;
备份指令获取模块,用于获取备机服务器发送的数据备份指令,所述数据备份指令与一同步时间标识相关联;
迁移数据获取模块,用于基于所述数据备份指令,获取待迁移内存数据,所述待迁移内存数据包括所述同步时间标识以后所有的存储时间标识对应的存储块中的原始内存数据;
内存数据发送模块,用于将所述待迁移内存数据发送给所述备机服务器。
第四方面,本发明实施例提供一种内存数据迁移装置,包括:
备份指令生成模块,用于生成数据备份指令,所述数据备份指令与一同步时间标识相关联;
备份指令发送模块,用于将所述数据备份指令发送给主机服务器;
内存数据接收模块,用于接收所述主机服务器发送的待迁移内存数据,所述待迁移内存数据包括所述同步时间标识以后所有的存储时间标识对应的存储块中的原始内存数据。
第五方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述内存数据迁移方法的步骤。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述内存数据迁移方法的步骤。
本发明实施例所提供的内存数据迁移方法、装置、终端设备和存储介质中,基于数据备份指令中的同步时间标识确定待迁移内存数据,即依据原始内存数据的存储时间标识确定是否需要迁移,此过程无需记录日志,也无需另行生成快照数据文件,有利于节省待迁移内存数据的获取时间,提高内存数据迁移的效率。另外,在内存数据迁移过程中,待迁移内存数据以存储块为单位进行数据分片传输,相比于将每一内存数据逐一传输的方式,有利于节省数据传输的时间,进一步提高内存数据迁移效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中的内存数据迁移方法的一流程图。
图2是图1中步骤S13的一具体流程图。
图3是本发明实施例2中的内存数据迁移方法的一流程图。
图4是图3中步骤S23的一具体流程图。
图5是图3中步骤S22的一具体流程图。
图6是本发明实施例3中内存数据迁移方法的一流程图。
图7是本发明实施例4中内存数据迁移装置的一示意图。
图8是本发明实施例5中内存数据迁移装置的一示意图。
图9是本发明实施例7中终端设备的一示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细叙述体现本发明特征和优点的具体实施方式。
实施例1
图1示出本实施例中的内存数据迁移方法的流程图。该内存数据迁移方法应用在内存数据迁移系统中,该内存数据迁移系统包括主机服务器和备机服务器。该内存数据迁移系统可将主机服务器中的内存数据迁移到备机服务器上,以使主机服务器宕机或其他故障导致其处于非正常工作状态时,可在备机服务器上恢复主机服务器的内存数据,以保障数据安全。其中,主机服务器是与客户端通过网络相连,以实现信息交互的服务器。备机服务器与主机服务器通过网络相连,以备份主机服务器的内存数据的服务器。该内存数据迁移方法包括主机服务器执行的如下步骤:
S11:生成原始内存数据,将原始内存数据存储在存储块中,存储块与存储时间标识相关联。
其中,原始内存数据是主机服务器与客户端进行信息交互过程中形成的内存数据。存储块是按预设分块原则对主机服务器的内存进行划分所形成的内存块。存储时间标识是指将原始内存数据存储在存储块上的时间标识。本实施例中,按预设分块原则将主机服务器的内存划分成若干个容量大小相等的存储块,每一存储块具有唯一的块标识;在将原始内存数据存储在存储块时,使块标识与存储时间标识相关联,以便基于存储时间标识查找对块标识对应的存储块。如主机服务器的内存大小为10M,可将该内存划分成10个容量大小相等的存储块,则每一存储块的大小为1M。
进一步地,每一存储块依据单位区间大小平均划分为若干个数据块。该单位区间大小是根据数据真实大小划分的区间大小。在对存储块进行数据块划分时,可基于存储块大小和对应的单位区间大小,确定每一数据块的大小。如1M的存储块中,其单位区间大小为1K,则该存储块对应划分为1024个大小为1K的数据块;1M的存储块中,其单位区间大小为2K,则该存储块对应划分为512个大小为2K的数据块;相应地,1M的存储块中,其单位区间为1M,则该存储块对应1个大小为1M的数据块。在Redis系统中,存储块中的每个数据块均可存储Key值和Value值。
进一步地,存储块中每个数据块有存储上限,该存储上限是指该数据块对应的数据的容量最大值。即存储到该数据块中的原始内存数据的大小不能超过其对应的存储上限。因此,步骤S11中,主机服务器生成原始内存数据,依据原始内存数据的大小确定可存储该原始内存数据的数据块,以将原始内存数据存储在该数据块中。如原始内存数据为1038byte的数据,则该原始内存数据只能存储在存储上限为2K或大于2K的数据块中,而不能存储在存储上限为1K的数据块,以避免对原始内存数据进行分割,即避免原始内存数据分别存储在两个数据块中,其存储时间标识不一致,在后续内存数据迁移过程中,可能导致部分数据丢失。
本实施例中,每一块标识对应的存储块可依单位区间大小区分为若干个数据块,而每一数据块对应一数据块ID,该数据块ID与块标识关联。如块标识为A01的存储块依单位区间大小均分为多个数据块,则每一数据块的数据块ID可用A0101、A0102、A0103等来表示,以根据每一数据块ID确定其对应的块ID,以确定存储块和数据块的对应关系。进一步地,数据块ID与存储在数据块中的原始内存数据的存储时间标识相关联。具体地,即主机服务器依据原始内存数据的大小和每一存储块中数据块对应的存储上限,确定用于存储该原始内存数据的存储块,再依时间顺序将原始内存数据存储在数据块中,记录该原始内存数据对应的存储时间标识,并将该存储时间标识与数据块ID关联存储。
主机服务器在将原始内存数据存储在存储块中任一数据块的过程中,使得该数据块携带一存储时间标识,只要该数据块中存储的原始内存数据有更新,其对应的存储时间标识会同步更新,以便基于存储时间标识确定存储块中存储的原始内存数据的存入时间,以方便后续基于该存储时间标识进行内存数据迁移处理,达到数据备份的目的。
进一步地,存储块中每一数据块存储的原始内存数据以链表形式存储,每个数据块设有一过期时间,并将过期时间较短或空闲的数据块排在链表前端,以便内存数据迁移过程中,优先迁移链表前端的数据块中的原始内存数据。该过期时间与存储时间标识相关联。
本实施例中,每一数据块中的原始内存数据在数据块中存储的时间超过过期时间或者被新的原始内存数据覆盖,则主机后台通过预设线程定期回收并清除过期或被覆盖的原始内存数据,以释放其所占用的存储空间,并将过期或被覆盖的原始内存数据同步到备机服务器中,以使主机服务器和备机服务器的存储块/数据块的内容保持一致。
S12:获取备机服务器发送的数据备份指令,数据备份指令与一同步时间标识相关联。
其中,数据备份指令是用于触发主机服务器执行内存数据迁移的指令。同步时间标识是指备机服务器中最后一个完成内存数据备份的原始内存数据对应的存储时间标识。
本实施例中,备机服务器中设有一定时器,使得备机服务器每隔预设时间产生一数据备份指令,该数据备份指令包括同步时间标识,并将该数据备份指令发送给主机服务器,使主机服务器执行内存数据迁移的操作。定时器设置在备机服务器中而不是设置在主机服务器中,可避免主机服务器中运行的进程或线程过多而影响效率,有利于保证主机服务器的功能行使,提高内存数据迁移的效率。
S13:基于数据备份指令,获取待迁移内存数据,待迁移内存数据包括至少一个存储块中的原始内存数据,存储块的存储时间标识在同步时间标识以后。
其中,主机服务器接收到备机服务器发送的数据备份指令后,获取数据备份指令中对应的同步时间标识;再查找存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据确定为待迁移内存数据。本实施例中,主机服务器将数据备份指令中的同步时间标识作为基准点,存储时间标识在同步时间标识以前(包括同步时间标识)的存储块对应的原始内存数据已迁移到备机服务器;存储时间标识在同步时间标识以后(不包括同步时间标识)的存储块对应的原始内存数据未迁移到备机服务器,因此,将存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据作为待迁移内存数据。待迁移内存数据的确定过程,直接基于原始内存数据的存储时间标识确定待迁移内存数据,无需记录日志,也无需生成快照数据,也可避免备机服务器需读取快照数据的操作,有利于提高内存数据迁移效率。
在一具体实施方式中,如图2所示,步骤S13具体包括如下步骤:
S131:基于数据备份指令,获取应答列表,应答列表包括同步时间标识以后所有的存储时间标识。
其中,应答列表是同步时间标识以后所有的存储时间标识所形成的列表,即应答列表是由待迁移时间标识形成的列表。主机服务器在接收到备机服务器发送的数据备份指令后,获取数据备份指令中的同步时间标识;再在主机服务器的内存中查找同步时间标识以后所有的存储时间标识(即获取待迁移时间标识),基于该待迁移时间标识形成应答列表。
S132:将应答列表发送给备机服务器。
具体地,主机服务器先将获取到的应答列表发送给备机服务器,而非基于数据备份指令直接获取应答列表对应的所有原始内存数据直接发送给备机服务器,其原因在于,主机服务器中用于传输数据的网络传输缓冲区有大小限制,可能无法一次将所有原始内存数据形成的待迁移内存数据全部发送给备机服务器,使其直接发送可能导致待迁移内存数据中部分原始内存数据丢失;因此,主机服务器先将应答列表发送给备机服务器,该应答列表通常不超过网络传输缓冲区的大小限制,以使备机服务器基于应答列表获取主机服务器需迁移哪些原始内存数据对应的存储时间标识。
S133:接收备机服务器发送的数据迁移指令,数据迁移指令包括应答列表中的一存储时间标识。
其中,数据迁移指令是备机服务器基于应答列表中每一存储时间标识形成的指令,数据迁移指令中的存储时间标识是在同步时间标识以后的存储时间标识。备机服务器接收到的应答列表包括同步时间标识以后所有的存储时间标识,在备机服务器基于应答列表生成数据迁移指令时,使应答列表中每一存储时间标识均对应一数据迁移指令,将该数据迁移指令发送给主机服务器,以使主机服务器将与其存储时间标识相对应的原始内存数据迁移到备机服务器中。
S134:基于数据迁移指令,获取目标内存数据,目标内存数据包括数据迁移指令对应的存储块中的原始内存数据。其中,待迁移内存数据包括至少一个目标内存数据。
具体地,主机服务器将数据迁移指令中的存储时间标识对应的原始内存数据作为目标内存数据,并将目标内存数据发送给备机服务器,以完成应答列表中每一存储时间标识对应的内存数据迁移;基于应答列表中每一存储时间标识,重复执行步骤S133和S134,获取所有目标内存数据,并将目标内存数据发送给备机服务器,以完成待迁移内存数据的迁移。
S14:将待迁移内存数据发送给备机服务器。
即主机服务器将获取到的与数据备份指令相对应的待迁移内存数据通过网络发送给备机服务器。该待迁移内存数据从主机服务器传输到备机服务器的过程中,以存储块为单位进行数据传输,具体是以数据块为单位而不是以原始内存数据为单位进行传输,有利于提高数据迁移效率,节省数据迁移时间。
以Redis系统为例,在Redis系统中,待迁移内存数据以至少一个存储块为基本传输单位,其可以是一个存储时间标识对应的数据块,也可能是多个存储时间标识对应的数据块,每一数据块可以是一批Key/Value的集合。基于待迁移内存数据进行迁移相比于每次同步单个Key/Value,其在内存数据迁移过程,可有效提高内存数据迁移效率,而且,无需保证主机服务器和备机服务器长时间处于通信状态。
在一具体实施方式中,该内存数据迁移方法的步骤S12之前还包括:在ZooKeeper的目录下创建第一临时节点,第一临时节点与备机服务器创建的第二临时节点存储在同一目录下。
其中,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper可协调主机服务器和备机服务器实现内存数据迁移。其中,第一临时节点是主机服务器在ZooKeeper的目录上创建的临时节点,该第一临时节点可体现主机服务器的工作状态。当主机服务器宕机、下线或处于其他非正常工作状态时,则ZooKeeper上的第一临时节点会消失;当主机服务器处于正常工作状态时,则ZooKeeper上的第一临时节点会显示。其中,正常工作状态是指主机服务器可与客户端进行正常信息交互的状态,相应地,非正常工作状态是指主机服务器无法与客户端进行正常信息交互的状态,包括宕机、下线等情况。相应地,第二临时节点是备机服务器在ZooKeeper的目录上创建的临时节点,且第二临时节点与第一临时节点处于同一目录下,以使主机服务器和备机服务器建立存储对应关系,以将主机服务器中的内存数据迁移到备机服务器上。
本实施例中,第一临时节点和第二临时节点均包括目录ID、节点ID和服务器ID。其中,目录ID用于唯一识别ZooKeeper中的目录,若第一临时节点和第二临时节点的目录ID相同,则主机服务器和备机服务器之间建立存储对应关系,可基于该存储对应关系实现内存数据迁移。节点ID用于唯一识别临时节点,节点ID可以依临时节点的创建时间确定,该节点ID可以是节点的生成编号。服务器ID用于唯一识别对应的服务器,该服务器ID可以为服务器的MAC地址。在主机服务器创建第一临时节点时,ZooKeeper给该主机服务器分配一节点ID,使节点ID与目录ID和服务器ID相关联。相应地,备机服务器创建第二临时节点时,ZooKeeper给该备机服务器分配一节点ID,使节点ID与目录ID和服务器ID相关联。
步骤S12具体包括如下步骤:接收第二临时节点对应的备机服务器发送的数据备份指令。
即主机服务器只接收与其建立存储对应关系的备机服务器发送的数据备份指令,并基于该数据备份指令完成内存数据迁移操作,以避免主机服务器中的内存数据迁移到其他备机服务器而导致内存数据泄露等问题,以提高内存数据备份的安全性。
本实施例所提供的内存数据迁移方法中,主机服务器基于数据备份指令中的同步时间标识确定待迁移内存数据,即依据原始内存数据的存储时间标识确定是否需要迁移,此过程无需记录日志,也无需另行生成快照数据文件,有利于节省待迁移内存数据的获取时间,提高内存数据迁移的效率。另外,在内存数据迁移过程中,待迁移内存数据以存储块为单位进行数据分片传输,相比于将每一内存数据逐一传输的方式,有利于节省数据传输的时间,进一步提高内存数据迁移效率。
实施例2
图3示出本实施例中内存数据迁移方法的一流程图。该内存数据迁移方法应用在内存数据迁移系统中,该内存数据迁移系统包括主机服务器和备机服务器。该内存数据迁移系统可将主机服务器中的内存数据迁移到备机服务器上,以使主机服务器宕机或其他故障导致其处于非正常工作状态时,可在备机服务器上恢复主机服务器的内存数据,以保障数据安全。其中,主机服务器是与客户端通过网络相连,以实现信息交互的服务器。备机服务器与主机服务器通过网络相连,以备份主机服务器的内存数据的服务器。如图3所示,该内存数据迁移方法包括备机服务器执行的如下步骤:
S21:生成数据备份指令,数据备份指令与一同步时间标识相关联。
其中,数据备份指令是用于触发主机服务器执行内存数据迁移的指令。同步时间标识是指备机服务器中最后一个完成内存数据备份的原始内存数据对应的存储时间标识。原始内存数据是主机服务器与客户端进行信息交互过程中形成的内存数据。存储时间标识是指将原始内存数据存储在存储块上的时间。
本实施例中,备机服务器中设有一定时器,使得备机服务器每隔预设时间产生一数据备份指令,该数据备份指令包括同步时间标识,并将该数据备份指令发送给主机服务器,使主机服务器执行内存数据迁移的操作。定时器设置在备机服务器中而不是设置在主机服务器中,可避免主机服务器中运行的进程或线程过多而影响效率,有利于保证主机服务器的功能行使,提高内存数据迁移的效率。
S22:将数据备份指令发送给主机服务器。
即备机服务器将定时器触发生成的数据备份指令通过网络发送给主机服务器,以使主机服务器基于该数据备份指令将需要迁移的内存数据发送给备机服务器,以完成内存数据备份存储。
S23:接收主机服务器发送的待迁移内存数据,待迁移内存数据包括至少一个存储块中的原始内存数据,存储块的存储时间标识在同步时间标识以后。
即主机服务器基于接收到的数据备份指令获取待迁移内存数据并将待迁移内存数据发送给备机服务器,以使备机服务器可接收主机服务器发送的待迁移内存数据。其中,存储块是按预设分块原则对主机服务器的内存进行划分所形成的内存块。主机服务器的内存按预设分块原则划分成若干个容量大小相等的存储块,每一存储块具有唯一的块标识;在将原始内存数据存储在存储块时,使块标识与存储时间标识相关联,以便基于存储时间标识查找对块标识对应的存储块。如主机服务器的内存大小为10M,可将该内存划分成10个容量大小相等的存储块,则每一存储块的大小为1M。
本实施例中,每一块标识对应的存储块可依单位区间大小区分为若干个数据块,在对存储块进行数据块划分时,可基于存储块大小和对应的单位区间大小,确定每一数据块的大小。其中,单位区间大小是根据数据真实大小划分的区间大小。每一数据块对应一数据块ID,该数据块ID与块标识关联。如块标识为A01的存储块依单位区间大小均分为多个数据块,则每一数据块的数据块ID可用A0101、A0102、A0103等来表示,以根据每一数据块ID确定其对应的块ID,以确定存储块和数据块的对应关系。进一步地,数据块ID与存储在数据块中的原始内存数据的存储时间标识相关联。具体地,即主机服务器依据原始内存数据的大小和每一存储块中数据块对应的存储上限,确定用于存储该原始内存数据的存储块,再依时间顺序将原始内存数据存储在数据块中,记录该原始内存数据对应的存储时间标识,并将该存储时间标识与数据块ID关联存储。该存储上限是指该数据块对应的数据的容量最大值。
其中,主机服务器接收到备机服务器发送的数据备份指令后,获取数据备份指令中对应的同步时间标识;再查找存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据确定待迁移内存数据。本实施例中,主机服务器将数据备份指令中的同步时间标识作为基准点,存储时间标识在同步时间标识以前(包括同步时间标识)的存储块对应的原始内存数据已迁移到备机服务器;存储时间标识在同步时间标识以后(不包括同步时间标识)的存储块对应的原始内存数据未迁移到备机服务器,因此,将存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据作为待迁移内存数据。待迁移内存数据的确定过程,直接基于原始内存数据的存储时间标识确定待迁移内存数据,无需记录日志,也无需生成快照数据,也可避免备机服务器需读取快照数据的操作,有利于提高内存数据迁移效率。
在一具体实施方式中,如图4所示,步骤S23具体包括如下步骤:
S231:接收主机服务器发送的应答列表,应答列表包括同步时间标识以后所有的存储时间标识。
其中,应答列表是同步时间标识以后所有的存储时间标识所形成的列表即应答列表是由待迁移时间标识形成的列表。主机服务器在接收到备机服务器发送的数据备份指令后,获取同步时间标识;再在主机服务器的内存中查找同步时间标识以后所有的存储时间标识,以形成应答列表,并将应答列表发送给备机服务器,以使备机服务器可接收到主机服务器发送的应答列表。
主机服务器先将获取到的应答列表发送给备机服务器,而非基于数据备份指令直接获取应答列表对应的所有原始内存数据直接发送给备机服务器,其原因在于,主机服务器中用于传输数据的网络传输缓冲区有大小限制,可能无法一次将所有原始内存数据形成的待迁移内存数据全部发送给备机服务器,使其直接发送可能导致部分原始内存数据丢失;因此,主机服务器先将应答列表发送给备机服务器,该应答列表通常不超过网络传输缓冲区的大小限制,以使备机服务器基于应答列表获取主机服务器需迁移哪些原始内存数据对应的存储时间标识。
S232:生成数据迁移指令,数据迁移指令包括应答列表中的一存储时间标识。
其中,数据迁移指令是备机服务器基于应答列表中每一存储时间标识形成的指令,数据迁移指令中的存储时间标识是在同步时间标识以后的存储时间标识。备机服务器接收到的应答列表包括同步时间标识以后所有的存储时间标识,在备机服务器基于应答列表生成数据迁移指令时,使应答列表中每一存储时间标识均对应一数据迁移指令。
S233:将数据迁移指令发送给主机服务器。
即备机服务器将基于应答列表形成的数据迁移指令通过网络送给主机服务器,以使主机服务器将与数据迁移指令中的存储时间标识相对应的原始内存数据迁移到备机服务器中,以完成内存数据迁移。
S234:接收主机服务器发送的目标内存数据,目标内存数据包括数据迁移指令对应的存储块中的原始内存数据。其中,待迁移内存数据包括至少一个目标内存数据。
即备机服务器通过网络接收主机服务器发送的目标内存数据,主机服务器将数据迁移指令中的存储时间标识对应的原始内存数据作为目标内存数据,并将目标内存数据发送给备机服务器,以使备机服务器接收主机服务器发送的目标内存数据。基于应答列表中每一存储时间标识,重复步骤S232-S234,即可接收所有来自主机服务器的目标内存数据,以获取待迁移内存数据。备机服务器接收主机服务器发送的待迁移内存数据,是以存储块为单位进行数据传输,具体是以数据分片为单位而不是以原始内存数据为单位进行传输,有利于提高数据迁移效率,节省数据迁移时间。
具体地,备机服务器接收到应答列表后,在备机服务器的内存中生成迁移任务列表,迁移任务列表中的每一迁移任务与应答列表中的存储时间标识相关联。备机服务器实时判断迁移任务列表中是否存在未完成迁移任务;若存在未完成迁移任务,则依序形成数据迁移指令并发送给主机服务器;备机服务器还接收主机服务器发送的与数据迁移指令相对应的目标内存数据;备机服务器接收到目标内存数据后,将该目标内存数据恢复到备机服务器的内存中,并删除迁移任务列表中相应的未完成迁移任务;重复上述步骤直至迁移任务列表中不存在未完成迁移任务。
在一具体实施方式中,该内存数据迁移方法的步骤S22之前还包括如下步骤:在ZooKeeper的目录下创建第二临时节点,第二临时节点与主机服务器创建的第一临时节点存储在同一目录下。
其中,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper可协调主机服务器和备机服务器实现内存数据迁移。第二临时节点是备机服务器在ZooKeeper上创建的临时节点。具体地,在备机服务器创建第二临时节点之前,主机服务器在ZooKeeper上创建有第一临时节点,其中,第一临时节点和第二临时节点处于同一目录下,以使主机服务器和备机服务器建立存储对应关系,以将主机服务器中的内存数据迁移到备机服务器上。
本实施例中,第一临时节点是主机服务器在ZooKeeper的目录上创建的临时节点,该第一临时节点可体现主机服务器的工作状态。当主机服务器宕机、下线或处于其他非正常工作状态时,则ZooKeeper上的第一临时节点会消失;当主机服务器处于正常工作状态时,则ZooKeeper上的第一临时节点会显示。其中,正常工作状态是指主机服务器可与客户端进行正常信息交互的状态,相应地,非正常工作状态是指主机服务器无法与客户端进行正常信息交互的状态,包括宕机、下线等情况。
具体地,第一临时节点和第二临时节点均包括目录ID、节点ID和服务器ID。其中,目录ID用于唯一识别ZooKeeper中的目录,若第一临时节点和第二临时节点的目录ID相同,则主机服务器和备机服务器之间建立存储对应关系,可基于该存储对应关系实现内存数据迁移。节点ID用于唯一识别临时节点,节点ID可以依临时节点的创建时间确定,该节点ID可以是节点的生成编号。服务器ID用于唯一识别对应的服务器,该服务器ID可以为服务器的MAC地址。在主机服务器创建第一临时节点时,ZooKeeper给该主机服务器分配一节点ID,使节点ID与目录ID和服务器ID相关联。相应地,备机服务器创建第二临时节点时,ZooKeeper给该备机服务器分配一节点ID,使节点ID与目录ID和服务器ID相关联。
在一具体实施方式中,如图5所示,步骤S22中,将数据备份指令发送给主机服务器,具体包括如下步骤:
S221:实时获取第一临时节点的状态。
其中,第一临时节点的状态包括消失和显示两种状态,分别对应于主机服务器的非正常工作状态和正常工作状态。本实施例中,备机服务器实时监控与其对应的第二临时节点在ZooKeeper中同一目录下的第一临时节点的状态,以便了解主机服务器的工作状态。
S222:基于第一临时节点的状态确定主机服务器的工作状态。
其中,主机服务器的工作状态包括正常工作状态和非正常工作状态。其中,正常工作状态是指主机服务器可与客户端进行正常信息交互的状态,相应地,非正常工作状态是指主机服务器无法与客户端进行正常信息交互的状态,包括宕机、下线等情况。具体地,当ZooKeeper上的第一临时节点消失时,说明主机服务器当前处于宕机、下线等非正常工作状态,无法继续与客户端进行正常信息交互。当ZooKeeper上的第一临时节点显示时,说明主机服务器当前处于可与客户端进行正常信息交互的正常工作状态。
S223:若主机服务器的工作状态处于正常工作状态时,则将数据备份指令发送给第一临时节点对应的主机服务器。
具体地,若主机服务器的工作状态为正常工作状态,则说明主机服务器可以与备机服务器进行通信,以完成内存数据迁移操作,因此,备机服务器会将形成的数据备份指令发送给主机服务器,该主机服务器的第一临时节点和备机服务器的第二临时节点在ZooKeeper的同一目录下,以使两者建立存储对应关系,保证迁移的内存数据的安全性。
S224:若主机服务器的工作状态处于非正常工作状态时,则执行抢锁行为,使备机服务器变更为新的主机服务器。
具体地,若主机服务器的工作状态为非正常工作状态,则说明主机服务器当前处于宕机、下线或其他无法与备机服务器进行通信的状态。当备机服务器感知到主机服务器处于非正常工作状态时,会上ZooKeeper执行抢锁行为,以使其中一台备机服务器变更为新的主机服务器,与客户端进行信息交互。
可以理解地,若原有的主机服务器中的内存数据通过N个备机服务器进行备份,即在ZooKeeper的同一目录下创建有一个第一临时节点和N个第二临时节点。在原有的主机服务器处于宕机、下线或其他非正常工作状态时,N个备机服务器都会感知到第一临时节点消失,执行抢锁行为,以使其中一个备机服务器更新为新的主机服务器,此时,N个第二临时节点中的一个会更新为新的第一临时节点,基于新的第一临时节点其余N-1个第二临时节点会形成新的存储对应关系。因此,新的主机服务器对客户端提供服务,以获取新的内存数据,并可将新的主机服务器的内存数据迁移到其他备份服务器,以完成新的内存数据迁移操作。可以理解地,在新的主机服务器对客户端提供服务器后,若原有的主机服务器重新上线时,会成为新的主机服务器的备机服务器。
本实施例中执行抢锁行为的具体过程如下:主机服务器和备机服务器在ZooKeeper上的同一目录下分别创建第一临时节点和第二临时节点,此时,第一临时节点和第二临时节点的目录ID相同,但节点ID不同,该节点ID可随机生成,也可基于预设生成规则生成,使得每一临时节点对应的节点ID不相同。本实施例中,节点ID可以是节点的生成编号,该预设生成规则可以是基于临时节点的创建时间使其生成编号由小而大设置。在主机服务器处于宕机、下线或其他非正常工作状态时,第一临时节点消失,使得多个备机服务器触发执行抢锁行为,在ZooKeeper中基于预设抢锁规则选取其中一个第二临时节点变更为新的第一临时节点,以使该第二临时节点对应的备机服务器变更为新的主机服务器。本实施例中,预设抢锁规则可以是基于节点的生成编号的大小确定。在多个备机服务器执行抢锁行为时,ZooKeeper判断哪台备机服务器对应的第二临时节点的生成编号最小,使其成为新的第一临时节点,使得其他第二临时节点对应的备机服务器向新的第二临时节点对应的备机服务器(即新的主机服务器)申请同步数据,以执行新的内存数据迁移操作。
本实施例所提供的内存数据迁移方法中,备机服务器生成数据备份指令,该数据备份指令包括同步时间标识,以使主机服务器基于该同步时间标识确定待迁移内存数据,即依据原始内存数据的存储时间标识确定是否需要迁移,此过程无需记录日志,也无需另行生成快照数据文件,有利于节省待迁移内存数据的获取时间,提高内存数据迁移的效率。另外,在内存数据迁移过程中,待迁移内存数据以存储块为单位进行数据分片传输,相比于将每一内存数据逐一传输的方式,有利节省数据传输的时间,进一步提高内存数据迁移效率。
实施例3
图6示出本实施例中内存数据迁移方法的一流程图。该内存数据迁移方法应用在内存数据迁移系统中,该内存数据迁移系统包括主机服务器和备机服务器。该内存数据迁移系统可将主机服务器中的内存数据迁移到备机服务器上,以使主机服务器宕机或其他故障导致其处于非正常工作状态时,可在备机服务器上恢复主机服务器的内存数据,以保障数据安全。其中,主机服务器是与客户端通过网络相连,以实现信息交互的服务器。备机服务器与主机服务器通过网络相连,以备份主机服务器的内存数据的服务器。如图6所示,该内存数据迁移方法包括如下步骤:
S31:主机服务器生成原始内存数据,将原始内存数据存储在存储块中,存储块与存储时间标识相关联。
其中,原始内存数据是主机服务器与客户端进行信息交互过程中形成的内存数据。存储块是按预设分块原则对主机服务器的内存进行划分所形成的内存块。存储时间标识是指将原始内存数据存储在存储块上的时间标识。本实施例中,按预设分块原则将主机服务器的内存划分成若干个容量大小相等的存储块,每一存储块具有唯一的块标识;在将原始内存数据存储在存储块时,使块标识与存储时间标识相关联,以便基于存储时间标识查找与块标识对应的存储块。如主机服务器的内存大小为10M,可将该内存划分成10个容量大小相等的存储块,则每一存储块的大小为1M。本实施例中步骤S31的功能与实施例1中步骤S11的功能基本一致,为避免赘述,本实施例不一一详述。
S32:备机服务器生成数据备份指令,并将数据备份指令发送给主机服务器,数据备份指令与一同步时间标识相关联。
其中,数据备份指令是用于触发主机服务器执行内存数据迁移的指令。同步时间标识是指备机服务器中最后一个完成内存数据备份的原始内存数据对应的存储时间标识。即备机服务器将生成的数据备份指令通过网络发送给主机服务器,以使主机服务器基于该数据备份指令将需要迁移的内存数据发送给备机服务器,以完成内存数据备份存储。
本实施例中,备机服务器中设有一定时器,使得备机服务器每隔预设时间产生一数据备份指令,该数据备份指令包括同步时间标识,并将该数据备份指令发送给主机服务器,使主机服务器执行内存数据迁移的操作。定时器设置在备机服务器中而不是设置在主机服务器中,可避免主机服务器中运行的进程或线程过多而影响效率,有利于保证主机服务器的功能行使,提高内存数据迁移的效率。
S33:主机服务器接收数据备份指令,基于数据备份指令,获取待迁移内存数据,并将迁移内存数据发送给备机服务器;待迁移内存数据包括至少一个存储块中的原始内存数据,存储块的存储时间标识在同步时间标识以后。
其中,主机服务器接收到备机服务器发送的数据备份指令后,获取数据备份指令中对应的同步时间标识;再查找存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据确定待迁移内存数据。本实施例中,主机服务器将数据备份指令中的同步时间标识作为基准点,存储时间标识在同步时间标识以前(包括同步时间标识)的存储块对应的原始内存数据已迁移到备机服务器;存储时间标识在同步时间标识以后(不包括同步时间标识)的存储块对应的原始内存数据未迁移到备机服务器,因此,将存储时间标识在同步时间标识以后所有的存储时间标识确定为待迁移时间标识,将待迁移时间标识对应的存储块中的原始内存数据作为待迁移内存数据。待迁移内存数据的确定过程,直接基于原始内存数据的存储时间标识确定待迁移内存数据,无需记录日志,也无需生成快照数据,也可避免备机服务器需读取快照数据的操作,有利于提高内存数据迁移效率。
S34:备机服务器接收待迁移内存数据。
即备机服务器接收主机服务器通过网络发送的待迁移内存数据,并存储在备机服务器的内存中,以完成待迁移内存数据的备份存储操作。
本实施例所提供的内存数据迁移方法中,备机服务器生成数据备份指令并发送给主机服务器,无需在主机服务器中设置相应的进程或线程以生成该数据备份指令,可避免主机服务器中的进程或线程过多而影响效率,有利于保证主机服务器的功能行使,提高内存数据迁移的效率。主机服务器基于数据备份指令中的同步时间标识确定待迁移内存数据,即依据原始内存数据的存储时间标识确定是否需要迁移,此过程无需记录日志,也无需另行生成快照数据文件,有利于节省待迁移内存数据的获取时间,提高内存数据迁移的效率。另外,在内存数据迁移过程中,待迁移内存数据以存储块为单位进行数据分片传输,相比于将每一内存数据逐一传输的方式,有利节省数据传输的时间,进一步提高内存数据迁移效率。
实施例4
对应于实施例1中的内存数据迁移方法,图7示出与实施例1所示的内存数据迁移方法一一对应的内存数据迁移装置。如图7所示,该内存数据迁移装置可以是主机服务器。该内存数据迁移装置包括:原始数据存储模块110、备份指令模块120、迁移数据获取模块130、内存数据发送模块140和第一关联存储模块150。其中,原始数据存储模块110、备份指令模块120、迁移数据获取模块130、内存数据发送模块140和第一关联存储模块150的实现功能与实施例1中对应的步聚一一对应,为避免赘述,本实施例不一一详述。
原始数据存储模块110,用于生成原始内存数据,将原始内存数据存储在存储块中,存储块与存储时间标识相关联。
备份指令获取模块120,用于获取备机服务器发送的数据备份指令,数据备份指令与一同步时间标识相关联。
迁移数据获取模块130,用于基于数据备份指令,获取待迁移内存数据,待迁移内存数据包括至少一个存储块中的原始内存数据,存储块的存储时间标识在同步时间标识以后。
内存数据发送模块140,用于将待迁移内存数据发送给备机服务器。
优选地,迁移数据获取模块130具体包括应答列表获取单元131、应答列表发送单元132、迁移指令接收单元133和目标数据获取单元134。
应答列表获取单元131,用于基于数据备份指令,获取应答列表,应答列表包括同步时间标识以后所有的存储时间标识。
应答列表发送单元132,用于将应答列表发送给备机服务器。
迁移指令接收单元133,用于接收备机服务器发送的数据迁移指令,数据迁移指令包括应答列表中的一存储时间标识。
目标数据获取单元134,用于基于数据迁移指令,获取目标内存数据,目标内存数据包括数据迁移指令对应的存储块中的原始内存数据。
其中,待迁移内存数据包括至少一个目标内存数据。
优选地,第一关联存储模块150,用于在ZooKeeper的目录下创建第一临时节点,第一临时节点与备机服务器创建的第二临时节点存储在同一目录下。
具体地,备份指令获取模块120,用于接收第二临时节点对应的备机服务器发送的数据备份指令。
实施例5
对应于实施例2中的内存数据迁移方法,图8示出与实施例2所示的内存数据迁移方法一一对应的内存数据迁移装置。如图8所示,该内存数据迁移装置可以是备机服务器。该内存数据迁移装置包括备份指令生成模块210、备份指令发送模块220、内存数据接收模块230和第二关联存储模块240。其中,备份指令生成模块210、备份指令发送模块220、内存数据接收模块230和第二关联存储模块240的实现功能与实施例2中对应的步聚一一对应,为避免赘述,本实施例不一一详述。
备份指令生成模块210,用于生成数据备份指令,数据备份指令与一同步时间标识相关联。
备份指令发送模块220,用于将数据备份指令发送给主机服务器。
内存数据接收模块230,用于接收主机服务器发送的待迁移内存数据,待迁移内存数据包括至少一个存储块中的原始内存数据,存储块的存储时间标识在同步时间标识以后。
优选地,内存数据接收模块230具体包括应答列表接收单元231、数据指令生成单元232、数据指令发送单元233和目标数据接收单元234。
应答列表接收单元231,用于接收主机服务器发送的应答列表,应答列表包括同步时间标识以后所有的存储时间标识。
数据指令生成单元232,用于生成数据迁移指令,数据迁移指令包括应答列表中的一存储时间标识。
数据指令发送单元233,用于将数据迁移指令发送给主机服务器。
目标数据接收单元234,用于接收主机服务器发送的目标内存数据,目标内存数据包括数据迁移指令对应的存储块中的原始内存数据。
其中,待迁移内存数据包括至少一个目标内存数据。
优选地,第二关联存储模块240,用于在ZooKeeper的目录下创建第二临时节点,第二临时节点与主机服务器创建的第一临时节点存储在同一目录下。
优选地,备份指令发送模块220包括实时节点获取单元221、工作状态确定单元222、第一状态处理单元223和第二状态处理单元224。
实时节点获取单元221,用于实时获取第一临时节点的状态。
工作状态确定单元222,用于基于第一临时节点的状态确定主机服务器的工作状态。
第一状态处理单元223,用于在主机服务器工作状态处于正常工作状态时,则将数据备份指令发送给第一临时节点对应的主机服务器。
第二状态处理单元224,用于在主机服务器工作状态处于非正常工作状态时,则执行抢锁行为,使备机服务器变更为新的主机服务器。
实施例6
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1-3中的内存数据迁移方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例4或5中内存数据迁移装置中各模块/单元的功能,为避免重复,这里不再赘述。
实施例7
图9是本发明一实施例提供的终端设备的示意图。如图9所示,该实施例的终端设备90包括:处理器91、存储器92以及存储在存储器92中并可在处理器91上运行的计算机程序93。处理器91执行计算机程序93时实现上述实施例1-3中的内存数据迁移方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器91执行时实现实施例4或5中内存数据迁移装置中各模块/单元的功能,为避免重复,此处不一一赘述。
示例性的,计算机程序93可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器92中,并由处理器91执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序93在终端设备90中的执行过程。例如,计算机程序93可以被分割成实施例4中的原始数据存储模块110、备份指令模块120、迁移数据获取模块130、内存数据发送模块140和第一关联存储模块150。或者计算机程序93可以被分割成实施例5中的备份指令生成模块210、备份指令发送模块220、内存数据接收模块230和第二关联存储模块240。为避免重复,在此不一一赘述。
终端设备90可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器91、存储器92。本领域技术人员可以理解,图9仅仅是终端设备90的示例,并不构成对终端设备90的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器91可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器92可以是终端设备90的内部存储单元,例如终端设备90的硬盘或内存。存储器92也可以是终端设备90的外部存储设备,例如终端设备90上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器92还可以既包括终端设备90的内部存储单元也包括外部存储设备。存储器92用于存储计算机程序以及终端设备所需的其他程序和数据。存储器92还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内存数据迁移方法,其特征在于,包括主机服务器执行的如下步骤:
生成原始内存数据,将所述原始内存数据存储在存储块中,所述存储块与存储时间标识相关联,每一所述存储块依据单元区间大小平均划分为若干个数据块,每一所述数据块中存储的原始内存数据的大小不超过所述数据块的存储上限;所述单元区间大小是根据数据真实大小划分的区间大小,所述存储上限是指该数据块对应的数据的容量最大值;
获取备机服务器发送的数据备份指令,所述数据备份指令与一同步时间标识相关联;
基于所述数据备份指令,获取待迁移内存数据,所述待迁移内存数据包括至少一个所述存储块中的原始内存数据,所述存储块的存储时间标识在所述同步时间标识以后;
将所述待迁移内存数据发送给所述备机服务器,所述待迁移内存数据是所述数据块为单位进行数据传输。
2.根据权利要求1所述的内存数据迁移方法,其特征在于,所述基于所述数据备份指令,获取待迁移内存数据,包括:
基于所述数据备份指令,获取应答列表,所述应答列表包括同步时间标识以后所有的存储时间标识;
将所述应答列表发送给所述备机服务器;
接收所述备机服务器发送的数据迁移指令,所述数据迁移指令包括所述应答列表中的一存储时间标识;
基于所述数据迁移指令,获取目标内存数据,所述目标内存数据包括所述数据迁移指令对应的存储块中的原始内存数据;
其中,所述待迁移内存数据包括至少一个所述目标内存数据。
3.根据权利要求1所述的内存数据迁移方法,其特征在于,所述获取备机服务器发送的数据备份指令,之前还包括:
在ZooKeeper的目录下创建第一临时节点,所述第一临时节点与所述备机服务器创建的第二临时节点存储在同一所述目录下;
所述获取备机服务器发送的数据备份指令,包括:
接收所述第二临时节点对应的所述备机服务器发送的数据备份指令。
4.一种内存数据迁移方法,其特征在于,包括备机服务器执行的如下步骤:
生成数据备份指令,所述数据备份指令与一同步时间标识相关联;
将所述数据备份指令发送给主机服务器,所述主机服务器包括用于存储原始内存数据的存储块,每一所述存储块依据单元区间大小平均划分为若干个数据块,每一所述数据块中存储的原始内存数据的大小不超过所述数据块的存储上限;所述单元区间大小是根据数据真实大小划分的区间大小,所述存储上限是指该数据块对应的数据的容量最大值;
接收所述主机服务器发送的待迁移内存数据,所述待迁移内存数据包括至少一个所述存储块中的原始内存数据,所述存储块的存储时间标识在所述同步时间标识以后;所述待迁移内存数据是所述数据块为单位进行数据传输。
5.根据权利要求4所述的内存数据迁移方法,其特征在于,接收所述主机服务器发送的待迁移内存数据,包括:
接收主机服务器发送的应答列表,所述应答列表包括同步时间标识以后所有的存储时间标识;
生成数据迁移指令,所述数据迁移指令包括所述应答列表中的一存储时间标识;
将所述数据迁移指令发送给所述主机服务器;
接收所述主机服务器发送的目标内存数据,所述目标内存数据包括所述数据迁移指令对应的存储块中的原始内存数据;
其中,所述待迁移内存数据包括至少一个所述目标内存数据。
6.根据权利要求4所示的内存数据迁移方法,其特征在于,所述将所述数据备份指令发送给主机服务器,之前还包括:
在ZooKeeper的目录下创建第二临时节点,所述第二临时节点与所述主机服务器创建的第一临时节点存储在同一所述目录下;
所述将所述数据备份指令发送给主机服务器,包括:
实时获取所述第一临时节点的状态;
基于所述第一临时节点的状态确定所述主机服务器的工作状态;
若所述工作状态处于正常工作状态,则将所述数据备份指令发送给所述第一临时节点对应的所述主机服务器;
若所述工作状态处于非正常工作状态,则执行抢锁行为,使所述备机服务器变更为新的主机服务器。
7.一种内存数据迁移装置,其特征在于,包括:
原始数据存储模块,用于生成原始内存数据,将所述原始内存数据存储在存储块中,所述存储块与存储时间标识相关联,每一所述存储块依据单元区间大小平均划分为若干个数据块,每一所述数据块中存储的原始内存数据的大小不超过所述数据块的存储上限;所述单元区间大小是根据数据真实大小划分的区间大小,所述存储上限是指该数据块对应的数据的容量最大值;
备份指令获取模块,用于获取备机服务器发送的数据备份指令,所述数据备份指令与一同步时间标识相关联;
迁移数据获取模块,用于基于所述数据备份指令,获取待迁移内存数据,所述待迁移内存数据包括所述同步时间标识以后所有的存储时间标识对应的存储块中的原始内存数据;
内存数据发送模块,用于将所述待迁移内存数据发送给所述备机服务器,所述待迁移内存数据是所述数据块为单位进行数据传输。
8.一种内存数据迁移装置,其特征在于,包括:
备份指令生成模块,用于生成数据备份指令,所述数据备份指令与一同步时间标识相关联;
备份指令发送模块,用于将所述数据备份指令发送给主机服务器,所述主机服务器包括用于存储原始内存数据的存储块,每一所述存储块依据单元区间大小平均划分为若干个数据块,每一所述数据块中存储的原始内存数据的大小不超过所述数据块的存储上限;所述单元区间大小是根据数据真实大小划分的区间大小,所述存储上限是指该数据块对应的数据的容量最大值;
内存数据接收模块,用于接收所述主机服务器发送的待迁移内存数据,所述待迁移内存数据包括所述同步时间标识以后所有的存储时间标识对应的存储块中的原始内存数据;所述待迁移内存数据是所述数据块为单位进行数据传输。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述内存数据迁移方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述内存数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710677093.5A CN107832169B (zh) | 2017-08-09 | 2017-08-09 | 内存数据迁移方法、装置、终端设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710677093.5A CN107832169B (zh) | 2017-08-09 | 2017-08-09 | 内存数据迁移方法、装置、终端设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832169A CN107832169A (zh) | 2018-03-23 |
CN107832169B true CN107832169B (zh) | 2020-12-18 |
Family
ID=61643065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710677093.5A Active CN107832169B (zh) | 2017-08-09 | 2017-08-09 | 内存数据迁移方法、装置、终端设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832169B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019372B (zh) * | 2018-08-21 | 2023-04-11 | 平安科技(深圳)有限公司 | 数据监控方法、装置、服务器及存储介质 |
CN112306377B (zh) * | 2019-08-01 | 2024-05-17 | 兆易创新科技集团股份有限公司 | 数据恢复方法、数据恢复装置、电子设备及存储介质 |
CN111274176B (zh) * | 2020-01-15 | 2022-04-22 | 联想(北京)有限公司 | 一种信息处理方法、电子设备、系统及存储介质 |
CN113220230B (zh) * | 2021-05-11 | 2023-07-25 | 北京百度网讯科技有限公司 | 数据导出方法及其装置、电子设备以及存储介质 |
CN113791736B (zh) * | 2021-09-15 | 2024-10-18 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
CN116567001B (zh) * | 2023-05-16 | 2023-12-29 | 上海凯翔信息科技有限公司 | 一种基于云端nas的数据迁移系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188110A (zh) * | 2013-03-29 | 2013-07-03 | 汉柏科技有限公司 | 基于zookeeper的云平台上服务的热备份方法 |
CN103744751A (zh) * | 2014-02-08 | 2014-04-23 | 安徽瀚科信息科技有限公司 | 存储设备配置信息连续优化备份系统及其使用方法 |
CN105243109A (zh) * | 2015-09-25 | 2016-01-13 | 杭州华为数字技术有限公司 | 数据备份的方法和数据处理系统 |
CN105607968A (zh) * | 2015-12-17 | 2016-05-25 | 浙江大华技术股份有限公司 | 一种增量备份方法及设备 |
-
2017
- 2017-08-09 CN CN201710677093.5A patent/CN107832169B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188110A (zh) * | 2013-03-29 | 2013-07-03 | 汉柏科技有限公司 | 基于zookeeper的云平台上服务的热备份方法 |
CN103744751A (zh) * | 2014-02-08 | 2014-04-23 | 安徽瀚科信息科技有限公司 | 存储设备配置信息连续优化备份系统及其使用方法 |
CN105243109A (zh) * | 2015-09-25 | 2016-01-13 | 杭州华为数字技术有限公司 | 数据备份的方法和数据处理系统 |
CN105607968A (zh) * | 2015-12-17 | 2016-05-25 | 浙江大华技术股份有限公司 | 一种增量备份方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107832169A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832169B (zh) | 内存数据迁移方法、装置、终端设备和存储介质 | |
TWI751402B (zh) | 一種資料同步方法、分散式系統、電腦可讀取儲取媒體、電腦設備及分散式設備 | |
CN106331098B (zh) | 一种服务器集群系统 | |
CN112000737A (zh) | 基于多云管理的数据同步方法、系统、终端及存储介质 | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN109189749B (zh) | 文件同步方法及终端设备 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN102946411A (zh) | 网络同步系统 | |
CN113806301B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN111984601A (zh) | 日志文件删除方法、装置、电子设备及存储介质 | |
CN107798039A (zh) | 一种数据同步方法和装置 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN113190620B (zh) | Redis集群之间数据的同步方法、装置、设备及存储介质 | |
CN109710502B (zh) | 日志传输方法、装置及存储介质 | |
CN111078463B (zh) | 数据备份的方法、装置和系统 | |
CN105471955A (zh) | 分布式文件系统的写方法、客户端设备及分布式文件系统 | |
CN111309686B (zh) | 一种目录配额一致性控制方法、装置、设备及介质 | |
CN105022833A (zh) | 一种数据处理的方法、节点及监控系统 | |
CN112115495A (zh) | 可离线云端数据存储方法、系统、计算机设备及存储介质 | |
CN116701352A (zh) | 一种数据库数据迁移方法及系统 | |
CN113268395B (zh) | 业务数据的处理方法、处理装置及终端 | |
CN114138786A (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 |