CN106227731B - 一种数据处理方法、装置及分布式文件*** - Google Patents
一种数据处理方法、装置及分布式文件*** Download PDFInfo
- Publication number
- CN106227731B CN106227731B CN201610530063.7A CN201610530063A CN106227731B CN 106227731 B CN106227731 B CN 106227731B CN 201610530063 A CN201610530063 A CN 201610530063A CN 106227731 B CN106227731 B CN 106227731B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- written
- redundant mode
- copy
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法,应用于分布式文件***中,所述方法包括:将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。同时,本发明还公开了一种数据处理装置及分布式文件***。
Description
技术领域
本发明涉及分布式***领域,具体涉及一种数据处理方法、装置及分布式文件***。
背景技术
现有的分布式文件***(Distributed File System,DFS)为了保护数据的可靠性,采用一些冗余的数据布局模式。这样,***中除了保存文件的数据外,还会保存一些校验或者通过将数据保存多份来增加数据的可靠性。当***中有磁盘损坏或者其他问题导致文件的部分数据丢失时,可以通过校验或者冗余数据将损坏的数据恢复出来。
然而,不同的数据冗余模式对数据的保护策略不同,对***的消耗也不相同,所以适用于不同的应用场景。目前的数据冗余模式主要有适合小文件的副本冗余模式、适合大文件的纠删码(Erasure Code,EC)冗余模式。但是随着分布式文件***的规模越来越大,其存放的文件类型越来越多,单一的数据冗余模式已经不能很好满足客户的需求。另外,现有的分布式文件***一般只支持一种冗余模式,即使支持多种冗余模式,也是将冗余作为一种目录的属性,通过修改目录属性来配置,当***中存在各种大小的文件时,难以兼顾资源利用率和性能。
发明内容
有鉴于此,本发明期望提供一种数据处理方法、装置及分布式文件***,至少能解决上述问题之一。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种数据处理方法,应用于分布式文件***中,所述方法包括:
将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;
将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
上述方案中,可选地,所述将文件中先写入的预设数据量的第一数据按照副本冗余模式存储,将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储,包括:写入数据时,
判断待写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后根据所分配的副本冗余模式的布局信息写入所述数据;若有,则根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则根据已有的纠删码冗余模式的布局信息写入所述数据。
上述方案中,可选地,所述方法还包括:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
本发明还提供了一种数据处理装置,应用于分布式文件***中所述装置包括:
存储介质,用于存储数据;
处理器,用于将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
上述方案中,可选地,所述处理器,还用于:当写入数据时,
判断待写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后根据所分配的副本冗余模式的布局信息写入所述数据;若有,则根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则根据已有的纠删码冗余模式的布局信息写入所述数据。
上述方案中,可选地,所述处理器,还用于:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
本发明还提供了一种分布式文件***,包括上文所述的数据处理装置。
本发明所提供得数据处理方法、装置及分布式文件***,将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储;如此,在分布式文件***中,小文件采用副本冗余模式存储,可保证小文件不会浪费大量***空间;大文件主要使用纠删码冗余模式存储,能节省空间,同时提高文件的访问性能;通过针对不同大小的文件采用不同的存储策略,解决了现有技术中采用单一冗余模式而导致的难以兼顾利用率和性能的问题。
附图说明
图1为本发明实施例提供的数据处理方法的实现流程示意图;
图2本发明实施例提供的一种混合布局模式的示意图;
图3为本发明实施例提供的分布式***中保存的文件元数据的一种示意图;
图4为本发明实施例提供的一种混合布局模式管理框架图;
图5为本发明实施例提供的分布式***中写入文件的流程示意图;
图6为本发明实施例提供的数据处理装置的组成结构示意图一;
图7为本发明实施例提供的数据处理装置的组成结构示意图二。
具体实施方式
为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
实施例一
本发明实施例提供一种数据处理方法,所述方法应用于分布式文件***中,如图1所示,所述方法主要包括:
步骤101、将文件中先写入的预设数据量的第一数据按照副本冗余模式存储。
其中,所述预设数据量是副本冗余模式中预设的副本的大小。
比如,所述预设的副本的大小为xK;其中,x表示可存储的数据量的大小,x为正数,K表示数据量单位。
这里,所述预设数据量可以根据文件的类型以及***的结构灵活调整。
在一可选实施方式中,按照副本冗余模式存储,包括:
将原始数据拷贝一份或多份进行存储。
比如,将原始数据存放至主副本(master)以及m个从副本(copy1、…、copym)中;m为大于或等于1的正整数;copy1表示第1个从副本,copym表示第m个从副本。副本冗余模式更适合小文件场景。
步骤102、将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
在一可选实施方式中,按照纠删码冗余模式存储,包括:
将原始数据分块并编码生成冗余数据块,保证丢失一定量内的数据块,原始数据仍旧可以获取。
比如,文件中的数据被切割成大小相同的块之后,每次取4块数据(记为data1、data2、data3、data4)采用某种算法计算出两块校验值(记为EC1、EC2),保存到不同的磁盘中;当其中的数据块或校验块损坏后,可通过相同的算法将数据块或校验块恢复出来,保证***中数据的冗余份数不变。
由于纠删码冗余模式的选择比较灵活,用户可以根据自己的可靠性要求选择不同的数据和校验的配比,满足不同的磁盘利用率及数据保护的需求。纠删码冗余模式同副本冗余模式相比,其磁盘的利用率会更高,而且读文件的时候可以从多块磁盘上同时读数据,性能也更好。纠删码冗余模式比较适合大文件的场景。而若采用纠删码冗余模式存储小文件,小文件一般只能占用一个数据块,而在磁盘保存时还需要保存所有空白块的信息,使用纠删码冗余模式存放时反而会比较浪费资源,而且写入性能也不好。
本实施例所述技术方案,提出了一种新的混合布局模式,即单一文件中可能存在两种布局模式,即:将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
举例来说,对于一大小为20K的文件来说,文件的所有数据以副本的形式存放。对于一大小为的90K文件来说,文件中先写入的32K数据以副本的形式存放,文件中后写入的58K数据按照纠删码的形式存放。
上述方案中,在一具体实施方式中,所述方法还包括:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
也就是说,采用这种混合布局模式后,小文件的元数据信息有一个布局信息,大文件的元数据信息有两个布局信息。
图2为本发明实施例提供的一种混合布局模式的示意图,图2中预设数据量为xK,如图2所示,对先写入的xK数据按照副本冗余模式存储,xK数据之后的数据按照纠删码冗余模式存储。
具体地,文件的前xK数据以副本的形式存放,这个xK和副本的份数可以由用户根据文件的类型以及***的结构灵活调整,超过预设的副本大小后的文件数据将按照纠删码的形式存放。这样,***中大部分小文件(小于xK)都是以副本的形式存放,避免小文件采用纠删码形式存放时造成***空间浪费的问题。当写入的文件数据超过xK时,我们一般会认为***对该文件会持续追加到更大,所以文件中xK数据之后的数据采用纠删码的形式存放,这样,不仅节省空间,后续文件的读出性能也会更高。
采用这种混合布局模式后,小文件的元数据和数据信息都不变,大文件的元数据信息会有两个布局信息。混合布局模式下小文件的元数据包含的信息如表1所示,混合布局模式下小文件的元数据包含的信息如表2所示;
表1
可见,混合布局模式下小文件的元数据包含一种布局信息,即副本冗余模式的布局信息,在表1中用Replicated layout表示。
表2
可见,混合布局模式下大文件的元数据包含两种布局信息,即:副本冗余模式的布局信息,在表2中用Replicated layout表示;以及,纠删码冗余模式的布局信息,在表2中用EC layout表示。
也就是说,采用上述混合布局模式后,***中不同文件的布局模式有所不同,小文件只会存在副本冗余模式的布局,而大文件存在副本和纠删码两种冗余模式的布局。反映到元数据上,小文件的元数据只有Replicated layout布局信息,而大文件的元数据中包含Replicated layout和EC layout两种布局信息,分别指向文件数据的前xK和xK之后的数据布局。
为进一步提高读数据的性能,上述方案中,所述方法还包括:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间。
采用副本冗余模式存储时,可将原始数据存放至一个主副本以及至少一个从副本中。
这里,之所以将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间,原因是,***在读取以副本形式存放的数据时,首先会从主副本数据上读,只有当主副本数据损坏时,才会切换从副本读取。所以在数据布局时,可将前32K数据对应的主副本数据保存在文件的元数据信息之后,作为该文件元数据信息的扩展信息写入到磁盘中,如图3所示,将主副本数据和元数据保存在一起。图3中,元数据包括:基本元数据、副本冗余模式的布局信息、纠删码冗余模式的布局信息、以及前32K数据对应的主副本数据;其中,基本元数据包括表1或表1所示的inode_no、name、atime等数据。需要说明的是,图3中虚线框表示***中的部分文件才会有这部分元数据信息。这样,当文件的元数据被加载到缓存中时,相应的前32K数据也一起被加载到缓存中,在需要读数据时,文件前32K数据直接从缓存中读出,提高了文件的读出性能。
为了节省有限的元数据存储资源,上述方案中,所述方法还包括:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的从副本数据存储到与所述文件的元数据的存储空间不同的存储空间。
如此,文件的从副本数据不放在元数据信息中,也不在文件的元数据缓存区中缓存,能节省有限的元数据存储资源。
本发明所提供得数据处理方法,将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储;如此,在分布式文件***中,小文件采用副本冗余模式存储,可保证小文件不会浪费大量***空间;大文件主要使用纠删码冗余模式存储,能节省空间,同时提高文件的访问性能;通过针对不同大小的文件采用不同的存储策略,解决了现有技术中采用单一冗余模式而导致的难以兼顾利用率和性能的问题。
实施例二
本发明实施例提供一种混合布局模式管理框架图,所述方法应用于分布式文件***中,如图4所示,该架构主要包括:
基本元数据管理模块,负责分布式文件***中基本的元数据管理;
布局管理模块,负责分布式文件***中的布局信息管理。
其中,布局管理模块包括:
布局分配管理模块,负责处理混合布局模式下的布局分配;所述布局分配管理模块根据文件数据量的大小分配不同的布局信息,并且管理文件的故障恢复工作等;
副本布局分配模块,负责分配副本冗余模式的布局信息;
纠删码布局分配模块,负责分配纠删码冗余模式的布局信息。
具体地,所述布局分配管理模块负责检查写入数据的特征,调用合适的接口为数据分配相应的布局,即调用副本布局分配分配模块分配副本冗余模式的布局信息;调用纠删码布局分配模块分配纠删码冗余模式的布局信息。
具体地,所述布局分配管理模块还负责在恢复数据时,根据要恢复的数据信息,返回合适的布局方式,并且指导恢复模块采用副本方式或者纠删码方式恢复。
如图4所示,在写入文件时,客户端会向基本元数据管理模块请求元数据,所述基本元数据管理模块调用布局分配管理模块的接口,布局分配管理模块根据目前写入数据的位置调用不同的分配算法,分配合适的布局并返回,数据读写模块根据返回的布局信息及冗余模式选择正确的方式进行读写。
实施例三
图5为本发明实施例提供的分布式***中写入文件的流程示意图,如图5所示,该流程主要包括:
步骤501:接收到写数据请求;
步骤502:判断待写入的数据是否为文件中未超出预设数据量的数据;如果是,执行步骤503;如果否,执行步骤504;
步骤503:判断是否有副本冗余模式的布局信息,若没有副本冗余模式的布局信息,则执行步骤505;若有副本冗余模式的布局信息,则直接执行步骤507,即根据已有的副本冗余模式的布局信息写入所述数据;
步骤504:判断是否有纠删码冗余模式的布局信息,若没有纠删码冗余模式的布局信息,则执行步骤506;若有纠删码冗余模式的布局信息,则直接执行步骤507,即根据已有的纠删码冗余模式的布局信息写入所述数据;
步骤505:分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后执行步骤507;
步骤506:分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后执行步骤507,即根据分配的纠删码冗余模式的布局信息写入所述数据;
步骤507:写入所述数据。
文件中的所有数据写入完毕后,结束写入数据的流程。
以写入一文件大小大于32K的文件为例,写数据时,将先写入的32K数据的主副本数据同文件的元数据保存在一起;当文件数据超过32K时,需要按照纠删码冗余模式再次为该文件分配纠删码冗余模式的布局,文件中32K之后的数据按照纠删码冗余模式的布局信息写入,并且将纠删码冗余模式的布局信息记录在文件的元数据中。
对文件执行打开、查看等操作时,***会将文件的元数据信息加载到缓存中,以便下次访问直接在缓存中命中,提高访问性能。例如,先写入的32K数据同文件的元数据保存在一起,加载元数据时,先写入的32K数据也与元数据一起加载到缓存中。
需要说明的是,***在运行过程中由于磁盘损坏或者节点掉电等导致部分数据损坏时,对于先写入的32K数据采用副本方式恢复,而对于文件的32K之后的数据采用纠删码方式恢复。
实施例四
图6为本发明实施例提供的数据处理装置的结构示意图一,如图6所示,所述装置包括:
存储介质61,用于存储数据;
处理器62,用于将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
在一可选实施例中,所述处理器62,还用于:
当写入数据时,判断待写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后根据所分配的副本冗余模式的布局信息写入所述数据;若有,则根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则根据已有的纠删码冗余模式的布局信息写入所述数据。
在一可选实施例中,所述处理器62,还用于:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
在一可选实施例中,所述处理器62,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间。
在一可选实施例中,所述处理器62,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的从副本数据存储到与所述文件的元数据的存储空间不同的存储空间。
本领域技术人员应当理解,本发明实施例的数据处理装置中各处理模块的功能,可参照前述数据处理方法的相关描述而理解,本发明实施例的数据处理装置中各处理模块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在电子设备上的运行而实现。
其中,所述处理器62在实际应用中,均可由数据处理装置中的中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro Controller Unit)、数字信号处理器(DSP,Digital Signal Processing)或可编程逻辑器件(PLC,Programmable LogicController)等实现。
本实施例所述数据处理装置,可应用于分布式文件***中。
本实施例所述数据处理装置,在分布式文件***中,小文件采用副本冗余模式存储,可保证小文件不会浪费大量***空间;大文件主要使用纠删码冗余模式存储,能节省空间,同时提高文件的访问性能;通过针对不同大小的文件采用不同的存储策略,解决了现有技术中采用单一冗余模式而导致的难以兼顾利用率和性能的问题。
实施例五
图7为本发明实施例提供的数据处理装置的结构示意图二,如图7所示,所述装置包括:
第一处理单元71,用于将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;
第二处理单元72,用于将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
在一可选实施例中,所述装置还包括:
判断单元73,用于:
当写入数据时,判断待写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后通知所述第一处理单元71根据所分配的副本冗余模式的布局信息写入所述数据;若有,则通知所述第一处理单元71根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后通知所述第二处理单元72根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则通知所述第二处理单元72根据已有的纠删码冗余模式的布局信息写入所述数据。
其中,若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
在一可选实施例中,所述第一处理单元71,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间。
在一可选实施例中,所述第一处理单元71,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的从副本数据存储到与所述文件的元数据的存储空间不同的存储空间。
本领域技术人员应当理解,本发明实施例的数据处理装置中各处理模块的功能,可参照前述数据处理方法的相关描述而理解,本发明实施例的数据处理装置中各处理模块,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在电子设备上的运行而实现。
其中,所述第一处理单元71、第二处理单元72、判断单元73,在实际应用中,均可由数据处理装置中的中央处理器CPU、MCU、DSP或PLC等实现。
本实施例所述数据处理装置,可应用于分布式文件***中。
本实施例所述数据处理装置,在分布式文件***中,小文件采用副本冗余模式存储,可保证小文件不会浪费大量***空间;大文件主要使用纠删码冗余模式存储,能节省空间,同时提高文件的访问性能;通过针对不同大小的文件采用不同的存储策略,解决了现有技术中采用单一冗余模式而导致的难以兼顾利用率和性能的问题。
本实施例还记载了一种分布式文件***,所述分布式文件***包括如图6或图7所示的数据处理装置,在此不再对数据处理装置的具体组成结构进行赘述。
所述分布式文件***,将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。如此,在分布式文件***中,小文件采用副本冗余模式存储,可保证小文件不会浪费大量***空间;大文件主要使用纠删码冗余模式存储,能节省空间,同时提高文件的访问性能;通过针对不同大小的文件采用不同的存储策略,解决了现有技术中采用单一冗余模式而导致的难以兼顾利用率和性能的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种数据处理方法,应用于分布式文件***中,其特征在于,所述方法包括:
将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;
将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
2.根据权利要求1所述的方法,其特征在于,所述将文件中先写入的预设数据量的第一数据按照副本冗余模式存储,将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储,包括:写入数据时,
判断写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后根据所分配的副本冗余模式的布局信息写入所述数据;若有,则根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则根据已有的纠删码冗余模式的布局信息写入所述数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
4.根据权利要求1所述的方法,其特征在于,所述方法包括:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间。
5.根据权利要求1所述的方法,其特征在于,所述方法包括:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的从副本数据存储到与所述文件的元数据的存储空间不同的存储空间。
6.一种数据处理装置,应用于分布式文件***中,其特征在于,所述装置包括:
存储介质,用于存储数据;
处理器,用于将文件中先写入的预设数据量的第一数据按照副本冗余模式存储;将所述文件中不同于先写入的预设数据量的第一数据的第二数据按照纠删码冗余模式存储。
7.根据权利要求6所述的装置,其特征在于,所述处理器,还用于:当写入数据时,
判断待写入的数据是否为文件中未超出预设数据量的数据;
如果是,判断是否有副本冗余模式的布局信息,若没有,则分配副本冗余模式的布局信息,并将所分配的副本冗余模式的布局信息写入元数据中,然后根据所分配的副本冗余模式的布局信息写入所述数据;若有,则根据已有的副本冗余模式的布局信息写入所述数据;
如果否,判断是否有纠删码冗余模式的布局信息,若没有,则分配纠删码冗余模式的布局信息,并将所分配的纠删码冗余模式的布局信息写入元数据中,然后根据分配的纠删码冗余模式的布局信息写入所述数据;若有,则根据已有的纠删码冗余模式的布局信息写入所述数据。
8.根据权利要求7所述的装置,其特征在于,所述处理器,还用于:
若所述文件的大小小于或等于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息;
若所述文件的大小大于预设数据量,则所述文件的元数据中包括副本冗余模式的布局信息、纠删码冗余模式的布局信息;其中,所述副本冗余模式的布局信息用于指向所述文件中先写入的预设数据量的第一数据,所述纠删码冗余模式的布局信息用于指向所述文件中不同于先写入的预设数据量的第一数据的第二数据。
9.根据权利要求6所述的装置,其特征在于,所述处理器,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的主副本数据与所述文件的元数据存储到同一存储空间。
10.根据权利要求6所述的装置,其特征在于,所述处理器,还用于:
对于文件中先写入的预设数据量的第一数据,将所述第一数据对应的从副本数据存储到与所述文件的元数据的存储空间不同的存储空间。
11.一种分布式文件***,包括权利要求6至10任一项所述的数据处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610530063.7A CN106227731B (zh) | 2016-07-06 | 2016-07-06 | 一种数据处理方法、装置及分布式文件*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610530063.7A CN106227731B (zh) | 2016-07-06 | 2016-07-06 | 一种数据处理方法、装置及分布式文件*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106227731A CN106227731A (zh) | 2016-12-14 |
CN106227731B true CN106227731B (zh) | 2019-10-29 |
Family
ID=57519500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610530063.7A Active CN106227731B (zh) | 2016-07-06 | 2016-07-06 | 一种数据处理方法、装置及分布式文件*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227731B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874611A (zh) * | 2017-05-12 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种测试数据的构建方法及装置 |
CN107295070B (zh) * | 2017-05-31 | 2019-10-29 | 上海交通大学 | 文件大小异构的分布式编码缓存放置方法及*** |
CN108255432A (zh) * | 2018-01-12 | 2018-07-06 | 郑州云海信息技术有限公司 | 基于分层存储的写操作控制方法、***、装置及存储介质 |
CN110196682B (zh) * | 2018-06-15 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 数据管理方法、装置、计算设备及存储介质 |
CN110347344A (zh) * | 2019-07-19 | 2019-10-18 | 北京计算机技术及应用研究所 | 一种基于分布式存储***的自动配置块存储方法 |
CN110795284B (zh) * | 2019-10-25 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、装置、设备及可读存储介质 |
CN111124282A (zh) * | 2019-11-29 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种对象存储***中的存储方法、存储装置及存储设备 |
CN110990189A (zh) * | 2019-11-29 | 2020-04-10 | 北京金山云网络技术有限公司 | 数据存储方法、装置、电子设备及计算机可读存储介质 |
CN111414271B (zh) * | 2020-03-17 | 2023-10-13 | 上海爱数信息技术股份有限公司 | 一种基于自适应存储冗余策略的存储方法 |
CN113296698A (zh) * | 2021-03-29 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据处理方法、装置及设备 |
CN114115735B (zh) * | 2021-11-18 | 2024-02-09 | 北京奥星贝斯科技有限公司 | 写入数据的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN103838860A (zh) * | 2014-03-19 | 2014-06-04 | 华存数据信息技术有限公司 | 一种基于动态副本策略的文件存储***及其存储方法 |
US8918478B2 (en) * | 2009-07-31 | 2014-12-23 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
CN105635252A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮集团有限公司 | 一种Hadoop分布式文件***HDFS纠删码冗余备份策略 |
CN105677742A (zh) * | 2015-12-30 | 2016-06-15 | 深圳市瑞驰信息技术有限公司 | 一种存储文件的方法及装置 |
CN102937967B (zh) * | 2012-10-11 | 2018-02-27 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
-
2016
- 2016-07-06 CN CN201610530063.7A patent/CN106227731B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918478B2 (en) * | 2009-07-31 | 2014-12-23 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
CN102622185A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 在多个存储单元中存储文件的方法以及存储分配方法 |
CN102937967B (zh) * | 2012-10-11 | 2018-02-27 | 南京中兴新软件有限责任公司 | 数据冗余实现方法及装置 |
CN103838860A (zh) * | 2014-03-19 | 2014-06-04 | 华存数据信息技术有限公司 | 一种基于动态副本策略的文件存储***及其存储方法 |
CN105635252A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮集团有限公司 | 一种Hadoop分布式文件***HDFS纠删码冗余备份策略 |
CN105677742A (zh) * | 2015-12-30 | 2016-06-15 | 深圳市瑞驰信息技术有限公司 | 一种存储文件的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106227731A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227731B (zh) | 一种数据处理方法、装置及分布式文件*** | |
CN102142006B (zh) | 分布式文件***的文件处理方法及装置 | |
US7987158B2 (en) | Method, system and article of manufacture for metadata replication and restoration | |
CN103136243B (zh) | 基于云存储的文件***去重方法及装置 | |
CN101888405B (zh) | 一种云计算的文件***和数据处理方法 | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库*** | |
CN103761190B (zh) | 数据处理方法及装置 | |
CN106021031B (zh) | 一种btrfs文件***的删除数据恢复方法和装置 | |
CN110096476A (zh) | 数据备份方法、装置及计算机可读存储介质 | |
CN107479922A (zh) | 一种闪存数据管理方法、装置及计算机可读存储介质 | |
CN101814045A (zh) | 一种用于备份服务的数据组织方法 | |
CN102955720A (zh) | 一种提高ext文件***稳定性的方法 | |
CN109213420A (zh) | 数据存储方法、装置及*** | |
CN108519856B (zh) | 基于异构Hadoop集群环境下的数据块副本放置方法 | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
CN103049508B (zh) | 一种数据处理方法及装置 | |
CN104715044B (zh) | 一种分布式***及其数据操作方法 | |
CN106686095A (zh) | 一种基于纠删码技术的数据存储方法及装置 | |
CN109144406A (zh) | 分布式存储***中元数据存储方法、***及存储介质 | |
CN105677508A (zh) | 一种云存储中纠删码数据的修改方法及*** | |
CN107797770A (zh) | 一种磁盘状态信息的同步方法及装置 | |
CN110737504A (zh) | 一种深度学习模型训练容错方法、***、终端及存储介质 | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN107301021B (zh) | 一种利用ssd缓存对lun进行加速的方法和装置 | |
CN105589733A (zh) | 一种数据处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |