CN112612412B - 一种分布式存储系统中数据重构的方法、存储节点设备 - Google Patents
一种分布式存储系统中数据重构的方法、存储节点设备 Download PDFInfo
- Publication number
- CN112612412B CN112612412B CN202011401362.3A CN202011401362A CN112612412B CN 112612412 B CN112612412 B CN 112612412B CN 202011401362 A CN202011401362 A CN 202011401362A CN 112612412 B CN112612412 B CN 112612412B
- Authority
- CN
- China
- Prior art keywords
- reconstruction
- speed
- task
- storage node
- time interval
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000001960 triggered effect Effects 0.000 claims abstract description 19
- 239000012634 fragment Substances 0.000 claims description 48
- 238000007726 management method Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式存储系统中数据重构的方法,其特征在于,该方法包括,在存储节点侧,当重构任务被触发时,根据当前第一重构速度和当前第二重构速度,确定该存储节点当前重构速度,按照当前重构速度,进行数据重构,其中,第一重构速度为该存储节点自身速度,第二重构速度为该存储节点所在集群的期望目标重构速度。本发明使得集群整体重构速度得以自适应地调整,维持了整个集群重构速度的动态平衡,避免了重构任务过快地执行而带来的重构压力,降低了集群中的资源的抢占。
Description
技术领域
本发明涉及数据存储领域,特别地,涉及一种分布式存储系统中数据重构的方法和存储节点设备。
背景技术
分布式存储系统是一种将数据分布式存储于多个位于不同物理位置的存储节点、各存储节点之间通过网络互相连接,组成一个完整的、整体逻辑上集中而物理上分散的系统。
为防止硬件故障或机器宕机导致的数据丢失,提高数据容灾性保护,分布式存储现有的数据冗余保护方案包括冗余备份和冗余编码两种。其中,冗余编码技术相比于冗余备份更能节省存储空间而被广泛应用于分布式存储系统中来保证数据的可靠性。
然而,传统的冗余编码技术,在重构数据时将消耗更长的时间,从而增加了发生永久性数据丢失的风险。
发明内容
本发明提供了一种分布式存储系统中数据重构的方法,以控制重构数据所带来的系统资源消耗。
本发明提供的一种分布式存储系统中数据重构的方法是这样实现的:在存储节点侧,
当重构任务被触发时,根据第一重构速度和第二重构速度,确定该存储节点当前重构速度,
按照当前重构速度,进行数据重构,
其中,
第一重构速度为该存储节点当前自身速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度。
较佳地,所述根据当前第一重构速度和当前第二重构速度,确定该存储节点当前重构速度,包括,
根据存储节点第一重构速度、第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定下一重构任务被执行的第二时间间隔,
所述按照当前重构速度,进行数据重构,包括,
当到达所述第二时间间隔时,执行重构任务,进行数据重构。
较佳地,所述根据存储节点当前第一重构速度、第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定下一重构任务被执行的第二时间间隔,包括,
根据第二重构速度、集群内的存储节点数量,计算集群内每台存储节点的平均重构速度,得到第三重构速度;
在存储节点负载小于设定的负载阈值时,计算第一重构速度与第三重构速度的比值,将该比值与第一时间间隔相乘,得到第二时间间隔;
若第二时间间隔大于设定的最小值、且小于设定的最大值,则该第二时间间隔为最终结果,
若第二时间间隔小于等于最小值,则将该最小值作为第二时间间隔,
若第二时间间隔大于等于最大值,则将该最大值作为第二时间间隔。
较佳地,所述存储节点负载小于设定的负载阈值包括至少以下之一:
存储节点的CPU负载率小于设定的第一阈值;
存储节点的内存负载率小于设定的第二阈值;
存储节点的网络资源负载率小于设定的第三阈值;
所述重构任务按照优先级被触发。
较佳地,所述重构任务被触发之前进一步包括,
存储节点定时获取存储资源状态信息,
根据存储资源状态信息,判断是否故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息,其中,数据条带索引信息用于记录来自客户端的用户数据经冗余编码所得到的数据分片的存储位置信息,
根据故障数据条带索引信息,获得故障数据分片,
根据故障数据分片,分别生成重构任务;
所述重构任务被触发之后,进一步包括,
定时获取集群信息,所述集群信息至少包括集群中的存储节点数量、以及第二重构速度,
定时统计第一重构速度、以及负载情况。
较佳地,所述存储节点包括条带管理服务程序、审计者服务程序、以及资源管理服务程序,
所述存储节点定时获取存储资源状态信息包括,
条带管理服务程序定时与资源管理服务程序同步存储资源状态信息;
重构任务被触发后,审计者服务程序定时向资源管理服务程序获取集群信息,定时统计第一重构速度、以及负载情况,并按照当前重构速度,执行重构任务。
较佳地,所述根据存储资源状态信息,判断是否存在故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息的步骤、和
所述根据故障数据条带索引信息,获得故障数据分片的步骤、以及
所述根据故障数据分片,分别生成重构任务的步骤,
由条带管理服务程序处理;
审计者服务程序接收条带管理服务程序按照优先级发送重构任务,以及故障数据条带索引信息,根据故障数据条带索引信息读取正常数据分片,解码正常数据分片以进行数据重构。
较佳地,所述根据存储资源状态信息,判断是否故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息的步骤,由条带管理服务程序处理,
所述根据故障数据条带索引信息,获得故障数据分片,根据故障数据分片,分别生成重构任务,包括,
审计者服务程序接收条带管理服务程序发送的故障数据条带索引信息,根据故障数据条带索引信息,获得故障数据分片,
根据故障数据分片,按照优先级分别生成重构任务;
按照优先级触发执行重构任务。
本发明另一方面提供一种存储节点设备,应用于分布式存储系统中,该存储节点设备包括,
重构子模块,用于当重构任务被触发时,根据第一重构速度和第二重构速度,确定该存储节点当前重构速度,
按照当前重构速度,进行数据重构,
其中,
第一重构速度为该存储节点当前自身速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度。
本发明又一方面提供一种分布式存储系统,该系统包括至少一个存储节点设备,所述存储节点设备被配置为在重构任务被触发时,根据第一重构速度和第二重构速度,确定当前重构速度,
按照当前重构速度,进行数据重构,
其中,
第一重构速度为该存储节点当前自身速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度。
本发明提供的一种分布式存储系统中数据重构的方法,在重构任务被触发时,通过当前存储节点自身速度和当前集群的期望目标重构速度所确定的当前重构速度来进行数据重构,使得每个重构任务的重构速度都由当前所确定的重构速度来进行,从而使得集群整体重构速度得以自适应地调整,维持了整个集群重构速度的动态平衡,避免了重构任务过快地执行而带来的重构压力,降低了集群中的资源的抢占,由此降低了数据灾备对系统正常业务的冲击,保证了集群的正常读写业务。
附图说明
图1为现有冗余编码的数据分片存储的一种示意图。
图2为本申请数据重构的一种流程示意图。
图3为本申请实施例存储节点的一种示意图。
图4为本申请实现数据重构的一种流程示意图。
图5为触发数据重构任务的另一种实施方式的一种示意图。
图6为存储节点的审计者服务模块中重构子模块的一种示意图。
图7为分布式存储系统的一种示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
冗余编码技术通过数据分片及校验数据分片分布式存储于多个存储介质的方式来提高数据的安全性。在该技术方案中,用户数据被切片为一定大小的数据块,将N片用户数据分片作为一组进行编码计算,得到M个校验数据分片,用户数据分片和校验数据分片分布式存储于存储系统的多个不同存储节点中。如图1所示,4片用户数据分片D1~D4计算出2片校验数据分片P1、P2,并分散存储于6台不同的存储节点N1~N6中。
当存储节点发生故障时,可以通过读取校验数据分片及正常的用户数据分片,进行解码运算,重构出丢失的用户数据分片,从而达到保护数据的目的。例如,图1中,因存储节点N1、N3故障而导致用户数据分片D1、D3发生丢失,则可以通过用户数据分片D3、D4、以及校验数据分片P1、P2进行解码运算,重构出丢失的用户数据分片D1、D2。
申请人研究发现:
(1)在数据编解码过程中带来额外的CPU消耗;
(2)解码重构过程需要读取多倍的数据进行数据重构操作;这带来了额外的网络带宽消耗;
基于图1的示意,如果将4个原始数据分片计算成2个校验数据片,并存储在不同节点,形成冗余校验。那么如果丢失一个原始数据分片,则需要读取4个数据分片来完成数据重构操作,即,所读取的数据分片是丢失原始数据分片的4倍。对于一块10TB的磁盘,如果该磁盘发生损坏,则意味着存储系统需要读取40TB的数据来完成故障磁盘中数据的恢复任务。而对于一个48盘位的存储节点,如果该节点发生宕机,意味着存储系统需要读取480TB×4=1920TB的数据来完成宕机节点中数据的重构任务。那么在存储系统中存在单点故障以后,存储系统为了修复该故障导致的数据丢失,需要额外的去读取大量数据,这将会带来大量额外的网络带宽消耗。
(3)在数据丢失后,重构数据操作会抢占存储系统的资源,进而影响到系统既有的正常业务。
重构数据操作任务由分布于各个节点上的审计者(Auditor)服务程序来执行,整体的重构进度由中心服务器来统计。存储系统中的存储节点越多,则重构任务的执行者就会越多,单点故障丢失的数据就会越快的被修复完成。例如,以图1示意的4+2的冗余校验方式,每台节点如果每秒修复20MB数据分片,那么,根据所读取的数据分片是丢失原始数据分片的4倍,将会给系统额外带来80MB的读取压力,和修复后的数据分片20MB的写入压力。如果分布式存储系统中有20台这样的节点,则每秒额外带来1600MB的读取压力,400MB的写入压力。实际应用中为了减少节点之间数据交换的延迟,多台节点常常会挂接在同一交换机下;如果这20台节点挂在同一交换机下,那么各个节点会极大地竞争网络资源,用户业务被严重挤压,甚至影响系统可用性。
针对分布式存储系统中重构数据带来的额外压力不可控的弊端,本申请实施例提出了一种数据重构方法,在执行数据重构任务时,基于目标重构速度与自身实际重构速度进行自身重构时间间隔控制,从而实现自适应控制重构速度。
参见图2所示,图2为本申请数据重构的一种流程示意图。在重构任务被触发时,该数据重构方法包括,
步骤201,根据当前第一重构速度和当前第二重构速度,确定该存储节点当前重构速度,其中,第一重构速度为该存储节点自身速度,第二重构速度为该存储节点所在集群的期望目标重构速度。
在该步骤中,根据存储节点当前第一重构速度、第二重构速度、以及执行当前重构任务与上一重构任务的第一时间间隔,确定执行下一重构任务的第二时间间隔,
步骤202,按照当前重构速度,进行数据重构。
在该步骤中,当到达所述第二时间间隔时,执行重构任务,进行数据重构。
步骤203,返回步骤201,直至所有重构任务被执行完毕。
通过实时地调整执行下一重构任务的第二时间间隔,使得单位时间内所重构的数据量得到控制,从而实时控制了重构速度,到达自适应的控制效果。
参见图3所示,图3为本申请实施例存储节点的一种示意图。存储节点可以包括若干用于存储数据的存储节点设备,该存储节点设备可以为具有数据存储能力的服务器主机,数据存储于存储节点的磁盘中,例如,对象存储设备OSD(Object Storage Device),一个对象存储设备上有多块磁盘。承载同一业务的多个存储节点设备成为一个集群。
每个存储节点设备中,包括条带服务模块、条带管理服务模块、资源管理服务模块、OSD、以及审计者服务模块。可选实施方式是,
资源管理服务(Resource Management Service)模块用于统计整个集群中的所有存储资源,并进行读写业务的存储资源分配;
条带服务(SS,Stripe Service)模块用于将来自客户端的用户数据切片成用户数据分片,将多个分片组织成数据条带,计算数据条带的校验值,得到校验数据分片,将数据分片和校验分片写入到OSD,并将数据条带索引信息发送给条带管理服务模块;
条带管理服务(SMS,Stripe Manage Service)模块序负责管理存储节点中数据对应的条带信息。条带管理服务模块定时向资源管理服务模块同步存储节点中存储资源的状态信息,如磁盘损坏、节点宕机等,若检测到磁盘损坏或是节点宕机时,则扫描该存储节点中数据所对应的数据条带索引信息,生成数据条带重构任务发送给审计者服务模块,并将状态故障的数据条带索引发送给审计者服务模块。
审计者服务模块,用于收到SMS模块下发的条带重构任务后,将重构任务记录于数据库中,然后逐个执行重构任务,即,从该存储节点中读取出数据条带中正常的用户数据分片及校验数据分片,按照自适应重构逻辑重构出损坏的用户数据分片,并写入到新的OSD中。
上述条带服务模块、条带管理服务模块、资源管理服务模块,以及审计者服务模块可以是程序,或者进程,上述所写入的OSD可以是本存储节点的OSD,也可以是其他正常存储节点的OSD。
为便于理解本发明,参见图4所示,图4为本申请实现数据重构的一种流程示意图。其中,步骤401~步骤405为用户数据存储的过程,步骤406~步骤407为存储节点正常情况下的日常管理。步骤408~步骤409为检测到存储节点故障情况下的数据重构过程。具体说明如下。
在条带服务程序侧,包括,
步骤401,条带服务程序接收来自客户端的用户数据,将用户数据切片成数据分片(unit),
可选的实施方式是,一个数据分片为一个基本数据单元,例如,可以设为1M大小的数据块。
步骤402,将多个unit组织成数据条带,并建立数据条带索引信息,
可选的实施方式是,一个数据条带由若干个unit组成,数据条带索引信息存储有每个数据条带中的每个unit具体存放的存储节点的位置信息。
步骤403,以数据条带的冗余校验方式,进行编码计算,得到校验数据分片,
在该步骤中,基于数据条带计算校验值,得到校验数据分片,
步骤404,将数据条带以及校验分片写入OSD。
步骤405,将数据条带索引信息发送给条带管理服务程序。
在条带管理服务程序侧,包括,
步骤406,定时向资源管理服务程序同步存储节点中存储资源的状态信息,
步骤407,根据同步的状态信息判断是否存在存储节点故障,例如,磁盘损坏、节点宕机等,
如果未检测到存储节点故障,则返回步骤406,继续定时向资源管理服务程序同步存储节点中存储资源的状态信息,
如果检测到存储节点故障,则扫描数据条带索引信息,以获得故障OSD的数据条带索引信息;
一种可选的实施方式是,根据故障的数据条带索引信息,获取需要重构数据所归属的数据条带,分别生成数据重构任务,将所获的故障存储节点的数据条带索引信息、以及重构任务分别发送给需要重构数据所归属的数据条带所存储的存储节点的审计者服务程序,所述重构任务的发送可以是均匀地发送,也可以按照优先级进行发送,优先级较高的重构任务先发送,优先级较低的重构任务后发送;这样,有利于存储服务器对重构的进度进行控制。
例如,根据故障的数据条带索引信息,可以确定需要重构数据所归属的数据条带分别在存储节点1、存储节点2,则分别生成第一重构任务和第二重构任务;将所获的故障存储节点的数据条带索引信息、以及重构任务分别发送给存储节点1、存储节点2的审计者服务程序;
在审计者服务程序侧,接收到条带管理服务程序下发的重构数据任务后,包括,
步骤408,判断是否到达执行重构数据任务的时间间隔,
如果是,则执行重构数据任务,其中,重构数据包括如下处理:根据数据条带索引信息从存储节点中读取出数据条带中正常的用户数据分片和校验数据分片,进行解码计算,重构出损坏的用户数据分片,写入正常工作的OSD,例如,重新写入其他OSD;
数据重构完成后,审计者服务程序向条带管理服务程序上报重构结果,例如,更新数据条带索引,返回给条带管理服务程序,以便条带管理服务程序将更新的数据条带索引反馈给条带服务程序。
否则,执行步骤409,
步骤409,为了能够自适应地控制存储节点自身的重构速度,定期向资源管理服务程序获取存储节点数量、期望目标重构速度(第二重构速度)等集群信息,定时统计存储节点自身的CPU、内存、网络压力情况,定时统计自身的实际重构速度,得到第一重构速度,根据获取到的集群信息计算出第三重构速度,该第三重构速度可以是理论平均重构速度;
例如,若设定存储节点所在集群的期望目标重构速度(第二重构速度)为M,单位为MB/秒,集群内的存储节点数量为N,则集群内每台节点的平均重构速度(第三重构速度)S为:
S=M/N;
从上式可见,集群中存储节点越多,单节点的重构任务执行的速度就越慢。
结合存储节点本身的网络、CPU、内存的资源,根据第三重构速度和第一重构速度,计算该存储节点执行下一重构任务与执行当前重构任务的第二时间间隔T1:
设当前执行重构任务的第一重构速度为S0,单位为MB/秒,当前重构时间间隔为T0(即当前重构任务与上一重构任务被执行的第一时间间隔),
当该存储节点负载正常,即,负载小于设定的阈值,则执行下一重构任务的第二时间间隔T1为:
T1=(S0/S)×T0
所述负载至少包括CPU负载、内存负载、网络负载之一。例如,当CPU负载率小于设定的第一阈值时、内存负载率小于设定的第二阈值时、网络负载率小于设定的第三阈值时,说明存储节点负载正常。
如果所计算的第二时间间隔T1在设定的取值范围内,该取值范围为最大值Tmax和最小值Tmin之间,则执行下一重构任务的时间间隔(第二时间间隔)为计算结果的本身,
如果所计算的时间间隔T1小于等于最小值Tmin,则执行下一重构任务的时间间隔(第二时间间隔)为Tmin,
如果所计算的时间间隔T1大于等于最大值Tmax,则执行下一重构任务的时间间隔(第二时间间隔)为最大值Tmax。
用数学式表示为:
可选的实施方式,取值范围根据经验值设定。
上述重构任务的执行结合了存储节点本身的情况,在自身的网络资源、CPU、内存等资源紧张时,减慢重构速度,以便优先保证存储集群的正常读写业务。在通过对重构任务的时间间隔边界的控制,避免了故障情形下自适应控制逻辑失效时重构速度过快或过慢。
参见图5所示,图5为触发数据重构任务的另一种实施方式的一种示意图。
在条带管理服务程序侧,包括,
步骤501,定时向资源管理服务程序同步存储节点中存储资源的状态信息,
步骤502,根据同步的状态信息判断是否存在存储节点故障,例如,磁盘损坏、节点宕机等,
如果未检测到存储节点故障,则返回步骤501,继续定时向资源管理服务程序同步存储节点中存储资源的状态信息,
如果检测到存储节点故障,则扫描数据条带索引信息,以获得故障存储节点的数据条带索引信息;将故障存储节点的数据条带索引信息发送给审计者服务程序,以触发审计者服务程序进行数据重构。
在审计者服务程序侧,接收到来自条带管理服务程序侧的数据条带索引信息后,包括如下步骤:
步骤503,根据故障存储节点的数据条带索引信息,获取需要重构的数据分片,根据需要重构的数据分片,分别生成重构任务,较佳地,按照数据的重要性对重构任务设置优先级,优先级高的重构任务优先执行,
步骤504,判断是否到达执行当前重构数据任务的时间间隔,
如果是,则执行重构数据任务,其中,重构数据包括如下处理:根据数据条带索引信息从存储节点中读取出数据条带中正常的用户数据分片和校验数据分片,进行解码计算,重构出损坏的用户数据分片,写入正常工作的存储节点,例如,重新写入其他OSD;
数据重构完成后,审计者服务程序向条带管理服务程序上报重构结果,例如,更新数据条带索引,返回给条带管理服务程序,以便条带管理服务程序将更新的数据条带索引反馈给条带服务程序。
否则,执行步骤505。
步骤505与步骤409相同。
本实施方式中,由审计者服务程序收到故障数据条带索引信息后,基于故障数据条带索引信息,分别生成重构任务。
参见图6所示,图6为存储节点的审计者服务模块中重构子模块的一种示意图。该重构子模块被配置为,当重构任务被触发时,根据当前第一重构速度和当前第二重构速度,确定该存储节点当前重构速度,
按照当前重构速度,进行数据重构。
所述存储节点包括存储器和处理器,处理器被配置为执行本发明所述数据重构方法的步骤。其中,存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
参见图7所示,图7为分布式存储系统的一种示意图。该系统包括至少一个存储节点,所述存储被配置为在重构任务被触发时,根据当前第一重构速度和当前第二重构速度,确定当前重构速度;按照当前重构速度,进行数据重构。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请所述数据重构方法的步骤。
对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种分布式存储系统中数据重构的方法,其特征在于,该方法包括,在存储节点侧,
当当前重构任务被触发时,根据第一重构速度和第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定当前重构任务与下一重构任务被执行的第二时间间隔,以确定该存储节点当前重构速度,所述第二时间间隔用于控制单位时间内所重构的数据量,
当到达所述第二时间间隔时,执行所述下一重构任务,
其中,
第一重构速度为该存储节点自身的实际重构速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度,所述期望目标重构速度用于表征集群中所有存储节点的总重构速度;
所述根据存储节点当前第一重构速度、第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定下一重构任务被执行的第二时间间隔,包括:
根据第二重构速度、集群内的存储节点数量,计算集群内每台存储节点的平均重构速度,得到第三重构速度;
结合存储节点本身的网络、CPU、内存的资源至少之一,根据所述第三重构速度和所述第一重构速度,以及当前重构任务与上一重构任务被执行的第一时间间隔,计算该存储节点执行下一重构任务与执行当前重构任务的第二时间间隔。
2.如权利要求1所述的方法,其特征在于,所述结合存储节点本身的网络、CPU、内存的资源至少之一,根据所述第三重构速度和所述第一重构速度,以及当前重构任务与上一重构任务被执行的第一时间间隔,计算该存储节点执行下一重构任务与执行当前重构任务的第二时间间隔,包括,
在存储节点负载小于设定的负载阈值时,计算第一重构速度与第三重构速度的比值,将该比值与第一时间间隔相乘,得到第二时间间隔;
若第二时间间隔大于设定的最小值、且小于设定的最大值,则该第二时间间隔为最终结果,
若第二时间间隔小于等于最小值,则将该最小值作为第二时间间隔,
若第二时间间隔大于等于最大值,则将该最大值作为第二时间间隔。
3.如权利要求2所述的方法,其特征在于,所述存储节点负载小于设定的负载阈值包括至少以下之一:
存储节点的CPU负载率小于设定的第一阈值;
存储节点的内存负载率小于设定的第二阈值;
存储节点的网络资源负载率小于设定的第三阈值;
所述重构任务按照优先级被触发。
4.如权利要求1至3任一所述的方法,其特征在于,所述重构任务被触发之前进一步包括,
存储节点定时获取存储资源状态信息,
根据存储资源状态信息,判断是否故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息,其中,数据条带索引信息用于记录来自客户端的用户数据经冗余编码所得到的数据分片的存储位置信息,
根据故障数据条带索引信息,获得故障数据分片,
根据故障数据分片,分别生成重构任务;
所述重构任务被触发之后,进一步包括,
定时获取集群信息,所述集群信息至少包括集群中的存储节点数量、以及第二重构速度,
定时统计第一重构速度、以及负载情况。
5.如权利要求4所述的方法,其特征在于,所述存储节点包括条带管理服务程序、审计者服务程序、以及资源管理服务程序,
所述存储节点定时获取存储资源状态信息包括,
条带管理服务程序定时与资源管理服务程序同步存储资源状态信息;
重构任务被触发后,审计者服务程序定时向资源管理服务程序获取集群信息,定时统计第一重构速度、以及负载情况,并按照当前重构速度,执行重构任务。
6.如权利要求5所述的方法,其特征在于,所述根据存储资源状态信息,判断是否存在故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息的步骤、和
所述根据故障数据条带索引信息,获得故障数据分片的步骤、以及
所述根据故障数据分片,分别生成重构任务的步骤,
由条带管理服务程序处理;
审计者服务程序接收条带管理服务程序按照优先级发送重构任务,以及故障数据条带索引信息,根据故障数据条带索引信息读取正常数据分片,解码正常数据分片以进行数据重构。
7.如权利要求5所述的方法,其特征在于,所述根据存储资源状态信息,判断是否故障,当检测到故障时,扫描数据条带索引信息,获得故障数据条带索引信息的步骤,由条带管理服务程序处理,
所述根据故障数据条带索引信息,获得故障数据分片,根据故障数据分片,分别生成重构任务,包括,
审计者服务程序接收条带管理服务程序发送的故障数据条带索引信息,根据故障数据条带索引信息,获得故障数据分片,
根据故障数据分片,按照优先级分别生成重构任务;
按照优先级触发执行重构任务。
8.一种存储节点设备,应用于分布式存储系统中,其特征在于,该存储节点设备包括,
重构子模块,用于当当前重构任务被触发时,根据第一重构速度和第二重构速度、当前重构任务与上一重构任务被执行的第一时间间隔,确定当前重构任务与下一重构任务被执行的第二时间间隔,以确定该存储节点当前重构速度,所述第二时间间隔用于控制单位时间内所重构的数据量,
当到达所述第二时间间隔时,执行所述下一重构任务,
其中,
第一重构速度为该存储节点自身的实际重构速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度,所述期望目标重构速度用于表征集群中所有存储节点的总重构速度;
所述根据存储节点当前第一重构速度、第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定下一重构任务被执行的第二时间间隔,包括:
根据第二重构速度、集群内的存储节点数量,计算集群内每台存储节点的平均重构速度,得到第三重构速度;
结合存储节点本身的网络、CPU、内存的资源至少之一,根据所述第三重构速度和所述第一重构速度,以及当前重构任务与上一重构任务被执行的第一时间间隔,计算该存储节点执行下一重构任务与执行当前重构任务的第二时间间隔。
9.一种分布式存储系统,其特征在于,该系统包括至少一个存储节点设备,所述存储节点设备被配置为在重构任务被触发时,根据第一重构速度和第二重构速度、当前重构任务与上一重构任务被执行的第一时间间隔,确定当前重构任务与下一重构任务被执行的第二时间间隔,以确定当前重构速度,所述第二时间间隔用于控制单位时间内所重构的数据量,
当到达所述第二时间间隔时,执行所述下一重构任务,
其中,
第一重构速度为该存储节点自身的实际重构速度,
第二重构速度为该存储节点所在集群的当前期望目标重构速度,所述期望目标重构速度用于表征集群中所有存储节点的总重构速度;
所述根据存储节点当前第一重构速度、第二重构速度、以及当前重构任务与上一重构任务被执行的第一时间间隔,确定下一重构任务被执行的第二时间间隔,包括:
根据第二重构速度、集群内的存储节点数量,计算集群内每台存储节点的平均重构速度,得到第三重构速度;
结合存储节点本身的网络、CPU、内存的资源至少之一,根据所述第三重构速度和所述第一重构速度,以及当前重构任务与上一重构任务被执行的第一时间间隔,计算该存储节点执行下一重构任务与执行当前重构任务的第二时间间隔。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011401362.3A CN112612412B (zh) | 2020-12-02 | 2020-12-02 | 一种分布式存储系统中数据重构的方法、存储节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011401362.3A CN112612412B (zh) | 2020-12-02 | 2020-12-02 | 一种分布式存储系统中数据重构的方法、存储节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612412A CN112612412A (zh) | 2021-04-06 |
CN112612412B true CN112612412B (zh) | 2023-05-23 |
Family
ID=75228736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011401362.3A Active CN112612412B (zh) | 2020-12-02 | 2020-12-02 | 一种分布式存储系统中数据重构的方法、存储节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612412B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608502B (zh) * | 2024-01-24 | 2024-07-02 | 济南浪潮数据技术有限公司 | 分布式存储系统的数据重构管理方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2513377A (en) * | 2013-04-25 | 2014-10-29 | Ibm | Controlling data storage in an array of storage devices |
KR102611571B1 (ko) * | 2016-11-09 | 2023-12-07 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 raid 시스템 |
US10146459B1 (en) * | 2017-04-28 | 2018-12-04 | EMC IP Holding Company LLC | Disk activity balancing in mapped raid storage arrays by data remapping |
CN110515917B (zh) * | 2019-08-09 | 2022-12-02 | 苏州浪潮智能科技有限公司 | 一种控制重构速度的方法、装置及介质 |
CN111400241B (zh) * | 2019-11-14 | 2024-04-05 | 杭州海康威视系统技术有限公司 | 数据重构方法和装置 |
CN111352584A (zh) * | 2020-02-21 | 2020-06-30 | 北京天融信网络安全技术有限公司 | 一种数据重建方法及装置 |
-
2020
- 2020-12-02 CN CN202011401362.3A patent/CN112612412B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112612412A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726033B (zh) | 提供raid数据保护的方法、数据存储系统和计算机可读介质 | |
US7266716B2 (en) | Method and recovery of data using erasure coded data from stripe blocks | |
CN107844268B (zh) | 一种数据分发方法、数据存储方法、相关装置以及系统 | |
CN107273048B (zh) | 一种数据写入方法及装置 | |
US7284088B2 (en) | Methods of reading and writing data | |
US7310703B2 (en) | Methods of reading and writing data | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN102521058A (zh) | Raid组磁盘数据预迁移方法 | |
KR101574451B1 (ko) | 트랜잭션 메모리 시스템 내구성 부여 | |
US9069712B2 (en) | Communication of conditions at a primary storage controller to a host | |
CN116302673B (zh) | 一种提高Ceph存储系统数据恢复速率的方法 | |
EP3598289B1 (en) | Data storage, distribution, reconstruction and recovery methods and devices, and data processing system | |
CN112612412B (zh) | 一种分布式存储系统中数据重构的方法、存储节点设备 | |
CN115454727A (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN112463434B (zh) | 一种基于纠删码的数据重构方法、装置、设备及存储介质 | |
US11481275B2 (en) | Managing reconstruction of a malfunctioning disk slice | |
CN107885615B (zh) | 分布式存储数据的复原方法与系统 | |
Iliadis | Reliability evaluation of erasure coded systems under rebuild bandwidth constraints | |
CN111857549B (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN110431538B (zh) | 存储系统控制 | |
US8140752B2 (en) | Method of executing a background task and an array controller | |
CN116700623A (zh) | 一种数据存储方法、系统、电子设备及存储介质 | |
CN110389863A (zh) | 一种数据恢复方法、装置、设备及计算机可读存储介质 | |
CN118467236B (zh) | 数据存储方法、系统、程序产品、电子设备及存储介质 | |
US20170185321A1 (en) | Dynamic resilience in flash acceleration tiers |
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 |