CN109101187A - 一种进行数据重构的方法和装置 - Google Patents
一种进行数据重构的方法和装置 Download PDFInfo
- Publication number
- CN109101187A CN109101187A CN201710471061.XA CN201710471061A CN109101187A CN 109101187 A CN109101187 A CN 109101187A CN 201710471061 A CN201710471061 A CN 201710471061A CN 109101187 A CN109101187 A CN 109101187A
- Authority
- CN
- China
- Prior art keywords
- data block
- stripe
- reconstructed
- priority
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000008859 change Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种进行数据重构的方法和装置,属于数据存储技术领域。所述方法包括:确定待重构的至少一个数据块;根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。采用本公开,可以提高读取数据的效率。
Description
技术领域
本公开是关于数据存储技术领域,尤其是关于一种进行数据重构的方法和装置。
背景技术
在数据存储领域,人们越来越看重数据的安全性和可靠性。为增强数据的安全性和可靠性,往往采用纠删码技术对待存储的对象数据进行存储。
具体的,在存储对象数据时,服务器可以将对象数据划分为多个条带,其中,每个条带包含N个源数据块和M个校验数据块,(其中,校验数据块是根据特定的编码算法,对N个源数据块进行计算得到的),进而,将每个条带中的每个数据块分别存储在不同的存储节点上。另外,当某条带中的某几个数据块损坏时,可以根据该条带中其他的数据块计算出损坏的数据块,即可以通过条带中未损坏的数据块重构出损坏的数据块。
目前,服务器进行数据重构的处理一般是:服务器可以不断对各个存储节点进行检测,如果检测到存储数据块的磁盘或者磁盘的某个磁道损坏,则可以将损坏的磁盘或者磁道上存储的数据块的标识添加到待重构列表中。然后,可以按照发现时间由早至晚的顺序或者按照数据块所在条带的标识的字典序排列后,对待重构列表中的数据块进行数据重构。
在实现本公开的过程中,发明人发现至少存在以下问题:
当服务器接收到数据查询请求,读取某数据块时,如果该数据块是损坏的数据块,且对应的发现时间较晚或者所在条带的标识的字典序比较靠后,则服务器基于上述数据重构方式,在对损坏的数据块进行数据重构时,需要将排列在该数据块之前的数据块进行数据重构后,再对该数据块进行数据重构,服务器方可正确读取到重构后的该数据块,即服务器需要将排列在该数据块之前的所有损坏数据块进行数据重构后,才能正确读取到重构后的该数据块,从而,导致读取数据的效率较低。
发明内容
为了克服相关技术中存在的读取数据的效率较低的问题,本公开提供了一种进行数据重构的方法和装置。所述技术方案如下:
根据本公开实施例的第一方面,提供一种进行数据重构的方法,所述方法包括:
确定待重构的至少一个数据块;
根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
可选的,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
可选的,所述确定待重构的至少一个数据块,包括:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
可选的,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
可选的,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
可选的,所述根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级,包括:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
根据本公开实施例的第二方面,提供一种进行数据重构的装置,所述装置包括:
第一确定模块,用于确定待重构的至少一个数据块;
第二确定模块,用于根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
第三确定模块,用于根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
重构模块,用于按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
可选的,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
可选的,所述第一确定模块,用于:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
可选的,所述装置还包括:
第一更新模块,用于当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
可选的,所述装置还包括:
第二更新模块,用于当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
可选的,所述第三确定模块,用于:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,当确定出待重构的至少一个数据块时,服务器可以根据每个数据块当前的属性,确定每个数据块的优先级,进而,可以根据每个数据块的优先级,以及每个数据块所属的条带,确定待重构的至少一个条带以及至少一个条带中的每个条带的优先级。确定出待重构的条带后,可以以条带为单位,按照优先级由高到低的顺序,对每个条带包含的待重构的数据块进行数据重构,其中,可以设置具有即时读取属性的数据块的优先级最高。这样,当服务器读取某损坏的数据块时,服务器可以优先对该数据块进行数据重构,进而,可以及早的读取到重构后的该数据块,无需等待其他数据块的重构才能读取到该数据块,从而,可以提高读取数据的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。在附图中:
图1是根据一示例性实施例示出的一种系统框架示意图;
图2是根据一示例性实施例示出的一种进行数据重构的方法流程图;
图3是根据一示例性实施例示出的一种交互示意图;
图4是根据一示例性实施例示出的一种进行数据重构的装置示意图;
图5是根据一示例性实施例示出的一种进行数据重构的装置示意图;
图6是根据一示例性实施例示出的一种进行数据重构的装置示意图;
图7是根据一示例性实施例示出的一种服务器的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开一示例性实施例提供了一种进行数据重构的方法,该方法可以用于服务器中,其中,该服务器可以是具有数据重构功能的服务器,该服务器可以是一个单独的服务器,比如可以是数据管理服务器,也可以是由多个服务器组成的服务器组,比如可以是由数据管理服务器和多个存储节点组成的服务器组,其中,数据管理服务器可以是服务器集群,系统架构图如图1所示。该服务器中可以设置有处理器、存储器,处理器可以用于进行数据重构相关的处理,存储器可以用于存储下述处理过程中需要和产生的数据。还可以设置有收发器,收发器可以用于接收和发送数据。
下面将结合实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
在步骤201中,确定待重构的至少一个数据块。
在实施中,服务器可以对各个存储节点的磁盘进行检测,当检测到某个存储节点的磁盘或磁盘的磁道异常时,可以确定出现异常的磁盘或磁道中存储的数据块为需要进行数据重构的数据块。例如,服务器可以基于预设的检测周期,检测每个存储节点的磁盘是否出现异常,即可以基于预设的检测周期,确定待重构的数据块。
可选的,基于确定出待重构的数据块的方法不同,步骤201的处理方式可以多种多样,以下给出了几种可行的处理方式:
方式一,当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块。
在实施中,每个存储节点可以不断检测自身的磁盘是否出现异常(比如离线),如果磁盘出现异常,可以向服务器发送磁盘变更通知。相应的,服务器接收到磁盘变更通知后,可以判断该磁盘中是否包含需要重构的数据块。具体的,接收到磁盘变更通知(比如离线通知)后,可以判断该磁盘的离线时长是否达到预设时长阈值,如果离线时长达到预设时长阈值,则可以将该磁盘中存储的数据块确定为待重构的数据块。如果是磁盘中的磁道出现异常,则可以将该磁道中存储的数据块确定为待重构的数据块。
方式二,当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
在实施中,存储某文件(可称为目标文件)的用户还可以下载该对象数据,此种情况下,用户可以通过操作触发终端向服务器发送对目标文件的读取请求,相应的,服务器可以接收读取请求,此时,服务器即可接收到对目标文件的即是读取指令,进而,可以读取存储节点存储的目标文件对应的各个数据块。在读取目标文件包含的各个数据块的过程中,如果某个数据块已损坏(即需要进行数据重构),服务器即可确定出待重构的至少一个数据块。
在步骤202中,根据至少一个数据块当前的属性,确定至少一个数据块的优先级。
在实施中,服务器可以记录有每个数据块的属性,其中,属性可以包括是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。服务器确定出待重构的数据块后,可以获取待重构的数据块当前的属性,进而,可以基于获取到的属性,确定数据块的优先级。
另外,数据块的优先级可以由预设位数的二进制数值得到,其中,从最高位到最低位代表的含义依次是:是否具有即时读取属性(如果具有,则对应的位上的数值为1,否则为0,是否具有即时读取属性的优先级贡献度最大)、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性,其中,数据块所属桶bucket的重要程度属性和存储时长属性分别具有预设数目个级别(某数据块具有哪个级别的属性,相应的位上的数值为1,否则为0)。例如,数据块的优先级是由八位二进制数值表示,其中,每一位的含义如下:
其中,每一位的数值可以根据数据块具有的属性决定,第五位-第三位分别表示数据块所属bucket的级别,如果是级别3,则第五位为1,第四位、第三位为零,其中,级别越高表示的重要程度越大。第二位-第零位表示数据块的存储周期的级别,其中,存储周期的级别越高表示存储时长越大,级别3可以是存储时长大于或等于2周,级别2可以是存储时长大于或等于3天,且小于2周,级别1可以是存储时长小于3天。具体的,服务器可以预先设置每个bucket的存储周期和重要程度,用户在存储文件时即会选择其中的bucket,也就是说,在存储各个数据块时,每个数据块具有的数据块所属桶bucket的重要程度属性、存储时长属性就已经确定了(即是用户选择的bucket具有的属性),是数据块的固有属性,不发生变化。数据块的是否具有即时读取属性、是否被锁定属性不是固有属性,在用户的操作过程中,可能会发生变化,比如,服务器在即时读取某数据块时,该数据块即具有即时读取属性,读取结束后,即不再具有即时读取属性。每当确定出待重构的数据块后,可以根据数据块的属性,确定上述二进制数值,二进制的数值大小即可以是该数据块的优先级。
另外一种情况下,服务器中可以预先存储有每个属性对应的权重,相应的,确定出每个待重构的数据块后,可以根据预先存储的每个属性对应的权重,以及每个数据块当前的属性,确定每个数据块的优先级。
在步骤203中,根据至少一个数据块的优先级,以及至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及至少一个条带中的每个条带的优先级。
在实施中,服务器在存储目标文件时,会存储有目标文件的索引信息,其中,索引信息可以是目标文件的标识、条带的标识、条带包含的各个数据块的标识、数据块的存储位置、数据块所属bucket的标识的对应关系,以便在读取目标文件时,可以根据索引信息获取到目标文件包含的各个数据块。
服务器确定出待重构的每个数据块后,可以根据数据块存储时建立的索引信息,确定待重构的条带,进而,可以将待重构的条带标识添加到待重构条带列表中。另外,服务器还可以根据每个数据块的优先级,确定待重构的每个条带对应的优先级,其中,待重构条带列表中的条带标识可以按照优先级的高低顺序排列,例如,可以按照由高到低的顺序进行排列,或者,按照由低到高的顺序进行排列。
另外,确定出待重构的条带后,服务器还可以将该条带包含的所有数据块的标识、存储位置、是否重构的标识与条带标识对应添加到待重构条带列表中。待重构列表中的各对应关系项可以按照各条带的优先级由高到低的顺序进行排列。
可选的,可以将该条带包含的待重构的数据块的所有优先级中的最高优先级,作为该条带的优先级,相应的,步骤203的处理过程可以如下:将至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;对于至少一个条带中的每个条带,在条带包括的待重构的数据块的优先级中,确定最高优先级,将最高优先级确定为条带对应的优先级。
在实施中,确定出待重构的数据块后,可以在预先建立的索引信息中,查找待重构的数据块对应的条带标识,将确定出的条带标识对应的条带作为待重构的条带,进而,可以将确定出的条带标识添加到待重构条带列表中。对于每个待重构的条带,服务器可以获取该条带包括的待重构的数据块的优先级,进而,可以将最高优先级作为该条带的优先级。例如,条带1包含的待重构的数据块为数据块a、数据块b,数据块a的优先级为优先级1、数据块b的优先级为优先级2,其中,优先级1高于优先级2,则可以确定条带1的优先级为优先级1。
可选的,针对上述方式二的情况,每当即时读取某数据块时发现该数据块(可称为第三数据块)损坏时,可以将第三数据块确定为待重构的数据块,同时可以标记第三数据块的是否具有即时读取属性为具有即时读取属性,进而,可以根据第三数据块当前的属性,确定第三数据块的优先级,其中,此次确定出的第三数据块的优先级是根据具有即时读取属性得到的,并确定第三数据块所属的条带,以及该条带对应的优先级。具体的,如果即时读取第三数据块时第三数据块已在待重构条带列表中(即如果在即时读取第三数据块之前,就已确定出第三数据块为待重构的数据块,还未进行数据重构),此次确定出第一数据库的优先级后,可以更新之前确定的第三数据块的优先级以及第三数据块所属条带的优先级,即以最新确定出的优先级为准。如果即时读取第三数据块时第三数据块不在待重构条带列表中(即如果在即时读取第三数据块之前,没确定出第三数据块为待重构的数据块),此次确定出第一数据库的优先级和第三数据块所属条带的优先级后,可以将第三数据块所属条带添加到待重构条带列表中,并更新各对应关系项的排列顺序。
可选的,在对确定出的待重构条带进行数据重构前,如果接收到终端发送的锁定请求,可以执行如下处理:当接收到终端发送的对第一数据块的锁定请求时,如果至少一个数据块包含第一数据块,则更新第一数据块的优先级,以及第一数据块所属条带对应的优先级。
在实施中,用户想要锁定某文件或者某文件中的部分数据时,可以通过操作触发终端向服务器发送锁定请求,服务器接收到锁定请求后,可以确定锁定请求对应的数据块(即上述第一数据块),进而,可以判断待重构条带列表(每当某个条带包含的待重构数据块进行数据重构后,服务器即将其从待重构条带列表中删除)中是否包含第一数据块,如果包含,则可以更新第一数据块的优先级(即可以更新上述二进制中相应位的数值),并且可以更新第一数据块所属条带的优先级。也就是说,在对待重构的数据块进行数据重构前,接收到对应第一数据块的锁定请求时,由于第一数据块被锁定后,其对应的属性发生变化,因此可以判断待重构的数据块中是否包含第一数据块,如果包含,则可以更新第一数据块的优先级,以及第一数据块所属条带的优先级。
可选的,在对确定出的待重构条带进行数据重构前,如果接收到终端发送的锁定取消请求,可以执行如下处理:当接收到终端发送的对第二数据块的锁定取消请求时,如果至少一个数据块包含第二数据块,则更新第二数据块的优先级,以及第二数据块所属条带对应的优先级。
在实施中,用户想要取消锁定某文件或者某文件中的部分数据时,可以通过操作触发终端向服务器发送锁定取消请求,服务器接收到锁定取消请求后,可以确定锁定取消请求对应的数据块(即上述第二数据块),进而,可以判断待重构条带列表(每当某个条带包含的待重构数据块进行数据重构后,服务器即将其从待重构条带列表中删除)中是否包含第二数据块,如果包含,则可以更新第二数据块的优先级(即可以更新上述二进制中相应位的数值),并且可以更新第二数据块所属条带的优先级。也就是说,在对待重构的数据块进行数据重构前,接收到对应第二数据块的锁定取消请求时,由于第二数据块锁定取消后,其对应的属性发生变化,因此可以判断待重构的数据块中是否包含第二数据块,如果包含,则可以更新第二数据块的优先级,以及第二数据块所属条带的优先级。
在步骤204中,按照确定出的待重构的至少一个条带的优先级,对至少一个条带包含的待重构的数据块进行数据重构。
在实施中,服务器确定每个待重构的条带的优先级后,可以按照每个条带的优先级,对每个条带包含的待重构的数据块进行数据重构。针对是否具有即时读取属性的优先级贡献度最大的情况,服务器可以按照优先级由高到低的顺序,基于确定出的待重构的至少一个条带的优先级,对至少一个条带包含的待重构的数据块进行数据重构。具体的,服务器中可以预先设置有重构周期,每到预设的重构周期,服务器可以在所有待重构的条带中,选取预设数目个优先级最高的条带(或者,选取优先级大于预设阈值的条带),对选取的条带包含的待重构的数据块进行数据重构。
对于服务器是由管理服务器和存储节点组成的服务器组的情况,每当管理服务器确定出待重构的每个条带的优先级后,可以将其存储到待重构条带列表中,其中,待重构条带列表中还可以包括每个条带对应的各数据块的数据块的存储位置、待重构数据块的重构标识。存储节点可以基于预设的询问周期,向管理服务器发送重构询问请求,如图3所示,管理服务器接收到重构询问请求后,可以判断待重构条带列表是否为空,如果为空,则可以向存储节点发送不需要数据重构的反馈消息,如果不为空,则可以选取预设数目个对应的优先级最高的条带标识,并可以向存储节点发送重构数据(其中,重构数据可以包含各个条带标识、优先级、各数据块的存储位置、待重构数据块的重构标识的对应关系项),存储节点接收到重构数据后,可以对重构数据中的条带标识对应的条带包含的待重构的数据块进行数据重构,数据重构完成后,可以将其存储到新的存储位置,并向管理服务器发送携带新的存储位置的重构完成通知。相应的,管理服务器接收到重构完成通知后,可以对该条带对应的索引信息进行更新,并且可以将重构完成的条带标识在待重构条带列表中删除。另外,重构数据还可以包括数据块所属文件的文件标识、在所属文件中的数据偏移地址以及数据长度。
上述处理均是在待重构数据块检测功能和执行数据重构功能开启的前提下进行的,如果服务器接收到上述功能的退出通知,则可以关闭该功能,不再进行待重构数据块检测处理和执行数据重构处理。上述待重构数据块检测功能和执行数据重构功能可以是由两个不同的线程执行的。
本公开实施例中,当确定出待重构的至少一个数据块时,服务器可以根据每个数据块当前的属性,确定每个数据块的优先级,进而,可以根据每个数据块的优先级,以及每个数据块所属的条带,确定待重构的至少一个条带以及至少一个条带中的每个条带的优先级。确定出待重构的条带后,可以以条带为单位,按照优先级由高到低的顺序,对每个条带包含的待重构的数据块进行数据重构,其中,可以设置具有即时读取属性的数据块的优先级最高。这样,当服务器读取某损坏的数据块时,服务器可以优先对该数据块进行数据重构,进而,可以及早的读取到重构后的该数据块,无需等待其他数据块的重构才能读取到该数据块,从而,可以提高读取数据的效率。
本公开又一示例性实施例提供了一种进行数据重构的装置,如图4所示,该装置包括:
第一确定模块410,用于确定待重构的至少一个数据块;
第二确定模块420,用于根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
第三确定模块430,用于根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
重构模块440,用于按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
可选的,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
可选的,所述第一确定模块410,用于:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
可选的,如图5所示,所述装置还包括:
第一更新模块450,用于当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
可选的,如图6所示,所述装置还包括:
第二更新模块460,用于当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
可选的,所述第三确定模块430,用于:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例中,当确定出待重构的至少一个数据块时,服务器可以根据每个数据块当前的属性,确定每个数据块的优先级,进而,可以根据每个数据块的优先级,以及每个数据块所属的条带,确定待重构的至少一个条带以及至少一个条带中的每个条带的优先级。确定出待重构的条带后,可以以条带为单位,按照优先级由高到低的顺序,对每个条带包含的待重构的数据块进行数据重构,其中,可以设置具有即时读取属性的数据块的优先级最高。这样,当服务器读取某损坏的数据块时,服务器可以优先对该数据块进行数据重构,进而,可以及早的读取到重构后的该数据块,无需等待其他数据块的重构才能读取到该数据块,从而,可以提高读取数据的效率。
需要说明的是:上述实施例提供的进行数据重构的装置在进行数据重构时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进行数据重构的装置与进行数据重构的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是根据一示例性实施例示出的一种进行数据重构的装置1900的框图。例如,装置1900可以被提供为一服务器。参照图7,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理部件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述进行数据重构的方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
装置1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
确定待重构的至少一个数据块;
根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
可选的,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
可选的,所述确定待重构的至少一个数据块,包括:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
可选的,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
可选的,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
可选的,所述根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级,包括:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
本公开实施例中,当确定出待重构的至少一个数据块时,服务器可以根据每个数据块当前的属性,确定每个数据块的优先级,进而,可以根据每个数据块的优先级,以及每个数据块所属的条带,确定待重构的至少一个条带以及至少一个条带中的每个条带的优先级。确定出待重构的条带后,可以以条带为单位,按照优先级由高到低的顺序,对每个条带包含的待重构的数据块进行数据重构,其中,可以设置具有即时读取属性的数据块的优先级最高。这样,当服务器读取某损坏的数据块时,服务器可以优先对该数据块进行数据重构,进而,可以及早的读取到重构后的该数据块,无需等待其他数据块的重构才能读取到该数据块,从而,可以提高读取数据的效率。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种进行数据重构的方法,其特征在于,所述方法包括:
确定待重构的至少一个数据块;
根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
2.根据权利要求1所述的方法,其特征在于,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
3.根据权利要求1所述的方法,其特征在于,所述确定待重构的至少一个数据块,包括:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
4.根据权利要求1所述的方法,其特征在于,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
5.根据权利要求1所述的方法,其特征在于,所述按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构之前,还包括:
当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
6.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级,包括:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
7.一种进行数据重构的装置,其特征在于,所述装置包括:
第一确定模块,用于确定待重构的至少一个数据块;
第二确定模块,用于根据所述至少一个数据块当前的属性,确定所述至少一个数据块的优先级;
第三确定模块,用于根据所述至少一个数据块的优先级,以及所述至少一个数据块中的每个数据块所属的条带,确定待重构的至少一个条带以及所述至少一个条带中的每个条带的优先级;
重构模块,用于按照确定出的待重构的至少一个条带的优先级,对所述至少一个条带包含的待重构的数据块进行数据重构。
8.根据权利要求7所述的装置,其特征在于,所述至少一个数据块的属性包括:
是否具有即时读取属性、是否被锁定属性、数据块所属桶bucket的重要程度属性、存储时长属性。
9.根据权利要求7所述的装置,其特征在于,所述第一确定模块,用于:
当接收到存储节点发送的磁盘变更通知时,确定待重构的至少一个数据块;或者,
当接收到对目标文件的即时读取指令时,确定待重构的至少一个数据块。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于当接收到对第一数据块的锁定请求时,如果所述至少一个数据块包含所述第一数据块,则更新所述第一数据块的优先级,以及所述第一数据块所属条带对应的优先级。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二更新模块,用于当接收到对第二数据块的锁定取消请求时,如果所述至少一个数据块包含所述第二数据块,则更新所述第二数据块的优先级,以及所述第二数据块所属条带对应的优先级。
12.根据权利要求7所述的装置,其特征在于,所述第三确定模块,用于:
将所述至少一个数据块中的每个数据块所属的条带,确定为待重构的至少一个条带;
对于所述至少一个条带中的每个条带,在所述条带包括的待重构的数据块的优先级中,确定最高优先级,将所述最高优先级确定为所述条带对应的优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710471061.XA CN109101187B (zh) | 2017-06-20 | 2017-06-20 | 一种进行数据重构的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710471061.XA CN109101187B (zh) | 2017-06-20 | 2017-06-20 | 一种进行数据重构的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101187A true CN109101187A (zh) | 2018-12-28 |
CN109101187B CN109101187B (zh) | 2021-07-09 |
Family
ID=64795776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710471061.XA Active CN109101187B (zh) | 2017-06-20 | 2017-06-20 | 一种进行数据重构的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101187B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020041595A1 (en) * | 2000-10-05 | 2002-04-11 | Marc Delvaux | System and method for suspending and resuming transmission of information without creating significant additional overhead |
CN103823728A (zh) * | 2014-03-13 | 2014-05-28 | 深圳市迪菲特科技股份有限公司 | 一种独立冗余磁盘阵列智能重建的方法 |
CN104536698A (zh) * | 2014-12-10 | 2015-04-22 | 华为技术有限公司 | 一种基于raid的磁盘重构方法及相关设备 |
CN104598171A (zh) * | 2015-02-02 | 2015-05-06 | 浙江宇视科技有限公司 | 基于元数据的阵列重建方法及装置 |
CN105892934A (zh) * | 2014-12-19 | 2016-08-24 | 伊姆西公司 | 用于存储设备管理的方法和装置 |
-
2017
- 2017-06-20 CN CN201710471061.XA patent/CN109101187B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020041595A1 (en) * | 2000-10-05 | 2002-04-11 | Marc Delvaux | System and method for suspending and resuming transmission of information without creating significant additional overhead |
CN103823728A (zh) * | 2014-03-13 | 2014-05-28 | 深圳市迪菲特科技股份有限公司 | 一种独立冗余磁盘阵列智能重建的方法 |
CN104536698A (zh) * | 2014-12-10 | 2015-04-22 | 华为技术有限公司 | 一种基于raid的磁盘重构方法及相关设备 |
CN105892934A (zh) * | 2014-12-19 | 2016-08-24 | 伊姆西公司 | 用于存储设备管理的方法和装置 |
CN104598171A (zh) * | 2015-02-02 | 2015-05-06 | 浙江宇视科技有限公司 | 基于元数据的阵列重建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109101187B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167366A1 (en) | Data processing method and device | |
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
CN108563697B (zh) | 一种数据处理方法、装置和存储介质 | |
CN109634932A (zh) | 一种智能合约存储方法及存储系统 | |
CN111083179B (zh) | 物联网云平台、基于物联网云平台的设备交互方法及装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN106878363A (zh) | 一种信息处理方法、装置及系统 | |
CN111355696A (zh) | 一种报文识别方法、装置、dpi设备及存储介质 | |
CN104618304A (zh) | 数据处理方法及数据处理系统 | |
CN113835844A (zh) | 一种容器集群的管理方法、装置及云计算平台 | |
CN113672624A (zh) | 一种数据处理方法、系统及存储介质 | |
CN103503388B (zh) | 一种分布式队列消息读取方法及设备、系统 | |
CN106384292A (zh) | 社交网络用户关系采集系统及方法 | |
CN106920057B (zh) | 物料管理方法及系统 | |
CN106528876B (zh) | 分布式系统的信息处理方法及分布式信息处理系统 | |
CN109101187B (zh) | 一种进行数据重构的方法和装置 | |
CN115442262B (zh) | 一种资源评估方法、装置、电子设备及存储介质 | |
KR20180004794A (ko) | 관계 체인 처리 방법 및 시스템, 그리고 저장 매체 | |
CN107422991B (zh) | 一种存储策略管理系统 | |
CN107436728B (zh) | 规则分析结果存储方法、规则回溯方法及装置 | |
CN113111074A (zh) | 基于区块链的交互数据监测方法及装置 | |
CN111400269B (zh) | 一种ipfs文件处理方法、节点、介质和设备 | |
CN106227878B (zh) | 一种搜索方法和装置 | |
CN114327295B (zh) | 基于分布式的数据存取方法及系统 | |
CN117632666B (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 |