CN110325958B - 分布式块存储系统中数据存储方法、装置及计算机可读存储介质 - Google Patents
分布式块存储系统中数据存储方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110325958B CN110325958B CN201780002700.6A CN201780002700A CN110325958B CN 110325958 B CN110325958 B CN 110325958B CN 201780002700 A CN201780002700 A CN 201780002700A CN 110325958 B CN110325958 B CN 110325958B
- Authority
- CN
- China
- Prior art keywords
- data
- strip
- storage node
- stripe
- client
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
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
技术领域
本发明涉及信息技术领域,尤其涉及一种分布式块存储系统中数据存储方法、装置及计算机可读存储介质。
背景技术
分布式块存储系统中包含分区,分区包含存储节点和分条,分区中每一个分条包含多个条带,分区中一个存储节点对应分条中的一个条带,也就是分区中一个存储节点为分条中的一个条带提供存储空间。通常,如图1所示,分区中会包含一个主存储节点(存储节点1),主存储节点用于接收客户端发送的数据,然后主存储节点选择分条,将数据划分成条带的数据,将其他存储节点存储的条带的数据发送到相应的存储节点(存储节点2、存储节点3和存储节点4)。上述操作使得主存储节点很容易成为数据写入瓶颈,而且增加了存储节点间的数据交互,降低了分布式块存储系统的写性能。
发明内容
本申请提供了一种分布式块存储系统数据存储方法及装置,不需要主存储节点,减少存储节点间的数据交互,提高分布式块存储系统的写性能。
本申请的第一方面提供了一种分布式块存储系统中数据存储方法,分布式块存储系统包含分区P,分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;在该方法中,第一客户端接收第一写请求,其中,第一写请求包含第一数据和逻辑地址;第一客户端确定逻辑地址分布在分区P,第一客户端从分区P包含的R个分条中获得分条SN;其中,N为整数1到R中的一个值,第一客户端划分第一数据得到分条SN中的一个或多个条带SUNj的数据,将该一个或多个条带SUNj的数据发送到存储节点Nj。客户端根据分区获得分条,将数据划分为分条的条带的数据,将条带的数据发送到对应的存储节点,不需要主存储节点,减少了存储节点间的数据交互,同时将分条的条带的数据并发写到相应存储节点,也提升了分布式块存储系统的写性能。进一步的,每一个分条中的条带SUij在存储节点Nj的物理地址可以由分条元数据服务器预先分配。分条可以为根据EC算法生成的分条,也可以是由多副本算法生成的分条。当分条是EC算法生成的分条时,分条中的条带SUij包含数据条带和校验条带;当分条是多副本算法生成的分条时,分条中的条带SUij均为数据条带,并且数据条带的数据相同。数据条带SUNj的数据还包括元数据,例如数据条带SUNj标识、数据条带SUNj的数据的逻辑地址。
结合本申请第一方面,在第一方面的第一种可能实现方式中,第一客户端接收第二写请求;其中,第二写请求包含第二数据和逻辑地址;即第一数据的逻辑地址和第二数据的逻辑地址相同;第一客户端确定逻辑地址分布在分区P,第一客户端从分区P包含的R个分条中获得分条SY;其中,Y为整数1到R中的一个值,N与Y不同;第一客户端划分第二数据得到分条SY中的一个或多个条带SUYj的数据,将该一个或多个条带SUYj的数据发送到存储节点Nj。数据条带SUYj的数据还包括元数据,例如数据条带SUYj标识、数据条带SUYj的数据的逻辑地址。结合本申请第一方面,在第一方面的第二种可能实现方式中,第二客户端接收第三写请求;其中,第三写请求包含第三数据和逻辑地址;即第一数据的逻辑地址和第三数据的逻辑地址相同;第二客户端确定逻辑地址分布在分区P,第二客户端从从分区P包含的R个分条中获得分条SK;其中,K为整数1到R中的一个值,N与K不同;第二客户端划分第三数据得到分条SK中的一个或多个条带SUKj的数据,将一个或多个条带SUKj的数据发送到存储节点Nj。数据条带SUKj的数据还包括元数据,例如数据条带SUKj标识、数据条带SUKj的数据的逻辑地址。在分布式块存储系统中,第一客户端和第二客户端可以访问相同的逻辑地址。
结合本申请第一方面,在第一方面的第三种可能实现方式中,一个或多个条带SUNj的数据中的每一个包括第一客户端标识和第一客户端获得分条SN的时间戳TPN中的至少一种。分布式块存储系统的存储节点可以根据条带SUNj的数据中的第一客户端标识确定该条带是由第一客户端写入的;分布式块存储系统的存储节点可以根据条带SUNj的数据中的第一客户端获得分条SN的时间戳TPN确定第一客户端写入条带的先后顺序。
结合本申请第一方面的第一种可能实现方式,在第一方面的第四种可能实现方式中,一个或多个条带SUYj的数据中的每一个包括第一客户端标识和第一客户端获得分条SY的时间戳TPY中的至少一种。分布式块存储系统的存储节点可以根据条带SUYj的数据中的第一客户端标识确定该条带是由第一客户端写入的;分布式块存储系统的存储节点可以根据条带SUYj的数据中的第一客户端获得分条SY的时间戳TPY确定第一客户端写入条带的先后顺序。
结合本申请第一方面的第二种可能实现方式,在第一方面的第五种可能实现方式中,一个或多个条带SUKj的数据中的每一个包第二客户端标识和第二客户端获得分条SK的时间戳TPK中的至少一种。分布式块存储系统的存储节点可以根据条带SUKj的数据中的第二客户端标识确定该条带是由第一客户端写入的;分布式块存储系统的存储节点可以根据条带SUKj的数据中的第一客户端获得分条SK的时间戳TPK确定第二客户端写入条带的先后顺序。
结合本申请第一方面,在第一方面的第六种可能实现方式中,分条Si中条带SUij是由分条元数据服务器根据分区P与分区包含的存储节点Nj的映射,从存储节点Nj分配的。分条元数据服务器预先为分条Si中的条带SUij从存储节点Nj分配物理存储地址,可以减少客户端写入数据时的等待时间,从而提升分布式块存储系统的写性能。
结合本申请第一方面或第一方面的第一至第六种任一可能实现方式,在第一方面的第七种可能实现方式中,一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,数据条带状态信息用于标识分条SN的每个数据条带是否为空,从而不需要使用全0数据代替数据为空的条带的数据并写入存储节点,减少了分布式块存储系统的数据写入量。
本申请第二方面还提供了一种分布式块存储系统中数据存储方法,分布式块存储系统包含分区P,分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;在该方法中,存储节点Nj接收第一客户端发送的分条SN中的条带SUNj的数据;其中,条带SUNj的数据是由第一客户端划分第一数据得到的;第一数据是第一客户端接收第一写请求得到的;所述第一写请求包含第一数据和逻辑地址;逻辑地址用于确定第一数据分布在分区P;存储节点Nj根据条带SUNj标识与存储节点Nj的第一物理地址的映射存储SUNj的数据到第一物理地址。因为逻辑地址是分布式块存储系统中存储客户端写入数据的地址,因此,逻辑地址分布在分区P与第一数据分布在分区P具有相同的含义。存储节点Nj只接收客户端发送的条带SUNj的数据,因此,分布式块存储系统不需要主存储节点,减少了存储节点间的数据交互,同时将分条的条带的数据并发写到相应存储节点,也提升了分布式块存储系统的写性能。进一步的,每一个分条中的条带SUij在存储节点Nj的物理地址可以由分条元数据服务器预先分配,因此,条带SUNj在存储节点Nj的第一物理地址也是由分条元数据服务器预先分配的。分条可以为根据EC算法生成的分条,也可以是由多副本算法生成的分条。当分条是EC算法生成的分条时,分条中的条带SUij包含数据条带和校验条带;当分条是多副本算法生成的分条时,分条中的条带SUij均为数据条带,并且数据条带的数据相同。数据条带SUNj的数据还包括元数据,例如数据条带SUNj标识、数据条带SUNj的数据的逻辑地址。
结合本申请第二方面,在第二方面的第一种可能实现方式中,该方法还包括:
存储节点Nj为条带SUNj的数据分配时间戳TPNj,时间戳TPNj可以作为其他存储节点故障后恢复分条SN中的条带的数据的参考时间戳。
结合本申请第二方面或第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,该方法还包括:
存储节点Nj建立条带SUNj的数据的逻辑地址与条带SUNj标识的对应关系,从而用于客户端以逻辑地址来访问分布式块存储系统中存储节点Nj存储的条带SUNj的数据。
结合本申请第二方面或第二方面的第一种或第二种可能实现方式,在第二方面的第三种可能实现方式中,SUNj的数据包括第一客户端标识和第一客户端获得分条SN的时间戳TPN中的至少一种。存储节点Nj可以根据条带SUNj的数据中的第一客户端标识确定该条带是由第一客户端写入的;存储节点Nj可以根据条带SUNj的数据中的第一客户端获得分条SN的时间戳TPN确定第一客户端写入条带的先后顺序。
结合本申请第二方面或第二方面的第一种至第三种任一可能实现方式,在第二方面的第四种可能实现方式中,该方法还包括:存储节点Nj接收第一客户端发送的分条SY中的条带SUYj的数据;条带SUYj的数据是由第一客户端划分第二数据得到的;第二数据是第一客户端接收第二写请求得到的;第二写请求包含第一数据和逻辑地址;逻辑地址用于确定所述第二数据分布在所述分区P;即第一数据的逻辑地址和第二数据的逻辑地址相同;存储节点Nj根据条带SUY标识与存储节点Nj的第二物理地址的映射存储SUYj的数据到第二物理地址。因为逻辑地址是分布式块存储系统中存储客户端写入数据的地址,因此,逻辑地址分布在分区P与第二数据分布在分区P具有相同的含义。数据条带SUYj的数据还包括元数据,例如数据条带SUYj标识、数据条带SUYj的数据的逻辑地址。
结合本申请第二方面的第四种可能实现方式,在第二方面的第五种可能实现方式中,该方法还包括:存储节点Nj为条带SUYj的数据分配时间戳TPYj。时间戳TPYj可以作为其他存储节点故障后恢复分条SY中的条带的数据的参考时间戳。
结合本申请第二方面的第四种或第五种可能实现方式,在第二方面的第六种可能实现方式中,该方法还包括:存储节点Nj建立条带SUYj的数据的逻辑地址与条带SUYj标识的对应关系,从而用于客户端以逻辑地址来访问分布式块存储系统中存储节点Nj存储的条带SUYj的数据。
结合本申请第二方面的第四至六任一种可能实现方式,在第二方面的第七种可能实现方式中,SUYj的数据包括第一客户端标识和第一客户端获得分条SY的时间戳TPY中的至少一种。存储节点Nj可以根据条带SUYj的数据中的第一客户端标识确定该条带是由第一客户端写入的;存储节点Nj可以根据条带SUYj的数据中的第一客户端获得分条SY的时间戳TPY确定第一客户端写入条带的先后顺序。
结合本申请第二方面或第二方面的第一种或第二种可能实现方式,在第二方面的第八种可能实现方式中,该方法还包括:存储节点Nj接收第二客户端发送的分条SK中的条带SUKj的数据;条带SUKj的数据是由第二客户端划分第三数据得到的;第三数据是第二客户端接收第三写请求得到的;第三写请求包含第三数据和逻辑地址;逻辑地址用于确定第三数据分布在所述分区P;即第一数据的逻辑地址和第三数据的逻辑地址相同;存储节点Nj根据条带SUK标识与存储节点Nj的第三物理地址的映射存储SUKj的数据到第三物理地址。因为逻辑地址是分布式块存储系统中存储客户端写入数据的地址,因此,逻辑地址分布在分区P与第三数据分布在分区P具有相同的含义。在分布式块存储系统中,第一客户端和第二客户端可以访问相同的逻辑地址。数据条带SUKj的数据还包括元数据,例如数据条带SUKj标识、数据条带SUKj的数据的逻辑地址。
结合第二方面的第八种可能实现方式,在第二方面的第九种可能实现方式中,该方法还包括:存储节点Nj为条带SUKj的数据分配时间戳TPKj。时间戳TPKj可以作为其他存储节点故障后恢复分条SK中的条带的数据的参考时间戳。
结合本申请第二方面的第八种或第九种可能实现方式,在第二方面的第十种可能实现方式中,该方法还包括:存储节点Nj建立条带SUKj的数据的逻辑地址与条带SUKj标识的对应关系,从而用于客户端以逻辑地址来访问分布式块存储系统中存储节点Nj存储的条带SUKj的数据。
结合本申请第二方面的第八至十任一种可能实现方式,在第二方面的第十一种可能实现方式中,SUKj的数据包括第二客户端标识和第二客户端获得分条SK的时间戳TPK中的至少一种。存储节点Nj可以根据条带SUKj的数据中的第二客户端标识确定该条带是由第二客户端写入的;存储节点Nj可以根据条带SUKj的数据中的第二客户端获得分条SK的时间戳TPK确定第二客户端写入条带的先后顺序。
结合本申请第二方面,在第二方面的第十二种可能实现方式中,分条Si中条带SUij是由分条元数据服务器根据分区P与分区P包含的存储节点Nj的映射,从存储节点Nj分配的。分条元数据服务器预先为分条Si中的条带SUij从存储节点Nj分配物理存储地址,可以减少客户端写入数据时的等待时间,从而提升分布式块存储系统的写性能。
结合本申请第二方面或第二方面的第一种至十二任一种可能实现方式,在第二方面的第十三种可能实现方式中,一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,数据条带状态信息用于标识分条SN的每个数据条带是否为空,从而不需要使用全0数据代替数据为空的条带的数据并写入存储节点,减少了分布式块存储系统的数据写入量。
结合第二方面的第九种可能实现方式,在第二方面的第十四种可能实现方式中,当存储节点Nj故障后,新的存储节点根据分条SN和SK分别恢复出条带SUNj的数据和SUKj的数据,新的存储节点获取存储节点NX中条带SUNX的数据的时间戳TPNX作为条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为条带SUKj的数据的参考时间戳,新的存储节点根据时间戳TPNX和时间戳TPKX从缓存中将所述条带SUNj的数据和SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个,在存储系统中保留最新的条带的数据,从而节省缓存空间。
结合第二方面的第七种可能实现方式,在第二方面的第十五种可能实现方式中,当存储节点Nj故障后,新的存储节点根据分条SN和SY分别恢复出条带SUNj的数据和SUYj的数据,条带SUNX的数据包含时间戳TPN,条带SUYj的数据包含时间戳TPY,新的存储节点根据时间戳TPN和时间戳TPY从缓存中将条带SUNj的数据和SUYj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个,在存储系统中保留同一个客户端的最新的条带,从而节省缓存空间。
结合本申请第一方面或第一方面的第一至七任一种可能的实现方式中的分布式块存储系统,本申请第三方面还提供了一种分布式块存储系统中数据写入装置,数据写入装置包含多个单元,用于执行本申请第一方面或第一方面的第一至七任一种可能的实现方式。
结合用于本申请第二方面或第二方面的第一至十五任一种可能的实现方式中的分布式块存储系统,本申请第四方面还提供了一种分布式块存储系统中数据存储装置,数据存储装置包含多个单元,用于执行本申请第二方面或第二方面的第一至十五任一种可能的实现方式。
本申请第五方面还提供了本申请第二方面或第一方面的第一至十五任一种可能的实现方式中的分布式块存储系统,分布式块存储系统中的存储节点Nj,用于执行本申请第二方面或第二方面的第一至十五任一种可能的实现方式。
本申请第六方面还提供了一种客户端,应用于本申请第一方面或第一方面的第一至七任一种可能的实现方式中的分布式块存储系统,客户端包含处理器和接口,处理器与接口通信,处理器用于执行本申请第一方面或第一方面的第一至七任一种可能的实现方式。
本申请第七方面还提供了一种存储节点,应用于本申请第二方面或第二方面的第一至十五任一种可能的实现方式中的分布式块存储系统,存储节点作为存储节点Nj包含处理器和接口,处理器与接口通信,处理器用于执行本申请第二方面或第二方面的第一至十五任一种可能的实现方式。
本申请第八方面还提供了一种计算机可读存储介质,应用于本申请第一方面或第一方面的第一至七任一种可能的实现方式中的分布式块存储系统,计算机可读存储介质包含计算机指令,用于使客户端执行本申请第一方面或第一方面的第一至七任一种可能的实现方式。
本申请第九方面还提供了一种计算机可读存储介质,应用于本申请第二方面或第二方面的第一至十五任一种可能的实现方式中的分布式块存储系统,计算机可读存储介质包含计算机指令,用于使存储节点执行本申请第二方面或第二方面的第一至十五任一种可能的实现方式。
本申请第十方面还提供了一种计算机程序产品,应用于本申请第一方面或第一方面的第一至七任一种可能的实现方式中的分布式块存储系统,计算机程序产品包含计算机指令,用于使客户端执行本申请第一方面或第一方面的第一至七任一种可能的实现方式。
本申请第十一方面还提供了一种计算机程序产品,应用于本申请第二方面或第二方面的第一至十五任一种可能的实现方式中的分布式块存储系统,计算机程序产品包含计算机指令,用于使存储节点执行本申请第二方面或第二方面的第一至十五任一种可能的实现方式。
附图说明
图1为现有技术中分布式块存储系统数据存储示意图;
图2为本发明实施例分布式块存储系统示意图;
图3为本发明实施例分布式块存储系统中服务器结构示意图;
图4为本发明实施例分布式块存储系统分区视图示意图;
图5为本发明实施例分布式块存储系统中条带与存储节点关系示意图;
图6为本发明实施例分布式块存储系统中客户端写数据的方法流程图;
图7为本发明实施例分布块存储系统中客户端确定分区示意图;
图8为本发明实施例分布式块存储系统中存储节点存储数据的方法流程图;
图9为本发明实施例分布式块存储系统中存储节点存储分条示意图;
图10为本发明实施例分布式块存储系统中存储节点存储分条示意图;
图11为本发明实施例分布式块存储系统中数据写入装置结构示意图;
图12为本发明实施例分布式块存储系统中数据存储装置结构示意图。
本发明实施例
本发明实施例中的分布式块存储系统,如的系列。示例性的如图2所示,分布式块存储系统包括多台服务器,如服务器1、服务器2、服务器3、服务器4、服务器5和服务器6,服务器间通过InfiniBand或以太网络等互相通信。在实际应用当中,分布式块存储系统中服务器的数量可以根据实际需求增加,本发明实施例对此不作限定。
分布式块存储系统的服务器中包含如图3所示的结构。如图3所示,分布式块存储系统中的每台服务器包含中央处理单元(Central Processing Unit,CPU)301、内存302、接口303、硬盘1、硬盘2和硬盘3,内存302中存储计算机指令,CPU301执行内存302中的程序指令执行相应的操作。接口303可以为硬件接口,如网络接口卡(Network Interface Card,NIC)或主机总线适配器(Host Bus Adaptor,HBA)等,也可以为程序接口模块等。硬盘包含固态硬盘(Solid State Disk,SSD)、机械硬盘或者混合硬盘。机械硬盘如HDD(Hard DiskDrive)。另外,为节省CPU301的计算资源,现场可编程门阵列(Field Programmable GateArray,FPGA)或其他硬件也可以代替CPU301执行上述相应的操作,或者,FPGA或其他硬件与CPU301共同执行上述相应的操作。为方便描述,本发明实施例将CPU301与内存302、FPGA及其他替代CPU301的硬件或FPGA及其他替代CPU301的硬件与CPU301的组合统称为处理器。
在图3所示的结构中,内存302中加载应用程序,CPU301执行内存302中的应用程序指令,则服务器作为客户端。另外客户端也可以由独立于图2所示的服务器的设备。其中,应用程序可以为虚拟机(Virtual Machine,VM),也可以为某一个特定应用,如办公软件等。客户端向分布式块存储系统写入数据或从分布式块设备存储中读取数据。客户端的结构可参考图3及相关描述。内存302中加载分布式块存储系统程序,CPU301执行内存302中的分布式块存储系统程序,向客户端提供块协议访问接口,为客户端提供分布式块存储接入点服务,使客户端访问分布式块存储系统中存储资源池中的存储资源。通常,该块协议访问接口用于向客户端提供逻辑单元。服务器运行分布式块存储系统程序使包含硬盘的服务器作为存储节点,用于存储客户端数据。示例性的,服务器可以以一块硬盘默认作为一个存储节点,即当服务器中包含多块硬盘时,可以作为多个存储节点,另一种实现,服务器运行分布式块存储系统程序作为一个存储节点,本发明实施例对此不作限定。因此,存储节点的结构可参考图3及相关描述。分布式块存储系统初始化时,将哈希空间(如0~2^32,)划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如,分布式块存储系统中N默认为3600,即分区分别为P1,P2,P3…P3600。假设当前分布式块存储系统有18块硬盘(存储节点),则每块存储节点承载200个分区。分区P包含M个存储节点Nj,分区与存储节点对应关系,即分区与分区包含的存储节点Nj的映射,也称为分区视图,如图4所示,以分区包含4个存储节点Nj为例,分区视图为“P2-存储节点N1-存储节点N2-存储节点N3-存储节点N4”。其中,j为整数1到M中的每一个值。在分布式块存储系统初始化时会分配好,后续会随着分布式块存储系统中硬盘数量的变化进行调整。客户端保存该分区视图。
根据分布式块存储系统的可靠性要求,可以使用纠删码(Erasure Coding,EC)算法提高数据可靠性,如使用3+1模式,即3个数据条带和1个校验条带组成分条。在本发明实施例中,分区以分条的形式存储数据,一个分区包含R个分条Si,其中,i为整数1到R中的每一个值。本发明实施例以P2为例进行描述。
分布式块存储系统按照4KB为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个4KB分片的分配信息,硬盘的分片组成存储资源池。分布式块存储系统包含分条元数据服务器,具体实现可以为分条元数据管理程序运行在分布式块存储系统中的一台或多台服务器上。分条元数据服务器为分区分配分条。仍以图4所示分区视图为例,分条元数据服务器根据分区视图,如图5所示,为分区P2的分条Si从分区对应的存储节点Nj分配分条中条带SUij的物理存储地址,即存储空间,具体包括:为SUi1从存储节点N1分配物理存储地址,为SUi2从存储节点N2分配物理存储地址,为SUi3从存储节点N3分配物理存储地址,为SUi4从存储节点N4分配物理存储地址。存储节点Nj记录条带SUij标识与物理存储地址的映射。分条元数据服务器为分条中的条带从存储节点分配物理地址,可以在分布式块存储系统初始化时预先分配,或在客户端向存储节点发送数据前预分配。本发明实施例中,分条Si中条带SUij在客户端写数据之前,仅仅为一段存储空间。当客户端接收数据,分条Si中条带SUij的大小划分得到条带SUij的数据,即分条Si中包含的条带SUij用于存储客户端划分数据得到的条带SUij的数据。为减少分条元数据服务器管理的条带标识的数量,分条元数据服务器为分条中条带标识分配版本号,当一个分条释放后,更新该释放后的分条中条带的条带标识版本号,从而作为新的分条中条带的条带标识。分条元数据服务器预先为分条Si中的条带SUij从存储节点Nj分配物理存储地址,可以减少客户端写入数据时的等待时间,从而提升分布式块存储系统的写性能。
本发明实施例中,客户端挂载分布式块存储系统分配的逻辑单元,从而进行数据访问操作。其中,逻辑单元又称为逻辑单元号(Logical Unit Number,LUN)。在分布式块存储系统中,一个逻辑单元可以只挂载给一个客户端;一个逻辑单元也可以挂载给多个客户端,即多个客户端共享一个逻辑单元。逻辑单元是由图2所示的存储资源池提供的。
本发明实施例中,如图6所示,第一客户端执行如下步骤:
步骤601:第一客户端接收第一写请求;第一写请求包含第一数据和逻辑地址。
在分布式块存储系统中,第一客户端可以为VM,或者服务器。第一客户端中运行应用程序,应用程序访问第一客户端挂载的逻辑单元,例如向逻辑单元发送第一写请求。第一写请求包含第一数据和逻辑地址,逻辑地址又称为逻辑块地址(Logical Block Address,LBA)。逻辑地址用于指示第一数据在逻辑单元中的写入位置。
步骤602:第一客户端确定逻辑地址分布在分区P。
本发明实施例以分区P2为例,结合图4,第一客户端存储有分布式块存储系统的分区视图。如图7所示,第一客户端根据分区视图,确定第一写请求包含的逻辑地址所在的分区。其中一种实现,第一客户端根据逻辑地址生成键Key,根据哈希算法计算Key的哈希值,确定哈希值对应的分区,从而确定逻辑地址分布在分区P2。也称为第一数据分布在分区P2。
步骤603:第一客户端从R个分条中获得分条SN;其中,N为整数1到R中的一个值。
分条元数据服务器管理分区与分条的对应关系,以及分条中条带与存储节点的关系。其中第一客户端从R个分条中获得分条SN的一种实现,第一客户端确定逻辑地址分布在分区P2,第一客户端查询分条元数据服务器获得分区P2包含的R个分条中的一个分条SN。因为逻辑地址是分布式块存储系统中存储客户端写入数据的地址,因此,逻辑地址分布在分区P与第一数据分布在分区P具有相同的含义。第一客户端从R个分条中获得分条SN的另一种实现,可以为第一客户端从R个分条中已经分配给第一客户端的分条中获得分条SN。
步骤604:第一客户端将第一数据划分为分条SN中的一个或多个条带SUNj的数据。
分条SN由条带组成,第一客户端接收第一写请求,缓存第一写请求包含的第一数据,根据分条中条带的大小划分缓存的数据,示例性的,第一客户端根据分条中条带的长度划分得到条带大小的数据,根据条带大小的数据的逻辑地址对分区中的存储节点数M(例如4)取模,从而确定条带大小的数据在分条中的位置,即对应的条带SUNj,进而根据分区视图确定条带SUNj对应存储节点Nj,从而相同逻辑地址的条带的数据分布在相同的存储节点。例如将第一数据划分为1个或多个条带SUNj的数据。本发明实施例以P2为例,结合图5,分条SN包含4个条带,分别为SUN1、SUN2、SUN3和SUN4。以将第一数据划分为2个条带的数据为例,即分别为SUN1的数据和SUN2的数据。条带SUN3的数据可以由第一客户端发送的其他写请求中的数据划分得到,具体可参考第一请求的描述。进而根据SUN1的数据、SUN2的数据和SUN3的数据生成校验条带SUN4的数据,校验条带SUN4的数据也称为校验数据。关于分条中数据条带的数据如何生成校验条带的数据可参考现有分条实现算法,本发明实施例不再赘述。
本发明实施例中,分条SN包含4个条带,即3个数据条带和1个校验条带。当第一客户端缓存数据超过一定时间需要将数据写入存储节点,但不能凑满数据条带的数据时,如只有划分第一数据得到的条带SUN1的数据和SUN2的数据时,根据SUN1的数据和SUN2的数据生成校验条带。有效的数据条带SUNj的数据包含分条SN的数据条带状态信息,有效的数据条带SUNj是指数据不为空的条带,本发明实施例中有效数据条带SUN1的数据和SUN2的数据均包含分条SN的数据条带状态信息,数据条带状态信息用于标识分条SN的每个数据条带是否为空。如用1标识数据条带不为空,用0表示数据条带为空,则SUN1的数据包含的数据条带状态信息为110、SUN2的数据包含的数据条带状态信息为110,即表示SUN1不为空、SUN2不为空和SUN3为空。根据SUN1的数据和SUN2的数据生成的校验条带SUN4的数据包含数据条带状态信息的校验数据。因为SUN3的为空,第一客户端不需要用全0数据代替SUN3的数据并写入存储节点N3,减少了数据写入量。第一客户端在读取分条SN时,根据数据条带SUN1的数据或SUN2的数据包含的分条SN的数据条带状态信息,确定SUN3的数据为空。
当SUN3不为空,则本发明实施例中SUN1的数据、SUN2的数据和SUN3的数据包含的数据条带状态信息为111,根据SUN1的数据、SUN2的数据和SUN3的数据生成的校验条带SUN4的数据包含数据条带状态信息的校验数据。
进一步的,本发明实施例中,数据条带SUNj的数据还包括第一客户端标识和第一客户端获得分条SN的时间戳TPN中的至少一种,即包含第一客户端标识和第一客户端获得分条SN的时间戳TPN中的任一种或组合。当数据条带SUNj的数据生成校验条带SUNj的数据时,校验条带SUNj的数据中也包含了第一客户端标识和第一客户端获得分条SN的时间戳TPN中的至少一种的校验数据。
本发明实施例中,数据条带SUNj的数据还包括元数据,例如数据条带SUNj标识、数据条带SUNj的数据的逻辑地址。
步骤605:第一客户端将一个或多个条带SUNj的数据发送到存储节点Nj。
本发明实施例中,第一客户端将第一数据划分得到的SUN1的数据发送到存储节点N1,将第一数据划分得到的SUN2的数据发送到存储节点N2。第一客户端可以并发将分条SN的条带SUNj的数据发送到存储节点Nj,不需要主存储节点,减少了存储节点数据交互,而且提高了写并发度,从而提高了分布式块存储系统的写性能。
进一步的,在一个逻辑单元只挂载给第一客户端的情况下,第一客户端接收第二写请求;第二写请求包含第二数据和图6描述的逻辑地址,第一客户端根据图6流程中描述的算法确定逻辑地址分布在分区P2,第一客户端从R个分条中获得分条SY,第一客户端将第二数据划分为分条SY中的一个或多个条带SUYj的数据,如SUY1的数据和SUY2的数据,第一客户端将一个或多个条带SUYj的数据发送到存储节点Nj,即将SUY1的数据发送到存储节点N1,将SUY2的数据发送到存储节点N2。其中,Y为整数1到R中的一个值,N与Y不同。本发明实施例,逻辑地址分布在分区P与第二数据分布在分区P具有相同的含义。进一步的,有效的数据条带SUYj的数据包含分条SY的数据条带状态信息。进一步的,数据条带SUYj的数据还包括第一客户端标识和第一客户端获得分条SY的时间戳TPY中的至少一种。进一步的,数据条带SUYj的数据还包含数据条带SUYj的数据的元数据,例如条带SUYj标识,条带SUYj的数据的逻辑地址。进一步描述可参考图6第一客户端的描述,在此不再赘述。第一客户端从R个分条中获得分条SY的含义可参考第一客户端从R个分条中获得分条SN的含义,在此不再赘述。
进一步的,在一个逻辑单元挂载给多个客户端的情况下,如挂载给第一客户端和第二客户端,第二客户端接收第三写请求;第三写请求包含第三数据和图6描述的逻辑地址。第二客户端根据图6流程中描述的算法确定逻辑地址分布在分区P2,第二客户端从R个分条中获得分条SK,第二客户端将第三数据划分为分条SK中的一个或多个条带SUKj的数据,如SUK1的数据和SUK2的数据,第二客户端将一个或多个条带SUKj的数据发送到存储节点Nj,即将SUK1的数据发送到存储节点N1,将SUK2的数据发送到存储节点N2。其中,K为整数1到R中的一个值,N与K不同。逻辑地址分布在分区P与第三数据分布在分区P具有相同的含义。第二客户端从R个分条中获得分条SK的含义可参考第一客户端从R个分条中获得分条SN的含义,在此不再赘述。进一步的,有效的数据条带SUKj的数据包含分条SK的数据条带状态信息。进一步的,数据条带SUKj的数据还包括第二客户端标识和第二客户端获得分条SK的时间戳TPK中的至少一种。进一步的,数据条带SUKj的数据还包含元数据,如数据条带SUKj标识,数据条带SUKj的数据的逻辑地址。关于第二客户端的进一步描述可参考图6第一客户端的描述,在此不再赘述。
现有技术中,客户端需要将数据先发送到主存储节点,由主存储节点将数据划分为条带的数据,并将除存储在主存储节点的其他条带的数据发送到相应的存储节点,从而使主存储节点成为分布式块存储系统中数据存储瓶颈,同时增加了存储节点间的数据交互,而在图6所示的实施例中,客户端将数据划分为条带的数据,将条带的数据发送到对应的存储节点,不需要主存储节点,减轻了主存储节点压力,减少了存储节点间的数据交互,同时将分条的条带的数据并发写到相应存储节点,也提升了分布式块存储系统的写性能。
与图6所示的第一客户端实施例相对应,如图8所示,存储节点Nj执行如下步骤:
步骤801:存储节点Nj接收第一客户端发送的分条SN中的条带SUNj的数据。
结合图6所示实施例,存储节点N1接收第一客户端发送SUN1的数据,存储节点N2接收第一客户端发送SUN2的数据。
步骤802:存储节点Nj根据条带SUNj标识与存储节点Nj的第一物理地址的映射存储SUNj的数据到第一物理地址。
分条元数据服务器根据分区视图,为分区中分条SN的条带SUNj在存储节点Nj中预先分配了第一物理地址,存储节点Nj的元数据中存储了条带SUNj标识与存储节点Nj的第一物理地址的映射,存储节点Nj接收到条带SUNj的数据,根据该映射将条带SUNj的数据存储到第一物理地址。如存储节点N1接收第一客户端发送的SUN1的数据,将SUN1的数据存储到N1的第一物理地址,存储节点N2接收第二客户端发送的SUN2的数据,将SUN2的数据存储到N2的第一物理地址。
现有技术中,主存储节点需要客户端发送的数据,将数据划分为分条中的数据条带的数据,并根据数据条带的数据形成校验条带的数据,将其他存储节点存储的条带的数据发送到相应的存储节点,而本发明实施例中,存储节点Nj只接收客户端发送的条带SUNj的数据,不需要主存储节点,减少了存储节点间的数据交互,同时将条带的数据并发写到相应存储节点,提升了分布式块存储系统的写性能。
进一步的,条带SUNj的数据是由第一数据划分得到的,第一写请求中包含第一数据的逻辑地址,条带SUNj的数据作为第一数据的一部分,也有相应的逻辑地址,因此,存储节点Nj建立条带SUNj的数据的逻辑地址与条带SUNj标识的映射。这样第一客户端仍然使用逻辑地址访问条带SUNj的数据。例如,当第一客户端访问条带SUNj的数据时,第一客户端使用条带SUNj的数据的逻辑地址对分区P中的存储节点数M(例如4)取模,确定条带SUNj分布在存储节点Nj,发送携带条带SUNj的数据的逻辑地址的读请求到存储节点Nj,存储节点Nj根据条带SUNj的数据的逻辑地址与条带SUNj标识的映射获得条带SUNj标识,存储节点Nj根据条带SUNj标识与存储节点Nj的第一物理地址的映射获得条带SUNj的数据。
结合图6所示的实施例及相关描述,进一步的,存储节点Nj接收第一客户端发送的分条SY中的条带SUYj的数据,如存储节点N1接收第一客户端发送的SUY1的数据,存储节点N2接收第一客户端发送的SUY2的数据,存储节点Nj根据条带SUYj标识与存储节点Nj的第二物理地址的映射存储SUYj的数据到第二物理地址,如将SUY1的数据存储到N1的第二物理地址,将SUY2的数据存储到N2的第二物理地址。条带SUYj的数据作为第二数据的一部分,也有相应的逻辑地址,因此,存储节点Nj建立条带SUYj的数据的逻辑地址与条带SUYj标识的映射。这样第一客户端仍然使用逻辑地址访问条带SUYj的数据。条带SUYj的数据与条带SUNj的数据具有相同的逻辑地址。
结合图6所示的实施例及相关描述,当一个逻辑单元挂载给第一客户端和第二客户端时,进一步的,存储节点Nj接收第二客户端发送的分条SK中的条带SUKj的数据,如存储节点N1接收第二客户端发送的SUK1的数据,存储节点N2接收第二客户端发送的SUK2的数据,存储节点Nj根据条带SUKj标识与存储节点Nj的第三物理地址的映射存储SUKj的数据到第三物理地址,如将SUK1的数据存储到N1的第三物理地址,将SUK2的数据存储到N2的第三物理地址。条带SUKj的数据作为第三数据的一部分,也有相应的逻辑地址,因此,存储节点Nj建立条带SUKj的数据的逻辑地址与条带SUKj标识的映射。这样第二客户端仍然使用逻辑地址访问条带SUKj的数据。条带SUKj的数据与条带SUNj的数据具有相同的逻辑地址。
进一步的,存储节点Nj为条带SUNj的数据分配时间戳TPNj,存储节点Nj为条带SUKj的数据分配时间戳TPKj,存储节点Nj为条带SUYj的数据分配时间戳TPYj。存储节点Nj可以根据时间戳淘汰缓存中具有相同逻辑地址的时间在先的条带的数据,保留最新的条带的数据,从而节省缓存空间。
结合图6所示的实施例及相关描述,当一个逻辑单元只挂载给第一客户端时,第一客户端发送给存储节点Nj的条带SUNj的数据中包含第一客户端获得分条SN的时间戳TPN,第一客户端发送给存储节点Nj的条带SUYj的数据中包含第一客户端获得分条SY的时间戳TPY,如图9所示,分条SN的数据条带均不为空,SUN1的数据、SUN2的数据和SUN3的数据中均包含第一客户端获得分条SN的时间戳TPN,分条SN的校验条带SUN4的数据中包含时间戳TPN的校验数据TPNp;分条SY的数据条带均不为空,SUY1的数据、SUY2的数据和SUY3的数据中均包含第一客户端获得分条SY的时间戳TPY,分条SY的校验条带SUY4的数据中包含时间戳TPY的校验数据TPYp。因此,当某一个存储数据条带的存储节点故障后,分布式块存储系统根据分条与分区视图,新的存储节点恢复分条SN在故障存储节点Nj的条带SUNj的数据,恢复分条SY在故障存储节点Nj的条带SUYj的数据,因此在新的存储节点的缓存中包含条带SUNj的数据和SUYj的数据。SUNj的数据包含时间戳TPN,SUYj的数据包含时间戳TPY,由于时间戳TPN和时间戳TPY均由第一客户端分配或由同一个时间戳服务器分配,因此可以比较时间先后顺序。新的存储节点根据时间戳TPN和时间戳TPY从缓存中淘汰时间在前的条带的数据。新的存储节点可以为故障存储节点Nj恢复后的存储节点,或者分布式块存储系统中新加入分条分布在的分区的存储节点。本发明实施例中,以存储节点N1故障为例,在新的存储节点的缓存中包含条带SUN1的数据和SUY1的数据。SUN1的数据包含时间戳TPN,SUY1的数据包含时间戳TPY,时间戳TPN先于时间戳TPY,因此新的存储节点从缓存中淘汰条带SUN1的数据,在存储系统中保留最新的条带的数据,从而节省缓存空间。存储节点Nj可以根据同一客户端分配的时间戳淘汰缓存中来自同一客户端的时间并且具有相同逻辑地址的在先的条带的数据,保留最新的条带的数据,从而节省缓存空间。
结合图6所示的实施例及相关描述,当一个逻辑单元挂载给第一客户端和第二客户端时,存储节点Nj给第一客户端发送的条带SUNj的数据分配时间戳TPNj,存储节点Nj给第二客户端发送的条带SUKj的数据分配时间戳TPKj,如图10所示,分条SN的数据条带均不为空,存储节点N1为条带SUN1的数据分配的时间戳为TPN1、存储节点N2为条带SUN2的数据分配的时间戳为TPN2、存储节点N3为条带SUN3的数据分配的时间戳为TPN3、存储节点N4为条带SUN4的数据分配的时间戳为TPN4;分条SK的数据条带均不为空,存储节点N1为条带SUK1的数据分配的时间戳为TPK1、存储节点N2为条带SUK2的数据分配的时间戳为TPK2、存储节点N3为条带SUK3的数据分配的时间戳为TPK3、存储节点N4为条带SUK4的数据分配的时间戳为TPK4。因此,当某一个存储数据条带的存储节点故障后,分布式块存储系统根据分条与分区视图,恢复分条SN在故障存储节点Nj的条带SUNj的数据,恢复分条SK在故障存储节点Nj的条带SUKj的数据,在新的存储节点的缓存中包含条带SUNj的数据和SUKj的数据。其中一种实现,当条带SUNj的数据包含第一客户端分配的时间戳TPN,条带SUKj的数据包含第二客户端分配的时间戳TPK时,并且TPN和TPK是由同一个时间戳服务器分配时,可以直接比较条带SUNj的数据的时间戳TPN和SUKj的数据的时间戳TPK,新的存储节点根据时间戳TPN和时间戳TPK从缓存中淘汰时间在前的条带的数据。当条带SUNj的数据不包含第一客户端分配的时间戳TPN和/或条带SUKj的数据不包含第二客户端分配的时间戳TPK时,或时间戳TPN和TPK不是来自同一个时间戳服务器时,在新的存储节点的缓存中包含条带SUNj的数据和SUKj的数据。新的存储节点可以查询存储节点NX中分条SN和SK的条带的数据的时间戳,例如新的存储节点获取存储节点NX为条带SUNX的数据分配的时间戳TPNX,将TPNX作为SUNj的数据的参考时间戳,新的存储节点获取存储节点NX为条带SUNX的数据分配的时间戳TPNX,将TPKX作为SUKj的数据的参考时间戳,新的存储节点根据时间戳TPNX和时间戳TPKX从缓存中将条带SUNj的数据和SUKj的数据中时间在前的一个淘汰,其中,X为整数1到M中除j外的任意一个。本发明实施例中,以存储节点N1故障为例,在新的存储节点的缓存中包含条带SUN1的数据和SUK1的数据。新的存储节点获取存储节点N2为SUN2的数据分配的时间戳TPN2作为SUN1的数据的参考时间戳,获取存储节点N2为SUK2的数据分配的时间戳TPK2作为SUK1的数据的参考时间戳,时间戳TPN2先于时间戳TPK2,因此新的存储节点从缓存中淘汰条带SUN1的数据,在存储系统中保留最新的条带的数据,从而节省缓存空间。本发明实施例中,存储节点Nj也为条带SUYj的数据分配时间戳TPYj。
存储节点Nj分配的时间戳可以来自时间戳服务器,也可以由存储节点Nj自己生成。
进一步的,数据条带SUNj的数据包含的第一客户端标识、第一客户端获得分条SN的时间戳、数据条带SUNj标识、数据条带SUNj的数据的逻辑地址、数据条带状态信息可以存储在存储节点Nj为数据条带SUNj分配的物理地址的扩展地址中,从而节省存储节点Nj物理地址。物理地址的扩展地址为存储节点Nj有效物理地址容量外不可见的物理地址,当存储节点Nj接收访问物理地址的读请求时,会默认将物理地址的扩展地址中的数据读取出来。数据条带SUKj的数据包含的第二客户端标识、第二客户端获得分条SK的时间戳、数据条带SUKj标识、数据条带SUKj的数据的逻辑地址、数据条带状态信息也可以存储在存储节点Nj为数据条带SUKj分配的物理地址的扩展地址中。同理,数据条带SUYj包含的第一客户端标识、第一客户端获得分条SY的时间戳、数据条带SUYj标识、数据条带SUYj的数据的逻辑地址、数据条带状态信息也可以存储在存储节点Nj为数据条带SUYj分配的物理地址的扩展地址中。
进一步的,存储节点Nj为条带SUNj的数据分配的时间戳TPNj也可以存储在存储节点Nj为数据条带SUNj分配的物理地址的扩展地址中。存储节点Nj为条带SUKj的数据分配的时间戳TPKj也可以存储在存储节点Nj为数据条带SUKj分配的物理地址的扩展地址中。存储节点Nj为条带SUYj的数据分配的时间戳TPYj也可以存储在存储节点Nj为数据条带SUYj分配的物理地址的扩展地址中。
结合本发明实施例的各种实现,本发明实施例提供了数据写入装置11,应用于本发明实施例中的分布式块存储系统,如图11所示,数据写入装置11包含接收单元111、确定单元112、获得单元113、划分单元114和发送单元115;其中,接收单元111,用于接收第一写请求;第一写请求包含第一数据和逻辑地址;确定单元112,用于确定逻辑地址分布在分区P;获得单元113,用于从R个分条中获得分条SN;其中,N为整数1到R中的一个值;划分单元114,用于将第一数据划分为分条SN中的一个或多个条带SUNj的数据;发送单元115,用于将一个或多个条带SUNj的数据发送到存储节点Nj。进一步的,接收单元111,还用于接收第二写请求;第二写请求包含第二数据和逻辑地址;第二数据的逻辑地址与第一数据的逻辑地址相同;确定单元112,还用于确定逻辑地址分布在分区P;获得单元113,还用于从R个分条中获得分条SY;其中,Y为整数1到R中的一个值,N与Y不同;划分单元114,还用于将第二数据划分为分条SY中的一个或多个条带SUYj的数据;发送单元115,还用于将一个或多个条带SUYj的数据发送到存储节点Nj。本发明实施例的数据写入装置11的实现可以参考本发明实施例中的客户端,例如第一客户端和第二客户端。具体的,数据写入装置11可以为软件模块,可以运行在客户端上,从而使客户端完成本发明实施例中描述的各种实现。数据写入装置11也可以为硬件设备,具体可以参考图3所示的结构,数据写入装置11的各单元可以由图3描述的服务器的处理器实现。因此,关于数据写入装置11的详细描述可参考本发明实施例中客户端的描述。
结合本发明实施例的各种实现,本发明实施例提供了数据存储装置12,应用于本发明实施例中的分布式块存储系统,如图12所示,数据存储装置12包括接收单元121和存储单元122。其中,接收单元121,用于接收第一客户端发送的分条SN中的条带SUNj的数据;条带SUNj的数据是由所述第一客户端划分第一数据得到的;第一数据是第一客户端接收第一写请求得到的;第一写请求包含第一数据和逻辑地址;逻辑地址用于确定所述第一数据分布在所述分区P;存储单元122,用于根据条带SUNj标识与存储节点Nj的第一物理地址的映射存储SUNj的数据到第一物理地址。
结合图12,数据存储装置12还包括分配单元,用于为条带SUNj的数据分配时间戳TPNj。
进一步的,结合图12,数据存储装置12还包括建立单元,用于建立条带SUNj的数据的逻辑地址与条带SUNj标识的对应关系。
进一步的,结合图12,接收单元121,还用于接收第一客户端发送的分条SY中的条带SUYj的数据;条带SUYj的数据是由第一客户端划分第二数据得到的;第二数据是第一客户端接收第二写请求得到的;第二写请求包含第二数据和逻辑地址;逻辑地址用于确定所述第二数据分布在所述分区P;存储单元122,还用于根据条带SUY标识与存储节点Nj的第二物理地址的映射存储SUYj的数据到第二物理地址。进一步的,结合图12,分配单元还用于为条带SUYj的数据分配时间戳TPYj。
进一步的,结合图12,建立单元,还用于建立条带SUYj的数据的逻辑地址与条带SUYj标识的对应关系。进一步的,SUYj的数据包括第一客户端标识和第一客户端获得分条SY的时间戳TPY中的至少一种。
进一步的,结合图12,接收单元121,还用于接收第二客户端发送的分条SK中的条带SUKj的数据;条带SUKj的数据是由第二客户端划分第三数据得到的;第三数据是第二客户端接收第三写请求得到的;第三写请求包含第三数据和逻辑地址;逻辑地址用于确定第三数据分布在分区P;存储单元122,还用于根据条带SUKj标识与存储节点Nj的第三物理地址的映射存储SUKj的数据到第三物理地址。进一步的,分配单元,还用于为条带SUKj分配时间戳TPKj。进一步的,建立单元,还用于建立条带SUKj的数据的逻辑地址与条带SUKj标识的对应关系。进一步的,数据存储装置12还包括恢复单元,用于当存储节点Nj故障后,根据分条SN恢复出条带SUNj的数据,根据分条SK恢复出条带SUKj的数据;数据存储装置12还包括获取单元,用于获取存储节点NX中条带SUNX的数据的时间戳TPNX作为条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为条带SUKj的数据的参考时间戳,数据存储装置12还包括淘汰单元,用于根据时间戳TPNX和时间戳TPKX从新的存储节点的缓存中将条带SUNj的数据和SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个。
本发明实施例的数据存储装置12的实现可以参考本发明实施例中的存储节点,例如存储节点Nj。具体的,数据存储装置12可以为软件模块,可以运行在服务器上,从而使存储节点完成本发明实施例中描述的各种实现。数据存储装置12也可以为硬件设备,具体可以参考图3所示的结构,数据存储装置12的各单元可以由图3描述的服务器的处理器实现。因此,关于数据存储装置12的详细描述可参考本发明实施例中存储节点的描述。
本发明实施例中,分条除根据上面描述的EC算法生成的分条外,也可以是由多副本算法生成的分条。当分条是EC算法生成的分条时,分条中的条带SUij包含数据条带和校验条带;当分条是多副本算法生成的分条时,分条中的条带SUij均为数据条带,并且条带SUij的数据相同。
相应的,本发明实施例还提供了计算机可读存储介质和计算机程序产品,计算机可读存储介质和计算机程序产品中包含计算机指令用于实现本发明实施例中描述的各种方案。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例各方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
Claims (35)
1.一种分布式块存储系统中数据存储方法,其特征在于,所述分布式块存储系统包含分区P,所述分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;所述方法包括:
存储节点Nj接收第一客户端发送的分条SN中的条带SUNj的数据;所述条带SUNj的数据是由所述第一客户端划分第一数据得到的;所述第一数据是所述第一客户端接收第一写请求得到的;所述第一写请求包含所述第一数据和逻辑地址;所述逻辑地址用于确定所述第一数据分布在所述分区P;
所述存储节点Nj根据条带SUNj标识与所述存储节点Nj的第一物理地址的映射存储所述SUNj的数据到所述第一物理地址;
所述存储节点Nj为所述条带SUNj的数据分配时间戳TPNj;
所述存储节点Nj建立所述条带SUNj的数据的逻辑地址与所述条带SUNj标识的对应关系;
所述存储节点Nj接收第二客户端发送的分条SK中的条带SUKj的数据;所述条带SUKj的数据是由所述第二客户端划分第三数据得到的;所述第三数据是所述第二客户端接收第三写请求得到的;所述第三写请求包含所述第三数据和所述逻辑地址;所述逻辑地址用于确定所述第三数据分布在所述分区P;
所述存储节点Nj根据条带SUK标识与所述存储节点Nj的第三物理地址的映射存储所述SUKj的数据到所述第三物理地址;
所述存储节点Nj为所述条带SUKj的数据分配时间戳TPKj;
当所述存储节点Nj故障后,新的存储节点根据所述分条SN恢复出所述条带SUNj的数据,根据所述分条SK恢复出所述SUKj的数据,所述新的存储节点获取存储节点NX中条带SUNX的数据的时间戳TPNX作为所述条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为所述条带SUKj的数据的参考时间戳,所述新的存储节点根据所述时间戳TPNX和所述时间戳TPKX从缓存中将所述条带SUNj的数据和所述SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个。
2.根据权利要求1所述的方法,其特征在于,所述SUNj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SN的时间戳TPN中的至少一种。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述存储节点Nj接收所述第一客户端发送的分条SY中的条带SUYj的数据;所述条带SUYj的数据是由所述第一客户端划分第二数据得到的;所述第二数据是所述第一客户端接收第二写请求得到的;所述第二写请求包含所述第一数据和所述逻辑地址;所述逻辑地址用于确定所述第二数据分布在所述分区P;
所述存储节点Nj根据条带SUY标识与所述存储节点Nj的第二物理地址的映射存储所述SUNj的数据到所述第二物理地址。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述存储节点Nj为所述条带SUYj的数据分配时间戳TPYj。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述存储节点Nj建立所述条带SUYj的数据的逻辑地址与所述条带SUYj标识的对应关系。
6.根据权利要求3所述的方法,其特征在于,所述SUYj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SY的时间戳TPY中的至少一种。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述存储节点Nj建立所述条带SUKj的数据的逻辑地址与所述条带SUKj标识的对应关系。
8.根据权利要求1至6任一所述的方法,其特征在于,所述SUKj的数据包括所述第二客户端标识和所述第二客户端获得所述分条SK的时间戳TPK中的至少一种。
9.根据权利要求1所述的方法,其特征在于,所述分条Si中条带SUij是由分条元数据服务器根据所述分区P与所述分区P包含的存储节点Nj的映射,从存储节点Nj分配的。
10.根据权利要求1至6任一所述的方法,其特征在于,所述一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,所述数据条带状态信息用于标识所述分条SN的每个数据条带是否为空。
11.一种分布式块存储系统中数据存储装置,其特征在于,所述分布式块存储系统包含分区P,所述分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;所述数据存储装置包括:
接收单元,用于接收第一客户端发送的分条SN中的条带SUNj的数据;所述条带SUNj的数据是由所述第一客户端划分第一数据得到的;所述第一数据是所述第一客户端接收第一写请求得到的;所述第一写请求包含所述第一数据和逻辑地址;所述逻辑地址用于确定所述第一数据分布在所述分区P;
存储单元,用于根据条带SUNj标识与所述存储节点Nj的第一物理地址的映射存储所述SUNj的数据到所述第一物理地址;
所述数据存储装置还包括:
分配单元,用于为所述条带SUNj的数据分配时间戳TPNj;
所述数据存储装置还包括:
建立单元,用于建立所述条带SUNj的数据的逻辑地址与所述条带SUNj标识的对应关系;
所述接收单元,还用于接收第二客户端发送的分条SK中的条带SUKj的数据;所述条带SUKj的数据是由所述第二客户端划分第三数据得到的;所述第三数据是所述第二客户端接收第三写请求得到的;所述第三写请求包含所述第三数据和所述逻辑地址;所述逻辑地址用于确定所述第三数据分布在所述分区P;
所述存储单元,还用于根据条带SUK标识与所述存储节点Nj的第三物理地址的映射存储所述SUKj的数据到所述第三物理地址;
所述分配单元,还用于为所述条带SUKj的数据分配时间戳TPKj;
所述数据存储装置还包括恢复单元,用于当所述存储节点Nj故障后,根据所述分条SN在新的存储节点恢复出所述条带SUNj的数据,根据所述分条SK在所述新的存储节点恢复出所述SUKj的数据;所述数据存储装置还包括获取单元,用于获取存储节点NX中条带SUNX的数据的时间戳TPNX作为所述条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为所述条带SUKj的数据的参考时间戳,所述数据存储装置还包括淘汰单元,用于根据所述时间戳TPNX和所述时间戳TPKX从所述新的存储节点的缓存中将所述条带SUNj的数据和所述SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个。
12.根据权利要求11所述的数据存储装置,其特征在于,所述SUNj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SN的时间戳TPN中的至少一种。
13.根据权利要求11所述的数据存储装置,其特征在于,所述接收单元,还用于接收所述第一客户端发送的分条SY中的条带SUYj的数据;所述条带SUYj的数据是由所述第一客户端划分第二数据得到的;所述第二数据是所述第一客户端接收第二写请求得到的;所述第二写请求包含所述第二数据和所述逻辑地址;所述逻辑地址用于确定所述第二数据分布在所述分区P;
所述存储单元,还用于根据条带SUY标识与所述存储节点Nj的第二物理地址的映射存储所述SUNj的数据到所述第二物理地址。
14.根据权利要求13所述的数据存储装置,其特征在于,所述分配单元,还用于为所述条带SUYj的数据分配时间戳TPYj。
15.根据权利要求13所述的数据存储装置,其特征在于,所述建立单元,还用于建立所述条带SUYj的数据的逻辑地址与所述条带SUYj标识的对应关系。
16.根据权利要求13所述的数据存储装置,其特征在于,所述SUYj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SY的时间戳TPY中的至少一种。
17.根据权利要求11所述的数据存储装置,其特征在于,所述建立单元,还用于建立所述条带SUKj的数据的逻辑地址与所述条带SUKj标识的对应关系。
18.根据权利要求11至16任一所述的数据存储装置,其特征在于,所述SUKj的数据包括所述第二客户端标识和所述第二客户端获得所述分条SK的时间戳TPK中的至少一种。
19.根据权利要求11所述的数据存储装置,其特征在于,所述分条Si中条带SUij是由分条元数据服务器根据所述分区P与所述分区P包含的存储节点Nj的映射从存储节点Nj分配的。
20.根据权利要求11至16任一所述的数据存储装置,其特征在于,所述一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,所述数据条带状态信息用于标识所述分条SN的每个数据条带是否为空。
21.一种分布式块存储系统,其特征在于,所述分布式块存储系统包含分区P,所述分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;
存储节点Nj,用于接收第一客户端发送的分条SN中的条带SUNj的数据,根据条带SUNj标识与所述存储节点Nj的第一物理地址的映射存储所述SUNj的数据到所述第一物理地址;所述条带SUNj的数据是由所述第一客户端划分第一数据得到的;所述第一数据是所述第一客户端接收第一写请求得到的;所述第一写请求包含所述第一数据和逻辑地址;所述逻辑地址用于确定所述第一数据分布在所述分区;
所述存储节点Nj,还用于为所述条带SUNj的数据分配时间戳TPNj;
所述存储节点Nj,还用于建立所述条带SUNj的数据的逻辑地址与所述条带SUNj标识的对应关系;
所述存储节点Nj,还用于接收第二客户端发送的分条SK中的条带SUKj的数据,根据条带SUK标识与所述存储节点Nj的第三物理地址的映射存储所述SUKj的数据到所述第三物理地址;所述条带SUKj的数据是由所述第二客户端划分第三数据得到的;所述第三数据是所述第二客户端接收第三写请求得到的;所述第三写请求包含所述第三数据和所述逻辑地址;所述逻辑地址用于确定所述第三数据分布在所述分区P;
所述存储节点Nj,还用于为所述条带SUKj的数据分配时间戳TPKj;
所述分布式块存储系统还包括当所述存储节点Nj故障后,新的存储节点;
所述新的存储节点,用于根据所述分条SN恢复出所述条带SUNj的数据,根据所述分条SK恢复出所述条带SUKj的数据,获取存储节点NX中条带SUNX的数据的时间戳TPNX作为所述条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为所述条带SUKj的数据的参考时间戳,根据所述时间戳TPNX和所述时间戳TPKX从所述新的存储节点的缓存中将所述条带SUNj的数据和所述条带SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个。
22.根据权利要求21所述的系统,其特征在于,所述SUNj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SN的时间戳TPN中的至少一种。
23.根据权利要求21所述的系统,其特征在于,
所述存储节点Nj,还用于接收所述第一客户端发送的分条SY中的条带SUYj的数据,根据条带SUY标识与所述存储节点Nj的第二物理地址的映射存储所述SUNj的数据到所述第二物理地址;所述条带SUYj的数据是由所述第一客户端划分第二数据得到的;所述第二数据是所述第一客户端接收第二写请求得到的;所述第二写请求包含所述第二数据和所述逻辑地址;所述逻辑地址用于确定所述第二数据分布在所述分区P。
24.根据权利要求23所述的系统,其特征在于,
所述存储节点Nj,还用于为所述条带SUYj的数据分配时间戳TPYj。
25.根据权利要求23所述的系统,其特征在于,
所述存储节点Nj,还用于建立所述条带SUYj的数据的逻辑地址与所述条带SUYj标识的对应关系。
26.根据权利要求23所述的系统,其特征在于,所述SUYj的数据包括所述第一客户端标识和所述第一客户端获得所述分条SY的时间戳TPY中的至少一种。
27.根据权利要求21所述的系统,其特征在于,
所述存储节点Nj,还用于建立所述条带SUKj的数据的逻辑地址与所述条带SUKj标识的对应关系。
28.根据权利要求21至26任一所述的系统,其特征在于,所述SUKj的数据包括所述第二客户端标识和所述第二客户端获得所述分条SK的时间戳TPK中的至少一种。
29.根据权利要求21所述的系统,其特征在于,所述分条Si中条带SUij是由分条元数据服务器根据所述分区P与所述分区P包含的存储节点Nj的映射,从存储节点Nj分配的。
30.根据权利要求21至26任一所述的系统,其特征在于,所述一个或多个条带SUNj的数据中的每一个还包括数据条带状态信息,所述数据条带状态信息用于标识所述分条SN的每个数据条带是否为空。
31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储应用于分布式块存储系统中的计算机指令,所述分布式块存储系统包含分区P,所述分区P包含M个存储节点Nj和R个分条Si,每一个分条包含条带SUij;其中,j为整数1到M中的每一个值,i为整数1到R中的每一个值;所述计算机可读存储介质包含第一计算机指令,用于使存储节点Nj执行如下操作:
接收第一客户端发送的分条SN中的条带SUNj的数据;所述条带SUNj的数据是由所述第一客户端划分第一数据得到的;所述第一数据是所述第一客户端接收第一写请求得到的;所述第一写请求包含所述第一数据和逻辑地址;所述逻辑地址用于确定所述第一数据分布在所述分区P;
根据条带SUNj标识与所述存储节点Nj的第一物理地址的映射存储所述SUNj的数据到所述第一物理地址;
所述计算机可读存储介质包含第二计算机指令,用于使存储节点Nj执行如下操作:
为所述条带SUNj的数据分配时间戳TPNj;
所述计算机可读存储介质包含第三计算机指令,用于使存储节点Nj执行如下操作:
建立所述条带SUNj的数据的逻辑地址与所述条带SUNj标识的对应关系;
所述计算机可读存储介质包含第七计算机指令,用于使存储节点Nj执行如下操作:
接收第二客户端发送的分条SK中的条带SUKj的数据;所述条带SUKj的数据是由所述第二客户端划分第三数据得到的;所述第三数据是所述第二客户端接收第三写请求得到的;所述第三写请求包含所述第三数据和所述逻辑地址;所述逻辑地址用于确定所述第三数据分布在所述分区P;
根据条带SUK标识与所述存储节点Nj的第三物理地址的映射存储所述SUKj的数据到所述第三物理地址;
所述计算机可读存储介质包含第八计算机指令,用于使存储节点Nj执行如下操作:
为所述条带SUKj的数据分配时间戳TPKj;
所述计算机可读存储介质包含第十计算机指令,当所述存储节点Nj故障后,用于使新的存储节点执行如下操作:
根据所述分条SN恢复出所述条带SUNj的数据,根据所述分条SK恢复出所述条带SUKj的数据,所述新的存储节点获取存储节点NX中条带SUNX的数据的时间戳TPNX作为所述条带SUNj的数据的参考时间戳,获取存储节点NX中条带SUKX的数据的时间戳TPKX作为所述条带SUKj的数据的参考时间戳,根据所述时间戳TPNX和所述时间戳TPKX从所述新的存储节点的缓存中将所述条带SUNj的数据和所述SUKj的数据中时间在前的一个淘汰;其中,X为整数1到M中除j外的任意一个。
32.根据权利要求31所述的计算机可读存储介质,其特征在于所述计算机可读存储介质包含第四计算机指令,用于使存储节点Nj执行如下操作:
接收所述第一客户端发送的分条SY中的条带SUYj的数据;所述条带SUYj的数据是由所述第一客户端划分第二数据得到的;所述第二数据是所述第一客户端接收第二写请求得到的;所述第二写请求包含所述第二数据和所述逻辑地址;所述逻辑地址用于确定所述第二数据分布在所述分区P;
根据条带SUY标识与所述存储节点Nj的第二物理地址的映射存储所述SUNj的数据到所述第二物理地址。
33.根据权利要求32所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质包含第五计算机指令,用于使存储节点Nj执行如下操作:
为所述条带SUYj的数据分配时间戳TPYj。
34.根据权利要求32所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质包含第六计算机指令,用于使存储节点Nj执行如下操作:
建立所述条带SUYj的数据的逻辑地址与所述条带SUYj标识的对应关系。
35.根据权利要求31所述的计算机可读存储介质,其特征在于,所述计算机可读存储介质包含第九计算机指令,用于使存储节点Nj执行如下操作:
建立所述条带SUKj的数据的逻辑地址与所述条带SUKj标识的对应关系。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/106147 WO2019071595A1 (zh) | 2017-10-13 | 2017-10-13 | 分布式块存储系统中数据存储方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110325958A CN110325958A (zh) | 2019-10-11 |
CN110325958B true CN110325958B (zh) | 2021-09-17 |
Family
ID=66096484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780002700.6A Active CN110325958B (zh) | 2017-10-13 | 2017-10-13 | 分布式块存储系统中数据存储方法、装置及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190114076A1 (zh) |
EP (1) | EP3495939B1 (zh) |
CN (1) | CN110325958B (zh) |
WO (1) | WO2019071595A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814805B (zh) * | 2018-12-25 | 2020-08-25 | 华为技术有限公司 | 存储系统中分条重组的方法及分条服务器 |
CN112241320B (zh) * | 2019-07-17 | 2023-11-10 | 华为技术有限公司 | 资源分配方法、存储设备和存储系统 |
CN111399766B (zh) * | 2020-01-08 | 2021-10-22 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
CN113204520B (zh) * | 2021-04-28 | 2023-04-07 | 武汉大学 | 一种基于分布式文件系统的遥感数据快速并发读写方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949843B1 (en) * | 2005-11-01 | 2011-05-24 | Netapp, Inc. | Method and system for single pass volume scanning for multiple destination mirroring |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08329021A (ja) * | 1995-03-30 | 1996-12-13 | Mitsubishi Electric Corp | クライアントサーバシステム |
US7945538B2 (en) * | 2001-03-13 | 2011-05-17 | Oracle America, Inc. | Method and arrangements for node recovery |
US7702850B2 (en) * | 2005-03-14 | 2010-04-20 | Thomas Earl Ludwig | Topology independent storage arrays and methods |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US8825789B2 (en) * | 2008-12-16 | 2014-09-02 | Netapp, Inc. | Method and apparatus to implement a hierarchical cache system with pNFS |
CN103959248A (zh) * | 2011-12-06 | 2014-07-30 | 宇龙计算机通信科技(深圳)有限公司 | 信息处理方法和终端 |
US9128826B2 (en) * | 2012-10-17 | 2015-09-08 | Datadirect Networks, Inc. | Data storage architecuture and system for high performance computing hash on metadata in reference to storage request in nonvolatile memory (NVM) location |
WO2014101218A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 一种计算存储融合的集群系统 |
CN103368870B (zh) * | 2013-06-26 | 2017-05-17 | 国家超级计算深圳中心(深圳云计算中心) | 集群存储网络并行负载的控制方法及系统 |
CN103458023B (zh) * | 2013-08-30 | 2016-12-28 | 清华大学 | 分布式闪存存储系统 |
CA2867589A1 (en) * | 2013-10-15 | 2015-04-15 | Coho Data Inc. | Systems, methods and devices for implementing data management in a distributed data storage system |
US9519546B2 (en) * | 2014-03-17 | 2016-12-13 | Dell Products L.P. | Striping cache blocks with logical block address scrambling |
US9594632B2 (en) * | 2014-07-09 | 2017-03-14 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US10055458B2 (en) * | 2015-07-30 | 2018-08-21 | Futurewei Technologies, Inc. | Data placement control for distributed computing environment |
CN105242879B (zh) * | 2015-09-30 | 2018-11-06 | 华为技术有限公司 | 一种数据存储方法以及协议服务器 |
CN105404469B (zh) * | 2015-10-22 | 2018-11-13 | 浙江宇视科技有限公司 | 一种视频数据的存储方法和系统 |
CN105389127B (zh) * | 2015-11-04 | 2018-06-26 | 华为技术有限公司 | 在存储系统中传输消息的方法、装置及存储系统、控制器 |
CN107172222A (zh) * | 2017-07-27 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的数据存储方法及装置 |
-
2017
- 2017-10-13 CN CN201780002700.6A patent/CN110325958B/zh active Active
- 2017-10-13 EP EP17890845.5A patent/EP3495939B1/en active Active
- 2017-10-13 WO PCT/CN2017/106147 patent/WO2019071595A1/zh active Application Filing
-
2018
- 2018-10-26 US US16/172,264 patent/US20190114076A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7949843B1 (en) * | 2005-11-01 | 2011-05-24 | Netapp, Inc. | Method and system for single pass volume scanning for multiple destination mirroring |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN105095013A (zh) * | 2015-06-04 | 2015-11-25 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3495939A4 (en) | 2019-06-12 |
US20190114076A1 (en) | 2019-04-18 |
CN110325958A (zh) | 2019-10-11 |
WO2019071595A1 (zh) | 2019-04-18 |
EP3495939B1 (en) | 2021-06-30 |
EP3495939A1 (en) | 2019-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379142B2 (en) | Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space | |
US9733848B2 (en) | Method and system for pooling, partitioning, and sharing network storage resources | |
CN110325958B (zh) | 分布式块存储系统中数据存储方法、装置及计算机可读存储介质 | |
US9582198B2 (en) | Compressed block map of densely-populated data structures | |
CN109144406B (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN110235098B (zh) | 存储系统访问方法及装置 | |
US20120151255A1 (en) | Method of calculating parity in asymetric clustering file system | |
WO2021017782A1 (zh) | 分布式存储系统访问方法、客户端及计算机程序产品 | |
CN110199512B (zh) | 存储系统中存储设备的管理方法及装置 | |
US11899533B2 (en) | Stripe reassembling method in storage system and stripe server | |
CN110199270B (zh) | 存储系统中存储设备的管理方法及装置 | |
US11775194B2 (en) | Data storage method and apparatus in distributed storage system, and computer program product | |
CN117348808A (zh) | 分布式块存储的i/o本地化方法、装置和设备 | |
CN112714910B (zh) | 分布式存储系统及计算机程序产品 | |
US20210240399A1 (en) | Storage system with continuous data verification for synchronous replication of logical storage volumes |
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 |