一种数据迁移方法、装置、存储介质以及芯片系统与流程

未命名 07-23 阅读:95 评论:0


1.本技术涉及数据库技术领域,尤其涉及一种数据迁移方法、装置、存储介质以及芯片系统。


背景技术:

2.随着云技术日益完善,跨云的数据迁移需求越来越多,温迁移作为一种重要的数据迁移方法也受到了广泛关注。温迁移通过快照技术将待迁移的磁盘打快照,将快照传输至目的端(本过程无需停机)。源磁盘继续工作产生新数据,然后再次打快照,根据第二次快照和第一次快照的区别确定两次快照之间产生的差异数据,将差异数据传输至目的端即可以实现整体迁移,而停机时间也仅为传输差异数据的时间,温迁移可以有效缩短数据迁移过程中的停机时间。
3.但是,由于两次快照之间产生的差异数据并非连续分布的,随机读写也会消耗较多的设备资源,同时也会消耗掉过多的数据打包资源,因此目前采用温迁移技术进行数据迁移的效率并不高,且会占用较多的设备资源。


技术实现要素:

4.本技术提供一种数据迁移方法、装置、存储介质以及芯片系统。用以提升数据迁移的效率以及节约数据迁移过程中对设备资源的消耗。
5.第一方面,本技术提出一种数据迁移方法,该方法应用于第一存储设备,该方法包括:接收迁移请求;所述迁移请求用于将所述第一存储设备中待迁移数据迁移至第二存储设备;向所述第二存储设备发送在第一快照时刻根据所述第一存储设备中属于待迁移数据的多个数据块生成的快照;获取差异位图;所述差异位图中包括所述第一存储设备中的多个存储地址分别对应的位图数据,所述多个存储地址在所述第一存储设备中连续;当所述位图数据取值为第一值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块不相同;当所述位图数据取值为第二值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块相同;按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据;根据所述至少两个位图数据,按照顺序读取的方式,从所述第一存储设备的第一存储空间读取至少两个数据块,并向所述第二存储设备发送所述至少两个数据块;其中,所述至少两个位图数据包括第一位图数据和第二位图数据,所述第一位图数据为所述至少两个位图数据中第一个取值为所述第一值的位图数据,所述第二位图数据为所述至少两个位图数据中最后一个取值为所述第一值的位图数据;所述第一存储空间的起始地址为所述第一位图数据对应的存储地址,所述第二存储空间的结束地址为所述第二位图数据对应的存储地址。
6.在一些实施例中,所述差异位图是根据第一存储设备中的待迁移数据在第一快照时刻和第二快照时刻的差异生成的。
7.基于上述方案,本技术提出不再逐个读取两个快照时刻之间的差异数据块,而是
根据差异位图从硬盘中读取存储地址连续的至少两个数据块,将至少两个数据块一同打包发往目的端。相较于传统技术中随机读取和逐个打包所消耗的设备资源,本技术中连续读取多个数据块一同打包传输能够有效节约存储设备的设备资源,并且减少了数据迁移过程中的寻道时间。
8.在一些实施例中,所述第二位图数据为所述至少两个位图数据中的最后一个位图数据。
9.在一些实施例中,所述第一位图数据至所述第二位图数据包括的位图数据的数量达到第一阈值。
10.基于上述方案,当最后一个读取的位图数据的取值为第一值,且已经读取的第一位图数据至第二位图数据包括的位图数据的数量达到第一阈值时,可以将至少两个的位图数据分别对应的数据块一同发往目的端存储设备。其中,第一阈值可以是根据两个存储设备之间的网络连接情况以及传输带宽等信息确定的,从而传输数量满足第一阈值的数据块可以适应设备之间的具体传输情况。
11.在一些实施例中,所述至少两个位图数据还包括第三位图数据,所述第三位图数据为所述至少两个位图数据中的最后一个位图数据,所述第三位图数据的取值为第二值。
12.在一些实施例中,所述至少两个位图数据中取值为所述第二值的位图数据的数量达到第二阈值。
13.基于上述方案,当已经读取的位图数据中最后一个位图数据的取值为第二值,且已经连续读取的取值为第二值的位图数据的数量达到第二阈值时,可以不发送连续读取的取值为第二值的位图数据对应的数据块,而是将第一个取值为第一值的位图数据至最后一个取值为第一值的位图数据分别对应的数据块一同发往目的端存储设备。从而避免连续读取多个取值为第二值的位图数据对应的数据块所消耗的资源大于设备随机读取所消耗的资源。
14.在一些实施例中,所述方法还包括:根据从所述差异位图中读取的第四位图数据和第五位图数据,向所述第二存储设备发送从所述第四位图数据对应的存储地址中读取的数据块;所述第四位图数据的取值为所述第一值,所述第五位图数据的取值为第二值,所述第四位图数据至所述第五位图数据中取值为所述第二值的位图数据的数量达到第二阈值。
15.在一些实施例中,所述差异位图存储于所述第一存储设备所属的云平台的控制节点中,所述差异位图包括多个子差异位图,所述多个子差异位图在所述控制节点中的存储地址连续;所述获取差异位图,包括:按照所述多个子差异位图的存储地址的顺序从所述控制节点加载所述多个子差异位图至所述第一存储设备的内存;其中,每次加载所述多个子差异位图中的至少一个子差异位图;所述按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据,包括:按照所述多个存储地址的顺序从所述内存中存储的子差异位图中连续读取至少两个位图数据。
16.在一些实施例中,在向所述第二存储设备发送所述至少两个数据块之后,所述方法还包括:将读取的所述至少两个位图数据删除。
17.在一些实施例中,所述方法还包括:在所述内存中的第一子差异位图包含的位图数据均被删除时,将所述第一子差异位图从所述内存中删除,所述第一子差异位图为多个子差异位图中的任一子差异位图。
18.由于差异位图占据的存储空间较大,因此本技术提出可以从控制节点加载部分的差异位图进行分析,在分析已经加载的部分差异位图之后,可以从内存中删除该部分差异位图并再次从控制节点加载其他部分的差异位图。从而可以节约第一存储设备的内存资源。
19.在一些实施例中,所述方法还包括:在发送所述至少两个数据块失败时,确定所述第一位图数据至所述第二位图数据所属的第一子差异位图;若所述内存中未存储所述第一子差异位图,则从所述控制节点中加载所述第一子差异位图。
20.第二方面,本技术提出一种数据迁移装置,该装置可以为第一存储设备,或者该装置可以应用于第一存储设备,比如可以为第一存储设备中的处理芯片或者处理器等。该装置包括通信单元和处理单元,其中通信单元,用于接收迁移请求;所述迁移请求用于将所述第一存储设备中待迁移数据迁移至第二存储设备;所述通信单元,还用于向所述第二存储设备发送在第一快照时刻根据所述第一存储设备中属于待迁移数据的多个数据块生成的快照;处理单元,用于获取差异位图;所述差异位图中包括所述第一存储设备中的多个存储地址分别对应的位图数据,所述多个存储地址在所述第一存储设备中连续;当所述位图数据取值为第一值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块不相同;当所述位图数据取值为第二值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块相同;所述处理单元,还用于按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据;所述处理单元,还用于根据所述至少两个位图数据,按照顺序读取的方式,从所述第一存储设备的第一存储空间读取至少两个数据块,并通过所述通信单元向所述第二存储设备发送所述至少两个数据块;其中,所述至少两个位图数据包括第一位图数据和第二位图数据,所述第一位图数据为所述至少两个位图数据中第一个取值为所述第一值的位图数据,所述第二位图数据为所述至少两个位图数据中最后一个取值为所述第一值的位图数据;所述第一存储空间的起始地址为所述第一位图数据对应的存储地址,所述第二存储空间的结束地址为所述第二位图数据对应的存储地址。
21.在一些实施例中,所述第二位图数据为所述至少两个位图数据中的最后一个位图数据。
22.在一些实施例中,所述第一位图数据至所述第二位图数据包括的位图数据的数量达到第一阈值。即,所述第一位图数据、所述第二位图数据以及所述第一位图数据和所述第二位图数据之间的位图数据的数量达到了第一阈值。
23.在一些实施例中,所述至少两个位图数据还包括第三位图数据,所述第三位图数据为所述至少两个位图数据中的最后一个位图数据,所述第三位图数据的取值为第二值。
24.在一些实施例中,所述第二位图数据与所述第三位图数据之间的位图数据的数量达到第二阈值。
25.在一些实施例中,所述处理单元,还用于:
26.根据从所述差异位图中读取的第四位图数据和第五位图数据,通过所述通信单元向所述第二存储设备发送从所述第四位图数据对应的存储地址中读取的数据块;所述第四位图数据的取值为所述第一值,所述第五位图数据的取值为第二值,所述第四位图数据至所述第五位图数据中取值为所述第二值的位图数据的数量达到第二阈值。
27.在一些实施例中,所述差异位图存储于所述第一存储设备所属的云平台的控制节点中,所述差异位图包括多个子差异位图,所述多个子差异位图在所述控制节点中的存储地址连续;所述处理单元,还用于:
28.按照所述多个子差异位图的存储地址的顺序从所述控制节点加载所述多个子差异位图至所述第一存储设备的内存;其中,每次加载所述多个子差异位图中的至少一个子差异位图;
29.所述处理单元,具体用于:
30.按照所述多个存储地址的顺序从所述内存中存储的子差异位图中连续读取至少两个位图数据。
31.在一些实施例中,在通过所述通信单元向所述第二存储设备发送所述至少两个数据块之后,所述处理单元,还用于:
32.将读取的所述至少两个位图数据删除。
33.在一些实施例中,所述处理单元,还用于:
34.在所述内存中的第一子差异位图包含的位图数据均被删除时,将所述第一子差异位图从所述内存中删除,所述第一子差异位图为多个子差异位图中的任一子差异位图。
35.在一些实施例中,所述处理单元,还用于:
36.在发送所述至少两个数据块失败时,确定所述第一位图数据至所述第二位图数据所属的第一子差异位图;
37.若所述内存中未存储所述第一子差异位图,则从所述控制节点中加载所述第一子差异位图。
38.第三方面,本技术提出了另一种数据迁移装置,包括处理器和存储器;所述存储器用于存储程序;所述处理器用于执行所述存储器所存储的程序,以使所述装置实现如上第一方面任一可能的设计所述的方法。
39.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码,当所述程序代码在所述计算机上运行时,使得计算机执行上述第一方面任一可能的设计所述的方法。
40.第五方面,本技术实施例提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行上述第一方面任一可能的设计所述的方法。
41.第六方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,该处理器与存储器耦合,用于调用存储器中存储的计算机程序或计算机指令,以使得该处理器执行上述第一方面任一可能的设计所述的方法。
42.第七方面,本技术实施例提供了一种处理器,该处理器用于调用存储器中存储的计算机程序或计算机指令,以使得该处理器执行上述第一方面任一可能的设计所述的方法。
43.本技术实施例在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
44.上述第二方面至第七方面中任一方面中的任一可能设计可以达到的技术效果,可以相应参照上述第一方面中的任一可能设计可以达到的技术效果描述,重复之处不予论述。
附图说明
45.图1为一种差异位图的生成过程示意图;
46.图2a为本技术实施例提供的一种数据迁移场景的架构示意图;
47.图2b为本技术实施例提供的另一种数据迁移场景的架构示意图;
48.图3为本技术实施例提供的一种第一存储设备的结构示意图;
49.图4为一种根据差异位图发送差异数据块的过程示意图;
50.图5为本技术实施例提供的一种数据迁移方法流程示意图;
51.图6为本技术实施例提供的另一种第一存储设备的结构示意图;
52.图7为本技术实施例提供的一种数据重新发送的方法流程示意图;
53.图8为本技术实施例提供的另一种数据迁移方法流程示意图;
54.图9为本技术实施例提供的一种高效数据迁移的效果展示图;
55.图10为本技术实施例提供的一种数据迁移装置的结构示意图;
56.图11为本技术实施例提供的另一种数据迁移装置的结构示意图。
具体实施方式
57.为了便于理解本技术的方案,首先对本技术实施例中涉及的概念和术语进行简单说明。
58.(1)快照(snapshot):关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
59.(2)差异位图:本质上是一个比特图(bitmap),其中包括多个位图数据,每个位图数据的取值为0和1。差异位图用于描述两块磁盘存储的多个数据块的差异,或者用于描述同一磁盘在两个快照时刻存储的多个数据块的差异。比如,对于两个快照的情况,若两个快照时刻在同一存储地址上存储的数据相同,则差异位图中对应位取值为0;反之,若两个快照时刻同一存储地址上存储的数据不同,则差异位图中对应位取值为1。差异位图的大小可以依据云存储平台的场景进行设置。示例性地,根据两次快照生成差异位图的过程可以参见图1。图1中的(a)展示了第一快照时刻磁盘中存储数据块的情况,图1中的(b)展示了第二快照时刻磁盘中存储的数据块的情况,图1中的(c)为根据两次快照生成的差异位图。
60.(3)温迁移:一种通过快照技术在两个存储设备之间进行数据迁移的方法,具体过程为:首先对待迁移的磁盘进行第一次打快照,将第一次快照发往目的端(本过程无需停机,第一次快照用于目的端将第一次快照时刻待迁移磁盘中存储的数据写入到目的端的磁盘中)。在第一次快照时刻之后,待迁移磁盘继续工作产生新数据,然后进行第二次打快照,使用第一次快照和第二次快照生成差异位图,并将差异位图中取值为1的位图数据对应的待迁移磁盘中的数据块发往目的端。可以看出,温迁移的停机时间仅为传输两次快照时刻存在差异的数据块的时间,从而缩短了数据迁移过程中的停机时间。
61.(4)最近最少使用(least recently used,lru)缓存算法:在设备计算过程中,所有的文件操作都需要放在内存中进行,但是由于设备的内存大小有限,因此不能将全部的文件都加载到内存中,所以提出采用lru算法将最近一段时间内经常访问的数据加载到内存中,并确定内存中未经常被访问的数据,将其从内存中删除。
module,简称dimm),即由动态随机存取存储器(dram)组成的模块,还可以是固态硬盘(solid state disk,ssd)。实际应用中,第一存储设备中可配置多个内存32,以及不同类型的内存32。本实施例不对内存32的数量和类型进行限定。此外,可对内存32进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存32中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
65.硬盘34用于提供存储资源,例如存储数据。它可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。网卡33用于与其他应用第一存储设备通信。
66.由于温迁移可以缩短数据迁移过程中的停机时间,因此目前广泛应用于各类数据迁移场景。那么在温迁移技术中如何使用差异位图进行高效的数据迁移是一个值得思考的问题。传统技术中,在通过差异位图进行数据迁移时,第一存储设备在从云平台的控制节点获取差异位图之后,会根据差异位图的指示按照存储顺序逐个读取第一快照时刻和第二快照时刻具有差异的数据块,并逐个将读取的数据块发往第二存储设备。为了便于描述,后续将第一快照时刻和第二快照时刻在同一存储地址存储的不相同的数据块简称为差异数据块,将第一快照时刻和第二快照时刻在同一存储地址存储的相同的数据块简称为非差异数据块。示例性地,参见图4,为一种根据差异位图发送差异数据块的过程示意图。图4中的(a)为根据第一快照时刻和第二快照时刻第一存储设备中存储的数据块生成的差异位图,图4中的(b)为在第二快照时刻第一存储设备中存储的数据块,其中包括差异数据块和非差异数据块。图4中的(c)即为逐个读取的差异数据块。
67.根据图4所示的过程可以看出,在传统技术中,读取差异数据块时采用的是随机读取的方式,也就是对差异数据块逐个寻道、逐个读取以及逐个打包发送。已知在硬盘的读写过程中最消耗时间和资源的步骤就是寻道,因此按照传统技术,若存在10个差异数据块,每个差异数据块的寻道时间为10ms,则需要100ms的寻道时间,这会导致迁移差异数据块的过程耗时较长、效率较低。同时每一个差异数据块打包一次也会消耗过多的数据打包资源。基于此,本技术提出了一种数据迁移方法,提出在根据差异位图迁移差异数据块时,不再逐个读取差异数据块,而是综合考虑随机读取差异数据块所需要的设备资源以及顺序读取非差异数据块所需要的设备资源,确定最优的传输策略。
68.以下结合图2a和图2b所示的场景架构示意图对本技术提出的数据迁移方案进行介绍。参见图5,为本技术实施例提供的一种数据迁移方法流程示意图。示例性地,该方法流程由数据迁移的起始端执行,比如可以由图2a或者图2b所示场景中的第一存储设备执行。可选地,图5所示的方法流程的执行主体也可以为第一存储设备内部的单元、模块或者芯片,比如可以为图3所示的第一存储设备的处理器31。图5的方法流程具体包括:
69.501,接收迁移请求。
70.其中,迁移请求用于将第一存储设备中待迁移数据迁移至第二存储设备。
71.示例性地,待迁移数据可以为第一存储设备的硬盘中的全部数据,也可以为第一存储设备的硬盘中的部分数据,待迁移数据的数量可以由迁移请求进行指示。
72.502,向第二存储设备发送在第一快照时刻根据第一存储设备中属于待迁移数据的多个数据块生成的快照。
73.示例性地,第一存储设备可以将在第一快照时刻根据自身的硬盘中存储的待迁移的数据生成的第一快照发往第二存储设备。第一快照用于第二存储设备将在第一快照时刻
的待迁移数据写入第二存储设备的硬盘中。
74.503,获取差异位图。
75.其中,差异位图用于描述第一存储设备中存储的待迁移数据在第一快照时刻和第二快照时刻的差异。差异位图中包括第一存储设备中多个存储地址分别对应的位图数据,多个存储地址在第一存储设备中连续。也就是说,存储待迁移数据的多个存储地址中的每个存储地址对应差异位图中的一个位图数据,任一个位图数据的取值表征着对应的存储地址中存储的数据块在第一快照时刻和第二快照时刻是否相同。
76.在差异位图中,当某个位图数据取值为第一值时,指示该位图数据对应的存储地址在第一快照时刻和第二快照时刻存储的数据块不相同,即取值为第一值的位图数据对应的数据块为差异数据块。当差异位图中的某个位图数据取值为第二值时,指示该位图数据对应的存储地址在第一快照时刻和第二快照时刻存储的数据块相同,即取值为第二值的位图数据对应的数据块为非差异数据块。
77.示例性地,差异位图可以是第一存储设备所属的云平台的控制节点根据第一快照和第二快照生成的,其中第一快照为在第一快照时刻对第一存储设备中的待迁移数据打快照生成的,第二快照为在第二快照时刻对第一存储设备中的待迁移数据打快照生成的。控制节点可以在两个快照时刻分别对第一存储设备中的待迁移数据进行打快照,得到第一快照和第二快照,并根据第一快照和第二快照之间的差异生成差异位图。从而第一存储设备可以从控制节点获取差异位图。
78.504,根据至少两个位图数据,按照顺序读取的方式从第一存储设备的第一存储空间读取至少两个数据块,并向第二存储设备发送至少两个数据块。
79.其中,至少两个位图数据包括第一位图数据和第二位图数据,第一位图数据为读取的至少两个位图数据中第一个取值为第一值的位图数据,第二位图数据为至少两个位图数据中最后一个取值为第一值的位图数据。第一存储空间的起始地址为第一位图数据对应的存储地址,第一存储空间的结束地址为第二位图数据对应的存储地址。
80.示例性地,第一存储设备可以根据至少两个位图数据,确定需要读取第一位图数据对应的存储地址至第二位图数据对应的存储地址中存储的数据块,从硬盘中读取数据块并发往第二存储设备。
81.基于上述方案,本技术提出不再逐个读取两个快照时刻之间的差异数据块,而是根据差异位图从硬盘中读取存储地址连续的至少两个数据块,将至少两个数据块一同打包发往目的端。相较于传统技术中随机读取和逐个打包所消耗的设备资源,本技术中连续读取多个数据块一同打包传输能够有效节约存储设备的设备资源。
82.在一些实施例中,在根据读取的至少两个位图数据确定需要传输的数据块时,至少两个位图数据中第一个取值为第一值的位图数据为第一位图数据,而至少两个位图数据中的最后一个位图数据可以有不同的取值。比如,一种可能的情况下,读取的至少两个位图数据中最后一个位图数据的取值为第一值,即上述实施例中介绍的第二位图数据为读取的至少两个位图数据中的最后一个位图数据。在这种情况下,第一存储设备可以在读取第二位图数据并确定第二位图数据的取值为第一值时,判断已经读取的第一位图数据至第二位图数据包括的位图数据的数量是否达到第一阈值,如果已经达到第一阈值,则可以将第一位图数据对应的存储地址至第二位图数据对应的存储地址中存储的数据块发往第二存储
设备;如果未达到第一阈值,则可以继续从差异位图中读取位图数据。
83.另外一种可能的情况下,读取的至少两个位图数据中最后一个位图数据的取值为第二值,比如将该最后一个位图数据称为第三位图数据。在这种情况下,第一存储设备可以在读取到第三位图数据并确定第三位图数据的取值为第二值时,判断在第三位图数据之前连续读取的取值为第二值的位图数据的数量是否达到第二阈值,也就是判断第二位图数据和第三位图数据之间的位图数据的数量是否达到第二阈值。如果已经达到了第二阈值,则可以将第一位图数据对应的存储地址至第二位图数据对应的存储地址存储的数据块发往第二存储设备。如果未达到第二阈值,则可以继续从差异位图中读取位图数据。
84.示例性地,上述两种情况中的第一阈值和第二阈值可以是依据读取数据块、传输数据块以及打包数据块等操作所需要消耗的设备资源预先设置的。一方面,在设置第一阈值时,可以根据第一存储设备和第二存储设备之间的网络质量、传输带宽等信息确定传输单个数据包的长度上限,根据该长度上限确定传输的单个数据包中包括的数据块的数量。从而将确定的数据块的数量作为第一阈值。另一方面,在设置第二阈值时,可以对比第一存储设备随机读取一个差异数据块所需的设备资源(为了便于描述,将该设备资源简称为额外消耗),以及第一存储设备连续读取和传输多个非差异数据块所需要的设备资源(为了便于描述,将该设备资源简称为必须消耗),从而确定多个非差异数据块的数量即为第二阈值。比如,若第一存储设备的额外消耗为10*a,一个非差异数据块所需的必须消耗为a,则可以设置第二阈值为10。或者,也可以设置必须消耗小于额外消耗,比如可以设置第二阈值为9。
85.为了更进一步理解本技术提出的根据读取的至少两个位图数据确定需要传输的多个数据块的方案,下面结合具体的实施例对上述两种情况下的传输策略进行介绍。具体可以参见下方步骤一-步骤五:
86.步骤一:第一存储设备按顺序读取差异位图中的位图数据a,当位图数据a的取值为第一值时,继续执行步骤二;当位图数据a的取值为第二值时,继续执行步骤四。
87.步骤二:判断已经读取的第一个取值为第一值的位图数据(以下简称为位图数据b)至位图数据a包括的位图数据的数量是否达到第一阈值。若达到第一阈值,则继续执行步骤三;若未达到第一阈值,则返回执行步骤一。
88.步骤三:将位图数据b对应的存储地址至位图数据a对应的存储地址中存储的多个数据块打包发往第二存储设备。
89.步骤四:确定已经读取的多个位图数据中最后一个取值为第一值的位图数据(以下简称位图数据c),判断位图数据c与位图数据a之间的位图数据的数量是否达到第二阈值。若达到第二阈值,则继续执行步骤五;若未达到第二阈值,则返回执行步骤一。
90.步骤五:将位图数据b对应的存储地址至位图数据c对应的存储地址中存储的多个数据块打包发往第二存储设备。
91.以上介绍了根据差异位图向第二存储设备发送多个数据块的场景。在另一种可能的场景中,第一存储设备还可以从差异位图中读取第四位图数据和第五位图数据,其中第四位图数据的取值为第一值,第五位图数据的取值为第二值,第四位图数据至第五位图数据中取值为第二值的位图数据的数量达到了第二阈值。也就是说,第一存储设备在读取了一个取值为第一值的位图数据(即第四位图数据)之后连续读取了第二阈值个取值为第二
值的位图数据。在这种场景中,第一存储设备可以将第四位图数据对应的存储地址中存储的数据块打包发往第二存储设备。
92.在一些实施例中,第一存储设备在执行上述图5中的步骤503,从控制节点获取差异位图时,由于差异位图所占的存储空间较大,因此为了节约第一存储设备的存储资源,本技术还提出可以从控制节点加载部分的差异位图进行分析,在分析已经加载的部分差异位图之后,可以从内存中删除该部分差异位图并再次从控制节点加载其他部分的差异位图。示例性地,控制节点中存储的差异位图可以包括多个连续存储的子差异位图,每个子差异位图对应一个标记,该标记用于描述子差异位图在控制节点中的存储地址。从而第一存储设备可以从控制节点中加载子差异位图到内存中,其中每次加载的子差异位图的数量可以根据内存空间的大小以及处理器读取子差异位图的速率进行设置。作为一种可选的方式,第一存储设备在加载子差异位图时,可以按照控制节点中多个子差异位图的存储地址的顺序进行加载。比如,第一存储设备可以向控制节点发送所要加载的子差异位图的标记,控制节点可以根据标记指示的存储地址中的子差异位图发送给第一存储设备。第一存储设备可以将控制节点发送的子差异位图存储在内存中。
93.进一步地,第一存储设备在执行上述图5中的步骤504,读取差异位图时,可以获取内存中存储的子差异位图进行读取,并根据读取的位图数据向第二存储设备传输数据块。在一些实施例中,当第一存储设备向第二存储设备传输部分数据块之后,可以将这部分数据块对应的位图数据删除。比如,以上述图5中的步骤504为例,第一存储设备在根据至少两个位图数据向第二存储设备发送了多个数据块之后,第一存储设备可以将至少两个位图数据删除。再进一步地,第一存储设备在确定内存中任一子差异位图包含的位图数据均被删除时,可以将内存中的该任一子差异位图删除。
94.基于上述实施例,本技术还提出了另一种应用场景的架构示意图。参见图6,应用场景中包括第一存储设备和控制节点。第一存储设备中包括差异位图分析模块和差异位图管理模块。其中,差异位图管理模块中包括差异位图获取模块、子差异位图管理模块和内存模块。
95.其中,差异位图获取模块用于按照控制节点中多个子差异位图存储地址的顺序从控制节点中加载子差异位图,并将加载的子差异位图存储在内存模块中。示例性地,差异位图获取模块可以采用lru算法对内存模块中的子差异位图进行管理。可选地,差异位图获取模块还可以称为差异位图源驱动(bitmap source driver)模块,内存模块也可以称为差异位图分片(bitmap slice)模块。
96.子差异位图管理模块用于管理内存模块中存储的子差异位图,比如用于将包含的位图数据均被删除的子差异位图删除,以及通知差异位图获取模块从控制节点中加载子差异位图。示例性地,子差异位图管理模块还可以称为子差异位图字典(chunk dict)。
97.差异位图分析(bitmap analyze)模块用于通过子差异位图管理模块获取子差异位图,并读取获取的子差异位图确定需要传输的数据块。
98.在一些实施例中,当第一存储设备向第二存储设备发送至少两个数据块失败时,可以重新根据差异位图读取至少两个数据块并发送。比如,第二存储设备在成功接收到至少两个数据块时,可以向第一存储设备返回响应信息,以指示至少两个数据块发送成功。因此,若第一存储设备在发送至少两个数据块之后未接收到来自第二存储设备的响应信息,
则可以确定至少两个数据块发送失败。从而第一存储设备可以确定至少两个数据块的存储地址对应的位图数据所属的第一子差异位图,并判断内存中是否存储有第一子差异位图。若内存中存储第一子差异位图,则第一存储设备可以直接根据内存中的第一子差异位图重新读取至少两个数据块并发送给第二存储设备。反之,若内存中未存储第一子差异位图,则第一存储设备可以根据第一子差异位图的标记从控制节点中加载第一子差异位图至内存中。以下结合图6所示的场景对该方案进行具体介绍。
99.参见图7,为本技术实施例提供的一种数据重新发送的方法流程示意图。首先差异位图分析模块执行步骤701:向子差异位图管理模块请求第一子差异位图。示例性地,差异位图分析模块可以在第二存储设备未返回响应信息时确定至少两个数据块发送失败,进而确定至少两个数据块对应的位图数据所属的第一子差异位图。可选地,差异位图分析模块可以向子差异位图管理模块发送携带第一子差异位图的标记的请求信息。子差异位图管理模块接收到来自差异位图分析模块的请求之后,可以执行步骤702:判断内存模块中是否存储有第一子差异位图。可选地,子差异位图管理模块可以根据第一子差异位图的标记对比内存模块中存储的子差异位图的标记,判断是否有命中的子差异位图。示例性地,若命中,则子差异位图管理模块执行步骤703:从内存模块中获取第一子差异位图,以及执行步骤704:向差异位图分析模块发送第一子差异位图。反之,若未命中,则子差异位图管理模块执行步骤705:向差异位图获取模块发送获取指令。获取指令携带有第一子差异位图的标记,用于指示差异位图获取模块从控制节点中获取第一子差异位图。差异位图获取模块接收到获取指令之后,可以执行步骤706:从控制节点中获取第一子差异位图,以及执行步骤707:将第一子差异位图存储到内存模块中。示例性地,差异位图获取模块在执行步骤707之后,还可以将内存模块中存储的最近最少使用的子差异位图删除。从而子差异位图管理模块可以执行步骤703和步骤704,将第一子差异位图发送给差异位图分析模块。进而,差异位图分析模块可以根据第一子差异位图重新从硬盘中读取至少两个数据块以及向第二存储设备发送至少两个数据块。
100.为了更进一步地理解本技术的方案,下面结合具体的实施例对本技术提出的数据迁移方法进行介绍。参见图8,为本技术实施例提供的一种数据迁移方法流程示意图。示例性地,图8所示的方法流程可以由第一存储设备来执行,也可以由第一存储设备中的模块或者处理芯片来执行,比如图8所示的方法流程可以由图3所示的处理器31来执行,也可以由图7所示的差异位图分析模块来执行。图8所示的方法流程具体包括:
101.801,获取第一子差异位图。
102.示例性地,可以根据第一子差异位图的标记从控制节点中获取第一子差异位图。
103.802,读取第一子差异位图中的第一项位图数据。
104.803,判断第一项位图数据取值是否为第一值。
105.若第一项位图数据取值为第一值,则继续执行步骤804。
106.若第一项位图数据取值不为第一值,则删除读取的位图数据并返回执行步骤802。
107.804,记录第一项位图数据为起始位图数据。
108.805,按照第一子差异位图中各位图数据的顺序读取位图数据a。
109.其中,位图数据a为在第一项位图数据之后的任一项位图数据。
110.806,判断位图数据a取值是否为第一值。
111.若位图数据a取值为第一值,则继续执行步骤807。
112.若位图数据a取值不为第一值,则继续执行步骤809。
113.807,判断已经读取的位图数据的数量是否达到第一阈值。
114.若达到,则继续执行步骤808。
115.若未达到,则返回执行步骤805。
116.808,从硬盘中读取起始位图数据对应的存储地址至位图数据a对应的存储地址中存储的数据块,并向第二存储设备发送读取的数据块。
117.809,判断截止位图数据与位图数据a之间的位图数据的数量是否达到第二阈值。
118.其中,截止位图数据为已经读取的位图数据中最后一个取值为第一值的位图数据。
119.若达到,则继续执行步骤810。
120.若未达到,则返回执行步骤805。
121.810,从硬盘中读取起始位图数据对应的存储地址至截止位图数据对应的存储地址中存储的数据块,并向第二存储设备发送读取的数据块。
122.本技术提出通过顺序读取差异位图,综合考虑顺序读取非差异数据块和随机读取差异数据块所需要的设备资源,确定最优传输策略,从而可以实现高效、低资源占用的数据迁移。示例性地,参见图9,示例性地展示了采用传统方案和本技术方案进行数据迁移分别消耗的时间和传输的实际数据量,图9中示出的百分比即为传输的实际数据量。从图9中可以看出,采用本技术的方案虽然传输的数据量相较于传统方案有增加,但是迁移所消耗的时间降低了。
123.下面结合附图介绍本技术实施例中用于实现上述方法的数据迁移装置。因此,上文中的内容均可以用于后续实施例中,重复内容不再赘述。
124.图10为本技术实施例提供的一种数据迁移装置1000的示意性框图,该装置1000可以对应实现上述各个方法实施例中由第一存储设备实现的功能或者步骤。该数据迁移装置1000可以包括通信单元1001和处理单元1002。可选地,还可以包括存储单元,该存储单元可以用于存储指令(代码或者程序)和/或数据。通信单元1001和处理单元1002可以与该存储单元耦合,例如,处理单元1002可以读取存储单元中的指令(代码或者程序)和/或数据,以实现相应的方法。上述各个单元可以独立设置,也可以部分或者全部集成。
125.在一种可能实现的方式中,数据迁移装置1000能够实现上述各方法实施例中的步骤。比如,数据迁移装置1000可以为第一存储设备,或者也可以为第一存储设备中的部件,比如可以为第一存储设备中的芯片系统或者电路。其中,通信单元1001用于执行上述实施例中由第一存储设备执行的全部收发操作。比如,通信单元1001可以用于实现上述图5所示的实施例中接收迁移请求或者向第二存储设备发送快照的操作。其中,处理单元1002可以用于执行上述图5所示的实施例中由第一存储设备执行的除了收发操作之外的全部操作,和/或用于支持本文所描述的技术的其它过程。
126.比如,处理单元1002可以用于获取差异位图,按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据;还用于根据所述至少两个位图数据,按照顺序读取的方式,从所述第一存储设备的第一存储空间读取至少两个数据块,并通过所述通信单元1001向所述第二存储设备发送所述至少两个数据块。其中,所述差异位图中包括所述
第一存储设备中的多个存储地址分别对应的位图数据,所述多个存储地址在所述第一存储设备中连续;当所述位图数据取值为第一值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块不相同;当所述位图数据取值为第二值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块相同。所述至少两个位图数据包括第一位图数据和第二位图数据,所述第一位图数据为所述至少两个位图数据中第一个取值为所述第一值的位图数据,所述第二位图数据为所述至少两个位图数据中最后一个取值为所述第一值的位图数据;所述第一存储空间的起始地址为所述第一位图数据对应的存储地址,所述第二存储空间的结束地址为所述第二位图数据对应的存储地址。
127.有关通信单元1001和处理单元1002所执行的其他操作,可以参见前述方法实施例的相关描述。
128.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本技术的实施例中的各功能单元可以集成在一个处理单元1002中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
129.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
130.应理解,本技术实施例中的处理单元1002可以由处理器或处理器相关电路组件实现,通信单元1001可以由收发器或收发器相关电路组件或者通信接口实现。例如,上述实施例中的数据迁移装置也可采用图11所示的形式。如图11所示的装置1100,包括至少一个处理器1110、存储器1120,可选的,还可以包括通信接口1130。
131.本技术实施例中不限定上述处理器1110以及存储器1120之间的具体连接介质。
132.在如图11的装置中,还包括通信接口1130,处理器1110在与其他设备(比如第二存储设备)进行通信时,可以通过通信接口1130进行数据传输,比如,通信接口1130可以用于在处理器1110的指示下,向第二存储设备传输读取的至少两个数据块。
133.当数据迁移装置采用图11所示的形式时,图11中的处理器1110可以通过调用存储器1120中存储的计算机执行指令,使得装置1100可以执行上述任一方法实施例中数据迁移装置执行的方法。
134.本技术实施例还提供一种芯片系统,该芯片系统包括处理器,用于调用存储器中存储的计算机程序或计算机指令,以使得该处理器执行上述任一实施例的方法。
135.在一种可能的实现方式中,该处理器通过接口与存储器耦合。
136.在一种可能的实现方式中,该芯片系统还包括存储器,该存储器中存储有计算机
程序或计算机指令。
137.本技术实施例还涉及一种处理器,该处理器用于调用存储器中存储的计算机程序或计算机指令,以使得该处理器执行上述任一实施例所述的方法。
138.应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
139.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
140.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
141.显然,本领域的技术人员可以对本技术实施例进行各种改动和变型而不脱离本技术实施例范围。这样,倘若本技术实施例的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。

