CN114895849B - 数据迁移存储方法、装置和管理节点 - Google Patents
数据迁移存储方法、装置和管理节点 Download PDFInfo
- Publication number
- CN114895849B CN114895849B CN202210475723.1A CN202210475723A CN114895849B CN 114895849 B CN114895849 B CN 114895849B CN 202210475723 A CN202210475723 A CN 202210475723A CN 114895849 B CN114895849 B CN 114895849B
- Authority
- CN
- China
- Prior art keywords
- migration
- data
- migrated
- storage node
- storage
- 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
- 238000013508 migration Methods 0.000 title claims abstract description 273
- 230000005012 migration Effects 0.000 title claims abstract description 270
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000001960 triggered effect Effects 0.000 claims abstract description 26
- 238000011084 recovery Methods 0.000 claims description 82
- 238000001514 detection method Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移存储方法、装置和管理节点,在触发迁移操作时获取待迁移数据块,根据待迁移数据块的目的存储节点和目的磁盘中的数据块,在判定待迁移数据块满足预设可靠性要求时,将待迁移数据块迁移至目的存储节点和目的磁盘。在不满足预设可靠性要求时,检测待迁移数据块是否构成成环结构,如果构成,则直接将待迁移数据块标记为迁移完成状态,若不构成,则等待下一次迁移操作的触发。该方案中,可避免由于迁移可能导致的后续异常进而导致数据丢失的问题。并且,对于其中构成特殊的成环结构的待迁移数据块,采用直接标记迁移成功的方式,一则可以避免不必要的迁移工作,二则可以保障各个数据块均能得到合理迁移。
Description
技术领域
本申请涉及分布式存储技术领域,具体而言,涉及一种数据迁移存储方法、装置和管理节点。
背景技术
随着数据膨胀,分布式存储系统因其具有规模可伸缩、数据高可靠等优点,逐步成为存储系统的主流。其中基于纠删码的分布式块存储以其较高的空间利用率等优势受到广泛的应用。
用户创建的存储空间可以拆分为多个文件(FILE),一个文件根据不同的冗余策略可分为多个对象(object,OBJ),每个OBJ由N+M个数据块(block)组成。当集群遇到异常情况,导致block数据异常,一定程度上会降低集群数据的可靠性,此时便会触发数据恢复,保证数据的可靠性。而节点离线导致的大量block恢复,在节点恢复后也面临着负载不均衡的问题,需要进行恢复迁移。当集群后期需要扩节点(盘)时,也需要对集群进行数据迁移。而迁移过程中的数据可靠性,便成为了关键的考虑因素。
现有技术中在进行数据迁移处理时,并未考虑数据在迁移过程中可靠性要求,从而导致可能迁移中节点再次出现异常,导致数据丢失。并且,现有技术中也没有完备的机制,以保障各个数据块均可以得到有效、合理的迁移。
发明内容
本申请的目的包括,例如,提供了一种数据迁移存储方法、装置和管理节点,其能够避免数据丢失且保证数据块得到合理迁移。
本申请的实施例可以这样实现:
第一方面,本申请提供一种数据迁移存储方法,应用于分布式集群中的管理节点,所述分布式集群还包括与所述管理节点连接多个存储节点,各所述存储节点包括多个磁盘,各所述磁盘用于存储数据,各数据被分割为多个数据块,所述方法包括:
在触发迁移操作时,获取待迁移数据块;
根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求,若满足所述预设可靠性要求,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘;
若不满足所述预设可靠性要求,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构;
若构成成环结构,则直接将所述两个待迁移数据块标记为迁移完成状态;
若不构成成环结构,则等待下一次迁移操作的触发。
在可选的实施方式中,所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述方法还包括存储节点或磁盘离线时对数据块进行恢复的步骤,该步骤包括:
在确定存储节点或磁盘离线时,获取离线的存储节点或磁盘上的数据块的数据信息并存入恢复表中;
扫描所述恢复表中的数据信息,并检测当前是否存在与扫描的数据信息对应的数据块所属同一数据的其他数据块处于恢复状态中;
若存在,则跳过所述数据信息执行下一个数据块的数据信息的扫描;
若不存在,则将所述数据信息对应的数据块发送至从其他在线的存储节点中确定出的目的存储节点或目的磁盘进行恢复。
在可选的实施方式中,所述确定存储节点或磁盘离线的步骤,包括:
在监测到存储节点或磁盘离线且离线时长超过预设时长时,确定存储节点或磁盘离线。
在可选的实施方式中,所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求的步骤,包括:
检测当前是否存在与所述待迁移数据块所属同一数据的数据块处于等待迁移状态中,若不存在,检测所述目的磁盘中是否存在与所述待迁移数据块所属同一数据的数据块;
若不存在,再检测所述目的存储节点中与所述待迁移数据块所属同一数据的数据块的数量是否小于预设最大允许个数,若小于,则判定所述待迁移数据块满足预设可靠性要求。
在可选的实施方式中,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,所述在触发迁移操作的步骤之前,所述方法还包括:
获取所述分布式集群中当前存在的各个存储节点的已使用容量;
根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的存储节点容量差阈值,判断是否进行存储节点之间的扩容迁移,若判定进行存储节点之间的扩容迁移,则触发迁移操作。
在可选的实施方式中,所述根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的容量差阈值,判断是否进行存储节点之间的扩容迁移的步骤,包括:
根据分布式集群中所有存储节点的存储节点总已使用容量,并结合当前存在的存储节点的数量计算得到存储节点平均已使用容量;
针对任意一个存储节点,基于该存储节点的使用容量与所述存储节点平均已使用容量之间的差值,判断是否进行存储节点之间的扩容迁移。
在可选的实施方式中,所述获取待迁移数据块的步骤,包括:
比较所述分布式集群中当前存在的各个存储节点的已使用容量的高低;
将已使用容量最高的存储节点作为迁出存储节点,将已使用容量最低的存储节点作为目的存储节点;
从所述迁出存储节点中提取数据块,作为待迁移数据块。
在可选的实施方式中,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,所述在触发迁移操作的步骤之前,所述方法还包括:
针对所述分布式集群中的存在新增磁盘的存储节点,获取所述存储节点下各个磁盘的已使用容量;
根据所述存储节点下的磁盘的数量、各所述磁盘的已使用容量以及预设的磁盘容量差阈值,判断是否进行磁盘之间的扩容迁移,若判定进行磁盘之间的扩容迁移,则触发迁移操作。
第二方面,本申请提供一种数据迁移存储装置,应用于分布式集群中的管理节点,所述分布式集群还包括与所述管理节点连接多个存储节点,各所述存储节点包括多个磁盘,各所述磁盘用于存储数据,各数据被分割为多个数据块,所述装置包括:
获取模块,用于在触发迁移操作时,获取待迁移数据块;
第一检测模块,用于根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求;
迁移模块,用于在满足所述预设可靠性要求时,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘;
第二检测模块,用于在不满足所述预设可靠性要求时,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构;
标记模块,用于在构成成环结构时,直接将所述两个待迁移数据块标记为迁移完成状态;
等待模块,用于在不构成成环结构时,等待下一次迁移操作的触发。
第三方面,本申请提供一种管理节点,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当管理节点运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的方法步骤。
本申请实施例的有益效果包括,例如:
本申请提供一种数据迁移存储方法、装置和管理节点,在触发迁移操作时获取待迁移数据块,根据待迁移数据块的目的存储节点和目的磁盘中的数据块,在判定待迁移数据块满足预设可靠性要求时,将待迁移数据块迁移至目的存储节点和目的磁盘。在不满足预设可靠性要求时,检测待迁移数据块是否构成成环结构,如果构成,则直接将待迁移数据块标记为迁移完成状态,若不构成,则等待下一次迁移操作的触发。该方案中,基于目标存储节点和目的磁盘中的数据块来判断待迁移数据块是否满足预设可靠性要求,避免由于迁移可能导致的后续异常进而导致数据丢失的问题。并且,对于其中构成特殊的成环结构的待迁移数据块,采用直接标记迁移成功的方式,一则可以避免不必要的迁移工作,二则可以保障各个数据块均能得到合理迁移。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的分布式集群的结构示意图;
图2为本申请实施例提供的数据迁移存储方法的流程图;
图3为本申请实施例提供的数据迁移存储方法中,数据恢复方法的流程图;
图4为图2中步骤S202包含的子步骤的流程图;
图5为本申请实施例提供的成环结构的数据块的示意图;
图6为本申请实施例提供的同组数据中数据块的原始分布示意图;
图7为本申请实施例提供的同组数据中数据块多次恢复后的分布示意图;
图8为本申请实施例提供的数据迁移存储处理的示意图;
图9为本申请实施例提供的数据迁移存储方法中,扩容迁移判断方法的流程图之一;
图10为本申请实施例提供的数据迁移存储方法中,扩容迁移判断方法的流程图之二;
图11为图2中步骤S201包含的子步骤的流程图;
图12为分布式集群中新增节点时各节点已使用容量的示意图;
图13为分布式集群中新增节点时各节点已使用容量的具体数值;
图14为分布式集群中新增节点并进行迁移处理各节点已使用容量的示意图;
图15为分布式集群中新增节点并进行迁移处理后各节点已使用容量的具体数值;
图16为本申请实施例提供的管理节点的结构框图;
图17为本申请实施例提供的数据迁移存储装置的功能模块框图。
图标:110-存储介质;120-处理器;130-数据迁移存储装置;131-获取模块;132-第一检测模块;133-迁移模块;134-第二检测模块;135-标记模块;136-等待模块;140-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
请参阅图1,为本申请实施例提供的一种分布式集群的结构示意图。该分布式集群中包括管理节点,以及与管理节点连接的多个存储节点(数据节点)。其中,各个存储节点包括多个磁盘。管理节点和存储节点可以是终端设备或服务器。管理节点和存储节点构建成存储系统的运行框架。
各个磁盘可用于存储数据,各数据被分割为多个数据块,其中,所属于同一个数据的数据块可被划分为同一个组。例如,创建的存储空间可以拆分为多个文件(FILE),一个文件根据不同的冗余策略可分为多个对象(object,OBJ),每个OBJ由N+M个数据块(block)组成。
请参阅图2,为本申请实施例提供的数据迁移存储方法的流程图,该迁移存储方法可应用于上述分布式集群中的管理节点。下面结合图2所示,对本申请实施例提供的数据迁移存储方法进行具体说明。
S201,在触发迁移操作时,获取待迁移数据块。
S202,根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求,若满足所述预设可靠性要求,执行以下步骤S203,若不满足所述预设可靠性要求,执行以下步骤S204。
S203,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘。
S204,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构,若构成成环结构,执行以下步骤S205,若不构成成环结构,执行以下步骤S206。
S205,直接将所述两个待迁移数据块标记为迁移完成状态。
S206,等待下一次迁移操作的触发。
本实施例中,在分布式集群中的存储节点或磁盘出现异常时,将影响到集群数据的可靠性,此时需要对异常的存储节点或磁盘上的数据进行恢复。而在异常的存储节点或磁盘再次上线后,则需要将之前进行恢复的数据迁移到原本的存储节点或磁盘上,以保障集群内负载均衡。此外,在集群中存在新增的存储节点或磁盘时,也会存在集群内负载不均衡的问题,此时也会触发迁移操作。
在触发迁移操作的情况下,可获取待迁移数据块。在异常存储节点或磁盘再次上线的情况下,待迁移数据块可为原本在异常的存储节点或磁盘上而目前已恢复至其他存储节点上的数据块。而在新增存储节点或磁盘的情况下,待迁移数据块为分布式集群中原本存在的存储节点上的数据块。
在异常的存储节点或磁盘再次上线的情况下,待迁移数据块的目的存储节点和目的磁盘即为该再次上线的存储节点或磁盘。而在集群中新增存储节点或磁盘的情况下,待迁移数据块的目的存储节点和目的磁盘可能为该新增的存储节点和新增的磁盘。
在确定待迁移数据块和目的存储节点、目的磁盘后,可以获取目的存储节点、目的磁盘上的数据块的情况,并结合待迁移数据块以判断待迁移数据块是否满足预设可靠性要求,也即,待迁移数据块目前是否适宜迁移到目的存储节点、目的磁盘上。若判定待迁移数据块满足预设可靠性要求,则可以直接将待迁移数据块迁移至目的存储节点和目的磁盘。
而若判定待迁移数据块不满足预设可靠性要求,一般情况下,则需要等待下一次的迁移操作的触发,再进行是否进行迁移的判断。但是,还存在一些特殊情况,例如,待迁移数据块构成成环结构,也即当前的待迁移数据块至少包括两个,两个待迁移数据块各自当前存储节点为彼此的目的存储节点。例如,待迁移数据块包括数据块a和数据块b,数据块a的当前存储节点为存储节点A、目的存储节点为存储节点B,数据块b的当前存储节点为存储节点B、目的存储节点为存储节点A。也即,需要将数据块a从存储节点A迁移到存储节点B,将数据块b从存储节点B迁移到存储节点A。
在待迁移数据块并不满足预设可靠性要求,但是构成上述的成环结构时,可以直接将两个待迁移数据块标记为迁移完成状态,也即,无需再进行实际的迁移动作。而若待迁移数据块既不满足预设可靠性要求,也未构成上述的成环结构,则需要等待下一次迁移操作的触发,再进行迁移的判断。
本实施例所提供的数据迁移存储方法,基于目标存储节点和目的磁盘中的数据块来判断待迁移数据块是否满足预设可靠性要求,避免由于迁移可能导致的后续异常进而导致数据丢失的问题。并且,对于其中构成特殊的成环结构的待迁移数据块,采用直接标记迁移成功的方式,一则可以避免不必要的迁移工作,二则可以保障各个数据块均能得到合理迁移。
本实施例中,迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,以及在分布式集群中存在新增存储节点或新增磁盘时的扩容迁移。
在迁移操作为存储节点或磁盘离线再上线后的恢复迁移操作时,意味着在此之前存在存储节点或磁盘离线。为了保障数据不丢失,在存储节点或磁盘离线时对数据块进行恢复。因此,请参阅图3,本实施例所提供的数据迁移存储方法还包括以下的在存储节点或磁盘离线时对数据块进行恢复的步骤。
S101,在确定存储节点或磁盘离线时,获取离线的存储节点或磁盘上的数据块的数据信息并存入恢复表中。
S102,扫描所述恢复表中的数据信息,并检测当前是否存在与扫描的数据信息对应的数据块所属同一数据的其他数据块处于恢复状态中,若存在,执行以下步骤S103,若不存在,执行以下步骤S104。
S103,跳过所述数据信息执行下一个数据块的数据信息的扫描;
S104,将所述数据信息对应的数据块发送至从其他在线的存储节点中确定出的目的存储节点或目的磁盘进行恢复。
本实施例中,当存储节点或磁盘离线超过指定时间时,其上的数据块将会被认定不可用,因此,离线的存储节点或磁盘上的数据块将作为待恢复数据块,可将离线的存储节点或磁盘上的数据块的数据信息存入恢复表中。
为了避免存储节点或磁盘短暂离线,例如拔插盘、节点重启等而导致的离线即触发恢复操作,而浪费集群资源,因此,本实施例中,可在监测到存储节点或磁盘离线且离线时长超过预设时长时,确定存储节点或磁盘离线,再触发数据块的恢复操作。如此,可以避免由于短暂离线即引起数据块恢复导致资源浪费的问题。
此外,本实施例中,在监测到存储节点或磁盘离线,在离线的时长未超过预设时长,但存在对于其中的数据块的读写操作时,该读写操作将失败,此时,虽然存储节点或磁盘并不确定为离线状态,但是,还是需对读写操作指向的数据块进行恢复。同样地,可将读写操作指向的数据块的数据信息存入到恢复表中,以等待进行恢复。如此,可以避免影响到读写操作。
本实施例中,将确定离线的存储节点或磁盘上的数据块的数据信息,以及读写操作指向且失败的数据块的数据信息存入如下所示的恢复表中以等待恢复,并将对应的数据块的状态更新为离线状态。
表1恢复表
描述 | 表名 | Type | Key | Value |
恢复表 | TBL_RECOVER | Hash | FILEID-OBJID-BLOCKID | timestamp-state |
其中,state表示恢复状态,0表示未开始恢复,1表示准备恢复,2表示恢复中。
恢复线程周期性扫描恢复表中的数据信息,每次扫描时可扫描的数据信息的个数可为指定个数。对于扫描到的数据信息,首先可检测是否存在与其所属同一数据的其他数据块处于恢复状态中,也即,是否存在与其所属同组的数据块在恢复中。如果有,则跳过该数据信息,等待下一次扫描。如果没有,则可以对该数据信息对应的数据块执行恢复,可从当前分布式集群中在线的存储节点中确定出目的存储节点,若是磁盘之间的恢复,则可从中确定出目的磁盘。可将扫描到的数据信息对应的数据块恢复到目的存储节点或目的磁盘中。
在数据块恢复完成后,管理节点可接收到上报的恢复确认消息,若上报的恢复确认消息中恢复状态正常,则可确定该数据块恢复成功,反之,则数据块恢复失败,需要重新进行恢复。在数据块恢复成功后,可将数据块的数据信息从恢复表中删除,并存入到如下所示的恢复完成表中,恢复完成表中的数据信息对应的数据块等待进行迁移操作。
表2恢复完成表
描述 | 表名 | Type | Key |
恢复完成表 | TBL_RECOVERD-源DNID-源DISKID | Set | FILEID-OBJID-BLOCKID |
其中,源DNID和源DISKID记录数据块的初始位置。
在恢复表中的所有数据信息对应的数据块均恢复完成后,也即,恢复表中的数据信息全部存入到恢复完成表后。针对恢复完成表中的数据信息,迁移扫描线程可周期性地从中扫描数据信息,并在判定对应的数据块满足预设可靠性要求的情况下,存入到如下所示的迁移表中,等待进行数据迁移。对于恢复完成表中的数据信息,若数据信息对应的数据块所属数据在数据库中不存在,则可将该数据信息从恢复完成表中删除。此外,若数据信息对应的数据块的目的磁盘不在线时,可跳过该数据信息,以等待下一次迁移扫描。
表3迁移表
其中,SrcDNID和SrcDISKID记录数据块当前存储节点和磁盘的位置,DesDNID和DesDISKID记录目的存储节点和磁盘的位置,RecvedDataType表示接收数据类型(1-恢复迁移类型;2-扩容迁移类型),MgrStatus表示数据块的迁移状态(0-未开始迁移;1-等待迁移;2-迁移中;3-迁移结束),Timestamp表示入迁移表时间。
请参阅图4,本实施例中,在进行数据块是否满足可靠性要求的判断时,可通过以下方式实现:
S2021,检测当前是否存在与所述待迁移数据块所属同一数据的数据块处于等待迁移状态中,若不存在,执行以下步骤S2022,若存在,执行以下步骤S2025。
S2022,检测所述目的磁盘中是否存在与所述待迁移数据块所属同一数据的数据块,若不存在,执行以下步骤S2023,若存在,执行以下步骤S2025。
S2023,再检测所述目的存储节点中与所述待迁移数据块所属同一数据的数据块的数量是否小于预设最大允许个数,若小于,执行以下步骤S2024,若不小于,执行以下步骤S2025。
S2024,判定所述待迁移数据块满足预设可靠性要求。
S2025,判定所述待迁移数据块不满足预设可靠性要求。
由上述可知,迁移扫描线程可从恢复完成表中扫描数据信息存入迁移表中。在扫描数据信息后,可先检测当前是否存在与该数据信息对应数据块所属同一数据的数据块处于等待迁移状态,也即,是否存在所属同一数据的数据块的数据信息存在于迁移表中,若存在,则判定不满足预设可靠性要求。若不存在,则可执行后续的检测动作。
此外,可检测目的磁盘上是否存在与待迁移数据块所属同一数据的数据块,也即,是否存在同组的数据块。若存在,则可判定不满足预设可靠性要求。若不存在,还可检测目的存储节点上与待迁移数据块所属同一数据的数据块的个数与预设最大允许个数之间的大小关系。其中,预设最大允许个数可通过以下方式计算得到:
MaxNum=HighAlign(N+M,DnNum)/DnNum
其中,N和M分别表示纠删码中数据被分割成数据块的个数及按照一定算法生成的冗余片段的数量,HighAlign表示为向上对齐,DnNum表示分布式集群中存储节点的个数。
如果目的存储节点上与待迁移数据块所属同一数据的数据块的数量小于上述的预设最大允许个数,则可以确定满足预设可靠性要求。若大于或等于预设最大允许个数,则可以确定不满足预设可靠性要求。
通过以上方式在判定满足预设可靠性要求后,可将待迁移数据块的数据信息存入迁移表中,并将待迁移数据块的迁移状态由未开始迁移更新为等待迁移状态。
迁移处理线程可获取等待迁移状态的数据块,并发送至目的存储节点、目的磁盘进行迁移,在发送成功后将其迁移状态更新为迁移中。若发送失败,则数据块的迁移状态更新为未开始迁移状态,并等待下一次迁移扫描。此处的下一次迁移扫描是指针对已在迁移表中的数据信息的扫描。
此外,在迁移过程中,若数据块处于迁移中的时间超过指定时长,则可进行超时处理,将该数据块回退插入到恢复完成表中,同时从迁移表中删除,以等待下一次的迁移扫描。此处的下一次迁移扫描是指针对恢复完成表中的数据信息的扫描。
而若通过以上方式判定不满足预设可靠性要求,但是待迁移数据块可构成成环结构,例如5中所示,数据块b1恢复到Node2,数据块b2恢复到Node1。此时由于可靠性的限制,导致b1、b2无法进行回迁到各自初始位置。同理,在超过2个数据块的情况下也可构成成环结构。
在此种情形下,需要将b1回迁到Node1上,此时可查询Node1上真实存在的数据块(此时为b2)。再判断b2是否为待回迁至Node2的数据块,若是,则可将b1的待迁移位置修改为b2的待迁移位置,并删除b2的迁移请求信息。再判断b1的待迁移位置是否和b1当前所在位置(当前所在位置为Node2)相同,若相同,则可以删除b1的迁移请求信息。也即,在通过该种方式可以判断b1和b2是否构成成环结构,并且,在构成成环结构时,可以将各自的状态修改为迁移完成状态,也即无需执行实际的迁移操作。
而若不同,即不构成成环结构时,则等待下一次迁移操作的触发。
进一步地,结合图6和图7所示,对成环结构的迁移进行举例说明:
在纠删比为4+2的4节点集群,离线节点1,节点1的数据块恢复到其他三个节点上,再离线节点2,上线节点1,恢复之后再离线磁盘,由于恢复优先于迁移,多次进行恢复之后,文件同组的数据块回迁会成环,以文件67444838135472为例,同组6个block变化如图6、7中所示(fileid-objid-blockid)。
多次恢复之后,67444838135472-1-6恢复到了节点2磁盘3上,67444838135472-1-3恢复到节点1磁盘1上,在恢复完成表中信息为:“TBL_RECOVERD-1-1”“67444838135472-1-6”、“TBL_RECOVERD-2-3”“67444838135472-1-3”。这两个数据块需要相互迁到对方节点上,但回迁判断已经不满足预设可靠性要求,当成环时,将67444838135472-1-6的迁移位置修改为67444838135472-1-3的待迁移位置,并删除67444838135472-1-3的待迁移信息,即恢复完成表中信息变更为:“TBL_RECOVERD-2-3”“67444838135472-1-6”。再进行下一次迁移判断,迁移位置与当前位置相同,无需迁移,将其从恢复完成表中删除,成环数据块即迁移完成。
在迁移完成后,管理节点可接收到上报的迁移结果,通过迁移结果中的迁移状态确认是否迁移成功,若迁移成功,则可更新数据中数据块的当前位置,并将其数据信息从迁移表中删除,反之,则需要重新进行迁移。
在恢复完成表中的所有数据信息对应的数据块均完成迁移后,也即恢复完成表为空时,恢复迁移操作结束。
由上述可知,本实施例中,迁移操作还包括在分布式集群中存在新增存储节点或新增磁盘时的扩容迁移。本实施例中,如图8中所示,可以通过恢复模块进行数据块(block)的恢复处理,利用恢复迁移模块实现恢复迁移处理。并且,可以利用扩容迁移模块实现扩容迁移处理。
在新增存储节点或新增磁盘时,需要先判断集群中节点间是否均衡,或者节点中磁盘间是否均衡,在不均衡的情况下,则需要进行数据块的迁移。
本实施例中,由上述可知,迁移表中存有待迁移的数据块的数据信息,可周期扫描迁移表中数据信息的个数,若迁移表中数据信息的个数大于预设阈值时,则表明目前待迁移的数据块较多,可暂时不触发扩容迁移,等待下一轮扫描。若迁移表中的数据信息的个数小于或等于预设阈值,则可以判断节点之间或磁盘之间是否均衡,若不均衡,则触发扩容迁移。
请参阅图9,本实施例中,在针对存储节点之间是否均衡的检测时,在触发迁移操作之前,可通过以下方式先进行集群是否均衡的检测:
S301,获取所述分布式集群中当前存在的各个存储节点的已使用容量。
S302,根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的存储节点容量差阈值,判断是否进行存储节点之间的扩容迁移,若判定进行存储节点之间的扩容迁移,则触发迁移操作。
本实施例中,分布式集群中当前存在的存储节点包括集群中原有存在的存储节点以及新增的存储节点。
本实施例中,集群中除新增存储节点之外,原有存在的存储节点中各个存储节点的已使用容量可以相同,也可以不同。可计算得到分布式集群中所有存储节点的存储节点总已使用容量,也即,将所有存储节点的已使用容量进行相加。根据分布式集群中所有存储节点的存储节点总已使用容量,并结合当前存在的存储节点的数量计算得到存储节点平均已使用容量。再针对任意一个存储节点,基于该存储节点的已使用容量与存储节点平均已使用容量之间的差值,判断是否进行存储节点之间的扩容迁移。
具体地,在任一存储节点的已使用容量与存储节点平均已使用容量之间的差值的绝对值大于预设的存储节点容量差阈值时,可判定集群存在不均衡现象,需要进行扩容迁移。
本实施例中,可在满足以下的公式的情况下,判定需要进行扩容迁移:
Labs(nodeUsedCap-(nodeTotalUsedCap/nodeNum))>nodeUsedCapThread
其中labs表示取绝对值,nodeUsedCap表示任一存储节点的已使用容量,nodeTotalUsedCap为存储节点总已使用容量,nodeNum为存储节点个数,nodeUsedCapThread为预设的存储节点容量差阈值。
此外,若是在存储节点下新增磁盘,同样地,可以先判断该节点是否存在不均衡的现象。请参阅图10,本实施例中,还可预先通过以下方式判断是否进行节点下磁盘之间的扩容迁移:
S401,针对所述分布式集群中存在新增磁盘的存储节点,获取所述存储节点下各个磁盘的已使用容量。
S402,根据所述存储节点下的磁盘的数量、各所述磁盘的已使用容量以及预设的磁盘容量差阈值,判断是否进行磁盘之间的扩容迁移,若判定进行磁盘之间的扩容迁移,则触发迁移操作。
本实施例中,在存储节点下存在新增磁盘时,可以基于当前磁盘的已使用情况来判断是否进行迁移。可以计算得到所有磁盘的磁盘总已使用容量,并根据磁盘的总的数量,计算得到磁盘平均已使用容量。针对任一磁盘,可以计算该磁盘的已使用容量与磁盘平均已使用容量之间的差值,根据该差值与预设的磁盘容量差阈值之间的大小关系来判断是否进行迁移。具体地,在该差值的绝对值大于磁盘容量差阈值时,可判定需要进行迁移。
本实施例中,可通过以下公式来进行是否进行磁盘间的迁移的判断:
Labs(diskUsedCap-(nodeUsedCap/diskNum))>diskUsedCapThread
其中,diskUsedCap表示任一磁盘已使用容量,nodeUsedCap为节点已使用容量(即磁盘总已使用容量),diskNum为存储节点内磁盘个数,diskUsedCapThread为预设的磁盘间容量差阈值。
本实施例中,若判定集群负载均衡或节点负载均衡,可等待一定时间后进行下一次扫描判断。若在通过以上方式判定需要进行节点之间的数据迁移或者是磁盘间的数据迁移后,可执行迁移操作,直至集群或节点负载均衡。请参阅图11,在执行迁移操作时,其中,所获取的待迁移数据块可通过以下方式确定:
S2011,比较所述分布式集群中当前存在的各个存储节点的已使用容量的高低。
S2012,将已使用容量最高的存储节点作为迁出存储节点,将已使用容量最低的存储节点作为目的存储节点。
S2013,从所述迁出存储节点中提取数据块,作为待迁移数据块。
本实施例中,在集群内负载不均衡时,可以根据各个存储节点已使用容量的高低排序结构,确定出迁出存储节点,同理,也可以确定出迁出磁盘。并确定出目的存储节点、目的磁盘。其中,迁移的原则是由已使用容量最高的节点或磁盘往已使用容量最低的存储节点或磁盘进行迁移。
因此,待迁移数据块的提取即为从迁出存储节点或迁出磁盘中进行提取。可从迁出存储节点或迁出磁盘中提取指定个数的数据块,并将满足可靠性要求的数据块的数据信息存入迁移表中等待迁移。在迁移成功后,可将数据块的数据信息从迁移表中删除。若迁移失败,同样地将数据块的数据信息从迁移表中删除,但无需回退至恢复完成表中,并等待下一轮扩容迁移扫描。
以下对集群中存在新增存储节点时的扩容迁移过程进行举例说明:
在三节点的集群中,每个节点上配有10块8T容量磁盘,纠删比为4+2、创建多个文件,总容量占用5000GB,每个节点已使用容量为2500GB,每个磁盘已使用容量250GB,文件创建完成后,扩容1个同样配置的新节点4入集群,扩容成功后,节点4已使用容量为0,触发扩容迁移,如图12中所示。
在扩容迁移时,可轮询获取每个节点和磁盘的已使用容量,根据已使用容量大小排序,排序结果如图13中所示。
然后判断扩容迁移条件是否满足,设定扩容迁移容量差阈值为500GB,计算容量差值:lab(2500GB–(2500*3)GB/4)=625GB>阈值500GB,可确定满足扩容迁移条件。根据以上排序结果,选择排序后已使用容量最大的DN1和磁盘1为迁出DN和迁出磁盘,DN4为迁入节点,获取100个在DN1-DISK1上且满足迁移可靠性的block的数据信息放入迁移表TBL_MIGRATION中等待迁移。
当迁移表个数低于10个时,再次获取各DN和磁盘的已使用容量,进行扩容迁移容量计算,若每个节点都完成一组100个block迁移,节点1/2/3都有容量64M*100=6400M=6.25GB迁移到节点4,其中,64M是指一个数据块的大小。此时各个节点和磁盘上的已使用容量如图14中所示。
可轮询获取每个节点和磁盘的已使用容量,根据已使用容量大小排序,排序结果如图15中所示。
计算容量差值:lab(2493.75GB–(2493.75*3+18.75)GB/4)=618.75GB>阈值500GB,满足扩容迁移条件,再根据以上同样步骤进行扩容迁移,直到容量差值计算结果不大于阈值500GB时,则停止扩容迁移。
本实施例所提供的数据迁移存储方法,可在集群恢复正常后,将恢复完成的数据块迁移到原始位置,保证集群数据的可靠性和集群容量的均衡性。并且,对于构成成环结构但不满足预设可靠性要求导致无法回迁的数据块,采用破坏成环结构的方式,直接设定为迁移完成状态,保证所有数据块均能正常迁移。此外,在集群不满足容量使用需求,而扩容新磁盘和节点后导致节点容量不均衡的场景下,扩容迁移能够保证集群在不影响正常使用时,均衡各节点和磁盘容量,保障集群负载均衡。
请参阅图16,为本申请实施例提供的管理节点的示例性组件示意图。该管理节点可包括存储介质110、处理器120、数据迁移存储装置130及通信接口140。本实施例中,存储介质110与处理器120均位于管理节点中且二者分离设置。然而,应当理解的是,存储介质110也可以是独立于管理节点之外,且可以由处理器120通过总线接口来访问。可替换地,存储介质110也可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
数据迁移存储装置130可以理解为上述管理节点,或管理节点的处理器120,也可以理解为独立于上述管理节点或处理器120之外的在管理节点控制下实现上述数据迁移存储方法的软件功能模块。
如图17所示,上述数据迁移存储装置130可以包括获取模块131、第一检测模块132、迁移模块133、第二检测模块134、标记模块135和等待模块136。下面分别对该数据迁移存储装置130的各个功能模块的功能进行详细阐述。
获取模块131,用于在触发迁移操作时,获取待迁移数据块;
可以理解,该获取模块131可以用于执行上述步骤S201,关于该获取模块131的详细实现方式可以参照上述对步骤S201有关的内容。
第一检测模块132,用于根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求;
可以理解,该第一检测模块132可以用于执行上述步骤S202,关于该第一检测模块132的详细实现方式可以参照上述对步骤S202有关的内容。
迁移模块133,用于在满足所述预设可靠性要求时,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘;
可以理解,该迁移模块133可以用于执行上述步骤S203,关于该迁移模块133的详细实现方式可以参照上述对步骤S203有关的内容。
第二检测模块134,用于在不满足所述预设可靠性要求时,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构;
可以理解,该第二检测模块134可以用于执行上述步骤S204,关于该第二检测模块134的详细实现方式可以参照上述对步骤S204有关的内容。
标记模块135,用于在构成成环结构时,直接将所述两个待迁移数据块标记为迁移完成状态;
可以理解,该标记模块135可以用于执行上述步骤S205,关于该标记模块135的详细实现方式可以参照上述对步骤S205有关的内容。
等待模块136,用于在不构成成环结构时,等待下一次迁移操作的触发。
可以理解,该等待模块136可以用于执行上述步骤S206,关于该等待模块136的详细实现方式可以参照上述对步骤S206有关的内容。
在一种可能的实施方式中,所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述数据迁移存储装置130还包括恢复模块,该恢复模块可以用于:
在确定存储节点或磁盘离线时,获取离线的存储节点或磁盘上的数据块的数据信息并存入恢复表中;
扫描所述恢复表中的数据信息,并检测当前是否存在与扫描的数据信息对应的数据块所属同一数据的其他数据块处于恢复状态中;
若存在,则跳过所述数据信息执行下一个数据块的数据信息的扫描;
若不存在,则将所述数据信息对应的数据块发送至从其他在线的存储节点中确定出的目的存储节点或目的磁盘进行恢复。
在一种可能的实施方式中,上述恢复模块可以用于:
在监测到存储节点或磁盘离线且离线时长超过预设时长时,确定存储节点或磁盘离线。
在一种可能的实施方式中,所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述第一检测模块132可以用于:
检测当前是否存在与所述待迁移数据块所属同一数据的数据块处于等待迁移状态中,若不存在,检测所述目的磁盘中是否存在与所述待迁移数据块所属同一数据的数据块;
若不存在,再检测所述目的存储节点中与所述待迁移数据块所属同一数据的数据块的数量是否小于预设最大允许个数,若小于,则判定所述待迁移数据块满足预设可靠性要求。
在一种可能的实施方式中,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,所述数据迁移存储装置130还可以包括判断模块,该判断模块可以用于:
获取所述分布式集群中当前存在的各个存储节点的已使用容量;
根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的存储节点容量差阈值,判断是否进行存储节点之间的扩容迁移,若判定进行存储节点之间的扩容迁移,则触发迁移操作。
在一种可能的实施方式中,上述判断模块可以用于:
根据分布式集群中所有存储节点的存储节点总已使用容量,并结合当前存在的存储节点的数量计算得到存储节点平均已使用容量;
针对任意一个存储节点,基于该存储节点的使用容量与所述存储节点平均已使用容量之间的差值,判断是否进行存储节点之间的扩容迁移。
在一种可能的实施方式中,上述获取模块131可以用于:
比较所述分布式集群中当前存在的各个存储节点的已使用容量的高低;
将已使用容量最高的存储节点作为迁出存储节点,将已使用容量最低的存储节点作为目的存储节点;
从所述迁出存储节点中提取数据块,作为待迁移数据块。
在一种可能的实施方式中,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,上述判断模块还可以用于:
针对所述分布式集群中的存在新增磁盘的存储节点,获取所述存储节点下各个磁盘的已使用容量;
根据所述存储节点下的磁盘的数量、各所述磁盘的已使用容量以及预设的磁盘容量差阈值,判断是否进行磁盘之间的扩容迁移,若判定进行磁盘之间的扩容迁移,则触发迁移操作。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
综上所述,本申请实施例提供的数据迁移存储方法、装置和管理节点,在触发迁移操作时获取待迁移数据块,根据待迁移数据块的目的存储节点和目的磁盘中的数据块,在判定待迁移数据块满足预设可靠性要求时,将待迁移数据块迁移至目标存储节点和目的磁盘。在不满足预设可靠性要求时,检测待迁移数据块是否构成成环结构,如果构成,则直接将待迁移数据块标记为迁移完成状态,若不构成,则等待下一次迁移操作的触发。该方案中,基于目标存储节点和目的磁盘中的数据块来判断待迁移数据块是否满足预设可靠性要求,避免由于迁移可能导致的后续异常进而导致数据丢失的问题。并且,对于其中构成特殊的成环结构的待迁移数据块,采用直接标记迁移成功的方式,一则可以避免不必要的迁移工作,二则可以保障各个数据块均能得到合理迁移。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种数据迁移存储方法,其特征在于,应用于分布式集群中的管理节点,所述分布式集群还包括与所述管理节点连接的多个存储节点,各所述存储节点包括多个磁盘,各所述磁盘用于存储数据,各数据被分割为多个数据块,所述方法包括:
在触发迁移操作时,获取待迁移数据块;
根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求,若满足所述预设可靠性要求,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘;
若不满足所述预设可靠性要求,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构;
若构成成环结构,则直接将所述两个待迁移数据块标记为迁移完成状态;
若不构成成环结构,则等待下一次迁移操作的触发;
所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求的步骤,包括:
检测当前是否存在与所述待迁移数据块所属同一数据的数据块处于等待迁移状态中,若不存在,检测所述目的磁盘中是否存在与所述待迁移数据块所属同一数据的数据块;若不存在,再检测所述目的存储节点中与所述待迁移数据块所属同一数据的数据块的数量是否小于预设最大允许个数,若小于,则判定所述待迁移数据块满足预设可靠性要求。
2.根据权利要求1所述的数据迁移存储方法,其特征在于,所述迁移操作包括存储节点或磁盘离线再上线后的恢复迁移操作,所述方法还包括存储节点或磁盘离线时对数据块进行恢复的步骤,该步骤包括:
在确定存储节点或磁盘离线时,获取离线的存储节点或磁盘上的数据块的数据信息并存入恢复表中;
扫描所述恢复表中的数据信息,并检测当前是否存在与扫描的数据信息对应的数据块所属同一数据的其他数据块处于恢复状态中;
若存在,则跳过所述数据信息执行下一个数据块的数据信息的扫描;
若不存在,则将所述数据信息对应的数据块发送至从其他在线的存储节点中确定出的目的存储节点或目的磁盘进行恢复。
3.根据权利要求2所述的数据迁移存储方法,其特征在于,所述确定存储节点或磁盘离线的步骤,包括:
在监测到存储节点或磁盘离线且离线时长超过预设时长时,确定存储节点或磁盘离线。
4.根据权利要求1所述的数据迁移存储方法,其特征在于,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,所述在触发迁移操作的步骤之前,所述方法还包括:
获取所述分布式集群中当前存在的各个存储节点的已使用容量;
根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的存储节点容量差阈值,判断是否进行存储节点之间的扩容迁移,若判定进行存储节点之间的扩容迁移,则触发迁移操作。
5.根据权利要求4所述的数据迁移存储方法,其特征在于,所述根据当前存在的存储节点的数量、当前存在的各个存储节点的已使用容量以及预设的容量差阈值,判断是否进行存储节点之间的扩容迁移的步骤,包括:
根据分布式集群中所有存储节点的存储节点总已使用容量,并结合当前存在的存储节点的数量计算得到存储节点平均已使用容量;
针对任意一个存储节点,基于该存储节点的使用容量与所述存储节点平均已使用容量之间的差值,判断是否进行存储节点之间的扩容迁移。
6.根据权利要求4所述的数据迁移存储方法,其特征在于,所述获取待迁移数据块的步骤,包括:
比较所述分布式集群中当前存在的各个存储节点的已使用容量的高低;
将已使用容量最高的存储节点作为迁出存储节点,将已使用容量最低的存储节点作为目的存储节点;
从所述迁出存储节点中提取数据块,作为待迁移数据块。
7.根据权利要求1所述的数据迁移存储方法,其特征在于,所述迁移操作包括在所述分布式集群中存在新增存储节点时的扩容迁移,所述在触发迁移操作的步骤之前,所述方法还包括:
针对所述分布式集群中的存在新增磁盘的存储节点,获取所述存储节点下各个磁盘的已使用容量;
根据所述存储节点下的磁盘的数量、各所述磁盘的已使用容量以及预设的磁盘容量差阈值,判断是否进行磁盘之间的扩容迁移,若判定进行磁盘之间的扩容迁移,则触发迁移操作。
8.一种数据迁移存储装置,其特征在于,用于实现权利要求1-7任意一项所述的数据迁移存储方法,应用于分布式集群中的管理节点,所述分布式集群还包括与所述管理节点连接的多个存储节点,各所述存储节点包括多个磁盘,各所述磁盘用于存储数据,各数据被分割为多个数据块,所述装置包括:
获取模块,用于在触发迁移操作时,获取待迁移数据块;
第一检测模块,用于根据所述待迁移数据块的目的存储节点和目的磁盘中的数据块,检测所述待迁移数据块是否满足预设可靠性要求;
迁移模块,用于在满足所述预设可靠性要求时,将所述待迁移数据块迁移至所述目的存储节点和目的磁盘;
第二检测模块,用于在不满足所述预设可靠性要求时,检测所述待迁移数据块是否构成成环结构,其中,所述成环结构为两个待迁移数据块各自的当前存储节点为彼此的目的存储节点的结构;
标记模块,用于在构成成环结构时,直接将所述两个待迁移数据块标记为迁移完成状态;
等待模块,用于在不构成成环结构时,等待下一次迁移操作的触发。
9.一种管理节点,其特征在于,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当管理节点运行时,处理器执行所述机器可执行指令,以执行权利要求1-7中任意一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210475723.1A CN114895849B (zh) | 2022-04-29 | 2022-04-29 | 数据迁移存储方法、装置和管理节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210475723.1A CN114895849B (zh) | 2022-04-29 | 2022-04-29 | 数据迁移存储方法、装置和管理节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114895849A CN114895849A (zh) | 2022-08-12 |
CN114895849B true CN114895849B (zh) | 2024-11-01 |
Family
ID=82719458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210475723.1A Active CN114895849B (zh) | 2022-04-29 | 2022-04-29 | 数据迁移存储方法、装置和管理节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895849B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583930A (zh) * | 2014-08-15 | 2015-04-29 | 华为技术有限公司 | 数据迁移的方法、控制器和数据迁移装置 |
CN108182107A (zh) * | 2018-01-02 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种虚拟机迁移的检测方法及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306369B (zh) * | 2019-07-29 | 2024-12-31 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN111580963B (zh) * | 2020-04-29 | 2023-07-11 | 平安科技(深圳)有限公司 | 存储集群的负载均衡方法、装置、计算机设备及存储介质 |
CN111984370B (zh) * | 2020-07-30 | 2022-10-25 | 苏州浪潮智能科技有限公司 | 一种多磁盘虚拟机在线迁移到不同存储池的方法及装置 |
CN111880751B (zh) * | 2020-09-28 | 2020-12-25 | 浙江大华技术股份有限公司 | 一种硬盘迁移方法、分布式存储集群系统和存储介质 |
CN112988065B (zh) * | 2021-02-08 | 2023-11-17 | 北京星网锐捷网络技术有限公司 | 数据迁移方法、装置、设备及存储介质 |
-
2022
- 2022-04-29 CN CN202210475723.1A patent/CN114895849B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104583930A (zh) * | 2014-08-15 | 2015-04-29 | 华为技术有限公司 | 数据迁移的方法、控制器和数据迁移装置 |
CN108182107A (zh) * | 2018-01-02 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种虚拟机迁移的检测方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114895849A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509153B (zh) | Osd选择方法、数据写入和读取方法、监控器和服务器集群 | |
US7266718B2 (en) | Computer system for recovering data based on priority of the data | |
US10645152B2 (en) | Information processing apparatus and memory control method for managing connections with other information processing apparatuses | |
US7778984B2 (en) | System and method for a distributed object store | |
CN106951559B (zh) | 分布式文件系统中数据恢复方法及电子设备 | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
EP2921974A1 (en) | Data restoration method and system | |
EP1387269A1 (en) | Backup system and method of generating a checkpoint for a database | |
CN111597270B (zh) | 数据同步方法、装置、设备及计算机存储介质 | |
US9330153B2 (en) | System, method, and computer readable medium that coordinates between devices using exchange of log files | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN112711382B (zh) | 基于分布式系统的数据存储方法、装置和存储节点 | |
JP2008090798A (ja) | データ処理システムのバックアップ制御装置及びシステム | |
US7603423B2 (en) | Communication system with primary device and standby device to prevent suspension of service of the system | |
CN111488124A (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN115756333A (zh) | 异常节点处理方法、装置、元数据服务器及存储介质 | |
CN114895849B (zh) | 数据迁移存储方法、装置和管理节点 | |
CN109976662B (zh) | 数据存储方法、装置及分布式存储系统 | |
CN105760114A (zh) | 一种并行文件系统资源管理方法、装置和系统 | |
US8069364B2 (en) | Method to recover from logical path failures | |
JP2006012005A (ja) | 自律ストレージ装置、自律ストレージシステム、ネットワーク負荷分散プログラム及びネットワーク負荷分散方法 | |
JP5601587B2 (ja) | プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム | |
JP4716492B2 (ja) | 冗長構成システムおよび第1のコンピュータシステムに障害が発生したときに第2のコンピュータシステムが直ちにリカバーする方法 | |
JP7332249B2 (ja) | 移行先決定プログラム、装置、及び方法 | |
CN114090212B (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 |