CN116594551A - 一种数据存储方法及装置 - Google Patents
一种数据存储方法及装置 Download PDFInfo
- Publication number
- CN116594551A CN116594551A CN202210116573.5A CN202210116573A CN116594551A CN 116594551 A CN116594551 A CN 116594551A CN 202210116573 A CN202210116573 A CN 202210116573A CN 116594551 A CN116594551 A CN 116594551A
- Authority
- CN
- China
- Prior art keywords
- distributed storage
- file
- storage
- identifier
- metadata
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013500 data storage Methods 0.000 title claims abstract description 55
- 238000004891 communication Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 24
- 230000007246 mechanism Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 13
- 230000010076 replication Effects 0.000 description 10
- 239000012634 fragment Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013528 artificial neural network Methods 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
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 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
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 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
-
- 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]
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
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
在存储业务中,可利用包括了多个分布式存储集群的存储系统来存储文件。存储系统可按照冗余存储机制存储文件,这样即使某个分布式存储集群故障,用户也可通过存储系统中的其他分布式存储集群写入或读取文件,从而保证了存储业务的可靠性。例如,一种冗余存储机制为纠删码(erasure coding,EC)存储机制。在EC存储机制下,一个分布式存储集群接收并存储待写入的文件之后,可划分该文件,以获得多个数据块,并基于这多个数据块,生成至少一个校验块,并可将这些数据块和校验块中的部分选择性地发送给存储系统中相应的分布式存储集群,存储系统中的部分或全部分布式存储集群存储相应的数据块或校验块,相当于第一文件被分散地存在了存储系统中的部分或全部分布式存储集群中,这样文件写入过程才算结束。在文件写入结束后,用户才能通过该分布式存储集群以及其他分布式存储集群访问该文件。
在EC存储机制下,即使其中一个分布式存储集群所存储的某个数据块出现异常,存储系统也可通过其他分布式存储集群中的数据块以及校验块,恢复异常的数据块,以重新获得该文件,从而保证数据存储的可靠性。但一个分布式存储集群需向其他分布式存集群发送相应数据块或校验块,需要一定的时间,并且其他分布式存储集群存储相应的数据块或校验块,也需要一定的时间,这使得用户访问存储系统中的文件需要等待的时间较长,也就导致了存储系统中的数据写入的时延较大。
发明内容
本申请实施例提供一种数据存储方法及装置,用于存储系统数据写入的时延较大。
第一方面,本申请实施例提供一种数据存储方法,应用于存储系统包括的多个分布式存储集群中的第一分布式存储集群,所述方法可由第一分布式存储集群执行,具体可由第一分布式存储集群中的某个设备(如服务器)上的控制器或处理器执行。所述方法包括:接收并存储第一文件;记录所述第一文件的第一元数据,所述第一元数据包括所述第一文件在所述第一分布式存储集群中的存储地址;向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
在本申请实施例中,第一分布式存储集群存储第一文件后,可记录第一文件的第一元数据,并将第一元数据发送给多个分布式存储集群中的其他分布式存储集群。第一元数据包括了第一文件在第一分布式存储集群中的存储地址,因此多个分布式存储集群均能确定第一数据在第一分布式存储集群中的存储地址,这使得任一分布式存储集群均可根据该存储位置,从第一分布式存储集群获取第一文件,也就使得,用户可通过多个分布式存储集群中的任一分布式存储集群读取该第一文件,相比现有技术,无需等待多个分布式存储集群存储完该第一文件相应的数据块或校验块,用户便可访问第一文件,减少了用户的等待时长,从而减少了存储系统写入数据的时延,提高了数据写入的效率。
在一种可能的实施方式中,所述方法还包括:将多个分片文件存储在所述存储系统的文件目录下,其中,所述文件目录被挂载了多个逻辑存储单元,所述多个逻辑存储单元与所述多个分布式存储集群对应,其中每个分布式存储集群对应所述多个逻辑存储单元中的至少一个逻辑存储单元,所述多个分片文件包括所述第一文件对应的多个数据块和至少一个校验块,其中一个分片文件包括所述多个数据块中的一个数据块或所述至少一个校验块中的一个校验块,所述至少一个校验块是对所述多个数据块进行校验计算获得的。
在该实施方式中,多个分布式存储集群提供的多个逻辑存储单元可挂载在一个文件目录下,在以EC存储机制存储第一文件时,将第一文件对应的多个分片文件存储在文件目录下,也就相当于完成了EC存储机制对应的存储过程,EC存储机制使得文件存储具有一定的冗余度,因此保证了文件存储的可靠性。并且,将第一文件对应的多个分片文件存储在文件目录下,相当于以文件形式存储了第一文件对应的多个分片文件,有便于对这多个分片文件进行管理。并且,这多个分片文件存储在了一个文件目录下,便于后续从这多个分布式存储集群快速地查找该第一文件,也就有利于提高用户读取第一文件的效率。
在一种可能的实施方式中,所述方法还包括:记录所述第一文件的第二元数据,所述第二元数据包括第一标识以及第二标识,所述第一标识为所述多个分片文件的标识,并且所述第一标识是根据所述第一分布式存储集群的标识、以及为所述多个分片文件分配的第一对象标识符确定的,所述第一对象标识符是所述第一分布式存储集群中的多个唯一对象标识符中的一个,所述第二标识为所述文件目录的标识;向所述其他分布式存储集群发送所述第二元数据。
在该实施方式中,多个分布式存储集群均获得了第二元数据,并且第二元数据中记录了多个分片文件的标识(即第一标识),因此这多个分布式存储集群均可根据第二元数据,从相应的分布式存储集群读取分片文件,从而为用户提供第一文件,使得用户可通过多个分布式存储集群中的任一分布式存储集群访问第一文件,便于用户访问第一文件。
在一种可能的实施方式中,所述第二标识是根据所述第一标识确定的。
在该实施方式中,文件目录的标识(即第二标识)与多个分片文件的标识(即第一标识)相关,有利于后续根据第一标识,确定文件目录,以便于确定和查找该文件目录。并且,由于对于不同的待写入的文件而言,所对应的第一标识不同,因此确定出的第二标识也就不同,这样有利于将不同的文件分别地存储在不同的文件目录下。
在一种可能的实施方式中,所述方法还包括:在将多个分片文件存储在所述存储系统的文件目录下后的时长到达第一时长时,删除所述第一文件以及所述第一元数据。
在该实施方式中,存储系统以EC存储机制存储第一文件之后,第一分布式存储集群可在第一时长后删除其存储的第一文件和第一元数据,即第一分布式存储集群支持延迟删除,在没有删除第一文件和第一元数据的情况下,第一分布式存储集群还可直接读取其存储的第一文件,有利于提高读取第一文件的性能。
第二方面,本申请实施例提供一种数据存储装置,所述装置设置在存储系统包括的多个分布式存储集群中的第一分布式存储集群中,所述装置包括:收发模块,用于接收并存储第一文件;处理模块,用于记录所述第一文件的第一元数据,所述第一元数据包括所述第一文件在所述第一分布式存储集群中的存储地址;所述收发模块,还用于向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
在一种可能的实施方式中,所述处理模块还用于:将多个分片文件存储在所述存储系统的文件目录下,其中,所述文件目录被挂载了多个逻辑存储单元,所述多个逻辑存储单元与所述多个分布式存储集群对应,其中每个分布式存储集群对应所述多个逻辑存储单元中的至少一个逻辑存储单元,所述多个分片文件包括所述第一文件对应的多个数据块和至少一个校验块,其中一个分片文件包括所述多个数据块中的一个数据块或所述至少一个校验块中的一个校验块,所述至少一个校验块是对所述多个数据块进行校验计算获得的。
在一种可能的实施方式中,所述处理模块,还用于记录所述第一文件的第二元数据,所述第二元数据包括第一标识以及第二标识,所述第一标识为所述多个分片文件的标识,并且所述第一标识是根据所述第一分布式存储集群的标识、以及为所述多个分片文件分配的第一对象标识符确定的,所述第一对象标识符是所述第一分布式存储集群中的多个唯一对象标识符中的一个,所述第二标识为所述文件目录的标识;所述收发模块,还用于向所述其他分布式存储集群发送所述第二元数据。
在一种可能的实施方式中,所述第二标识是根据所述第一标识确定的。
在一种可能的实施方式中,所述处理模块还用于:在将多个分片文件存储在所述存储系统的文件目录下后的时长到达第一时长时,删除所述第一文件以及所述第一元数据。
第三方面,本申请实施例提供一种数据存储装置,所述装置包括处理器和通信接口,其中:所述通信接口和所述处理器实现上述第一方面中任一项所述的方法。
例如,所述通信接口,用于接收第一文件;所述处理器,用于存储第一文件,并记录第一文件的第一元数据;所述通信接口,还用于向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
可选的,所述数据存储装置还包括存储器,所述存储器用于存储程序指令和/或数据。
可选的,所述存储器与所述处理器耦合设置。
可选的,该通信装置还包括其他部件,例如,天线,输入输出模块,接口等等。这些部件可以是硬件,软件,或者软件和硬件的结合。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面中任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面任一项所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第二方面至第六方面及其可能的实现方式的有益效果可参考对第一方面的方法及其实施方式的有益效果的描述。
附图说明
图1为本申请实施例适用的一种存储系统的架构示意图;
图2A、图2B和图2C为本申请实施例提供的图1中的第一分布式存储集群的几种硬件架构示意图;
图3A为本申请实施例提供的图1中的存储系统的逻辑层的分布示意图;
图3B为本申请实施例提供的图1中的存储系统的软件架构示意图;
图4为一种EC存储机制下的数据存储过程示意图;
图5为本申请实施例提供的一种数据存储方法的流程示意图;
图6为本申请实施例提供的一种确定分片文件的过程示意图;
图7为本申请实施例提供的一种存储系统中的文件系统的示例图;
图8为本申请实施例提供的一种存储多个分片文件的过程示例图;
图9为本申请实施例提供的分布式存储集群查找第一文件的过程示意图;
图10为本申请实施例提供的一种数据存储装置的结构示意图;
图11为本申请实施例提供的另一种数据存储装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、本申请实施例中的EC存储机制,涉及待存储文件的多个数据块和至少一个校验块,其中,可按照一定大小,将该文件划分为多个数据块,并对多个数据块进行校验计算,获得至少一个校验块。其中,多个数据块中的任意两个数据块的大小相同,多个数据块中的任一个数据块与至少一个校验块中的任一个校验块的大小也相同。在多个数据块中的某个数据块丢失的情况下,可以根据多个数据块中剩余的数据块以及至少一个校验块,恢复所丢失的数据块。
2、本申请实施例中的副本存储机制,属于一种冗余存储机制,是指直接复制文件,获得文件的至少一个副本,并存储文件的至少一个副本。这种机制可以保证数据存储的可靠性。
本申请实施例中,对于名词的数目,除非特别说明,表示“单数名词或复数名词”,即"一个或多个”。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。例如,A/B,表示:A或B。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),表示:a,b,c,a和b,a和c,b和c,或a和b和c,其中a,b,c可以是单个,也可以是多个。
除非有特定的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度,例如,本申请实施例中的“第一分布式存储集群”和“第二分布式存储集群”用于表示两个分布式存储集群,并不限定两个分布式存储集群的优先级或重要程度等。
本申请实施例提供的数据存储方法可适用于存储系统中,该存储系统包括多个分布式存储集群。
例如,该存储系统可以是双活模式的存储系统,即,存储系统包括至少两个分布式存储集群,并且至少两个分布式存储集群中的任意两个分布式存储集群均可执行数据写操作和数据读操作。
又例如,该存储系统也可以是多活模式的存储系统,即,该存储系统包括至少三个分布式存储集群,并且这至少三个分布式存储集群中的任意三个或三个以上的分布式存储集群均可执行数据写操作和数据读操作。
可选的,存储系统的可靠性可以以数据恢复点目标(recovery point objective,RPO)指标进行表征。RPO主要是指存储系统所能容忍的数据丢失量。其中,RPO越小,表示该存储系统所能容忍的数据丢失量越少,那么存储系统的可靠性越高。本申请实施例中的存储系统可适用于RPO大于0的存储系统。
可选的,本申请实施例中的一个分布式存储集群可相当于一个数据中心(datacenter,DC),或相当于一个站点(site)。本申请实施例中的存储系统所包括的任意两个分布式存储集群之间可以存在一定的物理距离。
图1为本申请实施例适用的一种存储系统的部署示意图,该存储系统例如为多活模式下的存储系统。图1包括存储系统100和客户应用150。存储系统100与客户应用150对应,客户应用150可以理解为访问存储系统100的入口,客户应用150例如软件程序或软件模块等。存储系统100包括多个分布式存储集群,在图1中是以存储系统包括第一分布式存储集群110、第二分布式存储集群120、第三分布式存储集群130和第四分布式存储集群140这四个分布式存储集群为例,本申请实施例并不限制存储系统包括的分布式存储集群的数量。存储系统100中的任意两个分布式存储集群之间可相互通信。
用户可通过客户应用150访问存储系统100。例如,客户应用150根据用户输入待写入的文件,生成数据写请求,客户应用150向存储系统100中的一个分布式存储集群发起数据写请求,该数据写请求用于请求写入文件。又例如,客户应用150根据用户输入的文件的名称,生成数据读请求,客户应用150向存储系统100中的一个分布式存储集群发起数据读请求,该数据读请求用于请求读取存储系统100中的文件。
需要说明的是,存储系统100中的任一分布式存储集群可支持多种存储方式。例如,文件(file)存储方式和/或对象(object,OBJ)存储方式等,本申请实施例对此不做限定。其中,存储系统100中的任意两个分布式存储集群支持的存储方式可以部分相同、完全相同或完全不同,本申请实施例对此不做具体限定。
在一种可能的实施方式中,该存储系统100还包括仲裁集群(在图1中并未示意)。仲裁集群可分别与客户应用150和存储系统100中的每个分布式存储集群通信。客户应用150可通过仲裁集群访问存储系统100中的分布式存储集群。该仲裁集群可通过一个或多个计算设备实现,计算设备例如服务器或个人计算机电脑等。
例如,仲裁集群用于监测存储系统100中的所有分布式存储集群的负载情况。在接收来自客户应用150数据写请求或数据读请求之后,仲裁集群可根据负载情况,将数据写请求或数据读请求分配给负载最小的分布式存储集群,从而实现存储系统100中的各个分布式存储集群的负载均衡。
可选的,仲裁集群可属于存储系统100中的一部分,即,存储系统100包括仲裁集群;或者,仲裁集群也可与存储系统100相对独立设置,但能够与存储系统100中的每个分布式存储集群通信。
本申请实施例中,分布式存储集群可能有多种不同的架构,下面举例介绍。在下面的介绍过程中,均以该分布式存储集群是第一分布式存储集群110为例。请分别参考图2A、图2B和图2C,为第一分布式存储集群110的几种可能的硬件架构示意图。
图2A可以理解为是一种分离式架构的分布式存储集群的示意图。如图2A所示,第一分布式存储集群110包括计算节点集群和存储节点集群。计算节点集群包括一个或多个计算节点210。存储节点集群包括一个或多个存储节点250。
各个计算节点210之间可以相互通信。计算节点210泛指具有计算功能的设备,例如服务器;存储节点250泛指具有存储功能的设备,例如服务器。图2A中是以两个计算节点210,两个存储节点250为例,实际并不限制计算节点210和存储节点250的数量。第一分布式存储集群110中的任意一个计算节点210可通过网络访问第一分布式存储集群110中的任意一个存储节点250。例如,计算节点210接收待存储的文件,将待存储的文件发送给存储节点250,存储节点250可以对文件执行数据写操作。
如图2A所示,计算节点210至少包括CPU211、内存212和网卡213。CPU211可以用于处理来自计算节点210外部的数据写请求或数据读请求,或者计算节点210内部生成的数据写请求或数据读请求。网卡213用于与存储节点250通信。另外,计算节点210还可以包括总线,在图2A中的总线可以用于计算节点210各组件之间的通信。图2A中仅示意出了一个CPU211,实际上CPU211的数量可以是一个或多个。
一个存储节点250包括一个或多个控制器251、网卡252、硬盘253和内存254。例如,控制器251用于根据计算节点210发送的数据,向硬盘253中写入数据。网卡252用于与计算节点210通信。内存254用于临时存储将要写入硬盘253的数据,或者从硬盘253读取出来将要发送给计算节点210的数据。在实际应用时,控制器251可以有多种形态,例如,控制器251包括CPU。控制器251还可以包括内存。或者例如,控制器251是一个可编程的电子部件,例如数据处理单元(data processing unit,DPU)、图像处理单元(graphics processing unit,GPU)或嵌入式神经网络处理器(neural-network processing units,NPU)等处理芯片。控制器251的数量可以是任意的,本申请实施例对此不作限定。
作为一个示例,存储节点250内部可以不具有控制器251,例如,控制器251的功能可以卸载到网卡252上,这种情况下,可以由网卡252来完成数据读写、地址转换以及其他计算功能。这种情况下,网卡252可以为智能网卡,网卡252可以包含CPU和内存,CPU用于执行地址转换、数据读操作和数据写操作等,这时,可以由网卡252接收计算节点210发送的第一数据,并将第一数据存储到相应的硬盘253中。内存的作用可以参照前文。这种情况下,存储节点250中的网卡252和硬盘253之间可以没有归属关系,即网卡252可以访问存储节点250中的任意一个硬盘253。
图2B可以理解为一种全融合式架构的分布式存储集群的示意图。如图2B所示,第一分布式存储集群110包括一个或多个服务器260,其中任意两个服务器260之间可以相互通信。
服务器260是指具有计算能力和存储能力的设备,如服务器、台式计算机等。例如,服务器260可以通过进阶精简指令集机器(advanced risc machine,ARM)服务器或者X86服务器实现。在软件上,服务器260上可以包括虚拟机(virtual machine,VM)262,VM 262所需的计算资源来源于服务器本地的处理器和内存,VM 262所需的存储资源既可以来源于服务器本地的硬盘,也可以来自其他服务器中的硬盘。此外,VM 262中可运行各种应用程序,用户可通过虚拟机中的应用程序触发读/写请求。
在硬件上,每个服务器260还可以包括处理器261、网卡252、硬盘253和内存254。其中网卡252和内存254的实现形式和功能可以参照前文图2A论述的内容。处理器261可以接收待存储的数据,并对数据执行写操作。
图2C可理解为一种存算一体式架构的分布式存储集群的示意图。如图2C所示,该第一分布式存储集群110包括服务器集群。服务器集群包括一个或多个服务器260,其中任意两个服务器260之间可相互通信。
在硬件上,服务器260至少包括处理器261、内存254、网卡252和硬盘253。处理器261、内存254、网卡252和硬盘253之间通过总线连接。其中,处理器261和内存254可以用于提供计算资源。
需要说明的是,存算一体式架构的分布式存储集群与全融合式架构的分布式存储集群不同的是,存算一体式架构的分布式存储集群中的服务器可以没有虚拟机,以及没有运行相应的应用程序。存算一体式架构的分布式存储集群与存算分离式架构的分布式存储集群不同的是,存算一体式架构的分布式存储集群中的服务器相当于集成了存算分离式架构的分布式存储集群中的存储节点和计算节点的功能。
需要说明的是,存储系统100包括的不同分布式存储集群的硬件架构可以不同,也可以相同。
请参见图3A,为本申请实施例适用的一种存储系统的逻辑层的分布示意图。图3A中是以图1所示的存储系统100为例,对该存储系统100中的存储逻辑进行介绍。
如图3A所示,第一分布式存储集群110、第二分布式存储集群120、第三分布式存储集群130和第四分布式存储集群140用于提供物理存储空间。例如,第一分布式存储集群110包括一个或多个硬盘,第一分布式存储集群110通过这一个或多个硬盘提供物理存储空间。存储系统100包括的分布式存储集群各自提供的部分或全部物理存储空间可被为若干个物理存储单元321,被划分这些物理存储单元321映射成逻辑存储单元331。这些逻辑存储单元331从而构成一个或多个存储池330,一个或多个存储池330用于向用户提供存储空间,所述存储空间实际来源于存储系统100中的各个分布式存储集群。可选的,存储系统100中的至少一个存储池330包括存储系统100中的部分分布式存储集群对应的逻辑存储单元331,例如,一个存储池330包括第一分布式存储集群110中的至少一个逻辑存储单元331、第二分布式存储集群120中的至少一个逻辑存储单元331,以及第三分布式存储集群130中的至少一个逻辑存储单元331。
需要说明的是,如果一个存储池330包括部分分布式存储集群的逻辑存储单元331,那么可以视为这部分分布式存储集群构成了一个多活关系,例如,一个存储池330包括第一分布式存储集群110中的至少一个逻辑存储单元331,第二分布式存储集群120中的至少一个逻辑存储单元331,以及第三分布式存储集群130中的至少一个逻辑存储单元331,那么可以认为第一分布式存储集群110、第二分布式存储集群120和第三分布式存储集群130构成了一个多活关系。
需要说明的,如果分布式存储集群是以多个硬盘提供存储空间,那么这种情况下,存储池又可以称为硬盘池(disk pool),即硬盘池为存储池的一种示例。
可选的,所述存储池330的最小分配单位为一个逻辑存储单元组340,所述逻辑存储单元组340包括多个逻辑存储单元331,这多个逻辑存储单元331来自存储系统100中的部分或全部分布式存储集群。一个逻辑存储单元组340可包括一个或多个分条341。如图3A所示,一个逻辑存储单元组340包括3个分条,每个分条341包括3个数据条带和1个校验条带,其中一个分条341如图3A中0-2所示的3个数据条带和Q1所示的校验条带;一个分条341如图3A中3-5所示的3个数据条带和Q2所示的校验条带;一个分条341如图3A中7-9所示的3个数据条带和Q3所示的校验条带。
在一种可能的实施方式中,存储系统100可包括文件系统(file system,FS)。FS包括至少一个文件目录,其中,至少一个文件目录中的一个或多个文件目录可与存储系统100中的一个存储池330相对应,例如,一个存储池330对应一个文件目录,或者例如,一个存储池330中的一个逻辑存储单元组340对应一个文件目录。换言之,一个存储池330包括的部分或全部逻辑存储单元331对外均挂载了一个文件目录,可进一步理解为,访问该文件目录,就可以访问该存储池330中的部分或全部逻辑存储单元331。
为了便于管理,可选的,文件系统包括的至少一个文件目录所对应的根目录是相同的。例如,FS可创建一个根目录(如为.crossEc),根目录(.crossEc)下会创建256个子目录,每个子目录可对应一个存储池330中的一个存储单元组340。
存储系统100存储文件时,可将文件存储在一个文件目录中,也就相当于将数据存储在了一个存储池330中的部分或全部逻辑存储单元331中,也就相当于将文件存储在了存储系统100中的部分或全部分布式存储集群所提供的物理存储空间上。
在图3A所示的存储系统100的逻辑层的分布架构的基础上,下面对存储系统100中的分布式存储集群的可能的软件架构进行介绍。
请参照图3B,为本申请实施例提供的一种分布式存储集群的软件架构意图。需要说明的是,图3B中是第一分布式存储集群110和第二分布式存储集群120的软件架构进行示意。
如图3B所示,第一分布式存储集群110可支持文件存储,例如包括FS,通过FS将文件存储在一个硬盘池中。可选的,FS例如可支持多种存储协议,例如,对象存储协议(如简单存储服务(simple storage service,S3)),又例如,文件存储协议,(如网络文件系统(network file system,NFS))等。
同理,第二分布式存储集群120可支持文件存储,例如包括FS,通过FS将文件存储在一个硬盘池中。可选的,FS也可支持多种存储协议,例如,对象存储协议和文件存储协议等。
可选的,第一分布式存储集群110和第二分布式存储集群120均可支持异步复制。第一分布式存储集群110或第二分布式存储集群120例如,可调用FAsync函数,生成相应的通知信号,并通过复制通道向其他分布式存储集群发送通知信号等。
可选的,第一分布式存储集群110和第二分布式存储集群120还均可支持日志记录等功能。
可选的,每个分布式存储集群包括复制通道,用于与其他分布式存储集群进行数据交互。如图3B所示,第一分布式存储集群110还可通过复制通道与其他分布式存储集群相互通信,例如,第一分布式存储集群110通过其包含的复制通道将日志发送给第二分布式存储集群120。
下面结合图4所示的存储数据的流程,对目前的EC存储机制进行介绍。
如图4所示,该存储系统400包括第一分布式存储集群410、第二分布式存储集群420、第三分布式存储集群430和第四分布式存储集群440。需要说明的是,图4中的存储系统400的架构可参照图1所示的存储系统100的内容,此处不再列举。
第一分布式存储集群410接收文件450,并以副本存储机制存储该文件450。第一分布式存储集群410将该文件450划分为多个数据块,并对多个数据块进行校验计算,从而得到至少一个校验块。
第一分布式存储集群410可将分别多个数据块和至少一个校验块中的至少一个发送给存储系统400中相应的分布式存储集群,这样除了第一分布式存储集群410之外的其他分布式存储集群接收并存储这多个数据块和至少一个校验块中的部分或全部,这相当于将文件450以EC存储机制存储在了存储池460中。这之后,用户可通过存储系统400中的任一分布式存储集群访问该文件450。
在这种方式中,用户需要等待文件450被以EC存储机制存储在存储系统400之后,才能访问该文件450,导致用户的等待时间较长,即存储系统写入数据的时延较大。
鉴于此,本申请实施例提供了一种数据存储方法,在该方法中,第一分布式存储集群可接收并存储第一文件,记录第一文件的第一元数据,第一元数据包括第一文件在第一分布式存储集群中的存储地址,第一分布式存储集群向多个分布式存储集群中的其他分布式存储集群发送第一元数据,如此,多个分布式存储集群中的任一分布式存储集群均可根据第一元数据确定第一文件在存储系统中的存储地址,使得用户可直接通过这多个分布式存储集群中的任一分布式存储集群访问第一文件,减少了用户写入第一文件的等待时间,也就减少了存储系统写入数据的时延,也就提高了存储系统写入数据的效率。
下面结合图5,介绍本申请实施例提供的数据存储方法。图5所示的实施例所涉及的存储系统例如为图1中的存储系统100,图5所示的实施例所涉及的任一的分布式存储集群的硬件架构可参考图2A、图2B或图2C。图5中的第一分布式存储集群是以图1所示的第一分布式存储集群110,第二分布式存储集群以图1所示的第二分布式存储集群120,第三分布式存储集群以图1所示的第三分布式存储集群130,客户应用是以图1所示的客户应用150为例。并且,图5是以图1所示的第一分布式存储集群110、第二分布式存储集群120、以及第三分布式存储集群130参与本次存储为例,进行介绍。
S501,第一分布式存储集群接收第一文件。
如果本申请实施例中的数据存储方法适用的应用场景包括仲裁集群,第一分布式存储集群可从仲裁集群接收第一文件。或者,如果本申请实施例中的数据存储方法适用的应用场景不包括仲裁集群,第一分布式存储集群可从客户应用直接接收第一文件,例如,用户在客户应用输入第一文件,客户应用接收第一文件,并将第一文件发送给仲裁集群,仲裁集群将第一文件发送给第一分布式存储集群。其中,第一文件为待写入存储系统中的文件。
作为一个示例,仲裁集群接收第一文件之后,可根据存储系统中的各个分布式存储集群的负载情况,确定将第一文件发送给哪个分布式存储集群。在本申请实施例中是以第一分布式存储集群接收第一文件为例进行介绍。
S502,第一分布式存储集群存储第一文件。
例如,第一分布式存储集群以副本存储机制将第一文件存储在第一分布式存储集群中,或者,第一分布式存储集群以EC存储机制将第一文件存储在第一分布式存储集群中。其中,副本存储机制或EC存储机制的实施方式可参照前文。
作为一个示例,第一分布式存储集群可根据第一文件的大小,确定采用哪种存储方式存储第一文件。例如,如果第一文件的大小大于阈值,表示第一文件过大,第一分布式存储集群可采用EC存储机制存储第一文件,由于EC存储机制相比副本存储机制,数据存储的冗余度相对小,更利于节省第一分布式存储集群的物理存储空间。如果第一文件的大小小于或等于阈值,表示第一文件较小,那么第一分布式存储集群可采用EC存储机制或副本存储机制均可。
S503,第一分布式存储集群记录第一文件的第一元数据。
可选的,先执行S502,再执行S503,或者,S502和S503的执行顺序可以是同时的,第一分布式存储集群在存储第一文件的过程中也同步记录第一元数据。其中,第一元数据可用于描述第一文件,第一元数据包括第一文件在第一分布式存储集群中的存储地址。
可选的,第一分布式存储集群可将第一元数据记录在第一日志中,本申请实施例中的第一日志又可称为语义多活日志等。其中,第一日志可存储在第一分布式存储集群中,第一日志用于记录存储系统写入第一文件过程中的产生的操作信息和/或第一文件的相关元数据等。可选的,第一日志还可记录有第一文件的文件名称、文件大小或文件格式等信息中的一项或多项。
S504,第一分布式存储集群将第一元数据发送给第二分布式存储集群。相应的,第二分布式存储集群从第一分布式存储集群接收第一元数据。
存储系统包括的分布式存储集群的数量为多个,参与本次存储第一文件的分布式存储集群可以是存储系统中的所有分布式存储集群,或者是存储系统中的部分分布式存储集群,第一分布式存储集群可将第一元数据发送给存储系统中除了第一分布式存储集群外需要参与本次存储过程的分布式存储集群发送第一元数据,而对于无需参与本次存储过程的分布式存储集群,第一分布式存储集群可以不必向其发送第一元数据,以减少数据交互。
可选的,参与本次存储第一文件的分布式存储集群可以是与第一存储池关联的分布式存储集群。第一存储池为第一分布式存储集群确定的用于存储第一文件的存储池。
如果存储系统包括多个存储池,那么第一分布式存储集群可根据第一文件的大小,确定第一存储池,例如,第一分布式存储集群可选择物理存储空间大于或等于第一文件的大小的存储池作为第一存储池。
可选的,第一分布式存储集群可通过其包括的复制通道将第一元数据发送给第二分布式存储集群。其中,复制通道的含义可参照前文图3B介绍的内容。
可选的,第二分布式存储集群存储第二日志,第二日志的内容可参照前文第一日志的含义。在第二分布式存储集群接收第一元数据之后,可将第一元数据存储在第一日志中。
S505,第一分布式存储集群将第一元数据发送给第三分布式存储集群。相应的,第三分布式存储集群从第一分布式存储集群接收该第一元数据。
因本申请实施例是以第一分布式存储集群、第二分布式存储集群和第三分布式存储集群参与本次对于第一文件的存储过程为例,因此第一分布式存储集群也可将第一元数据发送给第三分布式存储集群。其中,S503和504的执行顺序可以是任意的,例如,S504可以在S503之前执行,或者S504可以在S503之后执行,或者S504与S503也可以同时执行。
可选的,第一分布式存储集群可通过其包括的复制通道将第一元数据发送给第三分布式存储集群。其中,复制通道的含义可参照前文。
可选的,第一分布式存储集群在向第二分布式存储集群和第三分布式存储集群发送第一元数据之后,可向客户应用发送写入响应提示。该写入响应提示用于提示该存储系统已存储第一文件。用户可通过客户应用获取该写入响应提示,从而及时确定第一文件在存储系统中的写入情况,以便用户可及时地访问该存储系统中的第一文件。
可选的,第三分布式存储集群存储第三日志,第三日志的内容可参照前文第一日志的含义。在第三分布式存储集群接收第一元数据之后,可将第一元数据存储在第三日志中。
S501~S505即为同步第一元数据的过程。在S501~S505中,第一分布式存储集群在接收第一文件之后,可存储第一文件,并将第一文件的第一元数据同步给其他分布式存储集群,从而存储系统中的其他分布式存储集群可根据第一元数据获取第一分布式存储集群中的第一文件。如此一来,无需等待第一文件以EC存储机制存储在存储系统中,用户便可通过其他分布式存储集群访问该第一文件,减少了用户的等待时长,也就减少了存储系统写入数据的时延,提高存储系统写入数据的效率。
第一分布式存储集群虽然存储了第一文件,但第一分布式存储集群如果故障,那么用户依旧无法从存储系统中读取该第一文件,因此为了提高存储系统可保证数据存储的可靠性,第一分布式存储集群还需将第一文件以EC存储机制写入到其他分布式存储集群中。下面对本申请实施例提供的EC存储的过程进行介绍。
S506,第一分布式存储集群确定第一文件的多个分片文件。
第一分布式存储集群划分第一文件,例如,第一分布式存储集群可根据第一存储池对应的条带的大小,对第一文件进行划分,以获得多个数据块,其中,每个数据块的大小等于一个条带的大小。第一分布式存储集群对多个数据块进行校验计算,从而获得至少一个校验块。第一分布式存储集群可根据多个数据块以及至少一个校验块,获得多个分片文件。
例如,第一分布式存储集群可将一个数据块或一个校验块转换为文件形式,在转换完多个数据块以及至少一个校验块之后,便可获得多个分片文件。
换言之,一个分片文件包括多个数据块中的一个数据块,或者包括至少一个校验块中的一个校验块。可进一步理解为,一个分片文件是一个数据块或一个校验块以文件形式进行表示的结果。
下面根据第一文件,生成多个分片文件的过程进行举例说明。
请参照图6,为本申请实施例提供的一种确定分片文件的过程示意图。如图6所示,第一分布式存储集群将第一文件F1拆分为第一数据块D1和第二数据块D2。第一分布式存储集群对第一数据块D1和第二数据块D2进行校验计算,获得校验块E1,如此,第一分布式存储集群即获得3个分片文件,其中一个分片文件包括第一数据块D1,一个分片文件包括第二数据块D2,一个分片文件包括校验块E1。
需要说明的是,在本申请实施例中以多个分片文件包括第一分片文件、第二分片文件和第三分片文件为例进行说明。
S507,第一分布式存储集群将多个分片文件存储在文件目录中。
第一分布式存储集群确定用于存储第一文件的第一存储池中的多个逻辑存储单元之后,可确定这多个逻辑存储单元对应的文件目录(本申请实施例称为第一文件目录)。
可选的,第一分布式存储集群可预先定义了存储系统中的至少一个文件目录中的每个文件目录的标识(即第二标识,在本申请实施例中以stripe_dirId表示),在确定第一文件目录后,也就对应获得该第一文件目录的标识(即第二标识)。
可选的,第一分布式存储集群可根据多个分片文件的标识(即第一标识,在本申请实施例中以slice_fileName表示),获得第二标识。其中,多个分片文件的标识是指多个分片文件共同的一个标识。
例如,第二标识是对第一标识进行计算获得的,计算的方式例如为哈希计算,本申请实施对此不做具体限定。一种计算第二标识的方式可参照如下公式。
stripe_dirId=hash(slice_fileName)%256
其中,hash()表示哈希计算对应的哈希函数。
在本申请实施例中,由于第二标识是根据第一标识获得的,因此可利用第一标识获得第二标识,便于查找该第一文件目录的标识。并且,由于对于待存储的文件不同,其对应的分片文件的标识也是不同的,因此采用第一标识确定出的第二标识也就不同,这样有利于将待存储的不同文件分别存储在存储系统中的不同文件目录下。
作为一个示例,第一标识可根据第一分布式存储集群的标识(site identifier,siteID),以及为多个分片文件分配的第一对象标识符(object identifier,OID)确定的。第一分布式存储集群可预存有多个唯一OID,从这多个唯一OID中选择一个唯一OID作为第一OID。
例如,一种第一标识的表达方式可参照如下公式。
slice_fileName=Hex(siteID)+Hex(OID)
其中,Hex为一种编码方式,其编码原理是将一个八位的字节数据用两个十六进制数进行表示。
第一分布式存储集群在确定第一文件目录之后,可将多个分片文件存储在第一文件目录中。
请参照图7,为本申请实施例提供的该存储系统中的文件系统的示例图。第一分布式存储集群确定多个分片文件的标识(即第一标识),根据第一标识计算出第一文件目录的标识(即第二标识,图7中是以第二标识是stripe_dir2为例)。该第一文件目录下还存储多个分片文件(如图7中所示的file_stripe1、file_stripe2和file_stripe3这三个)。
继续如图7所示,在存储多个分片文件之后,存储系统中的文件系统可以以键值(key-value,KV)存储的方式存储多个分片文件的信息,其中,键为第一标识,值为多个分片文件的存储路径(如图7中所示的/fs1:.crossEC/site_oid)。
可选的,S507包括S507a、S507b和S507c。其中,S507a为:第一分布式存储集群存储多个分片文件中的第一分片文件存储在第一分布式存储集群中的逻辑存储单元中;S507b为:第一分布式存储集群将第二分片文件发送给第二分布式存储集群,相应的,第二分布式存储集群从第一分布式存储集群接收该第二分片文件,第二分布式存储集群将第二分片文件存储在第二分布式存储集群中的逻辑存储单元中;S507c为:第一分布式存储集群将第三分片文件发送给第三分布式存储集群,相应的,第三分布式存储集群从第一分布式存储集群接收该第三分片文件,第三分布式存储集群将第三分片文件存储在第三分布式存储集群中的逻辑存储单元中。
例如,请参照图8,为本申请实施例提供的一种存储多个分片文件的示例图。如图8所示,第一分布式存储集群中的第一逻辑存储单元810、第二分布式存储集群中的第二逻辑存储单元820和第三分布式存储集群中的第三逻辑存储单元830均属于第一存储池800。
第一分布式存储集群将第一分片文件(包括数据块D1的分片文件)存储在第一逻辑存储单元810中;第一分布式存储集群将第二分片文件(包括数据块D2的分片文件)发送给第二分布式存储集群,第二分布式存储集群将第二分片文件(包括数据块D2的分片文件)存储在第二逻辑存储单元820中;第一分布式存储集群将第三分片文件(包括数据块E1的分片文件)存储在第三逻辑存储单元830中,也就相当于将多个分片文件存储在了第一文件目录中。
在S506-S507的过程中,以文件的形式存储各个分片文件,便于后续管理这多个分片文件。并且,第一文件的多个分片文件存储在同一个文件目录下,便于后续访问这多个分片文件。
S506-S507相当于完成以EC存储机制存储第一文件的过程,即完成了EC存储的过程。
S508,第一分布式存储集群记录第一文件的第二元数据。
该第二元数据包括第一标识和第二标识。可选的,该第二元数据也记录在第一日志中。
S509,第一分布式存储集群将第二元数据发送给第二分布式存储集群。相应的,第二分布式存储集群从第一分布式存储集群接收第二元数据。
可选的,第一分布式存储集群可通过复制通道将第二元数据发送给第二分布式存储集群。其中,复制通道的内容可参照前文图3B所示的内容。
作为一个示例,第二分布式存储集群接收第二元数据之后,可删除第一元数据。或者,第二分布式存储集群可将第一元数据修改为第二元数据。
可选的,如果第一元数据存储在第二日志中,第二分布式存储集群接收第二元数据之后,可在第二日志中记录第二元数据,或者,将第二日志中的第一元数据更新为第二元数据。
S510,第一分布式存储集群将第二元数据发送给第三分布式存储集群。相应的,第三分布式存储集群从第一分布式存储集群接收第二元数据。
可选的,第一分布式存储集群可通过复制通道将第二元数据发送给第三分布式存储集群。其中,复制通道的内容可参照前文图3B所示的内容。
作为一个示例,第三分布式存储集群接收第二元数据之后,可删除第一元数据。或者,第三分布式存储集群可直接将第一元数据修改为第二元数据。
可选的,第二分布式存储集群存储第一日志,第一日志的内容可参照前文。在第二分布式存储集群接收第二元数据之后,可将第二元数据存储在第一日志中。
可选的,如果第一元数据存储在第三日志中,第三分布式存储集群接收第二元数据之后,可在第三日志中记录第二元数据,或者,将第三日志中的第一元数据更新为第二元数据。
S508-S510相当于完成了同步第二元数据的过程。由于第二元数据包括了第一标识,因此在同步第二元数据之后,用户可通过第一分布式存储集群、第二分布式存储集群或第三分布式存储集群直接访问以EC存储机制存储的第一文件,而第二分布式存储集群和第三分布式存储集群无需路由到第一分布式存储集群访问该第一文件,有利于提高访问第一文件的效率。
作为一个示例,S506-S510为本申请实施例提供的一种EC存储以及同步EC存储过程中的元数据的过程,实际上也可采用其他存储机制存储第一文件,即S506-S510是可选的,在图5中以虚线进行示意。
请参照图9,为本申请实施例提供的分布式存储集群查找第一文件的示意图。如图9所示,第一分布式存储集群和第二分布式存储集群可存储有第二元数据。当第一分布式存储集群或第二分布式存储集群接收到请求读取第一文件的数据读请求时,第一分布式存储集群或第二分布式存储集群均可根据多个分片文件的标识(如图9所示的(site1+oid1)),从存储池中查找到该第一文件对应的多个分片文件。
S511,第一分布式存储集群将多个分片文件存储在存储系统的文件目录下之后的时长达到第一时长,删除第一元数据和第一文件。
第一分布式存储集群可预存有或被预配置有第一时长,例如,第一分布式存储集群可将第一时长记录在第二日志中,第二日志又可称为未来日志。其中,第二日志存储在第一分布式存储集群中。第一分布式存储集群在执行S507之后,如果确定计时时长达到了第一时长,可删除第一分布式存储集群中存储的第一元数据和第一文件。
在本申请实施例中,第一分布式存储集群中的第一元数据和第一文件支持延迟删除,在没有删除第一文件和第一元数据的情况下,第一分布式存储集群可直接给用户反馈其存储的第一文件,这样有利于提高用户访问第一文件的效率。并且,在达到第一时长之后,可删除第一文件和第一元数据,从而释放第一分布式存储集群的部分空间。
作为一个示例,第一分布式存储集群也可在执行S507之后,直接删除第一元数据和第一文件,这种情况下,S511为可选的步骤,在图5中以虚线示意。
作为一种示例,如果第一分布式存储集群的硬件架构如图2A所示的内容,那么图5所示的数据存储方法可通过图2A所示的计算节点执行,或者可通过图2A中的计算节点中的CPU执行。如果第一分布式存储集群的硬件架构为图2B所示的内容,图5所示的数据存储方法可通过图2B所示的服务器执行,或者可具体通过图2B所示的处理器执行。如果第一分布式存储集群的硬件架构为图2C所示的内容,图5所示的数据存储方法可通过图2C所示的服务器执行,或者可通过图2C所示的处理器执行。
需要说明的是,在本申请实施例中是以第一分布式存储集群执行本申请实施例中的数据存储方法为例进行说明,实际上存储系统中的任一分布式存储集群均可执行本申请实施例中的数据存储方法。其他分布式存储集群执行数据存储方法的过程可参照前文图5论述的过程,此处不再一一列举。
图10示出了一种数据存储装置1000的结构示意图。其中,数据存储装置1000可以应用于存储系统中的第一分布式存储集群,或者是第一分布式存储集群中的装置,能够实现本申请实施例提供的方法中的第一分布式存储集群的功能;数据存储装置1000也可以是能够支持第一分布式存储集群实现本申请实施例提供的方法中第一分布式存储集群的功能的装置。数据存储装置1000可以是硬件结构、软件模块、或硬件结构加软件模块。数据存储装置1000可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
数据存储装置1000可以包括收发模块1001和处理模块1002。
收发模块1001可以用于执行图5所示的实施例中的S501、S504和S505,还可以执行S507b、S507c、S509和S510,还可以用于支持本文所描述的技术的其它过程。收发模块1001用于数据存储装置1000和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
处理模块1002可以用于执行图5所示的实施例中的S503和S504,还可以执行图5中的S506、S507a、S508和S511,还可以用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图11所示为本申请实施例提供的数据存储装置1100,其中,数据存储装置1100可以是图5所示的实施例中的存储系统,或者是存储系统的装置,能够实现本申请图5所示的实施例中的存储系统的功能;数据存储装置1100也可以是能够支持存储系统实现本申请图5所示的实施例提供的方法中存储系统的功能的装置。其中,数据存储装置1100可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
数据存储装置1100包括至少一个处理器1101,用于实现或用于支持数据存储装置1100实现本申请实施例中的第一分布式存储集群的功能。示例性地,处理器1101可以存储第一文件,并记录第一文件的第一元数据,具体参见方法示例中的详细描述,此处不做赘述。
数据存储装置1100还可以包括通信接口1102,用于通过传输介质和其它设备进行通信,从而用于数据存储装置1100和其它设备进行通信。示例性地,该其它设备可以是服务器。处理器1101可以利用通信接口1102收发数据。
数据存储装置1100还可以包括至少一个存储器1103,用于存储程序指令和/或数据。存储器1103和处理器1101耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1101可能和存储器1103协同操作。处理器1101可能执行存储器1103中存储的程序指令。所述至少一个存储器1103中的至少一个可以包括于处理器1101中。当处理器1101执行存储器1103中的程序指令时,可以实现图5所示的实施例中任一的数据存储方法。
作为一个示例,图11中的存储器1103为可选的部分,在图11中以虚线框示意。例如,存储器1103与处理器1101耦合设置。
本申请实施例中不限定上述通信接口1102、处理器1101以及存储器1103之间的具体连接介质。本申请实施例在图11中以通信接口1102、处理器1101以及存储器1103之间通过总线1104连接,总线在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器1101可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器1103可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例提供了一种存储系统,该存储系统包括图10中的数据存储装置,或者,该存储系统包括图11中的数据存储装置。该存储系统可以实现前文图5所示的实施例中的任一的数据存储方法。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行图5所示的实施例中任一的数据存储方法。
本申请实施例中还提供一种计算机程序产品,该计算机程序产品存储有计算机程序,该计算机程序包括程序指令,该程序指令当被计算机执行时,使得计算机执行图5所示的实施例中任一的数据存储方法。
本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中存储系统的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种数据存储方法,其特征在于,应用于存储系统包括的多个分布式存储集群中的第一分布式存储集群,所述方法包括:
接收并存储第一文件;
记录所述第一文件的第一元数据,所述第一元数据包括所述第一文件在所述第一分布式存储集群中的存储地址;
向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将多个分片文件存储在所述存储系统的文件目录下,其中,所述文件目录被挂载了多个逻辑存储单元,所述多个逻辑存储单元与所述多个分布式存储集群对应,其中每个分布式存储集群对应所述多个逻辑存储单元中的至少一个逻辑存储单元,所述多个分片文件包括所述第一文件对应的多个数据块和至少一个校验块,其中一个分片文件包括所述多个数据块中的一个数据块或所述至少一个校验块中的一个校验块,所述至少一个校验块是对所述多个数据块进行校验计算获得的。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
记录所述第一文件的第二元数据,所述第二元数据包括第一标识以及第二标识,所述第一标识为所述多个分片文件的标识,并且所述第一标识是根据所述第一分布式存储集群的标识、以及为所述多个分片文件分配的第一对象标识符确定的,所述第一对象标识符是所述第一分布式存储集群中的多个唯一对象标识符中的一个,所述第二标识为所述文件目录的标识;
向所述其他分布式存储集群发送所述第二元数据。
4.根据权利要求3所述的方法,其特征在于,所述第二标识是根据所述第一标识确定的。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
在将多个分片文件存储在所述存储系统的文件目录下后的时长到达第一时长时,删除所述第一文件以及所述第一元数据。
6.一种数据存储装置,其特征在于,所述装置设置在存储系统包括的多个分布式存储集群中的第一分布式存储集群中,所述装置包括:
收发模块,用于接收并存储第一文件;
处理模块,用于记录所述第一文件的第一元数据,所述第一元数据包括所述第一文件在所述第一分布式存储集群中的存储地址;
所述收发模块,还用于向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
7.根据权利要求6所述的装置,其特征在于,所述处理模块还用于:
将多个分片文件存储在所述存储系统的文件目录下,其中,所述文件目录被挂载了多个逻辑存储单元,所述多个逻辑存储单元与所述多个分布式存储集群对应,其中每个分布式存储集群对应所述多个逻辑存储单元中的至少一个逻辑存储单元,所述多个分片文件包括所述第一文件对应的多个数据块和至少一个校验块,其中一个分片文件包括所述多个数据块中的一个数据块或所述至少一个校验块中的一个校验块,所述至少一个校验块是对所述多个数据块进行校验计算获得的。
8.根据权利要求7所述的装置,其特征在于,
所述处理模块,还用于记录所述第一文件的第二元数据,所述第二元数据包括第一标识以及第二标识,所述第一标识为所述多个分片文件的标识,并且所述第一标识是根据所述第一分布式存储集群的标识、以及为所述多个分片文件分配的第一对象标识符确定的,所述第一对象标识符是所述第一分布式存储集群中的多个唯一对象标识符中的一个,所述第二标识为所述文件目录的标识;
所述收发模块,还用于向所述其他分布式存储集群发送所述第二元数据。
9.根据权利要求8所述的装置,其特征在于,所述第二标识是根据所述第一标识确定的。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述处理模块还用于:
在将多个分片文件存储在所述存储系统的文件目录下后的时长到达第一时长时,删除所述第一文件以及所述第一元数据。
11.一种数据存储装置,其特征在于,包括处理器和通信接口,其中:
所述通信接口,用于接收第一文件;
所述处理器,用于存储第一文件,并记录第一文件的第一元数据;
所述通信接口,还用于向所述多个分布式存储集群中除了所述第一分布式存储集群之外的其他分布式存储集群发送所述第一元数据。
12.根据权利要求11所述的装置,其特征在于,所述处理器还用于:
将多个分片文件存储在所述存储系统的文件目录下,其中,所述文件目录被挂载了多个逻辑存储单元,所述多个逻辑存储单元与所述多个分布式存储集群对应,其中每个分布式存储集群对应所述多个逻辑存储单元中的至少一个逻辑存储单元,所述多个分片文件包括所述第一文件对应的多个数据块和至少一个校验块,其中一个分片文件包括所述多个数据块中的一个数据块或所述至少一个校验块中的一个校验块,所述至少一个校验块是对所述多个数据块进行校验计算获得的。
13.根据权利要求12所述的装置,其特征在于,
所述处理器,还用于记录所述第一文件的第二元数据,所述第二元数据包括第一标识以及第二标识,所述第一标识为所述多个分片文件的标识,并且所述第一标识是根据所述第一分布式存储集群的标识、以及为所述多个分片文件分配的第一对象标识符确定的,所述第一对象标识符是所述第一分布式存储集群中的多个唯一对象标识符中的一个,所述第二标识为所述文件目录的标识;
所述通信接口,还用于向所述其他分布式存储集群发送所述第二元数据。
14.根据权利要求13所述的装置,其特征在于,所述第二标识是根据所述第一标识确定的。
15.根据权利要求12-14任一项所述的装置,其特征在于,所述处理器还用于:
在将多个分片文件存储在所述存储系统的文件目录下后的时长到达第一时长时,删除所述第一文件以及所述第一元数据。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210116573.5A CN116594551A (zh) | 2022-02-07 | 2022-02-07 | 一种数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210116573.5A CN116594551A (zh) | 2022-02-07 | 2022-02-07 | 一种数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594551A true CN116594551A (zh) | 2023-08-15 |
Family
ID=87599589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210116573.5A Pending CN116594551A (zh) | 2022-02-07 | 2022-02-07 | 一种数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594551A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
-
2022
- 2022-02-07 CN CN202210116573.5A patent/CN116594551A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149097A (zh) * | 2023-10-31 | 2023-12-01 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
CN117149097B (zh) * | 2023-10-31 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种分布式存储系统数据访问控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210117441A1 (en) | Data replication system | |
US10374792B1 (en) | Layout-independent cryptographic stamp of a distributed dataset | |
US20160179581A1 (en) | Content-aware task assignment in distributed computing systems using de-duplicating cache | |
US11245774B2 (en) | Cache storage for streaming data | |
WO2019148841A1 (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
CN114201421B (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
WO2023000770A1 (zh) | 一种处理访问请求的方法、装置、存储设备及存储介质 | |
US12105591B2 (en) | Redundant data calculation method and apparatus | |
WO2023125630A1 (zh) | 一种数据管理方法及相关装置 | |
WO2023020136A1 (zh) | 存储系统中的数据存储方法及装置 | |
EP4044015A1 (en) | Data processing method and apparatus | |
CN113535068A (zh) | 数据读取方法和系统 | |
CN116594551A (zh) | 一种数据存储方法及装置 | |
US8621260B1 (en) | Site-level sub-cluster dependencies | |
US20210132862A1 (en) | Method for storage management, electronic device, and computer program product | |
WO2024001863A1 (zh) | 一种数据处理方法及相关设备 | |
US11429573B2 (en) | Data deduplication system | |
CN114077517A (zh) | 数据处理的方法、设备及系统 | |
US10503409B2 (en) | Low-latency lightweight distributed storage system | |
WO2023273803A1 (zh) | 一种认证方法、装置和存储系统 | |
WO2023029417A1 (zh) | 一种数据存储方法及装置 | |
WO2022083267A1 (zh) | 数据处理方法、装置、计算节点以及计算机可读存储介质 | |
CN114490540A (zh) | 数据存储方法、介质、装置和计算设备 | |
WO2014077451A1 (ko) | Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법 | |
CN109343928B (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 |