CN111240580B - 数据迁移方法及装置 - Google Patents
数据迁移方法及装置 Download PDFInfo
- Publication number
- CN111240580B CN111240580B CN201811440161.7A CN201811440161A CN111240580B CN 111240580 B CN111240580 B CN 111240580B CN 201811440161 A CN201811440161 A CN 201811440161A CN 111240580 B CN111240580 B CN 111240580B
- Authority
- CN
- China
- Prior art keywords
- storage nodes
- nodes
- intersection
- data
- node
- 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/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]
Abstract
本申请实施例提供一种数据迁移方法及装置,涉及分布式存储技术领域,所述方法及装置通过获取目标数据中各数据分片当前所在存储节点构成的第一集合以及待迁移至的存储节点构成的第二集合,然后检测第一集合与第二集合的交集的节点数量,最后根据所述交集的节点数量与预设数量阈值判断是否需要进行数据迁移以及需要迁移的数据量,并且对于非必要的数据分片直接删除。通过该方法及装置,可以在保证目标数据可完整恢复的前提下,减少数据分片的迁移量,从而降低扩容对分布式存储系统业务性能的影响。
Description
技术领域
本申请涉及分布式存储技术领域,具体而言,涉及一种数据迁移方法及装置。
背景技术
在分布式存储系统中,当一个或多个节点达到一定空间使用率(如70%)时,会对该存储系统进行扩容。而扩容后,需要将部分原有节点中的数据迁移至扩容节点中,以释放原有节点的存储空间,使各个节点的写入数据量保持均匀。
现有技术中,在进行扩容时会迁移大量原有节点中的数据至扩容节点,从而产生大量的迁移流量,对上层业务的读写性能造成严重影响。
因此,对于本领域技术人员而言,降低扩容对业务性能的影响是一个亟待解决的技术问题。
发明内容
为了克服现有技术中的上述不足,本申请提供一种数据迁移方法及装置以降低分布式存储系统在扩容时的数据迁移量,从而降低扩容对业务性能的影响。
为了实现上述目的,本申请较佳实施例采用的技术方案如下:
第一方面,本申请实施例提供一种数据迁移方法,应用于分布式存储系统,所述系统包括多个通信连接的存储节点,所述方法包括:
获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合;
检测所述第一集合与所述第二集合的交集的节点数量;
若所述交集的节点数量大于或等于预设的数量阈值,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;
若所述交集的节点数量小于所述数量阈值,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点;
将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
可选地,在本申请实施例中,所述检测所述第一集合与所述第二集合的交集的节点数量的步骤,包括:
获取所述第一集合与所述第二集合中各存储节点所对应的节点编号及数据分片顺序编号;
将所述第一集合与所述第二集合中对应节点编号相同且数据分片顺序编号相同的存储节点作为所述第一集合与所述第二集合的交集,得到所述第一集合与所述第二集合的交集的节点数量。
可选地,在本申请实施例中,所述方法还包括确定所述数量阈值的步骤,该步骤包括:
检测所述目标数据的冗余方式;
在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值;
在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
可选地,在本申请实施例中,所述从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点的步骤,包括:
筛选出属于所述第一集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点。
可选地,在本申请实施例中,在所述将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中的步骤之前,所述方法还包括:
筛选出属于所述第二集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第二集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点。
进一步地,在本申请实施例中,所述将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中的步骤,包括:
根据所述第一目标节点及所述第二目标节点中各存储节点的节点编号的先后顺序将所述第一目标节点中存储的数据分片迁移到对应次序的第二目标节点中。
第二方面,本申请实施例提供一种数据迁移装置,应用于分布式存储系统,所述系统包括多个通信连接的存储节点,所述装置包括:
获取模块,用于获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合;
检测模块,用于检测所述第一集合与所述第二集合的交集的节点数量;
处理模块,用于在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;以及,
在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点;
将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
可选地,在本申请实施例中,所述检测模块具体用于:
获取所述第一集合与所述第二集合中各存储节点所对应的节点编号及数据分片顺序编号;
将所述第一集合与所述第二集合中对应节点编号相同且数据分片顺序编号相同的存储节点作为所述第一集合与所述第二集合的交集,得到所述第一集合与所述第二集合的交集的节点数量。
可选地,在本申请实施例中,所述装置还包括阈值确定模块,所述阈值确定模块用于:
检测所述目标数据的冗余方式;
在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值;
在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
可选地,在本申请实施例中,所述处理模块具体用于:
筛选出属于所述第一集合但不属于所述交集以及属于所述第二集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点,从属于所述第二集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点;
根据所述第一目标节点及所述第二目标节点中各存储节点的节点编号的先后顺序将所述第一目标节点中存储的数据分片迁移到对应次序的第二目标节点中。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供的数据迁移方法及装置,通过获取目标数据中各数据分片当前所在存储节点构成的第一集合以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合,然后检测所述第一集合与所述第二集合的交集的节点数量,在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点,最后将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。通过该方法及装置,可以在保证目标数据可完整恢复的前提下,减少数据分片的迁移量,从而降低了扩容对分布式存储系统业务性能的影响。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的节点设备的结构示意图;
图2为本申请实施例提供的数据迁移方法的步骤流程示意图;
图3为本申请实施例提供的数据迁移方法中确定数量阈值的步骤流程示意图;
图4为本申请实施例提供的数据迁移装置的模块示意图。
图标:100-节点设备;111-存储器;112-存储控制器;113-处理器;70-数据迁移装置;701-获取模块;702-检测模块;703-处理模块;704-阈值确定模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,术语“第一”、“第二”等命名方式仅是为了区分本申请的不同特征,简化描述,而不是指示或暗示其相对重要性,因此不能理解为对本申请的限制。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
参照图1,为本申请实施例提供的一种节点设备100。所述节点设备100可以包括数据迁移装置70、存储器111、存储控制器112及处理器113。
所述存储器111、存储控制器112及处理器113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据迁移装置70可以包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述节点设备100的操作系统(operating system,OS)中的软件功能模块。所述处理器113用于执行所述存储器111中存储的可执行模块,例如所述数据迁移装置70所包括的软件功能模块及计算机程序等。
其中,所述存储器111可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器111用于存储程序,所述处理器113在接收到执行指令后,执行所述程序。所述处理器113以及其他可能的组件对存储器111的访问可在所述存储控制器112的控制下进行。
所述处理器113可能是一种集成电路芯片,具有信号的处理能力;也可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
应当理解的是,图1所示的结构仅为示意图,所述节点设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
参照图2,为本申请实施例提供的数据迁移方法的步骤流程示意图,该方法可以应用于分布式存储系统,具体而言,该方法应用于该系统中互相通信连接的节点设备100,在该系统进行扩容时为系统提供数据迁移功能。
下面结合图2对本申请实施例提供的数据迁移方法进行详细解释,所述方法包括:
步骤S10,获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合。
在分布式存储系统中,为了满足数据存储的安全性需求,通常会采用多副本或纠删码的方式来保证数据的冗余,例如,将目标数据复制多个副本分别保存在不同存储节点,或将目标数据分为多个数据块,根据该数据块计算出几个校验块,然后将该数据块和校验块分别保存在不同的存储节点,从而使得在部分节点损坏或部分数据丢失的情况下依然不影响原数据的完整性。
具体地,在该系统中,包括多个通信连接的存储节点(即所述节点设备100),其中每一个存储节点均可将当前的数据存储信息反馈至其他的所有存储节点,以实现所有节点间信息同步。
当系统进行扩容后,该系统中的存储节点为了保证写入数据量保持均匀,可获取其他存储节点的当前使用情况,然后通过均匀算法进行实时计算,得到目标数据中所有数据分片在迁移前后所在节点的映射集合(即所述第一集合和第二集合,在数据迁移前通过所述第一集合进行数据读写,在数据迁移完成后通过所述第二集合进行数据读写),最后根据该映射集合对应的映射关系将数据分片迁移至新存储节点或其他原有存储节点中。
继续参照图2,在所述步骤S10之后,所述方法还包括:
步骤S20,检测所述第一集合与所述第二集合的交集的节点数量。
在通过均匀算法得到目标数据中各数据分片当前所在存储节点构成的第一集合以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合之后,需要检测所述第一集合与所述第二集合的交集部分,以判断存储节点上的数据分片是否需要进行迁移。具体地,在本申请实施例中,所述第一集合和第二集合中的每一个节点分别对应一个节点编号,以及所存储的数据分片的顺序编号,当所述第一集合中的某一个节点与所述第二集合中的某一个节点的节点编号相同,且所存储的数据分片的顺序编号相同时,则将该节点视为所述交集的元素(若冗余方式为多副本,则数据分片没有顺序之分,只需满足节点编号相同)。通过检测所述交集的元素数量,即可得到所述第一集合与所述第二集合的交集的节点数量。
继续参照图2,在所述步骤S20之后,所述方法还包括:
步骤S30,判断所述节点数量与预设数量阈值的关系。
在本申请实施例中,通过判断所述第一集合与第二集合的交集的节点数量与所述数量阈值的大小关系,可以确定是否需要进行数据迁移以及需要迁移的数据量。其中,所述数量阈值可以基于目标数据的最小冗余数得到,具体请参照图3,该数量阈值的确定方法可以包括以下步骤:
步骤S01,检测所述目标数据的冗余方式。
步骤S02,在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值。
步骤S03,在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
举例而言,当目标数据的冗余方式为多副本时,表示存在两个存储有所述目标数据的不同存储节点即可保证数据的冗余,最小冗余数为2。因此,在本申请实施例中,当目标数据的冗余方式为多副本时,为了保证数据的迁移量最小,可将所述数量阈值设置为2。
而当所述目标数据的冗余方式为纠删码k+m(k表示数据块数量,m为校验块数量)时,表示在存储有该数据块和校验块的k+m个存储节点中,通过其中任意k个存储节点即可恢复出完整的原数据,最小冗余数为k+1。因此,当目标数据的冗余方式为纠删码k+m时,可将所述数量阈值设置为k+1。
需要说明的是,在本申请实施例中,所述数量阈值可以是,但不限于上述的数值,该数量阈值也可以是大于上述数值的任意自然数,在本申请实施例中不对其进行具体限定。
继续参照图2,在所述步骤S30之后,所述方法包括:
步骤S31,在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片。
在本申请实施例中,若所述交集的节点数量大于或等于所述数量阈值,则表示无需进行数据迁移,并且可以将所述第一集合中除所述交集之外的其他节点中存储的数据分片删除,以实现在不影响数据完整性的前提下对存储节点进行空间释放。
例如,当所述第一集合为(1,2,3,4,5),第二集合为(1,2,3,4,6),冗余方式为纠删码3+2时,可得到所述数量阈值为3+1=4。此时,所述第一集合与所述第二集合的交集为(1,2,3,4)共四个节点,已满足所述数量阈值的要求,因此,此时可以不对所述第一集合中各个节点上存储的数据分片进行迁移,并且,可以将节点5中存储的数据分片删除以释放该节点。
可选地,若所述第一集合为(1,2,3,4,5),第二集合为(1,2,3,4,6),冗余方式为多副本,也可以在所述交集(1,2,3,4)中任意选择两个节点进行保留,然后将其他节点上的数据分片删除,从而使得空间释放量最大化。
继续参照图2,在所述步骤S30之后,所述方法还包括:
步骤S32,在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点。
步骤S33,将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
在本申请实施例中,若所述交集的节点数量小于所述数量阈值,则表示需要进行数据迁移,而最小数据迁移量等于所述第一集合与第二集合的交集的节点数量与所述数量阈值的差值。
因此,当所述交集的节点数量小于所述数量阈值时,需要根据该差值从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点,从属于所述第二集合但不属于所述交集的存储节点中选择出与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点,然后将所述第一目标节点中所存储的数据分片对应迁移到所述第一目标节点中。
而对于所述第一集合中除所述交集及所述第一目标节点之外的存储节点,可直接将其中的数据分片删除以释放存储空间。
例如,当所述第一集合为(1,2,3,4,5),第二集合为(1,2,3,6,7),冗余方式为纠删码3+2时,可得到所述数量阈值为3+1=4。此时,所述第一集合与所述第二集合的交集为(1,2,3)共三个节点,小于所述数量阈值,因此,需要从节点4和节点5中任意选择一个节点作为所述第一目标节点,从节点6和节点7中任意选择一个节点作为所述第二目标节点,然后将该第一目标节点中的数据分片迁移至所述第二目标节点中进行存储,对于剩下的另一个节点,直接删除其中存储的数据分片。
又例如,当所述第一集合为(1,2,3,4,5),第二集合为(1,2,4,6,7),冗余方式为纠删码3+2时,可得到所述数量阈值为3+1=4。而此时,所述第一集合与所述第二集合的交集为(1,2)共两个节点(节点4由于所对应数据分片的顺序编号不同,不算入交集),因此需要从节点3、节点4和节点5中选择两个存储节点作为所述第一目标节点,从节点4、节点6和节点7中选择两个存储节点作为所述第二目标节点。
具体地,在本申请的一种实施方式中,可以通过节点编号的先后顺序从属于所述第一集合但不属于所述交集的存储节点中选择第一目标节点,从属于所述第二集合但不属于所述交集的存储节点中选择第二目标节点。例如,从上述的节点3、节点4和节点5中选出节点3和节点4作为所述第一目标节点,从上述的节点4、节点6和节点7中选出节点4和节点6作为所述第二目标节点。最后将节点3中的数据分片迁移至节点4中,将节点4中存储的原数据分片迁移至节点6中,并将节点5中的数据分片删除,以释放该节点。
可替换地,在本申请实施例中,为了避免同一存储节点同时存储目标数据的多个数据分片,在确定所述第一目标节点和第二目标节点的时候,可以将所述第一集合与第二集合中节点编号相同,但所存储的数据分片顺序编号不同的存储节点滞后考虑。举例而言,当第一集合中不属于所述交集的存储节点为节点3、节点4和节点5,第二集合中不属于所述交集的存储节点为节点4、节点6和节点7时,可将节点3和节点5作为所述第一目标节点,将节点6和节点7作为所述第二目标节点,然后将节点3中的数据分片迁移至节点6,将节点5中的数据分片迁移至节点7,删除节点4中的数据分片。
通过上述的数据迁移方法,可以减少分布式存储系统在扩容时的数据迁移量,从而降低扩容对业务性能的影响。
需要说明的是,在本申请实施例中,上述方法可以被存储有所述目标数据的数据分片的任意一个在线存储节点所执行,然后发起相应的控制指令至其他存储节点,其他存储节点在接收到该控制指令之后,可以根据该控制指令进行相应的数据迁移动作,从而实现分布式存储系统在扩容时的数据迁移。
参照图4,本申请实施例还提供一种数据迁移装置70,该装置可以应用于分布式存储系统,具体而言,该装置应用于该系统中互相通信连接的节点设备100,在该系统进行扩容时为系统提供数据迁移功能。具体地,所述装置包括:
获取模块701,用于获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合;
检测模块702,用于检测所述第一集合与所述第二集合的交集的节点数量;
处理模块703,用于在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;以及,
在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点;
将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
可选地,在本申请实施例中,所述检测模块702具体用于:
获取所述第一集合与所述第二集合中各存储节点所对应的节点编号及数据分片顺序编号;
将所述第一集合与所述第二集合中对应节点编号相同且数据分片顺序编号相同的存储节点作为所述第一集合与所述第二集合的交集,得到所述第一集合与所述第二集合的交集的节点数量。
可选地,在本申请实施例中,所述装置还包括阈值确定模块704,所述阈值确定模块704用于:
检测所述目标数据的冗余方式;
在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值;
在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
可选地,在本申请实施例中,所述处理模块703具体用于:
筛选出属于所述第一集合但不属于所述交集以及属于所述第二集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点,从属于所述第二集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点;
根据所述第一目标节点及所述第二目标节点中各存储节点的节点编号的先后顺序将所述第一目标节点中存储的数据分片迁移到对应次序的第二目标节点中。
综上所述,本申请实施例提供一种数据迁移方法及装置,该方法及装置通过获取目标数据中各数据分片当前所在存储节点构成的第一集合以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合,然后检测所述第一集合与所述第二集合的交集的节点数量,在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点,最后将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。通过该方法及装置,可以在保证目标数据可完整恢复的前提下,减少数据分片的迁移量,从而降低了扩容对分布式存储系统业务性能的影响。
应当注意的是,在本申请实施例中所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据迁移方法,其特征在于,应用于分布式存储系统,所述系统包括多个通信连接的存储节点,所述方法包括:
获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合;
检测所述第一集合与所述第二集合的交集的节点数量;
若所述交集的节点数量大于或等于预设的数量阈值,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;
若所述交集的节点数量小于所述数量阈值,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点;
将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
2.如权利要求1所述的方法,其特征在于,所述检测所述第一集合与所述第二集合的交集的节点数量的步骤,包括:
获取所述第一集合与所述第二集合中各存储节点所对应的节点编号及数据分片顺序编号;
将所述第一集合与所述第二集合中对应节点编号相同且数据分片顺序编号相同的存储节点作为所述第一集合与所述第二集合的交集,得到所述第一集合与所述第二集合的交集的节点数量。
3.如权利要求1所述的方法,其特征在于,所述方法还包括确定所述数量阈值的步骤,该步骤包括:
检测所述目标数据的冗余方式;
在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值;
在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
4.如权利要求1所述的方法,其特征在于,所述从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点的步骤,包括:
筛选出属于所述第一集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点。
5.如权利要求1所述的方法,其特征在于,在所述将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中的步骤之前,所述方法还包括:
筛选出属于所述第二集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第二集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点。
6.如权利要求5所述的方法,其特征在于,所述将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中的步骤,包括:
根据所述第一目标节点及所述第二目标节点中各存储节点的节点编号的先后顺序将所述第一目标节点中存储的数据分片迁移到对应次序的第二目标节点中。
7.一种数据迁移装置,其特征在于,应用于分布式存储系统,所述系统包括多个通信连接的存储节点,所述装置包括:
获取模块,用于获取目标数据中各数据分片当前所在存储节点构成的第一集合,以及所述目标数据中各数据分片待迁移至的存储节点构成的第二集合;
检测模块,用于检测所述第一集合与所述第二集合的交集的节点数量;
处理模块,用于在所述交集的节点数量大于或等于预设的数量阈值时,删除所述第一集合中不属于所述交集的存储节点所存储的数据分片;以及,
在所述交集的节点数量小于所述数量阈值时,计算所述节点数量与所述数量阈值的差值,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的第一目标节点;
将所述第一目标节点中所存储的数据分片对应迁移到属于所述第二集合但不属于所述交集的存储节点中,并删除所述第一集合中除所述交集及所述第一目标节点之外的存储节点所存储的数据分片。
8.如权利要求7所述的装置,其特征在于,所述检测模块具体用于:
获取所述第一集合与所述第二集合中各存储节点所对应的节点编号及数据分片顺序编号;
将所述第一集合与所述第二集合中对应节点编号相同且数据分片顺序编号相同的存储节点作为所述第一集合与所述第二集合的交集,得到所述第一集合与所述第二集合的交集的节点数量。
9.如权利要求7所述的装置,其特征在于,所述装置还包括阈值确定模块,所述阈值确定模块用于:
检测所述目标数据的冗余方式;
在所述冗余方式为多副本时,根据预设副本数量确定所述数量阈值;
在所述冗余方式为纠删码时,根据所述纠删码中的数据块数量确定所述数量阈值。
10.如权利要求7所述的装置,其特征在于,所述处理模块具体用于:
筛选出属于所述第一集合但不属于所述交集以及属于所述第二集合但不属于所述交集的存储节点;
根据存储节点所对应节点编号的先后顺序,从属于所述第一集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为待进行数据迁移的第一目标节点,从属于所述第二集合但不属于所述交集的存储节点中选择与所述差值相同数量的存储节点作为用于存储待迁移数据分片的第二目标节点;
根据所述第一目标节点及所述第二目标节点中各存储节点的节点编号的先后顺序将所述第一目标节点中存储的数据分片迁移到对应次序的第二目标节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811440161.7A CN111240580B (zh) | 2018-11-29 | 2018-11-29 | 数据迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811440161.7A CN111240580B (zh) | 2018-11-29 | 2018-11-29 | 数据迁移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240580A CN111240580A (zh) | 2020-06-05 |
CN111240580B true CN111240580B (zh) | 2022-04-12 |
Family
ID=70879268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811440161.7A Active CN111240580B (zh) | 2018-11-29 | 2018-11-29 | 数据迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240580B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103369042A (zh) * | 2013-07-10 | 2013-10-23 | 中国人民解放军国防科学技术大学 | 一种数据处理方法和装置 |
CN107179879A (zh) * | 2016-03-11 | 2017-09-19 | 伊姆西公司 | 用于存储设备的数据迁移的方法和装置 |
CN108228102A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 节点间数据迁移方法、装置、计算设备及计算机存储介质 |
CN108255413A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种存储系统扩容后数据迁移的方法、存储系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996478B2 (en) * | 2012-10-18 | 2015-03-31 | Netapp, Inc. | Migrating deduplicated data |
US20160132523A1 (en) * | 2014-11-12 | 2016-05-12 | Strato Scale Ltd. | Exploiting node-local deduplication in distributed storage system |
-
2018
- 2018-11-29 CN CN201811440161.7A patent/CN111240580B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103369042A (zh) * | 2013-07-10 | 2013-10-23 | 中国人民解放军国防科学技术大学 | 一种数据处理方法和装置 |
CN107179879A (zh) * | 2016-03-11 | 2017-09-19 | 伊姆西公司 | 用于存储设备的数据迁移的方法和装置 |
CN108255413A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种存储系统扩容后数据迁移的方法、存储系统 |
CN108228102A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 节点间数据迁移方法、装置、计算设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111240580A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
CN108108127B (zh) | 一种文件读取方法及系统 | |
CN108073519B (zh) | 测试用例生成方法和装置 | |
CN106569738B (zh) | 一种删除级联快照的方法及装置 | |
CN107729227B (zh) | 应用程序测试范围确定方法、系统、服务器和存储介质 | |
CN112256433B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
WO2021120585A1 (zh) | 数据存储方法、装置、设备及存储介质 | |
CN112835528A (zh) | 脏页刷新方法和装置、电子设备和存储介质 | |
CN114564446A (zh) | 一种文件存储的方法、装置、系统及存储介质 | |
CN106708865B (zh) | 流处理系统中访问窗口数据的方法和装置 | |
CN111046004B (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN111240580B (zh) | 数据迁移方法及装置 | |
CN114020527A (zh) | 快照恢复方法、装置、计算机设备及存储介质 | |
CN103092745B (zh) | 系统日志记录的控制方法和装置 | |
CN112463058A (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN109491961B (zh) | 一种文件系统快照的方法及快照设备 | |
CN111221468B (zh) | 存储块数据删除方法、装置、电子设备及云存储系统 | |
CN111273862A (zh) | 数据存储方法及其装置、可读介质和系统 | |
CN116361153A (zh) | 固件代码的测试方法、装置、电子设备、存储介质 | |
CN105488047B (zh) | 元数据读写方法和装置 | |
CN109144766B (zh) | 一种数据存储、重构方法和装置、及电子设备 | |
EP3264254B1 (en) | System and method for a simulation of a block storage system on an object storage system | |
CN113626399B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN113295990B (zh) | 一种生成fpga可行性测试路径的方法、系统、介质及设备 | |
CN113535470A (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 |