CN107870940B - 一种文件存储方法及装置 - Google Patents
一种文件存储方法及装置 Download PDFInfo
- Publication number
- CN107870940B CN107870940B CN201610856834.1A CN201610856834A CN107870940B CN 107870940 B CN107870940 B CN 107870940B CN 201610856834 A CN201610856834 A CN 201610856834A CN 107870940 B CN107870940 B CN 107870940B
- Authority
- CN
- China
- Prior art keywords
- metadata
- stored
- file
- target key
- key
- 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
Images
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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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
-
- 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/1469—Backup restoration techniques
-
- 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
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本发明实施例公开了一种文件存储方法及装置,该方法包括:接收针对待存储文件的存储请求;确定用于存储所述待存储文件的目标键;根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。应用本发明实施例,有效地保证了元数据的恢复的同时,节约了存储终端的存储空间。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种文件存储方法及装置。
背景技术
随着网络技术的发展,人们常常将文件上传至网络侧,即将文件存储在存储服务器的网络硬盘(IP(Internet Protocol,网络协议)硬盘)中,节省本地客户端的存储空间,同时避免文件的丢失。这里,存储服务器中包括至少一个IP硬盘,一个IP硬盘对应多个键(Key/Value);一个条带对应多个键,一个条带可以对应一个IP硬盘,也
可以对应多个IP硬盘;一个键中仅存储一个文件,而一个文件可以存储在多个键中。
目前,在存储文件时,需要存储该文件的元数据,以便有数据访问需求时,存储服务器根据元数据获得该文件。这里,元数据可以包括:文件名、键所在域的标识、键中所存储数据在文件中的偏移量、键中所存储数据的长度等文件信息对应的子元数据,以及条带标识和键在条带中的编号等条带信息对应的子元数据。其中,文件信息对应的子元数据是固定不变的,而条带信息对应的子元数据,则可能会改变。例如:在存储服务器删除其他文件后,被删除的文件对应的条带可能会被回收,但被回收的条带还可能对应未被删除的文件,这些未被删除的文件,就会被分配其他的条带,从而导致其条带信息对应的子元数据被改变。
这种情况下,一旦元数据丢失,即使读取到数据,也不能区分出读取到的数据是属于哪些文件的,从而造成文件的损失。
为了避免文件的损失,常采用以下备份元数据方法来存储文件:
在存储文件时,将该文件的元数据存储至元数据库中之后,再将该文件的元数据存储至备份元数据库中,当元数据库中的元数据丢失后,由备份元数据库中的元数据来恢复元数据库中丢失的元数据,从而避免了文件的损失。但是,这样虽然增强了元数据的安全性,能够保证元数据库中元数据的恢复,但是需要增加额外的存储空间去存储备份元数据库中的元数据。
由以上可知,为了避免文件的损失,保证丢失的元数据能够恢复,需要占用额外的存储空间,降低了存储空间的有效利用率。
发明内容
本发明实施例公开了一种文件存储方法及装置,在保证元数据的恢复的同时节约存储空间。
为达到上述目的,本发明实施例公开了一种文件存储方法,所述方法包括:
接收针对待存储文件的存储请求;
确定用于存储所述待存储文件的目标键;
根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;
将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
可选的,在所确定的目标键为多个键的情况下,在所述根据所确定的目标键,获得所述待存储文件的待存储元数据之前,还包括:
根据所确定的目标键的数量,获得每一目标键要存储的所述待存储文件的文件块;
所述根据所确定的目标键,获得所述待存储文件的待存储元数据,包括:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为所述待存储文件的待存储元数据。
可选的,所述获得每一目标键要存储的文件块的元数据,包括:
确定每一目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
对于每一目标键,根据该目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;所述第一固定子元数据和所述第一可变子元数据构成该目标键要存储的文件块的元数据;
所述将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,包括:
对于每一目标键,将所述第一固定子元数据存储至该目标键的名字中,将所述第一可变子元数据存储至该目标键对应的预设存储区域。
可选的,在将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中之后,所述方法还包括:
在所述元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库。
可选的,所述根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库,包括:
获得元数据丢失的文件的标识;
根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新所述元数据库。
可选的,当第一键对应的条带被回收时,所述方法还包括:
获取所述第一键对应的新的条带信息;
根据所述新的条带信息,获得所述第一键中已存储文件的第二可变子元数据;
根据所述第二可变子元数据,更新所述第一键对应的预设存储区域中存储的可变子元数据。
为达到上述目的,本发明实施例还公开了一种文件存储装置,所述装置包括:
接收单元,用于接收针对待存储文件的存储请求;
确定单元,用于确定用于存储所述待存储文件的目标键;
第一获得单元,用于根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;
存储单元,用于将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
可选的,在所确定的目标键为多个键的情况下,所述装置还包括:
第二获得单元,用于在所述根据所确定的目标键,获得所述待存储文件的待存储元数据之前,根据所确定的目标键的数量,获得每一目标键要存储的所述待存储文件的文件块;
所述第一获得单元,具体用于:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为所述待存储文件的待存储元数据。
可选的,所述第一获得单元,包括:
第一确定子单元,用于确定每一目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
第一获得子单元,用于对于每一目标键,根据该目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;所述第一固定子元数据和所述第一可变子元数据构成该目标键要存储的文件块的元数据;
所述存储单元,具体用于:
对于每一目标键,将所述待存储元数据存储至元数据库,以及将所述第一固定子元数据存储至该目标键的名字中,将所述第一可变子元数据存储至该目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
可选的,所述装置还包括:
更新单元,用于在所述元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库。
可选的,所述更新单元,包括:
第二获得子单元,用于在所述元数据库存在元数据丢失的情况下,获得元数据丢失的文件的标识;
第二确定子单元,用于根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
更新子单元,用于根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新所述元数据库。
可选的,当第一键对应的条带被回收时,所述装置还包括:
获取单元,用于获取所述第一键对应的新的条带信息;
第三获得单元,用于根据所述新的条带信息,获得所述第一键中已存储文件的第二可变子元数据;
所述更新单元,还用于:
根据所述第二可变子元数据,更新所述第一键对应的预设存储区域中存储的可变子元数据。
由上可知,在本发明实施例中,在接收到针对待存储文件的存储请求后,获得该待存储文件待存储元数据,在将该待存储元数据存储至元数据库中同时,将该待存储元数据中固定子元数据存储至所确定的目标键的名字中,将该待存储元数据中可变子元数据存储至所确定的目标键对应的预设存储区域。这样,在元数据库存在元数据丢失的情况下,就可以根据键的名字中存储的固定子元数据和该键对应的预设存储区域中的可变子元数据,恢复元数据库中的元数据,保证了元数据的恢复,并且将固定子元数据存储在键的名字原本就占用的固定存储空间中,不会占用额外的存储空间,进而节约了存储空间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种文件存储方法的一种流程示意图;
图2为本发明实施例提供的文件存储示意图;
图3为本发明实施例提供的一种文件存储方法的另一种流程示意图;
图4为本发明实施例提供的一种元数据恢复方法的流程示意图;
图5为本发明实施例提供的一种文件存储装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施例,对本发明进行详细说明。
参考图1,图1为本发明实施例提供的一种文件存储方法的一种流程示意图,该方法包括:
S101:接收针对待存储文件的存储请求;
这里,存储请求中包含待存储文件,还可以包含该待存储文件的标识,以便于快速获得该待存储文件的标识,进而存储该待存储文件的元数据;或者,存储请求也可以不包含该待存储文件的标识,可以通过解析待存储文件以获得该待存储文件的标识,这样存储请求更为简单明了。
S102:确定用于存储待存储文件的目标键;
在本发明的一种实施方式中,具备高可靠性及可扩展性的海量数据存储对于当前的存储设备来说将是一个巨大的挑战,传统的数据库往往很难满足该需求,在这种情况下使用关系型数据库将使得存储和读取数据的效率低下,并且扩展数据库也将成为很大的难题。在这样的情况下,使用键(Key/Value)存储将会是一个很好的选择。键存储具有以下优点:
1、Availability可用性;
2、Scalability可扩展性;
3、Failover故障恢复;
4、Performance高性能。
键由名字Key和值Value组成,并且Key和Value占用的存储空间均是固定的。
假设,每个键的值能够存储的数据量D1是固定的,但是需要存储的文件的数据量D2是不固定的,当待存储文件的数据量D2大于键的值能够存储的数据量D1时,就需要2个、3个或更多个目标键来存储该待存储文件。
在本发明的一种实施方式中,可以根据待存储文件的数据量和键的值能够存储的数据量,计算得到所需的目标键的数量。具体的,由待存储文件的数据量D2除以每个键的值能够存储的数据量D1,获得商,对获得的商取整后再加1,就可以得到需要获得的目标键的个数。如:待存储文件的数据量D2为1.2M,每个键的值能够存储的数据量D1为1M,1.2/1=1.2,取整后得到1,再加1获得2,此时可以确定需要获得的用于存储该待存储文件的目标键的个数为2。
确定了目标键的数量后,可以进一步确定用于存储待存储文件的目标键。在本发明的一种实施方式中,可以从上一次存储文件后文件的末尾存储位置,向后查找所需的目标键的数量个空闲的键作为目标键。假设,当前有5个键,按照存储位置先后排序,分别为a、b、c、d、e,上一次存储数据后数据的末尾存储位置在a中,并且c中存储了数据,确定的目标键的数量为2,则从a向后查找空闲的键,进而可以确定目标键为b和d。
S103:根据所确定的目标键,获得待存储文件的待存储元数据;
确定了目标键后,也就确定了待存储文件的存储位置,该存储位置可以包括:目标键的对应的条带标识和目标键在条带中的编号等信息,此时,可以根据上述待存储文件的存储位置,获得待存储文件的元数据,也就是上述的待存储元数据。待存储文件的元数据包括:固定子元数据和可变子元数据,具体的,固定子元数据包括:文件名、键所在域的标识、键中所存储数据在文件中的偏移量、键中所存储数据的长度等文件信息对应的子元数据;可变子元数据包括:条带标识和键在条带中的编号等条带信息对应的子元数据。
在本发明的一种实施方式中,在确定用于存储待存储文件的目标键包含多个键的情况下,在根据所确定的目标键,获得待存储文件的待存储元数据之前,还可以根据所确定的目标键的数量,获得每一目标键要存储的待存储文件的文件块。
这里,一个目标键对应一个文件块,而文件块为待存储文件的一段数据,也就是说,一个目标键对应待存储文件的一段数据。如:一个待存储文件的数据量为1M,目标键的个数为2,可以获得该待存储文件的2个文件块,每个文件块的数据量为0.5M,也就是说,每个目标键对应0.5M的该待存储文件的数据。在本发明的一种实施方式中,获取待存储文件获得文件块时,每一文件块的大小并不一定是都相同的。例如,在确定了用于存储待存储文件的目标键后,从待存储文件中依次获得若干个数据量为D1的文件块(D1为每一目标键能够存储的数据量),若最后获得的文件块A的数据量D3小于数据量D1,则可以直接将该文件块A确定为一目标键对应的文件块。
假设,待存储文件的数据量D2为1.2M,每一目标键能够存储的数据量D1为1M,那么可以确定目标键的数量为2,从上一次数据存储对应的键向后查找两个空闲的键作为目标键,假设,查找到的两个空闲键的名字分别为Key1和Key2,则可以从该待存储文件中获得与名字为Key1的键对应的1M的文件块和与名字为Key2的键对应的0.2M的文件块。
在本发明的一种实现方式中,可以根据目标键的数量,直接将待存储文件分割为目标键的数量个文件块,其中,每一文件块的数据量D3不大于每一目标键能够存储的数据量D1,此时,可以直接获取文件块,并将获取的文件块存储至对应的目标键中。
这种情况下,上述根据所确定的目标键,获得待存储文件的待存储元数据,可以为:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为待存储文件的待存储元数据。
具体地,在确定的目标键包含多个键的情况下,待存储文件会以文件块的形式存储在多个键中,这种情况下,每一文件块均会对应具体的存储位置,且各个文件块的存储位置可能不是连续的。另外,由于每一文件块相对于待存储文件的文件头的偏移量不同,待存储文件的待存储元数据中不仅包括各个文件块的存储位置信息,还包括文件块相对于待存储文件文件头的偏移量信息,这样,就可以保证从存储设备中读取出文件的各个文件块后,能够对这些文件块进行正确组合,得到完整的文件。
这种情况下,由于该文件块为待存储文件的一部分,因此,可以获得每一目标键的值中存储的文件块的元数据,将所获得的元数据作为待存储文件的待存储元数据的一部分,该待存储文件的所有文件块的元数据组成该待存储文件的完整的待存储元数据。
需要说明的是,文件块的元数据可以包括:该文件块所属待存储文件的标识、存储该文件块的域的标识、该文件块在该待存储文件中的偏移量、该文件块的数据量、该文件块所在键对应的条带的标识和该文件块所在键在条带中的编号。
其中,上述存储该文件块的域的标识为该待存储文件在存储服务器中的附加属性,每个存储服务器中包含多个域,一个域也可以包含多个存储服务器,待存储文件的文件块可以被存储在若干个域中,有了存储文件块的域的标识,在读取文件时就能够更为准确快速地获得该文件块;另外,上述文件块在待存储文件中的偏移量为:该文件块相对于该待存储文件文件头的偏移量,如上述假设中,名字为Key2的键的值中存储的文件块在待存储文件中的偏移量为1M;存储服务器通过条带管理键中存储的文件块,如图2所示,每一键对应一个条带,一个条带中包括存储文件块的键(如:存储File1_1的键、存储File2_1的键)和存储校验数据的键(如:存储Stripe1_P的键、存储Stripe2_P的键和存储Stripe3_P的键),这样,当一个键J中文件块不能正常读取的情况下,可以通过键J对应条带中其他键中的文件块和校验数据进行纠删码EC计算,重构键J中的文件块。
在发明的一实施方式中,上述获得每一目标键要存储的文件块的元数据,可以包括以下步骤:
S01、确定每一目标键要存储的文件块相对于待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
在本发明的一种实施方式中,确定每一目标键要存储的文件块相对于待存储文件的文件头的偏移量,可以包括:
计算目标键X要存储的文件块F相对于待存储文件文件头的偏移量,其中,目标键X为:待存储文件对应的若干目标键中的任一键。
文件块相对于该待存储文件文件头的偏移量也是该待存储文件的待存储元数据的一部分,存储该偏移量后,在读取文件时,根据该偏移量可以准确的获得该文件的文件块,并以正确的顺序将存储在多个键中的、属于同一个文件的文件块组成完整正确的文件。
S02、对于每一目标键,根据该目标键要存储的文件块相对于待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;第一固定子元数据和第一可变子元数据构成该目标键要存储的文件块的元数据。
在本发明的一种实施方式中,在确定了文件块F相对于待存储文件的文件头的偏移量之后,结合待存储文件的标识、文件块F的数据量和存储该文件块F的设备所在域的标识等元数据信息,获得该目标键X的值要存储的文件块F的第一固定子元数据;根据该目标键对应的条带信息,如:条带的标识和目标键在条带中的编号等,获得该目标键X要存储的文件块F的第一可变子元数据,第一固定子元数据和第一可变子元数据结合,构成该目标键要存储的文件块的元数据。
S104:将待存储元数据存储至元数据库,以及将固定子元数据存储至所确定的目标键的名字中,将可变子元数据存储至所确定的目标键对应的预设存储区域,并将待存储文件存储至所确定的目标键的值中。
这里,元数据库,用于存储文件的元数据。
将待存储文件存储至目标键的值中的同时,将待存储元数据存储至元数据库,待存储元数据中的固定子元数据目标键的名字中,而待存储元数据中的可变子元数据作为附属信息存储在目标键对应的预设存储区域中。这样,在进行数据访问时,就可以根据元数据库中的元数据进行数据访问了。
在本发明的一种实施方式中,元数据库存在元数据丢失的情况,此时,参考图3,在S104之后,上述文件存储方法还可以包括:
S105:在元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新元数据库。
待存储元数据中的固定子元数据存储在目标键的名字中,待存储元数据中的可变子元数据作为附属信息存储在目标键对应的预设存储区域中,可以在元数据库存在元数据丢失的情况下,获取键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,进而组成完整的元数据,更新元数据库,恢复元数据库中的元数据。
在本发明的一种实施方式中,元数据库中丢失的元数据可能仅仅只是一小部分,此时,若全部更新元数据库中存储的元数据,将导致元数据的恢复速度慢。基于上述情况,本发明实施例提供了一种元数据恢复方法,可参考图4,该方法包括:
S401:获得元数据丢失的文件的标识;
在本发明的一种实施方式中,当不能够读取到某一文件时,则可以判定该文件在元数据库中的元数据丢失,进而获得该文件的标识。在本发明的一种可选实现方式中,该文件的标识可以从针对该文件的读取请求中获得。
S402:根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
元数据中包含文件的标识,可以读取所有键的名字中存储的固定子元数据,判断读取到的固定子元数据是否包含元数据丢失的文件的标识,若一个键的名字中存储的固定子元数据包含该文件的标识,则将该键确定为包含该文件的标识的键。
S403:根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新元数据库。
这种情况下,只更新了元数据库中丢失的元数据,大大提高了元数据库更新的效率。
在本发明的一种实施方式中,可能会存在文件的删除,当删除大量文件时,可以调整键对应的条带,节省出一些条带,以便令这些节省出的条带去存储其他文件,这可以称为条带回收。如图2中,删除了File1和File3,则可以将File2_1所在键对应的条带修改为条带Strip2,进而可以回收Strip1和Strip3。File2_1所在键对应的条带发生了变化,则File2_1的条带信息对应的子元数据(可变子元数据)也会发生变化,为保证元数据库存在元数据丢失的情况下,能够恢复元数据,需要更新File2_1的可变子元数据。假设,第一键对应的条带被回收时,那么更新可变子元数据的过程可以包括以下步骤:
S11、获取第一键对应的新的条带信息;
S12、根据新的条带信息,获得第一键中已存储文件的第二可变子元数据;
S13、根据第二可变子元数据,更新第一键对应的预设存储区域中存储的可变子元数据。
这里,在键对应的条带信息发生变化时,只需要更新预设存储区域中存储的可变子元数据,而不需要更新键的名字中的固定子元数据,也就是,键的名字不会发生变化,进而避免的因键的名字发生变化而要转存的问题。
需要说明的是,上述存储待存储文件的步骤可以与存储待存储元数据的步骤同时执行,也可以在存储待存储元数据之前S102之后执行,或者,也可以在存储待存储元数据之后执行,本申请并不对此进行限定。
在本发明的一种实施方式中,在目标键包含多个键时,键的命名规则可以为:固定子元数据:[文件的标识]_[该文件所在域的标识]_[键的值中存储的文件块相对于该文件文件头的偏移量]_[键的值中存储的该文件的文件块的数据量],可变子元数据:[键对应的条带的标识]_[键在条带中的编号]。在一个实施例中,根据步骤S103中的描述,可以参考表1对键进行命名,表1为原键的名字与本发明实施例中键的名字的对比。
表1
其中,第一个键的原名为key1,第二个键的原名为key2。
固定子元数据和可变子元数据的对比可参考表2。
表2
固定子元数据 | 可变子元数据 |
[file1]_[1]_[0]_[len_in_key1] | [Strip1]_[1] |
[file1]_[1]_[len_in_key1]_[len_in_key2] | [Strip2]_[3] |
表1中,在本发明实施例的键的名字中,[file1]为文件A的标识;[1]为存储该文件A的域的标识,表示文件A被存储在域1中;
在本发明实施例的第一个键(原名为key1的键)中,[0]为键的值中存储的文件块相对于该文件A文件头的偏移量,因为第一个键是从文件A文件头开始存储文件A的一个文件块的,所以第一个键的偏移量为0;[len_in_key1]表示在第一个键的值中存储的文件块的数据量;
在本发明实施例的第二个键(原名为key2的键)中,[len_in_key1]为键的值中存储的文件块相对于该文件A文件头的偏移量,因为在第一个键中已经存储了数据量为[len_in_key1]的文件块,因此,第二个键的偏移量为[len_in_key1];[len_in_key2]表示在第二个键中存储的文件块的数据量;
另外,表1中在本发明实施例的键的名字中数据对应表2中的固定子元数据,表2中,可变子元数据中,[Strip1]表示条带1,[1]表示第一个键在条带1中的编号为1,[Strip2]表示条带2,[3]表示第二个键在条带2中的编号为3。
按照一定的命名规则存储了固定子元数据和可变子元数据后,可以根据该命名规则提取出元数据库中需要的元数据,在元数据库中存在元数据丢失的情况下,更新元数据库。
在本发明的一种实施方式中,按照文件块的起始存储位置相对于待存储文件的文件头的偏移量由小到大的顺序,依次存储至目标键中,这样避免待存储文件的某一文件块未能成功存储的问题;另外,将文件块存储至目标键中时,按照目标键的物理地址或逻辑地址由小到大的顺序依次存储文件块,这样在读取该待存储文件时,便于快速获得该待存储文件的文件块。
另外,成功存储了待存储文件后,再存储该待存储文件的元数据,保证了元数据库中的元数据的准确性,避免出现未成功存储待存储文件,却存储了该待存储文件的元数据,进而导致不能正确读取元数据库中的元数据数据,出现存储终端崩溃等问题。
应用上述实施例,在接收到针对待存储文件的存储请求后,获得该待存储文件待存储元数据,在将该待存储元数据存储至元数据库中同时,将该待存储元数据中固定子元数据存储至所确定的目标键的名字中,将该待存储元数据中可变子元数据存储至所确定的目标键对应的预设存储区域。这样,在元数据库存在元数据丢失的情况下,就可以根据键的名字中存储的固定子元数据和该键对应的预设存储区域中的可变子元数据,恢复元数据库中的元数据,保证了元数据的恢复,并且将固定子元数据存储在键的名字原本就占用的固定存储空间中,不会占用额外的存储空间,进而节约了存储空间。
参考图5,图5为本发明实施例提供的一种文件存储装置的结构示意图,该装置包括:
接收单元501,用于接收针对待存储文件的存储请求;
确定单元502,用于确定用于存储所述待存储文件的目标键;
第一获得单元503,用于根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;
存储单元504,用于将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
在本发明的一种实施方式中,在所确定的目标键为多个键的情况下,所述装置还可以包括:
第二获得单元(图5中未示出),用于在所述根据所确定的目标键,获得所述待存储文件的待存储元数据之前,根据所确定的目标键的数量,获得每一目标键要存储的所述待存储文件的文件块;
所述第一获得单元503,具体用于:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为所述待存储文件的待存储元数据。
在本发明的一种实施方式中,所述第一获得单元503,可以包括:
第一确定子单元(图5中未示出),用于确定每一目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
第一获得子单元(图5中未示出),用于对于每一目标键,根据该目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;所述第一固定子元数据和所述第一可变子元数据构成该目标键要存储的文件块的元数据;
所述存储单元504,具体用于:
对于每一目标键,将所述待存储元数据存储至元数据库,以及将所述第一固定子元数据存储至该目标键的名字中,将所述第一可变子元数据存储至该目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
在本发明的一种实施方式中,所述装置还包括:
更新单元(图5中未示出),用于在所述元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库。
在本发明的一种实施方式中,所述更新单元,可以包括:
第二获得子单元(图5中未示出),用于在所述元数据库存在元数据丢失的情况下,获得元数据丢失的文件的标识;
第二确定子单元(图5中未示出),用于根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
更新子单元(图5中未示出),用于根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新所述元数据库。
在本发明的一种实施方式中,当第一键对应的条带被回收时,所述装置还可以包括:
获取单元(图5中未示出),用于获取所述第一键对应的新的条带信息;
第三获得单元(图5中未示出),用于根据所述新的条带信息,获得所述第一键中已存储文件的第二可变子元数据;
所述更新单元,还用于:
根据所述第二可变子元数据,更新所述第一键对应的预设存储区域中存储的可变子元数据。
应用上述实施例,在接收到针对待存储文件的存储请求后,获得该待存储文件待存储元数据,在将该待存储元数据存储至元数据库中同时,将该待存储元数据中固定子元数据存储至所确定的目标键的名字中,将该待存储元数据中可变子元数据存储至所确定的目标键对应的预设存储区域。这样,在元数据库存在元数据丢失的情况下,就可以根据键的名字中存储的固定子元数据和该键对应的预设存储区域中的可变子元数据,恢复元数据库中的元数据,保证了元数据的恢复,并且将固定子元数据存储在键的名字原本就占用的固定存储空间中,不会占用额外的存储空间,进而节约了存储空间。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种文件存储方法,其特征在于,所述方法包括:
接收针对待存储文件的存储请求;
确定用于存储所述待存储文件的目标键;所述目标键为目标键值对,所述目标键包括目标键的名字、目标键的值;
根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;所述固定子元数据为待存储文件的文件信息对应的子元数据;所述可变子元数据为目标键对应的条带信息的子元数据;
将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
2.根据权利要求1所述的方法,其特征在于,在所确定的目标键为多个键的情况下,在所述根据所确定的目标键,获得所述待存储文件的待存储元数据之前,还包括:
根据所确定的目标键的数量,获得每一目标键要存储的所述待存储文件的文件块;
所述根据所确定的目标键,获得所述待存储文件的待存储元数据,包括:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为所述待存储文件的待存储元数据。
3.根据权利要求2所述的方法,其特征在于,所述获得每一目标键要存储的文件块的元数据,包括:
确定每一目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
对于每一目标键,根据该目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;所述第一固定子元数据和所述第一可变子元数据构成该目标键要存储的文件块的元数据;
所述将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,包括:
对于每一目标键,将所述第一固定子元数据存储至该目标键的名字中,将所述第一可变子元数据存储至该目标键对应的预设存储区域。
4.根据权利要求1所述的方法,其特征在于,在将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中之后,所述方法还包括:
在所述元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库。
5.根据权利要求4所述的方法,其特征在于,所述根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库,包括:
获得元数据丢失的文件的标识;
根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新所述元数据库。
6.根据权利要求1所述的方法,其特征在于,当第一键对应的条带被回收时,所述方法还包括:
获取所述第一键对应的新的条带信息;
根据所述新的条带信息,获得所述第一键中已存储文件的第二可变子元数据;
根据所述第二可变子元数据,更新所述第一键对应的预设存储区域中存储的可变子元数据。
7.一种文件存储装置,其特征在于,所述装置包括:
接收单元,用于接收针对待存储文件的存储请求;
确定单元,用于确定用于存储所述待存储文件的目标键;所述目标键为目标键值对,所述目标键包括目标键的名字、目标键的值;
第一获得单元,用于根据所确定的目标键,获得所述待存储文件的待存储元数据;所述待存储元数据包括:固定子元数据和可变子元数据;所述固定子元数据为待存储文件的文件信息对应的子元数据;所述可变子元数据为目标键对应的条带信息的子元数据;
存储单元,用于将所述待存储元数据存储至元数据库,以及将所述固定子元数据存储至所确定的目标键的名字中,将所述可变子元数据存储至所确定的目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
8.根据权利要求7所述的装置,其特征在于,在所确定的目标键为多个键的情况下,所述装置还包括:
第二获得单元,用于在所述根据所确定的目标键,获得所述待存储文件的待存储元数据之前,根据所确定的目标键的数量,获得每一目标键要存储的所述待存储文件的文件块;
所述第一获得单元,具体用于:
获得每一目标键要存储的文件块的元数据,并将所获得的元数据确定为所述待存储文件的待存储元数据。
9.根据权利要求8所述的装置,其特征在于,所述第一获得单元,包括:
第一确定子单元,用于确定每一目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,并确定每一目标键对应的条带信息;
第一获得子单元,用于对于每一目标键,根据该目标键要存储的文件块相对于所述待存储文件的文件头的偏移量,获得该目标键要存储的文件块的第一固定子元数据,并根据该目标键对应的条带信息,获得该目标键要存储的文件块的第一可变子元数据;所述第一固定子元数据和所述第一可变子元数据构成该目标键要存储的文件块的元数据;
所述存储单元,具体用于:
对于每一目标键,将所述待存储元数据存储至元数据库,以及将所述第一固定子元数据存储至该目标键的名字中,将所述第一可变子元数据存储至该目标键对应的预设存储区域,并将所述待存储文件存储至所确定的目标键的值中。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
更新单元,用于在所述元数据库存在元数据丢失的情况下,根据所有键的名字中存储的固定子元数据和预设存储区域中存储的可变子元数据,更新所述元数据库。
11.根据权利要求10所述的装置,其特征在于,所述更新单元,包括:
第二获得子单元,用于在所述元数据库存在元数据丢失的情况下,获得元数据丢失的文件的标识;
第二确定子单元,用于根据所获得的标识和所有键的名字中存储的固定子元数据,确定包含所获得的标识的键;
更新子单元,用于根据所确定的键的名字中存储的固定子元数据以及所确定的键对应的预设存储区域中存储的可变子元数据,更新所述元数据库。
12.根据权利要求10所述的装置,其特征在于,当第一键对应的条带被回收时,所述装置还包括:
获取单元,用于获取所述第一键对应的新的条带信息;
第三获得单元,用于根据所述新的条带信息,获得所述第一键中已存储文件的第二可变子元数据;
所述更新单元,还用于:
根据所述第二可变子元数据,更新所述第一键对应的预设存储区域中存储的可变子元数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856834.1A CN107870940B (zh) | 2016-09-28 | 2016-09-28 | 一种文件存储方法及装置 |
EP17854689.1A EP3522040B1 (en) | 2016-09-28 | 2017-09-13 | Method and device for file storage |
PCT/CN2017/101642 WO2018059239A1 (zh) | 2016-09-28 | 2017-09-13 | 一种文件存储方法及装置 |
US16/337,632 US10664349B2 (en) | 2016-09-28 | 2017-09-13 | Method and device for file storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856834.1A CN107870940B (zh) | 2016-09-28 | 2016-09-28 | 一种文件存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107870940A CN107870940A (zh) | 2018-04-03 |
CN107870940B true CN107870940B (zh) | 2021-06-18 |
Family
ID=61752235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610856834.1A Active CN107870940B (zh) | 2016-09-28 | 2016-09-28 | 一种文件存储方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10664349B2 (zh) |
EP (1) | EP3522040B1 (zh) |
CN (1) | CN107870940B (zh) |
WO (1) | WO2018059239A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874182B (zh) * | 2018-08-31 | 2023-12-26 | 杭州海康威视系统技术有限公司 | 一种条带索引的处理方法、装置及设备 |
CN109656886B (zh) * | 2018-12-26 | 2021-11-09 | 百度在线网络技术(北京)有限公司 | 基于键值对的文件系统实现方法、装置、设备和存储介质 |
CN112269682A (zh) * | 2020-10-20 | 2021-01-26 | 深圳市前海手绘科技文化有限公司 | 一种动画视频备份方法 |
CN113568576A (zh) * | 2021-07-23 | 2021-10-29 | 杭州朗和科技有限公司 | 数据处理方法及装置、存储介质、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699585A (zh) * | 2013-12-06 | 2014-04-02 | 华为技术有限公司 | 文件的元数据存储以及文件恢复的方法、装置和系统 |
CN103902632A (zh) * | 2012-12-31 | 2014-07-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
CN105141666A (zh) * | 2015-07-29 | 2015-12-09 | 江苏天联信息科技发展有限公司 | 信息数据存储方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129614A1 (en) | 2004-12-14 | 2006-06-15 | Kim Hong Y | Crash recovery system and method for distributed file server using object based storage |
KR101413298B1 (ko) * | 2010-11-04 | 2014-06-27 | 한국전자통신연구원 | 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법 |
CN102110146B (zh) | 2011-02-16 | 2012-11-14 | 清华大学 | 基于键值key-value存储的分布式文件系统元数据管理方法 |
US8631052B1 (en) * | 2011-12-22 | 2014-01-14 | Emc Corporation | Efficient content meta-data collection and trace generation from deduplicated storage |
CN103186668B (zh) * | 2013-03-11 | 2016-02-10 | 北京京东世纪贸易有限公司 | 基于键值数据库的数据处理方法与装置以及数据存储系统 |
CN104408091B (zh) | 2014-11-11 | 2019-03-01 | 清华大学 | 分布式文件系统的数据存储方法及系统 |
CN105069048A (zh) | 2015-07-23 | 2015-11-18 | 东方网力科技股份有限公司 | 一种小文件存储方法、查询方法和装置 |
CN105354315B (zh) * | 2015-11-11 | 2018-10-30 | 华为技术有限公司 | 分布式数据库中子表分裂的方法、子表节点和系统 |
-
2016
- 2016-09-28 CN CN201610856834.1A patent/CN107870940B/zh active Active
-
2017
- 2017-09-13 WO PCT/CN2017/101642 patent/WO2018059239A1/zh unknown
- 2017-09-13 US US16/337,632 patent/US10664349B2/en active Active
- 2017-09-13 EP EP17854689.1A patent/EP3522040B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902632A (zh) * | 2012-12-31 | 2014-07-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
CN103699585A (zh) * | 2013-12-06 | 2014-04-02 | 华为技术有限公司 | 文件的元数据存储以及文件恢复的方法、装置和系统 |
CN105141666A (zh) * | 2015-07-29 | 2015-12-09 | 江苏天联信息科技发展有限公司 | 信息数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3522040B1 (en) | 2022-01-12 |
US20200034238A1 (en) | 2020-01-30 |
WO2018059239A1 (zh) | 2018-04-05 |
CN107870940A (zh) | 2018-04-03 |
US10664349B2 (en) | 2020-05-26 |
EP3522040A1 (en) | 2019-08-07 |
EP3522040A4 (en) | 2019-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870940B (zh) | 一种文件存储方法及装置 | |
US10417191B2 (en) | Transmitting filesystem changes over a network | |
US20160292178A1 (en) | De-duplicating distributed file system using cloud-based object store | |
US8335889B2 (en) | Content addressable storage systems and methods employing searchable blocks | |
US20190121705A1 (en) | Backup item metadata including range information | |
CN108255647B (zh) | 一种samba服务器集群下的高速数据备份方法 | |
US20120203745A1 (en) | System and method for range search over distributive storage systems | |
CN111045857B (zh) | 数据备份和恢复的方法、电子设备和计算机可读存储介质 | |
WO2013086969A1 (zh) | 重复数据查找方法、装置及系统 | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
CN110647514B (zh) | 一种元数据更新方法、装置及元数据服务器 | |
CN106445643B (zh) | 克隆、升级虚拟机的方法及设备 | |
Strzelczak et al. | Concurrent Deletion in a Distributed {Content-Addressable} Storage System with Global Deduplication | |
CN109684273A (zh) | 一种快照管理方法、装置、设备及可读存储介质 | |
CN109241004B (zh) | 元数据文件大小恢复方法、系统、装置及可读存储介质 | |
CN111125298A (zh) | 重建ntfs文件目录树的方法、设备及存储介质 | |
CN109947730B (zh) | 元数据恢复方法、装置、分布式文件系统及可读存储介质 | |
CN110245129B (zh) | 一种分布式全局数据去重方法和装置 | |
CN109271097B (zh) | 数据处理方法、数据处理装置和服务器 | |
CN111708763B (zh) | 分片集群的数据迁移方法、装置和分片集群系统 | |
CN107301177B (zh) | 一种文件存储方法及装置 | |
CN107291579B (zh) | 一种基于静态子树分区的元数据集群文件快照方法 | |
CN112749172A (zh) | 一种缓存与数据库之间的数据同步方法及系统 | |
US10949088B1 (en) | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system | |
CN107301183B (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 |