一种数据处理方法及装置与流程

文档序号:23090043发布日期:2020-11-27 12:41阅读:128来源:国知局
一种数据处理方法及装置与流程

本申请涉及数据存储技术领域,特别涉及一种数据处理方法及装置。



背景技术:

随着互联网时代的进一步发展,计算机中需要存储的有效数据也成倍地增长。随着数据的基数增长使其存储和传输将会变得极其缓慢,存储和传输将成为负担。目前,通常采用ssd加速存储的方式进行数据处理,ssd加速存储通常有两种方式,ssdwriteback策略和ssdwritethrough策略,其中,ssdwriteback策略可以对读写加速,而ssdwritethrough策略只能对读加速。

目前,分布式存储系统中,为了提高虚拟磁盘的性能,通常采用ssdwriteback加速策略对读写加速。然而,为了保障可靠性,防止ssd损坏引发数据不完整,采用网络raid配置drbd同步复制卷对ssdcache作副本。

那么,当源主机中任一虚拟机(目标虚拟机)需要迁移至目的主机时,首先,需要在源主机上暂停目标虚拟机,然后,将目标虚拟机对应的ssd中缓存数据全部刷盘至后端存储中,最后,在目的主机上创建目标虚拟机,完成目标虚拟机的迁移。然而,当目标虚拟机对应的缓存数据较大和/或后端存储性能较低时,刷盘时间会很长,影响目标虚拟机迁移时间,从而影响业务恢复时间。



技术实现要素:

本申请提供了一种数据处理方法及装置,用以解决现有技术中存在的虚拟机迁移时间长,从而导致业务恢复时间长的问题。

第一方面,本申请提供了一种数据处理方法,应用于分布式存储系统,所述分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,所述方法包括:

接收目标虚拟机迁移指令;

基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;

基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;

在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。

可选地,所述各数据条目为所述目标虚拟机对应的ssd缓存区中的写数据条目。

可选地,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;

所述基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机的步骤包括:

基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:

向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三ssd缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;

接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。

可选地,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;

基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储的步骤包括:

向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;

接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。

可选地,所述方法还包括:

接收客户端发送的io指令;

若确定所述第一ssd缓存区中存在与所述io指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三ssd缓存区中读取/写入该写数据条目对应的数据;

若确定所述第一ssd缓存区中存在与所述io指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一ssd缓存区中读取/写入该写数据条目对应的数据;

若确定所述第一ssd缓存区中不存在与所述io指令匹配的写数据条目,则将所述io指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。

第二方面,本申请提供了一种数据处理装置,应用于分布式存储系统,所述分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,所述装置包括:

接收单元,用于接收目标虚拟机迁移指令;

同步单元,用于基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;

存储单元,用于基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;

确定单元,用于在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。

可选地,所述各数据条目为所述目标虚拟机对应的ssd缓存区中的写数据条目。

可选地,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;

所述基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机时,所述同步单元具体用于:

基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:

向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三ssd缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;

接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。

可选地,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;

基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储时,所述存储单元具体用于:

向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;

接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。

可选地,所述装置还包括处理单元,所述处理单元具体用于:

接收客户端发送的io指令;

若确定所述第一ssd缓存区中存在与所述io指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三ssd缓存区中读取/写入该写数据条目对应的数据;

若确定所述第一ssd缓存区中存在与所述io指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一ssd缓存区中读取/写入该写数据条目对应的数据;

若确定所述第一ssd缓存区中不存在与所述io指令匹配的写数据条目,则将所述io指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。

第三方面,本申请实施例提供一种数据处理装置,该数据处理装置包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。

综上可知,本申请实施例提供的数据处理方法,应用于分布式存储系统,所述分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,所述方法包括:接收目标虚拟机迁移指令;基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。

采用本申请实施例提供的数据处理方法,在进行虚拟机迁移的过程中,采用双向处理的方式,将ssd缓存的部分数据条目对应的数据同步至目的主机的同时,将ssd缓存的另一部分数据条目对应的数据下盘至后端存储。这样,降低了虚拟机迁移所需的时间,且在虚拟机迁移过程中,无需关闭源主机上的虚拟机,仍能够为客户提供业务服务。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1为本申请实施例提供的一种数据处理方法的详细流程图;

图2为本申请实施例提供的一种分布式存储系统的结构示意图;

图3为本申请实施例提供的一种数据处理装置的结构示意图;

图4为本申请实施例提供的另一种数据处理装置的结构示意图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