技术特征:
1.一种数据迁移方法,其特征在于,所述方法应用于第一存储设备,所述方法包括:接收迁移请求;所述迁移请求用于将所述第一存储设备中待迁移数据迁移至第二存储设备;向所述第二存储设备发送在第一快照时刻根据所述第一存储设备中属于待迁移数据的多个数据块生成的快照;获取差异位图;所述差异位图中包括所述第一存储设备中的多个存储地址分别对应的位图数据,所述多个存储地址在所述第一存储设备中连续;当所述位图数据取值为第一值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块不相同;当所述位图数据取值为第二值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块相同;按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据;根据所述至少两个位图数据,按照顺序读取的方式,从所述第一存储设备的第一存储空间读取至少两个数据块,并向所述第二存储设备发送所述至少两个数据块;其中,所述至少两个位图数据包括第一位图数据和第二位图数据,所述第一位图数据为所述至少两个位图数据中第一个取值为所述第一值的位图数据,所述第二位图数据为所述至少两个位图数据中最后一个取值为所述第一值的位图数据;所述第一存储空间的起始地址为所述第一位图数据对应的存储地址,所述第二存储空间的结束地址为所述第二位图数据对应的存储地址。2.根据权利要求1所述的方法,其特征在于,所述第二位图数据为所述至少两个位图数据中的最后一个位图数据。3.根据权利要求2所述的方法,其特征在于,所述第一位图数据至所述第二位图数据包括的位图数据的数量达到第一阈值。4.根据权利要求1所述的方法,其特征在于,所述至少两个位图数据还包括第三位图数据,所述第三位图数据为所述至少两个位图数据中的最后一个位图数据,所述第三位图数据的取值为第二值。5.根据权利要求4所述的方法,其特征在于,所述第二位图数据与所述第三位图数据之间的位图数据的数量达到第二阈值。6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:根据从所述差异位图中读取的第四位图数据和第五位图数据,向所述第二存储设备发送从所述第四位图数据对应的存储地址中读取的数据块;所述第四位图数据的取值为所述第一值,所述第五位图数据的取值为第二值,所述第四位图数据至所述第五位图数据中取值为所述第二值的位图数据的数量达到第二阈值。7.根据权利要求1-6任一项所述的方法,其特征在于,所述差异位图存储于所述第一存储设备所属的云平台的控制节点中,所述差异位图包括多个子差异位图,所述多个子差异位图在所述控制节点中的存储地址连续;所述获取差异位图,包括:按照所述多个子差异位图的存储地址的顺序从所述控制节点加载所述多个子差异位图至所述第一存储设备的内存;其中,每次加载所述多个子差异位图中的至少一个子差异位图;所述按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据,包
括:按照所述多个存储地址的顺序从所述内存中存储的子差异位图中连续读取至少两个位图数据。8.根据权利要求7所述的方法,其特征在于,在向所述第二存储设备发送所述至少两个数据块之后,所述方法还包括:将读取的所述至少两个位图数据删除。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:在所述内存中的第一子差异位图包含的位图数据均被删除时,将所述第一子差异位图从所述内存中删除,所述第一子差异位图为多个子差异位图中的任一子差异位图。10.根据权利要求7-9任一项所述的方法,其特征在于,所述方法还包括:在发送所述至少两个数据块失败时,确定所述第一位图数据至所述第二位图数据所属的第一子差异位图;若所述内存中未存储所述第一子差异位图,则从所述控制节点中加载所述第一子差异位图。11.一种数据迁移装置,其特征在于,所述装置应用于第一存储设备,或者所述装置为所述第一存储设备,所述装置包括:通信单元,用于接收迁移请求;所述迁移请求用于将所述第一存储设备中待迁移数据迁移至第二存储设备;所述通信单元,还用于向所述第二存储设备发送在第一快照时刻根据所述第一存储设备中属于待迁移数据的多个数据块生成的快照;处理单元,用于获取差异位图;所述差异位图中包括所述第一存储设备中的多个存储地址分别对应的位图数据,所述多个存储地址在所述第一存储设备中连续;当所述位图数据取值为第一值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块不相同;当所述位图数据取值为第二值时,指示所述位图数据对应的存储地址在所述第一快照时刻和第二快照时刻存储的数据块相同;所述处理单元,还用于按照所述多个存储地址的顺序从所述差异位图中连续读取至少两个位图数据;所述处理单元,还用于根据所述至少两个位图数据,按照顺序读取的方式,从所述第一存储设备的第一存储空间读取至少两个数据块,并通过所述通信单元向所述第二存储设备发送所述至少两个数据块;其中,所述至少两个位图数据包括第一位图数据和第二位图数据,所述第一位图数据为所述至少两个位图数据中第一个取值为所述第一值的位图数据,所述第二位图数据为所述至少两个位图数据中最后一个取值为所述第一值的位图数据;所述第一存储空间的起始地址为所述第一位图数据对应的存储地址,所述第二存储空间的结束地址为所述第二位图数据对应的存储地址。12.根据权利要求11所述的装置,其特征在于,所述第二位图数据为所述至少两个位图数据中的最后一个位图数据。13.根据权利要求12所述的装置,其特征在于,所述第一位图数据至所述第二位图数据包括的位图数据的数量达到第一阈值。
14.根据权利要求11所述的装置,其特征在于,所述至少两个位图数据还包括第三位图数据,所述第三位图数据为所述至少两个位图数据中的最后一个位图数据,所述第三位图数据的取值为第二值。15.根据权利要求14所述的装置,其特征在于,所述第二位图数据与所述第三位图数据之间的位图数据的数量达到第二阈值。16.根据权利要求11-15任一项所述的装置,其特征在于,所述处理单元,还用于:根据从所述差异位图中读取的第四位图数据和第五位图数据,通过所述通信单元向所述第二存储设备发送从所述第四位图数据对应的存储地址中读取的数据块;所述第四位图数据的取值为所述第一值,所述第五位图数据的取值为第二值,所述第四位图数据至所述第五位图数据中取值为所述第二值的位图数据的数量达到第二阈值。17.根据权利要求11-16任一项所述的装置,其特征在于,所述差异位图存储于所述第一存储设备所属的云平台的控制节点中,所述差异位图包括多个子差异位图,所述多个子差异位图在所述控制节点中的存储地址连续;所述处理单元,还用于:按照所述多个子差异位图的存储地址的顺序从所述控制节点加载所述多个子差异位图至所述第一存储设备的内存;其中,每次加载所述多个子差异位图中的至少一个子差异位图;所述处理单元,具体用于:按照所述多个存储地址的顺序从所述内存中存储的子差异位图中连续读取至少两个位图数据。18.根据权利要求17所述的装置,其特征在于,在通过所述通信单元向所述第二存储设备发送所述至少两个数据块之后,所述处理单元,还用于:将读取的所述至少两个位图数据删除。19.根据权利要求18所述的装置,其特征在于,所述处理单元,还用于:在所述内存中的第一子差异位图包含的位图数据均被删除时,将所述第一子差异位图从所述内存中删除,所述第一子差异位图为多个子差异位图中的任一子差异位图。20.根据权利要求17-19任一项所述的装置,其特征在于,所述处理单元,还用于:在发送所述至少两个数据块失败时,确定所述第一位图数据至所述第二位图数据所属的第一子差异位图;若所述内存中未存储所述第一子差异位图,则从所述控制节点中加载所述第一子差异位图。21.一种数据迁移装置,其特征在于,包括:处理器和存储器;所述存储器用于存储程序;所述处理器用于执行所述存储器所存储的程序,以使所述装置实现如所述权利要求1-10中任一项所述的方法。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被电子装置调用时,使所述电子装置执行如权利要求1-10中任一项所述的方法。23.一种芯片系统,其特征在于,包括通信接口和处理器:所述通信接口,用于输入和/或输出信令或数据;
所述处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行如权利要求1-10任一项所述的方法。24.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-10中任一项所述的方法。

技术总结
本申请实施例提供一种数据迁移方法、装置、存储介质以及芯片系统,用以提升数据迁移的效率以及节约数据迁移过程中对设备资源的消耗。该方法根据差异位图中的位图数据确定每次需要迁移的至少两个数据块,其中,差异位图用于描述两次快照时刻待迁移数据的差异,至少两个数据块的存储空间是连续。相较于现有技术中逐个读取、逐个传输数据块的方案,本申请将连续分布的至少两个数据块一同读取和传输,不仅减少了数据迁移过程中寻道所花费的时间,还能够节约数据打包消耗的设备资源。能够节约数据打包消耗的设备资源。能够节约数据打包消耗的设备资源。


技术研发人员:屈俊平 杨奕 沈瑶
受保护的技术使用者:深圳华为云计算技术有限公司
技术研发日:2023.03.17
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