CN109582213B - 数据重构方法及装置、数据存储系统 - Google Patents

数据重构方法及装置、数据存储系统 Download PDF

Info

Publication number
CN109582213B
CN109582213B CN201710903893.4A CN201710903893A CN109582213B CN 109582213 B CN109582213 B CN 109582213B CN 201710903893 A CN201710903893 A CN 201710903893A CN 109582213 B CN109582213 B CN 109582213B
Authority
CN
China
Prior art keywords
storage
data
storage node
target
disk
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
Application number
CN201710903893.4A
Other languages
English (en)
Other versions
CN109582213A (zh
Inventor
林鹏
汪渭春
林起芊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN201710903893.4A priority Critical patent/CN109582213B/zh
Priority to PCT/CN2018/108342 priority patent/WO2019062856A1/zh
Publication of CN109582213A publication Critical patent/CN109582213A/zh
Application granted granted Critical
Publication of CN109582213B publication Critical patent/CN109582213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

本申请公开了一种数据重构方法、装置及系统,属于数据存储技术领域。所述方法包括:在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向多个存储节点中的n个目标存储节点分别发送重构指令,其中,第一存储节点为多个存储节点中的任一存储节点,发送给n个目标重构节点的n个重构指令用于指示:对m个数据块进行重构并存储,n个目标存储节点中存在与第一存储节点不同的存储节点,m≥n≥1;向第一存储节点发送获取指令,获取指令用于指示第一存储节点获取并存储n个目标存储节点重构的m个数据块。本申请解决了数据存储系统的数据重构效率较低的问题,提高了数据存储系统数据重构的效率,本申请用于数据的重构。

Description

数据重构方法及装置、数据存储系统
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据重构方法及装置、数据存储系统。
背景技术
随着数据存储技术的发展,基于串行连接小型计算机系统接口(英文:SerialAttached Small Computer System Interface;简称:SAS)协议的数据存储系统得到了广泛的应用。
相关技术中,基于SAS协议的数据存储系统包括:元数据管理服务器(英文:Metadata Server;简称:MDS)、SAS交换机和多个存储节点,且该多个存储节点之间通过SAS交换机相互连接,每个存储节点包括多个磁盘。当用户终端需要在该数据存储系统中存储目标数据时,该数据存储系统中的一个存储节点会将该目标数据切割为多个数据块(也称对目标数据进行条带化处理,该多个数据块属于同一个条带),并将该多个数据块分别存储在不同的磁盘上。MDS可以用于存储每个数据块的条带信息(一种元数据),条带信息包括:数据块的条带标识、数据块所在的磁盘标识、数据块的标识、数据块的数据量以及数据块的纠删码(英文:Erasure Coding;简称:EC)类型。当存储节点上出现故障磁盘时,MDS可以向该存储节点发送重构指令,该重构指令包括该故障磁盘上存储的每个数据块的条带信息,该存储节点可以根据该重构指令中每个数据块的条带信息,对故障磁盘上存储的每个数据块进行重构,也即对每个数据块进行恢复。
但是,由于磁盘上通常存储有较多的数据块,且当该故障磁盘所在的存储节点的数据处理能力较弱时,该存储节点对故障磁盘上存储的数据的重构速度较慢,因此,数据存储系统的数据重构效率较低。
发明内容
本申请提供了一种数据重构方法及装置、数据存储系统,可以解决数据存储系统的数据重构效率较低的问题。所述技术方案如下:
第一方面,提供了一种数据重构方法,用于数据存储系统中的元数据管理服务器MDS,所述数据存储系统还包括:串行连接小型计算机系统接口SAS交换机和多个存储节点,所述多个存储节点通过所述SAS交换机相互连接,所述方法包括:
在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向所述多个存储节点中的n个目标存储节点分别发送重构指令,其中,所述第一存储节点为所述多个存储节点中的任一存储节点,发送给所述n个目标重构节点的n个重构指令用于指示:对所述m个数据块进行重构并存储,所述n个目标存储节点中存在与所述第一存储节点不同的存储节点,m≥n≥1;
向所述第一存储节点发送获取指令,所述获取指令用于指示所述第一存储节点获取并存储所述n个目标存储节点重构的所述m个数据块。
可选的,m≥n≥2,在所述向所述多个存储节点中的n个目标存储节点分别发送重构指令之前,所述方法还包括:
将所述多个存储节点中负载较小的n个存储节点,确定为所述n个目标存储节点;
或者,将所述多个存储节点中预设的n个存储节点,确定为所述n个目标存储节点;
或者,将所述多个存储节点中与所述MDS的路由距离最近的n个存储节点,确定为所述n个目标存储节点。
可选的,所述向所述多个存储节点中的n个目标存储节点分别发送重构指令,包括:
确定所述每个目标存储节点的负载;
根据所述n个目标存储节点的负载,确定所述每个目标存储节点对应的至少一个数据块,其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关;
生成所述每个目标存储节点对应的重构指令,其中,所述每个目标存储节点对应的重构指令用于指示:对所述每个目标存储节点对应的数据块进行重构并存储;
向所述每个目标存储节点发送所述每个目标存储节点对应的重构指令。
可选的,在所述向所述多个存储节点中的n个目标存储节点分别发送重构指令之后,所述方法还包括:
接收所述第一存储节点发送的存储申请消息,所述存储申请消息包括所述m个数据块的总数据量;
根据所述存储申请消息向所述第一存储节点发送存储指令,所述存储指令用于指示在目标磁盘上存储重构的所述m个数据块,所述目标磁盘为所述第一存储节点中可用存储容量大于或等于所述总数据量的磁盘。
可选的,所述目标磁盘上并未存储有相关数据块,所述相关数据块与所述m个数据块中的任一数据块属于同一条带。
可选的,在所述向所述第一存储节点发送存储指令之后,所述方法还包括:
接收所述第一存储节点发送的所述每个数据块的存储信息,所述每个数据块的存储信息包括:所述目标磁盘的标识以及所述每个数据块的标识;
根据所述每个数据块的存储信息中所述每个数据块的标识,确定所述每个数据块的条带信息;
将所述每个数据块的条带信息中所述每个数据块所在的磁盘的标识,修改为所述目标磁盘的标识。
可选的,所述多个存储节点中的每个存储节点包括:存储磁盘和缓存磁盘,所述每个存储节点具有所述存储磁盘的读权限,以及所述缓存磁盘的读写权限,所述n个目标存储节点包括缓存存储节点,发送给所述缓存存储节点的重构指令用于指示:将重构的数据块存储在所述缓存存储节点的缓存磁盘,在所述向所述第一存储节点发送获取指令之后,所述方法还包括:
接收所述第一存储节点发送的获取完毕消息,所述获取完毕消息用于指示所述第一存储节点已经获取并存储完毕重构的所述m个数据块;
向所述缓存存储节点发送删除指令,所述删除指令用于指示所述缓存节点删除所述缓存存储节点的缓存磁盘上存储的数据块。
第二方面,提供了一种数据重构装置,用于数据存储系统中的元数据管理服务器MDS,所述数据存储系统还包括:串行连接小型计算机系统接口SAS交换机和多个存储节点,所述多个存储节点通过所述SAS交换机相互连接,所述方法包括:
第一发送模块,用于在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向所述多个存储节点中的n个目标存储节点分别发送重构指令,其中,所述第一存储节点为所述多个存储节点中的任一存储节点,发送给所述n个目标重构节点的n个重构指令用于指示:对所述m个数据块进行重构并存储,所述n个目标存储节点中存在与所述第一存储节点不同的存储节点,m≥n≥1;
第二发送模块,用于向所述第一存储节点发送获取指令,所述获取指令用于指示所述第一存储节点获取并存储所述n个目标存储节点重构的所述m个数据块。
可选的,m≥n≥2,所述数据重构装置还包括:
第一确定模块,用于将所述多个存储节点中负载较小的n个存储节点,确定为所述n个目标存储节点;
或者,第二确定模块,用于将所述多个存储节点中预设的n个存储节点,确定为所述n个目标存储节点;
或者,第三确定模块,用于将所述多个存储节点中与所述MDS的路由距离最近的n个存储节点,确定为所述n个目标存储节点。
可选的,所述第一发送模块用于:
确定所述每个目标存储节点的负载;
根据所述n个目标存储节点的负载,确定所述每个目标存储节点对应的至少一个数据块,其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关;
生成所述每个目标存储节点对应的重构指令,其中,所述每个目标存储节点对应的重构指令用于指示:对所述每个目标存储节点对应的数据块进行重构并存储;
向所述每个目标存储节点发送所述每个目标存储节点对应的重构指令。
可选的,所述数据重构装置还包括:
第一接收模块,用于接收所述第一存储节点发送的存储申请消息,所述存储申请消息包括所述m个数据块的总数据量;
第三发送模块,用于根据所述存储申请消息向所述第一存储节点发送存储指令,所述存储指令用于指示在目标磁盘上存储重构的所述m个数据块,所述目标磁盘为所述第一存储节点中可用存储容量大于或等于所述总数据量的磁盘。
可选的,所述目标磁盘上并未存储有相关数据块,所述相关数据块与所述m个数据块中的任一数据块属于同一条带。
可选的,所述数据重构装置还包括:
第二接收模块,用于接收所述第一存储节点发送的所述每个数据块的存储信息,所述每个数据块的存储信息包括:所述目标磁盘的标识以及所述每个数据块的标识;
第四确定模块,用于根据所述每个数据块的存储信息中所述每个数据块的标识,确定所述每个数据块的条带信息;
修改模块,用于将所述每个数据块的条带信息中所述每个数据块所在的磁盘的标识,修改为所述目标磁盘的标识。
可选的,所述多个存储节点中的每个存储节点包括:存储磁盘和缓存磁盘,所述每个存储节点具有所述存储磁盘的读权限,以及所述缓存磁盘的读写权限,所述n个目标存储节点包括缓存存储节点,发送给所述缓存存储节点的重构指令用于指示:将重构的数据块存储在所述缓存存储节点的缓存磁盘,所述数据重构装置还包括:
第三接收模块,用于接收所述第一存储节点发送的获取完毕消息,所述获取完毕消息用于指示所述第一存储节点已经获取并存储完毕重构的所述m个数据块;
第四发送模块,用于向所述缓存存储节点发送删除指令,所述删除指令用于指示所述缓存节点删除所述缓存存储节点的缓存磁盘上存储的数据块。
第三方面,提供了一种数据存储系统,所述数据存储系统包括:元数据管理服务器MDS、多个存储节点和串行连接小型计算机系统接口SAS交换机,所述多个存储节点通过所述SAS交换机相互连接,所述MDS包括第二方面所述的数据重构装置。
第四方面,提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现第一方面所述的方法步骤。
第五方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。
本申请提供的技术方案带来的有益效果是:
MDS在检测到第一存储节点中出现故障磁盘时,向n个目标存储节点发送了重构指令,以使得n个目标存储节点对故障磁盘上的数据块进行重构,且MDS还可以指示第一存储节点获取每个目标存储节点重构得到的数据块。当第一存储节点的数据重构能力较弱时,由于该n个目标存储节点中存在与第一存储节点不同的其他存储节点,因此,其他存储节点能够帮助第一存储节点对数据块进行重构,使得第一存储节点所需重构的数据较少,故障磁盘上存储的数据块的重构速度较快,所以,提高了数据存储系统的数据重构效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储系统的结构示意图;
图2为本发明实施例提供的一种存储节点中磁盘的示意图;
图3为本发明实施例提供的一种数据重构方法的方法流程图;
图4为本发明实施例提供的另一种数据重构方法的方法流程图;
图5为本发明实施例提供的一种数据重构装置的结构示意图;
图6为本发明实施例提供的另一种数据重构装置的结构示意图;
图7为本发明实施例提供的又一种数据重构装置的结构示意图;
图8为本发明实施例提供的再一种数据重构装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本发明实施例提供的一种数据存储系统的结构示意图,如图1所示,该数据存储系统包括:MDS 01、多个存储节点02、以太网交换机03和SAS交换机04。其中,MDS 01和多个存储节点02之间通过以太网交换机03相连接,多个存储节点02之间通过SAS交换机04相连接。示例的,MDS 01可以为服务器或者服务器集群,存储节点02可以为具有存储功能的设备,例如服务器或电脑等设备。每个存储节点包括多个磁盘,每个磁盘均用于存储数据。
可选的,每个存储节点还可以包括处理器,该处理器上可以运行有存储服务器(英文:Object Storage Device;简称:OSD)、审计服务器(英文:AUDITOR)和切片服务器(英文:Stripe Server;简称:SS),也即每个存储节点上可以运行有OSD、审计服务器和SS。图2为本发明实施例提供的一种存储节点中磁盘的示意图,图2共示出了五个存储节点02。其中,每个存储节点02均可以包括多个磁盘。每个存储节点上可以运行有一个OSD、一个SS和一个审计服务器(图5中均未示出)。每个存储节点上运行的OSD均能够通过SAS交换机读取任一磁盘上存储的数据。
用户终端可以在图1中存储节点上的磁盘存储数据,以及读取图1中存储节点上的磁盘中的数据。
一方面,当用户终端需要在磁盘中写入目标数据A时,用户终端可以向MDS发送写请求,此时MDS为用户终端分配SS,并为目标数据A分配EC类型。然后,用户终端就可以将需要存储的目标数据A发送至MDS分配的SS。SS在接收到目标数据A后,需要向MDS申请条带资源。MDS可以根据分配给目标数据A的纠删码(英文:Erasure Coding;简称:EC)类型为SS分配条带资源,该条带资源可以包括多个存储节点上的磁盘。
例如,MDS分配给SS的条带资源的信息为:{<stripe_id,OSD_1,wwn_1>,<stripe_id,OSD_1,wwn_2>,<stripe_id,OSD_1,wwn_3>,<stripe_id,OSD_1,wwn_4>,<stripe_id,OSD_1,wwn_5>}。其中,每两个相邻的“<”和“>”之间表示一个存储节点上的磁盘的信息,“{”和“}”之间表示为该数据分配的条带资源,stripe_id为条带标识,wwn为磁盘标识。也即是,MDS共为目标数据A分配了五个存储节点上的五个磁盘,分别为磁盘wwn_1、wwn_2、wwn_3、wwn_4和wwn_5,且MDS将这五个磁盘的写权限分配给了OSD1,这五个磁盘均用于存储条带化的目标数据A,该条带资源的信息中的条带标识均相同。
然后,SS可以将目标数据A按照预设的数据块大小进行切片(也即将目标数据A进行条带化处理),得到k个原始对象块目标数据A1,并根据目标数据A的EC类型(k+m=n)生成目标数据A的m个冗余对象块目标数据A2。MDS分配的条带资源共包括n个存储节点上的n个磁盘,每个磁盘用于存储目标数据A的一个数据块。
SS还可以为目标数据A的每个数据块生成为一个秘钥(英文:key),每个数据块的密钥可以作为该数据块的标识。然后,SS可以根据将数据块以及数据块的秘钥添加至磁盘的信息,以得到<stripe_id,OSD,wwn,key,value>。其中,value表示数据块。此时,条带资源的信息变为{<stripe_id,OSD_1,wwn_1,key_1,value_1>,<stripe_id,OSD_1,wwn_2,key_2,value_2>,<stripe_id,OSD_1,wwn_3,key_3,value_3>,<stripe_id,OSD_1,wwn_4,key_4,value_4>,<stripe_id,OSD_1,wwn_5,key_5,value_5>}。
进一步的,SS还可以将每个磁盘的信息中的<wwn,key,value>发送给相应的OSD,该OSD为磁盘的信息中OSD标识所指示的OSD。OSD在接收到<wwn,key,value>后,可以将<key,value>写入到wwn所指示的磁盘中。OSD写入完毕后返回给SS写入成功消息,SS可以根据该写入成功消息,确定该数据块写入成功。当SS确定目标数据A中的每个数据块(包括原始对象块目标数据A1和冗余对象块目标数据A2)均写入成功后,可以将条带资源的信息中目标数据A的条带信息返回给MDS存储。其中,目标数据A的条带信息可以为:{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。其中,“{”和“}”之间表示为目标数据A的条带信息,每两个相邻的“<”和“>”之间表示一个数据块的存储信息,目标数据A的条带信息也称为目标数据A的每个数据块的条带信息。
另一方面,当用户终端需要读取磁盘中存储的目标数据A时,用户终端需要向MDS发送读请求。MDS可以根据该读请求,读取之前记录的目标数据A的条带信息。例如,目标数据A的条带信息为{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。然后,MDS可以根据该条带信息确定之前存储该目标数据A的OSD,并将目标数据A的条带信息以及用户终端的标识,发送给该OSD本地的SS(该OSD与该SS运行在同一个存储节点上)。
SS在接收到目标数据A的条带信息后,可以将该条带信息中每个数据块的存储信息中的<wwn,key>发送给本地的OSD。然后,OSD可以根据接收到的<wwn,key>中的key,读取wwn所指示的磁盘上的数据块(也称value),并将<key,value>返回给本地的SS。SS在接收到OSD返回的所有<key,value>后,可以将接收到的<key,value>组合得到{<key_1,value_1>,<key_2,value_2>,<key_3,value_3>,<key_4,value_4>,<key_5,value_5>}。最后,SS可以将{<key_1,value_1>,<key_2,value_2>,<key_3,value_3>,<key_4,value_4>,<key_5,value_5>}中的value_1、value_2、value_3、value_4和value_5打包得到目标数据A,并将目标数据A发送给用户终端。
需要说明的是,存储节点中的磁盘中较容易出现故障磁盘,此时用户无法读取存储在该故障磁盘上的数据块,因此,本发明实施例提供了一种数据重构方法,用于重构故障磁盘上存储的数据块。
图3为本发明实施例提供的一种数据重构方法的方法流程图,该数据重构方法可以用于数据存储系统中的MDS(如图1所示的MDS),如图3所示,该数据重构方法包括:
步骤301、在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向多个存储节点中的n个目标存储节点分别发送重构指令,其中,第一存储节点为多个存储节点中的任一存储节点,发送给n个目标重构节点的n个重构指令用于指示:对m个数据块进行重构并存储,n个目标存储节点中存在与第一存储节点不同的存储节点,m≥n≥1。
步骤302、向第一存储节点发送获取指令,获取指令用于指示第一存储节点获取并存储n个目标存储节点重构的m个数据块。
综上所述,本发明实施例提供了一种数据重构方法,MDS在检测到第一存储节点中出现故障磁盘时,向n个目标存储节点发送了重构指令,以使得n个目标存储节点对故障磁盘上的数据块进行重构,且MDS还可以指示第一存储节点获取每个目标存储节点重构得到的数据块。当第一存储节点的数据重构能力较弱时,由于该n个目标存储节点中存在与第一存储节点不同的其他存储节点,因此,其他存储节点能够帮助第一存储节点对数据块进行重构,使得第一存储节点所需重构的数据较少,故障磁盘上存储的数据块的重构速度较快,所以,提高了数据存储系统的数据重构效率。
图4为本发明实施例提供的另一种数据重构方法的方法流程图,如图6所示,该数据重构方法包括:
步骤401、第一存储节点向MDS发送故障消息,故障消息用于指示第一存储节点中出现故障磁盘。
需要说明的是,图1中的每个存储节点均可以包括多个磁盘,且该多个磁盘包括存储磁盘和缓存磁盘。其中,存储磁盘和缓存磁盘可以为固态硬盘(英文:Solid StateDrives;简称:SSD)、串口硬盘(也称SATA硬盘)或者SAS磁盘。可选的,缓存磁盘为固态硬盘(英文:Solid State Drives;简称:SSD),存储磁盘为串口硬盘(也称SATA硬盘)或者SAS磁盘。第一存储节点为该多个存储节点中的任一存储节点,该故障磁盘可以为第一存储节点中的某一存储磁盘。
请参考图2,每个存储节点的多个磁盘(图2中示出的是六个磁盘)可以包括:五个存储磁盘和一个缓存磁盘。每个存储节点上运行的OSD具有对该存储节点上的缓存磁盘写数据的权限。需要说明的是,存储节点中存储磁盘的个数可以为大于或等于1的任意整数,缓存磁盘的个数也可以为大于或等于1的任意整数,本发明实施例对此不做限定。可选的,OSD可以用于监控存储节点中的存储磁盘是否故障,当某一存储磁盘故障时,OSD确定该存储磁盘为故障磁盘,并向MDS发送故障消息,该故障消息可以用于指示该故障磁盘。例如,该故障消息可以包括故障磁盘的标识。
步骤402、MDS根据故障消息,确定第一存储节点中的故障磁盘。
MDS在接收到故障消息后,可以对该故障消息进行解析,得到该故障消息中故障磁盘的标识,进而确定该第一存储节点中的故障磁盘。
步骤403、MDS获取故障磁盘上存储的m个数据块的条带信息。
需要说明的是,MDS上存储有该数据存储系统中每个磁盘上存储的每个数据块的条带信息。当MDS确定第一存储节点中的故障磁盘后,MDS可以确定该故障磁盘上存储的m个数据块,并获取该m个数据块中每个数据块的条带信息。其中,m≥1。
步骤404、MDS在数据存储系统中确定n个目标存储节点。
示例的,m≥n≥1,也即是MDS可以在该数据存储系统中选择一个存储节点作为目标存储节点,或者在该数据存储系统中选择多个存储节点作为目标存储节点。且当n=1时,MDS选择出的一个目标存储节点并不是第一存储节点,当n≥2时,MDS选择出的多个目标存储节点可以包括第一存储节点,也可以不包括第一存储节点。
当n=1时,MDS可以通过多种可实现方式在数据存储系统中确定一个目标存储节点。本发明实施例中将以以下的三种可实现方式进行举例说明。
在第一种可实现方式中,MDS可以首先确定该数据存储系统中除第一存储节点之外的每个存储节点的负载。需要说明的是,存储节点的负载可以与存储节点的至少一个性能参数正相关,其中,存储节点的性能参数包括:存储节点中处理器的使用率、存储节点的内存(包括存储节点中的所有磁盘)占用率以及存储节点的存储效率。
MDS可以根据除第一存储节点之外的每个存储节点的负载确定一个目标存储节点。示例的,MDS可以将该数据存储系统中除第一存储节点之外的存储节点的负载进行比较,并将负载最小的一个存储节点确定为目标存储节点。也即是,MDS在选择需要执行重构任务的目标存储节点时,可以选择除第一存储节点之外的最小负载(数据处理能力较高)的存储节点作为用于执行数据重构任务的目标存储节点,以保证目标存储节点能够较快的执行重构数据块的任务,提高数据重构的效率。
在第二种可实现方式中,数据存储系统中的存储节点中存在与第一存储节点不同的一个预设存储节点,且该预设存储节点可以为数据处理能力较高的存储节点。MDS可以直接将预设的这个存储节点确定为目标存储节点。
在第三种可实现方式中,MDS可以首先确定该数据存储系统中除第一存储节点之外的每个存储节点与MDS的路由距离,并根据除第一存储节点之外的每个存储节点与MDS的路由距离确定一个目标存储节点。示例的,MDS可以将该数据存储系统中除第一存储节点之外的存储节点与MDS的路由距离进行比较,并将与MDS的路由距离最小的一个存储节点确定为目标存储节点。也即是,MDS在选择需要执行重构任务的目标存储节点时,可以在除第一存储节点之外的存储节点中,选择与MDS的路由距离最近的存储节点作为用于执行数据重构任务的目标存储节点,以保证MDS后续能够快速的向目标存储节点分配重构数据块的任务,提高数据重构的效率。
当n≥2时,MDS可以通过多种可实现方式在数据存储系统中确定n个目标存储节点。本发明实施例中将以以下的三种可实现方式进行举例说明。
在第一种可实现方式中,MDS可以首先确定该数据存储系统中每个存储节点的负载。MDS可以根据每个存储节点的负载确定n个目标存储节点。示例的,MDS上可以预先存储有预设个数阈值n。MDS可以将该数据存储系统中的存储节点的负载进行比较,并将负载较小的n个存储节点确定为n个目标存储节点。也即是,MDS在选择需要执行重构任务的目标存储节点时,可以选择负载较小(数据处理能力较高)的存储节点作为用于执行数据重构任务的目标存储节点,以保证目标存储节点能够较快的执行重构数据块的任务,提高数据重构的效率。
在第二种可实现方式中,数据存储系统中的存储节点中存在n个预设存储节点,且该n个预设存储节点可以为数据处理能力较高的存储节点。MDS可以直接将预设的n个存储节点确定为n个目标存储节点。
在第三种可实现方式中,MDS可以首先确定该数据存储系统中每个存储节点与MDS的路由距离,并根据每个存储节点与MDS的路由距离确定n个目标存储节点。示例的,MDS上可以预先存储有预设个数阈值n。MDS可以将该数据存储系统中的存储节点与MDS的路由距离进行比较,并将与MDS的路由距离较小的n个存储节点确定为n个目标存储节点。也即是,MDS在选择需要执行重构任务的目标存储节点时,可以选择与MDS的路由距离较近的存储节点作为用于执行数据重构任务的目标存储节点,以保证MDS后续能够快速的向每个目标存储节点分配重构数据块的任务,提高数据重构的效率。
步骤405、MDS向n个目标存储节点分别发送n个重构指令。
MDS在确定m个数据块中每个数据块的条带信息以及n个目标存储节点后,可以根据n个目标存储节点的负载以及m个数据块的条带信息,确定每个目标存储节点对应的至少一个数据块。其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关。
若目标存储节点的负载较大,则目标存储节点能够重构较少数据量的数据,此时该目标存储节点对应的所有数据块的数据量之和较小;若目标存储节点的负载较小,则目标存储节点能够重构较多数据量的数据,此时该目标存储节点对应的所有数据块的数据量之和较大。也即,目标存储节点的数据重构能力与目标存储节点的负载相关,MDS需要根据每个目标存储节点的负载以及重构能力,适当的为每个目标存储节点分配需要重构的数据块。
MDS在确定每个目标存储节点对应的数据块后,可以根据数据块的条带信息,生成每个目标存储节点对应的重构指令。其中,每个目标存储节点对应的重构指令用于指示对该每个目标存储节点对应的数据块进行重构和存储。之后,MDS就可以向每个目标存储节点上运行的审计服务器发送该每个目标存储节点对应的重构指令。
示例的,每个目标存储节点对应的重构指令包括:该每个目标存储节点对应的每个数据块的条带信息,以及用于指示该每个目标存储节点是否为故障磁盘所在的存储节点的指示信息。
步骤406、n个目标存储节点根据接收到的重构指令重构并存储数据块。
每个目标存储节点上运行的审计服务器在接收到重构指令后,可以对该重构指令进行解析,以得到需要重构的至少一个数据块的条带信息。
每个目标存储节点上运行的审计服务器还可以根据需要重构的每个数据块的条带信息,通过本地的OSD读取重构每个数据块过程中所需的有效数据,该有效数据存储在数据存储系统中的至少一个磁盘中。需要说明的是,假设数据块X为需要重构的数据块,且数据块X的条带信息包括:数据块X的存储信息,以及数据块Y的存储信息,则重构数据块X的过程中所需的有效数据为数据块Y。之后,每个目标存储节点上运行的审计服务器就可以根据读取到的有效数据以及接收到的重构指令,重构相应的数据块。
进一步的,每个目标存储节点上运行的审计服务器在接收到重构指令后,可以对该重构指令进行解析,以得到用于指示该每个目标存储节点是否为故障磁盘所在的存储节点的指示信息。
第一方面,当该指示信息用于指示目标存储节点不为故障磁盘所在的存储节点时,该目标存储节点上运行的审计服务器可以确定该重构指令用于指示该目标存储节点将重构的数据块存储在缓存磁盘。在目标存储节点运行的审计服务器重构完毕数据块之后,该目标存储节点上运行的审计服务器可以将重构的数据块发送给本地的OSD,并指示本地的OSD将该数据块写入该目标存储节点中的缓存磁盘中。
第二方面,当该指示信息用于指示目标存储节点为故障磁盘所在的存储节点(也即第一存储节点)时,第一存储节点上运行的审计服务器可以确定该重构指令用于指示该第一存储节点将重构的数据块存储在缓存磁盘。在第一存储节点上运行的审计服务器重构完毕数据块之后,第一存储节点上运行的审计服务器可以将重构的数据块发送给本地的OSD,并指示本地的OSD将该数据块写入第一存储节点的缓存磁盘中。
第三方面,当该指示信息用于指示目标存储节点为故障磁盘所在的存储节点(也即第一存储节点)时,第一存储节点上运行的审计服务器也可以确定该重构指令用于指示该目标存储节点将重构的数据块存储在存储磁盘。第一存储节点上运行的审计服务器可以向MDS发送存储申请消息,该存储申请消息包括m个数据块的总数据量。MDS可以根据该存储申请消息,向第一存储节点上运行的审计服务器发送存储指令,该存储指令用于指示第一存储节点在目标磁盘上存储重构的m个数据块,该目标磁盘可以为第一存储节点中可用存储容量大于或等于m个数据块的总数据量的存储磁盘,且该目标磁盘上并未存储有相关数据块,该相关数据块与m个数据块中的任一数据块属于同一条带。在第一存储节点运行的审计服务器重构完毕数据块之后,第一存储节点运行的审计服务器可以将重构的数据块发送给本地的OSD,并指示本地的OSD将该数据块写入第一存储节点中的目标磁盘中。
步骤407、n个目标存储节点分别向MDS发送重构完成消息。
在每个目标存储节点根据重构指令重构完成所有的数据块,并将所有重构的数据块进行存储后,该每个目标存储节点可以向MDS发送重构完成消息。每个目标存储节点发送的重构完成消息可以包括:该目标存储节点重构的每个数据块的标识,以及该每个数据块所存储的磁盘的标识。
步骤408、MDS向第一存储节点发送获取指令,获取指令用于指示第一存储节点获取并存储n个目标存储节点重构的m个数据块。
当MDS接收到n个目标存储节点发送的重构完成消息后,MDS可以确定此时每个目标存储节点已经完成了MDS分配的数据重构任务,此时,MDS可以向第一存储节点上运行的审计服务器发送获取指令,以指示该审计服务器获取并存储每个目标存储节点重构的数据块。需要说明的是,该获取指令可以包括:m个数据块中每个数据块的标识,以及该每个数据块所存储的磁盘的标识。
步骤409、第一存储节点根据获取指令,获取并存储重构的m个数据块。
第一存储节点上运行的审计服务器可以根据该获取指令,确定重构的m个数据块中每个数据块所存储的磁盘的标识,并在相应的磁盘上获取重构数据块。
示例的,当重构的数据块所存储的磁盘不为第一存储节点中的磁盘时,该第一存储节点上运行的审计服务器可以通过本地的OSD和SAS交换机,读取或拷贝相应的磁盘(其他存储节点的缓存磁盘)上存储的重构的数据块。当重构的数据块所存储的磁盘为第一存储节点中的缓存磁盘时,该第一存储节点上运行的审计服务器可以直接读取本地缓存磁盘上存储的重构的数据块。当重构的数据块所存储的磁盘为第一存储节点中的目标磁盘时,该第一存储节点上运行的审计服务器无需执行读取数据块的步骤,就能够获取到该重构的数据块。
在获取到重构的数据块后,第一存储节点上运行的审计服务器可以将重构的数据块进行存储。
示例的,当步骤407中通过第一方面或第二方面实现存储重构的数据块时,在步骤409中,第一存储节点上运行的审计服务器还可以向MDS发送存储申请消息,该存储申请消息可以包括m个数据块的总数据量。MDS可以根据该存储申请消息,向第一存储节点上运行的审计服务器发送存储指令,该存储指令用于指示第一存储节点在目标磁盘上存储重构的m个数据块。然后,第一存储节点上运行的审计服务器就可以将获取到的重构的m个数据块存储在目标磁盘上。
当步骤407中通过第三方面实现存储重构的数据块时,在步骤409中第一存储节点上运行的审计服务器可以直接将获取到的重构的m个数据块存储在目标磁盘上,且在步骤407中第一存储节点上运行的审计服务器,无需执行对第一存储节点存储的重构的数据块执行重复存储的步骤,就可以保证该重构的数据块存储在目标磁盘上。
步骤411、第一存储节点向MDS发送获取完成消息。
第一存储节点上运行的审计服务器在获取到重构的数据块后,可以向MDS发送获取完成消息,该获取完成消息可以用于指示第一存储节点已经获取完成每个目标存储节点重构的数据块。
步骤412、第一存储节点向MDS发送m个数据块中每个数据块的存储信息,每个数据块的存储信息包括:目标磁盘的标识以及每个数据块的标识。
第一存储节点上运行的审计服务器在确定重构的每个数据块写入目标磁盘后,可以向MDS发送每个数据块的存储信息,该存储信息包括该数据块的标识(如该数据块的key),以及该数据块所在的目标磁盘的标识。
步骤413、MDS更新m个数据块中每个数据块的条带信息。
MDS在接收到每个数据块的存储信息后,可以根据每个数据块的存储信息中的数据块的标识,查找每个数据块的条带信息,并将每个数据块的条带信息中该数据块所在的磁盘的标识,修改为目标磁盘的标识。
例如,数据块X的标识为key1,数据块X的条带信息可以为:{<stripe_id,wwn_1,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>},在步骤413中,MDS可以将该条带信息中的wwn_1修改为wwn_x(目标磁盘的标识),从而将数据块X的条带信息更新为:{<stripe_id,wwn_x,key_1>,<stripe_id,wwn_2,key_2>,<stripe_id,wwn_3,key_3>,<stripe_id,wwn_4,key_4>,<stripe_id,wwn_5,key_5>}。
步骤414、MDS向n个目标存储节点中的每个缓存存储节点发送删除指令,删除指令用于指示缓存存储节点删除该缓存存储节点的缓存磁盘上存储的数据块。
需要说明的是,n个目标存储节点包括缓存存储节点,每个缓存存储节点在重构数据块后,会将重构的数据块存储在缓存存储节点的缓存磁盘上。例如,当步骤407中通过第一方面或第二方面实现时,每个目标存储节点均为缓存存储节点,当步骤407中通过第三方面实现时,n个目标存储节点中除第一存储节点之外的每个目标存储节点均为缓存存储节点。
MDS在接收到第一存储节点上运行的审计服务器发送的获取完成消息后,可以向每个缓存存储节点上运行的OSD发送删除指令,以指示每个缓存存储节点上运行的OSD删除该缓存存储节点的缓存磁盘上存储的数据块(也即重构的数据块)。
步骤415、每个缓存存储节点根据删除指令,删除该缓存存储节点的缓存磁盘上存储的数据块。
每个缓存存储节点上运行的OSD在接收到删除指令后,就可以直接将该缓存存储节点的缓存磁盘上存储的数据块进行删除。
示例的,如图2所示,假设第一存储节点为存储节点1,且故障磁盘为第一存储节点上的存储磁盘1-1,则MDS可以确定存储节点1、存储节点2、存储节点3、存储节点4和存储节点5均为目标存储节点。
并向存储节点1、存储节点2、存储节点3、存储节点4和存储节点5分别发送重构指令。存储节点1可以根据接收到的重构指令重构数据块1,存储节点2可以根据接收到的重构指令重构数据块2,存储节点3可以根据接收到的重构指令重构数据块3,存储节点4可以根据接收到的重构指令重构数据块4,存储节点5可以根据接收到的重构指令重构数据块5。
存储节点1还可以向MDS发送存储申请消息,MDS可以向存储节点1发送存储指令,该存储指令用于指示存储节点1在存储磁盘1-1(目标磁盘)上存储数据块。存储节点1可以将重构的数据块1存储在存储磁盘1-1上,存储节点2可以将重构的数据块2存储在缓存磁盘2上,存储节点3可以将重构的数据块3存储在缓存磁盘3上,存储节点4可以将重构的数据块4存储在缓存磁盘4上,存储节点5可以将重构的数据块5存储在缓存磁盘5上。
每个目标存储节点在存储重构的数据块后,可以向MDS发送重构完毕消息,使得MDS在接收到所有目标存储节点发送的重构完毕消息后,向存储节点1发送获取指令。存储节点1可以根据接收到的获取指令,通过SAS交换机获取缓存磁盘2、缓存磁盘3、缓存磁盘4和缓存磁盘5上存储的重构的数据块2、数据块3、数据块4和数据块5,并将数据块2、数据块3、数据块4和数据块5也存储在存储磁盘1-1上。
在存储节点1获取到每个目标存储节点重构的数据块后,存储节点1还可以向MDS发送获取完毕消息,MDS可以根据接收到的获取完毕消息,向存储节点2、存储节点3、存储节点4和存储节点5分别发送删除指令,以指示存储节点2、存储节点3、存储节点4和存储节点5分别删除本地的缓存磁盘上存储的数据块。在存储节点1将数据块存储在存储磁盘1-1上后,存储节点1还可以像MDS发送该数据块的存储信息。MDS可以根据该数据块的存储信息,更新该数据块的条带信息。
综上所述,本发明实施例提供了一种数据重构方法,MDS在检测到第一存储节点中出现故障磁盘时,向n个目标存储节点发送了重构指令,以使得n个目标存储节点对故障磁盘上的数据块进行重构,且MDS还可以指示第一存储节点获取每个目标存储节点重构得到的数据块。当第一存储节点的数据重构能力较弱时,由于该n个目标存储节点中存在与第一存储节点不同的其他存储节点,因此,其他存储节点能够帮助第一存储节点对数据块进行重构,使得第一存储节点所需重构的数据较少,故障磁盘上存储的数据块的重构速度较快,所以,提高了数据存储系统的数据重构效率。
图5为本发明实施例提供的一种数据重构装置的结构示意图,该数据重构装置可以用于数据存储系统中的MDS(如图1所示的MDS),如图5所示,该数据重构装置50可以包括:
第一发送模块501,用于在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向多个存储节点中的n个目标存储节点分别发送重构指令,其中,第一存储节点为多个存储节点中的任一存储节点,发送给n个目标重构节点的n个重构指令用于指示:对m个数据块进行重构并存储,n个目标存储节点中存在与第一存储节点不同的存储节点,m≥n≥1;
第二发送模块502,用于向第一存储节点发送获取指令,获取指令用于指示第一存储节点获取并存储n个目标存储节点重构的m个数据块。
综上所述,本发明实施例提供了一种数据重构装置,第一发送模块在检测到第一存储节点中出现故障磁盘时,向n个目标存储节点发送了重构指令,以使得n个目标存储节点对故障磁盘上的数据块进行重构,且第二发送模块可以指示第一存储节点获取每个目标存储节点重构得到的数据块。当第一存储节点的数据重构能力较弱时,由于该n个目标存储节点中存在与第一存储节点不同的其他存储节点,因此,其他存储节点能够帮助第一存储节点对数据块进行重构,使得第一存储节点所需重构的数据较少,故障磁盘上存储的数据块的重构速度较快,所以,提高了数据存储系统的数据重构效率。
可选的,m≥n≥2,该数据重构装置50还可以包括:
第一确定模块(图5中未示出),用于将多个存储节点中负载较小的n个存储节点,确定为n个目标存储节点;
或者,第二确定模块(图5中未示出),用于将多个存储节点中预设的n个存储节点,确定为n个目标存储节点;
或者,第三确定模块(图5中未示出),用于将多个存储节点中与MDS的路由距离最近的n个存储节点,确定为n个目标存储节点。
可选的,第一发送模块501可以用于:确定每个目标存储节点的负载;根据n个目标存储节点的负载,确定每个目标存储节点对应的至少一个数据块,其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关;生成每个目标存储节点对应的重构指令,其中,每个目标存储节点对应的重构指令用于指示:对每个目标存储节点对应的数据块进行重构并存储;向每个目标存储节点发送每个目标存储节点对应的重构指令。
可选的,图6为本发明实施例提供的另一种数据重构装置的结构示意图,如图6所示,在图5的基础上,该数据重构装置50还可以包括:
第一接收模块503,用于接收第一存储节点发送的存储申请消息,存储申请消息包括m个数据块的总数据量;
第三发送模块504,用于根据存储申请消息向第一存储节点发送存储指令,存储指令用于指示在目标磁盘上存储重构的m个数据块,目标磁盘为第一存储节点中可用存储容量大于或等于总数据量的磁盘。
可选的,目标磁盘上并未存储有相关数据块,相关数据块与m个数据块中的任一数据块属于同一条带。
可选的,图7为本发明实施例提供的又一种数据重构装置的结构示意图,如图7所示,在图6的基础上,该数据重构装置50还可以包括:
第二接收模块505,用于接收第一存储节点发送的每个数据块的存储信息,每个数据块的存储信息包括:目标磁盘的标识以及每个数据块的标识;
第四确定模块506,用于根据每个数据块的存储信息中每个数据块的标识,确定每个数据块的条带信息;
修改模块507,用于将每个数据块的条带信息中每个数据块所在的磁盘的标识,修改为目标磁盘的标识。
可选的,多个存储节点中的每个存储节点包括:存储磁盘和缓存磁盘,每个存储节点具有存储磁盘的读权限,以及缓存磁盘的读写权限,n个目标存储节点包括缓存存储节点,发送给缓存存储节点的重构指令用于指示:将重构的数据块存储在缓存存储节点的缓存磁盘,图8为本发明实施例提供的再一种数据重构装置的结构示意图,如图8所示,在图5的基础上,该数据重构装置50还可以包括:
第三接收模块508,用于接收第一存储节点发送的获取完毕消息,获取完毕消息用于指示第一存储节点已经获取并存储完毕重构的m个数据块;
第四发送模块509,用于向缓存存储节点发送删除指令,删除指令用于指示缓存节点删除缓存存储节点的缓存磁盘上存储的数据块。
综上所述,本发明实施例提供了一种数据重构装置,第一发送模块在检测到第一存储节点中出现故障磁盘时,向n个目标存储节点发送了重构指令,以使得n个目标存储节点对故障磁盘上的数据块进行重构,且第二发送模块可以指示第一存储节点获取每个目标存储节点重构得到的数据块。当第一存储节点的数据重构能力较弱时,由于该n个目标存储节点中存在与第一存储节点不同的其他存储节点,因此,其他存储节点能够帮助第一存储节点对数据块进行重构,使得第一存储节点所需重构的数据较少,故障磁盘上存储的数据块的重构速度较快,所以,提高了数据存储系统的数据重构效率。
本发明实施例提供了一种计算机设备,该计算机设备上运行有计算机程序,计算机设备中的处理器执行计算机程序以实现上述数据重构方法。
本发明实施例提供了一种存储介质,该存储介质上存储有计算机程序,处理器执行计算机程序以实现上述数据重构方法。
需要说明的是,本申请实施例提供的方法实施例能够与相应的装置实施例相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种数据重构方法,其特征在于,用于数据存储系统中的元数据管理服务器MDS,所述数据存储系统还包括:串行连接小型计算机系统接口SAS交换机和多个存储节点,所述多个存储节点通过所述SAS交换机相互连接,所述方法包括:
在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向所述多个存储节点中的n个目标存储节点分别发送重构指令,其中,所述第一存储节点为所述多个存储节点中的任一存储节点,发送给所述n个目标存储节点的n个重构指令用于指示:对所述m个数据块进行重构并存储,所述n个目标存储节点中存在与所述第一存储节点不同的存储节点,m≥n≥2,每个目标存储节点对应的重构指令包括所述每个目标存储节点对应的每个待重构的数据块的条带信息,以及用于指示所述每个目标存储节点是否为所述故障磁盘所在的存储节点的指示信息;
向所述第一存储节点发送获取指令,所述获取指令用于指示所述第一存储节点获取并存储所述n个目标存储节点重构的所述m个数据块。
2.根据权利要求1所述的方法,其特征在于,在所述向所述多个存储节点中的n个目标存储节点分别发送重构指令之前,所述方法还包括:
将所述多个存储节点中负载较小的n个存储节点,确定为所述n个目标存储节点;
或者,将所述多个存储节点中预设的n个存储节点,确定为所述n个目标存储节点;
或者,将所述多个存储节点中与所述MDS的路由距离最近的n个存储节点,确定为所述n个目标存储节点。
3.根据权利要求1或2所述的方法,其特征在于,所述向所述多个存储节点中的n个目标存储节点分别发送重构指令,包括:
确定所述每个目标存储节点的负载;
根据所述n个目标存储节点的负载,确定所述每个目标存储节点对应的至少一个数据块,其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关;
生成所述每个目标存储节点对应的重构指令,其中,所述每个目标存储节点对应的重构指令用于指示:对所述每个目标存储节点对应的数据块进行重构并存储;
向所述每个目标存储节点发送所述每个目标存储节点对应的重构指令。
4.根据权利要求1所述的方法,其特征在于,在所述向所述多个存储节点中的n个目标存储节点分别发送重构指令之后,所述方法还包括:
接收所述第一存储节点发送的存储申请消息,所述存储申请消息包括所述m个数据块的总数据量;
根据所述存储申请消息向所述第一存储节点发送存储指令,所述存储指令用于指示在目标磁盘上存储重构的所述m个数据块,所述目标磁盘为所述第一存储节点中可用存储容量大于或等于所述总数据量的磁盘。
5.根据权利要求4所述的方法,其特征在于,
所述目标磁盘上并未存储有相关数据块,所述相关数据块与所述m个数据块中的任一数据块属于同一条带。
6.根据权利要求4或5所述的方法,其特征在于,在所述向所述第一存储节点发送存储指令之后,所述方法还包括:
接收所述第一存储节点发送的每个数据块的存储信息,所述每个数据块的存储信息包括:所述目标磁盘的标识以及所述每个数据块的标识;
根据所述每个数据块的存储信息中所述每个数据块的标识,确定所述每个数据块的条带信息;
将所述每个数据块的条带信息中所述每个数据块所在的磁盘的标识,修改为所述目标磁盘的标识。
7.根据权利要求1所述的方法,其特征在于,所述多个存储节点中的每个存储节点包括:存储磁盘和缓存磁盘,所述每个存储节点具有所述存储磁盘的读权限,以及所述缓存磁盘的读写权限,所述n个目标存储节点包括缓存存储节点,发送给所述缓存存储节点的重构指令用于指示:将重构的数据块存储在所述缓存存储节点的缓存磁盘,在所述向所述第一存储节点发送获取指令之后,所述方法还包括:
接收所述第一存储节点发送的获取完毕消息,所述获取完毕消息用于指示所述第一存储节点已经获取并存储完毕重构的所述m个数据块;
向所述缓存存储节点发送删除指令,所述删除指令用于指示所述缓存存储节点删除所述缓存存储节点的缓存磁盘上存储的数据块。
8.一种数据重构装置,其特征在于,用于数据存储系统中的元数据管理服务器MDS,所述数据存储系统还包括:串行连接小型计算机系统接口SAS交换机和多个存储节点,所述多个存储节点通过所述SAS交换机相互连接,所述装置包括:
第一发送模块,用于在检测到第一存储节点中出现存储有m个数据块的故障磁盘时,向所述多个存储节点中的n个目标存储节点分别发送重构指令,其中,所述第一存储节点为所述多个存储节点中的任一存储节点,发送给所述n个目标存储节点的n个重构指令用于指示:对所述m个数据块进行重构并存储,所述n个目标存储节点中存在与所述第一存储节点不同的存储节点,m≥n≥2,每个目标存储节点对应的重构指令包括所述每个目标存储节点对应的每个待重构的数据块的条带信息,以及用于指示所述每个目标存储节点是否为所述故障磁盘所在的存储节点的指示信息;
第二发送模块,用于向所述第一存储节点发送获取指令,所述获取指令用于指示所述第一存储节点获取并存储所述n个目标存储节点重构的所述m个数据块。
9.根据权利要求8所述的数据重构装置,其特征在于,所述数据重构装置还包括:
第一确定模块,用于将所述多个存储节点中负载较小的n个存储节点,确定为所述n个目标存储节点;
或者,第二确定模块,用于将所述多个存储节点中预设的n个存储节点,确定为所述n个目标存储节点;
或者,第三确定模块,用于将所述多个存储节点中与所述MDS的路由距离最近的n个存储节点,确定为所述n个目标存储节点。
10.根据权利要求8或9所述的数据重构装置,其特征在于,所述第一发送模块用于:
确定所述每个目标存储节点的负载;
根据所述n个目标存储节点的负载,确定所述每个目标存储节点对应的至少一个数据块,其中,目标存储节点对应的所有数据块的数据量之和与目标存储节点的负载负相关;
生成所述每个目标存储节点对应的重构指令,其中,所述每个目标存储节点对应的重构指令用于指示:对所述每个目标存储节点对应的数据块进行重构并存储;
向所述每个目标存储节点发送所述每个目标存储节点对应的重构指令。
11.根据权利要求8所述的数据重构装置,其特征在于,所述数据重构装置还包括:
第一接收模块,用于接收所述第一存储节点发送的存储申请消息,所述存储申请消息包括所述m个数据块的总数据量;
第三发送模块,用于根据所述存储申请消息向所述第一存储节点发送存储指令,所述存储指令用于指示在目标磁盘上存储重构的所述m个数据块,所述目标磁盘为所述第一存储节点中可用存储容量大于或等于所述总数据量的磁盘。
12.根据权利要求11所述的数据重构装置,其特征在于,
所述目标磁盘上并未存储有相关数据块,所述相关数据块与所述m个数据块中的任一数据块属于同一条带。
13.根据权利要求11或12所述的数据重构装置,其特征在于,所述数据重构装置还包括:
第二接收模块,用于接收所述第一存储节点发送的每个数据块的存储信息,所述每个数据块的存储信息包括:所述目标磁盘的标识以及所述每个数据块的标识;
第四确定模块,用于根据所述每个数据块的存储信息中所述每个数据块的标识,确定所述每个数据块的条带信息;
修改模块,用于将所述每个数据块的条带信息中所述每个数据块所在的磁盘的标识,修改为所述目标磁盘的标识。
14.根据权利要求8所述的数据重构装置,其特征在于,所述多个存储节点中的每个存储节点包括:存储磁盘和缓存磁盘,所述每个存储节点具有所述存储磁盘的读权限,以及所述缓存磁盘的读写权限,所述n个目标存储节点包括缓存存储节点,发送给所述缓存存储节点的重构指令用于指示:将重构的数据块存储在所述缓存存储节点的缓存磁盘,所述数据重构装置还包括:
第三接收模块,用于接收所述第一存储节点发送的获取完毕消息,所述获取完毕消息用于指示所述第一存储节点已经获取并存储完毕重构的所述m个数据块;
第四发送模块,用于向所述缓存存储节点发送删除指令,所述删除指令用于指示所述缓存存储节点删除所述缓存存储节点的缓存磁盘上存储的数据块。
15.一种数据存储系统,其特征在于,所述数据存储系统包括:元数据管理服务器MDS、多个存储节点和串行连接小型计算机系统接口SAS交换机,所述多个存储节点通过所述SAS交换机相互连接,所述MDS包括权利要求8至14任一所述的数据重构装置。
CN201710903893.4A 2017-09-29 2017-09-29 数据重构方法及装置、数据存储系统 Active CN109582213B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710903893.4A CN109582213B (zh) 2017-09-29 2017-09-29 数据重构方法及装置、数据存储系统
PCT/CN2018/108342 WO2019062856A1 (zh) 2017-09-29 2018-09-28 数据重构方法及装置、数据存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710903893.4A CN109582213B (zh) 2017-09-29 2017-09-29 数据重构方法及装置、数据存储系统

Publications (2)

Publication Number Publication Date
CN109582213A CN109582213A (zh) 2019-04-05
CN109582213B true CN109582213B (zh) 2020-10-30

Family

ID=65900908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710903893.4A Active CN109582213B (zh) 2017-09-29 2017-09-29 数据重构方法及装置、数据存储系统

Country Status (2)

Country Link
CN (1) CN109582213B (zh)
WO (1) WO2019062856A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579384B (zh) * 2019-09-27 2023-07-04 杭州海康威视数字技术股份有限公司 一种sas域的节点监控方法、装置、系统及节点
CN111400241B (zh) * 2019-11-14 2024-04-05 杭州海康威视系统技术有限公司 数据重构方法和装置
CN110989934B (zh) * 2019-12-05 2023-08-25 达闼机器人股份有限公司 区块链节点数据存储方法、区块链系统及区块链节点
CN111124292B (zh) * 2019-12-10 2022-08-19 新华三大数据技术有限公司 一种数据下刷方法、装置、缓存节点及分布式存储系统
CN112214447A (zh) * 2020-10-10 2021-01-12 中科声龙科技发展(北京)有限公司 工作量证明运算芯片集群数据动态重构方法、系统和装置
CN113672174A (zh) * 2021-08-03 2021-11-19 中移(杭州)信息技术有限公司 数据重构方法、设备、存储介质及装置
CN114415970B (zh) * 2022-03-25 2022-06-17 北京金山云网络技术有限公司 分布式存储系统的磁盘故障处理方法、装置及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059807A (zh) * 2007-01-26 2007-10-24 华中科技大学 一种提高元数据服务可靠性的方法及其系统
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置
CN105335250A (zh) * 2014-07-28 2016-02-17 浙江大华技术股份有限公司 一种基于分布式文件系统的数据恢复方法及装置
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储系统中的数据重建的方法、装置和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986276B (zh) * 2010-10-21 2013-07-10 华为数字技术(成都)有限公司 文件存储方法、文件恢复方法、系统及服务器
CN104050250B (zh) * 2011-12-31 2018-06-05 北京奇虎科技有限公司 一种分布式键-值查询方法和查询引擎系统
CN102624866B (zh) * 2012-01-13 2014-08-20 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
US9830240B2 (en) * 2015-05-14 2017-11-28 Cisco Technology, Inc. Smart storage recovery in a distributed storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059807A (zh) * 2007-01-26 2007-10-24 华中科技大学 一种提高元数据服务可靠性的方法及其系统
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置
CN105335250A (zh) * 2014-07-28 2016-02-17 浙江大华技术股份有限公司 一种基于分布式文件系统的数据恢复方法及装置
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储系统中的数据重建的方法、装置和系统

Also Published As

Publication number Publication date
CN109582213A (zh) 2019-04-05
WO2019062856A1 (zh) 2019-04-04

Similar Documents

Publication Publication Date Title
CN109582213B (zh) 数据重构方法及装置、数据存储系统
CN107807794B (zh) 一种数据存储方法和装置
CN106547859B (zh) 一种多租户数据存储系统下的数据文件的存储方法及装置
US9846540B1 (en) Data durability using un-encoded copies and encoded combinations
CN108934187B (zh) 分布式存储系统的访问方法和相关装置和相关系统
CN110557964B (zh) 数据写入方法、客户端服务器和系统
US11262916B2 (en) Distributed storage system, data processing method, and storage node
WO2019001521A1 (zh) 数据存储方法、存储设备、客户端及系统
CN113176858B (zh) 数据处理方法、存储系统及存储设备
CN108733311B (zh) 用于管理存储系统的方法和设备
JP2016513306A (ja) データ格納方法、データストレージ装置、及びストレージデバイス
WO2016029743A1 (zh) 一种生成虚拟机的逻辑磁盘的方法,及装置
CN109726036B (zh) 一种存储系统中的数据重构方法和装置
US20210278983A1 (en) Node Capacity Expansion Method in Storage System and Storage System
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN107798063B (zh) 快照处理方法和快照处理装置
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
CN103440204B (zh) 一种更新文件系统的方法和存储设备
WO2021088586A1 (zh) 一种存储系统中的元数据的管理方法及装置
US11275518B2 (en) System and method for implementing heterogeneous media types with raid
CN109992447B (zh) 数据复制方法、装置及存储介质
US11775194B2 (en) Data storage method and apparatus in distributed storage system, and computer program product
CN108271420B (zh) 管理文件的方法、文件系统和服务器系统
CN112256657B (zh) 日志镜像方法及系统
JP2017208113A (ja) データ格納方法、データストレージ装置、及びストレージデバイス

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