示例性的,参阅图1所示,本申请实施例提供的一种数据处理方法的详细流程图,该方法应用于分布式存储系统,该分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,该方法包括以下步骤:

步骤100:接收目标虚拟机迁移指令。

实际应用中,系统中各主机上安装部署有为用户提供业务服务的虚拟机,那么,在系统运行过程中,就可能存在在主机间执行虚拟机迁移的操作,例如,管理平台选择将主机1(源主机)上的虚拟机1(vm1)迁移至主机3(目的主机)。

本申请实施例中,用户可以基于管理平台向分布式存储系统下发目标虚拟机迁移指令,用以指示分布式存储系统执行目标虚拟机的迁移操作,分布式存储系统在接收到目标虚拟机迁移指令时,执行后续目标虚拟机迁移操作,其中,目标虚拟机可以为分布式存储系统中任一主机上安装部署的任一虚拟机。

步骤110:基于上述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机。

其中,上述第一ssd缓存区为上述目标虚拟机的主本数据的缓存区/副本数据的缓存区,上述第二ssd缓存区为上述目标虚拟机的副本数据的缓存区/主本数据的缓存区。

本申请实施例中,分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,且为了保障可靠性,防止ssd损坏引发数据不完整,采用网络raid配置drbd同步复制卷对ssdcache作副本。那么,针对每一主机上的每一虚拟机,包括其对应的第一ssd缓存分区和第二ssd缓存分区,第一ssd缓存分区和第二ssd缓存分区采用raid配置drbd同步复制卷,其中,一个虚拟机对应的第一ssd缓存分区可以为该一个虚拟机的主本数据的缓存区/副本数据的缓存区,一个虚拟机对应的第二ssd缓存分区可以为该一个虚拟机的副本数据的缓存区/主本数据的缓存区。

也就是说,若虚拟机1对应的第一ssd缓存分区为虚拟机1的主本数据的缓存区,那么,虚拟机1对应的第二ssd缓存分区则为虚拟机1的副本数据的缓存区;若虚拟机1对应的第一ssd缓存分区为虚拟机1的副本数据的缓存区,那么,虚拟机1对应的第二ssd缓存分区则为虚拟机1的主本数据的缓存区。

进一步地,本申请实施例中,ssd缓存分区中缓存的数据包括数据索引(或链表)和数据,其中,数据索引包括多个数据条目(包括读数据条目和写数据条目),数据索引格式如表1所示。

表1

由表1可知,数据索引表包括多个读数据条目和多个写数据条目,且各数据条目包括唯一的索引编号(如,0,1,2,……,n)。本申请实施例中,一种较佳地实现方式为,在虚拟机迁移时,需要执行数据处理(同步和刷盘)的数据条目为写数据条目。

那么,本申请实施例中,以第一ssd缓存区为上述目标虚拟机的主本数据的缓存区,上述第一顺序为从小到大的顺序为例进行说明,那么,在基于上述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机时,一种较佳地实现方式为,基于上述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:

向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得上述目的主机在第三ssd缓存区中缓存上述第一数据,创建上述第一数据对应的写数据条目,并将新创建的上述第一数据对应的写数据条目标记为本地可用,以及向源主机发送上述第一数据同步完成指令;接收上述目的主机发送的第一数据同步完成指令,并将上述第一写数据条目标记为远端可用。

本申请实施例中,第三ssd缓存区是在目的主机上为目标虚拟机分配的用户缓存数据的ssd分区。

由表1可知,数据索引中设置有位置属性列,需要说明的是,本申请实施例中,该位置属性表示对应的数据条目本地是否可用。

也就是说,若一个数据条目的位置属性标识为local,则说明该条目数据本地可用,远端不可用,若一个数据条目的位置属性标识为remote,则说明远端可用,本地不可用,进一步地,若一个数据条目的位置属性标识为无效,则说明该数据条目对应的数据已存储至后端存储,无需再同步至目的主机。

例如,假设目标虚拟机对应的第一ssd缓存区为主本oldcache,第二ssd缓存区为副本oldcache,第三ssd缓存区为主本newcache,那么,主本oldcache同步到主本newcache的过程可以包括:

1、主本oldcache处理模块从索引0递增遍历每一写数据条目;

2、主本oldcache处理模块向newcache处理模块送同步命令synccache,其中,命令字为synccache,命令参数包括:cache地址、cachedata、物理地址;

