CN113853778B - 一种文件系统的克隆方法及装置 - Google Patents
一种文件系统的克隆方法及装置 Download PDFInfo
- Publication number
- CN113853778B CN113853778B CN202080035974.7A CN202080035974A CN113853778B CN 113853778 B CN113853778 B CN 113853778B CN 202080035974 A CN202080035974 A CN 202080035974A CN 113853778 B CN113853778 B CN 113853778B
- Authority
- CN
- China
- Prior art keywords
- file
- metadata
- storage system
- file system
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000010367 cloning Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 abstract description 8
- 230000005012 migration Effects 0.000 abstract description 5
- 238000013508 migration Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 130
- 230000006870 function Effects 0.000 description 21
- 238000013461 design Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009172 bursting Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0643—Management of files
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Abstract
一种文件系统的克隆方法及装置,在该方法中,目的存储系统首先从运行有文件系统的源存储系统接收第一信息,该第一信息用于指示该文件系统的数据布局,然后,目的存储系统则根据该第一信息创建该文件系统的克隆文件系统。当目的存储系统创建了与源存储系统中的文件系统对应的克隆文件系统后,运行在源存储系统的文件系统上的应用,也可以在该克隆文件系统上运行。由于创建克隆文件系统只需要源文件系统的数据布局,也就是说不需要传输文件系统所包括的文件的数据,且数据布局的数据量相较于文件所包括的数据的数据量小,从而可以减少应用迁移过程的时延。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种文件系统的克隆方法及装置。
背景技术
云爆发(cloud bursting)是存储系统中使用较广泛的一种应用部署架构,其主要思想是:部署在本地存储系统中应用,在需要使用大量的资源(例如,计算资源或者存储资源)时,可以将该应用迁移到公有云上,利用公有云中的资源进行处理,以节省本地存储系统的资源。
应用在公有云上使用之前,必须将与该应用相关的所有的数据迁移到公有云上,例如,可能需要将本地存储系统中所有的数据都迁移到公有云上。然而,数据迁移需要一定的时长,尤其是当需要迁移的数据量较大时,则需要更长的时间等待数据迁移,造成处理时延较大,影响用户使用。
发明内容
本申请提供一种文件系统的克隆方法及装置,用以解决应用迁移过程的时延较大的问题。
第一方面,提供一种文件系统的克隆方法,在该方法中,目的存储系统首先从运行有文件系统的源存储系统接收第一信息,该第一信息用于指示该文件系统的数据布局,然后,目的存储系统则根据该第一信息创建该文件系统的克隆文件系统。
在上述技术方案中,当目的存储系统创建了与源存储系统中的文件系统对应的克隆文件系统后,运行在源存储系统的文件系统上的应用,也可以在该克隆文件系统上运行。由于创建克隆文件系统只需要源文件系统的数据布局,且,源存储系统在接收目的存储系统发送的数据获取请求之前,不会向目的存储系统发送任意一个文件所包括的数据,也就是说不需要传输文件系统所包括的文件的数据,且数据布局的数据量相较于文件所包括的数据的数据量小,从而可以减少应用迁移过程的时延。
在一种可能的设计中,该第一信息可以包括但不限于如下两种内容:
第一种,该第一信息包括该文件系统中所有文件的元数据。
在上述技术方案中,若源存储系统和目的存储系统中元数据的描述方式相同,则可以直接通过元数据指示文件系统的数据布局,实现方式简单。
第二种,该第一信息包括该文件系统中所有文件的元数据的语义分析信息,每个文件的元数据的语义分析信息中包括该文件的元数据的标识、该文件的元数据对应的操作以及创建该文件的元数据所需的数据。
在上述技术方案中,若源存储系统和目的存储系统中元数据的描述方式不同,则可以通过对元数据的语义分析信息来指示文件系统的数据布局,可以方案的适用性。当然,若源存储系统和目的存储系统中元数据的描述方案相同,也可以采用这种方式来指示文件系统的数据布局,在此不做限制。
进一步,可以通过上述两种内容中的其中一种来指示文件系统的数据布局,可以增加方案的灵活性。
在一种可能的设计中,该目的存储系统还可以接收源存储系统发送的第二信息,该第二信息包括该文件系统发生变化的文件的元数据或者该发生变化的文件的元数据的语义分析信息,然后,目的存储系统根据该第二信息,更新该克隆文件系统。
在上述技术方案中,当源存储系统中的文件发生变更后,可以将变更的文件的元数据或者元数据的语义分析信息发送给目的存储系统,以更新克隆文件系统,实现增量更新。
在一种可能的设计中,当目的存储系统接收包括待读取数据块的标识的读数据请求后,在目的存储系统确定该目的存储系统中未存储该待读取数据块的情况下,该目的存储系统可以向源存储系统发送第一数据获取请求,该第一数据获取请求中包括该待读取数据块的标识,以获取该待读取数据块,当目的存储系统从该源存储系统接收该待读取数据块后,可以保存该待读取数据块。
在上述技术方案中,目的存储系统可以按需从源存储系统中获取数据块,以满足用户的使用需求,这样,不需要使用的数据块则不用发送到目的存储系统,可以减少源存储系统和目的存储系统之间传输的数据量。
在一种可能的设计中,目的存储系统在接收读数据请求后,还可以根据预取规则和该读数据请求,确定预读取的数据块,并向该源存储系统发送包括该预读取的数据块的标识的第二数据获取请求,以获取该预读取的数据块。当目的存储系统从源存储系统接收该预读取的数据块后,则将该预读取的数据块存储在目的存储系统中。
在上述技术方案中,目的存储系统可以预取部分数据块保存在目的存储系统中,从而当后续接收到对该预读取数据块的读数据请求时,可以直接从本地读取该数据块,可以减少响应时延。
第二方面,提供一种文件系统的克隆装置,该文件系统的克隆装置可以是管理节点或者管理服务端,也可以是管理节点或者管理服务端中的装置。该文件系统的克隆装置包括处理器,用于实现上述第一方面描述的方法。该文件系统的克隆装置还可以包括存储器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法。
在一种可能的设计中,该文件系统的克隆装置的处理器执行存储器中的程序指令,以实现如下功能:
接收源存储系统发送的第一信息,所述源存储系统中运行有文件系统,所述第一信息用于指示所述文件系统的数据布局;
根据所述第一信息创建所述文件系统的克隆文件系统。
在一种可能的设计中,对该第一信息的说明与第一方面中相应内容相似,在此不再赘述。
在一种可能的设计中,处理器执行存储器中存储的程序指令,以实现如下功能:
接收所述源存储系统发送的第二信息,所述第二信息包括所述文件系统发生变化的文件的元数据或者所述发生变化的文件的元数据的语义分析信息;
根据所述第二信息,更新所述克隆文件系统。
在一种可能的设计中,处理器执行存储器中存储的程序指令,以实现如下功能:
接收读数据请求,所述读数据请求包括待读取数据块的标识;
确定所述目的存储系统中未存储所述待读取数据块时,向所述源存储系统发送第一数据获取请求,所述第一数据获取请求中包括所述待读取数据块的标识;
从所述源存储系统接收并保存所述待读取数据块。
在一种可能的设计中,处理器执行存储器中存储的程序指令,以实现如下功能:
根据预取规则和所述读数据请求,确定预读取的数据块;
向所述源存储系统发送第二数据获取请求,所述第二数据获取请求中包括所述预读取的数据块的标识;
从所述源存储系统接收所述预读取的数据块,并将所述预读取的数据块存储在所述目的存储系统中。
第三方面,提供一种文件系统的克隆装置,该文件系统的克隆装置可以是管理节点或者管理服务端,也可以是管理节点或者管理服务端中的装置。该文件系统的克隆装置可以包括收发单元和创建单元,这些单元可以执行上述第一方面任一种设计示例中的所执行的相应功能,具体的:
该收发单元,用于接收源存储系统发送的第一信息,所述源存储系统中运行有文件系统,所述第一信息用于指示所述文件系统的数据布局;
该创建单元,用于根据所述第一信息创建所述文件系统的克隆文件系统。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任意一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任意一项所述的方法。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第七方面,本申请实施例提供了一种存储系统,该存储系统包括源存储系统和第二方面及第二方面任一种设计中所述的文件系统的克隆装置,或者,该存储系统包括源存储系统和第三方面及第三方面任一种设计中所述的文件系统的克隆装置。
上述第二方面至第七方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。
附图说明
图1为本申请实施例的应用场景的一种示例的示意图;
图2为本申请实施例提供的文件系统的克隆方法的流程图;
图3为本申请实施例中提供的文件系统的数据布局的一种示例的示意图;
图4为本申请实施例中在存储系统110中创建的克隆的文件系统的示例的示意图;
图5为本申请实施例中克隆的文件系统处理读数据请求的流程图;
图6为本申请实施例中克隆的文件系统处理写数据请求的流程图;
图7为本申请实施例中提供的文件系统的克隆装置的一种示例的结构示意图;
图8为本申请实施例中提供的文件系统的克隆装置的另一种示例的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。在本申请实施例中,“节点”和“节点”可以互换使用。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
本申请实施例提供的文件系统的克隆方法可以应用在两个存储系统中。请参考图1,为本申请实施例的应用场景的一种示例的示意图。在图1中,包括存储系统100和存储系统110。存储系统100包括管理模块101和至少一个存储节点102(在图1中以3个存储节点102,分别为存储节点1~存储节点3为例),管理模块101用于向每个存储节点101中写入数据,以及,从至少一个存储节点102中读取数据。
图1中的存储节点102可以是独立的服务器,或者,也可以是包括至少一个存储设备的存储阵列,该存储设备可以是硬盘驱动器(hard disk drive,HDD)磁盘设备、固态驱动器(solid state drive,SSD)磁盘设备,串行高级技术附件(serial advanced technologyattachment,SATA)磁盘设备、小型计算机系统接口(small computer system interface,SCSI)磁盘设备、串行连接SCSI接口(serial attached SCSI,SAS)磁盘设备或者光纤通道接口(fibre channel,FC)磁盘设备等。
图1中的管理模块101可以是独立的服务器或者控制器等,管理模块101和至少一个存储节点102可以是相互独立的设备,例如,管理模块101为一个独立的服务器;或者,管理模块101也可以是软件模块,部署在某一个存储节点102上,例如,管理模块101和某一个存储节点102运行在同一个服务器上,在此不对管理模块101和存储节点102的具体形式进行限制。在图1中,以管理模块101与存储节点102为相互独立的设备为例进行说明。
存储系统100中包括文件系统103。管理模块101运行文件系统103,以控制向存储节点102中写入数据和读取数据的方式。如果没有文件系统,置于至少一个存储节点102的存储空间中的信息将会是一个大的数据体,无法区分一个信息的起始位置和终止位置。将数据分隔开来并给每一个数据命名,这样很容易分离以及识别信息。基于纸质信息系统命名的方式进行命名,每组数据称为“文件”。用于管理各组信息及其名字的结构和逻辑规则称为“文件系统”。相应地,文件系统103负责整理文件,并且追踪文件何时被更改。进一步地,文件系统103中存储了所有文件的元数据,每一个文件的元数据包括文件名称、文件ID(例如,索引节点号)、文件数据块的大小、存储在磁盘中的文件位置、创建文件的时间戳、以及将各个数据块写入磁盘的多个时间戳等信息。文件系统103中所有文件的元数据分散存储在至少一个存储节点102中。
存储系统110的硬件架构与上述存储系统100的硬件架构相似。例如,存储系统110包括管理模块111和至少一个存储节点112(分别为存储节点4~存储节点6),管理模块111与管理模块101相似,至少一个存储节点112与至少一个存储节点102相似,在此不再赘述。
在创建文件系统之前,存储系统110中可以预留用于存储文件系统所需数据的存储空间,该存储空间的大小可以是预先设置的,或者可以是由管理模块111确定的,该存储空间分布在目的存储系统110所有的存储节点112上或者分布在部分存储节点112上。另外,不同类型的文件系统中文件的元数据的描述方式不同,管理员可以通过管理模块111配置文件系统的类型和属性,例如所述文件系统的类型可以是采用32位的文件分配表(fileallocation table,FAT)的FAT 32文件系统或者新技术文件系统(new technology filesystem,NTFS)或者第三代扩展文件系统(third extended file system,ETX3)等。所述文件系统的属性可以包括该文件系统是只读的文件系统还是可读可写的文件系统。
在图1所示的应用场景中,存储系统100是分布式存储系统,存储系统110也是分布式存储系统。在其他应用场景中,存储系统100或者存储系统110还可以是集中式存储系统。在另一些应用场景中,存储系统110还可以是公有云或者私有云等云存储系统,或者存储系统100和存储系统110均为云存储系统,在此不作限制。
下面,以图1所示的应用场景为例,对本申请实施例中的文件系统的克隆方法进行说明。请参考图2,为该方法的流程图,该流程图描述如下:
S201、管理模块101获取文件系统103在第一时刻的第一信息。
本申请实施例中,该第一信息用于指示文件系统103的数据布局。该第一时刻可以用于泛指任意一个时刻。例如,管理模块101可以根据从与存储系统100通信的客户端接收的克隆请求来获取该第一信息,则该第一时刻可以是接收到该克隆请求之后的某一个时刻。或者,管理模块101也可以周期性地主动获取该第一信息,则该第一时刻可以是任意一个周期的起始时刻,在此不作限制。
管理模块101获取该第一信息,可以包括但不限于如下两种方式:
第一种获取方式:
由于源存储系统100中每个文件的元数据中记录有该文件的文件名称、文件ID、文件大小以及存储在磁盘中的位置等信息,因此,若获取并识别文件系统103中所有文件的元数据,则可以得到文件系统103的数据布局。例如,文件系统103包括目录A对应的元数据、文件a对应的元数据、目录B对应的元数据以及文件b对应的元数据,其中,目录A对应的元数据包括的目录A的名称,目录A所包括的文件的ID及目录(目标B)的ID,目录A所包含的文件的大小,或者目录A所包含的数据块的大小等;文件a对应的元数据包括的文件a的名称,文件a的大小,文件a所包含的数据块的大小等;目录B对应的元数据包括目录B的名称,目录B所包括的文件的ID,目录B所包含的数据块的大小等;文件b对应的元数据包括文件b的名称,文件b的大小,文件b所包含的数据块的大小等,以上信息可以参考如图3所示的数据布局。因此,在这种方式下,该第一信息即文件系统103中所有文件的元数据。
作为一种示例,管理模块101可以采用对文件系统103打快照的方式,获取文件系统103在第一时刻存储的所有文件的元数据。例如,管理模块101获取文件系统103在第一时刻的第一信息为目录A对应的元数据、文件a对应的元数据、目录B对应的元数据以及文件b对应的元数据,其中,每个元数据所包括的内容与前述内容相似,在此不再赘述。
由第一种获取方式可知,通过文件系统103中所有文件的元数据可以得到文件系统103中的数据布局。但是,由前述对文件系统的说明可知,不同类型的文件系统中文件的元数据的描述方式不同,因此,实现第一种方式的前提条件是,接收该第一信息的管理模块(例如,存储系统110的管理模块111)对文件的元数据的描述方式相同。若接收该第一信息的管理模块对文件的元数据的描述方式不同,则接收该第一信息的管理模块无法获取正确的元数据。
鉴于此,提供第二种获取方式,具体如下:
在管理模块101获取文件系统103在第一时刻所有文件/目录的元数据之后,可以对每个文件的元数据进行语义分析,生成与每个文件的元数据对应的语义分析信息,每个语义分析信息中包括元数据的标识、该元数据对应的操作以及创建该元数据所需的数据。其中,元数据的标识和创建该元数据所需的数据可以从每个文件的元数据中获取,在此不再赘述。下面对语义分析信息中与元数据对应的操作进行说明。
本申请实施例中,文件的元数据除了包括前述元数据所包括的内容之外,在每个文件的元数据的块头或者数据完整性字段(data integrity field,DIF)中还记录有用于指示元数据的类型的信息。其中,元数据的类型可以包括数据类型、目录类型以及访问权限类型等。元数据的类型可以是管理模块101根据与元数据对应的文件的文件名称或者文件数据块中包括的内容不同来划分的。例如,若一个文件中的文件名称中包括“文件”字段,则管理模块101确定与该文件对应的元数据的类型为数据类型;或者,若一个文件的文件数据块是用户数据,则管理模块101确定与该文件对应的元数据的类型为数据类型。当然,也可以采用其他方式确定每个文件的元数据的类型,在此不再赘述。
然后,管理模块101则可以根据每个文件的元数据的类型,确定每个文件的元数据对应的操作。在文件系统103中,类型不同的元数据,对应的操作不同。例如,文件系统103中可以包括不同的元数据创建函数,创建数据类型的元数据时,对应的元数据创建函数可以是函数X,则与数据类型的元数据对应的操作为调用函数X的操作;创建目录类型的元数据对应的元数据创建函数是函数Y,则与目录类型的元数据对应的操作为调用函数Y的操作。
在这种方式下,该第一信息即存储系统100的文件系统103中所有文件的元数据的语义分析信息。
作为一种示例,沿用上述例子,文件系统103包括目录A对应的元数据、文件a对应的元数据、目录B对应的元数据以及文件b对应的元数据,管理模块101在获取目录A对应的元数据后,对该元数据进行语义分析,获取与目录A对应的元数据的语义分析信息为:元数据的标识为目录A,创建该目录A对应的元数据所需的数据为:目录A所包括的文件的ID为文件a和目录B,数据块的大小为2MB。然后,管理模块101可以根据该元数据块头或者数据完整性字段DIF,确定该元数据的类型为目录类型,进而确定与该元数据的操作为调用函数X的操作,从而得到与目录A对应的元数据的语义分析信息为:调用函数X创建标识为目录A、数据块大小为2MB且包括文件a和目录B的元数据。采用相同的方式对其他文件的元数据进行语义分析,在此不再赘述。
在一种可能的实施方式中,在文件系统103中文件的元数据分散存储在各个存储节点102的情况下,管理模块101可以向每个存储节点102发送快照获取请求,每个存储节点102在接收到该快照获取请求后,则对其存储的文件的元数据打快照,然后将获取的元数据的快照发送给管理模块101,管理模块101则从每个存储节点102对应的快照中获取文件系统103在第一时刻存储的元数据。
在另一种可能的实施方式中,存储系统100中,可以将至少一个存储节点102所对应的存储空间分为多个域,例如,存储节点1可以包括两个域,存储节点2可以包括三个域等,每个域中的数据可以独立进行管理。例如,管理模块101可以根据每个文件的元数据的文件名称和ID进行哈希运算,得到与每个文件的元数据对应的域名,然后将该元数据存储在对应的域中。由于每个域中的数据可以独立进行管理,因此,每个存储节点102可以分别对每个域中存储的文件的元数据打快照,从而获取该存储节点102所包括的多个域对应的元数据的快照,然后采用上述第一种获取方式或者第二种获取方式获取每个域中文件的元数据或者元数据的解析信息。
S202、存储系统100的管理模块101向存储系统110的管理模块111发送该第一信息。
管理模块101可以依次发送第一信息,或者,管理模块101可以根据第一信息中每个信息的来源(来源于不同的存储节点或者不同的域),将第一信息划分为多份,并行发送该多份信息,从而可以加快数据传输的速度,在此不作限制。
S203、存储系统110的管理模块111根据该第一信息创建克隆的文件系统。
根据第一信息的内容不同,存储系统110的管理模块111根据第一信息创建克隆的文件系统的方式也不相同,可以包括但不限于如下两种方式。
第一种创建方式:
在第一信息为文件系统103的所有文件的元数据的情况下,管理模块111从该第一信息中得到与文件对应的元数据,然后管理模块111可以在存储系统110中预留的用于存储文件系统所需数据的存储空间上创建克隆的元数据,当所有文件的克隆的元数据创建完成后,则得到如图3所示的克隆的文件系统。
该多个克隆的元数据可以创建在同一个存储节点上,或者,也可以分别创建在不同的存储节点,在本申请实施例中不限制克隆的元数据所在的存储节点。
第二种创建方式:
在第一信息为文件系统103的所有文件的元数据的语义分析信息的情况下,管理模块111根据每个语义分析信息中指示的操作以及创建该元数据所需的数据,在对应的存储节点112上创建克隆的元数据。
作为一种示例,管理模块111从第一信息中得到的4个语义分析信息,其中每个语义分析信息的内容与前述内容相同,在此不再赘述,从而管理模块111创建与该4个语义分析信息对应的克隆的元数据,然后,根据每个目录类型的元数据中包括的文件的ID和/或目录的ID,建立各个克隆的元数据之间的关联关系。例如,与目录A的元数据对应的语义分析信息中包括的文件的ID为文件a以及目录B,则管理模块111建立目录A、文件a以及目录B之间的关联关系,采用相同的处理方式,建立目录B与文件b之间的关联关系,从而得到如图3所示的克隆的文件系统。
在另一些实施例中,管理模块111在克隆每个文件的元数据时,可以按照预设规则更新每个文件的文件名称,例如,若元数据的文件名称为目录A,则管理模块111在克隆的该文件的元数据时,可以将文件名称更新为目录A’,从而创建目录A’的元数据,并建立源元数据与克隆的元数据(例如目录A的元数据与目录A’的元数据)的一一映射关系。对其他文件的元数据也采用相同的方式进行处理,从而得到如图4(a)所示的克隆的文件系统。
上述技术方案提供了一种根据文件系统的元数据创建克隆的文件系统的方案,且,由于只需要将源存储系统中的元数据发送到到目的存储系统,而不需要拷贝任何用户数据,即可在目的存储系统中创建克隆的文件系统,从而可以减少传输的数据量,可以提高克隆文件系统的效率。
由于文件系统中的数据是动态变化的,因此,在存储系统110中克隆的文件系统还支持增量更新操作,图2所示的流程图还包括如下步骤:
S204、存储系统100的管理模块101确定在该第一时刻和第二时刻之间更新的元数据。
第二时刻可以是第一时刻之后的任意一个时刻,或者,管理模块101周期性获取文件系统103中更新的元数据,则该第二时刻为一个周期的起始时刻。管理模块101可以获取文件系统103在第二时刻的快照,然后比较第一时刻获取的快照和第二时刻获取的快照,则可以获取在第一时刻和第二时刻之间发生更新的元数据。
更新的元数据可以包括但不限于如下两种情况:
第一种情况,文件系统103的数据布局不变,数据块发生变化导致的元数据发生变化。例如,文件系统103在第一时刻包括目录A对应的元数据、文件a对应的元数据、目录B对应的元数据以及文件b对应的元数据,其中每个文件的元数据中包括的内容在前文已经进行了说明,在此不再赘述。在第一时刻之后,管理模块101根据客户端的操作更新了文件a的数据块,例如,将文件a由数据块1更新为数据块2,由于数据块发生变化,则与文件a对应的元数据也会发生变化。在这种情况下,包括数据块2的文件a对应的元数据即为更新的元数据。
第二种情况,新增文件导致的数据布局发生变化。例如,文件系统103在第一时刻之后,在目录B中增加了新的文件c,从而文件系统103中增加了文件c对应的元数据,其中,文件c对应的元数据包括的文件名称为文件c,数据块的大小为1MB。在这种情况下,文件c对应的元数据即为更新的元数据。
当然,更新的元数据还可以包括其他情况,在此不一一举例。
S205、管理模块101将更新的元数据发送给存储系统110的管理模块111。
管理模块101在获取更新的元数据之后,可以将更新的元数据或者更新的元数据的语义分析信息发送给管理模块111,在图2中以发送元数据为例进行说明。例如,将包括数据块2的文件a对应的元数据和文件c对应的元数据发送该管理模块111。
S206、存储系统110的管理模块111根据该更新的元数据,更新克隆的文件系统。
管理模块111在接收到更新的元数据后,可以先确定该更新的元数据是新增的文件对应的元数据还是对已经存在的文件进行更新而产生的元数据,然后,根据确定结果进行相应的操作。若该更新的元数据是对已经存在的文件进行更新产生的元数据,则管理模块111首先删除克隆的文件系统中与该更新的元数据对应的旧的元数据,然后再根据更新的元数据,在克隆的文件系统中创建该文件新的克隆的元数据。若该更新的元数据是新增的文件对应的元数据,则管理模块111直接根据更新的元数据,在克隆的文件系统中创建克隆的元数据。
例如,管理模块111查询存储系统110中存储的所有的元数据的文件名称,确定克隆的文件系统中是否存在文件名称与该更新的元数据的文件名称相同的元数据,若存在,则说明该更新的元数据为对已经存在的文件进行更新而产生的元数据。例如,该更新的元数据中包括的文件名称为文件a,管理模块111确定克隆的文件系统中已经存在文件a对应的克隆的元数据,则管理模块111删除克隆的文件系统中文件a对应的元数据,然后,根据更新的元数据,重新创建文件a对应的克隆的元数据,为方便说明,将根据更新的元数据创建的文件a对应的克隆的元数据,标记为文件a”对应的元数据,然后管理模块111建立文件a对应的元数据及文件a”对应的元数据之间的映射关系,从而可以得到如图4(b)所示的数据布局。
管理模块111查询存储系统110中存储的所有的元数据的文件名称,确定克隆的文件系统中不存在文件名称与该更新的元数据的文件名称相同的元数据,则说明该更新的元数据为新增的文件对应的元数据。例如,若管理模块111确定克隆的文件系统中不包括文件c对应的克隆的元数据,则根据该更新的元数据,在克隆的文件系统中创建文件c对应的克隆的元数据,从而得到如图4(c)所示的数据布局。
在上述技术方案中,源存储系统可以将更新的元数据发送给目的存储系统,以保持源文件系统和克隆的文件系统中数据的一致性。
在存储系统110中创建的克隆的文件系统可以向用户提供数据访问,下面分别针对克隆的文件系统处理读数据请求和处理写请求的过程进行介绍。
请参考图5,为克隆的文件系统处理读数据请求的流程图,该流程图的描述如下:
S501、存储系统110的管理模块111接收客户端发送的读数据请求,该读数据请求包括待读取数据块的标识。
在本申请实施例中,该待读取数据块的标识包括该待读取数据块所属的文件的文件名称、待读取数据块的起始地址和长度,待读取数据块的起始地址可以通过与起始地址的偏移量指示,待读取数据块的长度可以是固定大小的数据块(例如,为8KB的数据块)的个数。作为一种示例,该待读取数据块的标识包括文件a,起始地址为0,长度为10,也就是说,待读取数据块为文件a的前80KB的数据块。
S502、管理模块111确定待读取数据块是否保存在存储系统110中。
对于数据类型的元数据,管理模块111在存储系统110中创建克隆的元数据后,还可以创建与该克隆的元数据对应的位图(bitmap)或者比特树(bit-tree),该位图或者比特树用于指示与该克隆的元数据对应的存储空间是否保存与该元数据对应的数据块。以位图为例,位图可以包括多个比特,每一个比特用于指示一个固定大小的物理地址段中是否保存有数据块,例如,该固定大小为一个扇区的大小(例如为4KB),文件a的数据块的大小为160KB,则与文件a对应的位图包括40个比特,文件a的数据块存储在存储节点4的第一个磁盘中,其中,起始地址为0,则第一个比特用于指示第一个磁盘的第一个扇区中是否保存数据块,第二个比特用于指示第一个磁盘的第二个扇区中是否保存数据块,以此类推。由于存储系统110中只克隆了文件系统103的元数据,因此,在存储系统110执行图2所示的克隆方法后,存储系统110中可能没有保存文件a的数据块,在这种情况下,与文件a对应的位图中每个比特均指示对应的物理地址段中未保存数据块,例如,与文件a对应的40个比特的取值均为0。
作为一种示例,当管理模块111确定待读取数据块为文件a的前80KB的数据块,则管理模块111首先确定与文件a对应的位图中前20个比特的取值是否为0,若为0,则管理模块111确定存储系统110中未保存待读取数据块。
作为另一种示例,管理模块111在克隆每个文件的元数据时,可以按照预设规则更新每个文件的文件名称,从而创建了如图4(a)所示的克隆的文件系统。这样,管理模块111再接收到读数据请求后,首先需要根据存储系统110中存储的源元数据与克隆的元数据的一一映射关系,确定该读数据请求读取的是文件a’的数据块,然后根据与文件a’对应的位图确定存储系统110中是否保存该待读取数据块。
S503、在待读取数据块未保存在存储系统110时,管理模块111向源存储系统100发送第一数据获取请求。
该第一数据获取请求中可以包括该待读取数据块的标识,该待读取数据块的标识与步骤S501中相同,在此不再赘述。作为一种示例,该待读取数据块的标识包括文件a,起始地址为0,长度为10,也就是说,待读取数据块为文件a的前80KB的数据块。
需要说明的是,该第一数据获取请求可以是步骤S501中由客户端获取的读数据请求,也就是说直接转发该读数据请求,或者,也可以是管理模块111对接收的读数据请求进行解析处理后得到的数据获取请求,在此不作限制。
S504、管理模块101获取待读取数据块,并将待读取数据块发送给管理模块111。
管理模块101在获取数据获取请求后,则根据该数据获取请求中携带的该待读取数据块的标识,获取该待读取数据块,例如,获取文件a的前80KB的数据块,并将该数据块发送给管理模块111。
S505、管理模块111保存该待读取数据块。
管理模块111获取该待读取数据块后,则将该待读取数据块存储在与其对应的存储空间中。例如,文件a的前80KB的数据块存储在存储节点4的扇区1~扇区20中,则管理模块111在存储节点4的扇区1~扇区20中写入该待读取数据块。在这种情况下,可以得到如图4(d)所示的数据布局,在图4(d)中,通过在文件a下方显示与其对应的文件数据块的方式,指示该文件所包括的数据块已经保存在目的存储系统110。
进一步的,由于存储系统110中已经保存了文件a所包括的数据块,则管理模块111更改与文件a对应的位图,例如,将与文件a对应的位图中的前20个比特的取值设置为1,以指示与文件a对应的存储空间中已经保存了文件a的前80KB的数据块。
S506、管理模块111将该待读取数据块发送给客户端。
在本申请实施例中,不限制步骤S505和步骤S506的执行先后顺序。
另外,若待读取数据块保存在目的存储系统110中,则管理模块111不用执行步骤S503~步骤S505,而是直接从对应的存储空间中获取该待读取数据块,并将该待读取数据块发送给客户端。因此,步骤S503~步骤S505为可选步骤,在图5中以虚线标识。
S507、管理模块111向存储系统100发送第二数据获取请求,该第二数据获取请求中包括预读取的数据块的标识。
管理模块111还可以根据该读数据请求,将部分数据预取到管理模块111的缓存中,例如,该数据请求用于读取文件a的前80KB的数据块,则管理模块111根据预设的预取规则推测用户后续会读取文件a的后80KB的数据块,则管理模块111可以向存储系统100发送第二数据获取请求,该第二数据获取请求中携带文件a的后80KB的数据块的标识。
S508、管理模块101获取预读取的数据块,并将该预读取的数据块发送给管理模块111。
管理模块101根据该第二数据获取请求,获取文件a的后80KB的数据块,并发送给管理模块111。
S509、管理模块111缓存预读取的数据块。
管理模块111在接收到预读取的数据块之后,则将该预读取的数据块存储在管理模块111的缓存中,这样,当管理模块111后续接收到用于获取该预读取的数据块对应的读数据请求后,则可以直接从缓存中获取该数据块并发送给客户端,从而可以减少时延。
步骤S507~步骤S509是可选的步骤,在图5中用虚线表示。
当存储系统110中克隆的文件系统是可读可写的文件系统时,存储系统110的管理模块111还可以处理写请求。在本申请实施例中,该写请求可以包括写数据请求、创建文件请求或删除文件请求等。在下文中,以写请求为写数据请求为例。
请参考图6,为存储系统110处理写数据请求的流程图,该流程图的描述如下:
S601、存储系统110的管理模块111接收客户端发送的写数据请求,该写数据请求包括待写入数据块以及与该待写入数据块的标识。
在本申请实施例中,该待写入数据块的标识包括该待写入数据块所属的文件的文件名称以及待写入数据块的大小。作为一种示例,该待写入数据块的标识包括文件a,待写入数据块的大小为80KB。
S602、管理模块111将待写入数据块写入到存储系统110对应的存储空间。
作为一种示例,管理模块111确定待写入数据块为与文件a数据块,则管理模块111将该待写入数据块存储在文件a对应的存储空间中,例如,文件a的存储空间为存储节点4的扇区1~扇区40,则管理模块将待写入数据块顺序写入该扇区1~扇区40。
需要说明的是,若存储系统110中已经保存了与文件a对应的数据块,则管理模块111可以采用覆盖写的方式,使用该待写入数据块替换掉之前保存的与文件a对应的数据块。
在另一些实施例中,管理模块111在克隆每个文件的元数据时,可以按照预设规则更新每个文件的文件名称,从而创建了如图4(a)所示的克隆的文件系统。这样,管理模块111再接收到写数据请求后,首先需要根据存储系统110中存储的源元数据与克隆的元数据的一一映射关系以及该写数据请求中包括的待写入数据块的标识,确定与该待写入数据块对应的元数据,例如,该写数据请求中携带的文件名称为文件a,该映射关系包括文件a与文件a’对应,则管理模块111确定该写数据请求携带的数据块是与文件a’的数据块。然后,再将待写入数据块写入到与该元数据对应的存储空间中。
当写请求为创建文件请求或删除文件请求等时,管理模块111可以采用与图2或图6相似的步骤,在克隆的文件系统上创建新的文件或者删除文件,在此不再赘述。
上述本申请提供的实施例中,为了实现上述本申请实施例提供的方法中的各功能,存储系统可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图7示出了一种文件系统的克隆装置700的结构示意图。其中,文件系统的克隆装置700可以是图2或图5或图6所示的实施例中的管理模块111所在的设备,或者位于管理模块111所在的设备中,可以用于实现管理模块111的功能。文件系统的克隆装置700可以是硬件结构或硬件结构加软件模块。
文件系统的克隆装置700包括至少一个存储器,用于存储程序指令和/或数据。文件系统的克隆装置700还包括至少一个处理器,该至少一个处理器和存储器耦合,该至少一个处理器可以执行存储器中存储的程序指令。
文件系统的克隆装置700可以包括创建单元701和收发单元702。
创建单元701可以调用处理器执行存储器中存储的程序指令,以执行图2所示的实施例中的步骤S203以及步骤S206,或执行图5所示的实施例中的步骤S502、步骤S509以及步骤S509,或执行图6所示的实施例中的步骤S602,和/或用于支持本文所描述的技术的其它过程。
收发单元702可以调用处理器执行存储器中存储的程序指令,以执行图2所示的实施例中的步骤S202以及步骤S205,或执行图5所示的实施例中的步骤S501、步骤S503、步骤S504、步骤S506~步骤S508,或执行图6所示的实施例中的步骤S601,和/或用于支持本文所描述的技术的其它过程。收发单元702用于文件系统的克隆装置700和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图7所示的实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图8所示为本申请实施例提供的文件系统的克隆装置800,其中,文件系统的克隆装置800可以是图2或图5或图6所示的实施例中的管理模块111所在的设备,或者位于管理模块111所在的设备中,可以用于实现管理模块111的功能。
文件系统的克隆装置800包括至少一个处理器820,用于实现或用于支持文件系统的克隆装置800实现本申请实施例提供的方法中管理模块111的功能。示例性地,处理器820可以根据第一信息创建克隆文件系统,具体参见方法示例中的详细描述,此处不做赘述。
文件系统的克隆装置800还可以包括至少一个存储器830,用于存储程序指令和/或数据。存储器830和处理器820耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器820可能和存储器830协同操作。处理器820可能执行存储器830中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
文件系统的克隆装置800还可以包括通信接口810,用于通过传输介质和其它设备进行通信,从而用于文件系统的克隆装置800可以和其它设备进行通信。示例性地,该其它设备可以是客户端或者存储设备。处理器820可以利用通信接口810收发数据。
本申请实施例中不限定上述通信接口810、处理器820以及存储器830之间的具体连接介质。本申请实施例在图8中以存储器830、处理器820以及通信接口810之间通过总线850连接,总线在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器820可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器830可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图2或图5或图6所示的实施例中管理模块111执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图2或图5或图6所示的实施例中管理模块111执行的方法。
本申请实施例提供了一种存储系统,该存储系统包括源存储系统和目的存储系统,所述目的存储系统包括图2或图5或图6所示的实施例中管理模块111。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
Claims (10)
1.一种文件系统的克隆方法,其特征在于,包括:
目的存储系统接收源存储系统发送的第一信息,所述源存储系统中运行有文件系统,所述第一信息用于指示所述文件系统的数据布局,所述第一信息包括所述文件系统中所有文件的元数据,或所述第一信息包括所述文件系统中所有文件的元数据的语义分析信息;
所述目的存储系统根据所述第一信息创建所述文件系统的克隆文件系统;
其中,每个文件的元数据的语义分析信息中包括所述文件的元数据的标识、所述文件的元数据对应的操作以及创建所述文件的元数据所需的数据;
所述方法还包括:
所述目的存储系统根据每个语义分析信息中指示的操作以及创建该元数据所需的数据,创建克隆的元数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述目的存储系统接收所述源存储系统发送的第二信息,所述第二信息包括所述文件系统发生变化的文件的元数据或者所述发生变化的文件的元数据的语义分析信息;
所述目的存储系统根据所述第二信息,更新所述克隆文件系统。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述目的存储系统接收读数据请求,所述读数据请求包括待读取数据块的标识;
所述目的存储系统确定所述目的存储系统中未存储所述待读取数据块时,向所述源存储系统发送第一数据获取请求,所述第一数据获取请求中包括所述待读取数据块的标识;
所述目的存储系统从所述源存储系统接收并保存所述待读取数据块。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述目的存储系统根据预取规则和所述读数据请求,确定预读取的数据块;
所述目的存储系统向所述源存储系统发送第二数据获取请求,所述第二数据获取请求中包括所述预读取的数据块的标识;
所述目的存储系统从所述源存储系统接收所述预读取的数据块,并将所述预读取的数据块存储在所述目的存储系统中。
5.一种文件系统的克隆装置,其特征在于,包括:
收发单元,用于接收源存储系统发送的第一信息,所述源存储系统中运行有文件系统,所述第一信息用于指示所述文件系统的数据布局,所述第一信息包括所述文件系统中所有文件的元数据,或所述第一信息包括所述文件系统中所有文件的元数据的语义分析信息;
创建单元,用于根据所述第一信息创建所述文件系统的克隆文件系统;
其中,每个文件的元数据的语义分析信息中包括所述文件的元数据的标识、所述文件的元数据对应的操作以及创建所述文件的元数据所需的数据;
所述创建单元,还用于根据每个语义分析信息中指示的操作以及创建该元数据所需的数据,创建克隆的元数据。
6.根据权利要求5所述的装置,其特征在于,所述收发单元还用于:
接收所述源存储系统发送的第二信息,所述第二信息包括所述文件系统发生变化的文件的元数据或者所述发生变化的文件的元数据的语义分析信息;
所述创建单元,还用于根据所述第二信息,更新所述克隆文件系统。
7.根据权利要求5或6所述的装置,其特征在于,所述收发单元还用于:
接收读数据请求,所述读数据请求包括待读取数据块的标识;
所述创建单元还用于,在确定目的存储系统中未存储所述待读取数据块时,控制所述收发单元向所述源存储系统发送第一数据获取请求,所述第一数据获取请求中包括所述待读取数据块的标识;
所述收发单元还用于,从所述源存储系统接收并保存所述待读取数据块。
8.根据权利要求7所述的装置,其特征在于,所述创建单元还用于:
根据预取规则和所述读数据请求,确定预读取的数据块;
所述收发单元还用于,向所述源存储系统发送第二数据获取请求,所述第二数据获取请求中包括所述预读取的数据块的标识;以及,从所述源存储系统接收所述预读取的数据块,并将所述预读取的数据块存储在所述目的存储系统中。
9.一种文件系统的克隆装置,其特征在于,包括处理器和存储器,所述存储器中存储有计算机可执行指令,所述计算机可执行指令在被所述处理器调用时用于使所述处理器执行上述权利要求1-4中任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-4任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/072724 WO2021142768A1 (zh) | 2020-01-17 | 2020-01-17 | 一种文件系统的克隆方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113853778A CN113853778A (zh) | 2021-12-28 |
CN113853778B true CN113853778B (zh) | 2024-01-30 |
Family
ID=76863207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080035974.7A Active CN113853778B (zh) | 2020-01-17 | 2020-01-17 | 一种文件系统的克隆方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220350779A1 (zh) |
EP (1) | EP4087212A4 (zh) |
CN (1) | CN113853778B (zh) |
WO (1) | WO2021142768A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873955A (zh) * | 2022-10-11 | 2024-04-12 | 成都华为技术有限公司 | 文件系统管理方法、装置和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
US8326798B1 (en) * | 2009-09-14 | 2012-12-04 | Network Appliance, Inc. | File system agnostic replication |
CN103038767A (zh) * | 2010-07-30 | 2013-04-10 | 国际商业机器公司 | 用于文件克隆的数据共享 |
CN107046811A (zh) * | 2015-12-03 | 2017-08-15 | 华为技术有限公司 | 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备 |
CN107547648A (zh) * | 2017-08-31 | 2018-01-05 | 郑州云海信息技术有限公司 | 一种内部数据复制方法及装置 |
CN109460182A (zh) * | 2017-09-06 | 2019-03-12 | 杭州海康威视系统技术有限公司 | 一种数据存储、读取方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051053B2 (en) * | 2002-09-30 | 2006-05-23 | Dinesh Sinha | Method of lazily replicating files and monitoring log in backup file system |
US8655848B1 (en) * | 2009-04-30 | 2014-02-18 | Netapp, Inc. | Unordered idempotent logical replication operations |
CN101789027A (zh) * | 2010-03-15 | 2010-07-28 | 江苏大学 | 一种基于dbms的元数据管理方法和元数据服务器 |
CN102307221A (zh) * | 2011-03-25 | 2012-01-04 | 国云科技股份有限公司 | 一种云存储系统及其实现方法 |
US8832028B2 (en) * | 2011-08-25 | 2014-09-09 | Oracle International Corporation | Database cloning |
WO2013038447A1 (en) * | 2011-09-14 | 2013-03-21 | Hitachi, Ltd. | Method for creating clone file, and file system adopting the same |
CN104254853A (zh) * | 2012-04-25 | 2014-12-31 | 株式会社日立制作所 | 文件存储系统和文件克隆方法 |
CN103618765B (zh) * | 2013-11-11 | 2017-02-01 | 华为技术有限公司 | 一种远程复制方法、装置、备份端设备及系统 |
US11416444B2 (en) * | 2014-03-18 | 2022-08-16 | Netapp, Inc. | Object-based storage replication and recovery |
US9946604B1 (en) * | 2015-02-04 | 2018-04-17 | Tintri Inc. | Optimized remote cloning |
US10942813B2 (en) * | 2015-10-30 | 2021-03-09 | Netapp, Inc. | Cloud object data layout (CODL) |
US10423499B2 (en) * | 2016-03-25 | 2019-09-24 | Netapp, Inc. | Cataloging metadata for replication management and recovery |
US10650044B2 (en) * | 2017-07-18 | 2020-05-12 | Datastrong, L.L.C. | Method and apparatus for converting from a source database system to a destination database system |
US20190303035A1 (en) * | 2018-03-27 | 2019-10-03 | EMC IP Holding Company LLC | Copying garbage collector for geographically distributed data storage environment |
US20200341639A1 (en) * | 2019-04-24 | 2020-10-29 | Netapp, Inc. | Lattice layout of replicated data across different failure domains |
-
2020
- 2020-01-17 CN CN202080035974.7A patent/CN113853778B/zh active Active
- 2020-01-17 WO PCT/CN2020/072724 patent/WO2021142768A1/zh unknown
- 2020-01-17 EP EP20913616.7A patent/EP4087212A4/en active Pending
-
2022
- 2022-07-15 US US17/812,776 patent/US20220350779A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326798B1 (en) * | 2009-09-14 | 2012-12-04 | Network Appliance, Inc. | File system agnostic replication |
CN103038767A (zh) * | 2010-07-30 | 2013-04-10 | 国际商业机器公司 | 用于文件克隆的数据共享 |
CN102111448A (zh) * | 2011-01-13 | 2011-06-29 | 华为技术有限公司 | 分布式哈希表dht存储系统的数据预取方法、节点和系统 |
CN107046811A (zh) * | 2015-12-03 | 2017-08-15 | 华为技术有限公司 | 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备 |
CN107547648A (zh) * | 2017-08-31 | 2018-01-05 | 郑州云海信息技术有限公司 | 一种内部数据复制方法及装置 |
CN109460182A (zh) * | 2017-09-06 | 2019-03-12 | 杭州海康威视系统技术有限公司 | 一种数据存储、读取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021142768A1 (zh) | 2021-07-22 |
US20220350779A1 (en) | 2022-11-03 |
EP4087212A1 (en) | 2022-11-09 |
CN113853778A (zh) | 2021-12-28 |
EP4087212A4 (en) | 2023-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9110909B2 (en) | File level hierarchical storage management system, method, and apparatus | |
US9251152B1 (en) | Efficient method for relocating shared memory | |
US8423733B1 (en) | Single-copy implicit sharing among clones | |
US8510499B1 (en) | Solid state drive caching using memory structures to determine a storage space replacement candidate | |
EP2754027B1 (en) | Method for creating clone file, and file system adopting the same | |
CN110321301B (zh) | 一种数据处理的方法及装置 | |
CN109684282B (zh) | 一种构建元数据缓存的方法及装置 | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
KR20170068564A (ko) | 데이터 처리 방법, 장치 및 시스템 | |
US9430492B1 (en) | Efficient scavenging of data and metadata file system blocks | |
JP2018516409A (ja) | ファイルストレージにおけるインデックス付け実施方法及びシステム | |
US8612495B2 (en) | Computer and data management method by the computer | |
KR102098415B1 (ko) | 캐시 관리 기법 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
US9122689B1 (en) | Recovering performance of a file system post-migration | |
CN109302448B (zh) | 一种数据处理方法及装置 | |
US9696919B1 (en) | Source/copy reference tracking with block pointer sets | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
US9934248B2 (en) | Computer system and data management method | |
JPWO2007099636A1 (ja) | ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置 | |
CN113853778B (zh) | 一种文件系统的克隆方法及装置 | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
KR20090065131A (ko) | 메타데이터의 일관성을 보장하기 위한 분산 파일 시스템 및방법 | |
US20200349186A1 (en) | Method, apparatus and computer program product for managing metadata of storage object | |
US10083225B2 (en) | Dynamic alternate keys for use in file systems utilizing a keyed index |
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 |