3、主本newcache处理模块接收同步命令syncdata及同步内容;

4、主本newcache处理模块生成新的写数据条目;

5、主本newcache处理模块将该新的写数据条目添加到cache条目;

6、主本newcache处理模块更新该新的写数据条目的cache属性为local(本地可用);

7、主本newcache处理模块回应主本oldcache处理模块同步完成命令synccachefinish,其中,命令字为synccachefinish,命令参数包括:cache地址,其中,该命令参数是用于唯一标识对应数据条目的标识。

8、主本oldcache处理模块接收同步命令synccachefinish;

9、主本oldcache处理模块根据同步完成命令包含的命令参数,更新主本oldcache中对应的写数据条目的状态为remote(远端可用)。

需要说明的是,组成drbd的主本oldcache和副本oldcache中各数据条目的属性数据会同步复制,本申请实施例中,在此不再赘述。

步骤120:基于上述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储。

本申请实施例中,上述第一顺序和上述第二顺序为反向顺序。下面,以第二ssd缓存区为上述目标虚拟机的副本数据的缓存区,上述第二顺序为从大到小的顺序为例进行说明,基于上述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储时,一种较佳地实现方式为,向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得上述后端存储将上述第二数据存储在本地,并向源主机发送上述第二数据存储完成指令;接收上述后端存储发送的第二数据存储完成指令,并将上述第二写数据条目标记为无效。

也就是说,在确定需要将目标虚拟机从源主机迁移至目的主机时,将目标虚拟机对应的用于缓存主本数据的第一ssd缓存区中的各写数据条目(各数据条目基于索引编号的大小,从上向下进行排列,其中,编号为0的数据条目排列在最上面,编号最大的数据条目排列在最下面),按照从上向下的顺序遍历每一写数据条目,将各写数据条目同步至目的主机上创建的,用于缓存目标虚拟机的数据的第三ssd缓存区中;同时,将目标虚拟机对应的用于缓存副本数据的第二ssd缓存区中的各写数据条目,按照从下向上的顺序遍历每一写数据条目,将各写数据条目下盘至后端存储。

需要说明的是,第一ssd缓存区中任一写数据条目在成功同步至目的主机后,即可将该任一写数据条目标识为远端可用,本地不可用;此时,若接收到针对该任一写数据条目的io请求,则需要从第三ssd缓存区中读取该任一写数据条目对应的数据;第二ssd缓存区中任一写数据条目在成功存储至后端存储后,即可将该任一写数据条目标识为无效,说明无需再针对该任一写数据条目执行同步至目的主机的操作。

例如,假设目标虚拟机对应的第一ssd缓存区为主本oldcache,第二ssd缓存区为副本oldcache,第三ssd缓存区为主本newcache,那么,副本oldcache中脏数据下盘至后端存储的过程可以包括:

1、副本oldcache处理模块从索引尾部倒序遍历每一写数据条目;

2、副本oldcache处理模块向后端存储发送同步命令flushcache,其中,命令字为flushcache,命令内容包括:cache地址、cachedata、物理地址;

3、后端存储处理模块接收同步命令flushcache命令及数据;

4、后端存储处理模块按物理地址,写入cachedata数据;

5、后端存储处理模块回应副本oldcache处理模块当前写数据条目已下盘完成命令;

6、副本oldcache处理模块接收下盘完成命令,其中,该下盘完成命令包含的命令参数是用于唯一标识对应数据条目的标识;

7、副本oldcache处理模块根据下盘完成命令包含的命令参数,更新副本oldcache中对应的写数据条目的状态为无效。

显然,副本oldcache中下盘至后端存储的,属性被标识为无效的写数据条目不会再做同步至主本newcache的操作。

步骤130:在确定上述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭上述目标虚拟机,并在上述目的主机上创建上述目标虚拟机。

本申请实施例中,可以将目标虚拟机对应的ssd缓存区中的部分写数据条目对应的数据同步至目的主机上的ssd缓存区的同时,将另一部分写输入条目对应的数据下盘至后端存储,在确定各写数据条目对应的数据均同步至目的主机/下盘至后端存储时,确定目标虚拟机对应的数据已迁移完成,此时,就可以关闭源主机上的目标虚拟机,再在目的主机上创建目标虚拟机,从而完成目标虚拟机的迁移。

进一步地,本申请实施例中,上述数据处理方法还包括以下步骤:在进行目标虚拟机迁移的过程中,接收到客户端发送的io指令;若确定上述第一ssd缓存区中存在与上述io指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从上述第三ssd缓存区中读取/写入该写数据条目对应的数据;若确定上述第一ssd缓存区中存在与上述io指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从上述第一ssd缓存区中读取/写入该写数据条目对应的数据;若确定上述第一ssd缓存区中不存在与上述io指令匹配的写数据条目,则将上述io指令携带的数据写入上述第三缓存区中,并创建对应的写数据条目。

示例性的,参阅图2所示,为本申请实施例提供的一种分布式存储系统的结构示意图,主机1上创建有vm1(目标虚拟机),ssd1和ssd2组成drbd,ssd1为vm1的主本数据缓存区,ssd2为vm1的副本数据缓存区,此时,需要将vm1迁移至主机3上,那么,就需要双向处理的方式,将ssd1中vm1对应的部分数据条目对应的数据同步至ssd3,并将ssd2中vm1对应的另一部分数据条目对应的数据下盘至后端存储。这样,缩短了总体数据处理时间。

基于与上述方法实施例同样的发明构思,示例性的,参阅图3所示,为本申请实施例提供的一种数据处理装置的结构示意图,该数据处理装置应用于分布式存储系统,该分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,该数据处理装置包括:

接收单元30,用于接收目标虚拟机迁移指令;

同步单元31,用于基于上述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机;

存储单元32,用于基于上述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储,其中,上述第一ssd缓存区为上述目标虚拟机的主本数据的缓存区/副本数据的缓存区,上述第二ssd缓存区为上述目标虚拟机的副本数据的缓存区/主本数据的缓存区,上述第一顺序和上述第二顺序为反向顺序;

确定单元33,用于在确定上述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭上述目标虚拟机,并在上述目的主机上创建上述目标虚拟机。

可选地,上述各数据条目为上述目标虚拟机对应的ssd缓存区中的写数据条目。

可选地,上述第一ssd缓存区为上述目标虚拟机的主本数据的缓存区,上述第一顺序为从小到大的顺序;

上述基于上述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机时,同步单元31具体用于:

基于上述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:

向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得上述目的主机在第三ssd缓存区中缓存上述第一数据,创建上述第一数据对应的写数据条目,并将新创建的上述第一数据对应的写数据条目标记为本地可用,以及向源主机发送上述第一数据同步完成指令;

接收上述目的主机发送的第一数据同步完成指令,并将上述第一写数据条目标记为远端可用。

可选地,上述第二ssd缓存区为上述目标虚拟机的副本数据的缓存区,上述第二顺序为从大到小的顺序;

基于上述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储时,存储单元32具体用于:

向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得上述后端存储将上述第二数据存储在本地,并向源主机发送上述第二数据存储完成指令;

接收上述后端存储发送的第二数据存储完成指令,并将上述第二写数据条目标记为无效。

可选地,上述装置还包括处理单元,上述处理单元具体用于:

接收客户端发送的io指令;

若确定上述第一ssd缓存区中存在与上述io指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从上述第三ssd缓存区中读取/写入该写数据条目对应的数据;

若确定上述第一ssd缓存区中存在与上述io指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从上述第一ssd缓存区中读取/写入该写数据条目对应的数据;

若确定上述第一ssd缓存区中不存在与上述io指令匹配的写数据条目,则将上述io指令携带的数据写入上述第三缓存区中,并创建对应的写数据条目。

以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

综上可知,本申请实施例提供的数据处理方法,应用于分布式存储系统,所述分布式存储系统采用ssd固态硬盘缓存的方式进行读写加速,所述方法包括:接收目标虚拟机迁移指令;基于所述目标虚拟机对应的第一ssd缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;基于所述目标虚拟机对应的第二ssd缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一ssd缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二ssd缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。

采用本申请实施例提供的数据处理方法,在进行虚拟机迁移的过程中,采用双向处理的方式,将ssd缓存的部分数据条目对应的数据同步至目的主机的同时,将ssd缓存的另一部分数据条目对应的数据下盘至后端存储。这样,降低了虚拟机迁移所需的时间,且在虚拟机迁移过程中,无需关闭源主机上的虚拟机,仍能够为客户提供业务服务。

进一步地,本申请实施例提供的数据处理装置,从硬件层面而言,所述数据处理装置的硬件架构示意图可以参见图4所示,所述数据处理装置可以包括:存储器40和处理器41,

存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

可选地,本申请还提供一种分布式通信设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。

可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1